{"version":3,"file":"js/bundle.main.xxxxxxxx.min.js","mappings":"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cACA,cACA,cACA,+BACH,CAND,CAAYA,IAAiB,oBAAjBA,EAAiB,KAU7B,SAAYs5O,GACR,2DACA,yCACA,qDACA,4CACA,wCACA,YACA,YACA,cACA,qCACA,sBACA,wBACA,oHACA,8HACA,+CACH,CAfD,CAAYA,IAAgB,mBAAhBA,EAAgB,KAiB5B,SAAY5+M,GACR,cACA,sBACA,gCACH,CAJD,CAAYA,IAAoB,uBAApBA,EAAoB,KAYhC,SAAY+iE,GACR,UACA,YACA,UACA,cACA,WACH,CAND,CAAYA,IAAoB,uBAApBA,EAAoB,KAehC,SAAY3/G,GACR,oCACA,8BACA,2BACH,CAJD,CAAYA,IAAwB,2BAAxBA,EAAwB,KAOpC,SAAYsnF,GACR,gBACA,kBACA,mBACH,CAJD,CAAYA,IAAe,kBAAfA,EAAe,KAY3B,SAAY3vH,GACR,2BACA,cACA,yBACH,CAJD,CAAYA,IAAsB,yBAAtBA,EAAsB,KAMlC,SAAYixH,GACR,cACA,2BACA,6BACA,yBACA,wBACH,CAND,CAAYA,IAAa,gBAAbA,EAAa,KAsBzB,SAAYnkD,GACR,8BACA,gCACA,2BACH,CAJD,CAAYA,IAAoB,uBAApBA,EAAoB,KA4ChC,SAAY39G,GACR,iCACA,6BACA,sCACA,oDACA,+BACA,8BACA,6BACA,yBACA,kCACA,+BACA,kCACH,CAZD,CAAYA,IAAY,eAAZA,EAAY,KAiBxB,SAAY42J,GACR,yBACA,sBACA,sBACA,yCACA,oCACH,CAND,CAAYA,IAAc,iBAAdA,EAAc,KAS1B,SAAYnf,GACR,qCACA,oBACA,yBACA,wBACA,wBACA,qBACH,CAPD,CAAYA,IAAkB,qBAAlBA,EAAkB,KAqB9B,SAAYyR,GACR,gBACA,cACA,sBACA,6CACA,YACA,sBACA,qCACA,qCACA,8CACA,oBACA,gBACA,cACA,oCACH,CAdD,CAAYA,IAAe,kBAAfA,EAAe,KA4C3B,SAAYsoI,GACR,oBACA,uCACA,0BACA,cACA,kBACA,kBACA,gBACA,+BACA,2BACH,CAVD,CAAYA,IAAY,eAAZA,EAAY,KAWX,EAAAL,eAAiB,CAC1BK,EAAaC,Q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iCACID,GAAG,mBACHxqT,OAAO,qBACP2O,OAAO,8CAEX,+BACI,+BAAa67S,GAAG,qBAI5B,qBAAGnrT,KAAK,OAAO6F,SAAS,WACpB,yBACI,yBACI,qBACIpN,OAAO,mBACPyE,UAAU,2DAEV,wBACI8C,KAAMmwL,EAAU,EAAA75L,qBAAqB+R,UAAY,EAAA/R,qBAAqBqgD,YACtE7wC,EAAE,uHAEN,wBACI9F,KAAK,OACL6F,SAAS,UACTC,EAAE,4hBAQlC,EAEA6iW,EAAmBtiW,YAAc,qBAIxB,EAAAC,WAFkB,CAAC,EAG5B,UAAeqiW,C,0zCCrEf,eACA,WACA,aACA,WAEA,cACA,aACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,aACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,aACA,YACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,cACA,aACA,cACA,cACA,cACA,cACA,cACA,cACA,aACA,cACA,cACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,eACA,aACA,eACA,eAEA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,cACA,eACA,eACA,eACA,eACA,eACA,cACA,eACA,eACA,eACA,eACA,eACA,eACA,cACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,cACA,cACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,aACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,eACA,YACA,YAEA,YACA,YACA,eACA,YACA,YACA,eACA,YACA,eACA,eACA,YACA,eACA,eACA,eACA,eACA,YACA,eACA,eACA,YACA,cACA,eACA,eACA,cACA,YACA,eACA,eACA,eACA,eAEMC,IAAc,IAAA7mP,iBAAgB,CAChCq0K,MAAM,cAAY,GAA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","sources":["webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/RoutingSettingsForm/constants.ts","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/SendingToSpotForm/constants.ts","webpack:///./broker-admin/components/BaseSpotRequestDetailsSidebarContent/SpotRequestDetails/Bids/hooks/bids-filter.ts","webpack:///./design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInputCountLabel/DropdownMultipleInputCountLabel.tsx","webpack:///./common/store/alerts/types.ts","webpack:///./common/components/HiddenEnterSubmitButton/HiddenSubmitButtonForKeyboardEnter.tsx","webpack:///./common/contexts/partner-context.ts","webpack:///./broker-admin/store/spot/reducer.ts","webpack:///./broker-admin/store/broker-tour-details/channels.ts","webpack:///./common/components/IconWithNumber/IconWithNumber.scss?e196","webpack:///./broker-admin/store/broker-tour-details/actions.ts","webpack:///./common/components/Timeline/TimeWindow/TimeWindow.tsx","webpack:///./common/store/rfqs-stats/sagas.ts","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/PricingSettingsForm/PricingSettingsForm.scss?b91a","webpack:///./common/components/notification-cards/entities/SubjectLink/SubjectLink.tsx","webpack:///./common/store/rfqs/selectors.ts","webpack:///./common/layouts/Members/DeactivateUserForm/DeactivateUserForm.tsx","webpack:///./common/layouts/TrucksPageLayout/constants.ts","webpack:///./common/components/NumberInput/NumberInput.scss?7301","webpack:///./common/store/rfq-details/selectors.ts","webpack:///./common/components/tabs/TabLabel/constants.ts","webpack:///./design-system/components/InfoTable/formatters/CommentFormatter/CommentFormatter.tsx","webpack:///./common/layouts/DriversPageLayout/InviteDriverForm/InviteDriverForm.scss?4cac","webpack:///./common/components/notification-cards/TransportationOrderWasPlacedCard/TransportationOrderWasPlacedCard.tsx","webpack:///./broker-admin/store/broker-order-stats/sagas.ts","webpack:///./common/icons/BigPlusUsers.tsx","webpack:///./common/components/tabs/ButtonTabs/ButtonTabs.tsx","webpack:///./common/components/PillLabel/PillLabel.tsx","webpack:///./common/store/transport-orders/actions.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/footers/StatusFooterContent/ManagementControl/ManagementControl.scss?1928","webpack:///./broker-admin/components/notification-cards/RemovedFromTeamCard/RemovedFromTeamCard.scss?83fb","webpack:///./common/store/driver-search/actions.ts","webpack:///./common/layouts/NewOrderPage/OffersForm/QuickActions/QuickActions.tsx","webpack:///./common/components/toasts/footers/AssetFailedActionFooter/AssetFailedActionFooter.scss?6969","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/UploadLoader/UploadLoader.tsx","webpack:///./common/components/entity-details/hooks/distance-rows-factory.tsx","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentParamsDetailsForm/CommonDocumentParamsDetailsForm/prepare-approve-data.ts","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/RulesTable/cell-renderers/TypeCell/TypeCell.tsx","webpack:///./common/layouts/RFQListPageLayout/FiltersSidebarContent/FiltersSidebarContent.tsx","webpack:///./broker-admin/store/invoices/sagas.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/TransportOrderRouteMap/PointStackClusterPin/PointStackClusterPin.tsx","webpack:///./common/utils/hooks/useAsyncFormErrors.ts","webpack:///./common/layouts/BaseShipperContractDetailsLayout/EditShipperContractDetailsForm/get-initial-values.ts","webpack:///./common/components/AssetSidebarContent/SetUnavailableForm/constants.ts","webpack:///./common/layouts/SideBars/contents/ContractDetailsSidebarContent/ContractDetailsForm/validate-form.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/DeadheadCreationReceipt/DeadheadCreationReceipt.tsx","webpack:///./common/store/carrier-contracts/channels.ts","webpack:///./common/components/notifications/NotificationsBarTrigger/NotificationsBarTrigger.scss?80bd","webpack:///./common/layouts/RFQListPageLayout/RFQsTable/cell-renderers/StatusCell/StatusCell.tsx","webpack:///./common/store/rfq-details/types.ts","webpack:///./common/layouts/ContinueSignUpPage/ContinueSignUpForm/validate-form.ts","webpack:///./common/contexts/partner-permission-context.ts","webpack:///./broker-admin/store/broker-teams/reducer.ts","webpack:///./common/components/InlineLoader/InlineLoader.scss?2a09","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/RouteForm.scss?e8e4","webpack:///./common/components/LineLoader/LineLoader.scss?5d19","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/EditTimeWindowsForm/validate-form.ts","webpack:///./broker-admin/layouts/SideBars/PartnerLogSideBarContent/PartnerLogSideBarContent.tsx","webpack:///./common/icons/LogoIcon.tsx","webpack:///./common/components/Table/cell-renderers/TableCellLink/TableCellLink.scss?7df6","webpack:///./common/icons/DownloadIcon.tsx","webpack:///./common/icons/TrailerPickUpIcon.tsx","webpack:///./common/components/status-pill/DocumentStatusPill/DocumentStatusPill.tsx","webpack:///./common/store/carriers-utilization/utils.ts","webpack:///./common/components/notification-cards/shared/ChangedStopFieldLabel/ChangedStopFieldLabel.tsx","webpack:///./common/layouts/TrucksPageLayout/TrucksTable/cell-renderers/ModelCell/ModelCell.scss?e833","webpack:///./common/store/driver-assigment/selectors.ts","webpack:///./design-system/components/InfoTable/formatters/AdditionalServiceFormatter/AdditionalServiceFormatter.tsx","webpack:///./broker-admin/layouts/BrokerUsersPage/BrokerTeamsLayout/dialogs/DeleteTeamConfirmation/DeleteTeamConfirmation.tsx","webpack:///./broker-admin/components/notification-cards/ExpiredPartnerShipperContractCard/ExpiredPartnerShipperContractCard.tsx","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/RulesTable/RulesTable.scss?f6cd","webpack:///./broker-admin/components/status-machine/footers/ChangeShipmentStatusFooter/ChangeShipmentStatusFooter.scss?2d39","webpack:///./common/components/pills/PartnerTypePill/PartnerTypePill.tsx","webpack:///./design-system/components/AsyncSearchScrollableList/AsyncSearchScrollableList.tsx","webpack:///./common/components/suggests/BrokerAdminUserSuggest/BrokerAdminUserSuggest.tsx","webpack:///./broker-admin/components/PriceRuleTypeLabel/PriceRuleTypeLabel.tsx","webpack:///./common/layouts/TransportOrderDetailsPageLayout/SpotAssetsAssignmentForm/AssetOptionLabel/AssetOptionLabel.scss?843e","webpack:///./common/store/errors/actions.ts","webpack:///./common/store/documents-dict/sagas.ts","webpack:///./common/layouts/CommonEditableTruckDetailsLayout/EditTruckSidebarContent/TruckDetailsForm/validate-form.ts","webpack:///./common/components/PillLabel/PillLabel.scss?6c45","webpack:///./broker-admin/components/notification-cards/CompletedPartnerDocumentCard/CompletedPartnerDocumentCard.tsx","webpack:///./broker-admin/layouts/SpotRequestsPage/SpotRequestListPage/SpotRequestsTable/cell-renderers/CostsCell/CostsCell.tsx","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentParamsDetailsForm/EvidenceOfTaxDetailsForm/get-initial-values.ts","webpack:///./common/components/ErrorModal/ErrorTraceId/ErrorTraceId.scss?5d50","webpack:///./common/components/forms/FormikConnectContextField/FormikConnectContextField.tsx","webpack:///./common/layouts/TransportOrderListPageLayout/TransportOrdersTable/TransportOrdersTable.tsx","webpack:///./broker-admin/layouts/BrokerUsersPage/BrokerUsersLayout/BrokerUsersLayout.tsx","webpack:///./common/components/pills/PriceRuleImpactPill/PriceRuleImpactPill.tsx","webpack:///./design-system/components/date-pickers/DatePicker/DatePicker.tsx","webpack:///./common/layouts/NewOrderPage/OfferDetails/EditOfferTotalPriceLayout/EditOfferTotalPriceLayout.tsx","webpack:///./common/components/toasts/AlertToastsManager/utils.tsx","webpack:///./common/layouts/Members/ContactsTable/cell-renderers/PositionsCell/PositionsCell.tsx","webpack:///./common/layouts/SideBars/contents/ContractDetailsSidebarContent/ContractDetailsForm/constants.ts","webpack:///./broker-admin/store/statistics/selectors.ts","webpack:///./common/utils/logger.ts","webpack:///./common/utils/view-event-channel.ts","webpack:///./broker-admin/layouts/PartnerPage/PartnerDocumentsPage/PartnerDocumentsPage.tsx","webpack:///./common/components/ErrorModal/ErrorDetails/ErrorDetails.scss?2d03","webpack:///./common/components/status-pill/BrokerOrderStatusPill/BrokerOrderStatusPill.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/FerryDisembarkPointPicker/FerryDisembarkPointPicker.tsx","webpack:///./common/layouts/RFQDetailsPageLayout/dialogs/CloseRFQConfirmation/CloseRFQConfirmation.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/CurrentAssetPositionPin/CurrentAssetPositionPin.tsx","webpack:///./common/store/order-creation/utils/get-query-modify-event-after-reserve.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/footers/DriversAssignmentFooterContent/DriversAssignmentFooterContent.scss?69c7","webpack:///./broker-admin/store/spot/selectors.ts","webpack:///./common/layouts/Members/Members.tsx","webpack:///./broker-admin/store/price-settings/system-settings/sagas.ts","webpack:///./common/layouts/SideBars/SideBarParanja/SideBarParanja.tsx","webpack:///./common/layouts/NewOrderPage/NewOrderPage.scss?f4d1","webpack:///./common/store/papers-edit/constants.ts","webpack:///./common/layouts/NewOrderPage/OffersForm/OffersForm.tsx","webpack:///./common/layouts/BaseShipperContractLaneDetailsLayout/BaseShipperContractLaneDetailsLayout.tsx","webpack:///./common/store/documents/types.ts","webpack:///./common/components/pills/ExternallyManagedPill/ExternallyManagedPill.tsx","webpack:///./common/components/Table/TableActions/TableActions.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/footers/EditTourStopContactFooterContent/EditTourStopContactFooterContent.scss?a8ed","webpack:///./common/components/Table/cell-renderers/HumanReadableDateCell/HumanReadableDateCell.tsx","webpack:///./broker-admin/components/dropdowns/PartnerSuggest/PartnerSuggest.tsx","webpack:///./common/components/SwitchableView/SwitchableViewTab/SwitchableViewTab.tsx","webpack:///./common/icons/PlusIcon.tsx","webpack:///./common/utils/hooks/maps/useGoogleMapConfig.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/contexts/assets-selection-context.ts","webpack:///./broker-admin/components/dropdowns/KeyAccountManagerDropdown/KeyAccountManagerDropdown.tsx","webpack:///./common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel.tsx","webpack:///./common/layouts/CommonEditableTrailerDetailsLayout/LinkedTruckAlert/LinkedTruckAlert.tsx","webpack:///./common/layouts/SideBars/contents/AddDriverSidebarContent/AddDriverSidebarContent.scss?c2f4","webpack:///./design-system/components/Card/Card.tsx","webpack:///./common/components/toasts/AlertToastsManager/AlertToastsManager.tsx","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentDetailsLayout/DocumentEventsSummary/DocumentEventsSummary.tsx","webpack:///./common/layouts/TimeLeft/TimeLeft.scss?1712","webpack:///./common/layouts/TrailersPageLayout/ActiveFleetCount/ActiveFleetCount.tsx","webpack:///./common/layouts/CommonEditableTruckDetailsLayout/TruckDetailsSidebarContent/TruckDetailsSidebarContent.scss","webpack:///./common/store/consistent-state-machine/channels.ts","webpack:///./common/layouts/BaseDocumentsLayout/dialogs/ApproveDocumentsConfirmation/ApproveDocumentsConfirmation.tsx","webpack:///./common/icons/DestinationIcon.tsx","webpack:///./common/layouts/Members/UserStatusControl/UserStatusControl.tsx","webpack:///./common/store/countries-dict/actions.ts","webpack:///./common/components/papers/PapersGrid/PapersGrid.scss?8268","webpack:///./common/layouts/RFQListPageLayout/RFQsTable/RFQsTable.scss?aa86","webpack:///./common/components/Loader/Loader.tsx","webpack:///./common/store/settings/selectors.ts","webpack:///./common/layouts/CommonEditableTrailerDetailsLayout/TrailerActionHistory/TrailerActionHistory.scss?9c38","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/footers/SaveFooterContent/SaveFooterContent.tsx","webpack:///./common/layouts/CommonEditableTrailerDetailsLayout/EditTrailerSidebarContent/ChangeRateOrContractWarning/ChangeRateOrContractWarning.scss","webpack:///./common/utils/debug-info.ts","webpack:///./broker-admin/layouts/PriceSettingsRulePreviewLayout/RulePreview/RulePreview.tsx","webpack:///./common/layouts/TrailersPageLayout/constants.ts","webpack:///./common/layouts/RFQListPageLayout/RFQsTable/cell-renderers/ExternalNumberCell/ExternalNumberCell.tsx","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/dialogs/UnlockPartnerConfirmation/UnlockPartnerConfirmation.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/footers/EditTimeWindowsFooterContent/EditTimeWindowsFooterContent.scss?7f45","webpack:///./common/components/notification-cards/entities/NotificationSubjectType/NotificationSubjectType.scss?7133","webpack:///./broker-admin/layouts/SideBars/UploadShipperContractSidebarContent/UploadShipperContractSidebarContent.tsx","webpack:///./design-system/components/dropdowns/DropdownControl/DropdownControl.scss?043f","webpack:///./broker-admin/store/broker-tour-edit/selectors.ts","webpack:///./broker-admin/utils/api/spot-broker-tranziit/api.ts","webpack:///./broker-admin/layouts/BrokerUsersPage/BrokerTeamsLayout/BrokerTeamsTable/BrokerTeamsTable.scss?01ae","webpack:///./common/store/alerts/sagas.ts","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/utils.ts","webpack:///./broker-admin/layouts/SideBars/CreatePartnerSidebarContent/get-initial-values.ts","webpack:///./common/components/Table/DummyPagination/DummyPagination.scss?2964","webpack:///./common/store/shipper-contract-lane-creation/selectors.ts","webpack:///./common/components/maps/pins/LastAssetWithNumberTrackPointPin/LastAssetWithNumberTrackPointPin.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/hooks/use-selected-lane.ts","webpack:///./common/layouts/LeftMenuLayout/ScrollableContent/ScrollableContent.scss?3304","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerToursListPage/query-models.ts","webpack:///./broker-admin/layouts/SpotRequestsPage/SpotRequestDetailsPage/SpotRequestDetailsPage.tsx","webpack:///./broker-admin/layouts/SettingsPage/RateMatrix/RateMatrix.tsx","webpack:///./broker-admin/components/notification-cards/UpdatedPartnerShipperLaneContractCard/UpdatedPartnerShipperLaneContractCard.scss?ac12","webpack:///./broker-admin/store/notifications/sagas.ts","webpack:///./common/layouts/ChangePasswordPage/validate-form.ts","webpack:///./common/icons/DownArrowIcon.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/hooks/use-reserve-channel-lock.ts","webpack:///./design-system/components/IconTrigger/IconTrigger.scss?f89a","webpack:///./common/layouts/NewOrderPage/MapFooterEstimate/MapFooterEstimate.scss?0482","webpack:///./common/components/notification-cards/ShipmentWasCanceledCard/ShipmentWasCanceledCard.tsx","webpack:///./common/store/shipper-suggest/reducer.ts","webpack:///./broker-admin/layouts/PartnersPage/PartnerTypeControl/PartnerTypeControl.scss","webpack:///./common/layouts/TrailerDetailsPage/TrailerDetailsPage.tsx","webpack:///./common/icons/PlusSignIcon.tsx","webpack:///./broker-admin/store/broker-order-edit/actions.ts","webpack:///./common/components/tabs/ButtonTabs/ButtonTabs.scss?8ac8","webpack:///./common/utils/hooks/useSyncFormValues.ts","webpack:///./common/store/grouped-notification-counts/constants.ts","webpack:///./common/components/dropdowns/TruckRateModeDropdown/TruckRateModeDropdown.tsx","webpack:///./broker-admin/components/notification-cards/TransportationOrderDeclinedCard/TransportationOrderDeclinedCard.tsx","webpack:///./common/layouts/NewOrderPage/CargoDetailsForm/footer-alert-contents/NotUsedRoutePointValidationAlertContent/NotUsedRoutePointValidationAlertContent.tsx","webpack:///./common/icons/ArrowDownIcon.tsx","webpack:///./broker-admin/layouts/SideBars/RFQStatisticsSidebarContent/RFQStatisticsFilters/constants.ts","webpack:///./common/layouts/LeftMenuLayout/ScrollableContent/ScrollableContent.tsx","webpack:///./common/store/vehicle-schedules/actions.ts","webpack:///./common/store/auth/types.ts","webpack:///./broker-admin/store/spot/types.ts","webpack:///./common/layouts/RFQDetailsPageLayout/RFQDetailsPageLayout.tsx","webpack:///./design-system/components/InfoTable/InfoTable.scss?09f3","webpack:///./broker-admin/layouts/ShipperContractDetailsPage/ShipperContractDetailsLayout/ShipperContractDetailsLayout.tsx","webpack:///./broker-admin/components/notification-cards/RevokedPartnerShipperContractCard/RevokedPartnerShipperContractCard.scss?a679","webpack:///./common/components/papers/utils/getVisibleOptimisticPapers.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/DriversAssignmentForm/DriversAssignmentForm.scss?f32f","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteSidebarSkeleton/RouteSidebarSkeleton.tsx","webpack:///./common/store/time-zones/sagas.ts","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/PricingSettingsForm/constants.ts","webpack:///./common/store/user/actions.ts","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/contexts/sync-map-state.ts","webpack:///./broker-admin/components/notification-cards/ExpireSoonPartnerShipperLaneContractCard/ExpireSoonPartnerShipperLaneContractCard.scss?0f19","webpack:///./broker-admin/layouts/SpotRequestsPage/SpotRequestListPage/SpotRequestsTable/cell-renderers/BidsCountCell/BidsCountCell.tsx","webpack:///./common/utils/hooks/usePartnerPermissionsContext.ts","webpack:///./common/components/dropdowns/TimeZoneDropdown/TimeZoneDropdown.tsx","webpack:///./common/store/transport-orders/reducer.ts","webpack:///./common/components/Timeline/constants.ts","webpack:///./common/components/controls/ShipperContractLaneStatusDropdownControl/ShipperContractLaneStatusDropdownControl.tsx","webpack:///./common/icons/SearchIcon.tsx","webpack:///./common/utils/hooks/useWatchFormFieldChanges.ts","webpack:///./common/components/Timeline/Flag/Flag.tsx","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/RulesTable/cell-renderers/ControlsCell/ControlsCell.scss","webpack:///./common/store/auth/actions.ts","webpack:///./common/utils/form-values-storage.ts","webpack:///./broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/ShipperContractLaneCreationConfirmForm/validate-form.ts","webpack:///./common/layouts/BaseShipperContractLanesLayout/BaseShipperContractLanesLayout.tsx","webpack:///./design-system/components/AsyncSearchScrollableList/ListMessage/ListMessage.scss?fd48","webpack:///./common/store/shipper-suggest/types.ts","webpack:///./common/layouts/CommonEditableTruckDetailsLayout/LinkedTrailerAlert/LinkedTrailerAlert.tsx","webpack:///./broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/ShipperContractLaneCreationMap/ShipperContractLaneCreationMap.scss?d102","webpack:///./common/layouts/SideBars/utils.tsx","webpack:///./common/layouts/BaseShipperContractsLayout/BaseShipperContractsTable/cell-renderers/IdCell/IdCell.scss?d0e7","webpack:///./broker-admin/layouts/PartnerPage/PartnerTransportOrderDetails/PartnerTransportOrderDetails.tsx","webpack:///./common/icons/LockIcon.tsx","webpack:///./common/components/status-pill/TrailerStatusPill/TrailerStatusPill.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/hooks/use-sync-points-channels.ts","webpack:///./broker-admin/layouts/SideBars/EditBrokerTeamSidebarContent/ItemsCount/ItemsCount.tsx","webpack:///./common/components/OperationUnavailableReasonsAlert/OperationUnavailableReasonsAlert.scss?425e","webpack:///./broker-admin/components/BaseSpotRequestDetailsSidebarContent/SpotRequestDetails/BidMessage/BidMessage.scss?bd36","webpack:///./common/store/routing-geometry/constants.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteEditMap/ExcludeCountries/ExcludeCountries.tsx","webpack:///./broker-admin/layouts/SideBars/CreateExternalPartnerSidebarContent/constants.ts","webpack:///./common/utils/deep-equal.ts","webpack:///./common/icons/InvoiceIcon.tsx","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/RuleStateControl/RuleStateControl.scss","webpack:///./broker-admin/components/notification-cards/ExpireSoonPartnerShipperContractCard/ExpireSoonPartnerShipperContractCard.scss?970d","webpack:///./common/utils/hooks/useModalDialog.tsx","webpack:///./common/components/suggests/PartnerMainContactSuggest/PartnerMainContactSuggest.tsx","webpack:///./common/components/RangeSelector/RangeSelector.scss?239b","webpack:///./common/utils/validators.ts","webpack:///./broker-admin/store/broker-order-stats/slice.ts","webpack:///./common/components/Table/Table.scss?3c86","webpack:///./broker-admin/components/BaseSpotRequestDetailsSidebarContent/SpotRequestDetails/Bids/Bids.scss?a55d","webpack:///./broker-admin/store/broker-team-edit/slice.ts","webpack:///./design-system/components/InfoTable/formatters/SkeletonFormatter/SkeletonFormatter.tsx","webpack:///./common/layouts/RFQListPageLayout/RFQListPageLayout.tsx","webpack:///./common/store/order-creation/utils/preview-reverse-query.ts","webpack:///./common/layouts/CommonEditableTruckDetailsLayout/TruckDetailsSidebarContent/TruckDetails/TruckDetails.scss?1945","webpack:///./common/components/RedirectPendingUser/RedirectPendingUser.tsx","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/RulesTable/cell-renderers/CreateUpdateCell/CreateUpdateCell.scss?0ae1","webpack:///./broker-admin/store/partner/details/sagas.ts","webpack:///./common/icons/ExpandIcon.tsx","webpack:///./common/utils/percents.ts","webpack:///./common/layouts/SideBars/contents/AddTrailerSidebarContent/AddTrailerSidebarContent.tsx","webpack:///./common/components/AssetSidebarContent/SetUnavailableForm/SetUnavailableForm.tsx","webpack:///./design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger.tsx","webpack:///./common/store/papers-edit/utils/parse-response-data.ts","webpack:///./design-system/components/ButtonGroup/ButtonGroup.scss?08d7","webpack:///./common/layouts/CommonEditableTrailerDetailsLayout/TrailerDetailsSidebarContent/TrailerDetails/TrailerDetails.scss?c313","webpack:///./broker-admin/layouts/PartnersPage/PartnersTable/cell-renderers/TeamsCell/TeamsCell.tsx","webpack:///./common/utils/money.ts","webpack:///./common/components/FilterPills/FilterPill/FilterPill.tsx","webpack:///./common/components/notification-cards/StatusChangedCard/StatusChangedCard.tsx","webpack:///./broker-admin/layouts/BrokerUsersPage/BrokerTeamsLayout/SelectedFilters/SelectedFilters.tsx","webpack:///./common/layouts/TransportOrderDetailsPageLayout/dialogs/UnassignAssetsConfirmation/UnassignAssetsConfirmation.tsx","webpack:///./common/components/dropdowns/DictTrailerDropdown/DictTrailerDropdown.tsx","webpack:///./common/layouts/BaseDocumentsLayout/BaseDocumentsLayout.scss?065e","webpack:///./common/components/AssetSidebarContent/hooks/useAssetServiceLocationContextValue.ts","webpack:///./common/store/carrier-contracts/types.ts","webpack:///./common/layouts/NewOrderPage/RouteMap/RouteMap.scss?2d52","webpack:///./common/components/status/UserStatus/UserStatus.tsx","webpack:///./broker-admin/layouts/InvoicesListPage/InvoicesListPage.scss","webpack:///./common/store/user/sagas.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/RouteEditForm.tsx","webpack:///./common/components/status-pill/TourStatusPill/TourStatusPill.scss","webpack:///./common/utils/semaphore-saga.ts","webpack:///./common/layouts/BaseCarrierContractsLayout/BaseCarrierContractsTable/cell-renderers/ExpireDateCell/ExpireDateCell.tsx","webpack:///./common/layouts/NewOrderPage/CargoDetailsForm/constants.ts","webpack:///./common/icons/TrailerDropOffIcon.tsx","webpack:///./common/utils/features/client-features-config.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/contexts/sync-asset-schedule.ts","webpack:///./broker-admin/components/BaseSpotRequestDetailsSidebarContent/SpotRequestDetails/SpotRequestDetails.tsx","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentDetailsLayout/DocumentDetailsLayout.scss?d1a3","webpack:///./broker-admin/store/broker-order-details/sagas.ts","webpack:///./carrier/utils/shipment-papers-url-factory.ts","webpack:///./broker-admin/components/notification-cards/entities/BrokerOrderNumber/BrokerOrderNumber.scss?ae07","webpack:///./common/components/papers/PaperLayout/PaperPlaceholder/PaperPlaceholder.tsx","webpack:///./common/layouts/SelfCreateCompanyPage/CreateCompanyForm/constants.ts","webpack:///./broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/ShipperContractLaneCreationMap/Estimate/Estimate.tsx","webpack:///./common/layouts/NewOrderPage/OffersForm/SelectedOfferHeader/SelectedOfferHeader.scss?b2bd","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/PickupOrDeliveryRoutePointPicker/PickupOrDeliveryRoutePointPicker.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/constants.ts","webpack:///./common/icons/PdfFileIcon.tsx","webpack:///./broker-admin/components/notification-cards/entities/BrokerOrderNumber/BrokerOrderNumber.tsx","webpack:///./broker-admin/components/dropdowns/BrokerPartnersControl/BrokerPartnersControl.tsx","webpack:///./common/layouts/BaseShipperContractsLayout/BaseShipperContractsTable/cell-renderers/IdCell/IdCell.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/SearchForm/CarrierDropdown/CarrierWithUtilizationDropdownOption/CarrierWithUtilizationDropdownOption.tsx","webpack:///./common/components/status-pill/TransportOrderStatusPill/TransportOrderStatusPill.scss?5684","webpack:///./common/store/transport-order-details/reducer.ts","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/CreditLimit/CreditLimit.scss?c89d","webpack:///./common/layouts/BaseCarrierContractsLayout/dialogs/RevokeContractConfirmation/validate-form.ts","webpack:///./common/layouts/BaseShipperContractDetailsLayout/ShipperContractDetails/ShipperContractDetails.tsx","webpack:///./common/layouts/BaseShipperContractLaneDetailsLayout/ShipperContractLaneDetailsMap/ShipperContractLaneDetailsMap.scss?58dd","webpack:///./common/layouts/LeftMenuLayout/ContentMargins/ContentMargins.scss?1bb3","webpack:///./common/components/units/UnitTypeCount/UnitTypeCount.scss?9e81","webpack:///./common/components/Table/DummyPagination/DummyPagination.tsx","webpack:///./common/components/Table/cell-renderers/CountryCell/CountryCell.tsx","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/SideBarMessage/SideBarMessage.scss?93ad","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/ExpirationContextAlertContent/ExpirationContextAlertContent.tsx","webpack:///./common/layouts/TransportOrderDetailsPageLayout/SpotAssetsAssignmentForm/SpotAssetsAssignmentForm.scss?5337","webpack:///./design-system/components/InfoTable/formatters/SimpleDriverFormatter/SimpleDriverFormatter.tsx","webpack:///./broker-admin/store/price-settings/additional-services/types.ts","webpack:///./common/layouts/BaseDocumentsLayout/dialogs/RejectDocumentConfirmation/get-initial-values.ts","webpack:///./common/utils/api/tranziit/errors/tranziit-api-errors.ts","webpack:///./broker-admin/components/info-tables/CarrierCostPriceInfoTable/CarrierCostPriceInfoTable.tsx","webpack:///./design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel.scss?8c9f","webpack:///./common/layouts/NewOrderPage/OfferDetails/OfferDetails.scss?4979","webpack:///./common/layouts/NewOrderPage/CargoDetailsForm/TemperatureRangePicker/TemperatureRangePicker.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/DeadheadCreationReceipt/DeadheadCreationReceipt.scss?e934","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/WarningsFilter/WarningsFilter.tsx","webpack:///./common/store/grouped-notification-counts/types.ts","webpack:///./common/layouts/dialogs/ActivateAssetDialogModal/ActivateAssetForm/prepare-activate-vehicles-request.ts","webpack:///./common/utils/hooks/useQuery.ts","webpack:///./design-system/components/Divider/Divider.tsx","webpack:///./common/components/notification-cards/WaypointUpdatedCard/WaypointUpdatedCard.tsx","webpack:///./common/store/documents/reducer.ts","webpack:///./common/store/rfqs/types.ts","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/SideBarHeaderRequestStatus/SideBarHeaderRequestStatus.tsx","webpack:///./common/utils/interval-saga.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/TimeIntervalLimitPillLabel/TimeIntervalLimitPillLabel.tsx","webpack:///./common/layouts/TransportOrderDetailsPageLayout/footers/SpotAssetsAssignmentFooterContent/SpotAssetsAssignmentFooterContent.scss?ce2d","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/contants.ts","webpack:///./common/layouts/AuthLoader/AuthLoader.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/footers/SendingToSpotFooterContent/SendingToSpotFooterContent.scss?5e2f","webpack:///./common/components/papers/PaperLayout/UploadedByLabel/UploadedByLabel.tsx","webpack:///./broker-admin/layouts/SideBars/PriceSettingsRuleFiltersSidebarContent/PriceSettingsRuleFiltersSidebarContent.tsx","webpack:///./common/layouts/TransportOrderListPageLayout/WarningsFilter/WarningsFilter.tsx","webpack:///./common/store/order-creation/channels.ts","webpack:///./common/utils/broadcast-channels/seen-notifications.ts","webpack:///./common/store/countries-dict/selectors.ts","webpack:///./common/components/status-colored/ShipperContractLaneColoredStatus/ShipperContractLaneColoredStatus.tsx","webpack:///./common/components/Link/Link.scss?a557","webpack:///./common/icons/XLSIcon.tsx","webpack:///./common/components/Table/cell-renderers/DateCell/DateCell.scss?0a05","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/footers/StatusFooterContent/StatusFooterContent.tsx","webpack:///./common/layouts/dialogs/ChangeRateOrContractAssetDialogModal/ChangeRateOrContractAssetForm/ChangeRateOrContractAssetForm.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/contexts/timezone-context.ts","webpack:///./broker-admin/store/managers/sagas.ts","webpack:///./common/components/CheckboxOptionsList/CheckboxOptionsList.scss?8521","webpack:///./common/icons/ControlLoaderIcon.tsx","webpack:///./common/components/status-colored/TransportOrderColoredStatus/TransportOrderColoredStatus.tsx","webpack:///./common/utils/hooks/useDocumentVisibilityEffect.ts","webpack:///./common/components/notification-cards/TransportationOrderAssetsUnassignedCard/TransportationOrderAssetsUnassignedCard.tsx","webpack:///./broker-admin/layouts/InvoicesListPage/InvoicesListPage.tsx","webpack:///./common/components/MultiPointOrderRouteMap/MultiPointOrderRouteMap.tsx","webpack:///./common/layouts/BaseShipperContractLanesLayout/prepare-fetch-page-query.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/utils/stop-type.ts","webpack:///./common/layouts/NewOrderPage/CargoDetailsForm/validations/not-used-route-points.ts","webpack:///./common/layouts/RightSidebarLayout/RightSidebarLayout.tsx","webpack:///./broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/ShipperContractLaneCreationConfirmForm/AveragePriceOfferDetails/AveragePriceOfferDetails.tsx","webpack:///./common/components/ErrorModal/ErrorModal.tsx","webpack:///./common/components/Timeline/TimelineSidebar/constants.ts","webpack:///./common/store/errors/sagas.ts","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLoader/HeaderSideBarLoader.tsx","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/LockActionOnChangeForm/LockActionOnChangeForm.tsx","webpack:///./design-system/components/dropdowns/DropdownSearchInput/DropdownSearchInput.scss?a5c9","webpack:///./common/components/Table/utils/check-need-render-empty-state.ts","webpack:///./common/store/trailers-dict/reducer.ts","webpack:///./common/layouts/BaseShipperContractLanesLayout/BaseShipperContractLanesTable/cell-renderers/OrdersCountCell/OrdersCountCell.tsx","webpack:///./broker-admin/layouts/PartnerPage/PartnerMembersPage/PartnerMembersPage.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/DeleteWaypointTrigger/DeleteWaypointTrigger.tsx","webpack:///./common/components/TraceIdLabel/TraceIdLabel.scss?aab3","webpack:///./common/components/Table/cell-renderers/EventCell/EventCell.tsx","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentParamsDetailsForm/EvidenceOfTaxDetailsForm/validate-form.ts","webpack:///./broker-admin/layouts/BrokerUsersPage/BrokerUsersTab/BrokerUsersTab.tsx","webpack:///./common/layouts/BaseShipperContractLaneDetailsLayout/ShipperContractLaneDetailsMap/ShipperContractLaneDetailsMap.tsx","webpack:///./common/store/country-settings-dict/reducer.ts","webpack:///./broker-admin/layouts/PartnerPage/PartnerTrailersPage/PartnerTrailersPage.tsx","webpack:///./design-system/components/date-pickers/OpenedDatePicker/OpenedDatePicker.scss?841b","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/FerryOnboardPointPicker/FerryOnboardPointPicker.tsx","webpack:///./broker-admin/components/dropdowns/CarriersSuggest/hooks/use-carrier-suggest-options.ts","webpack:///./common/utils/hooks/useChannelSubscribe.ts","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/ParanjaSideBarLayout/ParanjaSideBarLayout.scss?61f8","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/AssignmentMap.scss?ad78","webpack:///./common/components/status/InvoiceStatus/InvoiceStatus.tsx","webpack:///./broker-admin/components/notification-cards/CompletedPartnerShipperLaneContractCard/CompletedPartnerShipperLaneContractCard.tsx","webpack:///./common/icons/TruckPickUpIcon.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/hooks/use-only-available-lane.ts","webpack:///./broker-admin/components/dropdowns/BrokerUserControl/BrokerUserControl.scss?a3d7","webpack:///./broker-admin/store/partner/details/actions.ts","webpack:///./common/icons/DocIcon.tsx","webpack:///./common/components/papers/ImageLoader/ImageLoader.scss?46e8","webpack:///./common/layouts/SelfCreateCompanyPage/SelfCreateCompanyPage.scss","webpack:///./common/layouts/BaseCarrierContractsLayout/dialogs/RevokeContractConfirmation/RevokeContractConfirmation.scss?46e9","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/AssetTypeTabs/constants.ts","webpack:///./common/store/subject-logs/converter.ts","webpack:///./common/store/shipper-contract-lane-details/sagas.ts","webpack:///./design-system/components/InfoTable/formatters/EditableStringValueFormatter/EditableStringValueFormatter.scss?1071","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout.tsx","webpack:///./common/store/order-creation/utils/prepare-rfq.ts","webpack:///./design-system/components/InfoTable/formatters/AsyncTrailerTypeFormatter/AsyncTrailerTypeFormatter.tsx","webpack:///./common/components/maps/pins/AssetDropOffLocationPin/AssetDropOffLocationPin.tsx","webpack:///./common/layouts/SideBars/contents/DriverFiltersSidebarContent/constants.ts","webpack:///./common/layouts/SideBars/contents/ContractDetailsSidebarContent/ContractDetailsForm/prepare-changes.ts","webpack:///./broker-admin/layouts/BrokerUsersPage/BrokerTeamsLayout/BrokerTeamsTable/cell-renderers/ControlsCell/ControlsCell.tsx","webpack:///./broker-admin/store/price-settings/system-settings/actions.ts","webpack:///./common/components/notification-cards/shared/NotificationVerticalRowsLayout/NotificationVerticalRowsLayout.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/SpotSettingsForm/prepare-system-settings.ts","webpack:///./common/components/RangeSelector/ZoneText/ZoneText.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/TimeIntervalDurationPillLabel/TimeIntervalDurationPillLabel.tsx","webpack:///./common/components/notification-cards/TransportationOrderWasDeclinedCard/TransportationOrderWasDeclinedCard.tsx","webpack:///./common/layouts/SideBars/contents/ContactDetailsSidebarContent/hooks/use-action-options.tsx","webpack:///./common/layouts/Members/InviteUserForm/validate-form.ts","webpack:///./common/layouts/BaseShipperContractsLayout/SelectedFilters/SelectedFilters.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/SearchForm/TimeZoneDropdown/TimeZoneDropdown.tsx","webpack:///./common/layouts/SideBars/hooks.tsx","webpack:///./common/layouts/dialogs/ActivateAssetDialogModal/ActivateAssetForm/RateSourceOption/RateSourceOption.scss?f7e7","webpack:///./broker-admin/store/spot-requests/sagas.ts","webpack:///./common/store/subject-logs/utils.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderRouteMap/BrokerOrderRouteMap.tsx","webpack:///./common/layouts/dialogs/ArchiveAssetConfirmationModal/get-initial-values.ts","webpack:///./common/layouts/BaseShipperContractLanesLayout/BaseShipperContractLanesTable/cell-renderers/IdCell/IdCell.tsx","webpack:///./common/components/info-tables/ShipperPriceOfferInfoTable/ShipperPriceOfferInfoTable.tsx","webpack:///./common/components/SwitchableView/SwitchableViewTrigger/SwitchableViewTrigger.tsx","webpack:///./common/icons/BigRadioIcon.tsx","webpack:///./broker-admin/store/partner/reducer.ts","webpack:///./common/layouts/BaseCarrierContractsLayout/dialogs/RejectContractConfirmation/get-initial-values.ts","webpack:///./common/store/assets/slice.ts","webpack:///./common/layouts/NewOrderPage/OfferDetails/PriceDetailsHeader/PriceDetailsHeader.scss?c8b9","webpack:///./design-system/components/FilePickerInput/FilePickerInput.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/PricingSettingsForm/get-initial-values.ts","webpack:///./broker-admin/layouts/SideBars/EditableShipperContractLaneDetailsSidebarContent/EditableShipperContractLaneDetailsSidebarContent.tsx","webpack:///./common/store/gps-tracking-status/constants.ts","webpack:///./broker-admin/store/price-settings/rates/channels.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/TransportOrderDetails/TransportOrderDetails.scss?ff91","webpack:///./common/components/Company/Company.tsx","webpack:///./design-system/components/AsyncSearchScrollableList/hooks/use-update-options-ids-set.tsx","webpack:///./common/layouts/Members/ContactsTable/cell-renderers/PendingUserCell/PendingUserCell.scss?0588","webpack:///./common/components/maps/MapBound/MapBound.tsx","webpack:///./common/components/entity-details/RouteLocationsOverview/RouteLocationsOverview.scss?965f","webpack:///./broker-admin/store/invoices/channels.ts","webpack:///./common/icons/BigLaneIcon.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/DropPointPicker/DropPointPicker.scss?a33c","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/TimeIntervalDurationPillLabel/TimeIntervalDurationPillLabel.tsx","webpack:///./common/layouts/TrucksPageLayout/TrucksPageLayout.scss?1f6d","webpack:///./broker-admin/components/status-machine/ChangeTransportOrderStatusControl/ChangeTransportOrderStatusControl.tsx","webpack:///./broker-admin/layouts/SideBars/RFQStatisticsSidebarContent/RFQStatisticsSidebarContent.tsx","webpack:///./common/layouts/BaseShipperContractLanesLayout/FiltersSidebarContent/get-query-filters.ts","webpack:///./common/icons/RestoreIcon.tsx","webpack:///./common/components/notification-cards/shared/FieldValue/utils/format-time-slot-value.ts","webpack:///./common/components/dropdowns/options/UserDropdownOptionLabel/UserDropdownOptionLabel.tsx","webpack:///./common/store/trucks-dict/types.ts","webpack:///./common/components/Modal/ModalContent/ModalContent.scss?ed03","webpack:///./common/layouts/BaseDocumentsLayout/BaseDocumentsTable/cell-renderers/ExpireDateCell/ExpireDateCell.scss?18be","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteDetailsForm/validate-form.ts","webpack:///./broker-admin/layouts/PriceSettingsRulePreviewLayout/validate-form.ts","webpack:///./common/store/driver-search/sagas.ts","webpack:///./broker-admin/store/partners-stats/sagas.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/SearchForm/CarrierDropdown/CarrierDropdown.tsx","webpack:///./broker-admin/layouts/PartnerPage/PartnerMembersPage/PartnerMembersPage.scss","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/footers/EditStopContactFooterContent/EditStopContactFooterContent.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/RoutingSettingsForm/prepare-system-settings.ts","webpack:///./common/components/toasts/Toast/Toast.tsx","webpack:///./common/layouts/NewOrderPage/FormTitle/FormTitle.scss?0b92","webpack:///./carrier/utils/api/carrier-tranziit/api.ts","webpack:///./common/utils/features/server-features-config.ts","webpack:///./broker-admin/components/notification-cards/entities/ContractName/ContractName.scss?375b","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderDetails/TourDetailsCard/footers/StartEditTimeWindowsFooter/StartEditTimeWindowsFooter.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/TimeWindowZoneText/TimeWindowZoneText.scss?7130","webpack:///./broker-admin/store/broker-teams/selectors.ts","webpack:///./broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/ShipperContractLaneCreationForm/ShipperContractLaneCreationForm.scss?a2a0","webpack:///./common/components/NavBurger/override.css?6d51","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/prepare-fetch-page-query.ts","webpack:///./common/layouts/Members/PositionOption/PositionOption.scss?c2d7","webpack:///./common/store/drivers/actions.ts","webpack:///./common/components/ExcludeCountriesMapWidget/ExcludedCountry/ExcludedCountry.tsx","webpack:///./common/components/maps/MapControlsLayout/MapControlsLayout.scss?0a15","webpack:///./common/layouts/TrailersPageLayout/query-models.ts","webpack:///./broker-admin/layouts/PartnerPage/PartnerTrucksPage/PartnerTrucksPage.tsx","webpack:///./broker-admin/components/dropdowns/ShipperSuggest/ShipperSuggest.tsx","webpack:///./common/layouts/DriversPageLayout/InviteDriverForm/validate-form.ts","webpack:///./broker-admin/layouts/PartnersPage/SelectedFilters/SelectedFilters.tsx","webpack:///./common/components/Table/cell-renderers/LocationCell/LocationCell.scss?5eae","webpack:///./common/layouts/SideBars/contents/EditDriverSidebarContent/EditDriverFormContent/constants.ts","webpack:///./common/layouts/SideBars/contents/EditDriverSidebarContent/validate-form.ts","webpack:///./common/components/notification-cards/entities/CityName/CityName.tsx","webpack:///./design-system/components/InfoTable/formatters/SkeletonFormatter/SkeletonFormatter.scss?a100","webpack:///./design-system/components/dropdowns/DropdownControl/DropdownControl.tsx","webpack:///./common/store/vehicle-schedules/utils/around-date.ts","webpack:///./broker-admin/components/dropdowns/ShippersSuggest/ShippersSuggest.scss?a348","webpack:///./broker-admin/layouts/SideBars/UploadShipperContractSidebarContent/get-initial-values.ts","webpack:///./common/layouts/LeftCardLayout/LeftCardLayout.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/FerrySettingsForm/validate-form.ts","webpack:///./common/icons/HourglassIcon.tsx","webpack:///./common/layouts/RightSidebarLayout/RightSidebarLayout.scss?7d7e","webpack:///./broker-admin/layouts/PriceSettingsEditRuleLayout/async-validations.ts","webpack:///./broker-admin/layouts/SideBars/RFQStatisticsSidebarContent/RFQStatisticsFilters/RFQStatisticsFilters.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/BrokerOrderTable/cell-renderers/CreateCell/CreateCell.tsx","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentParamsDetailsForm/EvidenceOfTaxDetailsForm/EvidenceOfTaxDetailsForm.tsx","webpack:///./broker-admin/store/spot-requests-stats/actions.ts","webpack:///./common/store/transport-order-details/sagas.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/SpotAssetsAssignmentForm/validate-form.ts","webpack:///./common/components/notification-cards/TransportationOrderOutOfTimeToAssignAssetsCard/TransportationOrderOutOfTimeToAssignAssetsCard.tsx","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/RFQStats/RFQStats.scss?b27a","webpack:///./common/contexts/features.ts","webpack:///./common/layouts/BaseShipperContractsLayout/BaseShipperContractsLayout.scss","webpack:///./common/layouts/LeftMenuLayout/Navigation/Navigation.scss?852d","webpack:///./broker-admin/components/notification-cards/entities/ContractName/ContractName.tsx","webpack:///./common/components/status-pill/SpotRequestStatusPill/SpotRequestStatusPill.scss","webpack:///./common/components/SignUpForm/UserSignUpForm/validate-form.ts","webpack:///./broker-admin/store/broker-tour-edit/sagas.ts","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/LaneDropdownInput/LaneDropdownInputOptionLabel/LaneDropdownInputOptionLabel.scss?f0bf","webpack:///./common/components/CompanyLogo/CompanyLogo.scss?f2b4","webpack:///./common/store/notifications/channels.ts","webpack:///./common/layouts/Members/InviteUserForm/async-validations.ts","webpack:///./broker-admin/store/spot-requests/actions.ts","webpack:///./common/store/partner-suggest/slice.ts","webpack:///./common/components/maps/pins/content/WaypointNumberPinContent/WaypointNumberPinContent.tsx","webpack:///./common/components/notifications/NotificationsBarContent/NotificationCardBody/NotificationCardBody.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/FiltersSidebarContent/OrderTypeDropdown/OrderTypeDropdown.tsx","webpack:///./common/components/LanguageSelector/LanguageSelector.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentAssetSchedules/AssignmentAssetSchedules.tsx","webpack:///./broker-admin/components/dropdowns/TourTypeMultipleDropdown/TourTypeMultipleDropdown.tsx","webpack:///./common/store/rfqs-stats/types.ts","webpack:///./common/utils/form-helpers.ts","webpack:///./common/icons/DragIcon.tsx","webpack:///./common/components/filter-pills/PartnerFilterPill/PartnerFilterPill.tsx","webpack:///./common/icons/DetailsIcon.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerToursListPage/SelectedFilters/SelectedFilters.tsx","webpack:///./broker-admin/store/partners/reducer.ts","webpack:///./common/layouts/dialogs/CancelLastShipmentConfirmation/CancelLastShipmentConfirmation.tsx","webpack:///./common/icons/EmissionIcon.tsx","webpack:///./common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout.tsx","webpack:///./common/components/status-pill/SpotBidStatusPill/SpotBidStatusPill.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/AssetTypeTabs/AssetTypeTabs.tsx","webpack:///./common/layouts/SignInPage/SignInPage.scss?a642","webpack:///./common/components/notification-cards/TourDelayingCard/TourDelayingCard.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/DeleteWaypointTrigger/DeleteWaypointTrigger.tsx","webpack:///./common/layouts/BaseShipperContractDetailsLayout/BaseShipperContractDetailsLayout.scss?4ff7","webpack:///./broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/ShipperContractLaneCreationForm/validate-form.ts","webpack:///./common/components/ColoredStatusLabel/ColoredStatusLabel.scss?e46e","webpack:///./common/layouts/TrucksPageLayout/TrucksTable/TrucksTable.scss?2757","webpack:///./common/components/entity-details/DetailsOrPapersTabs/DetailsOrPapersTabs.scss?2e14","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/TrucksSuggest/TruckOptionLabel/TruckOptionLabel.tsx","webpack:///./common/store/asset-track/actions.ts","webpack:///./broker-admin/layouts/SideBars/PartnerFiltersSidebarContent/PartnerFiltersSidebarContent.tsx","webpack:///./broker-admin/store/spot-requests-stats/reducer.ts","webpack:///./broker-admin/components/BaseSpotRequestDetailsSidebarContent/BaseSpotRequestDetailsSidebarContent.tsx","webpack:///./common/layouts/BaseDocumentsLayout/BaseDocumentsTable/BaseDocumentsTable.tsx","webpack:///./common/utils/watch-document-visibility-change-saga.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/SendingToSpotForm/validate-form.ts","webpack:///./common/layouts/NewOrderPage/CargoDetailsForm/validations/check-temperature-ranges-compatible.ts","webpack:///./common/components/ContractName/ContractName.scss?d1b1","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout.tsx","webpack:///./common/utils/hooks/useEqualPreviousValue.ts","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/SystemSettings.scss?079f","webpack:///./common/components/Table/SortDropdown/SortDropdown.tsx","webpack:///./common/store/members/channels.ts","webpack:///./common/layouts/RFQListPageLayout/query-models.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/AssetClusterPin/AssetClusterPin.tsx","webpack:///./common/utils/hooks/useCountriesByCode.ts","webpack:///./common/layouts/RFQListPageLayout/RFQsTable/RFQsTable.tsx","webpack:///./broker-admin/store/dispatchers/selectors.ts","webpack:///./common/components/SignUpForm/prepare-sign-up-params.ts","webpack:///./common/layouts/BaseCarrierContractsLayout/hooks/use-contracts-action-options.tsx","webpack:///./common/components/AssetSidebarContent/SetUnavailableForm/prepare-query.ts","webpack:///./common/layouts/DriversPageLayout/constants.ts","webpack:///./common/store/documents/actions.ts","webpack:///./common/utils/users.ts","webpack:///./common/components/RangeSelector/Steps/Steps.tsx","webpack:///./common/layouts/CommonEditableShipperContractLaneDetailsLayout/ShipperContractLaneDetailsSidebarContent/ShipperContractLaneDetails/ShipperContractLaneDetails.tsx","webpack:///./common/layouts/SideBars/contents/ContractDetailsSidebarContent/ContractDetails/ContractDetails.scss?22b6","webpack:///./broker-admin/layouts/SideBars/CreateExternalPartnerSidebarContent/get-initial-values.ts","webpack:///./common/utils/additional-services.ts","webpack:///./common/utils/distance.ts","webpack:///./design-system/components/Calendar/YearMonthForm/YearMonthForm.tsx","webpack:///./common/layouts/TimeLeft/TimeLeft.tsx","webpack:///./common/layouts/SideBars/contents/EditDriverSidebarContent/prepare-api-driver-changes.ts","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentDetailsSidebarContent.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/BrokerTourDetails/TransportOrderDetailsCard/TransportOrderDetailsCard.tsx","webpack:///./design-system/components/date-pickers/DatePicker/DatePicker.scss?19d2","webpack:///./common/store/vehicle-schedules/selectors.ts","webpack:///./common/components/DocumentsTable/DocumentsTable.tsx","webpack:///./common/components/SwitchableView/SwitchableViewMapTrigger/SwitchableViewMapTrigger.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/AssetSchedulePin/AssetSchedulePin.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/FerryOnboardPointPicker/FerryOnboardPointPicker.scss?e1b0","webpack:///./broker-admin/layouts/PartnersPage/PartnersTable/cell-renderers/ContactCell/ContactCell.scss?9a69","webpack:///./common/layouts/SideBars/contents/EditDriverSidebarContent/get-initial-values.ts","webpack:///./broker-admin/store/price-settings/rates/actions.ts","webpack:///./common/layouts/RFQListPageLayout/RFQListPageLayout.scss?9d61","webpack:///./common/icons/LinkDropOffIcon.tsx","webpack:///./common/utils/hooks/useDimensions.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/BrokerOrderTable/cell-renderers/TrailerCell/TrailerCell.scss?8fa1","webpack:///./common/icons/NumberIcon.tsx","webpack:///./broker-admin/layouts/SideBars/EditBrokerTeamSidebarContent/validate-form.ts","webpack:///./common/store/additional-services-dict/utils.ts","webpack:///./broker-admin/store/broker-order-assigment/sagas.ts","webpack:///./common/layouts/ContinueSignUpPage/ContinueSignUpPage.scss","webpack:///./common/utils/clipboard.ts","webpack:///./common/layouts/CommonEditableShipperContractLaneDetailsLayout/ShipperContractLaneDetailsSidebarContent/ShipperContractLaneDetailsSidebarContent.scss?5b38","webpack:///./broker-admin/store/partners-stats/reducer.ts","webpack:///./common/components/notification-cards/OrderEditedCard/OrderEditedCard.tsx","webpack:///./common/utils/page-sort.ts","webpack:///./common/store/members/sagas.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/TransportOrderRouteMap/TransportOrderRouteMap.tsx","webpack:///./common/components/PhoneNumberIcon/PhoneNumberIcon.tsx","webpack:///./common/components/notifications/NotificationsBarContent/NotificationCardHead/NotificationCardHead.tsx","webpack:///./common/store/partner-suggest/sagas.ts","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/RulesTable/cell-renderers/CreateUpdateCell/CreateUpdateCell.tsx","webpack:///./common/icons/EcoIcon.tsx","webpack:///./common/utils/request-status.ts","webpack:///./common/icons/InfoIcon.tsx","webpack:///./common/components/papers/message-placeholders/PapersMessagePlaceholder/PapersMessagePlaceholder.tsx","webpack:///./broker-admin/components/notification-cards/CompletedPartnerShipperContractCard/CompletedPartnerShipperContractCard.tsx","webpack:///./broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/ShipperContractLaneCreationConfirmForm/ShipperContractLaneCreationConfirmForm.tsx","webpack:///./common/components/Table/cell-renderers/IdCell/IdCell.scss?26a1","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/SideBarLoader/SideBarLoader.tsx","webpack:///./broker-admin/components/status-pill/PriceRuleStatusPill/PriceRuleStatusPill.tsx","webpack:///./common/components/FuelOptionTypeLabel/FuelOptionTypeLabel.tsx","webpack:///./broker-admin/layouts/PartnersPage/PartnersTable/cell-renderers/ContactCell/ContactCell.tsx","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/PartnerDetailsForm/prepare-partner-details.ts","webpack:///./common/components/Money/Money.scss?aad2","webpack:///./common/components/status/LoadStatus/LoadStatus.tsx","webpack:///./common/layouts/SideBars/contents/TruckFiltersSidebarContent/get-initial-values.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/TrucksSuggest/TruckTriggerLabel/TruckTriggerLabel.scss?e816","webpack:///./common/icons/SnowflakeIcon.tsx","webpack:///./broker-admin/components/BaseSpotRequestDetailsSidebarContent/SpotRequestDetails/SpotRequestDetailsTabs/SpotRequestDetailsTabs.tsx","webpack:///./common/layouts/SideBars/SideBars.tsx","webpack:///./broker-admin/layouts/BrokerRFQsPage/BrokerRFQsListPage/BrokerRFQsListPage.tsx","webpack:///./common/utils/parse-trailer-model.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/TimeWindowZoneText/TimeWindowZoneText.scss?8f5c","webpack:///./common/components/PartnerPermissionsContextProvider/PartnerPermissionsContextProvider.tsx","webpack:///./broker-admin/layouts/InvoicesListPage/prepare-fetch-page-query.ts","webpack:///./broker-admin/store/price-settings/system-settings/types.ts","webpack:///./common/components/forms/FormikField/FormikField.scss?7fe1","webpack:///./common/icons/CheckIcon.tsx","webpack:///./common/layouts/Members/dialogs/InviteUserModal/InviteUserModal.tsx","webpack:///./common/components/dropdowns/ActiveContractDropdown/ActiveContractDropdown.tsx","webpack:///./common/store/trailers-dict/sagas.ts","webpack:///./broker-admin/layouts/App/App.scss?b23f","webpack:///./broker-admin/layouts/PriceSettingsRulePreviewLayout/PriceSettingsRulePreviewLayout.scss?9031","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/FerrySettingsForm/constants.ts","webpack:///./broker-admin/layouts/StatisticsPage/DataSourceDropdown/DataSourceDropdown.scss","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/icons.tsx","webpack:///./common/layouts/ChangePasswordPage/ChangePasswordPage.scss?db2d","webpack:///./common/layouts/AccessDeniedPage/AccessDeniedPage.scss","webpack:///./common/store/errors/selectors.ts","webpack:///./common/utils/prepare-location.ts","webpack:///./broker-admin/layouts/SettingsPage/RateMatrix/ImportCsv/ImportCsv.tsx","webpack:///./common/utils/hooks/usePartnerContext.ts","webpack:///./broker-admin/components/notification-cards/ExpiredPartnerShipperLaneContractCard/ExpiredPartnerShipperLaneContractCard.scss?90b2","webpack:///./common/components/RangeSelector/DnDIconWrap/DnDIconWrap.scss?4905","webpack:///./common/components/notification-cards/TransportationOrderWasCanceledCard/TransportationOrderWasCanceledCard.tsx","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentParamsDetailsForm/EvidenceOfTaxDetailsForm/prepare-approve-data.ts","webpack:///./common/icons/StartIcon.tsx","webpack:///./broker-admin/store/spot-requests-stats/types.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/TransportOrderDetails/ShipmentDetailsCard/ShipmentDetailsCard.tsx","webpack:///./common/components/Modal/ModalDialog/ModalDialog.tsx","webpack:///./common/components/EmissionUnitValue/EmissionUnitValue.scss?c4d1","webpack:///./common/store/notifications/utils/filter-new-notifications.ts","webpack:///./common/layouts/ListPage/ListPageHeaderLayout/ListPageHeaderLayout.scss?5004","webpack:///./common/utils/api/auth/base-security-auth-api.ts","webpack:///./broker-admin/store/broker-team-edit/selectors.ts","webpack:///./broker-admin/layouts/StatisticsPage/constants.ts","webpack:///./broker-admin/store/price-settings/system-settings/selectors.ts","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/dialogs/UnlinkProfileConfirmation/UnlinkProfileConfirmation.tsx","webpack:///./common/layouts/ConfirmEmailPage/ConfirmEmailPage.scss?cc5d","webpack:///./broker-admin/store/broker-tour-stats/slice.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/EditStopContactForm/EditStopContactForm.scss?0c0a","webpack:///./broker-admin/layouts/SpotRequestsPage/SpotRequestDetailsPage/SpotRequestRoute/SpotRequestRoute.tsx","webpack:///./common/utils/file-name.ts","webpack:///./common/components/AsyncDictCountryNameLabel/AsyncDictCountryNameLabel.tsx","webpack:///./common/components/LoaderTitle/LoaderTitle.tsx","webpack:///./broker-admin/store/tenders/actions.ts","webpack:///./common/layouts/SideBars/contents/EditDriverSidebarContent/EditDriverSidebarContent.tsx","webpack:///./common/components/Table/FiltersTrigger/FiltersTrigger.scss","webpack:///./common/components/ControlLoaderLabel/ControlLoaderLabel.scss?71d1","webpack:///./common/components/entity-details/alerts/DelayingWarningAlert.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/BrokerOrderListPage.scss","webpack:///./common/store/grouped-notification-counts/reducer.ts","webpack:///./common/layouts/BaseCarrierContractsLayout/dialogs/ApproveContractConfirmation/ApproveContractConfirmation.tsx","webpack:///./common/components/status-colored/ShipmentColoredStatus/ShipmentColoredStatus.tsx","webpack:///./common/components/notification-cards/BusinessPartnerAddressVerificationCard/BusinessPartnerAddressVerificationCard.tsx","webpack:///./broker-admin/layouts/StatisticsPage/prepare-fetch-query.ts","webpack:///./design-system/components/ExpandTrigger/TransparentTriggerWithTooltip.tsx","webpack:///./common/components/AssetScheduleSidebar/CancelServiceMaintanceTooltipContent/CancelServiceMaintanceTooltipContent.tsx","webpack:///./common/components/SignUpForm/CompanySignUpForm/constants.ts","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/footers/SaveFooterContent/SaveFooterContent.scss?37be","webpack:///./common/layouts/TransportOrderDetailsPageLayout/DriversAssignmentForm/DriverSuggestInput/DriverAssignOptionLabel/DriverAssignOptionLabel.tsx","webpack:///./common/components/AssetSidebarContent/SetUnavailableForm/validate-form.ts","webpack:///./broker-admin/components/notification-cards/entities/PartnerName/PartnerName.scss?722b","webpack:///./common/components/forms/FormikFieldArray/FormikFieldArray.tsx","webpack:///./common/layouts/SideBars/contents/EditContactDetailsSidebarContent/validate-form.ts","webpack:///./common/layouts/ChangePasswordPage/async-validations.ts","webpack:///./common/components/notification-cards/OrderWasPlacedCard/OrderWasPlacedCard.tsx","webpack:///./broker-admin/store/partners/selectors.ts","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/NewOrderParametersSettingsForm/constants.ts","webpack:///./common/layouts/BaseDocumentsLayout/dialogs/RevokeDocumentsConfirmation/RevokeDocumentsConfirmation.tsx","webpack:///./common/layouts/SideBars/contents/TrailerFiltersSidebarContent/TrailerFiltersSidebarContent.tsx","webpack:///./common/components/InfoTable/formatters/UserLinkFormatter/UserLinkFormatter.tsx","webpack:///./common/layouts/TransportOrderDetailsPageLayout/DriversAssignmentForm/constants.ts","webpack:///./common/components/status/RFQStatus/RFQStatus.tsx","webpack:///./common/components/Table/cell-renderers/WarningIndicatorCell/WarningIndicatorCell.scss","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/RFQStats/RFQStats.tsx","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentDetailsLayout/DocumentMessage/DocumentMessage.tsx","webpack:///./broker-admin/components/toasts/utils.tsx","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/PriceSettingsRules.scss","webpack:///./common/store/alerts/models.ts","webpack:///./broker-admin/components/dropdowns/PriceRuleOperationMultipleDropdown/PriceRuleOperationMultipleDropdown.scss?2398","webpack:///./design-system/components/dropdowns/option/DropdownControlOptionLabelWithTooltip/DropdownControlOptionLabelWithTooltip.tsx","webpack:///./common/layouts/ForgotPasswordPage/constants.ts","webpack:///./common/layouts/AccountPage/AccountPreview/icons/SignOutIcon.tsx","webpack:///./broker-admin/store/order-edit-context/utils/get-added-stop-aliases.ts","webpack:///./common/layouts/CommonEditableTruckDetailsLayout/EditTruckSidebarContent/EditTruckSidebarContent.tsx","webpack:///./broker-admin/components/dropdowns/TrailerTypeMultipleDropdown/TrailerTypeMultipleDropdown.tsx","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/RulesTable/cell-renderers/NameCell/NameCell.scss?5fb4","webpack:///./common/components/EmissionUnitValue/EmissionUnitValue.tsx","webpack:///./common/components/Table/cell-renderers/EventAuthorCell/EventAuthorCell.tsx","webpack:///./broker-admin/store/broker-order-assigment/selectors.ts","webpack:///./broker-admin/layouts/PriceSettingsRulesPage/PriceSettingsRuleCreationPage/PriceSettingsRuleCreationPage.tsx","webpack:///./common/components/AssetSidebarContent/SetUnavailableForm/SetUnavailableForm.scss?93f9","webpack:///./common/utils/api/errors/api-request-error-type-guard.ts","webpack:///./carrier/utils/tour-papers-url-factory.ts","webpack:///./common/store/trucks-dict/sagas.ts","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentParamsDetailsForm/EvidenceOfTaxDetailsForm/constants.ts","webpack:///./common/store/transport-order-details/type-guards.ts","webpack:///./common/store/settings/actions.ts","webpack:///./common/layouts/SideBars/contents/AddDriverSidebarContent/AddDriverSidebarContent.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/BrokerTourDetails/TransportOrderDetailsCard/TransportOrderDetailsCard.scss?75ed","webpack:///./common/components/AssetSidebarContent/SetUnavailableForm/contexts/sync-map-state.ts","webpack:///./common/layouts/DriversPageLayout/DriversPageLayout.scss?4501","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerToursListPage/FiltersSidebarContent/FiltersSidebarContent.tsx","webpack:///./design-system/components/date-pickers/internals/DateLinkTrigger/DateLinkTrigger.scss","webpack:///./broker-admin/layouts/PriceSettingsRulePreviewLayout/constants.ts","webpack:///./common/components/maps/pins/content/WaypointNumberPinContent/WaypointNumberPinContent.scss?ba9d","webpack:///./common/components/Radio/Radio.scss?23b1","webpack:///./common/store/vehicle-schedules/channels.ts","webpack:///./common/components/Table/QuickFiltersButtonGroups/QuickFiltersButtonGroups.scss?b4e7","webpack:///./common/store/user/reducer.ts","webpack:///./broker-admin/layouts/BrokerRFQsPage/BrokerRFQsPage.tsx","webpack:///./design-system/components/InfoTable/formatters/PlaceholderFormatter/PlaceholderFormatter.scss?3c35","webpack:///./broker-admin/layouts/LeftMenuLayout/LeftMenuLayout.tsx","webpack:///./common/components/Table/cell-renderers/FlagCell/FlagCell.scss?607a","webpack:///./common/components/toasts/NotificationToastsManager/NotificationToastsManager.tsx","webpack:///./common/layouts/NewOrderPage/MapFooterEstimate/MapFooterEstimate.tsx","webpack:///./common/components/SwitchableView/context.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/TimeIntervalDurationPillLabel/TimeIntervalDurationPillLabel.scss?ccc2","webpack:///./broker-admin/components/PartnerOperationUnavailableReasonsAlert/PartnerOperationUnavailableReasonsAlert.scss?5705","webpack:///./broker-admin/layouts/BrokerUsersPage/BrokerTeamsLayout/prepare-fetch-page-query.ts","webpack:///./broker-admin/layouts/SideBars/PriceSettingsRuleFiltersSidebarContent/PriceSettingsRuleFiltersSidebarContent.scss?15f4","webpack:///./broker-admin/layouts/SideBars/EditBrokerTeamSidebarContent/UserSelectList/UserSelectList.scss?74fe","webpack:///./broker-admin/store/broker-orders/sagas.ts","webpack:///./common/components/toasts/utils.tsx","webpack:///./common/layouts/AlertGroup/AlertGroup.scss?3597","webpack:///./broker-admin/layouts/BrokerUsersPage/BrokerTeamsLayout/BrokerTeamsTable/cell-renderers/PartnersCountCell/PartnersCountCell.tsx","webpack:///./common/components/dropdowns/UserRolesDropdown/UserRolesDropdown.tsx","webpack:///./common/utils/api/auth/base-auth-service.ts","webpack:///./common/utils/stringify-query.ts","webpack:///./common/components/Table/QuickFiltersButtonGroups/QuickFiltersButtonGroups.tsx","webpack:///./common/components/Table/TableActions/TableActions.scss?72d6","webpack:///./common/layouts/SideBars/SideBar/SideBar.tsx","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/RuleTypeMultipleControl/RuleTypeMultipleControl.tsx","webpack:///./common/store/company/channels.ts","webpack:///./common/components/PhoneNumberInput/PhoneNumberInput.tsx","webpack:///./common/layouts/NewOrderPage/CargoDetailsForm/validations/overloading-check.ts","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/PartnerDetailsForm/PartnerDetailsForm.tsx","webpack:///./common/layouts/ChangePasswordPage/ChangePasswordPage.tsx","webpack:///./common/layouts/LeftMenuLayout/LeftMenuLayout.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/dialogs/CancelBrokerOrderConfirmation/CancelBrokerOrderConfirmation.tsx","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/prepare-fetch-page-query.ts","webpack:///./common/components/ScrollToFirstAsyncError/ScrollToFirstAsyncError.tsx","webpack:///./common/components/ReadOnlyField/ReadOnlyField.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/AssetClusterPin/AssetClusterPin.scss?bb77","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderDetails/ShipmentDetailsCard/ShipmentDetailsCard.scss?6893","webpack:///./common/components/status-pill/ShipperContractLaneStatusPill/ShipperContractLaneStatusPill.tsx","webpack:///./common/layouts/SelfCreateCompanyPage/CreateCompanyForm/CreateCompanyForm.tsx","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/dialogs/LockPartnerConfirmation/LockPartnerConfirmation.tsx","webpack:///./broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/ShipperContractLaneCreationForm/ShipperContractLaneCreationForm.tsx","webpack:///./common/store/carrier-suggest/types.ts","webpack:///./common/store/trucks-dict/reducer.ts","webpack:///./common/store/asset-track/reducer.ts","webpack:///./common/components/RangeSelector/Zone/Zone.tsx","webpack:///./design-system/components/dropdowns/DropdownTreeInput/DropdownTreeInput.tsx","webpack:///./broker-admin/layouts/StatisticsPage/StatisticsChart/ChartTooltip/ChartTooltip.tsx","webpack:///./common/components/entity-details/ExcludedCountries/ExcludedCountries.tsx","webpack:///./common/layouts/SideBars/contents/EditContactDetailsSidebarContent/prepare-api-contact.ts","webpack:///./common/layouts/BaseShipperContractsLayout/BaseShipperContractsTable/cell-renderers/OrdersCountCell/OrdersCountCell.tsx","webpack:///./common/layouts/BaseCarrierContractsLayout/dialogs/RevokeContractConfirmation/RevokeContractActionDropdown/RevokeContractActionDropdown.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/contexts/sync-map-state.ts","webpack:///./broker-admin/components/notification-cards/CompletedPartnerCarrierContractCard/CompletedPartnerCarrierContractCard.scss?a89b","webpack:///./common/components/entity-details/ExcludedCountries/ExcludedCountries.scss?6721","webpack:///./common/store/asset-track/selectors.ts","webpack:///./broker-admin/components/notification-cards/CompletedPartnerShipperContractCard/CompletedPartnerShipperContractCard.scss?18bd","webpack:///./common/store/auth/reducer.ts","webpack:///./common/components/notifications/NotificationsBarContent/NotificationCardBody/NotificationCardBody.scss?20be","webpack:///./common/layouts/NewOrderPage/OffersForm/SelectedOfferHeader/SelectedOfferHeader.tsx","webpack:///./common/layouts/LeftMenuLayout/TopBar/TopBar.tsx","webpack:///./broker-admin/layouts/InvoicesListPage/SelectedFilters/SelectedFilters.tsx","webpack:///./broker-admin/components/status-pill/BrokerTourTypePill/BrokerTourTypePill.tsx","webpack:///./broker-admin/store/broker-tours/reducer.ts","webpack:///./common/components/Table/cell-renderers/ControlsCell/ControlsCell.tsx","webpack:///./common/layouts/BaseShipperContractDetailsLayout/EditShipperContractDetailsForm/EditShipperContractDetailsForm.tsx","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentParamsDetailsForm/CommonDocumentParamsDetailsForm/get-initial-values.ts","webpack:///./common/components/Table/SortDropdown/SortDropdown.scss?41ce","webpack:///./common/store/country-settings-dict/types.ts","webpack:///./common/layouts/CommonEditableTruckDetailsLayout/TruckActionHistory/TruckActionHistory.scss?0617","webpack:///./common/components/status-pill/EmissionClassPill/EmissionClassPill.tsx","webpack:///./common/utils/form-validators.ts","webpack:///./common/layouts/SideBars/contents/TrailerFiltersSidebarContent/get-initial-values.ts","webpack:///./broker-admin/components/InfoTable/formatters/AsyncSpotRequestDetailsLinkFormatter/AsyncSpotRequestDetailsLinkFormatter.tsx","webpack:///./common/utils/assignment.ts","webpack:///./broker-admin/layouts/SideBars/StatisticFiltersSidebarContent/StatisticFiltersSidebarContent.scss?aa6c","webpack:///./broker-admin/store/order-edit-context/selectors.ts","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/hooks/usy-sync-map-state.ts","webpack:///./common/icons/CaseIcon.tsx","webpack:///./common/icons/HelpIcon.tsx","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/PartnerExternalPlatformDetailsForm/PartnerExternalPlatformDetailsForm.scss?8c46","webpack:///./broker-admin/store/broker-order-details/utils/find-tour-by-id.ts","webpack:///./common/components/status-pill/CarrierContractStatusPill/CarrierContractStatusPill.tsx","webpack:///./common/layouts/SideBars/SideBarParanja/SideBarParanja.scss?4152","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/utils.ts","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/dialogs/VerifyPartnerAdressConfirmation/VerifyPartnerAdressConfirmation.tsx","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout.scss?2579","webpack:///./common/components/RangeSelector/Trigger/Trigger.tsx","webpack:///./common/components/filter-pills/TrailerDictIdFilterPill/TrailerDictIdFilterPill.tsx","webpack:///./common/components/Table/utils/check-query-filters-keys.ts","webpack:///./common/layouts/DriversPageLayout/query-models.ts","webpack:///./common/layouts/dialogs/ArchiveAssetConfirmationModal/prepare-reject-data.ts","webpack:///./common/store/additional-services-dict/sagas.ts","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/ShipmentDetailsForm.scss?b5e4","webpack:///./broker-admin/components/dropdowns/DispatcherDropdown/DispatcherDropdown.tsx","webpack:///./common/store/spot-assets-assigment/actions.ts","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/BasicWidgetHeaderActions/BasicWidgetHeaderActions.scss?0726","webpack:///./broker-admin/store/broker-tours/slice.ts","webpack:///./common/utils/hooks/useHistoryPush.ts","webpack:///./broker-admin/layouts/SideBars/PartnerFiltersSidebarContent/get-initial-values.ts","webpack:///./common/layouts/SideBars/SideBarLayout/SideBarLayout.tsx","webpack:///./common/layouts/TransportOrderDetailsPageLayout/footers/StatusFooterContent/StatusFooterContent.tsx","webpack:///./common/store/shipper-contract-details/type-guards.ts","webpack:///./common/utils/api/tranziit/errors/parse-errors.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/TrucksSuggest/TruckTriggerLabel/TruckTriggerLabel.tsx","webpack:///./common/layouts/ChangePasswordPage/constants.ts","webpack:///./broker-admin/components/notification-cards/CompletedPartnerShipperLaneContractCard/CompletedPartnerShipperLaneContractCard.scss?76b6","webpack:///./broker-admin/layouts/PriceSettingsEditRuleLayout/PriceSettingsEditRuleLayout.scss?3230","webpack:///./common/components/RangeSelector/ZoneMark/ZoneMark.scss?b48e","webpack:///./common/store/errors/utils.ts","webpack:///./common/layouts/BaseShipperContractLanesLayout/FiltersSidebarContent/FiltersSidebarContent.tsx","webpack:///./design-system/components/Calendar/Calendar.scss?c8d3","webpack:///./common/utils/hooks/useRemoteFormActions.ts","webpack:///./common/store/gps-tracking-status/selectors.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/utils.ts","webpack:///./common/components/notifications/NotificationsBarContent/NotificationsBarContent.scss?b601","webpack:///./broker-admin/components/status-machine/footers/ChangeTourStatusFooter/CancelSpotRequestFooter/CancelSpotRequestFooter.scss?eb30","webpack:///./common/utils/hooks/useStateSafeHistory.ts","webpack:///./common/icons/OriginIcon.tsx","webpack:///./common/utils/hooks/useDebouncedEffect.ts","webpack:///./common/components/ArchiveReasonAlert/ArchiveReasonAlert.tsx","webpack:///./common/store/rfq-details/reducer.ts","webpack:///./broker-admin/components/toasts/models.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/AddressChangesIndicator/AddressChangesIndicator.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderDetails/TransportOrderDetailsCard/TransportOrderDetailsCard.tsx","webpack:///./common/store/documents/selectors.ts","webpack:///./common/store/errors/types.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/BrokerTourDetails/ShipmentDetailsCard/ShipmentDetailsCard.scss?fa16","webpack:///./common/components/maps/MapStackClusterPin/MapStackClusterPin.tsx","webpack:///./common/store/spot-assets-assigment/reducer.ts","webpack:///./common/layouts/BaseShipperContractDetailsLayout/dialogs/RevokeShipperContractConfirmation/constants.ts","webpack:///./broker-admin/store/statistics/types.ts","webpack:///./common/layouts/TrucksPageLayout/TrucksTable/cell-renderers/StatusCell/StatusCell.tsx","webpack:///./common/layouts/BaseShipperContractDetailsLayout/dialogs/RevokeShipperContractConfirmation/RevokeShipperContractConfirmation.scss?7cb2","webpack:///./common/store/trailers-dict/selectors.ts","webpack:///./common/layouts/BaseShipperContractDetailsLayout/dialogs/RevokeShipperContractConfirmation/prepare-reject-data.ts","webpack:///./common/layouts/AccountPage/validate-form.ts","webpack:///./broker-admin/layouts/PriceSettingsRulePreviewLayout/prepare-api-rule-preview.ts","webpack:///./common/store/documents-dict/reducer.ts","webpack:///./broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/ShipperContractLaneCreationMap/ShipperContractLaneCreationMap.tsx","webpack:///./broker-admin/components/PriceRuleTargetLabel/PriceRuleTargetLabel.scss?2dd9","webpack:///./common/components/status-pill/TransportOrderStatusPill/TransportOrderStatusPill.tsx","webpack:///./broker-admin/components/tour-receipt-details/MileageInfoTable/MileageInfoTable.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/contexts/sync-form-values.ts","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/PartnerDetailsHeaderPills/PartnerDetailsHeaderPills.scss?20e7","webpack:///./broker-admin/layouts/PartnerPage/PartnerDocumentsPage/PartnerDocumentsPage.scss?6f76","webpack:///./common/layouts/TrailersPageLayout/TrailersTable/TrailersTable.tsx","webpack:///./broker-admin/components/PriceRuleTypeLabel/PriceRuleTypeLabel.scss?b7b8","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/PickupPointPicker/PickupPointPicker.tsx","webpack:///./common/store/time-zones/selectors.ts","webpack:///./common/icons/PartnersIcon.tsx","webpack:///./design-system/components/dropdowns/option/DropdownControlTriggerLabel/DropdownControlTriggerLabel.scss?6299","webpack:///./broker-admin/components/dropdowns/PriceComponentTypeCustomMultipleDropdown/PriceComponentTypeCustomMultipleDropdown.tsx","webpack:///./common/components/AssetSidebarContent/contexts/asset-service-location-context.ts","webpack:///./common/components/AssetSidebarContent/SetUnavailableForm/hooks/useSyncMapState.ts","webpack:///./broker-admin/store/spot-request-details/actions.ts","webpack:///./broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/ShipperContractLaneCreationForm/constants.ts","webpack:///./broker-admin/store/order-edit-context/utils/convert-route-point-type.ts","webpack:///./common/store/country-settings-dict/sagas.ts","webpack:///./common/layouts/BaseDocumentsLayout/hooks/use-documents-action-options.tsx","webpack:///./common/components/SignUpForm/CompanySignUpForm/CompanySignUpForm.tsx","webpack:///./common/layouts/LeftMenuLayout/menu-icons.tsx","webpack:///./common/layouts/NewOrderPage/OfferDetails/CollapsedOfferDetails/CollapsedOfferDetails.tsx","webpack:///./common/store/order-creation/sagas.ts","webpack:///./common/components/ControlLoaderLabel/ControlLoaderLabel.tsx","webpack:///./broker-admin/store/spot-requests-stats/selectors.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderDetails/BrokerOrderDetails.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/SystemSettings.tsx","webpack:///./common/components/papers/dialogs/DeletePaperConfirmation/DeletePaperConfirmation.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/AssignmentSettingsForm/AssignmentSettingsForm.scss?21cd","webpack:///./common/utils/hooks/usePollingCallback.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/SendingToSpotForm/SendingToSpotForm.scss?0a7c","webpack:///./common/store/carrier-contract-details/sagas.ts","webpack:///./common/components/Timeline/TimeWindow/TimeWindow.scss?bd50","webpack:///./common/utils/hooks/useSideBarHeaderHeight.ts","webpack:///./common/components/status-pill/ShipmentStatusPill/ShipmentStatusPill.scss","webpack:///./common/components/DeprecatedCountyFlagLabel/DeprecatedCountyFlagLabel.scss?2075","webpack:///./common/components/notifications/NotificationLabel/NotificationLabel.scss?b482","webpack:///./common/store/routing-geometry/sagas.ts","webpack:///./common/layouts/CommonEditableTruckDetailsLayout/EditTruckSidebarContent/ChangeRateOrContractWarning/ChangeRateOrContractWarning.tsx","webpack:///./broker-admin/layouts/SideBars/PriceSettingsEditRuleSidebarContent/PriceSettingsEditRuleSidebarContent.tsx","webpack:///./design-system/components/date-pickers/internals/DatePickerOverlay/DatePickerOverlay.scss?a881","webpack:///./design-system/components/dropdowns/SuggestInput/SuggestInput.tsx","webpack:///./design-system/components/InfoTable/formatters/PlaceholderFormatter/PlaceholderFormatter.tsx","webpack:///./common/components/suggests/PartnerUserSuggest/PartnerUserSuggest.tsx","webpack:///./common/components/Timeline/utils.ts","webpack:///./common/layouts/Members/dialogs/RestoreUserConfirmation/RestoreUserConfirmation.tsx","webpack:///./common/store/drivers/reducer.ts","webpack:///./common/layouts/BaseCarrierContractsLayout/dialogs/RejectContractConfirmation/RejectContractConfirmation.scss?9382","webpack:///./common/utils/permissions.ts","webpack:///./broker-admin/store/broker-tour-edit/slice.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/FiltersSidebarContent/get-initial-values.ts","webpack:///./common/store/country-settings-dict/selectors.ts","webpack:///./common/layouts/NewOrderPage/OfferDetails/EditOfferTotalPriceLayout/EditOfferTotalPriceLayout.scss?ee94","webpack:///./common/layouts/SideBars/contents/DriverFiltersSidebarContent/get-initial-values.ts","webpack:///./broker-admin/components/status-machine/footers/ChangeTourStatusFooter/ChangeTourStatusFooter/ChangeTourStatusFooter.tsx","webpack:///./common/layouts/SideBars/contents/ContractDetailsSidebarContent/ContractDetailsForm/ContractDetailsForm.tsx","webpack:///./common/layouts/TransportOrderDetailsPageLayout/dialogs/DeclineOrderConfirmation/DeclineOrderConfirmation.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/SpotSettingsForm/get-initial-values.ts","webpack:///./broker-admin/layouts/PriceSettingsRulePreviewLayout/PreviewMessage/PreviewMessage.scss?c525","webpack:///./common/store/routing-geometry/slice.ts","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/RulesTable/cell-renderers/ControlsCell/ControlsCell.tsx","webpack:///./common/utils/safe-arithmetic.ts","webpack:///./common/utils/get-scroll-bar-width.ts","webpack:///./common/components/dropdowns/UserFormalDropdown/UserFormalDropdown.tsx","webpack:///./common/store/company/types.ts","webpack:///./common/components/notification-cards/entities/AssetLink/AssetLink.tsx","webpack:///./common/store/rfqs-stats/actions.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/EditTimeWindowsForm/EditTimeWindowsForm.tsx","webpack:///./common/icons/BigQuestionIcon.tsx","webpack:///./broker-admin/store/broker-team-details/utils/normalize-team-details.ts","webpack:///./common/icons/FilledCircleIcon.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/footer-alert-contents/ReplacedLocationsAlertContent/ReplacedLocationsAlertContent.tsx","webpack:///./common/layouts/BaseDocumentsLayout/hooks/use-documents-rows.tsx","webpack:///./common/store/order-creation/selectors.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/constants.ts","webpack:///./common/components/Timeline/TimelineSidebar/utils.ts","webpack:///./common/icons/RightArrowIcon.tsx","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentDetailsLayout/DocumentMessage/DocumentMessage.scss?20b5","webpack:///./common/components/range-selectors/TimeWindowPicker/TimeWindowPicker.tsx","webpack:///./common/utils/google-places.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/DriversAssignmentForm/DriverSuggestInput/DriverSuggestInput.tsx","webpack:///./broker-admin/layouts/PriceSettingsEditRuleLayout/prepare-api-rule.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/DriversAssignmentForm/DriverSuggestInput/DriverAssignOptionLabel/DriverAssignOptionLabel.scss?595c","webpack:///./common/layouts/CommonEditableTruckDetailsLayout/EditTruckSidebarContent/TruckDetailsForm/TruckDetailsForm.scss?b7f7","webpack:///./common/store/shipper-contract-details/selectors.ts","webpack:///./common/layouts/TrailersPageLayout/TrailersTable/cell-renderers/TypeCell/TypeCell.scss?08be","webpack:///./common/components/maps/pins/WaypointNumberPin/WaypointNumberPin.tsx","webpack:///./common/components/status/TourStatus/TourStatus.tsx","webpack:///./broker-admin/components/dropdowns/TrailerTypeMultipleDropdown/TrailerTypeMultipleDropdown.scss","webpack:///./common/components/maps/MapLoader/MapLoader.tsx","webpack:///./common/components/RangeSelector/Zone/Zone.scss?ca40","webpack:///./common/layouts/TransportOrderDetailsPageLayout/SpotAssetsAssignmentForm/SpotAssetsAssignmentForm.tsx","webpack:///./common/layouts/SideBars/contents/AddDriverSidebarContent/prepare-api-driver-changes.ts","webpack:///./common/components/notification-cards/TransportationOrderWasUpdatedCard/TransportationOrderWasUpdatedCard.tsx","webpack:///./common/components/ScrollToFirstError/ScrollToFirstError.tsx","webpack:///./common/components/Table/header-renderers/CheckboxHeader/CheckboxHeader.tsx","webpack:///./common/layouts/BaseCarrierContractsLayout/BaseCarrierContractsTable/cell-renderers/ExpireDateCell/ExpireDateCell.scss?6c3f","webpack:///./common/layouts/BaseDocumentsLayout/hooks/get-document-info.tsx","webpack:///./common/components/papers/PaperLayout/PaperLayout.scss?85b0","webpack:///./common/components/status-pill/RFQStatusPill/RFQStatusPill.scss?87d7","webpack:///./common/components/Table/SearchControl/SearchControl.tsx","webpack:///./broker-admin/components/notification-cards/TransportationOrderMileagAndPaymentChangedCard/TransportationOrderMileagAndPaymentChangedCard.scss?4f30","webpack:///./common/store/order-creation/utils/prepare-reserve.ts","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/footers/ReviewFooterContent/ReviewFooterContent.tsx","webpack:///./common/components/maps/MapPin/MapPin.scss?6df6","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/hooks/createInitWaypointTruckDropPoint.tsx","webpack:///./broker-admin/store/price-settings/additional-services/utils.ts","webpack:///./broker-admin/store/dispatchers/types.ts","webpack:///./common/layouts/SideBars/SideBar/SideBar.scss?0e67","webpack:///./broker-admin/layouts/SideBars/CreatePartnerSidebarContent/validate-form.ts","webpack:///./common/layouts/NewOrderPage/OffersForm/QuickActions/QuickActions.scss?95dd","webpack:///./common/layouts/NewOrderPage/CargoDetailsForm/validate-form.ts","webpack:///./common/layouts/SideBars/contents/EditDriverSidebarContent/EditDriverFormContent/EditDriverFormContent.scss?eea0","webpack:///./broker-admin/components/notification-cards/InvitedToTeamCard/InvitedToTeamCard.scss?47ae","webpack:///./common/store/rfqs-stats/reducer.ts","webpack:///./broker-admin/layouts/SideBars/utils.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/AlertsSettingsForm/constants.ts","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/PartnerDetailsLayout/PartnerDetailsLayout.tsx","webpack:///./common/layouts/NewOrderPage/CargoDetailsForm/CargoDetailsForm.scss?c45b","webpack:///./broker-admin/components/notification-cards/RevokedPartnerShipperLaneContractCard/RevokedPartnerShipperLaneContractCard.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/RoutingSettingsForm/RoutingSettingsForm.tsx","webpack:///./common/components/Timeline/TimelineSidebar/TimelineSidebar.scss?7ad6","webpack:///./broker-admin/components/notification-cards/RevokedPartnerCarrierContractCard/RevokedPartnerCarrierContractCard.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerToursListPage/BrokerToursTable/BrokerToursTable.tsx","webpack:///./broker-admin/store/price-settings/rates/selectors.ts","webpack:///./common/utils/download-image.ts","webpack:///./common/icons/TimeWindowIcon.tsx","webpack:///./broker-admin/layouts/PriceSettingsEditRuleLayout/constants.ts","webpack:///./design-system/components/DividerWithDropdownControl/DividerTrigger/DividerTrigger.scss?eda4","webpack:///./common/components/units/UnitType/UnitType.tsx","webpack:///./common/icons/UserSettingsIcon.tsx","webpack:///./common/store/shipper-contracts/slice.ts","webpack:///./common/components/Table/cell-renderers/DateCell/DateCell.tsx","webpack:///./design-system/components/Checkbox/Checkbox.tsx","webpack:///./broker-admin/components/notification-cards/ExpireSoonPartnerCarrierContractCard/ExpireSoonPartnerCarrierContractCard.tsx","webpack:///./common/components/status-pill/OrderStatusPill/OrderStatusPill.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/footers/SendingToSpotFooterContent/SendingToSpotFooterContent.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/hooks/use-sync-reserve-channels.ts","webpack:///./common/layouts/TransportOrderListPageLayout/TransportOrderListPageLayout.tsx","webpack:///./common/layouts/Members/ContactSidebarHeader/ContactSidebarHeader.scss?30be","webpack:///./common/components/Widget/Widget.tsx","webpack:///./broker-admin/store/price-settings/reducer.ts","webpack:///./common/utils/hooks/useWatchFormFormHasErrors.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/SyncPointsWatcher/SyncPointsWatcher.tsx","webpack:///./common/store/vehicle-schedules/types.ts","webpack:///./common/store/auth/constants.ts","webpack:///./common/components/ReadOnlyFieldValue/ReadOnlyFieldValue.scss?ad71","webpack:///./common/components/dropdowns/TruckModelDropdown/TruckModelDropdown.tsx","webpack:///./common/components/LinkButton/LinkButton.scss?360a","webpack:///./common/components/FieldGroup/FieldGroup.scss?0ffc","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/BrokerOrderTable/BrokerOrderTable.tsx","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentParamsDetailsForm/CommonDocumentParamsDetailsForm/constants.ts","webpack:///./common/layouts/TrailerDetailsPage/TrailerDetailsPage.scss","webpack:///./broker-admin/store/price-settings/additional-services/selectors.ts","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/SideBarLoader/SideBarLoader.scss?6eb3","webpack:///./common/components/dropdowns/EmissionClassMultipleDropdown/EmissionClassMultipleDropdown.tsx","webpack:///./broker-admin/store/partner/details/utils/check-need-show-billing-info.ts","webpack:///./common/components/SwitchableView/SwitchableViewMapTrigger/SwitchableViewMapTrigger.scss?b52d","webpack:///./common/components/dropdowns/DictTrailerDropdown/DictTrailerDropdown.scss?1952","webpack:///./common/layouts/BaseShipperContractsLayout/BaseShipperContractsTable/cell-renderers/ContractNameCell/ContractNameCell.tsx","webpack:///./broker-admin/layouts/PartnersPage/PartnersTable/PartnersTable.tsx","webpack:///./design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger.scss?1838","webpack:///./common/layouts/NewOrderPage/RouteMap/RouteMap.tsx","webpack:///./common/layouts/dialogs/ActivateAssetDialogModal/ActivateAssetForm/RateSourceOption/RateSourceOption.tsx","webpack:///./design-system/components/InfoTable/formatters/WarningTextFormatter/WarningTextFormatter.tsx","webpack:///./common/icons/LinearScaleIcon.tsx","webpack:///./design-system/components/CheckboxTree/CheckboxTree.scss?bf23","webpack:///./common/components/dropdowns/UserFormalDropdown/UserFormalDropdown.scss?1217","webpack:///./common/components/papers/PaperLayout/PaperLayout.tsx","webpack:///./common/layouts/CommonEditableShipperContractLaneDetailsLayout/dialogs/RevokeShipperLaneConfirmationModal/RevokeShipperLaneConfirmationModal.tsx","webpack:///./design-system/components/dropdowns/option/DropdownControlTriggerLabel/DropdownControlTriggerLabel.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/PickupOrDeliveryRoutePointPicker/PickupOrDeliveryRoutePointPicker.tsx","webpack:///./common/components/SignUpForm/UserSignUpForm/constants.ts","webpack:///./broker-admin/layouts/PartnersPage/PartnersTable/cell-renderers/NameCell/NameCell.tsx","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/PartnerDetailsPage.scss","webpack:///./common/components/forms/contexts/form-async-errors-context.ts","webpack:///./common/store/user/types.ts","webpack:///./common/layouts/SideBars/contents/ContractDetailsSidebarContent/ContractDetails/ContractDetails.tsx","webpack:///./broker-admin/store/broker-order-assigment/types.ts","webpack:///./common/components/dropdowns/DictTrailerMultipleDropdown/DictTrailerMultipleDropdown.scss","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/PricingSettingsForm/prepare-system-settings.ts","webpack:///./broker-admin/store/deadhead-creation/slice.ts","webpack:///./common/layouts/LoaderOverlay/LoaderOverlay.tsx","webpack:///./broker-admin/utils/hooks/useBrokerOrderPayloadWaypoints.tsx","webpack:///./broker-admin/store/statistics/actions.ts","webpack:///./common/layouts/NewOrderPage/OfferDetails/PriceDetailsHeader/PriceDetailsHeader.tsx","webpack:///./common/components/NumberInput/NumberInput.tsx","webpack:///./design-system/components/InfoTable/formatters/AttentionTextFormatter/AttentionTextFormatter.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/SpotSettingsForm/SpotSettingsForm.tsx","webpack:///./common/components/notification-cards/ExpireSoonDocumentCard/ExpireSoonDocumentCard.scss?5234","webpack:///./broker-admin/utils/shipment-papers-url-factory.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/footers/EditTourStopContactFooterContent/EditTourStopContactFooterContent.tsx","webpack:///./common/components/Table/QuickFilters/QuickFilters.scss?2f91","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/BrokerTourDeadheadCreationPage.tsx","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentDetailsLayout/DocumentSummary/DocumentSummary.scss?d19a","webpack:///./broker-admin/components/BaseSpotRequestDetailsSidebarContent/SpotRequestDetails/ShipmentDetailsCard/ShipmentDetailsCard.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/hooks/use-edit-route-watcher.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteDetailsForm/prepare-values.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/TransportOrderDetails/ShipmentDetailsCard/ChangeShipmentStatusSidebarFooter/ChangeShipmentStatusSidebarFooter.tsx","webpack:///./common/layouts/SelfCreateCompanyPage/SelfCreateCompanyPage.tsx","webpack:///./common/components/status/BrokerOrderStatus/BrokerOrderStatus.tsx","webpack:///./common/components/Table/Table.tsx","webpack:///./common/components/maps/MapTooltip/MapTooltip.tsx","webpack:///./broker-admin/store/invoices/types.ts","webpack:///./common/components/Table/WarningFilterOptionsDropdown/WarningFilterOptionsDropdown.scss?f5fd","webpack:///./design-system/components/OutsideClickHandler/OutsideClickHandler.tsx","webpack:///./common/icons/CommentIcon.tsx","webpack:///./common/store/trailers/channels.ts","webpack:///./common/components/ErrorBoundary/ErrorBoundary.tsx","webpack:///./common/layouts/TransportOrderDetailsPageLayout/SpotAssetsAssignmentForm/constants.ts","webpack:///./broker-admin/store/spot-requests/types.ts","webpack:///./broker-admin/components/pills/PriceRuleTargetPill/PriceRuleTargetPill.tsx","webpack:///./common/components/notifications/NotificationsBarContent/NotificationsBarContent.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/BrokerTourDetails/TabTourDetails/TabTourDetails.tsx","webpack:///./common/layouts/CommonEditableShipperContractLaneDetailsLayout/EditShipperContractLaneSidebarContent/EditShipperContractLaneSidebarContent.scss?6526","webpack:///./broker-admin/layouts/SideBars/EditBrokerTeamSidebarContent/PartnerSelectList/PartnerSelectList.scss?e310","webpack:///./broker-admin/layouts/PartnersPage/PartnersTable/cell-renderers/TypeCell/TypeCell.tsx","webpack:///./common/components/tabs/TabGroupWithDivider/TabGroupWithDivider.scss?ff09","webpack:///./common/layouts/TransportOrderListPageLayout/FiltersSidebarContent/FiltersSidebarContent.scss?ae14","webpack:///./common/icons/UpdateUserIcon.tsx","webpack:///./common/components/CopyTextButton/CopyTextButton.tsx","webpack:///./common/layouts/BaseCarrierContractsLayout/dialogs/RejectContractConfirmation/prepare-reject-data.ts","webpack:///./common/store/rfqs-changes/actions.ts","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/prepare-api-requests.ts","webpack:///./design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInput.tsx","webpack:///./common/components/status/TransportOrderStatus/TransportOrderStatus.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/FiltersSidebarContent/TransportOrderTypeDropdown/TransportOrderTypeDropdown.tsx","webpack:///./common/components/MultiPointOrderRouteMap/MultiPointOrderRouteMap.scss?4082","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/BrokerOrderTable/cell-renderers/PickUpCell/PickUpCell.tsx","webpack:///./common/layouts/NewOrderPage/CargoDetailsForm/footer-alert-contents/ExpirationRFQAlertContent/ExpirationRFQAlertContent.tsx","webpack:///./broker-admin/store/broker-orders/selectors.ts","webpack:///./common/contexts/sync-form-values.ts","webpack:///./common/components/AssetSidebarContent/SetUnavailableFooterContent/SetUnavailableFooterContent.scss?78e9","webpack:///./common/components/toasts/AlertToastsManager/models.ts","webpack:///./common/layouts/BaseDocumentsLayout/BaseDocumentsTable/cell-renderers/ExpireDateCell/ExpireDateCell.tsx","webpack:///./common/layouts/ContinueSignUpPage/ContinueSignUpForm/ContinueSignUpForm.scss?cf2e","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerToursListPage/FiltersSidebarContent/constants.ts","webpack:///./broker-admin/components/BaseSpotRequestDetailsSidebarContent/SpotRequestDetails/BidMessage/BidMessage.tsx","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/CreditLimit/CreditLimit.tsx","webpack:///./common/store/order-creation/utils/get-dates-hash.ts","webpack:///./broker-admin/store/price-settings/additional-services/actions.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/DriversAssignmentForm/DriverSuggestInput/utils.ts","webpack:///./broker-admin/store/broker-tours/sagas.ts","webpack:///./broker-admin/components/BaseSpotRequestDetailsSidebarContent/SpotRequestDetails/SpotRequestDetailsTabs/SpotRequestDetailsTabs.scss?2afb","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderDetailsPage.tsx","webpack:///./common/components/Timeline/TimelineSidebar/TimelineSidebar.tsx","webpack:///./common/utils/broker-appointment.ts","webpack:///./common/layouts/TransportOrderListPageLayout/SelectedFilters/SelectedFilters.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/TimePillLabel/TimePillLabel.scss?9d75","webpack:///./common/components/Table/cell-renderers/EmissionClassCell/EmissionClassCell.tsx","webpack:///./broker-admin/components/PartnerPermissionsContextProvider/PartnerPermissionsContextProvider.tsx","webpack:///./common/components/ActionOverlay/ActionOverlay.scss?f9b7","webpack:///./broker-admin/layouts/PartnerPage/PartnerTrucksPage/PartnerTrucksPage.scss","webpack:///./common/icons/ExtraPointIcon.tsx","webpack:///./common/components/Table/cell-renderers/TelematicUpdateDateCell/TelematicUpdateDateCell.tsx","webpack:///./common/components/Table/cell-renderers/WarningIndicatorCell/WarningIndicatorCell.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/validate-form.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/utils.ts","webpack:///./common/layouts/BaseCarrierContractsLayout/BaseCarrierContractsTable/cell-renderers/ContractNameCell/ContractNameCell.scss?ffe0","webpack:///./broker-admin/layouts/SideBars/StatisticFiltersSidebarContent/get-query-filters.ts","webpack:///./design-system/components/InfoTable/formatters/AssetLabelFormatter/AssetLabelFormatter.tsx","webpack:///./common/layouts/NewOrderPage/getter-form-fill-percent.ts","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/SideBarMessage/SideBarMessage.tsx","webpack:///./common/layouts/NewOrderPage/OffersForm/AdditionalServicesGroup/AdditionalServicesGroup.scss?3a88","webpack:///./broker-admin/layouts/SideBars/SpotRequestsFiltersSidebarContent/get-initial-values.ts","webpack:///./common/layouts/Members/InviteUserForm/InviteUserForm.tsx","webpack:///./common/store/documents/utils/prepare-document.ts","webpack:///./common/layouts/BaseShipperContractLanesLayout/FiltersSidebarContent/constants.ts","webpack:///./common/components/Table/cell-renderers/HumanReadableFullDateCell/HumanReadableFullDateCell.tsx","webpack:///./common/components/SignUpForm/CompanySignUpForm/CompanySignUpForm.scss?f08c","webpack:///./shipper/utils/urls.ts","webpack:///./broker-admin/store/broker-teams/slice.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/query-models.ts","webpack:///./broker-admin/layouts/InvoicesListPage/InvoicesTable/InvoicesTable.tsx","webpack:///./common/components/papers/CompactAttachPaperTrigger/CompactAttachPaperTrigger.tsx","webpack:///./broker-admin/store/partner/details/channels.ts","webpack:///./common/layouts/RFQDetailsPageLayout/footers/ContinueRFQ/ContinueRFQ.tsx","webpack:///./broker-admin/layouts/SideBars/SpotRequestsFiltersSidebarContent/SpotRequestsFiltersSidebarContent.scss?8bde","webpack:///./common/layouts/DriversPageLayout/dialogs/CancelDriverInviteModal/CancelDriverInviteModal.tsx","webpack:///./common/store/carriers-utilization/selectors.ts","webpack:///./broker-admin/layouts/SideBars/CreateExternalPartnerSidebarContent/CreateExternalPartnerSidebarContent.scss?019f","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/footers/SendingToSpotFooterContent/SendingToSpotFooterContent.tsx","webpack:///./common/store/driver-search/types.ts","webpack:///./common/utils/api/errors/not-implemented-error.ts","webpack:///./common/contexts/common-url-factory-context.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/BrokerOrderListPage.tsx","webpack:///./common/store/order-creation/constants.ts","webpack:///./common/layouts/NewOrderPage/OffersForm/AdditionalServices/AdditionalServices.tsx","webpack:///./common/utils/watch-document-visibility-change-or-interval-saga.ts","webpack:///./broker-admin/components/notification-cards/InvitedToTeamCard/InvitedToTeamCard.tsx","webpack:///./broker-admin/store/deadhead-creation/utils/get-added-stop-fake-ids.ts","webpack:///./common/store/carrier-contracts/reducer.ts","webpack:///./common/icons/PadIcon.tsx","webpack:///./common/components/BackButton/BackButton.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/BrokerTourDetails/ShipmentDetailsCard/utils.ts","webpack:///./common/utils/api/tranziit/common-tranziit-api.ts","webpack:///./broker-admin/layouts/SpotRequestsPage/SpotRequestDetailsPage/SpotRequestDetailsPage.scss","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/BrokerOrderTable/cell-renderers/TrailerCell/TrailerCell.tsx","webpack:///./common/components/CompanyLogo/CompanyLogo.tsx","webpack:///./common/layouts/TransportOrderDetailsPageLayout/dialogs/UnassignDriversConfirmation/UnassignDriversConfirmation.tsx","webpack:///./common/components/entity-details/alerts/EntityCriticalWarningAlert.tsx","webpack:///./common/icons/UnLockIcon.tsx","webpack:///./common/store/subject-logs/models.ts","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/dialogs/LinkProfileConfirmation/LinkProfileConfirmation.tsx","webpack:///./broker-admin/store/tenders/sagas.ts","webpack:///./common/layouts/ForgotPasswordPage/async-validations.ts","webpack:///./common/components/RangeSelector/CustomZoneTextWrap/CustomZoneTextWrap.tsx","webpack:///./common/icons/TruckIcon.tsx","webpack:///./broker-admin/layouts/PriceSettingsEditRuleLayout/get-initial-values.ts","webpack:///./design-system/components/DividerWithDropdownControl/DividerWithDropdownControl.tsx","webpack:///./broker-admin/store/broker-order-assigment/utils.ts","webpack:///./common/layouts/SideBars/contents/ContractDetailsSidebarContent/footers/SaveFooterContent/SaveFooterContent.scss?bbdf","webpack:///./common/utils/google-maps-api/google-maps-places-api.ts","webpack:///./common/store/trailers-dict/actions.ts","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/dialogs/UnVerifyPartnerAdressConfirmation/UnVerifyPartnerAdressConfirmation.tsx","webpack:///./broker-admin/store/broker-teams/channels.ts","webpack:///./common/utils/pick-file.ts","webpack:///./broker-admin/store/broker-tour-details/slice.ts","webpack:///./common/components/ControlLoaderWithShadow/ControlLoaderWithShadow.scss?95e1","webpack:///./common/store/shipper-contract-details/slice.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/RouteEditForm.scss?4197","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/PickupOrDeliveryRoutePointPicker/PickupOrDeliveryRoutePointPicker.scss?5e35","webpack:///./broker-admin/layouts/SideBars/EditBrokerTeamSidebarContent/PartnerSelectList/PartnerSelectList.tsx","webpack:///./common/layouts/BaseShipperContractLanesLayout/BaseShipperContractLanesTable/cell-renderers/IdCell/IdCell.scss?0a68","webpack:///./broker-admin/components/dropdowns/CarriersSuggest/CarriersSuggest.scss?86ad","webpack:///./common/store/shipper-contracts/type-guards.ts","webpack:///./broker-admin/components/dropdowns/BrokerUserSuggest/hooks/use-init-broker-users-suggest-options.ts","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/OrderReservesShipperSuggest/OrderReservesShipperSuggest.tsx","webpack:///./broker-admin/layouts/StatisticsPage/StatisticsChart/ChartTooltip/ChartTooltip.scss?7e17","webpack:///./common/components/CheckboxOptionsList/CheckboxOptionsList.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/FerryDisembarkPointPicker/FerryDisembarkPointPicker.tsx","webpack:///./broker-admin/store/deadhead-creation/channels.ts","webpack:///./common/layouts/BaseShipperContractLanesLayout/BaseShipperContractLanesLayout.scss?c098","webpack:///./common/layouts/TransportOrderDetailsPageLayout/footers/SpotAssetsAssignmentFooterContent/SpotAssetsAssignmentFooterContent.tsx","webpack:///./common/layouts/BaseCarrierContractsLayout/dialogs/RevokeContractConfirmation/prepare-revoke-data.ts","webpack:///./common/contexts/ui-context.ts","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/LaneDropdownInput/LaneDropdownInput.tsx","webpack:///./common/layouts/LeftMenuLayout/Navigation/Navigation.tsx","webpack:///./carrier/utils/api/spot-carrier-tranziit/models.ts","webpack:///./common/components/notification-cards/TransportationOrderOutOfTimeToAssignDriverCard/TransportationOrderOutOfTimeToAssignDriverCard.tsx","webpack:///./broker-admin/components/dropdowns/PriceRuleOperationMultipleDropdown/PriceRuleOperationMultipleDropdown.tsx","webpack:///./broker-admin/layouts/InvoicesListPage/InvoicesTable/cell-renderers/CustomerCell/CustomerCell.tsx","webpack:///./common/store/state-machine/slice.ts","webpack:///./common/store/company/utils/check-has-operation-unavailable-reasons.ts","webpack:///./common/layouts/ContinueSignUpPage/ContinueSignUpForm/async-validations.ts","webpack:///./common/layouts/RFQListPageLayout/RFQsTable/cell-renderers/ExternalNumberCell/ExternalNumberCell.scss?f78c","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/query-models.ts","webpack:///./common/components/notifications/NotificationsBarContent/useIsScrollable.tsx","webpack:///./common/utils/hooks/useDocumentVisibilityChange.ts","webpack:///./common/utils/hooks/useCloseModalDialogAfterRequest.ts","webpack:///./common/layouts/SelfCreateCompanyPage/CreateCompanyForm/validate-form.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/BrokerTourDetailsPage.scss?e387","webpack:///./common/layouts/RFQListPageLayout/FiltersSidebarContent/get-initial-values.ts","webpack:///./common/layouts/NewOrderPage/PriceMatrix/PriceMatrix.scss?1737","webpack:///./common/layouts/RFQListPageLayout/FiltersSidebarContent/constants.ts","webpack:///./common/components/RenderLogContextProvider/RenderLogContextProvider.tsx","webpack:///./broker-admin/store/managers/types.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/EditTimeWindowsForm/prepare-query.ts","webpack:///./common/layouts/LeftMenuLayout/StickyFooter/StickyFooter.tsx","webpack:///./common/layouts/AccountPage/constants.ts","webpack:///./common/utils/hooks/useRouteGeometry.ts","webpack:///./common/utils/pagination/reducers.ts","webpack:///./common/layouts/SideBars/contents/EditContactDetailsSidebarContent/get-initial-values.ts","webpack:///./common/components/pills/PriceRuleImpactPill/PriceRuleImpactPill.scss?b8c1","webpack:///./common/components/RangeSelector/constants.ts","webpack:///./common/layouts/ConfirmEmailPage/ConfirmEmailPage.tsx","webpack:///./common/store/spot-assets-assigment/sagas.ts","webpack:///./broker-admin/layouts/SettingsPage/AdditionalServicesSettings/ServicesTable/cell-renderers/NameCell/NameCell.scss?53fd","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/PartnerDetailsForm/PartnerDetailsForm.scss?add7","webpack:///./common/components/logs/shared/LogCardFooter/LogCardFooter.tsx","webpack:///./common/store/settings/sagas.ts","webpack:///./common/components/status-pill/SpotBidStatusPill/SpotBidStatusPill.scss","webpack:///./broker-admin/components/notification-cards/ExpiredPartnerCarrierContractCard/ExpiredPartnerCarrierContractCard.scss?956f","webpack:///./common/store/order-creation/utils/get-reserve-query-correction.ts","webpack:///./broker-admin/components/dropdowns/CarriersSuggest/CarriersSuggest.tsx","webpack:///./common/icons/HourglassHalfIcon.tsx","webpack:///./common/store/gps-tracking-status/sagas.ts","webpack:///./broker-admin/layouts/PartnersPage/PartnersTable/cell-renderers/NameCell/NameCell.scss?595f","webpack:///./common/layouts/TrucksPageLayout/TrucksPageLayout.tsx","webpack:///./broker-admin/store/order-edit-context/sagas.ts","webpack:///./broker-admin/components/notification-cards/ExpireSoonPartnerCarrierContractCard/ExpireSoonPartnerCarrierContractCard.scss?1aee","webpack:///./broker-admin/store/price-settings/rules/types.ts","webpack:///./broker-admin/layouts/SpotRequestsPage/SpotRequestListPage/SpotRequestsTable/cell-renderers/BidsCountCell/BidsCountCell.scss?077e","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/UpdateTourConfirmationModal/UpdateTourConfirmationModal.tsx","webpack:///./common/store/driver-assigment/reducer.ts","webpack:///./broker-admin/store/partner/rfq-stats/actions.ts","webpack:///./common/components/Table/TableError/TableError.scss?3cfd","webpack:///./common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout.scss?e74f","webpack:///./common/store/shipper-suggest/actions.ts","webpack:///./broker-admin/store/spot-request-details/types.ts","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/PickupOrDeliveryRoutePointPicker/TimeWindowZoneText/TimeWindowZoneText.scss?5615","webpack:///./common/components/forms/FormikField/FormikField.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteEditMap/RouteEditMap.tsx","webpack:///./common/layouts/LeftMenuLayout/ContentMargins/ContentMargins.tsx","webpack:///./common/components/maps/pins/LastAssetTrackPointPin/LastAssetTrackPointPin.scss?63e4","webpack:///./common/layouts/RFQListPageLayout/prepare-fetch-page-query.ts","webpack:///./common/layouts/SideBars/contents/DriverFiltersSidebarContent/DriverFiltersSidebarContent.tsx","webpack:///./broker-admin/utils/api/broker-tranziit/models.ts","webpack:///./broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/ShipperContractLaneCreationConfirmForm/ShipperContractLaneCreationConfirmForm.scss?cfc2","webpack:///./broker-admin/layouts/BrokerUsersPage/BrokerUsersTab/BrokerUsersTab.scss?1f4c","webpack:///./common/components/notification-cards/shared/NotificationVerticalRowsLayout/NotificationVerticalRowsLayout.scss?cfe8","webpack:///./common/components/Table/cell-renderers/HumanReadableDateCell/HumanReadableDateCell.scss?6dbf","webpack:///./common/layouts/BaseDocumentsLayout/dialogs/UploadDocumentConfirmation/UploadDocumentConfirmation.tsx","webpack:///./broker-admin/layouts/PartnersPage/PartnersTable/cell-renderers/LocationCell/LocationCell.tsx","webpack:///./common/components/FilterPills/FilterPill/FilterPill.scss?3bfa","webpack:///./common/store/carrier-contracts/sagas.ts","webpack:///./common/store/order-creation/models.ts","webpack:///./common/components/Table/cell-renderers/PlateNumberCell/PlateNumberCell.tsx","webpack:///./broker-admin/components/notification-cards/RevokedPartnerShipperLaneContractCard/RevokedPartnerShipperLaneContractCard.scss?c533","webpack:///./common/layouts/SideBars/contents/EditDriverSidebarContent/EditDriverFormContent/EditDriverFormContent.tsx","webpack:///./common/store/state-machine/sagas.ts","webpack:///./common/utils/hooks/useKeyboardShortcut.ts","webpack:///./broker-admin/store/spot-request-details/selectors.ts","webpack:///./broker-admin/layouts/SpotRequestsPage/SpotRequestListPage/SelectedFilters/SelectedFilters.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/QuickTimeWindowLink/QuickTimeWindowLink.scss","webpack:///./common/layouts/Members/ChangeRoleUserForm/ChangeRoleUserForm.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/AssignmentMap.tsx","webpack:///./common/layouts/BaseDocumentsLayout/BaseDocumentsTable/cell-renderers/DocumentTypeCell/DocumentTypeCell.scss?c63c","webpack:///./common/store/carrier-contracts/selectors.ts","webpack:///./design-system/components/InfoTable/formatters/AttentionTextFormatter/AttentionTextFormatter.scss?97c1","webpack:///./common/components/notification-cards/entities/SubjectLink/SubjectLink.scss?0b3b","webpack:///./common/components/status-pill/TruckStatusPill/TruckStatusPill.tsx","webpack:///./common/store/create-company/sagas.ts","webpack:///./common/layouts/BaseDocumentsLayout/BaseDocumentsTable/cell-renderers/ActionsCell/ActionsCell.tsx","webpack:///./broker-admin/store/broker-order-assigment/utils/find-first-pickup-delivery-waypoint-date.ts","webpack:///./common/layouts/SideBars/contents/ContractDetailsSidebarContent/footers/ReviewFooterContent/ReviewFooterContent.scss?f8ea","webpack:///./common/components/notification-cards/UpdatedDocumentCard/UpdatedDocumentCard.scss?3578","webpack:///./common/layouts/ForgotPasswordPage/validate-form.ts","webpack:///./broker-admin/layouts/SideBars/UploadShipperContractSidebarContent/validate-form.ts","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/AddressWidgetHeaderActions/AddressWidgetHeaderActions.tsx","webpack:///./common/components/logs/shared/LogCardHead/LogCardHead.tsx","webpack:///./common/utils/hooks/maps/useGoogleMapsContextValue.tsx","webpack:///./design-system/components/date-pickers/LinkDatePicker/LinkDatePicker.scss?6745","webpack:///./common/icons/CarrierIcon.tsx","webpack:///./common/components/papers/hooks/use-render-papers-tab-count.tsx","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/SideBarRequestStatus/SideBarRequestStatus.scss?28ef","webpack:///./common/layouts/SideBars/contents/ContactDetailsSidebarContent/ContactDetailsSidebarContent.scss?be26","webpack:///./common/icons/SettingsIcon.tsx","webpack:///./common/utils/form-values.ts","webpack:///./common/layouts/AccountPage/AccountPage.scss?c8d1","webpack:///./common/layouts/TrailersPageLayout/prepare-fetch-page-query.ts","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/NewOrderParametersSettingsForm/validate-form.ts","webpack:///./common/layouts/NewOrderPage/CargoDetailsForm/ShipmentPicker/ShipmentPicker.scss?d363","webpack:///./broker-admin/layouts/PartnersPage/PartnersTable/cell-renderers/TypeCell/TypeCell.scss","webpack:///./design-system/components/dropdowns/DropdownSearchMultipleInput/DropdownSearchMultipleInput.tsx","webpack:///./common/layouts/BaseDocumentsLayout/BaseDocumentsTable/cell-renderers/DocumentTypeCell/DocumentTypeCell.tsx","webpack:///./common/store/errors/reducer.ts","webpack:///./common/components/RangeSelector/CustomZoneTextWrap/CustomZoneTextWrap.scss?4fef","webpack:///./common/utils/hooks/useTimeMark.ts","webpack:///./broker-admin/components/dropdowns/ShippersSuggest/ShippersSuggest.tsx","webpack:///./common/utils/get-bounding-box.ts","webpack:///./broker-admin/layouts/SideBars/EditBrokerTeamSidebarContent/get-initial-values.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/TransportOrderDetails/ShipmentDetailsCard/utils.ts","webpack:///./common/layouts/SideBars/contents/DriverFiltersSidebarContent/get-query-filters.ts","webpack:///./broker-admin/components/notification-cards/CompletedPartnerDocumentCard/CompletedPartnerDocumentCard.scss?22e4","webpack:///./common/components/Widget/Widget.scss?4048","webpack:///./common/components/maps/pins/FerryLocationPin/FerryLocationPin.scss?9eee","webpack:///./common/components/entity-details/alerts/EntityWarningAlert.tsx","webpack:///./broker-admin/components/notification-cards/TransportationOrderMileagAndPaymentChangedCard/TransportationOrderMileagAndPaymentChangedCard.tsx","webpack:///./common/layouts/CommonEditableShipperContractLaneDetailsLayout/EditShipperContractLaneSidebarContent/EditShipperContractLaneSidebarContent.tsx","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/ParanjaSideBarLayout/ParanjaSideBarLayout.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/SubmitButtonContent/SubmitButtonContent.scss?d193","webpack:///./broker-admin/store/broker-tours/channels.ts","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/FerrySettingsForm/FerrySettingsForm.scss?e348","webpack:///./broker-admin/constants.ts","webpack:///./common/utils/hooks/useNotificationSideBarContext.ts","webpack:///./common/store/members/utils.ts","webpack:///./design-system/components/InfoTable/formatters/DriverLinkFormatter/DriverLinkFormatter.tsx","webpack:///./common/store/order-creation/actions.ts","webpack:///./common/layouts/HorizontalColumnsLayout/HorizontalColumnsLayout.scss?7505","webpack:///./common/layouts/TransportOrderListPageLayout/TransportOrdersTable/cell-renderers/LocationCell/LocationCell.tsx","webpack:///./common/layouts/TransportOrderListPageLayout/TransportOrdersTable/TransportOrdersTable.scss?be8a","webpack:///./common/components/notification-cards/ShipmentWasUpdatedCard/ShipmentWasUpdatedCard.tsx","webpack:///./common/layouts/dialogs/ActivateAssetDialogModal/ActivateAssetForm/ActivateAssetForm.tsx","webpack:///./common/components/notification-cards/entities/CityName/CityName.scss?72db","webpack:///./common/layouts/Members/ContactSidebarHeader/ContactSidebarHeader.tsx","webpack:///./common/icons/DeleteUserIcon.tsx","webpack:///./broker-admin/layouts/SettingsPage/TenderCalculator/TenderCalculator.scss?3408","webpack:///./common/layouts/TrucksPageLayout/ActiveFleetCount/ActiveFleetCount.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/BrokerTourDetailsPage.tsx","webpack:///./common/icons/LayoverIcon.tsx","webpack:///./common/store/carrier-contract-details/types.ts","webpack:///./common/components/toasts/NotificationToastsManager/NotificationToastsManager.scss?a634","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/PartnerDetailsForm/get-initial-values.ts","webpack:///./broker-admin/layouts/SideBars/StatisticFiltersSidebarContent/constants.ts","webpack:///./common/components/maps/MapZoom/MapZoom.tsx","webpack:///./design-system/components/CheckboxTree/CheckboxTree.tsx","webpack:///./broker-admin/components/BaseSpotRequestDetailsSidebarContent/SpotRequestDetails/Bids/constants.ts","webpack:///./broker-admin/store/partners/sagas.ts","webpack:///./common/store/carriers-utilization/actions.ts","webpack:///./broker-admin/layouts/SideBars/PartnerFiltersSidebarContent/constants.ts","webpack:///./common/layouts/ListPage/ListPageHeaderTabsLayout/ListPageHeaderTabsLayout.tsx","webpack:///./common/components/Table/cell-renderers/LocationCell/LocationCell.tsx","webpack:///./common/layouts/TransportOrderListPageLayout/TransportOrdersTable/cell-renderers/StatusCell/StatusCell.scss","webpack:///./design-system/components/ButtonGroup/ButtonGroupItem/ButtonGroupItem.tsx","webpack:///./common/store/rfq-details/sagas.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/AssetTypeTabs/AssetTypeTabs.scss?b13f","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/RulesTable/cell-renderers/NameCell/NameCell.tsx","webpack:///./common/utils/check-need-request.ts","webpack:///./common/contexts/google-map-context.ts","webpack:///./common/components/maps/MapCluster/MapCluster.scss?13b1","webpack:///./common/components/RuleImpact/RuleImpact.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/PricingSettingsForm/validate-form.ts","webpack:///./common/icons/FileIcon.tsx","webpack:///./broker-admin/store/deadhead-creation/utils/fake-id-by-hash.ts","webpack:///./common/components/status/SpotBidStatus/SpotBidStatus.tsx","webpack:///./common/layouts/NewOrderPage/CargoDetailsForm/ShipmentPicker/ShipmentPicker.tsx","webpack:///./common/components/ErrorModal/ErrorDetails/ErrorDetails.tsx","webpack:///./common/components/status-pill/TeamDrivePill/TeamDrivePill.scss","webpack:///./common/layouts/NewOrderPage/OffersForm/ProgressBar/ProgressBar.tsx","webpack:///./common/store/trucks/selectors.ts","webpack:///./broker-admin/components/notification-cards/entities/ShipperContractLaneId/ShipperContractLaneId.scss?21e1","webpack:///./broker-admin/utils/urls.ts","webpack:///./common/layouts/SideBars/contents/AddDriverSidebarContent/validate-form.ts","webpack:///./broker-admin/layouts/SideBars/PriceSettingsRuleFiltersSidebarContent/get-initial-values.ts","webpack:///./common/components/notifications/NotificationsBarContent/NotificationLayout/NotificationLayout.scss?648e","webpack:///./broker-admin/components/BaseSpotRequestDetailsSidebarContent/dialogs/AssignCarrierConfirmation/AssignCarrierConfirmation.tsx","webpack:///./common/components/price-details/hooks/additional-services-list.tsx","webpack:///./broker-admin/layouts/SpotRequestsPage/SpotRequestDetailsPage/SpotRequestRoute/SpotRequestRoute.scss","webpack:///./broker-admin/store/partner/details/utils/normalize-partner-details.ts","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarAlertsLayout/FooterSideBarAlertsLayout.tsx","webpack:///./common/store/transport-orders/channels.ts","webpack:///./common/store/trailers/type-guards.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/DropPointPicker/DropPointPicker.tsx","webpack:///./common/store/order-creation/types.ts","webpack:///./common/components/toasts/NotificationToastContent/NotificationToastContent.scss?4e1d","webpack:///./common/store/assets/models.ts","webpack:///./common/components/Stepper/Stepper.scss?3029","webpack:///./broker-admin/components/notification-cards/RevokedPartnerShipperContractCard/RevokedPartnerShipperContractCard.tsx","webpack:///./broker-admin/store/broker-order-stats/selectors.ts","webpack:///./common/layouts/TrucksPageLayout/TrucksTable/cell-renderers/ModelCell/ModelCell.tsx","webpack:///./common/utils/api/auth/keycloak-auth-service.ts","webpack:///./broker-admin/layouts/StatisticsPage/StatisticsPage.scss?b018","webpack:///./common/layouts/CommonEditableTruckDetailsLayout/TruckActionHistory/TruckActionHistory.tsx","webpack:///./common/store/grouped-notification-counts/selectors.ts","webpack:///./broker-admin/layouts/SideBars/StatisticFiltersSidebarContent/StatisticFiltersSidebarContent.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/AssignmentForm.scss?66dd","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/FerryOnboardPointPicker/FerryOnboardPointPicker.scss?5166","webpack:///./common/icons/UrgentIcon.tsx","webpack:///./common/layouts/CommonEditableTrailerDetailsLayout/TrailerActionHistory/TrailerActionHistory.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/TimeWindowZoneText/TimeWindowZoneText.tsx","webpack:///./broker-admin/components/BaseSpotRequestDetailsSidebarContent/footers/StartSelectBidFooterContent/StartSelectBidFooterContent.scss?8ec4","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/BrokerTourDetails/ShipmentDetailsCard/ShipmentDetailsCard.tsx","webpack:///./common/layouts/CommonEditableTrailerDetailsLayout/EditTrailerSidebarContent/EditTrailerSidebarContent.tsx","webpack:///./common/store/additional-services-dict/selectors.ts","webpack:///./broker-admin/store/partners-stats/types.ts","webpack:///./broker-admin/layouts/SettingsPage/AdditionalServicesSettings/ServicesTable/cell-renderers/NameCell/NameCell.tsx","webpack:///./common/store/spot-assets-assigment/assignment.ts","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/AlertsSettingsForm/AlertsSettingsForm.tsx","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/footers/ReviewFooterContent/ReviewFooterContent.scss?e6dd","webpack:///./broker-admin/layouts/PartnersPage/InvitePartnerForm/validate-form.ts","webpack:///./broker-admin/layouts/PartnerPage/PartnerDriversPage/PartnerDriversPage.scss","webpack:///./common/store/shipper-contract-lane-details/selectors.ts","webpack:///./common/components/maps/MapCenter/MapCenter.tsx","webpack:///./broker-admin/components/dropdowns/TourTypeMultipleDropdown/TourTypeMultipleDropdown.scss","webpack:///./common/utils/auth-return-url.ts","webpack:///./design-system/components/date-pickers/OpenedDatePicker/OpenedDatePicker.tsx","webpack:///./common/layouts/NewOrderPage/CargoDetailsForm/ErrorIndicatorLabel/ErrorIndicatorLabel.tsx","webpack:///./common/layouts/CommonEditableTrailerDetailsLayout/EditTrailerSidebarContent/EditTrailerSidebarContent.scss","webpack:///./broker-admin/components/status/ColoredPriceRuleStatusLabel/ColoredPriceRuleStatusLabel.scss?bf01","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/SpotSettingsForm/validate-form.ts","webpack:///./common/components/Timeline/Timeline.scss?53c4","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/FerryDisembarkPointPicker/FerryDisembarkPointPicker.scss?eaab","webpack:///./common/store/shipper-contracts/channels.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/SendingToSpotForm/utils.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/contexts/sync-map-state.ts","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/PartnerDetailsForm/validate-form.ts","webpack:///./broker-admin/components/status-machine/footers/ChangeShipmentStatusFooter/constants.ts","webpack:///./common/components/papers/labels/MainContactUnavailableReasonLabel/MainContactUnavailableReasonLabel.tsx","webpack:///./common/layouts/CommonEditableTrailerDetailsLayout/CommonEditableTrailerDetailsLayout.tsx","webpack:///./common/components/ErrorPlaceholder/ErrorPlaceholder.scss?87da","webpack:///./common/components/TrailerTypeSwitcher/TrailerTypeSwitcher.tsx","webpack:///./common/store/countries-dict/types.ts","webpack:///./common/layouts/SideBars/contents/TruckFiltersSidebarContent/constants.ts","webpack:///./broker-admin/components/filter-pills/PriceRuleOperationFilterPill/PriceRuleOperationFilterPill.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/FerrySettingsForm/FerrySettingsForm.tsx","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/RulesTable/cell-renderers/LocationsCell/LocationsCell.tsx","webpack:///./broker-admin/layouts/PartnerPage/PartnerPage.scss?99d4","webpack:///./common/store/notifications/models.ts","webpack:///./common/components/notification-cards/TourSpotExpiredCard/TourSpotExpiredCard.tsx","webpack:///./common/layouts/CommonEditableTrailerDetailsLayout/EditTrailerSidebarContent/TrailerDetailsForm/TrailerDetailsForm.scss?9f6b","webpack:///./common/utils/hooks/useWindowSize.ts","webpack:///./common/components/maps/MapCluster/MapCluster.tsx","webpack:///./common/components/status-pill/InvoiceStatusPill/InvoiceStatusPill.tsx","webpack:///./broker-admin/layouts/InvoicesListPage/query-models.ts","webpack:///./common/utils/hooks/useMenuVisibility.ts","webpack:///./broker-admin/layouts/SideBars/EditBrokerTeamSidebarContent/EditBrokerTeamSidebarContent.scss?2b48","webpack:///./broker-admin/layouts/SideBars/StatisticFiltersSidebarContent/get-initial-values.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerToursListPage/WarningsFilter/WarningsFilter.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/SearchForm/CarrierDropdown/CarrierDropdown.scss","webpack:///./common/store/transport-orders/sagas.ts","webpack:///./design-system/components/InfoTable/formatters/DateFormatter/DateFormatter.tsx","webpack:///./broker-admin/layouts/PartnersPage/PartnersTable/cell-renderers/ControlsCell/ControlsCell.tsx","webpack:///./broker-admin/store/order-edit-context/utils/get-corrected-stops.ts","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/FerryDisembarkPointPicker/FerryDisembarkPointPicker.tsx","webpack:///./common/layouts/NewOrderPage/RouteEditingMap/ExcludeCountries/ExcludeCountries.tsx","webpack:///./common/layouts/CommonEditableTrailerDetailsLayout/TrailerType/TrailerType.scss?e5a2","webpack:///./common/icons/PinIcon.tsx","webpack:///./broker-admin/layouts/SideBars/SpotRequestsFiltersSidebarContent/constants.ts","webpack:///./common/layouts/SideBars/contents/ContractDetailsSidebarContent/footers/SaveFooterContent/SaveFooterContent.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/RoutingSettingsForm/get-initial-values.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerToursListPage/BrokerToursTable/cell-renderers/CarrierCell/CarrierCell.scss?069e","webpack:///./common/components/notification-cards/TourSpotCancelledCard/TourSpotCancelledCard.tsx","webpack:///./design-system/components/date-pickers/internals/DateInputTrigger/DateInputTrigger.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/SyncPointsWatcher/SyncPointsWatcher.tsx","webpack:///./common/layouts/NewOrderPage/Steps/Steps.tsx","webpack:///./broker-admin/components/tour-receipt-details/hooks/utilization-rows-factory.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/DeadheadCreationReceipt/models.ts","webpack:///./common/store/shipper-suggest/selectors.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/EditTimeWindowsForm/EditTimeWindowsForm.scss?6429","webpack:///./common/layouts/BaseShipperContractsLayout/BaseShipperContractsTable/cell-renderers/ContractNameCell/ContractNameCell.scss?4e16","webpack:///./broker-admin/layouts/PriceSettingsRulePreviewLayout/PreviewMessage/PreviewMessage.tsx","webpack:///./common/layouts/BaseCarrierContractsLayout/dialogs/RejectContractConfirmation/validate-form.ts","webpack:///./common/components/maps/pins/AssetPickUpLocationPin/AssetPickUpLocationPin.tsx","webpack:///./common/icons/FilterIcon.tsx","webpack:///./broker-admin/components/notification-cards/UpdatedPartnerShipperLaneContractCard/UpdatedPartnerShipperLaneContractCard.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderDetailsPage.scss?e646","webpack:///./broker-admin/layouts/PartnerPage/PartnerTrailersPage/PartnerTrailersPage.scss","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent.scss?02d9","webpack:///./common/components/maps/MapTooltip/MapTooltip.scss?b2be","webpack:///./broker-admin/components/dropdowns/PriceComponentTypeCustomMultipleDropdown/PriceComponentTypeCustomMultipleDropdown.scss?fdf1","webpack:///./common/components/AssetDetailsMap/AssetDetailsMap.tsx","webpack:///./common/components/AsyncDictDocumentNameLabel/AsyncDictDocumentNameLabel.tsx","webpack:///./design-system/components/form-field/FieldNotes/FieldNotes.scss?51e8","webpack:///./common/utils/postal-codes.ts","webpack:///./common/components/PhoneNumberInput/PhoneNumberDropdownTrigger/PhoneNumberDropdownTrigger.scss?46a8","webpack:///./broker-admin/layouts/ShipperContractDetailsPage/ShipperContractLanesLayout/ShipperContractLanesLayout.tsx","webpack:///./common/components/maps/MapFooter/MapFooter.scss?cb08","webpack:///./common/layouts/SideBars/SideBarCloseConfirmation/SideBarCloseConfirmation.tsx","webpack:///./common/components/RuleImpact/RuleImpact.scss?4774","webpack:///./common/layouts/Members/InviteUserForm/constants.ts","webpack:///./common/store/order-creation/reducer.ts","webpack:///./common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel.scss?a4de","webpack:///./common/icons/BoatIcon.tsx","webpack:///./common/icons/BigQuestionReversedIcon.tsx","webpack:///./broker-admin/components/dropdowns/PriceComponentTypeMultipleDropdown/PriceComponentTypeMultipleDropdown.tsx","webpack:///./common/components/OperationUnavailableReasonsAlert/utils.ts","webpack:///./common/components/tabs/TabGroup/TabGroup.tsx","webpack:///./common/layouts/SubjectLogs/SubjectLogs.tsx","webpack:///./common/layouts/CommonEditableShipperContractLaneDetailsLayout/EditShipperContractLaneSidebarContent/ShipperContractLaneEditForm/constants.ts","webpack:///./shipper/constants.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/footers/StatusFooterContent/ChangeTourStatusControls/ChangeTourStatusControls.tsx","webpack:///./broker-admin/layouts/SettingsPage/RateMatrix/SearchForm/SearchForm.scss?1738","webpack:///./common/components/notification-cards/ExpiredDocumentCard/ExpiredDocumentCard.scss?a2ff","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/hooks/useSyncAssetScheduleContextValue.ts","webpack:///./broker-admin/components/dropdowns/PriceRuleTypeDropdown/PriceRuleTypeDropdown.tsx","webpack:///./broker-admin/layouts/InvoicesListPage/constants.ts","webpack:///./common/components/RangeSelector/Steps/Steps.scss?6d7e","webpack:///./broker-admin/layouts/PartnerPage/PartnerTransportOrderDetails/PartnerTransportOrderDetails.scss","webpack:///./broker-admin/components/dropdowns/PartnersSuggest/hooks/use-partner-suggest-options.ts","webpack:///./common/components/Table/cell-renderers/CostCell/CostCell.tsx","webpack:///./common/layouts/TrucksPageLayout/SelectedFilters/SelectedFilters.tsx","webpack:///./broker-admin/layouts/SettingsPage/AdditionalServicesSettings/ServicesTable/ServicesTable.tsx","webpack:///./common/layouts/RFQDetailsPageLayout/RFQDetails/RFQDetails.tsx","webpack:///./common/store/alerts/reducer.ts","webpack:///./common/layouts/SideBars/contents/DriverDetailsSidebarContent/DriverSidebarHeader/DriverSidebarHeader.scss","webpack:///./common/icons/TruckDropOffIcon.tsx","webpack:///./common/components/ColoredStatusLabel/ColoredStatusLabel.tsx","webpack:///./broker-admin/layouts/SettingsPage/SettingsPage.tsx","webpack:///./broker-admin/store/statistics/reducer.ts","webpack:///./common/layouts/RFQListPageLayout/RFQsTable/cell-renderers/LocationCell/LocationCell.tsx","webpack:///./common/store/gps-tracking-status/actions.ts","webpack:///./common/layouts/ListPage/ListPageHeaderLayout/ListPageHeaderLayout.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/TimeIntervalLimitPillLabel/TimeIntervalLimitPillLabel.tsx","webpack:///./common/layouts/CommonEditableShipperContractLaneDetailsLayout/ShipperContractLaneDetailsSidebarContent/ShipperContractLaneDetails/ShipperContractLaneDetails.scss?2374","webpack:///./broker-admin/layouts/BrokerUsersPage/BrokerTeamsLayout/query-models.ts","webpack:///./common/utils/api/errors/api-request-error.ts","webpack:///./broker-admin/components/notification-cards/ExpiredPartnerCarrierContractCard/ExpiredPartnerCarrierContractCard.tsx","webpack:///./broker-admin/layouts/SettingsPage/RateMatrix/ChangeRatesForm/ChangeRatesForm.tsx","webpack:///./common/icons/ShipperIcon.tsx","webpack:///./common/icons/ContactBadgeIcon.tsx","webpack:///./common/layouts/BaseShipperContractLanesLayout/BaseShipperContractLanesTable/cell-renderers/LocationCell/LocationCell.tsx","webpack:///./common/layouts/NewOrderPage/MultiPointOrderDraftDetails/MultiPointOrderDraftDetails.tsx","webpack:///./broker-admin/components/BaseSpotRequestDetailsSidebarContent/footers/StartSelectBidFooterContent/StartSelectBidFooterContent.tsx","webpack:///./common/layouts/Members/ContactsTable/cell-renderers/StatusCell/StatusCell.scss?0b20","webpack:///./broker-admin/store/deadhead-creation/utils/query-modifiers.ts","webpack:///./broker-admin/store/managers/selectors.ts","webpack:///./common/components/notifications/NotificationsBarContent/utils.ts","webpack:///./common/store/carriers-utilization/sagas.ts","webpack:///./common/layouts/TrailersPageLayout/SelectedFilters/SelectedFilters.tsx","webpack:///./broker-admin/store/broker-tour-details/selectors.ts","webpack:///./common/components/dropdowns/ContractMultipleDropdown/ContractMultipleDropdown.tsx","webpack:///./common/store/shipper-contract-lane-creation/slice.ts","webpack:///./common/components/Table/MemoizedTable/MemoizedTable.tsx","webpack:///./common/icons/UploadFileIcon.tsx","webpack:///./common/icons/GeoAreaIcon.tsx","webpack:///./broker-admin/layouts/SpotRequestsPage/SpotRequestListPage/query-models.ts","webpack:///./common/components/papers/message-placeholders/PapersEmptyPlaceholder/PapersEmptyPlaceholder.tsx","webpack:///./common/icons/CopyIcon.tsx","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout.scss?1259","webpack:///./common/components/pills/ShipperContractLaneOrderCounterPill/ShipperContractLaneOrderCounterPill.tsx","webpack:///./common/utils/form-common-validators.ts","webpack:///./common/components/tabs/NavigationTabs/NavigationTabs.tsx","webpack:///./design-system/components/form-field/FieldLabel/FieldLabel.scss?cdaa","webpack:///./common/store/grouped-notification-counts/actions.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/utils/get-assignment-icon-preset.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/FerryDisembarkPointPicker/FerryDisembarkPointPicker.scss?dc53","webpack:///./common/layouts/NewOrderPage/utils/offer-total-price.ts","webpack:///./common/store/trailers/sagas.ts","webpack:///./common/components/AdditionalServiceLabel/AdditionalServiceLabel.tsx","webpack:///./common/layouts/SideBars/contents/ContractDetailsSidebarContent/ContractDetailsForm/get-initial-values.ts","webpack:///./broker-admin/layouts/PriceSettingsRulesPage/PriceSettingsRuleCreationPage/PriceSettingsRuleCreationPage.scss?5742","webpack:///./common/layouts/TruckDetailsPage/TruckDetailsPage.scss","webpack:///./common/layouts/ContinueSignUpPage/ContinueSignUpForm/constants.ts","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/LaneDropdownInput/LaneDropdownInputOptionLabel/LaneDropdownInputOptionLabel.tsx","webpack:///./common/components/Input/Input.scss?6e48","webpack:///./common/components/Modal/ModalDialogActions/ModalDialogActions.tsx","webpack:///./common/components/TemperatureRange/TemperatureRange.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/SearchForm/SearchForm.scss?90ab","webpack:///./common/components/maps/pins/LastAssetWithNumberTrackPointPin/LastAssetWithNumberTrackPointPin.scss?1339","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout.tsx","webpack:///./broker-admin/layouts/PartnersPage/prepare-fetch-page-query.ts","webpack:///./common/store/trucks-dict/utils.ts","webpack:///./common/components/notification-cards/SpotBidStatusCard/SpotBidStatusCard.tsx","webpack:///./common/layouts/NewOrderPage/OffersForm/ProgressBar/ProgressBar.scss?fa24","webpack:///./common/layouts/NewOrderPage/utils/custom-line-haul.ts","webpack:///./common/components/Table/cell-renderers/AvatarCell/AvatarCell.scss?1e8f","webpack:///./common/components/RangeSelector/DnDIconWrap/DnDIconWrap.tsx","webpack:///./broker-admin/layouts/SpotRequestsPage/SpotRequestListPage/SpotRequestListPage.scss","webpack:///./common/contexts/render-log-context.ts","webpack:///./broker-admin/layouts/PartnersPage/PartnersTable/utils.ts","webpack:///./common/components/PhoneNumberInput/PhoneNumberDropdownInput/PhoneNumberDropdownInput.tsx","webpack:///./broker-admin/layouts/SideBars/constants.ts","webpack:///./common/layouts/AccountPage/async-validations.ts","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/DriveThroughRoutePointPicker/DriveThroughRoutePointPicker.scss?f7ea","webpack:///./common/layouts/BaseDocumentsLayout/dialogs/RejectDocumentConfirmation/constants.ts","webpack:///./broker-admin/layouts/SpotRequestsPage/SpotRequestListPage/SpotRequestsTable/cell-renderers/AssetCell/AssetCell.scss?cae3","webpack:///./common/layouts/SideBars/contents/DriverFiltersSidebarContent/DriverFiltersSidebarContent.scss?d8f4","webpack:///./broker-admin/layouts/StatisticsPage/query-models.ts","webpack:///./common/components/ColoredDiff/ColoredDiff.tsx","webpack:///./broker-admin/store/partners/actions.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/AssignTriggerLabel/AssignTriggerLabel.scss?b45f","webpack:///./common/components/Modal/ModalDialog/ModalDialog.scss?d32d","webpack:///./common/layouts/LeftMenuLayout/TopBarContent/TopBarContent.tsx","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/RulesTable/cell-renderers/ValidPeriodCell/ValidPeriodCell.tsx","webpack:///./common/layouts/SideBars/contents/EditContactDetailsSidebarContent/EditContactDetailsSidebarContent.tsx","webpack:///./common/components/ControlLoaderWithShadow/ControlLoaderWithShadow.tsx","webpack:///./broker-admin/store/price-settings/additional-services/reducer.ts","webpack:///./common/components/dropdowns/DictTrailerMultipleDropdown/DictTrailerMultipleDropdown.tsx","webpack:///./broker-admin/store/partner/sagas.ts","webpack:///./common/components/tabs/NavigationTabs/NavigationTabs.scss?4bbd","webpack:///./common/icons/FuelIcon.tsx","webpack:///./common/components/Timeline/Flag/Flag.scss?d878","webpack:///./common/components/Alert/Alert.scss?270d","webpack:///./broker-admin/components/BaseSpotRequestDetailsSidebarContent/SpotRequestDetails/BidDetails/BidDetails.tsx","webpack:///./common/store/order-creation/utils/prepare-address-point.ts","webpack:///./broker-admin/layouts/SpotRequestsPage/SpotRequestListPage/SpotRequestsTable/cell-renderers/CostsCell/CostsCell.scss?d1bd","webpack:///./common/layouts/BaseShipperContractLanesLayout/SelectedFilters/SelectedFilters.tsx","webpack:///./common/layouts/NewOrderPage/RouteEditingMap/RouteEditingMap.scss?59b1","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/FiltersSidebarContent/FiltersSidebarContent.scss?1b89","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/utils/check-has-external-restrictions.ts","webpack:///./common/layouts/SideBars/contents/EditContactDetailsSidebarContent/constants.ts","webpack:///./common/layouts/NewOrderPage/CargoDetailsForm/TemperatureRangePicker/TemperatureRangePicker.scss?4d19","webpack:///./common/layouts/AccountPage/DevelopmentSettings/DevelopmentSettings.tsx","webpack:///./common/store/transport-order-details/types.ts","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/ShipmentDetailsForm.tsx","webpack:///./common/components/notification-cards/OrderStatusChangedCard/OrderStatusChangedCard.tsx","webpack:///./common/components/notification-cards/RejectedDocumentCard/RejectedDocumentCard.scss?c179","webpack:///./common/layouts/TrucksPageLayout/query-models.ts","webpack:///./common/layouts/Members/dialogs/CancelInviteConfirmation/CancelInviteConfirmation.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/NewOrderParametersSettingsForm/NewOrderParametersSettingsForm.scss?c058","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/utils/convert-point-to-location.ts","webpack:///./common/icons/CargoUnitIcon.tsx","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout.scss?2b96","webpack:///./common/layouts/BaseCarrierContractsLayout/BaseCarrierContractsLayout.scss?f132","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/RouteForm.tsx","webpack:///./common/components/price-details/utils.ts","webpack:///./common/store/asset-track/types.ts","webpack:///./common/layouts/CommonEditableTruckDetailsLayout/TruckDetailsSidebarContent/TruckDetails/TruckDetails.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/DriveThroughRoutePointPicker/DriveThroughRoutePointPicker.tsx","webpack:///./common/layouts/TrailersPageLayout/TrailersTable/TrailersTable.scss?6f0a","webpack:///./common/components/papers/hooks/use-attach-tour-papers.tsx","webpack:///./common/components/notification-cards/shared/FieldValue/FieldValue.tsx","webpack:///./broker-admin/store/broker-team-details/selectors.ts","webpack:///./broker-admin/layouts/PriceSettingsRulePreviewLayout/RulePreviewPill/RulePreviewPill.scss?2e11","webpack:///./common/layouts/BaseShipperContractLaneDetailsLayout/BaseShipperContractLaneDetailsLayout.scss","webpack:///./common/layouts/DetailsLayout/DetailsLayout.scss?cf03","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/SearchForm/SearchForm.tsx","webpack:///./common/components/papers/AttachPapersDropdownControlTrigger/AttachPapersDropdownControlTrigger.tsx","webpack:///./broker-admin/store/broker-tour-details/sagas.ts","webpack:///./common/store/transport-order-details/channels.ts","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentDetailsLayout/DocumentDetailsLayout.tsx","webpack:///./common/components/Table/cell-renderers/TableCellLink/TableCellLink.tsx","webpack:///./common/layouts/CommonEditableTrailerDetailsLayout/EditTrailerSidebarContent/TrailerDetailsForm/validate-form.ts","webpack:///./common/store/consistent-state-machine/utils.ts","webpack:///./common/components/SaveChangesNotification/SaveChangesNotification.tsx","webpack:///./design-system/components/dropdowns/SuggestInput/hooks/use-async-init-options-request.ts","webpack:///./common/store/order-creation/utils/get-preview-reserve-query-correction.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerToursListPage/BrokerToursTable/cell-renderers/OriginCell/OriginCell.tsx","webpack:///./common/layouts/NewOrderPage/OffersForm/AdditionalServicesGroup/AdditionalServicesGroup.tsx","webpack:///./broker-admin/layouts/ShipperContractDetailsPage/ShipperContractDetailsLayout/ShipperContractDetailsLayout.scss?b4cd","webpack:///./broker-admin/components/notification-cards/RevokedPartnerCarrierContractCard/RevokedPartnerCarrierContractCard.scss?a454","webpack:///./common/layouts/RFQListPageLayout/RFQsTable/cell-renderers/CreatedCell/CreatedCell.tsx","webpack:///./common/layouts/BaseShipperContractLanesLayout/BaseShipperContractLanesTable/BaseShipperContractLanesTable.tsx","webpack:///./common/layouts/DriversPageLayout/DriversTable/cell-renderers/StatusCell/StatusCell.scss","webpack:///./common/components/FilterPills/pill-renderers.tsx","webpack:///./common/components/notification-cards/TourSpotPlacedCard/TourSpotPlacedCard.tsx","webpack:///./common/components/dropdowns/TrailerStatusMultipleDropdown/TrailerStatusMultipleDropdown.tsx","webpack:///./common/store/shipper-contract-lanes/sagas.ts","webpack:///./common/icons/MinusSignIcon.tsx","webpack:///./common/utils/api/auth/errors/auth-api-error.ts","webpack:///./common/components/pills/RFQSourcePill/RFQSourcePill.tsx","webpack:///./broker-admin/store/broker-tour-edit/types.ts","webpack:///./common/components/papers/ShipmentPaperAttachPapersDropdownControl/hooks.tsx","webpack:///./broker-admin/store/broker-tour-edit/actions.ts","webpack:///./common/icons/WarningIcon.tsx","webpack:///./common/utils/units.ts","webpack:///./broker-admin/store/spot/actions.ts","webpack:///./broker-admin/layouts/SpotRequestsPage/SpotRequestListPage/prepare-fetch-page-query.ts","webpack:///./common/store/spot-assets-assigment/types.ts","webpack:///./common/store/documents-dict/actions.ts","webpack:///./common/utils/watch-document-visible-saga.ts","webpack:///./common/layouts/BaseCarrierContractsLayout/BaseCarrierContractsTable/BaseCarrierContractsTable.tsx","webpack:///./broker-admin/layouts/SpotRequestsPage/SpotRequestListPage/SpotRequestsTable/cell-renderers/AssetCell/AssetCell.tsx","webpack:///./common/components/maps/GoogleMapsLoaderWithoutMaps/GoogleMapsLoaderWithoutMaps.tsx","webpack:///./common/components/pills/UserRolePill/UserRolePill.tsx","webpack:///./common/layouts/DriversPageLayout/dialogs/ArchiveDriverConfirmation/ArchiveDriverConfirmation.tsx","webpack:///./broker-admin/layouts/SideBars/PartnerFiltersSidebarContent/PartnerFiltersSidebarContent.scss?d149","webpack:///./common/utils/hooks/useScrollBarWidth.ts","webpack:///./common/store/papers-edit/sagas.ts","webpack:///./broker-admin/store/price-settings/rules/selectors.ts","webpack:///./common/store/carrier-suggest/actions.ts","webpack:///./common/components/maps/MapPin/MapPin.tsx","webpack:///./common/components/papers/labels/ReadAttachedPapersUnavailableReasonLabel/ReadShipmentAttachedPapersUnavailableReasonLabel.tsx","webpack:///./common/components/status-pill/FuelOptionTypePill/FuelOptionTypePill.tsx","webpack:///./broker-admin/store/statistics/sagas.ts","webpack:///./common/layouts/ContinueSignUpPage/ContinueSignUpPage.tsx","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/RulesTable/RulesTable.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/BrokerTourRouteMap/BrokerTourRouteMap.tsx","webpack:///./common/layouts/TransportOrderListPageLayout/query-models.ts","webpack:///./common/layouts/ForgotPasswordPage/ForgotPasswordPage.tsx","webpack:///./broker-admin/store/price-settings/rules/reducer.ts","webpack:///./common/components/Table/FiltersTrigger/FiltersTrigger.tsx","webpack:///./broker-admin/store/spot-request-details/sagas.ts","webpack:///./common/components/logs/shared/LogCardLayout/LogCardLayout.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/BrokerOrderRouteEditPage.scss?fe8b","webpack:///./common/components/tabs/TabGroupWithDivider/TabGroupWithDivider.tsx","webpack:///./common/utils/hooks/useSideBarFooterAlertsContextValue.ts","webpack:///./broker-admin/store/broker-tour-stats/reducer.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/constants.ts","webpack:///./broker-admin/layouts/PartnersPage/InvitePartnerForm/constants.ts","webpack:///./common/layouts/BaseShipperContractsLayout/prepare-fetch-page-query.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/get-initial-values.ts","webpack:///./broker-admin/store/partner/rfq-stats/types.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerToursListPage/FiltersSidebarContent/FiltersSidebarContent.scss?c905","webpack:///./common/utils/client-config.ts","webpack:///./broker-admin/layouts/SideBars/PriceSettingsRuleFiltersSidebarContent/get-query-filters.ts","webpack:///./broker-admin/layouts/ShipperContractDetailsPage/ShipperContractDetailsPage.scss?8e22","webpack:///./broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/hooks/useSyncMapState.ts","webpack:///./common/layouts/HorizontalColumnsLayout/HorizontalColumnsLayout.tsx","webpack:///./broker-admin/components/dropdowns/DispatcherDropdown/DispatcherDropdown.scss","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/hooks/createInitWaypointTrailerDropPoint.tsx","webpack:///./common/components/RangeSelector/Trigger/Trigger.scss?1498","webpack:///./broker-admin/layouts/StatisticsPage/StatisticsChart/Chart/Chart.scss?95c3","webpack:///./common/components/OverlaysManager/OverlaysManager.scss?e449","webpack:///./common/components/notification-cards/ApprovedDocumentCard/ApprovedDocumentCard.tsx","webpack:///./broker-admin/layouts/SettingsPage/AdditionalServicesSettings/ServicesTable/ServicesTable.scss?1e60","webpack:///./common/layouts/TransportOrderListPageLayout/TransportOrderTypeDropdown/TransportOrderTypeDropdown.tsx","webpack:///./common/store/asset-track/sagas.ts","webpack:///./common/layouts/SideBars/contents/ContractDetailsSidebarContent/ContractDetailsForm/ContractDetailsForm.scss?a8ae","webpack:///./common/components/GPSTrackingStatusAlert/GPSTrackingStatusAlert.tsx","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentParamsDetails/EvidenceOfTaxDetails/EvidenceOfTaxDetails.tsx","webpack:///./common/utils/api/auth/firebase-auth-service.ts","webpack:///./common/layouts/NewOrderPage/contexts/steps-context.ts","webpack:///./common/components/status-pill/InvoiceBinaryStatusPill/InvoiceBinaryStatusPill.tsx","webpack:///./broker-admin/layouts/SpotRequestsPage/SpotRequestsPage.tsx","webpack:///./common/layouts/LeftMenuLayout/TopBar/TopBar.scss?0956","webpack:///./common/layouts/SideBars/contents/AddTruckSidebarContent/AddTruckSidebarContent.tsx","webpack:///./common/components/InfoTable/formatters/TransportOrderTypeFormatter/TransportOrderTypeFormatter.tsx","webpack:///./common/components/papers/PapersGrid/PapersGrid.tsx","webpack:///./common/layouts/RFQListPageLayout/FiltersSidebarContent/get-query-filters.ts","webpack:///./common/layouts/DriversPageLayout/DriversTable/cell-renderers/StatusCell/StatusCell.tsx","webpack:///./common/store/papers-edit/actions.ts","webpack:///./common/layouts/Members/PositionOption/PositionOption.tsx","webpack:///./broker-admin/store/price-settings/system-settings/reducer.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteDetailsForm/constants.ts","webpack:///./common/layouts/TransportOrderListPageLayout/TransportOrdersTable/cell-renderers/ReceivedCell/ReceivedCell.scss?b014","webpack:///./common/layouts/Members/ContactsTable/ContactsTable.scss?630b","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarPortal/HeaderSideBarPortal.tsx","webpack:///./broker-admin/components/dropdowns/PriceRuleTypeMultipleDropdown/PriceRuleTypeMultipleDropdown.tsx","webpack:///./common/components/Table/TableError/TableError.tsx","webpack:///./broker-admin/store/partner/details/selectors.ts","webpack:///./common/layouts/SideBars/contents/EditDriverSidebarContent/EditDriverSidebarContent.scss?da08","webpack:///./common/components/dropdowns/options/CountryFlagPlaceholderOption/CountryFlagPlaceholderOption.scss?ee20","webpack:///./broker-admin/layouts/BrokerUsersPage/BrokerTeamsLayout/BrokerTeamsTable/hooks/actions.tsx","webpack:///./common/layouts/SideBars/contents/DriverDetailsSidebarContent/hooks/use-driver-action-options.tsx","webpack:///./common/layouts/RFQListPageLayout/SelectedFilters/SelectedFilters.tsx","webpack:///./common/store/carrier-suggest/selectors.ts","webpack:///./broker-admin/components/status-machine/footers/ChangeTourStatusFooter/StartAssignmentFooter/StartAssignmentFooter.tsx","webpack:///./common/layouts/TransportOrderListPageLayout/prepare-fetch-page-query.ts","webpack:///./broker-admin/components/BaseSpotRequestDetailsSidebarContent/SpotRequestDetails/SpotRequestDetails.scss?1c58","webpack:///./common/components/MultiPointOrderRouteMap/PointStackClusterPin/PointStackClusterPin.tsx","webpack:///./common/layouts/BaseShipperContractDetailsLayout/EditShipperContractDetailsForm/EditShipperContractDetailsForm.scss?5e67","webpack:///./common/components/LocationLabel/LocationLabel.scss?6ee4","webpack:///./common/components/notifications/NotificationsBarContent/NotificationCardHead/NotificationCardHead.scss?6ac5","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarPortal/HeaderSideBarPortal.scss","webpack:///./broker-admin/store/price-settings/sagas.ts","webpack:///./common/components/status-pill/ShipmentWarningPill/ShipmentWarningPill.tsx","webpack:///./broker-admin/components/tour-receipt-details/TourTypeTabsLayout/TourTypeTabsLayout.scss?0e78","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/utils.ts","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/constants.ts","webpack:///./common/layouts/DriversPageLayout/DriversTable/DriversTable.tsx","webpack:///./broker-admin/layouts/SideBars/CreatePartnerSidebarContent/constants.ts","webpack:///./common/layouts/DetailsLayout/DetailsLayout.tsx","webpack:///./common/layouts/CommonEditableTruckDetailsLayout/EditTruckSidebarContent/ChangeRateOrContractWarning/ChangeRateOrContractWarning.scss","webpack:///./common/components/dropdowns/options/CountryFlagPlaceholderOption/CountryFlagPlaceholderOption.tsx","webpack:///./common/components/PhoneNumberInput/PhoneNumberDropdownTrigger/PhoneNumberDropdownTrigger.tsx","webpack:///./common/layouts/ForgotPasswordPage/ForgotPasswordPage.scss?6a06","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteDetailsForm/RouteDetailsForm.scss?a77b","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/SearchForm/RadiusDropdown/RadiusDropdown.scss","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerToursListPage/BrokerToursTable/cell-renderers/CreatedCell/CreatedCell.tsx","webpack:///./common/store/shipper-contracts/sagas.ts","webpack:///./common/layouts/NewOrderPage/PriceMatrix/PriceMatrix.tsx","webpack:///./common/components/PhoneNumberInput/PhoneNumberDropdownOption/PhoneNumberDropdownOption.tsx","webpack:///./common/layouts/NewOrderPage/hooks/use-selected-shipper-credit-limit.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/SendingToSpotForm/TimeWindowPillLabel/TimeWindowPillLabel.scss?42b4","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/FerryOnboardPointPicker/FerryOnboardPointPicker.tsx","webpack:///./common/store/shipper-suggest/sagas.ts","webpack:///./broker-admin/store/order-edit-context/utils/get-order-stop-aliases.ts","webpack:///./common/layouts/SideBars/contents/DriverDetailsSidebarContent/DriverSidebarHeader/DriverSidebarHeader.tsx","webpack:///./common/components/Money/Money.tsx","webpack:///./common/layouts/Members/ContactsTable/ContactsTable.tsx","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarAlertsLayout/FooterSideBarAlert/FooterSideBarAlert.scss?328a","webpack:///./design-system/components/InfoTable/formatters/EditableStringValueFormatter/EditableStringValueFormatter.tsx","webpack:///./common/components/Textarea/Textarea.tsx","webpack:///./common/components/status/ShipperContractLaneStatus/ShipperContractLaneStatus.tsx","webpack:///./broker-admin/layouts/PriceSettingsRulePreviewLayout/get-initial-values.ts","webpack:///./common/components/SignUpForm/UserSignUpForm/UserSignUpForm.tsx","webpack:///./broker-admin/layouts/PartnersPage/InvitePartnerForm/InvitePartnerForm.tsx","webpack:///./common/layouts/CommonEditableTrailerDetailsLayout/TrailerDetailsSidebarContent/TrailerDetails/TrailerDetails.tsx","webpack:///./common/layouts/TransportOrderListPageLayout/FiltersSidebarContent/FiltersSidebarContent.tsx","webpack:///./common/layouts/NewOrderPage/RouteEditingMap/RouteEditingMap.tsx","webpack:///./common/components/dropdowns/ActiveContractDropdown/ActiveContractDropdown.scss?c5f6","webpack:///./common/layouts/CommonEditableShipperContractLaneDetailsLayout/EditShipperContractLaneSidebarContent/ShipperContractLaneEditForm/ShipperContractLaneEditForm.tsx","webpack:///./common/store/alerts/actions.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteSidebarSkeleton/RouteSidebarSkeleton.scss?442b","webpack:///./broker-admin/layouts/ShipperContractDetailsPage/ShipperContractDetailsPage.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderRouteMap/PointStackClusterPin/PointStackClusterPin.tsx","webpack:///./common/layouts/TransportOrderDetailsPageLayout/SpotAssetsAssignmentForm/AssetOptionLabel/AssetOptionLabel.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/SpotSettingsForm/SpotSettingsForm.scss?9d39","webpack:///./common/components/Table/cell-renderers/FullNameCell/FullNameCell.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/AssignmentSettingsForm/constants.ts","webpack:///./common/components/Table/cell-renderers/EditableCostCell/EditableCostCell.scss?4726","webpack:///./common/store/transport-order-details/selectors.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/DriversAssignmentForm/DriverSuggestInput/DriverSuggestInput.scss?2145","webpack:///./common/components/papers/labels/ShipmentPaperTypeLabel/ShipmentPaperTypeLabel.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/AssignOptionLabel/AssignOptionLabel.scss?ae64","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/contexts/side-bar-footer-alerts-context.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/dialogs/CancelBrokerTourConfirmation/CancelBrokerTourConfirmation.tsx","webpack:///./broker-admin/components/BaseSpotRequestDetailsSidebarContent/SpotRequestDetails/Bids/hooks/bids-sort.ts","webpack:///./common/components/ErrorModal/ErrorModal.scss?03de","webpack:///./common/components/dropdowns/CountryMultipleDropdown/CountryMultipleDropdown.tsx","webpack:///./common/store/grouped-notification-counts/sagas.ts","webpack:///./broker-admin/layouts/PriceSettingsRulesPage/PriceSettingsEditRuleDetailsPage/PriceSettingsEditRuleDetailsPage.scss?7ca6","webpack:///./common/layouts/TrailersPageLayout/TrailersTable/cell-renderers/StatusCell/StatusCell.tsx","webpack:///./common/layouts/NewOrderPage/OfferDetails/OfferDetails.tsx","webpack:///./common/components/GeoSuggest/GeoSuggest.scss?3034","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/TimePillLabel/TimePillLabel.tsx","webpack:///./broker-admin/store/partners/types.ts","webpack:///./common/components/entity-details/EntitySidebarSkeleton/EntitySidebarSkeleton.scss?d868","webpack:///./common/icons/StopIcon.tsx","webpack:///./common/layouts/BaseDocumentsLayout/dialogs/RejectDocumentConfirmation/RejectDocumentConfirmation.scss?3538","webpack:///./broker-admin/components/BaseSpotRequestDetailsSidebarContent/SpotRequestDetails/ShipmentDetailsCard/ShipmentDetailsCard.scss?8be2","webpack:///./broker-admin/store/broker-tours/selectors.ts","webpack:///./common/layouts/dialogs/ImportXLSAssetsDialogModal/hooks/useImportXLSAssetsModalDialog.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/BrokerOrderTable/BrokerOrderTable.scss?19dc","webpack:///./common/store/shipper-contracts/selectors.ts","webpack:///./broker-admin/layouts/OrdersPage/OrdersPage.tsx","webpack:///./common/utils/broadcast-channels/common.ts","webpack:///./common/components/InfoTable/formatters/SimpleTrailerTypeFormatter/SimpleTrailerTypeFormatter.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/async-validations.ts","webpack:///./broker-admin/components/status-machine/footers/ChangeTourStatusFooter/StartAssignmentFooter/StartAssignmentFooter.scss?1908","webpack:///./common/utils/api/auth/factory.ts","webpack:///./common/utils/pagination/utils.ts","webpack:///./common/icons/WeightIcon.tsx","webpack:///./broker-admin/store/spot-requests/reducer.ts","webpack:///./common/utils/google-maps-api/google-maps-autocomplete-api.ts","webpack:///./common/store/shipper-contract-lanes/channels.ts","webpack:///./common/utils/get-utilization-color.ts","webpack:///./common/layouts/sidebar-footers/TimeLeftForStart/TimeLeftForStart.scss?42c8","webpack:///./common/components/notifications/NotificationsBarContent/NotificationLayout/NotificationLayout.tsx","webpack:///./common/store/documents-dict/utils/prepare-dict-document.ts","webpack:///./common/components/TraceIdLabel/TraceIdLabel.tsx","webpack:///./common/components/DocumentsTable/DocumentsTable.scss?0c5c","webpack:///./broker-admin/layouts/PartnersPage/PartnersTable/PartnersTable.scss?7edb","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/NewOrderParametersSettingsForm/get-initial-values.ts","webpack:///./design-system/components/InfoTable/formatters/AssetLinkFormatter/AssetLinkFormatter.tsx","webpack:///./common/components/dropdowns/ContractMultipleDropdown/ContractMultipleDropdown.scss?09cb","webpack:///./common/store/country-settings-dict/actions.ts","webpack:///./common/components/dropdowns/CountryDropdown/CountryDropdown.tsx","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/RuleStateControl/RuleStateControl.tsx","webpack:///./common/store/carrier-contract-details/channels.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/validate-form.ts","webpack:///./common/layouts/AccountPage/AccountPage.tsx","webpack:///./broker-admin/components/PartnerOperationUnavailableReasonsAlert/PartnerOperationUnavailableReasonsAlert.tsx","webpack:///./broker-admin/store/partner/rfq-stats/sagas.ts","webpack:///./broker-admin/store/broker-order-edit/reducer.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/TransportOrderDetails/TransportOrderDetails.tsx","webpack:///./common/icons/SquareInfoIcon.tsx","webpack:///./common/components/TollLabel/TollLabel.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/PickupPointPicker/PickupPointPicker.scss?9b6b","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/ExternalRestrictionsPill/ExternalRestrictionsPill.tsx","webpack:///./common/components/status-pill/TeamDrivePill/TeamDrivePill.tsx","webpack:///./broker-admin/store/dispatchers/actions.ts","webpack:///./common/components/forms/TimeWindowPicker/TimeWindowPicker.scss?84f2","webpack:///./common/store/trucks-dict/actions.ts","webpack:///./common/utils/hooks/maps/useGoogleMapContext.tsx","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/PartnerAddressWidget/PartnerAddressWidget.scss?2dd7","webpack:///./design-system/components/IconTrigger/IconTrigger.tsx","webpack:///./common/layouts/DriversPageLayout/SelectedFilters/SelectedFilters.tsx","webpack:///./common/store/driver-assigment/sagas.ts","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/SideBarRequestStatus/SideBarRequestStatus.tsx","webpack:///./common/components/SaveChangesNotification/SaveChangesNotification.scss?1826","webpack:///./common/layouts/dialogs/ChangeRateOrContractAssetDialogModal/ChangeRateOrContractAssetForm/validate-form.ts","webpack:///./common/layouts/CommonEditableTruckDetailsLayout/EditTruckSidebarContent/prepare-api-truck.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/WaypointNumberIcon/WaypointNumberIcon.tsx","webpack:///./common/components/tabs/hooks.ts","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/DriveThroughRoutePointPicker/DriveThroughRoutePointPicker.tsx","webpack:///./common/components/Table/cell-renderers/PlateNumberCell/PlateNumberCell.scss?5053","webpack:///./common/components/Table/TableMessage/TableMessage.scss?d504","webpack:///./common/components/pills/UserMainPill/UserMainPill.tsx","webpack:///./common/components/InlineLoader/InlineLoader.tsx","webpack:///./common/utils/formatters.ts","webpack:///./common/components/papers/modals/ImageGalleryModal/ImageGalleryModal.tsx","webpack:///./design-system/components/form-field/FieldNotes/FieldNotes.tsx","webpack:///./broker-admin/layouts/InvoicesListPage/InvoicesTable/InvoicesTable.scss?27ac","webpack:///./common/store/subject-logs/channels.ts","webpack:///./common/components/EmissionClassLabel/EmissionClassLabel.tsx","webpack:///./design-system/components/InfoTable/InfoTable.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/AssignmentSettingsForm/prepare-system-settings.ts","webpack:///./broker-admin/layouts/SideBars/EditBrokerTeamSidebarContent/constants.ts","webpack:///./common/store/transport-orders/selectors.ts","webpack:///./common/icons/BigTrashIcon.tsx","webpack:///./common/components/PhoneNumberIcon/PhoneNumberIcon.scss?4095","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/TimeIntervalDurationPillLabel/TimeIntervalDurationPillLabel.scss?f1eb","webpack:///./common/store/company/actions.ts","webpack:///./common/utils/hooks/useTrailersDict.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/BrokerOrderRouteEditPage.tsx","webpack:///./broker-admin/store/broker-order-details/utils/get-pickup-delivery-waypoints.ts","webpack:///./common/store/rfqs/actions.ts","webpack:///./common/layouts/SelfCreateCompanyPage/CreateCompanyForm/CreateCompanyForm.scss?55d9","webpack:///./common/icons/ThumbUpIcon.tsx","webpack:///./common/components/AssetScheduleSidebar/AssetScheduleSidebar.tsx","webpack:///./common/components/Table/cell-renderers/EmailCell/EmailCell.scss?21b5","webpack:///./common/components/dropdowns/CountryMultipleDropdown/CountryMultipleDropdown.scss?166f","webpack:///./common/store/notifications/converter.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/query-models.ts","webpack:///./common/components/suggests/DriverSuggest/DriverSuggest.tsx","webpack:///./broker-admin/layouts/SettingsPage/RateMatrix/SearchForm/SearchForm.tsx","webpack:///./common/layouts/LeftMenuLayout/StickyFooter/StickyFooter.scss?e52b","webpack:///./common/layouts/DriversPageLayout/InviteDriverForm/async-validations.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/BrokerTourDeadheadCreationPage.scss?1269","webpack:///./common/components/SaveChangesNotification/withWidgetChangesDetector.tsx","webpack:///./common/layouts/NewOrderPage/FormTitle/FormTitle.tsx","webpack:///./common/layouts/BaseShipperContractLanesLayout/FiltersSidebarContent/FiltersSidebarContent.scss?5228","webpack:///./common/layouts/NewOrderPage/query.ts","webpack:///./common/icons/UnlinkIcon.tsx","webpack:///./common/components/TrailerTypeSwitcher/TrailerTypeSwitcher.scss?9bb7","webpack:///./broker-admin/store/broker-order-details/slice.ts","webpack:///./common/components/papers/TourPaperAttachPapersDropdownControl/TourPaperAttachPapersDropdownControl.tsx","webpack:///./broker-admin/layouts/PartnerPage/PartnerPage.tsx","webpack:///./common/layouts/SideBars/contents/EditableTruckDetailsSidebarContent/EditableTruckDetailsSidebarContent.tsx","webpack:///./common/store/trucks-dict/selectors.ts","webpack:///./broker-admin/components/BaseSpotRequestDetailsSidebarContent/SpotRequestDetails/models.ts","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/PartnerAddressWidget/PartnerAddressWidget.tsx","webpack:///./common/components/dropdowns/BrokerTeamsSuggest/BrokerTeamsSuggest.tsx","webpack:///./common/store/country-settings-dict/utils/check-location.ts","webpack:///./common/components/AssetScheduleSidebar/EntityLinkTooltipContent/EntityLinkTooltipContent.tsx","webpack:///./common/store/constants.ts","webpack:///./common/components/dropdowns/UserDropdown/UserDropdown.tsx","webpack:///./broker-admin/components/status-machine/footers/ChangeTourStatusFooter/ChangeTourStatusFooter/ChangeTourStatusFooter.scss?299e","webpack:///./common/utils/hooks/useAsyncFormErrorMessage.ts","webpack:///./common/layouts/BaseCarrierContractsLayout/dialogs/RevokeContractConfirmation/RevokeContractConfirmation.tsx","webpack:///./broker-admin/layouts/PartnerPage/PartnerDriversPage/PartnerDriversPage.tsx","webpack:///./common/components/AssetSidebarContent/SetUnavailableFooterContent/SetUnavailableFooterContent.tsx","webpack:///./common/components/status/OrderStatus/OrderStatus.tsx","webpack:///./common/icons/NumberPinIcon.tsx","webpack:///./common/store/trailers/types.ts","webpack:///./common/components/GroupedLogsLayout/GroupedLogsLayout.tsx","webpack:///./broker-admin/components/notification-cards/entities/TeamName/TeamName.tsx","webpack:///./common/components/Loader/Loader.scss?b330","webpack:///./common/components/IconWithNumber/IconWithNumber.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/async-validations.ts","webpack:///./common/components/papers/hooks/use-attach-shipment-papers.tsx","webpack:///./broker-admin/layouts/SideBars/EditBrokerTeamSidebarContent/UserSelectList/UserSelectList.tsx","webpack:///./common/components/notification-cards/ExpiredDocumentCard/ExpiredDocumentCard.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/CancelTruckTransportOrderConfirmation/CancelTruckTransportOrderConfirmation.tsx","webpack:///./broker-admin/components/notification-cards/ExpireSoonPartnerShipperLaneContractCard/ExpireSoonPartnerShipperLaneContractCard.tsx","webpack:///./common/layouts/RFQListPageLayout/FiltersSidebarContent/FiltersSidebarContent.scss?8dea","webpack:///./broker-admin/components/notification-cards/UpdatedPartnerShipperContractCard/UpdatedPartnerShipperContractCard.scss?1b79","webpack:///./common/layouts/BaseCarrierContractsLayout/BaseCarrierContractsTable/cell-renderers/ContractNameCell/ContractNameCell.tsx","webpack:///./common/components/SwitchableView/SwitchableViewContainer/SwitchableViewContainer.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditMap/RouteEditMap.scss?d4ab","webpack:///./common/store/members/selectors.ts","webpack:///./common/layouts/BaseCarrierContractsLayout/dialogs/RejectContractConfirmation/constants.ts","webpack:///./common/utils/links.ts","webpack:///./common/components/NavBurger/NavBurger.tsx","webpack:///./common/components/Table/cell-renderers/AvatarCell/AvatarCell.tsx","webpack:///./broker-admin/layouts/SettingsPage/AdditionalServicesSettings/AdditionalServicesSettings.scss?a3cb","webpack:///./common/components/reason-labels/ShipmentEditUnavailableReason/ShipmentEditUnavailableReason.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerToursListPage/BrokerToursTable/cell-renderers/CarrierCell/CarrierCell.tsx","webpack:///./common/layouts/NewOrderPage/PriceMatrixWithMap/PriceMatrixWithMap.tsx","webpack:///./common/store/subject-logs/slice.ts","webpack:///./broker-admin/layouts/SpotRequestsPage/SpotRequestListPage/SpotRequestsTable/SpotRequestsTable.tsx","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentDetailsLayout/DocumentVersion/DocumentVersion.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/footers/SendingToSpotFooterContent/SendingToSpotFooterContent.scss?65eb","webpack:///./common/store/state-machine/utils.ts","webpack:///./broker-admin/layouts/SettingsPage/RateMatrix/ImportCsv/ImportCsv.scss?f01a","webpack:///./broker-admin/layouts/PartnersPage/PartnersTable/cell-renderers/WarningsCell/WarningsCell.tsx","webpack:///./common/store/trucks/actions.ts","webpack:///./broker-admin/store/order-edit-context/channels.ts","webpack:///./common/components/notification-cards/shared/ChangedFieldLabel/ChangedFieldLabel.tsx","webpack:///./common/layouts/CommonEditableTruckDetailsLayout/TruckDetailsSidebarContent/TruckDetailsSidebarContent.tsx","webpack:///./common/components/Table/cell-renderers/CheckboxCell/CheckboxCell.scss","webpack:///./common/components/LocationLabel/LocationLabel.tsx","webpack:///./common/components/entity-details/alerts/CurrentTemperatureAlert.tsx","webpack:///./common/components/FilterPills/FilterPills.tsx","webpack:///./common/store/drivers/selectors.ts","webpack:///./common/components/Switcher/Switcher.scss?7d3e","webpack:///./broker-admin/layouts/StatisticsPage/DataSourceDropdown/DataSourceDropdown.tsx","webpack:///./common/layouts/CommonEditableShipperContractLaneDetailsLayout/ShipperContractLaneOtherDetails/ShipperContractLaneOtherDetails.scss?7372","webpack:///./broker-admin/layouts/PriceSettingsRulePreviewLayout/RulePreviewPill/RulePreviewPill.tsx","webpack:///./common/icons/DeleteIcon.tsx","webpack:///./broker-admin/store/partner/details/reducer.ts","webpack:///./design-system/components/dropdowns/SuggestInput/hooks/use-async-options-request.ts","webpack:///./common/layouts/TrailersPageLayout/TrailersTable/cell-renderers/TypeCell/TypeCell.tsx","webpack:///./broker-admin/layouts/StatisticsPage/SelectedFilters/SelectedFilters.tsx","webpack:///./common/layouts/SideBars/contents/EditContactDetailsSidebarContent/AddOtherMessengerDropdown/AddOtherMessengerDropdown.tsx","webpack:///./common/components/logs/shared/LogCardHead/LogCardHead.scss?eeab","webpack:///./common/store/create-company/slice.ts","webpack:///./common/components/maps/MapLoader/MapLoader.scss?85ed","webpack:///./common/components/notification-cards/entities/NotificationSubjectType/NotificationSubjectType.tsx","webpack:///./broker-admin/store/deadhead-creation/sagas.ts","webpack:///./common/layouts/BaseCarrierContractsLayout/BaseCarrierContractsTable/BaseCarrierContractsTable.scss?8830","webpack:///./broker-admin/store/broker-order-details/reducer.ts","webpack:///./common/components/dropdowns/TruckRateModeDropdown/TruckRateModeDropdown.scss?a097","webpack:///./broker-admin/components/suggests/ExternalBusinessPartnerSuggest/ExternalBusinessPartnerSuggest.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/LaneDropdownInput/LaneDropdownInput.scss","webpack:///./broker-admin/store/broker-tour-stats/sagas.ts","webpack:///./common/utils/api/geo-services-config.ts","webpack:///./common/layouts/CommonEditableTrailerDetailsLayout/EditTrailerSidebarContent/ChangeRateOrContractWarning/ChangeRateOrContractWarning.tsx","webpack:///./broker-admin/components/notification-cards/CompletedPartnerCarrierContractCard/CompletedPartnerCarrierContractCard.tsx","webpack:///./common/components/OverlaysManager/DevLocalizationLanguageSwitcher/DevLocalizationLanguageSwitcher.scss","webpack:///./common/components/maps/MapFooter/MapFooter.tsx","webpack:///./common/store/documents-dict/types.ts","webpack:///./common/store/countries-dict/sagas.ts","webpack:///./broker-admin/store/order-edit-context/slice.ts","webpack:///./common/components/status/ShipperContractStatus/ShipperContractStatus.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerToursPage.tsx","webpack:///./broker-admin/store/partner/rfq-stats/reducer.ts","webpack:///./common/layouts/SignInPage/SignInPage.tsx","webpack:///./common/layouts/AccountPage/AccountPreview/AccountPreview.scss?fd7e","webpack:///./common/store/company/selectors.ts","webpack:///./common/layouts/NewOrderPage/MultiPointOrderDraftDetails/MultiPointOrderDraftDetails.scss?d11b","webpack:///./common/layouts/SideBars/contents/EditContactDetailsSidebarContent/EditContactDetailsSidebarContent.scss?0450","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentParamsDetails/CommonDocumentParamsDetails/CommonDocumentParamsDetails.scss","webpack:///./common/components/entity-details/TourPapersTabContent/TourPapersTabContent.tsx","webpack:///./common/layouts/LeftCardLayout/LeftCardLayout.scss?6c29","webpack:///./shipper/layouts/SideBars/hooks.tsx","webpack:///./broker-admin/store/tenders/slice.ts","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/PartnerExternalPlatformDetailsForm/constants.ts","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentParamsDetailsForm/CommonDocumentParamsDetailsForm/CommonDocumentParamsDetailsForm.scss","webpack:///./common/icons/SplitIcon.tsx","webpack:///./common/layouts/BaseShipperContractDetailsLayout/dialogs/RevokeShipperContractConfirmation/get-initial-values.ts","webpack:///./broker-admin/store/deadhead-creation/selectors.ts","webpack:///./broker-admin/components/AdditionalServiceGroupLabel/AdditionalServiceGroupLabel.tsx","webpack:///./common/icons/OriginPinIcon.tsx","webpack:///./broker-admin/layouts/ClientPage/ClientPage.tsx","webpack:///./common/icons/TeleportIcon.tsx","webpack:///./common/icons/TeamDrive2Icon.tsx","webpack:///./common/components/papers/AttachPapersDropdownControlTrigger/AttachPapersDropdownControlTrigger.scss?bb87","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/DropAndHookRoutePointPicker/DropAndHookRoutePointPicker.scss?9733","webpack:///./common/components/status-pill/DriverStatusPill/DriverStatusPill.tsx","webpack:///./common/components/SignUpForm/SignUpForm.scss?ad3c","webpack:///./common/components/dropdowns/EmissionClassDropdown/EmissionClassDropdown.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderDetails/ShipmentDetailsCard/utils.ts","webpack:///./common/icons/WrenchIcon.tsx","webpack:///./common/components/Stepper/Stepper.tsx","webpack:///./common/components/entity-details/hooks/shipper-order-details-rows-factory.tsx","webpack:///./common/components/Table/cell-renderers/TelematicUpdateDateCell/TelematicUpdateDateCell.scss?6ad2","webpack:///./common/components/notification-cards/shared/FieldName/FieldName.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/PricingSettingsForm/PricingSettingsForm.tsx","webpack:///./common/store/vehicle-schedules/sagas.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/footers/EditTimeWindowsFooterContent/EditTimeWindowsFooterContent.tsx","webpack:///./design-system/components/date-pickers/TwinDatePicker/TwinDatePicker.scss?c133","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerToursListPage/FiltersSidebarContent/get-initial-values.ts","webpack:///./broker-admin/store/broker-team-edit/sagas.ts","webpack:///./common/utils/hooks/use-schedule-flags-factory.tsx","webpack:///./common/utils/search.ts","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/constants.ts","webpack:///./common/components/RangeSelector/utils.ts","webpack:///./broker-admin/components/dropdowns/PartnersSuggest/PartnersSuggest.tsx","webpack:///./design-system/components/InfoTable/formatters/CommentFormatter/CommentFormatter.scss?7e84","webpack:///./common/layouts/CommonEditableTruckDetailsLayout/EditTruckSidebarContent/TruckDetailsForm/TruckDetailsForm.tsx","webpack:///./shipper/utils/api/shipper-tranziit/api.ts","webpack:///./common/utils/hooks/use-schedule-time-window-factory.tsx","webpack:///./common/components/entity-details/ExcludedCountries/ExcludedCountry/ExcludedCountry.tsx","webpack:///./broker-admin/utils/hooks/useBrokerTourPayloadWaypoints.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/AssignmentSettingsForm/validate-form.ts","webpack:///./common/store/notifications/sagas.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderRouteMap/BrokerOrderRouteMap.scss?4ded","webpack:///./common/components/ReadOnlyField/ReadOnlyField.scss?e1aa","webpack:///./common/icons/EuroSymbolIcon.tsx","webpack:///./common/layouts/NewOrderPage/OfferDetails/CollapsedOfferDetails/CollapsedOfferDetails.scss?90e5","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrdersPage.tsx","webpack:///./design-system/components/FilePickerInput/models.ts","webpack:///./common/icons/BigSearchIcon.tsx","webpack:///./broker-admin/components/dropdowns/BrokerUserControl/BrokerUserControl.tsx","webpack:///./common/layouts/SideBars/contents/TrailerFiltersSidebarContent/TrailerFiltersSidebarContent.scss?787d","webpack:///./design-system/components/form-field/FieldLabel/FieldLabel.tsx","webpack:///./broker-admin/layouts/PartnersPage/PartnersPage.tsx","webpack:///./design-system/components/InfoTable/formatters/WarningTextFormatter/WarningTextFormatter.scss?918b","webpack:///./common/components/status/CarrierContractStatus/CarrierContractStatus.tsx","webpack:///./broker-admin/components/notification-cards/entities/TeamName/TeamName.scss?ac52","webpack:///./broker-admin/layouts/PartnersPage/PartnersTable/cell-renderers/LocationCell/LocationCell.scss?c0cf","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/utils/geo-json-factory.ts","webpack:///./broker-admin/store/partners/channels.ts","webpack:///./broker-admin/components/status/ColoredPriceRuleStatusLabel/ColoredPriceRuleStatusLabel.tsx","webpack:///./common/components/Table/cell-renderers/IdCell/IdCell.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/DropAndHookRoutePointPicker/DropAndHookRoutePointPicker.tsx","webpack:///./common/components/SignUpForm/CompanySignUpForm/validate-form.ts","webpack:///./common/layouts/BaseDocumentsLayout/dialogs/RejectDocumentConfirmation/RejectDocumentConfirmation.tsx","webpack:///./common/components/status-pill/SpotRequestStatusPill/SpotRequestStatusPill.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/TimeIntervalLimitPillLabel/TimeIntervalLimitPillLabel.tsx","webpack:///./common/layouts/TransportOrderDetailsPageLayout/footers/StatusFooterContent/AdditionalManagementControl/AdditionalManagementControl.tsx","webpack:///./broker-admin/store/broker-team-edit/actions.ts","webpack:///./common/components/entity-details/utils/check-temperature-violation.ts","webpack:///./broker-admin/store/broker-orders/channels.ts","webpack:///./broker-admin/components/dropdowns/ShippersSuggest/hooks/use-shipper-suggest-options.ts","webpack:///./broker-admin/layouts/SettingsPage/AdditionalServicesSettings/AdditionalServicesSettings.tsx","webpack:///./common/layouts/TransportOrderListPageLayout/FiltersSidebarContent/get-query-filters.ts","webpack:///./broker-admin/store/order-edit-context/utils/get-deleted-stop-aliases.ts","webpack:///./design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel.tsx","webpack:///./common/layouts/ContinueSignUpPage/ContinueSignUpForm/ContinueSignUpForm.tsx","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayoutContextWrap/SideBarLayoutContextWrap.tsx","webpack:///./common/layouts/BaseCarrierContractsLayout/BaseCarrierContractsLayout.tsx","webpack:///./broker-admin/components/pills/PriceRuleTypePill/PriceRuleTypePill.tsx","webpack:///./common/components/Avatar/Avatar.scss?5e24","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/AlertsSettingsForm/validate-form.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/TransportOrderDetailsPageLayout.scss","webpack:///./common/utils/hooks/useOnlyChangesEffect.ts","webpack:///./common/components/papers/message-placeholders/PapersMessagePlaceholder/PapersMessagePlaceholder.scss?fd39","webpack:///./common/components/dropdowns/UserMultipleDropdown/UserMultipleDropdown.scss?df76","webpack:///./broker-admin/layouts/PriceSettingsEditRuleLayout/PriceSettingsEditRuleLayout.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/AssetPin/AssetPin.tsx","webpack:///./common/layouts/dialogs/ChangeRateOrContractAssetDialogModal/ChangeRateOrContractAssetForm/constants.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/hooks/use-sync-route-stops-channels.ts","webpack:///./common/store/order-creation/utils/prepare-reserve-preview.ts","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLoader/HeaderSideBarLoader.scss?9ead","webpack:///./common/layouts/TransportOrderDetailsPageLayout/DriversAssignmentForm/validate-form.ts","webpack:///./common/components/notification-cards/RevokedDocumentCard/RevokedDocumentCard.scss?97aa","webpack:///./common/store/order-creation/utils/create-reverse-query.ts","webpack:///./common/components/notification-cards/UploadDocumentCard/UploadDocumentCard.tsx","webpack:///./broker-admin/store/price-settings/rules/sagas.ts","webpack:///./common/components/status-pill/ShipperContractStatusPill/ShipperContractStatusPill.tsx","webpack:///./common/components/status-colored/OrderColoredStatus/OrderColoredStatus.tsx","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/PartnerDetailsPage.tsx","webpack:///./broker-admin/store/price-settings/rules/channels.ts","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/PartnerDetailsForm/constants.ts","webpack:///./common/components/Modal/ModalContent/ModalContent.tsx","webpack:///./broker-admin/store/tenders/selectors.ts","webpack:///./common/components/ContractName/ContractName.tsx","webpack:///./common/layouts/Members/ContactsTable/cell-renderers/PendingUserCell/PendingUserCell.tsx","webpack:///./common/utils/api/tranziit/base-tranziit-api.ts","webpack:///./common/components/toasts/NotificationToastContent/NotificationToastContent.tsx","webpack:///./common/components/Alert/AlertProgressBar/AlertProgressBar.tsx","webpack:///./common/components/Table/utils/check-filters.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/AssetPin/AssetPin.scss?5ea4","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/LongDeadheadConfirmation/LongDeadheadConfirmation.tsx","webpack:///./common/layouts/Members/dialogs/ChangeUserRoleModal/ChangeUserRoleModal.tsx","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarAlertsLayout/FooterSideBarAlertsLayout.scss?b806","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/FerryOnboardPointPicker/FerryOnboardPointPicker.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/validate-form.ts","webpack:///./broker-admin/layouts/StatisticsPage/StatisticsChart/Chart/Chart.tsx","webpack:///./common/icons/StopWarningIcon.tsx","webpack:///./design-system/components/PriceDetails/PriceDetails.scss?2c19","webpack:///./common/store/rfqs-stats/selectors.ts","webpack:///./common/components/FilterPills/FilterPills.scss?32da","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/RulesTable/cell-renderers/ValidPeriodCell/ValidPeriodCell.scss?5b1f","webpack:///./common/icons/FeeIcon.tsx","webpack:///./common/layouts/SideBars/contents/ContractDetailsSidebarContent/ContractDetailsSidebarContent.scss?427d","webpack:///./common/layouts/dialogs/ActivateAssetDialogModal/ActivateAssetForm/validate-form.ts","webpack:///./common/layouts/TrailersPageLayout/TrailersTable/cell-renderers/StatusCell/StatusCell.scss?3a85","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/footers/UploadFooterContent/UploadFooterContent.scss?6b0a","webpack:///./common/layouts/NewOrderPage/CargoDetailsForm/ContactFilledIndicator/ContactFilledIndicator.tsx","webpack:///./broker-admin/layouts/PartnerPage/PartnerTransportOrders/PartnerTransportOrders.scss","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/validate-form.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/SearchForm/AssignmentOptionsDropdown/AssignmentOptionsDropdown.tsx","webpack:///./common/layouts/NewOrderPage/PriceMatrixWithMap/PriceMatrixWithMap.scss?c431","webpack:///./common/icons/AddAccountDuotineIcon.tsx","webpack:///./broker-admin/store/broker-teams/actions.ts","webpack:///./common/layouts/Members/dialogs/DeactivateUserModal/DeactivateUserModal.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/hooks/useSyncMapState.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/footers/StatusFooterContent/AdditionalManagementControl/AdditionalManagementControl.scss?3b6f","webpack:///./broker-admin/store/partner/details/types.ts","webpack:///./broker-admin/layouts/BrokerUsersPage/BrokerTeamsLayout/BrokerTeamsTable/cell-renderers/UsersCountCell/UsersCountCell.tsx","webpack:///./broker-admin/utils/tour-papers-url-factory.ts","webpack:///./common/layouts/NewOrderPage/NewOrderPage.tsx","webpack:///./broker-admin/components/notification-cards/entities/ShipperContractLaneId/ShipperContractLaneId.tsx","webpack:///./common/layouts/SideBars/contents/EditableTrailerDetailsSidebarContent/EditableTrailerDetailsSidebarContent.tsx","webpack:///./common/layouts/NewOrderPage/CargoDetailsForm/async-validations.ts","webpack:///./broker-admin/layouts/SettingsPage/RateMatrix/RateMatrix.scss?32ed","webpack:///./common/utils/download-headers.ts","webpack:///./common/store/orders/channels.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/WaypointNumberIcon/WaypointNumberIcon.tsx","webpack:///./common/store/rfqs-changes/types.ts","webpack:///./common/utils/query.ts","webpack:///./common/components/Table/SearchControl/SearchControl.scss?febe","webpack:///./common/store/rfq-details/actions.ts","webpack:///./common/store/trucks/reducer.ts","webpack:///./common/store/rfqs-changes/selectors.ts","webpack:///./common/components/maps/MapStackClusterPin/MapStackClusterPin.scss?2275","webpack:///./common/store/members/reducer.ts","webpack:///./common/layouts/LeftMenuLayout/TopBarContent/TopBarContent.scss?0439","webpack:///./common/store/papers-edit/selectors.ts","webpack:///./common/components/Table/cell-renderers/PhoneCell/PhoneCell.scss?e328","webpack:///./broker-admin/layouts/AssetDetailsPage/AssetDetailsPage.tsx","webpack:///./common/store/drivers/channels.ts","webpack:///./common/layouts/Members/DeactivateUserForm/DeactivateUserForm.scss","webpack:///./broker-admin/layouts/SignUpPage/SignUpPage.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/QuickTimeWindowLink/QuickTimeWindowLink.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/SpotSettingsForm/constants.ts","webpack:///./broker-admin/components/dropdowns/PartnerSuggest/PartnerSuggest.scss","webpack:///./common/components/OverlaysManager/OverlaysManager.tsx","webpack:///./common/store/trailers/reducer.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/hooks/useSyncMapStateContextValue.ts","webpack:///./common/store/additional-services-dict/slice.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/TrucksSuggest/TrucksSuggest.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/SearchForm/CarrierDropdown/CarrierWithUtilizationDropdownOption/CarrierWithUtilizationDropdownOption.scss?1a33","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/TourTypeTabs/TourTypeTabs.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/AlertsSettingsForm/prepare-system-settings.ts","webpack:///./common/layouts/ListPage/ListPageHeaderTabsLayout/ListPageHeaderTabsLayout.scss?4607","webpack:///./common/store/carriers-utilization/types.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderDetails/TourDetailsCard/TourDetailsCard.scss?c837","webpack:///./common/components/OperationUnavailableReasonsAlert/OperationUnavailableReasonsAlert.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerToursListPage/FiltersSidebarContent/get-query-filters.ts","webpack:///./common/components/dropdowns/CountryDropdown/CountryDropdown.scss","webpack:///./common/layouts/switchable-views/LogsSwitchableViewLayout/LogsSwitchableViewLayout.tsx","webpack:///./common/icons/DoneIcon.tsx","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/BasicWidgetHeaderActions/BasicWidgetHeaderActions.tsx","webpack:///./common/components/notification-cards/UpdatedDocumentCard/UpdatedDocumentCard.tsx","webpack:///./common/store/gps-tracking-status/types.ts","webpack:///./common/components/ErrorModal/ErrorTraceId/ErrorTraceId.tsx","webpack:///./common/components/ExcludeCountriesMapWidget/ExcludeCountriesMapWidget.tsx","webpack:///./broker-admin/layouts/PartnersPage/PartnersPage.scss","webpack:///./common/components/Table/Pagination/Pagination.scss?7540","webpack:///./common/icons/AddUserIcon.tsx","webpack:///./common/layouts/NewOrderPage/Steps/Steps.scss?f005","webpack:///./broker-admin/components/dropdowns/KeyAccountManagerDropdown/KeyAccountManagerDropdown.scss","webpack:///./common/store/papers-edit/slice.ts","webpack:///./common/store/carriers-utilization/reducer.ts","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/contexts/side-bar-layout-context.ts","webpack:///./common/layouts/SideBars/contents/TrailerFiltersSidebarContent/get-query-filters.ts","webpack:///./common/components/Table/cell-renderers/FlagCell/FlagCell.tsx","webpack:///./common/layouts/NewOrderPage/CargoDetailsForm/footer-alert-contents/OverloadingTrailerValidationAlertContent/OverloadingTrailerValidationAlertContent.tsx","webpack:///./common/store/settings/types.ts","webpack:///./broker-admin/store/deadhead-creation/utils/get-order-stop-fakse-ids.ts","webpack:///./common/store/drivers/utils.ts","webpack:///./common/components/status/SpotRequestStatus/SpotRequestStatus.tsx","webpack:///./common/store/members/types.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/EditStopContactForm/EditStopContactForm.tsx","webpack:///./common/store/notifications/selectors.ts","webpack:///./common/layouts/BaseShipperContractDetailsLayout/EditShipperContractDetailsForm/validate-form.ts","webpack:///./common/layouts/NewOrderPage/hooks/use-steps-context-value.ts","webpack:///./common/layouts/BaseShipperContractLanesLayout/FiltersSidebarContent/get-initial-values.ts","webpack:///./common/store/trailers/selectors.ts","webpack:///./broker-admin/store/partner/details/utils/lock.ts","webpack:///./common/components/notification-cards/StatusChangedCard/StatusChangedCard.scss?c517","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerToursListPage/BrokerToursListPage.tsx","webpack:///./broker-admin/store/broker-order-edit/slice.ts","webpack:///./broker-admin/store/price-settings/additional-services/sagas.ts","webpack:///./common/layouts/dialogs/ArchiveAssetConfirmationModal/validate-form.ts","webpack:///./broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/ShipperContractLaneCreationForm/prepare-api-requests.ts","webpack:///./broker-admin/layouts/InvoicesListPage/InvoicesTable/cell-renderers/ActionsCell/ActionsCell.tsx","webpack:///./common/components/maps/pins/WaypointNumberPin/WaypointNumberPin.scss?acf0","webpack:///./common/icons/BigCheckIcon.tsx","webpack:///./broker-admin/store/broker-tour-details/reducer.ts","webpack:///./design-system/components/date-pickers/internals/DatePickerOverlay/DatePickerOverlay.tsx","webpack:///./common/layouts/CommonEditableTruckDetailsLayout/CommonEditableTruckDetailsLayout.tsx","webpack:///./common/components/papers/utils/getTotalWithOptimisticPapersCount.ts","webpack:///./common/icons/UpArrowIcon.tsx","webpack:///./common/components/SwitchableView/SwitchableView.ts","webpack:///./common/components/papers/ShipmentPaperAttachPapersDropdownControl/ShipmentPaperAttachPapersDropdownControl.tsx","webpack:///./common/components/PhoneNumberInput/PhoneNumberDropdownInput/PhoneNumberDropdownInput.scss?6d11","webpack:///./broker-admin/store/broker-order-assigment/actions.ts","webpack:///./common/components/MoneyDiff/MoneyDiff.tsx","webpack:///./carrier/utils/hooks/useTransportOrderPayloadWaypoints.tsx","webpack:///./common/components/LastGPSPositionAlert/LastGPSPositionAlert.tsx","webpack:///./common/layouts/NewOrderPage/utils/check-is-credit-limit-exceeded.ts","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/PartnerDetailsHeaderPills/PartnerDetailsHeaderPills.tsx","webpack:///./common/layouts/Members/dialogs/DeleteContactConfirmation/DeleteContactConfirmation.tsx","webpack:///./broker-admin/layouts/PartnersPage/PartnersTable/cell-renderers/ControlsCell/ControlsCell.scss?9e6f","webpack:///./broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/ShipperContractLaneCreationConfirmForm/constants.ts","webpack:///./common/layouts/dialogs/ChangeRateOrContractAssetDialogModal/ChangeRateOrContractAssetForm/prepare-change-rate-request.ts","webpack:///./common/layouts/switchable-views/LogsSwitchableViewLayout/LogsSwitchableViewLayout.scss?ebb6","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/LockStatusOnChangeForm/LockStatusOnChangeForm.tsx","webpack:///./common/layouts/SideBars/contents/TruckFiltersSidebarContent/TruckFiltersSidebarContent.scss?b187","webpack:///./common/store/shipper-contract-lane-details/slice.ts","webpack:///./broker-admin/layouts/ShipperContractDetailsPage/ShipperContractLanesLayout/ShipperContractLanesLayout.scss","webpack:///./common/layouts/DriversPageLayout/InviteDriverForm/InviteDriverForm.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/PickupOrDeliveryRoutePointPicker/PickupOrDeliveryRoutePointPicker.scss?c71f","webpack:///./common/layouts/DriversPageLayout/DriversTable/DriversTable.scss?ae28","webpack:///./common/layouts/SignInPage/validate-form.ts","webpack:///./common/components/logs/shared/LogCardLayout/LogCardLayout.scss?4900","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/utils/prepare-contacts.ts","webpack:///./common/layouts/LoaderOverlay/LoaderOverlay.scss?e7ea","webpack:///./broker-admin/store/spot-requests-stats/channels.ts","webpack:///./broker-admin/layouts/SideBars/UploadShipperContractSidebarContent/UploadShipperContractSidebarContent.scss?3d44","webpack:///./common/store/additional-services-dict/constants.ts","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/filter-pills/PriceComponentFilterPill/PriceComponentFilterPill.tsx","webpack:///./common/layouts/CommonEditableShipperContractLaneDetailsLayout/EditShipperContractLaneSidebarContent/ShipperContractLaneEditForm/validate-form.ts","webpack:///./common/layouts/BaseShipperContractsLayout/BaseShipperContractsTable/BaseShipperContractsTable.tsx","webpack:///./common/components/Alert/AlertContainer/AlertContainer.scss?15ed","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/RuleTypeMultipleControl/RuleTypeMultipleControl.scss","webpack:///./common/store/state-machine/selectors.ts","webpack:///./common/store/driver-assigment/types.ts","webpack:///./common/layouts/BaseShipperContractDetailsLayout/dialogs/RevokeShipperContractConfirmation/validate-form.ts","webpack:///./common/store/drivers/types.ts","webpack:///./common/utils/hooks/useMoneyDiff.ts","webpack:///./design-system/components/Card/Card.scss?7b3d","webpack:///./broker-admin/store/partner/rfq-stats/selectors.ts","webpack:///./broker-admin/components/notification-cards/ExpiredPartnerShipperLaneContractCard/ExpiredPartnerShipperLaneContractCard.tsx","webpack:///./common/icons/Invoice2Icon.tsx","webpack:///./common/layouts/CommonEditableShipperContractLaneDetailsLayout/ShipperContractLaneDetailsSidebarContent/ShipperContractLaneDetailsSidebarContent.tsx","webpack:///./common/utils/phone-number.ts","webpack:///./broker-admin/layouts/BrokerUsersPage/BrokerTeamsLayout/BrokerTeamsLayout.tsx","webpack:///./common/store/drivers/sagas.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/TimeWindowZoneText/TimeWindowZoneText.tsx","webpack:///./design-system/components/dropdowns/DropdownSearchInput/DropdownSearchInput.tsx","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentDetailsLayout/DocumentEventsSummary/DocumentEventsSummary.scss?8c25","webpack:///./broker-admin/layouts/PriceSettingsEditRuleLayout/validate-form.ts","webpack:///./common/components/notifications/NotificationsBarContent/NotificationCardFooter/NotificationCardFooter.scss?ac00","webpack:///./broker-admin/components/notification-cards/BusinessPartnerProfileUpdatedCard/BusinessPartnerProfileUpdatedCard.tsx","webpack:///./common/layouts/Members/ContactsTable/cell-renderers/PositionsCell/PositionsCell.scss?f9ed","webpack:///./design-system/components/InfoTable/formatters/AsyncCountryFormatter/AsyncCountryFormatter.tsx","webpack:///./broker-admin/layouts/BrokerUsersPage/BrokerTeamsLayout/BrokerTeamsLayout.scss?9080","webpack:///./common/layouts/BaseCarrierContractsLayout/BaseCarrierContractsTable/cell-renderers/ActionsCell/ActionsCell.tsx","webpack:///./broker-admin/store/broker-team-details/slice.ts","webpack:///./broker-admin/layouts/PartnerPage/PartnerTransportOrders/PartnerTransportOrders.tsx","webpack:///./common/components/OverlaysManager/DevLocalizationLanguageSwitcher/DevLocalizationLanguageSwitcher.tsx","webpack:///./broker-admin/layouts/PriceSettingsRulesPage/PriceSettingsEditRuleDetailsPage/PriceSettingsEditRuleDetailsPage.tsx","webpack:///./broker-admin/layouts/SettingsPage/RateMatrix/RatesTable/RatesTable.tsx","webpack:///./common/icons/TollIcon.tsx","webpack:///./common/utils/api/errors/fetch-error.ts","webpack:///./broker-admin/store/partners-stats/actions.ts","webpack:///./common/components/dropdowns/RFQBrokerSourceMultipleDropdown/RFQBrokerSourceMultipleDropdown.tsx","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/PriceSettingsRules.tsx","webpack:///./common/icons/TrailerIcon.tsx","webpack:///./common/layouts/BaseDocumentsLayout/BaseDocumentsTable/BaseDocumentsTable.scss?0e36","webpack:///./broker-admin/layouts/App/App.tsx","webpack:///./common/components/Table/TableSkeleton/TableSkeleton.tsx","webpack:///./design-system/components/PriceDetails/PriceDetails.tsx","webpack:///./common/store/consistent-state-machine/slice.ts","webpack:///./broker-admin/layouts/SideBars/RFQStatisticsSidebarContent/RFQStatisticsFilters/get-initial-values.ts","webpack:///./common/components/Radio/Radio.tsx","webpack:///./common/components/NavBurger/override.css","webpack:///./broker-admin/layouts/SideBars/PriceSettingsRuleFiltersSidebarContent/validate-form.ts","webpack:///./common/layouts/SideBars/contents/EditContactDetailsSidebarContent/AddOtherMessengerDropdown/AddOtherMessengerDropdown.scss?10de","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/PartnerExternalPlatformDetailsForm/validate-form.ts","webpack:///./common/components/GroupedLogsLayout/GroupedLogsLayout.scss?b8df","webpack:///./common/store/time-zones/slice.ts","webpack:///./common/components/ActionOverlay/ActionOverlay.tsx","webpack:///./common/components/notification-cards/OrderWasCanceledCard/OrderWasCanceledCard.tsx","webpack:///./common/layouts/BaseDocumentsLayout/dialogs/RejectDocumentConfirmation/prepare-reject-data.ts","webpack:///./broker-admin/layouts/StatisticsPage/StatisticsPage.tsx","webpack:///./common/utils/api/tranziit/errors/error-response.ts","webpack:///./common/store/trailers/actions.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderDetails/TransportOrderDetailsCard/TransportOrderDetailsCard.scss?f457","webpack:///./common/components/dropdowns/UserMultipleDropdown/UserMultipleDropdown.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/AssignmentSettingsForm/get-initial-values.ts","webpack:///./common/layouts/TrucksPageLayout/TrucksTable/cell-renderers/EmissionClassCell/EmissionClassCell.scss?fbad","webpack:///./common/components/tabs/TabLabel/TabLabel.tsx","webpack:///./broker-admin/layouts/SideBars/SpotRequestDetailsSidebarContent/SpotRequestDetailsSidebarContent.tsx","webpack:///./common/layouts/LeftMenuLayout/Navigation/Logo/Logo.tsx","webpack:///./common/layouts/NewOrderPage/CargoDetailsForm/PointContactsPicker/PointContactsPicker.tsx","webpack:///./design-system/components/dropdowns/DropdownTreeInput/DropdownTreeInput.scss?2d72","webpack:///./broker-admin/layouts/SpotRequestsPage/SpotRequestListPage/constants.ts","webpack:///./common/layouts/dialogs/ActivateAssetDialogModal/ActivateAssetForm/constants.ts","webpack:///./common/utils/test-urls.ts","webpack:///./common/layouts/CommonEditableShipperContractLaneDetailsLayout/EditShipperContractLaneSidebarContent/ShipperContractLaneEditForm/prepare-api-requests.ts","webpack:///./common/layouts/ListPage/ListPageLayout/ListPageLayout.tsx","webpack:///./common/layouts/RFQDetailsPageLayout/footers/ContinueRFQ/ContinueRFQ.scss?fa2c","webpack:///./common/components/ErrorPlaceholder/ErrorPlaceholder.tsx","webpack:///./common/store/documents-dict/selectors.ts","webpack:///./design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInput.scss?2e35","webpack:///./broker-admin/components/notification-cards/ExpireSoonPartnerShipperContractCard/ExpireSoonPartnerShipperContractCard.tsx","webpack:///./common/store/shipper-suggest/constants.ts","webpack:///./common/layouts/LeftMenuLayout/LeftMenuLayout.scss?66a2","webpack:///./common/utils/parse-temperature-mode.ts","webpack:///./common/layouts/dialogs/ActivateAssetDialogModal/ActivateAssetDialogModal.tsx","webpack:///./common/layouts/BaseShipperContractLanesLayout/query-models.ts","webpack:///./common/store/notifications/actions.ts","webpack:///./common/layouts/TrucksPageLayout/TrucksTable/TrucksTable.tsx","webpack:///./common/store/shipper-contract-lane-creation/sagas.ts","webpack:///./common/components/RedirectSignedUser/RedirectSignedUser.tsx","webpack:///./broker-admin/layouts/SideBars/CreatePartnerSidebarContent/CreatePartnerSidebarContent.tsx","webpack:///./common/layouts/NewOrderPage/CargoDetailsForm/CargoDetailsForm.tsx","webpack:///./common/components/dropdowns/BrokerTeamsSuggest/BrokerTeamsSuggest.scss?3549","webpack:///./broker-admin/store/price-settings/rates/reducer.ts","webpack:///./common/components/LanguageSelector/LanguageSelector.scss","webpack:///./common/store/consistent-state-machine/selectors.ts","webpack:///./design-system/components/FilePickerInput/FilePickerInput.scss?efc0","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/WaypointNumberIcon/WaypointNumberIcon.tsx","webpack:///./common/components/papers/ImageLoader/ImageLoader.tsx","webpack:///./common/layouts/SideBars/SideBarLayout/SideBarLayout.scss?9cc1","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/AssignTriggerLabel/AssignTriggerLabel.tsx","webpack:///./common/components/entity-details/EntitySidebarSkeleton/EntitySidebarSkeleton.tsx","webpack:///./common/layouts/dialogs/ActivateAssetDialogModal/ActivateAssetForm/ActivateAssetForm.scss?40a1","webpack:///./common/components/Timeline/TimelineAutoSizer/TimelineAutoSizer.scss?d15b","webpack:///./common/store/transport-orders/types.ts","webpack:///./common/icons/TuneIcon.tsx","webpack:///./common/store/trailers-dict/types.ts","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/AlertsSettingsForm/get-initial-values.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/AssetPin/RateModeStatusPill/RateModeStatusPill.tsx","webpack:///./common/layouts/dialogs/ArchiveAssetConfirmationModal/constants.ts","webpack:///./common/layouts/TrailersPageLayout/TrailersPageLayout.scss?dbe5","webpack:///./broker-admin/store/broker-team-details/channels.ts","webpack:///./broker-admin/layouts/PartnersPage/query-models.ts","webpack:///./common/components/ExcludeCountriesMapWidget/ExcludeCountriesMapWidget.scss?02c4","webpack:///./broker-admin/components/notification-cards/entities/PartnerName/PartnerName.tsx","webpack:///./common/icons/ChartIcon.tsx","webpack:///./broker-admin/components/notification-cards/UpdatedPartnerShipperContractCard/UpdatedPartnerShipperContractCard.tsx","webpack:///./broker-admin/components/notification-cards/TransportationOrderDeclinedCard/TransportationOrderDeclinedCard.scss?268b","webpack:///./common/contexts/notification-sidebar-context.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderDetails/TourDetailsCard/TourDetailsCard.tsx","webpack:///./common/layouts/LeftMenuLayout/Navigation/Logo/Logo.scss?011e","webpack:///./common/components/status/TrailerStatus/TrailerStatus.tsx","webpack:///./broker-admin/store/partner/details/utils/addresses.ts","webpack:///./common/components/status-pill/RFQStatusPill/RFQStatusPill.tsx","webpack:///./common/layouts/BaseShipperContractDetailsLayout/dialogs/RevokeShipperContractConfirmation/RevokeShipperContractConfirmation.tsx","webpack:///./common/components/Table/WarningFilterOptionsDropdown/WarningFilterOptionsDropdown.tsx","webpack:///./common/layouts/DriversPageLayout/prepare-fetch-page-query.ts","webpack:///./broker-admin/store/broker-order-details/selectors.ts","webpack:///./common/utils/hooks/useCommonUrlFactoryContext.ts","webpack:///./common/components/status-machine/contexts/HighlightedEntityContext.tsx","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/footers/UploadFooterContent/UploadFooterContent.tsx","webpack:///./common/utils/hooks/useTestSelector.ts","webpack:///./common/icons/UnavailableTrailerIcon.tsx","webpack:///./common/components/SignUpForm/UserSignUpForm/UserSignUpForm.scss?fe95","webpack:///./common/components/maps/MapTooltipMenu/MapTooltipMenu.scss?a8f0","webpack:///./broker-admin/layouts/SettingsPage/TenderCalculator/TenderCalculator.tsx","webpack:///./common/store/documents/sagas.ts","webpack:///./common/layouts/dialogs/ArchiveAssetConfirmationModal/ArchiveAssetConfirmationModal.tsx","webpack:///./common/components/Switcher/Switcher.tsx","webpack:///./common/components/User/User.tsx","webpack:///./design-system/components/Divider/Divider.scss?d229","webpack:///./common/icons/MapIcon.tsx","webpack:///./broker-admin/components/status-machine/footers/ChangeShipmentStatusFooter/ChangeShipmentStatusFooter.tsx","webpack:///./broker-admin/store/price-settings/rates/types.ts","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/NewOrderParametersSettingsForm/NewOrderParametersSettingsForm.tsx","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentParamsDetails/DocumentParamsDetails.tsx","webpack:///./common/utils/hooks/useSideBarFooterHeight.ts","webpack:///./broker-admin/store/deadhead-creation/utils/get-deleted-stop-fake-ids.ts","webpack:///./common/components/Alert/AlertProgressBar/AlertProgressBar.scss?eb78","webpack:///./broker-admin/store/partner/details/utils/check-need-show-credit-limit.ts","webpack:///./common/components/notification-cards/RejectedDocumentCard/RejectedDocumentCard.tsx","webpack:///./common/layouts/RFQListPageLayout/RFQsTable/cell-renderers/TrailerTypeCell/TrailerTypeCell.scss?8ec8","webpack:///./common/components/Table/Pagination/Pagination.tsx","webpack:///./common/components/notification-cards/RevokedDocumentCard/RevokedDocumentCard.tsx","webpack:///./broker-admin/store/broker-teams/sagas.ts","webpack:///./broker-admin/layouts/SideBars/CreateExternalPartnerSidebarContent/CreateExternalPartnerSidebarContent.tsx","webpack:///./common/layouts/BaseShipperContractLanesLayout/BaseShipperContractLanesTable/cell-renderers/LocationCell/LocationCell.scss?3673","webpack:///./common/layouts/BaseDocumentsLayout/BaseDocumentsLayout.tsx","webpack:///./common/layouts/CommonEditableTruckDetailsLayout/EditTruckSidebarContent/TruckDetailsForm/constants.ts","webpack:///./common/components/ReadOnlyFieldValue/ReadOnlyFieldValue.tsx","webpack:///./common/utils/hooks/maps/useGoogleMapsApiLoader.tsx","webpack:///./common/layouts/NewOrderPage/hooks/use-order-creation-percent-context-value.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerToursListPage/prepare-fetch-page-query.ts","webpack:///./common/components/PhoneNumberInput/PhoneNumberDropdownOption/PhoneNumberDropdownOption.scss?7489","webpack:///./common/utils/hooks/useConsistentStateMachine.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/DriveThroughRoutePointPicker/DriveThroughRoutePointPicker.scss?69c5","webpack:///./common/layouts/CommonEditableTrailerDetailsLayout/EditTrailerSidebarContent/TrailerDetailsForm/constants.ts","webpack:///./common/layouts/NewOrderPage/CargoDetailsForm/PointContactsPicker/PointContactsPicker.scss?026d","webpack:///./common/icons/DatabaseIcon.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/TimeIntervalDurationPillLabel/TimeIntervalDurationPillLabel.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/BrokerTourDetails/BrokerTourDetails.tsx","webpack:///./broker-admin/layouts/SideBars/PartnerFiltersSidebarContent/get-query-filters.ts","webpack:///./broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneDetailsPage/ShipperContractLaneDetailsPage.scss","webpack:///./common/utils/hooks/useContainerScroll.ts","webpack:///./common/utils/api/models.ts","webpack:///./broker-admin/layouts/SettingsPage/SettingsPage.scss?1a96","webpack:///./common/utils/hooks/useCloseSidebarAfterRequest.ts","webpack:///./common/components/notification-cards/OrderRouteWasUpdatedCard/OrderRouteWasUpdatedCard.tsx","webpack:///./common/layouts/CommonEditableTrailerDetailsLayout/TrailerDetailsSidebarContent/TrailerDetailsSidebarContent.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/SelectedFilters/SelectedFilters.tsx","webpack:///./common/layouts/SideBars/contents/ContractDetailsSidebarContent/ContractDetailsSidebarContent.tsx","webpack:///./common/layouts/LeftMenuLayout/ContentLimiter/ContentLimiter.scss?0da3","webpack:///./common/icons/BigEmptyIcon.tsx","webpack:///./design-system/components/Calendar/Calendar.tsx","webpack:///./broker-admin/store/deadhead-creation/utils/get-context-route-stop-hash.ts","webpack:///./common/components/SignUpForm/SignUpForm.tsx","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/PartnerDetailsLayout/PartnerDetailsLayout.scss?682b","webpack:///./common/layouts/Members/InviteUserForm/InviteUserForm.scss?3a40","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/RulesTable/cell-renderers/LocationsCell/LocationsCell.scss?8e1d","webpack:///./common/components/status-pill/OrderStatusPill/OrderStatusPill.scss","webpack:///./common/layouts/BaseDocumentsLayout/hooks/use-dict-document.tsx","webpack:///./common/store/company/reducer.ts","webpack:///./common/components/price-details/hooks/editable-price-details.tsx","webpack:///./common/store/shipper-contract-lanes/selectors.ts","webpack:///./common/components/status-pill/BrokerOrderStatusPill/BrokerOrderStatusPill.scss","webpack:///./broker-admin/layouts/PartnersPage/InvitePartnerForm/InvitePartnerForm.scss?34a1","webpack:///./common/layouts/BaseShipperContractsLayout/query-models.ts","webpack:///./broker-admin/components/PriceRuleTargetLabel/PriceRuleTargetLabel.tsx","webpack:///./common/components/maps/GoogleMapContextProvider/GoogleMapContextProvider.tsx","webpack:///./common/icons/ArrowForwardIcon.tsx","webpack:///./broker-admin/components/tour-receipt-details/TourTypeTabsLayout/TourTypeTabsLayout.tsx","webpack:///./common/components/notification-cards/TransportationOrderStatusChangedCard/TransportationOrderStatusChangedCard.tsx","webpack:///./common/store/order-creation/utils/get-default-additional-services.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/BrokerTourDetails/TabTourDetails/TabTourDetails.scss?4ed0","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentParamsDetailsForm/DocumentParamsDetailsForm.tsx","webpack:///./common/store/alerts/selectors.ts","webpack:///./common/components/RangeSelector/RangeSelector.tsx","webpack:///./common/components/Modal/Modal.tsx","webpack:///./common/layouts/TransportOrderDetailsPageLayout/dialogs/AcceptDeclinedOrderConfirmation/AcceptDeclinedOrderConfirmation.tsx","webpack:///./common/components/notification-cards/MissedDeliveryForShipmentCard/MissedDeliveryForShipmentCard.tsx","webpack:///./common/store/order-creation/utils/prepare-price-offer.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteDetailsForm/RouteDetailsForm.tsx","webpack:///./common/components/info-tables/ShipperPriceOfferInfoTable/ShipperPriceOfferInfoTable.scss?e333","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/RoutingSettingsForm/RoutingSettingsForm.scss?97b4","webpack:///./common/store/vehicle-schedules/utils/hash.ts","webpack:///./common/layouts/Members/constants.ts","webpack:///./common/components/Timeline/Delimeter/Delimeter.scss?a13a","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/TrucksSuggest/TruckOptionLabel/TruckOptionLabel.scss?fd00","webpack:///./common/store/notifications/constants.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/FiltersSidebarContent/constants.ts","webpack:///./broker-admin/layouts/SideBars/UploadShipperContractSidebarContent/constants.ts","webpack:///./common/components/maps/pins/FerryLocationPin/FerryLocationPin.tsx","webpack:///./common/components/AssetDetailsMap/AssetDetailsMap.scss?1cc5","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerToursListPage/BrokerToursListPage.scss?fa50","webpack:///./common/utils/urls.ts","webpack:///./broker-admin/components/BaseSpotRequestDetailsSidebarContent/SpotRequestDetails/Bids/Bids.tsx","webpack:///./common/components/Timeline/TimelineAutoSizer/TimelineAutoSizer.tsx","webpack:///./common/layouts/AlertGroup/AlertGroup.tsx","webpack:///./common/layouts/NewOrderPage/OffersForm/OffersForm.scss?b687","webpack:///./broker-admin/store/broker-order-stats/reducer.ts","webpack:///./common/layouts/CommonEditableTrailerDetailsLayout/EditTrailerSidebarContent/prepare-api-trailer.ts","webpack:///./broker-admin/layouts/SideBars/SpotRequestsFiltersSidebarContent/get-query-filters.ts","webpack:///./common/components/Table/cell-renderers/EmailCell/EmailCell.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/TimeIntervalDurationPillLabel/TimeIntervalDurationPillLabel.scss?1efb","webpack:///./common/components/forms/TimeWindowPicker/TimeWindowPicker.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/AssignmentSettingsForm/AssignmentSettingsForm.tsx","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/PartnerExternalPlatformDetailsForm/get-initial-values.ts","webpack:///./common/store/carrier-contract-details/selectors.ts","webpack:///./common/icons/FilledWrenchIcon.tsx","webpack:///./common/store/order-creation/utils/create-fake-id-from-point.ts","webpack:///./common/store/notifications/reducer.ts","webpack:///./common/store/trucks/type-guards.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/EditStopContactForm/validate-form.ts","webpack:///./common/store/state-machine/channels.ts","webpack:///./broker-admin/layouts/SettingsPage/RateMatrix/RatesTable/RatesTable.scss?f3dd","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/contexts/side-bar-header-layout-context.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/footers/StatusFooterContent/ChangeTourStatusControls/ChangeTourStatusControls.scss?2588","webpack:///./common/layouts/dialogs/ChangeRateOrContractAssetDialogModal/ChangeRateOrContractAssetDialogModal.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/BrokerTourDetails/BrokerTourDetails.scss?f753","webpack:///./common/layouts/DriversPageLayout/InviteDriverForm/constants.ts","webpack:///./common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarAlertsLayout/FooterSideBarAlert/FooterSideBarAlert.tsx","webpack:///./common/store/carrier-suggest/sagas.ts","webpack:///./broker-admin/store/spot-requests/selectors.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/get-initial-values.ts","webpack:///./common/utils/download-file.ts","webpack:///./broker-admin/components/InfoTable/formatters/AsyncSpotRequestDetailsStatusFormatter/AsyncSpotRequestDetailsStatusFormatter.tsx","webpack:///./broker-admin/store/partners-stats/selectors.ts","webpack:///./common/components/Table/cell-renderers/DateTimeCell/DateTimeCell.scss?dfed","webpack:///./common/store/create-company/selectors.ts","webpack:///./common/components/dropdowns/TruckModelDropdown/TruckModelDropdown.scss?86ce","webpack:///./common/components/Table/cell-renderers/DateTimeCell/DateTimeCell.tsx","webpack:///./broker-admin/components/dropdowns/CarrierDropdown/CarrierDropdown.tsx","webpack:///./broker-admin/components/suggests/ExternalBusinessPartnerSuggest/ExternalBusinessPartnerSuggest.scss?5cbf","webpack:///./common/components/GeoSuggest/GeoSuggest.tsx","webpack:///./common/components/CountyFlagsLabel/CountyFlagsLabel.tsx","webpack:///./common/store/rfqs-changes/reducer.ts","webpack:///./broker-admin/layouts/SideBars/EditBrokerTeamSidebarContent/prepare-query.ts","webpack:///./common/icons/AttachIcon.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/async-validations.ts","webpack:///./common/components/toasts/footers/AssetFailedActionFooter/AssetFailedActionFooter.tsx","webpack:///./common/components/Timeline/models.ts","webpack:///./common/layouts/BaseShipperContractDetailsLayout/BaseShipperContractDetailsLayout.tsx","webpack:///./common/components/entity-details/alerts/EntityEtaAlert.tsx","webpack:///./common/utils/input-parsers.ts","webpack:///./common/components/ColoredDiff/ColoredDiff.scss?efed","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/PickupOrDeliveryRoutePointPicker/TimeWindowZoneText/TimeWindowZoneText.tsx","webpack:///./broker-admin/store/spot/channels.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/TransportOrderDetailsPageLayout.tsx","webpack:///./broker-admin/layouts/BrokerUsersPage/BrokerTeamsLayout/BrokerTeamsTable/BrokerTeamsTable.tsx","webpack:///./common/store/driver-search/reducer.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/TransportOrderRouteMap/TransportOrderRouteMap.scss?96a2","webpack:///./common/components/dropdowns/UserMultipleDropdown/constants.ts","webpack:///./common/layouts/CommonEditableTrailerDetailsLayout/EditTrailerSidebarContent/TrailerDetailsForm/TrailerDetailsForm.tsx","webpack:///./common/layouts/SideBars/contents/TruckFiltersSidebarContent/TruckFiltersSidebarContent.tsx","webpack:///./common/layouts/LeftMenuLayout/SideBar/SideBar.tsx","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/AddressWidgetHeaderActions/AddressWidgetHeaderActions.scss?4455","webpack:///./common/components/maps/pins/AssetPickUpLocationPin/AssetPickUpLocationPin.scss?23e1","webpack:///./broker-admin/components/dropdowns/BrokerPartnersSuggest/hooks/use-init-broker-partners-suggest-options.ts","webpack:///./common/store/rfqs-changes/sagas.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerToursListPage/BrokerToursTable/cell-renderers/StatusCell/StatusCell.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/AssignOptionLabel/AssignOptionLabel.tsx","webpack:///./broker-admin/store/spot-request-details/reducer.ts","webpack:///./common/icons/HollowCircleIcon.tsx","webpack:///./common/store/carrier-contract-details/actions.ts","webpack:///./common/components/toasts/AlertToastsManager/AlertToastsManager.scss?1962","webpack:///./common/utils/floating-ui.ts","webpack:///./design-system/components/date-pickers/internals/DateLinkTrigger/DateLinkTrigger.tsx","webpack:///./common/components/notifications/NotificationsBarContent/NotificationCardFooter/NotificationCardFooter.tsx","webpack:///./common/components/entity-details/alerts/ViolationTemperatureAlert.tsx","webpack:///./common/store/carrier-suggest/reducer.ts","webpack:///./broker-admin/index.tsx","webpack:///./common/components/papers/labels/AttachPapersUnavailableReasonLabel/AttachPapersUnavailableReasonLabel.tsx","webpack:///./common/icons/OptionsIcon.tsx","webpack:///./common/store/routing-geometry/selectors.ts","webpack:///./broker-admin/store/price-settings/system-settings/models.ts","webpack:///./common/store/carrier-contracts/actions.ts","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentParamsDetailsForm/CommonDocumentParamsDetailsForm/validate-form.ts","webpack:///./broker-admin/store/broker-order-details/channels.ts","webpack:///./common/components/notification-cards/shared/NotificationVerticalRow/NotificationVerticalRow.tsx","webpack:///./design-system/components/date-pickers/TwinDatePicker/TwinDatePicker.tsx","webpack:///./broker-admin/layouts/PartnersPage/PartnerTypeControl/PartnerTypeControl.tsx","webpack:///./common/components/CountyFlagsLabel/CountyFlagsLabel.scss?b0ec","webpack:///./common/layouts/LeftMenuLayout/ContentLimiter/ContentLimiter.tsx","webpack:///./common/icons/MoreIcon.tsx","webpack:///./common/layouts/TransportOrderListPageLayout/TransportOrdersTable/cell-renderers/ReceivedCell/ReceivedCell.tsx","webpack:///./common/layouts/TransportOrderDetailsPageLayout/footers/StatusFooterContent/ManagementControl/ManagementControl.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/EditStopContactForm/prepare-query.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/hooks/createInitPayloadDropPoint.tsx","webpack:///./common/components/notifications/NotificationLabel/NotificationLabel.tsx","webpack:///./common/icons/LinkPickUpIcon.tsx","webpack:///./common/components/notification-cards/ApprovedDocumentCard/ApprovedDocumentCard.scss?3f6b","webpack:///./common/layouts/SignInPage/Notification/Notification.tsx","webpack:///./common/layouts/dialogs/CancelServiceMaintanceConfirmationModal/CancelServiceMaintanceConfirmationModal.tsx","webpack:///./broker-admin/utils/api/spot-broker-tranziit/models.ts","webpack:///./common/layouts/TrucksPageLayout/prepare-fetch-page-query.ts","webpack:///./common/components/Table/header-renderers/CheckboxHeader/CheckboxHeader.scss","webpack:///./common/store/vehicle-schedules/reducer.ts","webpack:///./common/components/notification-cards/TransportationOrderDriverAssignedCard/TransportationOrderDriverAssignedCard.tsx","webpack:///./common/layouts/CommonEditableShipperContractLaneDetailsLayout/EditShipperContractLaneSidebarContent/ShipperContractLaneEditForm/ShipperContractLaneEditForm.scss?e7ea","webpack:///./broker-admin/components/tour-receipt-details/ReceiptPriceDetails/ReceiptPriceDetails.tsx","webpack:///./broker-admin/utils/api/broker-tranziit/api.ts","webpack:///./common/components/price-details/hooks/styles.scss?1364","webpack:///./common/contexts/remote-form-actions.ts","webpack:///./common/store/asset-track/utils.ts","webpack:///./common/components/entity-details/hooks/distanceByCountry.tsx","webpack:///./broker-admin/store/broker-team-details/sagas.ts","webpack:///./common/components/Table/QuickFilters/QuickFilters.tsx","webpack:///./common/store/carrier-contract-details/reducer.ts","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentParamsDetails/CommonDocumentParamsDetails/CommonDocumentParamsDetails.tsx","webpack:///./common/layouts/BaseShipperContractsLayout/BaseShipperContractsLayout.tsx","webpack:///./common/layouts/LeftMenuLayout/contexts/content-root-context.ts","webpack:///./common/icons/DriverIcon.tsx","webpack:///./common/components/Alert/AlertContainer/AlertContainer.tsx","webpack:///./common/utils/hooks/useOnceShow.ts","webpack:///./common/store/shipper-contract-lane-details/channels.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/SearchForm/ExcludeCountries/ExcludeCountries.tsx","webpack:///./common/layouts/LeftMenuLayout/SideBar/SideBar.scss?b3ea","webpack:///./common/store/shipper-contract-details/sagas.ts","webpack:///./common/icons/LeftArrowIcon.tsx","webpack:///./common/components/pills/UserPositionPill/UserPositionPill.tsx","webpack:///./common/components/dropdowns/options/UserDropdownOptionLabel/UserDropdownOptionLabel.scss?b0d2","webpack:///./common/components/Table/cell-renderers/PhoneCell/PhoneCell.tsx","webpack:///./common/components/Timeline/Timeline.tsx","webpack:///./common/utils/google-maps-api/google-maps-geocoder-api.ts","webpack:///./common/icons/DestinationPinIcon.tsx","webpack:///./broker-admin/store/index.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/DriveThroughRoutePointPicker/DriveThroughRoutePointPicker.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/AssignmentForm.tsx","webpack:///./common/layouts/CommonEditableTrailerDetailsLayout/TrailerType/TrailerType.tsx","webpack:///./common/layouts/RFQListPageLayout/RFQsTable/cell-renderers/PricesCell/PricesCell.tsx","webpack:///./common/store/subject-logs/selectors.ts","webpack:///./common/layouts/SideBars/contents/DriverDetailsSidebarContent/DriverDetailsSidebarContent.scss?6de0","webpack:///./common/components/Table/cell-renderers/HumanReadableFullDateCell/HumanReadableFullDateCell.scss?1a3e","webpack:///./common/components/entity-details/DetailsOrPapersTabs/DetailsOrPapersTabs.tsx","webpack:///./common/layouts/dialogs/SetUnavailableAssetConfirmationModal/SetUnavailableAssetConfirmationModal.tsx","webpack:///./common/layouts/Members/ChangeRoleUserForm/validate-form.ts","webpack:///./common/layouts/BaseCarrierContractsLayout/dialogs/RevokeContractConfirmation/constants.ts","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/FerryOnboardPointPicker/FerryOnboardPointPicker.scss?e4a5","webpack:///./common/icons/SmallDownArrow.tsx","webpack:///./common/layouts/AccessDeniedPage/AccessDeniedPage.tsx","webpack:///./common/store/spot-assets-assigment/selectors.ts","webpack:///./common/layouts/RFQListPageLayout/RFQsTable/cell-renderers/PricesCell/PricesCell.scss?ea02","webpack:///./common/components/price-details/hooks/styles.ts","webpack:///./broker-admin/layouts/BrokerRFQsPage/BrokerRFQDetailsPage/BrokerRFQDetailsPage.tsx","webpack:///./common/layouts/Members/ChangeRoleUserForm/ChangeRoleUserForm.scss?17e0","webpack:///./common/layouts/DriversPageLayout/dialogs/DriverInviteModal/DriverInviteModal.tsx","webpack:///./common/store/user/selectors.ts","webpack:///./common/components/entity-details/ExcludedCountries/ExcludedCountry/ExcludedCountry.scss?f7bf","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentParamsDetails/EvidenceOfTaxDetails/EvidenceOfTaxDetails.scss?11c4","webpack:///./design-system/components/ButtonGroup/ButtonGroupItem/ButtonGroupItem.scss?1b51","webpack:///./common/layouts/Members/ContactsTable/cell-renderers/ControlsCell/ControlsCell.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/hooks/useSyncMapStateContextValue.ts","webpack:///./common/layouts/Members/ChangeRoleUserForm/constants.ts","webpack:///./broker-admin/layouts/StatisticsPage/StatisticsChart/StatisticsChart.scss?6ac8","webpack:///./common/components/toasts/NotificationToastsManager/utils.ts","webpack:///./common/components/Table/TableMessage/TableMessage.tsx","webpack:///./broker-admin/layouts/SideBars/EditBrokerTeamSidebarContent/EditBrokerTeamSidebarContent.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/DriveThroughRoutePointPicker/DriveThroughRoutePointPicker.scss?26bb","webpack:///./broker-admin/store/spot-requests/channels.ts","webpack:///./common/components/filter-pills/TruckModelFilterPill/TruckModelFilterPill.tsx","webpack:///./common/components/RangeSelector/ZoneMark/ZoneMark.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/FerryDisembarkPointPicker/FerryDisembarkPointPicker.scss?4973","webpack:///./common/components/Modal/ModalDialogActions/ModalDialogActions.scss?598d","webpack:///./common/components/notification-cards/shared/FieldValue/utils/safe-parse-number.ts","webpack:///./common/layouts/Members/ContactsTable/cell-renderers/StatusCell/StatusCell.tsx","webpack:///./common/components/dropdowns/TruckModelMultipleDropdown/TruckModelMultipleDropdown.tsx","webpack:///./common/icons/DoubleCheckIcon.tsx","webpack:///./common/components/Table/cell-renderers/FullNameCell/FullNameCell.scss?8b71","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentDetailsLayout/DocumentSummary/DocumentSummary.tsx","webpack:///./common/store/transport-order-details/actions.ts","webpack:///./common/components/notification-cards/TourStatusChangedCard/TourStatusChangedCard.tsx","webpack:///./common/icons/TargetIcon.tsx","webpack:///./common/layouts/CommonEditableShipperContractLaneDetailsLayout/ShipperContractLaneOtherDetails/ShipperContractLaneOtherDetails.tsx","webpack:///./common/utils/parse-page-number.ts","webpack:///./common/components/notification-cards/TourOutOfTimeToAssignCarrierCard/TourOutOfTimeToAssignCarrierCard.tsx","webpack:///./common/layouts/TransportOrderListPageLayout/TransportOrdersTable/cell-renderers/StatusCell/StatusCell.tsx","webpack:///./design-system/components/dropdowns/SuggestInput/SuggestInput.scss?9374","webpack:///./broker-admin/store/invoices/actions.ts","webpack:///./common/components/GroupedLogsLayout/utils.ts","webpack:///./common/components/Avatar/Avatar.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/SendingToSpotForm/TimeWindowPillLabel/TimeWindowPillLabel.tsx","webpack:///./common/layouts/TransportOrderDetailsPageLayout/footers/StatusFooterContent/StatusFooterContent.scss?2e1a","webpack:///./broker-admin/store/invoices/reducer.ts","webpack:///./common/layouts/Members/dialogs/ChangeUserRoleConfirmation/ChangeUserRoleConfirmation.tsx","webpack:///./common/layouts/TransportOrderListPageLayout/FiltersSidebarContent/get-initial-values.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderDetails/TourDetailsCard/footers/StartEditTimeWindowsFooter/StartEditTimeWindowsFooter.scss?75d4","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/AssetSchedulePin/AssetSchedulePin.scss?631f","webpack:///./common/store/countries-dict/reducer.ts","webpack:///./common/icons/RouteIcon.tsx","webpack:///./common/components/papers/TourPapersCard/TourPapersCard.tsx","webpack:///./broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/ShipperContractLaneCreationConfirmForm/AveragePriceOfferDetails/AveragePriceOfferDetails.scss?20f5","webpack:///./design-system/components/dropdowns/DropdownSearchMultipleInput/DropdownSearchMultipleInput.scss?1068","webpack:///./design-system/components/Checkbox/Checkbox.scss?e4e5","webpack:///./broker-admin/layouts/SideBars/SideBars.tsx","webpack:///./broker-admin/components/dropdowns/BrokerPartnersControl/BrokerPartnersControl.scss?2b9b","webpack:///./common/components/forms/RemoteFormActions/RemoteFormActions.tsx","webpack:///./common/store/partner-suggest/selectors.ts","webpack:///./common/components/tabs/TabGroup/TabGroup.scss?8d75","webpack:///./common/components/dropdowns/TruckModelMultipleDropdown/TruckModelMultipleDropdown.scss?53e3","webpack:///./common/components/Table/cell-renderers/CostCell/CostCell.scss?3acb","webpack:///./common/components/controls/AssetsXLSDropdownControl/AssetsXLSDropdownControl.tsx","webpack:///./common/components/maps/MapTooltipMenu/MapTooltipMenu.tsx","webpack:///./common/icons/TodoListIcon.tsx","webpack:///./broker-admin/store/order-edit-context/utils/prepare-address-point.ts","webpack:///./common/components/Table/TableSkeleton/TableSkeleton.scss?df6e","webpack:///./design-system/components/InfoTable/formatters/LinkFormatter/LinkFormatter.tsx","webpack:///./common/components/papers/PapersGroup/PapersGroup.scss?62b1","webpack:///./broker-admin/store/price-settings/rates/sagas.ts","webpack:///./broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/ShipperContractLaneCreationPage.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerToursListPage/BrokerToursTable/cell-renderers/DestinationCell/DestinationCell.tsx","webpack:///./common/layouts/TransportOrderDetailsPageLayout/TransportOrderDetails/ShipmentDetailsCard/ChangeShipmentStatusSidebarFooter/ChangeShipmentStatusSidebarFooter.scss?b5c3","webpack:///./common/layouts/CommonEditableShipperContractLaneDetailsLayout/CommonEditableShipperContractLaneDetailsLayout.tsx","webpack:///./common/utils/hooks/useFeaturesContextValue.ts","webpack:///./common/icons/EditIcon.tsx","webpack:///./common/layouts/NewOrderPage/OffersForm/footer-alert-contents/CreditLimitExceedAlertContent/CreditLimitExceedAlertContent.tsx","webpack:///./common/components/FieldGroup/FieldGroup.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/hooks/use-sync-points-channels.ts","webpack:///./broker-admin/store/price-settings/rules/actions.ts","webpack:///./common/store/company/sagas.ts","webpack:///./common/icons/PaperIcon.tsx","webpack:///./common/store/rfqs/sagas.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/constants.ts","webpack:///./common/icons/TeamDriveIcon.tsx","webpack:///./common/store/gps-tracking-status/reducer.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/BrokerOrderTable/cell-renderers/DropOffCell/DropOffCell.tsx","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentDetailsLayout/DocumentVersion/DocumentVersion.scss?c4b9","webpack:///./common/components/Table/cell-renderers/CheckboxCell/CheckboxCell.tsx","webpack:///./broker-admin/components/status-machine/footers/ChangeTourStatusFooter/constants.ts","webpack:///./broker-admin/store/order-edit-context/models.ts","webpack:///./common/utils/api/do-fetch.ts","webpack:///./common/components/notification-cards/CarrierNoShowForShipmentCard/CarrierNoShowForShipmentCard.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/EditTimeWindowsForm/constants.ts","webpack:///./broker-admin/components/dropdowns/PartnersSuggest/PartnersSuggest.scss?67ab","webpack:///./broker-admin/store/spot/sagas.ts","webpack:///./common/components/papers/PaperLayout/PaperPlaceholder/PaperPlaceholder.scss?31c9","webpack:///./common/store/trucks/channels.ts","webpack:///./broker-admin/components/status-machine/dialogs/CancelSpotRequestConfirmation/CancelSpotRequestConfirmation.tsx","webpack:///./common/layouts/SideBars/contents/ContactDetailsSidebarContent/ContactDetailsSidebarContent.tsx","webpack:///./common/layouts/TrailersPageLayout/TrailersPageLayout.tsx","webpack:///./broker-admin/store/deadhead-creation/utils/generate-point-fake-id.ts","webpack:///./common/components/Alert/Alert.tsx","webpack:///./common/utils/form-formatters.ts","webpack:///./common/layouts/dialogs/ChangeRateOrContractAssetDialogModal/ChangeRateOrContractAssetForm/ChangeRateOrContractAssetForm.scss?db55","webpack:///./common/layouts/NewOrderPage/OffersForm/AdditionalServices/AdditionalServices.scss?e7f1","webpack:///./common/store/settings/reducer.ts","webpack:///./common/layouts/NewOrderPage/contexts/order-creation-percent-context.ts","webpack:///./common/components/LinkButton/LinkButton.tsx","webpack:///./broker-admin/store/broker-order-details/utils/find-actual-transport-order.ts","webpack:///./broker-admin/components/notification-cards/ExpiredPartnerShipperContractCard/ExpiredPartnerShipperContractCard.scss?4d5b","webpack:///./broker-admin/layouts/SideBars/RFQStatisticsSidebarContent/RFQStatisticsSidebarContent.scss?5d5a","webpack:///./common/store/notifications/types.ts","webpack:///./broker-admin/layouts/BrokerUsersPage/BrokerUsersPage.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/contexts/sync-map-state.ts","webpack:///./common/icons/FewCountriesIcon.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/BrokerOrderAssignmentPage.tsx","webpack:///./common/components/DeprecatedCountyFlagLabel/DeprecatedCountyFlagLabel.tsx","webpack:///./common/components/logs/shared/LogCardFooter/LogCardFooter.scss?39d6","webpack:///./common/store/assets/sagas.ts","webpack:///./common/layouts/SideBars/models.ts","webpack:///./common/layouts/TrucksPageLayout/TrucksTable/cell-renderers/EmissionClassCell/EmissionClassCell.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/FerrySettingsForm/prepare-system-settings.ts","webpack:///./broker-admin/store/dispatchers/reducer.ts","webpack:///./broker-admin/store/dispatchers/sagas.ts","webpack:///./common/components/notifications/NotificationsBarTrigger/NotificationsBarTrigger.tsx","webpack:///./common/icons/RFQIcon.tsx","webpack:///./design-system/components/ButtonGroup/ButtonGroup.tsx","webpack:///./broker-admin/store/broker-orders/slice.ts","webpack:///./common/utils/hooks/useScrollTop.ts","webpack:///./common/layouts/TransportOrderListPageLayout/FiltersSidebarContent/constants.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/BrokerOrderTable/cell-renderers/CreateCell/CreateCell.scss?72ac","webpack:///./broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneDetailsPage/ShipperContractLaneDetailsPage.tsx","webpack:///./common/layouts/DriversPageLayout/DriversPageLayout.tsx","webpack:///./common/layouts/AccountPage/DevelopmentSettings/DevelopmentSettings.scss?62ea","webpack:///./common/store/driver-search/selectors.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerToursListPage/BrokerToursTable/BrokerToursTable.scss?51fb","webpack:///./common/components/status-colored/TourColoredStatus/TourColoredStatus.tsx","webpack:///./common/store/rfqs/reducer.ts","webpack:///./common/utils/history.ts","webpack:///./common/layouts/SideBars/contents/AddDriverSidebarContent/get-initial-values.ts","webpack:///./common/layouts/SideBars/contents/DriverDetailsSidebarContent/DriverDetailsSidebarContent.tsx","webpack:///./common/layouts/TransportOrderDetailsPageLayout/DriversAssignmentForm/DriversAssignmentForm.tsx","webpack:///./common/components/status/DocumentStatus/DocumentStatus.tsx","webpack:///./common/components/toasts/Toast/Toast.scss?7a96","webpack:///./broker-admin/store/broker-order-assigment/reducer.ts","webpack:///./broker-admin/layouts/PriceSettingsRulesPage/PriceSettingsRulesPage.tsx","webpack:///./common/layouts/dialogs/ImportXLSAssetsDialogModal/ImportXLSAssetsDialogModal.tsx","webpack:///./common/layouts/sidebar-footers/TimeLeftForStart/TimeLeftForStart.tsx","webpack:///./common/layouts/RFQDetailsPageLayout/RFQDetails/RFQDetails.scss?b639","webpack:///./common/layouts/SideBars/contents/TrailerFiltersSidebarContent/constants.ts","webpack:///./common/icons/AssetLinkIcon.tsx","webpack:///./broker-admin/layouts/SpotRequestsPage/SpotRequestListPage/SpotRequestListPage.tsx","webpack:///./common/utils/form-value-converters.ts","webpack:///./common/store/rfqs/channels.ts","webpack:///./common/layouts/RFQListPageLayout/RFQsTable/cell-renderers/TrailerTypeCell/TrailerTypeCell.tsx","webpack:///./broker-admin/store/settings/selectors.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/TourTypeTabs/constants.ts","webpack:///./common/store/subject-logs/sagas.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/footers/EditStopContactFooterContent/EditStopContactFooterContent.scss?f05c","webpack:///./broker-admin/store/deadhead-creation/models.ts","webpack:///./common/layouts/NewOrderPage/CargoDetailsForm/footer-alert-contents/TemperatureRangesCompatibleValidationAlertContent/TemperatureRangesCompatibleValidationAlertContent.tsx","webpack:///./common/components/notification-cards/SpotBidStatusCard/SpotBidStatusCard.scss?0245","webpack:///./common/components/status-pill/TourStatusPill/TourStatusPill.tsx","webpack:///./common/store/trucks/sagas.ts","webpack:///./broker-admin/layouts/SideBars/SpotRequestsFiltersSidebarContent/SpotRequestsFiltersSidebarContent.tsx","webpack:///./common/layouts/SignInPage/async-validations.ts","webpack:///./common/components/dropdowns/TruckStatusMultipleDropdown/TruckStatusMultipleDropdown.tsx","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentParamsDetailsForm/EvidenceOfTaxDetailsForm/async-validations.ts","webpack:///./common/components/Table/cell-renderers/EventCell/EventCell.scss?0864","webpack:///./broker-admin/store/broker-orders/reducer.ts","webpack:///./common/store/auth/sagas.ts","webpack:///./common/components/RangeSelector/ZoneText/ZoneText.scss?69ff","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/SubmitButtonContent/SubmitButtonContent.tsx","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentParamsDetailsForm/CommonDocumentParamsDetailsForm/CommonDocumentParamsDetailsForm.tsx","webpack:///./common/components/tabs/TabLabel/TabLabel.scss?e9a6","webpack:///./design-system/components/AsyncSearchScrollableList/ListMessage/ListMessage.tsx","webpack:///./broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/contexts/sync-map-state.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/ExpirationContextAlertContent/ExpirationContextAlertContent.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderDetails/BrokerOrderDetails.scss?08ab","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/SelectedFilters/SelectedFilters.tsx","webpack:///./broker-admin/components/pills/RestrictedExternalBusinessPartnerPill/RestrictedExternalBusinessPartnerPill.tsx","webpack:///./broker-admin/components/status-machine/footers/ChangeTourStatusFooter/CancelSpotRequestFooter/CancelSpotRequestFooter.tsx","webpack:///./broker-admin/store/invoices/selectors.ts","webpack:///./common/components/forms/RemoteFormActions/RemoteFormActions.scss?590b","webpack:///./common/layouts/NewOrderPage/additional-services.ts","webpack:///./common/store/consistent-state-machine/sagas.ts","webpack:///./common/store/order-creation/utils/sort-offers.ts","webpack:///./design-system/components/InfoTable/formatters/DateIntervalFormatter/DateIntervalFormatter.tsx","webpack:///./common/components/units/UnitTypeCount/UnitTypeCount.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/BrokerOrderAssignmentPage.scss?7846","webpack:///./common/store/order-creation/utils/group-offers-by-dates-hash.ts","webpack:///./common/layouts/ListPage/ListPageLayout/ListPageLayout.scss?df58","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/FerrySettingsForm/get-initial-values.ts","webpack:///./broker-admin/layouts/SideBars/hooks.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/NewOrderParametersSettingsForm/prepare-system-settings.ts","webpack:///./common/components/maps/pins/AssetDropOffLocationPin/AssetDropOffLocationPin.scss?669c","webpack:///./broker-admin/layouts/PartnerPage/PartnerDetailsPage/PartnerExternalPlatformDetailsForm/PartnerExternalPlatformDetailsForm.tsx","webpack:///./common/layouts/BaseShipperContractDetailsLayout/EditShipperContractDetailsForm/constants.ts","webpack:///./broker-admin/layouts/PartnersPage/dialogs/InvitePartnerDialog/InvitePartnerDialog.tsx","webpack:///./common/store/assets/selectors.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderDetails/ShipmentDetailsCard/ShipmentDetailsCard.tsx","webpack:///./broker-admin/store/order-edit-context/utils/find-context-stop-by-alias.ts","webpack:///./common/layouts/BaseCarrierContractsLayout/dialogs/RejectContractConfirmation/RejectContractConfirmation.tsx","webpack:///./design-system/components/Calendar/YearMonthForm/YearMonthForm.scss?8180","webpack:///./common/components/notification-cards/TransportationOrderAssetsAssignedCard/TransportationOrderAssetsAssignedCard.tsx","webpack:///./common/store/trucks/types.ts","webpack:///./common/layouts/TransportOrderDetailsPageLayout/TransportOrderDetails/RouteDetailsCard/RouteDetailsCard.tsx","webpack:///./common/layouts/AccountPage/AccountPreview/AccountPreview.tsx","webpack:///./common/layouts/SideBars/contents/ContractDetailsSidebarContent/footers/ReviewFooterContent/ReviewFooterContent.tsx","webpack:///./broker-admin/components/dropdowns/PriceComponentTypeMultipleDropdown/PriceComponentTypeMultipleDropdown.scss?3742","webpack:///./broker-admin/utils/urls-params.ts","webpack:///./common/components/ExcludeCountriesMapWidget/ExcludedCountry/ExcludedCountry.scss?e062","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditMap/RouteEditMap.tsx","webpack:///./common/utils/hooks/useStateMachine.ts","webpack:///./broker-admin/store/broker-order-edit/selectors.ts","webpack:///./common/components/maps/pins/LastAssetTrackPointPin/LastAssetTrackPointPin.tsx","webpack:///./common/layouts/TrucksPageLayout/TrucksTable/cell-renderers/StatusCell/StatusCell.scss?9f02","webpack:///./common/store/papers-edit/channels.ts","webpack:///./common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentParamsDetailsForm/EvidenceOfTaxDetailsForm/EvidenceOfTaxDetailsForm.scss","webpack:///./common/layouts/BaseDocumentsLayout/dialogs/RejectDocumentConfirmation/validate-form.ts","webpack:///./broker-admin/store/spot-requests-stats/sagas.ts","webpack:///./common/icons/CalendarAltIcon.tsx","webpack:///./broker-admin/components/RouteSwitchDropdown/RouteSwitchDropdown.tsx","webpack:///./common/icons/ServicePinIcon.tsx","webpack:///./common/components/papers/modals/ImageGalleryModal/ImageGalleryModal.scss?d1b7","webpack:///./common/icons/BellIcon.tsx","webpack:///./common/components/price-details/hooks/common.tsx","webpack:///./design-system/components/dropdowns/DropdownSearchInput/hooks/use-async-filter-options.ts","webpack:///./broker-admin/store/order-edit-context/utils/find-first-before-stop.ts","webpack:///./common/components/notification-cards/TransportationOrderDriverUnassignedCard/TransportationOrderDriverUnassignedCard.tsx","webpack:///./common/components/LineLoader/LineLoader.tsx","webpack:///./common/components/AssetSidebarContent/hooks/usePlateNumberUniqCheck.ts","webpack:///./common/utils/hooks/maps/useGoogleMapGeocoding.tsx","webpack:///./common/components/notification-cards/ExpireSoonDocumentCard/ExpireSoonDocumentCard.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/ExpirationContextAlertContent/ExpirationContextAlertContent.tsx","webpack:///./common/icons/DeactivateUserIcon.tsx","webpack:///./common/utils/input-masks.ts","webpack:///./common/layouts/SignInPage/constants.ts","webpack:///./common/store/driver-assigment/actions.ts","webpack:///./common/components/Link/Link.tsx","webpack:///./common/store/vehicle-schedules/constants.ts","webpack:///./common/layouts/Members/Members.scss?ca2c","webpack:///./common/components/Input/Input.tsx","webpack:///./common/layouts/BaseShipperContractDetailsLayout/ShipperContractDetails/ShipperContractDetails.scss?f376","webpack:///./common/layouts/TransportOrderDetailsPageLayout/TransportOrderDetails/RouteDetailsCard/RouteDetailsCard.scss?a812","webpack:///./common/components/status-colored/FormUnsavedValuesColoredStatus/FormUnsavedValuesColoredStatus.tsx","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/RoutingSettingsForm/validate-form.ts","webpack:///./common/layouts/Members/ContactsTable/cell-renderers/ControlsCell/ControlsCell.scss?92de","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/FiltersSidebarContent/get-query-filters.ts","webpack:///./broker-admin/layouts/PriceSettingsRulePreviewLayout/RulePreview/RulePreview.scss?d67f","webpack:///./common/components/Textarea/Textarea.scss?6777","webpack:///./common/layouts/TransportOrderDetailsPageLayout/footers/DriversAssignmentFooterContent/DriversAssignmentFooterContent.tsx","webpack:///./common/icons/ContactIcon.tsx","webpack:///./common/layouts/TransportOrderDetailsPageLayout/TransportOrderDetails/ShipmentDetailsCard/ShipmentDetailsCard.scss?17de","webpack:///./common/icons/CalendarIcon.tsx","webpack:///./common/store/members/constants.ts","webpack:///./common/utils/test-selectors.ts","webpack:///./common/icons/AccountIcon.tsx","webpack:///./broker-admin/store/order-edit-context/utils/get-order-id.ts","webpack:///./common/layouts/SideBars/contents/TruckFiltersSidebarContent/get-query-filters.ts","webpack:///./design-system/components/InfoTable/formatters/TemperatureModeFormatter/TemperatureModeFormatter.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/SearchForm/RadiusDropdown/RadiusDropdown.tsx","webpack:///./broker-admin/layouts/SideBars/PriceSettingsRuleFiltersSidebarContent/constants.ts","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteEditMap/RouteEditMap.scss?2639","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/FiltersSidebarContent/FiltersSidebarContent.tsx","webpack:///./broker-admin/store/managers/reducer.ts","webpack:///./common/components/Table/cell-renderers/EditableCostCell/EditableCostCell.tsx","webpack:///./common/utils/hooks/useAfterSuccessRequest.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/SendingToSpotForm/SendingToSpotForm.tsx","webpack:///./design-system/components/AsyncSearchScrollableList/AsyncSearchScrollableList.scss?f561","webpack:///./common/components/notification-cards/SpotRequestStatusCard/SpotRequestStatusCard.tsx","webpack:///./common/components/Timeline/Delimeter/Delimeter.tsx","webpack:///./broker-admin/components/notification-cards/UpdatedPartnerCarrierContractCard/UpdatedPartnerCarrierContractCard.tsx","webpack:///./broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLanePage.tsx","webpack:///./common/components/maps/MapControlsLayout/MapControlsLayout.tsx","webpack:///./common/components/MultiPointOrderRouteMap/constants.ts","webpack:///./common/components/notification-cards/OrderEditedCard/OrderEditedCard.scss?b385","webpack:///./broker-admin/components/BaseSpotRequestDetailsSidebarContent/SpotRequestDetails/BidDetails/BidDetails.scss?51fd","webpack:///./common/components/status/TruckStatus/TruckStatus.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/Steps/Steps.tsx","webpack:///./design-system/components/date-pickers/LinkDatePicker/LinkDatePicker.tsx","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/RulesTable/cell-renderers/TargetCell/TargetCell.tsx","webpack:///./common/layouts/DriversPageLayout/dialogs/ActivateDriverConfirmation/ActivateDriverConfirmation.tsx","webpack:///./broker-admin/components/notification-cards/UpdatedPartnerCarrierContractCard/UpdatedPartnerCarrierContractCard.scss?61e7","webpack:///./broker-admin/layouts/SettingsPage/SystemSettings/AlertsSettingsForm/AlertsSettingsForm.scss?af0d","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/DeleteWaypointTrigger/DeleteWaypointTrigger.tsx","webpack:///./broker-admin/components/status/PriceRuleStatusLabel/PriceRuleStatusLabel.tsx","webpack:///./common/components/maps/MapArea/MapArea.tsx","webpack:///./common/layouts/BaseShipperContractLanesLayout/BaseShipperContractLanesTable/BaseShipperContractLanesTable.scss?ba42","webpack:///./broker-admin/store/broker-order-edit/sagas.ts","webpack:///./common/components/papers/PapersGroup/PapersGroup.tsx","webpack:///./common/layouts/NewOrderPage/ShipmentDetailsForm/SyncPointsWatcher/SyncPointsWatcher.tsx","webpack:///./common/store/user/utils.ts","webpack:///./common/components/notification-cards/ShipmentStatusChangedCard/ShipmentStatusChangedCard.tsx","webpack:///./broker-admin/layouts/SideBars/CreatePartnerSidebarContent/CreatePartnerSidebarContent.scss?2c20","webpack:///./common/layouts/SignInPage/Notification/Notification.scss?a4e4","webpack:///./broker-admin/layouts/SettingsPage/PriceSettingsRules/query-models.ts","webpack:///./broker-admin/store/broker-tour-stats/selectors.ts","webpack:///./common/components/notification-cards/shared/StopLabel/StopLabel.tsx","webpack:///./common/icons/RadarIcon.tsx","webpack:///./common/layouts/TruckDetailsPage/TruckDetailsPage.tsx","webpack:///./common/store/members/actions.ts","webpack:///./common/components/filter-pills/CountriesFilterPill/CountriesFilterPill.tsx","webpack:///./broker-admin/layouts/SideBars/CreateExternalPartnerSidebarContent/validate-form.ts","webpack:///./broker-admin/layouts/SettingsPage/RateMatrix/ChangeRatesForm/ChangeRatesForm.scss?bdf4","webpack:///./broker-admin/store/managers/actions.ts","webpack:///./common/components/pills/DriverWrongCheckPointPill/DriverWrongCheckPointPill.tsx","webpack:///./common/components/entity-details/ShipmentPapersTabContent/ShipmentPapersTabContent.tsx","webpack:///./design-system/components/DividerWithDropdownControl/DividerTrigger/DividerTrigger.tsx","webpack:///./broker-admin/layouts/StatisticsPage/StatisticsChart/StatisticsChart.tsx","webpack:///./common/components/entity-details/RouteLocationsOverview/RouteLocationsOverview.tsx","webpack:///./common/store/documents/channels.ts","webpack:///./common/layouts/BaseShipperContractsLayout/BaseShipperContractsTable/BaseShipperContractsTable.scss?6fd7","webpack:///./common/components/maps/MapRoute/MapRoute.tsx","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/EditStopContactForm/constants.ts","webpack:///./common/components/status-pill/ShipmentStatusPill/ShipmentStatusPill.tsx","webpack:///./common/components/MapTrigger/MapTrigger.tsx","webpack:///./broker-admin/layouts/PriceSettingsRulePreviewLayout/PriceSettingsRulePreviewLayout.tsx","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerToursListPage/BrokerToursTable/cell-renderers/TypeCell/TypeCell.tsx","webpack:///./common/utils/sort.ts","webpack:///./design-system/components/InfoTable/formatters/EmissionClassFormatter/EmissionClassFormatter.tsx","webpack:///./common/layouts/NewOrderPage/OfferDetails/CollapsedOfferDetails/OfferAttribute/OfferAttribute.tsx","webpack:///./common/store/shipper-contract-lanes/slice.ts","webpack:///./broker-admin/layouts/SpotRequestsPage/SpotRequestListPage/SpotRequestsTable/SpotRequestsTable.scss?1e21","webpack:///./broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/BrokerTourRouteMap/BrokerTourRouteMap.scss?f254","webpack:///./broker-admin/components/notification-cards/RemovedFromTeamCard/RemovedFromTeamCard.tsx","webpack:///./common/store/auth/selectors.ts","webpack:///./broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/CancelTrailerTransportOrderConfirmation/CancelTrailerTransportOrderConfirmation.tsx","webpack:///./common/icons/WalletIcon.tsx"],"sourcesContent":["export enum FieldsEnum {\n    autoExcludeNonEUCountries = 'AUTO_EXCLUDE_NON_EU_COUNTRIES',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.autoExcludeNonEUCountries]: boolean;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import * as React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './HeaderSideBarContent.scss';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport MoreIcon from 'common/icons/MoreIcon';\nimport DropdownControl, {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport LeftArrowIcon from 'common/icons/LeftArrowIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport isNil from 'lodash/isNil';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { useTranslation } from 'react-i18next';\n\nconst cx = classNames.bind(styles);\n\nexport type HeaderSidebarActionT = DropdownControlOptionT | null;\n\ntype PropsT = {\n    className?: string;\n    title?: React.ReactNode;\n    dropdownOptions?: Array<HeaderSidebarActionT | SpecialOptionEnum>;\n    afterTitleNode?: React.ReactNode;\n    rightNode?: React.ReactNode;\n    afterDropdownNode?: React.ReactNode;\n    beforeDropdownNode?: React.ReactNode;\n    dropdownOverlayClassName?: string;\n    testSelector?: string;\n    onGoBack?: (() => void) | null;\n    onClose?: (() => void) | null;\n    variant?: 'left' | 'right';\n};\n\nconst HeaderSideBarContent: React.FC<PropsT> = React.memo((props) => {\n    const {\n        title,\n        onGoBack,\n        dropdownOptions,\n        afterTitleNode,\n        afterDropdownNode,\n        beforeDropdownNode,\n        rightNode,\n        onClose,\n        dropdownOverlayClassName,\n        className,\n        testSelector,\n        variant = 'left',\n    } = props;\n\n    const fullTestSelector = `${testSelector}_sidebar-header`;\n\n    const { t } = useTranslation();\n\n    return (\n        <div\n            className={cs(\n                cx('header', {\n                    [`header--${variant}`]: Boolean(variant),\n                }),\n                className,\n            )}\n        >\n            {onGoBack && (\n                <Tooltip\n                    position={TooltipPositionEnum.centerRight}\n                    theme={TooltipThemeEnum.black}\n                    tooltipNode={\n                        <TooltipContent isCenter theme={TooltipContentThemeEnum.black} width={80}>\n                            {t('common:sidebar.go-back')}\n                        </TooltipContent>\n                    }\n                >\n                    {() => (\n                        <TransparentTrigger\n                            onClick={onGoBack}\n                            className={cx('control', 'control--back-button')}\n                            leftIcon={<LeftArrowIcon fillColor={StyleGuideColorsEnum.charcoal} />}\n                            testSelector={`${fullTestSelector}_back`}\n                            reflectionTheme={ReflectionThemeEnum.light}\n                        />\n                    )}\n                </Tooltip>\n            )}\n            {!isNil(title) && (\n                <div className={cx('title')} data-test-selector={`${fullTestSelector}_title`}>\n                    {title}\n                </div>\n            )}\n            {isNil(title) && <div className={cx('skeleton')} />}\n            {afterTitleNode && <div className={cx('after-title-node')}>{afterTitleNode}</div>}\n            <div className={cx('spacer')} />\n            {rightNode && <div className={cx('right-node')}>{rightNode}</div>}\n            {beforeDropdownNode && (\n                <div\n                    className={cx('control', {\n                        'control--has-right-padding': true,\n                    })}\n                >\n                    {beforeDropdownNode}\n                </div>\n            )}\n            {!!dropdownOptions?.length && (\n                <DropdownControl\n                    className={cx('control', {\n                        'control--has-right-padding': !!onClose || !!afterDropdownNode,\n                    })}\n                    overlayClassName={dropdownOverlayClassName}\n                    options={dropdownOptions}\n                    renderTrigger={(isActive, onClick) => (\n                        <TransparentTrigger\n                            isPressed={isActive}\n                            onClick={onClick}\n                            leftIcon={<MoreIcon />}\n                            reflectionTheme={ReflectionThemeEnum.light}\n                        />\n                    )}\n                    overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                />\n            )}\n            {afterDropdownNode && (\n                <div\n                    className={cx('control', {\n                        'control--has-right-padding': !!onClose,\n                    })}\n                >\n                    {afterDropdownNode}\n                </div>\n            )}\n            {onClose && (\n                <Tooltip\n                    position={TooltipPositionEnum.centerLeft}\n                    theme={TooltipThemeEnum.black}\n                    tooltipNode={\n                        <TooltipContent isCenter theme={TooltipContentThemeEnum.black} width={80}>\n                            {t('common:sidebar.close')}\n                        </TooltipContent>\n                    }\n                >\n                    {() => (\n                        <TransparentTrigger\n                            className={cx('control', 'control--close-button')}\n                            onClick={onClose}\n                            leftIcon={<CloseIcon />}\n                            testSelector={`${fullTestSelector}_close`}\n                            reflectionTheme={ReflectionThemeEnum.light}\n                        />\n                    )}\n                </Tooltip>\n            )}\n        </div>\n    );\n});\n\nexport default HeaderSideBarContent;\n","export enum FieldsEnum {\n    deadlineTimeWindow = 'deadlineTimeWindow',\n    comment = 'comment',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.deadlineTimeWindow]: TimeWindowT | null;\n    [FieldsEnum.comment]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import { BidsQuickFilterEnum } from '../constants';\nimport { SpotBidT } from 'broker-admin/utils/api/spot-broker-tranziit/models';\nimport { ApiBidStatusT, BidStatusEnum } from 'carrier/utils/api/spot-carrier-tranziit/models';\n\ntype BidFilterT = (bid: SpotBidT | null | undefined) => boolean;\n\nconst inactiveBidStatusesSet = new Set<ApiBidStatusT>([\n    BidStatusEnum.rejected,\n    BidStatusEnum.expired,\n    BidStatusEnum.canceled,\n]);\n\nconst acceptedBidStatusesSet = new Set<ApiBidStatusT>([BidStatusEnum.accepted, BidStatusEnum.won, BidStatusEnum.lost]);\n\nconst filters: Record<BidsQuickFilterEnum, BidFilterT> = {\n    [BidsQuickFilterEnum.accepted]: (bid) => {\n        return !!bid?.status && acceptedBidStatusesSet.has(bid.status);\n    },\n    [BidsQuickFilterEnum.match]: (bid) => {\n        return !!bid?.match;\n    },\n    [BidsQuickFilterEnum.inactive]: (bid) => {\n        return !!bid?.status && inactiveBidStatusesSet.has(bid.status);\n    },\n};\n\nexport const getBidsFilter = (\n    quickFilter: BidsQuickFilterEnum | null,\n    bids: Array<SpotBidT | null | undefined>,\n): Array<SpotBidT | null | undefined> => {\n    if (!quickFilter) {\n        return bids;\n    }\n\n    return bids.filter(filters[quickFilter]);\n};\n\nexport const getBidQuickFilterCounts = (\n    bids: Array<SpotBidT | null | undefined>,\n): Record<BidsQuickFilterEnum, number> => {\n    const counts: Record<BidsQuickFilterEnum, number> = {\n        [BidsQuickFilterEnum.inactive]: 0,\n        [BidsQuickFilterEnum.match]: 0,\n        [BidsQuickFilterEnum.accepted]: 0,\n    };\n\n    const allQuickFilters: Array<BidsQuickFilterEnum> = [\n        BidsQuickFilterEnum.accepted,\n        BidsQuickFilterEnum.match,\n        BidsQuickFilterEnum.inactive,\n    ];\n\n    bids.forEach((bid) => {\n        allQuickFilters.forEach((quickFilter) => {\n            const isMatch = filters[quickFilter](bid);\n            if (isMatch) {\n                counts[quickFilter] += 1;\n            }\n        });\n    });\n\n    return counts;\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport isNumber from 'lodash/isNumber';\n\ntype PropsT = {\n    count: number | null | undefined;\n};\n\nconst DropdownMultipleInputCountLabel: React.FC<PropsT> = React.memo((props) => {\n    const { count } = props;\n\n    const { t } = useTranslation();\n\n    if (!isNumber(count)) {\n        return null;\n    }\n\n    return (\n        <span>\n            {count}{' '}\n            {t('common:common-components.dropdown-multiple-input.selected', {\n                postProcess: 'interval',\n                count,\n            })}\n        </span>\n    );\n});\n\nexport default DropdownMultipleInputCountLabel;\n","import { AnyAlert } from './models';\n\nexport const ADD_ALERT = 'common/alert/ADD_ALERT';\nexport const DELETE_ALERT = 'common/alert/DELETE_ALERT';\n\nexport type AddAlertActionT = {\n    type: typeof ADD_ALERT;\n    anyAlert: AnyAlert;\n};\n\nexport type DeleteAlertActionT = {\n    type: typeof DELETE_ALERT;\n    alertId: AlertIdT;\n};\n\nexport type AlertsActionT = AddAlertActionT | DeleteAlertActionT;\n\nexport type AlertsStateT = {\n    byId: Record<AlertIdT, AnyAlert>;\n    ids: Array<AlertIdT>;\n};\n","import * as React from 'react';\n\ntype PropsT = {};\n\nconst HiddenSubmitButtonForKeyboardEnter: React.FC<PropsT> = React.memo(() => {\n    return (\n        <button type=\"submit\" hidden>\n            submit\n        </button>\n    );\n});\n\nexport default HiddenSubmitButtonForKeyboardEnter;\n","import React from 'react';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\n\nexport type PartnerContextT = {\n    partnerId: PartnerIdT | null;\n    partnerType: PartnerTypeEnum | null;\n};\n\nconst PartnerContext = React.createContext<PartnerContextT>({\n    partnerId: null,\n    partnerType: null,\n});\n\nexport default PartnerContext;\n","import { SpotStateT, UPDATE_REQUEST_BEGIN, UPDATE_REQUEST_ERROR, UPDATE_REQUEST_SUCCESS, SpotActionT } from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: SpotStateT = {\n    requestStatus: requestStatus.initial,\n};\n\nexport default (state = initialState, action: SpotActionT | DestroySessionActionT): SpotStateT => {\n    switch (action.type) {\n        case UPDATE_REQUEST_BEGIN: {\n            return {\n                ...state,\n                requestStatus: requestStatus.loading,\n            };\n        }\n\n        case UPDATE_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                requestStatus: requestStatus.setError(error),\n            };\n        }\n\n        case UPDATE_REQUEST_SUCCESS: {\n            return {\n                ...state,\n                requestStatus: requestStatus.ok,\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default:\n            return state;\n    }\n};\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport type BrokerTourDetailsRefreshChannelEventT = {\n    brokerTourId: BrokerTourIdT;\n};\n\nexport const brokerTourDetailsRefreshChannel = new ViewEventChannel<BrokerTourDetailsRefreshChannelEventT>();\n","// extracted by mini-css-extract-plugin\nexport default {\"icon\":\"IconWithNumber__icon___NfwbY\",\"icon--isCompact\":\"IconWithNumber__icon--isCompact___PxgsY\",\"number\":\"IconWithNumber__number___N5rBB\",\"number--isCompact\":\"IconWithNumber__number--isCompact___YfIGT\",\"fadeIn\":\"IconWithNumber__fadeIn___eumtf\",\"blinking\":\"IconWithNumber__blinking___oYIkR\"};","export {\n    fetchBrokerTourDetails,\n    fetchBrokerTourDetailsBegin,\n    fetchBrokerTourDetailsSuccess,\n    fetchBrokerTourDetailsError,\n    resetBrokerTourDetails,\n} from './slice';\n","import React, { CSSProperties, MouseEvent } from 'react';\n\nimport classNames from 'classnames/bind';\nimport {\n    useFloating,\n    autoUpdate,\n    offset,\n    flip,\n    shift,\n    arrow,\n    useHover,\n    useFocus,\n    useDismiss,\n    useInteractions,\n    safePolygon,\n    FloatingArrow,\n    FloatingPortal,\n} from '@floating-ui/react';\n\nimport { TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\n\nimport styles from './TimeWindow.scss';\nimport { TimeWindowT } from '../models';\nimport { DATA_TIMELINE_ITEM_SELECTOR } from '../constants';\nimport { StyleGuideColorsEnum, UNIT } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\nconst TOOLTIP_HOVER_DELAY_MS = 300;\nconst TOOLTIP_CLOSE_DELAY_MS = 3000;\n\nconst TOOLTIP_ARROW_FILL: Record<TooltipThemeEnum, StyleGuideColorsEnum> = {\n    [TooltipThemeEnum.white]: StyleGuideColorsEnum.white,\n    [TooltipThemeEnum.black]: StyleGuideColorsEnum.charcoal,\n};\n\nexport type TimeWindowPropsT<T> = {\n    start: number;\n    getHeight: (height: number) => number;\n    timeWindow: TimeWindowT<T>;\n    onClick: (timeWindow: TimeWindowT<T>, event: MouseEvent<HTMLDivElement>) => void;\n    onBlur: (timeWindow: TimeWindowT<T>, event: MouseEvent<HTMLDivElement>) => void;\n    onFocus: (timeWindow: TimeWindowT<T>, event: MouseEvent<HTMLDivElement>) => void;\n    style?: CSSProperties;\n};\n\nconst SERVICE_HEIGHT = 8 * UNIT; // icon + paddings\n\nconst TimeWindow = <T = unknown,>(props: TimeWindowPropsT<T>) => {\n    const { start, timeWindow, getHeight, onClick, onBlur, onFocus, style } = props;\n\n    const { renderTooltip, tooltipTheme = TooltipThemeEnum.white } = timeWindow;\n\n    const [isShowLabel, setShowLabel] = React.useState<boolean>(true);\n    const [isTooltipOpen, setTooltipOpen] = React.useState(false);\n\n    const wrapRef = React.useRef<HTMLDivElement>();\n    const labelRef = React.createRef<HTMLDivElement>();\n    const tooltipArrowRef = React.useRef<SVGSVGElement | null>(null);\n\n    const hasFloatingTooltip = Boolean(renderTooltip);\n\n    const { refs, floatingStyles, context } = useFloating({\n        open: hasFloatingTooltip && isTooltipOpen,\n        onOpenChange: setTooltipOpen,\n        placement: 'left',\n        middleware: [\n            offset(2 * UNIT),\n            flip({ padding: 2 * UNIT }),\n            shift({ padding: 2 * UNIT }),\n            arrow({ element: tooltipArrowRef }),\n        ],\n        strategy: 'fixed',\n        transform: false,\n        whileElementsMounted: autoUpdate,\n    });\n\n    const hover = useHover(context, {\n        enabled: hasFloatingTooltip,\n        delay: { open: TOOLTIP_HOVER_DELAY_MS, close: TOOLTIP_CLOSE_DELAY_MS },\n        handleClose: safePolygon({ buffer: 1 }),\n    });\n\n    const focus = useFocus(context, { enabled: hasFloatingTooltip });\n\n    const dismiss = useDismiss(context, { enabled: hasFloatingTooltip });\n\n    const { getReferenceProps, getFloatingProps } = useInteractions([hover, focus, dismiss]);\n\n    React.useEffect(() => {\n        if (!hasFloatingTooltip) {\n            setTooltipOpen(false);\n        }\n    }, [hasFloatingTooltip]);\n\n    const setFloatingReference = refs.setReference;\n\n    const setRef = React.useCallback(\n        (node: HTMLDivElement | null): void => {\n            wrapRef.current = node ?? undefined;\n            setFloatingReference(node);\n        },\n        [setFloatingReference],\n    );\n\n    React.useEffect(() => {\n        if (!labelRef.current || !wrapRef.current) {\n            return;\n        }\n\n        setShowLabel(labelRef.current.offsetHeight + SERVICE_HEIGHT < wrapRef.current.offsetHeight);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [wrapRef.current, labelRef.current]);\n\n    return (\n        <>\n            <div\n                className={cx('time-window', {\n                    [`time-window--${timeWindow.theme}`]: true,\n                    'time-window--isTransparent': timeWindow.isTransparent,\n                })}\n                {...(hasFloatingTooltip\n                    ? getReferenceProps({\n                          onMouseEnter(event: MouseEvent<HTMLDivElement>) {\n                              onFocus(timeWindow, event);\n                          },\n                          onMouseLeave(event: MouseEvent<HTMLDivElement>) {\n                              onBlur(timeWindow, event);\n                          },\n                      })\n                    : {\n                          onMouseLeave: (event: MouseEvent<HTMLDivElement>) => onBlur(timeWindow, event),\n                          onMouseEnter: (event: MouseEvent<HTMLDivElement>) => onFocus(timeWindow, event),\n                      })}\n                onClick={(event) => onClick(timeWindow, event)}\n                style={{\n                    top: `${getHeight(timeWindow.start - start)}px`,\n                    height: `${getHeight(timeWindow.end - timeWindow.start)}px`,\n                    ...style,\n                }}\n                ref={setRef}\n                title={hasFloatingTooltip ? undefined : timeWindow.label}\n                {...{ [DATA_TIMELINE_ITEM_SELECTOR]: timeWindow.id }}\n            >\n                <div className={cx('time-window__icon')}>{timeWindow.icon}</div>\n                {isShowLabel && (\n                    <div className={cx('time-window__label-wrap')} ref={labelRef}>\n                        <div\n                            className={cx('time-window__label', {\n                                [`time-window__label--${timeWindow.theme}`]: true,\n                            })}\n                        >\n                            {timeWindow.label}\n                        </div>\n                    </div>\n                )}\n            </div>\n            {hasFloatingTooltip && isTooltipOpen && (\n                <FloatingPortal>\n                    <div\n                        ref={refs.setFloating}\n                        style={floatingStyles}\n                        className={cx('tooltip')}\n                        {...getFloatingProps({\n                            onClick(event: React.MouseEvent<HTMLDivElement>) {\n                                event.stopPropagation();\n                            },\n                        })}\n                    >\n                        <FloatingArrow\n                            fill={TOOLTIP_ARROW_FILL[tooltipTheme]}\n                            ref={tooltipArrowRef}\n                            context={context}\n                        />\n                        <div\n                            className={cx('tooltip__inner', {\n                                [`tooltip__inner--theme-${tooltipTheme}`]: true,\n                            })}\n                        >\n                            {renderTooltip?.(timeWindow.data)}\n                        </div>\n                    </div>\n                </FloatingPortal>\n            )}\n        </>\n    );\n};\n\nexport { TimeWindow };\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { fetchRFQsStatsBegin, fetchRFQsStatsError, fetchRFQsStatsSuccess } from './actions';\nimport { FETCH_RFQS_STATS_REQUEST, FetchRFQsStatsActionT } from './types';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { selectRFQsStatsRequest } from './selectors';\nimport { FETCH_ORDERS_PAGE_REQUEST } from 'common/store/transport-orders/types';\nimport shipperTranziitApi from 'shipper/utils/api/shipper-tranziit/api';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { CompanyTypeEnum } from 'common/constants';\n\nconst getFetchRFQsStatsSaga = (companyType: CompanyTypeEnum) => {\n    return function* fetchRFQsStatsSaga(action: FetchRFQsStatsActionT): WrapGeneratorT<void> {\n        const { options } = action;\n        const requestStatus: ReturnType<typeof selectRFQsStatsRequest> = yield select(selectRFQsStatsRequest);\n\n        const isNeedRequest = checkNeedRequest(requestStatus, options);\n        if (!isNeedRequest) {\n            return;\n        }\n\n        yield put(fetchRFQsStatsBegin());\n\n        let result: ReturnApiT<typeof shipperTranziitApi.fetchRFQsStats | typeof brokerTranziitApi.fetchRFQsStats>;\n        if (companyType === CompanyTypeEnum.broker) {\n            result = yield brokerTranziitApi.fetchRFQsStats();\n        } else {\n            result = yield shipperTranziitApi.fetchRFQsStats();\n        }\n\n        const [error, response] = result;\n\n        if (error) {\n            yield put(fetchRFQsStatsError(error));\n            return;\n        }\n\n        yield put(fetchRFQsStatsSuccess(response));\n    };\n};\n\nfunction* rfqsStatsSaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery([FETCH_RFQS_STATS_REQUEST, FETCH_ORDERS_PAGE_REQUEST], getFetchRFQsStatsSaga(companyType));\n}\n\nexport default rfqsStatsSaga;\n","// extracted by mini-css-extract-plugin\nexport default {\"widget\":\"PricingSettingsForm__widget___HvPTw\",\"widget__inner\":\"PricingSettingsForm__widget__inner___U9sfC\",\"checkbox\":\"PricingSettingsForm__checkbox___NDzJo\",\"checkbox-group\":\"PricingSettingsForm__checkbox-group___bJtSG\",\"field\":\"PricingSettingsForm__field___QXIos\",\"field-group\":\"PricingSettingsForm__field-group___MzrHp\",\"combined-field--fee-value\":\"PricingSettingsForm__combined-field--fee-value___QohJl\",\"combined-field--fee-type\":\"PricingSettingsForm__combined-field--fee-type___ZI0ak\",\"rate-matrix-spread-description__text\":\"PricingSettingsForm__rate-matrix-spread-description__text___OwrV7\",\"rate-matrix-spread-description\":\"PricingSettingsForm__rate-matrix-spread-description___Ie9eQ\",\"fadeIn\":\"PricingSettingsForm__fadeIn___qJw6u\",\"blinking\":\"PricingSettingsForm__blinking___zaaTK\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './SubjectLink.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    number: React.ReactNode;\n};\n\nconst SubjectLink: React.FC<PropsT> = React.memo((props) => {\n    const { number } = props;\n\n    return <span className={cx('subject-link')}>{number}</span>;\n});\n\nexport default SubjectLink;\n","import { CompanyRFQsStateT } from './types';\nimport { SharableStateT } from '../models';\nimport { initialCompanyRFQsState } from './reducer';\n\nconst selectCompanyState = (state: SharableStateT, companyId: CompanyIdT | null): CompanyRFQsStateT => {\n    return state.rfqs[companyId as CompanyIdT] || initialCompanyRFQsState;\n};\n\nexport const selectRFQsPages = (companyId: CompanyIdT | null) => {\n    return (state: SharableStateT): CompanyRFQsStateT['pages'] => {\n        return selectCompanyState(state, companyId).pages;\n    };\n};\n\nexport const selectRFQsQuery = (companyId: CompanyIdT | null) => {\n    return (state: SharableStateT): CompanyRFQsStateT['query'] => selectCompanyState(state, companyId).query;\n};\n\nexport const selectRFQsTotal = (companyId: CompanyIdT | null) => {\n    return (state: SharableStateT): CompanyRFQsStateT['total'] => selectCompanyState(state, companyId).total;\n};\n\nexport const selectRFQsByIds = (companyId: CompanyIdT | null) => {\n    return (state: SharableStateT): CompanyRFQsStateT['byId'] => selectCompanyState(state, companyId).byId;\n};\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './DeactivateUserForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\n\nimport ModalDialogActions from 'common/components/Modal/ModalDialogActions/ModalDialogActions';\nimport { DeactivateUserFormPropsT } from 'common/layouts/Members/dialogs/DeactivateUserModal/models';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = DeactivateUserFormPropsT;\n\nconst TEST_SELECTOR = 'deactivate-user-form';\n\nconst DeactivateUserForm: React.FC<PropsT> = (props) => {\n    const { contact, onDeactivateUser, onCancel, updateMemberRequest } = props;\n\n    const { t } = useTranslation();\n\n    const actions = React.useMemo(() => {\n        return [\n            {\n                children: t('common:error-modal.actions.cancel'),\n                theme: ButtonThemeEnum.secondary,\n                testSelector: `${TEST_SELECTOR}_cancel`,\n                isDisabled: updateMemberRequest.loading,\n                onClick: onCancel,\n            },\n            {\n                children: t('common:error-modal.actions.deactivate'),\n                theme: ButtonThemeEnum.danger,\n                testSelector: `${TEST_SELECTOR}_ok`,\n                onClick: () => {\n                    const { userId } = contact;\n                    if (!userId) {\n                        return;\n                    }\n\n                    onDeactivateUser({ userId });\n                },\n                isLoading: updateMemberRequest.loading,\n            },\n        ];\n    }, [contact, onCancel, onDeactivateUser, t, updateMemberRequest.loading]);\n\n    return <ModalDialogActions actions={actions} />;\n};\n\nexport default DeactivateUserForm;\n","export enum TabEnum {\n    active = 'active',\n    archive = 'archive',\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"NumberInput__wrap___Odr93\",\"content\":\"NumberInput__content___jJe9l\",\"input\":\"NumberInput__input___F0zR3\",\"input--isEmpty\":\"NumberInput__input--isEmpty___eFN0b\",\"input--isHovered\":\"NumberInput__input--isHovered___KLG2E\",\"input--hasIcon\":\"NumberInput__input--hasIcon___h5HzE\",\"input--isFocused\":\"NumberInput__input--isFocused___HQDsT\",\"input--hasWarning\":\"NumberInput__input--hasWarning___yOjH_\",\"input--isChanged\":\"NumberInput__input--isChanged___FyoHq\",\"input--hasError\":\"NumberInput__input--hasError___dYYEd\",\"input--isDisabled\":\"NumberInput__input--isDisabled___xUSjJ\",\"input-inner\":\"NumberInput__input-inner___OtFr9\",\"input-inner--isEmpty\":\"NumberInput__input-inner--isEmpty___s740x\",\"input-inner--isDisabled\":\"NumberInput__input-inner--isDisabled___Ge4_H\",\"input-wrap\":\"NumberInput__input-wrap___GYKmb\",\"input-wrap--withValueControl\":\"NumberInput__input-wrap--withValueControl___DFDgQ\",\"icon\":\"NumberInput__icon___RXCcw\",\"units\":\"NumberInput__units___ND1Me\",\"units--isEmpty\":\"NumberInput__units--isEmpty___Ce4wS\",\"units--isDisabled\":\"NumberInput__units--isDisabled___EwTrR\",\"units--isHideValueControl\":\"NumberInput__units--isHideValueControl___KZhpq\",\"controls\":\"NumberInput__controls___C4rxw\",\"controls__control\":\"NumberInput__controls__control___cLxEZ\",\"controls__control--increment\":\"NumberInput__controls__control--increment___cIJTo\",\"controls__control--decrement\":\"NumberInput__controls__control--decrement___syjw0\",\"controls__control--isEmpty\":\"NumberInput__controls__control--isEmpty___uuMcU\",\"controls__control--isHovered\":\"NumberInput__controls__control--isHovered___JdlJy\",\"controls__control--isFocused\":\"NumberInput__controls__control--isFocused___kEQNA\",\"controls__control--isDisabled\":\"NumberInput__controls__control--isDisabled___ODequ\",\"fadeIn\":\"NumberInput__fadeIn___dC1ee\",\"blinking\":\"NumberInput__blinking___A_J6z\"};","import { RFQDetailsStateT } from './types';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { initialRFQDetailsState } from './reducer';\nimport { SharableStateT } from 'common/store/models';\n\nexport const selectRFQDetails =\n    (id: RFQIdT) =>\n    (state: SharableStateT): RFQDetailsStateT['details'] =>\n        state.rfqDetails[id]?.details || initialRFQDetailsState.details;\n\nexport const selectRFQSuggestedPriceOffer =\n    (id: RFQIdT) =>\n    (state: SharableStateT): RFQDetailsStateT['suggestedOffer'] =>\n        state.rfqDetails[id]?.suggestedOffer || initialRFQDetailsState.suggestedOffer;\n\nexport const selectRFQDetailsRequestStatus =\n    (id: RFQIdT) =>\n    (state: SharableStateT): RequestStatusT =>\n        state.rfqDetails[id]?.requestStatus || initialRFQDetailsState.requestStatus;\n","export enum TabsThemesEnum {\n    light = 'light',\n    dark = 'dark',\n}\n\nexport enum TabLabelSizeEnum {\n    normal = 'normal',\n    small = 'small',\n}\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './CommentFormatter.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    comment: React.ReactNode | string | null;\n};\n\nconst CommentFormatter: React.FC<PropsT> = React.memo((props) => {\n    const { comment } = props;\n\n    return <span className={cx('comment')}>{comment}</span>;\n});\n\nexport default CommentFormatter;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"InviteDriverForm__wrap___cLLYA\",\"title\":\"InviteDriverForm__title___WifHS\",\"image\":\"InviteDriverForm__image___TF3hl\",\"form\":\"InviteDriverForm__form___HURH9\",\"fadeIn\":\"InviteDriverForm__fadeIn___zaR2C\",\"blinking\":\"InviteDriverForm__blinking___Yu6aQ\"};","import * as React from 'react';\n\nimport { Trans, useTranslation } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\nimport NotificationVerticalRow from 'common/components/notification-cards/shared/NotificationVerticalRow/NotificationVerticalRow';\nimport NotificationVerticalRowsLayout from 'common/components/notification-cards/shared/NotificationVerticalRowsLayout/NotificationVerticalRowsLayout';\n\ntype PropsT = {\n    transportationOrderNumber: React.ReactNode;\n    truckPlateNumber?: string;\n    truckModel?: string;\n    trailerPlateNumber?: string;\n    trailerType?: string;\n};\n\nconst formatAssetDetails = (plateNumber?: string, type?: string) => [plateNumber, type].filter(Boolean).join(' / ');\n\nconst TransportationOrderWasPlacedCard: React.FC<PropsT> = React.memo((props) => {\n    const { transportationOrderNumber, truckPlateNumber, truckModel, trailerPlateNumber, trailerType } = props;\n    const { t } = useTranslation();\n\n    const truckDetails = formatAssetDetails(truckPlateNumber, truckModel);\n    const trailerDetails = formatAssetDetails(trailerPlateNumber, trailerType);\n\n    const rows = [\n        <NotificationVerticalRow key=\"summary\">\n            <Trans\n                i18nKey=\"common:notifications.transportation-order-was-placed\"\n                components={{\n                    transportationOrderNumber: (\n                        <NotificationEntityLabel isBold isUnderline text={transportationOrderNumber} />\n                    ),\n                }}\n            />\n        </NotificationVerticalRow>,\n    ];\n\n    if (truckDetails) {\n        rows.push(\n            <NotificationVerticalRow key=\"truck\">\n                <Trans\n                    i18nKey=\"common:notifications.transportation-order-assets-assigned-truck\"\n                    components={{\n                        truckLabel: <NotificationEntityLabel isBold text={t('common:notifications.assets.truck')} />,\n                        assetDetails: <NotificationEntityLabel text={truckDetails} />,\n                    }}\n                />\n            </NotificationVerticalRow>,\n        );\n    }\n\n    if (trailerDetails) {\n        rows.push(\n            <NotificationVerticalRow key=\"trailer\">\n                <Trans\n                    i18nKey=\"common:notifications.transportation-order-assets-assigned-trailer\"\n                    components={{\n                        trailerLabel: (\n                            <NotificationEntityLabel isBold text={t('common:notifications.assets.trailer')} />\n                        ),\n                        assetDetails: <NotificationEntityLabel text={trailerDetails} />,\n                    }}\n                />\n            </NotificationVerticalRow>,\n        );\n    }\n\n    return (\n        <NotificationCardInnerLayout>\n            <NotificationVerticalRowsLayout>{rows}</NotificationVerticalRowsLayout>\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default TransportationOrderWasPlacedCard;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    fetchBrokerOrderStats,\n    fetchBrokerOrderStatsBegin,\n    fetchBrokerOrderStatsError,\n    fetchBrokerOrderStatsSuccess,\n} from './slice';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { selectBrokerOrderStatsRequest } from './selectors';\nimport { fetchBrokerOrdersPage } from 'broker-admin/store/broker-orders/slice';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\n\nfunction* fetchBrokerOrderStatsSaga(): WrapGeneratorT<void> {\n    const requestStatus: ReturnType<typeof selectBrokerOrderStatsRequest> = yield select(selectBrokerOrderStatsRequest);\n\n    const isNeedRequest = checkNeedRequest(requestStatus);\n    if (!isNeedRequest) {\n        return;\n    }\n\n    yield put(fetchBrokerOrderStatsBegin());\n\n    const [error, response]: ReturnApiT<typeof brokerTranziitApi.fetchBrokerOrdersStatistics> =\n        yield brokerTranziitApi.fetchBrokerOrdersStatistics();\n    if (error) {\n        yield put(fetchBrokerOrderStatsError({ error }));\n        return;\n    }\n\n    yield put(fetchBrokerOrderStatsSuccess({ statistics: response }));\n}\n\nfunction* brokerOrderStatsSaga(): WrapGeneratorT<void> {\n    yield takeEvery([fetchBrokerOrderStats.type, fetchBrokerOrdersPage.type], fetchBrokerOrderStatsSaga);\n}\n\nexport default brokerOrderStatsSaga;\n","import * as React from 'react';\n\ntype PropsT = {\n    className?: string;\n};\n\nconst BigPlusUsers: React.FC<PropsT> = (props) => {\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"200\" height=\"130\" viewBox=\"0 0 200 130\" {...props}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M15 20h170v90H15z\" />\n                <path\n                    fill=\"#8ABA2E\"\n                    fillOpacity=\"0.05\"\n                    d=\"M176 20a7 7 0 110 14h-40a7 7 0 110 14h22a7 7 0 110 14h-10.174c-4.874 0-8.826 3.134-8.826 7 0 2.577 2 4.91 6 7a7 7 0 110 14H62a7 7 0 110-14H23a7 7 0 110-14h40a7 7 0 100-14H38a7 7 0 110-14h40a7 7 0 110-14h98zm0 28a7 7 0 110 14 7 7 0 010-14z\"\n                />\n                <path\n                    stroke=\"#8ABA2E\"\n                    strokeLinecap=\"round\"\n                    strokeLinejoin=\"round\"\n                    strokeWidth=\"2.5\"\n                    d=\"M149.5 47h-17.176m24.176 0h-2.221m-11.103 7.777H135M48.5 68H31.324M25.5 68h-4.221m31.897 8.777H45\"\n                />\n                <path\n                    stroke=\"#8ABA2E\"\n                    strokeLinejoin=\"round\"\n                    strokeWidth=\"2.5\"\n                    d=\"M76.667 63.417c3.208 0 5.833-2.625 5.833-5.834 0-3.208-2.625-5.833-5.833-5.833-3.209 0-5.834 2.625-5.834 5.833 0 3.209 2.625 5.834 5.834 5.834zm3.296 3.208c-1.08-.175-2.159-.292-3.296-.292-2.888 0-5.63.613-8.109 1.692A5.865 5.865 0 0065 73.421V78h13.125v-4.696c0-2.42.67-4.696 1.838-6.679zm43.37-3.208c3.209 0 5.834-2.625 5.834-5.834 0-3.208-2.625-5.833-5.834-5.833-3.208 0-5.833 2.625-5.833 5.833 0 3.209 2.625 5.834 5.833 5.834zM135 73.42c0-2.363-1.4-4.463-3.558-5.396a20.263 20.263 0 00-8.109-1.692c-1.137 0-2.216.117-3.295.292a13.126 13.126 0 011.837 6.68V78H135v-4.58zM100 43a8.738 8.738 0 00-8.75 8.75A8.738 8.738 0 00100 60.5a8.738 8.738 0 008.75-8.75A8.738 8.738 0 00100 43h0zm12.367 22.313A30.458 30.458 0 00100 62.688c-4.754 0-8.954 1.137-12.367 2.625-3.15 1.4-5.133 4.55-5.133 7.991V78h35v-4.696c0-3.441-1.983-6.591-5.133-7.991z\"\n                />\n                <path\n                    fill=\"#8ABA2E\"\n                    fillOpacity=\"0.3\"\n                    d=\"M76.667 63.417c3.208 0 5.833-2.625 5.833-5.834 0-3.208-2.625-5.833-5.833-5.833-3.209 0-3.209 11.667 0 11.667zm23.806-4c4.283 0 7.787-3.6 7.787-8s-3.504-8-7.787-8c-4.283 0-4.283 16 0 16zm22.86 4c3.209 0 5.834-2.625 5.834-5.834 0-3.208-2.625-5.833-5.834-5.833-3.208 0-3.208 11.667 0 11.667zM135 73.42c0-2.363-1.4-4.463-3.558-5.396a20.263 20.263 0 00-8.109-1.692c-1.137 0-2.216.117-3.295.292a13.126 13.126 0 011.837 6.68V78H135v-4.58zM111.722 65c-4.754 0-8.31-3.07-11.722-1.583-3.15 1.4-7.5 6.445-7.5 9.887V78h25c-.683-8.667-2.609-13-5.778-13z\"\n                />\n                <path\n                    fill=\"#FFF\"\n                    stroke=\"#8ABA2E\"\n                    strokeOpacity=\"0.3\"\n                    strokeWidth=\"2.5\"\n                    d=\"M101 98.75a.745.745 0 00.53-.22.745.745 0 00.22-.53h0v-5.75h5.75a.745.745 0 00.53-.22.745.745 0 000-1.06.745.745 0 00-.53-.22h0-5.75V86a.745.745 0 00-.22-.53.745.745 0 00-1.06 0 .745.745 0 00-.22.53h0v4.75H94.5a.745.745 0 00-.53.22.745.745 0 00-.22.53h0v.75l6.5.001V98c0 .207.084.395.22.53.135.136.323.22.53.22z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nBigPlusUsers.displayName = 'BigPlusUsers';\n\nconst storyProps: PropsT = {};\n\nexport { storyProps };\nexport default BigPlusUsers;\n","import React from 'react';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\n\nimport styles from './ButtonTabs.scss';\nimport map from 'lodash/map';\nimport NotificationLabel, {\n    NotificationLabelThemeEnum,\n} from 'common/components/notifications/NotificationLabel/NotificationLabel';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { UseTabsResultT } from 'common/components/tabs/hooks';\nimport { OnKeyPressCallbackT, useKeyboardShortcut } from 'common/utils/hooks/useKeyboardShortcut';\n\nconst cx = classNames.bind(styles);\n\nexport enum ButtonTabCountThemeEnum {\n    normal = 'normal',\n    warning = 'warning',\n}\n\nconst notificationThemeMap: Record<ButtonTabCountThemeEnum, NotificationLabelThemeEnum> = {\n    [ButtonTabCountThemeEnum.normal]: NotificationLabelThemeEnum.slate,\n    [ButtonTabCountThemeEnum.warning]: NotificationLabelThemeEnum.orange,\n};\n\nexport type ButtonTabT<T extends string> = {\n    type: T;\n    label: React.ReactNode;\n    counter?: {\n        value?: number | null | undefined;\n        theme?: ButtonTabCountThemeEnum;\n        isShowPlusSign?: boolean;\n        isShowWarning?: boolean;\n    };\n};\n\nexport type PropsT<T extends string> = {\n    className?: string;\n    tabs: Array<ButtonTabT<T> | null>;\n    testSelector?: React.ReactNode;\n} & UseTabsResultT<T>;\n\nconst ButtonTabs = <T extends string>(props: PropsT<T>) => {\n    const { activeTabType, setActiveTabType, tabs, testSelector, className } = props;\n\n    const handleKeyPress: OnKeyPressCallbackT = React.useCallback(\n        (key, isPressedMetaKey) => {\n            const numberKey = parseInt(key, 10);\n            const selectedTabType = tabs[numberKey - 1]?.type || null;\n            if (!Number.isNaN(numberKey) && isPressedMetaKey && selectedTabType) {\n                setActiveTabType(selectedTabType);\n            }\n        },\n        [tabs, setActiveTabType],\n    );\n    useKeyboardShortcut(handleKeyPress);\n\n    return (\n        <div className={cs(cx('tabs'), className)} data-test-selector={testSelector}>\n            {map(tabs, (tab, tabIndex) => {\n                if (!tab) {\n                    return null;\n                }\n\n                const isActiveTab = tab.type === activeTabType;\n\n                return (\n                    <Button\n                        key={tabIndex}\n                        isToggled={isActiveTab}\n                        className={cx('tabs__tab', {\n                            'tabs__tab--is-active': isActiveTab,\n                        })}\n                        onClick={() => {\n                            setActiveTabType(tab.type);\n                        }}\n                        leftIcon={\n                            tab.counter ? (\n                                <NotificationLabel\n                                    theme={notificationThemeMap[tab.counter.theme as ButtonTabCountThemeEnum]}\n                                    count={tab.counter.value}\n                                    isShowPlusSign={tab.counter.isShowPlusSign}\n                                    isShowWarning={tab.counter.isShowWarning}\n                                />\n                            ) : null\n                        }\n                        theme={ButtonThemeEnum.transparent}\n                    >\n                        {tab.label}\n                    </Button>\n                );\n            })}\n        </div>\n    );\n};\n\nexport default ButtonTabs;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './PillLabel.scss';\n\nconst cx = classNames.bind(styles);\n\nexport type PillLabelPropsT = {\n    theme: PillLabelThemeEnum;\n    isSymmetrical?: boolean;\n    isRounded?: boolean;\n    isNoWrap?: boolean;\n    className?: string;\n    testSelector?: string;\n};\n\nexport enum PillLabelThemeEnum {\n    black = 'black',\n    black30 = 'black-30',\n    charcoal = 'charcoal',\n    slate = 'slate',\n    grey = 'grey',\n    light = 'light',\n    light30 = 'light-30',\n    brandAccent = 'brand-accent',\n    brandAccent30 = 'brand-accent-30',\n    brandDark = 'brand-dark',\n    orange = 'orange',\n    azul = 'azul',\n    blazeOrange = 'blaze-orange',\n    tomatoRed = 'tomato-red',\n    tomatoRed70 = 'tomato-red-70',\n    pewterBlue = 'pewter-blue',\n    tumbleweed = 'tumbleweed',\n    lightSlateGray = 'light-slate-gray',\n}\n\n// confluence entity\nexport const colorCodingPillLabelTheme = {\n    normal: PillLabelThemeEnum.slate,\n    attention: PillLabelThemeEnum.orange,\n    warning: PillLabelThemeEnum.tomatoRed,\n    notImportant: PillLabelThemeEnum.grey,\n    success: PillLabelThemeEnum.brandAccent,\n    positive: PillLabelThemeEnum.brandAccent,\n    focus: PillLabelThemeEnum.charcoal,\n} as const;\n\nconst PillLabel: React.FC<PillLabelPropsT> = React.memo((props) => {\n    const { children, theme, testSelector, className, isRounded, isSymmetrical, isNoWrap } = props;\n\n    return (\n        <div\n            className={cs(\n                cx('pill', {\n                    [`pill--theme-${theme}`]: true,\n                    [`pill--is-symmetrical`]: isSymmetrical,\n                    [`pill--is-rounded`]: isRounded,\n                    [`pill--is-no-wrap`]: isNoWrap,\n                }),\n                className,\n            )}\n            data-test-selector={`${testSelector}_pill`}\n        >\n            {children}\n        </div>\n    );\n});\n\nexport default PillLabel;\n","import {\n    FETCH_ORDERS_PAGE_REQUEST,\n    FETCH_ORDERS_PAGE_REQUEST_BEGIN,\n    FETCH_ORDERS_PAGE_REQUEST_ERROR,\n    FETCH_ORDERS_PAGE_REQUEST_SUCCESS,\n    FetchTransportOrdersPageActionT,\n    FetchTransportOrdersPageBeginActionT,\n    FetchTransportOrdersPageErrorActionT,\n    FetchTransportOrdersPageSuccessActionT,\n    RESET_ORDERS,\n    ResetTransportOrdersActionT,\n} from './types';\nimport { FetchTransportOrdersPageQueryT, TransportOrderT } from './models';\nimport { PageResponseT } from 'common/utils/pagination/models';\n\nexport const fetchTransportOrdersPage = (\n    pageNumber: PageNumberT,\n    query: FetchTransportOrdersPageQueryT,\n    companyId: CompanyIdT,\n    options?: FetchOptionsT,\n): FetchTransportOrdersPageActionT => ({\n    type: FETCH_ORDERS_PAGE_REQUEST,\n    query,\n    pageNumber,\n    companyId,\n    options,\n});\n\nexport const fetchTransportOrdersPageBegin = (\n    query: FetchTransportOrdersPageQueryT,\n    pageNumber: PageNumberT,\n    companyId: CompanyIdT,\n): FetchTransportOrdersPageBeginActionT => ({\n    type: FETCH_ORDERS_PAGE_REQUEST_BEGIN,\n    query,\n    pageNumber,\n    companyId,\n});\n\nexport const fetchTransportOrdersPageSuccess = (\n    query: FetchTransportOrdersPageQueryT,\n    pageNumber: PageNumberT,\n    pageResponse: PageResponseT<TransportOrderT> | null,\n    companyId: CompanyIdT,\n): FetchTransportOrdersPageSuccessActionT => ({\n    type: FETCH_ORDERS_PAGE_REQUEST_SUCCESS,\n    query,\n    pageResponse,\n    pageNumber,\n    companyId,\n});\n\nexport const fetchTransportOrdersPageError = (\n    query: FetchTransportOrdersPageQueryT,\n    pageNumber: PageNumberT,\n    error: Error,\n    companyId: CompanyIdT,\n): FetchTransportOrdersPageErrorActionT => ({\n    type: FETCH_ORDERS_PAGE_REQUEST_ERROR,\n    query,\n    error,\n    pageNumber,\n    companyId,\n});\n\nexport const resetTransportOrders = (\n    companyId: CompanyIdT,\n    mutationListOptions: MutationListOptionsT,\n): ResetTransportOrdersActionT => ({\n    type: RESET_ORDERS,\n    companyId,\n    mutationListOptions,\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"option--clear\":\"ManagementControl__option--clear___sDUKJ\",\"fadeIn\":\"ManagementControl__fadeIn___NWBah\",\"blinking\":\"ManagementControl__blinking___PpoUN\"};","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"RemovedFromTeamCard__inner___iV_DE\",\"fadeIn\":\"RemovedFromTeamCard__fadeIn___HXk0M\",\"blinking\":\"RemovedFromTeamCard__blinking___Ue9np\"};","import {\n    FETCH_DRIVERS_REQUEST,\n    FETCH_DRIVERS_REQUEST_BEGIN,\n    FETCH_DRIVERS_REQUEST_ERROR,\n    FETCH_DRIVERS_REQUEST_SUCCESS,\n    FetchDriversActionT,\n    FetchDriversBeginActionT,\n    FetchDriversErrorActionT,\n    FetchDriversSuccessActionT,\n} from './types';\n\nimport { DriverT, SearchDriverQueryT } from './models';\n\nexport const fetchDrivers = (query: SearchDriverQueryT): FetchDriversActionT => ({\n    type: FETCH_DRIVERS_REQUEST,\n    query,\n});\n\nexport const fetchDriversBegin = (query: SearchDriverQueryT): FetchDriversBeginActionT => ({\n    type: FETCH_DRIVERS_REQUEST_BEGIN,\n    query,\n});\n\nexport const fetchDriversSuccess = (query: SearchDriverQueryT, drivers: DriverT[]): FetchDriversSuccessActionT => ({\n    type: FETCH_DRIVERS_REQUEST_SUCCESS,\n    drivers,\n    query,\n});\n\nexport const fetchDriversError = (query: SearchDriverQueryT, error: Error): FetchDriversErrorActionT => ({\n    type: FETCH_DRIVERS_REQUEST_ERROR,\n    error,\n    query,\n});\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\nimport styles from './QuickActions.scss';\n\nimport Button from 'common/components/Button/Button';\nimport { useSelector } from 'react-redux';\nimport { selectBestOffers } from 'common/store/order-creation/selectors';\nimport { PriceOfferT } from 'common/store/order-creation/models';\nimport history from 'common/utils/history';\nimport { CurrencyEnum, DEFAULT_ICON_SIZE, QueryKeysEnum, StyleGuideColorsEnum } from 'common/constants';\nimport useQuery from 'common/utils/hooks/useQuery';\nimport Money from 'common/components/Money/Money';\nimport { useTranslation } from 'react-i18next';\nimport { formatQuery } from 'common/utils/query';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport ThumbUpIcon from 'common/icons/ThumbUpIcon';\nimport UrgentIcon from 'common/icons/UrgentIcon';\nimport { getDateFromISO } from 'common/utils/time';\n\nconst cx = classNames.bind(styles);\n\ntype QueryT = {};\n\ntype PropsT = {\n    className?: string;\n    isPartialLoadingOffers?: boolean;\n};\n\ntype QuickActionConfigT = {\n    offer: PriceOfferT | null;\n    testSelector: string;\n    icon: React.ReactNode;\n    title: React.ReactNode;\n};\n\nconst PRICE_SEPARATOR = ' - ';\n\nconst QuickActions: React.FC<PropsT> = React.memo((props) => {\n    const { className, isPartialLoadingOffers } = props;\n\n    const { t } = useTranslation();\n\n    const query = useQuery<QueryT>();\n\n    const bestOffers = useSelector(selectBestOffers);\n\n    const isLoading = isPartialLoadingOffers || !bestOffers;\n\n    const selectOffer = (priceOffer: PriceOfferT | null): void => {\n        history.push({\n            search: formatQuery({\n                ...query,\n                [QueryKeysEnum.orderCreationPickUpDate]: getDateFromISO(priceOffer?.pickupDockingHoursFrom),\n                [QueryKeysEnum.orderCreationDropOffDate]: getDateFromISO(priceOffer?.dropOffDockingHoursFrom),\n                [QueryKeysEnum.orderCreationPriceOfferId]: priceOffer?.id,\n            }),\n        });\n    };\n\n    const loaderIconNode = (\n        <ControlLoaderIcon opacity={1} size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.light} />\n    );\n\n    const actionsConfig: Array<QuickActionConfigT> = [\n        {\n            offer: bestOffers?.bestPrice || null,\n            testSelector: 'quick-actions_best-price',\n            icon: (\n                <ThumbUpIcon\n                    size={DEFAULT_ICON_SIZE}\n                    fillColor={StyleGuideColorsEnum.brandDark}\n                    strokeColor={StyleGuideColorsEnum.brandDark}\n                />\n            ),\n            title: (\n                <span>\n                    {t('common:new-order-offers.quick-actions.best-price')}\n                    {bestOffers?.bestPrice && (\n                        <>\n                            {PRICE_SEPARATOR}\n                            <Money isRound amount={bestOffers.bestPrice.price} currency={CurrencyEnum.EUR} />\n                        </>\n                    )}\n                </span>\n            ),\n        },\n        {\n            offer: bestOffers?.urgent || null,\n            testSelector: 'quick-actions_urgent',\n            icon: <UrgentIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.squash} />,\n            title: (\n                <span>\n                    {t('common:new-order-offers.quick-actions.urgent')}\n                    {bestOffers?.urgent && (\n                        <>\n                            {PRICE_SEPARATOR}\n                            <Money isRound amount={bestOffers.urgent.price} currency={CurrencyEnum.EUR} />\n                        </>\n                    )}\n                </span>\n            ),\n        },\n    ];\n\n    const renderIcon = (actionConfig: QuickActionConfigT): React.ReactNode => {\n        if (isLoading) {\n            return loaderIconNode;\n        }\n\n        if (actionConfig.offer) {\n            return actionConfig.icon;\n        }\n\n        return null;\n    };\n\n    const renderTitle = (actionConfig: QuickActionConfigT): React.ReactNode => {\n        if (!isLoading && !actionConfig.offer) {\n            return null;\n        }\n\n        return actionConfig.title;\n    };\n\n    return (\n        <div className={cs(cx('wrap'), className)}>\n            {actionsConfig.map((actionConfig, index) => {\n                if (!isLoading && !actionConfig.offer) {\n                    return <div className={cx('action')} key={index} />;\n                }\n\n                return (\n                    <div className={cx('action')} key={index}>\n                        <Button\n                            className={cx('button')}\n                            type=\"button\"\n                            isDisabled={actionConfig.offer?.isExpired}\n                            onClick={() => {\n                                if (actionConfig.offer) {\n                                    selectOffer(actionConfig.offer);\n                                }\n                            }}\n                            testSelector={actionConfig.testSelector}\n                            leftIcon={renderIcon(actionConfig)}\n                        >\n                            {renderTitle(actionConfig)}\n                        </Button>\n                    </div>\n                );\n            })}\n        </div>\n    );\n});\n\nexport default QuickActions;\n","// extracted by mini-css-extract-plugin\nexport default {\"footer\":\"AssetFailedActionFooter__footer___dQ7cJ\",\"copy-button\":\"AssetFailedActionFooter__copy-button___hUKXF\",\"fadeIn\":\"AssetFailedActionFooter__fadeIn___h8R8B\",\"blinking\":\"AssetFailedActionFooter__blinking___eOz9f\"};","import * as React from 'react';\nimport SideBarLoader from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLoader/SideBarLoader';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {};\n\nconst UploadLoader: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n\n    return <SideBarLoader message={t('common:documents.upload-loader.message')} />;\n});\n\nexport default UploadLoader;\n","import UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\nimport { StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport RouteIcon from 'common/icons/RouteIcon';\n\nexport const useDistanceRowsFactory = () => {\n    const { t } = useTranslation();\n\n    return React.useMemo(() => {\n        return {\n            totalDistance: (summaryDistanceKm: number | null) => ({\n                icon: <RouteIcon fillColor={StyleGuideColorsEnum.gray} />,\n                name: t('common:entity-details.columns.total-mileage'),\n                value: <UnitTypeCount type={UnitTypeEnum.kilometersAbbreviation} count={summaryDistanceKm} />,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty'), isBold: true },\n                testSelector: 'total-mileage',\n            }),\n            summaryPayloadDistance: (summaryPayloadDistanceKm: number | null) => ({\n                icon: null,\n                name: t('common:entity-details.columns.payload-mileage'),\n                value: <UnitTypeCount type={UnitTypeEnum.kilometersAbbreviation} count={summaryPayloadDistanceKm} />,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty'), isBold: true },\n                testSelector: 'payload-mileage',\n            }),\n            summaryDeadheadDistance: (summaryDeadheadDistanceKm: number | null) => ({\n                icon: null,\n                name: t('common:entity-details.columns.deadhead-mileage'),\n                value: <UnitTypeCount type={UnitTypeEnum.kilometersAbbreviation} count={summaryDeadheadDistanceKm} />,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty'), isBold: true },\n                testSelector: 'deadhead-mileage',\n            }),\n        };\n    }, [t]);\n};\n","import { FieldsEnum, FormValuesT } from './constants';\nimport moment from 'moment';\nimport { DocumentDetailsChangesT } from 'common/store/documents/models';\nimport { FAKE_NO_LIMIT_VALID_TILL_YEAR } from 'common/constants';\n\nconst VALID_TILL_FORMAT = 'YYYY-MM-DD';\n\nconst prepareApproveData = (\n    formValues: FormValuesT,\n    { isShowExpirationDate }: { isShowExpirationDate: boolean },\n): DocumentDetailsChangesT | null => {\n    const rawExpiration = formValues[FieldsEnum.expiration];\n\n    if (!isShowExpirationDate) {\n        return {\n            validTill: moment().add(FAKE_NO_LIMIT_VALID_TILL_YEAR, 'year').format(VALID_TILL_FORMAT),\n        };\n    }\n\n    if (!rawExpiration) {\n        return null;\n    }\n\n    return {\n        validTill: moment(rawExpiration).format(VALID_TILL_FORMAT),\n    };\n};\n\nexport default prepareApproveData;\n","import * as React from 'react';\nimport { RuleT } from 'broker-admin/store/price-settings/rules/models';\nimport PriceRuleTypePill from 'broker-admin/components/pills/PriceRuleTypePill/PriceRuleTypePill';\n\ntype PropsT = {\n    rule: RuleT;\n};\n\nconst TypeCell: React.FC<PropsT> = React.memo((props) => {\n    const { rule } = props;\n\n    return <PriceRuleTypePill ruleType={rule.ruleType} />;\n});\n\nexport default TypeCell;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './FiltersSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport getQueryFilters from './get-query-filters';\nimport getInitialValues from './get-initial-values';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { isDeepEqual } from 'common/utils/deep-equal';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport DictTrailerDropdown from 'common/components/dropdowns/DictTrailerDropdown/DictTrailerDropdown';\nimport Input from 'common/components/Input/Input';\nimport DatePicker, { DatePickerOverlayPositionEnum } from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport { QueryFiltersT } from '../query-models';\nimport { RFQBrokerSourceEnum, RFQShipperSourceEnum } from 'common/utils/api/models';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport PinIcon, { PinIconProps } from 'common/icons/PinIcon';\n\nimport { mergeQueryFilters } from 'common/utils/query';\nimport UserDropdown from 'common/components/dropdowns/UserDropdown/UserDropdown';\nimport SelectedFilters from '../SelectedFilters/SelectedFilters';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport ShippersSuggest from 'broker-admin/components/dropdowns/ShippersSuggest/ShippersSuggest';\n\nimport RFQBrokerSourceMultipleDropdown from 'common/components/dropdowns/RFQBrokerSourceMultipleDropdown/RFQBrokerSourceMultipleDropdown';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    onClose: () => void;\n    queryFilters: QueryFiltersT;\n    setQueryFilters: (queryFilters: QueryFiltersT) => void;\n    isShowShipperFilter?: boolean;\n    isShowSourceFilter?: boolean;\n    isShowExtendedSourceFilter?: boolean;\n};\n\ntype SourceTypeOptionT = { label: string; value: RFQShipperSourceEnum | null };\n\nconst excludedSourcesSet = new Set([RFQBrokerSourceEnum.contractLane]);\n\nconst FiltersSidebarContent: React.FC<PropsT> = (props) => {\n    const {\n        onClose,\n        setQueryFilters,\n        queryFilters,\n        isShowSourceFilter,\n        isShowExtendedSourceFilter,\n        isShowShipperFilter,\n    } = props;\n\n    const { partnerId } = usePartnerContext();\n\n    const { t } = useTranslation();\n\n    const [initialQueryFilters, setInitialQueryFilters] = React.useState<QueryFiltersT>(queryFilters);\n\n    React.useEffect(() => {\n        setInitialQueryFilters(queryFilters);\n    }, [queryFilters]);\n\n    const initialValues = React.useMemo(() => getInitialValues(), []);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialValues,\n        onSubmit: (values, formikHelpers): void => {\n            const newQueryFilters = getQueryFilters(values);\n            const mergedQueryFilters = mergeQueryFilters(initialQueryFilters, newQueryFilters);\n\n            setQueryFilters(mergedQueryFilters);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const isSameValues = React.useMemo(() => {\n        return isDeepEqual(initialValues, formik.values) && isDeepEqual(initialQueryFilters, queryFilters);\n    }, [initialValues, formik.values, initialQueryFilters, queryFilters]);\n\n    const sourceOptions: Array<SourceTypeOptionT> = React.useMemo(\n        () => [\n            {\n                label: t('common:rfqs-page.table.filters.source-type.all'),\n                value: null,\n            },\n            {\n                label: t('common:rfqs-page.table.filters.source-type.imported'),\n                value: RFQShipperSourceEnum.imported,\n            },\n            {\n                label: t('common:rfqs-page.table.filters.source-type.internal'),\n                value: RFQShipperSourceEnum.internal,\n            },\n        ],\n        [t],\n    );\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('form')}>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent title={t('common:rfqs-page.table.filters.title')} onClose={onClose} />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                {isShowShipperFilter && (\n                    <FormikField\n                        name={FieldsEnum.shipperIds}\n                        error={formik.errors[FieldsEnum.shipperIds]}\n                        meta={formik.getFieldMeta(FieldsEnum.shipperIds)}\n                        label={t('common:rfqs-page.table.filters.fields.shipper.value')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <ShippersSuggest\n                                values={formik.values[FieldsEnum.shipperIds]}\n                                hasClearControl\n                                onSelect={(shipperIds, shipperOptions) => {\n                                    const valueChanges: Partial<FormValuesT> = {\n                                        [FieldsEnum.shipperIds]: [],\n                                        [FieldsEnum.shipperNames]: [],\n                                    };\n\n                                    shipperIds.forEach((shipperId, index) => {\n                                        const shipperOption = shipperOptions?.[index];\n                                        if (shipperId) {\n                                            valueChanges[FieldsEnum.shipperIds]?.push(shipperId);\n                                            valueChanges[FieldsEnum.shipperNames]?.push(shipperOption.name || '');\n                                        }\n                                    });\n\n                                    formik.setValues((prevValues) => ({\n                                        ...prevValues,\n                                        ...valueChanges,\n                                    }));\n                                }}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                placeholder={t('common:rfqs-page.table.filters.fields.shipper.placeholder')}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                            />\n                        )}\n                    </FormikField>\n                )}\n                <FormikField\n                    className={cx('field')}\n                    name={FieldsEnum.pickupAddress}\n                    error={formik.errors[FieldsEnum.pickupAddress]}\n                    meta={formik.getFieldMeta(FieldsEnum.pickupAddress)}\n                    label={t('common:rfqs-page.table.filters.fields.pickup-address.value')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <Input\n                            renderLeftIcon={(iconMeta) => <PinIcon {...PinIconProps.getControlProps(iconMeta)} />}\n                            name={FieldsEnum.pickupAddress}\n                            value={formik.values[FieldsEnum.pickupAddress] || ''}\n                            placeholder={t('common:rfqs-page.table.filters.fields.pickup-address.placeholder')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            hasClearControl\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    className={cx('field')}\n                    name={FieldsEnum.dropoffAddress}\n                    error={formik.errors[FieldsEnum.dropoffAddress]}\n                    meta={formik.getFieldMeta(FieldsEnum.dropoffAddress)}\n                    label={t('common:rfqs-page.table.filters.fields.dropoff-address.value')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <Input\n                            renderLeftIcon={(iconMeta) => <PinIcon {...PinIconProps.getControlProps(iconMeta)} />}\n                            name={FieldsEnum.dropoffAddress}\n                            value={formik.values[FieldsEnum.dropoffAddress] || ''}\n                            placeholder={t('common:rfqs-page.table.filters.fields.dropoff-address.placeholder')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            hasClearControl\n                        />\n                    )}\n                </FormikField>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.pickupDates}\n                        error={formik.errors[FieldsEnum.pickupDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.pickupDates)}\n                        label={t('common:rfqs-page.table.filters.fields.pickup-dates.value')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.pickupDates]}\n                                placeholder={t('common:rfqs-page.table.filters.fields.pickup-dates.placeholder')}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.dropoffDates}\n                        error={formik.errors[FieldsEnum.dropoffDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.dropoffDates)}\n                        label={t('common:rfqs-page.table.filters.fields.drop-off-dates.value')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.dropoffDates]}\n                                placeholder={t('common:rfqs-page.table.filters.fields.drop-off-dates.placeholder')}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomRight}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.createDates}\n                        error={formik.errors[FieldsEnum.createDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.createDates)}\n                        label={t('common:rfqs-page.table.filters.fields.create-dates.value')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.createDates]}\n                                placeholder={t('common:rfqs-page.table.filters.fields.create-dates.placeholder')}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--created')}\n                        name={FieldsEnum.createdById}\n                        error={formik.errors[FieldsEnum.createdById]}\n                        meta={formik.getFieldMeta(FieldsEnum.createdById)}\n                        label={t('common:rfqs-page.table.filters.fields.created-by.value')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <UserDropdown\n                                value={formik.values[FieldsEnum.createdById]}\n                                onChange={(createdById, createdByName) => {\n                                    formik.setValues((prevValues) => {\n                                        return {\n                                            ...prevValues,\n                                            [FieldsEnum.createdByName]: createdByName || null,\n                                            [FieldsEnum.createdById]: createdById,\n                                        };\n                                    });\n                                }}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                companyId={partnerId}\n                                placeholder={t('common:rfqs-page.table.filters.fields.created-by.placeholder')}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--trailer-type')}\n                        name={FieldsEnum.dictTrailerId}\n                        error={formik.errors[FieldsEnum.dictTrailerId]}\n                        meta={formik.getFieldMeta(FieldsEnum.dictTrailerId)}\n                        label={t('common:rfqs-page.table.filters.fields.trailer-type.value')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DictTrailerDropdown\n                                placeholder={t('common:rfqs-page.table.filters.fields.trailer-type.placeholder')}\n                                value={formik.values[FieldsEnum.dictTrailerId]}\n                                onChange={props.onChange}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    {isShowSourceFilter && (\n                        <FormikField\n                            className={cx('field', 'field--source')}\n                            name={FieldsEnum.source}\n                            error={formik.errors[FieldsEnum.source]}\n                            meta={formik.getFieldMeta(FieldsEnum.source)}\n                            label={t('common:rfqs-page.table.filters.fields.source.value')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <DropdownInput<SourceTypeOptionT, SourceTypeOptionT['value']>\n                                    selectedValue={formik.values[FieldsEnum.source]}\n                                    placeholder=\"\"\n                                    options={sourceOptions}\n                                    onSelect={props.onChange}\n                                    renderOption={(option: SourceTypeOptionT | null | undefined, placeholder) => {\n                                        if (!option) {\n                                            return <span>{placeholder}</span>;\n                                        }\n\n                                        return <span>{option.label}</span>;\n                                    }}\n                                    getOptionValue={(option) => option.value}\n                                    overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                />\n                            )}\n                        </FormikField>\n                    )}\n                    {isShowExtendedSourceFilter && (\n                        <FormikField\n                            className={cx('field', 'field--source')}\n                            name={FieldsEnum.extendedSource}\n                            error={formik.errors[FieldsEnum.extendedSource]}\n                            meta={formik.getFieldMeta(FieldsEnum.extendedSource)}\n                            label={t('common:rfqs-page.table.filters.fields.source.value')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <RFQBrokerSourceMultipleDropdown\n                                    values={formik.values[FieldsEnum.extendedSource]}\n                                    placeholder={t('common:rfqs-page.table.filters.fields.source.placeholder')}\n                                    onSelect={props.onChange}\n                                    hasWarning={props.hasWarning}\n                                    hasError={props.hasError}\n                                    overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasClearControl\n                                    excludedSourcesSet={excludedSourcesSet}\n                                />\n                            )}\n                        </FormikField>\n                    )}\n                </FieldGroup>\n            </SideBarLayout>\n            <FooterSideBarLayout hasPaddings>\n                <div className={cx('selected-filters')}>\n                    <SelectedFilters queryFilters={initialQueryFilters} setQueryFilters={setInitialQueryFilters} />\n                </div>\n                <Button\n                    theme={ButtonThemeEnum.primary}\n                    isDisabled={isSameValues}\n                    isFullWidth\n                    isCenterContent\n                    type=\"submit\"\n                >\n                    {t('common:rfqs-page.table.filters.submit')}\n                </Button>\n            </FooterSideBarLayout>\n        </form>\n    );\n};\n\nexport default FiltersSidebarContent;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { FETCH_INVOICES_PAGE_REQUEST, FetchInvoicesPageActionT } from './types';\nimport { fetchInvoicesPageBegin, fetchInvoicesPageError, fetchInvoicesPageSuccess, resetInvoices } from './actions';\nimport { selectInvoicesPages, selectInvoicesQuery } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { checkIsSameQuery, checkShouldEmitChangePage } from 'common/utils/pagination/utils';\nimport { invoicesPaginationChannel } from './channels';\nimport { PageResponseT } from 'common/utils/pagination/models';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { BrokerInvoiceT } from 'broker-admin/store/invoices/models';\nimport { DepreactedPagingStateT } from 'shipper/store/invoices/models';\n\nfunction* fetchInvoicesSaga(action: FetchInvoicesPageActionT): WrapGeneratorT<void> {\n    const { pageNumber, query: rawQuery, options } = action;\n\n    const query: typeof rawQuery = {\n        ...rawQuery,\n    };\n\n    const prevQuery: ReturnType<typeof selectInvoicesQuery> = yield select(selectInvoicesQuery);\n    const pages: ReturnType<typeof selectInvoicesPages> = yield select(selectInvoicesPages);\n    const isSameQuery = checkIsSameQuery(query, prevQuery);\n\n    const isNeedRequest = checkNeedRequest(pages[pageNumber]?.requestStatus, options);\n    if (isSameQuery && !isNeedRequest) {\n        return;\n    }\n    if (!isSameQuery) {\n        yield put(resetInvoices({ savingPageNumber: pageNumber }));\n    }\n\n    yield put(fetchInvoicesPageBegin(query, pageNumber));\n    const [error, response]: ReturnApiT<typeof brokerTranziitApi.fetchBrokerInvoicesPage> =\n        yield brokerTranziitApi.fetchBrokerInvoicesPage({\n            ...query,\n            page: pageNumber,\n        });\n\n    if (error) {\n        yield put(fetchInvoicesPageError(query, pageNumber, error));\n        return;\n    }\n\n    const items = response?.data || [];\n\n    const preparedResponse: PageResponseT<BrokerInvoiceT> = {\n        content: items.map((item): BrokerInvoiceT => {\n            return {\n                id: String(Math.random() * 10000),\n                ...item,\n            };\n        }),\n        totalPages: 1,\n        totalElements: items?.length || 0,\n    };\n\n    const pagingTokens: DepreactedPagingStateT = {\n        hasMore: response?.hasMore || false,\n        startingAfter: response?.startingAfter || null,\n        endingBefore: response?.endingBefore || null,\n    };\n\n    yield put(fetchInvoicesPageSuccess(query, pageNumber, preparedResponse, pagingTokens));\n\n    checkShouldEmitChangePage(pageNumber, preparedResponse, invoicesPaginationChannel);\n}\n\nfunction* invoicesSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_INVOICES_PAGE_REQUEST, fetchInvoicesSaga);\n}\n\nexport { invoicesSaga };\n","import * as React from 'react';\nimport { MapPinThemeEnum, MapPointPropsT } from 'common/components/maps/MapPin/MapPin';\nimport MapStackClusterPin from 'common/components/maps/MapStackClusterPin/MapStackClusterPin';\nimport { PointGeoJsonPropertiesT } from '../models';\nimport TrailerIcon from 'common/icons/TrailerIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport TruckIcon from 'common/icons/TruckIcon';\nimport { StopTypeEnum } from 'common/utils/api/models';\nimport LinkDropOffIcon, { getLinkDropOffIconProps } from 'common/icons/LinkDropOffIcon';\nimport TruckDropOffIcon, { getTruckDropOffIconProps } from 'common/icons/TruckDropOffIcon';\nimport TrailerDropOffIcon, { getTrailerDropOffIconProps } from 'common/icons/TrailerDropOffIcon';\nimport LinkPickUpIcon, { getLinkPickUpIconProps } from 'common/icons/LinkPickUpIcon';\nimport TruckPickUpIcon, { getTruckPickUpIconProps } from 'common/icons/TruckPickUpIcon';\nimport TrailerPickUpIcon, { getTrailerPickUpIconProps } from 'common/icons/TrailerPickUpIcon';\nimport WaypointNumberPinContent from 'common/components/maps/pins/content/WaypointNumberPinContent/WaypointNumberPinContent';\nimport BoatIcon from 'common/icons/BoatIcon';\n\ntype PropsT = {\n    className?: string;\n    lat?: number | undefined;\n    lng?: number | undefined;\n    clusterId: number;\n    onClusterClick: (clusterId: number) => void;\n    clusterProperties: Array<PointGeoJsonPropertiesT>;\n    withoutArrow?: boolean;\n};\n\nconst PointStackClusterPin: React.FC<PropsT> = React.memo((props) => {\n    const { className, lat, lng, onClusterClick, clusterId, clusterProperties, withoutArrow } = props;\n\n    const pointProps: Array<Partial<MapPointPropsT>> = [];\n\n    clusterProperties.forEach((pointProperties: PointGeoJsonPropertiesT) => {\n        if (pointProperties.type === 'trailer-last-point') {\n            pointProps.push({\n                theme: MapPinThemeEnum.brandDark,\n                children: (\n                    <TrailerIcon\n                        fillColor={StyleGuideColorsEnum.brandDark}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        size={DEFAULT_ICON_SIZE}\n                    />\n                ),\n            });\n        }\n\n        if (pointProperties.type === 'truck-last-point') {\n            pointProps.push({\n                theme: MapPinThemeEnum.brandDark,\n                children: (\n                    <TruckIcon\n                        fillColor={StyleGuideColorsEnum.brandDark}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        size={DEFAULT_ICON_SIZE}\n                    />\n                ),\n            });\n        }\n\n        if (pointProperties.type === 'waypoint-point') {\n            const { waypoint } = pointProperties;\n\n            const isVisited = !!waypoint?.driverLeftTimeStamp;\n\n            switch (waypoint.type) {\n                case StopTypeEnum.pickupTruck: {\n                    pointProps.push({\n                        theme: isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal,\n                        children: <TruckPickUpIcon {...getTruckPickUpIconProps('assignment-normal')} />,\n                    });\n                    break;\n                }\n                case StopTypeEnum.pickupTrailer: {\n                    pointProps.push({\n                        theme: isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal,\n                        children: <TrailerPickUpIcon {...getTrailerPickUpIconProps('assignment-normal')} />,\n                    });\n                    break;\n                }\n                case StopTypeEnum.pickupRoadTrain: {\n                    pointProps.push({\n                        theme: isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal,\n                        children: <LinkPickUpIcon {...getLinkPickUpIconProps('assignment-normal')} />,\n                    });\n                    break;\n                }\n                case StopTypeEnum.ferryDisembark:\n                case StopTypeEnum.ferryOnboard: {\n                    pointProps.push({\n                        theme: isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal,\n                        children: (\n                            <BoatIcon\n                                size={DEFAULT_ICON_SIZE}\n                                fillColor={StyleGuideColorsEnum.brandDark}\n                                strokeColor={StyleGuideColorsEnum.white}\n                            />\n                        ),\n                    });\n                    break;\n                }\n                case StopTypeEnum.driveThrough:\n                case StopTypeEnum.dropAndHook:\n                case StopTypeEnum.pickupDeliveryShipment: {\n                    let theme = MapPinThemeEnum.charcoal;\n\n                    if (waypoint.type === StopTypeEnum.driveThrough) {\n                        theme = MapPinThemeEnum.gray;\n                    }\n\n                    if (isVisited) {\n                        theme = MapPinThemeEnum.brandDark;\n                    }\n\n                    pointProps.push({\n                        theme,\n                        hasPaddings: false,\n                        children: (\n                            <WaypointNumberPinContent withPaddings key={`route-point-${waypoint.id}`}>\n                                {(waypoint.index || 0) + 1}\n                            </WaypointNumberPinContent>\n                        ),\n                    });\n                    break;\n                }\n                case StopTypeEnum.dropTrailer: {\n                    pointProps.push({\n                        theme: isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal,\n                        children: <TrailerDropOffIcon {...getTrailerDropOffIconProps('assignment-normal')} />,\n                    });\n                    break;\n                }\n                case StopTypeEnum.dropTruck: {\n                    pointProps.push({\n                        theme: isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal,\n                        children: <TruckDropOffIcon {...getTruckDropOffIconProps('assignment-normal')} />,\n                    });\n                    break;\n                }\n                case StopTypeEnum.dropRoadTrain: {\n                    pointProps.push({\n                        theme: isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal,\n                        children: <LinkDropOffIcon {...getLinkDropOffIconProps('assignment-normal')} />,\n                    });\n                    break;\n                }\n                default: {\n                    break;\n                }\n            }\n        }\n    });\n\n    if (!pointProps?.length) {\n        return null;\n    }\n\n    return (\n        <MapStackClusterPin\n            className={className}\n            lat={lat}\n            lng={lng}\n            pointProps={pointProps}\n            clusterId={clusterId}\n            onClusterClick={onClusterClick}\n            withoutArrow={withoutArrow}\n        />\n    );\n});\n\nexport default PointStackClusterPin;\n","import React from 'react';\nimport unset from 'lodash/unset';\n\nexport type UseAsyncFormErrorsT<AsyncErrorsT = {}> = {\n    asyncFormErrors: AsyncErrorsT;\n    resetAsyncFormErrors: (fieldName: string) => void;\n};\n\nconst useAsyncFormErrors = <T extends {}>(asyncErrors: T): UseAsyncFormErrorsT<T> => {\n    const [asyncFormErrors, setAsyncFormErrors] = React.useState<T>(asyncErrors);\n\n    React.useEffect(() => {\n        setAsyncFormErrors(asyncErrors);\n    }, [asyncErrors]);\n\n    const resetAsyncFormErrors = React.useCallback((fieldName: string) => {\n        setAsyncFormErrors((prevAsyncFormErrors) => {\n            const newAsyncFormErrors = { ...prevAsyncFormErrors };\n\n            // for remove nested fields\n            unset(newAsyncFormErrors, fieldName);\n\n            return newAsyncFormErrors;\n        });\n    }, []);\n\n    return {\n        asyncFormErrors,\n        resetAsyncFormErrors,\n    };\n};\n\nexport default useAsyncFormErrors;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { RemoteFile } from 'design-system/components/FilePickerInput/models';\nimport { ShipperContractDetailsT } from 'common/store/shipper-contract-details/models';\nimport moment from 'moment/moment';\nimport { DownloadDataT } from './models';\n\nconst getInitialValues = (\n    partnerId: PartnerIdT,\n    shipperContractDetails: ShipperContractDetailsT | null,\n): FormValuesT => {\n    return {\n        [FieldsEnum.name]: shipperContractDetails?.name || '',\n        [FieldsEnum.number]: shipperContractDetails?.number || '',\n\n        [FieldsEnum.activateDate]: shipperContractDetails?.validFrom\n            ? moment(shipperContractDetails?.validFrom).toDate()\n            : null,\n        [FieldsEnum.validTillDate]: shipperContractDetails?.validTill\n            ? moment(shipperContractDetails?.validTill).toDate()\n            : null,\n\n        [FieldsEnum.file]: new RemoteFile<DownloadDataT>({\n            name: shipperContractDetails?.fileName || '',\n            downloadData: {\n                shipperContractId: shipperContractDetails?.id || '-',\n                partnerId,\n            },\n        }),\n    };\n};\n\nexport default getInitialValues;\n","export enum FieldsEnum {\n    dateRange = 'date-range',\n    dropoffLocation = 'dropoff-location',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.dateRange]: DateRangeT | null;\n    [FieldsEnum.dropoffLocation]: LocationT | null;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import { TFunction } from 'i18next';\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkMaxValue, checkMinValue, checkNotEmpty } from 'common/utils/form-validators';\n\nconst REQUIRED_FIELDS = [\n    FieldsEnum.expiration,\n    FieldsEnum.number,\n    FieldsEnum.name,\n    FieldsEnum.truckRateMode,\n    FieldsEnum.truckRate,\n    FieldsEnum.tiltRate,\n    FieldsEnum.boxRate,\n    FieldsEnum.tiltExpectedMileage,\n    FieldsEnum.boxExpectedMileage,\n    FieldsEnum.truckExpectedMileage,\n] as const;\n\nconst MILEAGE_FIELDS = [\n    FieldsEnum.tiltExpectedMileage,\n    FieldsEnum.boxExpectedMileage,\n    FieldsEnum.truckExpectedMileage,\n] as const;\n\nconst RATE_FIELDS = [FieldsEnum.truckRate, FieldsEnum.tiltRate, FieldsEnum.boxRate] as const;\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n        ...checkMinValue(t, RATE_FIELDS, values, 0),\n        ...checkMaxValue(t, RATE_FIELDS, values, 2),\n        ...checkMinValue(t, MILEAGE_FIELDS, values, 0),\n        ...checkMaxValue(t, MILEAGE_FIELDS, values, 30000),\n    };\n    return errors;\n};\n\nexport default validate;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\nimport styles from './DeadheadCreationReceipt.scss';\nimport { DeadheadPreviewContextResponseT } from 'broker-admin/store/deadhead-creation/models';\nimport { useUtilizationRowsFactory } from 'broker-admin/components/tour-receipt-details/hooks/utilization-rows-factory';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport isNumber from 'lodash/isNumber';\nimport ButtonGroup from 'design-system/components/ButtonGroup/ButtonGroup';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { TourTypeTabsEnum, AssetTypeTabsEnum } from './models';\nimport TourTypeTabsLayout, {\n    TourTypeTabConfigT,\n} from 'broker-admin/components/tour-receipt-details/TourTypeTabsLayout/TourTypeTabsLayout';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport ControlLoaderLabel from 'common/components/ControlLoaderLabel/ControlLoaderLabel';\nimport MileageInfoTable from 'broker-admin/components/tour-receipt-details/MileageInfoTable/MileageInfoTable';\nimport ReceiptPriceDetails from 'broker-admin/components/tour-receipt-details/ReceiptPriceDetails/ReceiptPriceDetails';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\n\nconst ASSET_TYPE_TAB_I18N_MAP: Record<AssetTypeTabsEnum, string> = {\n    [AssetTypeTabsEnum.train]: 'deadhead-creation.receipt.asset-type-tabs.train',\n    [AssetTypeTabsEnum.truck]: 'deadhead-creation.receipt.asset-type-tabs.truck',\n    [AssetTypeTabsEnum.trailer]: 'deadhead-creation.receipt.asset-type-tabs.trailer',\n};\n\ntype PropsT = {\n    className?: string;\n    contextPreview: DeadheadPreviewContextResponseT | null;\n    contextPreviewRequestStatus: RequestStatusT;\n    contextRequestStatus: RequestStatusT;\n    isNotActual?: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nconst DeadheadCreationReceipt: React.FC<PropsT> = React.memo((props) => {\n    const { className, contextPreview, contextPreviewRequestStatus, contextRequestStatus } = props;\n\n    const isNotActual = props.isNotActual || contextPreviewRequestStatus.loading || contextRequestStatus.loading;\n\n    const { t } = useTranslation();\n\n    const [selectedTourTypeTab, setSelectedTourTypeTab] = React.useState<TourTypeTabsEnum>(TourTypeTabsEnum.deadhead);\n\n    const [selectedAssetTypeTab, setSelectedAssetTypeTab] = React.useState<AssetTypeTabsEnum>(AssetTypeTabsEnum.train);\n\n    const availableAssetTypeTabs = React.useMemo((): Array<AssetTypeTabsEnum> => {\n        const tabs: Array<AssetTypeTabsEnum> = [];\n\n        if (\n            selectedTourTypeTab === TourTypeTabsEnum.deadhead &&\n            contextPreview?.calculatedSumCost &&\n            contextPreview?.calculatedTruckCost &&\n            contextPreview?.calculatedTrailerCost\n        ) {\n            tabs.push(AssetTypeTabsEnum.train);\n        }\n\n        const isNextTourAssetsLink =\n            contextPreview?.truckNextTransportationOrderInfo?.id &&\n            contextPreview?.trailerNextTransportationOrderInfo?.id &&\n            contextPreview?.truckNextTransportationOrderInfo?.id ===\n                contextPreview?.trailerNextTransportationOrderInfo?.id;\n        if (selectedTourTypeTab === TourTypeTabsEnum.nextTour && isNextTourAssetsLink) {\n            tabs.push(AssetTypeTabsEnum.train);\n        }\n\n        if (\n            selectedTourTypeTab === TourTypeTabsEnum.nextTour &&\n            !isNextTourAssetsLink &&\n            contextPreview?.truckNextTourNewCostDetails\n        ) {\n            tabs.push(AssetTypeTabsEnum.truck);\n        }\n\n        if (\n            selectedTourTypeTab === TourTypeTabsEnum.nextTour &&\n            !isNextTourAssetsLink &&\n            contextPreview?.trailerNextTourNewCostDetails\n        ) {\n            tabs.push(AssetTypeTabsEnum.trailer);\n        }\n\n        if (selectedTourTypeTab === TourTypeTabsEnum.deadhead && contextPreview?.calculatedTruckCost) {\n            tabs.push(AssetTypeTabsEnum.truck);\n        }\n\n        if (selectedTourTypeTab === TourTypeTabsEnum.deadhead && contextPreview?.calculatedTrailerCost) {\n            tabs.push(AssetTypeTabsEnum.trailer);\n        }\n\n        return tabs;\n    }, [selectedTourTypeTab, contextPreview]);\n\n    React.useEffect(() => {\n        setSelectedAssetTypeTab((prevAssetTypeTab) => {\n            if (!availableAssetTypeTabs.includes(prevAssetTypeTab)) {\n                return availableAssetTypeTabs[0] || null;\n            }\n\n            return prevAssetTypeTab;\n        });\n    }, [availableAssetTypeTabs]);\n\n    const utilizationRowsFactory = useUtilizationRowsFactory();\n\n    const tabsConfig: Array<TourTypeTabConfigT<TourTypeTabsEnum>> = React.useMemo(() => {\n        const config: Array<TourTypeTabConfigT<TourTypeTabsEnum>> = [\n            {\n                type: TourTypeTabsEnum.deadhead,\n                title: t('deadhead-creation.receipt.tout-type-tabs.new-deadhead'),\n                rows: [\n                    null,\n                    {\n                        moneyDiffProps: {\n                            value: contextPreview?.deadheadSumCost?.totalCost,\n                            baseValue: contextPreview?.deadheadSumCost?.totalCost,\n                        },\n                        coloredDiffProps: {\n                            isNotActual,\n                        },\n                        title: t('deadhead-creation.receipt.tout-type-tabs.actual-cost'),\n                        cost: contextPreview?.deadheadSumCost?.totalCost,\n                    },\n                ],\n            },\n        ];\n\n        if (contextPreview?.calculatedSumCost) {\n            config.push({\n                type: TourTypeTabsEnum.nextTour,\n                title: t('deadhead-creation.receipt.tout-type-tabs.next-tours'),\n                titleTooltip: t('deadhead-creation.receipt.tout-type-tabs.next-tours-tooltip-note'),\n                rows: [\n                    {\n                        moneyDiffProps: {\n                            value: contextPreview.calculatedSumCost.totalCost,\n                            baseValue: contextPreview.calculatedSumCost.totalCost,\n                        },\n                        coloredDiffProps: {\n                            isNotActual,\n                        },\n                        title: t('deadhead-creation.receipt.tout-type-tabs.planned-cost'),\n                        cost: contextPreview.calculatedSumCost.totalCost,\n                    },\n                    {\n                        moneyDiffProps: {\n                            value: contextPreview.calculatedSumCost.totalCost,\n                            baseValue: contextPreview.calculatedSumCost.totalCost,\n                        },\n                        coloredDiffProps: {\n                            isNotActual,\n                        },\n                        title: t('deadhead-creation.receipt.tout-type-tabs.updated-cost'),\n                        cost: contextPreview.calculatedSumCost.totalCost,\n                    },\n                ],\n            });\n        }\n\n        return config;\n    }, [contextPreview, isNotActual, t]);\n\n    const utilizationDetails: Array<InfoTableRowT> = React.useMemo(() => {\n        const rows: Array<InfoTableRowT> = [];\n\n        if (!contextPreview) {\n            return rows;\n        }\n\n        const isSameCarrier =\n            contextPreview.truckCarrier &&\n            contextPreview.trailerCarrier &&\n            contextPreview.truckCarrier?.id === contextPreview.trailerCarrier?.id;\n\n        if (isSameCarrier && contextPreview.truckCarrier) {\n            rows.push({\n                ...utilizationRowsFactory.trainCarrier({\n                    carrierCountryCode: contextPreview.truckCarrier.country,\n                    carrierName: contextPreview.truckCarrier.name || '',\n                    utilizationAfter: contextPreview.truckCarrierUtilizationAfter,\n                    utilizationBefore: contextPreview.truckCarrierUtilizationBefore,\n                }),\n            });\n        }\n\n        if (!isSameCarrier && contextPreview.truckCarrier) {\n            rows.push({\n                ...utilizationRowsFactory.truckCarrier({\n                    carrierCountryCode: contextPreview.truckCarrier.country,\n                    carrierName: contextPreview.truckCarrier.name || '',\n                    utilizationAfter: contextPreview.truckCarrierUtilizationAfter,\n                    utilizationBefore: contextPreview.truckCarrierUtilizationBefore,\n                }),\n            });\n        }\n\n        if (!isSameCarrier && contextPreview.trailerCarrier) {\n            rows.push({\n                ...utilizationRowsFactory.trailerCarrier({\n                    carrierCountryCode: contextPreview.trailerCarrier.country,\n                    carrierName: contextPreview.trailerCarrier.name || '',\n                    utilizationAfter: contextPreview.trailerCarrierUtilizationAfter,\n                    utilizationBefore: contextPreview.trailerCarrierUtilizationBefore,\n                }),\n            });\n        }\n\n        if (isNumber(contextPreview.truckUtilizationBefore)) {\n            rows.push({\n                ...utilizationRowsFactory.truck({\n                    model: contextPreview.truckCarrier?.name || '',\n                    plateNumber: contextPreview.truckCarrier?.name || '',\n                    utilizationBefore: contextPreview.truckUtilizationBefore,\n                    utilizationAfter: contextPreview.truckUtilizationAfter,\n                }),\n            });\n        }\n\n        if (isNumber(contextPreview.trailerUtilizationBefore)) {\n            rows.push({\n                ...utilizationRowsFactory.trailer({\n                    model: contextPreview.trailerCarrier?.name || '',\n                    plateNumber: contextPreview.trailerCarrier?.name || '',\n                    utilizationBefore: contextPreview.trailerUtilizationBefore,\n                    utilizationAfter: contextPreview.trailerUtilizationAfter,\n                }),\n            });\n        }\n\n        return rows;\n    }, [contextPreview, utilizationRowsFactory]);\n\n    return (\n        <div className={cs(cx('wrap'), className)}>\n            <TourTypeTabsLayout\n                selectedType={selectedTourTypeTab}\n                onSelectType={setSelectedTourTypeTab}\n                className={cx('tour-type-tabs')}\n                tabsConfig={tabsConfig}\n            />\n            <InfoTable shouldRenderIcons rows={utilizationDetails} className={cx('table', 'table--utilization')} />\n            <ButtonGroup className={cx('asset-type-tabs')}>\n                {availableAssetTypeTabs.map((assetTypeTab) => {\n                    const isSelected = assetTypeTab === selectedAssetTypeTab;\n\n                    return (\n                        <Button\n                            key={assetTypeTab}\n                            theme={ButtonThemeEnum.transparent}\n                            testSelector={assetTypeTab}\n                            isToggled={isSelected}\n                            onClick={() => {\n                                setSelectedAssetTypeTab(assetTypeTab);\n                            }}\n                        >\n                            {t(ASSET_TYPE_TAB_I18N_MAP[assetTypeTab])}\n                        </Button>\n                    );\n                })}\n            </ButtonGroup>\n            {selectedAssetTypeTab === AssetTypeTabsEnum.train && selectedTourTypeTab === TourTypeTabsEnum.deadhead && (\n                <ReceiptPriceDetails\n                    label={t('deadhead-creation.receipt.costs-type.train')}\n                    className={cx('receipt')}\n                    costs={contextPreview?.calculatedSumCost}\n                />\n            )}\n            {selectedAssetTypeTab === AssetTypeTabsEnum.truck && selectedTourTypeTab === TourTypeTabsEnum.deadhead && (\n                <ReceiptPriceDetails\n                    label={t('deadhead-creation.receipt.costs-type.truck')}\n                    className={cx('receipt')}\n                    costs={contextPreview?.calculatedTruckCost}\n                />\n            )}\n            {selectedAssetTypeTab === AssetTypeTabsEnum.trailer &&\n                selectedTourTypeTab === TourTypeTabsEnum.deadhead && (\n                    <ReceiptPriceDetails\n                        label={t('deadhead-creation.receipt.costs-type.trailer')}\n                        className={cx('receipt')}\n                        costs={contextPreview?.calculatedTrailerCost}\n                        isHideFuelPrice\n                    />\n                )}\n            {selectedAssetTypeTab === AssetTypeTabsEnum.truck && selectedTourTypeTab === TourTypeTabsEnum.nextTour && (\n                <ReceiptPriceDetails\n                    label={\n                        contextPreview?.truckCarrier && contextPreview?.truckNextTransportationOrderInfo ? (\n                            <Link\n                                target=\"_blank\"\n                                theme={LinkThemeEnum.boldBrandDark}\n                                to={urlFactory.partnerTransportOrderDetails(\n                                    PartnerTypeEnum.carrier,\n                                    contextPreview.truckCarrier.id,\n                                    contextPreview.truckNextTransportationOrderInfo.id,\n                                )}\n                            >\n                                {t('deadhead-creation.receipt.costs-type.transport-order', {\n                                    transportOrderNumber: contextPreview?.truckNextTransportationOrderInfo?.number,\n                                })}\n                            </Link>\n                        ) : null\n                    }\n                    className={cx('receipt')}\n                    costs={contextPreview?.truckNextTourNewCostDetails}\n                    prevCosts={contextPreview?.truckNextTourOldCostDetails}\n                />\n            )}\n            {selectedAssetTypeTab === AssetTypeTabsEnum.trailer &&\n                selectedTourTypeTab === TourTypeTabsEnum.nextTour && (\n                    <ReceiptPriceDetails\n                        label={\n                            contextPreview?.trailerCarrier && contextPreview?.trailerNextTransportationOrderInfo ? (\n                                <Link\n                                    target=\"_blank\"\n                                    theme={LinkThemeEnum.boldBrandDark}\n                                    to={urlFactory.partnerTransportOrderDetails(\n                                        PartnerTypeEnum.carrier,\n                                        contextPreview?.trailerCarrier?.id,\n                                        contextPreview?.trailerNextTransportationOrderInfo?.id,\n                                    )}\n                                >\n                                    {t('deadhead-creation.receipt.costs-type.transport-order', {\n                                        transportOrderNumber:\n                                            contextPreview?.trailerNextTransportationOrderInfo?.number,\n                                    })}\n                                </Link>\n                            ) : null\n                        }\n                        className={cx('receipt')}\n                        costs={contextPreview?.trailerNextTourNewCostDetails}\n                        prevCosts={contextPreview?.trailerNextTourOldCostDetails}\n                    />\n                )}\n            {selectedAssetTypeTab === AssetTypeTabsEnum.train && selectedTourTypeTab === TourTypeTabsEnum.nextTour && (\n                <ReceiptPriceDetails\n                    label={\n                        contextPreview?.truckCarrier && contextPreview?.truckNextTransportationOrderInfo ? (\n                            <Link\n                                target=\"_blank\"\n                                theme={LinkThemeEnum.boldBrandDark}\n                                to={urlFactory.partnerTransportOrderDetails(\n                                    PartnerTypeEnum.carrier,\n                                    contextPreview.truckCarrier.id,\n                                    contextPreview.truckNextTransportationOrderInfo.id,\n                                )}\n                            >\n                                {t('deadhead-creation.receipt.costs-type.transport-order', {\n                                    transportOrderNumber: contextPreview?.truckNextTransportationOrderInfo?.number,\n                                })}\n                            </Link>\n                        ) : null\n                    }\n                    className={cx('receipt')}\n                    costs={contextPreview?.truckNextTourNewCostDetails}\n                    prevCosts={contextPreview?.truckNextTourOldCostDetails}\n                />\n            )}\n            {selectedAssetTypeTab === AssetTypeTabsEnum.train && (\n                <MileageInfoTable\n                    totalDistance={contextPreview?.calculatedSumCost?.distances?.totalDistance || null}\n                    payloadDistance={contextPreview?.calculatedSumCost?.payload?.distances || null}\n                    deadheadDistance={contextPreview?.calculatedSumCost?.deadhead?.distances || null}\n                    isNotActual={isNotActual}\n                />\n            )}\n            {selectedAssetTypeTab === AssetTypeTabsEnum.truck && (\n                <MileageInfoTable\n                    totalDistance={contextPreview?.calculatedTruckCost?.distances?.totalDistance || null}\n                    payloadDistance={contextPreview?.calculatedTruckCost?.payload?.distances || null}\n                    deadheadDistance={contextPreview?.calculatedTruckCost?.deadhead?.distances || null}\n                    isNotActual={isNotActual}\n                />\n            )}\n            {selectedAssetTypeTab === AssetTypeTabsEnum.trailer && (\n                <MileageInfoTable\n                    totalDistance={contextPreview?.calculatedTrailerCost?.distances?.totalDistance || null}\n                    payloadDistance={contextPreview?.calculatedTrailerCost?.payload?.distances || null}\n                    deadheadDistance={contextPreview?.calculatedTrailerCost?.deadhead?.distances || null}\n                    isNotActual={isNotActual}\n                />\n            )}\n            {(contextPreviewRequestStatus.loading ||\n                contextPreviewRequestStatus.error ||\n                contextRequestStatus.loading ||\n                contextRequestStatus.error) && (\n                <>\n                    <div className={cx('calculation__overlay')} />\n                    {(contextPreviewRequestStatus.loading || contextRequestStatus.loading) && (\n                        <div className={cx('calculation__loader')}>\n                            <ControlLoaderLabel isInvert>\n                                {t(\n                                    !contextPreview\n                                        ? 'deadhead-creation.receipt.loader.calculating'\n                                        : 'deadhead-creation.receipt.loader.re-calculating',\n                                )}\n                            </ControlLoaderLabel>\n                        </div>\n                    )}\n                </>\n            )}\n        </div>\n    );\n});\n\nexport default DeadheadCreationReceipt;\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const carrierContractsRefreshChannel = new ViewEventChannel<{}>();\n","// extracted by mini-css-extract-plugin\nexport default {\"count\":\"NotificationsBarTrigger__count___Vk22k\",\"inner\":\"NotificationsBarTrigger__inner___Qp7Lc\",\"button-content\":\"NotificationsBarTrigger__button-content___FjlV5\",\"overlay\":\"NotificationsBarTrigger__overlay___E3o3Q\",\"header\":\"NotificationsBarTrigger__header___QfQPf\",\"header-count\":\"NotificationsBarTrigger__header-count___EPNND\",\"fadeIn\":\"NotificationsBarTrigger__fadeIn___ObYVY\",\"blinking\":\"NotificationsBarTrigger__blinking___EVeCD\"};","import * as React from 'react';\nimport { RFQT } from 'common/store/rfqs/models';\nimport RFQStatusPill from 'common/components/status-pill/RFQStatusPill/RFQStatusPill';\n\ntype PropsT = {\n    rfq: RFQT;\n};\n\nconst StatusCell: React.FC<PropsT> = React.memo((props) => {\n    const { rfq } = props;\n\n    return <RFQStatusPill isSymmetrical status={rfq?.status} />;\n});\n\nexport default StatusCell;\n","import { RFQDetailsT, RFQPriceOfferT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport const FETCH_RFQ_DETAILS_REQUEST = 'common/rfq-details/FETCH_RFQ_DETAILS_REQUEST';\nexport const FETCH_RFQ_DETAILS_REQUEST_BEGIN = 'common/rfq-details/FETCH_RFQ_DETAILS_REQUEST_BEGIN';\nexport const FETCH_RFQ_DETAILS_REQUEST_ERROR = 'common/rfq-details/FETCH_RFQ_DETAILS_REQUEST_ERROR';\nexport const FETCH_RFQ_DETAILS_REQUEST_SUCCESS = 'common/rfq-details/FETCH_RFQ_DETAILS_REQUEST_SUCCESS';\n\nexport type RFQDetailsStateT = {\n    details: RFQDetailsT | null;\n    suggestedOffer: RFQPriceOfferT | null;\n    requestStatus: RequestStatusT;\n};\n\nexport type RFQDetailsByIdStateT = Record<RFQIdT, RFQDetailsStateT>;\n\nexport type FetchRFQDetailsRequestActionT = {\n    type: typeof FETCH_RFQ_DETAILS_REQUEST;\n    id: RFQIdT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchRFQDetailsRequestBeginActionT = {\n    type: typeof FETCH_RFQ_DETAILS_REQUEST_BEGIN;\n    id: RFQIdT;\n};\n\nexport type FetchRFQDetailsRequestErrorActionT = {\n    type: typeof FETCH_RFQ_DETAILS_REQUEST_ERROR;\n    error: Error;\n    id: RFQIdT;\n};\n\nexport type FetchRFQDetailsRequestSuccessActionT = {\n    type: typeof FETCH_RFQ_DETAILS_REQUEST_SUCCESS;\n    details: RFQDetailsT | null;\n    suggestedOffer: RFQPriceOfferT | null;\n    id: RFQIdT;\n};\n\nexport type RFQDetailsActionT =\n    | FetchRFQDetailsRequestActionT\n    | FetchRFQDetailsRequestBeginActionT\n    | FetchRFQDetailsRequestErrorActionT\n    | FetchRFQDetailsRequestSuccessActionT;\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkMaxLength, checkMinLength, checkNotEmpty, checkPhoneNumber } from 'common/utils/form-validators';\n\nconst validate = (t: TFunction, values: FormValuesT, isRegisteredUser: boolean): FormErrorsT => {\n    let errors: FormErrorsT = {\n        ...checkNotEmpty(t, [FieldsEnum.firstName, FieldsEnum.lastName, FieldsEnum.phone], values),\n        ...checkMinLength(t, [FieldsEnum.firstName, FieldsEnum.lastName], values, 2),\n        ...checkMaxLength(t, [FieldsEnum.firstName, FieldsEnum.lastName], values, 255),\n        ...checkPhoneNumber(t, [FieldsEnum.phone], values),\n    };\n\n    if (!isRegisteredUser) {\n        errors = {\n            ...errors,\n            ...checkNotEmpty(t, [FieldsEnum.password], values),\n        };\n    }\n\n    const isAcceptTerms = values[FieldsEnum.acceptTerms];\n    if (!isAcceptTerms) {\n        errors[FieldsEnum.acceptTerms] = t('common:form-errors.accept-terms');\n    }\n\n    return errors;\n};\n\nexport default validate;\n","import React from 'react';\n\nexport type PartnerPermissionsT = {\n    canImportTrucks: boolean;\n    canEditTrucks: boolean;\n    canActivateTrucks: boolean;\n    canArchiveTrucks: boolean;\n    canSetUnavailableTrucks: boolean;\n\n    canImportTrailers: boolean;\n    canEditTrailers: boolean;\n    canActivateTrailers: boolean;\n    canArchiveTrailers: boolean;\n    canSetUnavailableTrailers: boolean;\n\n    canUploadDocuments: boolean;\n    canVerifyDocuments: boolean;\n    canRevokeDocuments: boolean;\n    canEditDocuments: boolean;\n    canReviewDocuments: boolean;\n\n    canTeleportAssets: boolean;\n};\n\nexport type PartnerPermissionsContextT = Partial<PartnerPermissionsT>;\n\nconst PartnerPermissionsContext = React.createContext<PartnerPermissionsContextT>({});\n\nexport default PartnerPermissionsContext;\n","// eslint-disable-next-line no-restricted-exports\nexport { default } from './slice';\n","// extracted by mini-css-extract-plugin\nexport default {\"inline-loader\":\"InlineLoader__inline-loader___St0qk\",\"inner\":\"InlineLoader__inner___HhC_c\",\"fadeIn\":\"InlineLoader__fadeIn___NkNW1\",\"blinking\":\"InlineLoader__blinking___mM9ME\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"RouteForm__wrap___UY7ta\",\"form\":\"RouteForm__form___DiVdH\",\"footer-content\":\"RouteForm__footer-content___sFxIp\",\"actions\":\"RouteForm__actions___xuBwP\",\"action\":\"RouteForm__action___BixAS\",\"not-include-costs\":\"RouteForm__not-include-costs___IZZmH\",\"route-point-fields\":\"RouteForm__route-point-fields___jQe3K\",\"route-points-divider\":\"RouteForm__route-points-divider___ZGFLS\",\"field--truck\":\"RouteForm__field--truck___l9jkf\",\"receipt\":\"RouteForm__receipt___MuZe2\",\"route-placeholder\":\"RouteForm__route-placeholder___uiVK_\",\"route-placeholder__icon\":\"RouteForm__route-placeholder__icon___UxFjh\",\"route-placeholder__text\":\"RouteForm__route-placeholder__text___Ls5nf\",\"receipt-wrap\":\"RouteForm__receipt-wrap___BFSz4\",\"receipt-wrap__loader\":\"RouteForm__receipt-wrap__loader___oLNgW\",\"fadeIn\":\"RouteForm__fadeIn___NF8YR\",\"blinking\":\"RouteForm__blinking___zcj8v\"};","// extracted by mini-css-extract-plugin\nexport default {\"line-loader\":\"LineLoader__line-loader___AXIPh\",\"line-loader--is-show\":\"LineLoader__line-loader--is-show___Wyyf8\",\"line-loader-scroll\":\"LineLoader__line-loader-scroll___rW8Xb\",\"fadeIn\":\"LineLoader__fadeIn___glmVv\",\"blinking\":\"LineLoader__blinking___y6a4T\"};","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT, WaypointsFieldEnum } from './constants';\nimport { checkNotEmpty } from 'common/utils/form-validators';\nimport isEmpty from 'lodash/isEmpty';\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {};\n\n    const waypointsFormValues = values[FieldsEnum.waypoints];\n    waypointsFormValues.forEach((waypointFormValues, index) => {\n        const waypointFormErrors: NonNullable<FormErrorsT[FieldsEnum.waypoints]>[number] = {\n            ...checkNotEmpty(t, [WaypointsFieldEnum.timeWindow], waypointFormValues),\n        };\n\n        if (!isEmpty(waypointFormErrors)) {\n            if (!errors[FieldsEnum.waypoints]) {\n                errors[FieldsEnum.waypoints] = [];\n            }\n\n            errors[FieldsEnum.waypoints][index] = waypointFormErrors;\n        }\n    });\n\n    return errors;\n};\n\nexport default validate;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { GroupedLogsLayout } from 'common/components/GroupedLogsLayout/GroupedLogsLayout';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport { SubjectLogs } from 'common/layouts/SubjectLogs/SubjectLogs';\n\ntype PropsT = {\n    partnerId: PartnerIdT;\n    onClose: () => void;\n};\n\nconst PartnerLogSideBarContent: React.FC<PropsT> = React.memo((props) => {\n    const { partnerId, onClose } = props;\n    const { t } = useTranslation();\n\n    return (\n        <>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent variant=\"right\" title={t('partner.log')} onClose={onClose} />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <SubjectLogs subjectType=\"PROFILE\" subjectId={partnerId}>\n                    {({ logs, requestStatus }) => <GroupedLogsLayout logs={logs} requestStatus={requestStatus} />}\n                </SubjectLogs>\n            </SideBarLayout>\n        </>\n    );\n});\n\nexport default PartnerLogSideBarContent;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    size: number;\n};\n\nconst LogoIcon: React.FC<PropsT> = (props) => {\n    const { className, size } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" className={className} width={size} height={size} viewBox=\"0 0 31 30\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <g>\n                    <g transform=\"translate(-25 -20) translate(25 20)\">\n                        <ellipse cx=\"15.591\" cy=\"15\" fill=\"#8ABA2E\" rx=\"15.118\" ry=\"15\" />\n                        <path\n                            fill=\"#FFF\"\n                            fillRule=\"nonzero\"\n                            d=\"M20.428 22.8L16.195 22.8 16.195 7.2 20.428 7.2zM14.986 22.8L10.753 22.8 10.753 7.2 14.986 7.2zM14.986 5.4L10.753 5.4 10.753 1.2 14.986 1.2zM20.428 28.8L16.195 28.8 16.195 24.6 20.428 24.6z\"\n                        />\n                    </g>\n                </g>\n            </g>\n        </svg>\n    );\n};\n\nLogoIcon.displayName = 'LogoIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n};\n\nexport { storyProps };\nexport default LogoIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"link\":\"TableCellLink__link___WT5W6\",\"fadeIn\":\"TableCellLink__fadeIn___MRDK5\",\"blinking\":\"TableCellLink__blinking___t0VTK\"};","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    size: number;\n    fillColor: StyleGuideColorsEnum;\n    opacity?: number;\n};\n\nconst DownloadIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, opacity, className, size } = props;\n\n    return (\n        <svg width={size} height={size} viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" className={className}>\n            <defs>\n                <path d=\"M0 0h18v18H0V0z\" id=\"fc40vzsiga\" />\n            </defs>\n            <path\n                d=\"M13.443 7.75H12.25V4a.752.752 0 0 0-.75-.75h-3a.752.752 0 0 0-.75.75v3.75H6.558c-.668 0-1.005.81-.533 1.283l3.442 3.442a.747.747 0 0 0 1.058 0l3.442-3.442c.473-.473.143-1.283-.524-1.283zm-8.693 7.5c0 .412.338.75.75.75h9c.412 0 .75-.338.75-.75a.752.752 0 0 0-.75-.75h-9a.752.752 0 0 0-.75.75z\"\n                xlinkHref=\"#fc40vzsiga\"\n                fill={fillColor}\n                fillOpacity={opacity || 1}\n                fillRule=\"evenodd\"\n            />\n        </svg>\n    );\n};\n\nDownloadIcon.displayName = 'DownloadIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.charcoal,\n    opacity: 1,\n    size: DEFAULT_ICON_SIZE,\n};\n\nexport { storyProps };\nexport default DownloadIcon;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n    size: number;\n};\n\nconst TrailerPickUpIcon: React.FC<PropsT> = (props) => {\n    const { size, className, fillColor, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\" className={className}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path fill={fillColor} fillOpacity=\"0.3\" d=\"M17 3v8l-1 1v2h-2l-3-2V3h6z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M11.182 13.462c1.45 0 2.625 1.197 2.625 2.671 0 1.474-1.175 2.67-2.625 2.67-.061 0-.122-.002-.182-.006l-.001-1.505a1.166 1.166 0 001.335-1.158A1.163 1.163 0 0011 14.977v-1.51c.061-.003.122-.006.183-.006zm6.266 1.999v.783h-2.93a2.969 2.969 0 00-.027-.783h2.957zM18 2v10.235h-.844v3.004h-2.7l-.13-.084c-.442-1.314-1.669-2.265-3.109-2.265-.073 0-.146.002-.218.007L11 11h5V4h-5V2h7zm-1.585 10.234h-.41v1.662h.41v-1.662zM2.552 8.194h1.192v3.75c0 .413.338.75.75.75h3c.413 0 .75-.337.75-.75v-3.75h1.193c.667 0 1.005-.81.532-1.282L6.527 3.469a.747.747 0 00-1.058 0L2.027 6.912c-.473.472-.143 1.282.525 1.282zm4.942 6.056c.41 0 .744.331.75.739v1.955c0 .413-.337.75-.75.75h-3a.752.752 0 01-.75-.75V15c0-.412.338-.75.75-.75h3z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nTrailerPickUpIcon.displayName = 'TrailerPickUpIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default TrailerPickUpIcon;\n\n/**\n *  @deprecated create/use ...Props class\n * */\nexport const getTrailerPickUpIconProps = (\n    preset: 'default' | 'selected' | 'assignment-events' | 'assignment-normal' | 'assignment-selected',\n): PropsT => {\n    switch (preset) {\n        case 'selected': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.brandAccent,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        case 'assignment-normal': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.white,\n            };\n        }\n        case 'assignment-events': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.white,\n            };\n        }\n        case 'assignment-selected': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.brandAccent,\n            };\n        }\n        default: {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.white,\n                strokeColor: StyleGuideColorsEnum.light,\n            };\n        }\n    }\n};\n","import * as React from 'react';\nimport { ApiDocumentStatusT, DocumentStatusEnum } from 'common/utils/api/models';\nimport { PropsT as ColoredStatusLabelPropsT } from 'common/components/ColoredStatusLabel/ColoredStatusLabel';\nimport DocumentStatus from 'common/components/status/DocumentStatus/DocumentStatus';\nimport { useSelector } from 'react-redux';\nimport { selectProfileType } from 'common/store/auth/selectors';\nimport { AuthProfileTypeEnum } from 'common/store/auth/constants';\nimport PillLabel, { colorCodingPillLabelTheme, PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\n\ntype PropsT = Omit<ColoredStatusLabelPropsT, 'label' | 'color'> & {\n    status: ApiDocumentStatusT | null | undefined;\n    isRequiredDocument: boolean;\n    isSymmetrical?: boolean;\n};\n\ntype DocumentStatusColorMapT = Record<ApiDocumentStatusT, PillLabelThemeEnum>;\n\nconst requiredDocumentStatusColorMap: Record<AuthProfileTypeEnum, DocumentStatusColorMapT> = {\n    [AuthProfileTypeEnum.shipper]: {\n        [DocumentStatusEnum.waitingForApprove]: colorCodingPillLabelTheme.normal,\n        [DocumentStatusEnum.approved]: colorCodingPillLabelTheme.positive,\n        [DocumentStatusEnum.rejected]: colorCodingPillLabelTheme.attention,\n        [DocumentStatusEnum.revoked]: colorCodingPillLabelTheme.attention,\n        [DocumentStatusEnum.expired]: colorCodingPillLabelTheme.attention,\n        [DocumentStatusEnum.archived]: colorCodingPillLabelTheme.normal,\n    },\n    [AuthProfileTypeEnum.carrier]: {\n        [DocumentStatusEnum.waitingForApprove]: colorCodingPillLabelTheme.normal,\n        [DocumentStatusEnum.approved]: colorCodingPillLabelTheme.positive,\n        [DocumentStatusEnum.rejected]: colorCodingPillLabelTheme.attention,\n        [DocumentStatusEnum.revoked]: colorCodingPillLabelTheme.attention,\n        [DocumentStatusEnum.expired]: colorCodingPillLabelTheme.attention,\n        [DocumentStatusEnum.archived]: colorCodingPillLabelTheme.normal,\n    },\n    [AuthProfileTypeEnum.broker]: {\n        [DocumentStatusEnum.waitingForApprove]: colorCodingPillLabelTheme.attention,\n        [DocumentStatusEnum.approved]: colorCodingPillLabelTheme.positive,\n        [DocumentStatusEnum.rejected]: colorCodingPillLabelTheme.attention,\n        [DocumentStatusEnum.revoked]: colorCodingPillLabelTheme.attention,\n        [DocumentStatusEnum.expired]: colorCodingPillLabelTheme.attention,\n        [DocumentStatusEnum.archived]: colorCodingPillLabelTheme.normal,\n    },\n};\n\nconst optionalDocumentStatusColorMap: Record<AuthProfileTypeEnum, DocumentStatusColorMapT> = {\n    [AuthProfileTypeEnum.shipper]: {\n        [DocumentStatusEnum.waitingForApprove]: colorCodingPillLabelTheme.normal,\n        [DocumentStatusEnum.approved]: colorCodingPillLabelTheme.positive,\n        [DocumentStatusEnum.rejected]: colorCodingPillLabelTheme.normal,\n        [DocumentStatusEnum.revoked]: colorCodingPillLabelTheme.normal,\n        [DocumentStatusEnum.expired]: colorCodingPillLabelTheme.normal,\n        [DocumentStatusEnum.archived]: colorCodingPillLabelTheme.normal,\n    },\n    [AuthProfileTypeEnum.carrier]: {\n        [DocumentStatusEnum.waitingForApprove]: colorCodingPillLabelTheme.normal,\n        [DocumentStatusEnum.approved]: colorCodingPillLabelTheme.positive,\n        [DocumentStatusEnum.rejected]: colorCodingPillLabelTheme.normal,\n        [DocumentStatusEnum.revoked]: colorCodingPillLabelTheme.normal,\n        [DocumentStatusEnum.expired]: colorCodingPillLabelTheme.normal,\n        [DocumentStatusEnum.archived]: colorCodingPillLabelTheme.normal,\n    },\n    [AuthProfileTypeEnum.broker]: {\n        [DocumentStatusEnum.waitingForApprove]: colorCodingPillLabelTheme.attention,\n        [DocumentStatusEnum.approved]: colorCodingPillLabelTheme.positive,\n        [DocumentStatusEnum.rejected]: colorCodingPillLabelTheme.normal,\n        [DocumentStatusEnum.revoked]: colorCodingPillLabelTheme.normal,\n        [DocumentStatusEnum.expired]: colorCodingPillLabelTheme.normal,\n        [DocumentStatusEnum.archived]: colorCodingPillLabelTheme.normal,\n    },\n};\n\nconst DocumentStatusPill: React.FC<PropsT> = React.memo((props) => {\n    const { status, isRequiredDocument, ...restProps } = props;\n\n    const profileTypeEnum = useSelector(selectProfileType);\n\n    const documentStatusColorMap = isRequiredDocument ? requiredDocumentStatusColorMap : optionalDocumentStatusColorMap;\n\n    let theme: PillLabelThemeEnum;\n\n    // not upload\n    if (!status) {\n        theme = isRequiredDocument ? colorCodingPillLabelTheme.attention : PillLabelThemeEnum.slate;\n    } else {\n        theme = documentStatusColorMap[profileTypeEnum]?.[status];\n    }\n\n    return (\n        <PillLabel isNoWrap {...restProps} theme={theme}>\n            <DocumentStatus status={status} />\n        </PillLabel>\n    );\n});\n\nexport default DocumentStatusPill;\n","export const getHash = (carrierId: string, date: string): string => {\n    return `${carrierId}/${date}`;\n};\n","import * as React from 'react';\nimport { Trans } from 'react-i18next';\n\nimport FieldName from 'common/components/notification-cards/shared/FieldName/FieldName';\nimport FieldValue from 'common/components/notification-cards/shared/FieldValue/FieldValue';\nimport StopLabel from 'common/components/notification-cards/shared/StopLabel/StopLabel';\nimport { ApiUpdatedFieldCodeT } from 'common/utils/api/models';\n\ntype PropsT = {\n    stop: Api2.Definitions.StopChangeDto;\n    code: ApiUpdatedFieldCodeT;\n    oldValue?: string;\n    newValue?: string;\n};\n\nconst ChangedStopFieldLabel: React.FC<PropsT> = React.memo((props) => {\n    const { stop, code, oldValue, newValue } = props;\n\n    return (\n        <Trans\n            i18nKey=\"common:notifications.changed-stop-field-row\"\n            components={{\n                stopLabel: <StopLabel sequenceNumber={stop.sequenceNumber} address={stop.address} />,\n                field: <FieldName code={code} />,\n                oldValue: <FieldValue code={code} value={oldValue} />,\n                newValue: <FieldValue code={code} value={newValue} />,\n            }}\n        />\n    );\n});\n\nexport default ChangedStopFieldLabel;\n","// extracted by mini-css-extract-plugin\nexport default {\"model\":\"ModelCell__model___LJmDH\",\"cabin-color\":\"ModelCell__cabin-color___Z_iFM\",\"fadeIn\":\"ModelCell__fadeIn___yfVPj\",\"blinking\":\"ModelCell__blinking___rJgMH\"};","import { SharableStateT } from 'common/store/models';\nimport { DriverAssigmentStateT } from './types';\nimport requestStatus from 'common/utils/request-status';\n\nexport const selectDriverAssignmentTourId = (state: SharableStateT): DriverAssigmentStateT['tourId'] =>\n    state.driverAssignment.tourId;\n\nexport const selectAssignmentRequestStatus = (state: SharableStateT): DriverAssigmentStateT['assigmentStatus'] =>\n    state?.driverAssignment?.assigmentStatus || requestStatus.initial;\n\nexport const selectReAssignmentRequestStatus = (state: SharableStateT): DriverAssigmentStateT['reAssigmentStatus'] =>\n    state.driverAssignment.reAssigmentStatus;\n","import * as React from 'react';\nimport AdditionalServiceLabel from 'common/components/AdditionalServiceLabel/AdditionalServiceLabel';\nimport { ApiBrokerAdditionalServiceTypeT, ApiCarrierAdditionalServiceTypeT } from 'common/utils/api/models';\n\ntype PropsT = {\n    type?: ApiCarrierAdditionalServiceTypeT | ApiBrokerAdditionalServiceTypeT;\n};\n\nconst AdditionalServiceFormatter: React.FC<PropsT> = React.memo((props) => {\n    const { type } = props;\n\n    return <AdditionalServiceLabel type={type} />;\n});\n\nexport default AdditionalServiceFormatter;\n","import React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport BigTrashIcon from 'common/icons/BigTrashIcon';\n\nexport type DeleteTeamConfirmationDataT = {\n    id: TeamIdT;\n};\n\ntype PropsT = {\n    data: DeleteTeamConfirmationDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onConfirm: (data: DeleteTeamConfirmationDataT) => void;\n    requestStatus: RequestStatusT;\n};\n\nconst TEST_SELECTOR = 'delete-team';\n\nconst DeleteTeamConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, onCancel, onClose, requestStatus, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.keep'),\n                            theme: ButtonThemeEnum.secondary,\n                            isDisabled: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            onClick: () => {\n                                onCancel();\n                            },\n                        },\n                        {\n                            children: t('common:error-modal.actions.delete'),\n                            theme: ButtonThemeEnum.danger,\n                            isDisabled: requestStatus.loading,\n                            isLoading: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_delete`,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigTrashIcon />}\n                    title={t('broker-users.dialogs.delete-team-confirmation.title')}\n                    message={t('broker-users.dialogs.delete-team-confirmation.description')}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default DeleteTeamConfirmation;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ExpiredPartnerShipperContractCard.scss';\nimport { Trans } from 'react-i18next';\nimport ContractName from 'broker-admin/components/notification-cards/entities/ContractName/ContractName';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    contractName: string;\n};\n\nconst ExpiredPartnerShipperContractCard: React.FC<PropsT> = React.memo((props) => {\n    const { contractName } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"notifications.partner-shipper-contract-expired\"\n                components={{\n                    contractName: <ContractName contractName={contractName} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default ExpiredPartnerShipperContractCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"table\":\"RulesTable__table___YXJDy\",\"table__header\":\"RulesTable__table__header___h_cdU\",\"table__header--checkbox\":\"RulesTable__table__header--checkbox___QQiDo\",\"table__header--name\":\"RulesTable__table__header--name___Nt569\",\"table__header--locations\":\"RulesTable__table__header--locations___I_AOO\",\"table__column\":\"RulesTable__table__column___pt7iI\",\"table__column--checkbox\":\"RulesTable__table__column--checkbox___JQKZk\",\"table__column--name\":\"RulesTable__table__column--name___zh1Rb\",\"table__column--locations\":\"RulesTable__table__column--locations___Ql04u\",\"table__column--target\":\"RulesTable__table__column--target___QWjO9\",\"table__column--valid-period\":\"RulesTable__table__column--valid-period___NeTBP\",\"table__column--create-update-dates\":\"RulesTable__table__column--create-update-dates___mqzh8\",\"table__column--type\":\"RulesTable__table__column--type___lKfdI\",\"table__column--controls\":\"RulesTable__table__column--controls___NuiN8\",\"fadeIn\":\"RulesTable__fadeIn___ISmfX\",\"blinking\":\"RulesTable__blinking___IzU9z\"};","// extracted by mini-css-extract-plugin\nexport default {\"action--next\":\"ChangeShipmentStatusFooter__action--next___DysNp\",\"tooltip\":\"ChangeShipmentStatusFooter__tooltip___apbL3\",\"alert\":\"ChangeShipmentStatusFooter__alert___cXhUJ\",\"fadeIn\":\"ChangeShipmentStatusFooter__fadeIn___SftUg\",\"blinking\":\"ChangeShipmentStatusFooter__blinking___tFiZg\"};","import * as React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { PartnerTypeEnum, ApiPartnerTypeT } from 'common/utils/api/models';\n\ntype PropsT = {\n    type: ApiPartnerTypeT | null | undefined;\n};\n\nconst PARTNER_TYPE_T_MAP: Record<PartnerTypeEnum, string> = {\n    [PartnerTypeEnum.carrier]: 'common:company-type.CARRIER',\n    [PartnerTypeEnum.shipper]: 'common:company-type.SHIPPER',\n    [PartnerTypeEnum.broker]: 'common:company-type.BROKER',\n};\n\nconst PILL_LABEL_MAP: Record<PartnerTypeEnum, PillLabelThemeEnum> = {\n    [PartnerTypeEnum.carrier]: PillLabelThemeEnum.charcoal,\n    [PartnerTypeEnum.shipper]: PillLabelThemeEnum.brandDark,\n    [PartnerTypeEnum.broker]: PillLabelThemeEnum.charcoal,\n};\n\nconst PartnerTypePill: React.FC<PropsT> = React.memo((props) => {\n    const { type } = props;\n\n    const { t } = useTranslation();\n\n    const label = type ? t(PARTNER_TYPE_T_MAP[type]) : null;\n\n    if (!label) {\n        return null;\n    }\n\n    return (\n        <PillLabel\n            theme={type ? PILL_LABEL_MAP[type] : PillLabelThemeEnum.charcoal}\n            testSelector=\"partner-type\"\n            isSymmetrical\n        >\n            {label}\n        </PillLabel>\n    );\n});\n\nexport default PartnerTypePill;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './AsyncSearchScrollableList.scss';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\nimport Input from 'common/components/Input/Input';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport SearchIcon from 'common/icons/SearchIcon';\nimport ListMessage, {\n    ListMessagePropsT,\n} from 'design-system/components/AsyncSearchScrollableList/ListMessage/ListMessage';\nimport BigEmptyIcon from 'common/icons/BigEmptyIcon';\nimport BigSearchIcon from 'common/icons/BigSearchIcon';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport isString from 'lodash/isString';\n\nconst cx = classNames.bind(styles);\n\ntype OptionKeyT = string | number;\n\ntype PropsT<T extends {}, M extends {}> = {\n    className?: string;\n    minHeightPx?: number;\n    requestStatus: RequestStatusT;\n    inputValue: string;\n    onChangeInputValue: (inputValue: string) => void;\n    inputPlaceholder?: string;\n    emptyMessage?: ListMessagePropsT;\n    notFoundMessage?: ListMessagePropsT;\n    optionsQuery: string | null;\n    initialOptions?: Array<T>;\n    options: Array<T>;\n    getOptionKey: (option: T) => OptionKeyT;\n    meta: M;\n    renderOption: (option: T, index: number, meta: M) => React.ReactNode;\n    isShowOverlay?: boolean;\n    listHeaderNode?: React.ReactNode;\n};\n\nconst BaseSearchScrollableList = <T extends {}, M extends {}>(props: PropsT<T, M>) => {\n    const {\n        className,\n        minHeightPx,\n        requestStatus,\n        inputValue,\n        onChangeInputValue,\n        inputPlaceholder,\n        emptyMessage,\n        notFoundMessage,\n        renderOption,\n        optionsQuery,\n        initialOptions,\n        options,\n        getOptionKey,\n        meta,\n        isShowOverlay,\n        listHeaderNode,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const [isInitialized, setIsInitialized] = React.useState<boolean>(false);\n\n    React.useEffect(() => {\n        if (requestStatus.ok || requestStatus.error) {\n            setIsInitialized(true);\n        }\n    }, [requestStatus.ok, requestStatus.error]);\n\n    const isSearchActive = Boolean(inputValue.trim());\n\n    const shownInitialOptions = React.useMemo((): Array<T> => {\n        if (isSearchActive) {\n            return [];\n        }\n\n        return initialOptions || [];\n    }, [initialOptions, isSearchActive]);\n\n    const initialOptionKeySet = React.useMemo(() => {\n        return new Set<OptionKeyT>(shownInitialOptions?.map(getOptionKey) || []);\n    }, [getOptionKey, shownInitialOptions]);\n\n    const restOptions = React.useMemo(() => {\n        if (isSearchActive || !shownInitialOptions?.length) {\n            return options;\n        }\n\n        return options.filter((option) => !initialOptionKeySet.has(getOptionKey(option)));\n    }, [getOptionKey, initialOptionKeySet, isSearchActive, shownInitialOptions, options]);\n\n    const hasAnyOptions = shownInitialOptions.length > 0 || restOptions.length > 0;\n\n    return (\n        <div className={cs(cx('inner'), className)}>\n            <Input\n                name=\"search\"\n                value={inputValue}\n                className={cx('search-input')}\n                renderLeftIcon={() => {\n                    return requestStatus.loading && isInitialized ? (\n                        <ControlLoaderIcon fillColor={StyleGuideColorsEnum.gray} size={DEFAULT_ICON_SIZE} />\n                    ) : (\n                        <SearchIcon fillColor={StyleGuideColorsEnum.gray} />\n                    );\n                }}\n                placeholder={inputPlaceholder || t('common:common-components.select-list.input-placeholder')}\n                onChange={onChangeInputValue}\n                hasClearControl\n            />\n            <div className={cx('full-height-wrap')} style={{ minHeight: minHeightPx ? `${minHeightPx}px` : undefined }}>\n                <div className={cx('list')}>\n                    {listHeaderNode}\n                    {!isSearchActive &&\n                        shownInitialOptions.map((option, index) => {\n                            return renderOption(option, index, meta);\n                        })}\n                    {!isSearchActive && Boolean(shownInitialOptions?.length) && Boolean(restOptions?.length) && (\n                        <>\n                            <div className={cx('separator')} />\n                        </>\n                    )}\n                    {restOptions?.map((option, index) => {\n                        return renderOption(option, index + shownInitialOptions.length, meta);\n                    })}\n                    {!hasAnyOptions && (\n                        <>\n                            {isInitialized && isString(optionsQuery) && (\n                                <>\n                                    {optionsQuery ? (\n                                        <ListMessage\n                                            key=\"search\"\n                                            className={cx('message')}\n                                            icon={<BigSearchIcon />}\n                                            title={t('common:common-components.select-list.not-found-message.title')}\n                                            description={t(\n                                                'common:common-components.select-list.not-found-message.description',\n                                            )}\n                                            {...notFoundMessage}\n                                        />\n                                    ) : (\n                                        <ListMessage\n                                            key=\"empty\"\n                                            className={cx('message')}\n                                            icon={<BigEmptyIcon />}\n                                            title={t('common:common-components.select-list.empty-message.title')}\n                                            {...emptyMessage}\n                                        />\n                                    )}\n                                </>\n                            )}\n                            {!isInitialized && requestStatus.loading && (\n                                <div className={cx('loader')}>\n                                    <ControlLoaderIcon fillColor={StyleGuideColorsEnum.gray} size={DEFAULT_ICON_SIZE} />\n                                </div>\n                            )}\n                        </>\n                    )}\n                    {isShowOverlay && <div className={cx('overlay')} />}\n                </div>\n            </div>\n        </div>\n    );\n};\n\nconst AsyncSearchScrollableList = React.memo(BaseSearchScrollableList) as typeof BaseSearchScrollableList;\n\nexport default AsyncSearchScrollableList;\n","import React, { useCallback, useMemo } from 'react';\n\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport keyBy from 'lodash/keyBy';\nimport { AsyncRequestFactoryT } from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-options-request';\nimport DropdownSearchInput from 'design-system/components/dropdowns/DropdownSearchInput/DropdownSearchInput';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport isNil from 'lodash/isNil';\nimport UserDropdownOptionLabel from 'common/components/dropdowns/options/UserDropdownOptionLabel/UserDropdownOptionLabel';\nimport { useAsyncFilterOptions } from 'design-system/components/dropdowns/DropdownSearchInput/hooks/use-async-filter-options';\n\ntype OptionT = {\n    surname?: string;\n    name?: string;\n    id?: UserIdT;\n};\n\ntype ValueT = OptionT['id'] | null;\n\nexport type PropsT = {\n    className?: string;\n    initialValue: ValueT;\n    initialLabel: string | null;\n    onSelect: (value: ValueT, label?: string) => void;\n    value: ValueT;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    placeholder: InputPropsT['placeholder'];\n    onBlur: InputPropsT['onBlur'];\n    onFocus: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasChanges?: boolean;\n    hasClearControl?: boolean;\n};\n\nconst getOptionText = (option: OptionT): string => {\n    return [option.name, option.surname].map((item) => item || '').join(' ');\n};\n\nconst BrokerAdminUserSuggest: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        initialValue,\n        initialLabel,\n        value,\n        onSelect,\n        hasWarning,\n        hasError,\n        overlayPosition,\n        isDisabled,\n        onBlur,\n        onFocus,\n        hasChanges,\n        hasClearControl,\n        placeholder,\n    } = props;\n\n    const initialOption = useMemo((): OptionT | null => {\n        if (!initialValue) {\n            return null;\n        }\n\n        return {\n            surname: '',\n            name: initialLabel || 'Unknown user',\n            id: initialValue,\n        };\n    }, [initialLabel, initialValue]);\n\n    const initialOptions = useMemo(() => {\n        if (!initialOption) {\n            return null;\n        }\n\n        return [initialOption];\n    }, [initialOption]);\n\n    const requestFactory: AsyncRequestFactoryT<OptionT> = useCallback(() => {\n        return brokerTranziitApi.fetchBrokerAdminUsers();\n    }, []);\n\n    const asyncFilterOptionsRequest = useAsyncFilterOptions<OptionT>({\n        initialOptions,\n        requestFactory,\n        getOptionText,\n        settings: {},\n    });\n\n    const optionByUserId = React.useMemo(() => {\n        return keyBy(asyncFilterOptionsRequest.options, 'id');\n    }, [asyncFilterOptionsRequest.options]);\n\n    const renderOption = (option?: OptionT, placeholder?: string): React.ReactNode => {\n        if (isNil(option)) {\n            return <UserDropdownOptionLabel label={placeholder || ''} isPlaceholder />;\n        }\n\n        return <UserDropdownOptionLabel label={getOptionText(option)} />;\n    };\n\n    const handleFocus = useCallback(() => {\n        if (onFocus) {\n            onFocus();\n        }\n\n        asyncFilterOptionsRequest.onRefresh();\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [onFocus, asyncFilterOptionsRequest.onRefresh]);\n\n    return (\n        <DropdownSearchInput<OptionT, ValueT>\n            className={className}\n            selectedValue={value}\n            placeholder={placeholder}\n            options={asyncFilterOptionsRequest.options}\n            isDisabled={isDisabled}\n            onSelect={(value) => {\n                const option = value ? optionByUserId[value] : null;\n                const label = option ? getOptionText(option) : '';\n\n                onSelect(value, label);\n            }}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            onChangeQuery={asyncFilterOptionsRequest.onChangeQuery}\n            renderRightIcon={() =>\n                asyncFilterOptionsRequest.requestStatus.loading ? (\n                    <ControlLoaderIcon fillColor={StyleGuideColorsEnum.brandAccent} size={DEFAULT_ICON_SIZE} />\n                ) : null\n            }\n            renderOption={renderOption}\n            renderTrigger={renderOption}\n            getOptionValue={(option) => option?.id}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={handleFocus}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            onReset={\n                hasClearControl\n                    ? () => {\n                          onSelect(null);\n                      }\n                    : undefined\n            }\n        />\n    );\n};\n\nexport default BrokerAdminUserSuggest;\n","import * as React from 'react';\nimport { ApiPriceRuleTypeT, PriceRuleTypeEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './PriceRuleTypeLabel.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    ruleType: ApiPriceRuleTypeT | null | undefined;\n};\n\nexport const PRICE_RULE_TYPE_I18N_MAP: Record<ApiPriceRuleTypeT, string> = {\n    [PriceRuleTypeEnum.basic]: 'rule-type.basic',\n    [PriceRuleTypeEnum.carrier]: 'rule-type.carrier',\n    [PriceRuleTypeEnum.shipper]: 'rule-type.shipper',\n    [PriceRuleTypeEnum.custom]: 'rule-type.shipper',\n};\n\nconst PriceRuleTypeLabel: React.FC<PropsT> = React.memo((props) => {\n    const { ruleType, className } = props;\n\n    const { t } = useTranslation();\n\n    if (!ruleType) {\n        return null;\n    }\n\n    return <span className={cs(cx('type'), className)}>{t(PRICE_RULE_TYPE_I18N_MAP[ruleType])}</span>;\n});\n\nexport default PriceRuleTypeLabel;\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"AssetOptionLabel__option___FR8bx\",\"model\":\"AssetOptionLabel__model___NowRE\",\"plate-number\":\"AssetOptionLabel__plate-number___NDxMX\",\"details-trigger\":\"AssetOptionLabel__details-trigger___cwfLS\",\"fadeIn\":\"AssetOptionLabel__fadeIn___SpC0h\",\"blinking\":\"AssetOptionLabel__blinking___DZDI2\"};","import {\n    CLOSE_ERROR_MODAL,\n    OPEN_ERROR_MODAL,\n    RESET_LOGS,\n    CloseErrorModalActionT,\n    OpenErrorModalActionT,\n    ResetErrorLogsActionT,\n} from './types';\n\nexport const closeErrorModal = (): CloseErrorModalActionT => ({\n    type: CLOSE_ERROR_MODAL,\n});\n\nexport const openErrorModal = (): OpenErrorModalActionT => ({\n    type: OPEN_ERROR_MODAL,\n});\n\nexport const resetErrorLogs = (): ResetErrorLogsActionT => ({\n    type: RESET_LOGS,\n});\n","import { put, select } from 'redux-saga/effects';\nimport { fetchDocumentsDictBegin, fetchDocumentsDictError, fetchDocumentsDictSuccess } from './actions';\nimport { DOCUMENTS_DICT_REQUEST, FetchDocumentsDictActionT } from './types';\nimport { selectDocumentsDict, selectDocumentsDictRequest } from './selectors';\nimport isEmpty from 'lodash/isEmpty';\nimport prepareDictDocument from './utils/prepare-dict-document';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { semaphoreSaga } from 'common/utils/semaphore-saga';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport { selectProfileType } from 'common/store/auth/selectors';\nimport { AuthProfileTypeEnum } from 'common/store/auth/constants';\n\nfunction* fetchDocumentsDictSaga(action: FetchDocumentsDictActionT): WrapGeneratorT<void> {\n    const { partnerType } = action;\n    if (!partnerType) {\n        return;\n    }\n\n    const profileType: ReturnType<typeof selectProfileType> = yield select(selectProfileType);\n\n    const currentDocumentsDict: ReReturnT<typeof selectDocumentsDict> = yield select(selectDocumentsDict(partnerType));\n    if (!isEmpty(currentDocumentsDict)) {\n        return;\n    }\n\n    const documentsDictRequest: ReReturnT<typeof selectDocumentsDictRequest> = yield select(\n        selectDocumentsDictRequest(partnerType),\n    );\n    if (documentsDictRequest.loading) {\n        return;\n    }\n\n    yield put(fetchDocumentsDictBegin(partnerType));\n\n    let documentDictResult: ReturnApiT<\n        typeof brokerTranziitApi.fetchDocumentsDict | typeof commonTranziitApi.fetchDocumentsDict\n    >;\n\n    if (profileType === AuthProfileTypeEnum.broker) {\n        documentDictResult = yield brokerTranziitApi.fetchDocumentsDict(partnerType);\n    } else {\n        documentDictResult = yield commonTranziitApi.fetchDocumentsDict();\n    }\n\n    const [error, documentsDict] = documentDictResult;\n\n    const preparedDocumentsDict = (documentsDict || []).map(prepareDictDocument);\n\n    if (error) {\n        yield put(fetchDocumentsDictError(partnerType, error));\n    } else {\n        yield put(fetchDocumentsDictSuccess(partnerType, preparedDocumentsDict));\n    }\n}\n\nfunction* documentDictSaga(): WrapGeneratorT<void> {\n    yield semaphoreSaga(DOCUMENTS_DICT_REQUEST, fetchDocumentsDictSaga);\n}\n\nexport default documentDictSaga;\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormValuesT, FormErrorsT } from './constants';\nimport { checkNotEmpty, checkMaxValue, checkIsPositiveNumberOrZeroValue } from 'common/utils/form-validators';\n\nconst CREATION_REQUIRED_FIELDS = [\n    FieldsEnum.truckModel,\n    FieldsEnum.countryCode,\n    FieldsEnum.plateNumber,\n    FieldsEnum.vin,\n] as const;\n\nconst REQUIRED_FIELDS = [FieldsEnum.cabinColor] as const;\n\nconst RATE_FIELDS = [FieldsEnum.ratePerKm] as const;\n\nconst MAX_RATE = 10;\n\ntype MetaT = {\n    isCreation: boolean;\n};\n\nconst validate = (t: TFunction, values: FormValuesT, meta: MetaT): FormErrorsT => {\n    let errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n    };\n\n    if (meta?.isCreation) {\n        errors = {\n            ...errors,\n            ...checkNotEmpty(t, CREATION_REQUIRED_FIELDS, values),\n        };\n    }\n\n    if (values[FieldsEnum.contract] === null) {\n        errors = {\n            ...errors,\n            ...checkNotEmpty(t, RATE_FIELDS, values, t('common:trucks-page.add-truck.errors.required-rate')),\n            ...checkIsPositiveNumberOrZeroValue(t, RATE_FIELDS, values),\n            ...checkMaxValue(t, RATE_FIELDS, values, MAX_RATE),\n        };\n    }\n\n    return errors;\n};\n\nexport default validate;\n","// extracted by mini-css-extract-plugin\nexport default {\"pill\":\"PillLabel__pill___NSYWC\",\"pill--theme-black\":\"PillLabel__pill--theme-black___poaLl\",\"pill--theme-black-30\":\"PillLabel__pill--theme-black-30___O1_ph\",\"pill--theme-charcoal\":\"PillLabel__pill--theme-charcoal___r3G72\",\"pill--theme-grey\":\"PillLabel__pill--theme-grey___jV71z\",\"pill--theme-slate\":\"PillLabel__pill--theme-slate___mIYe8\",\"pill--theme-brand-dark\":\"PillLabel__pill--theme-brand-dark___aygiA\",\"pill--theme-light\":\"PillLabel__pill--theme-light____2ohZ\",\"pill--theme-light-30\":\"PillLabel__pill--theme-light-30___JPHEy\",\"pill--theme-brand-accent\":\"PillLabel__pill--theme-brand-accent___n8FiL\",\"pill--theme-brand-accent-30\":\"PillLabel__pill--theme-brand-accent-30___TvJQN\",\"pill--theme-orange\":\"PillLabel__pill--theme-orange___IaDNx\",\"pill--theme-azul\":\"PillLabel__pill--theme-azul___ajnqP\",\"pill--theme-tomato-red\":\"PillLabel__pill--theme-tomato-red___MaBIH\",\"pill--theme-tomato-red-70\":\"PillLabel__pill--theme-tomato-red-70___yQ28f\",\"pill--theme-blaze-orange\":\"PillLabel__pill--theme-blaze-orange___WZNhL\",\"pill--theme-pewter-blue\":\"PillLabel__pill--theme-pewter-blue___hc5_N\",\"pill--theme-tumbleweed\":\"PillLabel__pill--theme-tumbleweed___VTRre\",\"pill--theme-light-slate-gray\":\"PillLabel__pill--theme-light-slate-gray___akiBO\",\"pill--is-symmetrical\":\"PillLabel__pill--is-symmetrical___IySMa\",\"pill--is-rounded\":\"PillLabel__pill--is-rounded____KEbH\",\"pill--is-no-wrap\":\"PillLabel__pill--is-no-wrap___DN4EK\",\"fadeIn\":\"PillLabel__fadeIn___vFYrV\",\"blinking\":\"PillLabel__blinking___Y5_1c\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './CompletedPartnerDocumentCard.scss';\nimport { Trans } from 'react-i18next';\nimport { ApiDocumentTypeT, ApiPartnerTypeT } from 'common/utils/api/models';\nimport AsyncDictDocumentNameLabel from 'common/components/AsyncDictDocumentNameLabel/AsyncDictDocumentNameLabel';\nimport PartnerName from 'broker-admin/components/notification-cards/entities/PartnerName/PartnerName';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    partnerName: string;\n    partnerType: ApiPartnerTypeT | null;\n    documentType: ApiDocumentTypeT;\n};\n\nconst CompletedPartnerDocumentCard: React.FC<PropsT> = React.memo((props) => {\n    const { partnerName, partnerType, documentType } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"notifications.partner-document-completed\"\n                components={{\n                    partnerName: <PartnerName partnerName={partnerName} />,\n                    documentName: (\n                        <AsyncDictDocumentNameLabel\n                            className={cx('document-name')}\n                            partnerType={partnerType}\n                            documentType={documentType}\n                        />\n                    ),\n                }}\n            />\n        </div>\n    );\n});\n\nexport default CompletedPartnerDocumentCard;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './CostsCell.scss';\n\nimport Money from 'common/components/Money/Money';\nimport { CurrencyEnum } from 'common/constants';\nimport ColoredDiff from 'common/components/ColoredDiff/ColoredDiff';\nimport MoneyDiff from 'common/components/MoneyDiff/MoneyDiff';\n\ntype PropsT = {\n    basePrice: number | undefined;\n    lowestBidsPrice: number | undefined;\n};\n\nconst cx = classNames.bind(styles);\n\nconst CostsCell: React.FC<PropsT> = React.memo((props) => {\n    const { basePrice, lowestBidsPrice } = props;\n\n    return (\n        <div className={cx('wrap')}>\n            <div className={cx('money')}>\n                <Money amount={basePrice} currency={CurrencyEnum.EUR} />\n            </div>\n            <div className={cx('money')}>\n                <MoneyDiff baseValue={lowestBidsPrice} value={basePrice}>\n                    {(diff) => (\n                        <ColoredDiff diff={diff}>\n                            <Money amount={lowestBidsPrice} currency={CurrencyEnum.EUR} />\n                        </ColoredDiff>\n                    )}\n                </MoneyDiff>\n            </div>\n        </div>\n    );\n});\n\nexport default CostsCell;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { EvidenceOfTaxDetailsT } from 'common/store/documents/models';\n\nconst DEFAULT_VALUES: FormValuesT = {\n    [FieldsEnum.taxId]: '',\n    [FieldsEnum.vatNumber]: '',\n    [FieldsEnum.iban]: '',\n    [FieldsEnum.bic]: '',\n};\n\nconst getInitialValues = (evidenceOfTaxDetails: EvidenceOfTaxDetailsT | null): FormValuesT => {\n    if (!evidenceOfTaxDetails) {\n        return { ...DEFAULT_VALUES };\n    }\n\n    return {\n        [FieldsEnum.taxId]: evidenceOfTaxDetails.taxId || '',\n        [FieldsEnum.vatNumber]: evidenceOfTaxDetails.vat || '',\n        [FieldsEnum.iban]: evidenceOfTaxDetails.iban || '',\n        [FieldsEnum.bic]: evidenceOfTaxDetails.bic || '',\n    };\n};\n\nexport default getInitialValues;\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"ErrorTraceId__content___FP9qH\",\"fadeIn\":\"ErrorTraceId__fadeIn___tWRhm\",\"blinking\":\"ErrorTraceId__blinking___T0JaF\"};","import React from 'react';\n\nimport { useFormikContext } from 'formik';\nimport FormikField, {\n    FormikFieldChildrenPropsT,\n    FormikFieldPropsT,\n} from 'common/components/forms/FormikField/FormikField';\nimport get from 'lodash/get';\nimport FormAsyncErrorsContext from '../contexts/form-async-errors-context';\n\nexport type PropsT<TFieldValues extends FieldValues, TFieldPath extends FieldPath<TFieldValues>> = Omit<\n    FormikFieldPropsT<FieldPathValue<TFieldValues, TFieldPath>>,\n    'children' | 'name' | 'setFieldValue' | 'setFieldTouched' | 'meta'\n> & {\n    name: TFieldPath;\n    children: (\n        props: FormikFieldChildrenPropsT<FieldPathValue<TFieldValues, TFieldPath>>,\n        extendsProps: {\n            name: TFieldPath;\n            value: FieldPathValue<TFieldValues, TFieldPath>;\n        },\n    ) => React.ReactElement | null;\n};\n\nconst FormikConnectContextField = <TFieldValues extends FieldValues, TFieldPath extends FieldPath<TFieldValues>>(\n    props: PropsT<TFieldValues, TFieldPath>,\n) => {\n    const { name, children, ...restProps } = props;\n\n    const formik = useFormikContext<TFieldValues>();\n    const asyncErrorsContext = React.useContext(FormAsyncErrorsContext);\n\n    const value = get(formik.values, name);\n    const error = get(formik.errors, name);\n\n    const asyncError = get(asyncErrorsContext?.asyncFormErrors, name);\n\n    const extendsProps = React.useMemo(() => {\n        return {\n            name,\n            value,\n        };\n    }, [name, value]);\n\n    return (\n        <FormikField<FieldPathValue<TFieldValues, TFieldPath>>\n            name={name}\n            error={error}\n            meta={formik.getFieldMeta(name)}\n            setFieldValue={formik.setFieldValue}\n            setFieldTouched={formik.setFieldTouched}\n            asyncError={asyncError}\n            resetAsyncError={asyncErrorsContext?.resetAsyncFormErrors}\n            {...restProps}\n        >\n            {(props) => children(props, extendsProps)}\n        </FormikField>\n    );\n};\n\nexport default React.memo(FormikConnectContextField) as typeof FormikConnectContextField;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './TransportOrdersTable.scss';\nimport { useTranslation } from 'react-i18next';\nimport StatusCell from './cell-renderers/StatusCell/StatusCell';\nimport CostCell from 'common/components/Table/cell-renderers/CostCell/CostCell';\nimport Table, { TableColumnT, TableRowMetaT, TableRowModsEnum } from 'common/components/Table/Table';\nimport { TransportOrderT } from 'common/store/transport-orders/models';\nimport LocationCell from './cell-renderers/LocationCell/LocationCell';\nimport ReceivedCell from './cell-renderers/ReceivedCell/ReceivedCell';\nimport MemoizedTable from 'common/components/Table/MemoizedTable/MemoizedTable';\nimport { DirectionEnum } from 'common/constants';\nimport IdCell from 'common/components/Table/cell-renderers/IdCell/IdCell';\nimport WarningIndicatorCell from 'common/components/Table/cell-renderers/WarningIndicatorCell/WarningIndicatorCell';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    orders: Array<TransportOrderT>;\n    className?: string;\n    goToTransportOrderDetails: (event: React.MouseEvent, orderId: string) => void;\n    isLoading: boolean;\n};\n\nconst TransportOrdersTable: React.FC<PropsT> = React.memo((props) => {\n    const { orders, className, goToTransportOrderDetails, isLoading } = props;\n\n    const { t } = useTranslation();\n\n    const columns: Array<TableColumnT<TransportOrderT, void>> = [\n        {\n            renderHeader: () => <span>{t('common:transport-orders-page.table.columns.id')}</span>,\n            headerClassName: cx('table__header', 'table__header--id'),\n            render: (order: TransportOrderT) => <IdCell id={order.number} />,\n            className: cx('table__column', 'table__column--id'),\n            testSelector: 'id',\n        },\n        {\n            renderHeader: () => <span>{t('common:transport-orders-page.table.columns.pickup')}</span>,\n            headerClassName: cx('table__header'),\n            render: (order: TransportOrderT) => <LocationCell order={order} type={DirectionEnum.origin} />,\n            className: cx('table__column'),\n            testSelector: 'pickup',\n        },\n        {\n            renderHeader: () => <span>{t('common:transport-orders-page.table.columns.dropoff')}</span>,\n            headerClassName: cx('table__header'),\n            render: (order: TransportOrderT) => <LocationCell order={order} type={DirectionEnum.destination} />,\n            className: cx('table__column'),\n            testSelector: 'dropoff',\n        },\n        // {\n        //     renderHeader: () => <span>{t('common:transport-orders-page.table.columns.type')}</span>,\n        //     headerClassName: cx('table__header', 'table__header--type'),\n        //     render: (order: TransportOrderT) => <TypeCell order={order} />,\n        //     className: cx('table__column', 'table__column--type'),\n        //     testSelector: 'equipment',\n        // },\n        {\n            renderHeader: () => <span>{t('common:transport-orders-page.table.columns.date')}</span>,\n            headerClassName: cx('table__header'),\n            render: (order: TransportOrderT) => <ReceivedCell order={order} />,\n            className: cx('table__column', 'table__column--create'),\n            testSelector: 'received',\n        },\n        {\n            renderHeader: () => <span>{t('common:transport-orders-page.table.columns.price')}</span>,\n            headerClassName: cx('table__header'),\n            render: (order: TransportOrderT) => <CostCell cost={order.totalCarrierCost} />,\n            className: cx('table__column', 'table__column--status'),\n            testSelector: 'price',\n        },\n        {\n            renderHeader: () => null,\n            headerClassName: cx('table__header'),\n            render: (order: TransportOrderT) => (\n                <WarningIndicatorCell\n                    isShow={!!order.hasWarnings}\n                    tooltipText={t('common:transport-orders-page.table.has-warnings')}\n                />\n            ),\n            className: cx('table__column', 'table__column--has-warnings'),\n            testSelector: 'has-warnings',\n        },\n        {\n            renderHeader: () => <span>{t('common:transport-orders-page.table.columns.status')}</span>,\n            headerClassName: cx('table__header'),\n            render: (order: TransportOrderT) => <StatusCell order={order} />,\n            className: cx('table__column', 'table__column--status'),\n            testSelector: 'status',\n        },\n    ];\n\n    const handleSelectRow = (event: React.MouseEvent, order: TransportOrderT) => {\n        if (!order.id) {\n            return;\n        }\n\n        goToTransportOrderDetails(event, order.id);\n    };\n\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const getRowMods = (meta: TableRowMetaT, order: TransportOrderT) => {\n        return {\n            [TableRowModsEnum.hasLeftGreenBorder]: false, // order.status === TransportOrderStatusEnum.done,\n            [TableRowModsEnum.hasLeftRedBorder]: false,\n        };\n    };\n\n    return (\n        <div className={cx('table')}>\n            <MemoizedTable<TransportOrderT> tableName=\"transportOrder\" isLoading={isLoading} rows={orders}>\n                {(rows, isUsedPrevRows) => (\n                    <Table<TransportOrderT, void>\n                        testSelector=\"transport-orders\"\n                        className={className}\n                        columns={columns}\n                        rows={rows}\n                        getRowMods={getRowMods}\n                        onSelectRow={handleSelectRow}\n                        isLoading={isLoading}\n                        isUsedPrevRows={isUsedPrevRows}\n                    />\n                )}\n            </MemoizedTable>\n        </div>\n    );\n});\n\nexport default TransportOrdersTable;\n","import * as React from 'react';\n\nimport Members from 'common/layouts/Members/Members';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectPartnerDetailsById } from 'broker-admin/store/partner/details/selectors';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport { fetchPartnerDetails } from 'broker-admin/store/partner/details/actions';\nimport { logWarning } from 'common/utils/logger';\n\ntype PropsT = {};\n\nconst BrokerUsersLayout: React.FC<PropsT> = React.memo(() => {\n    const dispatch = useDispatch();\n\n    const { partnerId } = usePartnerContext();\n\n    React.useEffect(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId');\n            return;\n        }\n\n        dispatch(fetchPartnerDetails(partnerId));\n    }, [dispatch, partnerId]);\n\n    const partnerDetailsById = useSelector(selectPartnerDetailsById);\n    const partnerDetails = partnerDetailsById[partnerId as PartnerIdT] || null;\n\n    return <Members isLockedProfile={partnerDetails?.locked} />;\n});\n\nexport default BrokerUsersLayout;\n","import * as React from 'react';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { AppliedRuleT } from 'common/store/order-creation/models';\nimport RuleImpact from 'common/components/RuleImpact/RuleImpact';\nimport classNames from 'classnames/bind';\nimport { RuleImpactStrategyEnum } from 'broker-admin/utils/api/broker-tranziit/models';\nimport cs from 'classnames';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { ApiPriceRuleTypeT, PriceRuleTypeEnum } from 'common/utils/api/models';\n\nimport styles from './PriceRuleImpactPill.scss';\nimport { useTranslation } from 'react-i18next';\n\nconst cx = classNames.bind(styles);\n\nconst ruleTypeI18nMap: Record<ApiPriceRuleTypeT, string> = {\n    [PriceRuleTypeEnum.basic]: 'common:short-rule-type.labels.basic',\n    [PriceRuleTypeEnum.carrier]: 'common:short-rule-type.labels.carrier',\n    [PriceRuleTypeEnum.shipper]: 'common:short-rule-type.labels.shipper',\n    [PriceRuleTypeEnum.custom]: 'common:short-rule-type.labels.custom',\n};\n\nconst ruleTypeTooltipsI18nMap: Record<ApiPriceRuleTypeT, string | null> = {\n    [PriceRuleTypeEnum.basic]: null,\n    [PriceRuleTypeEnum.carrier]: null,\n    [PriceRuleTypeEnum.shipper]: null,\n    [PriceRuleTypeEnum.custom]: 'common:short-rule-type.tooltip.custom',\n};\n\nconst ruleTypeThemeMap: Record<ApiPriceRuleTypeT, PillLabelThemeEnum> = {\n    [PriceRuleTypeEnum.basic]: PillLabelThemeEnum.lightSlateGray,\n    [PriceRuleTypeEnum.carrier]: PillLabelThemeEnum.tumbleweed,\n    [PriceRuleTypeEnum.shipper]: PillLabelThemeEnum.pewterBlue,\n    [PriceRuleTypeEnum.custom]: PillLabelThemeEnum.tomatoRed70,\n};\n\ntype PropsT = {\n    className?: string;\n    typeClassName?: string;\n    ruleClassName?: string;\n    rule?: AppliedRuleT | null | undefined;\n    isNotActual?: boolean;\n};\n\nconst PriceRuleImpactPill: React.FC<PropsT> = React.memo((props) => {\n    const { className, typeClassName, ruleClassName, rule, isNotActual } = props;\n\n    const { t } = useTranslation();\n\n    if (!rule) {\n        return null;\n    }\n\n    let theme = PillLabelThemeEnum.charcoal;\n    if (isNotActual) {\n        theme = PillLabelThemeEnum.tomatoRed70;\n    } else if (rule?.valueType === RuleImpactStrategyEnum.value) {\n        theme = PillLabelThemeEnum.slate;\n    } else if (rule.value > 0 && rule?.valueType === RuleImpactStrategyEnum.percent) {\n        theme = PillLabelThemeEnum.orange;\n    } else if (rule.value < 0 && rule?.valueType === RuleImpactStrategyEnum.percent) {\n        theme = PillLabelThemeEnum.brandAccent;\n    }\n\n    const tooltipsI18n = ruleTypeTooltipsI18nMap[rule.ruleType];\n\n    return (\n        <Tooltip\n            className={cs(cx('wrap'), className)}\n            position={TooltipPositionEnum.topCenter}\n            theme={TooltipThemeEnum.black}\n            tooltipNode={\n                tooltipsI18n ? (\n                    <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                        {t(tooltipsI18n)}\n                    </TooltipContent>\n                ) : null\n            }\n        >\n            {() => (\n                <div>\n                    <PillLabel\n                        theme={ruleTypeThemeMap[rule.ruleType]}\n                        className={cs(cx('type'), typeClassName)}\n                        isSymmetrical\n                    >\n                        {t(ruleTypeI18nMap[rule.ruleType])}\n                    </PillLabel>\n                    <PillLabel\n                        theme={theme}\n                        className={cs(cx('rule'), ruleClassName)}\n                        isSymmetrical\n                        testSelector=\"rule-impact-pill\"\n                    >\n                        {rule?.name}: <RuleImpact key={rule.name} value={rule.value} impactStrategy={rule.valueType} />\n                    </PillLabel>\n                </div>\n            )}\n        </Tooltip>\n    );\n});\n\nexport default PriceRuleImpactPill;\n","import React, { memo } from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './DatePicker.scss';\n\nimport Calendar, {\n    CalendarDateRangeValuePropsT,\n    CalendarDateValuePropsT,\n} from 'design-system/components/Calendar/Calendar';\nimport DateInputTrigger, {\n    InputDateValuePropsT,\n    InputRangeValuePropsT,\n} from 'design-system/components/date-pickers/internals/DateInputTrigger/DateInputTrigger';\nimport CalendarIcon from 'common/icons/CalendarIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport DatePickerOverlay, { DatePickerOverlayPositionEnum } from '../internals/DatePickerOverlay/DatePickerOverlay';\nimport useTestSelector from 'common/utils/hooks/useTestSelector';\nimport { getISOFutureDate, getISOPastDate } from 'common/utils/time';\nimport { useTranslation } from 'react-i18next';\n\nconst cx = classNames.bind(styles);\n\ntype BasePropsT = {\n    name?: string;\n    placeholder?: string;\n    isDisabled?: boolean;\n    minDate?: string;\n    maxDate?: string;\n    overlayPosition?: DatePickerOverlayPositionEnum;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    hasYearMonthForm?: boolean;\n    autoComplete?: string;\n    testSelectorPrefix?: string;\n    hasChanges?: boolean;\n    onBlur?: () => void;\n    onFocus?: () => void;\n    inputClassName?: string;\n    hasClearControl?: boolean;\n    className?: string;\n};\n\nexport type DatePickerPropsT = (BasePropsT & CalendarDateValuePropsT) | (BasePropsT & CalendarDateRangeValuePropsT);\n\nconst ENTER_KEY = 'Enter';\n\ntype RangePresetT = {\n    minDate?: BasePropsT['minDate'];\n    maxDate?: BasePropsT['maxDate'];\n};\n\nexport const datePicketRangePresets = {\n    get documentValidTill(): RangePresetT {\n        return {\n            maxDate: getISOFutureDate(10, 'year'),\n            minDate: getISOPastDate(0, 'year'),\n        };\n    },\n\n    get anyFutureDate(): RangePresetT {\n        return {\n            minDate: getISOPastDate(0, 'year'),\n        };\n    },\n\n    get birthday(): RangePresetT {\n        return {\n            maxDate: getISOPastDate(18, 'year'),\n            minDate: getISOPastDate(90, 'year'),\n        };\n    },\n};\n\n/* eslint-disable react/destructuring-assignment */\nconst DatePicker: React.FC<DatePickerPropsT> = memo((props) => {\n    const {\n        name,\n        onFocus,\n        onBlur,\n        isDisabled,\n        minDate,\n        maxDate,\n        overlayPosition,\n        hasError,\n        hasWarning,\n        hasYearMonthForm,\n        hasChanges,\n        autoComplete,\n        testSelectorPrefix,\n        inputClassName,\n        hasClearControl,\n        className,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const defaultPlaceholder = props.isRange\n        ? t('common:common-components.date-range-picker.placeholder')\n        : t('common:common-components.date-picker.placeholder');\n    const placeholder = props.placeholder || defaultPlaceholder;\n\n    const [isOpen, toggleOpen] = React.useState(false);\n    const triggerRef = React.useRef<HTMLDivElement>(null);\n\n    const handleCalendarRangeChange: CalendarDateRangeValuePropsT['onChange'] = (value, selectedDate) => {\n        if (props.isRange) {\n            props.onChange(value, selectedDate);\n        }\n    };\n\n    const handleCalendarDateChange: CalendarDateValuePropsT['onChange'] = (value, selectedDate) => {\n        toggleOpen(false);\n\n        if (!props.isRange) {\n            props.onChange(value, selectedDate);\n        }\n\n        if (onBlur) {\n            onBlur();\n        }\n    };\n\n    const handleOpen = () => {\n        if (isDisabled) {\n            return;\n        }\n\n        toggleOpen(true);\n    };\n\n    const handleOuterEvent = () => {\n        toggleOpen(false);\n\n        if (onBlur) {\n            onBlur();\n        }\n    };\n\n    const handleInputKeyUp = (event: React.KeyboardEvent<HTMLInputElement>) => {\n        if (event.key === ENTER_KEY) {\n            toggleOpen(false);\n\n            if (onBlur) {\n                onBlur();\n            }\n        }\n    };\n\n    const testSelector = useTestSelector(testSelectorPrefix, 'date-picker');\n\n    let calendarValueProps: CalendarDateValuePropsT | CalendarDateRangeValuePropsT;\n    if (props.isRange) {\n        calendarValueProps = {\n            isRange: true,\n            value: props.value,\n            initialValue: props.initialValue,\n            onChange: handleCalendarRangeChange,\n            focusInitialDate: props.value?.from,\n        };\n    } else {\n        calendarValueProps = {\n            isRange: false,\n            value: props.value,\n            initialValue: props.initialValue,\n            onChange: handleCalendarDateChange,\n            focusInitialDate: props.value,\n        };\n    }\n\n    let inputDateValueProps: InputDateValuePropsT | InputRangeValuePropsT;\n    if (props.isRange) {\n        inputDateValueProps = {\n            isRange: true,\n            value: props.value,\n            onChange: handleCalendarRangeChange,\n        };\n    } else {\n        inputDateValueProps = {\n            isRange: false,\n            value: props.value,\n            onChange: handleCalendarDateChange,\n        };\n    }\n\n    return (\n        <div className={cs(cx('dropdown'), className)} data-test-selector={testSelector}>\n            <div className={cx('input')}>\n                <div className={cx('trigger')} ref={triggerRef} onClick={handleOpen}>\n                    <DateInputTrigger\n                        {...inputDateValueProps}\n                        className={inputClassName}\n                        name={name || 'datepicker'}\n                        placeholder={placeholder}\n                        hasError={hasError}\n                        onKeyUp={handleInputKeyUp}\n                        onFocus={onFocus}\n                        hasWarning={hasWarning}\n                        isDisabled={isDisabled}\n                        isForcedFocused={isOpen}\n                        hasChanges={hasChanges}\n                        autoComplete={autoComplete}\n                        hasClearControl={hasClearControl}\n                        renderLeftIcon={(iconMeta) => (\n                            <CalendarIcon\n                                size={DEFAULT_ICON_SIZE}\n                                fillColor={\n                                    iconMeta?.hasValue || iconMeta?.isFocused\n                                        ? StyleGuideColorsEnum.brandAccent\n                                        : StyleGuideColorsEnum.white\n                                }\n                                strokeColor={\n                                    iconMeta?.hasValue || iconMeta?.isFocused\n                                        ? StyleGuideColorsEnum.brandDark\n                                        : StyleGuideColorsEnum.light\n                                }\n                            />\n                        )}\n                    />\n                </div>\n                <DatePickerOverlay\n                    isOpen={isOpen}\n                    position={overlayPosition}\n                    referenceElement={triggerRef.current}\n                    onClose={handleOuterEvent}\n                >\n                    <Calendar\n                        minDate={minDate}\n                        maxDate={maxDate}\n                        hasYearMonthForm={hasYearMonthForm}\n                        {...calendarValueProps}\n                    />\n                </DatePickerOverlay>\n            </div>\n        </div>\n    );\n});\n\nexport default DatePicker;\nexport { DatePickerOverlayPositionEnum };\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './EditOfferTotalPriceLayout.scss';\n\nimport { useTranslation } from 'react-i18next';\nimport { CURRENCY_SYMBOLS, DEFAULT_ICON_SIZE, KeyEnum, StyleGuideColorsEnum } from 'common/constants';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport isNumber from 'lodash/isNumber';\nimport Input from 'common/components/Input/Input';\nimport RestoreIcon from 'common/icons/RestoreIcon';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport DoneIcon from 'common/icons/DoneIcon';\nimport { costToString } from 'common/components/price-details/utils';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport { getMoneyMask } from 'common/utils/input-masks';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    sourcePrice: number | null;\n    price: number | null;\n    onChangePrice: (price: number | null) => void;\n};\n\nconst EditOfferTotalPriceLayout: React.FC<PropsT> = React.memo((props) => {\n    const { sourcePrice, price, onChangePrice } = props;\n\n    const { t } = useTranslation();\n\n    const moneyMask = React.useMemo(() => getMoneyMask(), []);\n\n    const [inputValue, setInputValue] = React.useState<string>(costToString(price));\n\n    const handleCancelEditing = React.useCallback(() => {\n        setInputValue(costToString(price));\n\n        onChangePrice(price);\n    }, [onChangePrice, price]);\n\n    const handleRestore = React.useCallback(() => {\n        setInputValue(costToString(sourcePrice));\n\n        onChangePrice(null);\n    }, [onChangePrice, sourcePrice]);\n\n    const handleConfirmEditing = React.useCallback(() => {\n        const parsedInputValue = parseSimpleNumber(inputValue) || 0;\n\n        if (!inputValue || parsedInputValue === sourcePrice) {\n            handleRestore();\n        } else {\n            onChangePrice(parsedInputValue);\n        }\n    }, [onChangePrice, sourcePrice, inputValue, handleRestore]);\n\n    React.useEffect(() => {\n        setInputValue(costToString(price));\n    }, [price]);\n\n    const isChangedPrice = isNumber(sourcePrice) && isNumber(price) && sourcePrice !== price;\n\n    const handleKeyUp = React.useCallback(\n        (event: React.KeyboardEvent<HTMLInputElement>) => {\n            if (event.key === KeyEnum.enter) {\n                handleConfirmEditing();\n            }\n\n            if (event.key === KeyEnum.escape) {\n                handleCancelEditing();\n            }\n        },\n        [handleConfirmEditing, handleCancelEditing],\n    );\n\n    return (\n        <div className={cx('details')} data-test-selector=\"edit-offer-total-price\">\n            <div className={cx('input-wrap')}>\n                <Input\n                    className={cx('input')}\n                    name=\"custom-value\"\n                    value={inputValue}\n                    onChange={setInputValue}\n                    mask={moneyMask}\n                    rightNode={CURRENCY_SYMBOLS.EUR}\n                    onKeyUp={handleKeyUp}\n                    autoFocus\n                />\n            </div>\n            <div className={cx('controls')}>\n                {isChangedPrice && (\n                    <Tooltip\n                        position={TooltipPositionEnum.topCenter}\n                        theme={TooltipThemeEnum.black}\n                        tooltipNode={\n                            <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                                {t('common:price-details.line-haul.restore-tooltip')}\n                            </TooltipContent>\n                        }\n                    >\n                        {() => (\n                            <TransparentTrigger\n                                onClick={handleRestore}\n                                leftIcon={<RestoreIcon strokeColor={StyleGuideColorsEnum.charcoal} />}\n                                reflectionTheme={ReflectionThemeEnum.light}\n                            />\n                        )}\n                    </Tooltip>\n                )}\n                <TransparentTrigger\n                    onClick={handleCancelEditing}\n                    leftIcon={<CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                    reflectionTheme={ReflectionThemeEnum.light}\n                />\n                <TransparentTrigger\n                    onClick={handleConfirmEditing}\n                    leftIcon={<DoneIcon fillColor={StyleGuideColorsEnum.brandAccent} size={DEFAULT_ICON_SIZE} />}\n                    reflectionTheme={ReflectionThemeEnum.light}\n                />\n            </div>\n        </div>\n    );\n});\n\nexport default EditOfferTotalPriceLayout;\n","import * as React from 'react';\nimport moment from 'moment';\nimport {\n    AlertToastRendererT,\n    AlertToastViewT,\n    CommonAlertTypeEnum,\n    CommonAnyAlert,\n} from 'common/components/toasts/AlertToastsManager/models';\nimport { AlertEmotionEnum, AlertSizeEnum, alertThemeMapByEmotion, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport SquareInfoIcon from 'common/icons/SquareInfoIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { AnyAlert } from 'common/store/alerts/models';\nimport AddAccountDuotineIcon from 'common/icons/AddAccountDuotineIcon';\nimport DeactivateUserIcon from 'common/icons/DeactivateUserIcon';\nimport UserSettingsIcon from 'common/icons/UserSettingsIcon';\nimport { USER_ROLE_T_MAP } from 'common/utils/users';\nimport TrailerIcon from 'common/icons/TrailerIcon';\nimport StopWarningIcon from 'common/icons/StopWarningIcon';\nimport TruckIcon from 'common/icons/TruckIcon';\nimport DeleteIcon from 'common/icons/DeleteIcon';\nimport DriverIcon from 'common/icons/DriverIcon';\nimport DoneIcon from 'common/icons/DoneIcon';\nimport { checkIsSameDay } from 'common/utils/time';\nimport AssetFailedActionFooter from 'common/components/toasts/footers/AssetFailedActionFooter/AssetFailedActionFooter';\nimport XLSIcon from 'common/icons/XLSIcon';\nimport { ApiOrderContextNoteT, TransportOrderStatusEnum } from 'common/utils/api/models';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport { Trans } from 'react-i18next';\nimport { CommonUrlFactoryContextT } from 'common/contexts/common-url-factory-context';\nimport ContactBadgeIcon from 'common/icons/ContactBadgeIcon';\nimport CargoUnitIcon from 'common/icons/CargoUnitIcon';\nimport PaperIcon from 'common/icons/PaperIcon';\nimport EditIcon from 'common/icons/EditIcon';\nimport DocIcon from 'common/icons/DocIcon';\n\nconst DATE_FORMAT = 'Do MMM';\n\nconst formatHMRDate = (date: string | null | undefined): string => {\n    if (!date) {\n        return '-';\n    }\n\n    return moment(date).format(DATE_FORMAT);\n};\n\nconst checkIsCommonAnyAlert = (anyAlert: AnyAlert | null | undefined): anyAlert is CommonAnyAlert => {\n    return anyAlert instanceof CommonAnyAlert;\n};\n\nexport const renderCommonAlertToast = (\n    t: Parameters<AlertToastRendererT>[0],\n    anyAlert: Parameters<AlertToastRendererT>[1],\n    commonUrlFactory: CommonUrlFactoryContextT,\n): AlertToastViewT | null => {\n    if (!checkIsCommonAnyAlert(anyAlert)) {\n        return null;\n    }\n\n    switch (anyAlert.payload.type) {\n        case CommonAlertTypeEnum.userRestored: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: <AddAccountDuotineIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />,\n                text: t('common:alerts.user-restored', {\n                    fullName: anyAlert.payload.data.fullName,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.networkError: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: <StopWarningIcon fillColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.network-error'),\n            };\n        }\n        case CommonAlertTypeEnum.waypointContactUpdated: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.normal],\n                icon: (\n                    <ContactBadgeIcon\n                        fillColor={StyleGuideColorsEnum.transparent}\n                        strokeColor={StyleGuideColorsEnum.white}\n                    />\n                ),\n                text: t('common:alerts.waypoint-contact-updated'),\n            };\n        }\n        case CommonAlertTypeEnum.shipmentUpdated: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.normal],\n                icon: (\n                    <CargoUnitIcon\n                        size={DEFAULT_ICON_SIZE}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                        strokeColor={StyleGuideColorsEnum.white}\n                    />\n                ),\n                text: t('common:alerts.shipment-updated'),\n            };\n        }\n        case CommonAlertTypeEnum.paperAttached: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.normal],\n                icon: (\n                    <PaperIcon\n                        size={DEFAULT_ICON_SIZE}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                        strokeColor={StyleGuideColorsEnum.white}\n                    />\n                ),\n                text: t('common:alerts.paper-attached'),\n            };\n        }\n        case CommonAlertTypeEnum.paperDeleted: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.attention],\n                icon: (\n                    <PaperIcon\n                        size={DEFAULT_ICON_SIZE}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                        strokeColor={StyleGuideColorsEnum.white}\n                    />\n                ),\n                text: t('common:alerts.paper-deleted'),\n            };\n        }\n        case CommonAlertTypeEnum.profileUpdated: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.normal],\n                icon: (\n                    <EditIcon\n                        size={DEFAULT_ICON_SIZE}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                        strokeColor={StyleGuideColorsEnum.white}\n                    />\n                ),\n                text: t('common:alerts.profile-updated'),\n            };\n        }\n        case CommonAlertTypeEnum.orderPlaced: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.positive],\n                icon: null,\n                text: t('common:alerts.order-placed'),\n            };\n        }\n        case CommonAlertTypeEnum.orderCancelled: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.attention],\n                icon: <DeleteIcon fillColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.order-cancelled'),\n            };\n        }\n        case CommonAlertTypeEnum.inviteCanceled: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: <DeactivateUserIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />,\n                text: t('common:alerts.invite-canceled', {\n                    email: anyAlert.payload.data.email,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.contactAdded: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: <AddAccountDuotineIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />,\n                text: t('common:alerts.contact-added', {\n                    fullName: anyAlert.payload.data.fullName,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.emailInvited: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: <AddAccountDuotineIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />,\n                text: t('common:alerts.email-invited', {\n                    email: anyAlert.payload.data.email,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.userRolesChanged: {\n            const roles = anyAlert.payload.data.roles.map((role) => {\n                return t(USER_ROLE_T_MAP[role]).toLocaleLowerCase();\n            });\n\n            const rolesCount = anyAlert.payload.data.roles?.length || 0;\n\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.orange,\n                icon: <UserSettingsIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />,\n                text: t('common:alerts.user-roles-changed', {\n                    fullName: anyAlert.payload.data.fullName,\n                    roles: roles.join(', '),\n                    postProcess: 'interval',\n                    count: rolesCount,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.userDeactivated: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: <DeactivateUserIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />,\n                text: t('common:alerts.user-deactivated', {\n                    fullName: anyAlert.payload.data.fullName,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.contactDeleted: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: <DeactivateUserIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />,\n                text: t('common:alerts.contact-deleted', {\n                    fullName: anyAlert.payload.data.fullName,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.mainContactChanged: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.normal],\n                icon: (\n                    <ContactBadgeIcon\n                        fillColor={StyleGuideColorsEnum.transparent}\n                        strokeColor={StyleGuideColorsEnum.white}\n                    />\n                ),\n                text: t('common:alerts.main-contact-changed'),\n            };\n        }\n        case CommonAlertTypeEnum.contactEdited: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: <AddAccountDuotineIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />,\n                text: t('common:alerts.contact-edited', {\n                    fullName: anyAlert.payload.data.fullName,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.userEdited: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: <AddAccountDuotineIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />,\n                text: t('common:alerts.user-edited', {\n                    fullName: anyAlert.payload.data.fullName,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.trailerAdded: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: (\n                    <TrailerIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trailer-added', {\n                    plateNumber: anyAlert.payload.data.plateNumber,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.trailerSuccessfullyActivated: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: (\n                    <TrailerIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trailer-activated', {\n                    plateNumber: anyAlert.payload.data.plateNumber,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.trailerSuccessfullyXLSImport: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: <XLSIcon fillColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.trailer-successfully-xls-import'),\n            };\n        }\n        case CommonAlertTypeEnum.trailerSuccessfullyArchived: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: (\n                    <TrailerIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trailer-archived', {\n                    plateNumber: anyAlert.payload.data.plateNumber,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.trailersSuccessfullyActivated: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: (\n                    <TrailerIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trailers-successfully-activated', {\n                    count: anyAlert.payload.data.count,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.trailerSuccessfullyEdited: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: (\n                    <TrailerIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trailer-successfully-edited', {\n                    plateNumber: anyAlert.payload.data.plateNumber,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.trailerSuccessfullySetUnavailable: {\n            const isSameDay = checkIsSameDay(anyAlert.payload.data.fromDate, anyAlert.payload.data.toDate);\n\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.orange,\n                icon: <StopWarningIcon fillColor={StyleGuideColorsEnum.white} />,\n                text: isSameDay\n                    ? t('common:alerts.trailer-successfully-set-unavailable-one-date', {\n                          plateNumber: anyAlert.payload.data.plateNumber,\n                          date: formatHMRDate(anyAlert.payload.data.fromDate),\n                      })\n                    : t('common:alerts.trailer-successfully-set-unavailable', {\n                          plateNumber: anyAlert.payload.data.plateNumber,\n                          fromDate: formatHMRDate(anyAlert.payload.data.fromDate),\n                          toDate: formatHMRDate(anyAlert.payload.data.toDate),\n                      }),\n            };\n        }\n        case CommonAlertTypeEnum.trailersSuccessfullyArchived: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: (\n                    <TrailerIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trailers-successfully-archived', {\n                    count: anyAlert.payload.data.count,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.trailersFailedActivate: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: (\n                    <TrailerIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trailers-failed-activate', {\n                    successfulCount: anyAlert.payload.data.successfulCount,\n                    allCount: anyAlert.payload.data.allCount,\n                }),\n                size: AlertSizeEnum.mediumLarge,\n                footer: <AssetFailedActionFooter plateNumbers={anyAlert.payload.data.plateNumbers} />,\n            };\n        }\n        case CommonAlertTypeEnum.trailerFailedActivate: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: (\n                    <TrailerIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trailer-failed-activate', {\n                    plateNumber: anyAlert.payload.data.plateNumber,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.trailersFailedArchived: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: (\n                    <TrailerIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trailers-failed-archived', {\n                    successfulCount: anyAlert.payload.data.successfulCount,\n                    allCount: anyAlert.payload.data.allCount,\n                }),\n                size: AlertSizeEnum.mediumLarge,\n                footer: <AssetFailedActionFooter plateNumbers={anyAlert.payload.data.plateNumbers} />,\n            };\n        }\n        case CommonAlertTypeEnum.trailerFailedArchived: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: (\n                    <TrailerIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trailer-failed-archived', {\n                    plateNumber: anyAlert.payload.data.plateNumber,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.trailerFailedArchivedHasFutureAssignment: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: <StopWarningIcon fillColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.trailer-failed-to-archive'),\n            };\n        }\n        case CommonAlertTypeEnum.trailerSuccessfullyUpdatedContract: {\n            if (anyAlert.payload.data.contractName === null) {\n                return {\n                    id: anyAlert.id,\n                    theme: AlertThemeEnum.brandAccent,\n                    icon: (\n                        <TrailerIcon\n                            size={DEFAULT_ICON_SIZE}\n                            strokeColor={StyleGuideColorsEnum.white}\n                            fillColor={StyleGuideColorsEnum.transparent}\n                        />\n                    ),\n                    text: t('common:alerts.trailer-successfully-unset-contract', {\n                        plateNumber: anyAlert.payload.data.plateNumber,\n                    }),\n                };\n            }\n\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: (\n                    <TrailerIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trailer-successfully-change-contract', {\n                    plateNumber: anyAlert.payload.data.plateNumber,\n                    contractName: anyAlert.payload.data.contractName,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.trailersSuccessfullyUpdatedContract: {\n            if (anyAlert.payload.data.contractName === null) {\n                return {\n                    id: anyAlert.id,\n                    theme: AlertThemeEnum.brandAccent,\n                    icon: (\n                        <TrailerIcon\n                            size={DEFAULT_ICON_SIZE}\n                            strokeColor={StyleGuideColorsEnum.white}\n                            fillColor={StyleGuideColorsEnum.transparent}\n                        />\n                    ),\n                    text: t('common:alerts.trailers-successfully-unset-contract', {\n                        count: anyAlert.payload.data.count,\n                    }),\n                };\n            }\n\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: (\n                    <TrailerIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trailers-successfully-change-contract', {\n                    count: anyAlert.payload.data.count,\n                    contractName: anyAlert.payload.data.contractName,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.trailersFailedUpdateContract: {\n            if (anyAlert.payload.data.contractName === null) {\n                return {\n                    id: anyAlert.id,\n                    theme: AlertThemeEnum.tomatoRed,\n                    icon: (\n                        <TrailerIcon\n                            size={DEFAULT_ICON_SIZE}\n                            strokeColor={StyleGuideColorsEnum.white}\n                            fillColor={StyleGuideColorsEnum.transparent}\n                        />\n                    ),\n                    text: t('common:alerts.trailers-failed-unset-contract', {\n                        successfulCount: anyAlert.payload.data.successfulCount,\n                        allCount: anyAlert.payload.data.allCount,\n                    }),\n                    size: AlertSizeEnum.mediumLarge,\n                    footer: <AssetFailedActionFooter plateNumbers={anyAlert.payload.data.plateNumbers} />,\n                };\n            }\n\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: (\n                    <TrailerIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trailers-failed-change-contract', {\n                    successfulCount: anyAlert.payload.data.successfulCount,\n                    contractName: anyAlert.payload.data.contractName,\n                    allCount: anyAlert.payload.data.allCount,\n                }),\n                size: AlertSizeEnum.mediumLarge,\n                footer: <AssetFailedActionFooter plateNumbers={anyAlert.payload.data.plateNumbers} />,\n            };\n        }\n        case CommonAlertTypeEnum.trailerFailedUpdateContract: {\n            if (anyAlert.payload.data.contractName === null) {\n                return {\n                    id: anyAlert.id,\n                    theme: AlertThemeEnum.tomatoRed,\n                    icon: (\n                        <TrailerIcon\n                            size={DEFAULT_ICON_SIZE}\n                            strokeColor={StyleGuideColorsEnum.white}\n                            fillColor={StyleGuideColorsEnum.transparent}\n                        />\n                    ),\n                    text: t('common:alerts.trailer-failed-unset-contract', {\n                        plateNumber: anyAlert.payload.data.plateNumber,\n                    }),\n                };\n            }\n\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: (\n                    <TrailerIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trailer-failed-change-contract', {\n                    plateNumber: anyAlert.payload.data.plateNumber,\n                    contractName: anyAlert.payload.data.contractName,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.trailerSuccessfullyUpdatedRate: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: (\n                    <TrailerIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trailer-successfully-change-rate', {\n                    plateNumber: anyAlert.payload.data.plateNumber,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.trailersSuccessfullyUpdatedRate: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: (\n                    <TrailerIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trailers-successfully-change-rate', {\n                    count: anyAlert.payload.data.count,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.trailersFailedUpdateRate: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: (\n                    <TrailerIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trailers-failed-change-rate', {\n                    successfulCount: anyAlert.payload.data.successfulCount,\n                    allCount: anyAlert.payload.data.allCount,\n                }),\n                size: AlertSizeEnum.mediumLarge,\n                footer: <AssetFailedActionFooter plateNumbers={anyAlert.payload.data.plateNumbers} />,\n            };\n        }\n        case CommonAlertTypeEnum.trailerFailedUpdateRate: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: (\n                    <TrailerIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trailer-failed-change-rate', {\n                    plateNumber: anyAlert.payload.data.plateNumber,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.truckAdded: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: (\n                    <TruckIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.truck-added', {\n                    plateNumber: anyAlert.payload.data.plateNumber,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.truckSuccessfullyActivated: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: (\n                    <TruckIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.truck-activated', {\n                    plateNumber: anyAlert.payload.data.plateNumber,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.truckSuccessfullyArchived: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: (\n                    <TruckIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.truck-archived', {\n                    plateNumber: anyAlert.payload.data.plateNumber,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.trucksSuccessfullyActivated: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: (\n                    <TruckIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trucks-successfully-activated', {\n                    count: anyAlert.payload.data.count,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.truckSuccessfullyEdited: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: (\n                    <TruckIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.truck-successfully-edited', {\n                    plateNumber: anyAlert.payload.data.plateNumber,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.truckSuccessfullySetUnavailable: {\n            const isSameDay = checkIsSameDay(anyAlert.payload.data.fromDate, anyAlert.payload.data.toDate);\n\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.orange,\n                icon: <StopWarningIcon fillColor={StyleGuideColorsEnum.white} />,\n                text: isSameDay\n                    ? t('common:alerts.truck-successfully-set-unavailable-one-date', {\n                          plateNumber: anyAlert.payload.data.plateNumber,\n                          date: formatHMRDate(anyAlert.payload.data.fromDate),\n                      })\n                    : t('common:alerts.truck-successfully-set-unavailable', {\n                          plateNumber: anyAlert.payload.data.plateNumber,\n                          fromDate: formatHMRDate(anyAlert.payload.data.fromDate),\n                          toDate: formatHMRDate(anyAlert.payload.data.toDate),\n                      }),\n            };\n        }\n        case CommonAlertTypeEnum.trucksSuccessfullyArchived: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: (\n                    <TruckIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trucks-successfully-archived', {\n                    count: anyAlert.payload.data.count,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.trucksFailedActivate: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: (\n                    <TruckIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trucks-failed-activate', {\n                    successfulCount: anyAlert.payload.data.successfulCount,\n                    allCount: anyAlert.payload.data.allCount,\n                }),\n                size: AlertSizeEnum.mediumLarge,\n                footer: <AssetFailedActionFooter plateNumbers={anyAlert.payload.data.plateNumbers} />,\n            };\n        }\n        case CommonAlertTypeEnum.truckFailedActivate: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: (\n                    <TruckIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.truck-failed-activate', {\n                    plateNumber: anyAlert.payload.data.plateNumber,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.trucksFailedArchived: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: (\n                    <TruckIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trucks-failed-archived', {\n                    successfulCount: anyAlert.payload.data.successfulCount,\n                    allCount: anyAlert.payload.data.allCount,\n                }),\n                size: AlertSizeEnum.mediumLarge,\n                footer: <AssetFailedActionFooter plateNumbers={anyAlert.payload.data.plateNumbers} />,\n            };\n        }\n        case CommonAlertTypeEnum.truckFailedArchived: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: (\n                    <TruckIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.truck-failed-archived', {\n                    plateNumber: anyAlert.payload.data.plateNumber,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.truckFailedArchivedHasFutureAssignment: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: <StopWarningIcon fillColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.truck-failed-to-archive'),\n            };\n        }\n        case CommonAlertTypeEnum.truckCantBeOnTimeForNextTour: {\n            const { status, entityType, nextTransportOrderId, nextTransportOrderNumber, carrierId } =\n                anyAlert.payload.data;\n\n            let i18nKey = 'common:alerts.truck-cant-be-on-time-for-next-tour';\n            if (entityType === 'TRANSPORTATION_ORDER' && status === TransportOrderStatusEnum.declined) {\n                i18nKey = 'common:alerts.transport-order-failed-decline-next-tour';\n            } else if (entityType === 'TRANSPORTATION_ORDER' && status === TransportOrderStatusEnum.canceled) {\n                i18nKey = 'common:alerts.transport-order-failed-cancel-next-tour';\n            }\n\n            const nextTransportOrderUrl = commonUrlFactory.transportOrderDetails(carrierId, nextTransportOrderId);\n            const text = nextTransportOrderUrl ? (\n                <Trans\n                    t={t}\n                    i18nKey={i18nKey}\n                    values={{ nextToNumber: nextTransportOrderNumber }}\n                    components={{\n                        nextToLink: <Link theme={LinkThemeEnum.boldWhite} to={nextTransportOrderUrl} />,\n                    }}\n                />\n            ) : (\n                t(i18nKey, { nextToNumber: nextTransportOrderNumber })\n            );\n\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: null,\n                text,\n            };\n        }\n        case CommonAlertTypeEnum.trailerCantBeOnTimeForNextTour: {\n            const { status, entityType, nextTransportOrderId, nextTransportOrderNumber, carrierId } =\n                anyAlert.payload.data;\n\n            let i18nKey = 'common:alerts.trailer-cant-be-on-time-for-next-tour';\n            if (entityType === 'TRANSPORTATION_ORDER' && status === TransportOrderStatusEnum.declined) {\n                i18nKey = 'common:alerts.transport-order-failed-decline-next-tour';\n            } else if (entityType === 'TRANSPORTATION_ORDER' && status === TransportOrderStatusEnum.canceled) {\n                i18nKey = 'common:alerts.transport-order-failed-cancel-next-tour';\n            }\n\n            const nextTransportOrderUrl = commonUrlFactory.transportOrderDetails(carrierId, nextTransportOrderId);\n            const text = nextTransportOrderUrl ? (\n                <Trans\n                    t={t}\n                    i18nKey={i18nKey}\n                    values={{ nextToNumber: nextTransportOrderNumber }}\n                    components={{\n                        nextToLink: <Link theme={LinkThemeEnum.boldWhite} to={nextTransportOrderUrl} />,\n                    }}\n                />\n            ) : (\n                t(i18nKey, { nextToNumber: nextTransportOrderNumber })\n            );\n\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: null,\n                text,\n            };\n        }\n        case CommonAlertTypeEnum.truckSuccessfullyUpdatedContract: {\n            if (anyAlert.payload.data.contractName === null) {\n                return {\n                    id: anyAlert.id,\n                    theme: AlertThemeEnum.brandAccent,\n                    icon: (\n                        <TruckIcon\n                            size={DEFAULT_ICON_SIZE}\n                            strokeColor={StyleGuideColorsEnum.white}\n                            fillColor={StyleGuideColorsEnum.transparent}\n                        />\n                    ),\n                    text: t('common:alerts.truck-successfully-unset-contract', {\n                        plateNumber: anyAlert.payload.data.plateNumber,\n                    }),\n                };\n            }\n\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: (\n                    <TruckIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.truck-successfully-change-contract', {\n                    plateNumber: anyAlert.payload.data.plateNumber,\n                    contractName: anyAlert.payload.data.contractName,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.trucksSuccessfullyUpdatedContract: {\n            if (anyAlert.payload.data.contractName === null) {\n                return {\n                    id: anyAlert.id,\n                    theme: AlertThemeEnum.brandAccent,\n                    icon: (\n                        <TruckIcon\n                            size={DEFAULT_ICON_SIZE}\n                            strokeColor={StyleGuideColorsEnum.white}\n                            fillColor={StyleGuideColorsEnum.transparent}\n                        />\n                    ),\n                    text: t('common:alerts.trucks-successfully-unset-contract', {\n                        count: anyAlert.payload.data.count,\n                    }),\n                };\n            }\n\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: (\n                    <TruckIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trucks-successfully-change-contract', {\n                    count: anyAlert.payload.data.count,\n                    contractName: anyAlert.payload.data.contractName,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.trucksFailedUpdateContract: {\n            if (anyAlert.payload.data.contractName === null) {\n                return {\n                    id: anyAlert.id,\n                    theme: AlertThemeEnum.tomatoRed,\n                    icon: (\n                        <TruckIcon\n                            size={DEFAULT_ICON_SIZE}\n                            strokeColor={StyleGuideColorsEnum.white}\n                            fillColor={StyleGuideColorsEnum.transparent}\n                        />\n                    ),\n                    text: t('common:alerts.trucks-failed-unset-contract', {\n                        successfulCount: anyAlert.payload.data.successfulCount,\n                        allCount: anyAlert.payload.data.allCount,\n                    }),\n                    size: AlertSizeEnum.mediumLarge,\n                    footer: <AssetFailedActionFooter plateNumbers={anyAlert.payload.data.plateNumbers} />,\n                };\n            }\n\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: (\n                    <TruckIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trucks-failed-change-contract', {\n                    allCount: anyAlert.payload.data.allCount,\n                    contractName: anyAlert.payload.data.contractName,\n                    successfulCount: anyAlert.payload.data.successfulCount,\n                }),\n                size: AlertSizeEnum.mediumLarge,\n                footer: <AssetFailedActionFooter plateNumbers={anyAlert.payload.data.plateNumbers} />,\n            };\n        }\n        case CommonAlertTypeEnum.truckFailedUpdateContract: {\n            if (anyAlert.payload.data.contractName === null) {\n                return {\n                    id: anyAlert.id,\n                    theme: AlertThemeEnum.tomatoRed,\n                    icon: (\n                        <TruckIcon\n                            size={DEFAULT_ICON_SIZE}\n                            strokeColor={StyleGuideColorsEnum.white}\n                            fillColor={StyleGuideColorsEnum.transparent}\n                        />\n                    ),\n                    text: t('common:alerts.truck-failed-unset-contract', {\n                        plateNumber: anyAlert.payload.data.plateNumber,\n                    }),\n                };\n            }\n\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: (\n                    <TruckIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.truck-failed-change-contract', {\n                    plateNumber: anyAlert.payload.data.plateNumber,\n                    contractName: anyAlert.payload.data.contractName,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.truckSuccessfullyUpdatedRate: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: (\n                    <TruckIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.truck-successfully-change-rate', {\n                    plateNumber: anyAlert.payload.data.plateNumber,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.trucksSuccessfullyUpdatedRate: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: (\n                    <TruckIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trucks-successfully-change-rate', {\n                    count: anyAlert.payload.data.count,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.trucksFailedUpdateRate: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: (\n                    <TruckIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.trucks-failed-change-rate', {\n                    successfulCount: anyAlert.payload.data.successfulCount,\n                    allCount: anyAlert.payload.data.allCount,\n                }),\n                size: AlertSizeEnum.mediumLarge,\n                footer: <AssetFailedActionFooter plateNumbers={anyAlert.payload.data.plateNumbers} />,\n            };\n        }\n        case CommonAlertTypeEnum.truckFailedUpdateRate: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: (\n                    <TruckIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                    />\n                ),\n                text: t('common:alerts.truck-failed-change-rate', {\n                    plateNumber: anyAlert.payload.data.plateNumber,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.truckSuccessfullyXLSImport: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: <XLSIcon fillColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.truck-successfully-xls-import'),\n            };\n        }\n        case CommonAlertTypeEnum.paperDownloadFailed: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: (\n                    <PaperIcon\n                        size={DEFAULT_ICON_SIZE}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                        strokeColor={StyleGuideColorsEnum.white}\n                    />\n                ),\n                text: t('common:alerts.paper-download-failed', {\n                    errorMessage: anyAlert.payload.data.errorMessage,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.driverAssigned: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.normal],\n                icon: <DriverIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.drivers-assigned', {\n                    postProcess: 'interval',\n                    count: anyAlert.payload.data.driversCount,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.driverUnassigned: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.attention],\n                icon: <DriverIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.drivers-unassigned', {\n                    postProcess: 'interval',\n                    count: anyAlert.payload.data.driversCount,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.rfqSuccessfulClosed: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.orange,\n                icon: <DeleteIcon fillColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.rfq-successful-closed'),\n            };\n        }\n        case CommonAlertTypeEnum.spotAssetsAssigned: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.normal],\n                icon: (\n                    <TruckIcon\n                        size={DEFAULT_ICON_SIZE}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                        strokeColor={StyleGuideColorsEnum.white}\n                    />\n                ),\n                text: t('common:alerts.spot-assets-assigned'),\n            };\n        }\n        case CommonAlertTypeEnum.spotAssetsUnassigned: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.attention],\n                icon: (\n                    <TruckIcon\n                        size={DEFAULT_ICON_SIZE}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                        strokeColor={StyleGuideColorsEnum.white}\n                    />\n                ),\n                text: t('common:alerts.spot-assets-unassigned'),\n            };\n        }\n        case CommonAlertTypeEnum.documentUploaded: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.positive],\n                icon: <DocIcon strokeColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.document-uploaded'),\n            };\n        }\n        case CommonAlertTypeEnum.documentUpdated: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.normal],\n                icon: <DocIcon strokeColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.document-updated'),\n            };\n        }\n        case CommonAlertTypeEnum.contractUploaded: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: <DoneIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.contract-uploaded'),\n            };\n        }\n        case CommonAlertTypeEnum.documentApproved: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.positive],\n                icon: <DocIcon strokeColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.document-approved'),\n            };\n        }\n        case CommonAlertTypeEnum.documentRejected: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.attention],\n                icon: <DocIcon strokeColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.document-rejected'),\n            };\n        }\n        case CommonAlertTypeEnum.documentRevoked: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.attention],\n                icon: <DocIcon strokeColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.document-revoked'),\n            };\n        }\n        case CommonAlertTypeEnum.carrierSpotLanesUpdateSuccess: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: <DoneIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.carrier-spot-lanes-updated', {\n                    postProcess: 'interval',\n                    count: anyAlert.payload.data.count,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.carrierSpotLanesDeleteSuccess: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.tomatoRed,\n                icon: <DeleteIcon fillColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.carrier-spot-lanes-deleted', {\n                    postProcess: 'interval',\n                    count: anyAlert.payload.data.count,\n                }),\n            };\n        }\n        case CommonAlertTypeEnum.shipperContractUploaded: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: <DoneIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.shipper-contract-uploaded'),\n            };\n        }\n        case CommonAlertTypeEnum.shipperContractUpdated: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: <DoneIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.shipper-contract-updated'),\n            };\n        }\n        case CommonAlertTypeEnum.shipperContractRevoked: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.orange,\n                icon: <DeleteIcon fillColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.shipper-contract-revoked'),\n            };\n        }\n        case CommonAlertTypeEnum.shipperContractLaneRevoked: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.orange,\n                icon: <DeleteIcon fillColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.shipper-contract-lane-revoked'),\n            };\n        }\n        case CommonAlertTypeEnum.shipperContractLaneUpdated: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: <DoneIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.shipper-contract-lane-updated'),\n            };\n        }\n        case CommonAlertTypeEnum.shipperContractLaneAdded: {\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.brandAccent,\n                icon: <DoneIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.white} />,\n                text: t('common:alerts.shipper-contract-lane-added'),\n            };\n        }\n        case CommonAlertTypeEnum.orderContextNote: {\n            const { note } = anyAlert.payload.data;\n\n            const notesI18n: Record<ApiOrderContextNoteT, string> = {\n                NOT_FOUND_APPROVED_FERRY_ON_ROUTE: 'common:alerts.not-found-approved-ferry-on-route',\n                PRICE_FOR_FERRY_NOT_FOUND: 'common:alerts.price-for-ferry-not-found',\n            };\n\n            return {\n                id: anyAlert.id,\n                theme: AlertThemeEnum.orange,\n                icon: <StopWarningIcon fillColor={StyleGuideColorsEnum.white} />,\n                text: t(notesI18n[note]),\n            };\n        }\n        default: {\n            return null;\n        }\n    }\n\n    return null;\n};\n\nexport const getUnknownAlertToast: AlertToastRendererT = (t, anyAlert) => {\n    return {\n        id: anyAlert.id,\n        theme: AlertThemeEnum.charcoal,\n        icon: <SquareInfoIcon fillColor={StyleGuideColorsEnum.white} />,\n        text: t('common:alerts.unknown'),\n    };\n};\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PositionsCell.scss';\nimport { useTranslation } from 'react-i18next';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { CompanyContactT } from 'common/store/members/models';\nimport UserRolePill from 'common/components/pills/UserRolePill/UserRolePill';\nimport UserMainPill from 'common/components/pills/UserMainPill/UserMainPill';\nimport UserPositionPill from 'common/components/pills/UserPositionPill/UserPositionPill';\n\ntype PropsT = {\n    contact: CompanyContactT;\n};\n\nconst cx = classNames.bind(styles);\n\nconst PositionsCell: React.FC<PropsT> = React.memo((props) => {\n    const { contact } = props;\n    const { userId, roles } = contact;\n\n    const { t } = useTranslation();\n\n    const hasUser = !!userId;\n\n    return (\n        <div className={cx('positions')}>\n            {!hasUser && (\n                <PillLabel className={cx('pill')} theme={PillLabelThemeEnum.grey} isSymmetrical>\n                    {t('common:team-members.contact')}\n                </PillLabel>\n            )}\n            {contact.main && <UserMainPill className={cx('pill')} />}\n            {contact.position && <UserPositionPill className={cx('pill')} position={contact.position} />}\n            {(roles || []).map((role, index) => {\n                if (!role) {\n                    return null;\n                }\n\n                return <UserRolePill key={`${role}-${index}`} className={cx('pill')} role={role} />;\n            })}\n        </div>\n    );\n});\n\nexport default PositionsCell;\n","import { ApiTruckRateModeT } from 'common/utils/api/models';\n\nexport enum FieldsEnum {\n    expiration = 'expiration',\n    number = 'number',\n    name = 'name',\n    truckRateMode = 'truckRateMode',\n    truckRate = 'truckRate',\n    tiltRate = 'tiltRate',\n    boxRate = 'boxRate',\n    boxExpectedMileage = 'boxExpectedMileage',\n    tiltExpectedMileage = 'tiltExpectedMileage',\n    truckExpectedMileage = 'truckExpectedMileage',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.expiration]: Date | null;\n    [FieldsEnum.number]: string;\n    [FieldsEnum.name]: string;\n    [FieldsEnum.truckRateMode]: ApiTruckRateModeT;\n    [FieldsEnum.truckRate]: string;\n    [FieldsEnum.tiltRate]: string;\n    [FieldsEnum.boxRate]: string;\n    [FieldsEnum.boxExpectedMileage]: string;\n    [FieldsEnum.tiltExpectedMileage]: string;\n    [FieldsEnum.truckExpectedMileage]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import { StateT } from 'broker-admin/store/models';\nimport { StatisticsStateT } from './types';\n\nexport const selectStatisticsFetchQuery = (state: StateT): StatisticsStateT['fetchQuery'] => {\n    return state.statistics.fetchQuery;\n};\n\nexport const selectDoneStatisticsStatus = (state: StateT): StatisticsStateT['doneRequestStatus'] => {\n    return state.statistics.doneRequestStatus;\n};\n\nexport const selectDoneStatistics = (state: StateT): StatisticsStateT['doneData'] => {\n    return state.statistics.doneData;\n};\n\nexport const selectRejectStatisticsStatus = (state: StateT): StatisticsStateT['rejectRequestStatus'] => {\n    return state.statistics.rejectRequestStatus;\n};\n\nexport const selectRejectStatistics = (state: StateT): StatisticsStateT['rejectData'] => {\n    return state.statistics.rejectData;\n};\n","import { remoteLogger } from 'common/utils/logger-remote';\nimport { v4 as uuidv4 } from 'uuid';\nimport { clientConfig } from 'common/utils/client-config';\n\nconst isAvailableRemoteLogger = clientConfig.isProduction;\n\nexport function generateTraceId() {\n    return `f-${uuidv4()}`;\n}\n\nexport function logWarning(message: string, ...data: any) {\n    // eslint-disable-next-line no-console\n    console.warn(`WARNING ${message}`, ...data);\n\n    if (isAvailableRemoteLogger) {\n        remoteLogger.captureMessage(message, data, {});\n    }\n}\n\nexport function logWarningWithTraceId(message: string, traceId: TraceIdT, ...data: any) {\n    // eslint-disable-next-line no-console\n    console.warn(`WARNING ${message}`, ...data);\n\n    if (isAvailableRemoteLogger) {\n        remoteLogger.captureMessage(message, data, { traceId });\n    }\n}\n\nexport function logDebug(message: string, ...data: any) {\n    // eslint-disable-next-line no-console\n    console.warn(`DEBUG ${message}`, ...data);\n\n    if (isAvailableRemoteLogger) {\n        remoteLogger.trace(message, {}, data);\n    }\n}\n\nexport function logTrace(message: string, ...data: any) {\n    // eslint-disable-next-line no-console\n    console.info(message, ...data);\n\n    if (isAvailableRemoteLogger) {\n        remoteLogger.trace(message, {}, data);\n    }\n}\n\nexport function logTraceWithTraceId(message: string, traceId: TraceIdT, ...data: any) {\n    // eslint-disable-next-line no-console\n    console.info(message, ...data);\n\n    if (isAvailableRemoteLogger) {\n        remoteLogger.trace(message, { traceId }, data);\n    }\n}\n\nexport function logError(contextMessage: string, error: Error, errorInfo?: any) {\n    // eslint-disable-next-line no-console\n    console.error(error);\n\n    if (errorInfo) {\n        // eslint-disable-next-line no-console\n        console.info(errorInfo);\n    }\n\n    if (isAvailableRemoteLogger) {\n        remoteLogger.captureException(error, { contextMessage, errorInfo }, {});\n    }\n}\n\nexport function logErrorWithTraceId(contextMessage: string, traceId: TraceIdT, error: Error, errorInfo?: any) {\n    // eslint-disable-next-line no-console\n    console.error(error);\n\n    if (errorInfo) {\n        // eslint-disable-next-line no-console\n        console.info(errorInfo);\n    }\n\n    if (isAvailableRemoteLogger) {\n        remoteLogger.captureException(error, { contextMessage, errorInfo }, { traceId });\n    }\n}\n","export type ViewEventHandlerT<T> = (event: T) => void;\n\nexport type InferChannelEventT<T extends ViewEventChannel<TODO>> = Parameters<T['emit']>[0];\n\nexport class ViewEventChannel<EventT extends {}> {\n    private subscribers: Array<ViewEventHandlerT<EventT>> = [];\n\n    subscribe = (handler: ViewEventHandlerT<EventT>) => {\n        this.subscribers.push(handler);\n    };\n\n    unsubscribe = (handler: ViewEventHandlerT<EventT>) => {\n        this.subscribers = this.subscribers.filter((subscriber) => subscriber !== handler);\n    };\n\n    emit = (event: EventT): void => {\n        this.subscribers.forEach((subscribe) => {\n            subscribe(event);\n        });\n    };\n}\n","import * as React from 'react';\nimport { useMemo } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PartnerDocumentsPage.scss';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    ApiCarrierContractStatusT,\n    ApiShipperContractStatusT,\n    CarrierContractStatusEnum,\n    DocumentStatusEnum,\n    PartnerTypeEnum,\n    ShipperContractStatusEnum,\n} from 'common/utils/api/models';\nimport { fetchDocumentsDict } from 'common/store/documents-dict/actions';\nimport { selectDocumentsDictRequest } from 'common/store/documents-dict/selectors';\nimport { fetchDocuments } from 'common/store/documents/actions';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport { useTranslation } from 'react-i18next';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport { useDocumentsRows } from 'common/layouts/BaseDocumentsLayout/hooks/use-documents-rows';\nimport NavigationTabs, {\n    NavigationTabConfigT,\n    NavigationTabsPropsT,\n} from 'common/components/tabs/NavigationTabs/NavigationTabs';\nimport NotificationLabel, {\n    NotificationLabelThemeEnum,\n} from 'common/components/notifications/NotificationLabel/NotificationLabel';\nimport history from 'common/utils/history';\nimport { Redirect, Route, Switch } from 'react-router-dom';\nimport BaseDocumentsLayout from 'common/layouts/BaseDocumentsLayout/BaseDocumentsLayout';\nimport { selectFetchCompanyDocumentsRequest } from 'common/store/documents/selectors';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport BaseCarrierContractsLayout from 'common/layouts/BaseCarrierContractsLayout/BaseCarrierContractsLayout';\nimport { selectCarrierContracts } from 'common/store/carrier-contracts/selectors';\nimport BaseShipperContractsLayout from 'common/layouts/BaseShipperContractsLayout/BaseShipperContractsLayout';\nimport { useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport { BrokerSidebarsTypeEnum } from 'broker-admin/layouts/SideBars/constants';\nimport isString from 'lodash/isString';\nimport { selectPartnerDetailsById } from 'broker-admin/store/partner/details/selectors';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { stateMachineRefreshChannel } from 'common/store/state-machine/channels';\nimport { partnerDetailsRefreshChannel } from 'broker-admin/store/partner/details/channels';\nimport { logWarning } from 'common/utils/logger';\nimport usePartnerPermissionsContext from 'common/utils/hooks/usePartnerPermissionsContext';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst PartnerDocumentsPage: React.FC<PropsT> = React.memo(() => {\n    const { partnerId, partnerType } = usePartnerContext();\n\n    const partnerDetailsById = useSelector(selectPartnerDetailsById);\n    const partnerDetails = partnerDetailsById[partnerId as PartnerIdT] || null;\n\n    const { t } = useTranslation();\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const partnerPermissions = usePartnerPermissionsContext();\n    const permissions = useSelector(selectPermissions);\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        if (!partnerType || !partnerId) {\n            logWarning('Empty partnerType or partnerId in PartnerDocumentsPage useEffect');\n            return;\n        }\n        dispatch(fetchDocumentsDict(partnerType));\n        dispatch(fetchDocuments(partnerId));\n    }, [dispatch, partnerType, partnerId]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        if (!partnerType || !partnerId) {\n            logWarning('Empty partnerType or partnerId in documentVisibilityChangeHandler');\n            return;\n        }\n        dispatch(fetchDocumentsDict(partnerType));\n        dispatch(fetchDocuments(partnerId, { isForceUpdate: false }));\n    }, [dispatch, partnerType, partnerId]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const refreshPageHandler = React.useCallback(() => {\n        if (!partnerType || !partnerId) {\n            logWarning('Empty partnerType or partnerId in refreshPageHandler');\n            return;\n        }\n        dispatch(fetchDocumentsDict(partnerType));\n        dispatch(fetchDocuments(partnerId, { isForceUpdate: true }));\n    }, [dispatch, partnerType, partnerId]);\n    useChannelSubscribe(stateMachineRefreshChannel, refreshPageHandler);\n    useChannelSubscribe(partnerDetailsRefreshChannel, refreshPageHandler);\n\n    const fetchDocumentsDictRequest = useSelector(selectDocumentsDictRequest(partnerType));\n    const fetchRequest = useSelector(selectFetchCompanyDocumentsRequest(partnerId));\n\n    const isLoading = fetchRequest.loading || fetchDocumentsDictRequest.loading;\n\n    const { requiredDocumentRows, optionalDocumentRows } = useDocumentsRows(partnerId, partnerType);\n\n    const requiredDocumentStatusesAttentionSet = useMemo(() => {\n        const statuses: Array<DocumentStatusEnum | null> = [\n            null, // not uploaded\n            DocumentStatusEnum.expired,\n            DocumentStatusEnum.revoked,\n            DocumentStatusEnum.rejected,\n        ];\n\n        if (partnerPermissions?.canReviewDocuments) {\n            statuses.push(DocumentStatusEnum.waitingForApprove);\n        }\n\n        return new Set<DocumentStatusEnum | null>(statuses);\n    }, [partnerPermissions]);\n\n    const optionalDocumentStatusesAttentionSet = useMemo(() => {\n        const statuses: Array<DocumentStatusEnum | null> = [];\n\n        if (partnerPermissions?.canReviewDocuments) {\n            statuses.push(DocumentStatusEnum.waitingForApprove);\n        }\n\n        return new Set<DocumentStatusEnum | null>(statuses);\n    }, [partnerPermissions]);\n\n    const carrierContactStatusesAttentionSet = useMemo(() => {\n        const statuses: Array<CarrierContractStatusEnum | null> = [];\n\n        if (permissions?.canReviewCarrierContracts) {\n            statuses.push(CarrierContractStatusEnum.waitingForApprove);\n        }\n\n        return new Set<ApiCarrierContractStatusT | null>(statuses);\n    }, [permissions]);\n\n    const shipperContactStatusesAttentionSet = useMemo(() => {\n        const statuses: Array<ShipperContractStatusEnum | null> = [];\n\n        return new Set<ApiShipperContractStatusT | null>(statuses);\n    }, []);\n\n    const badgeRequiredDocumentsCount = React.useMemo(() => {\n        return requiredDocumentRows?.filter((row) => {\n            return (\n                !row?.actualVersion ||\n                requiredDocumentStatusesAttentionSet.has(row?.actualVersion?.status as DocumentStatusEnum)\n            );\n        }).length;\n    }, [requiredDocumentRows, requiredDocumentStatusesAttentionSet]);\n\n    const badgeOptionalDocumentsCount = React.useMemo(() => {\n        return optionalDocumentRows?.filter((row) => {\n            return optionalDocumentStatusesAttentionSet.has(row?.actualVersion?.status as DocumentStatusEnum);\n        }).length;\n    }, [optionalDocumentRows, optionalDocumentStatusesAttentionSet]);\n\n    const carrierContracts = useSelector(selectCarrierContracts(partnerId));\n    const badgeCarrierContractsCount = React.useMemo(() => {\n        return carrierContracts?.filter((contract) => {\n            return contract.status && carrierContactStatusesAttentionSet.has(contract.status);\n        }).length;\n    }, [carrierContracts, carrierContactStatusesAttentionSet]);\n\n    const badgeShipperContractsCount = React.useMemo(() => {\n        return 0;\n    }, []);\n\n    const tabsConfig = React.useMemo((): Array<NavigationTabConfigT | null> => {\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in tabsConfig');\n            return [];\n        }\n\n        const requiredPartnerDocumentsPath = urlFactory.requiredPartnerDocuments(partnerId, partnerType);\n        const optionalPartnerDocumentsPath = urlFactory.optionalPartnerDocuments(partnerId, partnerType);\n        const partnerCarrierContractsPath = urlFactory.partnerCarrierContacts(partnerId, partnerType);\n        const partnerShipperContractsPath = urlFactory.partnerShipperContacts(partnerId, partnerType);\n\n        const tabs: Array<NavigationTabConfigT> = [\n            {\n                pathname: requiredPartnerDocumentsPath,\n                to: requiredPartnerDocumentsPath,\n                badge: badgeRequiredDocumentsCount ? (\n                    <NotificationLabel count={badgeRequiredDocumentsCount} theme={NotificationLabelThemeEnum.orange} />\n                ) : null,\n                render: () => t('common:profile-page.documents-tabs.required'),\n                testSelector: 'required-documents',\n            },\n            {\n                pathname: optionalPartnerDocumentsPath,\n                to: optionalPartnerDocumentsPath,\n                badge: badgeOptionalDocumentsCount ? (\n                    <NotificationLabel count={badgeOptionalDocumentsCount} theme={NotificationLabelThemeEnum.orange} />\n                ) : null,\n                render: () => t('common:profile-page.documents-tabs.optional'),\n                testSelector: 'optional-documents',\n            },\n        ];\n\n        if (partnerType === PartnerTypeEnum.carrier) {\n            tabs.push({\n                pathname: partnerCarrierContractsPath,\n                to: partnerCarrierContractsPath,\n                badge: badgeCarrierContractsCount ? (\n                    <NotificationLabel count={badgeCarrierContractsCount} theme={NotificationLabelThemeEnum.orange} />\n                ) : null,\n                render: () => t('common:profile-page.documents-tabs.contracts'),\n                testSelector: 'carrier-contracts',\n            });\n        }\n\n        if (partnerType === PartnerTypeEnum.shipper) {\n            tabs.push({\n                pathname: partnerShipperContractsPath,\n                to: partnerShipperContractsPath,\n                badge: badgeShipperContractsCount ? (\n                    <NotificationLabel count={badgeShipperContractsCount} theme={NotificationLabelThemeEnum.orange} />\n                ) : null,\n                render: () => t('common:profile-page.documents-tabs.contracts'),\n                testSelector: 'shipper-contracts',\n            });\n        }\n\n        return tabs;\n    }, [\n        partnerType,\n        partnerId,\n        badgeRequiredDocumentsCount,\n        badgeOptionalDocumentsCount,\n        badgeCarrierContractsCount,\n        badgeShipperContractsCount,\n        t,\n    ]);\n\n    const handleSelectTab: NavigationTabsPropsT['onSelectTab'] = (to): void => {\n        history.push({\n            ...(isString(to) ? { pathname: to } : to),\n        });\n    };\n\n    const handleUploadShipperContract = () => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleUploadShipperContract');\n            return;\n        }\n        openLeftSidebar({\n            type: BrokerSidebarsTypeEnum.uploadShipperContract,\n            partnerId,\n        });\n    };\n\n    const isAllDocumentsVerified = !!partnerDetails?.documentsVerified;\n\n    const navigationTabs = <NavigationTabs tabsConfig={tabsConfig} onSelectTab={handleSelectTab} />;\n\n    const handleOpenShipperContractDetails = (shipperContractId: ShipperContractIdT) => {\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in handleOpenShipperContractDetails');\n            return;\n        }\n\n        const url = urlFactory.partnerShipperContactLanes({\n            partnerId,\n            partnerType,\n            contractId: shipperContractId,\n        });\n\n        history.push(url);\n    };\n\n    if (!partnerId || !partnerType) {\n        logWarning('Empty partnerId or partnerType in PartnerDocumentsPage');\n        return null;\n    }\n\n    return (\n        <ContentMargins>\n            <div className={cx('wrap')}>\n                <div className={cx('document-table-wrap')}>\n                    <Switch>\n                        <Route path={urlFactory.requiredPartnerDocuments(partnerId, partnerType)}>\n                            <BaseDocumentsLayout\n                                navigationTabs={navigationTabs}\n                                tableName=\"required-documents\"\n                                testSelector=\"required-documents\"\n                                isAllDocumentsVerified={isAllDocumentsVerified}\n                                isShowReviewUser\n                                isLoading={isLoading}\n                                rows={requiredDocumentRows}\n                                documentStatusesAttentionSet={requiredDocumentStatusesAttentionSet}\n                            />\n                        </Route>\n                        <Route path={urlFactory.optionalPartnerDocuments(partnerId, partnerType)}>\n                            <BaseDocumentsLayout\n                                navigationTabs={navigationTabs}\n                                tableName=\"optional-documents\"\n                                testSelector=\"optional-documents\"\n                                isAllDocumentsVerified={isAllDocumentsVerified}\n                                isShowReviewUser\n                                isLoading={isLoading}\n                                rows={optionalDocumentRows}\n                                documentStatusesAttentionSet={optionalDocumentStatusesAttentionSet}\n                            />\n                        </Route>\n                        <Route path={urlFactory.partnerCarrierContacts(partnerId, partnerType)}>\n                            <BaseCarrierContractsLayout\n                                navigationTabs={navigationTabs}\n                                tableName=\"carrier-contracts\"\n                                isLoading={isLoading}\n                                testSelector=\"carrier-contracts\"\n                                contactStatusesAttentionSet={carrierContactStatusesAttentionSet}\n                            />\n                        </Route>\n                        <Route path={urlFactory.partnerShipperContacts(partnerId, partnerType)}>\n                            <BaseShipperContractsLayout\n                                navigationTabs={navigationTabs}\n                                contactStatusesAttentionSet={shipperContactStatusesAttentionSet}\n                                onUploadShipperContract={handleUploadShipperContract}\n                                onOpenShipperContractDetails={handleOpenShipperContractDetails}\n                            />\n                        </Route>\n                        <Route>\n                            <Redirect to={urlFactory.requiredPartnerDocuments(partnerId, partnerType)} />\n                        </Route>\n                    </Switch>\n                </div>\n            </div>\n        </ContentMargins>\n    );\n});\n\nexport default PartnerDocumentsPage;\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"ErrorDetails__content___rqhBa\",\"method\":\"ErrorDetails__method___DZRPf\",\"time\":\"ErrorDetails__time___X5zi9\",\"response\":\"ErrorDetails__response___CqogG\",\"fadeIn\":\"ErrorDetails__fadeIn___Brlj9\",\"blinking\":\"ErrorDetails__blinking___leUxK\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './BrokerOrderStatusPill.scss';\nimport { useTranslation } from 'react-i18next';\nimport PillLabel, { colorCodingPillLabelTheme, PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { ApiBrokerOrderStatusT, BrokerOrderStatusEnum } from 'common/utils/api/models';\nimport { BROKER_ORDER_STATUS_T_MAP } from 'common/components/status/BrokerOrderStatus/BrokerOrderStatus';\n\ntype PropsT = {\n    status?: ApiBrokerOrderStatusT | null;\n    isArchived?: boolean;\n    isSymmetrical?: boolean;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\nconst PILL_THEME_BY_STATUS: Record<ApiBrokerOrderStatusT, PillLabelThemeEnum> = {\n    [BrokerOrderStatusEnum.newOrder]: colorCodingPillLabelTheme.attention,\n    [BrokerOrderStatusEnum.carrierUnassigned]: colorCodingPillLabelTheme.attention,\n    [BrokerOrderStatusEnum.carrierAssigned]: colorCodingPillLabelTheme.normal,\n    [BrokerOrderStatusEnum.inTransit]: colorCodingPillLabelTheme.normal,\n    [BrokerOrderStatusEnum.delivered]: colorCodingPillLabelTheme.success,\n    [BrokerOrderStatusEnum.canceled]: colorCodingPillLabelTheme.normal,\n    [BrokerOrderStatusEnum.unknown]: colorCodingPillLabelTheme.normal,\n};\n\nconst BrokerOrderStatusPill: React.FC<PropsT> = React.memo((props) => {\n    const { status, isSymmetrical, isArchived } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return null;\n    }\n\n    const theme = PILL_THEME_BY_STATUS[status] || PillLabelThemeEnum.charcoal;\n\n    return (\n        <>\n            <PillLabel isNoWrap isSymmetrical={isSymmetrical} theme={theme} testSelector=\"broker-order-status\">\n                {t(BROKER_ORDER_STATUS_T_MAP[status])}\n            </PillLabel>\n            {isArchived && (\n                <PillLabel isNoWrap isSymmetrical={isSymmetrical} theme={theme} testSelector=\"broker-order-archived\">\n                    {t('common:broker-order-archived')}\n                </PillLabel>\n            )}\n        </>\n    );\n});\n\nexport default BrokerOrderStatusPill;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames/bind';\nimport styles from './FerryDisembarkPointPicker.scss';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport BoatIcon from 'common/icons/BoatIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { formatTimeInterval } from 'common/utils/time';\nimport { useFormikContext } from 'formik';\nimport { FieldsEnum, FormValuesT, RoutePointFieldsEnum } from '../constants';\nimport { getFieldFormValue } from 'common/utils/form-values';\n\ntype PropsT = {\n    className?: string;\n    routePointIndex: number;\n};\n\nconst cx = classNames.bind(styles);\n\nconst FerryDisembarkPointPicker: React.FC<PropsT> = React.memo((props) => {\n    const { routePointIndex } = props;\n\n    const { t } = useTranslation();\n\n    const formik = useFormikContext<FormValuesT>();\n\n    const locationFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.location}` as const;\n    const timeWindowFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.timeWindow}` as const;\n\n    const location = getFieldFormValue(formik.values, locationFieldName);\n    const timeWindow = getFieldFormValue(formik.values, timeWindowFieldName);\n\n    return (\n        <ReadOnlyField\n            icon={\n                <BoatIcon\n                    size={DEFAULT_ICON_SIZE}\n                    fillColor={StyleGuideColorsEnum.brandAccent}\n                    strokeColor={StyleGuideColorsEnum.brandDark}\n                />\n            }\n            label={t('broker-order-route-edit.fields.ferry-disembark.label')}\n            subLabel={\n                <PillLabel className={cx('time-interval')} isSymmetrical theme={PillLabelThemeEnum.charcoal}>\n                    {formatTimeInterval(timeWindow?.start, timeWindow?.end)}\n                </PillLabel>\n            }\n            value={location?.address}\n        />\n    );\n});\n\nexport default FerryDisembarkPointPicker;\n","import React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport BigTrashIcon from 'common/icons/BigTrashIcon';\n\nexport type CloseRFQConfirmationDataT = {\n    id: RFQIdT;\n};\n\ntype PropsT = {\n    data: CloseRFQConfirmationDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onConfirm: (data: CloseRFQConfirmationDataT) => void;\n    requestStatus: RequestStatusT;\n};\n\nconst TEST_SELECTOR = 'close-rfq';\n\nconst CloseRFQConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, onCancel, onClose, requestStatus, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.keep'),\n                            theme: ButtonThemeEnum.secondary,\n                            isDisabled: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            onClick: () => {\n                                onCancel();\n                            },\n                        },\n                        {\n                            children: t('common:error-modal.actions.close'),\n                            theme: ButtonThemeEnum.danger,\n                            isDisabled: requestStatus.loading,\n                            isLoading: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_close`,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigTrashIcon />}\n                    title={t('common:rfq-details.close-confirmation.title')}\n                    message={t('common:rfq-details.close-confirmation.description')}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default CloseRFQConfirmation;\n","import * as React from 'react';\nimport TruckIcon, { getTruckIconProps } from 'common/icons/TruckIcon';\nimport MapTooltip from 'common/components/maps/MapTooltip/MapTooltip';\nimport TrailerIcon, { getTrailerIconProps } from 'common/icons/TrailerIcon';\nimport AssetLinkIcon, { getAssetLinkIconProps } from 'common/icons/AssetLinkIcon';\nimport { MapPinThemeEnum } from 'common/components/maps/MapPin/MapPin';\n\ntype PropsT = {\n    lat: number;\n    lng: number;\n    className?: string;\n    isTrailer?: boolean;\n    isTruck?: boolean;\n    isLink?: boolean;\n};\n\nconst CurrentAssetPositionPin: React.FC<PropsT> = React.memo((props) => {\n    const { lat, lng, className, isTrailer, isTruck, isLink } = props;\n\n    return (\n        <MapTooltip hasPaddings contentClassName={className} lat={lat} lng={lng} theme={MapPinThemeEnum.brandDark}>\n            {() => (\n                <>\n                    {isTruck && <TruckIcon {...getTruckIconProps('assignment-normal')} />}\n                    {isTrailer && <TrailerIcon {...getTrailerIconProps('assignment-normal')} />}\n                    {isLink && <AssetLinkIcon {...getAssetLinkIconProps('assignment-normal')} />}\n                </>\n            )}\n        </MapTooltip>\n    );\n});\n\nexport default CurrentAssetPositionPin;\n","import { ReservePreviewQueryT, ReserveQueryModifyEventT, ReserveT } from '../models';\n\nexport const getQueryModifyEventAfterReserve = (\n    prevPreviewQuery: ReservePreviewQueryT | null,\n    reserve: ReserveT | null,\n): ReserveQueryModifyEventT => {\n    let queryModifyEvent: ReserveQueryModifyEventT = {};\n\n    const isNotAvailableLane = reserve?.contractLanes?.every(\n        (contractLane) => contractLane?.id !== prevPreviewQuery?.laneId,\n    );\n    if (prevPreviewQuery?.laneId && isNotAvailableLane) {\n        queryModifyEvent = {\n            ...queryModifyEvent,\n            correctedLaneId: null,\n        };\n    }\n\n    return queryModifyEvent;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"DriversAssignmentFooterContent__content___Ju4mU\",\"fadeIn\":\"DriversAssignmentFooterContent__fadeIn___FTYxg\",\"blinking\":\"DriversAssignmentFooterContent__blinking___tiVt_\"};","import { SpotStateT } from './types';\nimport { StateT } from '../models';\n\nexport const selectSpotUpdateRequestStatus = (state: StateT): SpotStateT['requestStatus'] => state.spot.requestStatus;\n","import * as React from 'react';\nimport { useState } from 'react';\n\nimport ContactsTable from './ContactsTable/ContactsTable';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\n\nimport classNames from 'classnames/bind';\nimport styles from './Members.scss';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport { CompanyContactT, InviteUserRequestT } from 'common/store/members/models';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectAddMemberRequest,\n    selectCompanyContacts,\n    selectDeleteMemberRequest,\n    selectFetchContactsRequest,\n    selectUpdateMemberRequest,\n} from 'common/store/members/selectors';\nimport {\n    cancelInvite,\n    changeUserRole,\n    deleteContact,\n    deleteUser,\n    fetchContacts,\n    inviteUser,\n    restoreUser,\n} from 'common/store/members/actions';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\nimport groupBy from 'lodash/groupBy';\nimport {\n    ApiInviteUserRoleT,\n    ApiNewUserRoleT,\n    ApiUserStatusT,\n    UserRoleT,\n    UserStatusEnum,\n} from 'common/utils/api/models';\nimport { TabEnum } from 'common/layouts/Members/constants';\nimport UserStatusControl from 'common/layouts/Members/UserStatusControl/UserStatusControl';\nimport TableMessage, { TableMessageIconsEnum } from 'common/components/Table/TableMessage/TableMessage';\nimport SearchControl from 'common/components/Table/SearchControl/SearchControl';\nimport AddUserIcon from 'common/icons/AddUserIcon';\nimport { logWarning } from 'common/utils/logger';\nimport CancelInviteConfirmation, {\n    CancelInviteConfirmationDataT,\n} from 'common/layouts/Members/dialogs/CancelInviteConfirmation/CancelInviteConfirmation';\nimport RestoreUserConfirmation, {\n    RestoreUserConfirmationDataT,\n    RestoreUserConfirmationPropsT,\n} from 'common/layouts/Members/dialogs/RestoreUserConfirmation/RestoreUserConfirmation';\nimport DeleteContactConfirmation, {\n    DeleteContactConfirmationDataT,\n    DeleteContactConfirmationPropsT,\n} from 'common/layouts/Members/dialogs/DeleteContactConfirmation/DeleteContactConfirmation';\nimport ListPageLayout from 'common/layouts/ListPage/ListPageLayout/ListPageLayout';\nimport ListPageHeaderLayout from 'common/layouts/ListPage/ListPageHeaderLayout/ListPageHeaderLayout';\nimport ChangeUserRoleModal, {\n    ChangeUserRoleModalDataT,\n    ChangeUserRoleModalPropsT,\n} from 'common/layouts/Members/dialogs/ChangeUserRoleModal/ChangeUserRoleModal';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport DeactivateUserModal, {\n    DeactivateUserModalDataT,\n    DeactivateUserModalPropsT,\n} from 'common/layouts/Members/dialogs/DeactivateUserModal/DeactivateUserModal';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport { useOpenedSidebar, useOpenLeftSidebar } from 'common/layouts/SideBars/hooks';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { ContactDetailsSidebarDataT } from 'common/layouts/SideBars/contents/ContactDetailsSidebarContent/models';\nimport InviteUserModal, { InviteUserModalDataT } from 'common/layouts/Members/dialogs/InviteUserModal/InviteUserModal';\nimport ChangeUserRoleConfirmation, {\n    ChangeUserRoleConfirmationDataT,\n    ChangeUserRoleConfirmationPropsT,\n} from 'common/layouts/Members/dialogs/ChangeUserRoleConfirmation/ChangeUserRoleConfirmation';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { membersRefreshChannel } from 'common/store/members/channels';\nimport { checkNeedRenderEmptyState } from 'common/components/Table/utils/check-need-render-empty-state';\nimport TableError from 'common/components/Table/TableError/TableError';\nimport { checkFilters } from 'common/components/Table/utils/check-filters';\n\nconst cx = classNames.bind(styles);\n\nconst getTabByUserStatus = (userStatus?: ApiUserStatusT) => {\n    if (userStatus === UserStatusEnum.archived) {\n        return TabEnum.archive;\n    }\n\n    return TabEnum.active;\n};\n\nconst EMPTY_CONTACTS: CompanyContactT[] = [];\n\ntype PropsT = {\n    isLockedProfile?: boolean;\n};\n\nconst Members: React.FC<PropsT> = React.memo((props) => {\n    const { partnerId, partnerType } = usePartnerContext();\n\n    const isDisableInviteUsersForLockedProfile = !!props.isLockedProfile;\n\n    const dispatch = useDispatch();\n\n    const permissions = useSelector(selectPermissions);\n\n    const deleteContactConfirmation = useModalDialog<DeleteContactConfirmationDataT>();\n    const handleDeleteContactModalDialog = (contact: CompanyContactT) => {\n        if (!contact?.id || !partnerId) {\n            logWarning('failed to confirm delete contact, empty contact?.id or partnerId');\n            return;\n        }\n\n        deleteContactConfirmation.setData({\n            contactId: contact.id,\n            partnerId,\n        });\n    };\n\n    const handleConfirmDeleteContact: DeleteContactConfirmationPropsT['onConfirm'] = React.useCallback(\n        (partnerId, contactId) => {\n            if (!contactId) {\n                logWarning('failed to delete contact, empty contactId');\n                return;\n            }\n\n            dispatch(deleteContact(contactId, partnerId));\n        },\n        [dispatch],\n    );\n\n    const cancelInviteConfirmationDialog = useModalDialog<CancelInviteConfirmationDataT>();\n    const restoreUserConfirmationDialog = useModalDialog<RestoreUserConfirmationDataT>();\n    const changeUserRoleModalDialog = useModalDialog<ChangeUserRoleModalDataT>();\n    const changeUserRoleConfirmationDialog = useModalDialog<ChangeUserRoleConfirmationDataT>();\n\n    const handleShowChangeUserRoleModalDialog = React.useCallback(\n        (contact: CompanyContactT): void => {\n            if (!partnerId || !partnerType) {\n                logWarning('Empty partnerId or partnerType in handleShowChangeUserRoleModalDialog');\n                return;\n            }\n            changeUserRoleModalDialog.setData({\n                partnerType,\n                partnerId,\n                contact: {\n                    userId: contact.userId,\n                    roles: contact.roles,\n                    fullName: contact.fullName,\n                },\n            });\n        },\n        [partnerType, partnerId, changeUserRoleModalDialog],\n    );\n\n    const handleChangeUserRole: ChangeUserRoleModalPropsT['onChangeUserRole'] = React.useCallback(\n        ({ data, changes }): void => {\n            if (!data?.partnerId) {\n                return;\n            }\n\n            changeUserRoleModalDialog.onClose();\n            changeUserRoleConfirmationDialog.setData({\n                ...data,\n                changes,\n            });\n        },\n        [changeUserRoleModalDialog, changeUserRoleConfirmationDialog],\n    );\n\n    const handleConfirmChangeUserRole: ChangeUserRoleConfirmationPropsT['onConfirm'] = React.useCallback(\n        (data): void => {\n            if (!data.partnerId) {\n                return;\n            }\n            if (!partnerId) {\n                logWarning('Empty partnerId in handleConfirmChangeUserRole');\n                return;\n            }\n\n            dispatch(changeUserRole(data.changes.roles as ApiNewUserRoleT[], data.changes.userId, partnerId));\n        },\n        [dispatch, partnerId],\n    );\n\n    const deactivateUserModalDialog = useModalDialog<DeactivateUserModalDataT>();\n    const handleShowDeactivateUserModalDialog = React.useCallback(\n        (contact: CompanyContactT): void => {\n            if (!partnerId || !partnerType) {\n                logWarning('failed to handleShowDeactivateUserModalDialog, empty partnerType or partnerId');\n                return;\n            }\n\n            deactivateUserModalDialog.setData({\n                partnerType,\n                partnerId,\n                contact: {\n                    userId: contact.userId,\n                    roles: contact.roles,\n                    fullName: contact.fullName,\n                },\n            });\n        },\n        [partnerId, partnerType, deactivateUserModalDialog],\n    );\n\n    const handleDeactivateUser: DeactivateUserModalPropsT['onDeactivateUser'] = React.useCallback(\n        ({ data, changes }): void => {\n            if (!data?.partnerId) {\n                return;\n            }\n\n            dispatch(deleteUser(changes.userId, data.partnerId));\n        },\n        [dispatch],\n    );\n\n    const [selectedTab, setSelectedTab] = React.useState<TabEnum | null>(TabEnum.active);\n    const [searchText, setSearchText] = React.useState<string>('');\n\n    const { t } = useTranslation();\n\n    React.useEffect(() => {\n        dispatch(fetchCountriesDict());\n    }, [dispatch]);\n\n    const contacts = useSelector(selectCompanyContacts(partnerId));\n    const fetchContactsRequestStatus = useSelector(selectFetchContactsRequest(partnerId));\n\n    React.useEffect(() => {\n        if (!partnerId) {\n            logWarning('failed fetchContacts, empty partnerId');\n            return;\n        }\n\n        dispatch(fetchContacts(partnerId));\n    }, [dispatch, partnerId]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in documentVisibilityChangeHandler');\n            return;\n        }\n        dispatch(fetchContacts(partnerId, { isForceUpdate: false }));\n    }, [dispatch, partnerId]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const refreshPageHandler = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in refreshPageHandler');\n            return;\n        }\n        dispatch(fetchContacts(partnerId, { isForceUpdate: true }));\n    }, [dispatch, partnerId]);\n    useChannelSubscribe(membersRefreshChannel, refreshPageHandler);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleRefreshOnError');\n            return;\n        }\n        dispatch(fetchContacts(partnerId, { isForceUpdate: true }));\n    }, [dispatch, partnerId]);\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const openedContactSidebar = useOpenedSidebar<ContactDetailsSidebarDataT>(CommonSidebarsTypeEnum.contact);\n    const selectedContactId =\n        openedContactSidebar && 'contactId' in openedContactSidebar ? openedContactSidebar.contactId : null;\n\n    const handleConfirmRestoreUser: RestoreUserConfirmationPropsT['onConfirm'] = React.useCallback(\n        (userId, partnerId): void => {\n            if (!partnerId) {\n                logWarning('Empty partnerId in handleConfirmRestoreUser');\n                return;\n            }\n            dispatch(restoreUser(userId, partnerId));\n        },\n        [dispatch],\n    );\n\n    const inviteUserModalDialog = useModalDialog<InviteUserModalDataT>();\n\n    const addMemberRequestStatus = useSelector(selectAddMemberRequest(partnerId));\n    const handleSubmitInviteUser = (newUser: InviteUserRequestT): void => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleSubmitInviteUser');\n            return;\n        }\n        dispatch(inviteUser(newUser, partnerId));\n    };\n\n    const deleteMemberRequestStatus = useSelector(selectDeleteMemberRequest(partnerId));\n\n    const handleConfirmCancelInviteUser = React.useCallback(\n        (partnerId: PartnerIdT, userId: UserIdT): void => {\n            dispatch(cancelInvite(userId, partnerId));\n        },\n        [dispatch],\n    );\n\n    const updateMemberRequestStatus = useSelector(selectUpdateMemberRequest(partnerId));\n\n    const openInviteModal = (): void => {\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in openInviteModal');\n            return;\n        }\n        inviteUserModalDialog.setData({\n            email: '',\n            partnerId,\n            partnerType,\n        });\n    };\n\n    const handleResendInviteUser = (email: string, roles: UserRoleT[]): void => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleResendInviteUser');\n            return;\n        }\n        dispatch(\n            inviteUser(\n                {\n                    email,\n                    roles: roles as ApiInviteUserRoleT[],\n                },\n                partnerId,\n            ),\n        );\n    };\n    const handleInviteUser = (email: string): void => {\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in handleInviteUser');\n            return;\n        }\n        inviteUserModalDialog.setData({\n            email,\n            partnerId,\n            partnerType,\n        });\n    };\n\n    const handleSelectRow = (event: React.MouseEvent, contact: CompanyContactT): void => {\n        if (!contact.id) {\n            return;\n        }\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in handleSelectRow');\n            return;\n        }\n\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId,\n            partnerType,\n            contactId: contact.id,\n        });\n    };\n\n    const groupedContacts = React.useMemo(() => {\n        return groupBy(contacts, (contact) => getTabByUserStatus(contact.userStatus));\n    }, [contacts]);\n\n    const activeTabContacts = React.useMemo(() => {\n        if (!selectedTab) {\n            return contacts;\n        }\n\n        return groupedContacts[selectedTab] || EMPTY_CONTACTS;\n    }, [groupedContacts, selectedTab, contacts]);\n\n    const filteredActiveTabContacts = React.useMemo(() => {\n        return (activeTabContacts || []).filter((contact) => {\n            const prepareText = (text?: string) => (text || '').trim().toLocaleLowerCase();\n            const preparedSearchText = prepareText(searchText);\n\n            const preparedPhone = prepareText(contact.phone);\n            if (preparedPhone.includes(preparedSearchText)) {\n                return true;\n            }\n\n            const preparedFullName = prepareText(contact.fullName);\n            if (preparedFullName.includes(preparedSearchText)) {\n                return true;\n            }\n\n            const preparedEmail = prepareText(contact.email);\n            if (preparedEmail.includes(preparedSearchText)) {\n                return true;\n            }\n\n            return false;\n        });\n    }, [activeTabContacts, searchText]);\n\n    const handleShowRestoreUserModalDialog = (contact: CompanyContactT) => {\n        if (!contact.id) {\n            return;\n        }\n\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleShowRestoreUserModalDialog');\n            return;\n        }\n        restoreUserConfirmationDialog.setData({\n            contactId: contact.id,\n            partnerId,\n        });\n    };\n\n    const handleCancelInviteUserModalDialog = (contact: CompanyContactT) => {\n        if (!contact.id) {\n            return;\n        }\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleCancelInviteUserModalDialog');\n            return;\n        }\n\n        cancelInviteConfirmationDialog.setData({\n            contactId: contact.id,\n            partnerId,\n        });\n    };\n\n    const isLoading =\n        fetchContactsRequestStatus.loading ||\n        updateMemberRequestStatus.loading ||\n        deleteMemberRequestStatus.loading ||\n        addMemberRequestStatus.loading;\n\n    useCloseModalDialogAfterRequest(updateMemberRequestStatus, [\n        cancelInviteConfirmationDialog,\n        changeUserRoleModalDialog,\n        changeUserRoleConfirmationDialog,\n        deactivateUserModalDialog,\n        restoreUserConfirmationDialog,\n    ]);\n\n    useCloseModalDialogAfterRequest(deleteMemberRequestStatus, [deleteContactConfirmation]);\n\n    useCloseModalDialogAfterRequest(addMemberRequestStatus, [inviteUserModalDialog]);\n\n    const [allowShowBlockInviteAlert, setAllowShowBlockInviteAlert] = useState<boolean>(true);\n\n    const renderTableMessage = () => {\n        if (!checkNeedRenderEmptyState(filteredActiveTabContacts, fetchContactsRequestStatus)) {\n            return null;\n        }\n\n        if (fetchContactsRequestStatus?.error) {\n            return <TableError error={fetchContactsRequestStatus?.error} onRetry={handleRefreshOnError} />;\n        }\n\n        const { hasPrimaryQueryFilters, hasSecondaryQueryFilters } = checkFilters(selectedTab ? [selectedTab] : [], [\n            searchText,\n        ]);\n        if (fetchContactsRequestStatus?.ok && hasSecondaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.notFound}\n                    title={t('common:team-members.messages.not-found.title')}\n                    description={t('common:team-members.messages.not-found.description')}\n                    isShowAction={false}\n                    testSelector=\"empty-state-has-secondary-filters\"\n                />\n            );\n        }\n\n        if (fetchContactsRequestStatus?.ok && hasPrimaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.empty}\n                    title={t('common:team-members.messages.empty-quick-filters.title')}\n                    description=\"\"\n                    testSelector=\"empty-state-has-primary-filters\"\n                    isShowAction={false}\n                />\n            );\n        }\n\n        return (\n            <TableMessage\n                iconType={TableMessageIconsEnum.empty}\n                title={t('common:team-members.messages.empty.title')}\n                testSelector=\"empty\"\n                isShowAction={false}\n            />\n        );\n    };\n\n    const isShowInviteUserTrigger = !isDisableInviteUsersForLockedProfile && permissions?.canInviteTeamMembers;\n\n    return (\n        <>\n            <ListPageLayout>\n                <ListPageHeaderLayout\n                    withTopPadding\n                    leftToolsNode={\n                        <>\n                            <UserStatusControl selectedValue={selectedTab} onSelect={setSelectedTab} />\n                            <SearchControl\n                                placeholder={t('common:team-members.search-placeholder')}\n                                searchText={searchText}\n                                onChangeSearchText={setSearchText}\n                            />\n                        </>\n                    }\n                    rightToolsNode={\n                        isShowInviteUserTrigger ? (\n                            <Button theme={ButtonThemeEnum.primary} onClick={openInviteModal}>\n                                {t('common:team-members.actions.invite-user')}\n                            </Button>\n                        ) : null\n                    }\n                />\n                {isDisableInviteUsersForLockedProfile && allowShowBlockInviteAlert && (\n                    <Alert\n                        icon={\n                            <AddUserIcon\n                                fillColor={StyleGuideColorsEnum.white}\n                                strokeColor={StyleGuideColorsEnum.white}\n                            />\n                        }\n                        size={AlertSizeEnum.small}\n                        theme={AlertThemeEnum.orange}\n                        onClose={() => {\n                            setAllowShowBlockInviteAlert(false);\n                        }}\n                        className={cx('alert')}\n                    >\n                        {t('common:team-members.alerts.block-invite-for-locked-profile')}\n                    </Alert>\n                )}\n                {isLoading && <LoaderOverlay />}\n                {renderTableMessage()}\n                {!!filteredActiveTabContacts?.length && (\n                    <ContactsTable\n                        contacts={filteredActiveTabContacts}\n                        onDeleteUser={handleShowDeactivateUserModalDialog}\n                        onDeleteContact={handleDeleteContactModalDialog}\n                        onChangeUserRole={handleShowChangeUserRoleModalDialog}\n                        onRestoreUser={handleShowRestoreUserModalDialog}\n                        onCancelInvite={handleCancelInviteUserModalDialog}\n                        onInviteUser={handleInviteUser}\n                        onResendInviteUser={handleResendInviteUser}\n                        selectedContactId={selectedContactId}\n                        onSelectRow={handleSelectRow}\n                        isLoading={false}\n                        canEditTeamMembers={permissions.canEditTeamMembers}\n                        canInviteUsers={!isDisableInviteUsersForLockedProfile}\n                    />\n                )}\n                <InviteUserModal\n                    data={inviteUserModalDialog.data}\n                    onClose={inviteUserModalDialog.onClose}\n                    onCancel={inviteUserModalDialog.onCancel}\n                    onInviteUser={handleSubmitInviteUser}\n                />\n                <CancelInviteConfirmation\n                    data={cancelInviteConfirmationDialog.data}\n                    onConfirm={handleConfirmCancelInviteUser}\n                    onClose={cancelInviteConfirmationDialog.onClose}\n                    onCancel={cancelInviteConfirmationDialog.onCancel}\n                />\n                <ChangeUserRoleModal\n                    data={changeUserRoleModalDialog.data}\n                    onClose={changeUserRoleModalDialog.onClose}\n                    onChangeUserRole={handleChangeUserRole}\n                />\n                <ChangeUserRoleConfirmation\n                    data={changeUserRoleConfirmationDialog.data}\n                    onClose={changeUserRoleConfirmationDialog.onClose}\n                    onConfirm={handleConfirmChangeUserRole}\n                />\n                <DeactivateUserModal\n                    data={deactivateUserModalDialog.data}\n                    onClose={deactivateUserModalDialog.onClose}\n                    onCancel={deactivateUserModalDialog.onCancel}\n                    onDeactivateUser={handleDeactivateUser}\n                />\n                <RestoreUserConfirmation\n                    data={restoreUserConfirmationDialog.data}\n                    onClose={restoreUserConfirmationDialog.onClose}\n                    onConfirm={handleConfirmRestoreUser}\n                />\n                <DeleteContactConfirmation\n                    data={deleteContactConfirmation.data}\n                    onClose={deleteContactConfirmation.onClose}\n                    onCancel={deleteContactConfirmation.onCancel}\n                    onConfirm={handleConfirmDeleteContact}\n                />\n            </ListPageLayout>\n        </>\n    );\n});\n\nexport default Members;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    FETCH_SYSTEM_SETTINGS_REQUEST,\n    FetchSystemSettingsActionT,\n    UPDATE_SYSTEM_SETTINGS_REQUEST,\n    UpdateSystemSettingsActionT,\n} from './types';\nimport {\n    fetchSystemSettings,\n    fetchSystemSettingsBegin,\n    fetchSystemSettingsError,\n    fetchSystemSettingsSuccess,\n    updateSystemSettingsBegin,\n    updateSystemSettingsError,\n    updateSystemSettingsSuccess,\n} from './actions';\n\nimport { selectSystemSettingsFetchRequest, selectSystemSettingsUpdateRequest } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { fetchSettings } from 'common/store/settings/actions';\nimport spotBrokerTranziitApi from 'broker-admin/utils/api/spot-broker-tranziit/api';\nimport pick from 'lodash/pick';\nimport isEmpty from 'lodash/isEmpty';\nimport { ApiSpotSettingsKeysT } from 'broker-admin/utils/api/spot-broker-tranziit/models';\nimport omit from 'lodash/omit';\n\nconst allSpotSystemSettings: ApiSpotSettingsKeysT[] = ['EXPIRES_SOON'];\n\nfunction* fetchSystemSettingsSaga(action: FetchSystemSettingsActionT): WrapGeneratorT<void> {\n    const { options } = action;\n\n    const request: ReturnType<typeof selectSystemSettingsFetchRequest> = yield select(selectSystemSettingsFetchRequest);\n    if (!checkNeedRequest(request, options)) {\n        return;\n    }\n\n    yield put(fetchSystemSettingsBegin());\n\n    const [error, data]: ReturnApiT<typeof brokerTranziitApi.fetchSystemSettings> =\n        yield brokerTranziitApi.fetchSystemSettings();\n\n    if (error) {\n        yield put(fetchSystemSettingsError(error));\n        return;\n    }\n\n    const [spotError, spotData]: ReturnApiT<typeof spotBrokerTranziitApi.fetchSystemSettings> =\n        yield spotBrokerTranziitApi.fetchSystemSettings();\n\n    if (spotError) {\n        yield put(fetchSystemSettingsError(spotError));\n        return;\n    }\n\n    yield put(\n        fetchSystemSettingsSuccess({\n            ...data,\n            ...spotData,\n        }),\n    );\n}\n\nfunction* updateSystemSettingsSaga(action: UpdateSystemSettingsActionT): WrapGeneratorT<void> {\n    const request: ReturnType<typeof selectSystemSettingsUpdateRequest> = yield select(\n        selectSystemSettingsUpdateRequest,\n    );\n\n    if (request.loading) {\n        return;\n    }\n\n    yield put(updateSystemSettingsBegin());\n\n    const { settingsChanges } = action;\n\n    const apiSettingsChanges = omit(settingsChanges, allSpotSystemSettings);\n    const hasApiSettingsChanges = !isEmpty(apiSettingsChanges);\n    if (hasApiSettingsChanges) {\n        const [error]: ReturnApiT<typeof brokerTranziitApi.updateSystemSettings> =\n            yield brokerTranziitApi.updateSystemSettings(apiSettingsChanges);\n\n        if (error) {\n            yield put(updateSystemSettingsError(error));\n            return;\n        }\n    }\n\n    const apiSpotSettingsChanges = pick(settingsChanges, allSpotSystemSettings);\n    const hasApiSpotSettingsChanges = !isEmpty(apiSpotSettingsChanges);\n    if (hasApiSpotSettingsChanges) {\n        const [error]: ReturnApiT<typeof spotBrokerTranziitApi.updateSystemSettings> =\n            yield spotBrokerTranziitApi.updateSystemSettings(apiSpotSettingsChanges);\n\n        if (error) {\n            yield put(updateSystemSettingsError(error));\n            return;\n        }\n    }\n\n    const fetchAction = fetchSystemSettings({ isForceUpdate: true });\n    yield fetchSystemSettingsSaga(fetchAction);\n\n    yield put(updateSystemSettingsSuccess());\n\n    yield put(fetchSettings({ isForceUpdate: true }));\n}\n\nfunction* systemSettingsSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_SYSTEM_SETTINGS_REQUEST, fetchSystemSettingsSaga);\n    yield takeEvery(UPDATE_SYSTEM_SETTINGS_REQUEST, updateSystemSettingsSaga);\n}\n\nexport default systemSettingsSaga;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './SideBarParanja.scss';\nimport ContentRootContext from 'common/layouts/LeftMenuLayout/contexts/content-root-context';\nimport { createPortal } from 'react-dom';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst SideBarParanja: React.FC<PropsT> = React.memo(() => {\n    const contentRootNode = React.useContext(ContentRootContext);\n    if (!contentRootNode) {\n        return null;\n    }\n\n    return createPortal(<div className={cx('paranja')} />, contentRootNode);\n});\n\nexport default SideBarParanja;\n","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"NewOrderPage__header____mZ35\",\"steps\":\"NewOrderPage__steps___ou06F\",\"fadeIn\":\"NewOrderPage__fadeIn___PjKMi\",\"blinking\":\"NewOrderPage__blinking___huG9I\"};","import { ApiShipmentAttachedPaperTypeT } from 'common/utils/api/models';\n\nexport const shipmentAttachedPaperTypeOrder: Array<ApiShipmentAttachedPaperTypeT> = [\n    'DELIVERY_NOTE',\n    'SIGNED_DELIVERY_NOTE',\n    'PALLET_CERTIFICATE',\n    'TEMPERATURE_RECORD',\n    'CLAIM_DAMAGE',\n    'CUSTOMS_DECLARATION',\n    'T1_T2_DOCUMENT',\n    'EAD',\n    'CERTIFICATE_OF_ORIGIN',\n    'COMMERCIAL_INVOICE',\n    'OTHER',\n];\n","import * as React from 'react';\nimport { useMemo, useRef } from 'react';\n\nimport scrollIntoView from 'scroll-into-view';\n\nimport MultiPointOrderDraftDetails, {\n    MultiPointOrderDraftDetailsPropsT,\n} from '../MultiPointOrderDraftDetails/MultiPointOrderDraftDetails';\nimport OfferDetails from '../OfferDetails/OfferDetails';\n\nimport classNames from 'classnames/bind';\nimport styles from './OffersForm.scss';\nimport { Trans, useTranslation } from 'react-i18next';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Redirect, useParams } from 'react-router-dom';\nimport { ensureCreatedRFQ, selectOffer } from 'common/store/order-creation/actions';\nimport {\n    selectCreateRFQRequest,\n    selectIsPartialLoadingOffers,\n    selectPriceOffersByHash,\n    selectPriceOffersById,\n    selectRFQ,\n} from 'common/store/order-creation/selectors';\nimport { PriceOfferT } from 'common/store/order-creation/models';\nimport useQuery from 'common/utils/hooks/useQuery';\nimport {\n    ApiEmissionClassT,\n    ApiFuelOptionTypeT,\n    CurrencyEnum,\n    EmissionClassEnum,\n    FuelOptionTypeEnum,\n    OMSRoutesEnum,\n    QueryKeysEnum,\n} from 'common/constants';\nimport getDatesHash from 'common/store/order-creation/utils/get-dates-hash';\nimport history from 'common/utils/history';\nimport Money from 'common/components/Money/Money';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport AdditionalServices from './AdditionalServices/AdditionalServices';\nimport ProgressBar from './ProgressBar/ProgressBar';\nimport QuickActions from './QuickActions/QuickActions';\nimport { formatQuery } from 'common/utils/query';\nimport { sumAdditionalServicesPrice } from 'common/layouts/NewOrderPage/additional-services';\nimport HeaderSideBarPortal from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarPortal/HeaderSideBarPortal';\nimport SelectedOfferHeader from 'common/layouts/NewOrderPage/OffersForm/SelectedOfferHeader/SelectedOfferHeader';\nimport { ApiDictCarrierAdditionalServiceTypeT } from 'common/utils/api/models';\nimport { fetchAdditionalServices } from 'common/store/additional-services-dict/slice';\nimport { selectAdditionalServicesMap } from 'common/store/additional-services-dict/selectors';\nimport { WAIT_RFQ_ID } from 'common/store/order-creation/constants';\nimport { fetchTrailersDict } from 'common/store/trailers-dict/actions';\nimport { selectTrailersDictById } from 'common/store/trailers-dict/selectors';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport FooterSideBarAlertsLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarAlertsLayout/FooterSideBarAlertsLayout';\nimport {\n    CustomLineHaulT,\n    formatQueryCustomLineHaulMap,\n    parseQueryCustomLineHaulMap,\n} from 'common/layouts/NewOrderPage/query';\nimport { compareLineHaul, getPriceOfferLineHaul } from 'common/layouts/NewOrderPage/utils/custom-line-haul';\nimport { getOfferTotalPrice, safetyModifyOfferTotalPrice } from 'common/layouts/NewOrderPage/utils/offer-total-price';\nimport isNumber from 'lodash/isNumber';\nimport { useSelectedShipperCreditLimit } from 'common/layouts/NewOrderPage/hooks/use-selected-shipper-credit-limit';\nimport { checkIsCreditLimitExceeded } from 'common/layouts/NewOrderPage/utils/check-is-credit-limit-exceeded';\nimport SideBarFooterAlertsContext from 'common/layouts/LeftMenuLayout/SideBarLayout/contexts/side-bar-footer-alerts-context';\nimport { AlertThemeEnum } from 'common/components/Alert/Alert';\nimport CreditLimitExceedAlertContent from 'common/layouts/NewOrderPage/OffersForm/footer-alert-contents/CreditLimitExceedAlertContent/CreditLimitExceedAlertContent';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\ntype QueryT = {\n    [QueryKeysEnum.orderCreationPriceOfferId]: string;\n    [QueryKeysEnum.orderCreationDropOffDate]: string;\n    [QueryKeysEnum.orderCreationPickUpDate]: string;\n    [QueryKeysEnum.orderCreationCustomLineHauls]: string;\n    [QueryKeysEnum.orderCreationAdditionalServices]: ApiDictCarrierAdditionalServiceTypeT[];\n};\n\nconst TODO = 'WAIT_EXPERIMENT_TZT-6839';\n\nconst OffersForm: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n    const creditLimit = useSelectedShipperCreditLimit();\n    const sideBarFooterAlertsContext = React.useContext(SideBarFooterAlertsContext);\n\n    const ref = React.createRef<HTMLDivElement>();\n\n    const query = useQuery<QueryT>();\n    const params = useParams<{ rfqId: string }>();\n    const dispatch = useDispatch();\n    React.useEffect(() => {\n        dispatch(ensureCreatedRFQ(params.rfqId));\n        dispatch(fetchAdditionalServices());\n        dispatch(fetchTrailersDict());\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [dispatch]);\n\n    const additionalServicesTopRef = useRef<HTMLDivElement | null>(null);\n    const setAdditionalServicesTopRef = React.useCallback((node: HTMLDivElement | null) => {\n        additionalServicesTopRef.current = node;\n    }, []); // eslint-disable-line react-hooks/exhaustive-deps\n\n    const createRFQRequestStatus = useSelector(selectCreateRFQRequest);\n    const rfq = useSelector(selectRFQ);\n\n    const priceOffersByHash = useSelector(selectPriceOffersByHash);\n    const trailersDictById = useSelector(selectTrailersDictById);\n\n    const dictTrailerInfo = trailersDictById[String(rfq?.trailerTypeId)] || null;\n\n    const pickUpDate = query[QueryKeysEnum.orderCreationPickUpDate];\n    const dropOffDate = query[QueryKeysEnum.orderCreationDropOffDate];\n    const rawCustomLineHaul = query[QueryKeysEnum.orderCreationCustomLineHauls];\n    const customLineHaulMap = React.useMemo(() => {\n        return parseQueryCustomLineHaulMap(rawCustomLineHaul);\n    }, [rawCustomLineHaul]);\n\n    const hash = getDatesHash(pickUpDate, dropOffDate);\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    const priceOffers = priceOffersByHash[hash] || [];\n    const sortedPriceOffers = React.useMemo(() => {\n        const emissionClassOrder: Record<ApiEmissionClassT, number> = {\n            [EmissionClassEnum.euro6]: 1,\n            [EmissionClassEnum.euro5]: 2,\n        };\n\n        const fuelOptionOrder: Record<ApiFuelOptionTypeT, number> = {\n            [FuelOptionTypeEnum.hvo]: 1,\n            [FuelOptionTypeEnum.diesel]: 2,\n            [FuelOptionTypeEnum.mixed]: 3,\n        };\n\n        return [...priceOffers].sort((priceOfferA, priceOfferB) => {\n            const emissionClassARate = priceOfferA.emissionClass ? emissionClassOrder[priceOfferA.emissionClass] : null;\n            const emissionClassBRate = priceOfferB.emissionClass ? emissionClassOrder[priceOfferB.emissionClass] : null;\n            if (emissionClassARate && emissionClassBRate && emissionClassARate !== emissionClassBRate) {\n                return emissionClassARate - emissionClassBRate;\n            }\n\n            const fuelOptionTypeARate = priceOfferA?.fuelOptionType\n                ? fuelOptionOrder[priceOfferA.fuelOptionType]\n                : null;\n            const fuelOptionTypeBRate = priceOfferB?.fuelOptionType\n                ? fuelOptionOrder[priceOfferB.fuelOptionType]\n                : null;\n            if (fuelOptionTypeARate && fuelOptionTypeBRate && fuelOptionTypeARate !== fuelOptionTypeBRate) {\n                return fuelOptionTypeARate - fuelOptionTypeBRate;\n            }\n\n            return (priceOfferA.price || 0) - (priceOfferB.price || 0);\n        });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [priceOffers]);\n\n    const priceOffersById = useSelector(selectPriceOffersById);\n    const selectedOfferId = query[QueryKeysEnum.orderCreationPriceOfferId];\n    const selectedOffer = priceOffersById[selectedOfferId || ''] || null;\n\n    const scrollToSelectedOffer = React.useCallback((): void => {\n        if (!ref.current) {\n            return;\n        }\n\n        scrollIntoView(ref.current, {\n            time: 300,\n        });\n    }, [ref.current]); // eslint-disable-line react-hooks/exhaustive-deps\n\n    React.useEffect((): void => {\n        scrollToSelectedOffer();\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [pickUpDate, dropOffDate]);\n\n    const handleSelectPriceOffer = (offer: PriceOfferT) => {\n        history.push({\n            search: formatQuery({\n                ...query,\n                [QueryKeysEnum.orderCreationPriceOfferId]: offer.id,\n            }),\n        });\n    };\n\n    const handleChangeCustomLineHaul = (priceOfferId: PriceOfferIdT, customLineHaul: CustomLineHaulT | null) => {\n        history.push({\n            search: formatQuery({\n                ...query,\n                [QueryKeysEnum.orderCreationCustomLineHauls]: formatQueryCustomLineHaulMap({\n                    ...customLineHaulMap,\n                    [priceOfferId]: isNumber(customLineHaul) ? customLineHaul : undefined,\n                }),\n            }),\n        });\n    };\n\n    React.useEffect(() => {\n        if (sortedPriceOffers?.length && !selectedOffer) {\n            const firstPriceOffer = sortedPriceOffers[0];\n            handleSelectPriceOffer(firstPriceOffer);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [sortedPriceOffers, selectedOffer]);\n\n    const acceptPriceOffer = () => {\n        dispatch(selectOffer(params.rfqId, selectedOffer));\n    };\n\n    const selectedAdditionalServiceEnums = React.useMemo(() => {\n        return query[QueryKeysEnum.orderCreationAdditionalServices] || [];\n    }, [query]);\n\n    const additionalServiceMap = useSelector(selectAdditionalServicesMap(dictTrailerInfo?.trailerType || null));\n    const summaryAdditionalServicesPrice = React.useMemo(() => {\n        return sumAdditionalServicesPrice(selectedAdditionalServiceEnums, additionalServiceMap);\n    }, [selectedAdditionalServiceEnums, additionalServiceMap]);\n\n    const setSelectedServices = React.useCallback(\n        (selectedServicesEnums: ApiDictCarrierAdditionalServiceTypeT[]) => {\n            history.push({\n                search: formatQuery({\n                    ...query,\n                    [QueryKeysEnum.orderCreationAdditionalServices]: selectedServicesEnums,\n                }),\n            });\n        },\n        [query],\n    );\n\n    const isPartialLoadingOffers = useSelector(selectIsPartialLoadingOffers);\n    // const isExactRequest =\n    //     (isPickUpDateBased && selectedOffer?.pickUpDate === orderDraft?.pickUpDate) ||\n    //     (!isPickUpDateBased && selectedOffer?.dropOffDate === orderDraft?.dropOffDate);\n\n    const points = useMemo((): MultiPointOrderDraftDetailsPropsT['points'] => {\n        if (rfq) {\n            return rfq.points.map((point, index) => {\n                return {\n                    address: point.address,\n                    type: point.type,\n                    index,\n                };\n            });\n        }\n\n        return null;\n    }, [rfq]);\n\n    const offerTotalPrice = getOfferTotalPrice(selectedOffer);\n\n    const sourceLineHaul = getPriceOfferLineHaul(selectedOffer);\n    const customLineHaul = customLineHaulMap?.[selectedOfferId as PriceOfferIdT];\n    const { hasChangedLineHaul, lineHaulDiff } = compareLineHaul(sourceLineHaul, customLineHaul);\n\n    const totalAmount = safetyModifyOfferTotalPrice(offerTotalPrice, summaryAdditionalServicesPrice, lineHaulDiff);\n    const isCreditLimitExceeded = checkIsCreditLimitExceeded({ creditLimit, cost: totalAmount });\n    const isAcceptOfferDisabled = !!selectedOffer?.isExpired || isCreditLimitExceeded;\n    const showFooterAlert = sideBarFooterAlertsContext?.showAlert;\n\n    React.useEffect(() => {\n        if (!isCreditLimitExceeded || !showFooterAlert) {\n            return undefined;\n        }\n\n        return showFooterAlert({\n            theme: AlertThemeEnum.orange,\n            content: <CreditLimitExceedAlertContent />,\n        });\n    }, [isCreditLimitExceeded, showFooterAlert]);\n\n    const acceptOfferTooltipNode = React.useMemo((): React.ReactNode => {\n        if (selectedOffer?.isExpired) {\n            return (\n                <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                    {t('common:new-order-offers.selected-offer-expired')}\n                </TooltipContent>\n            );\n        }\n\n        if (isCreditLimitExceeded) {\n            return (\n                <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                    {t('common:new-order-offers.credit-limit-exceeded')}\n                </TooltipContent>\n            );\n        }\n\n        return null;\n    }, [selectedOffer?.isExpired, isCreditLimitExceeded, t]);\n\n    const scrollToAdditionalServicesTop = (): void => {\n        const node = additionalServicesTopRef?.current || null;\n        if (!node) {\n            return;\n        }\n\n        scrollIntoView(node, {\n            time: 300,\n            align: {\n                top: 0.1,\n            },\n        });\n    };\n\n    if (params.rfqId === WAIT_RFQ_ID && createRFQRequestStatus.initial) {\n        return <Redirect to={OMSRoutesEnum.newOrder} />;\n    }\n\n    return (\n        <div className={cx('inner')} data-test-selector=\"new-order-offers\">\n            <HeaderSideBarPortal>\n                {selectedOffer && (\n                    <SelectedOfferHeader\n                        amount={totalAmount}\n                        hasChangedLineHaul={hasChangedLineHaul}\n                        currency={CurrencyEnum.EUR}\n                        onClickAmount={scrollToSelectedOffer}\n                    />\n                )}\n            </HeaderSideBarPortal>\n            <MultiPointOrderDraftDetails offer={selectedOffer} trailerType={dictTrailerInfo} points={points} />\n            {!TODO && (\n                <>\n                    <QuickActions isPartialLoadingOffers={isPartialLoadingOffers} className={cx('quick-actions')} />\n                    <ProgressBar className={cx('progress-bar')} />\n                </>\n            )}\n            <div ref={ref}>\n                <div className={cx('offers')}>\n                    {sortedPriceOffers.map((priceOffer, priceOfferIndex) => {\n                        return (\n                            <OfferDetails\n                                className={cx('offer')}\n                                isSelectable\n                                isSelected={priceOffer?.id === selectedOfferId}\n                                key={priceOffer?.id || priceOfferIndex}\n                                offer={priceOffer}\n                                onSelect={handleSelectPriceOffer}\n                                selectedAdditionalServiceEnums={selectedAdditionalServiceEnums}\n                                scrollToAdditionalServices={scrollToAdditionalServicesTop}\n                                customLineHaulMap={customLineHaulMap}\n                                onChangeCustomLineHaul={handleChangeCustomLineHaul}\n                                dictTrailerInfo={dictTrailerInfo}\n                                creditLimit={creditLimit}\n                            />\n                        );\n                    })}\n                </div>\n            </div>\n            {selectedOffer && (\n                <FooterSideBarLayout hasPaddings topNode={<FooterSideBarAlertsLayout />}>\n                    <div className={cx('actions')}>\n                        <Button\n                            theme={ButtonThemeEnum.secondary}\n                            className={cx('actions__action', {\n                                'actions__action--additional-services': true,\n                            })}\n                            type=\"button\"\n                            onClick={scrollToAdditionalServicesTop}\n                            testSelector=\"select-additional-services\"\n                        >\n                            {t('common:new-order-offers.select-additional-services')}\n                        </Button>\n                        <Tooltip\n                            className={cx('actions__action', {\n                                'actions__action--submit': true,\n                            })}\n                            position={TooltipPositionEnum.topCenter}\n                            theme={TooltipThemeEnum.black}\n                            tooltipNode={acceptOfferTooltipNode}\n                        >\n                            {() => (\n                                <Button\n                                    className={cx('inner-button')}\n                                    theme={ButtonThemeEnum.primary}\n                                    isDisabled={isAcceptOfferDisabled}\n                                    type=\"button\"\n                                    onClick={acceptPriceOffer}\n                                    testSelector=\"next-step\"\n                                    isCenterContent\n                                    isFullWidth\n                                >\n                                    <Trans\n                                        i18nKey=\"common:new-order-offers.accept-price\"\n                                        components={{\n                                            amount: <Money amount={totalAmount} currency={CurrencyEnum.EUR} />,\n                                        }}\n                                    />\n                                </Button>\n                            )}\n                        </Tooltip>\n                    </div>\n                </FooterSideBarLayout>\n            )}\n            <AdditionalServices\n                setAdditionalServicesTopRef={setAdditionalServicesTopRef}\n                selectedServiceTypes={selectedAdditionalServiceEnums}\n                setSelectedServices={setSelectedServices}\n                selectedOffer={selectedOffer}\n                dictTrailerInfo={dictTrailerInfo}\n            />\n        </div>\n    );\n});\n\nexport default OffersForm;\n","import * as React from 'react';\nimport { useEffect, useMemo, useState } from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './BaseShipperContractLaneDetailsLayout.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport ShipperContractLaneDetailsMap, {\n    ShipperContractLaneAddressT,\n} from './ShipperContractLaneDetailsMap/ShipperContractLaneDetailsMap';\nimport { selectShipperContractLaneDetailsState } from 'common/store/shipper-contract-lane-details/selectors';\nimport HorizontalColumnsLayout from 'common/layouts/HorizontalColumnsLayout/HorizontalColumnsLayout';\nimport SideBarLayoutContextWrap from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayoutContextWrap/SideBarLayoutContextWrap';\nimport CommonEditableShipperContractLaneDetailsLayout from 'common/layouts/CommonEditableShipperContractLaneDetailsLayout/CommonEditableShipperContractLaneDetailsLayout';\nimport GoogleMapContextProvider from 'common/components/maps/GoogleMapContextProvider/GoogleMapContextProvider';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    onClose: () => void;\n    partnerId: PartnerIdT;\n    contractId: ShipperContractIdT;\n    laneId: ShipperContractLaneIdT;\n    onOpenUserDetails?: (userId: UserIdT) => void;\n    isReadOnly: boolean;\n};\n\nconst BaseShipperContractLaneDetailsLayout: React.FC<PropsT> = React.memo((props) => {\n    const { partnerId, contractId, laneId, onClose, isReadOnly, onOpenUserDetails } = props;\n\n    const { t } = useTranslation();\n\n    const { data } = useSelector(selectShipperContractLaneDetailsState(laneId));\n\n    const [originRadiusKm, setOriginRadiusKm] = useState<number>(0);\n\n    useEffect(() => {\n        setOriginRadiusKm(data?.originRadius || 0);\n    }, [data?.originRadius]);\n\n    const originAddress = useMemo((): ShipperContractLaneAddressT | null => {\n        return {\n            point:\n                data?.originPoint?.latitude && data?.originPoint?.longitude\n                    ? {\n                          lat: data?.originPoint?.latitude,\n                          lng: data?.originPoint?.longitude,\n                      }\n                    : null,\n            radiusKm: originRadiusKm,\n        };\n    }, [data, originRadiusKm]);\n\n    const [destinationRadiusKm, setDestinationRadiusKm] = useState<number>(0);\n\n    useEffect(() => {\n        setDestinationRadiusKm(data?.destinationRadius || 0);\n    }, [data?.destinationRadius]);\n\n    const destinationAddress = useMemo((): ShipperContractLaneAddressT | null => {\n        return {\n            point:\n                data?.destinationPoint?.latitude && data?.destinationPoint?.longitude\n                    ? {\n                          lat: data?.destinationPoint?.latitude,\n                          lng: data?.destinationPoint?.longitude,\n                      }\n                    : null,\n            radiusKm: destinationRadiusKm,\n        };\n    }, [data, destinationRadiusKm]);\n\n    return (\n        <GoogleMapContextProvider>\n            <HorizontalColumnsLayout\n                leftColumnTitle={t('common:shipper-lane-details.tabs.form')}\n                leftColumnNode={\n                    <SideBarLayoutContextWrap>\n                        <CommonEditableShipperContractLaneDetailsLayout\n                            partnerId={partnerId}\n                            shipperContractId={contractId}\n                            shipperContractLaneId={laneId}\n                            onClose={onClose}\n                            onOpenUserDetails={onOpenUserDetails}\n                            onChangeOriginRadiusKm={setOriginRadiusKm}\n                            onChangeDestinationRadiusKm={setDestinationRadiusKm}\n                            isReadOnly={isReadOnly}\n                        />\n                    </SideBarLayoutContextWrap>\n                }\n                rightColumnTitle={t('common:shipper-lane-details.tabs.map')}\n                rightColumnNode={\n                    <ShipperContractLaneDetailsMap\n                        originAddress={originAddress}\n                        destinationAddress={destinationAddress}\n                    />\n                }\n            />\n        </GoogleMapContextProvider>\n    );\n});\n\nexport default BaseShipperContractLaneDetailsLayout;\n","import { RequestStatusT } from 'common/utils/request-status';\nimport {\n    DocumentDetailsChangesT,\n    DocumentIdsByTypeT,\n    DocumentT,\n    EvidenceOfTaxDetailsChangesT,\n    EvidenceOfTaxDetailsT,\n} from 'common/store/documents/models';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\n\nexport const FETCH_DOCUMENTS_REQUEST = 'common/documents/FETCH_DOCUMENTS_REQUEST';\nexport const FETCH_DOCUMENTS_REQUEST_BEGIN = 'common/documents/FETCH_DOCUMENTS_REQUEST_BEGIN';\nexport const FETCH_DOCUMENTS_REQUEST_ERROR = 'common/documents/FETCH_DOCUMENTS_REQUEST_ERROR';\nexport const FETCH_DOCUMENTS_REQUEST_SUCCESS = 'common/documents/FETCH_DOCUMENTS_REQUEST_SUCCESS';\n\nexport const UPLOAD_DOCUMENT_REQUEST = 'common/documents/UPLOAD_DOCUMENT_REQUEST';\nexport const UPLOAD_DOCUMENT_REQUEST_BEGIN = 'common/documents/UPLOAD_DOCUMENT_REQUEST_BEGIN';\nexport const UPLOAD_DOCUMENT_REQUEST_ERROR = 'common/documents/UPLOAD_DOCUMENT_REQUEST_ERROR';\nexport const UPLOAD_DOCUMENT_REQUEST_SUCCESS = 'common/documents/UPLOAD_DOCUMENT_REQUEST_SUCCESS';\n\nexport const APPROVE_DOCUMENT_REQUEST = 'common/documents/APPROVE_DOCUMENT_REQUEST';\nexport const APPROVE_EVIDENCE_OF_TAX_DOCUMENT_REQUEST = 'common/documents/APPROVE_EVIDENCE_OF_TAX_DOCUMENT_REQUEST';\nexport const REJECT_DOCUMENT_REQUEST = 'common/documents/REJECT_DOCUMENT_REQUEST';\nexport const REVOKE_DOCUMENT_REQUEST = 'common/documents/REVOKE_DOCUMENT_REQUEST';\nexport const UPDATE_DOCUMENT_REQUEST = 'common/documents/UPDATE_DOCUMENT_REQUEST';\nexport const UPDATE_DOCUMENT_REQUEST_BEGIN = 'common/documents/UPDATE_DOCUMENT_REQUEST_BEGIN';\nexport const UPDATE_DOCUMENT_REQUEST_ERROR = 'common/documents/UPDATE_DOCUMENT_REQUEST_ERROR';\nexport const UPDATE_DOCUMENT_REQUEST_SUCCESS = 'common/documents/UPDATE_DOCUMENT_REQUEST_SUCCESS';\n\nexport const DOWNLOAD_DOCUMENT_REQUEST = 'common/documents/DOWNLOAD_DOCUMENT_REQUEST';\nexport const DOWNLOAD_DOCUMENT_REQUEST_BEGIN = 'common/documents/DOWNLOAD_DOCUMENT_REQUEST_BEGIN';\nexport const DOWNLOAD_DOCUMENT_REQUEST_ERROR = 'common/documents/DOWNLOAD_DOCUMENT_REQUEST_ERROR';\nexport const DOWNLOAD_DOCUMENT_REQUEST_SUCCESS = 'common/documents/DOWNLOAD_DOCUMENT_REQUEST_SUCCESS';\n\nexport const FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST = 'common/documents/FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST';\nexport const FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_BEGIN =\n    'common/documents/FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_BEGIN';\nexport const FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_ERROR =\n    'common/documents/FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_ERROR';\nexport const FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_SUCCESS =\n    'common/documents/FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_SUCCESS';\n\nexport const UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST = 'common/documents/UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST';\nexport const UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_BEGIN =\n    'common/documents/UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_BEGIN';\nexport const UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_ERROR =\n    'common/documents/UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_ERROR';\nexport const UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_SUCCESS =\n    'common/documents/UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_SUCCESS';\n\nexport const RESET = 'common/documents/RESET';\n\nexport type FetchDocumentsActionT = {\n    type: typeof FETCH_DOCUMENTS_REQUEST;\n    companyId: CompanyIdT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchDocumentsBeginActionT = {\n    type: typeof FETCH_DOCUMENTS_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type FetchDocumentsSuccessActionT = {\n    type: typeof FETCH_DOCUMENTS_REQUEST_SUCCESS;\n    documentIdsByType: DocumentIdsByTypeT;\n    documentsList: DocumentT[];\n    companyId: CompanyIdT;\n};\n\nexport type FetchDocumentsErrorActionT = {\n    type: typeof FETCH_DOCUMENTS_REQUEST_ERROR;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type UploadDocumentActionT = {\n    type: typeof UPLOAD_DOCUMENT_REQUEST;\n    partnerType: PartnerTypeEnum;\n    companyId: CompanyIdT;\n    dictDocumentId: DictDocumentFakeIdT;\n    file: File;\n};\n\nexport type UploadDocumentBeginActionT = {\n    type: typeof UPLOAD_DOCUMENT_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n    dictDocumentId: DictDocumentFakeIdT;\n};\n\nexport type UploadDocumentSuccessActionT = {\n    type: typeof UPLOAD_DOCUMENT_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n};\n\nexport type UploadDocumentErrorActionT = {\n    type: typeof UPLOAD_DOCUMENT_REQUEST_ERROR;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type DownloadDocumentActionT = {\n    type: typeof DOWNLOAD_DOCUMENT_REQUEST;\n    documentId: string;\n    companyId: CompanyIdT;\n};\n\nexport type DownloadDocumentBeginActionT = {\n    type: typeof DOWNLOAD_DOCUMENT_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type DownloadDocumentSuccessActionT = {\n    type: typeof DOWNLOAD_DOCUMENT_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n};\n\nexport type DownloadDocumentErrorActionT = {\n    type: typeof DOWNLOAD_DOCUMENT_REQUEST_ERROR;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type ApproveDocumentActionT = {\n    type: typeof APPROVE_DOCUMENT_REQUEST;\n    companyId: CompanyIdT;\n    documentId: DocumentIdT;\n    partnerType: PartnerTypeEnum;\n    validTill: string | null;\n};\n\nexport type ApproveEvidenceOfTaxDocumentActionT = {\n    type: typeof APPROVE_EVIDENCE_OF_TAX_DOCUMENT_REQUEST;\n    companyId: CompanyIdT;\n    documentId: DocumentIdT;\n    partnerType: PartnerTypeEnum;\n    validTill: string | null;\n    detailsChanges: EvidenceOfTaxDetailsChangesT;\n};\n\nexport type RejectDocumentActionT = {\n    type: typeof REJECT_DOCUMENT_REQUEST;\n    documentId: DocumentIdT;\n    reason: string;\n    companyId: CompanyIdT;\n    partnerType: PartnerTypeEnum;\n};\n\nexport type RevokeDocumentActionT = {\n    type: typeof REVOKE_DOCUMENT_REQUEST;\n    documentId: DocumentIdT;\n    companyId: CompanyIdT;\n    partnerType: PartnerTypeEnum;\n};\n\nexport type UpdateDocumentActionT = {\n    type: typeof UPDATE_DOCUMENT_REQUEST;\n    documentId: DocumentIdT;\n    companyId: CompanyIdT;\n    detailChanges: DocumentDetailsChangesT;\n};\n\nexport type UpdateEvidenceOfTaxDetailsActionT = {\n    type: typeof UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST;\n    companyId: CompanyIdT;\n    documentId: DocumentIdT;\n    detailsChanges: EvidenceOfTaxDetailsChangesT;\n};\n\nexport type UpdateEvidenceOfTaxDetailsBeginActionT = {\n    type: typeof UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type UpdateEvidenceOfTaxDetailsSuccessActionT = {\n    type: typeof UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n};\n\nexport type UpdateEvidenceOfTaxDetailsErrorActionT = {\n    type: typeof UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_ERROR;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type UpdateDocumentBeginActionT = {\n    type: typeof UPDATE_DOCUMENT_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n    documentId: DocumentIdT;\n};\n\nexport type UpdateDocumentSuccessActionT = {\n    type: typeof UPDATE_DOCUMENT_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n};\n\nexport type UpdateDocumentErrorActionT = {\n    type: typeof UPDATE_DOCUMENT_REQUEST_ERROR;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type FetchEvidenceOfTaxDetailsActionT = {\n    type: typeof FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST;\n    companyId: CompanyIdT;\n};\n\nexport type FetchEvidenceOfTaxDetailsBeginActionT = {\n    type: typeof FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type FetchEvidenceOfTaxDetailsSuccessActionT = {\n    type: typeof FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_SUCCESS;\n    evidenceOfTaxDetails: EvidenceOfTaxDetailsT;\n    companyId: CompanyIdT;\n};\n\nexport type FetchEvidenceOfTaxDetailsErrorActionT = {\n    type: typeof FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_ERROR;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type ResetDocumentActionT = {\n    type: typeof RESET;\n    companyId: CompanyIdT;\n};\n\nexport type DocumentsActionT =\n    | FetchDocumentsActionT\n    | FetchDocumentsBeginActionT\n    | FetchDocumentsSuccessActionT\n    | FetchDocumentsErrorActionT\n    | UpdateEvidenceOfTaxDetailsActionT\n    | UpdateEvidenceOfTaxDetailsBeginActionT\n    | UpdateEvidenceOfTaxDetailsSuccessActionT\n    | UpdateEvidenceOfTaxDetailsErrorActionT\n    | UploadDocumentActionT\n    | UploadDocumentBeginActionT\n    | UploadDocumentSuccessActionT\n    | UploadDocumentErrorActionT\n    | UpdateDocumentBeginActionT\n    | UpdateDocumentSuccessActionT\n    | UpdateDocumentErrorActionT\n    | DownloadDocumentActionT\n    | DownloadDocumentBeginActionT\n    | DownloadDocumentSuccessActionT\n    | DownloadDocumentErrorActionT\n    | ApproveDocumentActionT\n    | ApproveEvidenceOfTaxDocumentActionT\n    | RejectDocumentActionT\n    | RevokeDocumentActionT\n    | FetchEvidenceOfTaxDetailsActionT\n    | FetchEvidenceOfTaxDetailsBeginActionT\n    | FetchEvidenceOfTaxDetailsSuccessActionT\n    | FetchEvidenceOfTaxDetailsErrorActionT\n    | ResetDocumentActionT;\n\nexport type CompanyDocumentsStateT = {\n    idsByType: DocumentIdsByTypeT | null;\n    byId: Record<DocumentIdT, DocumentT> | null;\n    ids: DocumentT['id'][] | null;\n    fetchDocumentsRequest: RequestStatusT;\n    downloadDocumentRequest: RequestStatusT;\n    uploadRequest: RequestStatusT;\n    uploadingDictDocumentId: DictDocumentFakeIdT | null;\n    updateRequest: RequestStatusT;\n    updatingDocumentId: DictDocumentFakeIdT | null;\n    evidenceOfTaxDetails: EvidenceOfTaxDetailsT | null;\n    fetchEvidenceOfTaxDetailsRequest: RequestStatusT;\n    updateEvidenceOfTaxDetailsRequest: RequestStatusT;\n};\n\nexport type DocumentsStateT = Record<CompanyIdT, CompanyDocumentsStateT>;\n","import * as React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { formatDateWithTimeZone } from 'common/utils/time';\n\nconst LAST_UPDATED_AT_FORMAT = 'D MMM, HH:mm';\n\ntype PropsT = {\n    lastSyncedAt: string;\n};\n\nconst ExternallyManagedPill: React.FC<PropsT> = React.memo(({ lastSyncedAt }) => {\n    const { t } = useTranslation();\n\n    return (\n        <PillLabel isSymmetrical theme={PillLabelThemeEnum.charcoal}>\n            {t('common:profile-page.basic-information.labels.externally-managed', {\n                date: formatDateWithTimeZone(lastSyncedAt, null, LAST_UPDATED_AT_FORMAT),\n            })}\n        </PillLabel>\n    );\n});\n\nexport default ExternallyManagedPill;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './TableActions.scss';\nimport DropdownControl, {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport ArrowsIcon from 'common/icons/ArrowsIcon';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\nexport type TableActionOptionT = DropdownControlOptionT;\n\ntype PropsT = {\n    className?: string;\n    options: Array<TableActionOptionT | SpecialOptionEnum | null>;\n    trigger: string;\n    isDisabled: boolean;\n    overlayClassName?: string;\n    testSelector?: string;\n};\n\nconst TableActions: React.FC<PropsT> = (props) => {\n    const { className, options, trigger, isDisabled, testSelector, overlayClassName } = props;\n\n    const fullTestSelector = `${testSelector}_table-actions`;\n    return (\n        <DropdownControl\n            className={className}\n            options={options}\n            renderTrigger={(isActive, onClick) => (\n                <TransparentTrigger\n                    isPressed={isActive}\n                    onClick={onClick}\n                    label={trigger}\n                    rightIcon={<ArrowsIcon />}\n                    testSelector={fullTestSelector}\n                    reflectionTheme={ReflectionThemeEnum.light}\n                />\n            )}\n            isDisabled={isDisabled}\n            overlayClassName={overlayClassName}\n            overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n        />\n    );\n};\n\nexport default TableActions;\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"EditTourStopContactFooterContent__content___S5m2I\",\"head\":\"EditTourStopContactFooterContent__head___hdn5r\",\"head__icon\":\"EditTourStopContactFooterContent__head__icon___q1KjJ\",\"head__title\":\"EditTourStopContactFooterContent__head__title___Yn38j\",\"fadeIn\":\"EditTourStopContactFooterContent__fadeIn____R_zr\",\"blinking\":\"EditTourStopContactFooterContent__blinking___nRotv\"};","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './HumanReadableDateCell.scss';\n\nimport isNil from 'lodash/isNil';\nimport { formatHumanReadableDate } from 'common/utils/time';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    date: string | null | undefined;\n    className?: string;\n    isBold?: boolean;\n    isBigFont?: boolean;\n    isAllowNever?: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nconst HumanReadableDateCell: React.FC<PropsT> = React.memo((props) => {\n    const { date, isBold, isBigFont, className, isAllowNever } = props;\n\n    const { t } = useTranslation();\n\n    if (isNil(date)) {\n        return null;\n    }\n\n    return (\n        <div className={cs(cx('date', { 'date--isBold': isBold, 'date--isBigFont': isBigFont }), className)}>\n            {formatHumanReadableDate(t, date, { isAllowNever })}\n        </div>\n    );\n});\n\nexport default HumanReadableDateCell;\n","import React, { useCallback } from 'react';\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport {\n    AsyncRequestFactoryResultT,\n    AsyncRequestFactoryT,\n    useAsyncOptionsRequest,\n} from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-options-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { ApiPartnerT, PartnerTypeEnum } from 'common/utils/api/models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport DropdownSearchInput from 'design-system/components/dropdowns/DropdownSearchInput/DropdownSearchInput';\nimport classNames from 'classnames/bind';\nimport styles from './PartnerSuggest.scss';\n\nconst cx = classNames.bind(styles);\n\ntype ValueT = ApiPartnerT['id'] | null;\n\nexport type OptionT = {\n    id: ApiPartnerT['id'];\n    name: ApiPartnerT['name'];\n    number: ApiPartnerT['number'];\n    countryCode: NonNullable<ApiPartnerT['legalAddress']>['country'] | null;\n};\n\nexport type PropsT = {\n    className?: string;\n    partnerType: PartnerTypeEnum;\n    initialOptions?: Array<OptionT>;\n    initialRequestStatus?: RequestStatusT;\n    onSelect: (value: ValueT, option: OptionT | null) => void;\n    value: ValueT;\n    overlayPosition: DropdownOverlayPositionEnum;\n    hasClearControl?: InputPropsT['hasClearControl'];\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    placeholder: InputPropsT['placeholder'];\n    onBlur: InputPropsT['onBlur'];\n    onFocus: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasChanges?: boolean;\n};\n\nconst PartnerSuggest: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        partnerType,\n        initialOptions,\n        value,\n        onSelect,\n        hasWarning,\n        hasError,\n        hasClearControl,\n        overlayPosition,\n        isDisabled,\n        placeholder,\n        onBlur,\n        onFocus,\n        hasChanges,\n        initialRequestStatus,\n    } = props;\n\n    const requestFactory: AsyncRequestFactoryT<OptionT> = useCallback(\n        (query) => {\n            return brokerTranziitApi\n                .findPartnersByName(query, [partnerType])\n                .then((response): AsyncRequestFactoryResultT<OptionT> => {\n                    const [error, result] = response;\n                    if (error) {\n                        return [error, null];\n                    }\n\n                    const items: Array<OptionT> =\n                        result?.content?.map((item) => {\n                            return {\n                                id: item.id,\n                                name: item.name,\n                                number: item.number,\n                                countryCode: item.legalAddress?.country,\n                            };\n                        }) || [];\n\n                    return [null, items];\n                });\n        },\n        [partnerType],\n    );\n\n    const asyncOptionsRequest = useAsyncOptionsRequest<OptionT>({\n        initialOptions,\n        requestFactory,\n        settings: {},\n    });\n\n    const handleSelect = (value: ValueT) => {\n        const option =\n            asyncOptionsRequest.options.find((option) => {\n                const optionValue = getOptionValue(option);\n                return value === optionValue;\n            }) || null;\n\n        onSelect(value, option);\n    };\n\n    const handleReset = () => {\n        onSelect(null, null);\n    };\n\n    const handleFocus: InputPropsT['onFocus'] = () => {\n        if (onFocus) {\n            onFocus();\n        }\n    };\n\n    const renderOption = (option: OptionT | undefined, placeholder?: string): React.ReactNode => {\n        if (!option) {\n            return placeholder;\n        }\n\n        return (\n            <DropdownControlOptionLabel\n                className={cx('option')}\n                withoutPaddings\n                icon={option.countryCode ? <FlagIcon countryCode={option.countryCode} /> : null}\n                label={option.name || ''}\n                description={option.number || ''}\n            />\n        );\n    };\n\n    const renderTrigger = (option: OptionT | undefined, placeholder?: string): React.ReactNode => {\n        if (!option) {\n            return placeholder;\n        }\n\n        return (\n            <DropdownControlOptionLabel\n                withoutPaddings\n                icon={option?.countryCode ? <FlagIcon countryCode={option.countryCode} /> : null}\n                label={option?.name || ''}\n            />\n        );\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option.id;\n\n    return (\n        <DropdownSearchInput<OptionT, ValueT>\n            className={className}\n            selectedValue={value}\n            placeholder={placeholder}\n            options={asyncOptionsRequest.options}\n            isDisabled={isDisabled}\n            onSelect={handleSelect}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            onChangeQuery={asyncOptionsRequest.onChangeQuery}\n            renderOption={renderOption}\n            renderTrigger={renderTrigger}\n            getOptionValue={getOptionValue}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={handleFocus}\n            overlayPosition={overlayPosition}\n            isLoading={asyncOptionsRequest.requestStatus.loading || initialRequestStatus?.loading}\n            onReset={hasClearControl ? handleReset : undefined}\n        />\n    );\n};\n\nexport default PartnerSuggest;\n","import React from 'react';\n\ntype PropsT = {\n    title: string;\n    children?: React.ReactNode;\n};\n\nconst SwitchableViewTab: React.FC<PropsT> = () => null;\n\nexport type { PropsT as SwitchableViewTabPropsT };\nexport default SwitchableViewTab;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    strokeColor: StyleGuideColorsEnum;\n    className?: string;\n};\n\nconst PlusIcon: React.FC<PropsT> = (props) => {\n    const { strokeColor, size, ...rest } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\" {...rest}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M10.75 6.25h-1.5v3h-3v1.5h3v3h1.5v-3h3v-1.5h-3v-3zM10 2.5c-4.14 0-7.5 3.36-7.5 7.5 0 4.14 3.36 7.5 7.5 7.5 4.14 0 7.5-3.36 7.5-7.5 0-4.14-3.36-7.5-7.5-7.5zM10 16c-3.308 0-6-2.693-6-6 0-3.308 2.692-6 6-6 3.307 0 6 2.692 6 6 0 3.307-2.693 6-6 6z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nPlusIcon.displayName = 'PlusIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default PlusIcon;\n","import React from 'react';\nimport { useGoogleMapContext } from 'common/utils/hooks/maps/useGoogleMapContext';\nimport isNumber from 'lodash/isNumber';\n\ntype BBoxT = [number, number, number, number] | [number, number, number, number, number, number];\n\ntype MapConfigT = {\n    bounds: BBoxT;\n    zoom: number;\n};\n\nexport const useGoogleMapConfig = () => {\n    const { googleMaps } = useGoogleMapContext();\n\n    const [config, setConfig] = React.useState<MapConfigT | null>(null);\n\n    const handleChange = React.useCallback(() => {\n        const { map } = googleMaps;\n        if (!map) {\n            return;\n        }\n\n        const zoom = map.getZoom();\n        const bound = map.getBounds();\n        if (!bound || !isNumber(zoom)) {\n            return;\n        }\n\n        const northEast = bound.getNorthEast();\n        const southWest = bound.getSouthWest();\n\n        setConfig({\n            zoom,\n            bounds: [southWest.lng(), southWest.lat(), northEast.lng(), northEast.lat()],\n        });\n    }, [googleMaps]);\n\n    return React.useMemo(() => {\n        return {\n            config,\n            onDragEnd: handleChange,\n            onZoomAnimationEnd: handleChange,\n        };\n    }, [config, handleChange]);\n};\n","import React from 'react';\n\nexport type AssetsSelectionContextValueT = {\n    isBlockedSelectTruck: boolean;\n    isBlockedSelectTrailer: boolean;\n};\n\nexport type AssetsSelectionContextT = {\n    value: AssetsSelectionContextValueT;\n    setValue: (value: AssetsSelectionContextValueT) => void;\n};\n\nconst AssetsSelectionContext = React.createContext<AssetsSelectionContextT | null>(null);\n\nexport default AssetsSelectionContext;\n","import React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './KeyAccountManagerDropdown.scss';\n\nimport UserDropdownOptionLabel from 'common/components/dropdowns/options/UserDropdownOptionLabel/UserDropdownOptionLabel';\nimport ControlLoaderIcon, { ControlLoaderIconProps } from 'common/icons/ControlLoaderIcon';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectFetchManagersRequest,\n    selectManagersAllIds,\n    selectManagersById,\n} from 'broker-admin/store/managers/selectors';\nimport { fetchManagers } from 'broker-admin/store/managers/actions';\nimport { ManagerT } from 'broker-admin/store/managers/models';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport isNil from 'lodash/isNil';\nimport DropdownSearchInput from 'design-system/components/dropdowns/DropdownSearchInput/DropdownSearchInput';\nimport { prepareSearchQuery } from 'common/utils/search';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype ValueT = UserIdT | null;\n\ntype PropsT = {\n    selectedValue: ValueT;\n    initialLabel: string | null;\n    placeholder: string;\n    isDisabled?: boolean;\n    onSelect: (value: ValueT, label: string) => void;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    className?: string;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    hasChanges?: boolean;\n    onBlur: () => void;\n    onFocus: () => void;\n    onReset?: () => void;\n    excludeUserIds?: Array<UserIdT>;\n};\n\ntype OptionT = ValueT;\n\nconst getLabel = (user?: ManagerT) => {\n    if (!user) {\n        return '';\n    }\n    return `${user.name} ${user.surname}`;\n};\n\nconst KeyAccountManagerDropdown: React.FC<PropsT> = React.memo((props) => {\n    const {\n        selectedValue,\n        initialLabel,\n        placeholder,\n        isDisabled,\n        onSelect,\n        overlayPosition,\n        className,\n        hasError,\n        hasWarning,\n        hasChanges,\n        onBlur,\n        onFocus,\n        onReset,\n        excludeUserIds,\n    } = props;\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchManagers());\n    }, [dispatch]);\n\n    const fetchRequest = useSelector(selectFetchManagersRequest);\n    const allIds = useSelector(selectManagersAllIds);\n    const byId = useSelector(selectManagersById);\n\n    const renderOption = (id?: ValueT, placeholder?: string): React.ReactNode => {\n        if (isNil(id)) {\n            return <UserDropdownOptionLabel label={placeholder || ''} isPlaceholder />;\n        }\n\n        const user = byId[id];\n        if (!user) {\n            if (!initialLabel) {\n                return null;\n            }\n\n            return <UserDropdownOptionLabel label={initialLabel} />;\n        }\n\n        return <UserDropdownOptionLabel label={getLabel(user)} />;\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option;\n\n    const handleSelect = (value: ValueT) => {\n        const user = byId[value as string];\n        const label = getLabel(user);\n\n        onSelect(value, label);\n    };\n\n    const [query, setQuery] = React.useState<string>('');\n\n    const filteredOptions = React.useMemo(() => {\n        const preparedQuery = prepareSearchQuery(query);\n        const excludeUserIdsSet = new Set<UserIdT>(excludeUserIds || []);\n\n        return allIds.filter((id: UserIdT) => {\n            if (excludeUserIdsSet.has(id)) {\n                return false;\n            }\n\n            const user = byId[id];\n\n            const label = getLabel(user);\n            const preparedLabel = prepareSearchQuery(label);\n\n            return preparedLabel.includes(preparedQuery);\n        });\n    }, [allIds, query, byId, excludeUserIds]);\n\n    return (\n        <DropdownSearchInput<OptionT, ValueT>\n            className={className}\n            selectedValue={selectedValue}\n            placeholder={placeholder}\n            options={filteredOptions}\n            isDisabled={fetchRequest.loading || isDisabled}\n            onSelect={handleSelect}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            renderRightIcon={() =>\n                fetchRequest.loading ? <ControlLoaderIcon {...ControlLoaderIconProps.getFetchDataProps()} /> : null\n            }\n            renderOption={renderOption}\n            renderTrigger={renderOption}\n            onChangeQuery={setQuery}\n            getOptionValue={getOptionValue}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            onReset={onReset}\n        />\n    );\n});\n\nexport default KeyAccountManagerDropdown;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './NotificationEntityLabel.scss';\n\nconst cx = classNames.bind(styles);\n\n// children not rendered by Trans component from react-i18next, use text prop instead\ntype PropsT = {\n    text: React.ReactNode;\n    isBold?: boolean;\n    isUnderline?: boolean;\n    className?: string;\n};\n\nconst NotificationEntityLabel: React.FC<PropsT> = React.memo((props) => {\n    const { text, isBold = false, isUnderline = false, className } = props;\n\n    return (\n        <span\n            className={cx('label', className, {\n                'label--bold': isBold,\n                'label--underline': isUnderline,\n            })}\n        >\n            {text}\n        </span>\n    );\n});\n\nexport default NotificationEntityLabel;\n","import * as React from 'react';\n\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport { useTranslation } from 'react-i18next';\nimport TruckIcon from 'common/icons/TruckIcon';\n\nexport type PropsT = {\n    className?: string;\n    plateNumber: string | null | undefined;\n    truckId: TruckIdT;\n    onOpenTruckDetails: (truckId: TruckIdT) => void;\n};\n\nconst LinkedTruckAlert: React.FC<PropsT> = React.memo((props) => {\n    const { className, plateNumber, truckId, onOpenTruckDetails } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <Alert\n            className={className}\n            icon={\n                <TruckIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={StyleGuideColorsEnum.white}\n                    fillColor={StyleGuideColorsEnum.transparent}\n                />\n            }\n            size={AlertSizeEnum.small}\n            theme={AlertThemeEnum.gray}\n            actionText={t('common:trailers-page.add-trailer.linked-truck.actions.open-details')}\n            onClickAction={() => {\n                onOpenTruckDetails(truckId);\n            }}\n        >\n            {t('common:trailers-page.add-trailer.linked-truck.title', {\n                plateNumber: plateNumber || '',\n            })}\n        </Alert>\n    );\n});\n\nexport default LinkedTruckAlert;\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"AddDriverSidebarContent__form___Lfeax\",\"actions\":\"AddDriverSidebarContent__actions___Rfmnv\",\"actions__action--cancel\":\"AddDriverSidebarContent__actions__action--cancel___kNZ0Z\",\"actions__action--add\":\"AddDriverSidebarContent__actions__action--add___Xo7Q6\",\"fadeIn\":\"AddDriverSidebarContent__fadeIn___wUExX\",\"blinking\":\"AddDriverSidebarContent__blinking___hO_uy\"};","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './Card.scss';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipIconTrigger from 'design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport ExpandIcon from 'common/icons/ExpandIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\nimport { OnKeyPressCallbackT, useKeyboardShortcut } from 'common/utils/hooks/useKeyboardShortcut';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    className?: string;\n    iconNode?: React.ReactNode;\n    titleNode: React.ReactNode;\n    titleClassName?: string;\n    afterTitleNode?: React.ReactNode;\n    titleTooltipNode?: React.ReactNode;\n    rightNode?: React.ReactNode;\n    initIsOpen?: boolean;\n    headerClassName?: string;\n    contentClassName?: string;\n    hasHeaderBottomBorder?: boolean;\n    footerNode?: React.ReactNode;\n    keyboardShortcut?: string;\n    anchor?: string;\n    isHighlighted?: boolean;\n};\n\nconst Card: React.FC<PropsT> = React.memo((props) => {\n    const {\n        iconNode,\n        titleNode,\n        titleClassName,\n        afterTitleNode,\n        titleTooltipNode,\n        rightNode,\n        initIsOpen,\n        headerClassName,\n        className,\n        contentClassName,\n        children,\n        hasHeaderBottomBorder,\n        footerNode,\n        keyboardShortcut,\n        anchor,\n        isHighlighted,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const [isOpen, setIsOpen] = React.useState<boolean>(!!initIsOpen);\n\n    const handleKeyPress: OnKeyPressCallbackT = React.useCallback(\n        (key) => {\n            if (keyboardShortcut && key === keyboardShortcut) {\n                setIsOpen((isOpen) => !isOpen);\n            }\n        },\n        [keyboardShortcut],\n    );\n    useKeyboardShortcut(handleKeyPress);\n\n    const toggle = () => {\n        setIsOpen((isOpen) => !isOpen);\n    };\n\n    return (\n        <div\n            className={cs(\n                cx('wrap', {\n                    'wrap--is-highlighted': isHighlighted,\n                }),\n                className,\n            )}\n            data-anchor={anchor}\n        >\n            <div className={cs(cx('header'), headerClassName)} onClick={toggle}>\n                <div className={cx('left-node')}>\n                    {iconNode || null}\n                    {titleNode && <div className={titleClassName || cx('title')}>{titleNode}</div>}\n                    {titleTooltipNode && (\n                        <Tooltip\n                            className={cx('tooltip')}\n                            position={TooltipPositionEnum.topCenter}\n                            theme={TooltipThemeEnum.black}\n                            tooltipNode={\n                                <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                    {titleTooltipNode}\n                                </TooltipContent>\n                            }\n                        >\n                            {(isShow) => <TooltipIconTrigger isShow={isShow} />}\n                        </Tooltip>\n                    )}\n                    {afterTitleNode}\n                </div>\n                <div className={cx('right-node')}>\n                    {rightNode}\n                    <Tooltip\n                        position={TooltipPositionEnum.topCenter}\n                        theme={TooltipThemeEnum.black}\n                        tooltipNode={\n                            <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                                {t(isOpen ? 'common:tooltips.collapse' : 'common:tooltips.expand')}\n                            </TooltipContent>\n                        }\n                    >\n                        {() => (\n                            <TransparentTrigger\n                                onClick={() => {\n                                    // header onClick\n                                }}\n                                leftIcon={<ExpandIcon fillColor={StyleGuideColorsEnum.brandAccent} isInvert={isOpen} />}\n                                reflectionTheme={ReflectionThemeEnum.light}\n                            />\n                        )}\n                    </Tooltip>\n                </div>\n            </div>\n            {isOpen && (\n                <div\n                    className={cs(\n                        cx('content', {\n                            'content--has-top-border': hasHeaderBottomBorder,\n                        }),\n                        contentClassName,\n                    )}\n                >\n                    {children}\n                </div>\n            )}\n            {footerNode && (\n                <div\n                    className={cs(\n                        cx('content', {\n                            'content--has-top-border': hasHeaderBottomBorder,\n                        }),\n                        contentClassName,\n                    )}\n                >\n                    {footerNode}\n                </div>\n            )}\n        </div>\n    );\n});\n\nexport default Card;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './AlertToastsManager.scss';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { getUnknownAlertToast, renderCommonAlertToast } from './utils';\nimport Toast from 'common/components/toasts/Toast/Toast';\nimport { selectAlertsById, selectNewAlertsIds } from 'common/store/alerts/selectors';\nimport Alert, { AlertSizeEnum } from 'common/components/Alert/Alert';\nimport { AlertToastRendererT } from 'common/components/toasts/AlertToastsManager/models';\nimport { deleteAlert } from 'common/store/alerts/actions';\nimport { useTranslation } from 'react-i18next';\nimport useCommonUrlFactoryContext from 'common/utils/hooks/useCommonUrlFactoryContext';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    renderAlertToast: AlertToastRendererT;\n};\n\nconst AlertToastsManager: React.FC<PropsT> = React.memo((props) => {\n    const { renderAlertToast, className } = props;\n\n    const dispatch = useDispatch();\n\n    const newAlertIds = useSelector(selectNewAlertsIds);\n    const alertsById = useSelector(selectAlertsById);\n\n    const { t } = useTranslation();\n    const commonUrlFactory = useCommonUrlFactoryContext();\n\n    return (\n        <div\n            className={className}\n            data-dismiss=\"alert-toasts-manager\"\n            onClick={(event) => {\n                event.stopPropagation();\n                event.preventDefault();\n            }}\n        >\n            {newAlertIds.map((alertId, alertIndex): React.ReactNode => {\n                const alert = alertsById[alertId];\n                if (!alert) {\n                    return null;\n                }\n\n                const alertToastView =\n                    renderCommonAlertToast(t, alert, commonUrlFactory) ||\n                    renderAlertToast(t, alert) ||\n                    getUnknownAlertToast(t, alert);\n\n                if (!alertToastView) {\n                    return null;\n                }\n\n                const key = alert.id || alertIndex;\n\n                return (\n                    <Toast\n                        key={key}\n                        ttlMs={alertToastView?.customTTLMs}\n                        onClose={() => {\n                            dispatch(deleteAlert(alert.id));\n                        }}\n                    >\n                        {(onClose) => (\n                            <Alert\n                                key={key}\n                                size={alertToastView.size || AlertSizeEnum.small}\n                                icon={alertToastView.icon}\n                                theme={alertToastView.theme}\n                                className={cx('alert')}\n                                onClose={onClose}\n                                footerNode={alertToastView.footer}\n                            >\n                                {alertToastView.text}\n                            </Alert>\n                        )}\n                    </Toast>\n                );\n            })}\n        </div>\n    );\n});\n\nexport default AlertToastsManager;\n","import React, { useMemo } from 'react';\nimport styles from './DocumentEventsSummary.scss';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport { useTranslation } from 'react-i18next';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport DateFormatter from 'design-system/components/InfoTable/formatters/DateFormatter/DateFormatter';\nimport UserLinkFormatter from 'common/components/InfoTable/formatters/UserLinkFormatter/UserLinkFormatter';\nimport { DocumentVersionT } from 'common/store/documents/models';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    className?: string;\n    version: Pick<\n        DocumentVersionT,\n        | 'createdByBroker'\n        | 'createdById'\n        | 'createdByName'\n        | 'createdDate'\n        | 'lastEditByBroker'\n        | 'lastEditById'\n        | 'lastEditByName'\n        | 'lastEditDate'\n        | 'reviewedById'\n        | 'reviewedByName'\n        | 'reviewedDate'\n        | 'revokedById'\n        | 'revokedByName'\n        | 'revokedDate'\n    > | null;\n    onOpenUserDetails: (userId: UserIdT) => void;\n};\n\nconst DocumentEventsSummary: React.FC<PropsT> = (props) => {\n    const { className, version, onOpenUserDetails } = props;\n\n    const { t } = useTranslation();\n\n    const uploadEventDetails: Array<InfoTableRowT> = useMemo(\n        () => [\n            {\n                icon: null,\n                name: t('common:document.details.uploaded-date'),\n                rightNode: <DateFormatter date={version?.createdDate} />,\n                rightNodeMods: { isBold: true },\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty') },\n                testSelector: 'upload-date',\n                hasBottomBorder: true,\n            },\n            {\n                icon: null,\n                name: t('common:document.details.uploaded-by'),\n                rightNode: (\n                    <UserLinkFormatter\n                        fullName={version?.createdByName}\n                        userId={version?.createdById}\n                        byBroker={version?.createdByBroker}\n                        onOpenUserDetails={onOpenUserDetails}\n                    />\n                ),\n                rightNodeMods: { isBold: true },\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty') },\n                testSelector: 'upload-user',\n            },\n        ],\n        [version, onOpenUserDetails, t],\n    );\n\n    const reviewEventDetails: Array<InfoTableRowT> = useMemo(() => {\n        if (!version?.reviewedDate) {\n            return [];\n        }\n\n        return [\n            {\n                icon: null,\n                name: t('common:document.details.reviewed-date'),\n                rightNode: <DateFormatter date={version?.reviewedDate} />,\n                rightNodeMods: { isBold: true },\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty') },\n                testSelector: 'review-date',\n                hasBottomBorder: true,\n            },\n            {\n                icon: null,\n                name: t('common:document.details.reviewed-by'),\n                rightNode: (\n                    <UserLinkFormatter\n                        fullName={version?.reviewedByName}\n                        userId={version?.reviewedById}\n                        byBroker\n                        onOpenUserDetails={onOpenUserDetails}\n                    />\n                ),\n                rightNodeMods: { isBold: true },\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty') },\n                testSelector: 'review-user',\n            },\n        ];\n    }, [version, onOpenUserDetails, t]);\n\n    const revokeEventDetails: Array<InfoTableRowT> = useMemo(() => {\n        if (!version?.revokedDate) {\n            return [];\n        }\n        return [\n            {\n                icon: null,\n                name: t('common:document.details.revoke-date'),\n                rightNode: <DateFormatter date={version?.revokedDate} />,\n                rightNodeMods: { isBold: true },\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty') },\n                testSelector: 'revoke-date',\n                hasBottomBorder: true,\n            },\n            {\n                icon: null,\n                name: t('common:document.details.revoke-by'),\n                rightNode: (\n                    <UserLinkFormatter\n                        fullName={version?.revokedByName}\n                        userId={version?.revokedById}\n                        byBroker\n                        onOpenUserDetails={onOpenUserDetails}\n                    />\n                ),\n                rightNodeMods: { isBold: true },\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty') },\n                testSelector: 'revoke-user',\n            },\n        ];\n    }, [version, onOpenUserDetails, t]);\n\n    const editEventDetails: Array<InfoTableRowT> = useMemo(\n        () => [\n            {\n                icon: null,\n                name: t('common:document.details.edit-date'),\n                rightNode: <DateFormatter date={version?.lastEditDate} />,\n                rightNodeMods: { isBold: true },\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty') },\n                testSelector: 'edit-date',\n                hasBottomBorder: true,\n            },\n            {\n                icon: null,\n                name: t('common:document.details.edit-by'),\n                rightNode: (\n                    <UserLinkFormatter\n                        fullName={version?.lastEditByName}\n                        userId={version?.lastEditById}\n                        byBroker={version?.lastEditByBroker}\n                        onOpenUserDetails={onOpenUserDetails}\n                    />\n                ),\n                rightNodeMods: { isBold: true },\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty') },\n                testSelector: 'edit-user',\n            },\n        ],\n        [version, onOpenUserDetails, t],\n    );\n\n    if (!version) {\n        return null;\n    }\n\n    return (\n        <div className={cs(cx('events'), className)}>\n            <InfoTable\n                className={cx('table', 'table--upload-details')}\n                rows={uploadEventDetails}\n                testSelector=\"upload-event\"\n            />\n            <InfoTable className={cx('table')} rows={reviewEventDetails} testSelector=\"review-event\" />\n            <InfoTable className={cx('table')} rows={revokeEventDetails} testSelector=\"revoke-event\" />\n            <InfoTable className={cx('table')} rows={editEventDetails} testSelector=\"edit-event\" />\n        </div>\n    );\n};\n\nexport default DocumentEventsSummary;\n","// extracted by mini-css-extract-plugin\nexport default {\"failed-message\":\"TimeLeft__failed-message___tIB8O\",\"status\":\"TimeLeft__status___nVHZy\",\"status--is-warning\":\"TimeLeft__status--is-warning___lRqH9\",\"time\":\"TimeLeft__time___ALfJK\",\"message\":\"TimeLeft__message___OYcMg\",\"fadeIn\":\"TimeLeft__fadeIn___fWk7P\",\"blinking\":\"TimeLeft__blinking___oK25F\"};","import * as React from 'react';\nimport NotificationLabel, {\n    NotificationLabelThemeEnum,\n} from 'common/components/notifications/NotificationLabel/NotificationLabel';\nimport { selectTrailersStats } from 'common/store/trailers/selectors';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport { useSelector } from 'react-redux';\n\ntype PropsT = {\n    className?: string;\n};\n\nconst ActiveFleetCount: React.FC<PropsT> = React.memo((props) => {\n    const { className } = props;\n\n    const { partnerId } = usePartnerContext();\n\n    const trailersStats = useSelector(selectTrailersStats(partnerId));\n    if (!trailersStats || !trailersStats?.actualTotalCount) {\n        return null;\n    }\n    return (\n        <NotificationLabel\n            className={className}\n            count={trailersStats?.actualTotalCount}\n            theme={NotificationLabelThemeEnum.charcoal}\n        />\n    );\n});\n\nexport default ActiveFleetCount;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"TruckDetailsSidebarContent__fadeIn___Y5Ew3\",\"blinking\":\"TruckDetailsSidebarContent__blinking___sImR_\"};","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const consistentStateMachineRefreshChannel = new ViewEventChannel<{}>();\n","import * as React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport Modal from 'common/components/Modal/Modal';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\nexport type BaseConfirmApproveDocumentModalDataT<T = any> = T & {\n    partnerType: PartnerTypeEnum;\n    dictDocumentId: DictDocumentFakeIdT;\n};\n\ntype PropsT<T = any> = {\n    data: BaseConfirmApproveDocumentModalDataT<T> | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onConfirm: (data: BaseConfirmApproveDocumentModalDataT<T>) => void;\n    isLoading: boolean;\n    name: string | undefined;\n};\n\nconst TEST_SELECTOR = 'approve-document-confirmation';\n\nconst ApproveDocumentsConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { name, data, onClose, onConfirm, isLoading } = props;\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: isLoading,\n                            onClick: () => {\n                                onClose();\n                            },\n                        },\n                        {\n                            children: t('common:error-modal.actions.approve'),\n                            theme: ButtonThemeEnum.primary,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            isLoading,\n                            isDisabled: isLoading,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.brandAccent} />}\n                    title={t('common:documents.approve-confirmation.title')}\n                    message={t('common:documents.approve-confirmation.description', {\n                        document: name,\n                    })}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default ApproveDocumentsConfirmation;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {};\n\nconst DestinationIcon: React.FC<PropsT> = () => {\n    return (\n        <svg width={20} height={20} viewBox=\"0 0 20 20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <circle cx={10} cy={10} r={10} fill={StyleGuideColorsEnum.blazeOrange} />\n                <path\n                    fill=\"#FFF\"\n                    fillRule=\"nonzero\"\n                    d=\"M10.277 15c1.212-.01 2.127-.259 2.744-.749.618-.49.927-1.222.927-2.197 0-.538-.14-.994-.417-1.367-.278-.374-.677-.63-1.197-.766.46-.173.81-.442 1.046-.807.237-.364.356-.804.356-1.32 0-.892-.334-1.574-1.002-2.043-.667-.47-1.641-.704-2.922-.704H6.237V15h4.04zm-.39-5.804h-1.25V6.9h1.175c.538 0 .927.093 1.169.277.241.185.362.487.362.906 0 .365-.111.64-.335.827-.223.187-.597.283-1.12.287zm.321 3.958H8.636V10.77h1.682c.825.004 1.237.421 1.237 1.25 0 .36-.116.64-.348.838-.233.198-.566.297-.999.297z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nDestinationIcon.displayName = 'DestinationIcon';\n\nconst storyProps: PropsT = {};\n\nexport { storyProps };\nexport default DestinationIcon;\n","import React from 'react';\n\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport DropdownControl, {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { useTranslation } from 'react-i18next';\nimport DropdownControlTriggerLabel from 'design-system/components/dropdowns/option/DropdownControlTriggerLabel/DropdownControlTriggerLabel';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport ArrowsIcon from 'common/icons/ArrowsIcon';\nimport { TabEnum } from 'common/layouts/Members/constants';\n\ntype ValueT = TabEnum;\n\ntype PropsT = {\n    selectedValue: ValueT | null;\n    onSelect: (type: ValueT | null) => void;\n    className?: string;\n};\n\nconst TAB_LABEL_T: Record<TabEnum, string> = {\n    [TabEnum.archive]: 'common:team-members.tabs.archive',\n    [TabEnum.active]: 'common:team-members.tabs.active',\n};\n\nconst UserStatusControl: React.FC<PropsT> = (props) => {\n    const { selectedValue, onSelect, className } = props;\n\n    const { t } = useTranslation();\n\n    const handleSelectOption = React.useCallback(\n        (value: TabEnum | null) => {\n            onSelect(value);\n        },\n        [onSelect],\n    );\n\n    const options: Array<DropdownControlOptionT | SpecialOptionEnum> = React.useMemo(\n        () => [\n            {\n                label: (\n                    <DropdownControlOptionLabel\n                        withSelectedCheck\n                        isSelected={selectedValue === TabEnum.active}\n                        label={t(TAB_LABEL_T[TabEnum.active])}\n                    />\n                ),\n                onSelect: () => handleSelectOption(TabEnum.active),\n            },\n            {\n                label: (\n                    <DropdownControlOptionLabel\n                        withSelectedCheck\n                        isSelected={selectedValue === TabEnum.archive}\n                        label={t(TAB_LABEL_T[TabEnum.archive])}\n                    />\n                ),\n                onSelect: () => handleSelectOption(TabEnum.archive),\n            },\n        ],\n        [t, selectedValue, handleSelectOption],\n    );\n\n    const triggerNode = React.useMemo(() => {\n        if (!selectedValue) {\n            return <DropdownControlTriggerLabel label=\"-\" />;\n        }\n\n        return <DropdownControlTriggerLabel label={t(TAB_LABEL_T[selectedValue])} />;\n    }, [selectedValue, t]);\n\n    return (\n        <DropdownControl\n            className={className}\n            options={options}\n            renderTrigger={(isActive, onClick) => (\n                <TransparentTrigger\n                    label={triggerNode}\n                    isPressed={isActive}\n                    onClick={onClick}\n                    reflectionTheme={ReflectionThemeEnum.light}\n                    rightIcon={<ArrowsIcon />}\n                />\n            )}\n            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n        />\n    );\n};\n\nexport default UserStatusControl;\n","import {\n    COUNTRIES_DICT_REQUEST,\n    COUNTRIES_DICT_REQUEST_BEGIN,\n    COUNTRIES_DICT_REQUEST_ERROR,\n    COUNTRIES_DICT_REQUEST_SUCCESS,\n    FetchCountriesDictActionT,\n    FetchCountriesDictBeginActionT,\n    FetchCountriesDictErrorActionT,\n    FetchCountriesDictSuccessActionT,\n} from './types';\nimport { CountriesListT } from './models';\n\nexport const fetchCountriesDict = (): FetchCountriesDictActionT => ({\n    type: COUNTRIES_DICT_REQUEST,\n});\n\nexport const fetchCountriesDictBegin = (): FetchCountriesDictBeginActionT => ({\n    type: COUNTRIES_DICT_REQUEST_BEGIN,\n});\n\nexport const fetchCountriesDictSuccess = (countriesList: CountriesListT): FetchCountriesDictSuccessActionT => ({\n    type: COUNTRIES_DICT_REQUEST_SUCCESS,\n    countriesList,\n});\n\nexport const fetchCountriesDictError = (error: Error): FetchCountriesDictErrorActionT => ({\n    type: COUNTRIES_DICT_REQUEST_ERROR,\n    error,\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"grid\":\"PapersGrid__grid___ECaW1\",\"fadeIn\":\"PapersGrid__fadeIn___LIrvT\",\"blinking\":\"PapersGrid__blinking___VLy2l\"};","// extracted by mini-css-extract-plugin\nexport default {\"table__header\":\"RFQsTable__table__header___c1abE\",\"table__header--origin\":\"RFQsTable__table__header--origin___BjsCo\",\"table__header--prices\":\"RFQsTable__table__header--prices___vm0Bi\",\"table__header--external-number\":\"RFQsTable__table__header--external-number___taaxs\",\"table__column\":\"RFQsTable__table__column___QuuF2\",\"table__column--origin\":\"RFQsTable__table__column--origin___pm_m4\",\"table__column--destination\":\"RFQsTable__table__column--destination____zUBH\",\"table__column--create\":\"RFQsTable__table__column--create___Budjp\",\"table__column--external-number\":\"RFQsTable__table__column--external-number___KV8IK\",\"table__column--prices\":\"RFQsTable__table__column--prices___dqKmc\",\"table__column--status\":\"RFQsTable__table__column--status___E4vG3\",\"fadeIn\":\"RFQsTable__fadeIn___RVRHa\",\"blinking\":\"RFQsTable__blinking___nEZx3\"};","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './Loader.scss';\n\ntype PropsT = {\n    size?: number;\n    className?: string;\n};\n\nconst cx = classNames.bind(styles);\n\nconst Loader: React.FC<PropsT> = React.memo((props) => {\n    const { size = 20, className } = props;\n\n    return (\n        <div\n            className={cs(cx('loader'), className)}\n            style={{\n                width: `${size}px`,\n                height: `${size}px`,\n            }}\n        />\n    );\n});\n\nexport default Loader;\n","import { SettingsStateT } from './types';\nimport { SharableStateT } from 'common/store/models';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport isNil from 'lodash/isNil';\nimport { MS_IN_HOUR, MS_IN_MIN, MS_IN_SEC } from 'common/utils/time';\n\nexport const selectSettingsStatus = (state: SharableStateT): SettingsStateT['fetchRequest'] => {\n    return state.settings.fetchRequest;\n};\n\nexport const selectMinWindowSizeMs = (state: SharableStateT): number => {\n    const value = state.settings.data?.MIN_WINDOW_SIZE?.value;\n    if (isNil(value)) {\n        return MS_IN_HOUR;\n    }\n\n    const parsedValue = parseSimpleNumber(value);\n    if (parsedValue) {\n        return parsedValue * MS_IN_SEC;\n    }\n\n    return MS_IN_HOUR;\n};\n\nexport const selectMaxWindowSizeMs = (state: SharableStateT): number => {\n    const value = state.settings.data?.MAX_WINDOW_SIZE?.value;\n    if (isNil(value)) {\n        return MS_IN_HOUR;\n    }\n\n    const parsedValue = parseSimpleNumber(value);\n    if (parsedValue) {\n        return parsedValue * MS_IN_SEC;\n    }\n\n    return MS_IN_HOUR;\n};\n\nexport const selectOrderCreationMs = (state: SharableStateT): number | null => {\n    const value = state.settings.data?.ORDER_CREATION_SECONDS?.value;\n    if (isNil(value)) {\n        return null;\n    }\n\n    const parsedValue = parseSimpleNumber(value);\n    if (parsedValue) {\n        return parsedValue * MS_IN_SEC;\n    }\n\n    return null;\n};\n\nexport const selectIsExternalBusinessPartnerManagement = (state: SharableStateT): boolean => {\n    return state.settings.data?.BUSINESS_PARTNER_MANAGEMENT?.value === 'EXTERNAL';\n};\n\nconst DEFAULT_TIME_WINDOW_QUANTUM = 15 * MS_IN_MIN;\n\nexport const selectTimeWindowQuantumMs = (state: SharableStateT): number => {\n    const value = state.settings.data?.QUANTUM_MINUTES?.value;\n    if (isNil(value)) {\n        return DEFAULT_TIME_WINDOW_QUANTUM;\n    }\n\n    const parsedValue = parseSimpleNumber(value);\n    if (parsedValue) {\n        return parsedValue * MS_IN_MIN;\n    }\n\n    return DEFAULT_TIME_WINDOW_QUANTUM;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"table\":\"TrailerActionHistory__table___CvclH\",\"fadeIn\":\"TrailerActionHistory__fadeIn___NFZbW\",\"blinking\":\"TrailerActionHistory__blinking___HFqZM\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './SaveFooterContent.scss';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n};\n\nconst SaveFooterContent: React.FC<PropsT> = React.memo(() => {\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n\n    const { t } = useTranslation();\n\n    return (\n        <div className={cx('content')}>\n            <Button\n                theme={ButtonThemeEnum.primary}\n                className={cx('action')}\n                onClick={remoteFormActionsContext.remoteFormCallbacks?.submit}\n                isLoading={remoteFormActionsContext.remoteFormRequest?.isLoading}\n                isDisabled={remoteFormActionsContext.remoteFormRequest?.isLoading}\n            >\n                {t('common:document.actions.save')}\n            </Button>\n        </div>\n    );\n});\n\nexport default SaveFooterContent;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"ChangeRateOrContractWarning__fadeIn____HtNw\",\"blinking\":\"ChangeRateOrContractWarning__blinking___rSvSu\"};","export const collectDebugInfo = (changes: Partial<typeof window.debugInfo>) => {\n    if (!window.debugInfo) {\n        window.debugInfo = {};\n    }\n\n    window.debugInfo = {\n        ...window.debugInfo,\n        ...changes,\n    };\n};\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './RulePreview.scss';\nimport { RulePreviewResponseT } from 'broker-admin/store/price-settings/rules/models';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport RulePreviewPill from 'broker-admin/layouts/PriceSettingsRulePreviewLayout/RulePreviewPill/RulePreviewPill';\nimport { useTranslation } from 'react-i18next';\nimport { ApiPriceComponentTypeT, PriceComponentTypeEnum } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { ApiPreviewRuleT, ApiRuleOperatorT } from 'common/utils/api/models';\nimport isNumber from 'lodash/isNumber';\nimport RuleImpact from 'common/components/RuleImpact/RuleImpact';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    currentRuleId: RuleIdT | null;\n    preview: RulePreviewResponseT | null;\n    onDeactivateRule: (ruleId: RuleIdT) => void;\n};\n\nconst categoryI18nMap: Record<ApiPriceComponentTypeT, string> = {\n    [PriceComponentTypeEnum.lineHaul]: 'price-settings.rules.preview.categories.line-haul',\n    [PriceComponentTypeEnum.fuel]: 'price-settings.rules.preview.categories.fuel',\n    [PriceComponentTypeEnum.roadTaxes]: 'price-settings.rules.preview.categories.road-taxes',\n    [PriceComponentTypeEnum.roadTaxesGeneral]: 'price-settings.rules.preview.categories.road-taxes-general',\n    [PriceComponentTypeEnum.roadTaxesCity]: 'price-settings.rules.preview.categories.road-taxes-city',\n    [PriceComponentTypeEnum.roadTaxesBridge]: 'price-settings.rules.preview.categories.road-taxes-bridge',\n    [PriceComponentTypeEnum.roadTaxesTunnel]: 'price-settings.rules.preview.categories.road-taxes-tunnel',\n    [PriceComponentTypeEnum.roadTaxesFerry]: 'price-settings.rules.preview.categories.road-taxes-ferry',\n    [PriceComponentTypeEnum.roadTaxesMountainPass]: 'price-settings.rules.preview.categories.road-taxes-mountain-pass',\n    [PriceComponentTypeEnum.serviceFee]: 'price-settings.rules.preview.categories.service-fee',\n};\n\nconst LEVEL_PADDING_PX = 30;\n\nconst categoryLevel: Record<ApiPriceComponentTypeT, number> = {\n    [PriceComponentTypeEnum.lineHaul]: 0,\n    [PriceComponentTypeEnum.fuel]: 0,\n    [PriceComponentTypeEnum.roadTaxes]: 0,\n    [PriceComponentTypeEnum.roadTaxesGeneral]: 1,\n    [PriceComponentTypeEnum.roadTaxesCity]: 1,\n    [PriceComponentTypeEnum.roadTaxesBridge]: 1,\n    [PriceComponentTypeEnum.roadTaxesTunnel]: 1,\n    [PriceComponentTypeEnum.roadTaxesFerry]: 1,\n    [PriceComponentTypeEnum.roadTaxesMountainPass]: 1,\n    [PriceComponentTypeEnum.serviceFee]: 0,\n};\n\nconst categoryOrder: Array<ApiPriceComponentTypeT> = [\n    PriceComponentTypeEnum.lineHaul,\n    PriceComponentTypeEnum.roadTaxes,\n    PriceComponentTypeEnum.roadTaxesGeneral,\n    PriceComponentTypeEnum.roadTaxesCity,\n    PriceComponentTypeEnum.roadTaxesBridge,\n    PriceComponentTypeEnum.roadTaxesTunnel,\n    PriceComponentTypeEnum.roadTaxesFerry,\n    PriceComponentTypeEnum.roadTaxesMountainPass,\n    PriceComponentTypeEnum.fuel,\n    PriceComponentTypeEnum.serviceFee,\n];\n\nenum RuleGroupEnum {\n    ignored = 'ignored',\n    new = 'new',\n    other = 'other',\n}\n\nconst ruleGroupOrder: Array<RuleGroupEnum> = [RuleGroupEnum.ignored, RuleGroupEnum.new, RuleGroupEnum.other];\n\nconst ruleGroupI18nMap: Record<RuleGroupEnum, string | null> = {\n    [RuleGroupEnum.ignored]: 'price-settings.rules.preview.groups.ignored',\n    [RuleGroupEnum.new]: 'price-settings.rules.preview.groups.current',\n    [RuleGroupEnum.other]: null,\n};\n\nconst newRuleGroupI18nMap: Record<RuleGroupEnum, string | null> = {\n    [RuleGroupEnum.ignored]: 'price-settings.rules.preview.groups.ignored',\n    [RuleGroupEnum.new]: 'price-settings.rules.preview.groups.new',\n    [RuleGroupEnum.other]: null,\n};\n\ntype GroupedRulesT = Partial<Record<RuleGroupEnum, Array<ApiPreviewRuleT>>>;\n\ntype RuleCategoriesT = Partial<\n    Record<\n        PriceComponentTypeEnum,\n        {\n            value: number;\n            operator: ApiRuleOperatorT;\n            groups: GroupedRulesT;\n        }\n    >\n>;\n\nconst RulePreview: React.FC<PropsT> = (props) => {\n    const { className, currentRuleId, preview, onDeactivateRule } = props;\n\n    const { t } = useTranslation();\n\n    const groupedRules = React.useMemo((): RuleCategoriesT => {\n        if (!preview) {\n            return {};\n        }\n\n        return preview.reduce<RuleCategoriesT>((acc, item) => {\n            if (item.target && isNumber(item.finalValue) && item.finalOperator) {\n                acc[item.target] = {\n                    value: item.finalValue,\n                    operator: item.finalOperator,\n                    groups:\n                        item.rules?.reduce<GroupedRulesT>((acc, item) => {\n                            let group = RuleGroupEnum.other;\n                            if (item.ignored) {\n                                group = RuleGroupEnum.ignored;\n                            } else if (item.newRule) {\n                                group = RuleGroupEnum.new;\n                            }\n\n                            if (!acc[group]) {\n                                acc[group] = [];\n                            }\n\n                            acc[group]?.push(item);\n\n                            return acc;\n                        }, {}) || {},\n                };\n            }\n\n            return acc;\n        }, {});\n    }, [preview]);\n\n    return (\n        <div className={cx('inner', className)}>\n            {categoryOrder.map((category) => {\n                const data = groupedRules[category];\n\n                let summaryTheme = PillLabelThemeEnum.slate;\n                if (data?.operator === 'PERCENTS') {\n                    summaryTheme =\n                        isNumber(data.value) && data.value > 0\n                            ? PillLabelThemeEnum.orange\n                            : PillLabelThemeEnum.brandAccent;\n                }\n\n                const hasNew = !!data?.groups?.[RuleGroupEnum.new]?.length;\n                if (hasNew) {\n                    summaryTheme = PillLabelThemeEnum.black;\n                }\n\n                return (\n                    <div\n                        key={category}\n                        className={cx('group')}\n                        style={{ paddingLeft: categoryLevel[category] * LEVEL_PADDING_PX }}\n                    >\n                        <div className={cx('group-head')}>\n                            <div className={cx('group-title')}>▪︎ {t(categoryI18nMap[category])}</div>\n                            <PillLabel className={cx('group-summary')} theme={summaryTheme} isSymmetrical>\n                                <RuleImpact value={data?.value} impactStrategy={data?.operator} />\n                            </PillLabel>\n                        </div>\n                        <div className={cx('rules')}>\n                            {ruleGroupOrder.map((groupName) => {\n                                const groupRules = data?.groups?.[groupName] || [];\n                                if (!groupRules?.length) {\n                                    return null;\n                                }\n\n                                const isNewRule = !currentRuleId;\n                                const ruleGroupI18nKey = isNewRule\n                                    ? newRuleGroupI18nMap[groupName]\n                                    : ruleGroupI18nMap[groupName];\n\n                                return (\n                                    <div className={cx('rule-category')} key={groupName}>\n                                        <div className={cx('rule-category-pills')}>\n                                            {groupRules?.map((rule) => {\n                                                const ruleId = isNumber(rule.id) ? String(rule.id) : null;\n                                                if (\n                                                    !ruleId ||\n                                                    !isNumber(rule.value) ||\n                                                    !rule?.operator ||\n                                                    !rule.ruleType\n                                                ) {\n                                                    return null;\n                                                }\n\n                                                let ruleTheme = PillLabelThemeEnum.slate;\n                                                if (rule?.operator === 'PERCENTS') {\n                                                    ruleTheme =\n                                                        isNumber(rule.value) && rule.value > 0\n                                                            ? PillLabelThemeEnum.orange\n                                                            : PillLabelThemeEnum.brandAccent;\n                                                }\n                                                if (rule?.newRule) {\n                                                    ruleTheme = PillLabelThemeEnum.black;\n                                                }\n                                                if (rule?.ignored) {\n                                                    ruleTheme = hasNew\n                                                        ? PillLabelThemeEnum.tomatoRed70\n                                                        : PillLabelThemeEnum.black30;\n                                                }\n\n                                                const isAllowClick = !rule.newRule && currentRuleId !== ruleId;\n\n                                                return (\n                                                    <RulePreviewPill\n                                                        key={ruleId}\n                                                        onClick={isAllowClick ? onDeactivateRule : null}\n                                                        ruleClassName={cx('rule-pill')}\n                                                        typeClassName={cx('type-pill')}\n                                                        ruleId={ruleId}\n                                                        ruleValue={rule.value}\n                                                        ruleOperator={rule.operator}\n                                                        ruleName={rule.name || '-'}\n                                                        ruleTheme={ruleTheme}\n                                                        ruleType={rule.ruleType}\n                                                    />\n                                                );\n                                            })}\n                                        </div>\n                                        {ruleGroupI18nKey && (\n                                            <div\n                                                className={cx('rule-category-title', {\n                                                    'rule-category-title--ignored':\n                                                        groupName === RuleGroupEnum.ignored && hasNew,\n                                                    'rule-category-title--ignored-not-actual':\n                                                        groupName === RuleGroupEnum.ignored && !hasNew,\n                                                    'rule-category-title--new': groupName === RuleGroupEnum.new,\n                                                })}\n                                            >\n                                                {t(ruleGroupI18nKey)}\n                                            </div>\n                                        )}\n                                    </div>\n                                );\n                            })}\n                        </div>\n                    </div>\n                );\n            })}\n        </div>\n    );\n};\n\nexport default RulePreview;\n","export enum TabEnum {\n    active = 'active',\n    archive = 'archive',\n}\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ExternalNumberCell.scss';\nimport RFQSourcePill from 'common/components/pills/RFQSourcePill/RFQSourcePill';\nimport { ApiRFQBrokerSourceT } from 'common/utils/api/models';\n\ntype PropsT = {\n    number: string | null | undefined;\n    source: ApiRFQBrokerSourceT | null | undefined;\n};\n\nconst cx = classNames.bind(styles);\n\nconst ExternalNumberCell: React.FC<PropsT> = React.memo((props) => {\n    const { number, source } = props;\n\n    return (\n        <div>\n            <div className={cx('source')}>\n                <RFQSourcePill source={source} isSymmetrical />\n            </div>\n            <div className={cx('number')} title={number || undefined}>\n                {number}\n            </div>\n        </div>\n    );\n});\n\nexport default ExternalNumberCell;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { UnlockPartnerConfirmationDataT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    data: UnlockPartnerConfirmationDataT | null;\n    requestStatus: RequestStatusT;\n    onClose: () => void;\n    onCancel: () => void;\n    onConfirm: (data: UnlockPartnerConfirmationDataT | null) => void;\n};\n\nconst TEST_SELECTOR = 'unlock-partner-confirmation';\n\nconst UnlockPartnerConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, requestStatus, onClose, onCancel, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: requestStatus.loading,\n                            onClick: onCancel,\n                        },\n                        {\n                            children: t('common:error-modal.actions.unlock'),\n                            theme: ButtonThemeEnum.danger,\n                            isLoading: requestStatus.loading,\n                            isDisabled: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                    title={t('partner.details-tab.dialogs.unlock-partner.title')}\n                    message={t('partner.details-tab.dialogs.unlock-partner.description')}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default UnlockPartnerConfirmation;\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"EditTimeWindowsFooterContent__content___NzyS2\",\"fadeIn\":\"EditTimeWindowsFooterContent__fadeIn___YUysT\",\"blinking\":\"EditTimeWindowsFooterContent__blinking___WsyeL\"};","// extracted by mini-css-extract-plugin\nexport default {\"text--is-capitalized\":\"NotificationSubjectType__text--is-capitalized___s0mIk\",\"text--is-uppercase\":\"NotificationSubjectType__text--is-uppercase___wDDuh\",\"fadeIn\":\"NotificationSubjectType__fadeIn___Dh3nU\",\"blinking\":\"NotificationSubjectType__blinking___Ju1Uf\"};","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './UploadShipperContractSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useFormik } from 'formik';\nimport { FieldsEnum, FormValuesT, MIN_VALID_FROM_VALID_TILL_DAYS } from './constants';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport Input from 'common/components/Input/Input';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport { useDispatch, useSelector } from 'react-redux';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport { SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { BrokerSidebarDataT } from 'broker-admin/layouts/SideBars/models';\nimport useCloseSidebarAfterRequest from 'common/utils/hooks/useCloseSidebarAfterRequest';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport { UploadShipperContractSidebarDataT } from './models';\nimport FilePickerInput from 'design-system/components/FilePickerInput/FilePickerInput';\nimport DatePicker, {\n    DatePickerOverlayPositionEnum,\n    datePicketRangePresets,\n} from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport { uploadShipperContract } from 'common/store/shipper-contract-details/slice';\nimport { UploadShipperContractDetailsT } from 'common/store/shipper-contract-details/models';\nimport { logWarning } from 'common/utils/logger';\nimport { selectUpdateShipperContractRequest } from 'common/store/shipper-contract-details/selectors';\nimport { simpleStringFormatter } from 'common/utils/form-formatters';\nimport moment from 'moment';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { TooltipPositionEnum } from 'design-system/components/Tooltip/Tooltip';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport DownloadIcon from 'common/icons/DownloadIcon';\n\nconst cx = classNames.bind(styles);\n\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(Object.values(FieldsEnum));\n\ntype PropsT = SidebarContentPropsT<UploadShipperContractSidebarDataT, BrokerSidebarDataT>;\n\nconst VALID_TILL_FORMAT = 'YYYY-MM-DD';\n\nconst UploadShipperContractSidebarContent: React.FC<PropsT> = (props) => {\n    const { data, onGoBack, onClose, setNeedCloseConfirmation } = props;\n\n    const dispatch = useDispatch();\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const uploadRequestStatus = useSelector(selectUpdateShipperContractRequest);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues();\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const file = values[FieldsEnum.file];\n            if (!file) {\n                logWarning('failed to upload shipper contract, empty file');\n                return;\n            }\n\n            const details: UploadShipperContractDetailsT = {\n                name: simpleStringFormatter(values[FieldsEnum.name]),\n                number: simpleStringFormatter(values[FieldsEnum.number]),\n                validFrom: moment(values[FieldsEnum.activateDate]).format(VALID_TILL_FORMAT),\n                validTill: moment(values[FieldsEnum.validTillDate]).format(VALID_TILL_FORMAT),\n            };\n\n            dispatch(\n                uploadShipperContract({\n                    partnerId: data.partnerId,\n                    file,\n                    details,\n                }),\n            );\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n    React.useEffect(() => {\n        if (hasAnyFieldValueChanges) {\n            setNeedCloseConfirmation(hasAnyFieldValueChanges);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasAnyFieldValueChanges]);\n\n    useCloseSidebarAfterRequest(uploadRequestStatus, onGoBack || onClose);\n\n    const activateDate = formik.values[FieldsEnum.activateDate];\n    const minValidTillDate = React.useMemo(() => {\n        if (!activateDate) {\n            return datePicketRangePresets.documentValidTill.minDate;\n        }\n\n        return moment(activateDate).add(MIN_VALID_FROM_VALID_TILL_DAYS, 'day').format();\n    }, [activateDate]);\n\n    const validTillDate = formik.values[FieldsEnum.validTillDate];\n    const maxActivateDate = React.useMemo(() => {\n        if (!validTillDate) {\n            return datePicketRangePresets.documentValidTill.maxDate;\n        }\n\n        return moment(validTillDate).subtract(1, 'day').format();\n    }, [validTillDate]);\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('form')}>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent title={t('sidebars.upload-shipper-contract.title')} onClose={onClose} />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--name')}\n                        name={FieldsEnum.name}\n                        error={formik.errors[FieldsEnum.name]}\n                        meta={formik.getFieldMeta(FieldsEnum.name)}\n                        label={t('sidebars.upload-shipper-contract.fields.name.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <Input\n                                name={FieldsEnum.name}\n                                value={formik.values[FieldsEnum.name]}\n                                placeholder={t('sidebars.upload-shipper-contract.fields.name.placeholder')}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--number')}\n                        name={FieldsEnum.number}\n                        error={formik.errors[FieldsEnum.number]}\n                        meta={formik.getFieldMeta(FieldsEnum.number)}\n                        tooltipNode={\n                            <TooltipContent isCenter theme={TooltipContentThemeEnum.black} width={150}>\n                                {t('sidebars.upload-shipper-contract.fields.number.tooltip')}\n                            </TooltipContent>\n                        }\n                        tooltipPosition={TooltipPositionEnum.centerLeft}\n                        label={t('sidebars.upload-shipper-contract.fields.number.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <Input\n                                name={FieldsEnum.number}\n                                value={formik.values[FieldsEnum.number]}\n                                placeholder={t('sidebars.upload-shipper-contract.fields.number.placeholder')}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--activate-date')}\n                        name={FieldsEnum.activateDate}\n                        error={formik.errors[FieldsEnum.activateDate]}\n                        meta={formik.getFieldMeta(FieldsEnum.activateDate)}\n                        label={t('sidebars.upload-shipper-contract.fields.activate-date.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                value={formik.values[FieldsEnum.activateDate]}\n                                placeholder={t('sidebars.upload-shipper-contract.fields.activate-date.placeholder')}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                minDate={datePicketRangePresets.documentValidTill.minDate}\n                                maxDate={maxActivateDate}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                                hasClearControl\n                                hasYearMonthForm\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--valid-till')}\n                        name={FieldsEnum.validTillDate}\n                        error={formik.errors[FieldsEnum.validTillDate]}\n                        meta={formik.getFieldMeta(FieldsEnum.validTillDate)}\n                        label={t('sidebars.upload-shipper-contract.fields.valid-till-date.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                value={formik.values[FieldsEnum.validTillDate]}\n                                placeholder={t('sidebars.upload-shipper-contract.fields.valid-till-date.placeholder')}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                minDate={minValidTillDate}\n                                maxDate={datePicketRangePresets.documentValidTill.maxDate}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomRight}\n                                hasClearControl\n                                hasYearMonthForm\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FormikField\n                    className={cx('field', 'field--file')}\n                    name={FieldsEnum.file}\n                    error={formik.errors[FieldsEnum.file]}\n                    meta={formik.getFieldMeta(FieldsEnum.file)}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                    withoutLabel\n                >\n                    {(props) => (\n                        <FilePickerInput\n                            accept=\"image/*,application/pdf\"\n                            name={FieldsEnum.file}\n                            value={formik.values[FieldsEnum.file]}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            hasClearControl\n                            renderLeftIcon={({ isEmpty }) => (\n                                <DownloadIcon\n                                    fillColor={isEmpty ? StyleGuideColorsEnum.charcoal : StyleGuideColorsEnum.brandDark}\n                                    size={DEFAULT_ICON_SIZE}\n                                />\n                            )}\n                        />\n                    )}\n                </FormikField>\n                <FooterSideBarLayout hasPaddings>\n                    <Button\n                        theme={ButtonThemeEnum.primary}\n                        isLoading={uploadRequestStatus.loading}\n                        type=\"submit\"\n                        isFullWidth\n                        isCenterContent\n                    >\n                        {t('sidebars.upload-shipper-contract.actions.submit')}\n                    </Button>\n                </FooterSideBarLayout>\n            </SideBarLayout>\n        </form>\n    );\n};\n\nexport default UploadShipperContractSidebarContent;\n","// extracted by mini-css-extract-plugin\nexport default {\"input\":\"DropdownControl__input___EExC4\",\"overlay__option\":\"DropdownControl__overlay__option___iTw4R\",\"overlay__option--isSelected\":\"DropdownControl__overlay__option--isSelected___1f9HY\",\"overlay__separator\":\"DropdownControl__overlay__separator___TRMK0\",\"fadeIn\":\"DropdownControl__fadeIn___n4AfY\",\"blinking\":\"DropdownControl__blinking___wuDNr\"};","import { StateT } from 'broker-admin/store/models';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\n\nexport const selectBrokerTourEditUpdateRequestStatus =\n    (brokerTourId: BrokerTourIdT | null | undefined) =>\n    (state: StateT): RequestStatusT =>\n        state.brokerTourEdit.updateById[brokerTourId as BrokerTourIdT] || requestStatus.initial;\n","import BaseTranziitApi, { TranziitApiResultT } from 'common/utils/api/tranziit/base-tranziit-api';\nimport { authApi } from 'common/utils/api/auth/factory';\nimport { MS_IN_MIN } from 'common/utils/time';\nimport { FixPageableCommonQueryT } from 'common/utils/api/models';\nimport { ApiSpotSystemSettingsT } from 'broker-admin/utils/api/spot-broker-tranziit/models';\n\nclass SpotBrokerTranziitApi extends BaseTranziitApi {\n    private static instance: SpotBrokerTranziitApi;\n\n    private constructor() {\n        super(authApi, {\n            basepath: '/spot/api',\n            timeout: MS_IN_MIN,\n        });\n    }\n\n    public static getInstance(): SpotBrokerTranziitApi {\n        if (!SpotBrokerTranziitApi.instance) {\n            SpotBrokerTranziitApi.instance = new SpotBrokerTranziitApi();\n        }\n\n        return SpotBrokerTranziitApi.instance;\n    }\n\n    fetchSpotRequests = async (\n        query: Api2Paths.SpotApiV1BrokerSpot.Get.QueryParameters & FixPageableCommonQueryT,\n    ): Promise<TranziitApiResultT<Api2Paths.SpotApiV1BrokerSpot.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.SpotApiV1BrokerSpot.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/spot`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchSpotRequestsStats = async (): Promise<\n        TranziitApiResultT<Api2Paths.SpotApiV1BrokerSpotStatuses.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.SpotApiV1BrokerSpotStatuses.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/spot/statuses`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchSpotRequestDetails = async (\n        id: Api2Paths.SpotApiV1BrokerSpot$SpotId.Get.Parameters.SpotId,\n    ): Promise<TranziitApiResultT<Api2Paths.SpotApiV1BrokerSpot$SpotId.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.SpotApiV1BrokerSpot$SpotId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/spot/${id}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    cancelSpotRequestByTour = async (\n        tourId: Api2Paths.SpotApiV1BrokerSpotCancelByTour$TourId.Post.Parameters.TourId,\n    ): Promise<TranziitApiResultT<Api2Paths.SpotApiV1BrokerSpotCancelByTour$TourId.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.SpotApiV1BrokerSpotCancelByTour$TourId.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/broker/spot/cancel-by-tour/${tourId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    cancelSpotRequest = async (\n        spotId: Api2Paths.SpotApiV1BrokerSpotCancel$SpotId.Post.Parameters.SpotId,\n    ): Promise<TranziitApiResultT<Api2Paths.SpotApiV1BrokerSpotCancel$SpotId.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.SpotApiV1BrokerSpotCancel$SpotId.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/broker/spot/cancel/${spotId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    assignBidToSpotRequest = async (\n        spotRequestId: Api2Paths.SpotApiV1BrokerSpotAssign$SpotId.Post.Parameters.SpotId,\n        query: Api2Paths.SpotApiV1BrokerSpotAssign$SpotId.Post.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.SpotApiV1BrokerSpotAssign$SpotId.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.SpotApiV1BrokerSpotAssign$SpotId.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/broker/spot/assign/${spotRequestId}`,\n            query,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    fetchSystemSettings = async (): Promise<TranziitApiResultT<ApiSpotSystemSettingsT>> => {\n        const [error, response] = await this.doFetch<SpotApiPaths.SpotApiV1Settings.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/settings`,\n            expectedResponseContentType: 'json',\n        });\n\n        if (error) {\n            return [error, null];\n        }\n\n        const apiSettings = response?.reduce<ApiSpotSystemSettingsT>((acc, item) => {\n            const { name, value } = item;\n\n            acc[name] = value;\n\n            return acc;\n        }, {});\n\n        return [null, apiSettings || null];\n    };\n\n    updateSystemSettings = async (\n        settingsChanges: Partial<ApiSpotSystemSettingsT>,\n    ): Promise<TranziitApiResultT<null>> => {\n        const body = Object.entries(settingsChanges).reduce<SpotApiPaths.SpotApiV1Settings.Post.RequestBody>(\n            (acc, [key, value]) => {\n                acc.push({\n                    // @ts-ignore\n                    name: key,\n                    // @ts-ignore\n                    value,\n                });\n\n                return acc;\n            },\n            [],\n        );\n\n        return this.doFetch<null>({\n            method: 'POST',\n            path: '/v1/settings',\n            data: body,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n}\n\nconst spotBrokerTranziitApi = SpotBrokerTranziitApi.getInstance();\n\nexport default spotBrokerTranziitApi;\n","// extracted by mini-css-extract-plugin\nexport default {\"table__header\":\"BrokerTeamsTable__table__header___yUmue\",\"table__header--name\":\"BrokerTeamsTable__table__header--name___AWVBG\",\"table__header--users-count\":\"BrokerTeamsTable__table__header--users-count___B89ZT\",\"table__header--partners-count\":\"BrokerTeamsTable__table__header--partners-count___z81hj\",\"table__column\":\"BrokerTeamsTable__table__column___vfUFI\",\"table__column--name\":\"BrokerTeamsTable__table__column--name___S_u_t\",\"table__column--added\":\"BrokerTeamsTable__table__column--added___TvtKp\",\"table__column--modified\":\"BrokerTeamsTable__table__column--modified____MKHE\",\"table__column--users-count\":\"BrokerTeamsTable__table__column--users-count___CqGid\",\"table__column--partners-count\":\"BrokerTeamsTable__table__column--partners-count___oBFZP\",\"table__column--controls\":\"BrokerTeamsTable__table__column--controls___tDxku\",\"fadeIn\":\"BrokerTeamsTable__fadeIn___tFauE\",\"blinking\":\"BrokerTeamsTable__blinking___ijbdE\"};","// eslint-disable-next-line @typescript-eslint/no-empty-function,no-empty-function\nfunction* alertsSaga(): WrapGeneratorT<void> {}\n\nexport default alertsSaga;\n","import { ReserveOpenTimeWindowT, ReserveTimeWindowT } from 'common/store/order-creation/models';\nimport moment from 'moment';\nimport isNumber from 'lodash/isNumber';\nimport { FieldsEnum, RoutePointFieldsEnum } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/constants';\n\nexport const suggestLastTimeWindowOfDay = (\n    availableReserveTimeWindow: ReserveOpenTimeWindowT | null,\n    baseDate: ReserveTimeWindowT['start'] | ReserveOpenTimeWindowT['start'],\n): ReserveTimeWindowT | null => {\n    if (!availableReserveTimeWindow) {\n        return null;\n    }\n\n    const targetTimeZone = moment.parseZone(baseDate).utcOffset();\n\n    let start = moment.parseZone(baseDate).startOf('day').format();\n    const startLimit = availableReserveTimeWindow.start\n        ? moment.parseZone(availableReserveTimeWindow.start).utcOffset(targetTimeZone).format()\n        : null;\n    if (startLimit && start < startLimit) {\n        start = startLimit;\n    }\n\n    let end = moment.parseZone(baseDate).utcOffset(targetTimeZone).endOf('day').add(1, 'second').format();\n    if (startLimit && end <= startLimit) {\n        return null;\n    }\n    const endLimit = availableReserveTimeWindow.end\n        ? moment.parseZone(availableReserveTimeWindow.end).utcOffset(targetTimeZone).format()\n        : null;\n    if (endLimit && start >= endLimit) {\n        return null;\n    }\n    if (endLimit && end > endLimit) {\n        end = endLimit;\n    }\n\n    return {\n        start,\n        end,\n    };\n};\n\nexport const getReserveTimeWindowWidthMs = (reserveTimeWindow: ReserveTimeWindowT | null): number => {\n    if (!reserveTimeWindow) {\n        return 0;\n    }\n\n    const start = moment.parseZone(reserveTimeWindow.start).valueOf();\n    const end = moment.parseZone(reserveTimeWindow.end).valueOf();\n\n    return end - start;\n};\n\nexport const addToTimeMs = (isoTime: ISODateTimeT | undefined | null, ms: number | null): ISODateTimeT | null => {\n    if (!isoTime || !isNumber(ms)) {\n        return null;\n    }\n\n    return moment.parseZone(isoTime).add(ms, 'milliseconds').format();\n};\n\nexport const convertReserveTimeWindowToRelativeTimeWindow = (\n    reserveTimeWindow: ReserveTimeWindowT | null,\n): TimeWindowT | null => {\n    if (!reserveTimeWindow) {\n        return null;\n    }\n\n    const offset = moment.parseZone(reserveTimeWindow.start).startOf('day').valueOf();\n    const start = moment.parseZone(reserveTimeWindow.start).valueOf();\n    const end = moment.parseZone(reserveTimeWindow.end).valueOf();\n\n    return [start - offset, end - offset];\n};\n\nexport const createReserveTimeWindow = (start: ISODateTimeT, minWindowSizeMs: number): ReserveTimeWindowT => {\n    const end = moment.parseZone(start).add('ms', minWindowSizeMs).format();\n\n    return {\n        start,\n        end,\n    };\n};\n\nexport const checkIsISODateMidnight = (isoDate: ISODateTimeT): boolean => {\n    return isoDate.includes('T00:00:00');\n};\n\nexport const setDateForReserveTimeWindow = (\n    date: Date | null,\n    timeWindow: ReserveTimeWindowT | null,\n): ReserveTimeWindowT | null => {\n    if (!date || !timeWindow) {\n        return null;\n    }\n\n    const dateStringPart = moment(date).format('YYYY-MM-DD');\n\n    const start = dateStringPart + timeWindow.start.slice(10);\n\n    let end = dateStringPart + timeWindow.end.slice(10);\n    if (checkIsISODateMidnight(end)) {\n        end = moment.parseZone(end).add(1, 'days').format();\n    }\n\n    return {\n        start,\n        end,\n    };\n};\n\nexport const setTimeWindowForReserveTimeWindow = (\n    timeWindow: TimeWindowT | null,\n    reserveTimeWindow: ReserveTimeWindowT | null,\n): ReserveTimeWindowT | null => {\n    if (!timeWindow || !reserveTimeWindow) {\n        return null;\n    }\n\n    const startDay = moment.parseZone(reserveTimeWindow.start).startOf('day');\n    const start = startDay.clone().add(timeWindow[0], 'ms').format();\n    const end = startDay.clone().add(timeWindow[1], 'ms').format();\n\n    return {\n        start,\n        end,\n    };\n};\n\nexport const checkIsSameTimezone = (isoDateA: ISODateTimeT, isoDateB: ISODateTimeT): boolean => {\n    return moment.parseZone(isoDateA).utcOffset() === moment.parseZone(isoDateB).utcOffset();\n};\n\nexport const getRoutePointFieldName = <T extends RoutePointFieldsEnum>(\n    pointIndex: number,\n    routePointField: T,\n): `${FieldsEnum.route}.${number}.${T}` => {\n    return `${FieldsEnum.route}.${pointIndex}.${routePointField}`;\n};\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\n\nconst DEFAULT_VALUES: FormValuesT = {\n    [FieldsEnum.name]: '',\n    [FieldsEnum.partnerType]: PartnerTypeEnum.shipper,\n\n    [FieldsEnum.street1]: '',\n    [FieldsEnum.street2]: '',\n    [FieldsEnum.countryCode]: null,\n    [FieldsEnum.zipCode]: '',\n    [FieldsEnum.city]: '',\n};\n\nconst getInitialValues = (): FormValuesT => {\n    const values: FormValuesT = { ...DEFAULT_VALUES };\n\n    return values;\n};\n\nexport default getInitialValues;\n","// extracted by mini-css-extract-plugin\nexport default {\"pagination\":\"DummyPagination__pagination___QNTOF\",\"fadeIn\":\"DummyPagination__fadeIn____TXOn\",\"blinking\":\"DummyPagination__blinking___PkxUn\"};","import { SharableStateT } from '../models';\nimport { ShipperContractLaneCreationStateT } from './slice';\n\nexport const selectShipperLaneOrigin = (state: SharableStateT): ShipperContractLaneCreationStateT['origin'] =>\n    state.shipperContractLaneCreation.origin;\n\nexport const selectShipperLaneDestination = (state: SharableStateT): ShipperContractLaneCreationStateT['destination'] =>\n    state.shipperContractLaneCreation.destination;\n\nexport const selectPolylines = (state: SharableStateT): ShipperContractLaneCreationStateT['polylines'] =>\n    state.shipperContractLaneCreation.polylines;\n\nexport const selectFetchRouteRequest = (\n    state: SharableStateT,\n): ShipperContractLaneCreationStateT['fetchRouteRequest'] => state.shipperContractLaneCreation.fetchRouteRequest;\n\nexport const selectCalculateCostRequest = (\n    state: SharableStateT,\n): ShipperContractLaneCreationStateT['calculateCostRequest'] => state.shipperContractLaneCreation.calculateCostRequest;\n\nexport const selectAveragePriceOffer = (\n    state: SharableStateT,\n): ShipperContractLaneCreationStateT['averagePriceOffer'] => state.shipperContractLaneCreation.averagePriceOffer;\n\nexport const selectCreationRequest = (state: SharableStateT): ShipperContractLaneCreationStateT['creationRequest'] =>\n    state.shipperContractLaneCreation.creationRequest;\n\nexport const selectMapSettings = (state: SharableStateT): ShipperContractLaneCreationStateT['mapSettings'] =>\n    state.shipperContractLaneCreation.mapSettings;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './LastAssetWithNumberTrackPointPin.scss';\nimport TrailerIcon from 'common/icons/TrailerIcon';\nimport TruckIcon from 'common/icons/TruckIcon';\nimport { AssetTypeEnum, DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport MapTooltip from 'common/components/maps/MapTooltip/MapTooltip';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { formatTime } from 'common/utils/time';\nimport { useTranslation } from 'react-i18next';\nimport { MapPinThemeEnum } from 'common/components/maps/MapPin/MapPin';\nimport IconWithNumber from 'common/components/IconWithNumber/IconWithNumber';\nimport isNumber from 'lodash/isNumber';\n\ntype PropsT = {\n    iconType: AssetTypeEnum;\n    timestamp: number | null;\n    lat?: number;\n    lng?: number;\n    number: number | null;\n    className?: string;\n};\n\nconst cx = classNames.bind(styles);\n\nconst iconTypeMap: Record<\n    AssetTypeEnum,\n    React.FC<{\n        fillColor: StyleGuideColorsEnum;\n        strokeColor: StyleGuideColorsEnum;\n        size: number;\n    }>\n> = {\n    [AssetTypeEnum.trailer]: TrailerIcon,\n    [AssetTypeEnum.truck]: TruckIcon,\n};\n\nconst LastAssetWithNumberTrackPointPin: React.FC<PropsT> = React.memo((props) => {\n    const { lat, lng, timestamp, iconType, className, number } = props;\n\n    const { t } = useTranslation();\n\n    const IconComponent = iconTypeMap[iconType];\n\n    const shouldShowNumber = isNumber(number);\n\n    return (\n        <MapTooltip\n            lat={lat}\n            lng={lng}\n            contentClassName={className}\n            mapLayers={{ regular: 1, hovered: 1 }}\n            theme={MapPinThemeEnum.brandDark}\n        >\n            {() => (\n                <Tooltip\n                    tooltipNode={\n                        timestamp ? (\n                            <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                <span className={cx('last-track-point-updated')}>\n                                    {t('common:last-track-point-updated', {\n                                        time: timestamp ? formatTime(timestamp) : null,\n                                    })}\n                                </span>\n                            </TooltipContent>\n                        ) : null\n                    }\n                    delay={0}\n                    position={TooltipPositionEnum.topCenter}\n                    theme={TooltipThemeEnum.black}\n                    className={cx('inner', { 'inner--has-paddings': !shouldShowNumber })}\n                >\n                    {() => (\n                        <IconWithNumber number={number}>\n                            <IconComponent\n                                fillColor={StyleGuideColorsEnum.brandDark}\n                                strokeColor={StyleGuideColorsEnum.white}\n                                size={DEFAULT_ICON_SIZE}\n                            />\n                        </IconWithNumber>\n                    )}\n                </Tooltip>\n            )}\n        </MapTooltip>\n    );\n});\n\nexport default LastAssetWithNumberTrackPointPin;\n","import { useMemo } from 'react';\nimport find from 'lodash/find';\nimport { useSelector } from 'react-redux';\nimport { selectReserve } from 'common/store/order-creation/selectors';\nimport { ApiReserveT } from 'common/store/order-creation/models';\n\nexport const useSelectedLane = (\n    selectedLaneId: ShipperContractLaneIdT | null,\n): ApiReserveT['contractLanes'][number] | null => {\n    const reserve = useSelector(selectReserve);\n\n    const selectedLane = useMemo(() => {\n        if (!selectedLaneId) {\n            return null;\n        }\n\n        return (\n            find(reserve?.contractLanes, (lane) => {\n                return lane.id === selectedLaneId;\n            }) || null\n        );\n    }, [reserve, selectedLaneId]);\n\n    return selectedLane;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"ScrollableContent__wrapper___R6Jxz\",\"scroll\":\"ScrollableContent__scroll___hUEjB\",\"scroll--hasStickyHeader\":\"ScrollableContent__scroll--hasStickyHeader___Fm68i\",\"content\":\"ScrollableContent__content___hWwJH\",\"fadeIn\":\"ScrollableContent__fadeIn___HRYUH\",\"blinking\":\"ScrollableContent__blinking___msg9f\"};","import { ApiBrokerTourTypeT } from 'broker-admin/utils/api/broker-tranziit/models';\n\nexport enum QueryKeysEnum {\n    brokerToursFilters = 'broker-tours-filters',\n    brokerToursPage = 'broker-tours-page',\n    brokerToursSort = 'broker-tours-sort',\n}\n\nexport enum QueryFiltersKeysEnum {\n    quickFilter = 'quickFilter',\n    searchText = 'searchText',\n    carrierIds = 'carrierIds',\n    carrierNames = 'carrierNames',\n    originAddress = 'originAddress',\n    destinationAddress = 'destinationAddress',\n    originDateFrom = 'originDateFrom',\n    originDateTo = 'originDateTo',\n    destinationDateFrom = 'destinationDateFrom',\n    destinationDateTo = 'destinationDateTo',\n    dateCreatedFrom = 'dateCreatedFrom',\n    dateCreatedTo = 'dateCreatedTo',\n    tourTypes = 'tourTypes',\n    plateNumber = 'plateNumber',\n\n    // Warning filters\n    transportOrderDeclined = 'transport-order-declined',\n    runningOutOfTimeToAssignCarrier = 'running-out-of-time-to-assign-carrier',\n    runOutOfTimeToAssignCarrier = 'run-out-of-time-to-assign-carrier',\n    runningOutOfTimeToAssignAssets = 'running-out-of-time-to-assign-assets',\n    runOutOfTimeToAssignAssets = 'run-out-of-time-to-assign-assets',\n    runningOutOfTimeToAssignDriver = 'running-out-of-time-to-assign-driver',\n    runOutOfTimeToAssignDriver = 'run-out-of-time-to-assign-driver',\n    noShow = 'no-show',\n    shipmentMissed = 'shipment-missed',\n    tourDelaying = 'tour-delaying',\n}\n\nexport type QueryFiltersT = {\n    [QueryFiltersKeysEnum.quickFilter]?: BrokerToursQuickFilterEnum;\n    [QueryFiltersKeysEnum.searchText]?: QueryParam.StringT;\n    [QueryFiltersKeysEnum.carrierIds]?: QueryParam.ArrayT<string>;\n    [QueryFiltersKeysEnum.carrierNames]?: QueryParam.ArrayT<string>;\n    [QueryFiltersKeysEnum.originAddress]?: QueryParam.StringT;\n    [QueryFiltersKeysEnum.destinationAddress]?: QueryParam.StringT;\n    [QueryFiltersKeysEnum.originDateFrom]?: QueryParam.StringT;\n    [QueryFiltersKeysEnum.originDateTo]?: QueryParam.StringT;\n    [QueryFiltersKeysEnum.destinationDateFrom]?: QueryParam.StringT;\n    [QueryFiltersKeysEnum.destinationDateTo]?: QueryParam.StringT;\n    [QueryFiltersKeysEnum.dateCreatedFrom]?: QueryParam.StringT;\n    [QueryFiltersKeysEnum.dateCreatedTo]?: QueryParam.StringT;\n    [QueryFiltersKeysEnum.tourTypes]?: QueryParam.ArrayT<ApiBrokerTourTypeT>;\n    [QueryFiltersKeysEnum.plateNumber]?: QueryParam.StringT;\n    // Warning filters\n    [QueryFiltersKeysEnum.transportOrderDeclined]?: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.runningOutOfTimeToAssignCarrier]?: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.runOutOfTimeToAssignCarrier]?: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.runningOutOfTimeToAssignAssets]?: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.runOutOfTimeToAssignAssets]?: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.runningOutOfTimeToAssignDriver]?: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.runOutOfTimeToAssignDriver]?: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.noShow]?: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.shipmentMissed]?: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.tourDelaying]?: QueryParam.BooleanT;\n};\n\nexport enum BrokerToursQuickFilterEnum {\n    carrierUnassigned = 'CARRIER_UNASSIGNED',\n    assetUnassigned = 'ASSET_UNASSIGNED',\n    driverUnassigned = 'DRIVER_UNASSIGNED',\n    assigned = 'ASSIGNED',\n    inTransit = 'IN_TRANSIT',\n    canceled = 'CANCELED',\n    finished = 'FINISHED',\n}\n\nexport enum BrokerToursSortEnum {\n    originDate = 'ORIGIN_DATE',\n    destinationDate = 'DESTINATION_DATE',\n    createdDate = 'CREATED_DATE',\n}\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './SpotRequestDetailsPage.scss';\n\nimport { useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport GoogleMapContextProvider from 'common/components/maps/GoogleMapContextProvider/GoogleMapContextProvider';\nimport HorizontalColumnsLayout from 'common/layouts/HorizontalColumnsLayout/HorizontalColumnsLayout';\nimport SpotRequestRoute from 'broker-admin/layouts/SpotRequestsPage/SpotRequestDetailsPage/SpotRequestRoute/SpotRequestRoute';\nimport history, { goBackIfHasRePath } from 'common/utils/history';\nimport { SpotRoutesEnum } from 'broker-admin/constants';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport BaseSpotRequestDetailsSidebarContent from 'broker-admin/components/BaseSpotRequestDetailsSidebarContent/BaseSpotRequestDetailsSidebarContent';\nimport { useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport { logWarning } from 'common/utils/logger';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport SideBars from 'broker-admin/layouts/SideBars/SideBars';\nimport { ExtractRouterRouteParamsT } from 'common/utils/extract-router-route-params-t';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst SpotRequestDetailsPage: React.FC<PropsT> = React.memo(() => {\n    const params = useParams<ExtractRouterRouteParamsT<SpotRoutesEnum.spotRequestDetails>>();\n    const { spotRequestId } = params;\n\n    const { t } = useTranslation();\n\n    const handleCloseDetails = () => {\n        goBackIfHasRePath(\n            () => {\n                history.push(SpotRoutesEnum.list + history.location.search);\n            },\n            {\n                shouldCloseSidebars: true,\n            },\n        );\n    };\n\n    const handleCloseMap = () => {\n        goBackIfHasRePath(() => {\n            history.push(urlFactory.spotRequestsListWithDetails(spotRequestId));\n        });\n    };\n\n    const openLeftSidebar = useOpenLeftSidebar();\n    const handleOpenUserDetails = (params: {\n        partnerType: PartnerTypeEnum;\n        partnerId: PartnerIdT;\n        userId: UserIdT | null;\n    }) => {\n        const { userId, partnerType, partnerId } = params;\n        if (!userId) {\n            logWarning('failed to open user details in spot request details sidebar, empty userId');\n            return;\n        }\n\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId,\n            partnerType,\n            userId,\n        });\n    };\n\n    return (\n        <>\n            <GoogleMapContextProvider>\n                <HorizontalColumnsLayout\n                    testSelector=\"spot-request-details\"\n                    className={cx('wrap')}\n                    leftColumnTitle={t('spot-request-details.main-tabs.details')}\n                    leftColumnNode={\n                        <BaseSpotRequestDetailsSidebarContent\n                            id={spotRequestId}\n                            onClose={handleCloseDetails}\n                            toggleMap={handleCloseMap}\n                            isActiveMapTrigger\n                            onOpenUserDetails={handleOpenUserDetails}\n                        />\n                    }\n                    rightColumnTitle={t('spot-request-details.main-tabs.info')}\n                    rightColumnNode={<SpotRequestRoute id={spotRequestId} />}\n                />\n            </GoogleMapContextProvider>\n            <SideBars />\n        </>\n    );\n});\n\nexport default SpotRequestDetailsPage;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './RateMatrix.scss';\nimport { useDispatch, useSelector } from 'react-redux';\nimport useQuery from 'common/utils/hooks/useQuery';\nimport { QueryKeysEnum } from 'common/constants';\nimport history from 'common/utils/history';\nimport SearchForm from './SearchForm/SearchForm';\nimport { CountryCodeT } from 'common/store/countries-dict/models';\nimport Pagination from 'common/components/Table/Pagination/Pagination';\nimport RatesTable from './RatesTable/RatesTable';\nimport isEmpty from 'lodash/isEmpty';\nimport difference from 'lodash/difference';\nimport {\n    selectRatesByIds,\n    selectRatesPages,\n    selectRatesTotal,\n    selectUpdateRatesRequest,\n} from 'broker-admin/store/price-settings/rates/selectors';\nimport { fetchRatesPage, updateRates, uploadCSVFile } from 'broker-admin/store/price-settings/rates/actions';\nimport { ChangeCostT, RateT } from 'broker-admin/store/price-settings/rates/models';\nimport TableMessage, { TableMessageIconsEnum } from 'common/components/Table/TableMessage/TableMessage';\nimport { useTranslation } from 'react-i18next';\nimport ChangeRatesForm from './ChangeRatesForm/ChangeRatesForm';\nimport { UpdateRateStrategyEnum } from 'common/utils/api/models';\nimport FiltersPill, { FilterPillThemeEnum } from 'common/components/FilterPills/FilterPill/FilterPill';\nimport parsePageNumber from 'common/utils/parse-page-number';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport Modal from 'common/components/Modal/Modal';\nimport ImportCsv from './ImportCsv/ImportCsv';\nimport { formatQuery } from 'common/utils/query';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport StickyFooter from 'common/layouts/LeftMenuLayout/StickyFooter/StickyFooter';\nimport TableError from 'common/components/Table/TableError/TableError';\nimport ListPageLayout from 'common/layouts/ListPage/ListPageLayout/ListPageLayout';\nimport ListPageHeaderLayout from 'common/layouts/ListPage/ListPageHeaderLayout/ListPageHeaderLayout';\nimport { pickFile } from 'common/utils/pick-file';\nimport { useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport { logWarning } from 'common/utils/logger';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport CountriesFilterPill from 'common/components/filter-pills/CountriesFilterPill/CountriesFilterPill';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { ratesPaginationChannel, ratesRefreshChannel } from 'broker-admin/store/price-settings/rates/channels';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { checkNeedRenderEmptyState } from 'common/components/Table/utils/check-need-render-empty-state';\n\nconst cx = classNames.bind(styles);\n\ntype QueryT = {\n    [QueryKeysEnum.ratesFromCountryCodesSearch]?: Array<CountryCodeT>;\n    [QueryKeysEnum.ratesToCountryCodesSearch]?: Array<CountryCodeT>;\n    [QueryKeysEnum.ratesPage]?: string;\n};\n\nconst EMPTY_COUNTRY_CODES: Array<CountryCodeT> = [];\n\ntype PropsT = {};\n\nconst RateMatrix: React.FC<PropsT> = () => {\n    const { t } = useTranslation();\n\n    const { partnerId, partnerType } = usePartnerContext();\n\n    const openLeftSidebar = useOpenLeftSidebar();\n    const handleOpenUserDetails = (userId: UserIdT | null) => {\n        if (!userId) {\n            logWarning('failed to open user details in rate matrix, empty userId');\n            return;\n        }\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in handleOpenUserDetails');\n            return;\n        }\n\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId,\n            partnerType,\n            userId,\n        });\n    };\n\n    const dispatch = useDispatch();\n\n    const total = useSelector(selectRatesTotal);\n    const ratesPages = useSelector(selectRatesPages);\n    const rateById = useSelector(selectRatesByIds);\n\n    const updateRatesRequest = useSelector(selectUpdateRatesRequest);\n\n    const [selectedRatesSet, setSelectedRatesSet] = React.useState<Set<RateT>>(new Set());\n\n    const query = useQuery<QueryT>();\n    const fromCountryCodes = query[QueryKeysEnum.ratesFromCountryCodesSearch] || EMPTY_COUNTRY_CODES;\n    const toCountryCodes = query[QueryKeysEnum.ratesToCountryCodesSearch] || EMPTY_COUNTRY_CODES;\n\n    const handleChangeFilters = (fromCountryCodes: CountryCodeT[], toCountryCodes: CountryCodeT[]) => {\n        history.push({\n            search: formatQuery({\n                ...query,\n                [QueryKeysEnum.ratesFromCountryCodesSearch]: fromCountryCodes,\n                [QueryKeysEnum.ratesToCountryCodesSearch]: toCountryCodes,\n            }),\n        });\n    };\n\n    const handleOmitFilters = (omitFromCountryCodes: CountryCodeT[], omitToCountryCodes: CountryCodeT[]) => {\n        history.push({\n            search: formatQuery({\n                ...query,\n                [QueryKeysEnum.ratesFromCountryCodesSearch]: difference(fromCountryCodes, omitFromCountryCodes),\n                [QueryKeysEnum.ratesToCountryCodesSearch]: difference(toCountryCodes, omitToCountryCodes),\n            }),\n        });\n    };\n\n    const pageNumber = parsePageNumber(query[QueryKeysEnum.ratesPage]);\n    const page = ratesPages[pageNumber];\n    const { ids, requestStatus } = page || {};\n\n    React.useEffect(() => {\n        setSelectedRatesSet(new Set());\n    }, [ids]);\n\n    React.useEffect(() => {\n        dispatch(\n            fetchRatesPage(pageNumber, {\n                countriesFrom: fromCountryCodes,\n                countriesTo: toCountryCodes,\n            }),\n        );\n\n        return (): void => {\n            // TODO reset\n        };\n    }, [dispatch, pageNumber, fromCountryCodes, toCountryCodes]);\n\n    const refreshPageHandler = React.useCallback(() => {\n        dispatch(\n            fetchRatesPage(\n                pageNumber,\n                {\n                    countriesFrom: fromCountryCodes,\n                    countriesTo: toCountryCodes,\n                },\n                { isForceUpdate: true },\n            ),\n        );\n    }, [dispatch, pageNumber, fromCountryCodes, toCountryCodes]);\n    useChannelSubscribe(ratesRefreshChannel, refreshPageHandler);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        dispatch(\n            fetchRatesPage(\n                pageNumber,\n                {\n                    countriesFrom: fromCountryCodes,\n                    countriesTo: toCountryCodes,\n                },\n                { isForceUpdate: true },\n            ),\n        );\n    }, [dispatch, pageNumber, fromCountryCodes, toCountryCodes]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        dispatch(\n            fetchRatesPage(\n                pageNumber,\n                {\n                    countriesFrom: fromCountryCodes,\n                    countriesTo: toCountryCodes,\n                },\n                { isForceUpdate: false },\n            ),\n        );\n    }, [dispatch, pageNumber, fromCountryCodes, toCountryCodes]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const goToPage = React.useCallback(\n        (pageNumber: PageNumberT) => {\n            history.push({\n                search: formatQuery({\n                    ...query,\n                    [QueryKeysEnum.ratesPage]: pageNumber,\n                }),\n            });\n        },\n        [query],\n    );\n\n    const setPageHandler = React.useCallback(\n        ({ pageNumber }: InferChannelEventT<typeof ratesPaginationChannel>) => {\n            goToPage(pageNumber);\n        },\n        [goToPage],\n    );\n    useChannelSubscribe(ratesPaginationChannel, setPageHandler);\n\n    const rates = React.useMemo(() => {\n        return (ids || []).map((id): RateT => rateById[id]);\n    }, [ids, rateById]);\n\n    const hasQuery = !isEmpty(fromCountryCodes) || !isEmpty(toCountryCodes);\n\n    const handleChangeRates = (changeCost: ChangeCostT) => {\n        const ids = [...selectedRatesSet].map((rate) => rate.id);\n\n        if (ids.length && changeCost.value) {\n            dispatch(updateRates(ids, changeCost.value, changeCost.strategy));\n        }\n\n        setSelectedRatesSet(new Set());\n    };\n\n    const handleUpdateRate = (id: RateT['id'], value: number) => {\n        dispatch(updateRates([id], value, UpdateRateStrategyEnum.exactValue));\n\n        setSelectedRatesSet(new Set());\n    };\n\n    const [isShowCSVImportModal, setShowCSVImportModal] = React.useState<boolean>(false);\n\n    const uploadFile = () => {\n        pickFile('.csv', (file) => {\n            dispatch(uploadCSVFile(file));\n\n            setShowCSVImportModal(true);\n        });\n    };\n\n    const renderTableMessage = () => {\n        if (!checkNeedRenderEmptyState(rates, requestStatus)) {\n            return null;\n        }\n\n        if (requestStatus?.error) {\n            return <TableError error={requestStatus?.error} onRetry={handleRefreshOnError} />;\n        }\n\n        if (requestStatus?.ok && hasQuery) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.empty}\n                    title={t('price-settings.rate-matrix.empty.title')}\n                    description=\"\"\n                    isShowAction={false}\n                />\n            );\n        }\n\n        if (requestStatus?.ok && !hasQuery) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.notFound}\n                    title={t('price-settings.rate-matrix.not-found.title')}\n                    description=\"\"\n                    isShowAction={false}\n                />\n            );\n        }\n\n        return (\n            <TableMessage\n                iconType={TableMessageIconsEnum.empty}\n                title={t('spot-requests.list.table.messages.empty.title')}\n                testSelector=\"empty-state\"\n                isShowAction={false}\n            />\n        );\n    };\n\n    return (\n        <ContentMargins>\n            <ListPageLayout>\n                <ListPageHeaderLayout\n                    withTopPadding\n                    leftToolsNode={\n                        <SearchForm\n                            initialFromCountryCodes={fromCountryCodes}\n                            initialToCountryCodes={toCountryCodes}\n                            onChange={handleChangeFilters}\n                        />\n                    }\n                    rightToolsNode={\n                        <>\n                            <Button theme={ButtonThemeEnum.primary} onClick={uploadFile}>\n                                {t('price-settings.rate-matrix.import-csv.trigger')}\n                            </Button>\n                            {!!selectedRatesSet.size && <ChangeRatesForm onSubmit={handleChangeRates} />}\n                        </>\n                    }\n                    filterTagsNode={\n                        <>\n                            {!!fromCountryCodes?.length && (\n                                <>\n                                    <FiltersPill\n                                        key=\"from-clear-all\"\n                                        className={cx('filters-pills__item')}\n                                        label={t('price-settings.rate-matrix.clear-from-country-codes')}\n                                        withCloser={false}\n                                        isCompact\n                                        theme={FilterPillThemeEnum.charcoal}\n                                        onClick={() => handleChangeFilters([], toCountryCodes)}\n                                    />\n                                    {fromCountryCodes.map((code) => (\n                                        <FiltersPill\n                                            key={`from-${code}`}\n                                            className={cx('filters-pills__item')}\n                                            label={<CountriesFilterPill countryCodes={[code]} />}\n                                            withCloser\n                                            isCompact\n                                            theme={FilterPillThemeEnum.charcoal}\n                                            onClick={() => handleOmitFilters([code], [])}\n                                        />\n                                    ))}\n                                </>\n                            )}\n                            {!!toCountryCodes?.length && (\n                                <>\n                                    <FiltersPill\n                                        key=\"to-clear-all\"\n                                        className={cx('filters-pills__item')}\n                                        label={t('price-settings.rate-matrix.clear-to-country-codes')}\n                                        withCloser={false}\n                                        isCompact\n                                        theme={FilterPillThemeEnum.brandDark}\n                                        onClick={() => handleChangeFilters(fromCountryCodes, [])}\n                                    />\n                                    {toCountryCodes.map((code) => (\n                                        <FiltersPill\n                                            key={`to-${code}`}\n                                            className={cx('filters-pills__item')}\n                                            label={<CountriesFilterPill countryCodes={[code]} />}\n                                            withCloser\n                                            isCompact\n                                            theme={FilterPillThemeEnum.brandDark}\n                                            onClick={() => handleOmitFilters([], [code])}\n                                        />\n                                    ))}\n                                </>\n                            )}\n                        </>\n                    }\n                />\n                {renderTableMessage()}\n                <RatesTable\n                    selectedRatesSet={selectedRatesSet}\n                    onSelectRates={setSelectedRatesSet}\n                    onUpdateRate={handleUpdateRate}\n                    onOpenUserDetails={handleOpenUserDetails}\n                    rates={rates}\n                    isLoading={requestStatus?.loading}\n                    isDisabled={updateRatesRequest.loading}\n                />\n                <StickyFooter>\n                    <Pagination current={pageNumber} count={total?.pageCount} goToPage={goToPage} />\n                </StickyFooter>\n                {isShowCSVImportModal && (\n                    <Modal>\n                        <ModalContent\n                            onClose={() => {\n                                setShowCSVImportModal(false);\n                            }}\n                        >\n                            <ImportCsv\n                                onClose={() => {\n                                    setShowCSVImportModal(false);\n                                }}\n                            />\n                        </ModalContent>\n                    </Modal>\n                )}\n            </ListPageLayout>\n        </ContentMargins>\n    );\n};\n\nexport default RateMatrix;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"UpdatedPartnerShipperLaneContractCard__inner___SsuSv\",\"fadeIn\":\"UpdatedPartnerShipperLaneContractCard__fadeIn___Xbv2B\",\"blinking\":\"UpdatedPartnerShipperLaneContractCard__blinking___dwlFs\"};","function* notificationsAffectsSaga(): WrapGeneratorT<void> {\n    // nothing\n}\n\nexport default notificationsAffectsSaga;\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkMaxLength, checkMinLength, checkNotEmpty } from 'common/utils/form-validators';\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, [FieldsEnum.password], values),\n        ...checkMinLength(t, [FieldsEnum.password], values, 6),\n        ...checkMaxLength(t, [FieldsEnum.password], values, 255),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n    width?: number;\n    height?: number;\n};\n\nconst DownArrowIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, width = 20, height = 20 } = props;\n\n    return (\n        <svg\n            xmlns=\"http://www.w3.org/2000/svg\"\n            xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n            width={width}\n            height={height}\n            viewBox=\"0 0 20 20\"\n        >\n            <defs>\n                <path id=\"t93mq67o4a\" d=\"M13 12H7l3-3z\" />\n            </defs>\n            <use fill={fillColor} fillRule=\"evenodd\" transform=\"matrix(1 0 0 -1 0 21)\" xlinkHref=\"#t93mq67o4a\" />\n        </svg>\n    );\n};\n\nDownArrowIcon.displayName = 'DownArrowIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n};\n\nexport { storyProps };\nexport default DownArrowIcon;\n","import { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { reserveLockChannel } from 'common/store/order-creation/channels';\nimport { useCallback, useState } from 'react';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\n\nexport const useReserveChannelLock = (): boolean => {\n    const [isLocked, setIsLocked] = useState(false);\n\n    const reserveLockChannelHandler = useCallback((event: InferChannelEventT<typeof reserveLockChannel>) => {\n        setIsLocked(event.isLocked);\n    }, []);\n    useChannelSubscribe(reserveLockChannel, reserveLockChannelHandler);\n\n    return isLocked;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"icon-trigger\":\"IconTrigger__icon-trigger___sRjFJ\",\"icon-trigger--theme-primary\":\"IconTrigger__icon-trigger--theme-primary___VVMib\",\"icon-trigger--isFocused\":\"IconTrigger__icon-trigger--isFocused___O3gdI\",\"icon-trigger--isPressed\":\"IconTrigger__icon-trigger--isPressed___AaHCY\",\"icon-trigger--theme-secondary\":\"IconTrigger__icon-trigger--theme-secondary___PmXjp\",\"icon-trigger--theme-danger\":\"IconTrigger__icon-trigger--theme-danger___Aaedl\",\"icon-trigger--theme-transparent\":\"IconTrigger__icon-trigger--theme-transparent___aJDJO\",\"icon-trigger--isDisabled\":\"IconTrigger__icon-trigger--isDisabled___OERfp\",\"icon-trigger--isToggled\":\"IconTrigger__icon-trigger--isToggled___q70Cm\",\"icon-trigger--isClickable\":\"IconTrigger__icon-trigger--isClickable___GNugY\",\"fadeIn\":\"IconTrigger__fadeIn___crYtU\",\"blinking\":\"IconTrigger__blinking___oxW91\"};","// extracted by mini-css-extract-plugin\nexport default {\"estimate\":\"MapFooterEstimate__estimate___lfs2V\",\"loader\":\"MapFooterEstimate__loader___G3y18\",\"loader-text\":\"MapFooterEstimate__loader-text___GRsnF\",\"fadeIn\":\"MapFooterEstimate__fadeIn___DY9a9\",\"blinking\":\"MapFooterEstimate__blinking___EW2qP\"};","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\n\ntype PropsT = {\n    shipmentNumber: React.ReactNode;\n};\n\nconst ShipmentWasCanceledCard: React.FC<PropsT> = React.memo((props) => {\n    const { shipmentNumber } = props;\n\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey=\"common:notifications.shipment-was-canceled\"\n                components={{\n                    shipmentNumber: <NotificationEntityLabel isBold isUnderline text={shipmentNumber} />,\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default ShipmentWasCanceledCard;\n","import requestStatus from 'common/utils/request-status';\nimport {\n    ShipperSuggestActionT,\n    ShipperSuggestStateT,\n    FIND_SHIPPERS_REQUEST_BEGIN,\n    FIND_SHIPPERS_REQUEST_ERROR,\n    FIND_SHIPPERS_REQUEST_SUCCESS,\n    RESET,\n} from './types';\nimport { PartnerT } from './models';\nimport { isNonNil } from 'common/utils';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nexport const initialShipperSuggestState: ShipperSuggestStateT = {\n    query: null,\n    requestStatus: requestStatus.initial,\n    ids: [],\n    byId: {},\n};\n\nexport default (\n    state = initialShipperSuggestState,\n    action: ShipperSuggestActionT | DestroySessionActionT,\n): ShipperSuggestStateT => {\n    switch (action.type) {\n        case FIND_SHIPPERS_REQUEST_BEGIN: {\n            const { query } = action;\n\n            return {\n                ...state,\n                query,\n                requestStatus: requestStatus.loading,\n            };\n        }\n\n        case FIND_SHIPPERS_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                requestStatus: requestStatus.setError(error),\n            };\n        }\n\n        case FIND_SHIPPERS_REQUEST_SUCCESS: {\n            const { partners } = action;\n\n            const byId = partners.reduce<Record<string, PartnerT>>((acc, partner) => {\n                if (!partner?.id) {\n                    return acc;\n                }\n\n                return {\n                    ...acc,\n                    [partner.id]: {\n                        ...partner,\n                    },\n                };\n            }, {});\n\n            const ids = partners.map((partner) => partner.id).filter(isNonNil);\n\n            return {\n                ...state,\n                requestStatus: requestStatus.ok,\n                ids,\n                byId: {\n                    ...state.byId,\n                    ...byId,\n                },\n            };\n        }\n\n        case DESTROY_SESSION:\n        case RESET: {\n            return {\n                ...initialShipperSuggestState,\n            };\n        }\n\n        default:\n            return state;\n    }\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"PartnerTypeControl__fadeIn___VmvlQ\",\"blinking\":\"PartnerTypeControl__blinking___eGEEv\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './TrailerDetailsPage.scss';\nimport { useTranslation } from 'react-i18next';\nimport DetailsLayout from 'common/layouts/DetailsLayout/DetailsLayout';\nimport AssetDetailsMap from 'common/components/AssetDetailsMap/AssetDetailsMap';\nimport { AssetTypeEnum, QueryKeysEnum } from 'common/constants';\nimport useQuery from 'common/utils/hooks/useQuery';\nimport { cancelUnavailableVehicleRequest, fetchVehicleSchedule } from 'common/store/vehicle-schedules/actions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectCancelUnavailableVehicleRequestStatus,\n    selectFetchScheduleRequest,\n    selectVehicleSchedule,\n} from 'common/store/vehicle-schedules/selectors';\nimport { useParams } from 'react-router-dom';\nimport { formatQuery } from 'common/utils/query';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport { selectTrailersDetailsByIds } from 'common/store/trailers/selectors';\nimport isNumber from 'lodash/isNumber';\nimport AssetScheduleSidebar from 'common/components/AssetScheduleSidebar/AssetScheduleSidebar';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport CommonEditableTrailerDetailsLayout from 'common/layouts/CommonEditableTrailerDetailsLayout/CommonEditableTrailerDetailsLayout';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { useOpenLeftSidebar } from 'common/layouts/SideBars/hooks';\nimport { useStateSafeHistory } from 'common/utils/hooks/useStateSafeHistory';\nimport AssetServiceLocationContext from 'common/components/AssetSidebarContent/contexts/asset-service-location-context';\nimport { useAssetServiceLocationContextValue } from 'common/components/AssetSidebarContent/hooks/useAssetServiceLocationContextValue';\nimport GoogleMapContextProvider from 'common/components/maps/GoogleMapContextProvider/GoogleMapContextProvider';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { SyncSetUnavailableFormMapStateContext } from 'common/components/AssetSidebarContent/SetUnavailableForm/contexts/sync-map-state';\nimport { useSyncMapState } from '../../components/AssetSidebarContent/SetUnavailableForm/hooks/useSyncMapState';\nimport { logWarning } from 'common/utils/logger';\nimport CancelServiceMaintanceConfirmationModal, {\n    CancelServiceMaintanceConfirmationDataT,\n} from 'common/layouts/dialogs/CancelServiceMaintanceConfirmationModal/CancelServiceMaintanceConfirmationModal';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport { VehicleScheduleEventT } from 'common/store/vehicle-schedules/models';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { vehicleSchedulesRefreshChannel } from 'common/store/vehicle-schedules/channels';\nimport { getVehicleScheduleAroundDateISO } from 'common/store/vehicle-schedules/utils/around-date';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    onCloseMap: () => void;\n    onClose: () => void;\n    onOpenTransportOrderDetails?: (event: VehicleScheduleEventT) => void;\n};\n\ntype QueryT = {\n    [QueryKeysEnum.trailerOrderId]?: string;\n};\n\nconst TrailerDetailsPage: React.FC<PropsT> = React.memo((props) => {\n    const { onCloseMap, onClose, onOpenTransportOrderDetails } = props;\n\n    const assetServiceLocationContextValue = useAssetServiceLocationContextValue();\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const { partnerId } = usePartnerContext();\n\n    const { t } = useTranslation();\n\n    const params = useParams<{ trailerId: string; partnerId: string }>();\n    const { trailerId } = params;\n\n    const cancelServiceMaintanceConfirmation = useModalDialog<CancelServiceMaintanceConfirmationDataT>();\n    const cancelRequestStatus = useSelector(selectCancelUnavailableVehicleRequestStatus);\n    useCloseModalDialogAfterRequest(cancelRequestStatus, [cancelServiceMaintanceConfirmation]);\n\n    const detailsById = useSelector(selectTrailersDetailsByIds(partnerId));\n    const trailerDetails = detailsById[trailerId as string];\n\n    const dispatch = useDispatch();\n\n    const query = useQuery<QueryT>();\n\n    const { stateSafeHistory } = useStateSafeHistory();\n\n    const handleOrderClick = (orderId: string) => {\n        stateSafeHistory.replace({\n            search: formatQuery({\n                ...query,\n                [QueryKeysEnum.trailerOrderId]: orderId,\n            }),\n        });\n    };\n\n    const scheduleAroundDate = React.useMemo(() => getVehicleScheduleAroundDateISO(), []);\n\n    const fetchScheduleRequestStatus = useSelector(selectFetchScheduleRequest(trailerId, scheduleAroundDate));\n    const schedule = useSelector(selectVehicleSchedule(trailerId, scheduleAroundDate));\n\n    React.useEffect(() => {\n        dispatch(fetchVehicleSchedule({ vehicleId: trailerId, aroundDate: scheduleAroundDate }));\n    }, [trailerId, partnerId, dispatch, scheduleAroundDate]);\n\n    const refreshVehicleSchedulesHandler = React.useCallback(\n        (event: InferChannelEventT<typeof vehicleSchedulesRefreshChannel>) => {\n            const { vehicleId } = event;\n\n            if (vehicleId === trailerId) {\n                dispatch(\n                    fetchVehicleSchedule(\n                        { vehicleId: trailerId, aroundDate: scheduleAroundDate },\n                        { isForceUpdate: true },\n                    ),\n                );\n            }\n        },\n        [dispatch, trailerId, scheduleAroundDate],\n    );\n    useChannelSubscribe(vehicleSchedulesRefreshChannel, refreshVehicleSchedulesHandler);\n\n    const currentPosition = React.useMemo((): GeoPointT | null => {\n        if (!trailerDetails) {\n            return null;\n        }\n\n        const { latitude, longitude } = trailerDetails;\n        if (!isNumber(latitude) || !isNumber(longitude)) {\n            return null;\n        }\n\n        return {\n            lat: latitude,\n            lng: longitude,\n        };\n    }, [trailerDetails]);\n\n    const handleCloseMap = () => {\n        onCloseMap();\n    };\n\n    const handleOpenTruckDetails = (truckId: TruckIdT) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleOpenTruckDetails');\n            return;\n        }\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.truckDetails,\n            partnerId,\n            truckId,\n        });\n    };\n\n    const handleOpenContactDetails = (contractId: CarrierContractIdT) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleOpenContactDetails');\n            return;\n        }\n\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.carrierContract,\n            contractId,\n            initIsEditing: false,\n            partnerId,\n        });\n    };\n\n    const handleOpenTrailerDetails = (trailerId: TrailerIdT) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleOpenTrailerDetails');\n            return;\n        }\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.trailerDetails,\n            partnerId,\n            trailerId,\n        });\n    };\n\n    const handleOpenUserDetails = (userId: UserIdT, isBrokerUser?: boolean) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleOpenUserDetails');\n            return;\n        }\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId,\n            partnerType: isBrokerUser ? PartnerTypeEnum.broker : PartnerTypeEnum.carrier,\n            userId,\n        });\n    };\n\n    const handleConfirmCancelServiceMaintaince = (data: CancelServiceMaintanceConfirmationDataT) => {\n        if (!partnerId) {\n            return;\n        }\n\n        dispatch(cancelUnavailableVehicleRequest(data.query, partnerId));\n    };\n\n    const syncSetUnavailableFormMapStateContextValue = useSyncMapState();\n\n    return (\n        <GoogleMapContextProvider>\n            <SyncSetUnavailableFormMapStateContext.Provider value={syncSetUnavailableFormMapStateContextValue}>\n                <AssetServiceLocationContext.Provider value={assetServiceLocationContextValue}>\n                    <PageTitle\n                        title={t('page-titles.trailer-details', {\n                            plateNumber: trailerDetails?.plateNumber,\n                        })}\n                    />\n                    <DetailsLayout\n                        className={cx('wrap')}\n                        sideBarTitle={t('common:order-details.main-tabs.details')}\n                        sideBarNode={\n                            <CommonEditableTrailerDetailsLayout\n                                partnerId={partnerId}\n                                trailerId={trailerId}\n                                onClose={onClose}\n                                isShowMap\n                                onToggleShowMap={handleCloseMap}\n                                onOpenTrailerDetails={handleOpenTrailerDetails}\n                                onOpenTruckDetails={handleOpenTruckDetails}\n                                onOpenContactDetails={handleOpenContactDetails}\n                                onOpenUserDetails={handleOpenUserDetails}\n                            />\n                        }\n                        mapTitle={t('common:trailer-page.tabs.map')}\n                        mapNode={\n                            <AssetDetailsMap\n                                type={AssetTypeEnum.trailer}\n                                currentPosition={currentPosition}\n                                telematicUpdatedDate={trailerDetails?.telematicUpdatedDate}\n                                isLoading={fetchScheduleRequestStatus.loading || !trailerDetails}\n                            />\n                        }\n                        historyTitle={t('common:trailer-page.tabs.activity')}\n                        historyNode={null}\n                        timelineTitle={t('common:timeline')}\n                        timelineNode={(close) => (\n                            <AssetScheduleSidebar\n                                type=\"trailer\"\n                                isLoading={fetchScheduleRequestStatus.loading}\n                                onClose={close}\n                                onEventClick={handleOrderClick}\n                                selectedOrderId={query[QueryKeysEnum.trailerOrderId]}\n                                schedule={schedule}\n                                onCancelServiceMaintance={(event) => {\n                                    if (!partnerId) {\n                                        return;\n                                    }\n\n                                    cancelServiceMaintanceConfirmation.setData({\n                                        companyId: partnerId,\n                                        assets: [\n                                            {\n                                                plateNumber: trailerDetails?.plateNumber || '',\n                                            },\n                                        ],\n                                        query: {\n                                            trailerId: trailerDetails?.id,\n                                            id: event.id,\n                                        },\n                                    });\n                                }}\n                                onOpenTransportOrderDetails={onOpenTransportOrderDetails}\n                            />\n                        )}\n                    />\n                    <CancelServiceMaintanceConfirmationModal\n                        assetType=\"trailer\"\n                        data={cancelServiceMaintanceConfirmation.data}\n                        onCancel={cancelServiceMaintanceConfirmation.onCancel}\n                        onClose={cancelServiceMaintanceConfirmation.onClose}\n                        onConfirm={handleConfirmCancelServiceMaintaince}\n                        requestStatus={cancelRequestStatus}\n                    />\n                </AssetServiceLocationContext.Provider>\n            </SyncSetUnavailableFormMapStateContext.Provider>\n        </GoogleMapContextProvider>\n    );\n});\n\nexport default TrailerDetailsPage;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst PlusSignIcon: React.FC<PropsT> = (props) => {\n    const { strokeColor, size, ...rest } = props;\n\n    return (\n        <svg width={size} height={size} viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" {...rest}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path fill={strokeColor} d=\"M15.25 10.75h-4.5v4.5h-1.5v-4.5h-4.5v-1.5h4.5v-4.5h1.5v4.5h4.5z\" />\n            </g>\n        </svg>\n    );\n};\n\nPlusSignIcon.displayName = 'PlusSignIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default PlusSignIcon;\n","export {\n    updateShipment,\n    updateStopContact,\n    updateDockingHours,\n    updateBrokerOrderBegin,\n    updateBrokerOrderSuccess,\n    updateBrokerOrderError,\n    resetBrokerOrderEdit,\n} from './slice';\n","// extracted by mini-css-extract-plugin\nexport default {\"tabs\":\"ButtonTabs__tabs___lxzRO\",\"tabs__tab\":\"ButtonTabs__tabs__tab___rnBv0\",\"tabs__tab--is-active\":\"ButtonTabs__tabs__tab--is-active___q_j9H\",\"fadeIn\":\"ButtonTabs__fadeIn___xH5zj\",\"blinking\":\"ButtonTabs__blinking___UIpIh\"};","import React from 'react';\n\nexport type SyncFormValuesT<V extends FieldValues> = {\n    formValues: V | null;\n    syncFormValues: (formValues: V) => void;\n    setFieldValueCallback: SetFieldValueCallbackT<V> | null;\n    syncSetFieldValueCallback: (setFieldValue: SetFieldValueCallbackT<V>) => void;\n};\n\nexport type SetFieldValueCallbackT<V extends FieldValues> = <T extends FieldPath<V>>(\n    name: T,\n    value: FieldPathValue<V, T>,\n) => void;\n\nconst useSyncFormValues = <V extends FieldValues>(): SyncFormValuesT<V> => {\n    const [formValues, syncFormValues] = React.useState<V | null>(null);\n    const setFieldValueCallbackRef = React.useRef<SetFieldValueCallbackT<V> | null>(null);\n\n    return React.useMemo(() => {\n        return {\n            formValues,\n            syncFormValues,\n            setFieldValueCallback: setFieldValueCallbackRef.current,\n            syncSetFieldValueCallback: (callback) => {\n                setFieldValueCallbackRef.current = callback;\n            },\n        };\n    }, [formValues, syncFormValues]);\n};\n\nexport { useSyncFormValues };\n","import { MS_IN_SEC } from 'common/utils/time';\n\nexport const UNREAD_GROUPED_NOTIFICATION_COUNTS_TTL = 5 * MS_IN_SEC;\n","import React from 'react';\nimport classNames from 'classnames/bind';\nimport { useTranslation } from 'react-i18next';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport { ApiTruckRateModeT, TruckRateModeEnum } from 'common/utils/api/models';\n\nimport styles from './TruckRateModeDropdown.scss';\n\nconst cx = classNames.bind(styles);\n\ntype ValueT = ApiTruckRateModeT | null | undefined;\n\ntype PropsT = {\n    placeholder?: string;\n    value: ValueT;\n    isDisabled?: boolean;\n    onChange: (value: ValueT) => void;\n    hasWarning: boolean;\n    hasError: boolean;\n    hasChanges?: boolean;\n    onBlur: () => void;\n    onFocus: () => void;\n    hasClearControl?: boolean;\n};\n\nexport type OptionT = {\n    value: ValueT;\n    label: string;\n};\n\nconst AVAILABLE_RATE_MODES: Array<ApiTruckRateModeT> = [TruckRateModeEnum.brutto, TruckRateModeEnum.netto];\n\nexport const truckRateModeI18nMap: Record<ApiTruckRateModeT, string> = {\n    [TruckRateModeEnum.brutto]: 'common:carrier-contracts.details.fields.truck-rate-mode.options.brutto',\n    [TruckRateModeEnum.netto]: 'common:carrier-contracts.details.fields.truck-rate-mode.options.netto',\n};\n\nconst TruckRateModeDropdown: React.FC<PropsT> = React.memo((props) => {\n    const {\n        value,\n        placeholder,\n        onChange,\n        isDisabled,\n        hasWarning,\n        hasError,\n        hasChanges,\n        onBlur,\n        onFocus,\n        hasClearControl,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const truckRateOptions = React.useMemo(\n        () =>\n            AVAILABLE_RATE_MODES.map((rateMode) => {\n                return {\n                    value: rateMode,\n                    label: t(truckRateModeI18nMap[rateMode]),\n                };\n            }),\n        [t],\n    );\n\n    const renderOption = (option: OptionT | null | undefined): React.ReactElement | null => {\n        if (!option) {\n            return null;\n        }\n\n        return (\n            <div className={cx('option')} key={option.label}>\n                {option.label}\n            </div>\n        );\n    };\n\n    const handleSelect = (value: ValueT): void => {\n        onChange(value);\n    };\n\n    const handleReset = (): void => {\n        onChange(null);\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option.value;\n\n    return (\n        <DropdownInput\n            selectedValue={value}\n            placeholder={placeholder}\n            options={truckRateOptions}\n            onSelect={handleSelect}\n            isDisabled={isDisabled}\n            renderOption={renderOption}\n            getOptionValue={getOptionValue}\n            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n            hasWarning={hasWarning}\n            hasError={hasError}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            hasClearControl={hasClearControl}\n            onReset={handleReset}\n        />\n    );\n});\n\nexport default TruckRateModeDropdown;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './TransportationOrderDeclinedCard.scss';\nimport { Trans } from 'react-i18next';\nimport CityName from 'common/components/notification-cards/entities/CityName/CityName';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    transportationOrderNumber: string;\n    orderNumber: string;\n    cityFrom: string;\n    cityTo: string;\n    carrierName: string;\n};\n\nconst TransportationOrderNumber: React.FC<{ number: string }> = ({ number }) => {\n    return <span className={cx('transport-order-number')}>{number}</span>;\n};\n\nconst OrderNumber: React.FC<{ number: string }> = ({ number }) => {\n    return <span className={cx('order-number')}>{number}</span>;\n};\n\nconst CarrierName: React.FC<{ name: string }> = ({ name }) => {\n    return <span className={cx('carrier-name')}>{name}</span>;\n};\n\nconst TransportationOrderDeclinedCard: React.FC<PropsT> = React.memo((props) => {\n    const { transportationOrderNumber, orderNumber, cityFrom, cityTo, carrierName } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"notifications.transportation-order-declined\"\n                components={{\n                    toNumber: <TransportationOrderNumber number={transportationOrderNumber} />,\n                    orderNumber: <OrderNumber number={orderNumber} />,\n                    cityFrom: <CityName cityName={cityFrom} />,\n                    cityTo: <CityName cityName={cityTo} />,\n                    carrierName: <CarrierName name={carrierName} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default TransportationOrderDeclinedCard;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nexport type NotUsedRoutePointValidationResultT = {};\n\ntype PropsT = {\n    validationResult: NotUsedRoutePointValidationResultT | null;\n};\n\nconst NotUsedRoutePointValidationAlertContent: React.FC<PropsT> = React.memo((props) => {\n    const { validationResult } = props;\n\n    const { t } = useTranslation();\n\n    if (!validationResult) {\n        return null;\n    }\n\n    return <span>{t('common:new-order-details.validate-messages.not-used-pickup-delivery-point')}</span>;\n});\n\nexport default NotUsedRoutePointValidationAlertContent;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    fillColor?: StyleGuideColorsEnum;\n    size?: number;\n};\n\nconst ArrowDownIcon: React.FC<PropsT> = (props) => {\n    const { size, className, fillColor = StyleGuideColorsEnum.charcoal } = props;\n\n    return (\n        <svg\n            xmlns=\"http://www.w3.org/2000/svg\"\n            width={size || DEFAULT_ICON_SIZE}\n            height={size || DEFAULT_ICON_SIZE}\n            viewBox=\"0 0 20 20\"\n            className={className}\n        >\n            <path\n                d=\"M9.25 4v9.128L5.058 8.935 4 10l6 6 6-6-1.057-1.057-4.193 4.185V4z\"\n                fill={fillColor}\n                fillRule=\"evenodd\"\n            />\n        </svg>\n    );\n};\n\nArrowDownIcon.displayName = 'ArrowDownIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n};\n\nexport { storyProps };\nexport default ArrowDownIcon;\n","export enum FieldsEnum {\n    dates = 'dates',\n    shipperId = 'shipperId',\n    shipperName = 'shipperName',\n    userId = 'userId',\n    userName = 'userName',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.dates]: DateRangeT | null;\n    [FieldsEnum.shipperId]: CompanyIdT | null;\n    [FieldsEnum.shipperName]: string | null;\n    [FieldsEnum.userId]: UserIdT | null;\n    [FieldsEnum.userName]: string | null;\n};\n","import React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './ScrollableContent.scss';\nimport ContentLimiter from 'common/layouts/LeftMenuLayout/ContentLimiter/ContentLimiter';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    children: React.ReactNode;\n\n    scrollContainerRef?: React.RefObject<HTMLDivElement>;\n    onContainerScroll?: (event: React.UIEvent<HTMLElement>) => void;\n\n    stickyHeaderNode?: React.ReactNode;\n};\n\nconst ScrollableContent: React.FC<PropsT> = React.memo((props) => {\n    const { children, stickyHeaderNode, scrollContainerRef, onContainerScroll } = props;\n\n    return (\n        <div className={cx('wrapper')}>\n            {stickyHeaderNode}\n            <div\n                className={cx('scroll', {\n                    'scroll--hasStickyHeader': !!stickyHeaderNode,\n                })}\n                ref={scrollContainerRef}\n                onScroll={onContainerScroll}\n            >\n                <ContentLimiter className={cx('content')}>{children}</ContentLimiter>\n            </div>\n        </div>\n    );\n});\n\nexport default ScrollableContent;\n","import {\n    FETCH_VEHICLE_SCHEDULE_REQUEST,\n    FETCH_VEHICLE_SCHEDULE_REQUEST_BEGIN,\n    FETCH_VEHICLE_SCHEDULE_REQUEST_ERROR,\n    FETCH_VEHICLE_SCHEDULE_REQUEST_SUCCESS,\n    FetchVehicleScheduleActionT,\n    FetchVehicleScheduleBeginActionT,\n    FetchVehicleScheduleErrorActionT,\n    FetchVehicleScheduleSuccessActionT,\n    SetUnavailableVehicleRequestBeginActionT,\n    SetUnavailableVehicleRequestActionT,\n    SET_UNAVAILABLE_VEHICLE_REQUEST,\n    SET_UNAVAILABLE_VEHICLE_REQUEST_BEGIN,\n    SetUnavailableVehicleRequestErrorActionT,\n    SET_UNAVAILABLE_VEHICLE_REQUEST_ERROR,\n    SetUnavailableVehicleRequestSuccessActionT,\n    SET_UNAVAILABLE_VEHICLE_REQUEST_SUCCESS,\n    CancelUnavailableVehicleRequestActionT,\n    CancelUnavailableVehicleRequestBeginActionT,\n    CancelUnavailableVehicleRequestErrorActionT,\n    CancelUnavailableVehicleRequestSuccessActionT,\n    CANCEL_UNAVAILABLE_VEHICLE_REQUEST,\n    CANCEL_UNAVAILABLE_VEHICLE_REQUEST_BEGIN,\n    CANCEL_UNAVAILABLE_VEHICLE_REQUEST_ERROR,\n    CANCEL_UNAVAILABLE_VEHICLE_REQUEST_SUCCESS,\n} from './types';\nimport { VehicleIdT, VehicleScheduleHashT, VehicleScheduleT } from './models';\nimport { CancelUnavailableVehicleQueryT, SetUnavailableVehicleQueryT } from 'common/utils/api/models';\n\nexport const fetchVehicleSchedule = (\n    params: { vehicleId: VehicleIdT; aroundDate?: ISODateTimeT | null },\n    options?: FetchOptionsT,\n): FetchVehicleScheduleActionT => ({\n    type: FETCH_VEHICLE_SCHEDULE_REQUEST,\n    ...params,\n    options,\n});\n\nexport const fetchVehicleScheduleBegin = (hash: VehicleScheduleHashT): FetchVehicleScheduleBeginActionT => ({\n    type: FETCH_VEHICLE_SCHEDULE_REQUEST_BEGIN,\n    hash,\n});\n\nexport const fetchVehicleScheduleSuccess = (\n    hash: VehicleScheduleHashT,\n    schedule: VehicleScheduleT,\n): FetchVehicleScheduleSuccessActionT => ({\n    type: FETCH_VEHICLE_SCHEDULE_REQUEST_SUCCESS,\n    hash,\n    schedule,\n});\n\nexport const fetchVehicleScheduleError = (\n    hash: VehicleScheduleHashT,\n    error: Error,\n): FetchVehicleScheduleErrorActionT => ({\n    type: FETCH_VEHICLE_SCHEDULE_REQUEST_ERROR,\n    error,\n    hash,\n});\n\nexport const setUnavailableVehicleRequest = (\n    query: SetUnavailableVehicleQueryT,\n    companyId: CompanyIdT,\n): SetUnavailableVehicleRequestActionT => ({\n    type: SET_UNAVAILABLE_VEHICLE_REQUEST,\n    query,\n    companyId,\n});\n\nexport const setUnavailableVehicleRequestBegin = (): SetUnavailableVehicleRequestBeginActionT => ({\n    type: SET_UNAVAILABLE_VEHICLE_REQUEST_BEGIN,\n});\n\nexport const setUnavailableVehicleRequestError = (error: Error): SetUnavailableVehicleRequestErrorActionT => ({\n    type: SET_UNAVAILABLE_VEHICLE_REQUEST_ERROR,\n    error,\n});\n\nexport const setUnavailableVehicleRequestSuccess = (): SetUnavailableVehicleRequestSuccessActionT => ({\n    type: SET_UNAVAILABLE_VEHICLE_REQUEST_SUCCESS,\n});\n\nexport const cancelUnavailableVehicleRequest = (\n    query: CancelUnavailableVehicleQueryT,\n    companyId: CompanyIdT,\n): CancelUnavailableVehicleRequestActionT => ({\n    type: CANCEL_UNAVAILABLE_VEHICLE_REQUEST,\n    query,\n    companyId,\n});\n\nexport const cancelUnavailableVehicleRequestBegin = (): CancelUnavailableVehicleRequestBeginActionT => ({\n    type: CANCEL_UNAVAILABLE_VEHICLE_REQUEST_BEGIN,\n});\n\nexport const cancelUnavailableVehicleRequestError = (error: Error): CancelUnavailableVehicleRequestErrorActionT => ({\n    type: CANCEL_UNAVAILABLE_VEHICLE_REQUEST_ERROR,\n    error,\n});\n\nexport const cancelUnavailableVehicleRequestSuccess = (): CancelUnavailableVehicleRequestSuccessActionT => ({\n    type: CANCEL_UNAVAILABLE_VEHICLE_REQUEST_SUCCESS,\n});\n","import { RequestStatusT } from 'common/utils/request-status';\nimport { SignUpParamsT } from 'common/store/auth/models';\nimport { AuthProfileTypeEnum } from 'common/store/auth/constants';\nimport { AuthUserClaimsT, AuthUserT, PasswordT } from 'common/utils/api/auth/base-auth-service';\n\nexport const SIGN_IN_REQUEST = 'common/auth/SIGN_IN_REQUEST';\nexport const SIGN_IN_REQUEST_BEGIN = 'common/auth/SIGN_IN_REQUEST_BEGIN';\nexport const SIGN_IN_REQUEST_SUCCESS = 'common/auth/SIGN_IN_REQUEST_SUCCESS';\nexport const SIGN_IN_REQUEST_ERROR = 'common/auth/SIGN_IN_REQUEST_ERROR';\n\nexport const RESET_PASSWORD_REQUEST = 'common/auth/RESET_PASSWORD_REQUEST';\nexport const RESET_PASSWORD_REQUEST_BEGIN = 'common/auth/RESET_PASSWORD_REQUEST_BEGIN';\nexport const RESET_PASSWORD_REQUEST_SUCCESS = 'common/auth/RESET_PASSWORD_REQUEST_SUCCESS';\nexport const RESET_PASSWORD_REQUEST_ERROR = 'common/auth/RESET_PASSWORD_REQUEST_ERROR';\n\nexport const UPDATE_PASSWORD_REQUEST = 'common/auth/UPDATE_PASSWORD_REQUEST';\nexport const UPDATE_PASSWORD_REQUEST_BEGIN = 'common/auth/UPDATE_PASSWORD_REQUEST_BEGIN';\nexport const UPDATE_PASSWORD_REQUEST_SUCCESS = 'common/auth/UPDATE_PASSWORD_REQUEST_SUCCESS';\nexport const UPDATE_PASSWORD_REQUEST_ERROR = 'common/auth/UPDATE_PASSWORD_REQUEST_ERROR';\n\nexport const CONTINUE_SIGN_UP_REQUEST = 'common/auth/CONTINUE_SIGN_UP_REQUEST';\nexport const SIGN_UP_REQUEST = 'common/auth/SIGN_UP_REQUEST';\nexport const SIGN_UP_REQUEST_BEGIN = 'common/auth/SIGN_UP_REQUEST_BEGIN';\nexport const SIGN_UP_REQUEST_SUCCESS = 'common/auth/SIGN_UP_REQUEST_SUCCESS';\nexport const SIGN_UP_REQUEST_ERROR = 'common/auth/SIGN_UP_REQUEST_ERROR';\n\nexport const SIGN_OUT_REQUEST = 'common/auth/SIGN_OUT_REQUEST';\nexport const SIGN_OUT_REQUEST_BEGIN = 'common/auth/SIGN_OUT_REQUEST_BEGIN';\nexport const SIGN_OUT_REQUEST_SUCCESS = 'common/auth/SIGN_OUT_REQUEST_SUCCESS';\nexport const SIGN_OUT_REQUEST_ERROR = 'common/auth/SIGN_OUT_REQUEST_ERROR';\n\nexport const EMAIL_VERIFICATION_REQUEST = 'common/auth/EMAIL_VERIFICATION_REQUEST';\nexport const EMAIL_VERIFICATION_REQUEST_BEGIN = 'common/auth/EMAIL_VERIFICATION_REQUEST_BEGIN';\nexport const EMAIL_VERIFICATION_REQUEST_SUCCESS = 'common/auth/EMAIL_VERIFICATION_REQUEST_SUCCESS';\nexport const EMAIL_VERIFICATION_REQUEST_ERROR = 'common/auth/EMAIL_VERIFICATION_REQUEST_ERROR';\n\nexport const SET_USER = 'common/auth/SET_USER';\nexport const RESET_USER = 'common/auth/RESET_USER';\n\nexport const DESTROY_SESSION = 'common/auth/DESTROY_SESSION';\n\nexport type AuthStateT = {\n    user: AuthUserT | null;\n    signInRequest: RequestStatusT;\n    resetPasswordRequest: RequestStatusT;\n    updatePasswordRequest: RequestStatusT;\n    signUpRequest: RequestStatusT;\n    signOutRequest: RequestStatusT;\n    emailVerificationRequest: RequestStatusT;\n    userClaims: AuthUserClaimsT | null;\n    profileType: AuthProfileTypeEnum;\n};\n\nexport type SignInActionT = {\n    type: typeof SIGN_IN_REQUEST;\n    email: string;\n    password: string;\n    returnUrl: string | null;\n};\n\nexport type SignInBeginActionT = {\n    type: typeof SIGN_IN_REQUEST_BEGIN;\n};\n\nexport type SignInSuccessActionT = {\n    type: typeof SIGN_IN_REQUEST_SUCCESS;\n    user: AuthUserT;\n    userClaims: AuthUserClaimsT | null;\n};\n\nexport type SignInErrorActionT = {\n    type: typeof SIGN_IN_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type ResetPasswordActionT = {\n    type: typeof RESET_PASSWORD_REQUEST;\n    email: string;\n};\n\nexport type ResetPasswordBeginActionT = {\n    type: typeof RESET_PASSWORD_REQUEST_BEGIN;\n};\n\nexport type ResetPasswordSuccessActionT = {\n    type: typeof RESET_PASSWORD_REQUEST_SUCCESS;\n};\n\nexport type ResetPasswordErrorActionT = {\n    type: typeof RESET_PASSWORD_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type UpdatePasswordActionT = {\n    type: typeof UPDATE_PASSWORD_REQUEST;\n    oobCode: string;\n    password: PasswordT;\n};\n\nexport type UpdatePasswordBeginActionT = {\n    type: typeof UPDATE_PASSWORD_REQUEST_BEGIN;\n};\n\nexport type UpdatePasswordSuccessActionT = {\n    type: typeof UPDATE_PASSWORD_REQUEST_SUCCESS;\n};\n\nexport type UpdatePasswordErrorActionT = {\n    type: typeof UPDATE_PASSWORD_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type ContinueSignUpActionT = {\n    type: typeof CONTINUE_SIGN_UP_REQUEST;\n    firstName: string;\n    lastName: string;\n    phoneNumber: string;\n    password: string;\n    oobCode: string | null;\n    email: string | null;\n    returnUrl: string | null;\n};\n\nexport type SignUpActionT = {\n    type: typeof SIGN_UP_REQUEST;\n    params: SignUpParamsT;\n};\n\nexport type SignUpBeginActionT = {\n    type: typeof SIGN_UP_REQUEST_BEGIN;\n};\n\nexport type SignUpSuccessActionT = {\n    type: typeof SIGN_UP_REQUEST_SUCCESS;\n};\n\nexport type SignUpErrorActionT = {\n    type: typeof SIGN_UP_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type SetUserActionT = {\n    type: typeof SET_USER;\n    user: AuthUserT | null;\n    userClaims: AuthUserClaimsT | null;\n};\n\nexport type ResetUserActionT = {\n    type: typeof RESET_USER;\n};\n\nexport type SignOutActionT = {\n    type: typeof SIGN_OUT_REQUEST;\n};\n\nexport type SignOutBeginActionT = {\n    type: typeof SIGN_OUT_REQUEST_BEGIN;\n};\n\nexport type SignOutSuccessActionT = {\n    type: typeof SIGN_OUT_REQUEST_SUCCESS;\n};\n\nexport type SignOutErrorActionT = {\n    type: typeof SIGN_OUT_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type EmailVerificationActionT = {\n    code: string;\n    type: typeof EMAIL_VERIFICATION_REQUEST;\n};\n\nexport type EmailVerificationBeginActionT = {\n    type: typeof EMAIL_VERIFICATION_REQUEST_BEGIN;\n};\n\nexport type EmailVerificationSuccessActionT = {\n    type: typeof EMAIL_VERIFICATION_REQUEST_SUCCESS;\n};\n\nexport type EmailVerificationErrorActionT = {\n    type: typeof EMAIL_VERIFICATION_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type DestroySessionActionT = {\n    type: typeof DESTROY_SESSION;\n};\n\nexport type AuthActionT =\n    | SignInActionT\n    | SignInBeginActionT\n    | SignInSuccessActionT\n    | SignInErrorActionT\n    | SetUserActionT\n    | ResetUserActionT\n    | ResetPasswordActionT\n    | ResetPasswordBeginActionT\n    | ResetPasswordSuccessActionT\n    | ResetPasswordErrorActionT\n    | UpdatePasswordActionT\n    | UpdatePasswordBeginActionT\n    | UpdatePasswordSuccessActionT\n    | UpdatePasswordErrorActionT\n    | SignUpActionT\n    | SignUpBeginActionT\n    | SignUpSuccessActionT\n    | SignUpErrorActionT\n    | SignOutActionT\n    | SignOutBeginActionT\n    | SignOutSuccessActionT\n    | SignOutErrorActionT\n    | DestroySessionActionT\n    | EmailVerificationActionT\n    | EmailVerificationBeginActionT\n    | EmailVerificationSuccessActionT\n    | EmailVerificationErrorActionT;\n","import { RequestStatusT } from 'common/utils/request-status';\n\nexport const SEND_TO_SPOT_BY_TOUR = 'broker/spot/SEND_TO_SPOT_BY_TOUR';\nexport const CANCEL_SPOT_REQUEST_BY_TOUR = 'broker/spot/CANCEL_SPOT_REQUEST_BY_TOUR';\nexport const CANCEL_SPOT_REQUEST = 'broker/spot/CANCEL_SPOT_REQUEST';\nexport const UPDATE_REQUEST_BEGIN = 'broker/spot/UPDATE_REQUEST_BEGIN';\nexport const UPDATE_REQUEST_ERROR = 'broker/spot/UPDATE_REQUEST_ERROR';\nexport const UPDATE_REQUEST_SUCCESS = 'broker/spot/UPDATE_REQUEST_SUCCESS';\n\nexport type SpotStateT = {\n    requestStatus: RequestStatusT;\n};\n\nexport type SendToSpotByTourActionT = {\n    type: typeof SEND_TO_SPOT_BY_TOUR;\n    tourId: TourIdT;\n    deadline: string;\n    comment: string;\n};\n\nexport type CancelSpotRequestByTourActionT = {\n    type: typeof CANCEL_SPOT_REQUEST_BY_TOUR;\n    tourId: TourIdT;\n};\n\nexport type CancelSpotRequestActionT = {\n    type: typeof CANCEL_SPOT_REQUEST;\n    spotRequestId: SpotRequestIdT;\n};\n\nexport type UpdateBeginActionT = {\n    type: typeof UPDATE_REQUEST_BEGIN;\n};\n\nexport type UpdateSuccessActionT = {\n    type: typeof UPDATE_REQUEST_SUCCESS;\n};\n\nexport type UpdateErrorActionT = {\n    type: typeof UPDATE_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type SpotActionT =\n    | SendToSpotByTourActionT\n    | CancelSpotRequestByTourActionT\n    | CancelSpotRequestActionT\n    | UpdateBeginActionT\n    | UpdateSuccessActionT\n    | UpdateErrorActionT;\n","import * as React from 'react';\n\nimport { useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { goBackIfHasRePath } from 'common/utils/history';\nimport GoogleMapContextProvider from 'common/components/maps/GoogleMapContextProvider/GoogleMapContextProvider';\nimport HorizontalColumnsLayout from 'common/layouts/HorizontalColumnsLayout/HorizontalColumnsLayout';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport MoreIcon from 'common/icons/MoreIcon';\nimport DropdownControl, {\n    DropdownControlOptionT,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\n\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport SideBarLayoutContextWrap from '../LeftMenuLayout/SideBarLayout/SideBarLayoutContextWrap/SideBarLayoutContextWrap';\nimport EntitySidebarSkeleton from 'common/components/entity-details/EntitySidebarSkeleton/EntitySidebarSkeleton';\nimport SideBarRequestStatus from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarRequestStatus/SideBarRequestStatus';\nimport SideBarHeaderRequestStatus from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarHeaderRequestStatus/SideBarHeaderRequestStatus';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport CloseRFQConfirmation, {\n    CloseRFQConfirmationDataT,\n} from 'common/layouts/RFQDetailsPageLayout/dialogs/CloseRFQConfirmation/CloseRFQConfirmation';\nimport {\n    selectRFQSuggestedPriceOffer,\n    selectRFQDetails,\n    selectRFQDetailsRequestStatus,\n} from 'common/store/rfq-details/selectors';\nimport { fetchRFQDetails } from 'common/store/rfq-details/actions';\nimport RFQStatusPill from 'common/components/status-pill/RFQStatusPill/RFQStatusPill';\nimport RFQDetails from 'common/layouts/RFQDetailsPageLayout/RFQDetails/RFQDetails';\nimport { closeRFQ } from 'common/store/rfqs-changes/actions';\nimport { selectRFQsChangesRequest } from 'common/store/rfqs-changes/selectors';\nimport { RFQStatusEnum } from 'common/utils/api/models';\nimport FooterSideBarLayout from '../LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport ContinueRFQ from './footers/ContinueRFQ/ContinueRFQ';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport { selectRoutingGeometryState } from 'common/store/routing-geometry/selectors';\nimport { isNonNil } from 'common/utils';\nimport { useMemo } from 'react';\nimport { useRouteGeometry } from 'common/utils/hooks/useRouteGeometry';\nimport MultiPointOrderRouteMap, {\n    MultiPointOrderRouteMapPropsT,\n} from 'common/components/MultiPointOrderRouteMap/MultiPointOrderRouteMap';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { rfqsRefreshChannel } from 'common/store/rfqs/channels';\nimport { MapPointT } from 'common/components/MultiPointOrderRouteMap/models';\n\ntype PropsT = {\n    goToBack: () => void;\n    goToUserDetails: (userId: UserIdT | null) => void;\n    onOpenOrderDetails: (orderId: OrderIdT) => void;\n    shouldShowAppliedRules?: boolean;\n};\n\nconst canCloseStatusSet = new Set<RFQStatusEnum>([RFQStatusEnum.expireSoon, RFQStatusEnum.open]);\nconst canCompleteStatusSet = new Set<RFQStatusEnum>([RFQStatusEnum.expireSoon, RFQStatusEnum.open]);\n\nconst RFQDetailsPageLayout: React.FC<PropsT> = React.memo((props) => {\n    const { goToBack, goToUserDetails, onOpenOrderDetails, shouldShowAppliedRules } = props;\n\n    const params = useParams<{ rfqId: RFQIdT }>();\n    const { rfqId } = params;\n\n    const { t } = useTranslation();\n\n    const changesRequest = useSelector(selectRFQsChangesRequest);\n    const rfqDetails = useSelector(selectRFQDetails(rfqId));\n    const rfqSuggestedPriceOffer = useSelector(selectRFQSuggestedPriceOffer(rfqId));\n    const requestStatus = useSelector(selectRFQDetailsRequestStatus(rfqId));\n\n    const dispatch = useDispatch();\n\n    const polylineIds = useMemo(() => {\n        return [rfqDetails?.polylineId].filter(isNonNil);\n    }, [rfqDetails?.polylineId]);\n\n    useRouteGeometry(polylineIds);\n\n    React.useEffect(() => {\n        dispatch(fetchRFQDetails(rfqId, { isForceUpdate: false }));\n    }, [dispatch, rfqId]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        dispatch(fetchRFQDetails(rfqId, { isForceUpdate: false }));\n    }, [dispatch, rfqId]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        dispatch(fetchRFQDetails(rfqId, { isForceUpdate: true }));\n    }, [dispatch, rfqId]);\n\n    const refreshPageHandler = React.useCallback(() => {\n        dispatch(fetchRFQDetails(rfqId, { isForceUpdate: true }));\n    }, [dispatch, rfqId]);\n    useChannelSubscribe(rfqsRefreshChannel, refreshPageHandler);\n\n    const closeRFQDetails = () => {\n        goBackIfHasRePath(() => {\n            goToBack();\n        });\n    };\n\n    const closeConfirmationModalDialog = useModalDialog<CloseRFQConfirmationDataT>();\n\n    useCloseModalDialogAfterRequest(requestStatus, [closeConfirmationModalDialog]);\n\n    const options: Array<DropdownControlOptionT | null> = React.useMemo(() => {\n        const canClose = canCloseStatusSet.has(rfqDetails?.status as RFQStatusEnum);\n\n        return [\n            canClose\n                ? {\n                      label: (\n                          <DropdownControlOptionLabel\n                              icon={<CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                              label={t('common:rfq-details.actions.close')}\n                          />\n                      ),\n                      onSelect: () => {\n                          closeConfirmationModalDialog.setData({ id: rfqId });\n                      },\n                  }\n                : null,\n        ];\n    }, [rfqDetails, closeConfirmationModalDialog, rfqId, t]);\n\n    useCloseModalDialogAfterRequest(changesRequest, [closeConfirmationModalDialog]);\n\n    const handleConfirmClose = () => {\n        const rfqId = closeConfirmationModalDialog.data?.id;\n        if (rfqId) {\n            dispatch(closeRFQ(rfqId));\n        }\n    };\n\n    const routingGeometryState = useSelector(selectRoutingGeometryState(rfqDetails?.polylineId));\n\n    const canComplete = canCompleteStatusSet.has(rfqDetails?.status as RFQStatusEnum);\n\n    const mapPoints = useMemo((): MultiPointOrderRouteMapPropsT['points'] => {\n        return (\n            rfqDetails?.points?.map((point, index): MapPointT => {\n                return {\n                    longitude: point?.address?.longitude,\n                    latitude: point?.address?.latitude,\n                    type: point?.type,\n                    index,\n                };\n            }) || []\n        );\n    }, [rfqDetails]);\n\n    return (\n        <GoogleMapContextProvider>\n            <HorizontalColumnsLayout\n                testSelector=\"rfq-details\"\n                leftColumnTitle={t('common:rfq-details.main-tabs.details')}\n                leftColumnNode={\n                    <SideBarLayoutContextWrap>\n                        {changesRequest.loading && <LoaderOverlay />}\n                        <HeaderSideBarLayout>\n                            <HeaderSideBarContent\n                                title={t('common:rfq-details.title')}\n                                onClose={closeRFQDetails}\n                                afterTitleNode={\n                                    <RFQStatusPill\n                                        isSymmetrical\n                                        status={rfqDetails?.status}\n                                        source={rfqDetails?.source}\n                                    />\n                                }\n                                rightNode={\n                                    <DropdownControl\n                                        options={options}\n                                        renderTrigger={(isActive, onClick) => (\n                                            <TransparentTrigger\n                                                isPressed={isActive}\n                                                onClick={onClick}\n                                                leftIcon={<MoreIcon />}\n                                                reflectionTheme={ReflectionThemeEnum.light}\n                                            />\n                                        )}\n                                        overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                                    />\n                                }\n                            />\n                            <SideBarHeaderRequestStatus\n                                requestStatus={requestStatus}\n                                hasCachedData={Boolean(rfqDetails)}\n                                isForceShowLoader={changesRequest.loading}\n                            />\n                        </HeaderSideBarLayout>\n                        <SideBarLayout>\n                            <SideBarRequestStatus\n                                requestStatus={requestStatus}\n                                hasCachedData={Boolean(rfqDetails)}\n                                onRetry={handleRefreshOnError}\n                                SkeletonComponent={EntitySidebarSkeleton}\n                            >\n                                {rfqDetails ? (\n                                    <RFQDetails\n                                        rfqDetails={rfqDetails}\n                                        suggestedPriceOffer={rfqSuggestedPriceOffer}\n                                        goToUserDetails={goToUserDetails}\n                                        onOpenOrderDetails={onOpenOrderDetails}\n                                        shouldShowAppliedRules={shouldShowAppliedRules}\n                                    />\n                                ) : null}\n                            </SideBarRequestStatus>\n                        </SideBarLayout>\n                        {canComplete && (\n                            <FooterSideBarLayout hasPaddings>\n                                <ContinueRFQ id={rfqId} suggestedPriceOffer={rfqSuggestedPriceOffer} />\n                            </FooterSideBarLayout>\n                        )}\n                    </SideBarLayoutContextWrap>\n                }\n                rightColumnTitle={t('common:rfq-details.main-tabs.info')}\n                rightColumnNode={\n                    <MultiPointOrderRouteMap\n                        points={mapPoints}\n                        key={rfqId}\n                        route={routingGeometryState?.data}\n                        routeRequest={routingGeometryState?.requestStatus}\n                    />\n                }\n            />\n            <CloseRFQConfirmation\n                data={closeConfirmationModalDialog.data}\n                onConfirm={handleConfirmClose}\n                onCancel={closeConfirmationModalDialog.onCancel}\n                onClose={closeConfirmationModalDialog.onClose}\n                requestStatus={changesRequest}\n            />\n        </GoogleMapContextProvider>\n    );\n});\n\nexport default RFQDetailsPageLayout;\n","// extracted by mini-css-extract-plugin\nexport default {\"grid--has-symmetrical-opened-margins\":\"InfoTable__grid--has-symmetrical-opened-margins___jKqkW\",\"grid__row\":\"InfoTable__grid__row___ZXLl2\",\"grid__row--has-icons\":\"InfoTable__grid__row--has-icons___q7M3a\",\"grid__row--hasBottomBorder\":\"InfoTable__grid__row--hasBottomBorder___pV0Wl\",\"grid__row--hasEmptyIcon\":\"InfoTable__grid__row--hasEmptyIcon___JQAQo\",\"grid__cell\":\"InfoTable__grid__cell___U8mma\",\"grid__cell--isIcon\":\"InfoTable__grid__cell--isIcon___aBwx4\",\"grid__cell--isName\":\"InfoTable__grid__cell--isName___tVHZ4\",\"grid__cell--isFixedName\":\"InfoTable__grid__cell--isFixedName___LyieF\",\"grid__cell--isValue\":\"InfoTable__grid__cell--isValue___e825F\",\"grid__cell--withoutPaddings\":\"InfoTable__grid__cell--withoutPaddings___QcaVc\",\"grid__cell--isRightNode\":\"InfoTable__grid__cell--isRightNode___sncQT\",\"grid__cell--isFlexContainer\":\"InfoTable__grid__cell--isFlexContainer___A62Tu\",\"grid__cell--isBold\":\"InfoTable__grid__cell--isBold___YoqlR\",\"grid__cell--isTrigger\":\"InfoTable__grid__cell--isTrigger___Ejkt5\",\"grid__cell--isEmpty\":\"InfoTable__grid__cell--isEmpty___h2VBk\",\"fadeIn\":\"InfoTable__fadeIn___p4Jnv\",\"blinking\":\"InfoTable__blinking___Rcyjc\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ShipperContractDetailsLayout.scss';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport BaseShipperContractDetailsLayout from 'common/layouts/BaseShipperContractDetailsLayout/BaseShipperContractDetailsLayout';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    partnerId: PartnerIdT;\n    partnerType: PartnerTypeEnum;\n    contractId: ShipperContractIdT;\n};\n\nconst ShipperContractDetailsLayout: React.FC<PropsT> = React.memo((props) => {\n    const { partnerId, partnerType, contractId } = props;\n\n    return (\n        <ContentMargins className={cx('inner')}>\n            <BaseShipperContractDetailsLayout\n                partnerId={partnerId}\n                partnerType={partnerType}\n                contractId={contractId}\n                isAllowEditing\n            />\n        </ContentMargins>\n    );\n});\n\nexport default ShipperContractDetailsLayout;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"RevokedPartnerShipperContractCard__inner___KTJuL\",\"fadeIn\":\"RevokedPartnerShipperContractCard__fadeIn___e7PD6\",\"blinking\":\"RevokedPartnerShipperContractCard__blinking___XmpnO\"};","import { isNonNil } from 'common/utils';\n\ntype EntityPaperShapeT = {\n    id?: PaperIdT | null | undefined;\n};\n\ntype OptimisticPaperShapeT = {\n    afterAttachId: PaperIdT | null;\n};\n\nexport function getVisibleOptimisticPapers<T extends EntityPaperShapeT, O extends OptimisticPaperShapeT>(params: {\n    optimisticPapers: Array<O> | null | undefined;\n    entityPapers: Array<T> | null | undefined;\n}): Array<O> {\n    const { optimisticPapers, entityPapers } = params;\n\n    const ids = entityPapers?.map((paper) => paper.id).filter(isNonNil) || [];\n    const attachedPaperIdSet = new Set(ids);\n\n    return (\n        optimisticPapers?.filter(\n            (optimisticPaper) =>\n                !optimisticPaper.afterAttachId || !attachedPaperIdSet.has(optimisticPaper.afterAttachId),\n        ) || []\n    );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"title\":\"DriversAssignmentForm__title___KuxbW\",\"form\":\"DriversAssignmentForm__form___hP57K\",\"actions\":\"DriversAssignmentForm__actions___wdlYp\",\"sub-actions\":\"DriversAssignmentForm__sub-actions___xm3Rd\",\"action--clear-assets\":\"DriversAssignmentForm__action--clear-assets___Y2bXb\",\"action--reassign-cancel\":\"DriversAssignmentForm__action--reassign-cancel___aiibw\",\"action--reassign\":\"DriversAssignmentForm__action--reassign___FB4V3\",\"action--assign-cancel\":\"DriversAssignmentForm__action--assign-cancel___M_bl9\",\"action--assign\":\"DriversAssignmentForm__action--assign___mKvEu\",\"fadeIn\":\"DriversAssignmentForm__fadeIn___yizCw\",\"blinking\":\"DriversAssignmentForm__blinking___HQ1oW\"};","import * as React from 'react';\n\nimport styles from './RouteSidebarSkeleton.scss';\nimport classNames from 'classnames/bind';\n\nexport type PropsT = {};\n\nconst cx = classNames.bind(styles);\n\nconst RouteSidebarSkeleton: React.FC<PropsT> = React.memo(() => {\n    return (\n        <>\n            <div className={cx('skeleton__box', 'skeleton__box--first')} />\n            <div className={cx('skeleton__box', 'skeleton__box--secondary')} />\n            <div className={cx('skeleton__box', 'skeleton__box--first')} />\n            <div className={cx('skeleton__box', 'skeleton__box--secondary')} />\n        </>\n    );\n});\n\nexport default RouteSidebarSkeleton;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { fetchTimeZones, fetchTimeZonesBegin, fetchTimeZonesError, fetchTimeZonesSuccess } from './slice';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { selectTimeZonesRequest } from './selectors';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\n\nfunction* fetchTimeZonesSaga(): WrapGeneratorT<void> {\n    const requestStatus: ReturnType<typeof selectTimeZonesRequest> = yield select(selectTimeZonesRequest);\n\n    const isNeedRequest = checkNeedRequest(requestStatus);\n    if (!isNeedRequest) {\n        return;\n    }\n\n    yield put(fetchTimeZonesBegin());\n\n    const [error, response]: ReturnApiT<typeof commonTranziitApi.getTimeZones> = yield commonTranziitApi.getTimeZones();\n    if (error) {\n        yield put(fetchTimeZonesError({ error }));\n        return;\n    }\n\n    yield put(fetchTimeZonesSuccess({ timeZones: response || [] }));\n}\n\nfunction* timeZonesSaga(): WrapGeneratorT<void> {\n    yield takeEvery([fetchTimeZones.type], fetchTimeZonesSaga);\n}\n\nexport default timeZonesSaga;\n","export enum FieldsEnum {\n    minimalShipmentCost = 'MINIMAL_COST_FOR_SHIPMENT',\n    driverSalaryPerHour = 'DRIVER_SALARY_PER_HOUR',\n    minimalCostForTruck = 'MINIMAL_COST_FOR_TRUCK',\n    minimalCostForTrailer = 'MINIMAL_COST_FOR_TRAILER',\n    layoverCostPerHour = 'COST_PER_ONE_HOUR_LAYOVER',\n    layoverCostPerDay = 'COST_PER_ONE_DAY_LAYOVER',\n    layoverFreeHours = 'LAYOVER_FREE_HOURS',\n    urgentOverPrice = 'URGENT_OVERPRICE',\n    overPriceForEveryAdditionalStop = 'OVERPRICE_FOR_EVERY_ADDITIONAL_STOP',\n    timeSlotAppointmentCost = 'TIME_SLOT_APPOINTMENT_COST',\n    costPerGreenShipment = 'COST_PER_GREEN_SHIPMENT',\n    tranziitServiceFeeFixedMode = 'TRANZIIT_SERVICE_FEE_FIXED_MODE',\n    tranziitServiceFeePercent = 'TRANZIIT_SERVICE_FEE_PERCENT',\n    tranziitServiceFeeFixed = 'TRANZIIT_SERVICE_FEE_FIXED',\n    pricingStrategy = 'PRICING_STRATEGY',\n    truckConsumption = 'TRUCK_CONSUMPTION',\n    reeferConsumption = 'REEFER_CONSUMPTION',\n    usePeriodicRulesForMonths = 'use-periodic-rules-for-months',\n    usePeriodicRulesForWeekdays = 'use-periodic-rules-for-weekdays',\n    rateMatrixSpread = 'RATE_MATRIX_SPREAD',\n    hvoPricePercent = 'HVO_PRICE_PERCENT',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.minimalShipmentCost]: string;\n    [FieldsEnum.driverSalaryPerHour]: string;\n    [FieldsEnum.minimalCostForTruck]: string;\n    [FieldsEnum.minimalCostForTrailer]: string;\n    [FieldsEnum.layoverCostPerHour]: string;\n    [FieldsEnum.layoverCostPerDay]: string;\n    [FieldsEnum.layoverFreeHours]: string;\n    [FieldsEnum.urgentOverPrice]: string;\n    [FieldsEnum.overPriceForEveryAdditionalStop]: string;\n    [FieldsEnum.timeSlotAppointmentCost]: string;\n    [FieldsEnum.costPerGreenShipment]: string;\n    [FieldsEnum.tranziitServiceFeeFixedMode]: string;\n    [FieldsEnum.tranziitServiceFeePercent]: string;\n    [FieldsEnum.tranziitServiceFeeFixed]: string;\n    [FieldsEnum.pricingStrategy]: string;\n    [FieldsEnum.truckConsumption]: string;\n    [FieldsEnum.reeferConsumption]: string;\n    [FieldsEnum.rateMatrixSpread]: string;\n    [FieldsEnum.usePeriodicRulesForMonths]: boolean;\n    [FieldsEnum.usePeriodicRulesForWeekdays]: boolean;\n    [FieldsEnum.hvoPricePercent]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import {\n    FETCH_USER_REQUEST,\n    FETCH_USER_REQUEST_BEGIN,\n    FETCH_USER_REQUEST_ERROR,\n    FETCH_USER_REQUEST_SUCCESS,\n    FetchUserActionT,\n    FetchUserBeginActionT,\n    FetchUserErrorActionT,\n    FetchUserSuccessActionT,\n    PATCH_USER_REQUEST,\n    PATCH_USER_REQUEST_BEGIN,\n    PATCH_USER_REQUEST_ERROR,\n    PATCH_USER_REQUEST_SUCCESS,\n    PatchUserActionT,\n    PatchUserBeginActionT,\n    PatchUserErrorActionT,\n    PatchUserSuccessActionT,\n} from './types';\n\nimport { UserChangesT, UserT } from './models';\nimport { ApiUserT, ApiUserUpdateT } from 'common/utils/api/models';\nimport { AuthUserT } from 'common/utils/api/auth/base-auth-service';\n\nexport const fetchUser = (): FetchUserActionT => ({\n    type: FETCH_USER_REQUEST,\n});\n\nexport const fetchUserBegin = (): FetchUserBeginActionT => ({\n    type: FETCH_USER_REQUEST_BEGIN,\n});\n\nexport const fetchUserSuccess = (user: ApiUserT): FetchUserSuccessActionT => ({\n    type: FETCH_USER_REQUEST_SUCCESS,\n    currentUser: user,\n});\n\nexport const fetchUserError = (error: Error): FetchUserErrorActionT => ({\n    type: FETCH_USER_REQUEST_ERROR,\n    error,\n});\n\nexport const patchUser = (user: UserT | null, authUser: AuthUserT | null, changes: UserChangesT): PatchUserActionT => ({\n    type: PATCH_USER_REQUEST,\n    user,\n    authUser,\n    changes,\n});\n\nexport const patchUserBegin = (): PatchUserBeginActionT => ({\n    type: PATCH_USER_REQUEST_BEGIN,\n});\n\nexport const patchUserSuccess = (currentUser: UserT, currentUserUpdate: ApiUserUpdateT): PatchUserSuccessActionT => ({\n    type: PATCH_USER_REQUEST_SUCCESS,\n    currentUser,\n    currentUserUpdate,\n});\n\nexport const patchUserError = (error: Error): PatchUserErrorActionT => ({\n    type: PATCH_USER_REQUEST_ERROR,\n    error,\n});\n","import React from 'react';\nimport { SyncShipmentDetailsFormMapStateContextValueT } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/hooks/usy-sync-map-state';\n\nconst SyncShipmentDetailsFormMapStateContext = React.createContext<SyncShipmentDetailsFormMapStateContextValueT>({\n    isMapInitialized: false,\n    setIsMapInitialized: () => {\n        // nothing\n    },\n    editingRoutePointIndex: null,\n    setEditingRoutePointIndex: () => {\n        // nothing\n    },\n    syncMapSettings: null,\n    setSyncMapSettings: () => {\n        // nothing\n    },\n    editingRoutePointErrorsIndexes: [],\n    setHasEditingRoutePointErrorIndexes: () => {\n        // nothing\n    },\n    hasEditingRoutePointError: false,\n    initialBoundingBox: null,\n    setInitialBoundingBox: () => {\n        // nothing\n    },\n});\n\nexport { SyncShipmentDetailsFormMapStateContext };\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"ExpireSoonPartnerShipperLaneContractCard__inner___zFUmF\",\"fadeIn\":\"ExpireSoonPartnerShipperLaneContractCard__fadeIn___jsBkO\",\"blinking\":\"ExpireSoonPartnerShipperLaneContractCard__blinking___czEDn\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './BidsCountCell.scss';\n\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { useTranslation } from 'react-i18next';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport isNumber from 'lodash/isNumber';\n\ntype PropsT = {\n    numberOfNewBids: number | null | undefined;\n    numberOfReadBids: number | null | undefined;\n    numberOfSentBids: number | null | undefined;\n};\n\nconst cx = classNames.bind(styles);\n\nconst BidsCountCell: React.FC<PropsT> = React.memo((props) => {\n    const { numberOfNewBids, numberOfReadBids, numberOfSentBids } = props;\n\n    const { t } = useTranslation();\n\n    const renderBid = ({\n        count,\n        placeholder,\n        theme,\n        isShowPlusSign,\n    }: {\n        count: number | null | undefined;\n        placeholder: React.ReactNode;\n        theme: PillLabelThemeEnum;\n        isShowPlusSign?: boolean;\n    }): React.ReactNode => {\n        if (!isNumber(count)) {\n            return null;\n        }\n\n        return (\n            <Tooltip\n                className={cx('tooltip')}\n                position={TooltipPositionEnum.topCenter}\n                theme={TooltipThemeEnum.black}\n                tooltipNode={\n                    placeholder ? (\n                        <TooltipContent className={cx('tooltip-content')} theme={TooltipContentThemeEnum.black}>\n                            {placeholder}\n                        </TooltipContent>\n                    ) : null\n                }\n            >\n                {(isShow, childrenClassName) => (\n                    <PillLabel isSymmetrical theme={theme} className={childrenClassName}>\n                        {isShowPlusSign ? '+' : ''}\n                        {count}\n                    </PillLabel>\n                )}\n            </Tooltip>\n        );\n    };\n\n    return (\n        <div className={cx('wrap')}>\n            {renderBid({\n                count: numberOfSentBids,\n                placeholder: t('spot-requests.list.table.bidCounts.sent'),\n                theme: PillLabelThemeEnum.grey,\n            })}\n            {numberOfReadBids\n                ? renderBid({\n                      count: numberOfReadBids,\n                      placeholder: t('spot-requests.list.table.bidCounts.accepted'),\n                      theme: PillLabelThemeEnum.slate,\n                  })\n                : null}\n            {numberOfNewBids\n                ? renderBid({\n                      count: numberOfNewBids,\n                      isShowPlusSign: true,\n                      placeholder: t('spot-requests.list.table.bidCounts.new'),\n                      theme: PillLabelThemeEnum.orange,\n                  })\n                : null}\n        </div>\n    );\n});\n\nexport default BidsCountCell;\n","import { useContext } from 'react';\nimport PartnerPermissionsContext, { PartnerPermissionsContextT } from 'common/contexts/partner-permission-context';\n\nconst usePartnerPermissionsContext = (): PartnerPermissionsContextT => {\n    return useContext(PartnerPermissionsContext);\n};\n\nexport default usePartnerPermissionsContext;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ApiTimeZoneInfoT } from 'common/utils/api/models';\nimport { selectTimeZones, selectTimeZonesRequest } from 'common/store/time-zones/selectors';\nimport { fetchTimeZones } from 'common/store/time-zones/slice';\nimport ControlLoaderIcon, { ControlLoaderIconProps } from 'common/icons/ControlLoaderIcon';\n\ntype OptionT = ApiTimeZoneInfoT;\ntype ValueT = OptionT['timeZone'] | null;\n\ntype PropsT = {\n    onChange: (timeZoneId: ValueT | null) => void;\n    value?: ValueT;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    className?: string;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    isDisabled?: boolean;\n    hasChanges?: boolean;\n    onBlur: () => void;\n    onFocus: () => void;\n    placeholder?: string;\n};\n\nconst TimeZoneDropdown: React.FC<PropsT> = React.memo((props) => {\n    const {\n        onChange,\n        value,\n        overlayPosition,\n        className,\n        hasError,\n        hasWarning,\n        isDisabled,\n        hasChanges,\n        onBlur,\n        onFocus,\n        placeholder,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const timeZones = useSelector(selectTimeZones);\n    const fetchRequest = useSelector(selectTimeZonesRequest);\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchTimeZones());\n    }, [dispatch]);\n\n    const renderOption = (option?: OptionT, placeholder?: string): React.ReactNode | null => {\n        if (!option) {\n            return placeholder;\n        }\n\n        return (\n            <span>\n                {option.timeZone || ''} {Boolean(option.cities?.length) && <span>({option.cities?.join(', ')})</span>}\n            </span>\n        );\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option?.timeZone || null;\n\n    return (\n        <DropdownInput<OptionT, ValueT>\n            className={className}\n            selectedValue={value}\n            testSelector=\"time-zone\"\n            placeholder={placeholder || t('common:time-zone-selector.placeholder')}\n            options={timeZones || []}\n            onSelect={onChange}\n            isDisabled={fetchRequest.loading || isDisabled}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            renderOption={renderOption}\n            getOptionValue={getOptionValue}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            renderRightIcon={() =>\n                fetchRequest.loading ? <ControlLoaderIcon {...ControlLoaderIconProps.getFetchDataProps()} /> : null\n            }\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n        />\n    );\n});\n\nexport default TimeZoneDropdown;\n","import {\n    CompanyTransportOrdersStateT,\n    FETCH_ORDERS_PAGE_REQUEST_BEGIN,\n    FETCH_ORDERS_PAGE_REQUEST_ERROR,\n    FETCH_ORDERS_PAGE_REQUEST_SUCCESS,\n    RESET_ORDERS,\n    TransportOrdersActionT,\n    TransportOrdersStateT,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { pageBeginReducer, pageSuccessReducer, resetPagesCacheReducer } from 'common/utils/pagination/reducers';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nexport const initialCompanyTransportOrdersState: CompanyTransportOrdersStateT = {\n    pages: [],\n    query: null,\n    total: null,\n    byId: {},\n};\n\nconst initialState: TransportOrdersStateT = {};\n\nexport default (\n    state = initialState,\n    action: TransportOrdersActionT | DestroySessionActionT,\n): TransportOrdersStateT => {\n    switch (action.type) {\n        case FETCH_ORDERS_PAGE_REQUEST_BEGIN: {\n            const { pageNumber, query, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTransportOrdersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    ...pageBeginReducer(companyState, pageNumber, query),\n                },\n            };\n        }\n        case FETCH_ORDERS_PAGE_REQUEST_SUCCESS: {\n            const { query, pageNumber, pageResponse, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTransportOrdersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    ...pageSuccessReducer(companyState, pageNumber, query, pageResponse),\n                },\n            };\n        }\n        case FETCH_ORDERS_PAGE_REQUEST_ERROR: {\n            const { error, pageNumber, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTransportOrdersState;\n\n            const newPages = [...companyState.pages];\n            newPages.splice(pageNumber, 1, {\n                ...companyState.pages[pageNumber],\n                requestStatus: requestStatus.setError(error),\n            });\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    pages: newPages,\n                },\n            };\n        }\n        case RESET_ORDERS: {\n            const { companyId, mutationListOptions } = action;\n\n            const companyTransportOrdersState = state[companyId] || initialCompanyTransportOrdersState;\n\n            return {\n                ...initialState,\n                [companyId]: {\n                    ...initialCompanyTransportOrdersState,\n                    ...resetPagesCacheReducer(\n                        initialCompanyTransportOrdersState,\n                        companyTransportOrdersState,\n                        mutationListOptions,\n                    ),\n                },\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return {\n                ...initialState,\n            };\n        }\n        default:\n            return state;\n    }\n};\n","import { UNIT } from 'common/constants';\n\nexport const LEFT_PADDING = 17.5 * UNIT;\nexport const RIGHT_PADDING = 2.5 * UNIT;\nexport const EVENT_WIDTH = 4 * UNIT;\nexport const EVENT_PADDING = 2.5 * UNIT;\nexport const EVENTS_LEVEL_WIDTH = EVENT_WIDTH + 2 * EVENT_PADDING;\n\nexport const DATA_TIMELINE_ITEM_SELECTOR = 'data-timeline-item-id';\n","import React from 'react';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\n\nimport { ApiShipperContractLaneStatusT, ShipperContractLaneStatusEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\nimport { SHIPPER_CONTRACT_LANE_STATUS_T_MAP } from 'common/components/status/ShipperContractLaneStatus/ShipperContractLaneStatus';\nimport DropdownControl, {\n    DropdownControlOptionT,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport ArrowsIcon from 'common/icons/ArrowsIcon';\nimport { statusColorMap } from 'common/components/status-colored/ShipperContractLaneColoredStatus/ShipperContractLaneColoredStatus';\nimport { useSelector } from 'react-redux';\nimport { selectProfileType } from 'common/store/auth/selectors';\nimport HollowCircleIcon from 'common/icons/HollowCircleIcon';\n\ntype ValueT = ApiShipperContractLaneStatusT | null;\n\ntype PropsT = {\n    className?: string;\n    value: ValueT;\n    onChange: (value: ValueT) => void;\n    testSelector?: string;\n};\n\nconst ShipperContractLaneStatusDropdownControl: React.FC<PropsT> = React.memo((props) => {\n    const { className, value, onChange, testSelector } = props;\n\n    const { t } = useTranslation();\n\n    const profileTypeEnum = useSelector(selectProfileType);\n\n    const options = React.useMemo((): DropdownControlOptionT[] => {\n        return [\n            null,\n            ShipperContractLaneStatusEnum.active,\n            ShipperContractLaneStatusEnum.expired,\n            ShipperContractLaneStatusEnum.completed,\n            ShipperContractLaneStatusEnum.revoked,\n        ].map((status: ApiShipperContractLaneStatusT | null): DropdownControlOptionT => {\n            const isSelected = value === status;\n            if (status === null) {\n                return {\n                    label: (\n                        <DropdownControlOptionLabel\n                            isSelected={isSelected}\n                            label={t('common:shipper-contract-lane-status.all')}\n                        />\n                    ),\n                    onSelect: () => {\n                        onChange(null);\n                    },\n                };\n            }\n\n            return {\n                label: (\n                    <DropdownControlOptionLabel\n                        icon={<HollowCircleIcon borderColor={statusColorMap[profileTypeEnum]?.[status]} />}\n                        isSelected={isSelected}\n                        label={t(SHIPPER_CONTRACT_LANE_STATUS_T_MAP[status])}\n                    />\n                ),\n                onSelect: () => {\n                    onChange(status);\n                },\n            };\n        });\n    }, [t, value, onChange, profileTypeEnum]);\n\n    return (\n        <DropdownControl\n            className={className}\n            options={options}\n            testSelector={`${testSelector}_more-statuses`}\n            renderTrigger={(isActive, onClick) => (\n                <TransparentTrigger\n                    isPressed={isActive}\n                    onClick={onClick}\n                    rightIcon={<ArrowsIcon />}\n                    label={\n                        value\n                            ? t(SHIPPER_CONTRACT_LANE_STATUS_T_MAP[value])\n                            : t('common:shipper-contract-lane-status.all')\n                    }\n                    reflectionTheme={ReflectionThemeEnum.light}\n                    testSelector={`${testSelector}-trigger`}\n                />\n            )}\n            overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n        />\n    );\n});\n\nexport default ShipperContractLaneStatusDropdownControl;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    fillColor: StyleGuideColorsEnum;\n};\n\nconst SearchIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, className } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 18 18\" className={className}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M.9.9h16.2v16.2H.9z\" />\n                <path\n                    fill={fillColor}\n                    d=\"M11.363 10.35h-.534l-.189-.182a4.387 4.387 0 10-.472.472l.182.19v.533l3.375 3.368 1.006-1.006-3.368-3.375zm-4.05 0a3.034 3.034 0 01-3.038-3.037 3.034 3.034 0 013.037-3.038 3.034 3.034 0 013.038 3.037 3.034 3.034 0 01-3.037 3.038z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nSearchIcon.displayName = 'SearchIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n};\n\nexport { storyProps };\nexport default SearchIcon;\n\nexport const SearchIconProps = {\n    getControlProps: ({\n        isDisabled,\n        isFocused,\n        hasError,\n        hasWarning,\n        hasSuccess,\n        hasValue,\n    }: {\n        isDisabled?: boolean;\n        isFocused?: boolean;\n        hasError?: boolean;\n        hasWarning?: boolean;\n        hasSuccess?: boolean;\n        hasValue?: boolean;\n    }): PropsT => {\n        if (hasError) {\n            return {\n                fillColor: StyleGuideColorsEnum.tomatoRed,\n            };\n        }\n\n        if (hasWarning) {\n            return {\n                fillColor: StyleGuideColorsEnum.orange,\n            };\n        }\n\n        if (hasSuccess) {\n            return {\n                fillColor: StyleGuideColorsEnum.brandAccent,\n            };\n        }\n\n        if (isDisabled) {\n            return {\n                fillColor: StyleGuideColorsEnum.slate,\n            };\n        }\n\n        return {\n            fillColor: hasValue || isFocused ? StyleGuideColorsEnum.brandDark : StyleGuideColorsEnum.gray,\n        };\n    },\n};\n","import * as React from 'react';\nimport { checkValuesChanges } from 'common/utils/form-helpers';\n\ntype FormValueT = object | number | string | boolean | null | undefined | Array<number> | Array<string>;\ntype FormValuesT = Record<string, FormValueT>;\n\nexport const createUseWatchAnyFieldValueChanges =\n    <T extends FormValuesT>(fields: Array<keyof T>) =>\n    (initValues: T, values: T): boolean => {\n        const hasChanges = React.useMemo(() => {\n            return checkValuesChanges(fields, initValues, values);\n            // eslint-disable-next-line react-hooks/exhaustive-deps\n        }, [fields, initValues, values]);\n\n        return hasChanges;\n    };\n","import React, { CSSProperties } from 'react';\n\nimport classNames from 'classnames/bind';\nimport {\n    useFloating,\n    autoUpdate,\n    offset,\n    flip,\n    shift,\n    arrow,\n    useHover,\n    useFocus,\n    useDismiss,\n    useInteractions,\n    safePolygon,\n    FloatingArrow,\n    FloatingPortal,\n} from '@floating-ui/react';\n\nimport { TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\n\nimport styles from './Flag.scss';\nimport { FlagT } from '../models';\nimport { DATA_TIMELINE_ITEM_SELECTOR } from '../constants';\nimport { UNIT, StyleGuideColorsEnum } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\nconst MIN_HEIGHT_PX = 4 * UNIT;\n\nconst TOOLTIP_HOVER_DELAY_MS = 300;\nconst TOOLTIP_CLOSE_DELAY_MS = 3000;\n\nconst TOOLTIP_ARROW_FILL: Record<TooltipThemeEnum, StyleGuideColorsEnum> = {\n    [TooltipThemeEnum.white]: StyleGuideColorsEnum.white,\n    [TooltipThemeEnum.black]: StyleGuideColorsEnum.charcoal,\n};\n\nexport type FlagPropsT<T> = {\n    start: number;\n    getHeight: (height: number) => number;\n    flag: FlagT<T>;\n    style?: CSSProperties;\n};\n\nconst Flag = <T = unknown,>(props: FlagPropsT<T>) => {\n    const { start, flag, getHeight, style } = props;\n\n    const { renderTooltip, tooltipTheme = TooltipThemeEnum.white } = flag;\n\n    const [isShowLabel, setShowLabel] = React.useState<boolean>(true);\n    const [isTooltipOpen, setTooltipOpen] = React.useState(false);\n\n    const wrapRef = React.useRef<HTMLDivElement>();\n    const labelRef = React.createRef<HTMLDivElement>();\n    const tooltipArrowRef = React.useRef<SVGSVGElement | null>(null);\n\n    const hasFloatingTooltip = Boolean(renderTooltip);\n\n    const { refs, floatingStyles, context } = useFloating({\n        open: hasFloatingTooltip && isTooltipOpen,\n        onOpenChange: setTooltipOpen,\n        placement: 'top',\n        middleware: [\n            offset(10),\n            flip({ padding: 2 * UNIT }),\n            shift({ padding: 2 * UNIT }),\n            arrow({ element: tooltipArrowRef }),\n        ],\n        strategy: 'fixed',\n        transform: false,\n        whileElementsMounted: autoUpdate,\n    });\n\n    const hover = useHover(context, {\n        enabled: hasFloatingTooltip,\n        delay: { open: TOOLTIP_HOVER_DELAY_MS, close: TOOLTIP_CLOSE_DELAY_MS },\n        handleClose: safePolygon({ buffer: 1 }),\n    });\n\n    const focus = useFocus(context, { enabled: hasFloatingTooltip });\n\n    const dismiss = useDismiss(context, { enabled: hasFloatingTooltip });\n\n    const { getReferenceProps, getFloatingProps } = useInteractions([hover, focus, dismiss]);\n\n    React.useEffect(() => {\n        if (!hasFloatingTooltip) {\n            setTooltipOpen(false);\n        }\n    }, [hasFloatingTooltip]);\n\n    const setFloatingReference = refs.setReference;\n\n    const setRef = React.useCallback(\n        (node: HTMLDivElement | null): void => {\n            wrapRef.current = node ?? undefined;\n            setFloatingReference(node);\n        },\n        [setFloatingReference],\n    );\n\n    React.useEffect(() => {\n        if (!labelRef.current || !wrapRef.current) {\n            return;\n        }\n\n        const isShowLabel = labelRef.current.offsetHeight < wrapRef.current.offsetHeight;\n        setShowLabel(isShowLabel);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [wrapRef.current, labelRef.current]);\n\n    const durationPx = getHeight(flag.end - flag.start);\n    const heightPx = Math.max(durationPx, MIN_HEIGHT_PX);\n\n    return (\n        <>\n            <div\n                className={cx('flag', {\n                    [`flag--theme-${flag.theme}`]: true,\n                })}\n                style={{\n                    top: `${getHeight(flag.start - start)}px`,\n                    height: `${heightPx}px`,\n                    ...style,\n                }}\n                ref={setRef}\n                title={hasFloatingTooltip ? undefined : flag.label}\n                {...{ [DATA_TIMELINE_ITEM_SELECTOR]: flag.id }}\n                {...(hasFloatingTooltip ? getReferenceProps() : {})}\n            >\n                {isShowLabel && (\n                    <div className={cx('flag__label-wrap')}>\n                        {flag.iconNode && <div className={cx('flag__icon')}>{flag.iconNode}</div>}\n                        <div\n                            ref={labelRef}\n                            className={cx('flag__label', {\n                                [`flag__label--theme-${flag.theme}`]: true,\n                            })}\n                        >\n                            {flag.label}\n                        </div>\n                    </div>\n                )}\n            </div>\n            {hasFloatingTooltip && isTooltipOpen && (\n                <FloatingPortal>\n                    <div\n                        ref={refs.setFloating}\n                        style={floatingStyles}\n                        className={cx('tooltip')}\n                        {...getFloatingProps({\n                            onClick(event: React.MouseEvent<HTMLDivElement>) {\n                                event.stopPropagation();\n                            },\n                        })}\n                    >\n                        <FloatingArrow\n                            fill={TOOLTIP_ARROW_FILL[tooltipTheme]}\n                            ref={tooltipArrowRef}\n                            context={context}\n                        />\n                        <div\n                            className={cx('tooltip__inner', {\n                                [`tooltip__inner--theme-${tooltipTheme}`]: true,\n                            })}\n                        >\n                            {renderTooltip?.(flag.data)}\n                        </div>\n                    </div>\n                </FloatingPortal>\n            )}\n        </>\n    );\n};\n\nexport { Flag };\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"ControlsCell__fadeIn___oWuvL\",\"blinking\":\"ControlsCell__blinking___cmYJg\"};","import {\n    CONTINUE_SIGN_UP_REQUEST,\n    ContinueSignUpActionT,\n    DESTROY_SESSION,\n    DestroySessionActionT,\n    EMAIL_VERIFICATION_REQUEST,\n    EMAIL_VERIFICATION_REQUEST_BEGIN,\n    EMAIL_VERIFICATION_REQUEST_ERROR,\n    EMAIL_VERIFICATION_REQUEST_SUCCESS,\n    EmailVerificationActionT,\n    EmailVerificationBeginActionT,\n    EmailVerificationErrorActionT,\n    EmailVerificationSuccessActionT,\n    RESET_PASSWORD_REQUEST,\n    RESET_PASSWORD_REQUEST_BEGIN,\n    RESET_PASSWORD_REQUEST_ERROR,\n    RESET_PASSWORD_REQUEST_SUCCESS,\n    RESET_USER,\n    ResetPasswordActionT,\n    ResetPasswordBeginActionT,\n    ResetPasswordErrorActionT,\n    ResetPasswordSuccessActionT,\n    ResetUserActionT,\n    SET_USER,\n    SetUserActionT,\n    SIGN_IN_REQUEST,\n    SIGN_IN_REQUEST_BEGIN,\n    SIGN_IN_REQUEST_ERROR,\n    SIGN_IN_REQUEST_SUCCESS,\n    SIGN_OUT_REQUEST,\n    SIGN_OUT_REQUEST_BEGIN,\n    SIGN_OUT_REQUEST_ERROR,\n    SIGN_OUT_REQUEST_SUCCESS,\n    SIGN_UP_REQUEST,\n    SIGN_UP_REQUEST_BEGIN,\n    SIGN_UP_REQUEST_ERROR,\n    SIGN_UP_REQUEST_SUCCESS,\n    SignInActionT,\n    SignInBeginActionT,\n    SignInErrorActionT,\n    SignInSuccessActionT,\n    SignOutActionT,\n    SignOutBeginActionT,\n    SignOutErrorActionT,\n    SignOutSuccessActionT,\n    SignUpActionT,\n    SignUpBeginActionT,\n    SignUpErrorActionT,\n    SignUpSuccessActionT,\n    UPDATE_PASSWORD_REQUEST,\n    UPDATE_PASSWORD_REQUEST_BEGIN,\n    UPDATE_PASSWORD_REQUEST_ERROR,\n    UPDATE_PASSWORD_REQUEST_SUCCESS,\n    UpdatePasswordActionT,\n    UpdatePasswordBeginActionT,\n    UpdatePasswordErrorActionT,\n    UpdatePasswordSuccessActionT,\n} from './types';\nimport { SignUpParamsT } from 'common/store/auth/models';\nimport { AuthUserClaimsT, AuthUserT } from 'common/utils/api/auth/base-auth-service';\n\nexport const signIn = (email: string, password: string, returnUrl: string | null): SignInActionT => ({\n    type: SIGN_IN_REQUEST,\n    email,\n    password,\n    returnUrl,\n});\n\nexport const signInBegin = (): SignInBeginActionT => ({\n    type: SIGN_IN_REQUEST_BEGIN,\n});\n\nexport const signInSuccess = (user: AuthUserT, userClaims: AuthUserClaimsT | null): SignInSuccessActionT => ({\n    type: SIGN_IN_REQUEST_SUCCESS,\n    user,\n    userClaims,\n});\n\nexport const signInError = (error: Error): SignInErrorActionT => ({\n    type: SIGN_IN_REQUEST_ERROR,\n    error,\n});\n\nexport const resetPassword = (email: string): ResetPasswordActionT => ({\n    type: RESET_PASSWORD_REQUEST,\n    email,\n});\n\nexport const resetPasswordBegin = (): ResetPasswordBeginActionT => ({\n    type: RESET_PASSWORD_REQUEST_BEGIN,\n});\n\nexport const resetPasswordSuccess = (): ResetPasswordSuccessActionT => ({\n    type: RESET_PASSWORD_REQUEST_SUCCESS,\n});\n\nexport const resetPasswordError = (error: Error): ResetPasswordErrorActionT => ({\n    type: RESET_PASSWORD_REQUEST_ERROR,\n    error,\n});\n\nexport const updatePassword = (oobCode: string, password: string): UpdatePasswordActionT => ({\n    type: UPDATE_PASSWORD_REQUEST,\n    oobCode,\n    password,\n});\n\nexport const updatePasswordBegin = (): UpdatePasswordBeginActionT => ({\n    type: UPDATE_PASSWORD_REQUEST_BEGIN,\n});\n\nexport const updatePasswordSuccess = (): UpdatePasswordSuccessActionT => ({\n    type: UPDATE_PASSWORD_REQUEST_SUCCESS,\n});\n\nexport const updatePasswordError = (error: Error): UpdatePasswordErrorActionT => ({\n    type: UPDATE_PASSWORD_REQUEST_ERROR,\n    error,\n});\n\nexport const continueSignUp = (\n    firstName: string,\n    lastName: string,\n    phoneNumber: string,\n    password: string,\n    oobCode: string | null,\n    email: string | null,\n    returnUrl: string | null,\n): ContinueSignUpActionT => ({\n    type: CONTINUE_SIGN_UP_REQUEST,\n    firstName,\n    lastName,\n    phoneNumber,\n    password,\n    oobCode,\n    email,\n    returnUrl,\n});\n\nexport const signUp = (params: SignUpParamsT): SignUpActionT => ({\n    type: SIGN_UP_REQUEST,\n    params,\n});\n\nexport const signUpBegin = (): SignUpBeginActionT => ({\n    type: SIGN_UP_REQUEST_BEGIN,\n});\n\nexport const signUpSuccess = (): SignUpSuccessActionT => ({\n    type: SIGN_UP_REQUEST_SUCCESS,\n});\n\nexport const signUpError = (error: Error): SignUpErrorActionT => ({\n    type: SIGN_UP_REQUEST_ERROR,\n    error,\n});\n\nexport const setUser = (user: AuthUserT | null, userClaims: AuthUserClaimsT | null): SetUserActionT => ({\n    type: SET_USER,\n    user,\n    userClaims,\n});\n\nexport const resetUser = (): ResetUserActionT => ({\n    type: RESET_USER,\n});\n\nexport const signOut = (): SignOutActionT => ({\n    type: SIGN_OUT_REQUEST,\n});\n\nexport const signOutBegin = (): SignOutBeginActionT => ({\n    type: SIGN_OUT_REQUEST_BEGIN,\n});\n\nexport const signOutSuccess = (): SignOutSuccessActionT => ({\n    type: SIGN_OUT_REQUEST_SUCCESS,\n});\n\nexport const signOutError = (error: Error): SignOutErrorActionT => ({\n    type: SIGN_OUT_REQUEST_ERROR,\n    error,\n});\n\nexport const emailVerification = (code: string): EmailVerificationActionT => ({\n    type: EMAIL_VERIFICATION_REQUEST,\n    code,\n});\n\nexport const emailVerificationBegin = (): EmailVerificationBeginActionT => ({\n    type: EMAIL_VERIFICATION_REQUEST_BEGIN,\n});\n\nexport const emailVerificationSuccess = (): EmailVerificationSuccessActionT => ({\n    type: EMAIL_VERIFICATION_REQUEST_SUCCESS,\n});\n\nexport const emailVerificationError = (error: Error): EmailVerificationErrorActionT => ({\n    type: EMAIL_VERIFICATION_REQUEST_ERROR,\n    error,\n});\n\nexport const destroySession = (): DestroySessionActionT => ({\n    type: DESTROY_SESSION,\n});\n","import { logError } from 'common/utils/logger';\n\ntype AnyValuesT = any;\n\nclass ValuesStorage {\n    persistStorageDateKey: string;\n\n    constructor(formName: string) {\n        this.persistStorageDateKey = formName;\n    }\n\n    saveValues = (values: AnyValuesT): void => {\n        try {\n            const { persistStorageDateKey } = this;\n            localStorage.setItem(persistStorageDateKey, JSON.stringify(values));\n        } catch (error) {\n            logError('ValuesStorage saveValues', error);\n        }\n    };\n\n    getValues = (): AnyValuesT | null => {\n        try {\n            const { persistStorageDateKey } = this;\n\n            const rawValues = localStorage.getItem(persistStorageDateKey);\n            if (!rawValues) {\n                return null;\n            }\n\n            const parsedValues = JSON.parse(rawValues);\n\n            return parsedValues;\n        } catch (error) {\n            logError('ValuesStorage getValues', error);\n            return null;\n        }\n    };\n\n    reset = (): void => {\n        const { persistStorageDateKey } = this;\n        localStorage.removeItem(persistStorageDateKey);\n    };\n}\n\nexport default ValuesStorage;\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkIsPositiveNumberValue, checkNotEmpty } from 'common/utils/form-validators';\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, [FieldsEnum.totalPrice], values),\n        ...checkIsPositiveNumberValue(t, [FieldsEnum.totalPrice], values),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","import * as React from 'react';\nimport { useMemo } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './BaseShipperContractLanesLayout.scss';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ApiShipperContractLaneStatusT, ShipperContractLanesSortEnum } from 'common/utils/api/models';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { QueryFiltersKeysEnum, QueryFiltersT, QueryKeysEnum } from './query-models';\nimport { prepareFetchPageQuery } from './prepare-fetch-page-query';\nimport {\n    createJsonParams,\n    createPageNumberParam,\n    createSortParams,\n    PageSortT,\n    SortDirectionEnum,\n} from 'common/utils/query';\nimport SortDropdown, {\n    SortDropdownOptionT,\n    SortDropdownOverlayPositionEnum,\n} from 'common/components/Table/SortDropdown/SortDropdown';\nimport ListPageLayout from 'common/layouts/ListPage/ListPageLayout/ListPageLayout';\nimport ListPageHeaderLayout from 'common/layouts/ListPage/ListPageHeaderLayout/ListPageHeaderLayout';\nimport SearchControl from 'common/components/Table/SearchControl/SearchControl';\nimport TableMessage, { TableMessageIconsEnum } from 'common/components/Table/TableMessage/TableMessage';\nimport TableError from 'common/components/Table/TableError/TableError';\nimport StickyFooter from 'common/layouts/LeftMenuLayout/StickyFooter/StickyFooter';\nimport Pagination from 'common/components/Table/Pagination/Pagination';\nimport BaseShipperContractLanesTable from 'common/layouts/BaseShipperContractLanesLayout/BaseShipperContractLanesTable/BaseShipperContractLanesTable';\nimport { useQueryParams } from 'use-query-params';\nimport SelectedFilters from './SelectedFilters/SelectedFilters';\nimport noop from 'lodash/noop';\nimport { isNonNil } from 'common/utils';\nimport {\n    selectShipperContractLanesByIds,\n    selectShipperContractLanesPages,\n    selectShipperContractLanesTotal,\n} from 'common/store/shipper-contract-lanes/selectors';\nimport { fetchShipperContractLanesPage } from 'common/store/shipper-contract-lanes/slice';\nimport {\n    shipperContractLanesPaginationChannel,\n    shipperContractLanesRefreshChannel,\n} from 'common/store/shipper-contract-lanes/channels';\nimport { ShipperContractLanesTableRowT } from 'common/layouts/BaseShipperContractLanesLayout/BaseShipperContractLanesTable/models';\nimport ShipperContractLaneStatusDropdownControl from 'common/components/controls/ShipperContractLaneStatusDropdownControl/ShipperContractLaneStatusDropdownControl';\nimport FiltersTrigger from 'common/components/Table/FiltersTrigger/FiltersTrigger';\nimport FiltersSidebarContent from './FiltersSidebarContent/FiltersSidebarContent';\nimport SideBar from 'common/layouts/LeftMenuLayout/SideBar/SideBar';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport { selectShipperContractDetailsState } from 'common/store/shipper-contract-details/selectors';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport CalendarIcon from 'common/icons/CalendarIcon';\nimport { getSignedDayDiff } from 'common/utils/time';\nimport { MIN_VALID_FROM_VALID_TILL_DAYS } from 'common/layouts/CommonEditableShipperContractLaneDetailsLayout/EditShipperContractLaneSidebarContent/ShipperContractLaneEditForm/constants';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { checkNeedRenderEmptyState } from 'common/components/Table/utils/check-need-render-empty-state';\nimport { checkQueryFiltersKeys } from 'common/components/Table/utils/check-query-filters-keys';\nimport { logWarning } from 'common/utils/logger';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    partnerId: PartnerIdT | null;\n    contractId: ShipperContractIdT;\n\n    navigationTabs?: React.ReactNode;\n\n    onCreateShipperContractLane?: () => void;\n\n    onOpenShipperContractLaneDetails: (laneId: ShipperContractLaneIdT) => void;\n};\n\nconst BaseShipperContractLanesLayout: React.FC<PropsT> = React.memo((props) => {\n    const { navigationTabs, partnerId, contractId, onOpenShipperContractLaneDetails, onCreateShipperContractLane } =\n        props;\n\n    const { t } = useTranslation();\n\n    const [isShowFilters, triggerFilters] = React.useState<boolean>(false);\n    const showFilters = (): void => {\n        triggerFilters(true);\n    };\n    const hideFilters = (): void => {\n        triggerFilters(false);\n    };\n\n    const dispatch = useDispatch();\n\n    const permissions = useSelector(selectPermissions);\n\n    const contractDetailsState = useSelector(selectShipperContractDetailsState(contractId));\n    const contractDetails = contractDetailsState.data;\n\n    const lostDayDiff = useMemo((): number => {\n        const now = new Date();\n        if (!contractDetails?.validTill) {\n            return 0;\n        }\n\n        const dayDiff = getSignedDayDiff(contractDetails.validTill, now);\n        return dayDiff;\n    }, [contractDetails]);\n\n    const isShowContractExpirationAlert = !!contractDetails && lostDayDiff < MIN_VALID_FROM_VALID_TILL_DAYS;\n    const isAllowShowAddLaneTrigger = !!contractDetails && !isShowContractExpirationAlert;\n\n    const isAllowAddLane = !!onCreateShipperContractLane && permissions.canUploadShipperContracts;\n\n    const total = useSelector(selectShipperContractLanesTotal(partnerId, contractId));\n    const pages = useSelector(selectShipperContractLanesPages(partnerId, contractId));\n    const byId = useSelector(selectShipperContractLanesByIds(partnerId, contractId));\n\n    const [query, changeQuery] = useQueryParams({\n        [QueryKeysEnum.shipperContractLanesPage]: createPageNumberParam(),\n        [QueryKeysEnum.shipperContractLanesSort]: createSortParams<ShipperContractLanesSortEnum>({\n            value: ShipperContractLanesSortEnum.addedDate,\n            direction: SortDirectionEnum.DESC,\n        }),\n        [QueryKeysEnum.shipperContractLanesFilters]: createJsonParams<QueryFiltersT>({}),\n    });\n\n    const selectedSort = query[QueryKeysEnum.shipperContractLanesSort];\n    const pageNumber = query[QueryKeysEnum.shipperContractLanesPage];\n    const queryFilters = query[QueryKeysEnum.shipperContractLanesFilters];\n\n    const page = pages[pageNumber];\n    const { ids, requestStatus } = page || {};\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in documentVisibilityChangeHandler');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(\n            fetchShipperContractLanesPage({\n                contractId,\n                pageNumber,\n                query,\n                partnerId,\n                options: { isForceUpdate: false },\n            }),\n        );\n    }, [pageNumber, selectedSort, queryFilters, partnerId, contractId, dispatch]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const refreshPageHandler = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in refreshPageHandler');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(\n            fetchShipperContractLanesPage({\n                contractId,\n                pageNumber,\n                query,\n                partnerId,\n                options: { isForceUpdate: true },\n            }),\n        );\n    }, [pageNumber, selectedSort, queryFilters, partnerId, contractId, dispatch]);\n    useChannelSubscribe(shipperContractLanesRefreshChannel, refreshPageHandler);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleRefreshOnError');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(\n            fetchShipperContractLanesPage({\n                contractId,\n                pageNumber,\n                query,\n                partnerId,\n                options: { isForceUpdate: true },\n            }),\n        );\n    }, [pageNumber, selectedSort, queryFilters, partnerId, contractId, dispatch]);\n\n    const goToPage = React.useCallback(\n        (pageNumber: PageNumberT) => {\n            changeQuery({\n                [QueryKeysEnum.shipperContractLanesPage]: pageNumber,\n            });\n        },\n        [changeQuery],\n    );\n\n    const setPageHandler = React.useCallback(\n        ({ pageNumber }: InferChannelEventT<typeof shipperContractLanesPaginationChannel>) => {\n            goToPage(pageNumber);\n        },\n        [goToPage],\n    );\n    useChannelSubscribe(shipperContractLanesPaginationChannel, setPageHandler);\n\n    React.useEffect(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in BaseShipperContractLanesLayout useEffect');\n            return (): void => {};\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchShipperContractLanesPage({ pageNumber, query, partnerId, contractId }));\n\n        return (): void => {\n            // TODO reset\n        };\n    }, [dispatch, pageNumber, selectedSort, queryFilters, partnerId, contractId]);\n\n    const shipperContractLanesTableRows = React.useMemo((): Array<ShipperContractLanesTableRowT> => {\n        return (ids || []).map((id) => byId[id]).filter(isNonNil);\n    }, [ids, byId]);\n\n    const sortOptions: Array<SortDropdownOptionT<ShipperContractLanesSortEnum>> = React.useMemo(\n        () => [\n            {\n                label: t('common:shipper-contract-lanes.table.sorts.added-date'),\n                value: ShipperContractLanesSortEnum.addedDate,\n            },\n            {\n                label: t('common:shipper-contract-lanes.table.sorts.valid-till-date'),\n                value: ShipperContractLanesSortEnum.validTillDate,\n            },\n        ],\n        [t],\n    );\n\n    const handleSelectSort = (sort: PageSortT<ShipperContractLanesSortEnum>) => {\n        changeQuery({\n            [QueryKeysEnum.shipperContractLanesPage]: 0,\n            [QueryKeysEnum.shipperContractLanesSort]: sort,\n        });\n    };\n\n    const handleSetQueryFilters = (selectedQueryFilters: QueryFiltersT) => {\n        changeQuery({\n            [QueryKeysEnum.shipperContractLanesPage]: 0,\n            [QueryKeysEnum.shipperContractLanesFilters]: selectedQueryFilters,\n        });\n    };\n\n    const updateQueryFilters = (queryFiltersChanges: QueryFiltersT) => {\n        const prevQueryFilters = query[QueryKeysEnum.shipperContractLanesFilters] || {};\n\n        const queryFilters = {\n            ...prevQueryFilters,\n            ...queryFiltersChanges,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.shipperContractLanesPage]: 0,\n            [QueryKeysEnum.shipperContractLanesFilters]: queryFilters,\n        });\n    };\n\n    const handleSearch = (searchText: string) => {\n        updateQueryFilters({\n            [QueryFiltersKeysEnum.address]: undefined,\n            [QueryFiltersKeysEnum.text]: searchText || undefined,\n        });\n    };\n    const handleSelectStatusFilter = (status: ApiShipperContractLaneStatusT | null) => {\n        updateQueryFilters({\n            [QueryFiltersKeysEnum.status]: status || undefined,\n        });\n    };\n\n    const handleOpenShipperContractLaneDetails = (event: React.MouseEvent, row: ShipperContractLanesTableRowT) => {\n        onOpenShipperContractLaneDetails(row.id);\n    };\n\n    const renderEmptyState = () => {\n        if (!checkNeedRenderEmptyState(shipperContractLanesTableRows, requestStatus)) {\n            return null;\n        }\n\n        if (requestStatus?.error) {\n            return <TableError error={requestStatus?.error} onRetry={handleRefreshOnError} />;\n        }\n\n        const { hasAnyFilters } = checkQueryFiltersKeys(queryFilters, [], []);\n        if (hasAnyFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.notFound}\n                    title={t('common:shipper-contract-lanes.table.messages.not-found.title')}\n                    description={t('common:shipper-contract-lanes.table.messages.not-found.description')}\n                    isShowAction\n                    actionTitle={t('common:shipper-contract-lanes.table.messages.not-found.action')}\n                    actionTheme={ButtonThemeEnum.secondary}\n                    onActionClick={() => handleSetQueryFilters({})}\n                    testSelector=\"not-found\"\n                />\n            );\n        }\n\n        const isShowAction = isAllowAddLane && isAllowShowAddLaneTrigger;\n\n        return (\n            <TableMessage\n                iconType={TableMessageIconsEnum.empty}\n                title={t('common:shipper-contract-lanes.table.messages.empty.title')}\n                description={isShowAction ? t('common:shipper-contract-lanes.table.messages.empty.description') : null}\n                isShowAction={isShowAction}\n                actionTitle={t('common:shipper-contract-lanes.table.messages.empty.action')}\n                actionTheme={ButtonThemeEnum.primary}\n                onActionClick={isShowAction ? onCreateShipperContractLane : noop}\n                testSelector=\"empty\"\n            />\n        );\n    };\n\n    return (\n        <>\n            <ListPageLayout>\n                <ListPageHeaderLayout\n                    leftToolsNode={\n                        <>\n                            {!!navigationTabs && <div>{navigationTabs}</div>}\n                            <FiltersTrigger\n                                title={t('common:shipper-contract-lanes.filters.trigger')}\n                                isActive={isShowFilters}\n                                onClick={showFilters}\n                            />\n                            <SortDropdown\n                                overlayPosition={SortDropdownOverlayPositionEnum.left}\n                                selectedValue={selectedSort}\n                                options={sortOptions}\n                                onSelect={handleSelectSort}\n                            />\n                            <ShipperContractLaneStatusDropdownControl\n                                value={queryFilters[QueryFiltersKeysEnum.status] || null}\n                                onChange={handleSelectStatusFilter}\n                            />\n                            <SearchControl\n                                placeholder={t('common:shipper-contract-lanes.table.search.placeholder')}\n                                searchText={queryFilters[QueryFiltersKeysEnum.text]}\n                                onChangeSearchText={handleSearch}\n                            />\n                        </>\n                    }\n                    filterTagsNode={\n                        <SelectedFilters\n                            isCompact\n                            queryFilters={queryFilters}\n                            setQueryFilters={handleSetQueryFilters}\n                        />\n                    }\n                    rightToolsNode={\n                        isAllowAddLane && isAllowShowAddLaneTrigger ? (\n                            <Button theme={ButtonThemeEnum.primary} onClick={onCreateShipperContractLane}>\n                                {t('common:shipper-contract-lanes.actions.upload')}\n                            </Button>\n                        ) : null\n                    }\n                />\n                {isAllowAddLane && isShowContractExpirationAlert && (\n                    <Alert\n                        icon={\n                            <CalendarIcon\n                                size={DEFAULT_ICON_SIZE}\n                                strokeColor={StyleGuideColorsEnum.white}\n                                fillColor={StyleGuideColorsEnum.gray}\n                            />\n                        }\n                        size={AlertSizeEnum.small}\n                        theme={AlertThemeEnum.gray}\n                        className={cx('alert')}\n                    >\n                        {t('common:shipper-contract-lanes.alert.disable-add-contract-expiration')}\n                    </Alert>\n                )}\n                {renderEmptyState()}\n                <BaseShipperContractLanesTable\n                    tableName=\"shipper-contract-lanes\"\n                    rows={shipperContractLanesTableRows}\n                    onSelectRow={handleOpenShipperContractLaneDetails}\n                    isLoading={requestStatus?.loading}\n                />\n            </ListPageLayout>\n            <StickyFooter>\n                <Pagination current={pageNumber} count={total?.pageCount} goToPage={goToPage} />\n            </StickyFooter>\n            <SideBar isShow={isShowFilters} onClose={hideFilters}>\n                {(onClose) => (\n                    <FiltersSidebarContent\n                        onClose={onClose}\n                        queryFilters={queryFilters}\n                        setQueryFilters={handleSetQueryFilters}\n                    />\n                )}\n            </SideBar>\n        </>\n    );\n});\n\nexport default BaseShipperContractLanesLayout;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"ListMessage__inner___zHI81\",\"icon\":\"ListMessage__icon___dI4CU\",\"title\":\"ListMessage__title___WvWSd\",\"description\":\"ListMessage__description___inBrz\",\"fadeIn\":\"ListMessage__fadeIn___H2TwO\",\"blinking\":\"ListMessage__blinking___M7pGJ\"};","import { RequestStatusT } from 'common/utils/request-status';\n\nimport { FindShippersQueryT, PartnerT, ShipperByIdT } from './models';\n\nexport const FIND_SHIPPERS_REQUEST_BY_QUERY = 'common/shipper-suggest/FIND_SHIPPERS_REQUEST_BY_QUERY';\nexport const FIND_SHIPPERS_REQUEST_BY_ID = 'common/shipper-suggest/FIND_SHIPPERS_REQUEST_BY_ID';\nexport const FIND_SHIPPERS_REQUEST_BEGIN = 'common/shipper-suggest/FIND_SHIPPERS_REQUEST_BEGIN';\nexport const FIND_SHIPPERS_REQUEST_ERROR = 'common/shipper-suggest/FIND_SHIPPERS_REQUEST_ERROR';\nexport const FIND_SHIPPERS_REQUEST_SUCCESS = 'common/shipper-suggest/FIND_SHIPPERS_REQUEST_SUCCESS';\n\nexport const RESET = 'common/shipper-suggest/RESET';\n\nexport type ShipperSuggestStateT = {\n    query: FindShippersQueryT | null;\n    requestStatus: RequestStatusT;\n    ids: Array<PartnerT['id']>;\n    byId: ShipperByIdT;\n};\n\nexport type FindShippersByQueryActionT = {\n    type: typeof FIND_SHIPPERS_REQUEST_BY_QUERY;\n    query: FindShippersQueryT;\n};\n\nexport type FindShippersByIdActionT = {\n    type: typeof FIND_SHIPPERS_REQUEST_BY_ID;\n    partnerId: PartnerIdT;\n    query: FindShippersQueryT;\n};\n\nexport type FindShippersBeginActionT = {\n    type: typeof FIND_SHIPPERS_REQUEST_BEGIN;\n    query: FindShippersQueryT;\n};\n\nexport type FindShippersSuccessActionT = {\n    type: typeof FIND_SHIPPERS_REQUEST_SUCCESS;\n    partners: PartnerT[];\n};\n\nexport type FindShippersErrorActionT = {\n    type: typeof FIND_SHIPPERS_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type ResetActionT = {\n    type: typeof RESET;\n};\n\nexport type ShipperSuggestActionT =\n    | FindShippersByQueryActionT\n    | FindShippersBeginActionT\n    | FindShippersSuccessActionT\n    | FindShippersErrorActionT\n    | ResetActionT;\n","import * as React from 'react';\n\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport { useTranslation } from 'react-i18next';\nimport TrailerIcon from 'common/icons/TrailerIcon';\n\nexport type PropsT = {\n    className?: string;\n    plateNumber: string | null | undefined;\n    trailerId: TrailerIdT;\n    onOpenTrailerDetails: (trailerId: TrailerIdT) => void;\n};\n\nconst LinkedTrailerAlert: React.FC<PropsT> = React.memo((props) => {\n    const { className, plateNumber, trailerId, onOpenTrailerDetails } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <Alert\n            className={className}\n            icon={\n                <TrailerIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={StyleGuideColorsEnum.white}\n                    fillColor={StyleGuideColorsEnum.transparent}\n                />\n            }\n            size={AlertSizeEnum.small}\n            theme={AlertThemeEnum.gray}\n            actionText={t('common:trucks-page.add-truck.linked-trailer.actions.open-details')}\n            onClickAction={() => {\n                onOpenTrailerDetails(trailerId);\n            }}\n        >\n            {t('common:trucks-page.add-truck.linked-trailer.title', {\n                plateNumber: plateNumber || '',\n            })}\n        </Alert>\n    );\n});\n\nexport default LinkedTrailerAlert;\n","// extracted by mini-css-extract-plugin\nexport default {\"map\":\"ShipperContractLaneCreationMap__map___y703q\",\"marker\":\"ShipperContractLaneCreationMap__marker___fj_rm\",\"estimate\":\"ShipperContractLaneCreationMap__estimate___azpQP\",\"fadeIn\":\"ShipperContractLaneCreationMap__fadeIn___zGuuf\",\"blinking\":\"ShipperContractLaneCreationMap__blinking___wsFhy\"};","import * as React from 'react';\nimport { CommonSidebarDataT, CommonSidebarsTypeEnum, RenderSidebarContentT, SidebarCloseConfirmationT } from './models';\nimport { TFunction } from 'i18next';\nimport BigWarningIcon from 'common/icons/BigWarningIcon';\nimport ContactDetailsSidebarContent from 'common/layouts/SideBars/contents/ContactDetailsSidebarContent/ContactDetailsSidebarContent';\nimport EditContactDetailsSidebarContent from 'common/layouts/SideBars/contents/EditContactDetailsSidebarContent/EditContactDetailsSidebarContent';\nimport DocumentDetailsSidebarContent from 'common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentDetailsSidebarContent';\nimport ContractDetailsSidebarContent from 'common/layouts/SideBars/contents/ContractDetailsSidebarContent/ContractDetailsSidebarContent';\nimport DriverFiltersSidebarContent from 'common/layouts/SideBars/contents/DriverFiltersSidebarContent/DriverFiltersSidebarContent';\nimport EditDriverSidebarContent from 'common/layouts/SideBars/contents/EditDriverSidebarContent/EditDriverSidebarContent';\nimport DriverDetailsSidebarContent from 'common/layouts/SideBars/contents/DriverDetailsSidebarContent/DriverDetailsSidebarContent';\nimport TrailerFiltersSidebarContent from 'common/layouts/SideBars/contents/TrailerFiltersSidebarContent/TrailerFiltersSidebarContent';\nimport AddTrailerSidebarContent from 'common/layouts/SideBars/contents/AddTrailerSidebarContent/AddTrailerSidebarContent';\nimport EditableTrailerDetailsSidebarContent from 'common/layouts/SideBars/contents/EditableTrailerDetailsSidebarContent/EditableTrailerDetailsSidebarContent';\nimport TruckFiltersSidebarContent from 'common/layouts/SideBars/contents/TruckFiltersSidebarContent/TruckFiltersSidebarContent';\nimport AddTruckSidebarContent from 'common/layouts/SideBars/contents/AddTruckSidebarContent/AddTruckSidebarContent';\nimport EditableTruckDetailsSidebarContent from 'common/layouts/SideBars/contents/EditableTruckDetailsSidebarContent/EditableTruckDetailsSidebarContent';\nimport AddDriverSidebarContent from 'common/layouts/SideBars/contents/AddDriverSidebarContent/AddDriverSidebarContent';\n\nexport const commonGetSidebarCloseConfirmation = (\n    t: TFunction,\n    data: CommonSidebarDataT,\n): SidebarCloseConfirmationT | null => {\n    if (data.type === CommonSidebarsTypeEnum.editContact) {\n        return {\n            icon: <BigWarningIcon />,\n            title: t('common:sidebar.unsaved-changes-confimration.title'),\n            message: t('common:sidebar.unsaved-changes-confimration.message'),\n            cancelAction: t('common:error-modal.actions.cancel'),\n            confirmAction: t('common:error-modal.actions.close'),\n        };\n    }\n\n    return {\n        icon: <BigWarningIcon />,\n        title: t('common:sidebar.unsaved-changes-confimration.title'),\n        message: t('common:sidebar.unsaved-changes-confimration.message'),\n        cancelAction: t('common:error-modal.actions.cancel'),\n        confirmAction: t('common:error-modal.actions.close'),\n    };\n};\n\nexport const renderCommonSidebarContent: RenderSidebarContentT<CommonSidebarDataT> = (props): React.ReactNode => {\n    const { data, ...restProps } = props;\n\n    switch (data.type) {\n        case CommonSidebarsTypeEnum.contact: {\n            return <ContactDetailsSidebarContent {...restProps} data={data} />;\n        }\n        case CommonSidebarsTypeEnum.editContact: {\n            return <EditContactDetailsSidebarContent {...restProps} data={data} />;\n        }\n        case CommonSidebarsTypeEnum.document: {\n            return <DocumentDetailsSidebarContent {...restProps} data={data} />;\n        }\n        case CommonSidebarsTypeEnum.carrierContract: {\n            return <ContractDetailsSidebarContent {...restProps} data={data} />;\n        }\n        case CommonSidebarsTypeEnum.driverFilters: {\n            return <DriverFiltersSidebarContent {...restProps} data={data} />;\n        }\n        case CommonSidebarsTypeEnum.driverDetails: {\n            return <DriverDetailsSidebarContent {...restProps} data={data} />;\n        }\n        case CommonSidebarsTypeEnum.editDriverDetails: {\n            return <EditDriverSidebarContent {...restProps} data={data} />;\n        }\n        case CommonSidebarsTypeEnum.addDriver: {\n            return <AddDriverSidebarContent {...restProps} data={data} />;\n        }\n        case CommonSidebarsTypeEnum.trailerFilters: {\n            return <TrailerFiltersSidebarContent {...restProps} data={data} />;\n        }\n        case CommonSidebarsTypeEnum.trailerDetails: {\n            return <EditableTrailerDetailsSidebarContent {...restProps} data={data} />;\n        }\n        case CommonSidebarsTypeEnum.addTrailer: {\n            return <AddTrailerSidebarContent {...restProps} data={data} />;\n        }\n        case CommonSidebarsTypeEnum.truckFilters: {\n            return <TruckFiltersSidebarContent {...restProps} data={data} />;\n        }\n        case CommonSidebarsTypeEnum.addTruck: {\n            return <AddTruckSidebarContent {...restProps} data={data} />;\n        }\n        case CommonSidebarsTypeEnum.truckDetails: {\n            return <EditableTruckDetailsSidebarContent {...restProps} data={data} />;\n        }\n        default: {\n            return null;\n        }\n    }\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"id\":\"IdCell__id___c4qVh\",\"fadeIn\":\"IdCell__fadeIn___JVCOM\",\"blinking\":\"IdCell__blinking____9gOK\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PartnerTransportOrderDetails.scss';\nimport TransportOrderDetailsPageLayout from 'common/layouts/TransportOrderDetailsPageLayout/TransportOrderDetailsPageLayout';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport history from 'common/utils/history';\nimport { logWarning } from 'common/utils/logger';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport { useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { BrokerSidebarsTypeEnum } from 'broker-admin/layouts/SideBars/constants';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst PartnerTransportOrderDetails: React.FC<PropsT> = React.memo(() => {\n    const { partnerId, partnerType } = usePartnerContext();\n\n    const goToBack = React.useCallback(() => {\n        if (!partnerType || !partnerId) {\n            logWarning('Empty partnerType or partnerId in goToBack');\n            return;\n        }\n        const url = urlFactory.partnerTransportOrders(partnerType, partnerId);\n        history.push(url);\n    }, [partnerType, partnerId]);\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const goToTrailerDetails = React.useCallback(\n        (trailerId: TrailerIdT | null) => {\n            if (!trailerId) {\n                logWarning('empty trailerId');\n                return;\n            }\n            if (!partnerId) {\n                logWarning('Empty partnerId in goToTrailerDetails');\n                return;\n            }\n\n            openLeftSidebar(\n                {\n                    type: CommonSidebarsTypeEnum.trailerDetails,\n                    partnerId,\n                    trailerId,\n                },\n                {\n                    isForceShowBackAction: true,\n                },\n            );\n        },\n        [openLeftSidebar, partnerId],\n    );\n\n    const goToTruckDetails = React.useCallback(\n        (truckId: TruckIdT | null) => {\n            if (!truckId) {\n                logWarning('empty truckId');\n                return;\n            }\n            if (!partnerId) {\n                logWarning('Empty partnerId in goToTruckDetails');\n                return;\n            }\n\n            openLeftSidebar(\n                {\n                    type: CommonSidebarsTypeEnum.truckDetails,\n                    partnerId,\n                    truckId,\n                },\n                {\n                    isForceShowBackAction: true,\n                },\n            );\n        },\n        [openLeftSidebar, partnerId],\n    );\n\n    const goToSpotRequestDetails = React.useCallback(\n        (spotRequestId: SpotRequestIdT | null) => {\n            if (!spotRequestId) {\n                logWarning('empty spotId');\n                return;\n            }\n\n            openLeftSidebar(\n                {\n                    type: BrokerSidebarsTypeEnum.spotRequestDetails,\n                    id: spotRequestId,\n                },\n                {\n                    isForceShowBackAction: true,\n                },\n            );\n        },\n        [openLeftSidebar],\n    );\n\n    const handleOpenUserDetails = React.useCallback(\n        (params: { userId: UserIdT | null; partnerType?: PartnerTypeEnum; partnerId?: PartnerIdT }) => {\n            if (!params.userId) {\n                logWarning('failed to open user details in partner transport order details, empty user id');\n                return;\n            }\n\n            openLeftSidebar(\n                {\n                    type: CommonSidebarsTypeEnum.contact,\n                    userId: params.userId,\n                    partnerType: params.partnerType,\n                    partnerId: params.partnerId,\n                },\n                {\n                    isForceShowBackAction: true,\n                },\n            );\n        },\n        [openLeftSidebar],\n    );\n\n    return (\n        <TransportOrderDetailsPageLayout\n            isReadOnly\n            goToBack={goToBack}\n            goToTrailerDetails={goToTrailerDetails}\n            goToTruckDetails={goToTruckDetails}\n            goToSpotRequestDetails={goToSpotRequestDetails}\n            onOpenUserDetails={handleOpenUserDetails}\n        />\n    );\n});\n\nexport default PartnerTransportOrderDetails;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    size: number;\n    fillColor: StyleGuideColorsEnum;\n};\n\nconst LockIcon: React.FC<PropsT> = (props) => {\n    const { className, size, fillColor } = props;\n\n    return (\n        <svg className={className} xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={fillColor}\n                    d=\"M14.5 7h-.75V5.5c0-2.07-1.68-3.75-3.75-3.75-2.07 0-3.75 1.68-3.75 3.75V7H5.5C4.675 7 4 7.675 4 8.5V16c0 .825.675 1.5 1.5 1.5h9c.825 0 1.5-.675 1.5-1.5V8.5c0-.825-.675-1.5-1.5-1.5zM10 13.75c-.825 0-1.5-.675-1.5-1.5s.675-1.5 1.5-1.5 1.5.675 1.5 1.5-.675 1.5-1.5 1.5zM12.325 7h-4.65V5.5A2.327 2.327 0 0110 3.175 2.327 2.327 0 0112.325 5.5V7z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nLockIcon.displayName = 'LockIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.tomatoRed,\n    size: DEFAULT_ICON_SIZE,\n};\n\nexport { storyProps };\nexport default LockIcon;\n","import * as React from 'react';\nimport { ApiTrailerStatusT, TrailerStatusEnum } from 'common/utils/api/models';\nimport { PropsT as ColoredStatusLabelPropsT } from 'common/components/ColoredStatusLabel/ColoredStatusLabel';\nimport TrailerStatus from 'common/components/status/TrailerStatus/TrailerStatus';\nimport PillLabel, { colorCodingPillLabelTheme, PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\n\ntype PropsT = Omit<ColoredStatusLabelPropsT, 'label' | 'color'> & {\n    status: ApiTrailerStatusT | null | undefined;\n    isSymmetrical?: boolean;\n};\n\nexport const PILL_THEME_BY_TRAILER_STATUS: Record<ApiTrailerStatusT, PillLabelThemeEnum> = {\n    [TrailerStatusEnum.free]: colorCodingPillLabelTheme.success,\n    [TrailerStatusEnum.inTransit]: colorCodingPillLabelTheme.normal,\n    [TrailerStatusEnum.unavailable]: colorCodingPillLabelTheme.attention,\n    [TrailerStatusEnum.archived]: colorCodingPillLabelTheme.warning,\n};\n\nconst TrailerStatusPill: React.FC<PropsT> = React.memo((props) => {\n    const { status, ...restProps } = props;\n\n    if (!status) {\n        return null;\n    }\n\n    return (\n        <PillLabel isNoWrap {...restProps} theme={PILL_THEME_BY_TRAILER_STATUS[status]}>\n            <TrailerStatus status={status} />\n        </PillLabel>\n    );\n});\n\nexport default TrailerStatusPill;\n","import { RoutePointFormValuesT } from '../constants';\nimport { InferChannelEventT, ViewEventChannel } from 'common/utils/view-event-channel';\nimport { useCallback } from 'react';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { ApiTourUpdateStopDataT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { getInitialRouteFormValues } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/get-initial-values';\nimport { ContextRoutePointAliasT } from '../../../../../store/order-edit-context/models';\n\nexport const contextSyncPointsModifyChannel = new ViewEventChannel<{\n    correctedStops: Array<ApiTourUpdateStopDataT>;\n    routeFormValues: Array<RoutePointFormValuesT>;\n    deletedStopAliases?: Array<ContextRoutePointAliasT>;\n    addedStopAliases?: Array<ContextRoutePointAliasT>;\n    orderStopAliases?: Array<ContextRoutePointAliasT>;\n}>();\n\nexport const useSyncPointsChannels = (formikArrayHelpers: {\n    insert: (index: number, value: RoutePointFormValuesT) => void;\n    remove: (index: number) => void;\n    move: (from: number, to: number) => void;\n}) => {\n    // correction after reserve\n    const syncPointsModifyChannelHandler = useCallback(\n        (event: InferChannelEventT<typeof contextSyncPointsModifyChannel>) => {\n            const { correctedStops, addedStopAliases, deletedStopAliases, routeFormValues, orderStopAliases } = event;\n\n            const clonedRouteFormValues = cloneDeep(routeFormValues);\n\n            const newAliasesSet = new Set(correctedStops.map((stop) => stop.alias));\n\n            for (let index = clonedRouteFormValues.length - 1; index >= 0; index -= 1) {\n                const { fakePointId } = clonedRouteFormValues[index];\n                if (!newAliasesSet.has(fakePointId) && deletedStopAliases?.includes(fakePointId)) {\n                    formikArrayHelpers.remove(index);\n                    clonedRouteFormValues.splice(index, 1);\n                }\n            }\n\n            let formIndexPointer = 0;\n            correctedStops?.forEach((stop) => {\n                const stopAlias = stop.alias;\n                if (!stopAlias) {\n                    return;\n                }\n\n                const indexInForm = clonedRouteFormValues.findIndex((values) => {\n                    return values.fakePointId === stopAlias;\n                });\n\n                if (indexInForm === -1 && addedStopAliases?.includes(stopAlias)) {\n                    formikArrayHelpers.insert(formIndexPointer, getInitialRouteFormValues(stop));\n                    clonedRouteFormValues.splice(formIndexPointer, 0, getInitialRouteFormValues(stop));\n                }\n\n                formIndexPointer += 1;\n            });\n\n            // Reorder elements based on orderStopAliases\n            const hasLocalOnlyStops = clonedRouteFormValues.some(({ fakePointId }) => {\n                return !orderStopAliases?.includes(fakePointId);\n            });\n\n            // A stop with an invalid location is kept only in the form and is absent from the backend context.\n            // Reordering against that incomplete context would move the local stop after the delivery point.\n            if (orderStopAliases && orderStopAliases.length > 0 && !hasLocalOnlyStops) {\n                // Reorder elements according to orderStopAliases\n                // Process from the end to avoid index shifting issues\n                for (let targetIndex = orderStopAliases.length - 1; targetIndex >= 0; targetIndex -= 1) {\n                    const targetAlias = orderStopAliases[targetIndex];\n\n                    // Find the current index of the element with this alias\n                    const currentIndex = clonedRouteFormValues.findIndex((values) => {\n                        return values.fakePointId === targetAlias;\n                    });\n\n                    if (currentIndex !== -1 && currentIndex !== targetIndex) {\n                        formikArrayHelpers.move(currentIndex, targetIndex);\n\n                        // Update clonedRouteFormValues for synchronization\n                        const movedValue = clonedRouteFormValues[currentIndex];\n                        clonedRouteFormValues.splice(currentIndex, 1);\n                        clonedRouteFormValues.splice(targetIndex, 0, movedValue);\n                    }\n                }\n            }\n        },\n        [formikArrayHelpers],\n    );\n\n    useChannelSubscribe(contextSyncPointsModifyChannel, syncPointsModifyChannelHandler);\n};\n","import * as React from 'react';\nimport uniq from 'lodash/uniq';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\n\ntype BaseOptionKeyValueT = string | number | null | undefined;\n\ntype BaseOptionT<K extends string, V = BaseOptionKeyValueT> = {\n    [Key in K]: V;\n};\n\ntype PropsT<K extends string> = {\n    className?: string;\n    optionKey: K;\n    initialOptions: Array<BaseOptionT<K>>;\n    options: Array<BaseOptionT<K>>;\n};\n\nconst getOptionsHash = <K extends string>(key: K, options: Array<BaseOptionT<K>>): string => {\n    const values = options.map((option) => option[key]);\n    const uniqValues = uniq(values);\n\n    uniqValues.sort();\n\n    return uniqValues.join('|');\n};\n\nconst ItemsCount = <K extends string>(props: PropsT<K>) => {\n    const { className, initialOptions, options, optionKey } = props;\n\n    const initOptionsHash = React.useMemo(() => {\n        return getOptionsHash(optionKey, initialOptions);\n    }, [initialOptions, optionKey]);\n\n    const optionsHash = React.useMemo(() => {\n        return getOptionsHash(optionKey, options);\n    }, [options, optionKey]);\n\n    let theme = PillLabelThemeEnum.grey;\n\n    if (optionsHash === initOptionsHash && options.length) {\n        theme = PillLabelThemeEnum.charcoal;\n    }\n\n    if (optionsHash !== initOptionsHash && options.length) {\n        theme = PillLabelThemeEnum.orange;\n    }\n\n    return (\n        <PillLabel isSymmetrical theme={theme} className={className} isRounded>\n            {options.length}\n        </PillLabel>\n    );\n};\n\nexport default ItemsCount;\n","// extracted by mini-css-extract-plugin\nexport default {\"list\":\"OperationUnavailableReasonsAlert__list___zVqqc\"};","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"BidMessage__inner___eYko8\",\"icon\":\"BidMessage__icon___rMFs0\",\"title\":\"BidMessage__title___l5G0f\",\"description\":\"BidMessage__description___uqNK0\",\"fadeIn\":\"BidMessage__fadeIn___afEi_\",\"blinking\":\"BidMessage__blinking___eeUx5\"};","import { MS_IN_MIN } from 'common/utils/time';\n\nexport const ROUTING_GEOMETRY_TTL = 5 * MS_IN_MIN;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { CountryCodeT } from 'common/store/countries-dict/models';\n\nimport ExcludeCountriesMapWidget from 'common/components/ExcludeCountriesMapWidget/ExcludeCountriesMapWidget';\nimport { OnChangeExcludedCountriesCallbackT } from 'broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/contexts/sync-map-state';\nimport noop from 'lodash/noop';\n\ntype PropsT = {\n    className?: string;\n    excludedCountries: Array<CountryCodeT>;\n    onChangeExcludedCountries: OnChangeExcludedCountriesCallbackT | null;\n};\n\nconst ExcludeCountries: React.FC<PropsT> = React.memo((props) => {\n    const { className, excludedCountries, onChangeExcludedCountries } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <ExcludeCountriesMapWidget\n            className={className}\n            excludedCountries={excludedCountries}\n            setExcludedCountries={onChangeExcludedCountries || noop}\n            triggerLabel={t('common:new-order-form.excluded-countries.trigger')}\n            inputPlaceholder={t('common:new-order-form.excluded-countries.search-input-placeholder')}\n        />\n    );\n});\n\nexport default ExcludeCountries;\n","import { PartnerTypeEnum } from 'common/utils/api/models';\n\nexport enum FieldsEnum {\n    partnerType = 'partnerType',\n    partnerId = 'partnerId',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.partnerType]: PartnerTypeEnum | null;\n    [FieldsEnum.partnerId]: PartnerIdT | null;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","export const isDeepEqual = (objectA: {}, objectB: {}): boolean => JSON.stringify(objectA) === JSON.stringify(objectB);\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    fillColor: StyleGuideColorsEnum;\n    fillOpacity?: number;\n    strokeColor: StyleGuideColorsEnum;\n    size: number;\n};\n\nconst InvoiceIcon: React.FC<PropsT> = (props) => {\n    const { size, className, fillColor, fillOpacity, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\" className={className}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fillOpacity={fillOpacity || 1}\n                    fill={fillColor}\n                    d=\"M4.75 15.318h10.5V4.682H4.75v10.636zM5.5 6.25h9v1.5h-9v-1.5zm0 3h9v1.5h-9v-1.5zm0 3h9v1.5h-9v-1.5z\"\n                />\n                <path\n                    fill={strokeColor}\n                    d=\"M15.625 3.625L14.5 2.5l-1.125 1.125L12.25 2.5l-1.125 1.125L10 2.5 8.875 3.625 7.75 2.5 6.625 3.625 5.5 2.5 4.375 3.625 3.25 2.5v15l1.125-1.125L5.5 17.5l1.125-1.125L7.75 17.5l1.125-1.125L10 17.5l1.125-1.125L12.25 17.5l1.125-1.125L14.5 17.5l1.125-1.125L16.75 17.5v-15l-1.125 1.125zm-.375 11.693H4.75V4.682h10.5v10.636zM5.5 12.25h9v1.5h-9v-1.5zm0-3h9v1.5h-9v-1.5zm0-3h9v1.5h-9v-1.5z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nInvoiceIcon.displayName = 'InvoiceIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n    fillOpacity: 1,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n};\n\nexport { storyProps };\nexport default InvoiceIcon;\n\n/**\n *  @deprecated create/use ...Props class\n * */\nexport const getInvoiceIconProps = (preset: 'default' | 'selected'): PropsT => {\n    switch (preset) {\n        case 'selected': {\n            return {\n                fillColor: StyleGuideColorsEnum.brandAccent,\n                fillOpacity: 0.3,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n                size: DEFAULT_ICON_SIZE,\n            };\n        }\n        default: {\n            return {\n                fillColor: StyleGuideColorsEnum.light,\n                strokeColor: StyleGuideColorsEnum.slate,\n                size: DEFAULT_ICON_SIZE,\n            };\n        }\n    }\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"RuleStateControl__fadeIn___OSgBp\",\"blinking\":\"RuleStateControl__blinking___teHS0\"};","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"ExpireSoonPartnerShipperContractCard__inner___YVdtZ\",\"fadeIn\":\"ExpireSoonPartnerShipperContractCard__fadeIn___UeG3C\",\"blinking\":\"ExpireSoonPartnerShipperContractCard__blinking___YnWsd\"};","import * as React from 'react';\n\nconst useModalDialog = <T extends {}>() => {\n    const [data, setData] = React.useState<T | null>(null);\n\n    return React.useMemo(() => {\n        return {\n            isShow: !!data,\n            data,\n            setData,\n            onClose: () => {\n                setData(null);\n            },\n            onCancel: () => {\n                setData(null);\n            },\n        };\n    }, [data]);\n};\n\nexport default useModalDialog;\n","import React, { useCallback, useMemo } from 'react';\n\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport keyBy from 'lodash/keyBy';\nimport { AsyncRequestFactoryT } from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-options-request';\nimport DropdownSearchInput from 'design-system/components/dropdowns/DropdownSearchInput/DropdownSearchInput';\nimport ControlLoaderIcon, { ControlLoaderIconProps } from 'common/icons/ControlLoaderIcon';\nimport isNil from 'lodash/isNil';\nimport UserDropdownOptionLabel from 'common/components/dropdowns/options/UserDropdownOptionLabel/UserDropdownOptionLabel';\nimport { useAsyncFilterOptions } from 'design-system/components/dropdowns/DropdownSearchInput/hooks/use-async-filter-options';\nimport { ApiMainContactUnavailableReasonT } from 'common/utils/api/models';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport MainContactUnavailableReasonLabel from 'common/components/papers/labels/MainContactUnavailableReasonLabel/MainContactUnavailableReasonLabel';\n\ntype OptionT = {\n    id?: ContactIdT;\n    fullName?: string;\n    email?: string;\n    mainContactUnavailableReason?: ApiMainContactUnavailableReasonT;\n};\n\ntype ValueT = OptionT['id'] | null;\n\nexport type PropsT = {\n    className?: string;\n    companyId: CompanyIdT;\n    initialValue: ValueT;\n    initialLabel: string | null;\n    onSelect: (value: ValueT, label?: string) => void;\n    value: ValueT;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    placeholder: InputPropsT['placeholder'];\n    onBlur: InputPropsT['onBlur'];\n    onFocus: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasChanges?: boolean;\n    hasClearControl?: boolean;\n};\n\nconst getOptionText = (option: OptionT): string => option.fullName || option.email || '-';\n\nconst PartnerMainContactSuggest: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        companyId,\n        initialValue,\n        initialLabel,\n        value,\n        onSelect,\n        hasWarning,\n        hasError,\n        overlayPosition,\n        isDisabled,\n        onBlur,\n        onFocus,\n        hasChanges,\n        hasClearControl,\n        placeholder,\n    } = props;\n\n    const initialOption = useMemo((): OptionT | null => {\n        if (!initialValue) {\n            return null;\n        }\n\n        return {\n            id: initialValue,\n            fullName: initialLabel || 'Unknown contact',\n        };\n    }, [initialLabel, initialValue]);\n\n    const initialOptions = useMemo(() => (initialOption ? [initialOption] : null), [initialOption]);\n\n    const requestFactory: AsyncRequestFactoryT<OptionT> = useCallback(\n        (query) => {\n            return brokerTranziitApi.fetchCompanyContacts(companyId, {\n                userName: query || undefined,\n            });\n        },\n        [companyId],\n    );\n\n    const asyncFilterOptionsRequest = useAsyncFilterOptions<OptionT>({\n        initialOptions,\n        requestFactory,\n        getOptionText,\n        settings: {},\n    });\n\n    const optionByContactId = useMemo(() => {\n        return keyBy(asyncFilterOptionsRequest.options, 'id');\n    }, [asyncFilterOptionsRequest.options]);\n\n    const renderOption = (option?: OptionT, placeholder?: string): React.ReactNode => {\n        if (isNil(option)) {\n            return <UserDropdownOptionLabel label={placeholder || ''} isPlaceholder />;\n        }\n\n        const unavailableReason = option.mainContactUnavailableReason || null;\n\n        return (\n            <Tooltip\n                position={TooltipPositionEnum.topCenter}\n                theme={TooltipThemeEnum.black}\n                tooltipNode={\n                    unavailableReason ? (\n                        <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                            <MainContactUnavailableReasonLabel reason={unavailableReason} />\n                        </TooltipContent>\n                    ) : null\n                }\n            >\n                {() => <UserDropdownOptionLabel label={getOptionText(option)} isDisabled={!!unavailableReason} />}\n            </Tooltip>\n        );\n    };\n\n    const handleFocus = useCallback(() => {\n        if (onFocus) {\n            onFocus();\n        }\n\n        asyncFilterOptionsRequest.onRefresh();\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [onFocus, asyncFilterOptionsRequest.onRefresh]);\n\n    return (\n        <DropdownSearchInput<OptionT, ValueT>\n            className={className}\n            selectedValue={value}\n            placeholder={placeholder}\n            options={asyncFilterOptionsRequest.options}\n            isDisabled={isDisabled}\n            onSelect={(contactId) => {\n                const option = contactId ? optionByContactId[contactId] : null;\n                onSelect(contactId, option ? getOptionText(option) : '');\n            }}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            onChangeQuery={asyncFilterOptionsRequest.onChangeQuery}\n            renderRightIcon={() =>\n                asyncFilterOptionsRequest.requestStatus.loading ? (\n                    <ControlLoaderIcon {...ControlLoaderIconProps.getFetchDataProps()} />\n                ) : null\n            }\n            renderOption={renderOption}\n            renderTrigger={renderOption}\n            getOptionValue={(option) => option?.id}\n            isOptionDisabled={(option) => !!option.mainContactUnavailableReason}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={handleFocus}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            onReset={hasClearControl ? () => onSelect(null) : undefined}\n        />\n    );\n};\n\nexport default PartnerMainContactSuggest;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"RangeSelector__container___fUYCu\",\"container--isDisabled\":\"RangeSelector__container--isDisabled___ov7XF\",\"selection-range\":\"RangeSelector__selection-range___BNsL0\",\"selection-range--isDragable\":\"RangeSelector__selection-range--isDragable___mp06_\",\"selection-range--isDragging\":\"RangeSelector__selection-range--isDragging___wFeVl\",\"selection-range--isDisabled\":\"RangeSelector__selection-range--isDisabled___z3vQv\",\"selection-range--isOutOffValues\":\"RangeSelector__selection-range--isOutOffValues___zj2dt\",\"fadeIn\":\"RangeSelector__fadeIn___gEq08\",\"blinking\":\"RangeSelector__blinking___M5rvg\"};","export const isZeroNumber = (value: string | null | undefined): boolean => {\n    const preparedValue = (value || '').trim();\n\n    return preparedValue === '0' || preparedValue === '0.0' || preparedValue === '0,0';\n};\n\nexport const isEmpty = (\n    value: object | string | number | null | undefined | Array<object | string | number>,\n): boolean => {\n    if (value === undefined || value === null) {\n        return true;\n    }\n\n    if (typeof value === 'string') {\n        return !(value || '').trim();\n    }\n\n    if (Array.isArray(value)) {\n        return !value?.length;\n    }\n\n    return false;\n};\n\nexport const isLessMinLength = (value: string | null | undefined, minLength: number): boolean => {\n    if (typeof value === 'string' && value.trim().length < minLength) {\n        return true;\n    }\n\n    return false;\n};\n\nexport const isMoreMaxLength = (value: string | null | undefined, maxLength: number): boolean => {\n    if (typeof value === 'string' && value.trim().length > maxLength) {\n        return true;\n    }\n\n    return false;\n};\n","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { BrokerOrderStatsT } from './models';\n\nexport type BrokerOrderStatsStateT = {\n    stats: BrokerOrderStatsT | null;\n    fetchRequest: RequestStatusT;\n};\n\nconst initialState: BrokerOrderStatsStateT = {\n    stats: null,\n    fetchRequest: requestStatus.initial,\n};\n\nexport const brokerOrderStatsSlice = createSlice({\n    name: 'brokerOrderStats',\n    initialState,\n    reducers: {\n        fetchBrokerOrderStats: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n        ) => {\n            // nothing - handled by saga\n        },\n        fetchBrokerOrderStatsBegin: (state) => {\n            state.fetchRequest = requestStatus.loading;\n        },\n        fetchBrokerOrderStatsSuccess: (\n            state,\n            action: PayloadAction<{\n                statistics: BrokerOrderStatsT | null;\n            }>,\n        ) => {\n            const { statistics } = action.payload;\n            state.stats = statistics;\n            state.fetchRequest = requestStatus.ok;\n        },\n        fetchBrokerOrderStatsError: (\n            state,\n            action: PayloadAction<{\n                error: Error;\n            }>,\n        ) => {\n            const { error } = action.payload;\n            state.fetchRequest = requestStatus.setError(error);\n        },\n    },\n    extraReducers: (builder) => {\n        builder.addCase('auth/destroySession', () => {\n            return initialState;\n        });\n    },\n});\n\nexport const {\n    fetchBrokerOrderStats,\n    fetchBrokerOrderStatsBegin,\n    fetchBrokerOrderStatsSuccess,\n    fetchBrokerOrderStatsError,\n} = brokerOrderStatsSlice.actions;\n\nexport default brokerOrderStatsSlice.reducer;\n","// extracted by mini-css-extract-plugin\nexport default {\"table\":\"Table__table___YutSi\",\"row--isSelectable\":\"Table__row--isSelectable___X73kL\",\"row--hasLeftGreenBorder\":\"Table__row--hasLeftGreenBorder___g8t50\",\"row--hasLeftRedBorder\":\"Table__row--hasLeftRedBorder___vZv5S\",\"row--hasLeftGreyBorder\":\"Table__row--hasLeftGreyBorder___fIELs\",\"row--hasLeftOrangeBorder\":\"Table__row--hasLeftOrangeBorder___ZRN3V\",\"row--isHighlighted\":\"Table__row--isHighlighted____QWBu\",\"row--isSelected\":\"Table__row--isSelected___rY9gQ\",\"fadeIn\":\"Table__fadeIn___zZl_W\",\"blinking\":\"Table__blinking___ZsKRd\"};","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"Bids__inner___a3cHC\",\"header\":\"Bids__header___h51dm\",\"filters__button\":\"Bids__filters__button___B9lBf\",\"filters__count\":\"Bids__filters__count___ONPzB\",\"bid\":\"Bids__bid___CoF8V\",\"fadeIn\":\"Bids__fadeIn___MnSoM\",\"blinking\":\"Bids__blinking___vEFlR\"};","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { CreateUpdateTeamRequestT } from 'broker-admin/store/broker-team-edit/types';\nimport { ApiCreateUpdateTeamRequestT } from 'broker-admin/utils/api/broker-tranziit/models';\n\nexport type BrokerTeamEditByIdStateT = {\n    updateRequest: RequestStatusT;\n    deleteRequest: RequestStatusT;\n};\n\nexport type BrokerTeamEditStateT = {\n    createRequest: RequestStatusT;\n    createdTeam: {\n        id: TeamIdT;\n    } | null;\n    byId: Record<TeamIdT, BrokerTeamEditByIdStateT>;\n};\n\nconst initialTeamEditState: BrokerTeamEditByIdStateT = {\n    updateRequest: requestStatus.initial,\n    deleteRequest: requestStatus.initial,\n};\n\nconst initialState: BrokerTeamEditStateT = {\n    createRequest: requestStatus.initial,\n    createdTeam: null,\n    byId: {},\n};\n\nexport const brokerTeamEditSlice = createSlice({\n    name: 'brokerTeamEdit',\n    initialState,\n    reducers: {\n        // Create team actions\n        createTeam: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                data: CreateUpdateTeamRequestT;\n            }>,\n        ) => {\n            // nothing - handled by saga\n        },\n        createTeamBegin: (state) => {\n            state.createRequest = requestStatus.loading;\n        },\n        createTeamSuccess: (state, action: PayloadAction<{ id: TeamIdT }>) => {\n            state.createRequest = requestStatus.ok;\n            state.createdTeam = { id: action.payload.id };\n        },\n        createTeamError: (state, action: PayloadAction<{ error: Error }>) => {\n            state.createRequest = requestStatus.setError(action.payload.error);\n        },\n\n        // Update team actions\n        updateTeam: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                teamId: TeamIdT;\n                data: ApiCreateUpdateTeamRequestT;\n            }>,\n        ) => {\n            // nothing - handled by saga\n        },\n        updateTeamBegin: (state, action: PayloadAction<{ teamId: TeamIdT }>) => {\n            const { teamId } = action.payload;\n            const teamEditState = state.byId[teamId] || initialTeamEditState;\n\n            state.byId[teamId] = {\n                ...teamEditState,\n                updateRequest: requestStatus.loading,\n            };\n        },\n        updateTeamSuccess: (state, action: PayloadAction<{ teamId: TeamIdT }>) => {\n            const { teamId } = action.payload;\n            const teamEditState = state.byId[teamId] || initialTeamEditState;\n\n            state.byId[teamId] = {\n                ...teamEditState,\n                updateRequest: requestStatus.ok,\n            };\n        },\n        updateTeamError: (state, action: PayloadAction<{ teamId: TeamIdT; error: Error }>) => {\n            const { teamId, error } = action.payload;\n            const teamEditState = state.byId[teamId] || initialTeamEditState;\n\n            state.byId[teamId] = {\n                ...teamEditState,\n                updateRequest: requestStatus.setError(error),\n            };\n        },\n\n        // Delete team actions\n        deleteTeam: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{ teamId: TeamIdT }>,\n        ) => {\n            // nothing - handled by saga\n        },\n        deleteTeamBegin: (state, action: PayloadAction<{ teamId: TeamIdT }>) => {\n            const { teamId } = action.payload;\n            const teamEditState = state.byId[teamId] || initialTeamEditState;\n\n            state.byId[teamId] = {\n                ...teamEditState,\n                deleteRequest: requestStatus.loading,\n            };\n        },\n        deleteTeamSuccess: (state, action: PayloadAction<{ teamId: TeamIdT }>) => {\n            const { teamId } = action.payload;\n            const teamEditState = state.byId[teamId] || initialTeamEditState;\n\n            state.byId[teamId] = {\n                ...teamEditState,\n                deleteRequest: requestStatus.ok,\n            };\n        },\n        deleteTeamError: (state, action: PayloadAction<{ teamId: TeamIdT; error: Error }>) => {\n            const { teamId, error } = action.payload;\n            const teamEditState = state.byId[teamId] || initialTeamEditState;\n\n            state.byId[teamId] = {\n                ...teamEditState,\n                deleteRequest: requestStatus.setError(error),\n            };\n        },\n\n        resetBrokerTeamEdit: () => {\n            return initialState;\n        },\n    },\n    extraReducers: (builder) => {\n        builder.addCase('auth/destroySession', () => {\n            return initialState;\n        });\n    },\n});\n\nexport const {\n    createTeam,\n    createTeamBegin,\n    createTeamSuccess,\n    createTeamError,\n    updateTeam,\n    updateTeamBegin,\n    updateTeamSuccess,\n    updateTeamError,\n    deleteTeam,\n    deleteTeamBegin,\n    deleteTeamSuccess,\n    deleteTeamError,\n    resetBrokerTeamEdit,\n} = brokerTeamEditSlice.actions;\n\nexport default brokerTeamEditSlice.reducer;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './SkeletonFormatter.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst SkeletonFormatter: React.FC<PropsT> = React.memo(() => {\n    return <div className={cx('skeleton')} />;\n});\n\nexport default SkeletonFormatter;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './RFQListPageLayout.scss';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { OMSRoutesEnum, StyleGuideColorsEnum } from 'common/constants';\nimport { QueryFiltersKeysEnum, QueryFiltersT, QueryKeysEnum } from './query-models';\nimport RFQsTable from 'common/layouts/RFQListPageLayout/RFQsTable/RFQsTable';\nimport { useTranslation } from 'react-i18next';\nimport history from 'common/utils/history';\nimport FiltersTrigger from 'common/components/Table/FiltersTrigger/FiltersTrigger';\nimport SortDropdown, {\n    SortDropdownOptionT,\n    SortDropdownOverlayPositionEnum,\n} from 'common/components/Table/SortDropdown/SortDropdown';\nimport omit from 'lodash/omit';\nimport { PartnerTypeEnum, RFQsQuickFilterEnum, RFQsSortEnum, RFQStatusEnum } from 'common/utils/api/models';\nimport Pagination from 'common/components/Table/Pagination/Pagination';\nimport TableMessage, { TableMessageIconsEnum } from 'common/components/Table/TableMessage/TableMessage';\nimport { RFQT } from 'common/store/rfqs/models';\nimport FiltersSidebarContent from './FiltersSidebarContent/FiltersSidebarContent';\nimport SideBar from 'common/layouts/LeftMenuLayout/SideBar/SideBar';\nimport {\n    createJsonParams,\n    createPageNumberParam,\n    createSortParams,\n    PageSortT,\n    SortDirectionEnum,\n} from 'common/utils/query';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport StickyFooter from 'common/layouts/LeftMenuLayout/StickyFooter/StickyFooter';\nimport { QuickFiltersOptionT } from 'common/components/Table/QuickFilters/QuickFilters';\nimport { selectRFQsByIds, selectRFQsPages, selectRFQsTotal } from 'common/store/rfqs/selectors';\nimport { fetchRFQsPage } from 'common/store/rfqs/actions';\nimport { isNonNil } from 'common/utils';\nimport SearchControl from 'common/components/Table/SearchControl/SearchControl';\nimport TableError from 'common/components/Table/TableError/TableError';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport { prepareFetchPageQuery } from './prepare-fetch-page-query';\nimport ListPageLayout from 'common/layouts/ListPage/ListPageLayout/ListPageLayout';\nimport ListPageHeaderLayout from 'common/layouts/ListPage/ListPageHeaderLayout/ListPageHeaderLayout';\nimport ListPageHeaderTabsLayout from 'common/layouts/ListPage/ListPageHeaderTabsLayout/ListPageHeaderTabsLayout';\nimport { fetchGroupedNotificationCounts } from 'common/store/grouped-notification-counts/actions';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { fetchRFQsStats } from 'common/store/rfqs-stats/actions';\nimport { selectRFQsStats } from 'common/store/rfqs-stats/selectors';\nimport { NotificationLabelThemeEnum } from 'common/components/notifications/NotificationLabel/NotificationLabel';\nimport SelectedFilters from './SelectedFilters/SelectedFilters';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport { rfqsPaginationChannel, rfqsRefreshChannel } from 'common/store/rfqs/channels';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { selectCurrentCompany } from 'common/store/company/selectors';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { useQueryParams } from 'use-query-params';\nimport { checkNeedRenderEmptyState } from 'common/components/Table/utils/check-need-render-empty-state';\nimport { checkFilters } from 'common/components/Table/utils/check-filters';\nimport QuickFiltersButtonGroups from 'common/components/Table/QuickFiltersButtonGroups/QuickFiltersButtonGroups';\nimport { logWarning } from 'common/utils/logger';\nimport OperationUnavailableReasonsAlert from 'common/components/OperationUnavailableReasonsAlert/OperationUnavailableReasonsAlert';\nimport { checkHasOperationUnavailableReasons } from '../../store/company/utils/check-has-operation-unavailable-reasons';\nimport TransparentTrigger from 'common/components/TransparentTrigger/TransparentTrigger';\nimport ChartIcon from 'common/icons/ChartIcon';\nimport { SidebarDataDismissEnum } from 'common/layouts/SideBars/models';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    onOpenRFQDetails: (event: React.MouseEvent, rfqId: RFQIdT | null) => void;\n    onOpenUserDetails: (userId: UserIdT) => void;\n    onOpenRFQStatistics: () => void;\n    isAllowedShowRFQStatistics: boolean;\n    isRFQStatisticsOpen: boolean;\n};\n\nconst quickFilterOptionSeparators: number[] = [];\n\nconst RFQListPageLayout: React.FC<PropsT> = React.memo((props) => {\n    const { partnerId, partnerType } = usePartnerContext();\n\n    const {\n        onOpenRFQDetails,\n        onOpenUserDetails,\n        onOpenRFQStatistics,\n        isAllowedShowRFQStatistics,\n        isRFQStatisticsOpen,\n    } = props;\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n    const total = useSelector(selectRFQsTotal(partnerId));\n    const rfqsPages = useSelector(selectRFQsPages(partnerId));\n    const rfqById = useSelector(selectRFQsByIds(partnerId));\n\n    const currentCompany = useSelector(selectCurrentCompany);\n    const isDisabledCreateOrder = !currentCompany;\n\n    const [isShowFilters, triggerFilters] = React.useState<boolean>(false);\n    const showFilters = (): void => {\n        triggerFilters(true);\n    };\n    const hideFilters = (): void => {\n        triggerFilters(false);\n    };\n\n    const [query, changeQuery] = useQueryParams({\n        [QueryKeysEnum.rfqsPage]: createPageNumberParam(),\n        [QueryKeysEnum.rfqsSort]: createSortParams<RFQsSortEnum>({\n            direction: SortDirectionEnum.DESC,\n            value: RFQsSortEnum.creationDate,\n        }),\n        [QueryKeysEnum.rfqsFilters]: createJsonParams<QueryFiltersT>({}),\n    });\n\n    const pageNumber = query[QueryKeysEnum.rfqsPage];\n    const selectedSort = query[QueryKeysEnum.rfqsSort];\n    const queryFilters = query[QueryKeysEnum.rfqsFilters];\n\n    const page = rfqsPages[pageNumber];\n    const { ids, requestStatus } = page || {};\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId or partnerType in documentVisibilityChangeHandler');\n            return;\n        }\n\n        dispatch(fetchRFQsStats(partnerId));\n\n        const query = prepareFetchPageQuery(partnerType, queryFilters, selectedSort);\n        dispatch(fetchRFQsPage(pageNumber, query, partnerId, { isForceUpdate: false }));\n\n        dispatch(fetchGroupedNotificationCounts({ isForceUpdate: false }));\n    }, [dispatch, pageNumber, selectedSort, queryFilters, partnerId, partnerType]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const refreshPageHandler = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in refreshPageHandler');\n            return;\n        }\n\n        dispatch(fetchRFQsStats(partnerId, { isForceUpdate: true }));\n\n        const query = prepareFetchPageQuery(partnerType, queryFilters, selectedSort);\n        dispatch(fetchRFQsPage(pageNumber, query, partnerId, { isForceUpdate: true }));\n    }, [dispatch, pageNumber, selectedSort, queryFilters, partnerId, partnerType]);\n    useChannelSubscribe(rfqsRefreshChannel, refreshPageHandler);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleRefreshOnError');\n            return;\n        }\n\n        dispatch(fetchRFQsStats(partnerId, { isForceUpdate: true }));\n\n        const query = prepareFetchPageQuery(partnerType, queryFilters, selectedSort);\n        dispatch(fetchRFQsPage(pageNumber, query, partnerId, { isForceUpdate: true }));\n    }, [dispatch, pageNumber, selectedSort, queryFilters, partnerId, partnerType]);\n\n    React.useEffect(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in RFQListPageLayout useEffect');\n            return (): void => {};\n        }\n\n        dispatch(fetchRFQsStats(partnerId));\n\n        const query = prepareFetchPageQuery(partnerType, queryFilters, selectedSort);\n        dispatch(fetchRFQsPage(pageNumber, query, partnerId));\n\n        dispatch(fetchGroupedNotificationCounts({ isForceUpdate: false }));\n\n        return (): void => {\n            // TODO reset\n        };\n    }, [dispatch, pageNumber, selectedSort, queryFilters, partnerId, partnerType]);\n\n    const rfqs = React.useMemo(() => {\n        return (ids || []).map((id): RFQT => rfqById[id as string]).filter(isNonNil);\n    }, [ids, rfqById]);\n\n    const goToPage = React.useCallback(\n        (pageNumber: PageNumberT) => {\n            changeQuery({\n                [QueryKeysEnum.rfqsPage]: pageNumber,\n            });\n        },\n        [changeQuery],\n    );\n\n    const setPageHandler = React.useCallback(\n        ({ pageNumber }: InferChannelEventT<typeof rfqsPaginationChannel>) => {\n            goToPage(pageNumber);\n        },\n        [goToPage],\n    );\n    useChannelSubscribe(rfqsPaginationChannel, setPageHandler);\n\n    const sortOptions: Array<SortDropdownOptionT<RFQsSortEnum>> = React.useMemo(\n        () => [\n            {\n                label: t('common:rfqs-page.table.sorts.creation-date'),\n                value: RFQsSortEnum.creationDate,\n            },\n            {\n                label: t('common:rfqs-page.table.sorts.deadline'),\n                value: RFQsSortEnum.deadline,\n            },\n        ],\n        [t],\n    );\n\n    const handleSelectSort = (sort: PageSortT<RFQsSortEnum>) => {\n        changeQuery({\n            [QueryKeysEnum.rfqsPage]: 0,\n            [QueryKeysEnum.rfqsSort]: sort,\n        });\n    };\n\n    const handleSetStatusFilter = (quickFilterId: RFQsQuickFilterEnum | undefined) => {\n        const prevQueryFilters = query[QueryKeysEnum.rfqsFilters] || {};\n\n        const queryFilters: QueryFiltersT = {\n            ...prevQueryFilters,\n            [QueryFiltersKeysEnum.quickFilter]: quickFilterId,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.rfqsPage]: 0,\n            [QueryKeysEnum.rfqsFilters]: queryFilters,\n        });\n    };\n\n    const handleSetQueryFilters = (selectedQueryFilters: QueryFiltersT) => {\n        changeQuery({\n            [QueryKeysEnum.rfqsPage]: 0,\n            [QueryKeysEnum.rfqsFilters]: selectedQueryFilters,\n        });\n\n        hideFilters();\n    };\n\n    const updateQueryFilters = (queryFiltersChanges: QueryFiltersT) => {\n        const prevQueryFilters = query[QueryKeysEnum.rfqsFilters] || {};\n\n        const queryFilters = {\n            ...prevQueryFilters,\n            ...queryFiltersChanges,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.rfqsPage]: 0,\n            [QueryKeysEnum.rfqsFilters]: queryFilters,\n        });\n    };\n\n    const handleSearch = (searchText: string) => {\n        updateQueryFilters({\n            [QueryFiltersKeysEnum.searchText]: searchText || undefined,\n        });\n    };\n\n    const stats = useSelector(selectRFQsStats);\n\n    const quickFilterOptions: Array<QuickFiltersOptionT<RFQsQuickFilterEnum>> = React.useMemo(\n        () => [\n            {\n                id: undefined,\n                showPriority: 0,\n                hidePriority: 0,\n                label: t('common:rfqs-page.table.quick-filters.all'),\n                testSelector: 'all',\n            },\n            {\n                id: RFQsQuickFilterEnum.open,\n                showPriority: 1,\n                hidePriority: 1,\n                label: t('common:rfqs-page.table.quick-filters.open'),\n                testSelector: RFQsQuickFilterEnum.open,\n                notificationProps: {\n                    count: stats?.countByState[RFQStatusEnum.open],\n                    theme: NotificationLabelThemeEnum.charcoal,\n                },\n            },\n            {\n                id: RFQsQuickFilterEnum.preExpire,\n                showPriority: 2,\n                hidePriority: 2,\n                label: t('common:rfqs-page.table.quick-filters.pre-expire'),\n                testSelector: RFQsQuickFilterEnum.preExpire,\n                notificationProps: {\n                    count: stats?.countByState[RFQStatusEnum.expireSoon],\n                    theme: NotificationLabelThemeEnum.orange,\n                },\n            },\n            {\n                id: RFQsQuickFilterEnum.expired,\n                showPriority: 3,\n                hidePriority: 3,\n                label: t('common:rfqs-page.table.quick-filters.expired'),\n                testSelector: RFQsQuickFilterEnum.expired,\n            },\n            {\n                id: RFQsQuickFilterEnum.completed,\n                showPriority: 4,\n                hidePriority: 4,\n                label: t('common:rfqs-page.table.quick-filters.completed'),\n                testSelector: RFQsQuickFilterEnum.completed,\n            },\n            {\n                id: RFQsQuickFilterEnum.closed,\n                showPriority: 5,\n                hidePriority: 5,\n                label: t('common:rfqs-page.table.quick-filters.closed'),\n                testSelector: RFQsQuickFilterEnum.closed,\n            },\n        ],\n        [stats, t],\n    );\n\n    const goToCreateOrderForm = (): void => {\n        history.push({\n            pathname: OMSRoutesEnum.newOrder,\n        });\n    };\n\n    const renderTableMessage = () => {\n        if (!checkNeedRenderEmptyState(rfqs, requestStatus)) {\n            return null;\n        }\n\n        if (requestStatus?.error) {\n            return <TableError error={requestStatus?.error} onRetry={handleRefreshOnError} />;\n        }\n\n        const { hasPrimaryQueryFilters, hasSecondaryQueryFilters } = checkFilters(\n            [queryFilters[QueryFiltersKeysEnum.quickFilter]],\n            [omit(queryFilters, [QueryFiltersKeysEnum.quickFilter])],\n        );\n\n        if (requestStatus?.ok && hasSecondaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.notFound}\n                    title={t('common:rfqs-page.table.messages.not-found.title')}\n                    description={t('common:rfqs-page.table.messages.not-found.description')}\n                    isShowAction\n                    actionTitle={t('common:rfqs-page.table.messages.not-found.action')}\n                    actionTheme={ButtonThemeEnum.secondary}\n                    onActionClick={() => handleSetQueryFilters({})}\n                    testSelector=\"empty-state-has-secondary-filters\"\n                />\n            );\n        }\n\n        if (requestStatus?.ok && hasPrimaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.empty}\n                    title={t('common:rfqs-page.table.messages.empty-quick-filters.title')}\n                    description=\"\"\n                    testSelector=\"empty-state-has-primary-filters\"\n                    isShowAction={false}\n                />\n            );\n        }\n\n        return (\n            <TableMessage\n                iconType={TableMessageIconsEnum.empty}\n                title={t('common:rfqs-page.table.messages.empty.title')}\n                description={t('common:rfqs-page.table.messages.empty.description')}\n                testSelector=\"empty\"\n                isShowAction\n                actionTitle={t('common:rfqs-page.table.messages.empty.action')}\n                actionTheme={ButtonThemeEnum.primary}\n                onActionClick={goToCreateOrderForm}\n            />\n        );\n    };\n\n    return (\n        <>\n            <ContentMargins>\n                <ListPageLayout>\n                    {quickFilterOptions && (\n                        <ListPageHeaderTabsLayout>\n                            <QuickFiltersButtonGroups\n                                options={quickFilterOptions}\n                                revertSeparatorIndexes={quickFilterOptionSeparators}\n                                selectedId={queryFilters[QueryFiltersKeysEnum.quickFilter]}\n                                onSelect={handleSetStatusFilter}\n                                moreStatusesLabel={t('common:rfqs-page.table.quick-filters.more-statuses')}\n                            />\n                        </ListPageHeaderTabsLayout>\n                    )}\n                    <ListPageHeaderLayout\n                        withTopPadding\n                        leftToolsNode={\n                            <>\n                                <FiltersTrigger\n                                    title={t('common:rfqs-page.table.filters.trigger')}\n                                    isActive={isShowFilters}\n                                    onClick={showFilters}\n                                />\n                                <SortDropdown\n                                    overlayPosition={SortDropdownOverlayPositionEnum.left}\n                                    selectedValue={selectedSort}\n                                    options={sortOptions}\n                                    onSelect={handleSelectSort}\n                                />\n                                <SearchControl\n                                    placeholder={t('common:rfqs-page.table.search.placeholder')}\n                                    searchText={queryFilters[QueryFiltersKeysEnum.searchText]}\n                                    onChangeSearchText={handleSearch}\n                                />\n                                {isAllowedShowRFQStatistics && (\n                                    <TransparentTrigger\n                                        onClick={onOpenRFQStatistics}\n                                        data-dismiss={SidebarDataDismissEnum.trigger}\n                                        isToggled={isRFQStatisticsOpen}\n                                        label={t('common:rfqs-page.actions.rfq-statistics')}\n                                        leftIcon={\n                                            <ChartIcon\n                                                fillColor={StyleGuideColorsEnum.transparent}\n                                                strokeColor={StyleGuideColorsEnum.charcoal}\n                                            />\n                                        }\n                                        testSelector=\"rfq-statistics\"\n                                    />\n                                )}\n                            </>\n                        }\n                        filterTagsNode={\n                            <SelectedFilters\n                                isCompact\n                                queryFilters={queryFilters}\n                                setQueryFilters={handleSetQueryFilters}\n                            />\n                        }\n                        rightToolsNode={\n                            <>\n                                {!checkHasOperationUnavailableReasons(currentCompany) && (\n                                    <Button\n                                        theme={ButtonThemeEnum.primary}\n                                        type=\"button\"\n                                        onClick={goToCreateOrderForm}\n                                        isDisabled={isDisabledCreateOrder}\n                                        testSelector=\"create-new-order\"\n                                    >\n                                        {t('common:rfqs-page.actions.create-rfq')}\n                                    </Button>\n                                )}\n                            </>\n                        }\n                    />\n                    {checkHasOperationUnavailableReasons(currentCompany) ? (\n                        <OperationUnavailableReasonsAlert\n                            className={cx('operation-unavailable-reasons-alert')}\n                            operationUnavailableReasons={currentCompany?.operationUnavailableReasons}\n                        />\n                    ) : null}\n                    {renderTableMessage()}\n                    <RFQsTable\n                        rfqs={rfqs}\n                        goToRFQDetails={onOpenRFQDetails}\n                        goToUserDetails={onOpenUserDetails}\n                        isLoading={requestStatus?.loading}\n                    />\n                </ListPageLayout>\n            </ContentMargins>\n            <StickyFooter>\n                <Pagination current={pageNumber} count={total?.pageCount} goToPage={goToPage} />\n            </StickyFooter>\n            <SideBar isShow={isShowFilters} onClose={hideFilters}>\n                {(onClose) => (\n                    <FiltersSidebarContent\n                        onClose={onClose}\n                        queryFilters={queryFilters}\n                        setQueryFilters={handleSetQueryFilters}\n                        isShowSourceFilter={partnerType === PartnerTypeEnum.shipper}\n                        isShowExtendedSourceFilter={partnerType === PartnerTypeEnum.broker}\n                        isShowShipperFilter={partnerType === PartnerTypeEnum.broker}\n                    />\n                )}\n            </SideBar>\n        </>\n    );\n});\n\nexport default RFQListPageLayout;\n","import {\n    ApiReservePreviewQueryT,\n    ReservePreviewQueryChangesT,\n    ReservePreviewQueryT,\n    ReserveQueryChangesT,\n    ReserveT,\n} from '../models';\nimport isUndefined from 'lodash/isUndefined';\nimport isBoolean from 'lodash/isBoolean';\nimport keyBy from 'lodash/keyBy';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { OrderCreationReservePointTypeEnum } from 'common/utils/api/models';\nimport isNumber from 'lodash/isNumber';\n\nconst setReversePreviewDefaultQuery = (\n    queryChanges: ReservePreviewQueryT | null,\n    reserve: ReserveT | null,\n): ReservePreviewQueryT | null => {\n    if (!queryChanges) {\n        return null;\n    }\n\n    const newQueryChanges: ReservePreviewQueryT = {\n        ...queryChanges,\n    };\n\n    if (reserve?.points?.length) {\n        newQueryChanges.timeWindows = [];\n\n        reserve.points.forEach((point, index) => {\n            const reservePreviewIndex = queryChanges?.timeWindows?.findIndex((timeWindow) => {\n                return timeWindow?.addressAlias === point.addressAlias;\n            });\n\n            if (isNumber(reservePreviewIndex) && reservePreviewIndex !== -1) {\n                newQueryChanges.timeWindows[index] = {\n                    ...queryChanges.timeWindows[reservePreviewIndex],\n                };\n            } else {\n                newQueryChanges.timeWindows[index] = {\n                    addressAlias: point.addressAlias,\n                    id: point.id,\n                };\n            }\n\n            if (point.defaultTimeWindow?.start && !newQueryChanges.timeWindows[index].timeWindowFrom) {\n                newQueryChanges.timeWindows[index].timeWindowFrom = point.defaultTimeWindow?.start;\n            }\n\n            if (point.defaultTimeWindow?.end && !newQueryChanges.timeWindows[index].timeWindowTo) {\n                newQueryChanges.timeWindows[index].timeWindowTo = point.defaultTimeWindow?.end;\n            }\n        });\n    }\n\n    return newQueryChanges;\n};\n\nconst getPreviewReverseQueryChanges = (\n    changes: ReserveQueryChangesT,\n    prevReservePreviewQuery: ReservePreviewQueryT | null,\n    reserve: ReserveT | null,\n): ReservePreviewQueryChangesT => {\n    const queryChanges: ReservePreviewQueryChangesT = {};\n\n    const isAvailableLane = reserve?.contractLanes?.some((contractLane) => contractLane?.id === changes?.laneId);\n    const isResetChange = changes?.laneId === null;\n    if ((changes?.laneId && isAvailableLane) || isResetChange) {\n        queryChanges.laneId = changes?.laneId;\n    }\n\n    const prepareRoutePointChanges = (\n        prevRoutePointChanges: ReservePreviewQueryT['timeWindows'][number],\n        changes: NonNullable<ReserveQueryChangesT['fullRouteChange']>[number] | null | undefined,\n    ): ReservePreviewQueryT['timeWindows'][number] => {\n        const result: ReservePreviewQueryT['timeWindows'][number] = {\n            ...prevRoutePointChanges,\n        };\n\n        const timeWindowFrom = changes?.timeWindowFrom;\n        if (!isUndefined(timeWindowFrom)) {\n            result.timeWindowFrom = timeWindowFrom;\n        }\n\n        const timeWindowTo = changes?.timeWindowTo;\n        if (!isUndefined(timeWindowTo)) {\n            result.timeWindowTo = timeWindowTo;\n        }\n\n        const isBrokerTimeWindow = changes?.isBrokerTimeWindow;\n        if (isBoolean(isBrokerTimeWindow)) {\n            result.isBrokerTimeWindow = isBrokerTimeWindow;\n        }\n\n        return result;\n    };\n\n    if (changes?.fullRouteChange) {\n        changes.fullRouteChange.forEach((routePointChanges, index) => {\n            if (!queryChanges?.timeWindows) {\n                queryChanges.timeWindows = [];\n            }\n\n            queryChanges.timeWindows[index] = prepareRoutePointChanges({}, routePointChanges);\n        });\n    }\n\n    if (changes?.routePointChange) {\n        const { addressAlias, changes: data } = changes.routePointChange;\n\n        const targetIndex = prevReservePreviewQuery?.timeWindows?.findIndex(\n            (timeWindow) => timeWindow?.addressAlias === addressAlias,\n        );\n        if (typeof targetIndex === 'number' && targetIndex !== -1) {\n            const prevQueryChangesTimeWindows = cloneDeep(prevReservePreviewQuery?.timeWindows || []);\n\n            prevQueryChangesTimeWindows[targetIndex] = prepareRoutePointChanges(\n                prevQueryChangesTimeWindows[targetIndex],\n                data,\n            );\n\n            queryChanges.timeWindows = prevQueryChangesTimeWindows;\n        }\n    }\n\n    if (changes?.addRoutePoint) {\n        const { beforeAddressAlias, changes: data } = changes.addRoutePoint;\n\n        const targetIndex = prevReservePreviewQuery?.timeWindows?.findIndex(\n            (timeWindow) => timeWindow?.addressAlias === beforeAddressAlias,\n        );\n        if (typeof targetIndex === 'number' && targetIndex !== -1) {\n            const prevQueryChangesTimeWindows = cloneDeep(prevReservePreviewQuery?.timeWindows || []);\n            prevQueryChangesTimeWindows.splice(targetIndex + 1, 0, prepareRoutePointChanges({}, data));\n\n            queryChanges.timeWindows = prevQueryChangesTimeWindows;\n        }\n    }\n\n    if (changes?.deleteRoutePoint) {\n        const { addressAlias } = changes.deleteRoutePoint;\n\n        const targetIndex = prevReservePreviewQuery?.timeWindows?.findIndex(\n            (timeWindow) => timeWindow?.addressAlias === addressAlias,\n        );\n        if (typeof targetIndex === 'number' && targetIndex !== -1) {\n            const prevQueryChangesTimeWindows = cloneDeep(prevReservePreviewQuery?.timeWindows || []);\n\n            prevQueryChangesTimeWindows.splice(targetIndex, 1);\n\n            queryChanges.timeWindows = prevQueryChangesTimeWindows;\n        }\n    }\n\n    // If any time window is fully empty, later windows may be invalid; clear this slot and all following ones\n    // see: logic useEditRouteWatcher\n    if (queryChanges.timeWindows) {\n        let isClearAfterEmptyTimeWindows = false;\n\n        queryChanges.timeWindows = queryChanges.timeWindows.map((timeWindow) => {\n            if (!timeWindow.timeWindowFrom && !timeWindow.timeWindowTo) {\n                isClearAfterEmptyTimeWindows = true;\n            }\n\n            if (isClearAfterEmptyTimeWindows) {\n                return {\n                    ...timeWindow,\n                    isBrokerTimeWindow: false,\n                    timeWindowFrom: null,\n                    timeWindowTo: null,\n                };\n            }\n\n            return timeWindow;\n        });\n    }\n\n    const reserveId = reserve?.reserveId || null;\n    if (reserveId) {\n        queryChanges.reserveId = reserveId;\n    }\n\n    return queryChanges;\n};\n\nconst mergePreviewReverseQuery = (\n    prevQuery: ReservePreviewQueryT | null,\n    changes: ReservePreviewQueryChangesT,\n): ReservePreviewQueryT | null => {\n    const query: ReservePreviewQueryT = {\n        reserveId: null,\n        laneId: null,\n        ...prevQuery,\n        ...changes,\n        timeWindows: changes?.timeWindows || prevQuery?.timeWindows || [],\n    };\n\n    return query;\n};\n\nconst correctionPreviewReverseQueryAfterReserve = (\n    reservePreviewQuery: ReservePreviewQueryT | null,\n    reserve: ReserveT | null,\n): ReservePreviewQueryT | null => {\n    if (!reservePreviewQuery) {\n        return null;\n    }\n\n    const correctedReservePreviewQuery: ReservePreviewQueryT = {\n        ...reservePreviewQuery,\n    };\n\n    if (correctedReservePreviewQuery?.laneId && reserve) {\n        const availableLanes = reserve.contractLanes || [];\n        const isAvailableLane = availableLanes.some(\n            (contractLane) => contractLane?.id === correctedReservePreviewQuery?.laneId,\n        );\n        if (!isAvailableLane) {\n            correctedReservePreviewQuery.laneId = null;\n        }\n    }\n\n    return correctedReservePreviewQuery;\n};\n\nconst getApiPreviewReverseQuery = (\n    query: ReservePreviewQueryT | null,\n    reserve: ReserveT | null,\n): ApiReservePreviewQueryT | null => {\n    if (!query) {\n        return null;\n    }\n\n    const { reserveId } = query;\n    if (!reserveId) {\n        return null;\n    }\n\n    const points = reserve?.points || [];\n    const pointsById = keyBy(points, (point) => point.id);\n\n    const timeWindows = points\n        .map((point, index) => {\n            const timeWindow = query.timeWindows[index] || null;\n\n            return {\n                brokerWindow: !!timeWindow?.isBrokerTimeWindow,\n                from: timeWindow?.timeWindowFrom || null,\n                to: timeWindow?.timeWindowTo || null,\n                id: point.id,\n            };\n        })\n        .filter((timeWindow) => {\n            const point = pointsById[timeWindow?.id as string];\n\n            return point?.type === OrderCreationReservePointTypeEnum.shipment;\n        });\n\n    const checkIsValidTimeWindow = (\n        timeWindow: (typeof timeWindows)[number],\n    ): timeWindow is NonNullable<ApiReservePreviewQueryT['timeWindows']>[number] => {\n        return !!timeWindow?.from && !!timeWindow?.to && !!timeWindow?.id;\n    };\n\n    const isValidTimeWindows = timeWindows?.every(checkIsValidTimeWindow) && !!timeWindows?.length;\n    if (!isValidTimeWindows) {\n        return null;\n    }\n\n    return {\n        timeWindows,\n        reserveId,\n    };\n};\n\nexport {\n    getPreviewReverseQueryChanges,\n    mergePreviewReverseQuery,\n    getApiPreviewReverseQuery,\n    setReversePreviewDefaultQuery,\n    correctionPreviewReverseQueryAfterReserve,\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"alerts\":\"TruckDetails__alerts___HXHAy\",\"fields\":\"TruckDetails__fields___Wpxv3\",\"field--placeholder\":\"TruckDetails__field--placeholder___jsZru\",\"field--country-code\":\"TruckDetails__field--country-code___WuWMR\",\"field--vin\":\"TruckDetails__field--vin___iUtSb\",\"field--emission-standard\":\"TruckDetails__field--emission-standard___PGAjj\",\"field--cabin-color\":\"TruckDetails__field--cabin-color___tquM6\",\"field--contract\":\"TruckDetails__field--contract___L1Njb\",\"field--rate\":\"TruckDetails__field--rate___nwZBK\",\"field--fuel-consumption\":\"TruckDetails__field--fuel-consumption___jVzpm\",\"field--oil-percent\":\"TruckDetails__field--oil-percent___O6MvU\",\"fadeIn\":\"TruckDetails__fadeIn___lCrYZ\",\"blinking\":\"TruckDetails__blinking___BQ62K\"};","import * as React from 'react';\n\nimport { Redirect } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\n\nimport { authRoutesEnum, QueryKeysEnum } from 'common/constants';\nimport { selectIsPendingUser } from 'common/store/user/selectors';\nimport { formatQuery } from 'common/utils/query';\nimport { getAuthReturnUrl } from 'common/utils/auth-return-url';\n\ntype PropsT = {};\n\nconst RedirectPendingUser: React.FC<PropsT> = React.memo(() => {\n    const isPendingUser = useSelector(selectIsPendingUser);\n    if (isPendingUser) {\n        return (\n            <Redirect\n                to={{\n                    pathname: authRoutesEnum.continueSignUp,\n                    search: formatQuery({\n                        [QueryKeysEnum.returnUrl]: getAuthReturnUrl(),\n                    }),\n                }}\n            />\n        );\n    }\n\n    return null;\n});\n\nexport default RedirectPendingUser;\n","// extracted by mini-css-extract-plugin\nexport default {\"date\":\"CreateUpdateCell__date___B02g3\",\"fadeIn\":\"CreateUpdateCell__fadeIn___ODgwU\",\"blinking\":\"CreateUpdateCell__blinking___C5Ny_\"};","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    FETCH_PARTNER_DETAILS_REQUEST,\n    FetchPartnerDetailsActionT,\n    LOCK_PARTNER_REQUEST,\n    LINK_WITH_EXTERNAL_PLATFORM_PARTNER_REQUEST,\n    LinkWithExternalPlatformPartnerActionT,\n    LockPartnerActionT,\n    UNLINK_WITH_EXTERNAL_PLATFORM_PARTNER_REQUEST,\n    UnlinkWithExternalPlatformPartnerActionT,\n    UPDATE_PARTNER_DETAILS_REQUEST,\n    UpdatePartnerDetailsActionT,\n    VERIFY_PARTNER_DETAILS_REQUEST,\n    VerifyPartnerDetailsActionT,\n} from './types';\nimport {\n    fetchPartnerDetailsBegin,\n    fetchPartnerDetailsError,\n    fetchPartnerDetailsSuccess,\n    lockPartnerBegin,\n    lockPartnerError,\n    lockPartnerSuccess,\n    linkExternalPlatformPartnerBegin,\n    linkExternalPlatformPartnerError,\n    linkExternalPlatformPartnerSuccess,\n    updatePartnerDetailsBegin,\n    updatePartnerDetailsError,\n    updatePartnerDetailsSuccess,\n    verifyPartnerDetailsBegin,\n    verifyPartnerDetailsError,\n    verifyPartnerDetailsSuccess,\n} from './actions';\nimport { selectPartnerDetailsById } from 'broker-admin/store/partner/details/selectors';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { logWarning } from 'common/utils/logger';\nimport { partnersRefreshChannel } from 'broker-admin/store/partners/channels';\nimport { partnerDetailsRefreshChannel } from 'broker-admin/store/partner/details/channels';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { companyRefreshChannel } from 'common/store/company/channels';\nimport { normalizePartnerDetails } from 'broker-admin/store/partner/details/utils/normalize-partner-details';\nimport isEqual from 'lodash/isEqual';\nimport sortBy from 'lodash/sortBy';\nimport pick from 'lodash/pick';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport { CommonAlertTypeEnum, CommonAnyAlert } from 'common/components/toasts/AlertToastsManager/models';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { BrokerAlertTypeEnum, BrokerAnyAlert } from 'broker-admin/components/toasts/models';\n\nconst isArraysEqualUnordered = <T>(arr1: T[] | undefined, arr2: T[] | undefined) => {\n    if (arr1?.length !== arr2?.length) {\n        return false;\n    }\n\n    return isEqual(sortBy(arr1), sortBy(arr2));\n};\n\nfunction* fetchPartnerDetailsSaga(action: FetchPartnerDetailsActionT): WrapGeneratorT<void> {\n    const { companyId } = action;\n\n    yield put(fetchPartnerDetailsBegin());\n\n    const [error, partnerDetails]: ReturnApiT<typeof brokerTranziitApi.fetchPartnerDetails> =\n        yield brokerTranziitApi.fetchPartnerDetails(companyId);\n\n    if (error) {\n        yield put(fetchPartnerDetailsError(error));\n        return;\n    }\n\n    yield put(fetchPartnerDetailsSuccess(normalizePartnerDetails(partnerDetails)));\n}\n\nfunction* updatePartnerDetailsSaga(action: UpdatePartnerDetailsActionT): WrapGeneratorT<void> {\n    const { partnerDetailsChanges, externalBusinessPartnerId, mainContactChanges, partnerType, companyId, teams } =\n        action;\n\n    const partnerDetailsById: ReturnType<typeof selectPartnerDetailsById> = yield select(selectPartnerDetailsById);\n    const partnerDetails = partnerDetailsById[companyId];\n    if (!partnerDetails) {\n        logWarning('empty partnerDetails, failed update partern details');\n        return;\n    }\n\n    yield put(updatePartnerDetailsBegin());\n    let isShowBusinessPartnerUpdatedAlert = false;\n\n    const currentParentDetails = pick(partnerDetails, [\n        'billingAddress',\n        'billingEmail',\n        'legalAddress',\n        'name',\n        'postalAddress',\n    ]);\n    const hasParentDetailsChanges = Boolean(\n        partnerDetailsChanges && !isEqual(currentParentDetails, partnerDetailsChanges),\n    );\n    if (hasParentDetailsChanges && partnerDetailsChanges) {\n        const [error1]: ReturnApiT<typeof brokerTranziitApi.updatePartnerDetails> =\n            yield brokerTranziitApi.updatePartnerDetails(companyId, partnerDetailsChanges);\n        if (error1) {\n            yield put(updatePartnerDetailsError(error1));\n            return;\n        }\n        isShowBusinessPartnerUpdatedAlert = true;\n    }\n\n    const hasExternalBusinessPartnerChanges = Boolean(\n        externalBusinessPartnerId && externalBusinessPartnerId !== partnerDetails.externalBusinessPartnerId,\n    );\n    if (hasExternalBusinessPartnerChanges) {\n        const [externalBusinessPartnerError]: ReturnApiT<typeof brokerTranziitApi.linkWithExternalPlatformPartner> =\n            yield brokerTranziitApi.linkWithExternalPlatformPartner({\n                businessPartnerId: externalBusinessPartnerId as PartnerIdT,\n                internalCompanyId: companyId,\n            });\n        if (externalBusinessPartnerError) {\n            yield put(updatePartnerDetailsError(externalBusinessPartnerError));\n            return;\n        }\n        isShowBusinessPartnerUpdatedAlert = true;\n    }\n\n    const hasMainContactChanges = Boolean(\n        mainContactChanges && mainContactChanges.mainContactId !== partnerDetails.mainContactInfo?.id,\n    );\n    if (hasMainContactChanges && mainContactChanges?.mainContactId) {\n        const [error2]: ReturnApiT<typeof commonTranziitApi.setMainContactForPartner> =\n            yield commonTranziitApi.setMainContactForPartner(companyId, mainContactChanges?.mainContactId);\n        if (error2) {\n            yield put(updatePartnerDetailsError(error2));\n            return;\n        }\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.mainContactChanged,\n                    data: {},\n                }),\n            ),\n        );\n    }\n\n    const currentTeamIds = partnerDetails.teams?.map((team) => team.id);\n    const hasTeamChanges = Boolean(teams && !isArraysEqualUnordered(currentTeamIds, teams));\n    if (hasTeamChanges && teams) {\n        const [error3]: ReturnApiT<typeof brokerTranziitApi.assignTeamsForPartner> =\n            yield brokerTranziitApi.assignTeamsForPartner(companyId, { teams });\n        if (error3) {\n            yield put(updatePartnerDetailsError(error3));\n            return;\n        }\n        isShowBusinessPartnerUpdatedAlert = true;\n    }\n\n    yield put(\n        updatePartnerDetailsSuccess({\n            ...partnerDetails,\n            ...(partnerDetailsChanges || {}),\n            ...(hasExternalBusinessPartnerChanges ? { billingId: externalBusinessPartnerId as PartnerIdT } : {}),\n            ...(hasMainContactChanges && mainContactChanges?.mainContactId\n                ? {\n                      mainContactId: mainContactChanges.mainContactId,\n                  }\n                : {}),\n            teams: partnerDetails.teams,\n        }),\n    );\n    if (isShowBusinessPartnerUpdatedAlert) {\n        yield put(\n            addAlert(\n                new BrokerAnyAlert({\n                    type: BrokerAlertTypeEnum.businessPartnerUpdated,\n                    data: {},\n                }),\n            ),\n        );\n    }\n\n    partnersRefreshChannel.emit({});\n    partnerDetailsRefreshChannel.emit({});\n\n    // broker company is single\n    if (partnerType === PartnerTypeEnum.broker) {\n        companyRefreshChannel.emit({});\n    }\n}\n\nfunction* verifyPartnerDetailsSaga(action: VerifyPartnerDetailsActionT): WrapGeneratorT<void> {\n    const { isVerify, companyId, addressType } = action;\n\n    yield put(verifyPartnerDetailsBegin());\n\n    let response: ReturnApiT<\n        typeof brokerTranziitApi.verifyPartnerAddress | typeof brokerTranziitApi.unVerifyPartnerAddress\n    >;\n    if (isVerify) {\n        response = yield brokerTranziitApi.verifyPartnerAddress(companyId, addressType);\n    } else {\n        response = yield brokerTranziitApi.unVerifyPartnerAddress(companyId, addressType);\n    }\n\n    const [error] = response;\n    if (error) {\n        yield put(verifyPartnerDetailsError(error));\n        return;\n    }\n\n    yield put(verifyPartnerDetailsSuccess());\n    if (isVerify) {\n        yield put(\n            addAlert(\n                new BrokerAnyAlert({\n                    type: BrokerAlertTypeEnum.businessPartnerAddressVerified,\n                    data: {},\n                }),\n            ),\n        );\n    } else {\n        yield put(\n            addAlert(\n                new BrokerAnyAlert({\n                    type: BrokerAlertTypeEnum.businessPartnerAddressUnverified,\n                    data: {},\n                }),\n            ),\n        );\n    }\n\n    partnersRefreshChannel.emit({});\n    partnerDetailsRefreshChannel.emit({});\n}\n\nfunction* lockPartnerDetailsSaga(action: LockPartnerActionT): WrapGeneratorT<void> {\n    const { isLock, companyId } = action;\n\n    yield put(lockPartnerBegin());\n\n    let response: ReturnApiT<typeof brokerTranziitApi.lockPartner | typeof brokerTranziitApi.unlockPartner>;\n    if (isLock) {\n        response = yield brokerTranziitApi.lockPartner(companyId);\n    } else {\n        response = yield brokerTranziitApi.unlockPartner(companyId);\n    }\n\n    const [error] = response;\n    if (error) {\n        yield put(lockPartnerError(error));\n        return;\n    }\n\n    yield put(lockPartnerSuccess());\n    if (isLock) {\n        yield put(\n            addAlert(\n                new BrokerAnyAlert({\n                    type: BrokerAlertTypeEnum.businessPartnerLocked,\n                    data: {},\n                }),\n            ),\n        );\n    } else {\n        yield put(\n            addAlert(\n                new BrokerAnyAlert({\n                    type: BrokerAlertTypeEnum.businessPartnerUnlocked,\n                    data: {},\n                }),\n            ),\n        );\n    }\n\n    partnersRefreshChannel.emit({});\n    partnerDetailsRefreshChannel.emit({});\n}\n\nfunction* linkWithExternalPlatformPartnerSaga(action: LinkWithExternalPlatformPartnerActionT): WrapGeneratorT<void> {\n    const { businessPartnerId, internalCompanyId } = action;\n\n    yield put(linkExternalPlatformPartnerBegin());\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.linkWithExternalPlatformPartner> =\n        yield brokerTranziitApi.linkWithExternalPlatformPartner({ businessPartnerId, internalCompanyId });\n    if (error) {\n        yield put(linkExternalPlatformPartnerError(error));\n        return;\n    }\n\n    yield put(linkExternalPlatformPartnerSuccess());\n    yield put(\n        addAlert(\n            new BrokerAnyAlert({\n                type: BrokerAlertTypeEnum.businessPartnerLinkedToExternalProfile,\n                data: {},\n            }),\n        ),\n    );\n\n    partnersRefreshChannel.emit({});\n    partnerDetailsRefreshChannel.emit({});\n}\n\nfunction* unlinkWithExternalPlatformPartnerSaga(\n    action: UnlinkWithExternalPlatformPartnerActionT,\n): WrapGeneratorT<void> {\n    const { internalCompanyId } = action;\n\n    yield put(linkExternalPlatformPartnerBegin());\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.unlinkWithExternalPlatformPartner> =\n        yield brokerTranziitApi.unlinkWithExternalPlatformPartner(internalCompanyId);\n    if (error) {\n        yield put(linkExternalPlatformPartnerError(error));\n        return;\n    }\n\n    yield put(linkExternalPlatformPartnerSuccess());\n    yield put(\n        addAlert(\n            new BrokerAnyAlert({\n                type: BrokerAlertTypeEnum.businessPartnerUnlinkedFromExternalProfile,\n                data: {},\n            }),\n        ),\n    );\n\n    partnersRefreshChannel.emit({});\n    partnerDetailsRefreshChannel.emit({});\n}\n\nfunction* userSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_PARTNER_DETAILS_REQUEST, fetchPartnerDetailsSaga);\n    yield takeEvery(UPDATE_PARTNER_DETAILS_REQUEST, updatePartnerDetailsSaga);\n    yield takeEvery(VERIFY_PARTNER_DETAILS_REQUEST, verifyPartnerDetailsSaga);\n    yield takeEvery(LOCK_PARTNER_REQUEST, lockPartnerDetailsSaga);\n    yield takeEvery(LINK_WITH_EXTERNAL_PLATFORM_PARTNER_REQUEST, linkWithExternalPlatformPartnerSaga);\n    yield takeEvery(UNLINK_WITH_EXTERNAL_PLATFORM_PARTNER_REQUEST, unlinkWithExternalPlatformPartnerSaga);\n}\n\nexport default userSaga;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    isInvert?: boolean;\n    className?: string;\n    fillColor: StyleGuideColorsEnum;\n};\n\nconst ExpandIcon: React.FC<PropsT> = (props) => {\n    const { isInvert, className, fillColor, ...restProps } = props;\n\n    return (\n        <svg\n            xmlns=\"http://www.w3.org/2000/svg\"\n            width={20}\n            height={20}\n            viewBox=\"0 0 20 20\"\n            style={{\n                transform: `rotate(${isInvert ? '180' : '0'}deg)`,\n            }}\n            className={className}\n            {...restProps}\n        >\n            <path\n                d=\"M13.293 7.293a1 1 0 011.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L10 10.586l3.293-3.293z\"\n                fill={fillColor}\n                fillRule=\"evenodd\"\n            />\n        </svg>\n    );\n};\n\nExpandIcon.displayName = 'ExpandIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n};\n\nexport { storyProps };\nexport default ExpandIcon;\n","import isNumber from 'lodash/isNumber';\n\nexport const getValuesDiff = (valueA: number | null | undefined, valueB: number | null | undefined): number | null => {\n    if (!isNumber(valueA) || !isNumber(valueB)) {\n        return null;\n    }\n\n    return valueA - valueB;\n};\n\nexport const getDiffPercent = (diff: number | null | undefined, base: number | null | undefined): null | number => {\n    if (!isNumber(diff) || !isNumber(base)) {\n        return null;\n    }\n\n    return Math.abs(Math.round((base ? diff / base : 0) * 100));\n};\n","import * as React from 'react';\nimport { CommonSidebarDataT, CommonSidebarsTypeEnum, SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { AddTrailerSidebarDataT } from 'common/layouts/SideBars/contents/AddTrailerSidebarContent/models';\nimport useCloseSidebarAfterRequest from 'common/utils/hooks/useCloseSidebarAfterRequest';\nimport { useSelector } from 'react-redux';\nimport EditTrailerSidebarContent from 'common/layouts/CommonEditableTrailerDetailsLayout/EditTrailerSidebarContent/EditTrailerSidebarContent';\nimport { selectAddTrailerRequestStatus } from 'common/store/trailers/selectors';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\n\ntype PropsT = SidebarContentPropsT<AddTrailerSidebarDataT, CommonSidebarDataT>;\n\nconst AddTrailerSidebarContent: React.FC<PropsT> = (props) => {\n    const { data, onGoBack, onClose, setNeedCloseConfirmation, onOpenNextSidebar } = props;\n\n    const addTrailerRequestStatus = useSelector(selectAddTrailerRequestStatus(data.partnerId));\n    useCloseSidebarAfterRequest(addTrailerRequestStatus, onGoBack || onClose);\n\n    const handleOpenTruckDetails = (truckId: TruckIdT) => {\n        onOpenNextSidebar({\n            type: CommonSidebarsTypeEnum.truckDetails,\n            partnerId: data.partnerId,\n            truckId,\n        });\n    };\n\n    const handleOpenTrailerDetails = (trailerId: TrailerIdT) => {\n        onOpenNextSidebar({\n            type: CommonSidebarsTypeEnum.trailerDetails,\n            partnerId: data.partnerId,\n            trailerId,\n        });\n    };\n\n    const handleOpenUserDetails = (userId: UserIdT, isBrokerUser?: boolean) => {\n        onOpenNextSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId: data.partnerId,\n            partnerType: isBrokerUser ? PartnerTypeEnum.broker : PartnerTypeEnum.carrier,\n            userId,\n        });\n    };\n\n    if (!onClose) {\n        return null;\n    }\n\n    return (\n        <EditTrailerSidebarContent\n            partnerId={data.partnerId}\n            trailerId={null}\n            onClose={onClose}\n            onCancel={onClose}\n            setNeedCloseConfirmation={setNeedCloseConfirmation}\n            onOpenTrailerDetails={handleOpenTrailerDetails}\n            onOpenTruckDetails={handleOpenTruckDetails}\n            onOpenUserDetails={handleOpenUserDetails}\n        />\n    );\n};\n\nexport default AddTrailerSidebarContent;\n","import React, { useContext, useEffect } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './SetUnavailableForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport { useFormik } from 'formik';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { prepareQuery } from './prepare-query';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { AssetTypeEnum, StyleGuideColorsEnum } from 'common/constants';\nimport PinIcon, { PinIconProps } from 'common/icons/PinIcon';\nimport OpenedDatePicker from 'design-system/components/date-pickers/OpenedDatePicker/OpenedDatePicker';\nimport { getDateFromDate, getDatesBetweenDates } from 'common/utils/time';\nimport { SetUnavailableVehicleQueryT } from 'common/utils/api/models';\nimport { selectVehicleSchedule } from 'common/store/vehicle-schedules/selectors';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { fetchVehicleSchedule } from 'common/store/vehicle-schedules/actions';\nimport uniq from 'lodash/uniq';\nimport { isNonNil } from 'common/utils';\nimport GeoSuggest from 'common/components/GeoSuggest/GeoSuggest';\nimport AssetServiceLocationContext from 'common/components/AssetSidebarContent/contexts/asset-service-location-context';\nimport isEqual from 'lodash/isEqual';\nimport { selectCountrySettingsByCountryCode } from 'common/store/country-settings-dict/selectors';\nimport { fetchCountrySettingsDict } from 'common/store/country-settings-dict/actions';\nimport { SyncSetUnavailableFormMapStateContext } from './contexts/sync-map-state';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport WarningIcon from 'common/icons/WarningIcon';\nimport moment from 'moment/moment';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { vehicleSchedulesRefreshChannel } from 'common/store/vehicle-schedules/channels';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    isLoading: boolean;\n    assetId: AssetIdT | null;\n    assetType: AssetTypeEnum;\n    onSetUnavailable: (assetId: AssetIdT, query: SetUnavailableVehicleQueryT) => void;\n};\n\nconst INITIAL_VALUES: FormValuesT = {\n    [FieldsEnum.dateRange]: null,\n    [FieldsEnum.dropoffLocation]: null,\n};\n\nconst SetUnavailableForm: React.FC<PropsT> = (props) => {\n    const { onSetUnavailable, assetId, assetType, isLoading } = props;\n\n    const dispatch = useDispatch();\n\n    const countriesSettingsByCode = useSelector(selectCountrySettingsByCountryCode);\n    React.useEffect(() => {\n        dispatch(fetchCountrySettingsDict());\n    }, [dispatch]);\n\n    const { location, setLocation } = useContext(AssetServiceLocationContext);\n    useEffect(() => {\n        return () => {\n            setLocation(null);\n        };\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const { t } = useTranslation();\n\n    const schedule = useSelector(selectVehicleSchedule(assetId));\n    const disabledDates = React.useMemo(() => {\n        let dates: string[] = [];\n\n        schedule.forEach((event) => {\n            let eventDates: Array<string> | null = null;\n\n            if (event.truckId === assetId) {\n                eventDates = getDatesBetweenDates([event.truckDateFrom, event.truckDateTo]);\n            }\n\n            if (event.trailerId === assetId) {\n                eventDates = getDatesBetweenDates([event.trailerDateFrom, event.trailerDateTo]);\n            }\n\n            if (eventDates) {\n                dates = [...dates, ...eventDates];\n            }\n        });\n\n        return uniq(dates).filter(isNonNil);\n    }, [schedule, assetId]);\n\n    React.useEffect(() => {\n        if (!assetId) {\n            return;\n        }\n\n        dispatch(fetchVehicleSchedule({ vehicleId: assetId }));\n    }, [dispatch, assetId]);\n\n    const refreshVehicleSchedulesHandler = React.useCallback(\n        (event: InferChannelEventT<typeof vehicleSchedulesRefreshChannel>) => {\n            const { vehicleId } = event;\n\n            if (vehicleId === assetId) {\n                dispatch(fetchVehicleSchedule({ vehicleId: assetId }, { isForceUpdate: true }));\n            }\n        },\n        [dispatch, assetId],\n    );\n    useChannelSubscribe(vehicleSchedulesRefreshChannel, refreshVehicleSchedulesHandler);\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values, { disabledDates, countriesSettingsByCode });\n    }, [t, disabledDates, countriesSettingsByCode]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = {\n            ...INITIAL_VALUES,\n        };\n\n        const errors = validateForm(t, values, { disabledDates, countriesSettingsByCode });\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const query = prepareQuery(values, assetType);\n            if (!query) {\n                return;\n            }\n\n            if (!assetId) {\n                return;\n            }\n\n            onSetUnavailable(assetId, query);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const { setHasDropAssetPointError } = useContext(SyncSetUnavailableFormMapStateContext);\n    React.useEffect(() => {\n        setHasDropAssetPointError(!!formik.errors?.[FieldsEnum.dropoffLocation]);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.errors]);\n\n    useEffect(() => {\n        const currentLocation = formik.values[FieldsEnum.dropoffLocation];\n\n        if (!isEqual(location, currentLocation)) {\n            formik.setFieldValue(FieldsEnum.dropoffLocation, location);\n            formik.setFieldTouched(FieldsEnum.dropoffLocation, true);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [location]);\n\n    const minTodayDate = React.useMemo(() => {\n        const now = new Date();\n        return getDateFromDate(now);\n    }, []);\n\n    const dateRange = formik.values[FieldsEnum.dateRange];\n\n    const [isShowHasUnavailableDatesAlerts, setIsShowHasUnavailableDatesAlerts] = React.useState<boolean>(false);\n    React.useEffect(() => {\n        if (!dateRange || !dateRange?.from || !dateRange?.to) {\n            setIsShowHasUnavailableDatesAlerts(false);\n            return;\n        }\n\n        const hasUnavailableDates = disabledDates.some((disabledDate) => {\n            return moment(disabledDate).isBetween(dateRange.from, dateRange.to);\n        });\n        setIsShowHasUnavailableDatesAlerts(hasUnavailableDates);\n    }, [dateRange, disabledDates]);\n\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <div className={cx('form')}>\n                <FormikField\n                    className={cx('field', 'field--date-range')}\n                    name={FieldsEnum.dateRange}\n                    error={formik.errors[FieldsEnum.dateRange]}\n                    meta={formik.getFieldMeta(FieldsEnum.dateRange)}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <OpenedDatePicker\n                            isRange\n                            hasYearMonthForm\n                            value={formik.values[FieldsEnum.dateRange]}\n                            placeholder={t('common:assets.set-unavailable.fields.date-range.placeholder')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            minDate={minTodayDate}\n                            disabledDates={disabledDates}\n                            hasClearControl\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    className={cx('field')}\n                    name={FieldsEnum.dropoffLocation}\n                    error={formik.errors[FieldsEnum.dropoffLocation]}\n                    meta={formik.getFieldMeta(FieldsEnum.dropoffLocation)}\n                    label={t('common:assets.set-unavailable.fields.dropoff-location.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                    tooltipNode={\n                        <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                            {t('common:assets.set-unavailable.fields.dropoff-location.tooltip')}\n                        </TooltipContent>\n                    }\n                >\n                    {(props) => (\n                        <GeoSuggest\n                            name={FieldsEnum.dropoffLocation}\n                            value={formik.values[FieldsEnum.dropoffLocation]}\n                            placeholder={t('common:assets.set-unavailable.fields.dropoff-location.placeholder')}\n                            renderLeftIcon={(iconMeta) => <PinIcon {...PinIconProps.getControlProps(iconMeta)} />}\n                            onChange={(value) => {\n                                props.onChange(value);\n\n                                setLocation(value);\n                            }}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            testSelector=\"point-to-drop-truck\"\n                            showClearControl={!!formik.values[FieldsEnum.dropoffLocation]}\n                            overlayPosition=\"top\"\n                        />\n                    )}\n                </FormikField>\n            </div>\n            {isShowHasUnavailableDatesAlerts && (\n                <Alert\n                    icon={<WarningIcon fillColor={StyleGuideColorsEnum.white} />}\n                    size={AlertSizeEnum.small}\n                    theme={AlertThemeEnum.tomatoRed}\n                    className={cx('alert')}\n                    onClose={() => {\n                        setIsShowHasUnavailableDatesAlerts(false);\n                    }}\n                >\n                    {t('common:assets.set-unavailable.alerts.has-unavailable-dates')}\n                </Alert>\n            )}\n            <Button\n                theme={ButtonThemeEnum.danger}\n                className={cx('submit')}\n                type=\"submit\"\n                isLoading={isLoading}\n                isDisabled={isLoading}\n            >\n                {t('common:assets.set-unavailable.submit')}\n            </Button>\n        </form>\n    );\n};\n\nexport default SetUnavailableForm;\n","import React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './TooltipIconTrigger.scss';\nimport InfoIcon from 'common/icons/InfoIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\nexport type TooltipIconTriggerPropsT = {\n    className?: string;\n    isShow?: boolean;\n    activeFillColor?: StyleGuideColorsEnum;\n    fillColor?: StyleGuideColorsEnum;\n};\n\nconst TooltipIconTrigger: React.FC<TooltipIconTriggerPropsT> = (props) => {\n    const { className, isShow, fillColor, activeFillColor } = props;\n\n    return (\n        <InfoIcon\n            className={cs(cx('icon'), className)}\n            fillColor={\n                isShow ? activeFillColor ?? StyleGuideColorsEnum.charcoal : fillColor ?? StyleGuideColorsEnum.light\n            }\n        />\n    );\n};\n\nexport default TooltipIconTrigger;\n","/**\n * Parses responseData which can be:\n * - a plain string with id\n * - an escaped JSON string\n */\nexport function parseResponseData(responseData: string | null | undefined): string | null {\n    if (!responseData || typeof responseData !== 'string') {\n        return null;\n    }\n\n    try {\n        const parsed = JSON.parse(responseData);\n        // If parsed to a string, return it\n        if (typeof parsed === 'string') {\n            return parsed;\n        }\n    } catch {\n        // If parsing failed, ignore the error\n    }\n\n    // If not parsed or parsed to non-string, return the original string\n    return responseData;\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"button-group\":\"ButtonGroup__button-group___JjrI4\",\"fadeIn\":\"ButtonGroup__fadeIn___vrm02\",\"blinking\":\"ButtonGroup__blinking___WAAW6\"};","// extracted by mini-css-extract-plugin\nexport default {\"alerts\":\"TrailerDetails__alerts___QH8LY\",\"block\":\"TrailerDetails__block___TKj1F\",\"block__title\":\"TrailerDetails__block__title___dAoMm\",\"icon\":\"TrailerDetails__icon___qw0ZM\",\"fields\":\"TrailerDetails__fields___xdRx0\",\"field--plate-number\":\"TrailerDetails__field--plate-number___uv5Yj\",\"field--rate\":\"TrailerDetails__field--rate___eVF26\",\"field--vin\":\"TrailerDetails__field--vin___uDwCc\",\"field--contract\":\"TrailerDetails__field--contract___ntL_o\",\"fadeIn\":\"TrailerDetails__fadeIn___ZzE3E\",\"blinking\":\"TrailerDetails__blinking___qMCYS\"};","import * as React from 'react';\nimport { PartnerT } from 'broker-admin/store/partners/models';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\n\ntype PropsT = {\n    partner: PartnerT;\n};\n\nconst TeamsCell: React.FC<PropsT> = React.memo((props) => {\n    const { partner } = props;\n\n    const { teams } = partner;\n\n    return (\n        <PillLabel theme={PillLabelThemeEnum.grey} testSelector=\"teams\" isSymmetrical>\n            {teams}\n        </PillLabel>\n    );\n});\n\nexport default TeamsCell;\n","import { CURRENCY_SETTINGS, CurrencyEnum } from 'common/constants';\nimport isNumber from 'lodash/isNumber';\n\nconst formatMoney = (value: number | null | undefined, currency: CurrencyEnum): number => {\n    const { minimumSignificantDigits } = CURRENCY_SETTINGS[currency];\n\n    return +(value || 0).toFixed(minimumSignificantDigits);\n};\n\nexport const moneyOperations = {\n    notStrictPlus: (\n        a: number | null | undefined,\n        b: number | null | undefined,\n        currency: CurrencyEnum,\n    ): number | null => {\n        if (!isNumber(a) || !isNumber(b)) {\n            return null;\n        }\n\n        return formatMoney(a + b, currency);\n    },\n    plus: (a: number | null | undefined, b: number | null | undefined, currency: CurrencyEnum): number => {\n        return formatMoney((a || 0) + (b || 0), currency);\n    },\n    plusWithFormat: (a: number | null | undefined, b: number | null | undefined, currency: CurrencyEnum): number => {\n        return formatMoney(formatMoney(a, currency) + formatMoney(b, currency), currency);\n    },\n    multiply: (a: number | null | undefined, b: number | null | undefined, currency: CurrencyEnum): number => {\n        return formatMoney((a || 0) * (b || 0), currency);\n    },\n};\n","import React, { CSSProperties } from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport noop from 'lodash/noop';\n\nimport styles from './FilterPill.scss';\nimport CloseIcon from 'common/icons/CloseIcon';\n\nconst cx = classNames.bind(styles);\n\nexport enum FilterPillThemeEnum {\n    brandDark = 'brandDark',\n    charcoal = 'charcoal',\n    brandAccent = 'brandAccent',\n    blazeOrange = 'blazeOrange',\n    tomatoRed = 'tomatoRed',\n    attention = 'attention',\n}\n\nexport type PropsT = {\n    className?: string;\n    style?: CSSProperties;\n    icon?: React.ReactNode;\n    label: React.ReactNode;\n    withCloser: boolean;\n    theme: FilterPillThemeEnum;\n    onClick: () => void;\n    testSelector?: string;\n    isCompact?: boolean;\n};\n\nconst FilterPill: React.FC<PropsT> = React.memo((props) => {\n    const { style, icon, label, withCloser, onClick, theme, className, isCompact, testSelector } = props;\n\n    const fullTestSelector = `${testSelector}_filter-pill`;\n\n    return (\n        <div\n            style={style}\n            className={cs(\n                cx('pill', {\n                    [`pill--theme-${theme}`]: true,\n                    'pill--is-compact': isCompact,\n                    'pill--has-icon': !!icon,\n                    'pill--is-full-clickable': !withCloser,\n                }),\n                className,\n            )}\n            onClick={withCloser ? noop : onClick}\n            data-test-selector={`${fullTestSelector}_label`}\n        >\n            {!!icon && (\n                <>\n                    <div\n                        className={cx('icon', {\n                            'icon--is-compact': isCompact,\n                        })}\n                    >\n                        {icon}\n                    </div>\n                    <div\n                        className={cx('icon-placeholder', {\n                            'icon-placeholder--is-compact': isCompact,\n                        })}\n                    />\n                </>\n            )}\n            <div\n                className={cx('label', {\n                    'label--is-compact': isCompact,\n                })}\n            >\n                {label}\n            </div>\n            {withCloser && (\n                <div\n                    className={cx('closer', {\n                        'closer--is-compact': isCompact,\n                    })}\n                    onClick={onClick}\n                    data-test-selector={`${fullTestSelector}_closer`}\n                >\n                    <CloseIcon fillColor=\"currentColor\" />\n                </div>\n            )}\n        </div>\n    );\n});\n\nexport default FilterPill;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './StatusChangedCard.scss';\nimport { Trans } from 'react-i18next';\nimport NotificationSubjectType from '../entities/NotificationSubjectType/NotificationSubjectType';\nimport { ApiNotificationSubjectTypeT } from 'common/utils/api/models';\nimport CityName from '../entities/CityName/CityName';\nimport SubjectLink from '../entities/SubjectLink/SubjectLink';\n\nconst cx = classNames.bind(styles);\n\nexport type StatusChangedNodePropsT = {\n    subjectType: ApiNotificationSubjectTypeT | null | undefined;\n    subjectNumber: React.ReactNode;\n    originCity: React.ReactNode;\n    destinationCity: React.ReactNode;\n    actionType: ApiNotificationSubjectTypeT | null | undefined;\n    actionStatus: React.ReactNode;\n};\n\nconst ActionStatus: React.FC<{ actionStatus: React.ReactNode }> = ({ actionStatus }) => {\n    return <span className={cx('status')}>{actionStatus}</span>;\n};\nconst Action: React.FC<{ actionType: ApiNotificationSubjectTypeT | null | undefined }> = ({ actionType }) => (\n    <b className={cx('action')}>\n        <NotificationSubjectType isUppercase subjectType={actionType} />\n    </b>\n);\n\nconst StatusChangedCard: React.FC<StatusChangedNodePropsT> = React.memo((props) => {\n    const { subjectType, subjectNumber, originCity, destinationCity, actionStatus, actionType } = props;\n\n    return (\n        <div className={cx('wrap')}>\n            <div className={cx('message')}>\n                <Trans\n                    i18nKey=\"common:notifications.status-changed\"\n                    components={{\n                        subjectType: <NotificationSubjectType isCapitalized subjectType={subjectType} />,\n                        subjectLink: <SubjectLink number={subjectNumber} />,\n                        cityFrom: <CityName cityName={originCity} />,\n                        cityTo: <CityName cityName={destinationCity} />,\n                    }}\n                />\n            </div>\n            <div className={cx('description')}>\n                <Trans\n                    i18nKey=\"common:notifications.status-changed-2\"\n                    components={{\n                        subjectType: <Action actionType={actionType} />,\n                        status: <ActionStatus actionStatus={actionStatus} />,\n                    }}\n                />\n            </div>\n        </div>\n    );\n});\n\nexport default StatusChangedCard;\n","import * as React from 'react';\nimport FilterPills, { FilterPillsConfigT } from 'common/components/FilterPills/FilterPills';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from '../query-models';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { FilterPillThemeEnum } from 'common/components/FilterPills/FilterPill/FilterPill';\nimport { pillIconRendererMap } from 'common/components/FilterPills/pill-renderers';\n\ntype PropsT = {\n    isCompact?: boolean;\n    className?: string;\n    queryFilters: QueryFiltersT;\n    setQueryFilters: (queryFilters: QueryFiltersT) => void;\n};\n\nconst SelectedFilters: React.FC<PropsT> = React.memo((props) => {\n    const { isCompact, queryFilters, setQueryFilters } = props;\n\n    const { t } = useTranslation();\n\n    const filterPillsConfig = React.useMemo(\n        (): FilterPillsConfigT<QueryFiltersT> => [\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('broker-users.teams.filters.pills.search', {\n                        value: queryFilters[QueryFiltersKeysEnum.searchText],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.searchText],\n            },\n            {\n                isMultiple: true,\n                theme: FilterPillThemeEnum.charcoal,\n                renderIcon: (queryFilters, index, isCompact) => {\n                    const userFullName = queryFilters[QueryFiltersKeysEnum.userFullNames]?.[index];\n\n                    return pillIconRendererMap.avatar(userFullName, isCompact);\n                },\n                render: (queryFilters, index) => {\n                    const userFullName = queryFilters[QueryFiltersKeysEnum.userFullNames]?.[index];\n\n                    return t('broker-users.teams.filters.pills.user', {\n                        value: userFullName,\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.userIds, QueryFiltersKeysEnum.userFullNames],\n            },\n            {\n                isMultiple: true,\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters, index) => {\n                    const partnerName = queryFilters[QueryFiltersKeysEnum.partnerNames]?.[index];\n\n                    return (\n                        <Trans\n                            i18nKey=\"broker-users.teams.filters.pills.business-partner\"\n                            values={{\n                                value: partnerName,\n                            }}\n                        />\n                    );\n                },\n                clearKeys: [QueryFiltersKeysEnum.partnerIds, QueryFiltersKeysEnum.partnerNames],\n            },\n        ],\n        [t],\n    );\n\n    return (\n        <FilterPills<QueryFiltersT>\n            isCompact={isCompact}\n            queryFilters={queryFilters}\n            setQueryFilters={setQueryFilters}\n            config={filterPillsConfig}\n        />\n    );\n});\n\nexport default SelectedFilters;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport type UnassignAssetsConfirmationDataT = {\n    transportOrderId: TransportOrderIdT;\n};\n\ntype PropsT = {\n    data: UnassignAssetsConfirmationDataT | null;\n    onConfirm: (data: UnassignAssetsConfirmationDataT) => void;\n    requestStatus: RequestStatusT;\n    onCancel: () => void;\n    onClose: () => void;\n};\n\nconst TEST_SELECTOR = 'unassign-assets-confirmation';\n\nconst UnassignAssetsConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, onConfirm, onCancel, onClose, requestStatus } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: requestStatus.loading,\n                            onClick: onCancel,\n                        },\n                        {\n                            children: t('common:error-modal.actions.clear'),\n                            theme: ButtonThemeEnum.danger,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            isDisabled: requestStatus.loading,\n                            isLoading: requestStatus.loading,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                    title={t('common:transport-order-details.dialogs.unassign-assets.title')}\n                    message={t('common:transport-order-details.dialogs.unassign-assets.description')}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default UnassignAssetsConfirmation;\n","import React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './DictTrailerDropdown.scss';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\n\nimport { ApiTrailerDictTypeT, ApiTrailerTypeT } from 'common/utils/api/models';\nimport TrailerIcon, { TrailerIconProps } from 'common/icons/TrailerIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectTrailersDict, selectTrailersDictRequest } from 'common/store/trailers-dict/selectors';\nimport { useTranslation } from 'react-i18next';\nimport { fetchTrailersDict } from 'common/store/trailers-dict/actions';\nimport ControlLoaderIcon, { ControlLoaderIconProps } from 'common/icons/ControlLoaderIcon';\nimport flatten from 'lodash/flatten';\n\nenum TrailerIconTypesEnum {\n    default = 'default',\n}\n\nconst cx = classNames.bind(styles);\n\nconst ICONS_MAP = {\n    [TrailerIconTypesEnum.default]: (\n        <TrailerIcon\n            fillColor={StyleGuideColorsEnum.brandAccent}\n            strokeColor={StyleGuideColorsEnum.brandDark}\n            size={DEFAULT_ICON_SIZE}\n        />\n    ),\n};\n\ntype OptionValueT = TrailerDictIdT | null;\n\ntype PropsT = {\n    selectedTrailerType?: ApiTrailerTypeT | null;\n    isShortLabel?: boolean;\n    placeholder?: string;\n    value: OptionValueT;\n    isDisabled?: boolean;\n    onChange: (value: OptionValueT) => void;\n    hasWarning: boolean;\n    hasError: boolean;\n    hasChanges?: boolean;\n    onBlur: () => void;\n    onFocus: () => void;\n    hasClearControl?: boolean;\n    overlayPosition?: DropdownOverlayPositionEnum;\n};\n\ntype TrailerDropdownOptionT = {\n    value: OptionValueT;\n    label: string;\n    iconType: TrailerIconTypesEnum;\n};\n\nconst DictTrailerDropdown: React.FC<PropsT> = React.memo((props) => {\n    const {\n        isShortLabel,\n        selectedTrailerType,\n        value,\n        placeholder,\n        onChange,\n        isDisabled,\n        hasWarning,\n        hasError,\n        hasChanges,\n        onBlur,\n        onFocus,\n        hasClearControl,\n        overlayPosition,\n    } = props;\n\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n\n    const trailersDict = useSelector(selectTrailersDict);\n    const fetchRequest = useSelector(selectTrailersDictRequest);\n\n    React.useEffect(() => {\n        dispatch(fetchTrailersDict());\n    }, [dispatch]);\n\n    const rawTrailerOptions = React.useMemo((): ApiTrailerDictTypeT[] => {\n        if (!selectedTrailerType) {\n            return flatten(Object.values(trailersDict || {}));\n        }\n\n        return trailersDict?.[selectedTrailerType as string] || [];\n    }, [trailersDict, selectedTrailerType]);\n\n    const trailerOptions = React.useMemo((): TrailerDropdownOptionT[] => {\n        return rawTrailerOptions.map((trailer) => ({\n            value: String(trailer.id) || null,\n            label: isShortLabel\n                ? trailer.model || ''\n                : t('common:trailer-subtype-template', {\n                      length: trailer.length,\n                      model: trailer.model,\n                      eur1Pallets: trailer.eur1Pallets,\n                      eur2Pallets: trailer.eur2Pallets,\n                  }),\n            iconType: TrailerIconTypesEnum.default,\n        }));\n    }, [rawTrailerOptions, t, isShortLabel]);\n\n    const renderTrigger = (option: TrailerDropdownOptionT | null | undefined): React.ReactElement | null => {\n        if (!option) {\n            return null;\n        }\n\n        return (\n            <div className={cx('option')} key={option.label}>\n                {option.label}\n            </div>\n        );\n    };\n\n    const renderOption = (option: TrailerDropdownOptionT | null | undefined): React.ReactElement | null => {\n        if (!option) {\n            return null;\n        }\n\n        return (\n            <div className={cx('option')} key={option.label}>\n                <div className={cx('option__icon')}>{ICONS_MAP[option.iconType]}</div>\n                <div className={cx('option__label')}>{option.label}</div>\n            </div>\n        );\n    };\n\n    const handleSelect = (value: OptionValueT): void => {\n        onChange(value);\n    };\n\n    const getOptionValue = (option: TrailerDropdownOptionT): OptionValueT => option.value;\n\n    return (\n        <DropdownInput<TrailerDropdownOptionT, OptionValueT>\n            selectedValue={value}\n            placeholder={placeholder}\n            options={trailerOptions}\n            onSelect={handleSelect}\n            isDisabled={isDisabled || !trailersDict}\n            renderOption={renderOption}\n            renderTriggerContent={renderTrigger}\n            getOptionValue={getOptionValue}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            hasWarning={hasWarning}\n            hasError={hasError}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            renderLeftIcon={(iconMeta) => <TrailerIcon {...TrailerIconProps.getControlProps(iconMeta)} />}\n            renderRightIcon={() =>\n                fetchRequest.loading ? <ControlLoaderIcon {...ControlLoaderIconProps.getFetchDataProps()} /> : null\n            }\n            testSelector=\"trailer\"\n            hasClearControl={hasClearControl}\n            onReset={() => {\n                onChange(null);\n            }}\n        />\n    );\n});\n\nexport default DictTrailerDropdown;\n","// extracted by mini-css-extract-plugin\nexport default {\"navigation-tabs\":\"BaseDocumentsLayout__navigation-tabs___r6NMv\",\"fadeIn\":\"BaseDocumentsLayout__fadeIn___J9MAb\",\"blinking\":\"BaseDocumentsLayout__blinking___fBZQ_\"};","import React from 'react';\nimport { AssetServiceLocationContextT } from '../contexts/asset-service-location-context';\n\nconst useAssetServiceLocationContextValue = (): AssetServiceLocationContextT => {\n    const [location, setLocation] = React.useState<LocationT | null>(null);\n\n    return {\n        location,\n        setLocation,\n    };\n};\n\nexport { useAssetServiceLocationContextValue };\n","import { RequestStatusT } from 'common/utils/request-status';\nimport { ContractDetailsChangesT, PartnerContractT } from './models';\nimport { ApiRevokePartnerContractInfoT } from 'common/utils/api/models';\n\nexport const UPLOAD_CARRIER_CONTRACT_REQUEST = 'common/carrier-contracts/UPLOAD_CARRIER_CONTRACT_REQUEST';\nexport const UPLOAD_CARRIER_CONTRACT_REQUEST_BEGIN = 'common/carrier-contracts/UPLOAD_CARRIER_CONTRACT_REQUEST_BEGIN';\nexport const UPLOAD_CARRIER_CONTRACT_REQUEST_ERROR = 'common/carrier-contracts/UPLOAD_CARRIER_CONTRACT_REQUEST_ERROR';\nexport const UPLOAD_CARRIER_CONTRACT_REQUEST_SUCCESS =\n    'common/carrier-contracts/UPLOAD_CARRIER_CONTRACT_REQUEST_SUCCESS';\n\nexport const DOWNLOAD_CARRIER_CONTRACT_REQUEST = 'common/carrier-contracts/DOWNLOAD_CARRIER_CONTRACT_REQUEST';\nexport const DOWNLOAD_CARRIER_CONTRACT_REQUEST_BEGIN =\n    'common/carrier-contracts/DOWNLOAD_CARRIER_CONTRACT_REQUEST_BEGIN';\nexport const DOWNLOAD_CARRIER_CONTRACT_REQUEST_ERROR =\n    'common/carrier-contracts/DOWNLOAD_CARRIER_CONTRACT_REQUEST_ERROR';\nexport const DOWNLOAD_CARRIER_CONTRACT_REQUEST_SUCCESS =\n    'common/carrier-contracts/DOWNLOAD_CARRIER_CONTRACT_REQUEST_SUCCESS';\n\nexport const FETCH_CARRIER_CONTRACTS_REQUEST = 'common/carrier-contracts/FETCH_CARRIER_CONTRACTS_REQUEST';\nexport const FETCH_CARRIER_CONTRACTS_REQUEST_BEGIN = 'common/carrier-contracts/FETCH_CARRIER_CONTRACTS_REQUEST_BEGIN';\nexport const FETCH_CARRIER_CONTRACTS_REQUEST_ERROR = 'common/carrier-contracts/FETCH_CARRIER_CONTRACTS_REQUEST_ERROR';\nexport const FETCH_CARRIER_CONTRACTS_REQUEST_SUCCESS =\n    'common/carrier-contracts/FETCH_CARRIER_CONTRACTS_REQUEST_SUCCESS';\n\nexport const APPROVE_CARRIER_CONTRACT_REQUEST = 'common/carrier-contracts/APPROVE_CARRIER_CONTRACT_REQUEST';\nexport const REJECT_CARRIER_CONTRACT_REQUEST = 'common/carrier-contracts/REJECT_CARRIER_CONTRACT_REQUEST';\nexport const REVOKE_CARRIER_CONTRACT_REQUEST = 'common/carrier-contracts/REVOKE_CARRIER_CONTRACT_REQUEST';\nexport const UPDATE_CARRIER_CONTRACT_REQUEST = 'common/carrier-contracts/UPDATE_CARRIER_CONTRACT_REQUEST';\nexport const UPDATE_CARRIER_CONTRACT_REQUEST_BEGIN = 'common/carrier-contracts/UPDATE_CARRIER_CONTRACT_REQUEST_BEGIN';\nexport const UPDATE_CARRIER_CONTRACT_REQUEST_ERROR = 'common/carrier-contracts/UPDATE_CARRIER_CONTRACT_REQUEST_ERROR';\nexport const UPDATE_CARRIER_CONTRACT_REQUEST_SUCCESS =\n    'common/carrier-contracts/UPDATE_CARRIER_CONTRACT_REQUEST_SUCCESS';\n\nexport type CarrierContractStateT = {\n    contracts: Array<PartnerContractT>;\n    fetchContractsRequest: RequestStatusT;\n    updateContractRequest: RequestStatusT;\n    uploadContractRequest: RequestStatusT;\n    downloadContractRequest: RequestStatusT;\n    updatingContractId: CarrierContractIdT | null;\n};\n\nexport type CarrierContractsStateT = Record<PartnerIdT, CarrierContractStateT>;\n\nexport type FetchCarrierContractsActionT = {\n    type: typeof FETCH_CARRIER_CONTRACTS_REQUEST;\n    partnerId: PartnerIdT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchCarrierContractsBeginActionT = {\n    type: typeof FETCH_CARRIER_CONTRACTS_REQUEST_BEGIN;\n    partnerId: PartnerIdT;\n};\n\nexport type FetchCarrierContractsSuccessActionT = {\n    type: typeof FETCH_CARRIER_CONTRACTS_REQUEST_SUCCESS;\n    partnerId: PartnerIdT;\n    partnerContracts: Array<PartnerContractT>;\n};\n\nexport type FetchCarrierContractsErrorActionT = {\n    type: typeof FETCH_CARRIER_CONTRACTS_REQUEST_ERROR;\n    error: Error;\n    partnerId: PartnerIdT;\n};\n\nexport type RevokeCarrierContractActionT = {\n    type: typeof REVOKE_CARRIER_CONTRACT_REQUEST;\n    partnerId: PartnerIdT;\n    contractId: CarrierContractIdT;\n    revokeInfo: ApiRevokePartnerContractInfoT;\n};\n\nexport type ApproveCarrierContractActionT = {\n    type: typeof APPROVE_CARRIER_CONTRACT_REQUEST;\n    partnerId: PartnerIdT;\n    contractId: CarrierContractIdT;\n    contractChanges: ContractDetailsChangesT;\n};\n\nexport type RejectCarrierContractActionT = {\n    type: typeof REJECT_CARRIER_CONTRACT_REQUEST;\n    partnerId: PartnerIdT;\n    contractId: CarrierContractIdT;\n    reason: string;\n};\n\nexport type UpdateCarrierContractActionT = {\n    type: typeof UPDATE_CARRIER_CONTRACT_REQUEST;\n    partnerId: PartnerIdT;\n    contractId: CarrierContractIdT;\n    contractChanges: ContractDetailsChangesT;\n};\n\nexport type UpdateCarrierContractBeginActionT = {\n    type: typeof UPDATE_CARRIER_CONTRACT_REQUEST_BEGIN;\n    partnerId: PartnerIdT;\n    updatingContractId: CarrierContractIdT | null;\n};\n\nexport type UpdateCarrierContractSuccessActionT = {\n    type: typeof UPDATE_CARRIER_CONTRACT_REQUEST_SUCCESS;\n    partnerId: PartnerIdT;\n};\n\nexport type UpdateCarrierContractErrorActionT = {\n    type: typeof UPDATE_CARRIER_CONTRACT_REQUEST_ERROR;\n    error: Error;\n    partnerId: PartnerIdT;\n};\n\nexport type UploadCarrierContractActionT = {\n    type: typeof UPLOAD_CARRIER_CONTRACT_REQUEST;\n    partnerId: PartnerIdT;\n    file: File;\n};\n\nexport type UploadCarrierContractBeginActionT = {\n    type: typeof UPLOAD_CARRIER_CONTRACT_REQUEST_BEGIN;\n    partnerId: PartnerIdT;\n};\n\nexport type UploadCarrierContractSuccessActionT = {\n    type: typeof UPLOAD_CARRIER_CONTRACT_REQUEST_SUCCESS;\n    partnerId: PartnerIdT;\n};\n\nexport type UploadCarrierContractErrorActionT = {\n    type: typeof UPLOAD_CARRIER_CONTRACT_REQUEST_ERROR;\n    error: Error;\n    partnerId: PartnerIdT;\n};\n\nexport type DownloadCarrierContractActionT = {\n    type: typeof DOWNLOAD_CARRIER_CONTRACT_REQUEST;\n    contractId: CarrierContractIdT;\n    partnerId: PartnerIdT;\n};\n\nexport type DownloadCarrierContractBeginActionT = {\n    type: typeof DOWNLOAD_CARRIER_CONTRACT_REQUEST_BEGIN;\n    partnerId: PartnerIdT;\n};\n\nexport type DownloadCarrierContractSuccessActionT = {\n    type: typeof DOWNLOAD_CARRIER_CONTRACT_REQUEST_SUCCESS;\n    partnerId: PartnerIdT;\n};\n\nexport type DownloadCarrierContractErrorActionT = {\n    type: typeof DOWNLOAD_CARRIER_CONTRACT_REQUEST_ERROR;\n    error: Error;\n    partnerId: PartnerIdT;\n};\n\nexport type CarrierContractsActionT =\n    | FetchCarrierContractsActionT\n    | FetchCarrierContractsBeginActionT\n    | FetchCarrierContractsSuccessActionT\n    | FetchCarrierContractsErrorActionT\n    | RevokeCarrierContractActionT\n    | ApproveCarrierContractActionT\n    | RejectCarrierContractActionT\n    | UploadCarrierContractActionT\n    | UploadCarrierContractBeginActionT\n    | UploadCarrierContractSuccessActionT\n    | UploadCarrierContractErrorActionT\n    | DownloadCarrierContractActionT\n    | DownloadCarrierContractBeginActionT\n    | DownloadCarrierContractSuccessActionT\n    | DownloadCarrierContractErrorActionT\n    | UpdateCarrierContractActionT\n    | UpdateCarrierContractBeginActionT\n    | UpdateCarrierContractSuccessActionT\n    | UpdateCarrierContractErrorActionT;\n","// extracted by mini-css-extract-plugin\nexport default {\"map\":\"RouteMap__map___CeYha\",\"marker\":\"RouteMap__marker___BSfBV\",\"fadeIn\":\"RouteMap__fadeIn___Mfqpi\",\"blinking\":\"RouteMap__blinking___WESDG\"};","import * as React from 'react';\nimport { ApiUserStatusT, UserStatusEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    status?: ApiUserStatusT | null | undefined;\n};\n\nexport const USER_STATUS_T_MAP: Record<ApiUserStatusT, string> = {\n    [UserStatusEnum.active]: 'common:user-status.ACTIVE',\n    [UserStatusEnum.pending]: 'common:user-status.PENDING',\n    [UserStatusEnum.archived]: 'common:user-status.ARCHIVED',\n};\n\nconst UserStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return null;\n    }\n\n    return t(USER_STATUS_T_MAP[status]);\n});\n\nexport default UserStatus;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"InvoicesListPage__fadeIn___sX6sK\",\"blinking\":\"InvoicesListPage__blinking___w20Fp\"};","import { put, takeEvery } from 'redux-saga/effects';\nimport { FETCH_USER_REQUEST, PATCH_USER_REQUEST, PatchUserActionT } from './types';\nimport {\n    fetchUserBegin,\n    fetchUserError,\n    fetchUserSuccess,\n    patchUserBegin,\n    patchUserError,\n    patchUserSuccess,\n} from './actions';\nimport { authApi } from 'common/utils/api/auth/factory';\nimport { signInSuccess, signOut } from 'common/store/auth/actions';\nimport { changeLanguage, LangEnum } from 'common/locales/i18n';\nimport i18n from 'i18next';\nimport { logWarning } from 'common/utils/logger';\nimport { convertToApiUserUpdate, patchUser } from 'common/store/user/utils';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport { UserStatusEnum } from 'common/utils/api/models';\nimport { remoteLogger } from 'common/utils/logger-remote';\n\nexport function* forceRefreshCurrentUserSaga(): WrapGeneratorT<void> {\n    const [error, currentUser]: ReturnApiT<typeof commonTranziitApi.fetchCurrentUser> =\n        yield commonTranziitApi.fetchCurrentUser();\n    if (error) {\n        yield put(fetchUserError(error));\n        return;\n    }\n\n    if (!currentUser) {\n        logWarning('empty current error');\n        return;\n    }\n\n    yield put(fetchUserSuccess(currentUser));\n}\n\nfunction* fetchUserSaga(): WrapGeneratorT<void> {\n    yield put(fetchUserBegin());\n    const [error, currentUser]: ReturnApiT<typeof commonTranziitApi.fetchCurrentUser> =\n        yield commonTranziitApi.fetchCurrentUser();\n    if (error) {\n        yield put(fetchUserError(error));\n        return;\n    }\n\n    if (currentUser?.id) {\n        remoteLogger.addUserInfo({\n            id: currentUser.id,\n        });\n    }\n\n    if (currentUser?.language && currentUser?.language !== i18n.language) {\n        changeLanguage(currentUser?.language as LangEnum);\n    }\n\n    if (!currentUser) {\n        logWarning('empty current error');\n        return;\n    }\n\n    yield put(fetchUserSuccess(currentUser));\n\n    if (currentUser.status === UserStatusEnum.archived) {\n        yield put(signOut());\n    }\n}\n\nfunction* patchUserSaga(action: PatchUserActionT): WrapGeneratorT<void> {\n    const { authUser, user, changes } = action;\n    if (!authUser || !user) {\n        logWarning('empty firebaseUser and user');\n        return;\n    }\n\n    yield put(patchUserBegin());\n    if (changes.currentPassword && changes.newPassword) {\n        if (!authUser.email) {\n            logWarning('empty firebaseUser email!');\n            return;\n        }\n\n        const [reAuthError, newUser] = yield authApi.reauthenticateWithCredential(\n            authUser.email,\n            changes.currentPassword,\n        );\n        if (reAuthError) {\n            yield put(patchUserError(reAuthError));\n            return;\n        }\n\n        const [, authUserClaims]: ReturnApiT<typeof authApi.getAuthUserClaims> = yield authApi.getAuthUserClaims();\n\n        yield put(signInSuccess(newUser, authUserClaims));\n\n        const [changePasswordError] = yield authApi.changePassword(changes.newPassword);\n        if (changePasswordError) {\n            yield put(patchUserError(changePasswordError));\n            return;\n        }\n    }\n\n    const newDisplayName = `${changes.firstName} ${changes.lastName}`;\n    if (newDisplayName !== authUser.displayName) {\n        const [updateProfileError] = yield authApi.updateProfile(newDisplayName);\n        if (updateProfileError) {\n            yield put(patchUserError(updateProfileError));\n            return;\n        }\n    }\n\n    const patchedUser = patchUser(user, changes);\n    const patchedApiUserUpdate = convertToApiUserUpdate(patchedUser);\n\n    const [userPatchError]: ReturnApiT<typeof commonTranziitApi.patchUser> = yield commonTranziitApi.patchUser(\n        patchedApiUserUpdate,\n    );\n    if (userPatchError) {\n        yield put(patchUserError(userPatchError));\n        return;\n    }\n\n    yield put(patchUserSuccess(user, patchedApiUserUpdate));\n\n    if (changes.language !== user.language) {\n        changeLanguage(changes.language as LangEnum);\n    }\n}\n\nfunction* userSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_USER_REQUEST, fetchUserSaga);\n    yield takeEvery(PATCH_USER_REQUEST, patchUserSaga);\n}\n\nexport default userSaga;\n","import React, { useContext } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './RouteEditForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { MS_IN_HOUR, MS_IN_SEC } from 'common/utils/time';\n\nimport { FieldsEnum, FormValuesT, RoutePointFieldsEnum, RoutePointFormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport { FormikContext, FormikHelpers, useFormik } from 'formik';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\n\nimport { fetchCountrySettingsDict } from 'common/store/country-settings-dict/actions';\nimport { selectCountrySettingsByCountryCode } from 'common/store/country-settings-dict/selectors';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport Checkbox, { CheckboxThemeEnum } from 'design-system/components/Checkbox/Checkbox';\nimport TimeWindowIcon from 'common/icons/TimeWindowIcon';\nimport {\n    EditOrderContextT,\n    RoutePointTimeWindowT,\n    RoutePointTypeEnum,\n} from '../../../../store/order-edit-context/models';\nimport PriceDetails, { PriceDetailT } from 'design-system/components/PriceDetails/PriceDetails';\nimport EuroSymbolIcon from 'common/icons/EuroSymbolIcon';\nimport isNumber from 'lodash/isNumber';\nimport {\n    selectChangeContextError,\n    selectIsApplyingContextChanges,\n    selectOrderEditApplyContextRequest,\n    selectOrderEditCreateContextRequest,\n    selectOrderEditDeleteContextRequest,\n    selectOrderEditFakeSessionId,\n} from '../../../../store/order-edit-context/selectors';\nimport PickupOrDeliveryRoutePointPicker from './PickupOrDeliveryRoutePointPicker/PickupOrDeliveryRoutePointPicker';\nimport DriveThroughRoutePointPicker from './DriveThroughRoutePointPicker/DriveThroughRoutePointPicker';\nimport { DividerWithDropdownControl } from 'design-system/components/DividerWithDropdownControl/DividerWithDropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport HollowCircleIcon from 'common/icons/HollowCircleIcon';\nimport FormikFieldArray from 'common/components/forms/FormikFieldArray/FormikFieldArray';\nimport SplitIcon from 'common/icons/SplitIcon';\nimport {\n    checkIsAllowToDelete,\n    checkIsAllowToUpdateAddress,\n    checkIsAllowToUpdateTimeSlots,\n    checkIsAvailableRoutePoint,\n    checkIsChangedAddressByCoords,\n    generatePointFakeId,\n    getBeforeContextRoutePointAliases,\n    getRoutePointFieldName,\n    getRoutePointTimeWindowHash,\n} from './utils';\nimport {\n    applyOrderEditContextRequest,\n    changeContext,\n    reCreateOrderEditContextRequest,\n} from '../../../../store/order-edit-context/slice';\nimport { getInitialValues } from './get-initial-values';\nimport { OnChangeRoutePointAddressT, OnChangeRoutePointTimeWindowT, OnDeleteRoutePointReserveT } from './models';\nimport DropAndHookRoutePointPicker from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/DropAndHookRoutePointPicker/DropAndHookRoutePointPicker';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { orderEditContextQueryModifyChannel } from '../../../../store/order-edit-context/channels';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport isEmpty from 'lodash/isEmpty';\nimport {\n    MapRoutePointT,\n    OnDragEndDnDCallbackT,\n    OnMapClickCallbackT,\n    SyncRouteEditFormMapStateContext,\n} from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/contexts/sync-map-state';\nimport { BoundPointT } from 'common/components/maps/MapBound/MapBound';\nimport { getFieldFormValue } from 'common/utils/form-values';\nimport { prepareLocation } from 'common/utils/prepare-location';\nimport getBoundingBox from 'common/utils/get-bounding-box';\nimport { isNonNil } from 'common/utils';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport {\n    checkIsTranziitApiRequestError,\n    TranziitApiRequestErrorSubTypeEnum,\n} from 'common/utils/api/tranziit/errors/tranziit-api-errors';\nimport get from 'lodash/get';\nimport FerryOnboardPointPicker from './FerryOnboardPointPicker/FerryOnboardPointPicker';\nimport FerryDisembarkPointPicker from './FerryDisembarkPointPicker/FerryDisembarkPointPicker';\nimport SyncPointsWatcher from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/SyncPointsWatcher/SyncPointsWatcher';\nimport UpdateTourConfirmationModal, {\n    UpdateTourConfirmationDataT,\n} from './UpdateTourConfirmationModal/UpdateTourConfirmationModal';\nimport { contextSyncPointsModifyChannel } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/hooks/use-sync-points-channels';\nimport SideBarFooterAlertsContext from 'common/layouts/LeftMenuLayout/SideBarLayout/contexts/side-bar-footer-alerts-context';\nimport ExpirationContextAlertContent from './ExpirationContextAlertContent/ExpirationContextAlertContent';\nimport FooterSideBarAlertsLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarAlertsLayout/FooterSideBarAlertsLayout';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport TooltipIconTrigger from 'design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { ApiTourUpdateStopDataT } from 'broker-admin/utils/api/broker-tranziit/models';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    brokerOrderId: BrokerOrderIdT | null;\n    context: EditOrderContextT | null;\n    onCancel: () => void;\n};\n\nconst RouteEditForm: React.FC<PropsT> = (props) => {\n    const {\n        onCancel,\n        brokerOrderId,\n        context, // use context only for initialization!\n    } = props;\n\n    const sideBarFooterAlertsContext = useContext(SideBarFooterAlertsContext);\n    const showFooterAlert = sideBarFooterAlertsContext?.showAlert;\n\n    const fakeSessionId = useSelector(selectOrderEditFakeSessionId);\n\n    const createContextRequest = useSelector(selectOrderEditCreateContextRequest);\n    const deleteContextRequest = useSelector(selectOrderEditDeleteContextRequest);\n    const applyContextRequest = useSelector(selectOrderEditApplyContextRequest);\n    const isApplyingContextChanges = useSelector(selectIsApplyingContextChanges);\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const [isConfirmedSubmit, setIsConfirmedSubmitSubmit] = React.useState<boolean>(false);\n    const toggleIsConfirmedSubmit = React.useCallback(() => {\n        setIsConfirmedSubmitSubmit((isConfirmed) => !isConfirmed);\n    }, []);\n\n    const updateTourModalConfirmation = useModalDialog<UpdateTourConfirmationDataT>();\n\n    const formikHelpersRef = React.useRef<FormikHelpers<FormValuesT> | null>(null);\n\n    const handleConfirmSubmit = React.useCallback(\n        (data: UpdateTourConfirmationDataT) => {\n            dispatch(applyOrderEditContextRequest(data));\n            formikHelpersRef.current?.setTouched({});\n            updateTourModalConfirmation.onClose();\n        },\n        [dispatch, updateTourModalConfirmation],\n    );\n\n    const handleCancelConfirmModal = React.useCallback(() => {\n        updateTourModalConfirmation.onClose();\n    }, [updateTourModalConfirmation]);\n\n    const countriesSettingsByCode = useSelector(selectCountrySettingsByCountryCode);\n    React.useEffect(() => {\n        dispatch(fetchCountrySettingsDict());\n    }, [dispatch]);\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) =>\n            validateForm(t, values, {\n                countriesSettingsByCode,\n            });\n    }, [t, countriesSettingsByCode]);\n\n    const contextId = context?.contextId || null;\n    const hasContext = !!context;\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues(context);\n        const errors = validateForm(t, values, { countriesSettingsByCode });\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasContext, contextId, fakeSessionId]);\n\n    const changeContextError = useSelector(selectChangeContextError);\n    const applyContextRequestError = applyContextRequest?.error || null;\n    React.useEffect(() => {\n        const error = changeContextError || applyContextRequestError || null;\n        if (\n            error &&\n            checkIsTranziitApiRequestError(error) &&\n            error?.subType === TranziitApiRequestErrorSubTypeEnum.brokerOrderEdit_ExpirationContext\n        ) {\n            showFooterAlert?.({\n                theme: AlertThemeEnum.orange,\n                content: <ExpirationContextAlertContent />,\n            });\n        }\n    }, [changeContextError, applyContextRequestError, showFooterAlert]);\n\n    const oldTourUpdateStopByAlias = React.useMemo(() => {\n        const allStops =\n            context?.oldTourData?.flatMap((tour) => {\n                return tour?.stops || [];\n            }) || [];\n\n        return allStops?.reduce<Record<RoutePointIdT, ApiTourUpdateStopDataT>>((acc, stop) => {\n            if (stop?.alias) {\n                acc[stop.alias] = stop;\n            }\n\n            return acc;\n        }, {});\n    }, [context]);\n\n    const tourUpdateStopByAlias = React.useMemo(() => {\n        const allStops =\n            context?.tours?.flatMap((tour) => {\n                return tour?.stops || [];\n            }) || [];\n\n        return allStops?.reduce<Record<RoutePointIdT, ApiTourUpdateStopDataT>>((acc, stop) => {\n            if (stop?.alias) {\n                acc[stop.alias] = stop;\n            }\n\n            return acc;\n        }, {});\n    }, [context]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            formikHelpersRef.current = formikHelpers;\n\n            updateTourModalConfirmation.setData({\n                updateShipperPrice: values[FieldsEnum.updateShipperPrice],\n            });\n        },\n    });\n\n    const routeValue = formik.values[FieldsEnum.route];\n\n    const syncMapStateContext = useContext(SyncRouteEditFormMapStateContext);\n    React.useEffect(() => {\n        const routePoints = routeValue.map((routePointValues, index): MapRoutePointT => {\n            const fakePointId = routePointValues[RoutePointFieldsEnum.fakePointId];\n            const contextRoutePointId = routePointValues[RoutePointFieldsEnum.contextRoutePointId];\n            const type = routePointValues[RoutePointFieldsEnum.type];\n            const location = routePointValues[RoutePointFieldsEnum.location];\n\n            const tourUpdateStop = tourUpdateStopByAlias[fakePointId] || null;\n\n            const isAllowUpdateAddress = checkIsAllowToUpdateAddress(tourUpdateStop);\n\n            const locationFieldName = `${FieldsEnum.route}.${index}.${RoutePointFieldsEnum.location}` as const;\n            const hasError = !!get(formik.errors, locationFieldName);\n\n            return {\n                id: fakePointId,\n                isNew: !contextRoutePointId,\n                type,\n                number: index + 1,\n                location,\n                isDraggable: isAllowUpdateAddress,\n                hasError,\n            };\n        });\n\n        syncMapStateContext.setMapRoutePoints(routePoints);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [tourUpdateStopByAlias, routeValue, formik.errors]);\n\n    React.useEffect(() => {\n        const boundPoints: Array<BoundPointT> = [];\n\n        const initialRoute = initialValues[FieldsEnum.route] || [];\n\n        initialRoute?.forEach((mapRoutePoint) => {\n            boundPoints.push([mapRoutePoint?.location?.point?.lat, mapRoutePoint?.location?.point?.lng]);\n        });\n\n        syncMapStateContext?.onSetMapBoundingBox?.callback?.(boundPoints);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [initialValues, syncMapStateContext?.onSetMapBoundingBox]);\n\n    const { setFieldValue, values } = formik;\n\n    const onMapClickCallback: OnMapClickCallbackT = React.useCallback(\n        (location) => {\n            const route = values[FieldsEnum.route] || [];\n\n            const firstEmptyLocationRoutePointIndex = route.findIndex((routePoint) => {\n                return !checkIsAvailableRoutePoint(routePoint);\n            });\n\n            if (firstEmptyLocationRoutePointIndex === -1) {\n                return;\n            }\n\n            const locationFieldName =\n                `${FieldsEnum.route}.${firstEmptyLocationRoutePointIndex}.${RoutePointFieldsEnum.location}` as const;\n            setFieldValue(locationFieldName, location);\n\n            const typeFieldName =\n                `${FieldsEnum.route}.${firstEmptyLocationRoutePointIndex}.${RoutePointFieldsEnum.type}` as const;\n            const routePointType = getFieldFormValue(values, typeFieldName);\n\n            const fakePointIdFieldName =\n                `${FieldsEnum.route}.${firstEmptyLocationRoutePointIndex}.${RoutePointFieldsEnum.fakePointId}` as const;\n            const fakePointId = getFieldFormValue(values, fakePointIdFieldName);\n\n            const preparedLocation = prepareLocation(location);\n            if (!preparedLocation) {\n                return;\n            }\n\n            dispatch(\n                changeContext({\n                    type: 'change-route-point-location',\n                    contextRoutePointAlias: fakePointId,\n                    routePointType,\n                    address: preparedLocation,\n                    beforeContextRoutePointAliases: getBeforeContextRoutePointAliases(\n                        routeValue,\n                        firstEmptyLocationRoutePointIndex,\n                    ),\n                }),\n            );\n        },\n        [dispatch, values, setFieldValue, routeValue],\n    );\n\n    React.useEffect(() => {\n        syncMapStateContext?.setOnMapClickCallback({ callback: onMapClickCallback });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [onMapClickCallback, syncMapStateContext?.setOnMapClickCallback]);\n\n    const onDragEndDnDCallback: OnDragEndDnDCallbackT = React.useCallback(\n        (id, location) => {\n            const routeValue = values[FieldsEnum.route] || [];\n\n            const index = routeValue?.findIndex((routePointValues) => {\n                return id === routePointValues[RoutePointFieldsEnum.fakePointId];\n            });\n\n            const fakePointId = routeValue[index]?.fakePointId || null;\n\n            const locationFieldName = `${FieldsEnum.route}.${index}.${RoutePointFieldsEnum.location}` as const;\n            setFieldValue(locationFieldName, location);\n\n            const typeFieldName = `${FieldsEnum.route}.${index}.${RoutePointFieldsEnum.type}` as const;\n            const routePointType = getFieldFormValue(values, typeFieldName);\n\n            const preparedLocation = prepareLocation(location);\n            if (!preparedLocation) {\n                return;\n            }\n\n            if (!routePointType || !fakePointId) {\n                return;\n            }\n\n            dispatch(\n                changeContext({\n                    type: 'change-route-point-location',\n                    contextRoutePointAlias: fakePointId,\n                    routePointType,\n                    address: preparedLocation,\n                    beforeContextRoutePointAliases: getBeforeContextRoutePointAliases(routeValue, index),\n                }),\n            );\n        },\n        [dispatch, values, setFieldValue],\n    );\n\n    React.useEffect(() => {\n        syncMapStateContext?.setOnDragEndDnDCallback({ callback: onDragEndDnDCallback });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [onDragEndDnDCallback, syncMapStateContext?.setOnDragEndDnDCallback]);\n\n    const refreshOrderEditModifyHandler = React.useCallback(\n        (event: InferChannelEventT<typeof orderEditContextQueryModifyChannel>) => {\n            const formValuesChanges: Partial<FormValuesT> = {};\n\n            const oldRouteFormValues = formik.values[FieldsEnum.route];\n            let newRouteFormValues: typeof oldRouteFormValues = [];\n\n            if (!isEmpty(event?.correctedStops)) {\n                const correctedStopByAlias =\n                    event?.correctedStops?.reduce<Record<RoutePointIdT, ApiTourUpdateStopDataT>>((acc, stop) => {\n                        if (stop?.alias) {\n                            acc[stop.alias] = stop;\n                        }\n\n                        return acc;\n                    }, {}) || {};\n\n                newRouteFormValues = oldRouteFormValues.map((routePointFormValues) => {\n                    const fakePointId = routePointFormValues[RoutePointFieldsEnum.fakePointId] || null;\n                    const correctedStop = correctedStopByAlias[fakePointId as RoutePointIdT] || null;\n\n                    let correctedTimeWindow: RoutePointTimeWindowT | null = null;\n                    if (correctedStop?.correctedFrom && correctedStop?.correctedTo) {\n                        correctedTimeWindow = {\n                            start: correctedStop.correctedFrom,\n                            end: correctedStop.correctedTo,\n                        };\n                    }\n\n                    if (correctedTimeWindow) {\n                        return {\n                            ...routePointFormValues,\n                            [RoutePointFieldsEnum.timeWindow]: correctedTimeWindow,\n                        };\n                    }\n\n                    return routePointFormValues;\n                });\n\n                formValuesChanges[FieldsEnum.route] = newRouteFormValues;\n            }\n\n            if (!isEmpty(formValuesChanges)) {\n                formik.setValues((prevValues) => ({\n                    ...prevValues,\n                    ...formValuesChanges,\n                }));\n            }\n\n            const hasPointsCorrection = Boolean(event.correctedStops?.length);\n            if (hasPointsCorrection && event.correctedStops) {\n                contextSyncPointsModifyChannel.emit({\n                    correctedStops: event?.correctedStops,\n                    routeFormValues: newRouteFormValues,\n                    addedStopAliases: event?.addedStopAliases,\n                    deletedStopAliases: event?.deletedStopAliases,\n                    orderStopAliases: event?.orderStopAliases,\n                });\n            }\n        },\n        [formik],\n    );\n    useChannelSubscribe(orderEditContextQueryModifyChannel, refreshOrderEditModifyHandler);\n\n    const handleExpire = React.useCallback(() => {\n        showFooterAlert?.({\n            theme: AlertThemeEnum.orange,\n            content: <ExpirationContextAlertContent />,\n        });\n\n        dispatch(reCreateOrderEditContextRequest({ brokerOrderId }));\n    }, [dispatch, brokerOrderId, showFooterAlert]);\n\n    const oldTotalCost = context?.oldTourData?.[0]?.carrierEstimate?.totalCost;\n    const newTotalCost = context?.newTotalCarrierEstimate?.totalCost;\n    const carrierPriceList: Array<PriceDetailT | null> = React.useMemo(() => {\n        return [\n            {\n                iconNode: <EuroSymbolIcon strokeColor={StyleGuideColorsEnum.gray} />,\n                title: t('broker-order-route-edit.footer.prices.original-carrier-cost'),\n                price: oldTotalCost,\n            },\n            {\n                iconNode: <EuroSymbolIcon strokeColor={StyleGuideColorsEnum.gray} />,\n                title: t('broker-order-route-edit.footer.prices.new-carrier-cost'),\n                price: newTotalCost,\n                priceDiff: isNumber(newTotalCost) && isNumber(oldTotalCost) ? newTotalCost - oldTotalCost : null,\n                isLoading: isApplyingContextChanges,\n            },\n        ];\n    }, [t, oldTotalCost, newTotalCost, isApplyingContextChanges]);\n\n    const oldShipperPrice = context?.originalShipperPrices?.totalPrice;\n    const newShipperPrice = context?.newShipperPrice?.totalPrice;\n    const shipperPriceList: Array<PriceDetailT | null> = React.useMemo(() => {\n        return [\n            {\n                iconNode: <EuroSymbolIcon strokeColor={StyleGuideColorsEnum.gray} />,\n                title: t('broker-order-route-edit.footer.prices.original-shipper-price'),\n                price: oldShipperPrice,\n            },\n            {\n                iconNode: <EuroSymbolIcon strokeColor={StyleGuideColorsEnum.gray} />,\n                title: t('broker-order-route-edit.footer.prices.new-shipper-price'),\n                price: newShipperPrice,\n                priceDiff:\n                    isNumber(newShipperPrice) && isNumber(oldShipperPrice) ? newShipperPrice - oldShipperPrice : null,\n                isLoading: isApplyingContextChanges,\n            },\n        ];\n    }, [t, oldShipperPrice, newShipperPrice, isApplyingContextChanges]);\n\n    const isChangedAnyTimeWindow = React.useMemo(() => {\n        const route = values[FieldsEnum.route] || [];\n        return route.some((routePointValues) => {\n            const contextRoutePointId = routePointValues[RoutePointFieldsEnum.contextRoutePointId];\n            if (!contextRoutePointId) {\n                return false;\n            }\n\n            const fakePointId = routePointValues[RoutePointFieldsEnum.fakePointId];\n            const oldTourUpdateStop = oldTourUpdateStopByAlias?.[fakePointId] || null;\n            if (!oldTourUpdateStop) {\n                return false;\n            }\n\n            return (\n                getRoutePointTimeWindowHash(\n                    oldTourUpdateStop?.originalDateTimeFrom,\n                    oldTourUpdateStop?.originalDateTimeTo,\n                ) !==\n                getRoutePointTimeWindowHash(\n                    routePointValues[RoutePointFieldsEnum.timeWindow]?.start,\n                    routePointValues[RoutePointFieldsEnum.timeWindow]?.end,\n                )\n            );\n        });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [oldTourUpdateStopByAlias, values, context]);\n\n    const isChangedAnyAddress = React.useMemo(() => {\n        const allStops = Object.values(tourUpdateStopByAlias);\n\n        return allStops.some((stop) => {\n            const isAllowToUpdateAddress = checkIsAllowToUpdateAddress(stop);\n            if (!isAllowToUpdateAddress) {\n                return false;\n            }\n\n            return checkIsChangedAddressByCoords(stop.originalAddress, stop.address);\n        });\n    }, [tourUpdateStopByAlias]);\n\n    const isChangedWaypoint = isChangedAnyTimeWindow || isChangedAnyAddress;\n\n    const isLoadingSubmit = createContextRequest.loading || applyContextRequest.loading || deleteContextRequest.loading;\n    const isDisabledSubmit =\n        isLoadingSubmit || isApplyingContextChanges || (isChangedWaypoint ? !isConfirmedSubmit : false);\n\n    const delayedFocusOnLocationInput = (pointIndex: number, id: string) => {\n        setTimeout(async () => {\n            const locationName = getRoutePointFieldName(pointIndex, RoutePointFieldsEnum.location);\n            const inputNodeSelector = `div[data-point-id=\"${id}\"] input[name=\"${locationName}\"]`;\n\n            let inputNode = null;\n            while (!inputNode) {\n                inputNode = document.querySelector(inputNodeSelector);\n\n                // @ts-expect-error\n                if (inputNode?.focus) {\n                    // @ts-expect-error\n                    inputNode?.focus();\n                }\n\n                const DELAY = MS_IN_SEC;\n                await new Promise<void>((resolve) => {\n                    setTimeout(() => {\n                        resolve();\n                    }, DELAY);\n                });\n            }\n        }, 0);\n    };\n\n    const handleManualSelectLocation = (location: LocationT | null, routePointIndex: number) => {\n        if (!location) {\n            return;\n        }\n\n        const route = formik.values[FieldsEnum.route] || [];\n\n        const currentLocations = route.map((routePointValues) => routePointValues[RoutePointFieldsEnum.location]);\n        currentLocations[routePointIndex] = location;\n\n        const points = currentLocations.map((location) => location?.point).filter(isNonNil);\n\n        const boundingBox = getBoundingBox(points);\n        syncMapStateContext?.onSetMapBoundingBox?.callback?.(boundingBox);\n    };\n\n    const handleChangeRoutePointAddress: OnChangeRoutePointAddressT = (\n        routePointIndex,\n        contextRoutePointAlias,\n        changes,\n    ) => {\n        dispatch(\n            changeContext({\n                type: 'change-route-point-location',\n                contextRoutePointAlias,\n                routePointType: changes.routePointType,\n                address: changes.address,\n                beforeContextRoutePointAliases: getBeforeContextRoutePointAliases(routeValue, routePointIndex),\n            }),\n        );\n    };\n\n    const handleChangeRoutePointTimeWindow: OnChangeRoutePointTimeWindowT = (\n        routePointIndex,\n        contextRoutePointAlias,\n        changes,\n    ) => {\n        dispatch(\n            changeContext({\n                type: 'change-route-point-time-window',\n                contextRoutePointAlias,\n                routePointType: changes.routePointType,\n                timeWindow: changes.timeWindow,\n                address: changes.address,\n                beforeContextRoutePointAliases: getBeforeContextRoutePointAliases(routeValue, routePointIndex),\n            }),\n        );\n    };\n\n    const handleRemoveRoutePointReserve: OnDeleteRoutePointReserveT = (routePointIndex, contextRoutePointAlias) => {\n        // A newly added point without an address exists only in the form. Sending a delete request for it\n        // triggers context synchronization with stale form values and can remove the following route point.\n        if (!tourUpdateStopByAlias[contextRoutePointAlias]) {\n            return;\n        }\n\n        dispatch(\n            changeContext({\n                type: 'delete-route-point',\n                contextRoutePointAlias,\n            }),\n        );\n    };\n\n    return (\n        <div className={cx('wrap')}>\n            <FormikContext.Provider value={formik}>\n                <form onSubmit={formik.handleSubmit}>\n                    <div className={cx('form')}>\n                        <FormikFieldArray<FormValuesT, typeof FieldsEnum.route> name={FieldsEnum.route}>\n                            {(values, formikArrayHelpers) => {\n                                const { remove, insert } = formikArrayHelpers;\n\n                                return (\n                                    <>\n                                        <SyncPointsWatcher formikArrayHelpers={formikArrayHelpers} />\n                                        {values.map((value, index) => {\n                                            const nextValue = values[index + 1] || null;\n\n                                            const isFirst = index === 0;\n                                            const isLast = index === values.length - 1;\n\n                                            const routePointType = value[RoutePointFieldsEnum.type];\n                                            const fakePointId = value[RoutePointFieldsEnum.fakePointId];\n\n                                            const tourUpdateStop = tourUpdateStopByAlias?.[fakePointId] || null;\n                                            const oldTourUpdateStop = oldTourUpdateStopByAlias?.[fakePointId] || null;\n\n                                            const isAllowUpdateTimeWindows =\n                                                checkIsAllowToUpdateTimeSlots(tourUpdateStop);\n                                            const isAllowUpdateAddress = checkIsAllowToUpdateAddress(tourUpdateStop);\n                                            const isAllowRemove = checkIsAllowToDelete(tourUpdateStop);\n\n                                            const isBetweenOneFerryPoints =\n                                                nextValue?.type === RoutePointTypeEnum.ferryDisembark &&\n                                                value?.type === RoutePointTypeEnum.ferryOnboard;\n\n                                            const isShowAddPointControl = !isLast && !isBetweenOneFerryPoints;\n\n                                            return (\n                                                <>\n                                                    {routePointType === RoutePointTypeEnum.pickupOrDelivery && (\n                                                        <PickupOrDeliveryRoutePointPicker\n                                                            key={`point-${fakePointId}`}\n                                                            className={cx('route-point-fields')}\n                                                            isFirstRoutePointIndex={isFirst}\n                                                            isLastRoutePointIndex={isLast}\n                                                            routePointIndex={index}\n                                                            tourUpdateStop={tourUpdateStop}\n                                                            oldTourUpdateStop={oldTourUpdateStop}\n                                                            isAllowUpdateAddress={isAllowUpdateAddress}\n                                                            isAllowUpdateTimeWindows={isAllowUpdateTimeWindows}\n                                                            onChangeRoutePointAddress={handleChangeRoutePointAddress}\n                                                            onChangeRoutePointTimeWindow={\n                                                                handleChangeRoutePointTimeWindow\n                                                            }\n                                                            isAllowRemove={isAllowRemove}\n                                                            onRemove={(routePointIndex, contextRoutePointAlias) => {\n                                                                handleRemoveRoutePointReserve(\n                                                                    routePointIndex,\n                                                                    contextRoutePointAlias,\n                                                                );\n\n                                                                remove(index);\n                                                            }}\n                                                            onManualSelectLocation={handleManualSelectLocation}\n                                                        />\n                                                    )}\n                                                    {routePointType === RoutePointTypeEnum.dropAndHook && (\n                                                        <DropAndHookRoutePointPicker\n                                                            key={`point-${fakePointId}`}\n                                                            className={cx('route-point-fields')}\n                                                            routePointIndex={index}\n                                                            tourUpdateStop={tourUpdateStop}\n                                                            oldTourUpdateStop={oldTourUpdateStop}\n                                                            isAllowUpdateAddress={isAllowUpdateAddress}\n                                                            isAllowUpdateTimeWindows={isAllowUpdateTimeWindows}\n                                                            onChangeRoutePointAddress={handleChangeRoutePointAddress}\n                                                            onChangeRoutePointTimeWindow={\n                                                                handleChangeRoutePointTimeWindow\n                                                            }\n                                                            isAllowRemove={isAllowRemove}\n                                                            onRemove={(routePointIndex, routePointId) => {\n                                                                handleRemoveRoutePointReserve(\n                                                                    routePointIndex,\n                                                                    routePointId,\n                                                                );\n\n                                                                remove(index);\n                                                            }}\n                                                            onManualSelectLocation={handleManualSelectLocation}\n                                                        />\n                                                    )}\n                                                    {routePointType === RoutePointTypeEnum.driveThrough && (\n                                                        <DriveThroughRoutePointPicker\n                                                            key={`point-${fakePointId}`}\n                                                            className={cx('route-point-fields')}\n                                                            routePointIndex={index}\n                                                            tourUpdateStop={tourUpdateStop}\n                                                            oldTourUpdateStop={oldTourUpdateStop}\n                                                            isAllowUpdateAddress={isAllowUpdateAddress}\n                                                            onChangeRoutePointAddress={handleChangeRoutePointAddress}\n                                                            onManualSelectLocation={handleManualSelectLocation}\n                                                            isAllowRemove={isAllowRemove}\n                                                            onRemove={(routePointIndex, contextRoutePointAlias) => {\n                                                                handleRemoveRoutePointReserve(\n                                                                    routePointIndex,\n                                                                    contextRoutePointAlias,\n                                                                );\n                                                                remove(routePointIndex);\n                                                            }}\n                                                        />\n                                                    )}\n                                                    {routePointType === RoutePointTypeEnum.ferryOnboard && (\n                                                        <FerryOnboardPointPicker\n                                                            key={`point-${fakePointId}`}\n                                                            className={cx('route-point-fields')}\n                                                            routePointIndex={index}\n                                                        />\n                                                    )}\n                                                    {routePointType === RoutePointTypeEnum.ferryDisembark && (\n                                                        <FerryDisembarkPointPicker\n                                                            key={`point-${fakePointId}`}\n                                                            className={cx('route-point-fields')}\n                                                            routePointIndex={index}\n                                                        />\n                                                    )}\n                                                    {isShowAddPointControl && (\n                                                        <DividerWithDropdownControl\n                                                            key={`divider-with-dropdown-${index}`}\n                                                            className={cx('route-points-divider')}\n                                                            overlayPosition={DropdownOverlayPositionEnum.bottomCenter}\n                                                            tooltipNode={t(\n                                                                'broker-order-route-edit.waypoints-control.add-point',\n                                                            )}\n                                                            options={[\n                                                                {\n                                                                    label: (\n                                                                        <DropdownControlOptionLabel\n                                                                            icon={\n                                                                                <HollowCircleIcon\n                                                                                    borderColor={\n                                                                                        StyleGuideColorsEnum.charcoal\n                                                                                    }\n                                                                                />\n                                                                            }\n                                                                            label={t(\n                                                                                'broker-order-route-edit.waypoints-control.options.add-driver-through-point',\n                                                                            )}\n                                                                        />\n                                                                    ),\n                                                                    onSelect: () => {\n                                                                        const fakeId = generatePointFakeId();\n\n                                                                        const newRoutePoint: RoutePointFormValuesT = {\n                                                                            [RoutePointFieldsEnum.fakePointId]: fakeId,\n                                                                            [RoutePointFieldsEnum.contextRoutePointId]:\n                                                                                null,\n                                                                            [RoutePointFieldsEnum.type]:\n                                                                                RoutePointTypeEnum.driveThrough,\n                                                                            [RoutePointFieldsEnum.location]: null,\n                                                                            [RoutePointFieldsEnum.timeWindow]: null,\n                                                                        };\n\n                                                                        insert(index + 1, newRoutePoint);\n\n                                                                        delayedFocusOnLocationInput(index + 1, fakeId);\n                                                                    },\n                                                                },\n                                                                {\n                                                                    label: (\n                                                                        <DropdownControlOptionLabel\n                                                                            icon={\n                                                                                <SplitIcon\n                                                                                    fillColor={\n                                                                                        StyleGuideColorsEnum.blazeOrange\n                                                                                    }\n                                                                                />\n                                                                            }\n                                                                            label={t(\n                                                                                'broker-order-route-edit.waypoints-control.options.add-drop-and-hook-point',\n                                                                            )}\n                                                                        />\n                                                                    ),\n                                                                    onSelect: () => {\n                                                                        const fakeId = generatePointFakeId();\n\n                                                                        const newRoutePoint: RoutePointFormValuesT = {\n                                                                            [RoutePointFieldsEnum.fakePointId]: fakeId,\n                                                                            [RoutePointFieldsEnum.contextRoutePointId]:\n                                                                                null,\n                                                                            [RoutePointFieldsEnum.type]:\n                                                                                RoutePointTypeEnum.dropAndHook,\n                                                                            [RoutePointFieldsEnum.location]: null,\n                                                                            [RoutePointFieldsEnum.timeWindow]: null,\n                                                                        };\n\n                                                                        insert(index + 1, newRoutePoint);\n\n                                                                        delayedFocusOnLocationInput(index + 1, fakeId);\n                                                                    },\n                                                                },\n                                                            ]}\n                                                        />\n                                                    )}\n                                                </>\n                                            );\n                                        })}\n                                    </>\n                                );\n                            }}\n                        </FormikFieldArray>\n                    </div>\n                    <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n                    <FooterSideBarLayout hasPaddings hasShadow topNode={<FooterSideBarAlertsLayout />}>\n                        <div className={cx('footer-content')}>\n                            {isChangedWaypoint && (\n                                <Alert\n                                    icon={\n                                        <TimeWindowIcon\n                                            fillColor={StyleGuideColorsEnum.white}\n                                            fillOpacity={0}\n                                            strokeColor={StyleGuideColorsEnum.white}\n                                        />\n                                    }\n                                    size={AlertSizeEnum.small}\n                                    theme={AlertThemeEnum.orange}\n                                    className={cx('alert')}\n                                >\n                                    {t('broker-order-route-edit.footer.alerts.waypoint-changed')}\n                                </Alert>\n                            )}\n                            <div className={cx('checkboxes')}>\n                                {isChangedWaypoint && (\n                                    <Checkbox\n                                        className={cx('checkbox')}\n                                        theme={isConfirmedSubmit ? CheckboxThemeEnum.orange : CheckboxThemeEnum.green}\n                                        checked={isConfirmedSubmit}\n                                        label={t('broker-order-route-edit.footer.confirm-changing-waypoint')}\n                                        onChange={toggleIsConfirmedSubmit}\n                                    />\n                                )}\n                                {isNumber(newShipperPrice) &&\n                                    isNumber(oldShipperPrice) &&\n                                    newShipperPrice !== oldShipperPrice && (\n                                        <FormikField\n                                            className={cx('checkbox')}\n                                            name={FieldsEnum.updateShipperPrice}\n                                            error={formik.errors[FieldsEnum.updateShipperPrice]}\n                                            meta={formik.getFieldMeta(FieldsEnum.updateShipperPrice)}\n                                            setFieldValue={formik.setFieldValue}\n                                            setFieldTouched={formik.setFieldTouched}\n                                            isCheckbox\n                                            withoutLabelAndNotes\n                                        >\n                                            {(props) => (\n                                                <Checkbox\n                                                    theme={\n                                                        formik.values[FieldsEnum.updateShipperPrice]\n                                                            ? CheckboxThemeEnum.orange\n                                                            : CheckboxThemeEnum.green\n                                                    }\n                                                    checked={formik.values[FieldsEnum.updateShipperPrice]}\n                                                    onChange={props.onChange}\n                                                    label={\n                                                        <span className={cx('terms')}>\n                                                            {t(\n                                                                'broker-order-route-edit.footer.confirm-update-shipper-price',\n                                                            )}\n                                                            <Tooltip\n                                                                className={cx('tooltip')}\n                                                                position={TooltipPositionEnum.topCenter}\n                                                                theme={TooltipThemeEnum.black}\n                                                                tooltipNode={\n                                                                    <TooltipContent\n                                                                        theme={TooltipContentThemeEnum.black}\n                                                                    >\n                                                                        {t(\n                                                                            'broker-order-route-edit.footer.tooltips.update-shipper-price',\n                                                                        )}\n                                                                    </TooltipContent>\n                                                                }\n                                                            >\n                                                                {(isShow) => <TooltipIconTrigger isShow={isShow} />}\n                                                            </Tooltip>\n                                                        </span>\n                                                    }\n                                                />\n                                            )}\n                                        </FormikField>\n                                    )}\n                            </div>\n                            <PriceDetails className={cx('shipper-prices')} list={shipperPriceList} />\n                            <PriceDetails className={cx('carrier-prices')} list={carrierPriceList} />\n                            <div className={cx('actions')}>\n                                <Button.Container className={cx('action', 'action--assign')}>\n                                    <Button\n                                        isFullWidth\n                                        isCenterContent\n                                        theme={ButtonThemeEnum.primary}\n                                        isDisabled={isDisabledSubmit}\n                                        isLoading={isLoadingSubmit}\n                                        type=\"submit\"\n                                    >\n                                        {t('common:form-actions.save-and-close')}\n                                    </Button>\n                                    <Button.Timer\n                                        showTime={MS_IN_HOUR}\n                                        expireTime={context?.expireTime || null}\n                                        tooltipPosition={TooltipPositionEnum.topCenter}\n                                        tooltipMessage={t('broker-order-route-edit.time-left-to-accept-cost')}\n                                        onExpire={handleExpire}\n                                    />\n                                </Button.Container>\n                                <Button\n                                    theme={ButtonThemeEnum.secondary}\n                                    className={cx('action', 'action--cancel')}\n                                    onClick={onCancel}\n                                >\n                                    {t('common:form-actions.reset-changes')}\n                                </Button>\n                            </div>\n                        </div>\n                    </FooterSideBarLayout>\n                </form>\n            </FormikContext.Provider>\n            <UpdateTourConfirmationModal\n                data={updateTourModalConfirmation.data}\n                isLoading={isLoadingSubmit}\n                onCancel={handleCancelConfirmModal}\n                onClose={handleCancelConfirmModal}\n                onConfirm={handleConfirmSubmit}\n            />\n        </div>\n    );\n};\n\nexport default RouteEditForm;\n","// extracted by mini-css-extract-plugin\nexport default {};","import { actionChannel, take } from 'redux-saga/effects';\nimport { buffers } from 'redux-saga';\n\nfunction* semaphoreSaga<ActionT extends { type: string }>(\n    actionType: ActionT['type'],\n    handleSaga: (action: ActionT) => WrapGeneratorT<void>,\n): WrapGeneratorT<void> {\n    const channel = yield actionChannel(actionType, buffers.expanding(10));\n    while (true) {\n        const action: ActionT = yield take(channel);\n        yield handleSaga(action);\n    }\n}\n\nexport { semaphoreSaga };\n","import * as React from 'react';\nimport DateCell from 'common/components/Table/cell-renderers/DateCell/DateCell';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames/bind';\nimport styles from './ExpireDateCell.scss';\nimport { CarrierContractStatusEnum } from 'common/utils/api/models';\nimport { useSelector } from 'react-redux';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport ClickInterceptorLabel from 'common/components/ClickInterceptorLabel/ClickInterceptorLabel';\nimport { ContractRowT } from '../../models';\nimport {\n    selectUpdateCarrierContractRequest,\n    selectUpdatingCarrierContractId,\n} from 'common/store/carrier-contracts/selectors';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport ControlLoaderWithShadow from 'common/components/ControlLoaderWithShadow/ControlLoaderWithShadow';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    row: ContractRowT;\n    className?: string;\n    onSelectRow?: (row: ContractRowT) => void;\n};\n\nconst ExpireDateCell: React.FC<PropsT> = React.memo((props) => {\n    const { row, onSelectRow } = props;\n\n    const { t } = useTranslation();\n\n    const { partnerId } = usePartnerContext();\n\n    const permissions = useSelector(selectPermissions);\n\n    const updateContractRequest = useSelector(selectUpdateCarrierContractRequest(partnerId));\n    const updatingContractId = useSelector(selectUpdatingCarrierContractId(partnerId));\n\n    if (row?.id === updatingContractId && updateContractRequest.loading) {\n        return <ControlLoaderWithShadow fillColor={StyleGuideColorsEnum.light} size={DEFAULT_ICON_SIZE} />;\n    }\n\n    if (permissions.canReviewCarrierContracts && row?.status === CarrierContractStatusEnum.waitingForApprove) {\n        return (\n            <ClickInterceptorLabel>\n                <Button\n                    className={cx('action')}\n                    theme={ButtonThemeEnum.secondary}\n                    onClick={() => {\n                        if (onSelectRow) {\n                            onSelectRow(row);\n                        }\n                    }}\n                >\n                    {t('common:carrier-contracts.table.actions.review')}\n                </Button>\n            </ClickInterceptorLabel>\n        );\n    }\n\n    return <DateCell className={cx('date')} date={row?.validTill} />;\n});\n\nexport default ExpireDateCell;\n","import { UnitTypeEnum } from 'common/constants';\nimport { ApiLocationAddressT } from 'mobile-app/src/utils/api/carrier-tranziit/models';\nimport { FormikTouched } from 'formik';\nimport { ApiOrderCreationReservePointTypeT } from 'common/utils/api/models';\n\nexport enum ShipmentFieldsEnum {\n    fakeId = 'fakeId',\n\n    pickUpPointId = 'pickUpPointId',\n    dropOffPointId = 'dropOffPointId',\n\n    cargoUnitsCount = 'cargoUnitsCount',\n    cargoUnitType = 'cargoUnitType',\n    cargoWeight = 'cargoWeight',\n    cargoTemperatureRange = 'cargoTemperatureRange',\n    cargoDescription = 'cargoDescription',\n\n    poNumber = 'poNumber',\n    pickUpReferenceNumber = 'pickUpReferenceNumber',\n    dropOffReferenceNumber = 'dropOffReferenceNumber',\n}\n\nexport enum PointContactsFieldsEnum {\n    companyName = 'companyName',\n    fullName = 'fullName',\n    email = 'email',\n    phoneNumber = 'phoneNumber',\n    comment = 'comment',\n}\n\nexport enum FieldsEnum {\n    shipments = 'shipments',\n    contacts = 'contacts',\n}\n\nexport type TemperatureRangeT = [number, number];\n\nexport type ShipmentFormValuesT = {\n    fakeId: string | null;\n    pickUpPointId: RoutePointIdT | null;\n    dropOffPointId: RoutePointIdT | null;\n    cargoUnitsCount: string;\n    cargoUnitType: UnitTypeEnum;\n    cargoWeight: string;\n    cargoTemperatureRange: TemperatureRangeT;\n    cargoDescription: string;\n    poNumber: string;\n    pickUpReferenceNumber: string;\n    dropOffReferenceNumber: string;\n};\n\nexport type PointContactsFormValuesT = {\n    companyName: string;\n    fullName: string;\n    email: string;\n    phoneNumber: string;\n    comment: string;\n};\n\nexport type FormValuesT = {\n    shipments: Array<ShipmentFormValuesT>;\n    contacts: Array<PointContactsFormValuesT>;\n};\n\nexport type FormErrorsT = Partial<{\n    shipments: Array<\n        Partial<{\n            fakeId: FormErrorMessageT;\n            pickUpPointId: FormErrorMessageT;\n            dropOffPointId: FormErrorMessageT;\n            cargoUnitsCount: FormErrorMessageT;\n            cargoUnitType: FormErrorMessageT;\n            cargoWeight: FormErrorMessageT;\n            cargoTemperatureRange: FormErrorMessageT;\n            cargoDescription: FormErrorMessageT;\n            poNumber: FormErrorMessageT;\n            pickUpReferenceNumber: FormErrorMessageT;\n            dropOffReferenceNumber: FormErrorMessageT;\n        }>\n    >;\n    contacts: Array<\n        Partial<{\n            companyName: FormErrorMessageT;\n            fullName: FormErrorMessageT;\n            email: FormErrorMessageT;\n            phoneNumber: FormErrorMessageT;\n            comment: FormErrorMessageT;\n        }>\n    >;\n}>;\n\nexport const CARGO_DETAILS_FORM_NAME = 'details-order-form/v1.3';\n\nexport type RoutePointT = {\n    id: RoutePointIdT;\n    index?: number;\n    type?: ApiOrderCreationReservePointTypeT;\n    address: ApiLocationAddressT | null;\n};\n\nexport type FormTouchedT = OverwriteT<\n    FormikTouched<FormValuesT>,\n    {\n        shipments?: Array<FormikTouched<ShipmentFormValuesT>>;\n        contacts?: Array<FormikTouched<PointContactsFormValuesT>>;\n    }\n>;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n    size: number;\n};\n\nconst TrailerDropOffIcon: React.FC<PropsT> = (props) => {\n    const { size, className, fillColor, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} className={className} viewBox=\"0 0 20 20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path fill={fillColor} fillOpacity=\"0.3\" d=\"M17 3v8l-1 1v2h-2l-3-2V3h6z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M11.182 13.462c1.45 0 2.625 1.197 2.625 2.671 0 1.474-1.175 2.67-2.625 2.67-.061 0-.122-.002-.182-.006l-.001-1.505a1.166 1.166 0 001.335-1.158A1.163 1.163 0 0011 14.977v-1.51c.061-.003.122-.006.183-.006zm6.266 1.999v.783h-2.93a2.969 2.969 0 00-.027-.783h2.957zM18 2v10.235h-.844v3.004h-2.7l-.13-.084c-.442-1.314-1.669-2.265-3.109-2.265-.073 0-.146.002-.218.007L11 11h5V4h-5V2h7zm-1.585 10.234h-.41v1.662h.41v-1.662zm-13.863.516h1.192V9c0-.412.338-.75.75-.75h3c.413 0 .75.338.75.75v3.75h1.193c.667 0 1.005.81.532 1.283l-3.442 3.442a.747.747 0 01-1.058 0l-3.442-3.443c-.473-.472-.143-1.282.525-1.282zm4.942-6.056a.752.752 0 00.75-.739V4a.752.752 0 00-.75-.75h-3a.752.752 0 00-.75.75v1.944c0 .413.338.75.75.75h3z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nTrailerDropOffIcon.displayName = 'TrailerDropOffIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default TrailerDropOffIcon;\n\n/**\n *  @deprecated create/use ...Props class\n * */\nexport const getTrailerDropOffIconProps = (\n    preset:\n        | 'default'\n        | 'selected'\n        | 'assignment-events'\n        | 'assignment-error'\n        | 'assignment-normal'\n        | 'assignment-selected'\n        | 'assignment-input-normal'\n        | 'assignment-input-selected',\n): PropsT => {\n    switch (preset) {\n        case 'selected': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.brandAccent,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        case 'assignment-input-normal': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.white,\n                strokeColor: StyleGuideColorsEnum.light,\n            };\n        }\n        case 'assignment-normal': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.white,\n            };\n        }\n        case 'assignment-error': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.white,\n            };\n        }\n        case 'assignment-events': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.white,\n            };\n        }\n        case 'assignment-input-selected': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.brandAccent,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        case 'assignment-selected': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.brandAccent,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        default: {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.white,\n                strokeColor: StyleGuideColorsEnum.light,\n            };\n        }\n    }\n};\n","import { clientConfig } from 'common/utils/client-config';\n\nexport enum ClientFeatureEnum {\n    // start: debug features\n    errorDetails = 'error-details',\n    i18nLanguageSwitcher = 'local-switcher',\n    showNotificationToastTrigger = 'show-notification-toast',\n    partnerDrivers = 'partner-drivers',\n    showTraceId = 'show-trace-id',\n    showNotificationId = 'show-notification-id',\n    // end: debug features\n\n    // No implementation; hidden indefinitely for now\n    partnerInvoices = 'partner-invoices',\n    // Hidden by request; hidden indefinitely for now\n    assignmentExcludeCountries = 'assignment-exclude-countries',\n    // Waiting on payment gateway; hidden indefinitely for now\n    invoices = 'invoices',\n    // Waiting on payment gateway; hidden indefinitely for now\n    showStatusFiltersAfterPaid = 'show-status-filters-after-paid',\n\n    // Waiting for RFQ statistics to be released\n    showRFQStatistics = 'show-rfq-statistics',\n\n    // Waiting for backend endpoint to be implemented\n    cancelServiceMaintenanceAssetScheduleSidebar = 'cancel-service-maintenance-asset-schedule-sidebar',\n}\n\nexport type ClientFeaturesConfigT = Partial<Record<ClientFeatureEnum, boolean>>;\n\nconst LOCAL_STORAGE_KEY = 'client-features/v1.1';\n\nexport const saveClientFeaturesConfig = (config: ClientFeaturesConfigT) => {\n    localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(config));\n};\n\nexport const getRawClientFeaturesConfig = (): string | null => {\n    return localStorage.getItem(LOCAL_STORAGE_KEY);\n};\n\nexport const setRawClientFeaturesConfig = (rawValue: string) => {\n    return localStorage.setItem(LOCAL_STORAGE_KEY, rawValue);\n};\n\nexport const clearClientFeaturesConfig = () => {\n    localStorage.removeItem(LOCAL_STORAGE_KEY);\n};\n\nconst defaultConfig: ClientFeaturesConfigT = clientConfig.isProduction\n    ? {\n          [ClientFeatureEnum.showTraceId]: true,\n      }\n    : {\n          [ClientFeatureEnum.errorDetails]: true,\n          [ClientFeatureEnum.partnerInvoices]: true,\n          [ClientFeatureEnum.partnerDrivers]: true,\n          [ClientFeatureEnum.showTraceId]: true,\n      };\n\nexport const getClientFeaturesConfig = (): ClientFeaturesConfigT => {\n    const parsedConfig = JSON.parse(localStorage.getItem(LOCAL_STORAGE_KEY) || '{}');\n\n    return {\n        ...defaultConfig,\n        ...parsedConfig,\n    };\n};\n","import React from 'react';\n\nexport type SyncAssetScheduleContextValueT = {\n    truckId: TruckIdT | null;\n    setTruckId: (truckId: TruckIdT | null) => void;\n};\n\nconst SyncAssetScheduleContext = React.createContext<SyncAssetScheduleContextValueT>({\n    truckId: null,\n    setTruckId: () => {},\n});\n\nexport { SyncAssetScheduleContext };\n","import * as React from 'react';\nimport { useMemo } from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './SpotRequestDetails.scss';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport { useTranslation } from 'react-i18next';\nimport RouteLocationsOverview from 'common/components/entity-details/RouteLocationsOverview/RouteLocationsOverview';\nimport ExcludedCountries from 'common/components/entity-details/ExcludedCountries/ExcludedCountries';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { fetchTrailersDict } from 'common/store/trailers-dict/actions';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport { ApiStopTypeT, PartnerTypeEnum, StopTypeEnum } from 'common/utils/api/models';\nimport { selectSpotRequestDetails } from 'broker-admin/store/spot-request-details/selectors';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport CalendarIcon from 'common/icons/CalendarIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport ContactIcon from 'common/icons/ContactIcon';\nimport TimeWindowIcon from 'common/icons/TimeWindowIcon';\nimport CarrierIcon from 'common/icons/CarrierIcon';\nimport CommentIcon from 'common/icons/CommentIcon';\nimport LayoverIcon from 'common/icons/LayoverIcon';\nimport RouteIcon from 'common/icons/RouteIcon';\nimport TrailerIcon from 'common/icons/TrailerIcon';\nimport EmissionIcon from 'common/icons/EmissionIcon';\nimport { convertSecToHours, formatDate, formatTimeInterval } from 'common/utils/time';\nimport TeamDrivePill from 'common/components/status-pill/TeamDrivePill/TeamDrivePill';\nimport UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\nimport { convertToKm } from 'common/utils/distance';\nimport { ApiSpotStopT, SpotBidT, SpotRequestStatusEnum } from 'broker-admin/utils/api/spot-broker-tranziit/models';\n\nimport Bids from 'broker-admin/components/BaseSpotRequestDetailsSidebarContent/SpotRequestDetails/Bids/Bids';\nimport ShipperIcon from 'common/icons/ShipperIcon';\nimport ShipperPriceOfferInfoTable from 'common/components/info-tables/ShipperPriceOfferInfoTable/ShipperPriceOfferInfoTable';\nimport CarrierCostPriceInfoTable from 'broker-admin/components/info-tables/CarrierCostPriceInfoTable/CarrierCostPriceInfoTable';\nimport { isNonNil } from 'common/utils';\nimport NumberIcon from 'common/icons/NumberIcon';\nimport LocationLabel from 'common/components/LocationLabel/LocationLabel';\nimport ShipmentDetailsCard from './ShipmentDetailsCard/ShipmentDetailsCard';\nimport SpotRequestDetailsTabs from './SpotRequestDetailsTabs/SpotRequestDetailsTabs';\nimport { SpotDetailsTabEnum } from 'broker-admin/components/BaseSpotRequestDetailsSidebarContent/SpotRequestDetails/models';\nimport EmissionClassFormatter from 'design-system/components/InfoTable/formatters/EmissionClassFormatter/EmissionClassFormatter';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport Card from 'design-system/components/Card/Card';\nimport keyBy from 'lodash/keyBy';\nimport SimpleTrailerTypeFormatter from 'common/components/InfoTable/formatters/SimpleTrailerTypeFormatter/SimpleTrailerTypeFormatter';\nimport BoatIcon from 'common/icons/BoatIcon';\nimport { TFunction } from 'i18next';\nimport CaseIcon from 'common/icons/CaseIcon';\n\ntype PropsT = {\n    id: SpotRequestIdT;\n    isDisabledSelectBid?: boolean;\n    selectedBidId: BidIdT | null;\n    onSelectBid: (bid: SpotBidT) => void;\n    onOpenUserDetails: (params: {\n        partnerType: PartnerTypeEnum;\n        partnerId: PartnerIdT;\n        userId: UserIdT | null;\n    }) => void;\n};\n\nconst renderWaypointName = (t: TFunction, stop: ApiSpotStopT | null | undefined) => {\n    if (!stop) {\n        return null;\n    }\n\n    switch (stop.type) {\n        case StopTypeEnum.ferryOnboard: {\n            return t('spot-request-details.details.ferry-onboard');\n        }\n        case StopTypeEnum.ferryDisembark: {\n            return t('spot-request-details.details.ferry-disembark');\n        }\n        default: {\n            return t('spot-request-details.details.waypoint', {\n                number: (stop?.index || 0) + 1,\n            });\n        }\n    }\n};\n\nconst renderWaypointStopIcon = (stop: ApiSpotStopT) => {\n    if (stop.type === StopTypeEnum.ferryDisembark || stop.type === StopTypeEnum.ferryOnboard) {\n        return (\n            <BoatIcon\n                size={DEFAULT_ICON_SIZE}\n                strokeColor={StyleGuideColorsEnum.gray}\n                fillColor={StyleGuideColorsEnum.light}\n            />\n        );\n    }\n\n    return (\n        <NumberIcon\n            number={(stop.index || 0) + 1}\n            fillColor={\n                stop?.type === StopTypeEnum.driveThrough ? StyleGuideColorsEnum.gray : StyleGuideColorsEnum.charcoal\n            }\n        />\n    );\n};\n\nconst detailedWaypointStopTypeSet = new Set<ApiStopTypeT>([StopTypeEnum.pickupDeliveryShipment]);\n\nconst cx = classNames.bind(styles);\n\nconst PLACED_DATE_FORMAT = 'DD MMM YYYY, HH:mm';\nconst EXPIRES_DATE_FORMAT = 'DD MMM YYYY, HH:mm';\n\nconst SpotRequestDetails: React.FC<PropsT> = React.memo((props) => {\n    const { id, selectedBidId, isDisabledSelectBid, onSelectBid, onOpenUserDetails } = props;\n\n    const [selectedTab, setSelectedTab] = React.useState<SpotDetailsTabEnum | null>(SpotDetailsTabEnum.details);\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchTrailersDict());\n    }, [dispatch]);\n\n    const { details } = useSelector(selectSpotRequestDetails(id));\n\n    const stopById = React.useMemo(() => {\n        return keyBy(details?.stops, 'id');\n    }, [details]);\n\n    const { t } = useTranslation();\n\n    const entriesInfoTableRows = React.useMemo((): Array<InfoTableRowT> => {\n        const shipper = details?.shipper || null;\n\n        return [\n            {\n                icon: <ShipperIcon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.gray} />,\n                name: t('spot-request-details.details.shipper'),\n                value: shipper ? (\n                    <Link\n                        to={urlFactory.partnerDetails(PartnerTypeEnum.shipper, shipper.id)}\n                        theme={LinkThemeEnum.boldBrandDark}\n                    >\n                        {shipper.name}\n                    </Link>\n                ) : null,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                testSelector: 'shipper',\n                rows: [\n                    {\n                        icon: null,\n                        name: t('spot-request-details.details.broker-order-id'),\n                        value: details?.orderId ? (\n                            <Link\n                                to={urlFactory.brokerOrderDetails(details?.orderId)}\n                                theme={LinkThemeEnum.boldBrandDark}\n                            >\n                                {details?.orderNumber}\n                            </Link>\n                        ) : null,\n                        valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty'), isBold: true },\n                        testSelector: 'dispatch',\n                    },\n                ],\n            },\n        ].filter(isNonNil);\n    }, [t, details]);\n\n    const entriesInfoTableRows2 = React.useMemo((): Array<InfoTableRowT> => {\n        const carrier = details?.carrier || null;\n        const transportationOrderId = details?.transportationOrderId || null;\n\n        return [\n            {\n                icon: <CarrierIcon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.gray} />,\n                name: t('spot-request-details.details.carrier'),\n                value: carrier ? (\n                    <Link\n                        to={urlFactory.partnerDetails(PartnerTypeEnum.carrier, carrier.id)}\n                        theme={LinkThemeEnum.boldBrandDark}\n                    >\n                        {carrier.name}\n                    </Link>\n                ) : null,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.carrier-not-assigned'), isBold: true },\n                testSelector: 'carrier',\n                rows: [\n                    transportationOrderId && carrier\n                        ? {\n                              icon: (\n                                  <CaseIcon\n                                      size={DEFAULT_ICON_SIZE}\n                                      strokeColor={StyleGuideColorsEnum.gray}\n                                      fillColor={StyleGuideColorsEnum.light}\n                                  />\n                              ),\n                              name: t('spot-request-details.details.transport-order'),\n                              value: (\n                                  <Link\n                                      to={urlFactory.partnerTransportOrderDetails(\n                                          PartnerTypeEnum.carrier,\n                                          carrier.id,\n                                          transportationOrderId,\n                                      )}\n                                      theme={LinkThemeEnum.boldBrandDark}\n                                  >\n                                      {details?.transportationOrderNumber}\n                                  </Link>\n                              ),\n                              valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty'), isBold: true },\n                              testSelector: 'transport-order',\n                          }\n                        : null,\n                ],\n            },\n        ].filter(isNonNil);\n    }, [t, details]);\n\n    const spotInfoTableRows = React.useMemo((): Array<InfoTableRowT> => {\n        const carrier = details?.carrier || null;\n        const createdBy = details?.createdBy || null;\n\n        return [\n            {\n                icon: (\n                    <CalendarIcon\n                        size={DEFAULT_ICON_SIZE}\n                        fillColor={StyleGuideColorsEnum.light}\n                        strokeColor={StyleGuideColorsEnum.gray}\n                    />\n                ),\n                name: t('spot-request-details.details.created'),\n                value: formatDate(PLACED_DATE_FORMAT, details?.placedOn),\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty'), isBold: true },\n                testSelector: 'created',\n                rows: [\n                    {\n                        icon: (\n                            <ContactIcon\n                                fillColor={StyleGuideColorsEnum.light}\n                                strokeColor={StyleGuideColorsEnum.gray}\n                            />\n                        ),\n                        name: t('spot-request-details.details.author'),\n                        value:\n                            carrier && createdBy ? (\n                                <Link\n                                    onClick={() => {\n                                        onOpenUserDetails({\n                                            partnerType: PartnerTypeEnum.carrier,\n                                            partnerId: carrier.id,\n                                            userId: createdBy.id,\n                                        });\n                                    }}\n                                    theme={LinkThemeEnum.boldBrandDark}\n                                >\n                                    {createdBy?.fullName}\n                                </Link>\n                            ) : null,\n                        valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty'), isBold: true },\n                        testSelector: 'author',\n                    },\n                    {\n                        icon: (\n                            <TimeWindowIcon\n                                fillColor={StyleGuideColorsEnum.light}\n                                strokeColor={StyleGuideColorsEnum.gray}\n                            />\n                        ),\n                        name: t('spot-request-details.details.expiration'),\n                        value: formatDate(EXPIRES_DATE_FORMAT, details?.expiresAt),\n                        valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty'), isBold: true },\n                        testSelector: 'expiration',\n                    },\n                ],\n            },\n        ];\n    }, [t, details, onOpenUserDetails]);\n\n    const shipmentInfoTableRows = React.useMemo((): Array<InfoTableRowT> => {\n        return [\n            details?.carrierCost?.layover?.totalSeconds\n                ? {\n                      icon: (\n                          <LayoverIcon fillColor={StyleGuideColorsEnum.light} strokeColor={StyleGuideColorsEnum.gray} />\n                      ),\n                      name: t('spot-request-details.details.layover'),\n                      value: (\n                          <UnitTypeCount\n                              type={UnitTypeEnum.hoursAbbreviation}\n                              count={convertSecToHours(details?.carrierCost?.layover?.totalSeconds || 0)}\n                          />\n                      ),\n                      valueMods: { isBold: true },\n                      testSelector: 'layover',\n                      hasBottomBorder: true,\n                  }\n                : null,\n            {\n                icon: <RouteIcon fillColor={StyleGuideColorsEnum.gray} />,\n                name: t('spot-request-details.details.distance'),\n                value: (\n                    <UnitTypeCount\n                        type={UnitTypeEnum.kilometersAbbreviation}\n                        count={convertToKm(details?.priceOffer?.distances?.totalDistance)}\n                    />\n                ),\n                rightNode: details?.teamDrive ? <TeamDrivePill /> : null,\n                valueMods: { isBold: true },\n                testSelector: 'distance',\n                hasBottomBorder: true,\n            },\n            {\n                icon: (\n                    <TrailerIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.gray}\n                        fillColor={StyleGuideColorsEnum.light}\n                    />\n                ),\n                name: t('spot-request-details.details.trailer-type'),\n                value: <SimpleTrailerTypeFormatter trailerDictType={details?.trailerInfo} />,\n                valueMods: { isBold: true },\n                testSelector: 'trailer',\n                hasBottomBorder: true,\n            },\n            {\n                icon: <EmissionIcon strokeColor={StyleGuideColorsEnum.gray} />,\n                name: t('spot-request-details.details.emission'),\n                value: <EmissionClassFormatter emissionClass={details?.emissionClass} />,\n                valueMods: { isBold: true },\n                testSelector: 'emission',\n            },\n        ].filter(isNonNil);\n    }, [t, details]);\n\n    const bids = React.useMemo((): SpotBidT[] => {\n        return details?.bids || [];\n    }, [details]);\n\n    const firstShipment = details?.shipments?.[0] || null;\n    const commentTableRows = useMemo(() => {\n        return [\n            {\n                icon: <CommentIcon fillColor={StyleGuideColorsEnum.light} strokeColor={StyleGuideColorsEnum.gray} />,\n                name: t('spot-request-details.details.comments'),\n                value: firstShipment?.description,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty'), isBold: true },\n                testSelector: 'comments',\n            },\n        ];\n    }, [firstShipment, t]);\n\n    const renderStop = (stop: ApiSpotStopT, index: number) => {\n        const rows: Array<InfoTableRowT> = [\n            {\n                icon: renderWaypointStopIcon(stop),\n                name: renderWaypointName(t, stop),\n                value: <LocationLabel format=\"s1_s2_zip_city_country\" location={stop?.address} />,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                rows: [\n                    ...(detailedWaypointStopTypeSet.has(stop.type)\n                        ? [\n                              {\n                                  icon: null,\n                                  name: t('spot-request-details.details.time-slots'),\n                                  value: formatTimeInterval(stop?.timeSlotFrom, stop?.timeSlotTo),\n                                  valueMods: {\n                                      emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                      isBold: true,\n                                  },\n                                  testSelector: 'date-time',\n                                  hasBottomBorder: true,\n                              },\n                              {\n                                  icon: null,\n                                  name: t('spot-request-details.details.company-name'),\n                                  value: stop?.contact?.companyName,\n                                  valueMods: {\n                                      emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                      isBold: true,\n                                  },\n                                  testSelector: 'contact-company-name',\n                                  hasBottomBorder: true,\n                              },\n                              {\n                                  icon: null,\n                                  name: t('spot-request-details.details.contact-name'),\n                                  value: stop?.contact?.fullName,\n                                  valueMods: {\n                                      emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                      isBold: true,\n                                  },\n                                  testSelector: 'contact-name',\n                                  hasBottomBorder: true,\n                              },\n                              {\n                                  icon: null,\n                                  name: t('spot-request-details.details.contact-phone'),\n                                  value: stop?.contact?.phone,\n                                  valueMods: {\n                                      emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                      isBold: true,\n                                  },\n                                  testSelector: 'contact-phone',\n                                  hasBottomBorder: true,\n                              },\n                              {\n                                  icon: null,\n                                  name: t('spot-request-details.details.contact-email'),\n                                  value: stop?.contact?.email,\n                                  valueMods: {\n                                      emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                      isBold: true,\n                                  },\n                                  testSelector: 'contact-email',\n                                  hasBottomBorder: true,\n                              },\n                              {\n                                  icon: null,\n                                  name: t('spot-request-details.details.comments'),\n                                  value: stop?.contact?.comment,\n                                  valueMods: {\n                                      emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                      isBold: true,\n                                  },\n                                  testSelector: 'contact-comment',\n                              },\n                          ]\n                        : []),\n                ],\n            },\n        ];\n\n        return (\n            <InfoTable\n                key={index}\n                shouldRenderIcons\n                className={cx('table')}\n                rows={rows}\n                testSelector={`waypoint-${index}`}\n            />\n        );\n    };\n\n    const isShowStatus =\n        details?.status !== SpotRequestStatusEnum.canceled && details?.status !== SpotRequestStatusEnum.assigned;\n\n    const stops = details?.stops || [];\n    const firstStop = stops[0] || null;\n    const lastStop = stops[stops.length - 1] || null;\n\n    return (\n        <>\n            <div className={cx('container')}>\n                <SpotRequestDetailsTabs\n                    className={cx('tabs')}\n                    isShowStatus={isShowStatus}\n                    details={details}\n                    selectedTab={selectedTab}\n                    onSelectTab={setSelectedTab}\n                />\n                {selectedTab === SpotDetailsTabEnum.details && (\n                    <>\n                        <RouteLocationsOverview\n                            className={cx('route')}\n                            origin={firstStop?.address}\n                            pickupDockingHoursFrom={firstStop?.timeSlotFrom}\n                            pickupDockingHoursTo={firstStop?.timeSlotTo}\n                            destination={lastStop?.address}\n                            dropOffDockingHoursFrom={lastStop?.timeSlotFrom}\n                            dropOffDockingHoursTo={lastStop?.timeSlotTo}\n                        />\n                        <ExcludedCountries\n                            className={cx('excluded-countries')}\n                            titleNode={t('common:entity-details.excluded-countries.title')}\n                            countryCodes={details?.prohibitedCountries || []}\n                            tooltipNode={t('common:entity-details.excluded-countries.tooltip')}\n                        />\n                        <InfoTable\n                            shouldRenderIcons\n                            className={cx('table')}\n                            rows={entriesInfoTableRows}\n                            testSelector=\"entries-details\"\n                        />\n                        <InfoTable\n                            shouldRenderIcons\n                            className={cx('table')}\n                            rows={entriesInfoTableRows2}\n                            testSelector=\"entries-details-2\"\n                        />\n                        <InfoTable\n                            shouldRenderIcons\n                            className={cx('table')}\n                            rows={spotInfoTableRows}\n                            testSelector=\"entries-details\"\n                        />\n                        <InfoTable\n                            shouldRenderIcons\n                            className={cx('table')}\n                            rows={commentTableRows}\n                            testSelector=\"entries-details\"\n                        />\n                    </>\n                )}\n                <ShipperPriceOfferInfoTable\n                    className={cx('table')}\n                    totalPriceLabel={t('spot-request-details.details.shipper-prices')}\n                    totalPriceTooltip={t('spot-request-details.placeholders.shipper-prices')}\n                    hasContract={details?.hasShipperContract}\n                    totalPrice={details?.priceOffer?.totalPrice}\n                    teamDriveCost={details?.priceOffer?.teamDriveCost}\n                    travelHours={details?.priceOffer?.teamDriveHours}\n                    lineHaulCost={details?.priceOffer?.lineHaul}\n                    co2={details?.priceOffer?.co2}\n                    tollCost={details?.priceOffer?.toll?.totalCost}\n                    tollByRoadType={details?.priceOffer?.toll?.byRoadType}\n                    tranziitServiceFee={details?.priceOffer?.serviceFee}\n                    layoverCost={details?.priceOffer?.layover?.totalCost}\n                    layoverSeconds={details?.priceOffer?.layover?.totalSeconds}\n                    layoverPaidHours={details?.priceOffer?.layover?.paidHours}\n                    fuelDetails={details?.priceOffer?.fuel}\n                    additionalServiceItems={details?.priceOffer?.additionalServices?.items}\n                    appliedRules={details?.priceOffer?.appliedRules}\n                    shouldAlwaysRenderExpandTrigger\n                />\n                <div className={cx('separator')} />\n                <CarrierCostPriceInfoTable\n                    className={cx('table')}\n                    totalPrice={details?.carrierEstimatedCost?.totalCost}\n                    totalPriceLabel={t('spot-request-details.details.estimate-carrier-cost')}\n                    totalPriceTooltip={t('spot-request-details.placeholders.estimate-carrier-cost')}\n                    lineHaulCost={details?.carrierEstimatedCost?.lineHaul}\n                    tollCost={details?.carrierEstimatedCost?.toll?.totalCost}\n                    tollByRoadType={details?.carrierEstimatedCost?.toll?.byRoadType}\n                    co2={details?.carrierEstimatedCost?.co2}\n                    layoverCost={details?.carrierEstimatedCost?.layover?.totalCost}\n                    layoverSeconds={details?.carrierEstimatedCost?.layover?.totalSeconds}\n                    layoverPaidHours={details?.carrierEstimatedCost?.layover?.paidHours}\n                    fuelDetails={details?.carrierEstimatedCost?.fuel}\n                    teamDriveCost={details?.carrierEstimatedCost?.teamDriveCost}\n                    travelHours={details?.carrierEstimatedCost?.teamDriveHours}\n                    additionalServiceItems={details?.carrierEstimatedCost?.additionalServices?.items}\n                    appliedRules={details?.carrierEstimatedCost?.appliedRules}\n                    testSelector=\"estimate-carrier-cost\"\n                    shouldAlwaysRenderExpandTrigger\n                />\n                <div className={cx('separator')} />\n                <CarrierCostPriceInfoTable\n                    className={cx('table')}\n                    totalPrice={details?.carrierCost?.totalCost}\n                    totalPriceLabel={t('spot-request-details.details.carrier-cost')}\n                    totalPriceTooltip={t('spot-request-details.placeholders.carrier-cost')}\n                    lineHaulCost={details?.carrierCost?.lineHaul}\n                    tollCost={details?.carrierCost?.toll?.totalCost}\n                    tollByRoadType={details?.carrierCost?.toll?.byRoadType}\n                    co2={details?.carrierCost?.co2}\n                    layoverCost={details?.carrierCost?.layover?.totalCost}\n                    layoverSeconds={details?.carrierCost?.layover?.totalSeconds}\n                    layoverPaidHours={details?.carrierCost?.layover?.paidHours}\n                    fuelDetails={details?.carrierCost?.fuel}\n                    teamDriveCost={details?.carrierCost?.teamDriveCost}\n                    travelHours={details?.carrierCost?.teamDriveHours}\n                    additionalServiceItems={details?.carrierCost?.additionalServices?.items}\n                    appliedRules={details?.carrierCost?.appliedRules}\n                    testSelector=\"carrier-cost\"\n                    shouldAlwaysRenderExpandTrigger\n                />\n                {selectedTab === SpotDetailsTabEnum.details && (\n                    <>\n                        <InfoTable\n                            className={cx('table')}\n                            shouldRenderIcons\n                            rows={shipmentInfoTableRows}\n                            testSelector=\"shipment-details\"\n                        />\n                        {!!stops?.length && (\n                            <Card\n                                className={cx('waypoint-card')}\n                                titleNode={t('spot-request-details.cards.route')}\n                                rightNode={\n                                    <PillLabel theme={PillLabelThemeEnum.slate} isSymmetrical>\n                                        {t('spot-request-details.waypoint-counts', {\n                                            number: stops.length,\n                                        })}\n                                    </PillLabel>\n                                }\n                                hasHeaderBottomBorder\n                            >\n                                <div>\n                                    {stops?.map((stop, index) => {\n                                        return renderStop(stop, index);\n                                    })}\n                                </div>\n                            </Card>\n                        )}\n                        {details?.shipments?.map((shipment, index) => {\n                            return (\n                                <ShipmentDetailsCard\n                                    key={`shipment-details-card-${index}`}\n                                    className={cx('shipment-card')}\n                                    isReeferTrailer={!!details?.trailerInfo?.reefer}\n                                    shipmentNumber={index + 1}\n                                    shipment={shipment}\n                                    pickUpStop={stopById?.[shipment?.pickupPointId] || null}\n                                    dropOffStop={stopById?.[shipment?.dropOffPointId] || null}\n                                    keyboardShortcut={String(index + 1)}\n                                />\n                            );\n                        })}\n                    </>\n                )}\n                {selectedTab === SpotDetailsTabEnum.bids && (\n                    <>\n                        <Bids\n                            className={cx('bids')}\n                            bids={bids}\n                            isDisabledSelectBid={isDisabledSelectBid}\n                            selectedBidId={selectedBidId}\n                            onSelectBid={onSelectBid}\n                            estimateSpotRequestPrice={details?.carrierEstimatedCost?.totalCost || null}\n                            onOpenUserDetails={onOpenUserDetails}\n                        />\n                    </>\n                )}\n            </div>\n        </>\n    );\n});\n\nexport default SpotRequestDetails;\n","// extracted by mini-css-extract-plugin\nexport default {\"document-summary\":\"DocumentDetailsLayout__document-summary___KbeDS\",\"tabs\":\"DocumentDetailsLayout__tabs___qZUfq\",\"version\":\"DocumentDetailsLayout__version___MfhQu\",\"actual-version-details\":\"DocumentDetailsLayout__actual-version-details___PylBr\",\"tab-content\":\"DocumentDetailsLayout__tab-content___WOsVh\",\"fadeIn\":\"DocumentDetailsLayout__fadeIn___p7XRh\",\"blinking\":\"DocumentDetailsLayout__blinking___h2DIj\"};","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { FetchBrokerOrderDetailsRequestActionT } from './types';\nimport {\n    fetchBrokerOrderDetails,\n    fetchBrokerOrderDetailsBegin,\n    fetchBrokerOrderDetailsError,\n    fetchBrokerOrderDetailsSuccess,\n} from './slice';\nimport { selectBrokerOrderDetailsRequestStatus } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\n\nfunction* fetchBrokerOrderDetailsSaga(action: FetchBrokerOrderDetailsRequestActionT): WrapGeneratorT<void> {\n    const { id, options } = action.payload;\n\n    const requestStatus: ReReturnT<typeof selectBrokerOrderDetailsRequestStatus> = yield select(\n        selectBrokerOrderDetailsRequestStatus(id),\n    );\n    if (!checkNeedRequest(requestStatus, options)) {\n        return;\n    }\n\n    yield put(fetchBrokerOrderDetailsBegin({ id }));\n\n    const [error, details]: ReturnApiT<typeof brokerTranziitApi.getBrokerOrderDetails> =\n        yield brokerTranziitApi.getBrokerOrderDetails(id);\n    if (error) {\n        yield put(fetchBrokerOrderDetailsError({ id, error }));\n    } else {\n        yield put(fetchBrokerOrderDetailsSuccess({ id, details }));\n    }\n}\n\nfunction* brokerOrderDetailsSaga(): WrapGeneratorT<void> {\n    yield takeEvery(fetchBrokerOrderDetails.type, fetchBrokerOrderDetailsSaga);\n}\n\nexport default brokerOrderDetailsSaga;\n","import { ShipmentPapersUrlFactoryI } from 'common/components/papers/image-url-factories';\n\nexport const carrierShipmentPapersUrlFactory: ShipmentPapersUrlFactoryI = {\n    getThumbnailUrl: (shipmentId: ShipmentIdT | null, documentId: DocumentIdT | null): string | null => {\n        if (!shipmentId || !documentId) {\n            return null;\n        }\n\n        return `/api/v1/common/attached-papers/${documentId}/get-thumbnail`;\n    },\n\n    getContentUrl: (shipmentId: ShipmentIdT | null, documentId: DocumentIdT | null): string | null => {\n        if (!shipmentId || !documentId) {\n            return null;\n        }\n\n        return `/api/v1/common/attached-papers/${documentId}/get-content`;\n    },\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"id\":\"BrokerOrderNumber__id___sRq00\",\"fadeIn\":\"BrokerOrderNumber__fadeIn___y9lWs\",\"blinking\":\"BrokerOrderNumber__blinking___migpT\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\n\nimport styles from './PaperPlaceholder.scss';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport DownloadIcon from 'common/icons/DownloadIcon';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n};\n\nconst PaperPlaceholder: React.FC<PropsT> = React.memo((props) => {\n    const { className } = props;\n\n    return (\n        <div className={cs(cx('inner'), className)}>\n            <div className={cx('content')}>\n                <DownloadIcon fillColor={StyleGuideColorsEnum.gray} size={30} />\n            </div>\n        </div>\n    );\n});\n\nexport { PaperPlaceholder };\n","import { CountryCodeT } from 'common/store/countries-dict/models';\n\nexport enum FieldsEnum {\n    companyName = 'companyName',\n    countryCode = 'countryCode',\n    zipCode = 'zipCode',\n    city = 'city',\n    street = 'street',\n    acceptTerms = 'acceptTerms',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.companyName]: string;\n    [FieldsEnum.countryCode]: CountryCodeT | null;\n    [FieldsEnum.zipCode]: string;\n    [FieldsEnum.city]: string;\n    [FieldsEnum.street]: string;\n    [FieldsEnum.acceptTerms]: boolean;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import * as React from 'react';\n\nimport { useSelector } from 'react-redux';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { SEC_IN_HOUR, SEC_IN_MIN } from 'common/utils/time';\nimport { convertToKm, M_IN_KM } from 'common/utils/distance';\nimport { TFunction } from 'i18next';\nimport { useTranslation } from 'react-i18next';\nimport { formatThousandNumber } from 'common/utils/formatters';\nimport {\n    selectCalculateCostRequest,\n    selectAveragePriceOffer,\n} from 'common/store/shipper-contract-lane-creation/selectors';\n\ntype PropsT = {\n    className?: string;\n};\n\nconst formatDistance = (t: TFunction, distanceM: number | undefined): React.ReactNode => {\n    if (distanceM === undefined) {\n        return null;\n    }\n\n    if (distanceM <= M_IN_KM) {\n        return t('common:short-meters', {\n            value: formatThousandNumber(Math.round(distanceM)),\n        });\n    }\n\n    return t('common:short-kilometers', {\n        value: formatThousandNumber(convertToKm(distanceM)),\n    });\n};\n\nconst formatDuration = (t: TFunction, durationSec: number | undefined): React.ReactNode => {\n    if (durationSec === undefined) {\n        return null;\n    }\n\n    if (durationSec < SEC_IN_HOUR) {\n        const roundedDuration = Math.round(durationSec / SEC_IN_MIN);\n        return `${roundedDuration} ${t('common:minutes', {\n            postProcess: 'interval',\n            count: roundedDuration,\n        })}`;\n    }\n\n    const roundedDuration = Math.round(durationSec / SEC_IN_HOUR);\n    return `${roundedDuration} ${t('common:hours', {\n        postProcess: 'interval',\n        count: Math.round(durationSec / SEC_IN_HOUR),\n    })}`;\n};\n\nconst Estimate: React.FC<PropsT> = React.memo((props) => {\n    const { className } = props;\n\n    const calculateCostRequest = useSelector(selectCalculateCostRequest);\n    const averagePriceOffer = useSelector(selectAveragePriceOffer);\n\n    const { t } = useTranslation();\n\n    if (!calculateCostRequest.ok && !calculateCostRequest.loading) {\n        return null;\n    }\n\n    return (\n        <div className={className}>\n            {calculateCostRequest.ok && (\n                <span>\n                    {formatDistance(t, averagePriceOffer?.distances?.totalDistance)}\n                    {' / ~'}\n                    {formatDuration(t, averagePriceOffer?.travelSeconds)}\n                </span>\n            )}\n            {calculateCostRequest.loading && (\n                <ControlLoaderIcon fillColor={StyleGuideColorsEnum.charcoal} size={DEFAULT_ICON_SIZE} />\n            )}\n        </div>\n    );\n});\n\nexport default Estimate;\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"SelectedOfferHeader__content___cBdrA\",\"total\":\"SelectedOfferHeader__total___teunD\",\"total--changed\":\"SelectedOfferHeader__total--changed___rmZyH\",\"fadeIn\":\"SelectedOfferHeader__fadeIn___MvmwY\",\"blinking\":\"SelectedOfferHeader__blinking___Awslv\"};","import * as React from 'react';\nimport { useMemo } from 'react';\nimport { FieldsEnum, FormValuesT, RoutePointFieldsEnum } from '../constants';\nimport { useSelector } from 'react-redux';\nimport { ALL_DAY_RANGE, DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { RangeSelectorMarkT, RangeSelectorRangeT } from 'common/components/RangeSelector/RangeSelector';\nimport { isNonNil } from 'common/utils';\nimport { clearDateTimezone, MS_IN_MIN } from 'common/utils/time';\nimport { RangeSelectorZoneThemeEnum } from 'common/components/RangeSelector/constants';\nimport {\n    selectMaxWindowSizeMs,\n    selectMinWindowSizeMs,\n    selectTimeWindowQuantumMs,\n} from 'common/store/settings/selectors';\nimport { useTranslation } from 'react-i18next';\nimport FormikConnectContextField from 'common/components/forms/FormikConnectContextField/FormikConnectContextField';\nimport GeoSuggest from 'common/components/GeoSuggest/GeoSuggest';\nimport TimeIntervalDurationPillLabel from '../TimeIntervalDurationPillLabel/TimeIntervalDurationPillLabel';\nimport { useFormikContext } from 'formik';\nimport { getFieldFormValue } from 'common/utils/form-values';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './PickupOrDeliveryRoutePointPicker.scss';\nimport TimeWindowPicker from 'common/components/range-selectors/TimeWindowPicker/TimeWindowPicker';\nimport DeleteWaypointTrigger from '../DeleteWaypointTrigger/DeleteWaypointTrigger';\nimport WaypointNumberIcon from '../WaypointNumberIcon/WaypointNumberIcon';\nimport LinkDatePicker, {\n    DatePickerOverlayPositionEnum,\n} from 'design-system/components/date-pickers/LinkDatePicker/LinkDatePicker';\nimport { CalendarDateValueT } from 'design-system/components/Calendar/Calendar';\nimport moment from 'moment';\nimport isEqual from 'lodash/isEqual';\nimport CalendarAltIcon from 'common/icons/CalendarAltIcon';\n\nimport TimeIntervalLimitPillLabel from '../TimeIntervalLimitPillLabel/TimeIntervalLimitPillLabel';\nimport TimeWindowZoneText from '../TimeWindowZoneText/TimeWindowZoneText';\nimport TeamDriveIcon, { TeamDriveIconProps } from 'common/icons/TeamDriveIcon';\nimport UrgentIcon, { UrgentIconProps } from 'common/icons/UrgentIcon';\nimport HourglassIcon, { HourglassIconProps } from 'common/icons/HourglassIcon';\nimport { ApiTourUpdateStopDataT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport {\n    convertReserveTimeWindowToRelativeTimeWindow,\n    setDateForReserveTimeWindow,\n    setTimeWindowForReserveTimeWindow,\n    suggestLastTimeWindowOfDay,\n} from 'common/layouts/NewOrderPage/ShipmentDetailsForm/utils';\nimport { OnChangeRoutePointAddressT, OnChangeRoutePointTimeWindowT, OnDeleteRoutePointReserveT } from '../models';\nimport { prepareLocation } from 'common/utils/prepare-location';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport {\n    checkIsChangedAddressByCoords,\n    getRoutePointTimeWindowHash,\n} from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/utils';\nimport AddressChangesIndicator from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/AddressChangesIndicator/AddressChangesIndicator';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    routePointIndex: number;\n    isFirstRoutePointIndex: boolean;\n    isLastRoutePointIndex: boolean;\n    tourUpdateStop: ApiTourUpdateStopDataT | null;\n    oldTourUpdateStop: ApiTourUpdateStopDataT | null;\n    onRemove: OnDeleteRoutePointReserveT;\n    isAllowRemove: boolean;\n\n    isAllowUpdateAddress: boolean;\n    isAllowUpdateTimeWindows: boolean;\n\n    onManualSelectLocation: (location: LocationT | null, routePointIndex: number) => void;\n    onChangeRoutePointAddress: OnChangeRoutePointAddressT;\n    onChangeRoutePointTimeWindow: OnChangeRoutePointTimeWindowT;\n    isDisabledPreviewReserve?: boolean;\n    isShowSuggestLoading?: boolean;\n};\n\nexport enum RangeIdSetEnum {\n    original = 'original',\n    urgentPickUp = 'urgent-pick-up',\n    regularPickUp = 'regular-pick-up',\n    teamDriveDropOff = 'team-drive-drop-off',\n    regularDropOff = 'regular-drop-off',\n    layoverDropOff = 'layover-drop-off',\n}\n\nconst surchargeRangeTypeSet = new Set<string>([\n    RangeIdSetEnum.urgentPickUp,\n    RangeIdSetEnum.teamDriveDropOff,\n    RangeIdSetEnum.layoverDropOff,\n]);\n\nexport type TimeWindowPickerSettingsT = {\n    availableValues: TimeWindowT;\n    timeWindowRanges: RangeSelectorRangeT[];\n    marks?: Array<RangeSelectorMarkT>;\n};\n\nexport const DEFAULT_TIME_WINDOW_PICKER_SETTINGS: TimeWindowPickerSettingsT = {\n    availableValues: ALL_DAY_RANGE,\n    timeWindowRanges: [],\n};\n\nconst PickupOrDeliveryRoutePointPicker: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        routePointIndex,\n        isFirstRoutePointIndex,\n        isLastRoutePointIndex,\n        tourUpdateStop,\n        oldTourUpdateStop,\n        onRemove,\n        isAllowRemove,\n        isAllowUpdateAddress,\n        isAllowUpdateTimeWindows,\n        onManualSelectLocation,\n        onChangeRoutePointAddress,\n        onChangeRoutePointTimeWindow,\n        isDisabledPreviewReserve,\n        isShowSuggestLoading,\n    } = props;\n\n    const hasAddressChanges = checkIsChangedAddressByCoords(tourUpdateStop?.address, tourUpdateStop?.originalAddress);\n\n    const { t } = useTranslation();\n\n    let label = t('broker-order-route-edit.fields.pickup-and-delivery-point.label');\n    if (isFirstRoutePointIndex) {\n        label = t('broker-order-route-edit.fields.original-point.label');\n    }\n    if (isLastRoutePointIndex) {\n        label = t('broker-order-route-edit.fields.destination-point.label');\n    }\n\n    const formik = useFormikContext<FormValuesT>();\n\n    const fakePointIdFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.fakePointId}` as const;\n    const contextRoutePointIdFieldName =\n        `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.contextRoutePointId}` as const;\n    const locationFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.location}` as const;\n    const timeWindowFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.timeWindow}` as const;\n    const typeFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.type}` as const;\n\n    const selectedTimeWindow = getFieldFormValue(formik.values, timeWindowFieldName);\n    const contextRoutePointId = getFieldFormValue(formik.values, contextRoutePointIdFieldName);\n    const type = getFieldFormValue(formik.values, typeFieldName);\n    const location = getFieldFormValue(formik.values, locationFieldName);\n    const fakePointId = getFieldFormValue(formik.values, fakePointIdFieldName);\n\n    const isNewRoutePoint = !contextRoutePointId;\n\n    const isChangedTimeWindow =\n        !!oldTourUpdateStop &&\n        getRoutePointTimeWindowHash(selectedTimeWindow?.start, selectedTimeWindow?.end) !==\n            getRoutePointTimeWindowHash(oldTourUpdateStop?.originalDateTimeFrom, oldTourUpdateStop?.originalDateTimeTo);\n\n    const timeWindowQuantumMs = useSelector(selectTimeWindowQuantumMs);\n\n    const minWindowSizeMs = useSelector(selectMinWindowSizeMs);\n    const maxWindowSizeMs = useSelector(selectMaxWindowSizeMs);\n\n    const minRangeTimeWindow = minWindowSizeMs - MS_IN_MIN;\n    const maxRangeTimeWindow = maxWindowSizeMs + MS_IN_MIN;\n\n    const teamDriveMark = useMemo(\n        () => ({\n            borderTheme: RangeSelectorZoneThemeEnum.orange,\n            icon: <TeamDriveIcon {...TeamDriveIconProps.getCreateOrder()} />,\n        }),\n        [],\n    );\n\n    const urgentPickUpMark = useMemo(\n        () => ({\n            borderTheme: RangeSelectorZoneThemeEnum.orange,\n            icon: <UrgentIcon {...UrgentIconProps.getCreateOrder()} />,\n        }),\n        [],\n    );\n\n    const layoverMark = useMemo(\n        () => ({\n            borderTheme: RangeSelectorZoneThemeEnum.orange,\n            icon: <HourglassIcon {...HourglassIconProps.getCreateOrder()} />,\n        }),\n        [],\n    );\n\n    const teamDriveDropOffRange = useMemo(\n        () => ({\n            id: RangeIdSetEnum.teamDriveDropOff,\n            label: t('common:time-windows-types.team-drive'),\n            theme: RangeSelectorZoneThemeEnum.orange,\n        }),\n        [t],\n    );\n\n    const regularDropOffRange = useMemo(\n        () => ({\n            id: RangeIdSetEnum.regularDropOff,\n            theme: null,\n        }),\n        [],\n    );\n\n    const urgentPickUpRange = useMemo(\n        () => ({\n            id: RangeIdSetEnum.urgentPickUp,\n            label: t('common:time-windows-types.urgent'),\n            theme: RangeSelectorZoneThemeEnum.orange,\n        }),\n        [t],\n    );\n\n    const originalRange = useMemo(\n        () => ({\n            id: RangeIdSetEnum.original,\n            label: t('common:time-windows-types.urgent'),\n            theme: RangeSelectorZoneThemeEnum.charcoal,\n            children: (\n                <Tooltip\n                    position={TooltipPositionEnum.topCenter}\n                    theme={TooltipThemeEnum.black}\n                    className={cx('original-zone-tooltip-content')}\n                    tooltipNode={\n                        <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                            {t('broker-order-route-edit.fields.route-point.tooltip.original-time-window')}\n                        </TooltipContent>\n                    }\n                >\n                    {() => <div style={{ height: '100%', width: '100%' }} />}\n                </Tooltip>\n            ),\n        }),\n        [t],\n    );\n\n    const regularPickUpRange = useMemo(\n        () => ({\n            id: RangeIdSetEnum.regularPickUp,\n            theme: null,\n        }),\n        [],\n    );\n\n    const layoverDropOffRange = useMemo(\n        () => ({\n            id: RangeIdSetEnum.layoverDropOff,\n            label: t('common:time-windows-types.layover'),\n            theme: RangeSelectorZoneThemeEnum.orange,\n        }),\n        [t],\n    );\n\n    const renderZoneTextNode = React.useCallback((currentRanges: RangeSelectorRangeT[] | null) => {\n        const surchargeCurrentRanges = currentRanges?.filter((range) => {\n            return range && surchargeRangeTypeSet.has(range.id);\n        });\n\n        if (!surchargeCurrentRanges?.length) {\n            return null;\n        }\n\n        return <TimeWindowZoneText currentRanges={surchargeCurrentRanges} />;\n    }, []);\n\n    const tourUpdateStopTimeWindows = React.useMemo(() => {\n        if (!tourUpdateStop) {\n            return {\n                urgentTimeWindow: null,\n                regularTimeWindow: null,\n                layoverTimeWindow: null,\n                originalTimeWindow: null,\n            };\n        }\n\n        const { regularFrom, urgentFrom, layoverStart, latestTo, originalDateTimeFrom, originalDateTimeTo } =\n            tourUpdateStop;\n\n        return {\n            originalTimeWindow:\n                originalDateTimeFrom && originalDateTimeTo\n                    ? {\n                          start: originalDateTimeFrom,\n                          end: originalDateTimeTo,\n                      }\n                    : null,\n            urgentTimeWindow:\n                urgentFrom && regularFrom && urgentFrom !== regularFrom\n                    ? {\n                          start: urgentFrom,\n                          end: regularFrom,\n                      }\n                    : null,\n            regularTimeWindow: regularFrom\n                ? {\n                      start: regularFrom,\n                      end: layoverStart ? null : latestTo || null,\n                  }\n                : null,\n            layoverTimeWindow: layoverStart\n                ? {\n                      start: layoverStart,\n                      end: latestTo || null,\n                  }\n                : null,\n        };\n    }, [tourUpdateStop]);\n\n    const settings = React.useMemo<TimeWindowPickerSettingsT>(() => {\n        const isFirstTimeWindow = routePointIndex === 0;\n\n        if (!tourUpdateStop || !selectedTimeWindow) {\n            return DEFAULT_TIME_WINDOW_PICKER_SETTINGS;\n        }\n\n        const baseDate = selectedTimeWindow.start;\n\n        const availableValuesStart =\n            tourUpdateStopTimeWindows?.urgentTimeWindow?.start || tourUpdateStopTimeWindows?.regularTimeWindow?.start;\n        if (!availableValuesStart) {\n            return DEFAULT_TIME_WINDOW_PICKER_SETTINGS;\n        }\n\n        const availableValuesEnd =\n            tourUpdateStopTimeWindows?.layoverTimeWindow?.end ||\n            tourUpdateStopTimeWindows?.regularTimeWindow?.end ||\n            null;\n\n        const availableValues = suggestLastTimeWindowOfDay(\n            {\n                start: availableValuesStart,\n                end: availableValuesEnd,\n            },\n            baseDate,\n        );\n\n        const urgentTimeWindow = convertReserveTimeWindowToRelativeTimeWindow(\n            suggestLastTimeWindowOfDay(tourUpdateStopTimeWindows?.urgentTimeWindow || null, baseDate),\n        );\n\n        const regularTimeWindow = convertReserveTimeWindowToRelativeTimeWindow(\n            suggestLastTimeWindowOfDay(tourUpdateStopTimeWindows?.regularTimeWindow || null, baseDate),\n        );\n\n        const layoverTimeWindow = convertReserveTimeWindowToRelativeTimeWindow(\n            suggestLastTimeWindowOfDay(tourUpdateStopTimeWindows?.layoverTimeWindow || null, baseDate),\n        );\n\n        const originalTimeWindow = convertReserveTimeWindowToRelativeTimeWindow(\n            suggestLastTimeWindowOfDay(tourUpdateStopTimeWindows?.originalTimeWindow || null, baseDate),\n        );\n\n        const marks: Array<RangeSelectorMarkT> = [];\n\n        if (layoverTimeWindow) {\n            marks.push({\n                ...layoverMark,\n                value: layoverTimeWindow[0],\n            });\n        }\n\n        const timeWindowRanges: RangeSelectorRangeT[] = [\n            urgentTimeWindow\n                ? {\n                      ...(isFirstTimeWindow ? urgentPickUpRange : teamDriveDropOffRange),\n                      values: urgentTimeWindow,\n                      marks: [\n                          {\n                              ...(isFirstTimeWindow ? urgentPickUpMark : teamDriveMark),\n                              value: urgentTimeWindow[0],\n                          },\n                      ],\n                  }\n                : null,\n            regularTimeWindow\n                ? {\n                      ...(isFirstTimeWindow ? regularPickUpRange : regularDropOffRange),\n                      values: regularTimeWindow,\n                  }\n                : null,\n            layoverTimeWindow\n                ? {\n                      ...layoverDropOffRange,\n                      values: layoverTimeWindow,\n                      isHidden: true,\n                      marks: [\n                          {\n                              ...layoverMark,\n                              value: layoverTimeWindow[0],\n                          },\n                      ],\n                  }\n                : null,\n            originalTimeWindow\n                ? {\n                      ...originalRange,\n                      values: originalTimeWindow,\n                      isShowOutsideAvailableValues: true,\n                  }\n                : null,\n        ].filter(isNonNil);\n\n        const settings: TimeWindowPickerSettingsT = {\n            availableValues: convertReserveTimeWindowToRelativeTimeWindow(availableValues) || ALL_DAY_RANGE,\n            timeWindowRanges,\n            marks,\n        };\n\n        return settings;\n    }, [\n        layoverDropOffRange,\n        layoverMark,\n        originalRange,\n        teamDriveMark,\n        urgentPickUpMark,\n        tourUpdateStop,\n        tourUpdateStopTimeWindows,\n        selectedTimeWindow,\n        routePointIndex,\n        teamDriveDropOffRange,\n        regularDropOffRange,\n        urgentPickUpRange,\n        regularPickUpRange,\n    ]);\n\n    const relativeTimeWindow = useMemo((): TimeWindowT | null => {\n        return convertReserveTimeWindowToRelativeTimeWindow(selectedTimeWindow);\n    }, [selectedTimeWindow]);\n\n    const handleChangeTimeWindow = (value: TimeWindowT) => {\n        const newTimeWindow = setTimeWindowForReserveTimeWindow(value, selectedTimeWindow);\n        const start = newTimeWindow?.start || null;\n        const end = newTimeWindow?.end || null;\n        if (!start || !end) {\n            return;\n        }\n\n        const preparedLocation = prepareLocation(location);\n        if (!preparedLocation) {\n            return;\n        }\n\n        formik.setFieldValue(timeWindowFieldName, newTimeWindow);\n\n        onChangeRoutePointTimeWindow(routePointIndex, fakePointId, {\n            timeWindow: {\n                start,\n                end,\n            },\n            address: preparedLocation,\n            routePointType: type,\n        });\n    };\n\n    const selectedDate = React.useMemo(() => {\n        if (!selectedTimeWindow) {\n            return null;\n        }\n\n        return moment(clearDateTimezone(selectedTimeWindow.start)).toDate();\n    }, [selectedTimeWindow]);\n\n    const allowedTimeWindowStart = useMemo(() => {\n        return (\n            tourUpdateStopTimeWindows?.urgentTimeWindow?.start || tourUpdateStopTimeWindows?.regularTimeWindow?.start\n        );\n    }, [tourUpdateStopTimeWindows]);\n\n    const minDate = allowedTimeWindowStart;\n    const maxDate =\n        (tourUpdateStopTimeWindows?.layoverTimeWindow\n            ? tourUpdateStopTimeWindows?.layoverTimeWindow?.end\n            : tourUpdateStopTimeWindows?.regularTimeWindow?.end) || undefined;\n\n    const handleChangeDate = (date: CalendarDateValueT): void => {\n        if (!date) {\n            formik.setFieldValue(timeWindowFieldName, null);\n            return;\n        }\n\n        const newTimeWindow = setDateForReserveTimeWindow(date, selectedTimeWindow);\n        const isSameValue = isEqual(newTimeWindow, selectedTimeWindow);\n        if (isSameValue) {\n            return;\n        }\n\n        const start = newTimeWindow?.start || null;\n        const end = newTimeWindow?.end || null;\n        if (!start || !end) {\n            return;\n        }\n\n        const preparedLocation = prepareLocation(location);\n        if (!preparedLocation) {\n            return;\n        }\n\n        formik.setFieldValue(timeWindowFieldName, newTimeWindow);\n\n        onChangeRoutePointTimeWindow(routePointIndex, fakePointId, {\n            timeWindow: {\n                start,\n                end,\n            },\n            address: preparedLocation,\n            routePointType: type,\n        });\n    };\n\n    const isDisabledUpdateTimeWindows = isDisabledPreviewReserve || !isAllowUpdateTimeWindows;\n\n    return (\n        <div className={cs(cx('time-picker'), className)}>\n            <FormikConnectContextField<FormValuesT, typeof locationFieldName>\n                name={locationFieldName}\n                label={label}\n                fieldLabelClassName={cx('field', 'field--location')}\n                subLabel={\n                    <>\n                        <TimeIntervalDurationPillLabel\n                            className={cx('time-interval', {\n                                'time-interval--isHalfOpacity': isDisabledUpdateTimeWindows,\n                            })}\n                            i18nKey={null}\n                            isDayRelative\n                            timeWindow={relativeTimeWindow}\n                            isChanged={isChangedTimeWindow}\n                            originalDateTimeFrom={tourUpdateStop?.originalDateTimeFrom}\n                            originalDateTimeTo={tourUpdateStop?.originalDateTimeTo}\n                        />\n                        <TimeIntervalLimitPillLabel\n                            className={cx('time-interval', {\n                                'time-interval--isHalfOpacity': isDisabledUpdateTimeWindows,\n                            })}\n                            timeWindow={relativeTimeWindow}\n                        />\n                    </>\n                }\n                labelRightNode={\n                    <div className={cx('right-node')}>\n                        {selectedDate && (\n                            <LinkDatePicker\n                                leftIcon={\n                                    <CalendarAltIcon\n                                        size={DEFAULT_ICON_SIZE}\n                                        strokeColor={StyleGuideColorsEnum.brandDark}\n                                    />\n                                }\n                                isDisabled={isDisabledUpdateTimeWindows}\n                                minDate={minDate || undefined}\n                                maxDate={maxDate}\n                                value={selectedDate}\n                                onChange={handleChangeDate}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomRight}\n                            />\n                        )}\n                    </div>\n                }\n            >\n                {(props, extendsProps) => (\n                    <div className={cx('wrap')} data-point-id={fakePointId}>\n                        {isAllowUpdateAddress ? (\n                            <GeoSuggest\n                                className={cx('geo-suggest')}\n                                name={extendsProps.name}\n                                value={extendsProps.value}\n                                placeholder={t('broker-order-route-edit.fields.pickup-and-delivery-point.placeholder')}\n                                renderLeftIcon={({ hasValue, hasError, hasWarning, hasChanges, isDisabled }) => (\n                                    <WaypointNumberIcon\n                                        routePointIndex={routePointIndex}\n                                        hasValue={hasValue}\n                                        hasError={hasError}\n                                        hasWarning={hasWarning}\n                                        hasChanges={hasChanges}\n                                        isDisabled={isDisabled}\n                                        isNewRoutePoint={isNewRoutePoint}\n                                        isPickUpDeliveryRoutePointPicker\n                                    />\n                                )}\n                                onChange={(value) => {\n                                    const location = prepareLocation(value);\n                                    if (!location) {\n                                        return;\n                                    }\n\n                                    props.onChange(value);\n\n                                    onManualSelectLocation(value, routePointIndex);\n\n                                    onChangeRoutePointAddress(routePointIndex, fakePointId, {\n                                        routePointType: type,\n                                        address: location,\n                                    });\n                                }}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onFocus={props.onFocus}\n                                onBlur={props.onBlur}\n                                hasChanges={hasAddressChanges}\n                                testSelector={`pickup-or-delivery-location-${routePointIndex}`}\n                                showClearControl={!!extendsProps.value}\n                                isLoading={isShowSuggestLoading}\n                                renderRightNode={\n                                    hasAddressChanges\n                                        ? () => (\n                                              <AddressChangesIndicator\n                                                  originalLocation={tourUpdateStop?.originalAddress}\n                                              />\n                                          )\n                                        : undefined\n                                }\n                            />\n                        ) : (\n                            <ReadOnlyField\n                                withoutErrorMessage\n                                icon={\n                                    <WaypointNumberIcon\n                                        routePointIndex={routePointIndex}\n                                        isNewRoutePoint={isNewRoutePoint}\n                                        isPickUpDeliveryRoutePointPicker\n                                        hasValue={!!extendsProps.value}\n                                    />\n                                }\n                                value={extendsProps.value?.address || ''}\n                            />\n                        )}\n\n                        {isAllowRemove && (\n                            <DeleteWaypointTrigger\n                                onClick={() => {\n                                    onRemove(routePointIndex, fakePointId);\n                                }}\n                            />\n                        )}\n                    </div>\n                )}\n            </FormikConnectContextField>\n            <TimeWindowPicker\n                range={ALL_DAY_RANGE}\n                isDisabled={isDisabledUpdateTimeWindows}\n                availableValues={settings?.availableValues}\n                ranges={settings?.timeWindowRanges || []}\n                marks={settings?.marks}\n                values={relativeTimeWindow}\n                step={timeWindowQuantumMs}\n                minRangeWidth={minRangeTimeWindow}\n                maxRangeWidth={maxRangeTimeWindow}\n                renderZoneTextNode={renderZoneTextNode}\n                onChange={handleChangeTimeWindow}\n            />\n        </div>\n    );\n});\n\nexport default PickupOrDeliveryRoutePointPicker;\n","import { RoutePointTimeWindowT, RoutePointTypeEnum } from '../../../../store/order-edit-context/models';\n\nexport enum RoutePointFieldsEnum {\n    fakePointId = 'fakePointId',\n    contextRoutePointId = 'contextRoutePointId',\n    type = 'type',\n    location = 'location',\n    timeWindow = 'timeWindow',\n}\n\nexport type RoutePointFormValuesT = {\n    fakePointId: RoutePointIdT;\n    contextRoutePointId: RoutePointIdT | null;\n    type: RoutePointTypeEnum;\n    location: LocationT | null;\n    timeWindow: RoutePointTimeWindowT | null;\n};\n\nexport type RoutePointErrorsT = Partial<{\n    fakePointId: FormErrorMessageT;\n    contextRoutePointId: FormErrorMessageT;\n    type: FormErrorMessageT;\n    location: FormErrorMessageT;\n    timeWindow: FormErrorMessageT;\n}>;\n\nexport enum FieldsEnum {\n    route = 'route',\n    updateShipperPrice = 'updateShipperPrice',\n}\n\nexport type FormValuesT = {\n    route: Array<RoutePointFormValuesT>;\n    [FieldsEnum.updateShipperPrice]: boolean;\n};\n\nexport type FormErrorsT = Partial<{\n    [FieldsEnum.route]: Array<RoutePointErrorsT>;\n    [FieldsEnum.updateShipperPrice]?: FormErrorMessageT;\n}>;\n\nexport type AsyncFormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n    size?: number;\n    className?: string;\n};\n\nconst PdfFileIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, className, size = DEFAULT_ICON_SIZE } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\" className={className}>\n            <path\n                fill={fillColor}\n                fillRule=\"evenodd\"\n                d=\"M5.014 11.718c.306 0 .579.046.819.14.24.093.442.226.607.4.166.174.29.384.374.63.084.246.126.522.126.828 0 .306-.042.582-.126.828a1.699 1.699 0 01-.373.63 1.65 1.65 0 01-.608.4c-.24.094-.513.14-.819.14H3.943V18H2.584v-6.282h2.43zm4.887 0c.846 0 1.473.27 1.881.81.408.54.612 1.317.612 2.331s-.204 1.791-.612 2.331c-.408.54-1.035.81-1.881.81H7.876v-6.282h2.025zm7.686 0v1.107H14.77v1.44h2.52v1.107h-2.52V18h-1.35v-6.282h4.167zM9.811 12.78h-.603v4.158h.603c.402 0 .696-.129.882-.387.186-.258.279-.633.279-1.125v-1.143c0-.486-.093-.858-.279-1.116-.186-.258-.48-.387-.882-.387zm-5.139.027h-.729v1.818h.729c.318 0 .538-.06.662-.18.123-.12.184-.318.184-.594v-.27c0-.276-.061-.474-.184-.594-.124-.12-.344-.18-.662-.18zM13.979 2L18 6v4h-2V8h-4V4H4v6H2V2h11.979z\"\n            />\n        </svg>\n    );\n};\n\nPdfFileIcon.displayName = 'PdfFileIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n};\n\nexport { storyProps };\nexport default PdfFileIcon;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './BrokerOrderNumber.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    number: string;\n};\n\nconst BrokerOrderNumber: React.FC<PropsT> = React.memo((props) => {\n    const { number } = props;\n\n    return <span className={cx('id')}>{number}</span>;\n});\n\nexport default BrokerOrderNumber;\n","import React, { useCallback } from 'react';\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport { useTranslation } from 'react-i18next';\nimport CaseIcon from 'common/icons/CaseIcon';\nimport classNames from 'classnames/bind';\nimport styles from './BrokerPartnersControl.scss';\nimport {\n    AsyncRequestFactoryResultT,\n    AsyncRequestFactoryT,\n    useAsyncOptionsRequest,\n} from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-options-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport DropdownSearchMultipleInput, {\n    RenderTriggerPropsT,\n} from 'design-system/components/dropdowns/DropdownSearchMultipleInput/DropdownSearchMultipleInput';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { ApiPartnerT } from 'common/utils/api/models';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport ArrowsIcon from 'common/icons/ArrowsIcon';\n\nconst cx = classNames.bind(styles);\n\ntype OptionT = Pick<ApiPartnerT, 'id' | 'legalAddress' | 'name'>;\ntype ValueT = OptionT['id'] | null;\n\nexport type BrokerPartnersControlOptionT = OptionT;\nexport type BrokerPartnersControlValueT = ValueT;\n\nexport type PropsT = {\n    className?: string;\n    initialOptions?: Array<OptionT>;\n    initialRequestStatus?: RequestStatusT;\n    onSelect: (values: Array<ValueT>, options: Array<OptionT>) => void;\n    values: Array<ValueT>;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    overlayClassName?: string;\n    hasClearControl?: InputPropsT['hasClearControl'];\n    hasError?: InputPropsT['hasError'];\n    hasWarning?: InputPropsT['hasWarning'];\n    placeholder: InputPropsT['placeholder'];\n    onBlur?: InputPropsT['onBlur'];\n    onFocus?: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasChanges?: boolean;\n    includeProfileTypes?: Array<'CARRIER' | 'SHIPPER'>;\n    allowedQueryMinLength?: number;\n};\n\nconst BrokerPartnersControl: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        initialOptions,\n        values,\n        onSelect,\n        hasWarning,\n        hasError,\n        hasClearControl,\n        overlayPosition,\n        overlayClassName,\n        isDisabled,\n        placeholder,\n        onBlur,\n        onFocus,\n        hasChanges,\n        initialRequestStatus,\n        includeProfileTypes,\n        allowedQueryMinLength,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const requestFactory: AsyncRequestFactoryT<OptionT> = useCallback(\n        (query) => {\n            return brokerTranziitApi\n                .findPartnersByName(query, includeProfileTypes)\n                .then((response): AsyncRequestFactoryResultT<OptionT> => {\n                    const [error, result] = response;\n                    if (error) {\n                        return [error, null];\n                    }\n\n                    const items: Array<OptionT> = result?.content || [];\n\n                    return [null, items];\n                });\n        },\n        [includeProfileTypes],\n    );\n\n    const asyncOptionsRequest = useAsyncOptionsRequest<OptionT>({\n        initialOptions,\n        requestFactory,\n        settings: {\n            allowedQueryMinLength,\n        },\n    });\n\n    const handleReset = () => {\n        onSelect([], []);\n    };\n\n    const handleFocus: InputPropsT['onFocus'] = () => {\n        if (onFocus) {\n            onFocus();\n        }\n    };\n\n    const renderOption = (option: OptionT | undefined, placeholder?: string): React.ReactNode => {\n        if (!option) {\n            return placeholder;\n        }\n\n        return (\n            <DropdownControlOptionLabel\n                className={cx('option')}\n                withoutPaddings\n                icon={option.legalAddress?.country ? <FlagIcon countryCode={option.legalAddress.country} /> : null}\n                label={option.name || ''}\n            />\n        );\n    };\n\n    const renderTrigger = (\n        props: RenderTriggerPropsT,\n        options: Array<OptionT>,\n        placeholder: string | undefined,\n    ): React.ReactNode => {\n        const count = options?.length || 0;\n\n        let label: React.ReactNode = (\n            <>\n                {t('common-components.broker-partners-suggest.multiple-values-selected')}\n                {Boolean(count) && (\n                    <PillLabel className={cx('count')} isSymmetrical theme={PillLabelThemeEnum.charcoal}>\n                        {count}\n                    </PillLabel>\n                )}\n            </>\n        );\n\n        if (props.isEmpty) {\n            label = placeholder;\n        }\n\n        if (options?.length === 1) {\n            const firstOption = options?.[0] || null;\n            label = firstOption?.name || '';\n        }\n\n        return (\n            <TransparentTrigger\n                onClick={props.onClick}\n                isPressed={props.isPressed}\n                label={label}\n                leftIcon={\n                    <CaseIcon\n                        size={DEFAULT_ICON_SIZE}\n                        fillColor={StyleGuideColorsEnum.light}\n                        strokeColor={StyleGuideColorsEnum.charcoal}\n                    />\n                }\n                rightIcon={<ArrowsIcon />}\n                reflectionTheme={ReflectionThemeEnum.light}\n            />\n        );\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option.id;\n\n    return (\n        <DropdownSearchMultipleInput<OptionT, ValueT>\n            className={className}\n            selectedValues={values}\n            placeholder={placeholder}\n            options={asyncOptionsRequest.options}\n            isDisabled={isDisabled}\n            onSelect={onSelect}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            onChangeQuery={asyncOptionsRequest.onChangeQuery}\n            renderOption={renderOption}\n            renderTrigger={renderTrigger}\n            getOptionValue={getOptionValue}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={handleFocus}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            overlayClassName={overlayClassName}\n            isLoading={asyncOptionsRequest.requestStatus.loading || initialRequestStatus?.loading}\n            onReset={hasClearControl ? handleReset : undefined}\n        />\n    );\n};\n\nexport default BrokerPartnersControl;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './IdCell.scss';\n\ntype PropsT = {\n    id: string;\n};\n\nconst cx = classNames.bind(styles);\n\nconst IdCell: React.FC<PropsT> = React.memo((props) => {\n    const { id } = props;\n\n    return <div className={cx('id')}>{id}</div>;\n});\n\nexport default IdCell;\n","import * as React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './CarrierWithUtilizationDropdownOption.scss';\nimport HollowCircleIcon from 'common/icons/HollowCircleIcon';\nimport { useTranslation } from 'react-i18next';\nimport getUtilizationColor from 'common/utils/get-utilization-color';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    utilizationPercent: number | null;\n    name: string;\n    isLoading: boolean;\n};\n\nconst CarrierWithUtilizationDropdownOption: React.FC<PropsT> = React.memo((props) => {\n    const { className, name, utilizationPercent, isLoading } = props;\n\n    const { t } = useTranslation();\n\n    const isShowUtilization = utilizationPercent !== null;\n    const isShowUtilizationLoader = utilizationPercent === null && isLoading;\n\n    return (\n        <div className={cs(cx('option'), className)}>\n            <div className={cx('name')}>{name}</div>\n            {(isShowUtilization || isShowUtilizationLoader) && <div className={cx('spacer')} />}\n            {isShowUtilization && (\n                <>\n                    <HollowCircleIcon\n                        className={cx('indicator')}\n                        borderColor={getUtilizationColor(utilizationPercent)}\n                    />\n                    <div className={cx('utilization')}>\n                        {t('assignment.asset-utilization', { percent: utilizationPercent })}\n                    </div>\n                </>\n            )}\n            {isShowUtilizationLoader && (\n                <ControlLoaderIcon fillColor={StyleGuideColorsEnum.brandAccent} size={DEFAULT_ICON_SIZE} />\n            )}\n        </div>\n    );\n});\n\nexport default CarrierWithUtilizationDropdownOption;\n","// extracted by mini-css-extract-plugin\nexport default {\"pill--is-spot\":\"TransportOrderStatusPill__pill--is-spot___tueoj\",\"pill--is-archive\":\"TransportOrderStatusPill__pill--is-archive___eH29N\",\"fadeIn\":\"TransportOrderStatusPill__fadeIn___vKRCP\",\"blinking\":\"TransportOrderStatusPill__blinking___LSmqC\"};","import {\n    TransportOrderDetailsActionT,\n    TransportOrderDetailsByIdStateT,\n    TransportOrderDetailsStateT,\n    FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_BEGIN,\n    FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_ERROR,\n    FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_SUCCESS,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: TransportOrderDetailsByIdStateT = {};\n\nexport const initialTransportOrderDetailsState: TransportOrderDetailsStateT = {\n    details: null,\n    requestStatus: requestStatus.initial,\n};\n\nexport default (\n    state = initialState,\n    action: TransportOrderDetailsActionT | DestroySessionActionT,\n): TransportOrderDetailsByIdStateT => {\n    switch (action.type) {\n        case FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_BEGIN: {\n            const { id } = action;\n\n            const transportOrderDetailsState = state[id] || initialTransportOrderDetailsState;\n\n            return {\n                ...state,\n                [id]: {\n                    ...transportOrderDetailsState,\n                    requestStatus: requestStatus.loading,\n                },\n            };\n        }\n\n        case FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_ERROR: {\n            const { error, id } = action;\n\n            const transportOrderDetailsState = state[id] || initialTransportOrderDetailsState;\n\n            return {\n                ...state,\n                [id]: {\n                    ...transportOrderDetailsState,\n                    requestStatus: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_SUCCESS: {\n            const { transportOrderDetails, id } = action;\n\n            const transportOrderDetailsState = state[id] || initialTransportOrderDetailsState;\n\n            return {\n                ...state,\n                [id]: {\n                    ...transportOrderDetailsState,\n                    requestStatus: requestStatus.ok,\n                    details: transportOrderDetails,\n                },\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default: {\n            return state;\n        }\n    }\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"credit-limit-pill\":\"CreditLimit__credit-limit-pill___zfsBV\",\"fadeIn\":\"CreditLimit__fadeIn___F4yWu\",\"blinking\":\"CreditLimit__blinking___Iju8T\"};","import { TFunction } from 'i18next';\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { RevokeContractActionEnum } from 'common/utils/api/models';\nimport { checkIsPositiveNumberOrZeroValue, checkNotEmpty } from 'common/utils/form-validators';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    let errors: FormErrorsT = {\n        ...checkNotEmpty(t, [FieldsEnum.action], values),\n    };\n\n    const action = values[FieldsEnum.action];\n\n    if (action === RevokeContractActionEnum.setNewContract) {\n        errors = {\n            ...errors,\n            ...checkNotEmpty(t, [FieldsEnum.nextContractId], values),\n        };\n    }\n\n    if (action === RevokeContractActionEnum.setNewRate) {\n        errors = {\n            ...errors,\n            ...checkNotEmpty(\n                t,\n                [FieldsEnum.trucksRatePerKm, FieldsEnum.boxesRatePerKm, FieldsEnum.tiltsRatePerKm],\n                values,\n            ),\n            ...checkIsPositiveNumberOrZeroValue(\n                t,\n                [FieldsEnum.trucksRatePerKm, FieldsEnum.boxesRatePerKm, FieldsEnum.tiltsRatePerKm],\n                values,\n            ),\n        };\n    }\n\n    return errors;\n};\n\nexport default validate;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ShipperContractDetails.scss';\nimport { useTranslation } from 'react-i18next';\nimport moment from 'moment';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport FilePickerInput from 'design-system/components/FilePickerInput/FilePickerInput';\nimport { ShipperContractDetailsT } from 'common/store/shipper-contract-details/models';\nimport { EMPTY_VALUE_PLACEHOLDER } from 'common/components/ReadOnlyFieldValue/ReadOnlyFieldValue';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport { DownloadDataT } from '../EditShipperContractDetailsForm/models';\nimport { RemoteFile } from 'design-system/components/FilePickerInput/models';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport CalendarIcon from 'common/icons/CalendarIcon';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { TooltipPositionEnum } from 'design-system/components/Tooltip/Tooltip';\nimport isNumber from 'lodash/isNumber';\nimport DownloadIcon from 'common/icons/DownloadIcon';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    partnerId: PartnerIdT;\n    shipperContractId: ShipperContractIdT;\n    shipperContractDetails: ShipperContractDetailsT | null;\n    onDownloadShipperContract: (data: DownloadDataT) => void;\n};\n\nconst VALID_TILL_FORMAT = 'DD.MM.YYYY';\n\nconst ShipperContractDetails: React.FC<PropsT> = (props) => {\n    const { partnerId, shipperContractId, shipperContractDetails, onDownloadShipperContract } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <div>\n            <FieldGroup>\n                <ReadOnlyField\n                    className={cx('field', 'field--name')}\n                    label={t('common:shipper-contract-details.editing-form.fields.name.label')}\n                    value={shipperContractDetails?.name || ''}\n                />\n                <ReadOnlyField\n                    className={cx('field', 'field--number')}\n                    label={t('common:shipper-contract-details.editing-form.fields.number.label')}\n                    tooltipNode={\n                        <TooltipContent isCenter theme={TooltipContentThemeEnum.black} width={150}>\n                            {t('common:shipper-contract-details.editing-form.fields.number.tooltip')}\n                        </TooltipContent>\n                    }\n                    tooltipPosition={TooltipPositionEnum.centerLeft}\n                    value={shipperContractDetails?.number || ''}\n                    placeholder={EMPTY_VALUE_PLACEHOLDER}\n                />\n            </FieldGroup>\n            <FieldGroup>\n                <ReadOnlyField\n                    icon={\n                        <CalendarIcon\n                            size={DEFAULT_ICON_SIZE}\n                            fillColor={StyleGuideColorsEnum.brandAccent}\n                            strokeColor={StyleGuideColorsEnum.brandDark}\n                        />\n                    }\n                    className={cx('field', 'field--activate-date')}\n                    label={t('common:shipper-contract-details.editing-form.fields.activate-date.label')}\n                    value={\n                        shipperContractDetails?.validFrom\n                            ? moment(shipperContractDetails.validFrom).format(VALID_TILL_FORMAT)\n                            : null\n                    }\n                />\n                <ReadOnlyField\n                    icon={\n                        <CalendarIcon\n                            size={DEFAULT_ICON_SIZE}\n                            fillColor={StyleGuideColorsEnum.brandAccent}\n                            strokeColor={StyleGuideColorsEnum.brandDark}\n                        />\n                    }\n                    className={cx('field', 'field--valid-till')}\n                    label={t('common:shipper-contract-details.editing-form.fields.valid-till-date.label')}\n                    value={\n                        shipperContractDetails?.validTill\n                            ? moment(shipperContractDetails.validTill).format(VALID_TILL_FORMAT)\n                            : null\n                    }\n                />\n                <ReadOnlyField\n                    className={cx('field', 'field--orders-left')}\n                    label={t('common:shipper-contract-details.editing-form.fields.orders-left.label')}\n                    value={\n                        isNumber(shipperContractDetails?.ordersLeft) &&\n                        isNumber(shipperContractDetails?.maxNumberOfOrders)\n                            ? `${shipperContractDetails?.ordersLeft}/${shipperContractDetails?.maxNumberOfOrders}`\n                            : null\n                    }\n                    placeholder={EMPTY_VALUE_PLACEHOLDER}\n                />\n            </FieldGroup>\n            <div className={cx('field', 'field--file')}>\n                <FilePickerInput\n                    accept=\"image/*,application/pdf\"\n                    name=\"name\"\n                    onChange={() => {\n                        // nothing\n                    }}\n                    value={\n                        new RemoteFile<DownloadDataT>({\n                            name: shipperContractDetails?.fileName || '',\n                            downloadData: {\n                                partnerId,\n                                shipperContractId,\n                            },\n                        })\n                    }\n                    onDownload={onDownloadShipperContract}\n                    renderLeftIcon={({ isEmpty }) => (\n                        <DownloadIcon\n                            fillColor={isEmpty ? StyleGuideColorsEnum.charcoal : StyleGuideColorsEnum.brandDark}\n                            size={DEFAULT_ICON_SIZE}\n                        />\n                    )}\n                />\n            </div>\n        </div>\n    );\n};\n\nexport default ShipperContractDetails;\n","// extracted by mini-css-extract-plugin\nexport default {\"map\":\"ShipperContractLaneDetailsMap__map___IIokZ\",\"marker\":\"ShipperContractLaneDetailsMap__marker____aru_\",\"fadeIn\":\"ShipperContractLaneDetailsMap__fadeIn___pPSck\",\"blinking\":\"ShipperContractLaneDetailsMap__blinking___jKslJ\"};","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"ContentMargins__content___Pirtz\",\"fadeIn\":\"ContentMargins__fadeIn___SDYOE\",\"blinking\":\"ContentMargins__blinking___Sbb0M\"};","// extracted by mini-css-extract-plugin\nexport default {\"count\":\"UnitTypeCount__count___Dy2TE\",\"fadeIn\":\"UnitTypeCount__fadeIn___ZsPvu\",\"blinking\":\"UnitTypeCount__blinking___soM8B\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './DummyPagination.scss';\nimport noop from 'lodash/noop';\nimport LeftArrowIcon from 'common/icons/LeftArrowIcon';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport RightArrowIcon from 'common/icons/RightArrowIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\nexport type PropsT = {\n    isDisabledPrevPage?: boolean;\n    goToPrevPage: () => void;\n    isDisabledNextPage?: boolean;\n    goToNextPage: () => void;\n};\n\nconst cx = classNames.bind(styles);\n\nconst colorsMap = {\n    disabled: StyleGuideColorsEnum.light,\n    active: StyleGuideColorsEnum.charcoal,\n};\n\nconst DummyPagination: React.FC<PropsT> = React.memo((props) => {\n    const { isDisabledPrevPage, goToNextPage, isDisabledNextPage, goToPrevPage } = props;\n\n    const handlePrevPage = () => {\n        if (isDisabledPrevPage) {\n            return;\n        }\n\n        goToPrevPage();\n    };\n\n    const handleNextPage = () => {\n        if (isDisabledNextPage) {\n            return;\n        }\n\n        goToNextPage();\n    };\n\n    return (\n        <div className={cx('pagination')} data-test-selector=\"pagination\">\n            <TransparentTrigger\n                withoutBorderRadius\n                isDisabled={isDisabledPrevPage}\n                onClick={isDisabledPrevPage ? noop : handlePrevPage}\n                testSelector=\"prev-page\"\n                leftIcon={<LeftArrowIcon fillColor={isDisabledPrevPage ? colorsMap.disabled : colorsMap.active} />}\n                reflectionTheme={ReflectionThemeEnum.light}\n            />\n            <TransparentTrigger\n                withoutBorderRadius\n                isDisabled={isDisabledNextPage}\n                onClick={isDisabledNextPage ? noop : handleNextPage}\n                testSelector=\"next-page\"\n                leftIcon={<RightArrowIcon fillColor={isDisabledNextPage ? colorsMap.disabled : colorsMap.active} />}\n                reflectionTheme={ReflectionThemeEnum.light}\n            />\n        </div>\n    );\n});\n\nexport default DummyPagination;\n","import * as React from 'react';\nimport { CountryCodeT } from 'common/store/countries-dict/models';\nimport DeprecatedCountyFlagLabel from 'common/components/DeprecatedCountyFlagLabel/DeprecatedCountyFlagLabel';\nimport { useSelector } from 'react-redux';\nimport { selectCountriesByCode, selectCountriesDictRequest } from 'common/store/countries-dict/selectors';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    countryCode: CountryCodeT | null | undefined;\n};\n\nconst CountryCell: React.FC<PropsT> = React.memo((props) => {\n    const { countryCode } = props;\n\n    const requestStatus = useSelector(selectCountriesDictRequest);\n    const countryByCode = useSelector(selectCountriesByCode);\n\n    if (!requestStatus || !countryByCode) {\n        return <ControlLoaderIcon fillColor={StyleGuideColorsEnum.charcoal} size={DEFAULT_ICON_SIZE} />;\n    }\n\n    const country = countryCode ? countryByCode[countryCode] : undefined;\n\n    return <DeprecatedCountyFlagLabel country={country} />;\n});\n\nexport default CountryCell;\n","// extracted by mini-css-extract-plugin\nexport default {\"message\":\"SideBarMessage__message___YkALD\",\"icon\":\"SideBarMessage__icon___I9hrv\",\"title\":\"SideBarMessage__title___XAUCG\",\"description\":\"SideBarMessage__description___SnORH\",\"actions\":\"SideBarMessage__actions___Kj5MF\",\"trace-id\":\"SideBarMessage__trace-id___vKhWI\",\"fadeIn\":\"SideBarMessage__fadeIn____fVXd\",\"blinking\":\"SideBarMessage__blinking___LtOge\"};","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { selectOrderCreationMs } from 'common/store/settings/selectors';\nimport { useSelector } from 'react-redux';\nimport { getMinutes } from 'common/utils/time';\n\ntype PropsT = {};\n\nconst ExpirationContextAlertContent: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n\n    // orderCreationMs is used, all ttl contexts are counted on the backend from it\n    const orderCreationMs = useSelector(selectOrderCreationMs);\n\n    let formattedMinutes;\n    if (orderCreationMs) {\n        const minutes = getMinutes(orderCreationMs);\n\n        formattedMinutes = minutes\n            ? `${minutes} ${t('common:minutes', {\n                  postProcess: 'interval',\n                  count: minutes,\n              })}`\n            : null;\n    }\n\n    return (\n        <span>\n            {t('deadhead-creation.context-expiration.alert', {\n                formattedContextLifetime: formattedMinutes,\n            })}\n        </span>\n    );\n});\n\nexport default ExpirationContextAlertContent;\n","// extracted by mini-css-extract-plugin\nexport default {\"head\":\"SpotAssetsAssignmentForm__head___aAR3z\",\"head__title\":\"SpotAssetsAssignmentForm__head__title___GiBjZ\",\"field\":\"SpotAssetsAssignmentForm__field___Qn2pf\",\"form\":\"SpotAssetsAssignmentForm__form___xNh0y\",\"actions\":\"SpotAssetsAssignmentForm__actions___sx0rt\",\"sub-actions\":\"SpotAssetsAssignmentForm__sub-actions___IDOao\",\"action--reassign-cancel\":\"SpotAssetsAssignmentForm__action--reassign-cancel___JfdKb\",\"action--reassign\":\"SpotAssetsAssignmentForm__action--reassign___yT_3f\",\"action--assign-cancel\":\"SpotAssetsAssignmentForm__action--assign-cancel___p8Box\",\"action--assign\":\"SpotAssetsAssignmentForm__action--assign___QjlCC\",\"trailer-option\":\"SpotAssetsAssignmentForm__trailer-option___JNL1D\",\"truck-option\":\"SpotAssetsAssignmentForm__truck-option___Pam9g\",\"fadeIn\":\"SpotAssetsAssignmentForm__fadeIn___J6agm\",\"blinking\":\"SpotAssetsAssignmentForm__blinking___ysR1q\"};","import * as React from 'react';\nimport { isNonNil } from 'common/utils';\n\ntype PropsT = {\n    driver?: {\n        name?: string;\n        surname?: string;\n    };\n};\n\nconst SimpleDriverFormatter: React.FC<PropsT> = React.memo((props) => {\n    const { driver } = props;\n\n    if (!driver) {\n        return null;\n    }\n\n    const fullName = [driver.surname, driver.name].filter(isNonNil).join(' ');\n\n    return <span>{fullName}</span>;\n});\n\nexport default SimpleDriverFormatter;\n","import { RequestStatusT } from 'common/utils/request-status';\n\nimport { DictCarrierAdditionalServiceGroupT } from './models';\nimport { ApiCarrierAdditionalServiceChangesT } from 'broker-admin/utils/api/broker-tranziit/models';\n\nexport const FETCH_ADDITIONAL_SERVICES_REQUEST =\n    'broker-admin/price-settings/additional-services/FETCH_ADDITIONAL_SERVICES_REQUEST';\nexport const FETCH_ADDITIONAL_SERVICES_REQUEST_BEGIN =\n    'broker-admin/price-settings/additional-services/FETCH_ADDITIONAL_SERVICES_REQUEST_BEGIN';\nexport const FETCH_ADDITIONAL_SERVICES_REQUEST_ERROR =\n    'broker-admin/price-settings/additional-services/FETCH_ADDITIONAL_SERVICES_REQUEST_ERROR';\nexport const FETCH_ADDITIONAL_SERVICES_REQUEST_SUCCESS =\n    'broker-admin/price-settings/additional-services/FETCH_ADDITIONAL_SERVICES_REQUEST_SUCCESS';\n\nexport const UPDATE_ADDITIONAL_SERVICE_REQUEST =\n    'broker-admin/price-settings/additional-services/UPDATE_ADDITIONAL_SERVICE_REQUEST';\nexport const UPDATE_ADDITIONAL_SERVICE_REQUEST_BEGIN =\n    'broker-admin/price-settings/additional-services/UPDATE_ADDITIONAL_SERVICE_REQUEST_BEGIN';\nexport const UPDATE_ADDITIONAL_SERVICE_REQUEST_ERROR =\n    'broker-admin/price-settings/additional-services/UPDATE_ADDITIONAL_SERVICE_REQUEST_ERROR';\nexport const UPDATE_ADDITIONAL_SERVICE_REQUEST_SUCCESS =\n    'broker-admin/price-settings/additional-services/UPDATE_ADDITIONAL_SERVICE_REQUEST_SUCCESS';\n\nexport type AdditionalServicesStateT = {\n    list: DictCarrierAdditionalServiceGroupT[] | null;\n    updateRequest: RequestStatusT;\n    fetchRequest: RequestStatusT;\n};\n\nexport type FetchAdditionalServicesActionT = {\n    type: typeof FETCH_ADDITIONAL_SERVICES_REQUEST;\n    options: FetchOptionsT;\n};\n\nexport type FetchAdditionalServicesBeginActionT = {\n    type: typeof FETCH_ADDITIONAL_SERVICES_REQUEST_BEGIN;\n};\n\nexport type FetchAdditionalServicesSuccessActionT = {\n    type: typeof FETCH_ADDITIONAL_SERVICES_REQUEST_SUCCESS;\n    list: DictCarrierAdditionalServiceGroupT[] | null;\n};\n\nexport type FetchAdditionalServicesErrorActionT = {\n    type: typeof FETCH_ADDITIONAL_SERVICES_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type UpdateAdditionalServiceActionT = {\n    type: typeof UPDATE_ADDITIONAL_SERVICE_REQUEST;\n    changes: ApiCarrierAdditionalServiceChangesT[];\n};\n\nexport type UpdateAdditionalServiceBeginActionT = {\n    type: typeof UPDATE_ADDITIONAL_SERVICE_REQUEST_BEGIN;\n};\n\nexport type UpdateAdditionalServiceSuccessActionT = {\n    type: typeof UPDATE_ADDITIONAL_SERVICE_REQUEST_SUCCESS;\n    changes: ApiCarrierAdditionalServiceChangesT[];\n};\n\nexport type UpdateAdditionalServiceErrorActionT = {\n    type: typeof UPDATE_ADDITIONAL_SERVICE_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type AdditionalServicesActionT =\n    | UpdateAdditionalServiceActionT\n    | UpdateAdditionalServiceBeginActionT\n    | UpdateAdditionalServiceSuccessActionT\n    | UpdateAdditionalServiceErrorActionT\n    | FetchAdditionalServicesActionT\n    | FetchAdditionalServicesBeginActionT\n    | FetchAdditionalServicesSuccessActionT\n    | FetchAdditionalServicesErrorActionT;\n","import { FieldsEnum, FormValuesT } from './constants';\n\nconst getInitialValues = (): FormValuesT => {\n    return {\n        [FieldsEnum.reason]: '',\n    };\n};\n\nexport default getInitialValues;\n","import { ApiRequestError } from '../../errors/api-request-error';\nimport { logError } from 'common/utils/logger';\n\nexport enum TranziitApiRequestErrorSubTypeEnum {\n    accessDeniedToApi = 'accessDeniedToApi',\n    accessDeniedToEntity = 'accessDeniedToEntity',\n    notFoundUser = 'notFoundUser',\n    notFoundCompany = 'notFoundCompany',\n    emailAlreadyExist = 'emailAlreadyExist',\n    phoneAlreadyExist = 'phoneAlreadyExist',\n    canNotDowngradeLastAdminInTeam = 'canNotDowngradeLastAdminInTeam',\n    canNotDeleteHimself = 'canNotDeleteHimself',\n    orderCreationExpiredRFQ = 'orderCreationExpiredRFQ',\n    orderCreation_ExpiredPriceOffer = 'orderCreation_ExpiredPriceOffer',\n    orderCreation_FailedCompleteRFQ_CapacityExcess = 'orderCreation_FailedCompleteRFQ_CapacityExcess',\n    orderCreation_FailedCompleteRFQ_Overweight = 'orderCreation_FailedCompleteRFQ_Overweight',\n    orderCreation_FailedPreviewRoute_RouteNotFound = 'orderCreation_FailedPreviewRoute_RouteNotFound',\n    orderCreation_FailedPreviewRoute_ProhibitedCountry = 'orderCreation_FailedPreviewRoute_ProhibitedCountry',\n    orderCreation_FailedPreviewRoute_RouteWaypointNotLinkable = 'orderCreation_FailedPreviewRoute_RouteWaypointNotLinkable',\n    orderCreation_ShipperNotAllowedToHaveNewOrders = 'orderCreation_ShipperNotAllowedToHaveNewOrders',\n    orderCreation_ShipperNotAvailable = 'orderCreation_ShipperNotAvailable',\n    orderCreation_AlreadyCompletedRFQ = 'orderCreation_AlreadyCompletedRFQ',\n    noRouteFound = 'noRouteFound',\n    successorHasNotActiveStatus = 'successorHasNotActiveStatus',\n    couldNotUnLockCompany = 'couldNotUnLockCompany',\n    notAuthorizedUser = 'notAuthorizedUser',\n    alreadyAssignedDrivers = 'already-assigned-drivers',\n    firebaseTooManyResendInviteRequests = 'firebaseTooManyResendInviteRequests',\n    expiredContextPreviewReserve = 'expiredContextPreviewReserve',\n    failedArchiveInTransitDriver = 'failedArchiveInTransitDriver',\n    assignmentSelfCostPrediction = 'assignmentSelfCostPrediction',\n    brokerOrderEdit_ExpirationContext = 'brokerOrderEdit_ExpirationContext',\n    brokerDeadheadCreation_ExpirationContext = 'brokerDeadheadCreation_ExpirationContext',\n    evidenceOfTaxDetails_WrongVat = 'evidenceOfTaxDetails_WrongVat',\n    deadheadCreation_InvalidVehicle = 'deadheadCreation_InvalidVehicle',\n    manualRateRuleCreation_InvalidZipsFrom = 'manualRateRuleCreation_InvalidZipsFrom',\n    manualRateRuleUpdate_InvalidZipsFrom = 'manualRateRuleUpdate_InvalidZipsFrom',\n    manualRateRuleCreation_InvalidZipsTo = 'manualRateRuleCreation_InvalidZipsTo',\n    manualRateRuleUpdate_InvalidZipsTo = 'manualRateRuleUpdate_InvalidZipsTo',\n    tenderJobNotFound = 'tenderJobNotFound',\n    tenderJobNotInProcessingState = 'tenderJobNotInProcessingState',\n    documents_unsupportedFileType = 'documents_unsupportedFileType',\n    attachedPapers_unsupportedFileType = 'attachedPapers_unsupportedFileType',\n}\n\nconst tranziitApiRequestErrorSubTypeEnum = new Set(Object.values(TranziitApiRequestErrorSubTypeEnum));\n\nexport class TranziitApiRequestError<TResponseData = any, TRequestConfig = any> extends ApiRequestError<\n    TResponseData,\n    TRequestConfig\n> {\n    subType: TranziitApiRequestErrorSubTypeEnum;\n\n    constructor(\n        apiRequestError: ApiRequestError<TResponseData, TRequestConfig>,\n        subType: TranziitApiRequestErrorSubTypeEnum,\n    ) {\n        super(apiRequestError, apiRequestError.type);\n\n        this.subType = subType;\n\n        // fix for instanceof\n        // https://github.com/microsoft/TypeScript/issues/13965\n        // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\n        Object.setPrototypeOf(this, TranziitApiRequestError.prototype);\n    }\n}\n\nexport const checkIsTranziitApiRequestError = (error: Error | null | undefined): error is TranziitApiRequestError => {\n    const errorSubType = (error as TranziitApiRequestError)?.subType;\n\n    return tranziitApiRequestErrorSubTypeEnum.has(errorSubType);\n};\n\nexport const extractApiRequestErrorTraceId = (error: Error | null): string | null => {\n    try {\n        return (error as ApiRequestError)?.response?.traceID;\n    } catch (error) {\n        logError('extract trace id', error);\n        return null;\n    }\n};\n","import * as React from 'react';\nimport EuroSymbolIcon from 'common/icons/EuroSymbolIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { isNonNil } from 'common/utils';\nimport { useTranslation } from 'react-i18next';\nimport { useCommonPriceDetails } from 'common/components/price-details/hooks/common';\nimport { useAdditionalServicesList } from 'common/components/price-details/hooks/additional-services-list';\nimport PriceDetails, { PriceDetailT } from 'design-system/components/PriceDetails/PriceDetails';\nimport isNumber from 'lodash/isNumber';\nimport { checkShouldShowLayover } from 'common/components/price-details/utils';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport {\n    ApiBrokerAdditionalServiceT,\n    ApiCarrierAdditionalServiceT,\n    APIFuelDetailsT,\n    ApiTollByRoadTypeT,\n} from 'common/utils/api/models';\nimport { AppliedRuleT } from 'common/store/order-creation/models';\n\ntype PropsT = {\n    className?: string;\n    totalPriceLabel: React.ReactNode;\n    totalPriceTooltip?: React.ReactNode;\n    totalPrice: number | undefined;\n    totalPriceDiff?: number | null | undefined;\n    totalPriceIsInvertedPriceDiff?: boolean;\n    lineHaulCost: number | undefined;\n    deadheadLineHaulCost?: number | undefined;\n    payloadLineHaulCost?: number | undefined;\n    tollCost: number | undefined;\n    tollByRoadType: ApiTollByRoadTypeT | undefined;\n    co2: number | undefined;\n    layoverCost: number | undefined;\n    layoverSeconds: number | undefined;\n    layoverPaidHours: number | undefined;\n    fuelDetails: APIFuelDetailsT | null | undefined;\n    teamDriveCost: number | undefined;\n    travelHours: number | undefined;\n    additionalServiceItems: Array<ApiBrokerAdditionalServiceT | ApiCarrierAdditionalServiceT> | null | undefined;\n    appliedRules?: Array<AppliedRuleT>;\n    testSelector?: string;\n    shouldAlwaysRenderExpandTrigger?: boolean;\n};\n\nconst CarrierCostPriceInfoTable: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        totalPrice,\n        totalPriceDiff,\n        totalPriceIsInvertedPriceDiff,\n        totalPriceLabel,\n        totalPriceTooltip,\n        lineHaulCost,\n        deadheadLineHaulCost,\n        payloadLineHaulCost,\n        co2,\n        fuelDetails,\n        tollCost,\n        tollByRoadType,\n        layoverCost,\n        layoverSeconds,\n        layoverPaidHours,\n        teamDriveCost,\n        travelHours,\n        additionalServiceItems,\n        appliedRules,\n        shouldAlwaysRenderExpandTrigger,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const commonPriceDetails = useCommonPriceDetails();\n\n    const additionalServicesList = useAdditionalServicesList({\n        additionalServiceItems,\n        isAllowCarrierServices: false,\n        isAllowBrokerServices: true,\n    });\n\n    const list: Array<PriceDetailT | null> = [\n        {\n            iconNode: <EuroSymbolIcon strokeColor={StyleGuideColorsEnum.gray} />,\n            title: totalPriceLabel,\n            tooltipNode: totalPriceTooltip ? (\n                <TooltipContent theme={TooltipContentThemeEnum.black} width={200}>\n                    {totalPriceTooltip}\n                </TooltipContent>\n            ) : null,\n            price: totalPrice,\n            priceDiff: totalPriceDiff,\n            isInvertedPriceDiff: totalPriceIsInvertedPriceDiff,\n            placeholder: t('common:info-table.placeholders.carrier-not-assigned'),\n            list: isNumber(totalPrice)\n                ? [\n                      {\n                          ...commonPriceDetails.lineHaul,\n                          price: lineHaulCost,\n                          footerNode: commonPriceDetails.getAppliedRulesFooterNode(['LINE_HAUL'], appliedRules),\n                          list: commonPriceDetails.getLineHaulList({\n                              deadheadLineHaulCost,\n                              payloadLineHaulCost,\n                          }),\n                      },\n                      {\n                          ...commonPriceDetails.getRoadTaxesRow(co2),\n                          price: tollCost,\n                          footerNode: commonPriceDetails.getAppliedRulesFooterNode(['ROAD_TAXES'], appliedRules),\n                          list: commonPriceDetails.getRoadTaxesList(tollByRoadType, appliedRules),\n                      },\n                      {\n                          ...commonPriceDetails.getFuelCostRow(fuelDetails?.fuelType),\n                          price: fuelDetails?.totalCost,\n                          footerNode: commonPriceDetails.getAppliedRulesFooterNode(['FUEL'], appliedRules),\n                          list: commonPriceDetails.getFuelCostsByCountryList(fuelDetails?.byCountry),\n                      },\n                      isNumber(teamDriveCost)\n                          ? {\n                                ...commonPriceDetails.getTeamDrive({\n                                    travelHours,\n                                }),\n                                price: teamDriveCost,\n                            }\n                          : null,\n                      checkShouldShowLayover(layoverSeconds, layoverCost)\n                          ? {\n                                ...commonPriceDetails.getLayoverCostRow(layoverSeconds, layoverPaidHours),\n                                price: layoverCost || 0,\n                            }\n                          : null,\n                      {\n                          ...commonPriceDetails.getAdditionalServicesRow(additionalServiceItems),\n                          list: additionalServicesList?.length\n                              ? [\n                                    {\n                                        list: additionalServicesList,\n                                    },\n                                ]\n                              : undefined,\n                      },\n                  ].filter(isNonNil)\n                : [],\n        },\n    ].filter(isNonNil);\n\n    return (\n        <PriceDetails\n            className={className}\n            list={list}\n            shouldAlwaysRenderExpandTrigger={shouldAlwaysRenderExpandTrigger}\n        />\n    );\n});\n\nexport default CarrierCostPriceInfoTable;\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"DropdownControlOptionLabel__option___sQl0g\",\"option--isSelected\":\"DropdownControlOptionLabel__option--isSelected___hWVpd\",\"option--withoutPaddings\":\"DropdownControlOptionLabel__option--withoutPaddings___wu10t\",\"option__left-icon\":\"DropdownControlOptionLabel__option__left-icon___PzqNs\",\"option__left-icon--isDisabled\":\"DropdownControlOptionLabel__option__left-icon--isDisabled___og40d\",\"option__right-icon\":\"DropdownControlOptionLabel__option__right-icon___nDhfZ\",\"option__label\":\"DropdownControlOptionLabel__option__label___EgZVT\",\"option__label--isDisabled\":\"DropdownControlOptionLabel__option__label--isDisabled___fSj9X\",\"option__label--isEmpty\":\"DropdownControlOptionLabel__option__label--isEmpty___etwar\",\"option__spacer\":\"DropdownControlOptionLabel__option__spacer___BjZaQ\",\"option__description\":\"DropdownControlOptionLabel__option__description___WBs8V\",\"fadeIn\":\"DropdownControlOptionLabel__fadeIn___e5iXX\",\"blinking\":\"DropdownControlOptionLabel__blinking___gaOKq\"};","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"OfferDetails__inner___aLg8n\",\"rates\":\"OfferDetails__rates___me7LU\",\"price\":\"OfferDetails__price___pfmoq\",\"price-details\":\"OfferDetails__price-details___sjsNB\",\"price-details--isGreenTrack\":\"OfferDetails__price-details--isGreenTrack___EXmvd\",\"price-details__list\":\"OfferDetails__price-details__list___BqiPx\",\"price-details__list--isLast\":\"OfferDetails__price-details__list--isLast___Prs8F\",\"loader\":\"OfferDetails__loader___pMgjX\",\"placeholder\":\"OfferDetails__placeholder___B5A8w\",\"placeholder__column--first\":\"OfferDetails__placeholder__column--first___QbSwj\",\"placeholder__column--second\":\"OfferDetails__placeholder__column--second___S8Me2\",\"placeholder__column--third\":\"OfferDetails__placeholder__column--third___B_auR\",\"placeholder__box\":\"OfferDetails__placeholder__box___IBOFx\",\"placeholder__box--dates\":\"OfferDetails__placeholder__box--dates___G07ld\",\"placeholder__box--price\":\"OfferDetails__placeholder__box--price___TErzV\",\"placeholder__box--rate\":\"OfferDetails__placeholder__box--rate___WQV2F\",\"broker-info-row--min-line-haul-cost\":\"OfferDetails__broker-info-row--min-line-haul-cost___aTpd3\",\"broker-info-row--fuel-weighted-average-price\":\"OfferDetails__broker-info-row--fuel-weighted-average-price___XzcUQ\",\"fadeIn\":\"OfferDetails__fadeIn___qdkcT\",\"blinking\":\"OfferDetails__blinking___JqffA\"};","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './TemperatureRangePicker.scss';\n\nimport { TemperatureRangeT } from '../constants';\nimport RangeSelector from 'common/components/RangeSelector/RangeSelector';\nimport { StyleGuideColorsEnum, TemperatureModeEnum, temperatureRanges } from 'common/constants';\nimport { TEMPERATURE_MODE_T } from 'common/components/TemperatureRange/TemperatureRange';\nimport SnowflakeIcon from 'common/icons/SnowflakeIcon';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    name: string;\n    label: string;\n    value: TemperatureRangeT;\n    onChange: (value: TemperatureRangeT) => void;\n    minValueRange?: number;\n    className?: string;\n};\n\nconst MIN_VALUE = -25;\nconst MAX_VALUE = 25;\n\ntype TemperaturePresetT = {\n    title: string;\n    value: TemperatureRangeT;\n    color: string;\n};\n\nconst formatValue = (timeWindow: TemperatureRangeT): string => {\n    if (!timeWindow) {\n        return '';\n    }\n\n    const [min, max] = timeWindow;\n\n    return `${min} .. ${max} °C`;\n};\n\nconst temperatureModeColorsMap: Record<TemperatureModeEnum, string> = {\n    [TemperatureModeEnum.deepFrozen]: '#1665d8',\n    [TemperatureModeEnum.ultraFresh]: '#0e9aae',\n    [TemperatureModeEnum.dry]: '#6b6c6f',\n    [TemperatureModeEnum.chilled]: '#4b6518',\n    [TemperatureModeEnum.ambient]: '#ac7213',\n};\n\nconst TemperatureRangePicker: React.FC<PropsT> = React.memo((props) => {\n    const { label, value, onChange, minValueRange, className } = props;\n\n    const { t } = useTranslation();\n\n    const presets: Array<TemperaturePresetT> = React.useMemo(() => {\n        return [\n            TemperatureModeEnum.deepFrozen,\n            TemperatureModeEnum.ultraFresh,\n            TemperatureModeEnum.dry,\n            TemperatureModeEnum.chilled,\n            TemperatureModeEnum.ambient,\n        ].map((temperatureMode) => {\n            const range = temperatureRanges[temperatureMode] || [];\n\n            return {\n                title: t(TEMPERATURE_MODE_T[temperatureMode], {\n                    minTemperature: range[0],\n                    maxTemperature: range[1],\n                }),\n                value: range,\n                color: temperatureModeColorsMap[temperatureMode],\n            };\n        });\n    }, [t]);\n\n    const handleChange = React.useCallback(\n        (range: TemperatureRangeT): void => {\n            onChange(range);\n        },\n        [onChange],\n    );\n\n    const labelsConfig = React.useMemo(() => {\n        return {\n            hasStartStep: true,\n            hasEndStep: true,\n            shownLabelCount: 25,\n            shownStepCount: 5,\n        };\n    }, []);\n\n    const valuesRange = React.useMemo(() => {\n        return [MIN_VALUE, MAX_VALUE];\n    }, []);\n\n    const ranges = React.useMemo(() => {\n        return [];\n    }, []);\n\n    const renderLabel = React.useCallback((value: number): string => {\n        return `${value} °C`;\n    }, []);\n\n    return (\n        <div className={cs(cx('picker'), className)}>\n            <div className={cx('label')}>\n                <div className={cx('label__icon')}>\n                    <SnowflakeIcon fillColor={StyleGuideColorsEnum.brandDark} />\n                </div>\n                <div className={cx('label__label')}>{label}</div>\n                <div className={cx('label__value')}>\n                    <PillLabel isSymmetrical theme={PillLabelThemeEnum.charcoal}>\n                        {formatValue(value)}\n                    </PillLabel>\n                </div>\n            </div>\n            <RangeSelector\n                valuesRange={valuesRange}\n                availableValues={valuesRange}\n                ranges={ranges}\n                values={value}\n                valueStep={1}\n                minValuesRangeWidth={minValueRange}\n                labelsConfig={labelsConfig}\n                renderLabel={renderLabel}\n                onSelect={handleChange}\n            />\n            <div className={cx('presets')}>\n                {presets.map((preset) => (\n                    <div\n                        key={preset.title}\n                        className={cx('preset')}\n                        onClick={() => handleChange(preset.value)}\n                        style={{ color: preset.color }}\n                    >\n                        {preset.title}\n                    </div>\n                ))}\n            </div>\n        </div>\n    );\n});\n\nexport default TemperatureRangePicker;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"DeadheadCreationReceipt__wrap___zdBjI\",\"tour-type-tabs\":\"DeadheadCreationReceipt__tour-type-tabs___iJk2T\",\"table\":\"DeadheadCreationReceipt__table___O5jJ6\",\"asset-type-tabs\":\"DeadheadCreationReceipt__asset-type-tabs___UyY2r\",\"receipt\":\"DeadheadCreationReceipt__receipt___i3O4y\",\"calculation__overlay\":\"DeadheadCreationReceipt__calculation__overlay___aIhaK\",\"calculation__loader\":\"DeadheadCreationReceipt__calculation__loader___R0hmZ\",\"fadeIn\":\"DeadheadCreationReceipt__fadeIn___mRltp\",\"blinking\":\"DeadheadCreationReceipt__blinking___vbIir\"};","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from '../query-models';\nimport WarningFilterOptionsDropdown, {\n    WarningFilterOptionT,\n} from 'common/components/Table/WarningFilterOptionsDropdown/WarningFilterOptionsDropdown';\nimport { SpecialOptionEnum } from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { colorCodingNotificationLabelTheme } from 'common/components/notifications/NotificationLabel/NotificationLabel';\nimport { BrokerOrderStatsT } from 'broker-admin/store/broker-order-stats/models';\n\ntype PropsT = {\n    className?: string;\n    stat: BrokerOrderStatsT | null;\n    queryFilters: QueryFiltersT;\n    onQueryFiltersChange: (queryFiltersChanges: Partial<QueryFiltersT>) => void;\n};\n\nconst warningsQueryFiltersKeys = [\n    QueryFiltersKeysEnum.runningOutOfTimeToAssignCarrier,\n    QueryFiltersKeysEnum.runOutOfTimeToAssignCarrier,\n    QueryFiltersKeysEnum.runningOutOfTimeToAssignAssets,\n    QueryFiltersKeysEnum.runOutOfTimeToAssignAssets,\n    QueryFiltersKeysEnum.runningOutOfTimeToAssignDriver,\n    QueryFiltersKeysEnum.runOutOfTimeToAssignDriver,\n    QueryFiltersKeysEnum.tourDelaying,\n    QueryFiltersKeysEnum.noShow,\n    QueryFiltersKeysEnum.shipmentMissed,\n] as const;\n\nconst WarningsFilter: React.FC<PropsT> = React.memo((props) => {\n    const { className, stat, queryFilters, onQueryFiltersChange } = props;\n\n    const { t } = useTranslation();\n\n    const options = React.useMemo(\n        (): Array<WarningFilterOptionT<(typeof warningsQueryFiltersKeys)[number]> | SpecialOptionEnum> => [\n            SpecialOptionEnum.separator,\n            {\n                id: QueryFiltersKeysEnum.runningOutOfTimeToAssignCarrier,\n                label: t('broker-orders.list.warning-filters.running-out-of-time-to-assign-carrier'),\n                notificationProps: {\n                    count: stat?.runningOutToAssignCarrier,\n                    theme: colorCodingNotificationLabelTheme.attention,\n                },\n            },\n            {\n                id: QueryFiltersKeysEnum.runOutOfTimeToAssignCarrier,\n                label: t('broker-orders.list.warning-filters.run-out-of-time-to-assign-carrier'),\n                notificationProps: {\n                    count: stat?.runOutToAssignCarrier,\n                    theme: colorCodingNotificationLabelTheme.warning,\n                },\n            },\n            SpecialOptionEnum.separator,\n            {\n                id: QueryFiltersKeysEnum.runningOutOfTimeToAssignAssets,\n                label: t('broker-orders.list.warning-filters.running-out-of-time-to-assign-assets'),\n                notificationProps: {\n                    count: stat?.runningOutOfTimeToAssignAssets,\n                    theme: colorCodingNotificationLabelTheme.attention,\n                },\n            },\n            {\n                id: QueryFiltersKeysEnum.runOutOfTimeToAssignAssets,\n                label: t('broker-orders.list.warning-filters.run-out-of-time-to-assign-assets'),\n                notificationProps: {\n                    count: stat?.runOutOfTimeToAssignAssets,\n                    theme: colorCodingNotificationLabelTheme.warning,\n                },\n            },\n            {\n                id: QueryFiltersKeysEnum.runningOutOfTimeToAssignDriver,\n                label: t('broker-orders.list.warning-filters.running-out-of-time-to-assign-driver'),\n                notificationProps: {\n                    count: stat?.runningOutOfTimeToAssignDriver,\n                    theme: colorCodingNotificationLabelTheme.attention,\n                },\n            },\n            {\n                id: QueryFiltersKeysEnum.runOutOfTimeToAssignDriver,\n                label: t('broker-orders.list.warning-filters.run-out-of-time-to-assign-driver'),\n                notificationProps: {\n                    count: stat?.runOutOfTimeToAssignDriver,\n                    theme: colorCodingNotificationLabelTheme.warning,\n                },\n            },\n            SpecialOptionEnum.separator,\n            {\n                id: QueryFiltersKeysEnum.tourDelaying,\n                label: t('broker-orders.list.warning-filters.tour-delaying'),\n                notificationProps: {\n                    count: stat?.delaying,\n                    theme: colorCodingNotificationLabelTheme.attention,\n                },\n            },\n            SpecialOptionEnum.separator,\n            {\n                id: QueryFiltersKeysEnum.noShow,\n                label: t('broker-orders.list.warning-filters.no-show'),\n                notificationProps: {\n                    count: stat?.noShow,\n                    theme: colorCodingNotificationLabelTheme.warning,\n                },\n            },\n            {\n                id: QueryFiltersKeysEnum.shipmentMissed,\n                label: t('broker-orders.list.warning-filters.shipment-missed'),\n                notificationProps: {\n                    count: stat?.missed,\n                    theme: colorCodingNotificationLabelTheme.warning,\n                },\n            },\n        ],\n        [t, stat],\n    );\n\n    const value = React.useMemo(() => {\n        return warningsQueryFiltersKeys.filter((queryFiltersKey) => queryFilters[queryFiltersKey]);\n    }, [queryFilters]);\n\n    const handleSelect = (values: Array<(typeof warningsQueryFiltersKeys)[number]>) => {\n        const queryFiltersChanges = warningsQueryFiltersKeys.reduce<Partial<QueryFiltersT>>((acc, queryFiltersKey) => {\n            acc[queryFiltersKey] = values.includes(queryFiltersKey) ? true : undefined;\n\n            return acc;\n        }, {});\n\n        onQueryFiltersChange(queryFiltersChanges);\n    };\n\n    return (\n        <WarningFilterOptionsDropdown<(typeof warningsQueryFiltersKeys)[number]>\n            className={className}\n            value={value}\n            onSelect={handleSelect}\n            options={options}\n        />\n    );\n});\n\nexport default WarningsFilter;\n","import { RequestStatusT } from 'common/utils/request-status';\nimport { ApiGroupedNotificationCountsT, GroupedNotificationCountsT } from 'common/utils/api/models';\n\nexport const FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST =\n    'common/grouped-notification-counts/FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST';\nexport const FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_BEGIN =\n    'common/grouped-notification-counts/FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_BEGIN';\nexport const FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_SUCCESS =\n    'common/grouped-notification-counts/FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_SUCCESS';\nexport const FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_ERROR =\n    'common/grouped-notification-counts/FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_ERROR';\n\nexport type FetchGroupedNotificationCountsActionT = {\n    type: typeof FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST;\n    options?: FetchOptionsT;\n};\n\nexport type FetchGroupedNotificationCountsBeginActionT = {\n    type: typeof FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_BEGIN;\n};\n\nexport type FetchGroupedNotificationCountsSuccessActionT = {\n    type: typeof FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_SUCCESS;\n    counts: ApiGroupedNotificationCountsT | null;\n};\n\nexport type FetchGroupedNotificationCountsErrorActionT = {\n    type: typeof FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type GroupedNotificationCountsActionT =\n    | FetchGroupedNotificationCountsBeginActionT\n    | FetchGroupedNotificationCountsSuccessActionT\n    | FetchGroupedNotificationCountsErrorActionT\n    | FetchGroupedNotificationCountsActionT;\n\nexport type GroupedNotificationCountsStateT = {\n    fetchRequest: RequestStatusT;\n    counts: GroupedNotificationCountsT | null;\n};\n","import { FieldsEnum, FormValuesT, RateSourceEnum } from './constants';\nimport { AssetDataT } from 'common/layouts/dialogs/ActivateAssetDialogModal/models';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport { ApiActivateVehiclesRequestT } from 'common/utils/api/models';\nimport { isNonNil } from 'common/utils';\n\nexport const prepareActivateVehiclesRequest = (\n    assets: Array<AssetDataT>,\n    values: FormValuesT,\n): ApiActivateVehiclesRequestT | null => {\n    const assetIds = assets.map((asset) => asset?.id).filter(isNonNil) || [];\n\n    if (values[FieldsEnum.source] === RateSourceEnum.current) {\n        return {\n            ids: assetIds,\n        };\n    }\n\n    if (values[FieldsEnum.source] === RateSourceEnum.new) {\n        return {\n            ids: assetIds,\n            ratePerKm: parseSimpleNumber(values[FieldsEnum.rate]),\n        };\n    }\n\n    const contractId = values[FieldsEnum.source];\n    if (contractId) {\n        return {\n            ids: assetIds,\n            contractId,\n        };\n    }\n\n    return null;\n};\n","import * as React from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { parseQuery } from '../query';\n\nconst useQuery = <QueryT extends {}>(): Partial<QueryT> => {\n    const location = useLocation();\n    const { search } = location;\n\n    const query = React.useMemo(() => parseQuery(search), [search]);\n\n    return query as QueryT;\n};\n\nexport default useQuery;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './Divider.scss';\nimport cs from 'classnames';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    className?: string;\n};\n\nconst Divider: React.FC<PropsT> = React.memo((props) => {\n    const { className } = props;\n\n    return <div className={cs(cx('divider'), className)} data-test-selector=\"divider\" />;\n});\n\nexport default Divider;\n","import * as React from 'react';\nimport { Trans } from 'react-i18next';\n\nimport ChangedFieldLabel from 'common/components/notification-cards/shared/ChangedFieldLabel/ChangedFieldLabel';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\nimport NotificationVerticalRow from 'common/components/notification-cards/shared/NotificationVerticalRow/NotificationVerticalRow';\nimport NotificationVerticalRowsLayout from 'common/components/notification-cards/shared/NotificationVerticalRowsLayout/NotificationVerticalRowsLayout';\n\ntype PropsT = {\n    fullAddress: string;\n    updatedFields: Api2.Definitions.FieldChangeDto[];\n};\n\nconst WaypointUpdatedCard: React.FC<PropsT> = React.memo((props) => {\n    const { fullAddress, updatedFields } = props;\n\n    return (\n        <NotificationCardInnerLayout>\n            <NotificationVerticalRowsLayout>\n                {[\n                    <NotificationVerticalRow key=\"summary\">\n                        <Trans\n                            i18nKey=\"common:notifications.waypoint-contact-was-updated\"\n                            components={{\n                                fullAddress: <NotificationEntityLabel isBold text={fullAddress} />,\n                            }}\n                        />\n                    </NotificationVerticalRow>,\n                    ...updatedFields.map((field, index) => (\n                        <NotificationVerticalRow key={`${field.fieldCode}-${index}`}>\n                            <ChangedFieldLabel\n                                code={field.fieldCode}\n                                oldValue={field.oldValue || \"''\"}\n                                newValue={field.newValue || \"''\"}\n                            />\n                        </NotificationVerticalRow>\n                    )),\n                ]}\n            </NotificationVerticalRowsLayout>\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default WaypointUpdatedCard;\n","import {\n    CompanyDocumentsStateT,\n    DocumentsActionT,\n    DocumentsStateT,\n    DOWNLOAD_DOCUMENT_REQUEST_BEGIN,\n    DOWNLOAD_DOCUMENT_REQUEST_ERROR,\n    DOWNLOAD_DOCUMENT_REQUEST_SUCCESS,\n    FETCH_DOCUMENTS_REQUEST_BEGIN,\n    FETCH_DOCUMENTS_REQUEST_ERROR,\n    FETCH_DOCUMENTS_REQUEST_SUCCESS,\n    RESET,\n    UPLOAD_DOCUMENT_REQUEST_BEGIN,\n    UPLOAD_DOCUMENT_REQUEST_ERROR,\n    UPLOAD_DOCUMENT_REQUEST_SUCCESS,\n    FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_BEGIN,\n    FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_ERROR,\n    FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_SUCCESS,\n    UPDATE_DOCUMENT_REQUEST_BEGIN,\n    UPDATE_DOCUMENT_REQUEST_ERROR,\n    UPDATE_DOCUMENT_REQUEST_SUCCESS,\n    UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_BEGIN,\n    UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_SUCCESS,\n    UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_ERROR,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport keyBy from 'lodash/keyBy';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nexport const initialCompanyDocumentsState: CompanyDocumentsStateT = {\n    idsByType: null,\n    byId: null,\n    ids: null,\n    uploadRequest: requestStatus.initial,\n    uploadingDictDocumentId: null,\n    updateRequest: requestStatus.initial,\n    updatingDocumentId: null,\n    fetchDocumentsRequest: requestStatus.initial,\n    downloadDocumentRequest: requestStatus.initial,\n    evidenceOfTaxDetails: null,\n    fetchEvidenceOfTaxDetailsRequest: requestStatus.initial,\n    updateEvidenceOfTaxDetailsRequest: requestStatus.initial,\n};\n\nconst initialState: DocumentsStateT = {};\n\nexport default (state = initialState, action: DocumentsActionT | DestroySessionActionT): DocumentsStateT => {\n    switch (action.type) {\n        case FETCH_DOCUMENTS_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyDocumentsState = state[companyId] || initialCompanyDocumentsState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyDocumentsState,\n                    fetchDocumentsRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case FETCH_DOCUMENTS_REQUEST_ERROR: {\n            const { companyId, error } = action;\n\n            const companyDocumentsState = state[companyId] || initialCompanyDocumentsState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyDocumentsState,\n                    fetchDocumentsRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case FETCH_DOCUMENTS_REQUEST_SUCCESS: {\n            const { companyId, documentIdsByType, documentsList } = action;\n\n            const companyDocumentsState = state[companyId] || initialCompanyDocumentsState;\n\n            const ids = documentsList.map((document) => document.id);\n            const byId = keyBy(documentsList, 'id');\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyDocumentsState,\n                    idsByType: documentIdsByType,\n                    byId,\n                    ids,\n                    fetchDocumentsRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case DOWNLOAD_DOCUMENT_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyDocumentsState = state[companyId] || initialCompanyDocumentsState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyDocumentsState,\n                    downloadDocumentRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case DOWNLOAD_DOCUMENT_REQUEST_ERROR: {\n            const { companyId, error } = action;\n\n            const companyDocumentsState = state[companyId] || initialCompanyDocumentsState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyDocumentsState,\n                    downloadDocumentRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case DOWNLOAD_DOCUMENT_REQUEST_SUCCESS: {\n            const { companyId } = action;\n\n            const companyDocumentsState = state[companyId] || initialCompanyDocumentsState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyDocumentsState,\n                    downloadDocumentRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case UPLOAD_DOCUMENT_REQUEST_BEGIN: {\n            const { companyId, dictDocumentId } = action;\n\n            const companyDocumentsState = state[companyId] || initialCompanyDocumentsState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyDocumentsState,\n                    uploadingDictDocumentId: dictDocumentId,\n                    uploadRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case UPLOAD_DOCUMENT_REQUEST_ERROR: {\n            const { error } = action;\n\n            const { companyId } = action;\n\n            const companyDocumentsState = state[companyId] || initialCompanyDocumentsState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyDocumentsState,\n                    uploadingDictDocumentId: null,\n                    uploadRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case UPLOAD_DOCUMENT_REQUEST_SUCCESS: {\n            const { companyId } = action;\n\n            const companyDocumentsState = state[companyId] || initialCompanyDocumentsState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyDocumentsState,\n                    uploadingDictDocumentId: null,\n                    uploadRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case UPDATE_DOCUMENT_REQUEST_BEGIN: {\n            const { companyId, documentId } = action;\n\n            const companyDocumentsState = state[companyId] || initialCompanyDocumentsState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyDocumentsState,\n                    updateRequest: requestStatus.loading,\n                    updatingDocumentId: documentId,\n                },\n            };\n        }\n\n        case UPDATE_DOCUMENT_REQUEST_ERROR: {\n            const { companyId, error } = action;\n\n            const companyDocumentsState = state[companyId] || initialCompanyDocumentsState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyDocumentsState,\n                    updateRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case UPDATE_DOCUMENT_REQUEST_SUCCESS: {\n            const { companyId } = action;\n\n            const companyDocumentsState = state[companyId] || initialCompanyDocumentsState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyDocumentsState,\n                    updateRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyDocumentsState = state[companyId] || initialCompanyDocumentsState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyDocumentsState,\n                    updateEvidenceOfTaxDetailsRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_ERROR: {\n            const { companyId, error } = action;\n\n            const companyDocumentsState = state[companyId] || initialCompanyDocumentsState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyDocumentsState,\n                    updateEvidenceOfTaxDetailsRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_SUCCESS: {\n            const { companyId } = action;\n\n            const companyDocumentsState = state[companyId] || initialCompanyDocumentsState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyDocumentsState,\n                    updateEvidenceOfTaxDetailsRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyDocumentsState = state[companyId] || initialCompanyDocumentsState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyDocumentsState,\n                    fetchEvidenceOfTaxDetailsRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_ERROR: {\n            const { companyId, error } = action;\n\n            const companyDocumentsState = state[companyId] || initialCompanyDocumentsState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyDocumentsState,\n                    fetchEvidenceOfTaxDetailsRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_SUCCESS: {\n            const { companyId, evidenceOfTaxDetails } = action;\n\n            const companyDocumentsState = state[companyId] || initialCompanyDocumentsState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyDocumentsState,\n                    evidenceOfTaxDetails,\n                    fetchEvidenceOfTaxDetailsRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case DESTROY_SESSION:\n        case RESET: {\n            return {\n                ...initialState,\n            };\n        }\n\n        default:\n            return state;\n    }\n};\n","import { AnyFetchRFQsPageQueryT, RFQT } from './models';\nimport { PageResponseT, PaginationStateT } from 'common/utils/pagination/models';\n\nexport const FETCH_RFQS_PAGE_REQUEST = 'common/rfqs/FETCH_RFQS_PAGE_REQUEST';\nexport const FETCH_RFQS_PAGE_REQUEST_BEGIN = 'common/rfqs/FETCH_RFQS_PAGE_REQUEST_BEGIN';\nexport const FETCH_RFQS_PAGE_REQUEST_ERROR = 'common/rfqs/FETCH_RFQS_PAGE_REQUEST_ERROR';\nexport const FETCH_RFQS_PAGE_REQUEST_SUCCESS = 'common/rfqs/FETCH_RFQS_PAGE_REQUEST_SUCCESS';\n\nexport const RESET_RFQS = 'common/rfqs/RESET_RFQS';\n\nexport type RFQsStateT = Record<PartnerIdT, CompanyRFQsStateT>;\n\nexport type CompanyRFQsStateT = PaginationStateT<RFQT, AnyFetchRFQsPageQueryT>;\n\nexport type FetchRFQsPageActionT = {\n    type: typeof FETCH_RFQS_PAGE_REQUEST;\n    pageNumber: PageNumberT;\n    query: AnyFetchRFQsPageQueryT;\n    companyId: CompanyIdT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchRFQsPageBeginActionT = {\n    type: typeof FETCH_RFQS_PAGE_REQUEST_BEGIN;\n    pageNumber: PageNumberT;\n    query: AnyFetchRFQsPageQueryT;\n    companyId: CompanyIdT;\n};\n\nexport type FetchRFQsPageSuccessActionT = {\n    type: typeof FETCH_RFQS_PAGE_REQUEST_SUCCESS;\n    query: AnyFetchRFQsPageQueryT;\n    pageNumber: PageNumberT;\n    pageResponse: PageResponseT<RFQT> | null;\n    companyId: CompanyIdT;\n};\n\nexport type FetchRFQsPageErrorActionT = {\n    type: typeof FETCH_RFQS_PAGE_REQUEST_ERROR;\n    query: AnyFetchRFQsPageQueryT;\n    pageNumber: PageNumberT;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type ResetRFQsActionT = {\n    type: typeof RESET_RFQS;\n    companyId: CompanyIdT;\n    mutationListOptions: MutationListOptionsT;\n};\n\nexport type RFQsActionT =\n    | FetchRFQsPageActionT\n    | FetchRFQsPageBeginActionT\n    | FetchRFQsPageSuccessActionT\n    | FetchRFQsPageErrorActionT\n    | ResetRFQsActionT;\n","import * as React from 'react';\n\nimport HeaderSideBarLoader from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLoader/HeaderSideBarLoader';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport type PropsT = {\n    requestStatus: RequestStatusT;\n    hasCachedData: boolean;\n    /** Show loader when entity is being updated, deleted, etc. */\n    isForceShowLoader?: boolean;\n};\n\nconst SideBarHeaderRequestStatus: React.FC<PropsT> = React.memo((props) => {\n    const { requestStatus, hasCachedData, isForceShowLoader = false } = props;\n    const isShow = (requestStatus.loading && hasCachedData) || isForceShowLoader;\n\n    return <HeaderSideBarLoader isShow={isShow} />;\n});\n\nSideBarHeaderRequestStatus.displayName = 'SideBarHeaderRequestStatus';\n\nexport default SideBarHeaderRequestStatus;\n","import { eventChannel } from 'redux-saga';\nimport { call, take } from 'redux-saga/effects';\n\nconst SAFETY_MS = 10; // wait for call channel\n\nexport function createIntervalChannel(intervalMs: number) {\n    return eventChannel((emitter) => {\n        const intervalId = setInterval(() => {\n            emitter({});\n        }, intervalMs + SAFETY_MS);\n\n        return () => {\n            clearInterval(intervalId);\n        };\n    });\n}\n\nfunction* intervalSaga(jobSaga: any, intervalMs: number): WrapGeneratorT<void> {\n    const intervalChannel = yield call(createIntervalChannel, intervalMs);\n    while (true) {\n        yield take(intervalChannel);\n        yield call(jobSaga);\n    }\n}\n\nexport default intervalSaga;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { useSelector } from 'react-redux';\nimport { selectMaxWindowSizeMs, selectMinWindowSizeMs } from 'common/store/settings/selectors';\n\ntype PropsT = {\n    timeWindow: TimeWindowT | null | undefined;\n    className?: string;\n};\n\nconst TimeIntervalLimitPillLabel: React.FC<PropsT> = (props) => {\n    const { timeWindow, className } = props;\n\n    const { t } = useTranslation();\n\n    const minWindowSizeMs = useSelector(selectMinWindowSizeMs);\n    const maxWindowSizeMs = useSelector(selectMaxWindowSizeMs);\n\n    if (!timeWindow) {\n        return null;\n    }\n\n    const diff = timeWindow[1] - timeWindow[0];\n\n    return (\n        <>\n            {false && diff === minWindowSizeMs && (\n                <PillLabel isSymmetrical theme={PillLabelThemeEnum.blazeOrange} className={className}>\n                    {t('broker-order-route-edit.pills.min-time-slot')}\n                </PillLabel>\n            )}\n            {diff === maxWindowSizeMs && (\n                <PillLabel isSymmetrical theme={PillLabelThemeEnum.blazeOrange} className={className}>\n                    {t('broker-order-route-edit.pills.max-time-slot')}\n                </PillLabel>\n            )}\n        </>\n    );\n};\n\nexport default TimeIntervalLimitPillLabel;\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"SpotAssetsAssignmentFooterContent__content___psYyc\",\"fadeIn\":\"SpotAssetsAssignmentFooterContent__fadeIn___SE1VH\",\"blinking\":\"SpotAssetsAssignmentFooterContent__blinking___ahYCK\"};","export enum QueryKeysEnum {\n    contextId = 'contextId',\n    doNotIncludeCostsInTransportOrder = 'doNotIncludeCostsInTransportOrder',\n}\n\nexport const NEW_DEADHEAD_TOUR_EVENT_ID = 'NEW_DEADHEAD_TOUR_EVENT_ID';\n","import * as React from 'react';\nimport { useSelector } from 'react-redux';\nimport { selectAllowedCreateAnonymously, selectUser } from 'common/store/auth/selectors';\nimport LeftMenuLayoutBase from 'common/layouts/LeftMenuLayout/LeftMenuLayout';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\n\ntype PropsT = {\n    children: React.ReactElement;\n};\n\nconst AuthLoader: React.FC<PropsT> = (props) => {\n    const { children } = props;\n\n    const shouldCreateAnonymously = useSelector(selectAllowedCreateAnonymously);\n    const user = useSelector(selectUser);\n\n    if (!shouldCreateAnonymously) {\n        return children;\n    }\n\n    if (shouldCreateAnonymously && user) {\n        return children;\n    }\n\n    return (\n        <LeftMenuLayoutBase menuLinks={[]} accountLink=\"\" logoLink=\"\" badges={{}}>\n            <LoaderOverlay />\n        </LeftMenuLayoutBase>\n    );\n};\n\nexport default AuthLoader;\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"SendingToSpotFooterContent__content___TQVZC\",\"fadeIn\":\"SendingToSpotFooterContent__fadeIn___y_rQP\",\"blinking\":\"SendingToSpotFooterContent__blinking___CvMi0\"};","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { ApiPaperCreatedByRoleT } from 'common/utils/api/models';\n\ntype PropsT = {\n    className?: string;\n    createdByRole?: ApiPaperCreatedByRoleT | null;\n};\n\nconst UploadedByLabel: React.FC<PropsT> = React.memo((props) => {\n    const { className, createdByRole } = props;\n    const { t } = useTranslation();\n\n    if (!createdByRole) {\n        return null;\n    }\n\n    let translationKey: string;\n    if (createdByRole === 'BROKER') {\n        translationKey = 'common:attached-papers.uploaded-by.broker';\n    } else if (createdByRole === 'CARRIER') {\n        translationKey = 'common:attached-papers.uploaded-by.carrier';\n    } else if (createdByRole === 'DRIVER') {\n        translationKey = 'common:attached-papers.uploaded-by.driver';\n    } else {\n        translationKey = 'common:attached-papers.uploaded-by.other';\n    }\n\n    return (\n        <PillLabel theme={PillLabelThemeEnum.grey} isSymmetrical className={className}>\n            {t(translationKey)}\n        </PillLabel>\n    );\n});\n\nexport default UploadedByLabel;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './PriceSettingsRuleFiltersSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useFormik } from 'formik';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport Input from 'common/components/Input/Input';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\n\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport { PriceSettingsRuleFilterSidebarDataT } from 'broker-admin/layouts/SideBars/PriceSettingsRuleFiltersSidebarContent/models';\nimport { SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { BrokerSidebarDataT } from 'broker-admin/layouts/SideBars/models';\nimport { useQueryParam } from 'use-query-params';\nimport { createJsonParams } from 'common/utils/query';\nimport { QueryFiltersT, QueryKeysEnum } from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/query-models';\n\nimport { getQueryFilters } from './get-query-filters';\nimport CountryMultipleDropdown from 'common/components/dropdowns/CountryMultipleDropdown/CountryMultipleDropdown';\nimport UserMultipleDropdown from 'common/components/dropdowns/UserMultipleDropdown/UserMultipleDropdown';\nimport DatePicker, { DatePickerOverlayPositionEnum } from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport DictTrailerMultipleDropdown from 'common/components/dropdowns/DictTrailerMultipleDropdown/DictTrailerMultipleDropdown';\nimport { DEFAULT_BROKER_COMPANY_ID } from 'common/constants';\nimport PriceRuleTypeMultipleDropdown from 'broker-admin/components/dropdowns/PriceRuleTypeMultipleDropdown/PriceRuleTypeMultipleDropdown';\nimport PartnersSuggest from 'broker-admin/components/dropdowns/PartnersSuggest/PartnersSuggest';\nimport PriceComponentTypeMultipleDropdown from 'broker-admin/components/dropdowns/PriceComponentTypeMultipleDropdown/PriceComponentTypeMultipleDropdown';\nimport PriceRuleOperationMultipleDropdown from 'broker-admin/components/dropdowns/PriceRuleOperationMultipleDropdown/PriceRuleOperationMultipleDropdown';\nimport { isDeepEqual } from 'common/utils/deep-equal';\nimport SelectedFilters from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/SelectedFilters/SelectedFilters';\nimport { usePartnerSuggestOptions } from 'broker-admin/components/dropdowns/PartnersSuggest/hooks/use-partner-suggest-options';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = SidebarContentPropsT<PriceSettingsRuleFilterSidebarDataT, BrokerSidebarDataT>;\n\nconst PriceSettingsRuleFiltersSidebarContent: React.FC<PropsT> = (props) => {\n    const { onClose } = props;\n\n    const { t } = useTranslation();\n\n    const [queryFilters, setQueryFilters] = useQueryParam<QueryFiltersT>(\n        QueryKeysEnum.rulesFilters,\n        createJsonParams<QueryFiltersT>({}),\n    );\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues(queryFilters);\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [queryFilters]);\n\n    const [initialQueryFilters, setInitialQueryFilters] = React.useState<QueryFiltersT>(queryFilters);\n\n    React.useEffect(() => {\n        setInitialQueryFilters(queryFilters);\n    }, [queryFilters]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const newQueryFilters = getQueryFilters(values);\n\n            setQueryFilters({\n                ...initialQueryFilters,\n                ...newQueryFilters,\n            });\n\n            formikHelpers.setTouched({});\n\n            if (onClose) {\n                onClose();\n            }\n        },\n    });\n\n    const initialPartnerIds = formik.initialValues[FieldsEnum.partnerIds];\n    const initialPartnerOptions = usePartnerSuggestOptions(initialPartnerIds);\n\n    const isSameValues = React.useMemo(() => {\n        return isDeepEqual(initialValues, formik.values) && isDeepEqual(initialQueryFilters, queryFilters);\n    }, [initialValues, formik.values, initialQueryFilters, queryFilters]);\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('form')}>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent\n                    testSelector=\"rule-filters\"\n                    title={t('price-settings.rules.filters.title')}\n                    onClose={onClose}\n                />\n            </HeaderSideBarLayout>\n            <SideBarLayout testSelector=\"rule-filters\">\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--name')}\n                        name={FieldsEnum.name}\n                        error={formik.errors[FieldsEnum.name]}\n                        meta={formik.getFieldMeta(FieldsEnum.name)}\n                        label={t('price-settings.rules.filters.fields.name.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <Input\n                                name={FieldsEnum.name}\n                                placeholder={t('price-settings.rules.filters.fields.name.placeholder')}\n                                value={formik.values[FieldsEnum.name]}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--type')}\n                        name={FieldsEnum.types}\n                        error={formik.errors[FieldsEnum.types]}\n                        meta={formik.getFieldMeta(FieldsEnum.types)}\n                        label={t('price-settings.rules.filters.fields.type.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <PriceRuleTypeMultipleDropdown\n                                values={formik.values[FieldsEnum.types]}\n                                onChange={props.onChange}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                placeholder={t('price-settings.rules.filters.fields.type.placeholder')}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FormikField\n                    className={cx('field', 'field--partners')}\n                    name={FieldsEnum.partnerIds}\n                    error={formik.errors[FieldsEnum.partnerIds]}\n                    meta={formik.getFieldMeta(FieldsEnum.partnerIds)}\n                    label={t('price-settings.rules.filters.fields.partners.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <PartnersSuggest\n                            values={formik.values[FieldsEnum.partnerIds]}\n                            initialOptions={initialPartnerOptions.initOptions}\n                            initialRequestStatus={initialPartnerOptions.initRequestStatus}\n                            onSelect={props.onChange}\n                            hasWarning={props.hasWarning}\n                            hasError={props.hasError}\n                            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                            placeholder={t('price-settings.rules.filters.fields.partners.placeholder')}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    className={cx('field', 'field--trailer-types')}\n                    name={FieldsEnum.trailerTypeIds}\n                    error={formik.errors[FieldsEnum.trailerTypeIds]}\n                    meta={formik.getFieldMeta(FieldsEnum.trailerTypeIds)}\n                    label={t('price-settings.rules.filters.fields.trailer-types.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <DictTrailerMultipleDropdown\n                            values={formik.values[FieldsEnum.trailerTypeIds]}\n                            onChange={props.onChange}\n                            placeholder={t('price-settings.rules.filters.fields.trailer-types.placeholder')}\n                            hasWarning={props.hasWarning}\n                            hasError={props.hasError}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            isShortLabel\n                        />\n                    )}\n                </FormikField>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--countries')}\n                        name={FieldsEnum.fromCountryCodes}\n                        error={formik.errors[FieldsEnum.fromCountryCodes]}\n                        meta={formik.getFieldMeta(FieldsEnum.fromCountryCodes)}\n                        label={t('price-settings.rules.filters.fields.from-country-codes.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <CountryMultipleDropdown\n                                values={formik.values[FieldsEnum.fromCountryCodes]}\n                                placeholder={t('price-settings.rules.filters.fields.from-country-codes.placeholder')}\n                                onChange={props.onChange}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--countries')}\n                        name={FieldsEnum.toCountryCodes}\n                        error={formik.errors[FieldsEnum.toCountryCodes]}\n                        meta={formik.getFieldMeta(FieldsEnum.toCountryCodes)}\n                        label={t('price-settings.rules.filters.fields.to-country-codes.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <CountryMultipleDropdown\n                                values={formik.values[FieldsEnum.toCountryCodes]}\n                                placeholder={t('price-settings.rules.filters.fields.to-country-codes.placeholder')}\n                                onChange={props.onChange}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.validFrom}\n                        error={formik.errors[FieldsEnum.validFrom]}\n                        meta={formik.getFieldMeta(FieldsEnum.validFrom)}\n                        label={t('price-settings.rules.form.fields.valid-from.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.validFrom]}\n                                placeholder={t('price-settings.rules.form.fields.valid-from.placeholder')}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.validTill}\n                        error={formik.errors[FieldsEnum.validTill]}\n                        meta={formik.getFieldMeta(FieldsEnum.validTill)}\n                        label={t('price-settings.rules.form.fields.valid-till.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.validTill]}\n                                placeholder={t('price-settings.rules.form.fields.valid-till.placeholder')}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomRight}\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--price-component')}\n                        label={t('price-settings.rules.filters.fields.price-component.label')}\n                        name={FieldsEnum.priceComponent}\n                        error={formik.errors[FieldsEnum.priceComponent]}\n                        meta={formik.getFieldMeta(FieldsEnum.priceComponent)}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <PriceComponentTypeMultipleDropdown\n                                values={formik.values[FieldsEnum.priceComponent]}\n                                onSelect={props.onChange}\n                                placeholder={t('price-settings.rules.filters.fields.price-component.placeholder')}\n                                overlayPosition={DropdownOverlayPositionEnum.topLeft}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--price-operation')}\n                        name={FieldsEnum.priceOperation}\n                        error={formik.errors[FieldsEnum.priceOperation]}\n                        meta={formik.getFieldMeta(FieldsEnum.priceOperation)}\n                        label={t('price-settings.rules.filters.fields.price-operation.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <PriceRuleOperationMultipleDropdown\n                                values={formik.values[FieldsEnum.priceOperation]}\n                                placeholder={t('price-settings.rules.filters.fields.price-operation.placeholder')}\n                                onSelect={props.onChange}\n                                overlayPosition={DropdownOverlayPositionEnum.topRight}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.createDates}\n                        error={formik.errors[FieldsEnum.createDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.createDates)}\n                        label={t('price-settings.rules.filters.fields.create-dates.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.createDates]}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.topLeft}\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--user')}\n                        name={FieldsEnum.createdByUserId}\n                        error={formik.errors[FieldsEnum.createdByUserId]}\n                        meta={formik.getFieldMeta(FieldsEnum.createdByUserId)}\n                        label={t('price-settings.rules.filters.fields.created.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <UserMultipleDropdown\n                                companyId={DEFAULT_BROKER_COMPANY_ID}\n                                initialValues={formik.values[FieldsEnum.createdByUserId]}\n                                initialLabels={formik.values[FieldsEnum.createdByUserId]}\n                                values={formik.values[FieldsEnum.createdByUserId]}\n                                onSelect={(userId, userName) => {\n                                    props.onChange(userId);\n                                    formik.setFieldValue(FieldsEnum.createdByUserName, userName);\n                                }}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                overlayPosition={DropdownOverlayPositionEnum.topRight}\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.lastModifyDates}\n                        error={formik.errors[FieldsEnum.lastModifyDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.lastModifyDates)}\n                        label={t('price-settings.rules.filters.fields.last-modified-dates.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.lastModifyDates]}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.topLeft}\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--user')}\n                        name={FieldsEnum.lastModifyByUserId}\n                        error={formik.errors[FieldsEnum.lastModifyByUserId]}\n                        meta={formik.getFieldMeta(FieldsEnum.lastModifyByUserId)}\n                        label={t('price-settings.rules.filters.fields.last-modified.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <UserMultipleDropdown\n                                companyId={DEFAULT_BROKER_COMPANY_ID}\n                                initialValues={formik.values[FieldsEnum.lastModifyByUserId]}\n                                initialLabels={formik.values[FieldsEnum.lastModifyByUserName]}\n                                values={formik.values[FieldsEnum.lastModifyByUserId]}\n                                onSelect={(userId, userName) => {\n                                    props.onChange(userId);\n                                    formik.setFieldValue(FieldsEnum.lastModifyByUserName, userName);\n                                }}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                overlayPosition={DropdownOverlayPositionEnum.topRight}\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n            </SideBarLayout>\n            <FooterSideBarLayout isTransparent hasPaddings>\n                <div className={cx('selected-filters')}>\n                    <SelectedFilters queryFilters={initialQueryFilters} setQueryFilters={setInitialQueryFilters} />\n                </div>\n                <Button\n                    theme={ButtonThemeEnum.primary}\n                    isDisabled={isSameValues}\n                    className={cx('apply')}\n                    type=\"submit\"\n                    testSelector=\"apply\"\n                >\n                    {t('price-settings.rules.filters.apply')}\n                </Button>\n            </FooterSideBarLayout>\n        </form>\n    );\n};\n\nexport default PriceSettingsRuleFiltersSidebarContent;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from '../query-models';\nimport WarningFilterOptionsDropdown, {\n    WarningFilterOptionT,\n} from 'common/components/Table/WarningFilterOptionsDropdown/WarningFilterOptionsDropdown';\nimport { SpecialOptionEnum } from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { TransportOrderStatsT } from 'common/store/transport-orders-stats/models';\nimport { colorCodingNotificationLabelTheme } from 'common/components/notifications/NotificationLabel/NotificationLabel';\n\ntype PropsT = {\n    className?: string;\n    stat: TransportOrderStatsT | null;\n    queryFilters: QueryFiltersT;\n    onQueryFiltersChange: (queryFiltersChanges: Partial<QueryFiltersT>) => void;\n};\n\nconst warningsQueryFiltersKeys = [\n    QueryFiltersKeysEnum.runningOutOfTimeToAssignAssets,\n    QueryFiltersKeysEnum.ranOutOfTimeToAssignAssets,\n    QueryFiltersKeysEnum.runningOutOfTimeToAssignDriver,\n    QueryFiltersKeysEnum.ranOutOfTimeToAssignDriver,\n    QueryFiltersKeysEnum.delaying,\n    QueryFiltersKeysEnum.expired,\n    QueryFiltersKeysEnum.missed,\n] as const;\n\nconst WarningsFilter: React.FC<PropsT> = React.memo((props) => {\n    const { className, stat, queryFilters, onQueryFiltersChange } = props;\n\n    const { t } = useTranslation();\n\n    const options = React.useMemo(\n        (): Array<WarningFilterOptionT<(typeof warningsQueryFiltersKeys)[number]> | SpecialOptionEnum> => [\n            SpecialOptionEnum.separator,\n            {\n                id: QueryFiltersKeysEnum.runningOutOfTimeToAssignAssets,\n                label: t('common:transport-orders-page.warning-filters.running-out-of-time-to-assign-assets'),\n                notificationProps: {\n                    count: stat?.runningOutOfTimeToAssignAssets,\n                    theme: colorCodingNotificationLabelTheme.attention,\n                },\n            },\n            {\n                id: QueryFiltersKeysEnum.ranOutOfTimeToAssignAssets,\n                label: t('common:transport-orders-page.warning-filters.ran-out-of-time-to-assign-assets'),\n                notificationProps: {\n                    count: stat?.runOutOfTimeToAssignAssets,\n                    theme: colorCodingNotificationLabelTheme.warning,\n                },\n            },\n            {\n                id: QueryFiltersKeysEnum.runningOutOfTimeToAssignDriver,\n                label: t('common:transport-orders-page.warning-filters.running-out-of-time-to-assign-driver'),\n                notificationProps: {\n                    count: stat?.runningOutOfTimeToAssignDriver,\n                    theme: colorCodingNotificationLabelTheme.attention,\n                },\n            },\n            {\n                id: QueryFiltersKeysEnum.ranOutOfTimeToAssignDriver,\n                label: t('common:transport-orders-page.warning-filters.ran-out-of-time-to-assign-driver'),\n                notificationProps: {\n                    count: stat?.runOutOfTimeToAssignDriver,\n                    theme: colorCodingNotificationLabelTheme.warning,\n                },\n            },\n            SpecialOptionEnum.separator,\n            {\n                id: QueryFiltersKeysEnum.delaying,\n                label: t('common:transport-orders-page.warning-filters.tour-delaying'),\n                notificationProps: {\n                    count: stat?.delaying,\n\n                    theme: colorCodingNotificationLabelTheme.attention,\n                },\n            },\n            SpecialOptionEnum.separator,\n            {\n                id: QueryFiltersKeysEnum.expired,\n                label: t('common:transport-orders-page.warning-filters.expired'),\n                notificationProps: {\n                    count: stat?.noShow,\n                    theme: colorCodingNotificationLabelTheme.warning,\n                },\n            },\n\n            {\n                id: QueryFiltersKeysEnum.missed,\n                label: t('common:transport-orders-page.warning-filters.shipment-missed'),\n                notificationProps: {\n                    count: stat?.missed,\n                    theme: colorCodingNotificationLabelTheme.warning,\n                },\n            },\n        ],\n        [t, stat],\n    );\n\n    const value = React.useMemo(() => {\n        return warningsQueryFiltersKeys.filter((queryFiltersKey) => queryFilters[queryFiltersKey]);\n    }, [queryFilters]);\n\n    const handleSelect = (values: Array<(typeof warningsQueryFiltersKeys)[number]>) => {\n        const queryFiltersChanges = warningsQueryFiltersKeys.reduce<Partial<QueryFiltersT>>((acc, queryFiltersKey) => {\n            acc[queryFiltersKey] = values.includes(queryFiltersKey) ? true : undefined;\n\n            return acc;\n        }, {});\n\n        onQueryFiltersChange(queryFiltersChanges);\n    };\n\n    return (\n        <WarningFilterOptionsDropdown<(typeof warningsQueryFiltersKeys)[number]>\n            className={className}\n            value={value}\n            onSelect={handleSelect}\n            options={options}\n        />\n    );\n});\n\nexport default WarningsFilter;\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\nimport { ReserveLockEventT, ReserveQueryModifyEventT } from 'common/store/order-creation/models';\n\nexport const reserveQueryModifyChannel = new ViewEventChannel<ReserveQueryModifyEventT>();\n\nexport const reserveLockChannel = new ViewEventChannel<ReserveLockEventT>();\n","import { createBroadcastChannelName } from 'common/utils/broadcast-channels/common';\n\nexport const SEEN_NOTIFICATIONS_BROADCAST_CHANNEL_NAME = createBroadcastChannelName('seen-notifications');\n\nexport type SeenNotificationsBroadcastEventT = {\n    notificationIds: NotificationIdT[];\n};\n","import { SharableStateT } from '../models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { CountriesListT } from './models';\nimport { CountriesDictStateT } from './types';\nimport { createSelector } from 'reselect';\nimport { isNonNil } from 'common/utils';\n\nexport const selectCountriesState = (state: SharableStateT): CountriesDictStateT => {\n    return state.countriesDict;\n};\n\nexport const selectCountriesDict = createSelector(selectCountriesState, (countriesState): CountriesListT | null => {\n    const { allCodes, byCode } = countriesState;\n\n    return allCodes.map((code) => byCode[code]).filter(isNonNil);\n});\n\nexport const selectCountriesDictRequest = (state: SharableStateT): RequestStatusT => state.countriesDict.request;\n\nexport const selectCountriesAllCodes = (state: SharableStateT): CountriesDictStateT['allCodes'] => {\n    return state.countriesDict.allCodes;\n};\n\nexport const selectCountriesByCode = (state: SharableStateT): CountriesDictStateT['byCode'] =>\n    state.countriesDict.byCode;\n\nexport const selectCountriesAllLangCodes = (state: SharableStateT): CountriesDictStateT['allLangCodes'] => {\n    return state.countriesDict.allLangCodes;\n};\n\nexport const selectCountriesByLangCode = (state: SharableStateT): CountriesDictStateT['byLangCode'] => {\n    return state.countriesDict.byLangCode;\n};\n\nexport const selectCountriesCount = (state: SharableStateT): number | null => {\n    return state.countriesDict.allCodes?.length || null;\n};\n","import * as React from 'react';\nimport { ApiShipperContractLaneStatusT, ShipperContractLaneStatusEnum } from 'common/utils/api/models';\nimport ColoredStatusLabel, {\n    colorCodingColoredStatusTheme,\n    PropsT as ColoredStatusLabelPropsT,\n} from 'common/components/ColoredStatusLabel/ColoredStatusLabel';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { useSelector } from 'react-redux';\nimport { selectProfileType } from 'common/store/auth/selectors';\nimport { AuthProfileTypeEnum } from 'common/store/auth/constants';\nimport ShipperContractLaneStatus from 'common/components/status/ShipperContractLaneStatus/ShipperContractLaneStatus';\n\ntype PropsT = Omit<ColoredStatusLabelPropsT, 'label' | 'color'> & {\n    status: ApiShipperContractLaneStatusT | null | undefined;\n};\n\ntype ContractLaneStatusColorMapT = Record<ApiShipperContractLaneStatusT, StyleGuideColorsEnum>;\n\nexport const statusColorMap: Record<AuthProfileTypeEnum, ContractLaneStatusColorMapT> = {\n    [AuthProfileTypeEnum.shipper]: {\n        [ShipperContractLaneStatusEnum.revoked]: colorCodingColoredStatusTheme.normal,\n        [ShipperContractLaneStatusEnum.expired]: colorCodingColoredStatusTheme.normal,\n        [ShipperContractLaneStatusEnum.completed]: colorCodingColoredStatusTheme.normal,\n        [ShipperContractLaneStatusEnum.active]: colorCodingColoredStatusTheme.success,\n    },\n    [AuthProfileTypeEnum.carrier]: {\n        [ShipperContractLaneStatusEnum.revoked]: colorCodingColoredStatusTheme.normal,\n        [ShipperContractLaneStatusEnum.expired]: colorCodingColoredStatusTheme.normal,\n        [ShipperContractLaneStatusEnum.completed]: colorCodingColoredStatusTheme.normal,\n        [ShipperContractLaneStatusEnum.active]: colorCodingColoredStatusTheme.success,\n    },\n    [AuthProfileTypeEnum.broker]: {\n        [ShipperContractLaneStatusEnum.revoked]: colorCodingColoredStatusTheme.normal,\n        [ShipperContractLaneStatusEnum.expired]: colorCodingColoredStatusTheme.normal,\n        [ShipperContractLaneStatusEnum.completed]: colorCodingColoredStatusTheme.normal,\n        [ShipperContractLaneStatusEnum.active]: colorCodingColoredStatusTheme.success,\n    },\n};\n\nconst ShipperContractLaneColoredStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status, ...restProps } = props;\n\n    const profileTypeEnum = useSelector(selectProfileType);\n\n    let color;\n\n    // not upload\n    if (!status) {\n        color = colorCodingColoredStatusTheme.normal;\n    } else {\n        color = statusColorMap[profileTypeEnum]?.[status];\n    }\n\n    return <ColoredStatusLabel {...restProps} label={<ShipperContractLaneStatus status={status} />} color={color} />;\n});\n\nexport default ShipperContractLaneColoredStatus;\n","// extracted by mini-css-extract-plugin\nexport default {\"link\":\"Link__link___bg802\",\"link--size-extra-small\":\"Link__link--size-extra-small___MDVO4\",\"link--size-pre-extra-small\":\"Link__link--size-pre-extra-small___a4PW5\",\"link--size-small\":\"Link__link--size-small___s1hql\",\"link--size-medium\":\"Link__link--size-medium___IzXYQ\",\"link--size-large\":\"Link__link--size-large___pZzTr\",\"link--theme-charcoal\":\"Link__link--theme-charcoal___oWjBE\",\"link--theme-bold-charcoal\":\"Link__link--theme-bold-charcoal___WsyBt\",\"link--theme-bold-azul\":\"Link__link--theme-bold-azul___EPHGo\",\"link--theme-bold-brand-dark\":\"Link__link--theme-bold-brand-dark___b_H_2\",\"link--theme-bold-brand-accent\":\"Link__link--theme-bold-brand-accent___KcZ0i\",\"link--theme-bold-white\":\"Link__link--theme-bold-white___sxvpM\",\"link--theme-bold-tomato-red\":\"Link__link--theme-bold-tomato-red___yXsV7\",\"link--theme-bold-orange\":\"Link__link--theme-bold-orange___oboCS\",\"link--uppercase\":\"Link__link--uppercase___ZZKqd\",\"fadeIn\":\"Link__fadeIn___oDD1v\",\"blinking\":\"Link__blinking____Jhkw\"};","import React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n};\n\nconst XLSIcon: React.FC<PropsT> = (props) => {\n    const { fillColor } = props;\n\n    return (\n        <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\">\n            <path\n                d=\"M13.979 2H2v8h2V4h8v4h4v2h2V6l-4.021-4zm-9.11 11.729 1.047-2.127h1.762l-1.789 3.172L7.726 18h-1.78L4.87 15.833 3.793 18H2.018l1.832-3.226-1.784-3.172h1.758l1.046 2.127zm4.9 3.084h2.686V18H8.227v-6.398H9.77v5.211zm6.636-.514a.634.634 0 0 0-.24-.527c-.159-.126-.44-.256-.84-.391a8.074 8.074 0 0 1-.985-.391c-.83-.407-1.244-.967-1.244-1.679 0-.354.103-.667.31-.938.207-.271.499-.482.877-.633.378-.15.802-.226 1.274-.226.46 0 .872.082 1.237.246.365.164.648.397.85.7.203.304.304.65.304 1.04H16.41c0-.26-.08-.463-.24-.606-.16-.144-.376-.216-.648-.216-.275 0-.493.061-.653.183a.56.56 0 0 0-.24.463c0 .164.089.313.265.446.175.134.484.271.927.413a5.68 5.68 0 0 1 1.09.46c.691.398 1.037.947 1.037 1.648 0 .56-.211.999-.633 1.318-.422.32-1 .479-1.736.479-.518 0-.988-.093-1.408-.28-.42-.185-.737-.44-.95-.764a1.992 1.992 0 0 1-.318-1.118h1.547c0 .343.088.595.266.758.177.162.465.244.863.244.255 0 .456-.055.604-.165a.544.544 0 0 0 .222-.464z\"\n                fill={fillColor}\n                fillRule=\"evenodd\"\n            />\n        </svg>\n    );\n};\n\nXLSIcon.displayName = 'XLSIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.charcoal,\n};\n\nexport { storyProps };\n\nexport default XLSIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"date\":\"DateCell__date___Gt9SJ\",\"date--isBold\":\"DateCell__date--isBold___fcU9C\",\"date--isBigFont\":\"DateCell__date--isBigFont___mBIXp\",\"fadeIn\":\"DateCell__fadeIn___ylnOX\",\"blinking\":\"DateCell__blinking___LjaVA\"};","import * as React from 'react';\n\nimport { useSelector } from 'react-redux';\n\nimport { BrokerTourDetailsT } from 'broker-admin/store/broker-tour-details/models';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport CancelSpotRequestFooter from 'broker-admin/components/status-machine/footers/ChangeTourStatusFooter/CancelSpotRequestFooter/CancelSpotRequestFooter';\nimport StartAssignmentFooter from 'broker-admin/components/status-machine/footers/ChangeTourStatusFooter/StartAssignmentFooter/StartAssignmentFooter';\nimport ChangeTourStatusFooter from 'broker-admin/components/status-machine/footers/ChangeTourStatusFooter/ChangeTourStatusFooter/ChangeTourStatusFooter';\nimport { hideLoaderStatusSet } from 'broker-admin/components/status-machine/footers/ChangeTourStatusFooter/constants';\n\ntype PropsT = {\n    brokerTourDetails: BrokerTourDetailsT | null | undefined;\n    isAvailableAssignment: boolean;\n    onStartAssignment: () => void;\n    onStartSendToSpot: () => void;\n    onManageShipment: (shipmentId: ShipmentIdT) => void;\n    isDisableAnyActions: boolean;\n};\n\nconst StatusFooterContent: React.FC<PropsT> = React.memo((props) => {\n    const {\n        brokerTourDetails,\n        onStartAssignment,\n        isAvailableAssignment,\n        onStartSendToSpot,\n        onManageShipment,\n        isDisableAnyActions,\n    } = props;\n\n    const permissions = useSelector(selectPermissions);\n\n    const tourId = brokerTourDetails?.id || null;\n\n    const assignAssetsUnavailableReason = brokerTourDetails?.assignAssetsUnavailableReason;\n    const sendToSpotUnavailableReason = brokerTourDetails?.sendToSpotUnavailableReason;\n\n    const isNeedAssignment = !assignAssetsUnavailableReason || !sendToSpotUnavailableReason;\n    const hasSpotRequests = !!brokerTourDetails?.spotId;\n\n    if (isNeedAssignment && hasSpotRequests) {\n        return <CancelSpotRequestFooter tour={brokerTourDetails || null} isDisableAnyActions={isDisableAnyActions} />;\n    }\n\n    if (isNeedAssignment && !hasSpotRequests) {\n        return (\n            <StartAssignmentFooter\n                tour={brokerTourDetails || null}\n                canAssignTour={permissions.canAssignmentBrokerOrder && isAvailableAssignment}\n                assignAssetsUnavailableReason={assignAssetsUnavailableReason || null}\n                onStartAssignment={onStartAssignment}\n                sendToSpotUnavailableReason={sendToSpotUnavailableReason || null}\n                onStartSendToSpot={onStartSendToSpot}\n                isDisableAnyActions={isDisableAnyActions}\n            />\n        );\n    }\n\n    if (permissions.canChangeTourStatusOnBrokerTour) {\n        return (\n            <ChangeTourStatusFooter\n                tourId={tourId}\n                tour={brokerTourDetails || null}\n                isShowLoading={!!brokerTourDetails && !hideLoaderStatusSet.has(brokerTourDetails?.calculatedStatus)}\n                onManageShipment={onManageShipment}\n            />\n        );\n    }\n\n    return null;\n});\n\nexport default StatusFooterContent;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ChangeRateOrContractAssetForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport { FieldsEnum, FormValuesT, UpdateWayEnum } from './constants';\nimport validateForm from './validate-form';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport ModalDialogActions, { ModalDialogActionT } from 'common/components/Modal/ModalDialogActions/ModalDialogActions';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport NumberInput from 'common/components/NumberInput/NumberInput';\nimport { UnitTypeEnum } from 'common/constants';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { prepareChangeContractRequest, prepareChangeRateRequest } from './prepare-change-rate-request';\nimport { AssetDataT } from '../models';\nimport { checkIsDefaultCompanyId, isNonNil } from 'common/utils';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport carrierTranziitApi from 'carrier/utils/api/carrier-tranziit/api';\nimport ControlLoaderIcon, { ControlLoaderIconProps } from 'common/icons/ControlLoaderIcon';\n\nimport DropdownSearchInput from 'design-system/components/dropdowns/DropdownSearchInput/DropdownSearchInput';\nimport { logWarning } from 'common/utils/logger';\nimport { ApiChangeContractVehiclesRequestT, ApiChangeRateVehiclesRequestT } from 'common/utils/api/models';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    assets: Array<AssetDataT>;\n    companyId: CompanyIdT;\n    onCancel: () => void;\n    onChangeRate: (changeRateRequest: ApiChangeRateVehiclesRequestT) => void;\n    onChangeContract: (changeContractRequest: ApiChangeContractVehiclesRequestT, contractName: string) => void;\n    requestStatus: RequestStatusT;\n};\n\nexport const INITIAL_VALUES: FormValuesT = {\n    [FieldsEnum.updateWay]: null,\n    [FieldsEnum.rate]: '',\n    [FieldsEnum.contractId]: null,\n};\n\nconst TEST_SELECTOR = 'change-rate-or-contract-asset-form';\n\ntype UpdateWayOptionT = {\n    label: React.ReactNode;\n    value: UpdateWayEnum | null;\n};\n\ntype ContractOptionT = {\n    text: string;\n    label: React.ReactNode;\n    value: CarrierContractIdT | null;\n};\n\nconst ChangeRateOrContractAssetForm: React.FC<PropsT> = (props) => {\n    const { onCancel, onChangeContract, onChangeRate, requestStatus, assets, companyId } = props;\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [isLoadingContract, setIsLoadingContract] = React.useState(false);\n    const [contractOptions, setContractOptions] = React.useState<Array<ContractOptionT>>([]);\n\n    React.useEffect(() => {\n        (async () => {\n            if (!companyId) {\n                return;\n            }\n\n            setIsLoadingContract(true);\n            const isPartner = !checkIsDefaultCompanyId(companyId);\n            if (isPartner) {\n                const brokerResponse = await brokerTranziitApi.fetchCarrierApprovedContracts(companyId);\n\n                setContractOptions(\n                    brokerResponse?.[1]?.map((apiContract) => {\n                        return {\n                            label: apiContract.name,\n                            labelFallback: apiContract.id,\n                            value: apiContract.id,\n                            text: apiContract.name || apiContract.id,\n                        };\n                    }) || [],\n                );\n            } else {\n                const carrierResponse = await carrierTranziitApi.fetchCarrierApprovedContracts();\n\n                setContractOptions(\n                    carrierResponse?.[1]?.map((apiContract) => {\n                        return {\n                            label: apiContract.name,\n                            labelFallback: apiContract.id,\n                            value: apiContract.id,\n                            text: apiContract.name || apiContract.id,\n                        };\n                    }) || [],\n                );\n            }\n\n            setIsLoadingContract(false);\n        })();\n    }, [companyId]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values: FormValuesT = {\n            ...INITIAL_VALUES,\n        };\n\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [assets]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const updateWay = values[FieldsEnum.updateWay];\n            if (updateWay === UpdateWayEnum.newRate) {\n                const changeRateRequest = prepareChangeRateRequest(assets, values);\n\n                if (changeRateRequest) {\n                    onChangeRate(changeRateRequest);\n                } else {\n                    logWarning('Empty activateVehiclesRequest!');\n                }\n            }\n\n            if (updateWay === UpdateWayEnum.unassignContract || updateWay === UpdateWayEnum.assignContract) {\n                const changeContractRequest = prepareChangeContractRequest(assets, values);\n\n                if (changeContractRequest) {\n                    const selectedContractOption = contractOptions.find((contractOption) => {\n                        return contractOption.value === values[FieldsEnum.contractId];\n                    });\n                    const contractName = selectedContractOption?.text || '';\n                    onChangeContract(changeContractRequest, contractName);\n                } else {\n                    logWarning('Empty activateVehiclesRequest!');\n                }\n            }\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const updateWayOptions = React.useMemo((): Array<UpdateWayOptionT> => {\n        return [\n            {\n                label: t('common:assets.change-rate-or-contract-asset.fields.way-type.options.new-rate'),\n                value: UpdateWayEnum.newRate,\n            },\n            {\n                label: t('common:assets.change-rate-or-contract-asset.fields.way-type.options.assign-contract'),\n                value: UpdateWayEnum.assignContract,\n            },\n            {\n                label: t('common:assets.change-rate-or-contract-asset.fields.way-type.options.unassign-contract'),\n                value: UpdateWayEnum.unassignContract,\n            },\n        ];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [assets, t]);\n\n    const selectedUpdateWay = formik.values[FieldsEnum.updateWay];\n\n    const [query, setQuery] = React.useState<string>('');\n\n    const renderOption = (\n        option: ContractOptionT | UpdateWayOptionT | undefined,\n        placeholder?: string,\n    ): React.ReactNode => {\n        if (!option) {\n            return placeholder;\n        }\n\n        return option.label;\n    };\n\n    const filteredContractOptions = React.useMemo(() => {\n        const preparedQuery = query.toLowerCase().trim();\n        if (!preparedQuery) {\n            return contractOptions;\n        }\n\n        return contractOptions.filter((option) => {\n            return option.text.toLowerCase().includes(preparedQuery);\n        });\n    }, [contractOptions, query]);\n\n    const actions = React.useMemo(() => {\n        return [\n            {\n                children: t('common:error-modal.actions.cancel'),\n                theme: ButtonThemeEnum.secondary,\n                isDisabled: requestStatus.loading,\n                testSelector: `${TEST_SELECTOR}_cancel`,\n                onClick: () => {\n                    onCancel();\n                },\n            },\n            !selectedUpdateWay || selectedUpdateWay === UpdateWayEnum.newRate\n                ? ({\n                      children: t('common:assets.change-rate-or-contract-asset.submit.set'),\n                      theme: ButtonThemeEnum.danger,\n                      isDisabled: requestStatus.loading,\n                      isLoading: requestStatus.loading,\n                      testSelector: `${TEST_SELECTOR}_set`,\n                      type: 'submit',\n                  } as ModalDialogActionT)\n                : null,\n            selectedUpdateWay === UpdateWayEnum.assignContract\n                ? ({\n                      children: t('common:assets.change-rate-or-contract-asset.submit.assign'),\n                      theme: ButtonThemeEnum.danger,\n                      isDisabled: requestStatus.loading,\n                      isLoading: requestStatus.loading,\n                      testSelector: `${TEST_SELECTOR}_assign`,\n                      type: 'submit',\n                  } as ModalDialogActionT)\n                : null,\n            selectedUpdateWay === UpdateWayEnum.unassignContract\n                ? ({\n                      children: t('common:assets.change-rate-or-contract-asset.submit.unassign'),\n                      theme: ButtonThemeEnum.danger,\n                      isDisabled: requestStatus.loading,\n                      isLoading: requestStatus.loading,\n                      testSelector: `${TEST_SELECTOR}_unassign`,\n                      type: 'submit',\n                  } as ModalDialogActionT)\n                : null,\n        ].filter(isNonNil);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [requestStatus, selectedUpdateWay, t]);\n\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <div className={cx('form')}>\n                <FormikField\n                    name={FieldsEnum.updateWay}\n                    className={cx('field', 'field--source')}\n                    label={t('common:assets.change-rate-or-contract-asset.fields.way-type.label')}\n                    error={formik.errors[FieldsEnum.updateWay]}\n                    meta={formik.getFieldMeta(FieldsEnum.updateWay)}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <DropdownInput<UpdateWayOptionT, UpdateWayOptionT['value']>\n                            selectedValue={formik.values[FieldsEnum.updateWay]}\n                            options={updateWayOptions}\n                            onSelect={props.onChange}\n                            renderOption={renderOption}\n                            placeholder={t('common:assets.change-rate-or-contract-asset.fields.way-type.placeholder')}\n                            getOptionValue={(option) => option.value}\n                            overlayClassName={cx('overlay')}\n                            overlayPosition={DropdownOverlayPositionEnum.topLeft}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            isDisabled={isLoadingContract}\n                        />\n                    )}\n                </FormikField>\n                {selectedUpdateWay === UpdateWayEnum.assignContract && (\n                    <FormikField\n                        name={FieldsEnum.contractId}\n                        className={cx('field', 'field--contract')}\n                        label={t('common:assets.change-rate-or-contract-asset.fields.contract.label')}\n                        error={formik.errors[FieldsEnum.contractId]}\n                        meta={formik.getFieldMeta(FieldsEnum.contractId)}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DropdownSearchInput<ContractOptionT, ContractOptionT['value']>\n                                selectedValue={formik.values[FieldsEnum.contractId]}\n                                options={filteredContractOptions}\n                                onSelect={props.onChange}\n                                renderOption={renderOption}\n                                renderTrigger={renderOption}\n                                placeholder={t(\n                                    'common:assets.change-rate-or-contract-asset.fields.contract.placeholder',\n                                )}\n                                getOptionValue={(option) => option.value}\n                                overlayClassName={cx('overlay')}\n                                overlayPosition={DropdownOverlayPositionEnum.topLeft}\n                                onChangeQuery={setQuery}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                isDisabled={isLoadingContract}\n                                isLoading={isLoadingContract}\n                                renderRightIcon={({ isLoading }) => {\n                                    return isLoading ? (\n                                        <ControlLoaderIcon {...ControlLoaderIconProps.getFetchDataProps()} />\n                                    ) : null;\n                                }}\n                            />\n                        )}\n                    </FormikField>\n                )}\n                {selectedUpdateWay === UpdateWayEnum.newRate && (\n                    <FormikField\n                        className={cx('field', 'field--rate')}\n                        name={FieldsEnum.rate}\n                        error={formik.errors[FieldsEnum.rate]}\n                        meta={formik.getFieldMeta(FieldsEnum.rate)}\n                        label={t('common:assets.change-rate-or-contract-asset.fields.rate.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <NumberInput\n                                name={FieldsEnum.rate}\n                                unitType={UnitTypeEnum.euroAbbreviation}\n                                value={formik.values[FieldsEnum.rate]}\n                                placeholder={t('common:assets.change-rate-or-contract-asset.fields.rate.placeholder')}\n                                step={1}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                            />\n                        )}\n                    </FormikField>\n                )}\n            </div>\n            <ModalDialogActions actions={actions} />\n        </form>\n    );\n};\n\nexport default ChangeRateOrContractAssetForm;\n","import React from 'react';\n\nexport enum TimeZoneEnum {\n    accountTimezone = 'account-timezone',\n}\n\nexport type TimeZoneT = TimeZoneEnum | number;\n\nexport type TimeZoneContextValueT = {\n    timeZone: TimeZoneT | null;\n    utcOffsetMin: number | null;\n};\n\nexport type TimeZoneContextT = {\n    value: TimeZoneContextValueT;\n    setValue: (value: TimeZoneContextValueT) => void;\n};\n\nconst TimeZoneContext = React.createContext<TimeZoneContextT | null>(null);\n\nexport default TimeZoneContext;\n","import { put, takeEvery, select } from 'redux-saga/effects';\n\nimport { FETCH_MANAGERS_REQUEST, FetchManagersActionT } from './types';\nimport { fetchManagersBegin, fetchManagersError, fetchManagersSuccess } from './actions';\nimport { selectFetchManagersRequest } from './selectors';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction* fetchManagersSaga(action: FetchManagersActionT): WrapGeneratorT<void> {\n    const request: ReturnType<typeof selectFetchManagersRequest> = yield select(selectFetchManagersRequest);\n    if (request.ok) {\n        return;\n    }\n\n    yield put(fetchManagersBegin());\n\n    const [error, managers]: ReturnApiT<typeof brokerTranziitApi.fetchPartnerManagers> =\n        yield brokerTranziitApi.fetchPartnerManagers();\n    if (error) {\n        yield put(fetchManagersError(error));\n        return;\n    }\n\n    yield put(fetchManagersSuccess(managers || []));\n}\n\nfunction* userSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_MANAGERS_REQUEST, fetchManagersSaga);\n}\n\nexport default userSaga;\n","// extracted by mini-css-extract-plugin\nexport default {\"list\":\"CheckboxOptionsList__list___RmsnE\",\"list--hasWarning\":\"CheckboxOptionsList__list--hasWarning___Im6Gt\",\"list--hasError\":\"CheckboxOptionsList__list--hasError___n4Z8k\",\"option\":\"CheckboxOptionsList__option___YFqnA\",\"option__checkbox\":\"CheckboxOptionsList__option__checkbox___iWdpC\",\"option__label\":\"CheckboxOptionsList__option__label___jKvtc\",\"links\":\"CheckboxOptionsList__links___VEbC7\",\"link\":\"CheckboxOptionsList__link___ufa_j\",\"link__icon\":\"CheckboxOptionsList__link__icon___exvn_\",\"link__text\":\"CheckboxOptionsList__link__text___zkXPz\",\"loader\":\"CheckboxOptionsList__loader___DfH4p\",\"loader__container\":\"CheckboxOptionsList__loader__container___pZXI_\",\"fadeIn\":\"CheckboxOptionsList__fadeIn___nWp_H\",\"blinking\":\"CheckboxOptionsList__blinking___p_900\"};","import { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport * as React from 'react';\n\ntype PropsT = {\n    size: number;\n    opacity?: number;\n    fillColor: StyleGuideColorsEnum;\n    className?: string;\n};\n\nconst ControlLoaderIcon: React.FC<PropsT> = (props) => {\n    const { size, fillColor, opacity, ...restProps } = props;\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\" {...restProps}>\n            <path\n                fill={fillColor}\n                fillOpacity={opacity || 0.3}\n                fillRule=\"evenodd\"\n                d=\"M10 3a7 7 0 110 14 1.4 1.4 0 010-2.8A4.2 4.2 0 105.8 10 1.4 1.4 0 013 10a7 7 0 017-7z\"\n            >\n                <animateTransform\n                    attributeName=\"transform\"\n                    dur=\"1s\"\n                    from=\"0 10 10\"\n                    repeatCount=\"indefinite\"\n                    to=\"360 10 10\"\n                    type=\"rotate\"\n                />\n            </path>\n        </svg>\n    );\n};\n\nControlLoaderIcon.displayName = 'ControlLoaderIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    opacity: 0.5,\n};\n\nexport const ControlLoaderIconProps = {\n    getFetchDataProps: () => {\n        return {\n            fillColor: StyleGuideColorsEnum.brandAccent,\n            size: DEFAULT_ICON_SIZE,\n        };\n    },\n};\n\nexport { storyProps };\nexport default ControlLoaderIcon;\n","import * as React from 'react';\nimport { TransportOrderStatusEnum, ApiTransportOrderStatusT } from 'common/utils/api/models';\nimport ColoredStatusLabel, {\n    PropsT as ColoredStatusLabelPropsT,\n} from 'common/components/ColoredStatusLabel/ColoredStatusLabel';\nimport TransportOrderStatus from 'common/components/status/TransportOrderStatus/TransportOrderStatus';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = Omit<ColoredStatusLabelPropsT, 'label' | 'color'> & {\n    status: ApiTransportOrderStatusT | null | undefined;\n};\n\nexport const TRANSPORT_ORDER_STATUS_COLOR_MAP: Record<ApiTransportOrderStatusT, StyleGuideColorsEnum> = {\n    [TransportOrderStatusEnum.assetsUnassigned]: StyleGuideColorsEnum.tomatoRed,\n    [TransportOrderStatusEnum.driverUnassigned]: StyleGuideColorsEnum.tomatoRed,\n    [TransportOrderStatusEnum.assigned]: StyleGuideColorsEnum.light,\n    [TransportOrderStatusEnum.inTransit]: StyleGuideColorsEnum.light,\n    [TransportOrderStatusEnum.done]: StyleGuideColorsEnum.mediumGreen,\n    [TransportOrderStatusEnum.canceled]: StyleGuideColorsEnum.light,\n    [TransportOrderStatusEnum.declined]: StyleGuideColorsEnum.light,\n    [TransportOrderStatusEnum.unknown]: StyleGuideColorsEnum.light,\n};\n\nconst TransportOrderColoredStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status, ...restProps } = props;\n\n    if (!status) {\n        return null;\n    }\n\n    const color = TRANSPORT_ORDER_STATUS_COLOR_MAP[status];\n\n    return <ColoredStatusLabel {...restProps} label={<TransportOrderStatus status={status} />} color={color} />;\n});\n\nexport default TransportOrderColoredStatus;\n","import { useEffect, useRef } from 'react';\n\ntype HandlerT = (isVisible: boolean) => void;\n\nconst useDocumentVisibilityEffect = (handler: HandlerT) => {\n    const visibilitychangeHandler = useRef<HandlerT>();\n\n    useEffect(() => {\n        visibilitychangeHandler.current = handler;\n    }, [handler]);\n\n    useEffect(() => {\n        const onVisibilityChange = (): void => {\n            const isVisible = document.visibilityState === 'visible';\n\n            if (visibilitychangeHandler.current) {\n                visibilitychangeHandler.current(isVisible);\n            }\n        };\n\n        document.addEventListener('visibilitychange', onVisibilityChange);\n\n        return (): void => {\n            document.removeEventListener('visibilitychange', onVisibilityChange);\n        };\n    }, []);\n};\n\nexport default useDocumentVisibilityEffect;\n","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\n\ntype PropsT = {\n    transportationOrderNumber: React.ReactNode;\n};\n\nconst TransportationOrderAssetsUnassignedCard: React.FC<PropsT> = React.memo((props) => {\n    const { transportationOrderNumber } = props;\n\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey=\"common:notifications.transportation-order-assets-unassigned\"\n                components={{\n                    transportationOrderNumber: (\n                        <NotificationEntityLabel isBold isUnderline text={transportationOrderNumber} />\n                    ),\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default TransportationOrderAssetsUnassignedCard;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './InvoicesListPage.scss';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport TopBar from 'common/layouts/LeftMenuLayout/TopBar/TopBar';\nimport SortDropdown, {\n    SortDropdownOptionT,\n    SortDropdownOverlayPositionEnum,\n} from 'common/components/Table/SortDropdown/SortDropdown';\nimport TableMessage, { TableMessageIconsEnum } from 'common/components/Table/TableMessage/TableMessage';\nimport {\n    createJsonParams,\n    createPageNumberParam,\n    createSortParams,\n    PageSortT,\n    SortDirectionEnum,\n} from 'common/utils/query';\nimport ScrollableContent from 'common/layouts/LeftMenuLayout/ScrollableContent/ScrollableContent';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport StickyFooter from 'common/layouts/LeftMenuLayout/StickyFooter/StickyFooter';\nimport QuickFilters, { QuickFiltersOptionT } from 'common/components/Table/QuickFilters/QuickFilters';\nimport { colorCodingNotificationLabelTheme } from 'common/components/notifications/NotificationLabel/NotificationLabel';\nimport SearchControl from 'common/components/Table/SearchControl/SearchControl';\nimport NotificationsBarTrigger from 'common/components/notifications/NotificationsBarTrigger/NotificationsBarTrigger';\nimport TableError from 'common/components/Table/TableError/TableError';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport TopBarContent from 'common/layouts/LeftMenuLayout/TopBarContent/TopBarContent';\nimport ListPageHeaderLayout from 'common/layouts/ListPage/ListPageHeaderLayout/ListPageHeaderLayout';\nimport ListPageHeaderTabsLayout from 'common/layouts/ListPage/ListPageHeaderTabsLayout/ListPageHeaderTabsLayout';\nimport ListPageLayout from 'common/layouts/ListPage/ListPageLayout/ListPageLayout';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport { QueryFiltersKeysEnum, QueryFiltersT, QueryKeysEnum } from './query-models';\nimport { urlFactory as brokerUrlFactory } from 'broker-admin/utils/urls';\nimport { prepareFetchPageQuery } from './prepare-fetch-page-query';\nimport SideBars from 'broker-admin/layouts/SideBars/SideBars';\nimport SelectedFilters from './SelectedFilters/SelectedFilters';\nimport { StringParam, useQueryParams } from 'use-query-params';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { LinkToT } from 'common/components/Link/Link';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { InvoicesQuickFilterEnum } from './constants';\nimport InvoicesTable from 'broker-admin/layouts/InvoicesListPage/InvoicesTable/InvoicesTable';\nimport {\n    selectInvoicesByIds,\n    selectInvoicesPages,\n    selectInvoicesPagingState,\n} from 'broker-admin/store/invoices/selectors';\nimport { BrokerInvoiceT } from 'broker-admin/store/invoices/models';\nimport { fetchInvoicesPage } from 'broker-admin/store/invoices/actions';\nimport { invoicesPaginationChannel, invoicesRefreshChannel } from 'broker-admin/store/invoices/channels';\nimport { BrokerInvoicesSortEnum } from 'broker-admin/utils/api/broker-tranziit/models';\nimport DummyPagination from 'common/components/Table/DummyPagination/DummyPagination';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { checkNeedRenderEmptyState } from 'common/components/Table/utils/check-need-render-empty-state';\nimport { checkFilters } from 'common/components/Table/utils/check-filters';\nimport omit from 'lodash/omit';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst InvoicesListPage: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n\n    const pages = useSelector(selectInvoicesPages);\n    const byId = useSelector(selectInvoicesByIds);\n\n    const [query, changeQuery] = useQueryParams({\n        [QueryKeysEnum.invoicesFilters]: createJsonParams<QueryFiltersT>({}),\n        [QueryKeysEnum.invoicesPage]: createPageNumberParam(),\n        [QueryKeysEnum.invoicesSort]: createSortParams<BrokerInvoicesSortEnum>({\n            value: BrokerInvoicesSortEnum.createDate,\n            direction: SortDirectionEnum.DESC,\n        }),\n        [QueryKeysEnum.invoicesPagingEndingBefore]: StringParam,\n        [QueryKeysEnum.invoicesPagingStartingAfter]: StringParam,\n    });\n\n    const invoicesPagingEndingBefore = query[QueryKeysEnum.invoicesPagingEndingBefore];\n    const invoicesPagingStartingAfter = query[QueryKeysEnum.invoicesPagingStartingAfter];\n\n    const pagingState = useSelector(selectInvoicesPagingState);\n\n    const pageNumber = query[QueryKeysEnum.invoicesPage];\n    const queryFilters = query[QueryKeysEnum.invoicesFilters];\n    const selectedSort = query[QueryKeysEnum.invoicesSort];\n\n    const page = pages[pageNumber];\n    const { ids, requestStatus } = page || {};\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort, {\n            startingAfter: invoicesPagingStartingAfter,\n            endingBefore: invoicesPagingEndingBefore,\n        });\n        dispatch(fetchInvoicesPage(pageNumber, query, { isForceUpdate: false }));\n    }, [dispatch, pageNumber, selectedSort, queryFilters, invoicesPagingStartingAfter, invoicesPagingEndingBefore]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const refreshPageHandler = React.useCallback(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort, {\n            startingAfter: invoicesPagingStartingAfter,\n            endingBefore: invoicesPagingEndingBefore,\n        });\n        dispatch(fetchInvoicesPage(pageNumber, query, { isForceUpdate: true }));\n    }, [dispatch, pageNumber, selectedSort, queryFilters, invoicesPagingStartingAfter, invoicesPagingEndingBefore]);\n    useChannelSubscribe(invoicesRefreshChannel, refreshPageHandler);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort, {\n            startingAfter: invoicesPagingStartingAfter,\n            endingBefore: invoicesPagingEndingBefore,\n        });\n        dispatch(fetchInvoicesPage(pageNumber, query, { isForceUpdate: true }));\n    }, [dispatch, pageNumber, selectedSort, queryFilters, invoicesPagingStartingAfter, invoicesPagingEndingBefore]);\n\n    React.useEffect(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort, {\n            startingAfter: invoicesPagingStartingAfter,\n            endingBefore: invoicesPagingEndingBefore,\n        });\n        dispatch(fetchInvoicesPage(pageNumber, query));\n\n        return (): void => {\n            // TODO reset\n        };\n    }, [\n        dispatch,\n        page,\n        pageNumber,\n        selectedSort,\n        queryFilters,\n        invoicesPagingStartingAfter,\n        invoicesPagingEndingBefore,\n    ]);\n\n    const invoices = React.useMemo(() => {\n        return (ids || []).map((id): BrokerInvoiceT => byId[id]);\n    }, [ids, byId]);\n\n    const goToPage = React.useCallback(\n        (pageNumber: PageNumberT) => {\n            changeQuery({\n                [QueryKeysEnum.invoicesPage]: pageNumber,\n            });\n        },\n        [changeQuery],\n    );\n\n    const setPageHandler = React.useCallback(\n        ({ pageNumber }: InferChannelEventT<typeof invoicesPaginationChannel>) => {\n            goToPage(pageNumber);\n        },\n        [goToPage],\n    );\n    useChannelSubscribe(invoicesPaginationChannel, setPageHandler);\n\n    const getPartnerLink = (partnerType: PartnerTypeEnum, partnerId: CompanyIdT): LinkToT => {\n        return brokerUrlFactory.partnerDetails(partnerType, partnerId);\n    };\n\n    const invoicesQuickFilterOptions: Array<QuickFiltersOptionT<InvoicesQuickFilterEnum>> = [\n        {\n            id: undefined,\n            showPriority: 0,\n            hidePriority: 0,\n            label: t('invoices.list.status-filter.all'),\n            testSelector: 'all',\n        },\n        {\n            id: InvoicesQuickFilterEnum.open,\n            showPriority: 1,\n            hidePriority: 1,\n            label: t('invoices.list.status-filter.open'),\n            testSelector: InvoicesQuickFilterEnum.open,\n            notificationProps: {\n                count: 0,\n                theme: colorCodingNotificationLabelTheme.normal,\n            },\n        },\n        {\n            id: InvoicesQuickFilterEnum.void,\n            showPriority: 2,\n            hidePriority: 2,\n            label: t('invoices.list.status-filter.void'),\n            testSelector: InvoicesQuickFilterEnum.void,\n            notificationProps: {\n                count: 0,\n                theme: colorCodingNotificationLabelTheme.attention,\n            },\n        },\n        {\n            id: InvoicesQuickFilterEnum.paid,\n            showPriority: 3,\n            hidePriority: 3,\n            label: t('invoices.list.status-filter.paid'),\n            testSelector: InvoicesQuickFilterEnum.paid,\n            notificationProps: {\n                count: 0,\n                theme: colorCodingNotificationLabelTheme.success,\n            },\n        },\n        {\n            id: InvoicesQuickFilterEnum.uncollectible,\n            showPriority: 4,\n            hidePriority: 4,\n            label: t('invoices.list.status-filter.uncollectible'),\n            testSelector: InvoicesQuickFilterEnum.uncollectible,\n            notificationProps: {\n                count: 0,\n                theme: colorCodingNotificationLabelTheme.warning,\n            },\n        },\n    ];\n\n    const sortOptions: Array<SortDropdownOptionT<BrokerInvoicesSortEnum>> = React.useMemo(\n        () => [\n            {\n                label: t('invoices.list.table.sorts.triggers.created'),\n                value: BrokerInvoicesSortEnum.createDate,\n            },\n        ],\n        [t],\n    );\n\n    const handleSelectSort = (sort: PageSortT<BrokerInvoicesSortEnum>) => {\n        changeQuery({\n            [QueryKeysEnum.invoicesPage]: 0,\n            [QueryKeysEnum.invoicesPagingStartingAfter]: undefined,\n            [QueryKeysEnum.invoicesPagingEndingBefore]: undefined,\n            [QueryKeysEnum.invoicesSort]: sort,\n        });\n    };\n\n    const handleSetStatusFilter = (quickFilterId: InvoicesQuickFilterEnum | undefined) => {\n        const prevQueryFilters = query[QueryKeysEnum.invoicesFilters] || {};\n\n        const queryFilters = {\n            ...prevQueryFilters,\n            [QueryFiltersKeysEnum.searchText]: undefined, // Fix: reset quick filter - stripe logic\n            [QueryFiltersKeysEnum.quickFilter]: quickFilterId,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.invoicesPage]: 0,\n            [QueryKeysEnum.invoicesPagingStartingAfter]: undefined,\n            [QueryKeysEnum.invoicesPagingEndingBefore]: undefined,\n            [QueryKeysEnum.invoicesFilters]: queryFilters,\n        });\n    };\n\n    const updateQueryFilters = (queryFiltersChanges: QueryFiltersT) => {\n        const prevQueryFilters = query[QueryKeysEnum.invoicesFilters] || {};\n\n        const queryFilters = {\n            ...prevQueryFilters,\n            ...queryFiltersChanges,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.invoicesPage]: 0,\n            [QueryKeysEnum.invoicesPagingStartingAfter]: undefined,\n            [QueryKeysEnum.invoicesPagingEndingBefore]: undefined,\n            [QueryKeysEnum.invoicesFilters]: queryFilters,\n        });\n    };\n\n    const handleSetQueryFilters = (selectedQueryFilters: QueryFiltersT) => {\n        const prevQueryFilters = query[QueryKeysEnum.invoicesFilters] || {};\n\n        const queryFilters = {\n            [QueryFiltersKeysEnum.quickFilter]: prevQueryFilters[QueryFiltersKeysEnum.quickFilter],\n            ...selectedQueryFilters,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.invoicesPage]: 0,\n            [QueryKeysEnum.invoicesPagingStartingAfter]: undefined,\n            [QueryKeysEnum.invoicesPagingEndingBefore]: undefined,\n            [QueryKeysEnum.invoicesFilters]: queryFilters,\n        });\n    };\n\n    const handleSearch = (searchText: string) => {\n        updateQueryFilters({\n            [QueryFiltersKeysEnum.quickFilter]: undefined, // Fix: reset quick filter - stripe logic\n            [QueryFiltersKeysEnum.searchText]: searchText || undefined,\n        });\n    };\n\n    const goToPrevPage = () => {\n        if (!pagingState?.endingBefore) {\n            return;\n        }\n\n        changeQuery({\n            [QueryKeysEnum.invoicesPagingStartingAfter]: undefined,\n            [QueryKeysEnum.invoicesPagingEndingBefore]: pagingState.endingBefore,\n        });\n    };\n\n    const goToNextPage = () => {\n        if (!pagingState?.startingAfter) {\n            return;\n        }\n\n        changeQuery({\n            [QueryKeysEnum.invoicesPagingStartingAfter]: pagingState.startingAfter,\n            [QueryKeysEnum.invoicesPagingEndingBefore]: undefined,\n        });\n    };\n\n    const renderTableMessage = () => {\n        if (!checkNeedRenderEmptyState(invoices, requestStatus)) {\n            return null;\n        }\n\n        if (requestStatus?.error) {\n            return <TableError error={requestStatus?.error} onRetry={handleRefreshOnError} />;\n        }\n\n        const { hasSecondaryQueryFilters, hasPrimaryQueryFilters } = checkFilters(\n            [queryFilters[QueryFiltersKeysEnum.quickFilter]],\n            [omit(queryFilters, [QueryFiltersKeysEnum.quickFilter])],\n        );\n\n        if (requestStatus?.ok && hasPrimaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.empty}\n                    title={t('invoices.list.table.messages.empty-state.title')}\n                    testSelector=\"empty-state\"\n                    isShowAction={false}\n                />\n            );\n        }\n\n        if (requestStatus?.ok && hasSecondaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.notFound}\n                    title={t('invoices.list.table.messages.not-found.title')}\n                    description={t('invoices.list.table.messages.not-found.description')}\n                    testSelector=\"not-found\"\n                    isShowAction\n                    actionTitle={t('invoices.list.table.messages.not-found.action')}\n                    actionTheme={ButtonThemeEnum.secondary}\n                    onActionClick={() => handleSetQueryFilters({})}\n                />\n            );\n        }\n\n        return (\n            <TableMessage\n                iconType={TableMessageIconsEnum.empty}\n                title={t('invoices.list.table.messages.empty.title')}\n                description={t('invoices.list.table.messages.empty.description')}\n                testSelector=\"empty\"\n                isShowAction={false}\n            />\n        );\n    };\n\n    return (\n        <ScrollableContent>\n            <PageTitle title={t('page-titles.invoices')} />\n            <ContentMargins>\n                <TopBar>\n                    <TopBarContent title={t('invoices.list.title')} rightNode={<NotificationsBarTrigger />} />\n                </TopBar>\n                <ListPageLayout>\n                    <ListPageHeaderTabsLayout>\n                        <QuickFilters\n                            options={invoicesQuickFilterOptions}\n                            selectedId={queryFilters[QueryFiltersKeysEnum.quickFilter]}\n                            onSelect={handleSetStatusFilter}\n                            moreStatusesLabel={t('invoices.list.status-filter.more-statuses')}\n                        />\n                    </ListPageHeaderTabsLayout>\n                    <ListPageHeaderLayout\n                        withTopPadding\n                        leftToolsNode={\n                            <>\n                                {false && (\n                                    <SortDropdown\n                                        overlayPosition={SortDropdownOverlayPositionEnum.left}\n                                        selectedValue={selectedSort}\n                                        options={sortOptions}\n                                        onSelect={handleSelectSort}\n                                    />\n                                )}\n                                <SearchControl\n                                    placeholder={t('invoices.list.search-placeholder')}\n                                    searchText={queryFilters[QueryFiltersKeysEnum.searchText]}\n                                    onChangeSearchText={handleSearch}\n                                />\n                            </>\n                        }\n                        filterTagsNode={\n                            <SelectedFilters\n                                isCompact\n                                queryFilters={queryFilters}\n                                setQueryFilters={handleSetQueryFilters}\n                            />\n                        }\n                    />\n                    {renderTableMessage()}\n                    <InvoicesTable\n                        invoices={invoices}\n                        className={cx('table')}\n                        isLoading={requestStatus?.loading}\n                        getPartnerLink={getPartnerLink}\n                    />\n                </ListPageLayout>\n                <StickyFooter>\n                    <DummyPagination\n                        isDisabledPrevPage={!pagingState?.endingBefore}\n                        goToPrevPage={goToPrevPage}\n                        isDisabledNextPage={!pagingState?.startingAfter || !pagingState?.hasMore}\n                        goToNextPage={goToNextPage}\n                    />\n                </StickyFooter>\n                <SideBars />\n            </ContentMargins>\n        </ScrollableContent>\n    );\n});\n\nexport default InvoicesListPage;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './MultiPointOrderRouteMap.scss';\n\nimport GoogleMapReact from 'google-map-react';\nimport { BOOTSTRAP_URL_KEYS, DEFAULT_CENTER, DEFAULT_ZOOM, MAP_OPTIONS } from 'common/store/constants';\nimport useGoogleMapsApiLoader from 'common/utils/hooks/maps/useGoogleMapsApiLoader';\nimport { useGoogleMapContext } from 'common/utils/hooks/maps/useGoogleMapContext';\nimport { useGoogleMapConfig } from 'common/utils/hooks/maps/useGoogleMapConfig';\nimport { ApiShipmentStatusT } from 'common/utils/api/models';\nimport last from 'lodash/last';\nimport { AssetTypeEnum } from 'common/constants';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { TrackPointT } from 'common/store/asset-track/models';\nimport MapRoute, { MapRouteThemeEnum } from 'common/components/maps/MapRoute/MapRoute';\nimport MapBound, { BoundPointT } from 'common/components/maps/MapBound/MapBound';\nimport MapLoader from '../maps/MapLoader/MapLoader';\nimport { MapPointT, PointGeoJsonPropertiesT } from './models';\nimport Supercluster from 'supercluster';\nimport isNumber from 'lodash/isNumber';\nimport LastAssetTrackPointPin from 'common/components/maps/pins/LastAssetTrackPointPin/LastAssetTrackPointPin';\nimport WaypointNumberPin from 'common/components/maps/pins/WaypointNumberPin/WaypointNumberPin';\nimport { MapPinThemeEnum } from 'common/components/maps/MapPin/MapPin';\nimport PointStackClusterPin from './PointStackClusterPin/PointStackClusterPin';\nimport { visitedOriginLoadStatusSet } from './constants';\nimport FerryLocationPin from 'common/components/maps/pins/FerryLocationPin/FerryLocationPin';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\nexport type MultiPointOrderRouteMapPropsT = {\n    withRouteTrack?: boolean;\n    points: Array<MapPointT | null> | null;\n    loadStatus?: ApiShipmentStatusT;\n    route?: Array<GooglePolylineT> | null;\n    routeRequest?: RequestStatusT;\n    routes?: Array<Array<GooglePolylineT>> | null;\n    routeRequests?: Array<RequestStatusT> | null;\n    truckTrack?: Array<TrackPointT>;\n    truckNumber?: number | null;\n    truckTrackRequest?: RequestStatusT;\n    truckRoute?: Array<GooglePolylineT> | null;\n    truckRouteRequest?: RequestStatusT;\n    trailerTrack?: Array<TrackPointT>;\n    trailerNumber?: number | null;\n    trailerTrackRequest?: RequestStatusT;\n    trailerRoute?: Array<GooglePolylineT> | null;\n    trailerRouteRequest?: RequestStatusT;\n    isLoading?: boolean;\n};\n\nconst FEATURES_LIMIT = 99999;\nconst DEFAULT_OFFSET = 0;\n\nconst SUPERCLUSTER_SETTINGS: Supercluster.Options<PointGeoJsonPropertiesT, any> = {\n    radius: 100,\n    maxZoom: 22,\n};\n\nconst MultiPointOrderRouteMap: React.FC<MultiPointOrderRouteMapPropsT> = React.memo((props) => {\n    const {\n        points,\n        loadStatus,\n        route,\n        routeRequest,\n        routes,\n        routeRequests,\n        withRouteTrack,\n        truckTrack,\n        truckNumber,\n        truckTrackRequest,\n        truckRoute,\n        truckRouteRequest,\n        trailerTrack,\n        trailerNumber,\n        trailerTrackRequest,\n        trailerRoute,\n        trailerRouteRequest,\n        children,\n    } = props;\n\n    const { googleMaps } = useGoogleMapContext();\n    const { onGoogleApiLoaded } = useGoogleMapsApiLoader({});\n    const { config, onZoomAnimationEnd, onDragEnd } = useGoogleMapConfig();\n\n    const allMapPoints = React.useMemo((): Array<BoundPointT> => {\n        if (!points) {\n            return [];\n        }\n\n        return points.reduce<Array<BoundPointT>>((acc, point) => {\n            if (!point) {\n                return acc;\n            }\n\n            acc.push([point.latitude, point.longitude]);\n\n            return acc;\n        }, []);\n    }, [points]);\n\n    const lastTruckTrackPoint = last(truckTrack);\n    const lastTrailerTrackPoint = last(trailerTrack);\n\n    const allGeoJSONs = React.useMemo(() => {\n        const geoJSONs: Array<Supercluster.PointFeature<PointGeoJsonPropertiesT>> = [];\n\n        points?.forEach((point) => {\n            const longitude = point?.longitude;\n            const latitude = point?.latitude;\n            if (isNumber(latitude) && isNumber(longitude) && point) {\n                const geoJson: Supercluster.PointFeature<PointGeoJsonPropertiesT> = {\n                    type: 'Feature',\n                    geometry: {\n                        type: 'Point',\n                        coordinates: [longitude, latitude],\n                    },\n                    properties: {\n                        type: 'point',\n                        point,\n                        pointNumber: (point?.index || 0) + 1,\n                    },\n                };\n\n                geoJSONs.push(geoJson);\n            }\n        });\n\n        if (lastTrailerTrackPoint) {\n            geoJSONs.push({\n                type: 'Feature',\n                geometry: {\n                    type: 'Point',\n                    coordinates: [lastTrailerTrackPoint.lng, lastTrailerTrackPoint.lat],\n                },\n                properties: {\n                    type: 'trailer-last-point',\n                    point: lastTrailerTrackPoint,\n                    trailerNumber: isNumber(trailerNumber) ? trailerNumber : null,\n                },\n            });\n        }\n\n        if (lastTruckTrackPoint) {\n            geoJSONs.push({\n                type: 'Feature',\n                geometry: {\n                    type: 'Point',\n                    coordinates: [lastTruckTrackPoint.lng, lastTruckTrackPoint.lat],\n                },\n                properties: {\n                    type: 'truck-last-point',\n                    point: lastTruckTrackPoint,\n                    truckNumber: isNumber(truckNumber) ? truckNumber : null,\n                },\n            });\n        }\n\n        return geoJSONs;\n    }, [points, lastTruckTrackPoint, lastTrailerTrackPoint, trailerNumber, truckNumber]);\n\n    const allGeoJSONsClusterator = React.useMemo(() => {\n        const clusterator = new Supercluster<PointGeoJsonPropertiesT>(SUPERCLUSTER_SETTINGS);\n        clusterator.load(allGeoJSONs || []);\n        return clusterator;\n    }, [allGeoJSONs]);\n\n    const allGeoJSONsClusters = React.useMemo(() => {\n        if (config) {\n            const clusters = allGeoJSONsClusterator.getClusters(config.bounds, config.zoom);\n            return clusters;\n        }\n\n        return [];\n    }, [config, allGeoJSONsClusterator]);\n\n    const renderSinglePointFeature = (properties: PointGeoJsonPropertiesT) => {\n        switch (properties.type) {\n            case 'trailer-last-point': {\n                return (\n                    <LastAssetTrackPointPin\n                        key={`trailer-last-point-${properties.trailerNumber}`}\n                        iconType={AssetTypeEnum.trailer}\n                        lat={properties.point.lat}\n                        lng={properties.point.lng}\n                        timestamp={properties.point.timestamp}\n                        number={properties.trailerNumber}\n                    />\n                );\n            }\n            case 'truck-last-point': {\n                return (\n                    <LastAssetTrackPointPin\n                        key={`truck-last-point-${properties.truckNumber}`}\n                        iconType={AssetTypeEnum.truck}\n                        lat={properties.point.lat}\n                        lng={properties.point.lng}\n                        timestamp={properties.point.timestamp}\n                        number={properties.truckNumber}\n                    />\n                );\n            }\n            case 'point': {\n                const { point, pointNumber } = properties;\n\n                const isVisited = loadStatus && visitedOriginLoadStatusSet.has(loadStatus);\n\n                if (point.type === 'FERRY_ONBOARD' || point.type === 'FERRY_DISEMBARK') {\n                    return (\n                        <FerryLocationPin\n                            key={`route-point-${point.type}-${point.index}-${pointNumber}`}\n                            className={cx('route-point-pin')}\n                            lng={point.longitude}\n                            lat={point.latitude}\n                            theme={isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal}\n                        />\n                    );\n                }\n\n                let theme = MapPinThemeEnum.gray;\n                if (point.type === 'SHIPMENT') {\n                    theme = MapPinThemeEnum.charcoal;\n                }\n\n                if (isVisited) {\n                    theme = MapPinThemeEnum.brandDark;\n                }\n\n                return (\n                    <WaypointNumberPin\n                        key={`route-point-${point.index}-${point.type}-${pointNumber}`}\n                        className={cx('route-point-pin')}\n                        theme={theme}\n                        lng={point.longitude}\n                        lat={point.latitude}\n                    >\n                        {pointNumber}\n                    </WaypointNumberPin>\n                );\n            }\n            default: {\n                return null;\n            }\n        }\n    };\n\n    const handleClusterClick = React.useCallback(\n        (clusterId: number) => {\n            const { map, maps } = googleMaps;\n\n            if (!maps || !map) {\n                return;\n            }\n\n            const clusterFeatures = allGeoJSONsClusterator.getLeaves(clusterId, FEATURES_LIMIT, DEFAULT_OFFSET);\n\n            const bounds = new maps.LatLngBounds();\n\n            clusterFeatures.forEach((feature: Supercluster.PointFeature<{}>) => {\n                const point = new maps.LatLng(feature.geometry.coordinates[1], feature.geometry.coordinates[0]);\n\n                bounds.extend(point);\n            });\n\n            map.fitBounds(bounds);\n        },\n        [googleMaps, allGeoJSONsClusterator],\n    );\n\n    const isLoadingRoutes = React.useMemo(() => {\n        return (\n            routeRequests?.some((routeRequest) => {\n                return routeRequest?.loading;\n            }) || false\n        );\n    }, [routeRequests]);\n\n    const isRouteRequestLoading =\n        isLoadingRoutes || routeRequest?.loading || truckRouteRequest?.loading || trailerRouteRequest?.loading;\n\n    const isLoading =\n        props.isLoading || isRouteRequestLoading || truckTrackRequest?.loading || trailerTrackRequest?.loading;\n\n    return (\n        <>\n            {isLoading && <MapLoader />}\n            <GoogleMapReact\n                defaultCenter={DEFAULT_CENTER}\n                defaultZoom={DEFAULT_ZOOM}\n                bootstrapURLKeys={BOOTSTRAP_URL_KEYS}\n                options={MAP_OPTIONS}\n                onGoogleApiLoaded={onGoogleApiLoaded}\n                onDragEnd={onDragEnd}\n                onZoomAnimationEnd={onZoomAnimationEnd}\n                yesIWantToUseGoogleMapApiInternals\n            >\n                {allGeoJSONsClusters.map((cluster) => {\n                    if ('cluster' in cluster.properties) {\n                        const pointsFeatures = allGeoJSONsClusterator.getLeaves(\n                            cluster.properties.cluster_id,\n                            FEATURES_LIMIT,\n                            DEFAULT_OFFSET,\n                        );\n\n                        const clusterProperties = pointsFeatures.map((pointFeatures) => {\n                            return pointFeatures.properties;\n                        });\n\n                        return (\n                            <PointStackClusterPin\n                                key={`cluster-${cluster.properties.cluster_id}`}\n                                clusterId={cluster.properties.cluster_id}\n                                lng={cluster.geometry.coordinates[0]}\n                                lat={cluster.geometry.coordinates[1]}\n                                clusterProperties={clusterProperties}\n                                onClusterClick={handleClusterClick}\n                                withoutArrow={Boolean(config && config.zoom < 20)}\n                                loadStatus={loadStatus}\n                            />\n                        );\n                    }\n\n                    return renderSinglePointFeature(cluster.properties as PointGeoJsonPropertiesT);\n                })}\n            </GoogleMapReact>\n            {routes?.map((route, routeIndex) => (\n                <MapRoute\n                    key={`route-${routeIndex}`}\n                    map={googleMaps?.map}\n                    maps={googleMaps?.maps}\n                    geometryLibrary={googleMaps?.libraries?.geometry}\n                    polylines={route}\n                    theme={withRouteTrack ? MapRouteThemeEnum.trackFuture : MapRouteThemeEnum.trackPast}\n                    zIndex={1}\n                />\n            ))}\n            {route && (\n                <MapRoute\n                    key=\"route\"\n                    map={googleMaps?.map}\n                    maps={googleMaps?.maps}\n                    geometryLibrary={googleMaps?.libraries?.geometry}\n                    polylines={route}\n                    theme={withRouteTrack ? MapRouteThemeEnum.trackFuture : MapRouteThemeEnum.trackPast}\n                    zIndex={1}\n                />\n            )}\n            <MapRoute\n                key=\"truck-route\"\n                map={googleMaps?.map}\n                maps={googleMaps?.maps}\n                geometryLibrary={googleMaps?.libraries?.geometry}\n                polylines={truckRoute}\n                theme={withRouteTrack ? MapRouteThemeEnum.trackFuture : MapRouteThemeEnum.trackPast}\n                zIndex={2}\n            />\n            <MapRoute\n                key=\"trailer-route\"\n                map={googleMaps?.map}\n                maps={googleMaps?.maps}\n                geometryLibrary={googleMaps?.libraries?.geometry}\n                polylines={trailerRoute}\n                theme={withRouteTrack ? MapRouteThemeEnum.trackFuture : MapRouteThemeEnum.trackPast}\n                zIndex={3}\n            />\n            <MapRoute\n                key=\"truck-track\"\n                map={googleMaps?.map}\n                maps={googleMaps?.maps}\n                route={trailerTrack}\n                theme={MapRouteThemeEnum.trackPast}\n                zIndex={4}\n            />\n            <MapRoute\n                key=\"trailer-track\"\n                map={googleMaps?.map}\n                maps={googleMaps?.maps}\n                route={truckTrack}\n                theme={MapRouteThemeEnum.trackPast}\n                zIndex={5}\n            />\n            <MapBound key=\"map-bound\" map={googleMaps?.map} maps={googleMaps?.maps} allMapPoints={allMapPoints} />\n            {children}\n        </>\n    );\n});\n\nexport default MultiPointOrderRouteMap;\n","import { formatPageQuerySort } from 'common/utils/page-sort';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from './query-models';\nimport { FetchShipperContractLanesPageQueryT } from 'common/store/shipper-contract-lanes/models';\nimport isString from 'lodash/isString';\nimport { PageSortT } from 'common/utils/query';\nimport { ShipperContractLanesSortEnum } from 'common/utils/api/models';\n\nconst prepareFetchPageQuery = (\n    queryFilters: QueryFiltersT,\n    sort: PageSortT<ShipperContractLanesSortEnum> | null,\n): FetchShipperContractLanesPageQueryT => {\n    const dictTrailerId = queryFilters[QueryFiltersKeysEnum.dictTrailerId];\n\n    return {\n        textSearch: queryFilters[QueryFiltersKeysEnum.text] || undefined,\n        status: queryFilters[QueryFiltersKeysEnum.status] || undefined,\n\n        address: queryFilters[QueryFiltersKeysEnum.address] || undefined,\n\n        dictTrailerId: isString(dictTrailerId) ? +dictTrailerId : undefined,\n\n        createdById: queryFilters[QueryFiltersKeysEnum.createdById] || undefined,\n\n        validFromFrom: queryFilters[QueryFiltersKeysEnum.validFromStart] || undefined,\n        validFromTo: queryFilters[QueryFiltersKeysEnum.validFromFinish] || undefined,\n\n        validTillFrom: queryFilters[QueryFiltersKeysEnum.validTillStart] || undefined,\n        validTillTo: queryFilters[QueryFiltersKeysEnum.validTillFinish] || undefined,\n\n        createdDateFrom: queryFilters[QueryFiltersKeysEnum.createdDateStart] || undefined,\n        createdDateTo: queryFilters[QueryFiltersKeysEnum.createdDateFinish] || undefined,\n\n        sort: formatPageQuerySort(sort),\n    };\n};\n\nexport { prepareFetchPageQuery };\n","import { DeadheadRouteStopT, DeadheadRouteStopTypeEnum } from 'broker-admin/store/deadhead-creation/models';\n\nexport const routePointTypeMap: Record<DeadheadRouteStopT['type'], DeadheadRouteStopTypeEnum> = {\n    PICKUP_TRAILER: DeadheadRouteStopTypeEnum.unknown,\n    PICKUP_TRUCK: DeadheadRouteStopTypeEnum.pickupTruck,\n    PICKUP_ROAD_TRAIN: DeadheadRouteStopTypeEnum.pickupRoadTrain,\n    PICKUP_DELIVERY_SHIPMENT: DeadheadRouteStopTypeEnum.unknown,\n    DRIVE_THROUGH: DeadheadRouteStopTypeEnum.driveThrough,\n    DROP_AND_HOOK: DeadheadRouteStopTypeEnum.unknown,\n    DROP_TRAILER: DeadheadRouteStopTypeEnum.unknown,\n    DROP_TRUCK: DeadheadRouteStopTypeEnum.dropTruck,\n    DROP_ROAD_TRAIN: DeadheadRouteStopTypeEnum.dropRoadTrain,\n    FERRY_ONBOARD: DeadheadRouteStopTypeEnum.ferryOnboard,\n    FERRY_DISEMBARK: DeadheadRouteStopTypeEnum.ferryDisembark,\n};\n","import { FieldsEnum, FormValuesT, RoutePointT, ShipmentFieldsEnum } from '../constants';\nimport { NotUsedRoutePointValidationResultT } from '../footer-alert-contents/NotUsedRoutePointValidationAlertContent/NotUsedRoutePointValidationAlertContent';\nimport { OrderCreationReservePointTypeEnum } from 'common/utils/api/models';\n\ntype MetaT = {\n    routePoints: Array<RoutePointT>;\n};\n\nexport const validateNotUsedRoutePoint = (\n    formValues: FormValuesT,\n    meta: MetaT,\n): NotUsedRoutePointValidationResultT | null => {\n    const { routePoints } = meta;\n\n    const allRoutePointIdsSet = new Set(\n        routePoints\n            .filter((routePoint) => {\n                return routePoint.type === OrderCreationReservePointTypeEnum.shipment;\n            })\n            .map((routePoint) => routePoint.id),\n    );\n\n    formValues[FieldsEnum.shipments]?.forEach((shipmentFormValues) => {\n        const pickUpPointId = shipmentFormValues[ShipmentFieldsEnum.pickUpPointId];\n        if (pickUpPointId && allRoutePointIdsSet.has(pickUpPointId)) {\n            allRoutePointIdsSet.delete(pickUpPointId);\n        }\n\n        const dropOffPointId = shipmentFormValues[ShipmentFieldsEnum.dropOffPointId];\n        if (dropOffPointId && allRoutePointIdsSet.has(dropOffPointId)) {\n            allRoutePointIdsSet.delete(dropOffPointId);\n        }\n    });\n\n    if (allRoutePointIdsSet?.size) {\n        return {};\n    }\n\n    return null;\n};\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './RightSidebarLayout.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst RightSidebarLayout: React.FC<PropsT> = React.memo((props) => {\n    const { children } = props;\n\n    return <div className={cx('right-sidebar')}>{children}</div>;\n});\n\nexport default RightSidebarLayout;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\nimport styles from './AveragePriceOfferDetails.scss';\n\nimport { useTranslation } from 'react-i18next';\nimport { CurrencyEnum, UnitTypeEnum } from 'common/constants';\nimport RuleImpact from 'common/components/RuleImpact/RuleImpact';\nimport UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\nimport Money from 'common/components/Money/Money';\nimport PriceDetailsHeader from 'common/layouts/NewOrderPage/OfferDetails/PriceDetailsHeader/PriceDetailsHeader';\nimport { ApiPriceOfferT } from 'common/store/shipper-contract-lane-creation/types';\nimport { M_IN_KM } from 'common/utils/distance';\nimport { BrokerSidebarsTypeEnum } from 'broker-admin/layouts/SideBars/constants';\nimport { useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport ClickInterceptorLabel from 'common/components/ClickInterceptorLabel/ClickInterceptorLabel';\nimport PriceDetails, { PriceDetailT } from 'design-system/components/PriceDetails/PriceDetails';\nimport { useCommonPriceDetails } from 'common/components/price-details/hooks/common';\nimport { useAdditionalServicesList } from 'common/components/price-details/hooks/additional-services-list';\nimport isNumber from 'lodash/isNumber';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    priceOffer?: ApiPriceOfferT | null;\n};\n\nconst AveragePriceOfferDetails: React.FC<PropsT> = React.memo((props) => {\n    const { className, priceOffer } = props;\n\n    const { t } = useTranslation();\n\n    const commonPriceDetails = useCommonPriceDetails();\n\n    const carrierAdditionalServicesList = useAdditionalServicesList({\n        additionalServiceItems: priceOffer?.additionalServices?.items,\n        isAllowCarrierServices: true,\n        isAllowBrokerServices: false,\n    });\n\n    const brokerAdditionalServicesList = useAdditionalServicesList({\n        additionalServiceItems: priceOffer?.additionalServices?.items,\n        isAllowCarrierServices: false,\n        isAllowBrokerServices: true,\n    });\n\n    const costOfOperationPrices: Array<PriceDetailT | null> = React.useMemo(() => {\n        return [\n            {\n                ...commonPriceDetails.lineHaul,\n                price: priceOffer?.lineHaul,\n                footerNode: commonPriceDetails.getAppliedRulesFooterNode(['LINE_HAUL'], priceOffer?.relatedRules),\n            },\n            {\n                ...commonPriceDetails.getRoadTaxesRow(priceOffer?.co2),\n                price: priceOffer?.toll?.totalCost,\n                footerNode: commonPriceDetails.getAppliedRulesFooterNode(['ROAD_TAXES'], priceOffer?.relatedRules),\n                list: commonPriceDetails.getRoadTaxesList(priceOffer?.toll?.byRoadType, priceOffer?.relatedRules),\n            },\n            {\n                ...commonPriceDetails.getFuelCostRow(priceOffer?.fuel?.fuelType),\n                price: priceOffer?.fuel?.totalCost,\n                footerNode: commonPriceDetails.getAppliedRulesFooterNode(['FUEL'], priceOffer?.relatedRules),\n                list: commonPriceDetails.getFuelCostsByCountryList(priceOffer?.fuel?.byCountry),\n            },\n            carrierAdditionalServicesList?.length\n                ? {\n                      ...commonPriceDetails.getCarrierAdditionalServicesRow(priceOffer?.additionalServices?.items),\n                      list: [\n                          {\n                              list: carrierAdditionalServicesList,\n                          },\n                      ],\n                  }\n                : null,\n            brokerAdditionalServicesList?.length\n                ? {\n                      ...commonPriceDetails.getBrokerAdditionalServicesRow(priceOffer?.additionalServices?.items),\n                      list: [\n                          {\n                              list: brokerAdditionalServicesList,\n                          },\n                      ],\n                  }\n                : null,\n        ];\n    }, [commonPriceDetails, priceOffer, carrierAdditionalServicesList, brokerAdditionalServicesList]);\n\n    const otherPrices: Array<PriceDetailT> = React.useMemo(() => {\n        return [\n            {\n                ...commonPriceDetails.tranziitServiceFee,\n                price: priceOffer?.serviceFee,\n                footerNode: commonPriceDetails.getAppliedRulesFooterNode(\n                    ['SERVICE_FEE'],\n                    priceOffer?.brokerInfo?.appliedRules,\n                ),\n            },\n        ];\n    }, [commonPriceDetails, priceOffer]);\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const appliedRulePrices: Array<PriceDetailT> = React.useMemo(() => {\n        if (!priceOffer?.brokerInfo?.appliedRules) {\n            return [];\n        }\n\n        return priceOffer.brokerInfo.appliedRules.map((appliedRule) => {\n            return {\n                title: (\n                    <ClickInterceptorLabel>\n                        <Link\n                            onClick={() => {\n                                openLeftSidebar({\n                                    type: BrokerSidebarsTypeEnum.editPriceSettingsRuleSidebar,\n                                    // @ts-expect-error wait backend, not found id\n                                    editableRuleId: String(appliedRule.id),\n                                });\n                            }}\n                            theme={LinkThemeEnum.boldBrandDark}\n                        >\n                            {appliedRule?.name}\n                        </Link>\n                    </ClickInterceptorLabel>\n                ),\n                unit: <RuleImpact value={appliedRule.value} impactStrategy={appliedRule.valueType} />,\n            };\n        });\n    }, [priceOffer, openLeftSidebar]);\n\n    const totalDistance = priceOffer?.distances?.totalDistance;\n    const costOfOperationRate = isNumber(totalDistance)\n        ? (priceOffer?.costOfOperation || 0) / (totalDistance / M_IN_KM)\n        : null;\n\n    return (\n        <div className={cs(cx('inner'), className)}>\n            <PriceDetailsHeader\n                className={cx('price-details__header')}\n                title={t('shipper-lane-creation.average-price-offer-details.block.cost-of-operation')}\n                rightNode={\n                    priceOffer ? (\n                        <span className={cx('rates')}>\n                            <Money currency={CurrencyEnum.EUR} amount={priceOffer?.costOfOperation} />\n                            {' ('}\n                            <UnitTypeCount\n                                types={[UnitTypeEnum.euroAbbreviation, UnitTypeEnum.kilometersAbbreviation]}\n                                count={costOfOperationRate}\n                            />\n                            )\n                        </span>\n                    ) : null\n                }\n            />\n            <div className={cx('price-details__list')}>\n                <PriceDetails list={costOfOperationPrices} />\n            </div>\n            <PriceDetailsHeader title={t('shipper-lane-creation.average-price-offer-details.block.other-costs')} />\n            <div className={cx('price-details__list')}>\n                <PriceDetails list={otherPrices} />\n            </div>\n            {priceOffer ? (\n                <>\n                    <PriceDetailsHeader\n                        title={t('shipper-lane-creation.average-price-offer-details.block.applied-rules', {\n                            postProcess: 'interval',\n                            count: appliedRulePrices?.length,\n                        })}\n                    />\n                    <div\n                        className={cx('price-details__list', {\n                            'price-details__list--isLast': true,\n                        })}\n                    >\n                        <PriceDetails list={appliedRulePrices} />\n                    </div>\n                </>\n            ) : (\n                <PriceDetailsHeader\n                    title={t('shipper-lane-creation.average-price-offer-details.block.applied-rules-loading')}\n                />\n            )}\n        </div>\n    );\n});\n\nexport default AveragePriceOfferDetails;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ErrorModal.scss';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectIsShowErrorModal, selectNewErrorLogs } from 'common/store/errors/selectors';\nimport { closeErrorModal } from 'common/store/errors/actions';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport Modal from 'common/components/Modal/Modal';\nimport ErrorDetails from 'common/components/ErrorModal/ErrorDetails/ErrorDetails';\nimport ModalDialog, { ModalDialogPropsT } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ErrorActionT } from 'common/store/errors/models';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport BigWarningIcon from 'common/icons/BigWarningIcon';\nimport BigSleepIcon from 'common/icons/BigSleepIcon';\nimport {\n    checkIsTranziitApiRequestError,\n    TranziitApiRequestErrorSubTypeEnum,\n} from 'common/utils/api/tranziit/errors/tranziit-api-errors';\nimport { ApiRequestErrorTypeEnum, checkIsApiRequestError } from 'common/utils/api/errors/api-request-error';\nimport FeaturesContext from 'common/contexts/features';\nimport { ClientFeatureEnum } from 'common/utils/features/client-features-config';\nimport ErrorTraceId from 'common/components/ErrorModal/ErrorTraceId/ErrorTraceId';\nimport { checkIsTranziitApiErrorResponse } from 'common/utils/api/tranziit/errors/error-response';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst checkIsNotBlockingError = (errorAction: ErrorActionT): boolean => {\n    return (\n        checkIsTranziitApiRequestError(errorAction.error) &&\n        (errorAction.error?.subType === TranziitApiRequestErrorSubTypeEnum.orderCreationExpiredRFQ ||\n            errorAction.error?.subType === TranziitApiRequestErrorSubTypeEnum.orderCreation_AlreadyCompletedRFQ ||\n            errorAction.error?.subType === TranziitApiRequestErrorSubTypeEnum.orderCreation_ExpiredPriceOffer)\n    );\n};\n\nconst ErrorModal: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n    const newErrorLogs = useSelector(selectNewErrorLogs);\n\n    const featuresContext = React.useContext(FeaturesContext);\n\n    const isShowErrorDetails = featuresContext?.checkActiveClientFeature?.(ClientFeatureEnum.errorDetails);\n\n    const isShowErrorModal = useSelector(selectIsShowErrorModal);\n    if (!isShowErrorModal) {\n        return null;\n    }\n\n    const handleClose = () => {\n        dispatch(closeErrorModal());\n    };\n\n    const testSelector = 'error-modal';\n\n    const firstErrorLog = newErrorLogs[0];\n\n    const getModalDialogProps = (errorAction: ErrorActionT): ModalDialogPropsT => {\n        const defaultOkAction = {\n            children: t('common:error-modal.actions.ok'),\n            theme: ButtonThemeEnum.secondary,\n            testSelector: `${testSelector}_ok`,\n            onClick: handleClose,\n        };\n        const defaultWidthPx = 340;\n\n        if (\n            checkIsApiRequestError(errorAction.error) &&\n            errorAction.error?.type === ApiRequestErrorTypeEnum.timeoutError\n        ) {\n            return {\n                width: defaultWidthPx,\n                title: t('common:error-modal.timeout-error.title'),\n                message: t('common:error-modal.timeout-error.description'),\n                icon: <BigWarningIcon />,\n                actions: [defaultOkAction],\n            };\n        }\n\n        if (\n            checkIsTranziitApiRequestError(errorAction.error) &&\n            errorAction.error?.subType === TranziitApiRequestErrorSubTypeEnum.canNotDowngradeLastAdminInTeam\n        ) {\n            return {\n                width: defaultWidthPx,\n                title: t('common:error-modal.can-not-downgrade-last-admin-in-team.title'),\n                message: t('common:error-modal.can-not-downgrade-last-admin-in-team.description'),\n                icon: <BigWarningIcon />,\n                actions: [defaultOkAction],\n            };\n        }\n\n        if (\n            checkIsTranziitApiRequestError(errorAction.error) &&\n            errorAction.error?.subType === TranziitApiRequestErrorSubTypeEnum.canNotDeleteHimself\n        ) {\n            return {\n                width: defaultWidthPx,\n                title: t('common:error-modal.can-not-delete-himself.title'),\n                icon: <BigWarningIcon />,\n                actions: [defaultOkAction],\n            };\n        }\n\n        if (\n            checkIsTranziitApiRequestError(errorAction.error) &&\n            errorAction.error?.subType === TranziitApiRequestErrorSubTypeEnum.successorHasNotActiveStatus\n        ) {\n            return {\n                width: defaultWidthPx,\n                title: t('common:error-modal.successor-has-not-active-status.title'),\n                icon: <BigWarningIcon />,\n                actions: [defaultOkAction],\n            };\n        }\n\n        if (\n            checkIsTranziitApiRequestError(errorAction.error) &&\n            errorAction.error?.subType === TranziitApiRequestErrorSubTypeEnum.orderCreationExpiredRFQ\n        ) {\n            return {\n                width: defaultWidthPx,\n                title: t('common:error-modal.expired-rfq.title'),\n                message: t('common:error-modal.expired-rfq.description'),\n                icon: <BigWarningIcon />,\n                actions: [defaultOkAction],\n            };\n        }\n\n        if (\n            checkIsTranziitApiRequestError(errorAction.error) &&\n            errorAction.error?.subType === TranziitApiRequestErrorSubTypeEnum.orderCreation_ExpiredPriceOffer\n        ) {\n            return {\n                width: defaultWidthPx,\n                title: t('common:error-modal.order-creation-expired-price-offer.title'),\n                message: t('common:error-modal.order-creation-expired-price-offer.description'),\n                icon: <BigWarningIcon />,\n                actions: [defaultOkAction],\n            };\n        }\n\n        if (\n            checkIsTranziitApiRequestError(errorAction.error) &&\n            errorAction.error?.subType === TranziitApiRequestErrorSubTypeEnum.orderCreation_AlreadyCompletedRFQ\n        ) {\n            return {\n                width: defaultWidthPx,\n                title: t('common:error-modal.order-creation-already-completed-rfq.title'),\n                message: t('common:error-modal.order-creation-already-completed-rfq.description'),\n                icon: <BigWarningIcon />,\n                actions: [defaultOkAction],\n            };\n        }\n\n        if (\n            checkIsTranziitApiRequestError(errorAction.error) &&\n            errorAction.error?.subType === TranziitApiRequestErrorSubTypeEnum.failedArchiveInTransitDriver\n        ) {\n            return {\n                width: defaultWidthPx,\n                title: t('common:error-modal.failed-archive-in-transit-driver.title'),\n                message: t('common:error-modal.failed-archive-in-transit-driver.description'),\n                icon: <BigWarningIcon />,\n                actions: [defaultOkAction],\n            };\n        }\n\n        if (\n            checkIsTranziitApiRequestError(errorAction.error) &&\n            errorAction.error?.subType === TranziitApiRequestErrorSubTypeEnum.couldNotUnLockCompany\n        ) {\n            return {\n                width: defaultWidthPx,\n                title: t('common:error-modal.could-not-unlock-company.title'),\n                message: t('common:error-modal.could-not-unlock-company.description'),\n                icon: <BigWarningIcon />,\n                actions: [defaultOkAction],\n            };\n        }\n\n        if (\n            checkIsTranziitApiRequestError(errorAction.error) &&\n            errorAction.error?.subType === TranziitApiRequestErrorSubTypeEnum.alreadyAssignedDrivers\n        ) {\n            const isManyDrivers = !!errorAction.error.requestConfig?.query?.secondDriver;\n\n            return {\n                width: defaultWidthPx,\n                title: t(\n                    isManyDrivers\n                        ? 'common:error-modal.already-assigned-drivers.title'\n                        : 'common:error-modal.already-assigned-driver.title',\n                ),\n                message: t(\n                    isManyDrivers\n                        ? 'common:error-modal.already-assigned-drivers.description'\n                        : 'common:error-modal.already-assigned-driver.description',\n                ),\n                icon: <BigWarningIcon />,\n                actions: [defaultOkAction],\n            };\n        }\n\n        if (\n            checkIsTranziitApiRequestError(errorAction.error) &&\n            errorAction.error?.subType === TranziitApiRequestErrorSubTypeEnum.firebaseTooManyResendInviteRequests\n        ) {\n            return {\n                width: defaultWidthPx,\n                title: t('common:error-modal.too-many-reinvite-user-request.title'),\n                message: t('common:error-modal.too-many-reinvite-user-request.description'),\n                icon: <BigSleepIcon />,\n                actions: [defaultOkAction],\n            };\n        }\n\n        if (\n            checkIsTranziitApiRequestError(errorAction.error) &&\n            checkIsTranziitApiErrorResponse(\n                errorAction.error,\n                TranziitApiRequestErrorSubTypeEnum.documents_unsupportedFileType,\n            )\n        ) {\n            const allowedTypes = errorAction.error?.response?.supportedFileTypes?.join(', ') || '';\n\n            return {\n                width: defaultWidthPx,\n                title: t('common:error-modal.documents-unsupported-file-type.title'),\n                message: t('common:error-modal.documents-unsupported-file-type.description', { allowedTypes }),\n                icon: <BigWarningIcon />,\n                actions: [defaultOkAction],\n            };\n        }\n\n        if (\n            checkIsTranziitApiRequestError(errorAction.error) &&\n            checkIsTranziitApiErrorResponse(\n                errorAction.error,\n                TranziitApiRequestErrorSubTypeEnum.attachedPapers_unsupportedFileType,\n            )\n        ) {\n            const allowedTypes = errorAction.error?.response?.supportedFileTypes?.join(', ') || '';\n\n            return {\n                width: defaultWidthPx,\n                title: t('common:error-modal.documents-unsupported-file-type.title'),\n                message: t('common:error-modal.documents-unsupported-file-type.description', { allowedTypes }),\n                icon: <BigWarningIcon />,\n                actions: [defaultOkAction],\n            };\n        }\n\n        if (\n            checkIsTranziitApiRequestError(errorAction.error) &&\n            errorAction.error?.subType === TranziitApiRequestErrorSubTypeEnum.noRouteFound\n        ) {\n            return {\n                width: defaultWidthPx,\n                title: t('common:error-modal.no-route-found.title'),\n                message: t('common:error-modal.no-route-found.description'),\n                icon: <BigWarningIcon />,\n                actions: [defaultOkAction],\n            };\n        }\n\n        return {\n            width: defaultWidthPx,\n            title: t('common:error-modal.unexpected-error.title'),\n            message: t('common:error-modal.unexpected-error.description'),\n            icon: <BigWarningIcon />,\n            actions: [\n                defaultOkAction,\n                {\n                    children: t('common:error-modal.actions.contact-support'),\n                    theme: ButtonThemeEnum.transparent,\n                    testSelector: `${testSelector}_support`,\n                    onClick: () => {\n                        handleClose();\n\n                        if (window.openZendeskWidget) {\n                            window.openZendeskWidget();\n                        }\n                    },\n                },\n            ],\n        };\n    };\n\n    const modalDialogProps = firstErrorLog ? getModalDialogProps(firstErrorLog) : null;\n    const isNotBlockingError = firstErrorLog ? checkIsNotBlockingError(firstErrorLog) : false;\n\n    const isShowTraceId = featuresContext?.checkActiveClientFeature?.(ClientFeatureEnum.showTraceId);\n\n    const content = (\n        <>\n            {modalDialogProps && <ModalDialog {...modalDialogProps} />}\n            {isShowTraceId && (\n                <div className={cx('trace-id')}>\n                    {newErrorLogs.map((errorLog, errorIndex) => {\n                        return <ErrorTraceId errorLog={errorLog} key={errorIndex} />;\n                    })}\n                </div>\n            )}\n            {isShowErrorDetails && (\n                <div className={cx('logs')}>\n                    {newErrorLogs.map((errorLog, errorIndex) => {\n                        return <ErrorDetails errorLog={errorLog} key={errorIndex} />;\n                    })}\n                </div>\n            )}\n        </>\n    );\n\n    if (isNotBlockingError) {\n        return <div className={cx('background-error')}>{content}</div>;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={handleClose} testSelector={testSelector}>\n                {content}\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default ErrorModal;\n","import { MS_IN_DAY, MS_IN_HOUR } from 'common/utils/time';\n\nexport const TARGET_TICKS_VIEW_COUNT = 14;\n\nexport const DEFAULT_VIEW_MS = MS_IN_DAY * TARGET_TICKS_VIEW_COUNT;\n\nexport const MIN_VIEW_MS = MS_IN_HOUR;\nexport const MAX_VIEW_MS = DEFAULT_VIEW_MS;\n\nconst ZOOM_STEP_COUNT = 4;\n\nexport const ZOOM_STEP_MS = (MAX_VIEW_MS - MIN_VIEW_MS) / ZOOM_STEP_COUNT;\n","import { put, takeEvery } from 'redux-saga/effects';\nimport { checkError, extractErrorFromAction } from 'common/store/errors/utils';\nimport { AnyAction } from 'redux';\nimport { reAuthSaga } from 'common/store/auth/sagas';\nimport {\n    checkIsTranziitApiRequestError,\n    TranziitApiRequestErrorSubTypeEnum,\n} from 'common/utils/api/tranziit/errors/tranziit-api-errors';\nimport { ApiRequestErrorTypeEnum, checkIsApiRequestError } from 'common/utils/api/errors/api-request-error';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAlertTypeEnum, CommonAnyAlert } from 'common/components/toasts/AlertToastsManager/models';\nimport { AuthErrorTypeEnum, checkIsAuthApiError } from 'common/utils/api/auth/errors/auth-api-error';\n\nfunction* anyActionSaga(action: AnyAction): WrapGeneratorT<void> {\n    const isErrorAction = checkError(action.type);\n    if (!isErrorAction) {\n        return;\n    }\n\n    const actionError = extractErrorFromAction(action);\n\n    if (\n        (checkIsAuthApiError(actionError) && actionError?.type === AuthErrorTypeEnum.networkRequestFailed) ||\n        (checkIsApiRequestError(actionError) && actionError?.type === ApiRequestErrorTypeEnum.networkError)\n    ) {\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.networkError,\n                    data: {},\n                }),\n            ),\n        );\n        return;\n    }\n\n    // TODO start experiment access denied\n    // if (\n    //     checkIsUnauthorizedError(actionError) ||\n    //     (checkIsTranziitApiRequestError(actionError) &&\n    //         (actionError?.subType === TranziitApiRequestErrorSubTypeEnum.notAuthorizedUser ||\n    //             actionError?.subType === TranziitApiRequestErrorSubTypeEnum.notFoundUser ||\n    //             actionError?.subType === TranziitApiRequestErrorSubTypeEnum.notFoundCompany ||\n    //             actionError?.subType === TranziitApiRequestErrorSubTypeEnum.accessDeniedToApi))\n    // ) {\n    //     yield reAuthSaga();\n    // }\n\n    if (\n        checkIsTranziitApiRequestError(actionError) &&\n        (actionError?.subType === TranziitApiRequestErrorSubTypeEnum.notAuthorizedUser ||\n            actionError?.subType === TranziitApiRequestErrorSubTypeEnum.notFoundUser ||\n            actionError?.subType === TranziitApiRequestErrorSubTypeEnum.notFoundCompany)\n    ) {\n        yield reAuthSaga();\n    }\n    // TODO finish experiment access denied\n}\n\nfunction* errorsSaga(): WrapGeneratorT<void> {\n    yield takeEvery('*', anyActionSaga);\n}\n\nexport default errorsSaga;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\n\nimport styles from './HeaderSideBarLoader.scss';\nimport SideBarLayoutContext from 'common/layouts/LeftMenuLayout/SideBarLayout/contexts/side-bar-layout-context';\nimport LineLoader from 'common/components/LineLoader/LineLoader';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    isShow: boolean;\n};\n\nconst HeaderSideBarLoader: React.FC<PropsT> = React.memo((props) => {\n    const { className, isShow } = props;\n\n    const context = React.useContext(SideBarLayoutContext);\n\n    const headerHeightValue = context.headerHeight?.value || 0;\n\n    return (\n        <LineLoader\n            isShow={isShow}\n            className={cs(cx('line-loader'), className)}\n            style={{\n                top: `${headerHeightValue}px`,\n            }}\n        />\n    );\n});\n\nexport default HeaderSideBarLoader;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ActionOverlay from 'common/components/ActionOverlay/ActionOverlay';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\n\ntype PropsT = {};\n\nconst LockActionOnChangeForm: React.FC<PropsT> = React.memo((props) => {\n    const { children } = props;\n\n    const { t } = useTranslation();\n\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n\n    let tooltipMessage: React.ReactNode = null;\n\n    const hasFormChanges = !!remoteFormActionsContext?.remoteFormState?.hasChanges;\n    if (hasFormChanges) {\n        tooltipMessage = t('partner.actions.save-changes-first');\n    }\n\n    return (\n        <ActionOverlay\n            isActive={hasFormChanges}\n            tooltipNode={\n                <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                    {tooltipMessage}\n                </TooltipContent>\n            }\n        >\n            {children}\n        </ActionOverlay>\n    );\n});\n\nexport default LockActionOnChangeForm;\n","// extracted by mini-css-extract-plugin\nexport default {\"options\":\"DropdownSearchInput__options___loPaP\",\"option\":\"DropdownSearchInput__option___pDwtV\",\"option--isSelected\":\"DropdownSearchInput__option--isSelected___C6FZm\",\"option--isDisabled\":\"DropdownSearchInput__option--isDisabled___NV3fn\",\"search-input\":\"DropdownSearchInput__search-input___ivvgW\",\"search-input--isFocus\":\"DropdownSearchInput__search-input--isFocus___iv5lm\",\"search-input--isEmpty\":\"DropdownSearchInput__search-input--isEmpty___xJbB0\",\"search-input__wrap\":\"DropdownSearchInput__search-input__wrap___vhsZY\",\"search-input__icon\":\"DropdownSearchInput__search-input__icon___AjQtx\",\"search-input__icon--search\":\"DropdownSearchInput__search-input__icon--search___HTXRW\",\"search-input__icon--right-icon\":\"DropdownSearchInput__search-input__icon--right-icon___omjiP\",\"separator\":\"DropdownSearchInput__separator___P4LNI\",\"fadeIn\":\"DropdownSearchInput__fadeIn___SeNIp\",\"blinking\":\"DropdownSearchInput__blinking___trmsW\"};","import { RequestStatusT } from 'common/utils/request-status';\n\nexport const checkNeedRenderEmptyState = <T>(items: Array<T>, requestStatus: RequestStatusT) => {\n    const isLoaded = requestStatus?.ok || requestStatus?.error;\n    const isEmpty = !items.length;\n\n    return isEmpty && isLoaded;\n};\n","import {\n    TRAILERS_DICT_REQUEST_BEGIN,\n    TRAILERS_DICT_REQUEST_ERROR,\n    TRAILERS_DICT_REQUEST_SUCCESS,\n    TrailersDictActionT,\n    TrailersDictStateT,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\n\nconst initialState: TrailersDictStateT = {\n    trailersDict: null,\n    trailersDictRequest: requestStatus.initial,\n};\n\nexport default (state = initialState, action: TrailersDictActionT): TrailersDictStateT => {\n    switch (action.type) {\n        case TRAILERS_DICT_REQUEST_BEGIN: {\n            return {\n                ...state,\n                trailersDictRequest: requestStatus.loading,\n            };\n        }\n\n        case TRAILERS_DICT_REQUEST_SUCCESS: {\n            const { trailersDict } = action;\n\n            return {\n                ...state,\n                trailersDict,\n                trailersDictRequest: requestStatus.ok,\n            };\n        }\n\n        case TRAILERS_DICT_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                trailersDictRequest: requestStatus.setError(error),\n            };\n        }\n\n        default: {\n            return state;\n        }\n    }\n};\n","import * as React from 'react';\nimport isNumber from 'lodash/isNumber';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { ApiShipperContractLaneStatusT, ShipperContractLaneStatusEnum } from 'common/utils/api/models';\n\ntype PropsT = {\n    ordersLeft: number | null | undefined;\n    maxNumberOfOrders: number | null | undefined;\n    status: ApiShipperContractLaneStatusT | null | undefined;\n};\n\nconst THEME_BY_STATUS: Record<ApiShipperContractLaneStatusT, PillLabelThemeEnum> = {\n    [ShipperContractLaneStatusEnum.active]: PillLabelThemeEnum.charcoal,\n    [ShipperContractLaneStatusEnum.completed]: PillLabelThemeEnum.grey,\n    [ShipperContractLaneStatusEnum.expired]: PillLabelThemeEnum.grey,\n    [ShipperContractLaneStatusEnum.revoked]: PillLabelThemeEnum.grey,\n};\n\nconst DEFAULT_THEME = PillLabelThemeEnum.grey;\n\nconst OrdersCountCell: React.FC<PropsT> = React.memo((props) => {\n    const { ordersLeft, maxNumberOfOrders, status } = props;\n\n    if (!isNumber(ordersLeft) || !isNumber(maxNumberOfOrders)) {\n        return null;\n    }\n\n    const theme = status ? THEME_BY_STATUS[status] : DEFAULT_THEME;\n\n    return <PillLabel isSymmetrical theme={theme}>{`${ordersLeft}/${maxNumberOfOrders}`}</PillLabel>;\n});\n\nexport default OrdersCountCell;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PartnerMembersPage.scss';\nimport Members from 'common/layouts/Members/Members';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport { useSelector } from 'react-redux';\nimport { selectPartnerDetailsById } from 'broker-admin/store/partner/details/selectors';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst PartnerMembersPage: React.FC<PropsT> = React.memo(() => {\n    const { partnerId } = usePartnerContext();\n\n    const partnerDetailsById = useSelector(selectPartnerDetailsById);\n    const partnerDetails = partnerDetailsById[partnerId as PartnerIdT] || null;\n\n    return (\n        <ContentMargins>\n            <Members isLockedProfile={partnerDetails?.locked} />\n        </ContentMargins>\n    );\n});\n\nexport default PartnerMembersPage;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport DeleteIcon from 'common/icons/DeleteIcon';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\n\ntype PropsT = {\n    className?: string;\n    onClick: () => void;\n};\n\nconst DeleteWaypointTrigger: React.FC<PropsT> = React.memo((props) => {\n    const { className, onClick } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <Tooltip\n            position={TooltipPositionEnum.centerLeft}\n            theme={TooltipThemeEnum.black}\n            tooltipNode={\n                <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                    {t('broker-order-route-edit.waypoints-control.delete-point')}\n                </TooltipContent>\n            }\n        >\n            {() => (\n                <TransparentTrigger\n                    className={className}\n                    spaces=\"s\"\n                    onClick={onClick}\n                    leftIcon={<DeleteIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                    reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                />\n            )}\n        </Tooltip>\n    );\n});\n\nexport default DeleteWaypointTrigger;\n","// extracted by mini-css-extract-plugin\nexport default {\"trace-id\":\"TraceIdLabel__trace-id___opiXr\",\"fadeIn\":\"TraceIdLabel__fadeIn___l7gLM\",\"blinking\":\"TraceIdLabel__blinking___i_FgX\"};","import * as React from 'react';\nimport { useMemo } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './EventCell.scss';\nimport { formatDate, formatHumanReadableDate, formatHumanReadableFullDate } from 'common/utils/time';\nimport { LinkPropsT, LinkThemeEnum, LinkToT } from 'common/components/Link/Link';\nimport { useTranslation } from 'react-i18next';\nimport { clientConfig } from 'common/utils/client-config';\nimport TableCellLink from 'common/components/Table/cell-renderers/TableCellLink/TableCellLink';\n\ntype PropsT = {\n    userFullName: string | null | undefined;\n    userId: UserIdT | null | undefined;\n    // deprecated TODO remove\n    getUserLink?: (userId: UserIdT) => LinkToT;\n    openUserDetails?: (userId: UserIdT, isBrokerUser?: boolean) => void;\n    date: string | null | undefined;\n    isSmallFont?: boolean;\n    byBroker?: boolean;\n\n    // one of\n    isHumanReadableFullDate?: boolean;\n    isHumanReadableDate?: boolean;\n    dateFormat?: string;\n};\n\nconst cx = classNames.bind(styles);\n\nconst DATE_FORMAT = 'DD MMM YYYY';\n\nconst EventCell: React.FC<PropsT> = React.memo((props) => {\n    const {\n        userFullName,\n        userId,\n        getUserLink,\n        openUserDetails,\n        date,\n        dateFormat,\n        isSmallFont,\n        isHumanReadableDate,\n        isHumanReadableFullDate,\n        byBroker,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const dateNode = useMemo(() => {\n        if (!date) {\n            return null;\n        }\n\n        if (isHumanReadableDate) {\n            return formatHumanReadableDate(t, date);\n        }\n\n        if (isHumanReadableFullDate) {\n            return formatHumanReadableFullDate(t, date);\n        }\n\n        return formatDate(dateFormat || DATE_FORMAT, date);\n    }, [t, date, dateFormat, isHumanReadableDate, isHumanReadableFullDate]);\n\n    const linkProps: Partial<LinkPropsT> = {};\n    if (openUserDetails && userId) {\n        linkProps.onClick = () => openUserDetails(userId, byBroker);\n    }\n    if (getUserLink && userId) {\n        linkProps.to = getUserLink(userId);\n    }\n\n    let linkNode: React.ReactNode = null;\n\n    if (byBroker && !clientConfig.isBrokerProject) {\n        linkNode = <div className={cx('link')}>{t('common:broker-name')}</div>;\n    } else if (userId) {\n        linkNode = (\n            <TableCellLink {...linkProps} theme={LinkThemeEnum.boldBrandDark}>\n                {userFullName}\n            </TableCellLink>\n        );\n    }\n\n    return (\n        <>\n            <div\n                className={cx('wrap', {\n                    'wrap--isSmallFont': isSmallFont,\n                })}\n            >\n                {dateNode}\n                {linkNode}\n            </div>\n        </>\n    );\n});\n\nexport default EventCell;\n","import { TFunction } from 'i18next';\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkNotEmpty } from 'common/utils/form-validators';\nimport values from 'lodash/values';\n\nconst REQUIRED_FIELDS = values<FieldsEnum>([FieldsEnum.taxId, FieldsEnum.iban, FieldsEnum.bic]);\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","import * as React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames/bind';\nimport TabLabel from 'common/components/tabs/TabLabel/TabLabel';\nimport { TabsThemesEnum, TabLabelSizeEnum } from 'common/components/tabs/TabLabel/constants';\nimport map from 'lodash/map';\nimport { urlFactory as brokerUrlFactory } from 'broker-admin/utils/urls';\nimport history from 'common/utils/history';\nimport { logWarning } from 'common/utils/logger';\nimport styles from './BrokerUsersTab.scss';\nimport TabGroup from 'common/components/tabs/TabGroup/TabGroup';\n\nconst cx = classNames.bind(styles);\n\nexport enum TabEnum {\n    teams = 'teams',\n    users = 'users',\n}\n\nconst TAB_LABEL_T: Record<TabEnum, string> = {\n    [TabEnum.teams]: 'broker-users.tabs.teams',\n    [TabEnum.users]: 'broker-users.tabs.users',\n};\n\nconst tabOrders: TabEnum[] = [TabEnum.teams, TabEnum.users];\n\ntype PropsT = {\n    activeTab: TabEnum;\n};\n\nconst BrokerUsersTab: React.FC<PropsT> = React.memo(({ activeTab }) => {\n    const { t } = useTranslation();\n\n    return (\n        <TabGroup className={cx('tabs')} size={TabLabelSizeEnum.small}>\n            {map(tabOrders, (tab) => (\n                <TabLabel\n                    isCompact\n                    key={tab}\n                    size={TabLabelSizeEnum.small}\n                    theme={TabsThemesEnum.light}\n                    onClick={() => {\n                        if (tab === TabEnum.teams) {\n                            history.push(brokerUrlFactory.brokerUsersTeams());\n                        } else if (tab === TabEnum.users) {\n                            history.push(brokerUrlFactory.brokerUsers());\n                        } else {\n                            logWarning('unknown tab');\n                        }\n                    }}\n                    isActive={tab === activeTab}\n                >\n                    {t(TAB_LABEL_T[tab])}\n                </TabLabel>\n            ))}\n        </TabGroup>\n    );\n});\n\nexport default BrokerUsersTab;\n","import * as React from 'react';\nimport { useMemo } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ShipperContractLaneDetailsMap.scss';\nimport GoogleMapReact from 'google-map-react';\nimport { BOOTSTRAP_URL_KEYS, DEFAULT_CENTER, DEFAULT_ZOOM, MAP_OPTIONS } from 'common/store/constants';\nimport DestinationPinIcon from 'common/icons/DestinationPinIcon';\nimport OriginPinIcon from 'common/icons/OriginPinIcon';\nimport useGoogleMapsApiLoader from 'common/utils/hooks/maps/useGoogleMapsApiLoader';\nimport { useGoogleMapContext } from 'common/utils/hooks/maps/useGoogleMapContext';\nimport MapArea, { MapAreaThemeEnum } from 'common/components/maps/MapArea/MapArea';\nimport { M_IN_KM } from 'common/utils/distance';\nimport MapBound, { BoundPointT } from 'common/components/maps/MapBound/MapBound';\n\nconst cx = classNames.bind(styles);\n\nconst MAP_PIN_KEYS = {\n    origin: 'origin',\n    destination: 'destination',\n};\n\nexport type ShipperContractLaneAddressT = {\n    point: GeoPointT | null;\n    radiusKm: number | null;\n};\n\ntype PropsT = {\n    originAddress: ShipperContractLaneAddressT | null;\n    destinationAddress: ShipperContractLaneAddressT | null;\n};\n\nconst ShipperContractLaneDetailsMap: React.FC<PropsT> = React.memo((props) => {\n    const { originAddress, destinationAddress } = props;\n\n    const { googleMaps } = useGoogleMapContext();\n    const { onGoogleApiLoaded } = useGoogleMapsApiLoader({});\n\n    const destinationLatLngProps = useMemo(() => {\n        let latLngProps: GeoPointT | null = null;\n\n        if (!destinationAddress?.point) {\n            return latLngProps;\n        }\n\n        latLngProps = {\n            lat: destinationAddress.point.lat,\n            lng: destinationAddress.point.lng,\n        };\n\n        return latLngProps;\n    }, [destinationAddress]);\n\n    const originLatLngProps = useMemo(() => {\n        let latLngProps: GeoPointT | null = null;\n\n        if (!originAddress?.point) {\n            return latLngProps;\n        }\n\n        latLngProps = {\n            lat: originAddress.point.lat,\n            lng: originAddress.point.lng,\n        };\n\n        return latLngProps;\n    }, [originAddress]);\n\n    const allMapPoints = React.useMemo((): Array<BoundPointT> => {\n        return [\n            [originLatLngProps?.lat, originLatLngProps?.lng],\n            [destinationLatLngProps?.lat, destinationLatLngProps?.lng],\n        ];\n    }, [destinationLatLngProps, originLatLngProps]);\n\n    return (\n        <div className={cx('map')}>\n            <GoogleMapReact\n                defaultCenter={DEFAULT_CENTER}\n                defaultZoom={DEFAULT_ZOOM}\n                bootstrapURLKeys={BOOTSTRAP_URL_KEYS}\n                options={MAP_OPTIONS}\n                onGoogleApiLoaded={onGoogleApiLoaded}\n            >\n                {destinationLatLngProps && (\n                    <DestinationPinIcon\n                        key={MAP_PIN_KEYS.destination}\n                        className={cx('marker')}\n                        {...destinationLatLngProps}\n                    />\n                )}\n\n                {originLatLngProps && (\n                    <OriginPinIcon key={MAP_PIN_KEYS.origin} className={cx('marker')} {...originLatLngProps} />\n                )}\n            </GoogleMapReact>\n            {!!destinationAddress?.radiusKm && destinationLatLngProps && (\n                <MapArea\n                    key={`${MAP_PIN_KEYS.destination}-area`}\n                    map={googleMaps?.map}\n                    maps={googleMaps?.maps}\n                    theme={MapAreaThemeEnum.destinationArea}\n                    centerLat={destinationLatLngProps.lat}\n                    centerLon={destinationLatLngProps.lng}\n                    radiusM={destinationAddress.radiusKm * M_IN_KM}\n                />\n            )}\n            {!!originAddress?.radiusKm && originLatLngProps && (\n                <MapArea\n                    key={`${MAP_PIN_KEYS.origin}-area`}\n                    map={googleMaps?.map}\n                    maps={googleMaps?.maps}\n                    theme={MapAreaThemeEnum.originArea}\n                    centerLat={originLatLngProps.lat}\n                    centerLon={originLatLngProps.lng}\n                    radiusM={originAddress.radiusKm * M_IN_KM}\n                />\n            )}\n            <MapBound map={googleMaps?.map} maps={googleMaps?.maps} allMapPoints={allMapPoints} />\n        </div>\n    );\n});\n\nexport default ShipperContractLaneDetailsMap;\n","import {\n    COUNTRY_SETTINGS_DICT_REQUEST_BEGIN,\n    COUNTRY_SETTINGS_DICT_REQUEST_ERROR,\n    COUNTRY_SETTINGS_DICT_REQUEST_SUCCESS,\n    CountrySettingsDictActionT,\n    CountrySettingsDictStateT,\n} from './types';\nimport keyBy from 'lodash/keyBy';\nimport requestStatus from 'common/utils/request-status';\n\nconst initialState: CountrySettingsDictStateT = {\n    byCountryCode: {},\n    request: requestStatus.initial,\n};\n\nexport default (state = initialState, action: CountrySettingsDictActionT): CountrySettingsDictStateT => {\n    switch (action.type) {\n        case COUNTRY_SETTINGS_DICT_REQUEST_BEGIN: {\n            return {\n                ...state,\n                request: requestStatus.loading,\n            };\n        }\n\n        case COUNTRY_SETTINGS_DICT_REQUEST_SUCCESS: {\n            const { list } = action;\n\n            const byCountryCode = keyBy(list, 'country');\n\n            return {\n                ...state,\n                byCountryCode,\n                request: requestStatus.ok,\n            };\n        }\n\n        case COUNTRY_SETTINGS_DICT_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                request: requestStatus.setError(error),\n            };\n        }\n\n        default: {\n            return state;\n        }\n    }\n};\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PartnerTrailersPage.scss';\nimport TrailersPageLayout from 'common/layouts/TrailersPageLayout/TrailersPageLayout';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    onOpenUserDetails: (userId: UserIdT | null) => void;\n};\n\nconst PartnerTrailersPage: React.FC<PropsT> = React.memo((props) => {\n    const { onOpenUserDetails } = props;\n\n    return <TrailersPageLayout onOpenUserDetails={onOpenUserDetails} />;\n});\n\nexport default PartnerTrailersPage;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"OpenedDatePicker__wrap___gVbeY\",\"calendar\":\"OpenedDatePicker__calendar___xwhkJ\",\"fadeIn\":\"OpenedDatePicker__fadeIn___wdQ88\",\"blinking\":\"OpenedDatePicker__blinking___OKNCL\"};","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames/bind';\nimport styles from './FerryOnboardPointPicker.scss';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport BoatIcon from 'common/icons/BoatIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { formatTimeInterval } from 'common/utils/time';\nimport { useFormikContext } from 'formik';\nimport { FieldsEnum, FormValuesT, RoutePointFieldsEnum } from '../constants';\nimport { getFieldFormValue } from 'common/utils/form-values';\n\ntype PropsT = {\n    className?: string;\n    routePointIndex: number;\n};\n\nconst cx = classNames.bind(styles);\n\nconst FerryOnboardPointPicker: React.FC<PropsT> = React.memo((props) => {\n    const { routePointIndex } = props;\n\n    const { t } = useTranslation();\n\n    const formik = useFormikContext<FormValuesT>();\n\n    const locationFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.location}` as const;\n    const timeWindowFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.timeWindow}` as const;\n\n    const location = getFieldFormValue(formik.values, locationFieldName);\n    const timeWindow = getFieldFormValue(formik.values, timeWindowFieldName);\n\n    return (\n        <ReadOnlyField\n            icon={\n                <BoatIcon\n                    size={DEFAULT_ICON_SIZE}\n                    fillColor={StyleGuideColorsEnum.brandAccent}\n                    strokeColor={StyleGuideColorsEnum.brandDark}\n                />\n            }\n            label={t('broker-order-route-edit.fields.ferry-onboard.label')}\n            subLabel={\n                <PillLabel className={cx('time-interval')} isSymmetrical theme={PillLabelThemeEnum.charcoal}>\n                    {formatTimeInterval(timeWindow?.start, timeWindow?.end)}\n                </PillLabel>\n            }\n            value={location?.address}\n        />\n    );\n});\n\nexport default FerryOnboardPointPicker;\n","import {\n    AsyncRequestFactoryT,\n    useAsyncInitOptionsRequest,\n} from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-init-options-request';\nimport { useCallback } from 'react';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { OptionT } from '../CarriersSuggest';\nimport { TranziitApiResultT } from 'common/utils/api/tranziit/base-tranziit-api';\n\nexport const useCarrierSuggestOptions = (initCarrierIds: Array<CarrierIdT> | null) => {\n    const initRequestFactory: AsyncRequestFactoryT<OptionT> = useCallback(async () => {\n        if (!initCarrierIds?.length) {\n            return [null, null];\n        }\n\n        const promises = initCarrierIds.map((initCarrierId) => {\n            return brokerTranziitApi.fetchPartnerDetails(initCarrierId);\n        });\n\n        const results = await Promise.all(promises);\n\n        const resultOptions =\n            results?.reduce<Array<OptionT>>((acc, [, data]) => {\n                if (!data?.id) {\n                    return acc;\n                }\n\n                acc.push({\n                    id: data?.id,\n                    name: data?.name,\n                    number: data?.number,\n                    countryCode: data?.legalAddress?.country || null,\n                });\n\n                return acc;\n            }, []) || [];\n\n        const result: TranziitApiResultT<Array<OptionT>> = [null, resultOptions];\n\n        return result;\n    }, [initCarrierIds]);\n\n    const { initOptions, initRequestStatus } = useAsyncInitOptionsRequest<OptionT>({\n        initRequestFactory,\n    });\n\n    return {\n        initOptions,\n        initRequestStatus,\n    };\n};\n","import { ViewEventChannel, ViewEventHandlerT } from 'common/utils/view-event-channel';\nimport { useEffect } from 'react';\n\nexport const useChannelSubscribe = <EventT extends {}>(\n    channel: ViewEventChannel<EventT>,\n    handler: ViewEventHandlerT<EventT>,\n) => {\n    useEffect(() => {\n        channel.subscribe(handler);\n\n        return () => {\n            channel.unsubscribe(handler);\n        };\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [handler]);\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"paranja\":\"ParanjaSideBarLayout__paranja___Q3gOK\",\"fadeIn\":\"ParanjaSideBarLayout__fadeIn___D2stU\",\"blinking\":\"ParanjaSideBarLayout__blinking___Pip2t\"};","// extracted by mini-css-extract-plugin\nexport default {\"location\":\"AssignmentMap__location___EZmq9\",\"control\":\"AssignmentMap__control___Axm38\",\"loader\":\"AssignmentMap__loader___hLvga\",\"loader__container\":\"AssignmentMap__loader__container___yP7MP\",\"route-point-pin\":\"AssignmentMap__route-point-pin___b0Sm0\",\"fadeIn\":\"AssignmentMap__fadeIn___Bu4HU\",\"blinking\":\"AssignmentMap__blinking___s_EH8\"};","import * as React from 'react';\nimport { ApiInvoiceStatusT, InvoiceStatusEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    status: ApiInvoiceStatusT | null | undefined;\n};\n\nexport const STATUS_T_MAP: Record<ApiInvoiceStatusT, string> = {\n    [InvoiceStatusEnum.draft]: 'common:invoice-status.DRAFT',\n    [InvoiceStatusEnum.open]: 'common:invoice-status.OPEN',\n    [InvoiceStatusEnum.void]: 'common:invoice-status.VOID',\n    [InvoiceStatusEnum.paid]: 'common:invoice-status.PAID',\n    [InvoiceStatusEnum.uncollectible]: 'common:invoice-status.UNCOLLECTIBLE',\n};\n\nconst InvoiceStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return null;\n    }\n\n    return t(STATUS_T_MAP[status]);\n});\n\nexport default InvoiceStatus;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './CompletedPartnerShipperLaneContractCard.scss';\nimport { Trans } from 'react-i18next';\nimport ShipperContractLaneId from 'broker-admin/components/notification-cards/entities/ShipperContractLaneId/ShipperContractLaneId';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    id: string;\n};\n\nconst CompletedPartnerShipperLaneContractCard: React.FC<PropsT> = React.memo((props) => {\n    const { id } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"notifications.partner-shipper-contract-lane-completed\"\n                components={{\n                    id: <ShipperContractLaneId id={id} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default CompletedPartnerShipperLaneContractCard;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n    size: number;\n};\n\nconst TruckPickUpIcon: React.FC<PropsT> = (props) => {\n    const { size, className, fillColor, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\" className={className}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path fill={fillColor} d=\"M16 5v8l1 1v2h-6V5h5z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M15.97 1.045l.716.453c.079.05.126.135.126.225v10.134h.296c.623 0 1.129.483 1.129 1.08v2.775h.48c.157 0 .283.121.283.27v1.493c0 .149-.126.27-.282.27H17.5v.715c0 .298-.253.54-.565.54H15.44a.553.553 0 01-.565-.54v-.715L11 17.744V8.688h4.157v-2.66H11V2.74l2.465.001c.771 0 1.467.428 1.79 1.088l.063.145.213.55V1.27c0-.215.25-.343.438-.225zm-3.051 9.561c.312 0 .564.242.564.54v3.421c0 .299-.252.54-.564.54h-1.92v-4.5h1.92zm3.396 4.35h-.964a.522.522 0 01-.534-.51v-.012c0-.282.239-.51.534-.51h.964c.294 0 .533.228.533.51v.013c0 .281-.239.51-.533.51zM2.552 8.195h1.192v3.75c0 .413.338.75.75.75h3c.413 0 .75-.337.75-.75v-3.75h1.193c.667 0 1.005-.81.532-1.282L6.527 3.469a.747.747 0 00-1.058 0L2.027 6.912c-.473.472-.143 1.282.525 1.282zm4.942 6.056c.41 0 .744.331.75.739v1.955c0 .413-.337.75-.75.75h-3a.752.752 0 01-.75-.75V15c0-.412.338-.75.75-.75h3z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nTruckPickUpIcon.displayName = 'TruckPickUpIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\n/**\n *  @deprecated create/use ...Props class\n * */\nexport const getTruckPickUpIconProps = (\n    preset:\n        | 'default'\n        | 'selected'\n        | 'assignment-events'\n        | 'assignment-normal'\n        | 'assignment-selected'\n        | 'assignment-input-normal'\n        | 'assignment-input-selected',\n): PropsT => {\n    switch (preset) {\n        case 'selected': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.brandAccent,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        case 'assignment-normal': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.white,\n            };\n        }\n        case 'assignment-input-normal': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.white,\n                strokeColor: StyleGuideColorsEnum.light,\n            };\n        }\n        case 'assignment-events': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.white,\n            };\n        }\n        case 'assignment-selected': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.brandAccent,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        case 'assignment-input-selected': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.brandAccent,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        case 'default':\n        default: {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.white,\n                strokeColor: StyleGuideColorsEnum.light,\n            };\n        }\n    }\n};\n\nexport { storyProps };\nexport default TruckPickUpIcon;\n","import { FormikHelpers, FormikState } from 'formik';\nimport { FieldsEnum, FormValuesT } from '../constants';\nimport { useSelector } from 'react-redux';\nimport { selectReserve, selectReserveRequest } from 'common/store/order-creation/selectors';\nimport { useEffect } from 'react';\nimport find from 'lodash/find';\n\ntype FormikT = FormikState<FormValuesT> & FormikHelpers<FormValuesT>;\n\nexport const useOnlyAvailableLane = (formik: FormikT) => {\n    const reserve = useSelector(selectReserve);\n    const reserveRequest = useSelector(selectReserveRequest);\n\n    const selectedLaneId = formik.values[FieldsEnum.laneId];\n\n    useEffect(() => {\n        if (!reserveRequest.ok) {\n            return;\n        }\n\n        const isAvailableValue = !!find(reserve?.contractLanes, (lane) => {\n            return lane.id === selectedLaneId;\n        });\n\n        if (!isAvailableValue) {\n            formik.setFieldValue(FieldsEnum.laneId, null);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [reserveRequest, reserve]);\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"BrokerUserControl__option___vC4ZT\",\"count\":\"BrokerUserControl__count___y7I0O\",\"fadeIn\":\"BrokerUserControl__fadeIn___bqaiN\",\"blinking\":\"BrokerUserControl__blinking___udNKE\"};","import {\n    FETCH_PARTNER_DETAILS_REQUEST,\n    FETCH_PARTNER_DETAILS_REQUEST_BEGIN,\n    FETCH_PARTNER_DETAILS_REQUEST_ERROR,\n    FETCH_PARTNER_DETAILS_REQUEST_SUCCESS,\n    FetchPartnerDetailsActionT,\n    FetchPartnerDetailsBeginActionT,\n    FetchPartnerDetailsErrorActionT,\n    FetchPartnerDetailsSuccessActionT,\n    LOCK_PARTNER_REQUEST,\n    LOCK_PARTNER_REQUEST_BEGIN,\n    LOCK_PARTNER_REQUEST_ERROR,\n    LOCK_PARTNER_REQUEST_SUCCESS,\n    UPDATE_PARTNER_DETAILS_REQUEST,\n    UPDATE_PARTNER_DETAILS_REQUEST_BEGIN,\n    UPDATE_PARTNER_DETAILS_REQUEST_ERROR,\n    UPDATE_PARTNER_DETAILS_REQUEST_SUCCESS,\n    UpdatePartnerDetailsActionT,\n    UpdatePartnerDetailsBeginActionT,\n    UpdatePartnerDetailsErrorActionT,\n    UpdatePartnerDetailsSuccessActionT,\n    VERIFY_PARTNER_DETAILS_REQUEST,\n    VERIFY_PARTNER_DETAILS_REQUEST_BEGIN,\n    VERIFY_PARTNER_DETAILS_REQUEST_ERROR,\n    VERIFY_PARTNER_DETAILS_REQUEST_SUCCESS,\n    VerifyPartnerDetailsActionT,\n    VerifyPartnerDetailsBeginActionT,\n    VerifyPartnerDetailsErrorActionT,\n    VerifyPartnerDetailsSuccessActionT,\n    LockPartnerBeginActionT,\n    LockPartnerSuccessActionT,\n    LockPartnerErrorActionT,\n    LockPartnerActionT,\n    LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_BEGIN,\n    LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_ERROR,\n    LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_SUCCESS,\n    LINK_WITH_EXTERNAL_PLATFORM_PARTNER_REQUEST,\n    LinkExternalPlatformPartnerBeginActionT,\n    LinkExternalPlatformPartnerErrorActionT,\n    LinkExternalPlatformPartnerSuccessActionT,\n    LinkWithExternalPlatformPartnerActionT,\n    UNLINK_WITH_EXTERNAL_PLATFORM_PARTNER_REQUEST,\n    UnlinkWithExternalPlatformPartnerActionT,\n} from './types';\nimport { PartnerDetailsT } from './models';\n\nimport { AddressTypeT, ApiBrokerCompanyChangesT, PartnerTypeEnum } from 'common/utils/api/models';\n\nexport const fetchPartnerDetails = (companyId: CompanyIdT): FetchPartnerDetailsActionT => ({\n    type: FETCH_PARTNER_DETAILS_REQUEST,\n    companyId,\n});\n\nexport const fetchPartnerDetailsBegin = (): FetchPartnerDetailsBeginActionT => ({\n    type: FETCH_PARTNER_DETAILS_REQUEST_BEGIN,\n});\n\nexport const fetchPartnerDetailsSuccess = (\n    partnerDetails: PartnerDetailsT | null,\n): FetchPartnerDetailsSuccessActionT => ({\n    type: FETCH_PARTNER_DETAILS_REQUEST_SUCCESS,\n    partnerDetails,\n});\n\nexport const fetchPartnerDetailsError = (error: Error): FetchPartnerDetailsErrorActionT => ({\n    type: FETCH_PARTNER_DETAILS_REQUEST_ERROR,\n    error,\n});\n\nexport const updatePartnerDetails = ({\n    companyId,\n    partnerType,\n    partnerDetailsChanges,\n    externalBusinessPartnerId,\n    mainContactChanges,\n    teams,\n}: {\n    companyId: CompanyIdT;\n    partnerType: PartnerTypeEnum;\n    partnerDetailsChanges?: ApiBrokerCompanyChangesT;\n    externalBusinessPartnerId?: PartnerIdT | null;\n    mainContactChanges?: {\n        mainContactId: ContactIdT | null;\n        mainContactFullName: string | null;\n    };\n    teams?: TeamIdT[];\n}): UpdatePartnerDetailsActionT => ({\n    type: UPDATE_PARTNER_DETAILS_REQUEST,\n    partnerDetailsChanges,\n    externalBusinessPartnerId,\n    mainContactChanges,\n    partnerType,\n    companyId,\n    teams,\n});\n\nexport const updatePartnerDetailsBegin = (): UpdatePartnerDetailsBeginActionT => ({\n    type: UPDATE_PARTNER_DETAILS_REQUEST_BEGIN,\n});\n\nexport const updatePartnerDetailsSuccess = (partnerDetails: PartnerDetailsT): UpdatePartnerDetailsSuccessActionT => ({\n    type: UPDATE_PARTNER_DETAILS_REQUEST_SUCCESS,\n    partnerDetails,\n});\n\nexport const updatePartnerDetailsError = (error: Error): UpdatePartnerDetailsErrorActionT => ({\n    type: UPDATE_PARTNER_DETAILS_REQUEST_ERROR,\n    error,\n});\n\nexport const verifyPartnerDetails = (\n    companyId: CompanyIdT,\n    addressType: AddressTypeT,\n): VerifyPartnerDetailsActionT => ({\n    type: VERIFY_PARTNER_DETAILS_REQUEST,\n    isVerify: true,\n    companyId,\n    addressType,\n});\n\nexport const unVerifyPartnerDetails = (\n    companyId: CompanyIdT,\n    addressType: AddressTypeT,\n): VerifyPartnerDetailsActionT => ({\n    type: VERIFY_PARTNER_DETAILS_REQUEST,\n    isVerify: false,\n    companyId,\n    addressType,\n});\n\nexport const verifyPartnerDetailsBegin = (): VerifyPartnerDetailsBeginActionT => ({\n    type: VERIFY_PARTNER_DETAILS_REQUEST_BEGIN,\n});\n\nexport const verifyPartnerDetailsSuccess = (): VerifyPartnerDetailsSuccessActionT => ({\n    type: VERIFY_PARTNER_DETAILS_REQUEST_SUCCESS,\n});\n\nexport const verifyPartnerDetailsError = (error: Error): VerifyPartnerDetailsErrorActionT => ({\n    type: VERIFY_PARTNER_DETAILS_REQUEST_ERROR,\n    error,\n});\n\nexport const unlockPartner = (companyId: CompanyIdT): LockPartnerActionT => ({\n    type: LOCK_PARTNER_REQUEST,\n    isLock: false,\n    companyId,\n});\n\nexport const lockPartner = (companyId: CompanyIdT): LockPartnerActionT => ({\n    type: LOCK_PARTNER_REQUEST,\n    isLock: true,\n    companyId,\n});\n\nexport const lockPartnerBegin = (): LockPartnerBeginActionT => ({\n    type: LOCK_PARTNER_REQUEST_BEGIN,\n});\n\nexport const lockPartnerSuccess = (): LockPartnerSuccessActionT => ({\n    type: LOCK_PARTNER_REQUEST_SUCCESS,\n});\n\nexport const lockPartnerError = (error: Error): LockPartnerErrorActionT => ({\n    type: LOCK_PARTNER_REQUEST_ERROR,\n    error,\n});\n\nexport const linkWithExternalPlatformPartner = ({\n    businessPartnerId,\n    internalCompanyId,\n}: {\n    businessPartnerId: string;\n    internalCompanyId: CompanyIdT;\n}): LinkWithExternalPlatformPartnerActionT => ({\n    type: LINK_WITH_EXTERNAL_PLATFORM_PARTNER_REQUEST,\n    businessPartnerId,\n    internalCompanyId,\n});\n\nexport const unlinkWithExternalPlatformPartner = (\n    internalCompanyId: CompanyIdT,\n): UnlinkWithExternalPlatformPartnerActionT => ({\n    type: UNLINK_WITH_EXTERNAL_PLATFORM_PARTNER_REQUEST,\n    internalCompanyId,\n});\n\nexport const linkExternalPlatformPartnerBegin = (): LinkExternalPlatformPartnerBeginActionT => ({\n    type: LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_BEGIN,\n});\n\nexport const linkExternalPlatformPartnerSuccess = (): LinkExternalPlatformPartnerSuccessActionT => ({\n    type: LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_SUCCESS,\n});\n\nexport const linkExternalPlatformPartnerError = (error: Error): LinkExternalPlatformPartnerErrorActionT => ({\n    type: LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_ERROR,\n    error,\n});\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst DocIcon: React.FC<PropsT> = (props) => {\n    const { strokeColor } = props;\n\n    return (\n        <svg width={20} height={20} xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n            <path d=\"M13.979 2H2v16h2V4h8v4h4v10h2V6z\" fill={strokeColor} fillRule=\"evenodd\" />\n        </svg>\n    );\n};\n\nDocIcon.displayName = 'DocIcon';\n\nconst storyProps: PropsT = {\n    strokeColor: StyleGuideColorsEnum.gray,\n};\n\nexport { storyProps };\nexport default DocIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"placeholder\":\"ImageLoader__placeholder___kfE75\",\"fadeIn\":\"ImageLoader__fadeIn___pLvGR\",\"blinking\":\"ImageLoader__blinking___uhaxq\"};","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {\"loader\":\"RevokeContractConfirmation__loader___PXi4c\",\"fadeIn\":\"RevokeContractConfirmation__fadeIn___jkiiR\",\"blinking\":\"RevokeContractConfirmation__blinking___QcW2m\"};","export enum AssetTypeTabsEnum {\n    train = 'train',\n    truck = 'truck',\n    trailer = 'trailer',\n}\n","import { LogRecordActionEnum, LogRecordConverterT, LogRecordDescriptorT } from './models';\nimport { logWarning } from 'common/utils/logger';\n\nconst parseLogRecordType = <T extends LogRecordActionEnum>(\n    notification: any,\n): OverwriteT<LogRecordDescriptorT[T], { action: T }> => {\n    return notification;\n};\n\nexport const convertLogRecord: LogRecordConverterT = (apiLogRecord) => {\n    const baseNotification = {} as const;\n\n    switch (apiLogRecord.action) {\n        case LogRecordActionEnum.SHIPMENT_STATUS_CHANGED: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.SHIPMENT_STATUS_CHANGED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.SHIPMENT_CANCELED: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.SHIPMENT_CANCELED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.SHIPMENT_NO_SHOW: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.SHIPMENT_NO_SHOW>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.SHIPMENT_MISSED: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.SHIPMENT_MISSED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.SHIPMENT_UPDATED: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.SHIPMENT_UPDATED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.TOUR_SPOT_PLACED: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.TOUR_SPOT_PLACED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.TOUR_SPOT_EXPIRED: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.TOUR_SPOT_EXPIRED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.TOUR_SPOT_CANCELLED: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.TOUR_SPOT_CANCELLED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.WAYPOINT_UPDATED: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.WAYPOINT_UPDATED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.DOCUMENT_UPLOAD: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.DOCUMENT_UPLOAD>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.DOCUMENT_APPROVED: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.DOCUMENT_APPROVED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.DOCUMENT_REJECTED: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.DOCUMENT_REJECTED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.DOCUMENT_REVOKED: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.DOCUMENT_REVOKED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.DOCUMENT_UPDATED: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.DOCUMENT_UPDATED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.DOCUMENT_EXPIRATION_SOON: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.DOCUMENT_EXPIRATION_SOON>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.DOCUMENT_EXPIRED: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.DOCUMENT_EXPIRED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_PLACED: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.TRANSPORTATION_ORDER_PLACED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_STATUS_CHANGED: {\n            const parsedLogRecord =\n                parseLogRecordType<LogRecordActionEnum.TRANSPORTATION_ORDER_STATUS_CHANGED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_DECLINED: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.TRANSPORTATION_ORDER_DECLINED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_CANCELED: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.TRANSPORTATION_ORDER_CANCELED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_UPDATED: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.TRANSPORTATION_ORDER_UPDATED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_ASSETS_ASSIGNED: {\n            const parsedLogRecord =\n                parseLogRecordType<LogRecordActionEnum.TRANSPORTATION_ORDER_ASSETS_ASSIGNED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_ASSETS_UNASSIGNED: {\n            const parsedLogRecord =\n                parseLogRecordType<LogRecordActionEnum.TRANSPORTATION_ORDER_ASSETS_UNASSIGNED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_DRIVER_ASSIGNED: {\n            const parsedLogRecord =\n                parseLogRecordType<LogRecordActionEnum.TRANSPORTATION_ORDER_DRIVER_ASSIGNED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_DRIVER_UNASSIGNED: {\n            const parsedLogRecord =\n                parseLogRecordType<LogRecordActionEnum.TRANSPORTATION_ORDER_DRIVER_UNASSIGNED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_ASSETS: {\n            const parsedLogRecord =\n                parseLogRecordType<LogRecordActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_ASSETS>(\n                    apiLogRecord,\n                );\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_DRIVER: {\n            const parsedLogRecord =\n                parseLogRecordType<LogRecordActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_DRIVER>(\n                    apiLogRecord,\n                );\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.ORDER_ROUTE_UPDATED: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.ORDER_ROUTE_UPDATED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.TOUR_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER: {\n            const parsedLogRecord =\n                parseLogRecordType<LogRecordActionEnum.TOUR_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.TOUR_DELAYING: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.TOUR_DELAYING>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.TOUR_STATUS_CHANGED: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.TOUR_STATUS_CHANGED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.ORDER_CANCELED: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.ORDER_CANCELED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        case LogRecordActionEnum.ORDER_STATUS_CHANGED: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.ORDER_STATUS_CHANGED>(apiLogRecord);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n        default: {\n            const parsedLogRecord = parseLogRecordType<LogRecordActionEnum.UNKNOWN_ACTION>(apiLogRecord);\n\n            logWarning(`Not supported log: ${apiLogRecord.action}`);\n\n            return {\n                ...baseNotification,\n                ...parsedLogRecord,\n            };\n        }\n    }\n};\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    fetchShipperContractLaneDetails,\n    fetchShipperContractLaneDetailsBegin,\n    fetchShipperContractLaneDetailsError,\n    fetchShipperContractLaneDetailsSuccess,\n    revokeShipperContractLane,\n    updateShipperContractLane,\n    updateShipperContractLaneDetailsBegin,\n    updateShipperContractLaneDetailsError,\n    updateShipperContractLaneDetailsSuccess,\n} from './slice';\nimport {\n    FetchShipperContractLaneDetailsActionT,\n    RevokeShipperContractLaneDetailsActionT,\n    UpdateShipperContractLaneActionT,\n} from './types';\nimport { CompanyTypeEnum } from 'common/constants';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport shipperTranziitApi from 'shipper/utils/api/shipper-tranziit/api';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAlertTypeEnum, CommonAnyAlert } from 'common/components/toasts/AlertToastsManager/models';\nimport { selectShipperContractLaneDetailsState } from './selectors';\nimport { shipperContractLanesRefreshChannel } from 'common/store/shipper-contract-lanes/channels';\nimport { shipperContractLaneDetailsRefreshChannel } from './channels';\n\nfunction getFetchShipperContractLaneDetailsSaga(companyType: CompanyTypeEnum) {\n    return function* (action: FetchShipperContractLaneDetailsActionT): WrapGeneratorT<void> {\n        const { partnerId, shipperContractId, laneId, options } = action.payload;\n\n        const { fetchRequest }: ReReturnT<typeof selectShipperContractLaneDetailsState> = yield select(\n            selectShipperContractLaneDetailsState(shipperContractId),\n        );\n        if (!checkNeedRequest(fetchRequest, options)) {\n            return;\n        }\n\n        yield put(fetchShipperContractLaneDetailsBegin({ shipperContractId, laneId }));\n\n        let result: ReturnApiT<\n            | typeof shipperTranziitApi.fetchShipperContractLaneDetails\n            | typeof brokerTranziitApi.fetchShipperContractLaneDetails\n        >;\n        if (companyType === CompanyTypeEnum.shipper) {\n            result = yield shipperTranziitApi.fetchShipperContractLaneDetails(shipperContractId, laneId);\n        } else {\n            result = yield brokerTranziitApi.fetchShipperContractLaneDetails(partnerId, shipperContractId, laneId);\n        }\n\n        const [error, data] = result;\n\n        if (error) {\n            yield put(fetchShipperContractLaneDetailsError({ shipperContractId, laneId, error }));\n        } else {\n            yield put(fetchShipperContractLaneDetailsSuccess({ shipperContractId, laneId, data }));\n        }\n    };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getUpdateShipperContractLaneDetailsSaga(companyType: CompanyTypeEnum) {\n    return function* (action: UpdateShipperContractLaneActionT): WrapGeneratorT<void> {\n        const { partnerId, shipperContractId, laneId, detailsChanges } = action.payload;\n\n        yield put(updateShipperContractLaneDetailsBegin({}));\n\n        const result: ReturnApiT<typeof brokerTranziitApi.updateShipperContractLane> =\n            yield brokerTranziitApi.updateShipperContractLane(partnerId, shipperContractId, laneId, detailsChanges);\n        const [error] = result;\n\n        if (error) {\n            yield put(updateShipperContractLaneDetailsError({ error }));\n        } else {\n            yield put(updateShipperContractLaneDetailsSuccess({}));\n\n            yield put(\n                addAlert(\n                    new CommonAnyAlert({\n                        type: CommonAlertTypeEnum.shipperContractLaneUpdated,\n                        data: {},\n                    }),\n                ),\n            );\n        }\n\n        shipperContractLanesRefreshChannel.emit({});\n        shipperContractLaneDetailsRefreshChannel.emit({ shipperContractId, laneId });\n    };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getRevokeShipperContractLaneDetailsSaga(companyType: CompanyTypeEnum) {\n    return function* (action: RevokeShipperContractLaneDetailsActionT): WrapGeneratorT<void> {\n        const { partnerId, shipperContractId, laneId } = action.payload;\n\n        yield put(updateShipperContractLaneDetailsBegin({}));\n\n        const result: ReturnApiT<typeof brokerTranziitApi.revokeShipperContractLane> =\n            yield brokerTranziitApi.revokeShipperContractLane(partnerId, shipperContractId, laneId);\n        const [error] = result;\n\n        if (error) {\n            yield put(updateShipperContractLaneDetailsError({ error }));\n        } else {\n            yield put(updateShipperContractLaneDetailsSuccess({}));\n\n            yield put(\n                addAlert(\n                    new CommonAnyAlert({\n                        type: CommonAlertTypeEnum.shipperContractLaneRevoked,\n                        data: {},\n                    }),\n                ),\n            );\n        }\n\n        shipperContractLanesRefreshChannel.emit({});\n        shipperContractLaneDetailsRefreshChannel.emit({ shipperContractId, laneId });\n    };\n}\n\nfunction* shipperContractLaneDetailsSaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery(fetchShipperContractLaneDetails.type, getFetchShipperContractLaneDetailsSaga(companyType));\n    yield takeEvery(revokeShipperContractLane.type, getRevokeShipperContractLaneDetailsSaga(companyType));\n    yield takeEvery(updateShipperContractLane.type, getUpdateShipperContractLaneDetailsSaga(companyType));\n}\n\nexport { shipperContractLaneDetailsSaga };\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"EditableStringValueFormatter__inner___c5yWx\",\"value\":\"EditableStringValueFormatter__value___ASNxU\",\"fadeIn\":\"EditableStringValueFormatter__fadeIn___PwEPu\",\"blinking\":\"EditableStringValueFormatter__blinking___nh9WK\"};","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './SideBarLayout.scss';\nimport getScrollbarWidth from 'common/utils/get-scroll-bar-width';\nimport SideBarLayoutContext from 'common/layouts/LeftMenuLayout/SideBarLayout/contexts/side-bar-layout-context';\nimport debounce from 'lodash/debounce';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    testSelector?: string;\n    withoutScrollbar?: boolean;\n    isWide?: boolean;\n};\n\nconst COLD_TIME = 300;\n\nconst DEFAULT_TOP_PADDING = 20;\nconst DEFAULT_BOTTOM_PADDING = 30;\n\nconst SideBarLayout: React.FC<PropsT> = React.memo((props) => {\n    const { children, className, testSelector, withoutScrollbar, isWide } = props;\n\n    const containerRef = React.useRef<HTMLDivElement>(null);\n\n    const context = React.useContext(SideBarLayoutContext);\n\n    React.useEffect(() => {\n        const scrollBarWidth = getScrollbarWidth(containerRef?.current);\n\n        if (context.scrollBarWidth) {\n            context.scrollBarWidth.setValue(scrollBarWidth);\n        }\n\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [containerRef, children]);\n\n    const handleContainerScroll = (): void => {\n        if (context.scrollTop) {\n            context.scrollTop.setValue(containerRef?.current?.scrollTop || 0);\n        }\n    };\n\n    const footerHeightValue = context.footerHeight?.value || 0;\n    const headerHeightValue = context.headerHeight?.value || 0;\n\n    const paddingTopPx = isWide ? 0 : headerHeightValue + DEFAULT_TOP_PADDING;\n    const paddingBottomPx = isWide ? 0 : footerHeightValue + DEFAULT_BOTTOM_PADDING;\n\n    return (\n        <div\n            className={cs(\n                cx('content', {\n                    'content--without-scrollbar': withoutScrollbar,\n                    'content--is-wide': isWide,\n                }),\n                className,\n            )}\n            style={{\n                paddingTop: `${paddingTopPx}px`,\n                paddingBottom: `${paddingBottomPx}px`,\n            }}\n            ref={containerRef}\n            onScroll={debounce(handleContainerScroll, COLD_TIME)}\n            data-test-selector={`${testSelector}_sidebar-layout`}\n        >\n            {children}\n        </div>\n    );\n});\n\nexport default SideBarLayout;\n","import { ApiRFQDetailsT } from 'common/utils/api/models';\nimport { RFQDetailsT } from '../models';\nimport { getDateFromISO, MS_IN_SEC } from 'common/utils/time';\nimport isNumber from 'lodash/isNumber';\n\nexport default (apiRFQ: ApiRFQDetailsT): RFQDetailsT => {\n    return {\n        ...apiRFQ,\n        expireTime: isNumber(apiRFQ.secondsToExpire) ? apiRFQ.secondsToExpire * MS_IN_SEC + Date.now() : null,\n        points: apiRFQ.points.map((point) => {\n            return {\n                ...point,\n                fromDate: getDateFromISO(point.from),\n                toDate: getDateFromISO(point.to),\n            };\n        }),\n    };\n};\n","import * as React from 'react';\nimport SkeletonFormatter from 'design-system/components/InfoTable/formatters/SkeletonFormatter/SkeletonFormatter';\nimport SimpleTrailerTypeFormatter from 'common/components/InfoTable/formatters/SimpleTrailerTypeFormatter/SimpleTrailerTypeFormatter';\nimport { ApiTrailerDictTypeT } from 'common/utils/api/models';\nimport isNumber from 'lodash/isNumber';\nimport { useTrailersDict } from 'common/utils/hooks/useTrailersDict';\n\ntype PropsT = {\n    trailerDictId?: ApiTrailerDictTypeT['id'];\n};\n\nconst AsyncTrailerTypeFormatter: React.FC<PropsT> = React.memo((props) => {\n    const { trailerDictId } = props;\n\n    const { trailersDictById, trailersDictRequest } = useTrailersDict();\n    if (trailersDictRequest.loading) {\n        return <SkeletonFormatter />;\n    }\n\n    if (!isNumber(trailerDictId)) {\n        return null;\n    }\n\n    const trailerDictType = trailersDictById[trailerDictId] || null;\n\n    return <SimpleTrailerTypeFormatter trailerDictType={trailerDictType} />;\n});\n\nexport default AsyncTrailerTypeFormatter;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './AssetDropOffLocationPin.scss';\nimport { AssetTypeEnum, DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport isNumber from 'lodash/isNumber';\nimport LinkDropOffIcon from 'common/icons/LinkDropOffIcon';\nimport TruckDropOffIcon from 'common/icons/TruckDropOffIcon';\nimport TrailerDropOffIcon from 'common/icons/TrailerDropOffIcon';\nimport MapPin, { MapPinThemeEnum } from 'common/components/maps/MapPin/MapPin';\nimport IconWithNumber from 'common/components/IconWithNumber/IconWithNumber';\n\nconst cx = classNames.bind(styles);\n\nconst getIconColorsByTheme = (theme: MapPinThemeEnum) => {\n    if (theme === MapPinThemeEnum.charcoal) {\n        return {\n            fillColor: StyleGuideColorsEnum.transparent,\n            strokeColor: StyleGuideColorsEnum.white,\n        };\n    }\n\n    if (\n        theme === MapPinThemeEnum.blazeOrange ||\n        theme === MapPinThemeEnum.tomatoRed ||\n        theme === MapPinThemeEnum.brandDark\n    ) {\n        return {\n            fillColor: StyleGuideColorsEnum.transparent,\n            strokeColor: StyleGuideColorsEnum.white,\n        };\n    }\n\n    return {\n        fillColor: StyleGuideColorsEnum.transparent,\n        strokeColor: StyleGuideColorsEnum.brandDark,\n    };\n};\n\nconst getLinkIconColorsByTheme = (theme: MapPinThemeEnum) => {\n    if (theme === MapPinThemeEnum.charcoal) {\n        return {\n            strokeColor: StyleGuideColorsEnum.light,\n        };\n    }\n\n    if (\n        theme === MapPinThemeEnum.blazeOrange ||\n        theme === MapPinThemeEnum.tomatoRed ||\n        theme === MapPinThemeEnum.brandDark\n    ) {\n        return {\n            strokeColor: StyleGuideColorsEnum.white,\n        };\n    }\n\n    return {\n        strokeColor: StyleGuideColorsEnum.brandDark,\n    };\n};\n\ntype PropsT = {\n    className?: string;\n    lat: number | undefined;\n    lng: number | undefined;\n    assetType: AssetTypeEnum | null;\n    number?: number | null;\n    theme?: MapPinThemeEnum;\n};\n\nconst AssetDropOffLocationPin: React.FC<PropsT> = React.memo((props) => {\n    const { className, lat, lng, assetType, number } = props;\n\n    const theme = props.theme || MapPinThemeEnum.charcoal;\n\n    let iconNode: React.ReactElement | undefined;\n\n    if (!iconNode && !assetType) {\n        iconNode = <LinkDropOffIcon {...getLinkIconColorsByTheme(theme)} />;\n    }\n\n    if (!iconNode && assetType === AssetTypeEnum.trailer) {\n        iconNode = <TrailerDropOffIcon {...getIconColorsByTheme(theme)} size={DEFAULT_ICON_SIZE} />;\n    }\n\n    if (!iconNode && assetType === AssetTypeEnum.truck) {\n        iconNode = <TruckDropOffIcon {...getIconColorsByTheme(theme)} size={DEFAULT_ICON_SIZE} />;\n    }\n\n    if (!iconNode) {\n        return null;\n    }\n\n    const isShouldRenderNumber = isNumber(number);\n\n    return (\n        <MapPin\n            hasPaddings={!isShouldRenderNumber}\n            className={cs(cx('asset-tooltip'), className)}\n            lat={lat}\n            lng={lng}\n            theme={theme || MapPinThemeEnum.charcoal}\n        >\n            {isShouldRenderNumber ? <IconWithNumber number={number}>{iconNode}</IconWithNumber> : iconNode}\n        </MapPin>\n    );\n});\n\nexport default AssetDropOffLocationPin;\n","export enum FieldsEnum {\n    name = 'name',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.name]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import { parseSimpleNumber } from 'common/utils/input-parsers';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport isNumber from 'lodash/isNumber';\nimport { ContractDetailsChangesT } from 'common/store/carrier-contracts/models';\nimport moment from 'moment/moment';\n\nconst prepareChanges = (contractId: CarrierContractIdT | null, values: FormValuesT): ContractDetailsChangesT | null => {\n    const truckRateKm = parseSimpleNumber(values[FieldsEnum.truckRate]);\n    const tiltRateKm = parseSimpleNumber(values[FieldsEnum.tiltRate]);\n    const boxRateKm = parseSimpleNumber(values[FieldsEnum.boxRate]);\n    const boxExpectedKm = parseSimpleNumber(values[FieldsEnum.boxExpectedMileage]);\n    const tiltExpectedKm = parseSimpleNumber(values[FieldsEnum.tiltExpectedMileage]);\n    const truckExpectedKm = parseSimpleNumber(values[FieldsEnum.truckExpectedMileage]);\n    const rawExpiration = values[FieldsEnum.expiration];\n    const truckRateMode = values[FieldsEnum.truckRateMode];\n    const expiration = rawExpiration ? moment(rawExpiration).format('YYYY-MM-DD') : null;\n\n    if (\n        !expiration ||\n        !truckRateMode ||\n        !isNumber(truckRateKm) ||\n        !isNumber(tiltRateKm) ||\n        !isNumber(boxRateKm) ||\n        !isNumber(tiltExpectedKm) ||\n        !isNumber(truckExpectedKm) ||\n        !isNumber(boxExpectedKm)\n    ) {\n        return null;\n    }\n\n    return {\n        validTill: expiration,\n        number: values[FieldsEnum.number],\n        name: values[FieldsEnum.name],\n        truckRateMode,\n        truckRateKm,\n        tiltRateKm,\n        boxRateKm,\n        boxExpectedKm,\n        tiltExpectedKm,\n        truckExpectedKm,\n    };\n};\n\nexport default prepareChanges;\n","import * as React from 'react';\nimport { BrokerTeamShortT } from 'broker-admin/store/broker-teams/models';\nimport { useTeamActions, TeamActionsCallbacksT } from '../../hooks/actions';\nimport DropdownControl from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport MoreIcon from 'common/icons/MoreIcon';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\n\ntype PropsT = TeamActionsCallbacksT & {\n    brokerTeamShort: BrokerTeamShortT;\n};\n\nconst ControlsCell: React.FC<PropsT> = React.memo((props) => {\n    const { brokerTeamShort, onDelete } = props;\n\n    const actions = useTeamActions(brokerTeamShort, {\n        onDelete,\n    });\n\n    const fullTestSelector = 'team-row-controls';\n\n    return (\n        <DropdownControl\n            options={actions}\n            renderTrigger={(isActive, onClick) => (\n                <TransparentTrigger\n                    isPressed={isActive}\n                    onClick={onClick}\n                    leftIcon={<MoreIcon />}\n                    reflectionTheme={ReflectionThemeEnum.light}\n                    testSelector={`${fullTestSelector}-trigger`}\n                />\n            )}\n            testSelector={fullTestSelector}\n            overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n        />\n    );\n});\n\nexport default ControlsCell;\n","import {\n    FETCH_SYSTEM_SETTINGS_REQUEST,\n    FETCH_SYSTEM_SETTINGS_REQUEST_BEGIN,\n    FETCH_SYSTEM_SETTINGS_REQUEST_ERROR,\n    FETCH_SYSTEM_SETTINGS_REQUEST_SUCCESS,\n    FetchSystemSettingsActionT,\n    FetchSystemSettingsBeginActionT,\n    FetchSystemSettingsErrorActionT,\n    FetchSystemSettingsSuccessActionT,\n    UPDATE_SYSTEM_SETTINGS_REQUEST,\n    UPDATE_SYSTEM_SETTINGS_REQUEST_BEGIN,\n    UPDATE_SYSTEM_SETTINGS_REQUEST_ERROR,\n    UPDATE_SYSTEM_SETTINGS_REQUEST_SUCCESS,\n    UpdateSystemSettingsActionT,\n    UpdateSystemSettingsBeginActionT,\n    UpdateSystemSettingsErrorActionT,\n    UpdateSystemSettingsSuccessActionT,\n} from './types';\nimport { SystemSettingsChangesT, SystemSettingsT } from './models';\n\nexport const fetchSystemSettings = (options?: FetchOptionsT): FetchSystemSettingsActionT => ({\n    type: FETCH_SYSTEM_SETTINGS_REQUEST,\n    options,\n});\n\nexport const fetchSystemSettingsBegin = (): FetchSystemSettingsBeginActionT => ({\n    type: FETCH_SYSTEM_SETTINGS_REQUEST_BEGIN,\n});\n\nexport const fetchSystemSettingsSuccess = (data: SystemSettingsT | null): FetchSystemSettingsSuccessActionT => ({\n    type: FETCH_SYSTEM_SETTINGS_REQUEST_SUCCESS,\n    data,\n});\n\nexport const fetchSystemSettingsError = (error: Error): FetchSystemSettingsErrorActionT => ({\n    type: FETCH_SYSTEM_SETTINGS_REQUEST_ERROR,\n    error,\n});\n\nexport const updateSystemSettings = (settingsChanges: SystemSettingsChangesT): UpdateSystemSettingsActionT => ({\n    type: UPDATE_SYSTEM_SETTINGS_REQUEST,\n    settingsChanges,\n});\n\nexport const updateSystemSettingsBegin = (): UpdateSystemSettingsBeginActionT => ({\n    type: UPDATE_SYSTEM_SETTINGS_REQUEST_BEGIN,\n});\n\nexport const updateSystemSettingsSuccess = (): UpdateSystemSettingsSuccessActionT => ({\n    type: UPDATE_SYSTEM_SETTINGS_REQUEST_SUCCESS,\n});\n\nexport const updateSystemSettingsError = (error: Error): UpdateSystemSettingsErrorActionT => ({\n    type: UPDATE_SYSTEM_SETTINGS_REQUEST_ERROR,\n    error,\n});\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\n\nimport styles from './NotificationVerticalRowsLayout.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    children: React.ReactNode[];\n    className?: string;\n};\n\nconst NotificationVerticalRowsLayout: React.FC<PropsT> = React.memo((props) => {\n    const { children, className } = props;\n\n    return <div className={cs(cx('wrap'), className)}>{children}</div>;\n});\n\nexport default NotificationVerticalRowsLayout;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { SystemSettingsChangesT } from 'broker-admin/store/price-settings/system-settings/models';\n\nconst prepareApiSystemSettings = (formValues: FormValuesT): SystemSettingsChangesT => {\n    return {\n        SPOT_REQUEST_LIMIT: formValues[FieldsEnum.spotRequestLimit],\n        EXPIRES_SOON: formValues[FieldsEnum.expiresSoonAlert],\n    };\n};\n\nexport default prepareApiSystemSettings;\n","import React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ZoneText.scss';\nimport { RangeSelectorZoneThemeEnum } from '../constants';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    text: React.ReactNode;\n    containerRef: React.RefObject<HTMLDivElement>;\n    selectionRangeRef: React.RefObject<HTMLDivElement>;\n    theme: RangeSelectorZoneThemeEnum;\n    values: number[];\n};\n\nenum PositionEnum {\n    left = 'left',\n    center = 'center',\n    right = 'right',\n}\n\nconst PERMISSIBLE_ERROR = 2;\n\nconst ZoneText: React.FC<PropsT> = React.memo((props) => {\n    const { containerRef, selectionRangeRef, text, theme, values } = props;\n\n    const textRef = React.useRef<HTMLDivElement>(null);\n\n    const [position, setPosition] = React.useState(PositionEnum.center);\n\n    React.useEffect((): void => {\n        if (!textRef.current || !containerRef.current || !selectionRangeRef.current) {\n            setPosition(PositionEnum.center);\n            return;\n        }\n\n        const textNodeRect = textRef.current.getBoundingClientRect();\n        const containerNodeRect = containerRef.current.getBoundingClientRect();\n        const selectionRangeNodeRect = selectionRangeRef.current.getBoundingClientRect();\n\n        const couldPositionCenter = selectionRangeNodeRect.width > textNodeRect.width + PERMISSIBLE_ERROR;\n        if (couldPositionCenter) {\n            setPosition(PositionEnum.center);\n            return;\n        }\n\n        const isLeftOverlap = textNodeRect.left < containerNodeRect.left - PERMISSIBLE_ERROR;\n        if (isLeftOverlap) {\n            setPosition(PositionEnum.left);\n            return;\n        }\n\n        const isRightOverlap = textNodeRect.right > containerNodeRect.right + PERMISSIBLE_ERROR;\n        if (isRightOverlap) {\n            setPosition(PositionEnum.right);\n            return;\n        }\n\n        const couldPositionLeft =\n            containerNodeRect.right > selectionRangeNodeRect.left + textNodeRect.width + PERMISSIBLE_ERROR;\n        if (couldPositionLeft) {\n            setPosition(PositionEnum.left);\n        }\n\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [text, containerRef.current, textRef.current, selectionRangeRef.current, values]);\n\n    if (!text) {\n        return null;\n    }\n\n    return (\n        <div\n            className={cx('zone-title', {\n                [`zone-title--theme-${theme}`]: true,\n                [`zone-title--position-${position}`]: true,\n            })}\n            data-test-selector=\"range-selector-zone-text\"\n        >\n            <span ref={textRef}>{text}</span>\n        </div>\n    );\n});\n\nexport default ZoneText;\n","import React from 'react';\nimport styles from './TimeIntervalDurationPillLabel.scss';\nimport classNames from 'classnames/bind';\nimport { checkMidnightTime, getDateTime, getHours, getMinutes, getTimeRelativeStartDay } from 'common/utils/time';\nimport { useTranslation } from 'react-i18next';\nimport { isNonNil } from 'common/utils';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    i18nKey?: string | null;\n    timeWindow: TimeWindowT | null | undefined;\n    className?: string;\n    isDayRelative: boolean;\n};\n\nconst TimeIntervalDurationPillLabel: React.FC<PropsT> = (props) => {\n    const { timeWindow, className, isDayRelative, i18nKey } = props;\n\n    const { t } = useTranslation();\n\n    if (!timeWindow) {\n        return null;\n    }\n\n    const [start, end] = timeWindow;\n    const diff = timeWindow[1] - timeWindow[0];\n\n    const formatter = isDayRelative ? getTimeRelativeStartDay : getDateTime;\n\n    const hours = getHours(diff);\n    const formattedHours = hours\n        ? `${hours} ${t('common:hours', {\n              postProcess: 'interval',\n              count: hours,\n          })}`\n        : null;\n\n    const minutes = getMinutes(diff);\n    const formattedMinutes = minutes\n        ? `${minutes} ${t('common:minutes', {\n              postProcess: 'interval',\n              count: minutes,\n          })}`\n        : null;\n\n    const formattedDiff = [formattedHours, formattedMinutes].filter(isNonNil).join(' ');\n\n    const duration = `${formatter(start)} - ${checkMidnightTime(formatter(end))}`;\n\n    return (\n        <PillLabel isSymmetrical theme={PillLabelThemeEnum.charcoal} className={className}>\n            <span className={cx('text')}>\n                {i18nKey\n                    ? t(i18nKey, {\n                          duration,\n                          formattedDiff,\n                      })\n                    : `${duration} (${formattedDiff})`}\n            </span>\n        </PillLabel>\n    );\n};\n\nexport default TimeIntervalDurationPillLabel;\n","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\n\ntype PropsT = {\n    transportationOrderNumber: React.ReactNode;\n    carrierName: React.ReactNode;\n};\n\nconst TransportationOrderWasDeclinedCard: React.FC<PropsT> = React.memo((props) => {\n    const { transportationOrderNumber, carrierName } = props;\n\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey=\"common:notifications.transportation-order-was-declined\"\n                components={{\n                    transportationOrderNumber: (\n                        <NotificationEntityLabel isBold isUnderline text={transportationOrderNumber} />\n                    ),\n                    carrierName: <NotificationEntityLabel isBold text={carrierName} />,\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default TransportationOrderWasDeclinedCard;\n","import * as React from 'react';\n\nimport { TFunction } from 'i18next';\nimport { CompanyContactDetailsT } from 'common/store/members/models';\nimport { PermissionsT } from 'common/store/auth/models';\nimport { SpecialOptionEnum } from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { HeaderSidebarActionT } from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport EditIcon from 'common/icons/EditIcon';\nimport UpdateUserIcon from 'common/icons/UpdateUserIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport DeleteUserIcon from 'common/icons/DeleteUserIcon';\nimport DeleteIcon from 'common/icons/DeleteIcon';\nimport { UserStatusEnum } from 'common/utils/api/models';\nimport RestoreIcon from 'common/icons/RestoreIcon';\n\nenum ActionsEnum {\n    edit = 'edit',\n    changeRole = 'change-role',\n    deactivateUser = 'deactivate-user',\n    deleteContact = 'delete-contact',\n    restoreUser = 'restore-user',\n}\n\nconst getActions = (\n    permissions: PermissionsT,\n    contactDetails: CompanyContactDetailsT | null,\n): Array<ActionsEnum | null> => {\n    if (!contactDetails || !permissions.canEditTeamMembers) {\n        return [];\n    }\n\n    if (contactDetails.userStatus === UserStatusEnum.archived) {\n        return [ActionsEnum.restoreUser];\n    }\n\n    return [\n        ActionsEnum.edit,\n        ...(contactDetails?.userId\n            ? [ActionsEnum.changeRole, null, ActionsEnum.deactivateUser]\n            : [null, ActionsEnum.deleteContact]),\n    ];\n};\n\ntype ActionCallbacksT = {\n    onEditContact: (contactDetails: CompanyContactDetailsT) => void;\n    onChangeUserRole: (contactDetails: CompanyContactDetailsT) => void;\n    onDeactivateUser: (contactDetails: CompanyContactDetailsT) => void;\n    onRestoreUser: (contactDetails: CompanyContactDetailsT) => void;\n    onDeleteContact: (contactDetails: CompanyContactDetailsT) => void;\n};\n\nconst useActionOptions = (\n    t: TFunction,\n    permissions: PermissionsT,\n    contactDetails: CompanyContactDetailsT | null,\n    callbacks: ActionCallbacksT,\n): Array<HeaderSidebarActionT | SpecialOptionEnum> => {\n    if (!contactDetails) {\n        return [];\n    }\n\n    const actions = getActions(permissions, contactDetails);\n\n    const actionsMap: Record<ActionsEnum, HeaderSidebarActionT> = {\n        [ActionsEnum.edit]: {\n            label: (\n                <DropdownControlOptionLabel\n                    label={t('common:team-members.actions.edit')}\n                    icon={\n                        <EditIcon\n                            size={DEFAULT_ICON_SIZE}\n                            fillColor={StyleGuideColorsEnum.brandAccent}\n                            strokeColor={StyleGuideColorsEnum.brandDark}\n                        />\n                    }\n                />\n            ),\n            onSelect: () => callbacks.onEditContact(contactDetails),\n        },\n        [ActionsEnum.changeRole]: {\n            label: (\n                <DropdownControlOptionLabel\n                    label={t('common:team-members.actions.change-user-role')}\n                    icon={\n                        <UpdateUserIcon\n                            fillColor={StyleGuideColorsEnum.light}\n                            strokeColor={StyleGuideColorsEnum.slate}\n                        />\n                    }\n                />\n            ),\n            onSelect: () => callbacks.onChangeUserRole(contactDetails),\n        },\n        [ActionsEnum.deactivateUser]: {\n            label: (\n                <DropdownControlOptionLabel\n                    label={t('common:team-members.actions.deactivate-user')}\n                    icon={\n                        <DeleteUserIcon\n                            fillColor={StyleGuideColorsEnum.white}\n                            strokeColor={StyleGuideColorsEnum.tomatoRed}\n                        />\n                    }\n                />\n            ),\n            onSelect: () => callbacks.onDeactivateUser(contactDetails),\n        },\n        [ActionsEnum.restoreUser]: {\n            label: (\n                <DropdownControlOptionLabel\n                    icon={<RestoreIcon strokeColor={StyleGuideColorsEnum.slate} />}\n                    label={t('common:team-members.actions.restore-user')}\n                />\n            ),\n            onSelect: () => callbacks.onRestoreUser(contactDetails),\n        },\n        [ActionsEnum.deleteContact]: {\n            label: (\n                <DropdownControlOptionLabel\n                    label={t('common:team-members.actions.delete-contact')}\n                    icon={<DeleteIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                />\n            ),\n            onSelect: () => callbacks.onDeleteContact(contactDetails),\n        },\n    };\n\n    return actions.map((action) => {\n        if (action === null) {\n            return SpecialOptionEnum.separator;\n        }\n\n        return actionsMap[action];\n    });\n};\n\nexport { useActionOptions };\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkEmail, checkNotEmpty } from 'common/utils/form-validators';\n\nconst REQUIRED_FIELDS = [FieldsEnum.email, FieldsEnum.roles] as const;\n\nconst EMAILS_FIELDS = [FieldsEnum.email] as const;\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n        ...checkEmail(t, EMAILS_FIELDS, values),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","import * as React from 'react';\nimport FilterPills, { FilterPillsConfigT } from 'common/components/FilterPills/FilterPills';\nimport { useTranslation } from 'react-i18next';\nimport { FilterPillThemeEnum } from 'common/components/FilterPills/FilterPill/FilterPill';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from '../query-models';\n\ntype PropsT = {\n    isCompact?: boolean;\n    className?: string;\n    queryFilters: QueryFiltersT;\n    setQueryFilters: (queryFilters: QueryFiltersT) => void;\n};\n\nconst SelectedFilters: React.FC<PropsT> = React.memo((props) => {\n    const { isCompact, queryFilters, setQueryFilters } = props;\n\n    const { t } = useTranslation();\n\n    const filterPillsConfig = React.useMemo(\n        (): FilterPillsConfigT<QueryFiltersT> => [\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('common:shipper-contracts.filters.pills.text', {\n                        value: queryFilters[QueryFiltersKeysEnum.text],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.text],\n            },\n        ],\n        [t],\n    );\n\n    return (\n        <FilterPills<QueryFiltersT>\n            isCompact={isCompact}\n            queryFilters={queryFilters}\n            setQueryFilters={setQueryFilters}\n            config={filterPillsConfig}\n        />\n    );\n});\n\nexport default SelectedFilters;\n","import * as React from 'react';\nimport { useCallback, useContext, useEffect } from 'react';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport { useTranslation } from 'react-i18next';\nimport AccountIcon from 'common/icons/AccountIcon';\nimport { BrokerOrderDetailsT } from 'broker-admin/store/broker-order-details/models';\nimport { isNonNil } from 'common/utils';\nimport isNumber from 'lodash/isNumber';\nimport { getCurrentTimeOffsetMin, parseISOTimeZone } from 'common/utils/time';\nimport TimeZoneContext, {\n    TimeZoneEnum,\n    TimeZoneT,\n} from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/contexts/timezone-context';\nimport find from 'lodash/find';\nimport NumberIcon from 'common/icons/NumberIcon';\nimport { getPickupDeliveryWaypoints } from 'broker-admin/store/broker-order-details/utils/get-pickup-delivery-waypoints';\n\nexport type TimeZoneOptionT = {\n    label: React.ReactNode;\n    utcOffset: number;\n    timeZone: TimeZoneT;\n};\n\ntype PropsT = {\n    className?: string;\n    brokerOrderDetails: BrokerOrderDetailsT | null;\n    tourId: TourIdT | null;\n};\n\nconst TimeZoneDropdown: React.FC<PropsT> = React.memo((props) => {\n    const { className, brokerOrderDetails, tourId } = props;\n\n    const timeZoneContext = useContext(TimeZoneContext);\n    const timeZone = timeZoneContext?.value?.timeZone !== undefined ? timeZoneContext.value.timeZone : null;\n    const setTimeZoneValue = timeZoneContext?.setValue || null;\n\n    const userUTCOffsetMin = getCurrentTimeOffsetMin();\n    // init utcOffset (async user)\n    useEffect(() => {\n        const currentTimeZone = timeZoneContext?.value?.timeZone;\n\n        if (\n            currentTimeZone === TimeZoneEnum.accountTimezone &&\n            !isNumber(timeZoneContext?.value.utcOffsetMin) &&\n            isNumber(userUTCOffsetMin)\n        ) {\n            timeZoneContext?.setValue({\n                utcOffsetMin: userUTCOffsetMin,\n                timeZone: currentTimeZone,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [userUTCOffsetMin]);\n\n    const { t } = useTranslation();\n\n    const timeZoneOptions: Array<TimeZoneOptionT> = React.useMemo(() => {\n        const pickupDeliveryWaypoints = getPickupDeliveryWaypoints(brokerOrderDetails, tourId);\n\n        const waypointOptions = pickupDeliveryWaypoints.reduce<Array<TimeZoneOptionT>>((acc, waypoint, index) => {\n            const waypointUTCOffset = parseISOTimeZone(\n                waypoint?.correctedDateTimeFrom || waypoint?.originalDateTimeFrom,\n            );\n            if (!isNumber(waypointUTCOffset)) {\n                return acc;\n            }\n\n            const number = (waypoint.index || 0) + 1;\n            acc.push({\n                label: (\n                    <DropdownControlOptionLabel\n                        withoutPaddings\n                        icon={<NumberIcon number={number} fillColor={StyleGuideColorsEnum.charcoal} />}\n                        label={t('assignment.search-form.timezone-switcher.waypoint-timezone', {\n                            number,\n                        })}\n                    />\n                ),\n                timeZone: index,\n                utcOffset: waypointUTCOffset,\n            });\n\n            return acc;\n        }, []);\n\n        return [\n            ...waypointOptions,\n            isNumber(userUTCOffsetMin)\n                ? {\n                      label: (\n                          <DropdownControlOptionLabel\n                              withoutPaddings\n                              icon={\n                                  <AccountIcon\n                                      size={DEFAULT_ICON_SIZE}\n                                      fillColor={StyleGuideColorsEnum.gray}\n                                      strokeColor={StyleGuideColorsEnum.charcoal}\n                                  />\n                              }\n                              label={t('assignment.search-form.timezone-switcher.my-account-timezone')}\n                          />\n                      ),\n                      timeZone: TimeZoneEnum.accountTimezone,\n                      utcOffset: userUTCOffsetMin,\n                  }\n                : null,\n        ].filter(isNonNil);\n    }, [t, brokerOrderDetails, tourId, userUTCOffsetMin]);\n\n    const renderOption = useCallback((option: TimeZoneOptionT | undefined, placeholder: string | undefined) => {\n        if (!option) {\n            return placeholder;\n        }\n\n        return option.label;\n    }, []);\n\n    const getOptionValue = useCallback((option: TimeZoneOptionT) => {\n        return option.timeZone;\n    }, []);\n\n    const handleSelectOption = useCallback(\n        (selectedValue: TimeZoneOptionT['timeZone'] | null) => {\n            const selectedOption = find(timeZoneOptions, (option) => {\n                return option?.timeZone === selectedValue;\n            });\n\n            if (selectedOption && setTimeZoneValue) {\n                setTimeZoneValue({\n                    timeZone: selectedOption.timeZone,\n                    utcOffsetMin: selectedOption.utcOffset,\n                });\n            }\n        },\n        [timeZoneOptions, setTimeZoneValue],\n    );\n\n    return (\n        <DropdownInput<TimeZoneOptionT, TimeZoneOptionT['timeZone'] | null>\n            className={className}\n            selectedValue={timeZone}\n            options={timeZoneOptions}\n            onSelect={handleSelectOption}\n            renderOption={renderOption}\n            renderTriggerContent={renderOption}\n            getOptionValue={getOptionValue}\n            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n        />\n    );\n});\n\nexport default TimeZoneDropdown;\n","import React from 'react';\nimport {\n    AnySidebarDataT,\n    CommonSidebarDataT,\n    CommonSidebarMetaT,\n    SidebarQueryKeysEnum,\n    SidebarDataWithMetaT,\n} from 'common/layouts/SideBars/models';\nimport { useQueryParam } from 'use-query-params';\nimport { JSONArrayParam } from 'common/utils/query';\n\nconst TAIL_LIMIT = 5;\n\nexport const pushSidebarsArray = <T,>(array: Array<T>, data: T): Array<T> => {\n    return [...array, data].slice(-1 * TAIL_LIMIT);\n};\n\nexport const createOpenSidebarHook = <T extends AnySidebarDataT>(queryKey: SidebarQueryKeysEnum) => {\n    return () => {\n        const [sidebarsData, setSidebarsData] = useQueryParam<Array<SidebarDataWithMetaT<T>>>(queryKey, JSONArrayParam);\n\n        const openHandler = React.useCallback(\n            (data: T, meta?: CommonSidebarMetaT): void => {\n                const newSidebarsData = pushSidebarsArray(sidebarsData, {\n                    ...data,\n                    ...meta,\n                });\n\n                setSidebarsData(newSidebarsData);\n            },\n            // eslint-disable-next-line react-hooks/exhaustive-deps\n            [sidebarsData],\n        );\n\n        return openHandler;\n    };\n};\n\nexport const createCloseSidebarHook = <T extends AnySidebarDataT>(queryKey: SidebarQueryKeysEnum) => {\n    return () => {\n        const [sidebarsData, setSidebarsData] = useQueryParam<Array<SidebarDataWithMetaT<T>>>(queryKey, JSONArrayParam);\n\n        return React.useCallback(\n            (type: T['type']): void => {\n                const sidebarIndex = sidebarsData.findIndex((data) => data.type === type);\n\n                if (sidebarIndex === -1) {\n                    return;\n                }\n\n                setSidebarsData([...sidebarsData.slice(0, sidebarIndex), ...sidebarsData.slice(sidebarIndex + 1)]);\n            },\n            [setSidebarsData, sidebarsData],\n        );\n    };\n};\n\nexport const createToggleSidebarHook = <T extends AnySidebarDataT>(queryKey: SidebarQueryKeysEnum) => {\n    const useOpenSidebar = createOpenSidebarHook<T>(queryKey);\n    const useCloseSidebar = createCloseSidebarHook<T>(queryKey);\n\n    return (data: T, meta?: CommonSidebarMetaT) => {\n        const openSidebar = useOpenSidebar();\n        const closeSidebar = useCloseSidebar();\n        const isOpened = useCheckOpenedSidebar<T>(data.type);\n\n        const toggle = React.useCallback(() => {\n            if (isOpened) {\n                closeSidebar(data.type);\n                return;\n            }\n\n            openSidebar(data, meta);\n        }, [closeSidebar, data, isOpened, meta, openSidebar]);\n\n        return {\n            isOpened,\n            toggle,\n        };\n    };\n};\n\nexport const useOpenedSidebar = <T extends AnySidebarDataT>(type: T['type']): SidebarDataWithMetaT<T> | null => {\n    const [leftSidebarsData] = useQueryParam<Array<SidebarDataWithMetaT<T>>>(\n        SidebarQueryKeysEnum.leftSidebar,\n        JSONArrayParam,\n    );\n    const [rightSidebarsData] = useQueryParam<Array<SidebarDataWithMetaT<T>>>(\n        SidebarQueryKeysEnum.rightSidebar,\n        JSONArrayParam,\n    );\n\n    const openedSidebarData = React.useMemo(() => {\n        return (\n            leftSidebarsData.find((data) => data.type === type) ||\n            rightSidebarsData.find((data) => data.type === type) ||\n            null\n        );\n    }, [leftSidebarsData, rightSidebarsData, type]);\n\n    return openedSidebarData;\n};\n\nexport const useCheckOpenedSidebar = <T extends AnySidebarDataT>(type: T['type']): boolean => {\n    const openedSidebar = useOpenedSidebar<T>(type);\n\n    return !!openedSidebar;\n};\n\nexport const useOpenLeftSidebar = createOpenSidebarHook<CommonSidebarDataT>(SidebarQueryKeysEnum.leftSidebar);\n\nexport const useOpenRightSidebar = createOpenSidebarHook<CommonSidebarDataT>(SidebarQueryKeysEnum.rightSidebar);\n\nexport const useCloseLeftSidebar = createCloseSidebarHook<CommonSidebarDataT>(SidebarQueryKeysEnum.leftSidebar);\n\nexport const useCloseRightSidebar = createCloseSidebarHook<CommonSidebarDataT>(SidebarQueryKeysEnum.rightSidebar);\n\nexport const useToggleLeftSidebar = createToggleSidebarHook<CommonSidebarDataT>(SidebarQueryKeysEnum.leftSidebar);\n\nexport const useToggleRightSidebar = createToggleSidebarHook<CommonSidebarDataT>(SidebarQueryKeysEnum.rightSidebar);\n","// extracted by mini-css-extract-plugin\nexport default {\"contract-name--is-fallback\":\"RateSourceOption__contract-name--is-fallback___rUx_0\",\"fadeIn\":\"RateSourceOption__fadeIn___F2mPd\",\"blinking\":\"RateSourceOption__blinking___QQhLJ\"};","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { FETCH_SPOT_REQUESTS_PAGE_REQUEST, FetchSpotRequestsPageActionT } from './types';\nimport {\n    fetchSpotRequestsPageBegin,\n    fetchSpotRequestsPageError,\n    fetchSpotRequestsPageSuccess,\n    resetSpotRequests,\n} from './actions';\nimport { selectSpotRequestsPages, selectSpotRequestsQuery } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { checkIsSameQuery, checkShouldEmitChangePage } from 'common/utils/pagination/utils';\nimport spotBrokerTranziitApi from 'broker-admin/utils/api/spot-broker-tranziit/api';\nimport { spotRequestsPaginationChannel } from 'broker-admin/store/spot-requests/channels';\n\nfunction* fetchSpotRequestsSaga(action: FetchSpotRequestsPageActionT): WrapGeneratorT<void> {\n    const { pageNumber, query, options } = action;\n\n    const prevQuery: ReturnType<typeof selectSpotRequestsQuery> = yield select(selectSpotRequestsQuery);\n    const pages: ReturnType<typeof selectSpotRequestsPages> = yield select(selectSpotRequestsPages);\n    const isSameQuery = checkIsSameQuery(query, prevQuery);\n    const isNeedRequest = checkNeedRequest(pages[pageNumber]?.requestStatus, options);\n    if (isSameQuery && !isNeedRequest) {\n        return;\n    }\n    if (!isSameQuery) {\n        yield put(resetSpotRequests({ savingPageNumber: pageNumber }));\n    }\n\n    yield put(fetchSpotRequestsPageBegin(query, pageNumber));\n\n    const [error, response]: ReturnApiT<typeof spotBrokerTranziitApi.fetchSpotRequests> =\n        yield spotBrokerTranziitApi.fetchSpotRequests({\n            ...query,\n            page: pageNumber,\n        });\n\n    if (error) {\n        yield put(fetchSpotRequestsPageError(query, pageNumber, error));\n        return;\n    }\n\n    yield put(fetchSpotRequestsPageSuccess(query, pageNumber, response));\n\n    checkShouldEmitChangePage(pageNumber, response, spotRequestsPaginationChannel);\n}\n\nfunction* spotRequestsSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_SPOT_REQUESTS_PAGE_REQUEST, fetchSpotRequestsSaga);\n}\n\nexport default spotRequestsSaga;\n","import { ApiSubjectTypeT } from 'common/utils/api/models';\n\nexport type SubjectLogHashT = string;\n\nexport const getSubjectLogsKey = (subjectType: ApiSubjectTypeT, subjectId: SubjectIdT): SubjectLogHashT =>\n    `${subjectType}:${subjectId}`;\n","import * as React from 'react';\nimport { useMemo, useState } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './BrokerOrderRouteMap.scss';\nimport GoogleMapReact from 'google-map-react';\nimport { BOOTSTRAP_URL_KEYS, DEFAULT_CENTER, DEFAULT_ZOOM, MAP_OPTIONS } from 'common/store/constants';\nimport useGoogleMapsApiLoader from 'common/utils/hooks/maps/useGoogleMapsApiLoader';\nimport { useGoogleMapContext } from 'common/utils/hooks/maps/useGoogleMapContext';\nimport { useGoogleMapConfig } from 'common/utils/hooks/maps/useGoogleMapConfig';\nimport { StopTypeEnum } from 'common/utils/api/models';\nimport last from 'lodash/last';\nimport { AssetTypeEnum } from 'common/constants';\nimport MapRoute, { MapRouteThemeEnum } from 'common/components/maps/MapRoute/MapRoute';\nimport MapBound, { BoundPointT } from 'common/components/maps/MapBound/MapBound';\nimport { BrokerOrderDetailsT } from 'broker-admin/store/broker-order-details/models';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectRoutingGeometryStates } from 'common/store/routing-geometry/selectors';\nimport RouteSwitchDropdown, { RouteTypeEnum } from 'broker-admin/components/RouteSwitchDropdown/RouteSwitchDropdown';\nimport { useRouteGeometry } from 'common/utils/hooks/useRouteGeometry';\nimport { isNonNil } from 'common/utils';\nimport MapLoader from 'common/components/maps/MapLoader/MapLoader';\nimport { getAssetTrackHashByTransportOrderId } from 'common/store/asset-track/utils';\nimport { selectAssetTrackSliceState } from 'common/store/asset-track/selectors';\nimport AssetDropOffLocationPin from 'common/components/maps/pins/AssetDropOffLocationPin/AssetDropOffLocationPin';\nimport AssetPickUpLocationPin from 'common/components/maps/pins/AssetPickUpLocationPin/AssetPickUpLocationPin';\nimport { fetchTracksByTransportOrders } from 'common/store/asset-track/actions';\nimport { findTourActualTransportOrders } from 'broker-admin/store/broker-order-details/utils/find-actual-transport-order';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport Supercluster from 'supercluster';\nimport { PointGeoJsonPropertiesT } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderRouteMap/models';\nimport isNumber from 'lodash/isNumber';\nimport PointStackClusterPin from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderRouteMap/PointStackClusterPin/PointStackClusterPin';\nimport WaypointNumberPin from 'common/components/maps/pins/WaypointNumberPin/WaypointNumberPin';\nimport { MapPinThemeEnum } from 'common/components/maps/MapPin/MapPin';\nimport uniq from 'lodash/uniq';\nimport { TrackPointT } from 'common/store/asset-track/models';\nimport LastAssetWithNumberTrackPointPin from 'common/components/maps/pins/LastAssetWithNumberTrackPointPin/LastAssetWithNumberTrackPointPin';\nimport FerryLocationPin from 'common/components/maps/pins/FerryLocationPin/FerryLocationPin';\nimport { SwitchableView } from 'common/components/SwitchableView/SwitchableView';\nimport { MapControlsLayout } from '../../../../../common/components/maps/MapControlsLayout/MapControlsLayout';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    brokerOrderDetails: BrokerOrderDetailsT | null;\n};\n\nconst FEATURES_LIMIT = 99999;\nconst DEFAULT_OFFSET = 0;\n\nconst SUPERCLUSTER_SETTINGS: Supercluster.Options<PointGeoJsonPropertiesT, any> = {\n    radius: 100,\n    maxZoom: 22,\n};\n\ntype LastTruckTrackPointT = {\n    truckId: TruckIdT;\n    truckNumber: number;\n    lastPoint: TrackPointT;\n};\n\ntype LastTrailerTrackPointT = {\n    trailerId: TrailerIdT;\n    trailerNumber: number;\n    lastPoint: TrackPointT;\n};\n\nconst BrokerOrderRouteMap: React.FC<PropsT> = React.memo((props) => {\n    const { brokerOrderDetails } = props;\n\n    const dispatch = useDispatch();\n\n    const tours = useMemo(() => {\n        return brokerOrderDetails?.tours || [];\n    }, [brokerOrderDetails]);\n\n    const hasAnyTours = !!brokerOrderDetails?.tours?.length;\n\n    const tourAssets = useMemo(() => {\n        return (\n            brokerOrderDetails?.tours?.map((tour, tourIndex) => {\n                const { trailerTransportOrder, truckTransportOrder } = findTourActualTransportOrders(\n                    brokerOrderDetails?.transportationOrders,\n                    tour?.id,\n                );\n\n                const trailerTransportOrderId = trailerTransportOrder?.id || null;\n                const truckTransportOrderId = truckTransportOrder?.id || null;\n\n                return {\n                    trailerId: trailerTransportOrder?.trailer?.id || null,\n                    trailerTransportOrderId,\n                    trailerNumber: tourIndex + 1,\n                    trailer: trailerTransportOrder?.trailer || null,\n\n                    truckId: truckTransportOrder?.truck?.id || null,\n                    truckTransportOrderId,\n                    truckNumber: tourIndex + 1,\n                    truck: truckTransportOrder?.truck || null,\n\n                    isLinked:\n                        !!trailerTransportOrderId &&\n                        !!truckTransportOrderId &&\n                        trailerTransportOrderId === truckTransportOrderId,\n                };\n            }) || []\n        );\n    }, [brokerOrderDetails]);\n\n    const trackTransportOrderIds = useMemo(() => {\n        const transportOrderIds: Array<TransportOrderIdT | null> = [];\n\n        tourAssets.forEach((tourAsset) => {\n            transportOrderIds.push(tourAsset.truckTransportOrderId);\n            transportOrderIds.push(tourAsset.trailerTransportOrderId);\n        });\n\n        return uniq(transportOrderIds).filter(isNonNil);\n    }, [tourAssets]);\n\n    React.useEffect(() => {\n        dispatch(fetchTracksByTransportOrders(trackTransportOrderIds));\n    }, [dispatch, trackTransportOrderIds]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        dispatch(fetchTracksByTransportOrders(trackTransportOrderIds));\n    }, [dispatch, trackTransportOrderIds]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const assetTrackSliceState = useSelector(selectAssetTrackSliceState);\n    const tourAssetTracks = useMemo(() => {\n        return tourAssets.map((tourAssets) => {\n            const { truckTransportOrderId, truckId, trailerTransportOrderId, trailerId } = tourAssets;\n\n            const trailerHash = getAssetTrackHashByTransportOrderId(truckTransportOrderId, trailerId);\n            const truckHash = getAssetTrackHashByTransportOrderId(trailerTransportOrderId, truckId);\n\n            return {\n                trailer: assetTrackSliceState[trailerHash] || null,\n                truck: assetTrackSliceState[truckHash] || null,\n            };\n        });\n    }, [tourAssets, assetTrackSliceState]);\n\n    const hasCarrierRoute = React.useMemo(() => {\n        return tourAssets.some((tourAssets) => {\n            return !!tourAssets?.trailerTransportOrderId || !!tourAssets?.truckTransportOrderId;\n        });\n    }, [tourAssets]);\n\n    const availableRouteTypeSet = React.useMemo(() => {\n        const result = new Set<RouteTypeEnum>([]);\n        if (hasAnyTours) {\n            result.add(RouteTypeEnum.estimateCarrierRoute);\n        }\n        if (brokerOrderDetails) {\n            result.add(RouteTypeEnum.shipperRoute);\n        }\n        if (hasCarrierRoute) {\n            result.add(RouteTypeEnum.carrierRoute);\n        }\n        return result;\n    }, [hasAnyTours, brokerOrderDetails, hasCarrierRoute]);\n\n    const defaultRouteType = React.useMemo(() => {\n        if (availableRouteTypeSet.has(RouteTypeEnum.carrierRoute)) {\n            return RouteTypeEnum.carrierRoute;\n        }\n        if (availableRouteTypeSet.has(RouteTypeEnum.estimateCarrierRoute)) {\n            return RouteTypeEnum.estimateCarrierRoute;\n        }\n        if (availableRouteTypeSet.has(RouteTypeEnum.shipperRoute)) {\n            return RouteTypeEnum.shipperRoute;\n        }\n\n        return null;\n    }, [availableRouteTypeSet]);\n\n    const [selectedRouteType, setSelectedRouteType] = useState<RouteTypeEnum | null>(null);\n    const routeType = selectedRouteType || defaultRouteType;\n\n    React.useEffect(() => {\n        if (selectedRouteType && !availableRouteTypeSet.has(selectedRouteType)) {\n            setSelectedRouteType(null);\n        }\n    }, [selectedRouteType, availableRouteTypeSet]);\n\n    const { googleMaps } = useGoogleMapContext();\n    const { onGoogleApiLoaded } = useGoogleMapsApiLoader({});\n    const { config, onZoomAnimationEnd, onDragEnd } = useGoogleMapConfig();\n\n    const routePolylineIds = useMemo((): Array<PolylineIdT> => {\n        switch (routeType) {\n            case RouteTypeEnum.carrierRoute: {\n                return tours.flatMap((tour) => {\n                    return [\n                        tour?.polylineId,\n                        tour?.trailerToPickUpPolylineId,\n                        tour?.truckToTrailerPolylineId,\n                        tour?.dropTrailerPolylineId,\n                        tour?.dropTruckPolylineId,\n                    ].filter(isNonNil);\n                });\n            }\n            case RouteTypeEnum.estimateCarrierRoute: {\n                return tours.flatMap((tour) => {\n                    return [tour?.polylineId].filter(isNonNil);\n                });\n            }\n            case RouteTypeEnum.shipperRoute: {\n                return [brokerOrderDetails?.polylineId].filter(isNonNil);\n            }\n            default: {\n                return [];\n            }\n        }\n    }, [tours, routeType, brokerOrderDetails?.polylineId]);\n\n    useRouteGeometry(routePolylineIds);\n\n    const geometryStates = useSelector(selectRoutingGeometryStates(routePolylineIds));\n\n    const isLoadingPolylines = useMemo(() => {\n        return geometryStates.some((geometryState) => {\n            return geometryState?.requestStatus && geometryState?.requestStatus?.loading;\n        });\n    }, [geometryStates]);\n\n    const boundMapPoints = React.useMemo((): Array<BoundPointT> => {\n        const allWaypoints =\n            brokerOrderDetails?.tours?.flatMap((tour) => {\n                return tour?.waypoints || [];\n            }) || [];\n\n        return (\n            allWaypoints.map((waypoint): BoundPointT => {\n                return [waypoint?.address?.latitude, waypoint?.address?.longitude];\n            }) || []\n        );\n    }, [brokerOrderDetails]);\n\n    const isLoadingSomeTrucks = useMemo(() => {\n        return tourAssetTracks?.some((state) => {\n            return state?.truck?.requestStatus?.loading || state?.trailer?.requestStatus?.loading;\n        });\n    }, [tourAssetTracks]);\n    const isLoading = isLoadingPolylines || isLoadingSomeTrucks;\n\n    const lastTruckTrackPoints = useMemo(() => {\n        return tourAssets.reduce<Array<LastTruckTrackPointT>>((acc, tourAssets, index) => {\n            const { truckId, truckNumber } = tourAssets;\n\n            const tracks = tourAssetTracks[index];\n\n            const lastPoint = last(tracks?.truck?.points);\n            if (truckId && lastPoint) {\n                acc.push({\n                    truckId,\n                    truckNumber,\n                    lastPoint,\n                });\n            }\n\n            return acc;\n        }, []);\n    }, [tourAssetTracks, tourAssets]);\n\n    const lastTrailerTrackPoints = useMemo(() => {\n        return tourAssets.reduce<Array<LastTrailerTrackPointT>>((acc, tourAssets, index) => {\n            const { trailerId, trailerNumber, isLinked } = tourAssets;\n\n            // not show last point of linked trailer\n            if (isLinked) {\n                return acc;\n            }\n\n            const tracks = tourAssetTracks[index];\n\n            const lastPoint = last(tracks?.trailer?.points);\n            if (trailerId && lastPoint) {\n                acc.push({\n                    trailerId,\n                    trailerNumber,\n                    lastPoint,\n                });\n            }\n\n            return acc;\n        }, []);\n    }, [tourAssetTracks, tourAssets]);\n\n    const allGeoJSONs = React.useMemo(() => {\n        const geoJSONs: Array<Supercluster.PointFeature<PointGeoJsonPropertiesT>> = [];\n\n        const shouldShowPinNumbers = !!brokerOrderDetails?.tours?.length && brokerOrderDetails?.tours?.length > 1;\n\n        brokerOrderDetails?.tours.forEach(({ waypoints }, tourIndex) => {\n            const tourNumber = tourIndex + 1;\n\n            waypoints?.forEach((waypoint) => {\n                if (\n                    (waypoint.type === StopTypeEnum.pickupTruck ||\n                        waypoint.type === StopTypeEnum.pickupTrailer ||\n                        waypoint.type === StopTypeEnum.pickupRoadTrain ||\n                        waypoint.type === StopTypeEnum.dropTruck ||\n                        waypoint.type === StopTypeEnum.dropTrailer ||\n                        waypoint.type === StopTypeEnum.dropRoadTrain) &&\n                    routeType !== RouteTypeEnum.carrierRoute\n                ) {\n                    return;\n                }\n\n                const longitude = waypoint?.address?.longitude;\n                const latitude = waypoint?.address?.latitude;\n                if (isNumber(latitude) && isNumber(longitude)) {\n                    const geoJson: Supercluster.PointFeature<PointGeoJsonPropertiesT> = {\n                        type: 'Feature',\n                        geometry: {\n                            type: 'Point',\n                            coordinates: [longitude, latitude],\n                        },\n                        properties: {\n                            type: 'waypoint-point',\n                            waypoint,\n                            tourNumber: shouldShowPinNumbers ? tourNumber : null,\n                        },\n                    };\n\n                    geoJSONs.push(geoJson);\n                }\n            });\n        });\n\n        lastTruckTrackPoints.forEach((lastTruckTrackPoint) => {\n            const { truckNumber, truckId, lastPoint } = lastTruckTrackPoint;\n\n            geoJSONs.push({\n                type: 'Feature',\n                geometry: {\n                    type: 'Point',\n                    coordinates: [lastPoint.lng, lastPoint.lat],\n                },\n                properties: {\n                    type: 'truck-last-point',\n                    point: lastPoint,\n                    truckId,\n                    truckNumber: shouldShowPinNumbers ? truckNumber : null,\n                },\n            });\n        });\n\n        lastTrailerTrackPoints.forEach((lastTrailerTrackPoint) => {\n            const { trailerNumber, trailerId, lastPoint } = lastTrailerTrackPoint;\n\n            geoJSONs.push({\n                type: 'Feature',\n                geometry: {\n                    type: 'Point',\n                    coordinates: [lastPoint.lng, lastPoint.lat],\n                },\n                properties: {\n                    type: 'trailer-last-point',\n                    point: lastPoint,\n                    trailerId,\n                    trailerNumber: shouldShowPinNumbers ? trailerNumber : null,\n                },\n            });\n        });\n\n        return geoJSONs;\n    }, [brokerOrderDetails, lastTruckTrackPoints, lastTrailerTrackPoints, routeType]);\n\n    const allGeoJSONsClusterator = React.useMemo(() => {\n        const clusterator = new Supercluster<PointGeoJsonPropertiesT>(SUPERCLUSTER_SETTINGS);\n        clusterator.load(allGeoJSONs || []);\n        return clusterator;\n    }, [allGeoJSONs]);\n\n    const allGeoJSONsClusters = React.useMemo(() => {\n        if (config) {\n            const clusters = allGeoJSONsClusterator.getClusters(config.bounds, config.zoom);\n            return clusters;\n        }\n\n        return [];\n    }, [config, allGeoJSONsClusterator]);\n\n    const renderSinglePointFeature = (properties: PointGeoJsonPropertiesT) => {\n        switch (properties.type) {\n            case 'trailer-last-point': {\n                return (\n                    <LastAssetWithNumberTrackPointPin\n                        key={`trailer-last-point-${properties.trailerNumber}`}\n                        iconType={AssetTypeEnum.trailer}\n                        lat={properties.point.lat}\n                        lng={properties.point.lng}\n                        timestamp={properties.point.timestamp}\n                        number={properties.trailerNumber}\n                    />\n                );\n            }\n            case 'truck-last-point': {\n                return (\n                    <LastAssetWithNumberTrackPointPin\n                        key={`truck-last-point-${properties.truckNumber}`}\n                        iconType={AssetTypeEnum.truck}\n                        lat={properties.point.lat}\n                        lng={properties.point.lng}\n                        timestamp={properties.point.timestamp}\n                        number={properties.truckNumber}\n                    />\n                );\n            }\n            case 'waypoint-point': {\n                const { waypoint, tourNumber } = properties;\n\n                switch (waypoint.type) {\n                    case StopTypeEnum.pickupTruck: {\n                        const isVisited = !!waypoint?.driverLeftTimeStamp;\n\n                        return (\n                            <AssetPickUpLocationPin\n                                assetType={AssetTypeEnum.truck}\n                                key={`pickupTruck-${waypoint.id}`}\n                                className={cx('route-point-pin')}\n                                lat={waypoint.address?.latitude}\n                                lng={waypoint.address?.longitude}\n                                number={tourNumber}\n                                theme={isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal}\n                            />\n                        );\n                    }\n                    case StopTypeEnum.pickupTrailer: {\n                        const isVisited = !!waypoint?.driverLeftTimeStamp;\n\n                        return (\n                            <AssetPickUpLocationPin\n                                assetType={AssetTypeEnum.trailer}\n                                key={`pickupTrailer-${waypoint.id}`}\n                                className={cx('route-point-pin')}\n                                lat={waypoint.address?.latitude}\n                                lng={waypoint.address?.longitude}\n                                number={tourNumber}\n                                theme={isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal}\n                            />\n                        );\n                    }\n                    case StopTypeEnum.pickupRoadTrain: {\n                        const isVisited = !!waypoint?.driverLeftTimeStamp;\n\n                        return (\n                            <AssetPickUpLocationPin\n                                assetType={null}\n                                key={`pickupRoadTrain-${waypoint.id}`}\n                                className={cx('route-point-pin')}\n                                lat={waypoint.address?.latitude}\n                                lng={waypoint.address?.longitude}\n                                number={tourNumber}\n                                theme={isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal}\n                            />\n                        );\n                    }\n                    case StopTypeEnum.ferryOnboard:\n                    case StopTypeEnum.ferryDisembark: {\n                        const isVisited = !!waypoint?.driverLeftTimeStamp;\n\n                        return (\n                            <FerryLocationPin\n                                key={`route-point-${waypoint.id}`}\n                                className={cx('route-point-pin')}\n                                lng={waypoint?.address?.longitude}\n                                lat={waypoint?.address?.latitude}\n                                theme={isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal}\n                            />\n                        );\n                    }\n                    case StopTypeEnum.driveThrough:\n                    case StopTypeEnum.dropAndHook:\n                    case StopTypeEnum.pickupDeliveryShipment: {\n                        let theme = MapPinThemeEnum.charcoal;\n                        if (waypoint.type === StopTypeEnum.driveThrough) {\n                            theme = MapPinThemeEnum.gray;\n                        }\n\n                        const isVisited = !!waypoint?.driverLeftTimeStamp;\n                        if (isVisited) {\n                            theme = MapPinThemeEnum.brandDark;\n                        }\n\n                        return (\n                            <WaypointNumberPin\n                                key={`route-point-${waypoint.id}`}\n                                className={cx('route-point-pin')}\n                                theme={theme}\n                                lng={waypoint?.address?.longitude}\n                                lat={waypoint?.address?.latitude}\n                            >\n                                {(waypoint.index || 0) + 1}\n                            </WaypointNumberPin>\n                        );\n                    }\n                    case StopTypeEnum.dropTrailer: {\n                        const isVisited = !!waypoint?.driverLeftTimeStamp;\n\n                        return (\n                            <AssetDropOffLocationPin\n                                assetType={AssetTypeEnum.trailer}\n                                key={`dropTrailer-${waypoint.id}`}\n                                className={cx('route-point-pin')}\n                                lng={waypoint?.address?.longitude}\n                                lat={waypoint?.address?.latitude}\n                                number={tourNumber}\n                                theme={isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal}\n                            />\n                        );\n                    }\n                    case StopTypeEnum.dropTruck: {\n                        const isVisited = !!waypoint?.driverLeftTimeStamp;\n\n                        return (\n                            <AssetDropOffLocationPin\n                                assetType={AssetTypeEnum.truck}\n                                key={`dropTruckStop-${waypoint.id}`}\n                                className={cx('route-point-pin')}\n                                lng={waypoint?.address?.longitude}\n                                lat={waypoint?.address?.latitude}\n                                number={tourNumber}\n                                theme={isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal}\n                            />\n                        );\n                    }\n                    case StopTypeEnum.dropRoadTrain: {\n                        const isVisited = !!waypoint?.driverLeftTimeStamp;\n\n                        return (\n                            <AssetDropOffLocationPin\n                                assetType={null}\n                                key={`link-dropoff-${waypoint.id}`}\n                                className={cx('route-point-pin')}\n                                lng={waypoint?.address?.longitude}\n                                lat={waypoint?.address?.latitude}\n                                number={tourNumber}\n                                theme={isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal}\n                            />\n                        );\n                    }\n                    default: {\n                        return null;\n                    }\n                }\n            }\n            default: {\n                return null;\n            }\n        }\n    };\n\n    const handleClusterClick = React.useCallback(\n        (clusterId: number) => {\n            const { map, maps } = googleMaps;\n\n            if (!maps || !map) {\n                return;\n            }\n\n            const clusterFeatures = allGeoJSONsClusterator.getLeaves(clusterId, FEATURES_LIMIT, DEFAULT_OFFSET);\n\n            const bounds = new maps.LatLngBounds();\n\n            clusterFeatures.forEach((feature: Supercluster.PointFeature<{}>) => {\n                const point = new maps.LatLng(feature.geometry.coordinates[1], feature.geometry.coordinates[0]);\n\n                bounds.extend(point);\n            });\n\n            map.fitBounds(bounds);\n        },\n        [googleMaps, allGeoJSONsClusterator],\n    );\n\n    return (\n        <>\n            <GoogleMapReact\n                defaultCenter={DEFAULT_CENTER}\n                defaultZoom={DEFAULT_ZOOM}\n                bootstrapURLKeys={BOOTSTRAP_URL_KEYS}\n                options={MAP_OPTIONS}\n                onGoogleApiLoaded={onGoogleApiLoaded}\n                onDragEnd={onDragEnd}\n                onZoomAnimationEnd={onZoomAnimationEnd}\n                yesIWantToUseGoogleMapApiInternals\n            >\n                {allGeoJSONsClusters.map((cluster) => {\n                    if ('cluster' in cluster.properties) {\n                        const pointsFeatures = allGeoJSONsClusterator.getLeaves(\n                            cluster.properties.cluster_id,\n                            FEATURES_LIMIT,\n                            DEFAULT_OFFSET,\n                        );\n\n                        const clusterProperties = pointsFeatures.map((pointFeatures) => {\n                            return pointFeatures.properties;\n                        });\n\n                        return (\n                            <PointStackClusterPin\n                                key={`cluster-${cluster.properties.cluster_id}`}\n                                clusterId={cluster.properties.cluster_id}\n                                lng={cluster.geometry.coordinates[0]}\n                                lat={cluster.geometry.coordinates[1]}\n                                clusterProperties={clusterProperties}\n                                onClusterClick={handleClusterClick}\n                                withoutArrow={Boolean(config && config.zoom < 20)}\n                            />\n                        );\n                    }\n\n                    return renderSinglePointFeature(cluster.properties as PointGeoJsonPropertiesT);\n                })}\n            </GoogleMapReact>\n            {geometryStates?.map((geometryState, index) => (\n                <MapRoute\n                    key={`geometry-${index}`}\n                    map={googleMaps?.map}\n                    maps={googleMaps?.maps}\n                    geometryLibrary={googleMaps?.libraries?.geometry}\n                    polylines={geometryState.data}\n                    theme={MapRouteThemeEnum.trackFuture}\n                    zIndex={0}\n                />\n            ))}\n            {tourAssetTracks.map((tourAssetTracks, index) => {\n                const assets = tourAssets[index];\n                const { trailer, truck } = tourAssetTracks;\n\n                return (\n                    <>\n                        {!!truck?.points && (\n                            <MapRoute\n                                map={googleMaps?.map}\n                                maps={googleMaps?.maps}\n                                route={truck.points}\n                                theme={MapRouteThemeEnum.trackPast}\n                                zIndex={1}\n                            />\n                        )}\n                        {!assets?.isLinked && !!trailer?.points && (\n                            <MapRoute\n                                map={googleMaps?.map}\n                                maps={googleMaps?.maps}\n                                route={trailer.points}\n                                theme={MapRouteThemeEnum.trackPast}\n                                zIndex={1}\n                            />\n                        )}\n                    </>\n                );\n            })}\n            <MapBound map={googleMaps?.map} maps={googleMaps?.maps} allMapPoints={boundMapPoints} />\n            <MapControlsLayout.Container gap={2}>\n                <MapControlsLayout.Row gap={2}>\n                    <SwitchableView.MapTrigger />\n                    {!!routePolylineIds?.length && (\n                        <RouteSwitchDropdown\n                            className={cx('route-type-switcher')}\n                            value={routeType}\n                            onChange={setSelectedRouteType}\n                            isDisabledEstimateCarrierRoute={\n                                !availableRouteTypeSet.has(RouteTypeEnum.estimateCarrierRoute)\n                            }\n                            isDisabledShipperRoute={!availableRouteTypeSet.has(RouteTypeEnum.shipperRoute)}\n                            isDisabledCarrierRoute={!availableRouteTypeSet.has(RouteTypeEnum.carrierRoute)}\n                        />\n                    )}\n                </MapControlsLayout.Row>\n                <MapControlsLayout.Row isCenter>{isLoading && <MapLoader isUnWrap />}</MapControlsLayout.Row>\n            </MapControlsLayout.Container>\n        </>\n    );\n});\n\nexport default BrokerOrderRouteMap;\n","import { FieldsEnum, FormValuesT } from './constants';\n\nconst getInitialValues = (): FormValuesT => {\n    return {\n        [FieldsEnum.reason]: '',\n    };\n};\n\nexport default getInitialValues;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './IdCell.scss';\n\ntype PropsT = {\n    id: React.ReactNode;\n};\n\nconst cx = classNames.bind(styles);\n\nconst IdCell: React.FC<PropsT> = React.memo((props) => {\n    const { id } = props;\n\n    return <div className={cx('id')}>{id}</div>;\n});\n\nexport default IdCell;\n","import * as React from 'react';\nimport EuroSymbolIcon from 'common/icons/EuroSymbolIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { isNonNil } from 'common/utils';\nimport { useTranslation } from 'react-i18next';\nimport {\n    ApiBrokerAdditionalServiceT,\n    ApiCarrierAdditionalServiceT,\n    APIFuelDetailsT,\n    ApiTollByRoadTypeT,\n} from 'common/utils/api/models';\nimport isNumber from 'lodash/isNumber';\nimport classNames from 'classnames/bind';\nimport styles from './ShipperPriceOfferInfoTable.scss';\nimport PriceDetails, { PriceDetailT } from 'design-system/components/PriceDetails/PriceDetails';\nimport { useCommonPriceDetails } from 'common/components/price-details/hooks/common';\nimport { useAdditionalServicesList } from 'common/components/price-details/hooks/additional-services-list';\nimport FeeIcon from 'common/icons/FeeIcon';\nimport { checkShouldShowLayover } from 'common/components/price-details/utils';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { AppliedRuleT } from 'common/store/order-creation/models';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\nexport type ShipperPriceOfferInfoTablePropsT = {\n    className?: string;\n    hasContract?: boolean;\n    totalPriceLabel: React.ReactNode;\n    totalPriceTooltip?: React.ReactNode;\n    totalPrice: number | undefined;\n    lineHaulCost: number | undefined;\n    teamDriveCost: number | undefined;\n    travelHours: number | undefined;\n    tollCost: number | undefined;\n    co2: number | undefined;\n    tollByRoadType: ApiTollByRoadTypeT | undefined;\n    tranziitServiceFee: number | undefined;\n    layoverCost: number | undefined;\n    layoverSeconds: number | undefined;\n    layoverPaidHours: number | undefined;\n    fuelDetails: APIFuelDetailsT | null | undefined;\n    additionalServiceItems: Array<ApiBrokerAdditionalServiceT | ApiCarrierAdditionalServiceT> | null | undefined;\n    appliedRules?: Array<AppliedRuleT>;\n    shouldAlwaysRenderExpandTrigger?: boolean;\n};\n\nconst ShipperPriceOfferInfoTable: React.FC<ShipperPriceOfferInfoTablePropsT> = React.memo((props) => {\n    const {\n        className,\n        hasContract,\n        totalPrice,\n        totalPriceLabel,\n        totalPriceTooltip,\n        lineHaulCost,\n        teamDriveCost,\n        travelHours,\n        tollCost,\n        tollByRoadType,\n        tranziitServiceFee,\n        layoverCost,\n        layoverPaidHours,\n        layoverSeconds,\n        fuelDetails,\n        additionalServiceItems,\n        appliedRules,\n        shouldAlwaysRenderExpandTrigger,\n        co2,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const commonPriceDetails = useCommonPriceDetails();\n\n    const carrierAdditionalServicesList = useAdditionalServicesList({\n        additionalServiceItems,\n        isAllowCarrierServices: true,\n        isAllowBrokerServices: false,\n    });\n\n    const brokerAdditionalServicesList = useAdditionalServicesList({\n        additionalServiceItems,\n        isAllowCarrierServices: false,\n        isAllowBrokerServices: true,\n    });\n\n    const priceDetails: Array<PriceDetailT | null> = [\n        {\n            iconNode: <EuroSymbolIcon strokeColor={StyleGuideColorsEnum.gray} />,\n            title: totalPriceLabel,\n            price: totalPrice,\n            tooltipNode: totalPriceTooltip ? (\n                <TooltipContent theme={TooltipContentThemeEnum.black} width={200}>\n                    {totalPriceTooltip}\n                </TooltipContent>\n            ) : null,\n            list: hasContract\n                ? []\n                : [\n                      {\n                          ...commonPriceDetails.lineHaul,\n                          price: lineHaulCost,\n                          footerNode: commonPriceDetails.getAppliedRulesFooterNode(['LINE_HAUL'], appliedRules),\n                      },\n                      {\n                          ...commonPriceDetails.getRoadTaxesRow(co2),\n                          price: tollCost,\n                          footerNode: commonPriceDetails.getAppliedRulesFooterNode(['ROAD_TAXES'], appliedRules),\n                          list: commonPriceDetails.getRoadTaxesList(tollByRoadType, appliedRules),\n                      },\n                      {\n                          ...commonPriceDetails.getFuelCostRow(fuelDetails?.fuelType),\n                          price: fuelDetails?.totalCost,\n                          footerNode: commonPriceDetails.getAppliedRulesFooterNode(['FUEL'], appliedRules),\n                          list: commonPriceDetails.getFuelCostsByCountryList(fuelDetails?.byCountry),\n                      },\n                      isNumber(teamDriveCost)\n                          ? {\n                                ...commonPriceDetails.getTeamDrive({ travelHours }),\n                                price: teamDriveCost,\n                            }\n                          : null,\n                      checkShouldShowLayover(layoverSeconds, layoverCost)\n                          ? {\n                                ...commonPriceDetails.getLayoverCostRow(layoverSeconds, layoverPaidHours),\n                                price: layoverCost || 0,\n                            }\n                          : null,\n                      carrierAdditionalServicesList?.length\n                          ? {\n                                ...commonPriceDetails.getCarrierAdditionalServicesRow(additionalServiceItems),\n                                list: [\n                                    {\n                                        list: carrierAdditionalServicesList,\n                                    },\n                                ],\n                            }\n                          : null,\n                      brokerAdditionalServicesList?.length\n                          ? {\n                                ...commonPriceDetails.getBrokerAdditionalServicesRow(additionalServiceItems),\n                                list: [\n                                    {\n                                        list: brokerAdditionalServicesList,\n                                    },\n                                ],\n                            }\n                          : null,\n                      {\n                          iconNode: <FeeIcon strokeColor={StyleGuideColorsEnum.slate} />,\n                          title: t('common:order-details.columns.tranziit-service-fee-cost'),\n                          price: tranziitServiceFee,\n                          footerNode: commonPriceDetails.getAppliedRulesFooterNode(['SERVICE_FEE'], appliedRules),\n                      },\n                  ],\n        },\n    ].filter(isNonNil);\n\n    return (\n        <PriceDetails\n            className={className}\n            list={priceDetails}\n            shouldAlwaysRenderExpandTrigger={shouldAlwaysRenderExpandTrigger}\n        />\n    );\n});\n\nexport default ShipperPriceOfferInfoTable;\n","import React, { useContext } from 'react';\nimport ButtonGroup from 'design-system/components/ButtonGroup/ButtonGroup';\nimport ButtonGroupItem from 'design-system/components/ButtonGroup/ButtonGroupItem/ButtonGroupItem';\nimport { SwitchableViewContext } from '../context';\n\ntype PropsT = {\n    className?: string;\n};\n\nconst SwitchableViewTrigger: React.FC<PropsT> = ({ className }) => {\n    const { tabs, activeTabIndex, setActiveTabIndex } = useContext(SwitchableViewContext);\n\n    if (tabs?.length < 2) {\n        return null;\n    }\n\n    return (\n        <ButtonGroup className={className}>\n            {tabs.map((tab, index) => (\n                <ButtonGroupItem\n                    key={index}\n                    value={index}\n                    isActive={index === activeTabIndex}\n                    onClick={setActiveTabIndex}\n                >\n                    {tab.title}\n                </ButtonGroupItem>\n            ))}\n        </ButtonGroup>\n    );\n};\n\nexport default SwitchableViewTrigger;\n","import * as React from 'react';\n\ntype PropsT = {\n    isSelected?: boolean;\n    isDisabled?: boolean;\n    className?: string;\n};\n\nconst BigRadioIcon: React.FC<PropsT> = (props) => {\n    const { isSelected, isDisabled, className } = props;\n\n    if (isDisabled) {\n        return (\n            <svg\n                xmlns=\"http://www.w3.org/2000/svg\"\n                xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n                width=\"30\"\n                height=\"30\"\n                viewBox=\"0 0 30 30\"\n                className={className}\n            >\n                <defs>\n                    <rect id=\"po7krle2xa\" width=\"30\" height=\"30\" x=\"0\" y=\"0\" rx=\"15\" />\n                </defs>\n                <g fill=\"none\" fillRule=\"evenodd\">\n                    <mask id=\"hy0vxgn9bb\" fill=\"#fff\">\n                        <use xlinkHref=\"#po7krle2xa\" />\n                    </mask>\n                    <use fill=\"#FFF\" xlinkHref=\"#po7krle2xa\" />\n                    <rect\n                        width=\"28\"\n                        height=\"28\"\n                        x=\"1\"\n                        y=\"1\"\n                        fill=\"#E2E5ED\"\n                        fillOpacity=\"0.3\"\n                        stroke=\"#E2E5ED\"\n                        strokeLinejoin=\"round\"\n                        strokeWidth=\"2\"\n                        rx=\"14\"\n                    />\n                    {isSelected && <circle cx=\"15\" cy=\"15\" r=\"6\" fill=\"#9EA0A5\" mask=\"url(#hy0vxgn9bb)\" />}\n                    <path fill=\"#BCBCBC\" d=\"M0 0h30v30H0z\" mask=\"url(#hy0vxgn9bb)\" opacity=\"0.25\" />\n                </g>\n            </svg>\n        );\n    }\n\n    if (isSelected) {\n        return (\n            <svg\n                xmlns=\"http://www.w3.org/2000/svg\"\n                xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n                width=\"30\"\n                height=\"30\"\n                viewBox=\"0 0 30 30\"\n                className={className}\n            >\n                <defs>\n                    <rect id=\"skzwne2zwa\" width=\"30\" height=\"30\" x=\"0\" y=\"0\" rx=\"15\" />\n                </defs>\n                <g fill=\"none\" fillRule=\"evenodd\">\n                    <use fill=\"#8ABA2E\" xlinkHref=\"#skzwne2zwa\" />\n                    <use fill=\"#000\" fillOpacity=\"0.1\" xlinkHref=\"#skzwne2zwa\" />\n                    <circle cx=\"15\" cy=\"15\" r=\"6\" fill=\"#FFF\" />\n                </g>\n            </svg>\n        );\n    }\n\n    return (\n        <svg\n            xmlns=\"http://www.w3.org/2000/svg\"\n            xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n            width=\"30\"\n            height=\"30\"\n            viewBox=\"0 0 30 30\"\n            className={className}\n        >\n            <defs>\n                <rect id=\"aa2nmlk0ha\" width=\"30\" height=\"30\" x=\"0\" y=\"0\" rx=\"15\" />\n            </defs>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <use fill=\"#FFF\" xlinkHref=\"#aa2nmlk0ha\" />\n                <rect\n                    width=\"28\"\n                    height=\"28\"\n                    x=\"1\"\n                    y=\"1\"\n                    fill=\"#E2E5ED\"\n                    fillOpacity=\"0.3\"\n                    stroke=\"#E2E5ED\"\n                    strokeLinejoin=\"round\"\n                    strokeWidth=\"2\"\n                    rx=\"14\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nBigRadioIcon.displayName = 'BigRadioIcon';\n\nconst storyProps: PropsT = {\n    isSelected: true,\n    isDisabled: false,\n};\n\nexport { storyProps };\nexport default BigRadioIcon;\n","import { combineReducers } from 'redux';\n\nimport detailsReducer from './details/reducer';\nimport RFQStatsReducer from './rfq-stats/reducer';\n\nimport { PartnerDetailsStateT } from './details/types';\nimport { RFQStatsStateT } from './rfq-stats/types';\n\nexport default combineReducers({\n    details: detailsReducer,\n    rfqStats: RFQStatsReducer,\n});\n\nexport type PartnerStateT = {\n    details: PartnerDetailsStateT;\n    rfqStats: RFQStatsStateT;\n};\n","import { FieldsEnum, FormValuesT } from './constants';\n\nconst getInitialValues = (): FormValuesT => {\n    return {\n        [FieldsEnum.reason]: '',\n    };\n};\n\nexport default getInitialValues;\n","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport { DESTROY_SESSION } from 'common/store/auth/types';\nimport requestStatus from 'common/utils/request-status';\nimport { initialAssetTeleportItemState, type AssetItemStateT, type AssetsStateT, type HashT } from './models';\n\nconst initialState: AssetsStateT = {};\n\nconst ensureItem = (state: AssetsStateT, assetId: HashT): AssetItemStateT => {\n    if (!state[assetId]) {\n        state[assetId] = { ...initialAssetTeleportItemState };\n    }\n    return state[assetId];\n};\n\nexport const assetsSlice = createSlice({\n    name: 'assets',\n    initialState,\n    reducers: {\n        validateAssetTeleport: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                assetId: HashT;\n                options?: FetchOptionsT;\n            }>,\n        ) => {\n            // handled by saga\n        },\n        validateAssetTeleportBegin: (state, action: PayloadAction<{ assetId: HashT }>) => {\n            const { assetId } = action.payload;\n            const item = ensureItem(state, assetId);\n            item.validateTeleportStatus = requestStatus.loading;\n        },\n        validateAssetTeleportSuccess: (\n            state,\n            action: PayloadAction<{ assetId: HashT; data: Api2.Definitions.TeleportAsset }>,\n        ) => {\n            const { assetId, data } = action.payload;\n            const item = ensureItem(state, assetId);\n            item.validateTeleport = data;\n            item.validateTeleportStatus = requestStatus.ok;\n        },\n        validateAssetTeleportError: (state, action: PayloadAction<{ assetId: HashT; error: Error }>) => {\n            const { assetId, error } = action.payload;\n            const item = ensureItem(state, assetId);\n            item.validateTeleportStatus = requestStatus.setError(error);\n        },\n\n        executeAssetTeleport: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{ assetId: HashT; teleportLinkedAsset?: boolean }>,\n        ) => {\n            // handled by saga\n        },\n        executeAssetTeleportBegin: (state, action: PayloadAction<{ assetId: HashT }>) => {\n            const { assetId } = action.payload;\n            const item = ensureItem(state, assetId);\n            item.executeTeleportStatus = requestStatus.loading;\n        },\n        executeAssetTeleportSuccess: (state, action: PayloadAction<{ assetId: HashT }>) => {\n            const { assetId } = action.payload;\n            const item = ensureItem(state, assetId);\n            item.executeTeleportStatus = requestStatus.ok;\n        },\n        executeAssetTeleportError: (state, action: PayloadAction<{ assetId: HashT; error: Error }>) => {\n            const { assetId, error } = action.payload;\n            const item = ensureItem(state, assetId);\n            item.executeTeleportStatus = requestStatus.setError(error);\n        },\n\n        resetAssetTeleportItem: (state, action: PayloadAction<{ assetId: HashT }>) => {\n            const { assetId } = action.payload;\n            delete state[assetId];\n        },\n    },\n    extraReducers: (builder) => {\n        builder.addCase(DESTROY_SESSION, () => initialState);\n    },\n});\n\nexport const {\n    validateAssetTeleport,\n    validateAssetTeleportBegin,\n    validateAssetTeleportSuccess,\n    validateAssetTeleportError,\n    executeAssetTeleport,\n    executeAssetTeleportBegin,\n    executeAssetTeleportSuccess,\n    executeAssetTeleportError,\n    resetAssetTeleportItem,\n} = assetsSlice.actions;\n\nexport default assetsSlice.reducer;\n","// extracted by mini-css-extract-plugin\nexport default {\"title\":\"PriceDetailsHeader__title___H9KTQ\",\"row\":\"PriceDetailsHeader__row___sMYC6\",\"row__column--title\":\"PriceDetailsHeader__row__column--title___yUHp6\",\"fadeIn\":\"PriceDetailsHeader__fadeIn___lxbGJ\",\"blinking\":\"PriceDetailsHeader__blinking___jnMWh\"};","import React, { useCallback } from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './FilePickerInput.scss';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport useTestSelector from 'common/utils/hooks/useTestSelector';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport Link, { LinkSizeEnum, LinkThemeEnum } from 'common/components/Link/Link';\nimport ClickInterceptorLabel from 'common/components/ClickInterceptorLabel/ClickInterceptorLabel';\nimport { pickFile } from 'common/utils/pick-file';\nimport { useTranslation } from 'react-i18next';\nimport { RemoteFile } from './models';\nimport noop from 'lodash/noop';\nimport { reduceFileNameIfNeed } from 'common/utils/file-name';\n\nconst cx = classNames.bind(styles);\n\ntype ValueT<T> = File | RemoteFile<T> | null;\n\nexport type IconMetaT = {\n    isLoading: boolean;\n    hasError: boolean;\n    hasWarning: boolean;\n    hasSuccess: boolean;\n    isDisabled: boolean;\n    hasChanges: boolean;\n    isEmpty: boolean;\n};\n\nexport type PropsT<T = any> = {\n    className?: string;\n    renderLeftIcon: (meta: IconMetaT) => React.ReactNode;\n    name: string;\n    value: ValueT<T>;\n    isLoading?: boolean;\n    placeholder?: string;\n    onChange: (value: ValueT<T>) => void;\n    onBlur?: () => void;\n    onDownload?: (data: T) => void;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    hasSuccess?: boolean;\n    isDisabled?: boolean;\n    hasChanges?: boolean;\n    hasClearControl?: boolean;\n    hasUploadNewControl?: boolean;\n    testSelectorPrefix?: string;\n    limitFileNameLength?: number;\n    accept: 'application/pdf' | 'image/*,application/pdf';\n};\n\nconst DEFAULT_LIMIT_FILE_NAME_LENGTH = 65;\n\nconst FilePickerInput: React.FC<PropsT> = React.memo((props) => {\n    const {\n        value,\n        name,\n        renderLeftIcon,\n        placeholder,\n        onChange,\n        onBlur,\n        onDownload,\n        hasError,\n        hasWarning,\n        isLoading,\n        isDisabled,\n        hasSuccess,\n        className,\n        hasChanges,\n        hasClearControl,\n        hasUploadNewControl,\n        testSelectorPrefix,\n        accept,\n    } = props;\n\n    const handleBlur = (): void => {\n        if (onBlur) {\n            onBlur();\n        }\n    };\n\n    const handlePickFile = (): void => {\n        pickFile(accept, (file) => {\n            onChange(file);\n            handleBlur();\n        });\n    };\n\n    const handleReset = () => {\n        onChange(null);\n        handleBlur();\n    };\n\n    const isEmpty = !value;\n\n    const testSelector = useTestSelector(testSelectorPrefix || name, 'file-picker');\n    const resetControlTestSelector = useTestSelector(testSelector, 'reset');\n\n    const leftIcon = isLoading ? (\n        <ControlLoaderIcon fillColor={StyleGuideColorsEnum.charcoal} size={DEFAULT_ICON_SIZE} />\n    ) : (\n        renderLeftIcon({\n            isLoading: !!isLoading,\n            hasError: !!hasError,\n            hasWarning: !!hasWarning,\n            hasSuccess: !!hasSuccess,\n            isDisabled: !!isDisabled,\n            hasChanges: !!hasChanges,\n            isEmpty,\n        })\n    );\n\n    const { t } = useTranslation();\n\n    const handleDownload = useCallback(() => {\n        if (onDownload && value instanceof RemoteFile) {\n            onDownload(value.downloadData);\n        }\n    }, [value, onDownload]);\n\n    const labelNode = React.useMemo(() => {\n        const limitFileNameLength = props.limitFileNameLength || DEFAULT_LIMIT_FILE_NAME_LENGTH;\n\n        if (value instanceof RemoteFile) {\n            return (\n                <ClickInterceptorLabel>\n                    <Link theme={LinkThemeEnum.charcoal} size={LinkSizeEnum.medium} onClick={handleDownload}>\n                        <span title={value.name}>{reduceFileNameIfNeed(value.name, limitFileNameLength)}</span>\n                    </Link>\n                </ClickInterceptorLabel>\n            );\n        }\n\n        if (value instanceof File) {\n            return <div title={value.name}>{reduceFileNameIfNeed(value.name, limitFileNameLength)}</div>;\n        }\n\n        return placeholder || t('common:file-picker.placeholder');\n    }, [value, placeholder, t, props.limitFileNameLength, handleDownload]);\n\n    return (\n        <div\n            className={cs(\n                cx('input', {\n                    'input--hasWarning': hasWarning,\n                    'input--hasChanges': hasChanges,\n                    'input--hasError': hasError,\n                    'input--hasRightNode': isEmpty || (hasClearControl && !isEmpty),\n                    'input--isDisabled': isDisabled,\n                    'input--isClickable': isEmpty,\n                }),\n                className,\n            )}\n            onClick={isEmpty ? handlePickFile : noop}\n        >\n            {leftIcon && <div className={cx('icon', 'icon--isLeft')}>{leftIcon}</div>}\n            <div\n                className={cx('label', {\n                    'label--isEmpty': isEmpty,\n                    'label--isDisabled': isDisabled,\n                })}\n            >\n                {labelNode}\n            </div>\n            {isEmpty && (\n                <ClickInterceptorLabel>\n                    <TransparentTrigger\n                        spaces=\"xs\"\n                        isDisabled={isDisabled}\n                        onClick={isDisabled ? noop : handlePickFile}\n                        labelClassName={cx('upload-trigger')}\n                        label={t('common:file-picker.upload')}\n                        reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                    />\n                </ClickInterceptorLabel>\n            )}\n            {hasClearControl && !isEmpty && (\n                <ClickInterceptorLabel>\n                    <TransparentTrigger\n                        spaces=\"xs\"\n                        isDisabled={isDisabled}\n                        testSelector={resetControlTestSelector}\n                        onClick={isDisabled ? noop : handleReset}\n                        leftIcon={<CloseIcon fillColor={StyleGuideColorsEnum.charcoal} />}\n                        reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                    />\n                </ClickInterceptorLabel>\n            )}\n            {hasUploadNewControl && !isEmpty && (\n                <ClickInterceptorLabel>\n                    <TransparentTrigger\n                        spaces=\"xs\"\n                        isDisabled={isDisabled}\n                        onClick={isDisabled ? noop : handlePickFile}\n                        labelClassName={cx('upload-trigger')}\n                        label={t('common:file-picker.upload-new')}\n                        reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                    />\n                </ClickInterceptorLabel>\n            )}\n        </div>\n    );\n});\n\nexport default FilePickerInput;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { BooleanSettingValueEnum, SystemSettingsT } from 'broker-admin/store/price-settings/system-settings/models';\n\nconst getInitialValues = (systemSettings: SystemSettingsT | null | undefined): FormValuesT => {\n    return {\n        [FieldsEnum.minimalShipmentCost]: systemSettings?.MINIMAL_COST_FOR_SHIPMENT || '',\n        [FieldsEnum.driverSalaryPerHour]: systemSettings?.DRIVER_SALARY_PER_HOUR || '',\n        [FieldsEnum.minimalCostForTruck]: systemSettings?.MINIMAL_COST_FOR_TRUCK || '',\n        [FieldsEnum.minimalCostForTrailer]: systemSettings?.MINIMAL_COST_FOR_TRAILER || '',\n        [FieldsEnum.layoverCostPerHour]: systemSettings?.COST_PER_ONE_HOUR_LAYOVER || '',\n        [FieldsEnum.layoverCostPerDay]: systemSettings?.COST_PER_ONE_DAY_LAYOVER || '',\n        [FieldsEnum.layoverFreeHours]: systemSettings?.LAYOVER_FREE_HOURS || '',\n        [FieldsEnum.urgentOverPrice]: systemSettings?.URGENT_OVERPRICE || '',\n        [FieldsEnum.overPriceForEveryAdditionalStop]: systemSettings?.OVERPRICE_FOR_EVERY_ADDITIONAL_STOP || '',\n        [FieldsEnum.timeSlotAppointmentCost]: systemSettings?.TIME_SLOT_APPOINTMENT_COST || '',\n        [FieldsEnum.costPerGreenShipment]: systemSettings?.COST_PER_GREEN_SHIPMENT || '',\n        [FieldsEnum.tranziitServiceFeeFixedMode]: systemSettings?.TRANZIIT_SERVICE_FEE_FIXED_MODE || '',\n        [FieldsEnum.tranziitServiceFeePercent]: systemSettings?.TRANZIIT_SERVICE_FEE_PERCENT || '',\n        [FieldsEnum.tranziitServiceFeeFixed]: systemSettings?.TRANZIIT_SERVICE_FEE_FIXED || '',\n        [FieldsEnum.pricingStrategy]: systemSettings?.PRICING_STRATEGY || '',\n        [FieldsEnum.truckConsumption]: systemSettings?.TRUCK_CONSUMPTION || '',\n        [FieldsEnum.reeferConsumption]: systemSettings?.REEFER_CONSUMPTION || '',\n        [FieldsEnum.rateMatrixSpread]: systemSettings?.RATE_MATRIX_SPREAD || '',\n        [FieldsEnum.hvoPricePercent]: systemSettings?.HVO_PRICE_PERCENT || '',\n        [FieldsEnum.usePeriodicRulesForMonths]:\n            systemSettings?.YEAR_PERIODIC_AUTO_RULES === BooleanSettingValueEnum.true,\n        [FieldsEnum.usePeriodicRulesForWeekdays]: systemSettings?.USE_PERIODIC_RULES === BooleanSettingValueEnum.true,\n    };\n};\n\nexport default getInitialValues;\n","import * as React from 'react';\nimport { CommonSidebarDataT, CommonSidebarsTypeEnum, SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { EditableShipperContractLaneDetailsSidebarDataT } from './models';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport CommonEditableShipperContractLaneDetailsLayout from 'common/layouts/CommonEditableShipperContractLaneDetailsLayout/CommonEditableShipperContractLaneDetailsLayout';\n\ntype PropsT = SidebarContentPropsT<EditableShipperContractLaneDetailsSidebarDataT, CommonSidebarDataT>;\n\nconst EditableShipperContractLaneDetailsSidebarContent: React.FC<PropsT> = (props) => {\n    const { data, onGoBack, onClose, setNeedCloseConfirmation, onOpenNextSidebar } = props;\n\n    if (!onClose) {\n        return null;\n    }\n\n    const handleOpenUserDetails = (userId: UserIdT) => {\n        onOpenNextSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId: data.partnerId,\n            partnerType: PartnerTypeEnum.broker,\n            userId,\n        });\n    };\n\n    return (\n        <CommonEditableShipperContractLaneDetailsLayout\n            partnerId={data.partnerId}\n            shipperContractId={data.shipperContractId}\n            shipperContractLaneId={data.shipperContractLaneId}\n            isReadOnly={data.isReadOnly}\n            onClose={onClose}\n            onGoBack={onGoBack || undefined}\n            onOpenUserDetails={handleOpenUserDetails}\n            setNeedCloseConfirmation={setNeedCloseConfirmation}\n        />\n    );\n};\n\nexport default EditableShipperContractLaneDetailsSidebarContent;\n","export enum GPStatusEnum {\n    enabled = 'enabled',\n    unable = 'unable',\n}\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const ratesRefreshChannel = new ViewEventChannel<{}>();\n\nexport const ratesPaginationChannel = new ViewEventChannel<{\n    pageNumber: number;\n}>();\n","// extracted by mini-css-extract-plugin\nexport default {\"route\":\"TransportOrderDetails__route___juw6G\",\"alerts\":\"TransportOrderDetails__alerts___lsmNt\",\"table\":\"TransportOrderDetails__table___x7ct5\",\"table--origin\":\"TransportOrderDetails__table--origin___VqH87\",\"table--destination\":\"TransportOrderDetails__table--destination___lL8hr\",\"spot-request-row\":\"TransportOrderDetails__spot-request-row___OEByG\",\"excluded-countries\":\"TransportOrderDetails__excluded-countries___lfNLH\",\"team-driver\":\"TransportOrderDetails__team-driver___c65yp\",\"pill\":\"TransportOrderDetails__pill___aQo8E\",\"info-table-row--origin\":\"TransportOrderDetails__info-table-row--origin___kVZvJ\",\"info-table-row--destination\":\"TransportOrderDetails__info-table-row--destination___BfT3J\",\"papers-card\":\"TransportOrderDetails__papers-card___hEMmB\",\"route-card\":\"TransportOrderDetails__route-card___O5xCh\",\"shipment-card\":\"TransportOrderDetails__shipment-card___CPHK1\",\"fadeIn\":\"TransportOrderDetails__fadeIn___sjhHR\",\"blinking\":\"TransportOrderDetails__blinking___I7MN5\"};","import * as React from 'react';\n\nimport { useDispatch } from 'react-redux';\n\nimport { fetchCompany } from 'common/store/company/actions';\nimport { useCallback } from 'react';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { companyRefreshChannel } from 'common/store/company/channels';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\n\ntype PropsT = {};\n\nconst Company: React.FC<PropsT> = React.memo(() => {\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchCompany());\n    }, [dispatch]);\n\n    const refreshHandler = useCallback(() => {\n        dispatch(fetchCompany({ isForceUpdate: true }));\n    }, [dispatch]);\n    useChannelSubscribe(companyRefreshChannel, refreshHandler);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        dispatch(fetchCompany({ isForceUpdate: false }));\n    }, [dispatch]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    return null;\n});\n\nexport default Company;\n","import * as React from 'react';\n\ntype BaseOptionKeyValueT = string;\n\ntype BaseOptionT<K extends string, V = BaseOptionKeyValueT> = {\n    [Key in K]: V;\n};\n\nexport const useUpdateOptionsIdsSet = <K extends string>(\n    shouldWatch: boolean,\n    key: K,\n    initOptions: Array<BaseOptionT<K>>,\n    options: Array<BaseOptionT<K>>,\n) => {\n    return React.useMemo(() => {\n        if (!shouldWatch) {\n            return new Set([]);\n        }\n        const initIds = initOptions.map((option) => option[key]);\n        const initIdSet = new Set(initIds);\n\n        const ids = options.map((option) => option[key]);\n        const idSet = new Set(ids);\n\n        const diffIds = ids.filter((id) => {\n            return !initIdSet.has(id);\n        });\n\n        const initDiffIds = initIds.filter((id) => {\n            return !idSet.has(id);\n        });\n\n        return new Set([...diffIds, ...initDiffIds]);\n    }, [shouldWatch, key, initOptions, options]);\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"PendingUserCell__content___H39qD\",\"fadeIn\":\"PendingUserCell__fadeIn___fUfxm\",\"blinking\":\"PendingUserCell__blinking____9r5p\"};","import * as React from 'react';\nimport isNumber from 'lodash/isNumber';\nimport { useMemo } from 'react';\n\ntype LatT = number;\ntype LonT = number;\n\nexport type BoundPointT = [LatT | undefined | null, LonT | undefined | null];\n\ntype PropsT = {\n    map: MapT | null | undefined;\n    maps: MapsT | null | undefined;\n    allMapPoints?: Array<BoundPointT> | null | undefined;\n    boundingBox?: BoundingBoxT | null | undefined;\n};\n\nconst MapBound: React.FC<PropsT> = React.memo((props) => {\n    const { map, maps, allMapPoints, boundingBox } = props;\n\n    // to block the map's refocus at the same points\n    const allMapPointsHash = useMemo(() => {\n        return JSON.stringify(allMapPoints);\n    }, [allMapPoints]);\n\n    React.useEffect(() => {\n        if (!maps || !map || !allMapPoints?.length) {\n            return;\n        }\n\n        const bounds = new maps.LatLngBounds();\n        allMapPoints.forEach((point) => {\n            if (isNumber(point[0]) && isNumber(point[1])) {\n                const boundPoint = new maps.LatLng(point[0], point[1]);\n                bounds.extend(boundPoint);\n            }\n        });\n\n        map.fitBounds(bounds);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [map, maps, allMapPointsHash]);\n\n    // to block the map's refocus at the same points\n    const boundingBoxHash = useMemo(() => {\n        return JSON.stringify(boundingBox);\n    }, [boundingBox]);\n\n    React.useEffect(() => {\n        if (!map || !maps || !boundingBox?.length) {\n            return;\n        }\n\n        const point1 = new maps.LatLng(...boundingBox[0]);\n        const point2 = new maps.LatLng(...boundingBox[1]);\n        const bounds = new maps.LatLngBounds(point1, point2);\n        map.fitBounds(bounds);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [map, maps, boundingBoxHash]);\n\n    return null;\n});\n\nexport default MapBound;\n","// extracted by mini-css-extract-plugin\nexport default {\"route\":\"RouteLocationsOverview__route___LwMXU\",\"route__location\":\"RouteLocationsOverview__route__location___QZ7Nk\",\"route__direction\":\"RouteLocationsOverview__route__direction___UsPcE\",\"location\":\"RouteLocationsOverview__location___A3LC_\",\"location__locality\":\"RouteLocationsOverview__location__locality___Fx8Au\",\"location__country\":\"RouteLocationsOverview__location__country___YmUBe\",\"location__flag\":\"RouteLocationsOverview__location__flag___aiCRM\",\"location__time-window\":\"RouteLocationsOverview__location__time-window___IJPTg\",\"skeleton\":\"RouteLocationsOverview__skeleton___MGsk7\",\"fadeIn\":\"RouteLocationsOverview__fadeIn___ongHJ\",\"blinking\":\"RouteLocationsOverview__blinking___CJgBN\"};","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const invoicesRefreshChannel = new ViewEventChannel<{}>();\n\nexport const invoicesPaginationChannel = new ViewEventChannel<{\n    pageNumber: number;\n}>();\n","import * as React from 'react';\n\ntype PropsT = {\n    className?: string;\n};\n\nconst BigLaneIcon: React.FC<PropsT> = ({ className }) => {\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"200\" height=\"130\" viewBox=\"0 0 200 130\" className={className}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path\n                    fill=\"#8ABA2E\"\n                    fillOpacity=\"0.05\"\n                    d=\"M176 20a7 7 0 010 14h-40a7 7 0 010 14h22a7 7 0 010 14h-10.174c-4.874 0-8.826 3.134-8.826 7 0 2.577 2 4.91 6 7a7 7 0 010 14H62a7 7 0 010-14H23a7 7 0 010-14h40a7 7 0 000-14H38a7 7 0 010-14h40a7 7 0 010-14h98zm0 28a7 7 0 110 14 7 7 0 010-14z\"\n                />\n                <path\n                    stroke=\"#8ABA2E\"\n                    strokeWidth=\"2\"\n                    d=\"M128.5 64c-8.57 0-15.5 6.573-15.5 14.7 0 11.025 15.5 27.3 15.5 27.3S144 89.725 144 78.7c0-8.127-6.93-14.7-15.5-14.7z\"\n                />\n                <path\n                    fill=\"#8ABA2E\"\n                    fillOpacity=\"0.3\"\n                    fillRule=\"nonzero\"\n                    d=\"M131.5 67c-8.57 0-15.5 6.573-15.5 14.7 0 11.025 12.5 24.3 12.5 24.3S144 91.604 144 80.579C144 72.452 140.07 67 131.5 67z\"\n                />\n                <path\n                    fill=\"#FFF\"\n                    fillRule=\"nonzero\"\n                    d=\"M128.5 85c-2.852 0-5.167-2.352-5.167-5.25s2.315-5.25 5.167-5.25 5.167 2.352 5.167 5.25S131.352 85 128.5 85z\"\n                />\n                <path\n                    fill=\"#8ABA2E\"\n                    fillOpacity=\"0.3\"\n                    d=\"M64.915 31.882c0 2.136 1.762 3.883 3.916 3.883h55.466c3.25 0 5.872 2.6 5.872 5.823 0 3.223-2.623 5.824-5.872 5.824H76.66c-8.653 0-15.661 6.95-15.661 15.53V78.47C61 87.05 68.008 94 76.661 94h28.712v-7.765H76.66c-4.307 0-7.83-3.494-7.83-7.764V59.059v3.882c0-4.27 3.523-7.765 7.83-7.765h47.636c7.556 0 13.703-6.095 13.703-13.588C138 34.095 131.853 28 124.297 28H68.83c-2.154 0-3.916 1.747-3.916 3.882z\"\n                />\n                <path\n                    fill=\"#8ABA2E\"\n                    d=\"M64.915 31.882c0 2.136 1.762 3.883 3.916 3.883h55.466c3.25 0 5.872 2.6 5.872 5.823 0 3.223 7.831 3.223 7.831 0C138 34.095 131.853 28 124.297 28H68.83c-2.154 0-3.916 1.747-3.916 3.882z\"\n                />\n                <path\n                    stroke=\"#8ABA2E\"\n                    strokeLinecap=\"round\"\n                    strokeLinejoin=\"round\"\n                    strokeWidth=\"2.5\"\n                    d=\"M162.5 35h-17.176m24.176 0h-2.221m-11.103 7.777H148M51.5 66H34.324M28.5 66h-4.221m31.897 8.777H48\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nBigLaneIcon.displayName = 'BigLaneIcon';\n\nconst storyProps: PropsT = {};\n\nexport { storyProps };\nexport default BigLaneIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"DropPointPicker__wrap___UHrq5\",\"field--location\":\"DropPointPicker__field--location___biuBQ\",\"geo-suggest\":\"DropPointPicker__geo-suggest___PoKAQ\",\"time-picker\":\"DropPointPicker__time-picker___no8GN\",\"right-node\":\"DropPointPicker__right-node___NXq7U\",\"time-interval\":\"DropPointPicker__time-interval___FS_B3\",\"time-interval--isHalfOpacity\":\"DropPointPicker__time-interval--isHalfOpacity___vWGCz\",\"original-zone-tooltip-content\":\"DropPointPicker__original-zone-tooltip-content___QmMCQ\",\"fadeIn\":\"DropPointPicker__fadeIn___GAJoH\",\"blinking\":\"DropPointPicker__blinking___lRtV0\"};","import React from 'react';\nimport styles from './TimeIntervalDurationPillLabel.scss';\nimport classNames from 'classnames/bind';\nimport {\n    checkMidnightTime,\n    formatTimeInterval,\n    getDateTime,\n    getHours,\n    getMinutes,\n    getTimeRelativeStartDay,\n} from 'common/utils/time';\nimport { useTranslation } from 'react-i18next';\nimport { isNonNil } from 'common/utils';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    i18nKey?: string | null;\n    timeWindow: TimeWindowT | null | undefined;\n    originalDateTimeFrom?: string | null;\n    originalDateTimeTo?: string | null;\n    className?: string;\n    isDayRelative: boolean;\n    isChanged: boolean;\n};\n\nconst TimeIntervalDurationPillLabel: React.FC<PropsT> = (props) => {\n    const { timeWindow, originalDateTimeFrom, originalDateTimeTo, className, isDayRelative, i18nKey, isChanged } =\n        props;\n\n    const { t } = useTranslation();\n\n    if (!timeWindow) {\n        return null;\n    }\n\n    const [start, end] = timeWindow;\n    const diff = timeWindow[1] - timeWindow[0];\n\n    const formatter = isDayRelative ? getTimeRelativeStartDay : getDateTime;\n\n    const hours = getHours(diff);\n    const formattedHours = hours\n        ? `${hours} ${t('common:hours', {\n              postProcess: 'interval',\n              count: hours,\n          })}`\n        : null;\n\n    const minutes = getMinutes(diff);\n    const formattedMinutes = minutes\n        ? `${minutes} ${t('common:minutes', {\n              postProcess: 'interval',\n              count: minutes,\n          })}`\n        : null;\n\n    const formattedDiff = [formattedHours, formattedMinutes].filter(isNonNil).join(' ');\n\n    const duration = `${formatter(start)} - ${checkMidnightTime(formatter(end))}`;\n\n    const pillNode = (\n        <PillLabel\n            isSymmetrical\n            theme={isChanged ? PillLabelThemeEnum.blazeOrange : PillLabelThemeEnum.charcoal}\n            className={className}\n        >\n            <span className={cx('text')}>\n                {i18nKey\n                    ? t(i18nKey, {\n                          duration,\n                          formattedDiff,\n                      })\n                    : `${duration} (${formattedDiff})`}\n            </span>\n        </PillLabel>\n    );\n\n    if (isChanged) {\n        const formattedTimeInterval = formatTimeInterval(originalDateTimeFrom, originalDateTimeTo);\n\n        return (\n            <Tooltip\n                isInline\n                position={TooltipPositionEnum.topCenter}\n                theme={TooltipThemeEnum.black}\n                tooltipNode={\n                    <TooltipContent isCenter isNoWrap theme={TooltipContentThemeEnum.black}>\n                        <div>{t('broker-order-route-edit.pills.tooltip.changed-time-window')}</div>\n                        {Boolean(formattedTimeInterval) && (\n                            <div>\n                                {t('broker-order-route-edit.pills.tooltip.original-time-window', {\n                                    formattedTimeInterval,\n                                })}\n                            </div>\n                        )}\n                    </TooltipContent>\n                }\n            >\n                {() => pillNode}\n            </Tooltip>\n        );\n    }\n\n    return pillNode;\n};\n\nexport default TimeIntervalDurationPillLabel;\n","// extracted by mini-css-extract-plugin\nexport default {\"tabs\":\"TrucksPageLayout__tabs___u_fIa\",\"tabs--isPartner\":\"TrucksPageLayout__tabs--isPartner___RXRjK\",\"tabs__tab\":\"TrucksPageLayout__tabs__tab___bLzBQ\",\"tabs__tab-content\":\"TrucksPageLayout__tabs__tab-content___QWOzs\",\"fadeIn\":\"TrucksPageLayout__fadeIn___anFGQ\",\"blinking\":\"TrucksPageLayout__blinking___C_8a8\"};","import * as React from 'react';\nimport DropdownControl, {\n    DropdownControlOptionT,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport { useTranslation } from 'react-i18next';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { ApiCancelByBrokerUnavailableReasonT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport { updateEntityStatus } from 'common/store/state-machine/slice';\nimport { TransportOrderStatusEnum } from 'common/utils/api/models';\nimport { useDispatch } from 'react-redux';\nimport { useMemo } from 'react';\nimport { StateMachineEntityDescriptorT } from 'common/store/state-machine/models';\nimport MoreIcon from 'common/icons/MoreIcon';\nimport DeleteIcon from 'common/icons/DeleteIcon';\n\ntype PropsT = {\n    className?: string;\n    transportOrderId: TransportOrderIdT | null;\n    cancelByBrokerUnavailableReason?: ApiCancelByBrokerUnavailableReasonT | null;\n};\n\ntype DeprecatedT = 'PICKUP_ALREADY_STARTED' | 'TRANSPORTATION_ORDER_IS_ON_SPOT';\n\nconst blockedCancelReasonI18nMap: Record<ApiCancelByBrokerUnavailableReasonT | DeprecatedT, string> = {\n    PICKUP_ALREADY_STARTED: 'change-transport-order-status.blocked-cancel-reason.PICKUP_ALREADY_STARTED',\n    TRANSPORTATION_IS_NOT_IN_AVAILABLE_STATUS:\n        'change-transport-order-status.blocked-cancel-reason.TRANSPORTATION_IS_NOT_IN_AVAILABLE_STATUS',\n    TRANSPORTATION_ORDER_IS_ON_SPOT:\n        'change-transport-order-status.blocked-cancel-reason.TRANSPORTATION_ORDER_IS_ON_SPOT',\n    BROKER_CANT_CANCEL_DEADHEAD_TO:\n        'change-transport-order-status.blocked-cancel-reason.BROKER_CANT_CANCEL_DEADHEAD_TO',\n};\n\nconst ChangeTransportOrderStatusControl: React.FC<PropsT> = React.memo((props) => {\n    const { className, transportOrderId, cancelByBrokerUnavailableReason } = props;\n\n    const dispatch = useDispatch();\n\n    const { t } = useTranslation();\n\n    const descriptor = useMemo((): StateMachineEntityDescriptorT | null => {\n        if (!transportOrderId) {\n            return null;\n        }\n\n        return {\n            entityType: 'TRANSPORTATION_ORDER',\n            entityId: transportOrderId,\n        };\n    }, [transportOrderId]);\n\n    const options: Array<DropdownControlOptionT | null | undefined> = [\n        ...(transportOrderId\n            ? [\n                  {\n                      label: (\n                          <Tooltip\n                              position={TooltipPositionEnum.topCenter}\n                              theme={TooltipThemeEnum.black}\n                              tooltipNode={\n                                  cancelByBrokerUnavailableReason ? (\n                                      <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                          {t(blockedCancelReasonI18nMap[cancelByBrokerUnavailableReason])}\n                                      </TooltipContent>\n                                  ) : null\n                              }\n                          >\n                              {() => (\n                                  <DropdownControlOptionLabel\n                                      isDisabled={!!cancelByBrokerUnavailableReason}\n                                      label={t('broker-order-details.change-transport-order-status.cancel')}\n                                      icon={<DeleteIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                                  />\n                              )}\n                          </Tooltip>\n                      ),\n                      isDisabled: !!cancelByBrokerUnavailableReason,\n                      onSelect: () => {\n                          if (!transportOrderId || !descriptor) {\n                              return;\n                          }\n\n                          dispatch(\n                              updateEntityStatus({\n                                  update: {\n                                      status: TransportOrderStatusEnum.canceled,\n                                      entityType: 'TRANSPORTATION_ORDER',\n                                      entityId: transportOrderId,\n                                  },\n                                  descriptor,\n                              }),\n                          );\n                      },\n                  },\n              ]\n            : []),\n    ];\n\n    return (\n        <DropdownControl\n            className={className}\n            options={options}\n            renderTrigger={(isActive, onClick) => (\n                <TransparentTrigger\n                    isPressed={isActive}\n                    onClick={onClick}\n                    leftIcon={<MoreIcon />}\n                    reflectionTheme={ReflectionThemeEnum.light}\n                />\n            )}\n            overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n        />\n    );\n});\n\nexport default ChangeTransportOrderStatusControl;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames/bind';\n\nimport styles from './RFQStatisticsSidebarContent.scss';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport { SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { BrokerSidebarDataT } from 'broker-admin/layouts/SideBars/models';\nimport { RFQStatisticsSidebarDataT } from './models';\nimport RFQStatisticsFilters from './RFQStatisticsFilters/RFQStatisticsFilters';\nimport SideBarLoader from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLoader/SideBarLoader';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { ApiRFQBrokerSourceT, RFQBrokerSourceEnum } from 'common/utils/api/models';\nimport RFQSourcePill from 'common/components/pills/RFQSourcePill/RFQSourcePill';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport XLSIcon from 'common/icons/XLSIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport SideBarMessage, {\n    SideBarMessageEnum,\n} from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarMessage/SideBarMessage';\nimport SideBarRequestStatus from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarRequestStatus/SideBarRequestStatus';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = SidebarContentPropsT<RFQStatisticsSidebarDataT, BrokerSidebarDataT>;\n\n// TODO replace mock\nconst rfqStatisticsRequestStatus: RequestStatusT = requestStatus.ok;\n// requestStatus.setError(new Error('Failed to load RFQ statistics'));\n\n// TODO replace mock\nconst isRFQStatisticsEmpty = false;\n\n// TODO replace api model\ntype RFQStatisticsT = {\n    lanesWithoutFerry: number;\n    lanesWithFerry: number;\n    total: number;\n    type: ApiRFQBrokerSourceT;\n};\n\n// TODO replace mock\nexport const mockStatistics: Array<RFQStatisticsT> = [\n    {\n        lanesWithoutFerry: 12,\n        lanesWithFerry: 3,\n        total: 15,\n        type: RFQBrokerSourceEnum.carlo,\n    },\n    {\n        lanesWithoutFerry: 24,\n        lanesWithFerry: 6,\n        total: 30,\n        type: RFQBrokerSourceEnum.tender,\n    },\n    {\n        lanesWithoutFerry: 18,\n        lanesWithFerry: 2,\n        total: 20,\n        type: RFQBrokerSourceEnum.internal,\n    },\n    {\n        lanesWithoutFerry: 9,\n        lanesWithFerry: 1,\n        total: 10,\n        type: RFQBrokerSourceEnum.contractLane,\n    },\n];\n\nconst RFQStatisticsSidebarContent: React.FC<PropsT> = React.memo((props) => {\n    const { data, onClose, onUpdateSidebarData } = props;\n    const { t } = useTranslation();\n\n    return (\n        <>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent\n                    variant=\"right\"\n                    title={t('common:rfqs-page.actions.rfq-statistics')}\n                    onClose={onClose}\n                />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <RFQStatisticsFilters data={data} onChange={onUpdateSidebarData} />\n                {rfqStatisticsRequestStatus.error && (\n                    <SideBarRequestStatus requestStatus={rfqStatisticsRequestStatus} hasCachedData={false}>\n                        {null}\n                    </SideBarRequestStatus>\n                )}\n                {rfqStatisticsRequestStatus.ok && (\n                    <>\n                        {isRFQStatisticsEmpty ? (\n                            <SideBarMessage\n                                className={cx('empty-state')}\n                                iconType={SideBarMessageEnum.search}\n                                title={t('rfq-statistics.messages.empty.title')}\n                                description={t('rfq-statistics.messages.empty.description')}\n                            />\n                        ) : (\n                            <>\n                                <div className={cx('actions')}>\n                                    <Button\n                                        theme={ButtonThemeEnum.transparent}\n                                        leftIcon={<XLSIcon fillColor={StyleGuideColorsEnum.charcoal} />}\n                                    >\n                                        {t('rfq-statistics.actions.download-filtered-lanes')}\n                                    </Button>\n                                </div>\n                                <div className={cx('cards')}>\n                                    {mockStatistics.map((statistics) => (\n                                        <div className={cx('card')} key={statistics.type}>\n                                            <div className={cx('card__title')}>\n                                                <RFQSourcePill source={statistics.type} />\n                                            </div>\n                                            <InfoTable\n                                                rows={\n                                                    [\n                                                        {\n                                                            icon: null,\n                                                            name: t('rfq-statistics.results.total'),\n                                                            rightNode: (\n                                                                <PillLabel\n                                                                    isSymmetrical\n                                                                    theme={PillLabelThemeEnum.slate}\n                                                                >\n                                                                    {statistics.total}\n                                                                </PillLabel>\n                                                            ),\n                                                        },\n                                                        {\n                                                            icon: null,\n                                                            name: t('rfq-statistics.results.lanes-without-ferry'),\n                                                            rightNode: (\n                                                                <PillLabel\n                                                                    isSymmetrical\n                                                                    theme={PillLabelThemeEnum.slate}\n                                                                >\n                                                                    {statistics.lanesWithoutFerry}\n                                                                </PillLabel>\n                                                            ),\n                                                        },\n                                                        {\n                                                            icon: null,\n                                                            name: t('rfq-statistics.results.lanes-with-ferry'),\n                                                            rightNode: (\n                                                                <PillLabel\n                                                                    isSymmetrical\n                                                                    theme={PillLabelThemeEnum.slate}\n                                                                >\n                                                                    {statistics.lanesWithFerry}\n                                                                </PillLabel>\n                                                            ),\n                                                        },\n                                                    ] satisfies Array<InfoTableRowT>\n                                                }\n                                            />\n                                        </div>\n                                    ))}\n                                </div>\n                            </>\n                        )}\n                    </>\n                )}\n                {rfqStatisticsRequestStatus.loading && (\n                    <div className={cx('loader')}>\n                        <SideBarLoader isRelative />\n                    </div>\n                )}\n            </SideBarLayout>\n        </>\n    );\n});\n\nexport default RFQStatisticsSidebarContent;\n","import { QueryFiltersKeysEnum, QueryFiltersT } from '../query-models';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport { getDateFromDate } from 'common/utils/time';\nimport { simpleStringFormatter } from 'common/utils/form-formatters';\n\nconst getQueryFilters = (values: FormValuesT): QueryFiltersT => {\n    const queryFilters: QueryFiltersT = {\n        [QueryFiltersKeysEnum.dictTrailerId]: values[FieldsEnum.dictTrailerId] || undefined,\n\n        [QueryFiltersKeysEnum.address]: undefined,\n\n        [QueryFiltersKeysEnum.createdById]: values[FieldsEnum.createdById] || undefined,\n        [QueryFiltersKeysEnum.createdByName]: values[FieldsEnum.createdByName] || undefined,\n\n        [QueryFiltersKeysEnum.validFromStart]: undefined,\n        [QueryFiltersKeysEnum.validFromFinish]: undefined,\n\n        [QueryFiltersKeysEnum.validTillStart]: undefined,\n        [QueryFiltersKeysEnum.validTillFinish]: undefined,\n\n        [QueryFiltersKeysEnum.createdDateStart]: undefined,\n        [QueryFiltersKeysEnum.createdDateFinish]: undefined,\n    };\n\n    const address = simpleStringFormatter(values[FieldsEnum.address]);\n    if (address) {\n        queryFilters[QueryFiltersKeysEnum.address] = address;\n    }\n\n    const validFromDates = values[FieldsEnum.validFromDates];\n    if (validFromDates?.from) {\n        queryFilters[QueryFiltersKeysEnum.validFromStart] = getDateFromDate(validFromDates.from);\n    }\n\n    if (validFromDates?.to) {\n        queryFilters[QueryFiltersKeysEnum.validFromFinish] = getDateFromDate(validFromDates.to);\n    }\n\n    const validTillDates = values[FieldsEnum.validTillDates];\n    if (validTillDates?.from) {\n        queryFilters[QueryFiltersKeysEnum.validTillStart] = getDateFromDate(validTillDates.from);\n    }\n\n    if (validTillDates?.to) {\n        queryFilters[QueryFiltersKeysEnum.validTillFinish] = getDateFromDate(validTillDates.to);\n    }\n\n    const createDates = values[FieldsEnum.createdDates];\n    if (createDates?.from) {\n        queryFilters[QueryFiltersKeysEnum.createdDateStart] = getDateFromDate(createDates.from);\n    }\n\n    if (createDates?.to) {\n        queryFilters[QueryFiltersKeysEnum.createdDateFinish] = getDateFromDate(createDates.to);\n    }\n\n    return queryFilters;\n};\n\nexport default getQueryFilters;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst RestoreIcon: React.FC<PropsT> = (props) => {\n    const { strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M10.75 3.25A6.75 6.75 0 004 10H1.75l3 2.992 3-2.992H5.5a5.246 5.246 0 015.25-5.25A5.246 5.246 0 0116 10a5.246 5.246 0 01-5.25 5.25 5.208 5.208 0 01-3.705-1.545L5.98 14.77a6.716 6.716 0 004.77 1.98 6.75 6.75 0 000-13.5zM10 7v3.75l3.188 1.89.577-.96-2.64-1.567V7H10z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nRestoreIcon.displayName = 'RestoreIcon';\n\nconst storyProps: PropsT = {\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default RestoreIcon;\n","import { logWarning } from 'common/utils/logger';\nimport { formatTimeInterval } from 'common/utils/time';\n\nexport const formatTimeSlotValue = (value: string): string => {\n    try {\n        const [from, to] = value.split(' - ');\n\n        return formatTimeInterval(from, to) ?? value;\n    } catch (error) {\n        logWarning('Failed to format notification time slot value', { error, value });\n\n        return value;\n    }\n};\n","import React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './UserDropdownOptionLabel.scss';\nimport Avatar from 'common/components/Avatar/Avatar';\nimport LogoIcon from 'common/icons/LogoIcon';\nimport { DEFAULT_ICON_SIZE } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    label: string;\n    isAllBrokerUsers?: boolean;\n    isPlaceholder?: boolean;\n    isDisabled?: boolean;\n};\n\nconst UserDropdownOptionLabel: React.FC<PropsT> = (props) => {\n    const { className, label, isAllBrokerUsers, isPlaceholder, isDisabled } = props;\n\n    return (\n        <div className={cs(cx('option', { 'option--disabled': isDisabled }), className)}>\n            {isAllBrokerUsers ? (\n                <LogoIcon className={cx('avatar')} size={DEFAULT_ICON_SIZE} />\n            ) : (\n                <Avatar className={cx('avatar')} hash={isPlaceholder ? null : label} />\n            )}\n            <div className={cx('label')}>{label}</div>\n        </div>\n    );\n};\n\nexport default UserDropdownOptionLabel;\n","import { TrucksDictT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nimport { ApiTrucksDictT } from 'common/utils/api/models';\n\nexport const TRUCKS_DICT_REQUEST = 'common/trucks-dict/TRUCKS_DICT_REQUEST';\nexport const TRUCKS_DICT_REQUEST_BEGIN = 'common/trucks-dict/TRUCKS_DICT_REQUEST_BEGIN';\nexport const TRUCKS_DICT_REQUEST_SUCCESS = 'common/trucks-dict/TRUCKS_DICT_REQUEST_SUCCESS';\nexport const TRUCKS_DICT_REQUEST_ERROR = 'common/trucks-dict/TRUCKS_DICT_REQUEST_ERROR';\n\nexport type FetchTrucksDictActionT = {\n    type: typeof TRUCKS_DICT_REQUEST;\n};\n\nexport type FetchTrucksDictBeginActionT = {\n    type: typeof TRUCKS_DICT_REQUEST_BEGIN;\n};\n\nexport type FetchTrucksDictSuccessActionT = {\n    type: typeof TRUCKS_DICT_REQUEST_SUCCESS;\n    trucksDict: ApiTrucksDictT;\n};\n\nexport type FetchTrucksDictErrorActionT = {\n    type: typeof TRUCKS_DICT_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type TrucksDictActionT =\n    | FetchTrucksDictActionT\n    | FetchTrucksDictBeginActionT\n    | FetchTrucksDictSuccessActionT\n    | FetchTrucksDictErrorActionT;\n\nexport type TrucksDictStateT = {\n    trucksDict: TrucksDictT | null;\n    trucksDictRequest: RequestStatusT;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"modal\":\"ModalContent__modal___YMwqN\",\"appearModal\":\"ModalContent__appearModal___V71mP\",\"inner\":\"ModalContent__inner___ybuKE\",\"appearInner\":\"ModalContent__appearInner___ksOgW\",\"fadeIn\":\"ModalContent__fadeIn___CPy1P\",\"blinking\":\"ModalContent__blinking___GHH5c\"};","// extracted by mini-css-extract-plugin\nexport default {\"action\":\"ExpireDateCell__action___ZNG1W\",\"date\":\"ExpireDateCell__date___V74qa\",\"without-expiry\":\"ExpireDateCell__without-expiry___hLmJ0\",\"fadeIn\":\"ExpireDateCell__fadeIn___ckf3C\",\"blinking\":\"ExpireDateCell__blinking___kTMgQ\"};","import { TFunction } from 'i18next';\n\nimport {\n    FieldsEnum,\n    FormErrorsT,\n    RouteDetailsFormValuesT,\n    PointContactsFieldsEnum,\n    requiredContactsStopTypeSet,\n} from './constants';\nimport { checkEmail, checkPhoneNumber } from 'common/utils/form-validators';\nimport keys from 'lodash/keys';\nimport set from 'lodash/set';\nimport { DeadheadRouteStopT } from 'broker-admin/store/deadhead-creation/models';\n\nconst POINT_CONTACTS_EMAILS_FIELDS = [PointContactsFieldsEnum.email] as const;\n\nconst POINT_CONTACTS_PHONE_FIELDS = [PointContactsFieldsEnum.phoneNumber] as const;\n\ntype MetaT = {\n    stops?: Array<DeadheadRouteStopT>;\n};\n\nconst validate = (t: TFunction, values: RouteDetailsFormValuesT, meta: MetaT): FormErrorsT => {\n    const errors: FormErrorsT = {};\n\n    const contactsFormValues = values[FieldsEnum.contacts];\n    contactsFormValues.forEach((contactFormValues, index) => {\n        const stop = meta?.stops?.[index] || null;\n        const isRequiredContacts = stop?.type ? requiredContactsStopTypeSet.has(stop.type) : false;\n        if (!isRequiredContacts) {\n            return;\n        }\n\n        const contactFormErrors: NonNullable<FormErrorsT[FieldsEnum.contacts]>[number] = {\n            ...checkEmail(t, POINT_CONTACTS_EMAILS_FIELDS, contactFormValues),\n            ...checkPhoneNumber(t, POINT_CONTACTS_PHONE_FIELDS, contactFormValues),\n        };\n\n        keys(contactFormErrors).forEach((fieldName) => {\n            set(\n                errors,\n                `${FieldsEnum.contacts}.${index}.${fieldName}`,\n                contactFormErrors[fieldName as PointContactsFieldsEnum],\n            );\n        });\n    });\n\n    return errors;\n};\n\nexport default validate;\n","import { TFunction } from 'i18next';\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkNotEmpty } from 'common/utils/form-validators';\nimport { PriceRuleTypeEnum } from 'common/utils/api/models';\n\nconst REQUIRED_FIELDS = [\n    FieldsEnum.date,\n    FieldsEnum.ruleType,\n    FieldsEnum.dictTrailerId,\n    FieldsEnum.countryFrom,\n    FieldsEnum.countryTo,\n];\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    let errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n    };\n\n    const ruleType = values[FieldsEnum.ruleType];\n\n    if (ruleType === PriceRuleTypeEnum.carrier) {\n        errors = {\n            ...errors,\n            ...checkNotEmpty(t, [FieldsEnum.carrierId], values),\n        };\n    }\n\n    if (ruleType === PriceRuleTypeEnum.shipper) {\n        errors = {\n            ...errors,\n            ...checkNotEmpty(t, [FieldsEnum.shipperId], values),\n        };\n    }\n\n    return errors;\n};\n\nexport default validate;\n","import { put, takeEvery, select } from 'redux-saga/effects';\n\nimport { FETCH_DRIVERS_REQUEST, FetchDriversActionT } from './types';\nimport { fetchDriversBegin, fetchDriversError, fetchDriversSuccess } from './actions';\nimport { selectSearchDriverQuery } from './selectors';\nimport carrierTranziitApi from 'carrier/utils/api/carrier-tranziit/api';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { checkIsDefaultCompanyId } from 'common/utils';\nimport { checkIsSameQuery } from 'common/utils/pagination/utils';\n\nfunction* fetchDriversSaga(action: FetchDriversActionT): WrapGeneratorT<void> {\n    const { query } = action;\n\n    const prevQuery: ReturnType<typeof selectSearchDriverQuery> = yield select(selectSearchDriverQuery);\n    if (checkIsSameQuery(prevQuery, action.query)) {\n        return;\n    }\n\n    yield put(fetchDriversBegin(query));\n\n    let response: ReturnApiT<typeof carrierTranziitApi.searchDriver | typeof brokerTranziitApi.searchDriver>;\n    if (query?.partnerId && !checkIsDefaultCompanyId(query.partnerId)) {\n        response = yield brokerTranziitApi.searchDriver(query?.partnerId, {\n            name: query?.name,\n            page: 0,\n        });\n    } else {\n        response = yield carrierTranziitApi.searchDriver({\n            name: query?.name,\n            page: 0,\n        });\n    }\n    const [error, driversPage] = response;\n\n    if (error) {\n        yield put(fetchDriversError(query, error));\n        return;\n    }\n\n    const drivers = driversPage?.content || [];\n\n    yield put(fetchDriversSuccess(query, drivers));\n}\n\nfunction* driverSearchSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_DRIVERS_REQUEST, fetchDriversSaga);\n}\n\nexport default driverSearchSaga;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { FETCH_PARTNERS_STATS_REQUEST, FetchPartnersStatsActionT } from './types';\nimport { createPartnerRequestError, fetchPartnersStatsBegin, fetchPartnersStatsSuccess } from './actions';\n\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { selectPartnersStatsRequest } from 'broker-admin/store/partners-stats/selectors';\n\nfunction* fetchPartnersStatsSaga(actions: FetchPartnersStatsActionT): WrapGeneratorT<void> {\n    const { options } = actions;\n\n    const requestStatus: ReturnType<typeof selectPartnersStatsRequest> = yield select(selectPartnersStatsRequest);\n    const isNeedRequest = checkNeedRequest(requestStatus, options);\n    if (!isNeedRequest) {\n        return;\n    }\n\n    yield put(fetchPartnersStatsBegin());\n\n    const [error, stat]: ReturnApiT<typeof brokerTranziitApi.fetchPartnersStatistics> =\n        yield brokerTranziitApi.fetchPartnersStatistics();\n    if (error) {\n        yield put(createPartnerRequestError(error));\n        return;\n    }\n\n    const shippersStat = stat?.find((item) => item.type === 'SHIPPER');\n    const carrierStat = stat?.find((item) => item.type === 'CARRIER');\n    const brokerStat = stat?.find((item) => item.type === 'BROKER');\n\n    yield put(\n        fetchPartnersStatsSuccess({\n            [PartnerTypeEnum.carrier]: carrierStat,\n            [PartnerTypeEnum.shipper]: shippersStat,\n            [PartnerTypeEnum.broker]: brokerStat,\n        }),\n    );\n}\n\nfunction* partnersSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_PARTNERS_STATS_REQUEST, fetchPartnersStatsSaga);\n}\n\nexport default partnersSaga;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './CarrierDropdown.scss';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownSearchInput from 'design-system/components/dropdowns/DropdownSearchInput/DropdownSearchInput';\nimport CarrierWithUtilizationDropdownOption from './CarrierWithUtilizationDropdownOption/CarrierWithUtilizationDropdownOption';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectAvailableCarriers,\n    selectAvailableCarriersRequest,\n} from 'broker-admin/store/broker-order-assigment/selectors';\nimport { isNonNil } from 'common/utils';\nimport ControlLoaderIcon, { ControlLoaderIconProps } from 'common/icons/ControlLoaderIcon';\nimport { ALL_CARRIERS_ID } from 'common/constants';\nimport isEmpty from 'lodash/isEmpty';\nimport { fetchCarrierUtilization } from 'common/store/carriers-utilization/actions';\nimport { selectCarriersUtilizationByHash, selectFetchRequestStatus } from 'common/store/carriers-utilization/selectors';\nimport { getHash } from 'common/store/carriers-utilization/utils';\nimport { useTranslation } from 'react-i18next';\nimport { prepareSearchQuery } from 'common/utils/search';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    dateForUtilizationRequest: string | null;\n    carrierId: CarrierIdT;\n    setCarrierId: (carrierId: CarrierIdT) => void;\n};\n\nexport type CarrierOptionT = {\n    name: string;\n    utilizationPercent: number | null;\n    id: CarrierIdT;\n    isLoading: boolean;\n};\n\nconst CarrierDropdown: React.FC<PropsT> = React.memo((props) => {\n    const { className, dateForUtilizationRequest, carrierId, setCarrierId } = props;\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const carriersRequestStatus = useSelector(selectAvailableCarriersRequest);\n    const carriers = useSelector(selectAvailableCarriers);\n\n    React.useEffect(() => {\n        const carrierIds = carriers.map((carrier) => carrier.id).filter(isNonNil);\n        if (isEmpty(carrierIds) || !dateForUtilizationRequest) {\n            return;\n        }\n\n        dispatch(fetchCarrierUtilization(carrierIds, dateForUtilizationRequest));\n    }, [dispatch, carriers, dateForUtilizationRequest]);\n\n    const carriersUtilizationByHash = useSelector(selectCarriersUtilizationByHash);\n    const carriersUtilizationFetchRequest = useSelector(selectFetchRequestStatus);\n\n    const carriersOptions: CarrierOptionT[] = React.useMemo(() => {\n        const options: CarrierOptionT[] = carriers\n            .map((carrier) => {\n                if (!carrier.id || !dateForUtilizationRequest) {\n                    return null;\n                }\n\n                const hash = getHash(carrier.id, dateForUtilizationRequest);\n                const carrierUtilization = carriersUtilizationByHash[hash];\n                return {\n                    name: carrier.name || '',\n                    utilizationPercent: carrierUtilization ? carrierUtilization.utilizationPercents : null,\n                    id: carrier.id,\n                    isLoading: !carrierUtilization?.utilizationPercents && carriersUtilizationFetchRequest.loading,\n                };\n            })\n            .filter(isNonNil);\n\n        const allCarriersOption: CarrierOptionT = {\n            name: t('assignment.search-form.all-carriers'),\n            utilizationPercent: null,\n            id: ALL_CARRIERS_ID,\n            isLoading: false,\n        };\n\n        options.unshift(allCarriersOption);\n\n        return options;\n    }, [carriers, carriersUtilizationFetchRequest, carriersUtilizationByHash, dateForUtilizationRequest, t]);\n\n    const [query, setQuery] = React.useState<string>('');\n\n    const filteredCarriersOptions = React.useMemo(() => {\n        const preparedQuery = prepareSearchQuery(query);\n        return carriersOptions.filter((option) => {\n            const label = option?.name || '';\n            const preparedLabel = prepareSearchQuery(label);\n\n            return preparedLabel.includes(preparedQuery);\n        });\n    }, [carriersOptions, query]);\n\n    return (\n        <DropdownSearchInput<CarrierOptionT, CarrierOptionT['id']>\n            className={className}\n            selectedValue={carrierId}\n            options={filteredCarriersOptions}\n            onSelect={setCarrierId}\n            overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n            renderOption={(option) => {\n                return (\n                    <CarrierWithUtilizationDropdownOption\n                        name={option.name}\n                        isLoading={option.isLoading}\n                        utilizationPercent={option.utilizationPercent}\n                    />\n                );\n            }}\n            renderTrigger={(option, placeholder) => {\n                if (!option) {\n                    return <span>{placeholder}</span>;\n                }\n\n                return (\n                    <CarrierWithUtilizationDropdownOption\n                        name={option.name}\n                        isLoading={option.isLoading}\n                        utilizationPercent={option.utilizationPercent}\n                    />\n                );\n            }}\n            renderRightIcon={() =>\n                carriersRequestStatus.loading ? (\n                    <ControlLoaderIcon {...ControlLoaderIconProps.getFetchDataProps()} />\n                ) : null\n            }\n            onChangeQuery={setQuery}\n            getOptionValue={(option) => option?.id}\n        />\n    );\n});\n\nexport default CarrierDropdown;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"PartnerMembersPage__fadeIn___GOzmL\",\"blinking\":\"PartnerMembersPage__blinking___uxC6h\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './EditStopContactFooterContent.scss';\nimport { ApiBrokerOrderWaypointT } from 'common/utils/api/models';\nimport EditStopContactForm from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/EditStopContactForm/EditStopContactForm';\nimport NumberIcon from 'common/icons/NumberIcon';\nimport LocationLabel from 'common/components/LocationLabel/LocationLabel';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectBrokerOrderEditUpdateRequestStatus } from 'broker-admin/store/broker-order-edit/selectors';\nimport { updateStopContact } from 'broker-admin/store/broker-order-edit/actions';\nimport { UpdateStopContactRequestT } from 'broker-admin/store/broker-order-edit/types';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    brokerOrderId: BrokerOrderIdT | null;\n    waypoint: ApiBrokerOrderWaypointT | null;\n    onCancel: () => void;\n};\n\nconst EditStopContactFooterContent: React.FC<PropsT> = React.memo((props) => {\n    const { brokerOrderId, waypoint, onCancel } = props;\n\n    const dispatch = useDispatch();\n    const requestStatus = useSelector(selectBrokerOrderEditUpdateRequestStatus(brokerOrderId));\n\n    const handleSave = React.useCallback(\n        (stopId: string, data: UpdateStopContactRequestT) => {\n            if (!brokerOrderId) {\n                return;\n            }\n            dispatch(updateStopContact({ brokerOrderId, stopId, data }));\n        },\n        [brokerOrderId, dispatch],\n    );\n\n    if (!waypoint) {\n        return null;\n    }\n\n    return (\n        <div className={cx('content')}>\n            <div className={cx('head')}>\n                <NumberIcon\n                    className={cx('head__icon')}\n                    number={(waypoint?.index || 0) + 1}\n                    fillColor={StyleGuideColorsEnum.charcoal}\n                />\n                <LocationLabel\n                    className={cx('head__title')}\n                    format=\"s1_s2_zip_city_country\"\n                    location={waypoint?.address}\n                />\n            </div>\n            <EditStopContactForm\n                requestStatus={requestStatus}\n                waypoint={waypoint}\n                onSave={handleSave}\n                onCancel={onCancel}\n            />\n        </div>\n    );\n});\n\nexport default EditStopContactFooterContent;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport {\n    BooleanSettingValueEnum,\n    SystemSettingsChangesT,\n} from 'broker-admin/store/price-settings/system-settings/models';\n\nconst prepareApiSystemSettings = (formValues: FormValuesT): SystemSettingsChangesT => {\n    return {\n        AUTO_EXCLUDE_NON_EU_COUNTRIES: formValues[FieldsEnum.autoExcludeNonEUCountries]\n            ? BooleanSettingValueEnum.true\n            : BooleanSettingValueEnum.false,\n    };\n};\n\nexport default prepareApiSystemSettings;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './Toast.scss';\nimport { MS_IN_SEC } from 'common/utils/time';\n\nconst cx = classNames.bind(styles);\n\ntype CloseCallbackT = () => void;\n\nexport type PropsT = {\n    onClose: CloseCallbackT;\n    testSelector?: string;\n    className?: string;\n    ttlMs?: number;\n    children: (onClose: CloseCallbackT) => React.ReactNode;\n};\n\nconst TTL_MS = 10 * MS_IN_SEC;\n\nconst ANIMATION_DURATION = 300;\n\ntype TimerT = {\n    startTimer: number | null;\n    timeoutId: NodeJS.Timeout | null;\n    lost: number | null;\n};\n\nconst Toast: React.FC<PropsT> = React.memo((props) => {\n    const { testSelector, className, onClose, children } = props;\n\n    // NB: static ttl, not change on render\n    const ttlMs = props.ttlMs || TTL_MS;\n\n    const [isShow, setShow] = React.useState<boolean>(false);\n    const handleClose = (): void => {\n        setShow(false);\n\n        setTimeout(() => {\n            onClose();\n        }, ANIMATION_DURATION);\n    };\n\n    const closeTimerRef = React.useRef<TimerT>({\n        startTimer: null,\n        timeoutId: null,\n        lost: null,\n    });\n\n    React.useEffect(() => {\n        const timeoutId = setTimeout(() => {\n            handleClose();\n        }, ttlMs);\n\n        closeTimerRef.current = {\n            startTimer: Date.now(),\n            timeoutId,\n            lost: ttlMs,\n        };\n\n        return () => {\n            if (timeoutId) {\n                clearTimeout(timeoutId);\n            }\n\n            closeTimerRef.current = {\n                startTimer: null,\n                timeoutId: null,\n                lost: null,\n            };\n        };\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const handleMouseLeave = () => {\n        const lost = closeTimerRef.current.lost || ttlMs;\n\n        const timeoutId = setTimeout(() => {\n            handleClose();\n        }, lost);\n\n        closeTimerRef.current = {\n            timeoutId,\n            startTimer: Date.now(),\n            lost,\n        };\n    };\n\n    const handleMouseMove = (): void => {\n        const closeTimer = closeTimerRef.current;\n        if (!closeTimer.timeoutId || !closeTimer.startTimer || !closeTimer.lost) {\n            return;\n        }\n\n        clearTimeout(closeTimer.timeoutId);\n\n        const lost = closeTimer.lost - (Date.now() - closeTimer.startTimer);\n        const lostLimit = ttlMs / 2;\n\n        closeTimerRef.current = {\n            timeoutId: null,\n            startTimer: null,\n            lost: Math.max(lost, lostLimit),\n        };\n    };\n\n    React.useEffect(() => {\n        setTimeout(() => {\n            setShow(true);\n        }, 0);\n    }, []);\n\n    return (\n        <div\n            className={cs(\n                cx('toast', {\n                    'toast--is-show': isShow,\n                }),\n                className,\n            )}\n            onMouseMove={handleMouseMove}\n            onMouseLeave={handleMouseLeave}\n            data-test-selector={testSelector}\n        >\n            {children(handleClose)}\n        </div>\n    );\n});\n\nexport default Toast;\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"FormTitle__content___lksHN\",\"column--isLeft\":\"FormTitle__column--isLeft___ftIgU\",\"close\":\"FormTitle__close___MfR2o\",\"title\":\"FormTitle__title___nE8Qj\",\"progress\":\"FormTitle__progress___jnEMx\",\"progress__bar\":\"FormTitle__progress__bar___kuaX1\",\"progress__title\":\"FormTitle__progress__title____d5pr\",\"fadeIn\":\"FormTitle__fadeIn___zlwWS\",\"blinking\":\"FormTitle__blinking___mvWxK\"};","import { OverwritePageRequestT, OverwritePageRequestWithSortT } from 'common/utils/api/models';\nimport BaseTranziitApi, { TranziitApiResultT } from 'common/utils/api/tranziit/base-tranziit-api';\nimport { authApi } from 'common/utils/api/auth/factory';\nimport { MS_IN_MIN } from 'common/utils/time';\n\nclass CarrierTranziitApi extends BaseTranziitApi {\n    private static instance: CarrierTranziitApi;\n\n    private constructor() {\n        super(authApi, {\n            basepath: '/api',\n            timeout: MS_IN_MIN,\n        });\n    }\n\n    public static getInstance(): CarrierTranziitApi {\n        if (!CarrierTranziitApi.instance) {\n            CarrierTranziitApi.instance = new CarrierTranziitApi();\n        }\n\n        return CarrierTranziitApi.instance;\n    }\n\n    fetchAssetTracksByTransportOrder = async (\n        transportationOrderId: Api2Paths.ApiV2CarrierTransportationOrders$TransportationOrderIdAssetsCoordinates.Get.Parameters.TransportationOrderId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2CarrierTransportationOrders$TransportationOrderIdAssetsCoordinates.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTransportationOrders$TransportationOrderIdAssetsCoordinates.Get.Responses.$200>(\n            {\n                method: 'GET',\n                path: `/v2/carrier/transportation-orders/${transportationOrderId}/assets-coordinates`,\n                expectedResponseContentType: 'json',\n            },\n        );\n    };\n\n    fetchTransportOrdersPage = async (\n        apiFetchOrdersRequest: OverwritePageRequestWithSortT<Api2Paths.ApiV2CarrierTransportationOrders.Get.QueryParameters>,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTransportationOrders.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTransportationOrders.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/carrier/transportation-orders`,\n            query: apiFetchOrdersRequest,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchTrailersPage = async (\n        apiFetchTrailersRequest: OverwritePageRequestWithSortT<Api2Paths.ApiV2CarrierTrailers.Get.QueryParameters>,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrailers.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrailers.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/carrier/trailers`,\n            query: apiFetchTrailersRequest,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    addTrailer = async (\n        data: Api2Paths.ApiV2CarrierTrailers.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrailers.Post.Responses.$201>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrailers.Post.Responses.$201>({\n            method: 'POST',\n            path: '/v2/carrier/trailers',\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    deleteTrailer = async (\n        trailerId: Api2Paths.ApiV2CarrierTrailers$Id.Delete.Parameters.Id,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrailers$Id.Delete.Responses.$204>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrailers$Id.Delete.Responses.$204>({\n            method: 'DELETE',\n            path: `/v2/carrier/trailers/${trailerId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    assignTruckToContract = async (\n        data: Partial<Api2Paths.ApiV2CarrierTrucksChangeContract.Post.RequestBody>,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrucksChangeContract.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrucksChangeContract.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/carrier/trucks/change-contract`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    assignTrailersToContract = async (\n        data: Api2Paths.ApiV2CarrierTrailersChangeContract.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrailersChangeContract.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrailersChangeContract.Post.Responses.$200>({\n            method: 'POST',\n            path: '/v2/carrier/trailers/change-contract',\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    changeRateTrucks = async (\n        data: Partial<Api2Paths.ApiV2CarrierTrucksChangeRate.Post.RequestBody>,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrucksChangeRate.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrucksChangeRate.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/carrier/trucks/change-rate`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    changeRateTrailers = async (\n        data: Api2Paths.ApiV2CarrierTrailersChangeRate.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrailersChangeRate.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrailersChangeRate.Post.Responses.$200>({\n            method: 'POST',\n            path: '/v2/carrier/trailers/change-rate',\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    activateTrailers = async (\n        data: Api2Paths.ApiV2CarrierTrailersActivate.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrailersActivate.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrailersActivate.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/carrier/trailers/activate`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    archiveTrailers = async (\n        data: Api2Paths.ApiV2CarrierTrailersArchive.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrailersArchive.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrailersArchive.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/carrier/trailers/archive`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchTrailerDetails = async (\n        trailerId: Api2Paths.ApiV2CarrierTrailers$Id.Get.Parameters.Id,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrailers$Id.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrailers$Id.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/carrier/trailers/${trailerId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchTrailersActiveFleetCount = async (): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2CarrierTrailersActiveFleetCount.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrailersActiveFleetCount.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/carrier/trailers/active-fleet-count`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    updateTrailer = async (\n        trailerId: Api2Paths.ApiV2CarrierTrailers$Id.Put.Parameters.Id,\n        data: Api2Paths.ApiV2CarrierTrailers$Id.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrailers$Id.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrailers$Id.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/carrier/trailers/${trailerId}`,\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    fetchActiveTrucksByIdPlateNumber = async (\n        plateNumber: Api2Paths.ApiV2CarrierTrucks.Get.Parameters.PlateNumber,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrucks.Get.Responses.$200>> => {\n        const apiFetchTrucksRequest: Api2Paths.ApiV2CarrierTrucks.Get.QueryParameters = {\n            plateNumber,\n            archived: false,\n        };\n\n        return this.doFetch<Api2Paths.ApiV2CarrierTrucks.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/carrier/trucks`,\n            query: apiFetchTrucksRequest,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchTrucksPage = async (\n        apiFetchTrucksRequest: OverwritePageRequestWithSortT<Api2Paths.ApiV2CarrierTrucks.Get.QueryParameters>,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrucks.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrucks.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/carrier/trucks`,\n            query: apiFetchTrucksRequest,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    addTruck = async (\n        data: Api2Paths.ApiV2CarrierTrucks.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrucks.Post.Responses.$201>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrucks.Post.Responses.$201>({\n            method: 'POST',\n            path: '/v2/carrier/trucks',\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    activateTrucks = async (\n        data: Api2Paths.ApiV2CarrierTrucksActivate.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrucksActivate.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrucksActivate.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/carrier/trucks/activate`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    updateTruck = async (\n        truckId: Api2Paths.ApiV2CarrierTrucks$Id.Put.Parameters.Id,\n        data: Api2Paths.ApiV2CarrierTrucks$Id.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrucks$Id.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrucks$Id.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/carrier/trucks/${truckId}`,\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    archiveTrucks = async (\n        data: Api2Paths.ApiV2CarrierTrucksArchive.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrucksArchive.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrucksArchive.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/carrier/trucks/archive`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchTruckDetails = async (\n        truckId: Api2Paths.ApiV2CarrierTrucks$Id.Get.Parameters.Id,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrucks$Id.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrucks$Id.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/carrier/trucks/${truckId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchTrucksActiveFleetCount = async (): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2CarrierTrucksActiveFleetCount.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrucksActiveFleetCount.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/carrier/trucks/active-fleet-count`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    deleteTruck = async (\n        truckId: Api2Paths.ApiV2CarrierTrucks$Id.Delete.Parameters.Id,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrucks$Id.Delete.Responses.$204>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrucks$Id.Delete.Responses.$204>({\n            method: 'DELETE',\n            path: `/v2/carrier/trucks/${truckId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    getAvailableDrivers = async (\n        transportationOrderId: Api2Paths.ApiV1CarrierTransportationOrder$TransportationOrderIdDrivers.Get.Parameters.TransportationOrderId,\n        driverName: Api2Paths.ApiV1CarrierTransportationOrder$TransportationOrderIdDrivers.Get.Parameters.DriverName,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1CarrierTransportationOrder$TransportationOrderIdDrivers.Get.Responses.$200>\n    > => {\n        const query: Api2Paths.ApiV1CarrierTransportationOrder$TransportationOrderIdDrivers.Get.QueryParameters = {\n            driverName,\n        };\n\n        return this.doFetch<Api2Paths.ApiV1CarrierTransportationOrder$TransportationOrderIdDrivers.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/carrier/transportationOrder/${transportationOrderId}/drivers`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    assignDrivers = async (\n        transportationOrderId: ApiPaths.ApiV1CarrierTransportationOrder$TransportationOrderIdAssignDrivers.Post.Parameters.TransportationOrderId,\n        query: ApiPaths.ApiV1CarrierTransportationOrder$TransportationOrderIdAssignDrivers.Post.QueryParameters,\n    ): Promise<\n        TranziitApiResultT<ApiPaths.ApiV1CarrierTransportationOrder$TransportationOrderIdAssignDrivers.Post.Responses.$200>\n    > => {\n        return this.doFetch<ApiPaths.ApiV1CarrierTransportationOrder$TransportationOrderIdAssignDrivers.Post.Responses.$200>(\n            {\n                method: 'POST',\n                path: `/v1/carrier/transportationOrder/${transportationOrderId}/assign-drivers`,\n                query,\n                expectedResponseContentType: 'unknown',\n            },\n        );\n    };\n\n    reAssignDrivers = async (\n        transportationOrderId: ApiPaths.ApiV1CarrierTransportationOrder$TransportationOrderIdRemoveDrivers.Post.Parameters.TransportationOrderId,\n    ): Promise<\n        TranziitApiResultT<ApiPaths.ApiV1CarrierTransportationOrder$TransportationOrderIdRemoveDrivers.Post.Responses.$200>\n    > => {\n        return this.doFetch<ApiPaths.ApiV1CarrierTransportationOrder$TransportationOrderIdRemoveDrivers.Post.Responses.$200>(\n            {\n                method: 'POST',\n                path: `/v1/carrier/transportationOrder/${transportationOrderId}/remove-drivers`,\n                expectedResponseContentType: 'unknown',\n            },\n        );\n    };\n\n    fetchCarrierContracts = async (): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1CompanyCarrierContracts.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1CompanyCarrierContracts.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/company/carrier-contracts`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchCarrierApprovedContracts = async (): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1CompanyApprovedCarrierContracts.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1CompanyApprovedCarrierContracts.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/company/approved-carrier-contracts`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchCarrierContractDetails = async (\n        contractId: Api2Paths.ApiV1CompanyCarrierContracts$ContractId.Get.Parameters.ContractId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1CompanyCarrierContracts$ContractId.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1CompanyCarrierContracts$ContractId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/company/carrier-contracts/${contractId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    getTransportOrderDetails = async (\n        transportationOrderId: Api2Paths.ApiV2CarrierTransportationOrders$TransportationOrderId.Get.Parameters.TransportationOrderId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2CarrierTransportationOrders$TransportationOrderId.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTransportationOrders$TransportationOrderId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/carrier/transportation-orders/${transportationOrderId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchDriverDetails = async (\n        driverId: Api2Paths.ApiV2CarrierDrivers$DriverId.Get.Parameters.DriverId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierDrivers$DriverId.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierDrivers$DriverId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/carrier/drivers/${driverId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    updateDriver = async (\n        driverId: Api2Paths.ApiV2CarrierDrivers$DriverIdUpdate.Post.Parameters.DriverId,\n        newDriverData: Api2Paths.ApiV2CarrierDrivers$DriverIdUpdate.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierDrivers$DriverIdUpdate.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierDrivers$DriverIdUpdate.Post.Responses.$200>({\n            data: newDriverData,\n            method: 'POST',\n            path: `/v2/carrier/drivers/${driverId}/update`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    activateDriver = async (\n        driverId: Api2Paths.ApiV2CarrierDrivers$DriverIdActivate.Post.Parameters.DriverId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierDrivers$DriverIdActivate.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierDrivers$DriverIdActivate.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/carrier/drivers/${driverId}/activate`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    archiveDriver = async (\n        driverId: Api2Paths.ApiV2CarrierDrivers$DriverIdArchive.Post.Parameters.DriverId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierDrivers$DriverIdArchive.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierDrivers$DriverIdArchive.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/carrier/drivers/${driverId}/archive`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    deleteDriver = async (\n        driverId: Api2Paths.ApiV2CarrierDrivers$DriverIdDelete.Delete.Parameters.DriverId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierDrivers$DriverIdDelete.Delete.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierDrivers$DriverIdDelete.Delete.Responses.$200>({\n            method: 'DELETE',\n            path: `/v2/carrier/drivers/${driverId}/delete`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    inviteDriver = async (\n        data: Api2Paths.ApiV2RegistrationInviteDriver.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2RegistrationInviteDriver.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2RegistrationInviteDriver.Post.Responses.$200>({\n            method: 'POST',\n            path: '/v2/registration/invite-driver',\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    addDriver = async (\n        data: Api2Paths.ApiV2CarrierDriversAddDriver.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierDriversAddDriver.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierDriversAddDriver.Post.Responses.$200>({\n            method: 'POST',\n            path: '/v2/carrier/drivers/add-driver',\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchVehicleSchedule = async (\n        vehicleId: ApiPaths.ApiV2CarrierVehiclescheduleVehicle$VehicleId.Get.Parameters.VehicleId,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV2CarrierVehiclescheduleVehicle$VehicleId.Get.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV2CarrierVehiclescheduleVehicle$VehicleId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/carrier/vehicleschedule/vehicle/${vehicleId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    // TODO change method\n    fetchVehicleScheduleAroundDate = async (\n        vehicleId: ApiPaths.ApiV2BrokerVehiclescheduleVehicle$VehicleIdAroundDate.Get.Parameters.VehicleId,\n        date: ApiPaths.ApiV2BrokerVehiclescheduleVehicle$VehicleIdAroundDate.Get.Parameters.DateOfInterest,\n    ): Promise<\n        TranziitApiResultT<ApiPaths.ApiV2BrokerVehiclescheduleVehicle$VehicleIdAroundDate.Get.Responses.$200>\n    > => {\n        const query: ApiPaths.ApiV2BrokerVehiclescheduleVehicle$VehicleIdAroundDate.Get.QueryParameters = {\n            dateOfInterest: date,\n        };\n\n        return this.doFetch<ApiPaths.ApiV2BrokerVehiclescheduleVehicle$VehicleIdAroundDate.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/carrier/vehicleschedule/vehicle/${vehicleId}/around-date`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchDriversPage = async (\n        query: OverwritePageRequestT<Api2Paths.ApiV2CarrierDrivers.Get.QueryParameters>,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierDrivers.Get.Responses.$200>> => {\n        // conflict statuses in filters\n        if (query.statuses?.length === 0) {\n            return [null, { content: [] }];\n        }\n\n        return this.doFetch<Api2Paths.ApiV2CarrierDrivers.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/carrier/drivers`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    searchDriver = async (\n        query: OverwritePageRequestT<Api2Paths.ApiV2CarrierDrivers.Get.QueryParameters>,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierDrivers.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierDrivers.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/carrier/drivers`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    checkTrailerGPSStatus = async (\n        plateNumber: Api2Paths.ApiV2CarrierTrailersHasGps.Get.Parameters.PlateNumber,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrailersHasGps.Get.Responses.$200>> => {\n        const query: Api2Paths.ApiV2CarrierTrailersHasGps.Get.QueryParameters = {\n            plateNumber,\n        };\n\n        return this.doFetch<Api2Paths.ApiV2CarrierTrailersHasGps.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v2/carrier/trailers/has-gps',\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    checkTruckGPSStatus = async (\n        plateNumber: Api2Paths.ApiV2CarrierTrucksHasGps.Get.Parameters.PlateNumber,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrucksHasGps.Get.Responses.$200>> => {\n        const query: Api2Paths.ApiV2CarrierTrucksHasGps.Get.QueryParameters = {\n            plateNumber,\n        };\n\n        return this.doFetch<Api2Paths.ApiV2CarrierTrucksHasGps.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v2/carrier/trucks/has-gps',\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    addVehicleScheduleEvent = async (\n        data: ApiPaths.ApiV2CarrierVehiclescheduleVehicle.Post.RequestBody,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV2CarrierVehiclescheduleVehicle.Post.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV2CarrierVehiclescheduleVehicle.Post.Responses.$200>({\n            method: 'POST',\n            path: '/v2/carrier/vehicleschedule/vehicle',\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    cancelVehicleScheduleEvent = async (data: any): Promise<TranziitApiResultT<any>> => {\n        // TODO wait backend api\n        await new Promise<void>((resolve) => {\n            setTimeout(() => {\n                resolve();\n            }, 1000);\n        });\n        return Promise.resolve([null, null]);\n    };\n\n    findTrucksForTourByPlateNumber = async (\n        transportationOrderId: Api2Paths.ApiV1CarrierTransportationOrder$TransportationOrderIdTrucks.Get.Parameters.TransportationOrderId,\n        query: Api2Paths.ApiV1CarrierTransportationOrder$TransportationOrderIdTrucks.Get.QueryParameters,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1CarrierTransportationOrder$TransportationOrderIdTrucks.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1CarrierTransportationOrder$TransportationOrderIdTrucks.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/carrier/transportationOrder/${transportationOrderId}/trucks`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    findTrailersForTourByPlateNumber = async (\n        transportationOrderId: Api2Paths.ApiV1CarrierTransportationOrder$TransportationOrderIdTrailers.Get.Parameters.TransportationOrderId,\n        query: Api2Paths.ApiV1CarrierTransportationOrder$TransportationOrderIdTrailers.Get.QueryParameters,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1CarrierTransportationOrder$TransportationOrderIdTrailers.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1CarrierTransportationOrder$TransportationOrderIdTrailers.Get.Responses.$200>(\n            {\n                method: 'GET',\n                path: `/v1/carrier/transportationOrder/${transportationOrderId}/trailers`,\n                query,\n                expectedResponseContentType: 'json',\n            },\n        );\n    };\n\n    assignVehiclesToTransportOrder = async (\n        transportationOrderId: Api2Paths.ApiV1CarrierTransportationOrder$TransportationOrderIdAssignAssets.Post.Parameters.TransportationOrderId,\n        query: Api2Paths.ApiV1CarrierTransportationOrder$TransportationOrderIdAssignAssets.Post.QueryParameters,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1CarrierTransportationOrder$TransportationOrderIdAssignAssets.Post.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1CarrierTransportationOrder$TransportationOrderIdAssignAssets.Post.Responses.$200>(\n            {\n                method: 'POST',\n                path: `/v1/carrier/transportationOrder/${transportationOrderId}/assign-assets`,\n                query,\n                expectedResponseContentType: 'unknown',\n            },\n        );\n    };\n\n    unAssignVehicles = async (\n        transportationOrderId: Api2Paths.ApiV1CarrierTransportationOrder$TransportationOrderIdUnassignAssets.Post.Parameters.TransportationOrderId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1CarrierTransportationOrder$TransportationOrderIdUnassignAssets.Post.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1CarrierTransportationOrder$TransportationOrderIdUnassignAssets.Post.Responses.$200>(\n            {\n                method: 'POST',\n                path: `/v1/carrier/transportationOrder/${transportationOrderId}/unassign-assets`,\n                expectedResponseContentType: 'unknown',\n            },\n        );\n    };\n\n    fetchCarrierContract = async (\n        contractId: Api2Paths.ApiV1CompanyCarrierContracts$ContractIdSourceFile.Get.Parameters.ContractId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1CompanyCarrierContracts$ContractIdSourceFile.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1CompanyCarrierContracts$ContractIdSourceFile.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/company/carrier-contracts/${contractId}/source-file`,\n            expectedResponseContentType: 'blob',\n        });\n    };\n\n    uploadCarrierContract = async (\n        file: File,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1CompanyCarrierContracts.Post.Responses.$200>> => {\n        const formData = new FormData();\n        formData.append('file', file);\n\n        return this.doFetch<Api2Paths.ApiV1CompanyCarrierContracts.Post.Responses.$200>({\n            headers: {\n                'Content-Type': 'multipart/form-data',\n            },\n            data: formData,\n            method: 'POST',\n            path: `/v1/company/carrier-contracts`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    importXLSTrailers = async (\n        file: File,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrailersImport.Post.Responses.$201>> => {\n        const formData = new FormData();\n        formData.append('file', file);\n\n        return this.doFetch<Api2Paths.ApiV2CarrierTrailersImport.Post.Responses.$201>({\n            headers: {\n                'Content-Type': 'multipart/form-data',\n            },\n            data: formData,\n            method: 'POST',\n            path: `/v2/carrier/trailers/import`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    importXLSTrucks = async (\n        file: File,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrucksImport.Post.Responses.$201>> => {\n        const formData = new FormData();\n        formData.append('file', file);\n\n        return this.doFetch<Api2Paths.ApiV2CarrierTrucksImport.Post.Responses.$201>({\n            headers: {\n                'Content-Type': 'multipart/form-data',\n            },\n            data: formData,\n            method: 'POST',\n            path: `/v2/carrier/trucks/import`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    exportXLSTrailers = async (\n        query: Api2Paths.ApiV2CarrierTrailersExport.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrailersExport.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrailersExport.Get.Responses.$200>({\n            method: 'GET',\n            query,\n            path: `/v2/carrier/trailers/export`,\n            expectedResponseContentType: 'blob',\n        });\n    };\n\n    exportXLSTrucks = async (\n        query: Api2Paths.ApiV2CarrierTrucksExport.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrucksExport.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTrucksExport.Get.Responses.$200>({\n            method: 'GET',\n            query,\n            path: `/v2/carrier/trucks/export`,\n            expectedResponseContentType: 'blob',\n        });\n    };\n\n    attachPaperToShipment = async (\n        shipmentId: Api2Paths.ApiV1CarrierAttachedPapersShipment$ShipmentId.Post.Parameters.ShipmentId,\n        query: Api2Paths.ApiV1CarrierAttachedPapersShipment$ShipmentId.Post.QueryParameters,\n        data: Api2Paths.ApiV1CarrierAttachedPapersShipment$ShipmentId.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1CarrierAttachedPapersShipment$ShipmentId.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1CarrierAttachedPapersShipment$ShipmentId.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/carrier/attached-papers/shipment/${shipmentId}`,\n            query,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    attachPaperToTour = async (\n        tourId: Api2Paths.ApiV1CarrierAttachedPapersTour$TourId.Post.Parameters.TourId,\n        query: Api2Paths.ApiV1CarrierAttachedPapersTour$TourId.Post.QueryParameters,\n        data: Api2Paths.ApiV1CarrierAttachedPapersTour$TourId.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1CarrierAttachedPapersTour$TourId.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1CarrierAttachedPapersTour$TourId.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/carrier/attached-papers/tour/${tourId}`,\n            query,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    deleteAttachedPaper = async (\n        paperId: Api2Paths.ApiV1CarrierAttachedPapers$PaperIdDelete.Delete.Parameters.PaperId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1CarrierAttachedPapers$PaperIdDelete.Delete.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1CarrierAttachedPapers$PaperIdDelete.Delete.Responses.$200>({\n            method: 'DELETE',\n            path: `/v1/carrier/attached-papers/${paperId}/delete`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n}\n\nconst carrierTranziitApi = CarrierTranziitApi.getInstance();\n\nexport default carrierTranziitApi;\n","import { logWarning } from 'common/utils/logger';\n\ntype FeatureT = string;\ntype ParsedFeaturesConfigT = Set<FeatureT>;\n\nconst SEPARATOR = ',';\n\nconst parseFeaturesConfig = (stringifiedConfig: string | null | undefined): ParsedFeaturesConfigT => {\n    if (!stringifiedConfig) {\n        return new Set([]);\n    }\n\n    try {\n        return new Set(stringifiedConfig.split(SEPARATOR));\n    } catch (error) {\n        logWarning(error?.message);\n\n        return new Set([]);\n    }\n};\n\nexport enum ServerFeatureEnum {\n    spot = 'spot',\n}\n\nconst ALLOWED_FEATURES_SET = parseFeaturesConfig(window.ALLOWED_FEATURES);\nconst DEFAULT_ALLOWED_FEATURES_SET = new Set<ServerFeatureEnum>([ServerFeatureEnum.spot]);\n\nconst DISABLED_FEATURES_SET = parseFeaturesConfig(window.DISABLED_FEATURES);\nconst DEFAULT_DISABLED_FEATURES_SET = new Set<ServerFeatureEnum>([]);\n\nexport const checkActiveFeature = (feature: ServerFeatureEnum): boolean => {\n    const isAllowed = ALLOWED_FEATURES_SET.has(feature) || DEFAULT_ALLOWED_FEATURES_SET.has(feature);\n    const isDisabled = DISABLED_FEATURES_SET.has(feature) || DEFAULT_DISABLED_FEATURES_SET.has(feature);\n\n    return isAllowed && !isDisabled;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"contract-name\":\"ContractName__contract-name___TLkOK\",\"fadeIn\":\"ContractName__fadeIn___CRY0A\",\"blinking\":\"ContractName__blinking___sw75i\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './StartEditTimeWindowsFooter.scss';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\nimport TimeLeftForStart from 'common/layouts/sidebar-footers/TimeLeftForStart/TimeLeftForStart';\nimport TimeWindowIcon from 'common/icons/TimeWindowIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { ApiBrokerCommonTourDetailsT } from 'common/utils/api/models';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    tour: ApiBrokerCommonTourDetailsT | null;\n    onStartEditTimeWindows: () => void;\n    isDisableAnyActions: boolean;\n};\n\nconst StartEditTimeWindowsFooter: React.FC<PropsT> = React.memo((props) => {\n    const { tour, onStartEditTimeWindows, isDisableAnyActions } = props;\n\n    const { t } = useTranslation();\n\n    if (!tour) {\n        return null;\n    }\n\n    const firstWaypoint = tour?.waypoints?.[0] || null;\n    const deadline = firstWaypoint?.correctedDateTimeFrom || firstWaypoint?.originalDateTimeFrom || null;\n\n    return (\n        <TimeLeftForStart\n            deadline={deadline}\n            alreadyStartedLabel={t('assignment.tour-already-started')}\n            deadlineLabel={t('assignment.to-assign')}\n            renderActions={(isDisabled) => (\n                <Button\n                    leftIcon={\n                        <TimeWindowIcon\n                            fillColor={StyleGuideColorsEnum.transparent}\n                            strokeColor={StyleGuideColorsEnum.white}\n                        />\n                    }\n                    theme={ButtonThemeEnum.primary}\n                    className={cx('action', 'action--start')}\n                    onClick={onStartEditTimeWindows}\n                    isDisabled={isDisabled || isDisableAnyActions}\n                >\n                    {t('broker-order-details.edit-time-windows.actions.specify-time-slots')}\n                </Button>\n            )}\n        />\n    );\n});\n\nexport default StartEditTimeWindowsFooter;\n","// extracted by mini-css-extract-plugin\nexport default {\"zone-title\":\"TimeWindowZoneText__zone-title___SyjHj\",\"content\":\"TimeWindowZoneText__content___xPWCv\",\"content__left-icon\":\"TimeWindowZoneText__content__left-icon___YU5pa\",\"content__content\":\"TimeWindowZoneText__content__content___trTYK\",\"text\":\"TimeWindowZoneText__text___humDi\",\"fadeIn\":\"TimeWindowZoneText__fadeIn___Or0yu\",\"blinking\":\"TimeWindowZoneText__blinking___H2GTG\"};","import { BrokerTeamStateT } from './slice';\nimport { StateT } from '../models';\n\nexport const selectBrokerTeamsPages = (state: StateT): BrokerTeamStateT['pages'] => state.brokerTeams.pages;\n\nexport const selectBrokerTeamsQuery = (state: StateT): BrokerTeamStateT['query'] => state.brokerTeams.query;\n\nexport const selectBrokerTeamsTotal = (state: StateT): BrokerTeamStateT['total'] => state.brokerTeams.total;\n\nexport const selectBrokerTeamsByIds = (state: StateT): BrokerTeamStateT['byId'] => state.brokerTeams.byId;\n","// extracted by mini-css-extract-plugin\nexport default {\"field--trailer-type\":\"ShipperContractLaneCreationForm__field--trailer-type___SPD15\",\"field--emission-class\":\"ShipperContractLaneCreationForm__field--emission-class___gSOdZ\",\"field--location\":\"ShipperContractLaneCreationForm__field--location___XWQRz\",\"field--radius\":\"ShipperContractLaneCreationForm__field--radius___YR1WF\",\"field--date\":\"ShipperContractLaneCreationForm__field--date___O7d7P\",\"field--limit\":\"ShipperContractLaneCreationForm__field--limit___f_TNF\",\"field--external-lane-id\":\"ShipperContractLaneCreationForm__field--external-lane-id___INLdJ\",\"calculate\":\"ShipperContractLaneCreationForm__calculate___E0W7H\",\"fadeIn\":\"ShipperContractLaneCreationForm__fadeIn___brFqP\",\"blinking\":\"ShipperContractLaneCreationForm__blinking___LmJx3\"};","\n      import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js!./override.css\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n      options.insert = insertFn.bind(null, \"head\");\n    \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js!./override.css\";\n       export default content && content.locals ? content.locals : undefined;\n","import { FetchBrokerOrdersPageQueryT } from 'broker-admin/store/broker-orders/models';\nimport { BrokerOrdersQuickFilterEnum, BrokerOrdersSortEnum } from 'common/utils/api/models';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from './query-models';\nimport { PageSortT, SortDirectionEnum } from 'common/utils/query';\n\nconst getQueryFromQuickFilters = (quickFilter?: BrokerOrdersQuickFilterEnum): FetchBrokerOrdersPageQueryT => {\n    switch (quickFilter) {\n        case BrokerOrdersQuickFilterEnum.new: {\n            return {\n                statusBar: 'NEW',\n            };\n        }\n        case BrokerOrdersQuickFilterEnum.carrierUnassigned: {\n            return {\n                statusBar: 'UNASSIGNED',\n            };\n        }\n        case BrokerOrdersQuickFilterEnum.carrierAssigned: {\n            return {\n                statusBar: 'ASSIGNED',\n            };\n        }\n        case BrokerOrdersQuickFilterEnum.inTransit: {\n            return {\n                statusBar: 'IN_TRANSIT',\n            };\n        }\n        case BrokerOrdersQuickFilterEnum.delivered: {\n            return {\n                statusBar: 'DELIVERED',\n            };\n        }\n        case BrokerOrdersQuickFilterEnum.canceled: {\n            return {\n                statusBar: 'CANCELED',\n            };\n        }\n        default: {\n            return {};\n        }\n    }\n};\n\nconst formatSort = (sort: PageSortT<BrokerOrdersSortEnum> | null): FetchBrokerOrdersPageQueryT['sorts'] | null => {\n    switch (sort?.value) {\n        case BrokerOrdersSortEnum.dropOffDate: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'DESTINATION_DATE_ASC';\n            }\n            return 'DESTINATION_DATE_DESC';\n        }\n        case BrokerOrdersSortEnum.pickupDate: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'ORIGIN_DATE_ASC';\n            }\n            return 'ORIGIN_DATE_DESC';\n        }\n        case BrokerOrdersSortEnum.createdDate: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'CREATED_DATE_ASC';\n            }\n            return 'CREATED_DATE_DESC';\n        }\n        default: {\n            return null;\n        }\n    }\n};\n\nconst prepareFetchPageQuery = (\n    queryFilters: QueryFiltersT,\n    sort: PageSortT<BrokerOrdersSortEnum> | null,\n): FetchBrokerOrdersPageQueryT => {\n    const dictTrailerId = queryFilters[QueryFiltersKeysEnum.dictTrailerId];\n\n    let hasSpotTransportationOrder: boolean | undefined =\n        queryFilters[QueryFiltersKeysEnum.spotTransportOrder] || undefined;\n    // WTF logic ?!?!?\n    if (queryFilters[QueryFiltersKeysEnum.contractedTransportOrder]) {\n        hasSpotTransportationOrder = false;\n    }\n\n    let hasSpotOrder: boolean | undefined = queryFilters[QueryFiltersKeysEnum.spotOrder] || undefined;\n    // WTF logic ?!?!?\n    if (queryFilters[QueryFiltersKeysEnum.contractedOrder]) {\n        hasSpotOrder = false;\n    }\n\n    const originAddress = queryFilters[QueryFiltersKeysEnum.originAddress];\n    const dropoffAddress = queryFilters[QueryFiltersKeysEnum.dropoffAddress];\n\n    const dropOffDateFrom = queryFilters[QueryFiltersKeysEnum.dropOffDateFrom];\n    const dropOffDateTo = queryFilters[QueryFiltersKeysEnum.dropOffDateTo];\n\n    const pickupDateFrom = queryFilters[QueryFiltersKeysEnum.pickupDateFrom];\n    const pickupDateTo = queryFilters[QueryFiltersKeysEnum.pickupDateTo];\n\n    const createdDateFrom = queryFilters[QueryFiltersKeysEnum.createdDateFrom];\n    const createdDateTo = queryFilters[QueryFiltersKeysEnum.createdDateTo];\n\n    const carrierId = queryFilters[QueryFiltersKeysEnum.carrierId];\n    const shipperId = queryFilters[QueryFiltersKeysEnum.shipperId];\n\n    const dispatcherId = queryFilters[QueryFiltersKeysEnum.dispatcherId];\n    const keyAccountManagerId = queryFilters[QueryFiltersKeysEnum.keyAccountManagerId];\n\n    const parsedDictTrailerId = typeof dictTrailerId === 'string' ? +dictTrailerId : null;\n\n    return {\n        originAddress: originAddress ? [originAddress] : undefined,\n        destinationAddress: dropoffAddress ? [dropoffAddress] : undefined,\n\n        destinationDateFrom: dropOffDateFrom || undefined,\n        destinationDateTo: dropOffDateTo || undefined,\n\n        originDateFrom: pickupDateFrom || undefined,\n        originDateTo: pickupDateTo || undefined,\n\n        createdDateFrom: createdDateFrom || undefined,\n        createdDateTo: createdDateTo || undefined,\n\n        paid: queryFilters[QueryFiltersKeysEnum.hasUnpaidOrders] ? false : undefined,\n\n        dictTrailerIds: typeof parsedDictTrailerId === 'number' ? [parsedDictTrailerId] : undefined,\n\n        carrierId: carrierId ? [carrierId] : undefined,\n        shipperId: shipperId ? [shipperId] : undefined,\n\n        dispatcherId: dispatcherId ? [dispatcherId] : undefined,\n        keyAccountManagerId: keyAccountManagerId ? [keyAccountManagerId] : undefined,\n\n        hasSpotTransportationOrder,\n        hasSpotOrder,\n\n        textSearch: queryFilters[QueryFiltersKeysEnum.searchText] || undefined,\n\n        runningOutOfTimeToAssignCarrier:\n            queryFilters[QueryFiltersKeysEnum.runningOutOfTimeToAssignCarrier] || undefined,\n        runOutOfTimeToAssignCarrier: queryFilters[QueryFiltersKeysEnum.runOutOfTimeToAssignCarrier] || undefined,\n        runningOutOfTimeToAssignAssets: queryFilters[QueryFiltersKeysEnum.runningOutOfTimeToAssignAssets] || undefined,\n        runOutOfTimeToAssignAssets: queryFilters[QueryFiltersKeysEnum.runOutOfTimeToAssignAssets] || undefined,\n        runningOutOfTimeToAssignDriver: queryFilters[QueryFiltersKeysEnum.runningOutOfTimeToAssignDriver] || undefined,\n        runOutOfTimeToAssignDriver: queryFilters[QueryFiltersKeysEnum.runOutOfTimeToAssignDriver] || undefined,\n        delaying: queryFilters[QueryFiltersKeysEnum.tourDelaying] || undefined,\n        noShow: queryFilters[QueryFiltersKeysEnum.noShow] || undefined,\n        missed: queryFilters[QueryFiltersKeysEnum.shipmentMissed] || undefined,\n\n        ...getQueryFromQuickFilters(queryFilters[QueryFiltersKeysEnum.quickFilter]),\n\n        sorts: formatSort(sort) || undefined,\n    };\n};\n\nexport { prepareFetchPageQuery };\n","// extracted by mini-css-extract-plugin\nexport default {\"radio\":\"PositionOption__radio___yUsOW\",\"radio__label\":\"PositionOption__radio__label___KVxA9\",\"fadeIn\":\"PositionOption__fadeIn___oOuSc\",\"blinking\":\"PositionOption__blinking___xVN8v\"};","import {\n    ACTIVATE_DRIVER,\n    ActivateDriverActionT,\n    ARCHIVE_DRIVER,\n    ArchiveDriverActionT,\n    CANCEL_DRIVER_INVITE,\n    CancelDriverInviteActionT,\n    DELETE_DRIVER_REQUEST,\n    DELETE_DRIVER_REQUEST_BEGIN,\n    DELETE_DRIVER_REQUEST_ERROR,\n    DELETE_DRIVER_REQUEST_SUCCESS,\n    DeleteDriverActionT,\n    DeleteDriverBeginActionT,\n    DeleteDriverErrorActionT,\n    DeleteDriverSuccessActionT,\n    FETCH_DRIVER_DETAILS_REQUEST,\n    FETCH_DRIVER_DETAILS_REQUEST_BEGIN,\n    FETCH_DRIVER_DETAILS_REQUEST_ERROR,\n    FETCH_DRIVER_DETAILS_REQUEST_SUCCESS,\n    FETCH_DRIVERS_PAGE_REQUEST,\n    FETCH_DRIVERS_PAGE_REQUEST_BEGIN,\n    FETCH_DRIVERS_PAGE_REQUEST_ERROR,\n    FETCH_DRIVERS_PAGE_REQUEST_SUCCESS,\n    FetchDriverDetailsActionT,\n    FetchDriverDetailsBeginActionT,\n    FetchDriverDetailsErrorActionT,\n    FetchDriverDetailsSuccessActionT,\n    FetchDriversPageActionT,\n    FetchDriversPageBeginActionT,\n    FetchDriversPageErrorActionT,\n    FetchDriversPageSuccessActionT,\n    INVITE_DRIVER_REQUEST,\n    INVITE_DRIVER_REQUEST_BEGIN,\n    INVITE_DRIVER_REQUEST_ERROR,\n    INVITE_DRIVER_REQUEST_SUCCESS,\n    InviteDriverActionT,\n    InviteDriverBeginActionT,\n    InviteDriverErrorActionT,\n    InviteDriverSuccessActionT,\n    ADD_DRIVER_REQUEST,\n    ADD_DRIVER_REQUEST_BEGIN,\n    ADD_DRIVER_REQUEST_ERROR,\n    ADD_DRIVER_REQUEST_SUCCESS,\n    AddDriverActionT,\n    AddDriverBeginActionT,\n    AddDriverErrorActionT,\n    AddDriverSuccessActionT,\n    RESET_DRIVERS,\n    ResetDriversActionT,\n    UPDATE_DRIVER_REQUEST,\n    UPDATE_DRIVER_REQUEST_BEGIN,\n    UPDATE_DRIVER_REQUEST_ERROR,\n    UPDATE_DRIVER_REQUEST_SUCCESS,\n    UpdateDriverActionT,\n    UpdateDriverBeginActionT,\n    UpdateDriverErrorActionT,\n    UpdateDriverSuccessActionT,\n} from './types';\nimport { CompanyDriverDetailsT, CompanyDriverT, FetchCompanyDriversPageQueryT } from './models';\n\nimport { ApiAddDriverRequestT, ApiInviteDriverRequestT, ApiUpdateDriverRequestT } from 'common/utils/api/models';\nimport { PageResponseT } from 'common/utils/pagination/models';\n\nexport const fetchDriversPage = (\n    pageNumber: PageNumberT,\n    query: FetchCompanyDriversPageQueryT,\n    companyId: CompanyIdT,\n    options?: FetchOptionsT,\n): FetchDriversPageActionT => {\n    return {\n        type: FETCH_DRIVERS_PAGE_REQUEST,\n        query,\n        pageNumber,\n        companyId,\n        options,\n    };\n};\n\nexport const fetchDriversPageBegin = (\n    query: FetchCompanyDriversPageQueryT,\n    pageNumber: PageNumberT,\n    companyId: CompanyIdT,\n): FetchDriversPageBeginActionT => ({\n    type: FETCH_DRIVERS_PAGE_REQUEST_BEGIN,\n    query,\n    pageNumber,\n    companyId,\n});\n\nexport const fetchDriversPageSuccess = (\n    query: FetchCompanyDriversPageQueryT,\n    pageNumber: PageNumberT,\n    pageResponse: PageResponseT<CompanyDriverT> | null,\n    companyId: CompanyIdT,\n): FetchDriversPageSuccessActionT => ({\n    type: FETCH_DRIVERS_PAGE_REQUEST_SUCCESS,\n    query,\n    pageResponse,\n    pageNumber,\n    companyId,\n});\n\nexport const fetchDriversPageError = (\n    query: FetchCompanyDriversPageQueryT,\n    pageNumber: PageNumberT,\n    error: Error,\n    companyId: CompanyIdT,\n): FetchDriversPageErrorActionT => ({\n    type: FETCH_DRIVERS_PAGE_REQUEST_ERROR,\n    query,\n    pageNumber,\n    error,\n    companyId,\n});\n\nexport const resetDrivers = (\n    companyId: CompanyIdT,\n    mutationListOptions: MutationListOptionsT,\n): ResetDriversActionT => ({\n    type: RESET_DRIVERS,\n    companyId,\n    mutationListOptions,\n});\n\nexport const inviteDriver = (newDriver: ApiInviteDriverRequestT, companyId: CompanyIdT): InviteDriverActionT => ({\n    type: INVITE_DRIVER_REQUEST,\n    newDriver,\n    companyId,\n});\n\nexport const inviteDriverBegin = (companyId: CompanyIdT): InviteDriverBeginActionT => ({\n    type: INVITE_DRIVER_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const inviteDriverSuccess = (companyId: CompanyIdT): InviteDriverSuccessActionT => ({\n    type: INVITE_DRIVER_REQUEST_SUCCESS,\n    companyId,\n});\n\nexport const inviteDriverError = (error: Error, companyId: CompanyIdT): InviteDriverErrorActionT => ({\n    type: INVITE_DRIVER_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const addDriver = (newDriver: ApiAddDriverRequestT, companyId: CompanyIdT): AddDriverActionT => ({\n    type: ADD_DRIVER_REQUEST,\n    newDriver,\n    companyId,\n});\n\nexport const addDriverBegin = (companyId: CompanyIdT): AddDriverBeginActionT => ({\n    type: ADD_DRIVER_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const addDriverSuccess = (companyId: CompanyIdT): AddDriverSuccessActionT => ({\n    type: ADD_DRIVER_REQUEST_SUCCESS,\n    companyId,\n});\n\nexport const addDriverError = (error: Error, companyId: CompanyIdT): AddDriverErrorActionT => ({\n    type: ADD_DRIVER_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const deleteDriver = (driverId: DriverIdT, companyId: CompanyIdT): DeleteDriverActionT => ({\n    type: DELETE_DRIVER_REQUEST,\n    driverId,\n    companyId,\n});\n\nexport const deleteDriverBegin = (companyId: CompanyIdT): DeleteDriverBeginActionT => ({\n    type: DELETE_DRIVER_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const deleteDriverSuccess = (companyId: CompanyIdT): DeleteDriverSuccessActionT => ({\n    type: DELETE_DRIVER_REQUEST_SUCCESS,\n    companyId,\n});\n\nexport const deleteDriverError = (error: Error, companyId: CompanyIdT): DeleteDriverErrorActionT => ({\n    type: DELETE_DRIVER_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const updateDriver = (\n    driverId: DriverIdT,\n    driverChanges: ApiUpdateDriverRequestT,\n    companyId: CompanyIdT,\n): UpdateDriverActionT => ({\n    type: UPDATE_DRIVER_REQUEST,\n    driverId,\n    driverChanges,\n    companyId,\n});\n\nexport const activateDriver = (driverId: DriverIdT, companyId: CompanyIdT): ActivateDriverActionT => ({\n    type: ACTIVATE_DRIVER,\n    driverId,\n    companyId,\n});\n\nexport const cancelDriverInvite = (driverUserId: UserIdT, companyId: CompanyIdT): CancelDriverInviteActionT => ({\n    type: CANCEL_DRIVER_INVITE,\n    driverUserId,\n    companyId,\n});\n\nexport const archiveDriver = (driverId: DriverIdT, companyId: CompanyIdT): ArchiveDriverActionT => ({\n    type: ARCHIVE_DRIVER,\n    driverId,\n    companyId,\n});\n\nexport const updateDriverBegin = (companyId: CompanyIdT): UpdateDriverBeginActionT => ({\n    type: UPDATE_DRIVER_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const updateDriverSuccess = (companyId: CompanyIdT): UpdateDriverSuccessActionT => ({\n    type: UPDATE_DRIVER_REQUEST_SUCCESS,\n    companyId,\n});\n\nexport const updateDriverError = (error: Error, companyId: CompanyIdT): UpdateDriverErrorActionT => ({\n    type: UPDATE_DRIVER_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const fetchDriverDetails = (\n    driverId: DriverIdT,\n    companyId: CompanyIdT,\n    fetchOptions: FetchOptionsT,\n): FetchDriverDetailsActionT => ({\n    type: FETCH_DRIVER_DETAILS_REQUEST,\n    driverId,\n    companyId,\n    fetchOptions,\n});\n\nexport const fetchDriverDetailsBegin = (companyId: CompanyIdT): FetchDriverDetailsBeginActionT => ({\n    type: FETCH_DRIVER_DETAILS_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const fetchDriverDetailsSuccess = (\n    driverId: DriverIdT,\n    details: CompanyDriverDetailsT | null,\n    companyId: CompanyIdT,\n): FetchDriverDetailsSuccessActionT => ({\n    type: FETCH_DRIVER_DETAILS_REQUEST_SUCCESS,\n    details,\n    driverId,\n    companyId,\n});\n\nexport const fetchDriverDetailsError = (error: Error, companyId: CompanyIdT): FetchDriverDetailsErrorActionT => ({\n    type: FETCH_DRIVER_DETAILS_REQUEST_ERROR,\n    error,\n    companyId,\n});\n","import * as React from 'react';\n\nimport cs from 'classnames';\n\nimport classNames from 'classnames/bind';\nimport styles from './ExcludedCountry.scss';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT<T extends string> = {\n    className?: string;\n    countryCode: T;\n    countryLabel?: React.ReactNode;\n    onClick: (countryCode: T) => void;\n};\n\nconst ExcludedCountry = <T extends string>(props: PropsT<T>) => {\n    const { className, countryCode, countryLabel, onClick } = props;\n\n    return (\n        <div className={cs(className, cx('wrap'))}>\n            <div className={cx('inner')}>\n                <Tooltip\n                    tooltipNode={\n                        countryLabel ? (\n                            <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                {countryLabel}\n                            </TooltipContent>\n                        ) : null\n                    }\n                    delay={500}\n                    position={TooltipPositionEnum.bottomCenter}\n                    theme={TooltipThemeEnum.black}\n                >\n                    {(isShow, childrenClassName) => (\n                        <FlagIcon countryCode={countryCode} className={cs(cx('flag'), childrenClassName)} />\n                    )}\n                </Tooltip>\n                <div\n                    className={cx('close')}\n                    onClick={() => {\n                        onClick(countryCode);\n                    }}\n                >\n                    <CloseIcon fillColor=\"currentColor\" />\n                </div>\n            </div>\n        </div>\n    );\n};\n\nexport default React.memo(ExcludedCountry) as typeof ExcludedCountry;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"MapControlsLayout__container___dlil_\",\"row\":\"MapControlsLayout__row___vDzBg\",\"row--center\":\"MapControlsLayout__row--center___vZUyF\",\"fadeIn\":\"MapControlsLayout__fadeIn___slDfD\",\"blinking\":\"MapControlsLayout__blinking___YEmSq\"};","import { TrailerStatusEnum } from 'common/utils/api/models';\nimport { CountryCodeT } from 'common/store/countries-dict/models';\n\nexport enum QueryFiltersKeysEnum {\n    plateNumber = 'plateNumber',\n\n    dictTrailerTypeId = 'dictTrailerTypeId',\n    status = 'status',\n    country = 'country',\n\n    contractId = 'contractId',\n    contractName = 'contractName',\n\n    createdDateFrom = 'createdDateFrom',\n    createdDateTo = 'createdDateTo',\n    createdByUserId = 'createdByUserId',\n    createdByUserName = 'createdByUserName',\n\n    lastModifyDateFrom = 'lastModifyDateFrom',\n    lastModifyDateTo = 'lastModifyDateTo',\n    lastModifyByUserId = 'lastModifyByUserId',\n    lastModifyByUserName = 'lastModifyByUserName',\n\n    lastTelematicUpdateDateFrom = 'lastTelematicUpdateDateFrom',\n    lastTelematicUpdateDateTo = 'lastTelematicUpdateDateTo',\n}\n\nexport type QueryFiltersT = Partial<{\n    [QueryFiltersKeysEnum.dictTrailerTypeId]: QueryParam.ArrayT<string>;\n\n    [QueryFiltersKeysEnum.plateNumber]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.status]: QueryParam.ArrayT<TrailerStatusEnum>;\n\n    [QueryFiltersKeysEnum.country]: QueryParam.ArrayT<CountryCodeT>;\n\n    [QueryFiltersKeysEnum.createdDateFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdDateTo]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdByUserId]: QueryParam.ArrayT<string>;\n    [QueryFiltersKeysEnum.createdByUserName]: QueryParam.ArrayT<string>;\n\n    [QueryFiltersKeysEnum.contractId]: QueryParam.ArrayT<string>;\n    [QueryFiltersKeysEnum.contractName]: QueryParam.ArrayT<string>;\n\n    [QueryFiltersKeysEnum.lastModifyDateFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.lastModifyDateTo]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.lastModifyByUserId]: QueryParam.ArrayT<string>;\n    [QueryFiltersKeysEnum.lastModifyByUserName]: QueryParam.ArrayT<string>;\n\n    [QueryFiltersKeysEnum.lastTelematicUpdateDateFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.lastTelematicUpdateDateTo]: QueryParam.StringT;\n}>;\n\nexport enum QueryKeysEnum {\n    trailersPage = 'trailers-page',\n    trailersSort = 'trailers-sort',\n    trailersFilters = 'trailers-filters',\n    trailersTab = 'trailers-tab',\n}\n\nexport enum TrailersSortEnum {\n    createdDate = 'createdDate',\n    archiveDate = 'archiveData',\n}\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PartnerTrucksPage.scss';\nimport TrucksPageLayout from 'common/layouts/TrucksPageLayout/TrucksPageLayout';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    onOpenUserDetails: (userId: UserIdT | null, isBrokerUser?: boolean) => void;\n};\n\nconst PartnerTrucksPage: React.FC<PropsT> = React.memo((props) => {\n    const { onOpenUserDetails } = props;\n\n    return <TrucksPageLayout onOpenUserDetails={onOpenUserDetails} />;\n});\n\nexport default PartnerTrucksPage;\n","import React from 'react';\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { findShippersById, findShippersByQuery } from 'common/store/shipper-suggest/actions';\nimport {\n    selectFindShippersRequest,\n    selectShippersById,\n    selectShippersIds,\n} from 'common/store/shipper-suggest/selectors';\nimport { PartnerT } from 'common/store/shipper-suggest/models';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport { ALL_SHIPPERS_ID } from 'common/store/shipper-suggest/constants';\nimport { useTranslation } from 'react-i18next';\nimport ShipperIcon, { ShipperIconProps } from 'common/icons/ShipperIcon';\nimport DropdownSearchInput from 'design-system/components/dropdowns/DropdownSearchInput/DropdownSearchInput';\nimport { CountryCodeT } from 'common/store/countries-dict/models';\n\ntype PartnerIdT = PartnerT['id'];\n\ntype ValueT = PartnerIdT | null;\n\ntype OptionT = {\n    id: ValueT;\n    name: string;\n    number: string;\n    countryCode: CountryCodeT | null;\n};\n\nexport type PropsT = {\n    className?: string;\n    initialValue: ValueT;\n    initialLabel: string;\n    hasAllOption?: boolean;\n    onSelect: (value: ValueT, name: string) => void;\n    value: ValueT;\n    overlayPosition: DropdownOverlayPositionEnum;\n    hasClearControl?: InputPropsT['hasClearControl'];\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    placeholder: InputPropsT['placeholder'];\n    onBlur: InputPropsT['onBlur'];\n    onFocus: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasChanges?: boolean;\n};\n\nconst ShipperSuggest: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        initialValue,\n        initialLabel,\n        hasAllOption,\n        value,\n        onSelect,\n        hasWarning,\n        hasError,\n        hasClearControl,\n        overlayPosition,\n        isDisabled,\n        placeholder,\n        onBlur,\n        onFocus,\n        hasChanges,\n    } = props;\n\n    const dispatch = useDispatch();\n\n    const ids = useSelector(selectShippersIds);\n    const byId = useSelector(selectShippersById);\n    const requestStatus = useSelector(selectFindShippersRequest);\n\n    const { t } = useTranslation();\n\n    const options = React.useMemo(() => {\n        const options = ids\n            .filter((id) => byId[id])\n            .map((id): OptionT => {\n                const partner = byId[id];\n\n                return {\n                    id: partner.id || null,\n                    name: partner.name || '',\n                    number: partner.number || '',\n                    countryCode: partner?.legalAddress?.country || null,\n                };\n            });\n\n        if (hasAllOption) {\n            options.push({\n                id: ALL_SHIPPERS_ID,\n                name: t('common:partner-suggest.all'),\n                number: '',\n                countryCode: null,\n            });\n        }\n\n        return options;\n    }, [t, ids, byId, hasAllOption]);\n\n    React.useEffect(() => {\n        if (initialValue === ALL_SHIPPERS_ID) {\n            return;\n        }\n\n        if (initialValue && !byId[initialValue]) {\n            dispatch(findShippersById(initialValue, initialLabel));\n        }\n\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [initialValue]);\n\n    const handleChangeQuery = React.useCallback(\n        (query: string): void => {\n            dispatch(findShippersByQuery(query));\n        },\n        [dispatch],\n    );\n\n    const handleSelect = (value: ValueT) => {\n        const partner = byId[value as string];\n\n        onSelect(value || null, partner?.name || '');\n    };\n\n    const handleReset = () => {\n        onSelect(null, '');\n    };\n\n    const handleFocus: InputPropsT['onFocus'] = () => {\n        if (onFocus) {\n            onFocus();\n        }\n    };\n\n    const renderOption = (option: OptionT | undefined, placeholder?: string): React.ReactNode => {\n        if (!option) {\n            return placeholder;\n        }\n\n        return (\n            <DropdownControlOptionLabel\n                withoutPaddings\n                icon={option.countryCode ? <FlagIcon countryCode={option.countryCode} /> : null}\n                label={option.name || ''}\n                description={option.number || ''}\n            />\n        );\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option.id;\n\n    return (\n        <DropdownSearchInput<OptionT, ValueT>\n            className={className}\n            selectedValue={value}\n            placeholder={placeholder}\n            options={options}\n            isDisabled={isDisabled}\n            onSelect={handleSelect}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            onChangeQuery={handleChangeQuery}\n            renderOption={renderOption}\n            renderTrigger={renderOption}\n            getOptionValue={getOptionValue}\n            hasChanges={hasChanges}\n            renderLeftIcon={(iconMeta) => <ShipperIcon {...ShipperIconProps.getControlProps(iconMeta)} />}\n            onBlur={onBlur}\n            onFocus={handleFocus}\n            overlayPosition={overlayPosition}\n            isLoading={requestStatus.loading}\n            onReset={hasClearControl ? handleReset : undefined}\n        />\n    );\n};\n\nexport default ShipperSuggest;\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkNotEmpty, checkPhoneNumber } from 'common/utils/form-validators';\n\nconst REQUIRED_FIELDS = [FieldsEnum.phone] as const;\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n        ...checkPhoneNumber(t, REQUIRED_FIELDS, values),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","import * as React from 'react';\nimport { useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport FilterPills, { FilterPillsConfigT } from 'common/components/FilterPills/FilterPills';\nimport { FilterPillThemeEnum } from 'common/components/FilterPills/FilterPill/FilterPill';\nimport { pillIconRendererMap } from 'common/components/FilterPills/pill-renderers';\nimport { selectCountriesByCode } from 'common/store/countries-dict/selectors';\nimport { CountryCodeT } from 'common/store/countries-dict/models';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from '../query-models';\n\ntype PropsT = {\n    isCompact?: boolean;\n    queryFilters: QueryFiltersT;\n    setQueryFilters: (queryFilters: QueryFiltersT) => void;\n};\n\nconst SelectedFilters: React.FC<PropsT> = React.memo((props) => {\n    const { isCompact, queryFilters, setQueryFilters } = props;\n    const { t } = useTranslation();\n    const countriesByCode = useSelector(selectCountriesByCode);\n\n    const filterPillsConfig = React.useMemo(\n        (): FilterPillsConfigT<QueryFiltersT> => [\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                renderIcon: (filters, compact) =>\n                    pillIconRendererMap.avatar(filters[QueryFiltersKeysEnum.keyAccountManagerName], compact),\n                render: (filters) =>\n                    t('partner.filters.filters-view.key-account-manager', {\n                        value: filters[QueryFiltersKeysEnum.keyAccountManagerName],\n                    }),\n                clearKeys: [QueryFiltersKeysEnum.keyAccountManagerId, QueryFiltersKeysEnum.keyAccountManagerName],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                renderIcon: (filters, compact) =>\n                    pillIconRendererMap.avatar(filters[QueryFiltersKeysEnum.dispatcherName], compact),\n                render: (filters) =>\n                    t('partner.filters.filters-view.dispatcher', {\n                        value: filters[QueryFiltersKeysEnum.dispatcherName],\n                    }),\n                clearKeys: [QueryFiltersKeysEnum.dispatcherId, QueryFiltersKeysEnum.dispatcherName],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: (filters) => {\n                    const countryCode = filters[QueryFiltersKeysEnum.countryCode];\n                    const country = countriesByCode[countryCode as CountryCodeT];\n\n                    return t('partner.filters.filters-view.country', {\n                        value: country?.userLangDisplayName || countryCode,\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.countryCode],\n            },\n        ],\n        [countriesByCode, t],\n    );\n\n    return (\n        <FilterPills<QueryFiltersT>\n            isCompact={isCompact}\n            queryFilters={queryFilters}\n            setQueryFilters={setQueryFilters}\n            config={filterPillsConfig}\n        />\n    );\n});\n\nexport default SelectedFilters;\n","// extracted by mini-css-extract-plugin\nexport default {\"address\":\"LocationCell__address___yyeDj\",\"time\":\"LocationCell__time___Qrpkq\",\"time--isSmallFont\":\"LocationCell__time--isSmallFont___VuMSk\",\"fadeIn\":\"LocationCell__fadeIn___crtNB\",\"blinking\":\"LocationCell__blinking___x4X4l\"};","import { ApiContactFormalEnum, CountryCodeT } from 'common/utils/api/models';\nimport { SocialMediaEnum } from 'common/constants';\n\nexport enum FieldsEnum {\n    id = 'id',\n\n    formal = 'formal',\n    firstName = 'firstName',\n    lastName = 'lastName',\n\n    desktopPhone = 'desktopPhone',\n\n    whatsapp = 'whatsapp',\n    viber = 'viber',\n    telegram = 'telegram',\n    msTeams = 'msTeams',\n\n    address = 'address',\n\n    birthday = 'birthday',\n    countryCode = 'countryCode',\n    language = 'language',\n\n    ratePerKm = 'ratePerKm',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.id]: string | null;\n\n    [FieldsEnum.formal]: ApiContactFormalEnum;\n    [FieldsEnum.firstName]: string;\n    [FieldsEnum.lastName]: string;\n\n    [FieldsEnum.desktopPhone]: string;\n\n    [FieldsEnum.whatsapp]?: string;\n    [FieldsEnum.viber]?: string;\n    [FieldsEnum.telegram]?: string;\n    [FieldsEnum.msTeams]?: string;\n\n    [FieldsEnum.address]: string;\n\n    [FieldsEnum.birthday]: Date | null;\n    [FieldsEnum.countryCode]: CountryCodeT | null;\n    [FieldsEnum.language]: string | null;\n\n    [FieldsEnum.ratePerKm]: string;\n};\n\nexport const MEDIA_FIELDS_NAME = [\n    SocialMediaEnum.whatsapp,\n    SocialMediaEnum.viber,\n    SocialMediaEnum.telegram,\n    SocialMediaEnum.msTeams,\n] as const;\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './EditDriverFormContent/constants';\nimport {\n    checkBirthday,\n    checkNotEmpty,\n    checkDate,\n    checkPhoneNumber,\n    checkNotEmptyString,\n    checkIsPositiveNumberValue,\n} from 'common/utils/form-validators';\n\nconst REQUIRED_FIELDS = [FieldsEnum.firstName, FieldsEnum.lastName, FieldsEnum.ratePerKm, FieldsEnum.language] as const;\nconst BIRTHDAY_FIELDS = [FieldsEnum.birthday] as const;\nconst DATE_FIELDS = [FieldsEnum.birthday] as const;\nconst PHONE_FIELDS = [FieldsEnum.desktopPhone] as const;\nconst MEDIA_FIELDS = [FieldsEnum.whatsapp, FieldsEnum.viber, FieldsEnum.telegram, FieldsEnum.msTeams] as const;\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n        ...checkBirthday(t, BIRTHDAY_FIELDS, values),\n        ...checkDate(t, DATE_FIELDS, values),\n        ...checkPhoneNumber(t, PHONE_FIELDS, values),\n        ...checkNotEmptyString(t, MEDIA_FIELDS, values),\n        ...checkIsPositiveNumberValue(t, [FieldsEnum.ratePerKm], values),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './CityName.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    cityName: React.ReactNode;\n};\n\nconst CityName: React.FC<PropsT> = React.memo((props) => {\n    const { cityName } = props;\n\n    return <span className={cx('city')}>{cityName}</span>;\n});\n\nexport default CityName;\n","// extracted by mini-css-extract-plugin\nexport default {\"skeleton\":\"SkeletonFormatter__skeleton___WhXu9\",\"fadeIn\":\"SkeletonFormatter__fadeIn___iLk7Y\",\"blinking\":\"SkeletonFormatter__blinking___uwWZc\"};","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './DropdownControl.scss';\nimport { DropdownOverlayPositionEnum } from '../constants';\nimport DropdownBaseLayout from 'design-system/components/dropdowns/base/DropdownBaseLayout/DropdownBaseLayout';\nimport { CheckboxThemeEnum } from 'design-system/components/Checkbox/Checkbox';\n\nconst cx = classNames.bind(styles);\n\nexport type DropdownControlOptionT = {\n    label: React.ReactNode;\n    onSelect: () => void;\n    isDisabled?: boolean;\n    testSelector?: string;\n    checkboxTheme?: CheckboxThemeEnum;\n};\n\ntype OpenTriggerT = (event: React.MouseEvent<HTMLElement>) => void;\n\nexport enum SpecialOptionEnum {\n    separator = 'special-option-separator',\n}\n\nconst allSpecialOptions = Object.values(SpecialOptionEnum);\n\nexport const checkIsSpecialOption = (option: TODO): option is SpecialOptionEnum => {\n    return allSpecialOptions.includes(option);\n};\n\nexport const checkIsNotEmptyOptions = (options: Array<DropdownControlOptionT | SpecialOptionEnum | null | undefined>) =>\n    options.some((item) => item && !checkIsSpecialOption(item));\n\nexport type DropdownControlRenderTriggerT = (isActive: boolean, onClick: OpenTriggerT) => React.ReactElement;\n\nexport type DropdownControlPropsT = {\n    isInline?: boolean;\n    isFullWidth?: boolean;\n    isDisabled?: boolean;\n    options: Array<DropdownControlOptionT | SpecialOptionEnum | null | undefined>;\n    className?: string;\n    overlayClassName?: string;\n    renderTrigger: DropdownControlRenderTriggerT;\n    overlayPosition: DropdownOverlayPositionEnum;\n    testSelector?: string;\n    isShowTriggerForEmptyOptions?: boolean;\n};\n\nconst DropdownControl: React.FC<DropdownControlPropsT> = React.memo((props) => {\n    const {\n        options,\n        isInline,\n        isFullWidth,\n        isDisabled,\n        renderTrigger,\n        className,\n        overlayPosition,\n        overlayClassName,\n        isShowTriggerForEmptyOptions,\n        testSelector,\n    } = props;\n\n    const fullTestSelector = `${testSelector}_dropdown`;\n\n    const [isOpen, toggleOpen] = React.useState(false);\n\n    const handleOpen: OpenTriggerT = (event) => {\n        if (isDisabled) {\n            return;\n        }\n\n        if (event) {\n            event.stopPropagation();\n        }\n\n        toggleOpen(!isOpen);\n    };\n\n    const handleClose = (): void => {\n        toggleOpen(false);\n    };\n\n    const handleOuterEvent = (): void => {\n        handleClose();\n    };\n\n    const viewOptions = options.reduce<React.ReactNode[]>((viewOptions, option, index) => {\n        if (!option) {\n            return viewOptions;\n        }\n\n        if (checkIsSpecialOption(option)) {\n            viewOptions.push(<div key={index} className={cx('overlay__separator')} />);\n        } else {\n            const { label, onSelect, isDisabled: isDisabledOption } = option;\n\n            viewOptions.push(\n                <div\n                    key={index}\n                    className={cx('overlay__option', {\n                        'overlay__option--isDisabled': isDisabledOption,\n                    })}\n                    onClick={(event): void => {\n                        if (isDisabled || isDisabledOption) {\n                            return;\n                        }\n\n                        if (onSelect) {\n                            onSelect();\n                        }\n\n                        handleClose();\n                        event.stopPropagation();\n                    }}\n                    data-test-selector={`${fullTestSelector}_option_${option.testSelector || index}`}\n                >\n                    {label}\n                </div>,\n            );\n        }\n\n        return viewOptions;\n    }, []);\n\n    if (!viewOptions.length && !isShowTriggerForEmptyOptions) {\n        return null;\n    }\n\n    return (\n        <DropdownBaseLayout\n            withoutScroll\n            isOpen={isOpen}\n            isInline={isInline}\n            isFullWidth={isFullWidth}\n            overlayClassName={overlayClassName}\n            overlayPosition={overlayPosition}\n            className={className}\n            triggerNode={renderTrigger(isOpen, handleOpen)}\n            overlayNode={<>{viewOptions}</>}\n            onClose={handleOuterEvent}\n        />\n    );\n});\n\nexport default DropdownControl;\n","import moment from 'moment';\n\nexport const getVehicleScheduleAroundDateISO = (): ISODateTimeT => {\n    return moment().format();\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"ShippersSuggest__option___SV5uA\",\"fadeIn\":\"ShippersSuggest__fadeIn___DHCuu\",\"blinking\":\"ShippersSuggest__blinking___HXf5v\"};","import { FieldsEnum, FormValuesT } from './constants';\n\nconst DEFAULT_VALUES: FormValuesT = {\n    [FieldsEnum.name]: '',\n    [FieldsEnum.number]: '',\n\n    [FieldsEnum.activateDate]: null,\n    [FieldsEnum.validTillDate]: null,\n\n    [FieldsEnum.file]: null,\n};\n\nconst getInitialValues = (): FormValuesT => {\n    const values: FormValuesT = { ...DEFAULT_VALUES };\n\n    return values;\n};\n\nexport default getInitialValues;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './LeftCardLayout.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    cardNode: React.ReactNode;\n    testSelector?: string;\n};\n\nconst LeftCardLayout: React.FC<PropsT> = React.memo((props) => {\n    const { children, cardNode, testSelector } = props;\n\n    return (\n        <div className={cx('left-card-layout')} data-test-selector={testSelector}>\n            <div className={cx('left-card-layout__left')}>{cardNode}</div>\n            <div className={cx('left-card-layout__right')}>{children}</div>\n        </div>\n    );\n});\n\nexport default LeftCardLayout;\n","import { TFunction } from 'i18next';\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkMaxValue, checkMinValue, checkNotEmpty } from 'common/utils/form-validators';\nimport values from 'lodash/values';\n\nconst REQUIRED_FIELDS = values<FieldsEnum>(FieldsEnum);\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n        ...checkMinValue(t, [FieldsEnum.timeSlotToBoardFerry, FieldsEnum.timeSlotDisembarkFerry], values, 0),\n        ...checkMaxValue(t, [FieldsEnum.timeSlotToBoardFerry, FieldsEnum.timeSlotDisembarkFerry], values, 240),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst HourglassIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, strokeColor, ...rest } = props;\n\n    return (\n        <svg\n            xmlns=\"http://www.w3.org/2000/svg\"\n            xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n            width=\"20\"\n            height=\"20\"\n            viewBox=\"0 0 20 20\"\n            {...rest}\n        >\n            <defs>\n                <path id=\"aqzl7i901a\" d=\"M6.3 9.369l-2.7-2.7-2.7 2.7V11.7h5.4z\" />\n            </defs>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <g transform=\"translate(6.4 3.7)\">\n                    <use fill={strokeColor} xlinkHref=\"#aqzl7i901a\" />\n                    <use fill={fillColor} fillOpacity=\"0.7\" xlinkHref=\"#aqzl7i901a\" />\n                </g>\n                <path\n                    fill={strokeColor}\n                    d=\"M6.4 16.3h7.2v-3.6L10.9 10l2.7-2.7V3.7H6.4v3.6L9.1 10l-2.7 2.7v3.6zm.9-9.369V4.6h5.4v2.331l-2.7 2.7-2.7-2.7zm0 6.138l2.7-2.7 2.7 2.7V15.4H7.3v-2.331z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nHourglassIcon.displayName = 'HourglassIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.tomatoRed,\n    strokeColor: StyleGuideColorsEnum.gray,\n};\n\nexport { storyProps };\nexport default HourglassIcon;\n\nexport const HourglassIconProps = {\n    getCreateOrder: (): PropsT => {\n        return {\n            fillColor: StyleGuideColorsEnum.transparent,\n            strokeColor: StyleGuideColorsEnum.orange,\n        };\n    },\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"right-sidebar\":\"RightSidebarLayout__right-sidebar___vzsus\",\"fadeIn\":\"RightSidebarLayout__fadeIn___S2h1U\",\"blinking\":\"RightSidebarLayout__blinking___qlvWe\"};","import { TFunction } from 'i18next';\nimport { AsyncFormErrorsT, FieldsEnum } from './constants';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport {\n    checkIsTranziitApiRequestError,\n    TranziitApiRequestErrorSubTypeEnum,\n} from 'common/utils/api/tranziit/errors/tranziit-api-errors';\n\ntype MetaT = {\n    createRuleRequestStatus: RequestStatusT;\n    updateRulesRequestStatus: RequestStatusT;\n};\n\nconst asyncValidations = (t: TFunction, meta: MetaT): AsyncFormErrorsT => {\n    const errors: AsyncFormErrorsT = {};\n\n    const { createRuleRequestStatus, updateRulesRequestStatus } = meta;\n    const createError = createRuleRequestStatus.error;\n    const updateError = updateRulesRequestStatus.error;\n\n    if (\n        createError &&\n        checkIsTranziitApiRequestError(createError) &&\n        createError?.subType === TranziitApiRequestErrorSubTypeEnum.manualRateRuleCreation_InvalidZipsFrom\n    ) {\n        errors[FieldsEnum.fromCountryZipCodes] = t('common:form-errors.wrong-zip-format');\n    }\n\n    if (\n        updateError &&\n        checkIsTranziitApiRequestError(updateError) &&\n        updateError?.subType === TranziitApiRequestErrorSubTypeEnum.manualRateRuleUpdate_InvalidZipsFrom\n    ) {\n        errors[FieldsEnum.fromCountryZipCodes] = t('common:form-errors.wrong-zip-format');\n    }\n\n    if (\n        createError &&\n        checkIsTranziitApiRequestError(createError) &&\n        createError?.subType === TranziitApiRequestErrorSubTypeEnum.manualRateRuleCreation_InvalidZipsTo\n    ) {\n        errors[FieldsEnum.toCountryZipCodes] = t('common:form-errors.wrong-zip-format');\n    }\n\n    if (\n        updateError &&\n        checkIsTranziitApiRequestError(updateError) &&\n        updateError?.subType === TranziitApiRequestErrorSubTypeEnum.manualRateRuleUpdate_InvalidZipsTo\n    ) {\n        errors[FieldsEnum.toCountryZipCodes] = t('common:form-errors.wrong-zip-format');\n    }\n\n    return errors;\n};\n\nexport default asyncValidations;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\n\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport DatePicker, { DatePickerOverlayPositionEnum } from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport ShipperSuggest from 'broker-admin/components/dropdowns/ShipperSuggest/ShipperSuggest';\nimport PartnerUserSuggest from 'common/components/suggests/PartnerUserSuggest/PartnerUserSuggest';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { DEFAULT_BROKER_COMPANY_ID } from 'common/constants';\nimport { getDateFromDate, getEndDayFromDateZero, getStartDayFromDateZero } from 'common/utils/time';\nimport { RFQStatisticsSidebarDataT } from '../models';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport getInitialValues from './get-initial-values';\n\ntype PropsT = {\n    data: RFQStatisticsSidebarDataT;\n    onChange: (data: RFQStatisticsSidebarDataT) => void;\n};\n\nconst RFQStatisticsFilters: React.FC<PropsT> = ({ data, onChange }) => {\n    const { t } = useTranslation();\n    const initialValues = React.useMemo(() => getInitialValues(data), [data]);\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        initialValues,\n        onSubmit: () => undefined,\n    });\n\n    const handleDatesChange = React.useCallback(\n        (dates: DateRangeT | null) => {\n            formik.setFieldValue(FieldsEnum.dates, dates);\n            onChange({\n                ...data,\n                dateFrom: dates?.from ? getStartDayFromDateZero(getDateFromDate(dates.from)) : undefined,\n                dateTo: dates?.to ? getEndDayFromDateZero(getDateFromDate(dates.to)) : undefined,\n            });\n        },\n        [data, formik, onChange],\n    );\n\n    return (\n        <>\n            <FormikField\n                name={FieldsEnum.dates}\n                meta={formik.getFieldMeta(FieldsEnum.dates)}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n                withoutLabel\n            >\n                {(fieldProps) => (\n                    <DatePicker\n                        isRange\n                        value={formik.values[FieldsEnum.dates]}\n                        placeholder={t('rfq-statistics.filters.date-range.placeholder')}\n                        onChange={handleDatesChange}\n                        onBlur={fieldProps.onBlur}\n                        onFocus={fieldProps.onFocus}\n                        overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                        hasClearControl\n                    />\n                )}\n            </FormikField>\n            <FormikField\n                name={FieldsEnum.shipperId}\n                meta={formik.getFieldMeta(FieldsEnum.shipperId)}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n                withoutLabel\n            >\n                {(fieldProps) => (\n                    <ShipperSuggest\n                        value={formik.values[FieldsEnum.shipperId]}\n                        initialValue={initialValues[FieldsEnum.shipperId]}\n                        initialLabel={initialValues[FieldsEnum.shipperName] || ''}\n                        placeholder={t('rfq-statistics.filters.shipper.placeholder')}\n                        onSelect={(shipperId, shipperName) => {\n                            onChange({\n                                ...data,\n                                shipperId: shipperId || undefined,\n                                shipperName: shipperId ? shipperName : undefined,\n                            });\n                        }}\n                        hasError={fieldProps.hasError}\n                        hasWarning={fieldProps.hasWarning}\n                        onBlur={fieldProps.onBlur}\n                        onFocus={fieldProps.onFocus}\n                        overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                        hasClearControl\n                    />\n                )}\n            </FormikField>\n            <FormikField\n                name={FieldsEnum.userId}\n                meta={formik.getFieldMeta(FieldsEnum.userId)}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n                withoutLabel\n            >\n                {(fieldProps) => (\n                    <PartnerUserSuggest\n                        companyId={DEFAULT_BROKER_COMPANY_ID}\n                        value={formik.values[FieldsEnum.userId]}\n                        initialValue={initialValues[FieldsEnum.userId]}\n                        initialLabel={initialValues[FieldsEnum.userName]}\n                        placeholder={t('rfq-statistics.filters.created-by.placeholder')}\n                        onSelect={(userId, userName) => {\n                            onChange({\n                                ...data,\n                                userId: userId || undefined,\n                                userName: userId ? userName : undefined,\n                            });\n                        }}\n                        hasError={fieldProps.hasError}\n                        hasWarning={fieldProps.hasWarning}\n                        onBlur={fieldProps.onBlur}\n                        onFocus={fieldProps.onFocus}\n                        overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                        hasClearControl\n                    />\n                )}\n            </FormikField>\n        </>\n    );\n};\n\nexport default RFQStatisticsFilters;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './CreateCell.scss';\nimport { BrokerOrderShortT } from 'broker-admin/store/broker-orders/models';\nimport { CompanyTypeEnum } from 'common/constants';\nimport EventCell from 'common/components/Table/cell-renderers/EventCell/EventCell';\n\ntype PropsT = {\n    brokerOrderShort: BrokerOrderShortT;\n    onOpenPartnerDetails: (companyId: string, companyType: CompanyTypeEnum) => void;\n};\n\nconst cx = classNames.bind(styles);\n\nconst CreateCell: React.FC<PropsT> = React.memo((props) => {\n    const { brokerOrderShort, onOpenPartnerDetails } = props;\n\n    return (\n        <div className={cx('wrap')}>\n            <EventCell\n                userFullName={brokerOrderShort.shipperName}\n                userId={brokerOrderShort.shipperId}\n                date={brokerOrderShort.createdDate}\n                byBroker\n                openUserDetails={(serId: UserIdT) => {\n                    onOpenPartnerDetails(serId, CompanyTypeEnum.shipper);\n                }}\n            />\n        </div>\n    );\n});\n\nexport default CreateCell;\n","import * as React from 'react';\nimport { TFunction } from 'i18next';\nimport classNames from 'classnames/bind';\nimport styles from './EvidenceOfTaxDetailsForm.scss';\n\nimport { useFormik } from 'formik';\nimport { useTranslation } from 'react-i18next';\nimport { FieldsEnum, FormValuesT, AsyncFormErrorsT } from './constants';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport values from 'lodash/values';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport prepareApproveData from './prepare-approve-data';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectFetchEvidenceOfTaxDetails,\n    selectFetchEvidenceOfTaxDetailsRequest,\n    selectUpdateCompanyDocumentsRequest,\n    selectUpdateEvidenceOfTaxDetailsRequest,\n} from 'common/store/documents/selectors';\nimport {\n    approveEvidenceOfTaxDocument,\n    fetchEvidenceOfTaxDetails,\n    updateEvidenceOfTaxDetails,\n} from 'common/store/documents/actions';\nimport { logWarning } from 'common/utils/logger';\nimport Input from 'common/components/Input/Input';\nimport HiddenSubmitButtonForKeyboardEnter from 'common/components/HiddenEnterSubmitButton/HiddenSubmitButtonForKeyboardEnter';\nimport SideBarLoader from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLoader/SideBarLoader';\nimport { DocumentVersionT, EvidenceOfTaxDetailsChangesT } from 'common/store/documents/models';\nimport ApproveDocumentsConfirmation, {\n    BaseConfirmApproveDocumentModalDataT,\n} from 'common/layouts/BaseDocumentsLayout/dialogs/ApproveDocumentsConfirmation/ApproveDocumentsConfirmation';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport { DictDocumentT } from 'common/store/documents-dict/models';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport { useWatchFormAnyErrors } from 'common/utils/hooks/useWatchFormFormHasErrors';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport isEmpty from 'lodash/isEmpty';\nimport asyncValidate from './async-validations';\nimport useAsyncFormErrors from 'common/utils/hooks/useAsyncFormErrors';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport { TranziitApiRequestErrorSubTypeEnum } from 'common/utils/api/tranziit/errors/tranziit-api-errors';\n\nconst cx = classNames.bind(styles);\n\nconst ALL_FIELDS = values(FieldsEnum);\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(ALL_FIELDS);\n\ntype PropsT = {\n    isReview: boolean;\n    dictDocument: DictDocumentT | null;\n    actualVersion: DocumentVersionT | null;\n    setNeedCloseConfirmation: (needCloseConfirmation: boolean) => void;\n    partnerId: PartnerIdT | null;\n    partnerType: PartnerTypeEnum | null;\n};\n\ntype ConfirmApproveDocumentModalDataT = BaseConfirmApproveDocumentModalDataT<{\n    data: EvidenceOfTaxDetailsChangesT;\n    partnerType: PartnerTypeEnum;\n    dictDocumentId: DictDocumentFakeIdT;\n}>;\n\nconst renderAsyncError = (t: TFunction, asyncError: AsyncFormErrorsT[FieldsEnum.vatNumber]): string | null => {\n    if (asyncError === TranziitApiRequestErrorSubTypeEnum.evidenceOfTaxDetails_WrongVat) {\n        return t('common:document.validations.wrong-vat-number');\n    }\n\n    return asyncError || null;\n};\n\nconst EvidenceOfTaxDetailsForm: React.FC<PropsT> = React.memo((props) => {\n    const { isReview, actualVersion, dictDocument, setNeedCloseConfirmation, partnerId, partnerType } = props;\n\n    const dispatch = useDispatch();\n\n    const updateDocumentRequest = useSelector(selectUpdateCompanyDocumentsRequest(partnerId));\n    const updateEvidenceOfTaxDetailsRequest = useSelector(selectUpdateEvidenceOfTaxDetailsRequest(partnerId));\n\n    const confirmApproveDocumentModalDialog = useModalDialog<ConfirmApproveDocumentModalDataT>();\n\n    useCloseModalDialogAfterRequest(updateEvidenceOfTaxDetailsRequest, [confirmApproveDocumentModalDialog], {\n        shouldCloseOnError: true,\n    });\n\n    const isLoading = updateDocumentRequest.loading || updateEvidenceOfTaxDetailsRequest.loading;\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    React.useEffect(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in EvidenceOfTaxDetailsForm useEffect');\n            return;\n        }\n        dispatch(fetchEvidenceOfTaxDetails(partnerId));\n    }, [partnerId, dispatch]);\n\n    const evidenceOfTaxDetails = useSelector(selectFetchEvidenceOfTaxDetails(partnerId));\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues(evidenceOfTaxDetails);\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [evidenceOfTaxDetails]);\n\n    const handleConfirmApproveDocument = (data: ConfirmApproveDocumentModalDataT) => {\n        if (!actualVersion?.id) {\n            logWarning('failed handleConfirmApproveDocument, empty actualVersion?.id');\n            return;\n        }\n\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in handleConfirmApproveDocument');\n            return;\n        }\n        dispatch(\n            approveEvidenceOfTaxDocument(\n                partnerId,\n                partnerType,\n                actualVersion.id,\n                data.data.validTill || null,\n                data.data,\n            ),\n        );\n    };\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const approveData = prepareApproveData(values);\n\n            if (!actualVersion?.id) {\n                logWarning('failed to save evidence details, empty documentId');\n                return;\n            }\n\n            if (!dictDocument) {\n                logWarning('failed to save evidence details, empty dictDocument');\n                return;\n            }\n\n            if (!approveData) {\n                logWarning('failed to save evidence details, empty approveData');\n                return;\n            }\n\n            if (isReview) {\n                if (!partnerType) {\n                    logWarning('Empty partnerType in EvidenceOfTaxDetailsForm onSubmit');\n                    return;\n                }\n                confirmApproveDocumentModalDialog.setData({\n                    partnerType,\n                    dictDocumentId: dictDocument?.id,\n                    data: approveData,\n                });\n            } else {\n                if (!approveData.validTill) {\n                    logWarning('failed to save document, empty approveData.expiration');\n                    return;\n                }\n                if (!partnerId) {\n                    logWarning('Empty partnerId in EvidenceOfTaxDetailsForm onSubmit');\n                    return;\n                }\n\n                dispatch(updateEvidenceOfTaxDetails(partnerId, actualVersion.id, approveData));\n            }\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormCallbacks) {\n            remoteFormActionsContext.setRemoteFormCallbacks({\n                submit: formik.submitForm,\n                reset: formik.resetForm,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.submitForm, formik.resetForm]);\n\n    const asyncErrors = React.useMemo(() => {\n        return asyncValidate(t, updateEvidenceOfTaxDetailsRequest);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [t, updateEvidenceOfTaxDetailsRequest?.error]);\n\n    const { asyncFormErrors, resetAsyncFormErrors } = useAsyncFormErrors(asyncErrors);\n\n    const hasAsyncErrors = !isEmpty(asyncFormErrors);\n    const hasFormAnyErrors = useWatchFormAnyErrors(formik.errors);\n    const hasErrors = hasAsyncErrors || hasFormAnyErrors;\n\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormState) {\n            remoteFormActionsContext.setRemoteFormState({\n                hasChanges: hasAnyFieldValueChanges,\n                hasErrors,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasErrors, hasAnyFieldValueChanges]);\n\n    React.useEffect(() => {\n        return () => {\n            setNeedCloseConfirmation(false);\n        };\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    React.useEffect(() => {\n        if (hasAnyFieldValueChanges) {\n            setNeedCloseConfirmation(hasAnyFieldValueChanges);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasAnyFieldValueChanges]);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormRequest) {\n            remoteFormActionsContext.setRemoteFormRequest({\n                isLoading,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isLoading]);\n\n    const fetchEvidenceOfTaxDetailsRequest = useSelector(selectFetchEvidenceOfTaxDetailsRequest(partnerId));\n    if (fetchEvidenceOfTaxDetailsRequest.loading && !evidenceOfTaxDetails) {\n        return <SideBarLoader isRelative />;\n    }\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('wrap')}>\n            <FormikField\n                className={cx('field')}\n                name={FieldsEnum.taxId}\n                error={formik.errors[FieldsEnum.taxId]}\n                meta={formik.getFieldMeta(FieldsEnum.taxId)}\n                label={t('common:document.evidence-of-tax-details-form.tax-id.label')}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n            >\n                {(props) => (\n                    <Input\n                        name={FieldsEnum.taxId}\n                        value={formik.values[FieldsEnum.taxId]}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                    />\n                )}\n            </FormikField>\n            <FormikField\n                className={cx('field')}\n                name={FieldsEnum.vatNumber}\n                error={formik.errors[FieldsEnum.vatNumber]}\n                meta={formik.getFieldMeta(FieldsEnum.vatNumber)}\n                label={t('common:document.evidence-of-tax-details-form.vat-number.label')}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n                asyncError={renderAsyncError(t, asyncFormErrors[FieldsEnum.vatNumber])}\n                resetAsyncError={resetAsyncFormErrors}\n            >\n                {(props) => (\n                    <Input\n                        name={FieldsEnum.vatNumber}\n                        value={formik.values[FieldsEnum.vatNumber]}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                    />\n                )}\n            </FormikField>\n            <FormikField\n                className={cx('field')}\n                name={FieldsEnum.iban}\n                error={formik.errors[FieldsEnum.iban]}\n                meta={formik.getFieldMeta(FieldsEnum.iban)}\n                label={t('common:document.evidence-of-tax-details-form.iban.label')}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n            >\n                {(props) => (\n                    <Input\n                        name={FieldsEnum.iban}\n                        value={formik.values[FieldsEnum.iban]}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                    />\n                )}\n            </FormikField>\n            <FormikField\n                className={cx('field')}\n                name={FieldsEnum.bic}\n                error={formik.errors[FieldsEnum.bic]}\n                meta={formik.getFieldMeta(FieldsEnum.bic)}\n                label={t('common:document.evidence-of-tax-details-form.bic.label')}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n            >\n                {(props) => (\n                    <Input\n                        name={FieldsEnum.bic}\n                        value={formik.values[FieldsEnum.bic]}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                    />\n                )}\n            </FormikField>\n            <HiddenSubmitButtonForKeyboardEnter />\n            <ApproveDocumentsConfirmation\n                name={dictDocument?.name}\n                data={confirmApproveDocumentModalDialog.data}\n                onCancel={confirmApproveDocumentModalDialog.onCancel}\n                onClose={confirmApproveDocumentModalDialog.onClose}\n                onConfirm={handleConfirmApproveDocument}\n                isLoading={isLoading}\n            />\n            <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n        </form>\n    );\n});\n\nexport default EvidenceOfTaxDetailsForm;\n","import {\n    FETCH_SPOT_REQUESTS_STATS_REQUEST,\n    FETCH_SPOT_REQUESTS_STATS_REQUEST_BEGIN,\n    FETCH_SPOT_REQUESTS_STATS_REQUEST_ERROR,\n    FETCH_SPOT_REQUESTS_STATS_REQUEST_SUCCESS,\n    FetchSpotRequestsStatsActionT,\n    FetchSpotRequestsStatsBeginActionT,\n    FetchSpotRequestsStatsErrorActionT,\n    FetchSpotRequestsStatsSuccessActionT,\n} from './types';\nimport { ApiSpotRequestsStatsT } from 'broker-admin/utils/api/spot-broker-tranziit/models';\n\nexport const fetchSpotRequestsStats = (options?: FetchOptionsT): FetchSpotRequestsStatsActionT => ({\n    type: FETCH_SPOT_REQUESTS_STATS_REQUEST,\n    options,\n});\n\nexport const fetchSpotRequestsBegin = (): FetchSpotRequestsStatsBeginActionT => ({\n    type: FETCH_SPOT_REQUESTS_STATS_REQUEST_BEGIN,\n});\n\nexport const fetchSpotRequestsStatsSuccess = (\n    statistics: ApiSpotRequestsStatsT | null,\n): FetchSpotRequestsStatsSuccessActionT => ({\n    type: FETCH_SPOT_REQUESTS_STATS_REQUEST_SUCCESS,\n    statistics,\n});\n\nexport const fetchSpotRequestsStatsError = (error: Error): FetchSpotRequestsStatsErrorActionT => ({\n    type: FETCH_SPOT_REQUESTS_STATS_REQUEST_ERROR,\n    error,\n});\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { FETCH_TRANSPORT_ORDER_DETAILS_REQUEST, FetchTransportOrderDetailsRequestActionT } from './types';\nimport {\n    fetchTransportOrderDetailsBegin,\n    fetchTransportOrderDetailsError,\n    fetchTransportOrderDetailsSuccess,\n} from './actions';\nimport { selectTransportOrderDetailsRequestStatus } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { CompanyTypeEnum } from 'common/constants';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport carrierTranziitApi from 'carrier/utils/api/carrier-tranziit/api';\n\nconst getFetchTransportOrderDetailsSaga = (companyType: CompanyTypeEnum) => {\n    return function* fetchTransportOrderDetailsSaga(\n        action: FetchTransportOrderDetailsRequestActionT,\n    ): WrapGeneratorT<void> {\n        const { id, companyId, options } = action;\n\n        const requestStatus: ReReturnT<typeof selectTransportOrderDetailsRequestStatus> = yield select(\n            selectTransportOrderDetailsRequestStatus(id),\n        );\n        if (!checkNeedRequest(requestStatus, options)) {\n            return;\n        }\n\n        yield put(fetchTransportOrderDetailsBegin(id));\n\n        let result: ReturnApiT<\n            typeof brokerTranziitApi.getTransportOrderDetails | typeof carrierTranziitApi.getTransportOrderDetails\n        >;\n        if (companyType === CompanyTypeEnum.broker) {\n            result = yield brokerTranziitApi.getTransportOrderDetails(companyId, id);\n        } else {\n            result = yield carrierTranziitApi.getTransportOrderDetails(id);\n        }\n\n        const [error, transportOrderDetails] = result;\n\n        if (error) {\n            yield put(fetchTransportOrderDetailsError(id, error));\n        } else {\n            yield put(fetchTransportOrderDetailsSuccess(id, transportOrderDetails));\n        }\n    };\n};\n\nfunction* transportOrderDetailsSaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_TRANSPORT_ORDER_DETAILS_REQUEST, getFetchTransportOrderDetailsSaga(companyType));\n}\n\nexport default transportOrderDetailsSaga;\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkNotEmpty } from 'common/utils/form-validators';\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, [FieldsEnum.truckId, FieldsEnum.trailerId], values),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\n\ntype PropsT = {\n    transportationOrderNumber: React.ReactNode;\n    isRunOut: boolean;\n};\n\nconst TransportationOrderOutOfTimeToAssignAssetsCard: React.FC<PropsT> = React.memo((props) => {\n    const { transportationOrderNumber, isRunOut } = props;\n\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey={\n                    isRunOut\n                        ? 'common:notifications.transportation-order-run-out-of-time-to-assign-assets'\n                        : 'common:notifications.transportation-order-running-out-of-time-to-assign-assets'\n                }\n                components={{\n                    transportationOrderNumber: (\n                        <NotificationEntityLabel isBold isUnderline text={transportationOrderNumber} />\n                    ),\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default TransportationOrderOutOfTimeToAssignAssetsCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"RFQStats__form___qWcl2\",\"count\":\"RFQStats__count___DTYZt\",\"pill\":\"RFQStats__pill___aGPuI\",\"dates\":\"RFQStats__dates___yEPfv\",\"input-dates\":\"RFQStats__input-dates___EkoTs\",\"fadeIn\":\"RFQStats__fadeIn___ebHxm\",\"blinking\":\"RFQStats__blinking___LLOTD\"};","import { FeaturesContextValueT } from 'common/utils/hooks/useFeaturesContextValue';\nimport React from 'react';\n\nconst FeaturesContext = React.createContext<FeaturesContextValueT>({});\n\nexport default FeaturesContext;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"BaseShipperContractsLayout__fadeIn___cXSul\",\"blinking\":\"BaseShipperContractsLayout__blinking___rrQXr\"};","// extracted by mini-css-extract-plugin\nexport default {\"navigation\":\"Navigation__navigation___D_AJf\",\"navigation--isExpanded\":\"Navigation__navigation--isExpanded___EjJux\",\"inner\":\"Navigation__inner___b7mTs\",\"menu\":\"Navigation__menu___ODO_t\",\"logo\":\"Navigation__logo___rm2Ix\",\"logo__link\":\"Navigation__logo__link___yyb6H\",\"profile\":\"Navigation__profile___qoy7_\",\"profile--isExpanded\":\"Navigation__profile--isExpanded___DontC\",\"profile-item\":\"Navigation__profile-item___EMK2d\",\"menu-avatar\":\"Navigation__menu-avatar___Bp9O4\",\"menu-avatar__icon\":\"Navigation__menu-avatar__icon____eUM8\",\"menu-avatar__icon--isHovered\":\"Navigation__menu-avatar__icon--isHovered___BtMaH\",\"menu-avatar__icon--hasLinkMatch\":\"Navigation__menu-avatar__icon--hasLinkMatch___OO2YX\",\"menu-avatar__inner\":\"Navigation__menu-avatar__inner___hkaSw\",\"menu-avatar__user\":\"Navigation__menu-avatar__user___vpdeA\",\"menu-avatar__user--isInTooltip\":\"Navigation__menu-avatar__user--isInTooltip___YuWC8\",\"menu-avatar__company\":\"Navigation__menu-avatar__company___LdwZ6\",\"menu-company\":\"Navigation__menu-company___vHGDd\",\"menu-company__icon\":\"Navigation__menu-company__icon___z1GnK\",\"menu-company__icon--isHovered\":\"Navigation__menu-company__icon--isHovered___N_ua5\",\"menu-company__icon--hasLinkMatch\":\"Navigation__menu-company__icon--hasLinkMatch___Suk3P\",\"menu-company__inner\":\"Navigation__menu-company__inner___GJbSE\",\"menu-company__company\":\"Navigation__menu-company__company___mOzrt\",\"about\":\"Navigation__about___gmef2\",\"about__inner\":\"Navigation__about__inner___TgnGy\",\"about__copyright\":\"Navigation__about__copyright___zC4xa\",\"about__disclaimer\":\"Navigation__about__disclaimer___dsa45\",\"light-menu-item\":\"Navigation__light-menu-item___jox7Z\",\"light-menu-item__wrap\":\"Navigation__light-menu-item__wrap___tPjbH\",\"light-menu-item--isActive\":\"Navigation__light-menu-item--isActive____5Vv_\",\"light-menu-item--isClickable\":\"Navigation__light-menu-item--isClickable___nKuWG\",\"menu-item\":\"Navigation__menu-item___vPbcW\",\"menu-item__icon\":\"Navigation__menu-item__icon___KR37o\",\"menu-item__text\":\"Navigation__menu-item__text___X8bq0\",\"menu-item__text--isActive\":\"Navigation__menu-item__text--isActive___yrmyk\",\"menu-item--isActive\":\"Navigation__menu-item--isActive___Yt8TM\",\"menu-item--isClickable\":\"Navigation__menu-item--isClickable___q0rbb\",\"count\":\"Navigation__count___WJAkv\",\"tooltip\":\"Navigation__tooltip___CQHBu\",\"tooltip__text\":\"Navigation__tooltip__text___MrzxG\",\"tooltip--isMenuItem\":\"Navigation__tooltip--isMenuItem___UxKpG\",\"fadeIn\":\"Navigation__fadeIn___SPaeU\",\"blinking\":\"Navigation__blinking____nBPM\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ContractName.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    contractName: string;\n};\n\nconst ContractName: React.FC<PropsT> = React.memo((props) => {\n    const { contractName } = props;\n\n    return <span className={cx('contract-name')}>{contractName}</span>;\n});\n\nexport default ContractName;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"SpotRequestStatusPill__fadeIn___pCsFL\",\"blinking\":\"SpotRequestStatusPill__blinking___FfCge\"};","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport {\n    checkEmail,\n    checkMaxLength,\n    checkMinLength,\n    checkNotEmpty,\n    checkPhoneNumber,\n} from 'common/utils/form-validators';\n\nconst REQUIRED_FIELDS = [\n    FieldsEnum.firstName,\n    FieldsEnum.lastName,\n    FieldsEnum.email,\n    FieldsEnum.phone,\n    FieldsEnum.password,\n] as const;\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n\n        ...checkMinLength(t, [FieldsEnum.firstName, FieldsEnum.lastName], values, 2),\n        ...checkMaxLength(t, [FieldsEnum.firstName, FieldsEnum.lastName], values, 255),\n\n        ...checkMinLength(t, [FieldsEnum.password], values, 6),\n        ...checkMaxLength(t, [FieldsEnum.password], values, 255),\n\n        ...checkPhoneNumber(t, [FieldsEnum.phone], values),\n\n        ...checkEmail(t, [FieldsEnum.email], values),\n    };\n\n    const isAcceptTerms = values[FieldsEnum.acceptTerms];\n    if (!isAcceptTerms) {\n        errors[FieldsEnum.acceptTerms] = t('common:form-errors.accept-terms');\n    }\n\n    return errors;\n};\n\nexport default validate;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    updateBrokerTourBegin,\n    updateBrokerTourError,\n    updateBrokerTourSuccess,\n    updateTourShipment,\n    updateTourStopContact,\n} from './actions';\nimport { selectBrokerTourEditUpdateRequestStatus } from './selectors';\nimport { logWarning } from 'common/utils/logger';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { brokerToursRefreshChannel } from 'broker-admin/store/broker-tours/channels';\nimport { brokerTourDetailsRefreshChannel } from 'broker-admin/store/broker-tour-details/channels';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAlertTypeEnum, CommonAnyAlert } from 'common/components/toasts/AlertToastsManager/models';\nimport { BrokerStopChangesSourceEnum } from './types';\n\nfunction* updateTourShipmentSaga(action: ReturnType<typeof updateTourShipment>): WrapGeneratorT<void> {\n    const { brokerTourId, shipmentId, data } = action.payload;\n\n    if (!brokerTourId) {\n        logWarning('empty brokerTourId');\n        return;\n    }\n\n    const currentRequestStatus: ReReturnT<typeof selectBrokerTourEditUpdateRequestStatus> = yield select(\n        selectBrokerTourEditUpdateRequestStatus(brokerTourId),\n    );\n    if (currentRequestStatus.loading) {\n        return;\n    }\n\n    yield put(updateBrokerTourBegin({ brokerTourId }));\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.editOrderUpdateShipment> =\n        yield brokerTranziitApi.editOrderUpdateShipment(shipmentId, data);\n\n    if (error) {\n        yield put(updateBrokerTourError({ brokerTourId, error }));\n    } else {\n        yield put(updateBrokerTourSuccess({ brokerTourId }));\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.shipmentUpdated,\n                    data: {},\n                }),\n            ),\n        );\n    }\n\n    brokerTourDetailsRefreshChannel.emit({ brokerTourId });\n    brokerToursRefreshChannel.emit({});\n}\n\nfunction* updateTourStopContactSaga(action: ReturnType<typeof updateTourStopContact>): WrapGeneratorT<void> {\n    const { brokerTourId, stopId, data, source } = action.payload;\n\n    if (!brokerTourId) {\n        logWarning('empty brokerTourId');\n        return;\n    }\n\n    const currentRequestStatus: ReReturnT<typeof selectBrokerTourEditUpdateRequestStatus> = yield select(\n        selectBrokerTourEditUpdateRequestStatus(brokerTourId),\n    );\n    if (currentRequestStatus.loading) {\n        return;\n    }\n\n    yield put(updateBrokerTourBegin({ brokerTourId }));\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.editOrderUpdateStopContact> =\n        yield brokerTranziitApi.editOrderUpdateStopContact(stopId, data);\n\n    if (error) {\n        yield put(updateBrokerTourError({ brokerTourId, error }));\n    } else {\n        yield put(updateBrokerTourSuccess({ brokerTourId }));\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type:\n                        source === BrokerStopChangesSourceEnum.shipment\n                            ? CommonAlertTypeEnum.shipmentUpdated\n                            : CommonAlertTypeEnum.waypointContactUpdated,\n                    data: {},\n                }),\n            ),\n        );\n    }\n\n    brokerTourDetailsRefreshChannel.emit({ brokerTourId });\n    brokerToursRefreshChannel.emit({});\n}\n\nfunction* brokerTourEditSaga(): WrapGeneratorT<void> {\n    yield takeEvery(updateTourShipment.type, updateTourShipmentSaga);\n    yield takeEvery(updateTourStopContact.type, updateTourStopContactSaga);\n}\n\nexport default brokerTourEditSaga;\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"LaneDropdownInputOptionLabel__option___vBK17\",\"label\":\"LaneDropdownInputOptionLabel__label___XoEGh\",\"description\":\"LaneDropdownInputOptionLabel__description___PmuQE\",\"spacer\":\"LaneDropdownInputOptionLabel__spacer___B_avC\",\"price\":\"LaneDropdownInputOptionLabel__price___Wewag\",\"fadeIn\":\"LaneDropdownInputOptionLabel__fadeIn___xw3AA\",\"blinking\":\"LaneDropdownInputOptionLabel__blinking___fjf3J\"};","// extracted by mini-css-extract-plugin\nexport default {\"company-logo\":\"CompanyLogo__company-logo___NrEbo\",\"company-logo--size-small\":\"CompanyLogo__company-logo--size-small___eVts8\",\"company-logo--size-medium\":\"CompanyLogo__company-logo--size-medium___QRNBB\",\"company-logo--size-large\":\"CompanyLogo__company-logo--size-large___XiFiy\",\"company-logo--size-extra-large\":\"CompanyLogo__company-logo--size-extra-large___rpIap\",\"fadeIn\":\"CompanyLogo__fadeIn___aRob9\",\"blinking\":\"CompanyLogo__blinking___Mn7sl\"};","import { ViewEventChannel } from 'common/utils/view-event-channel';\nimport { AnyNotificationT } from 'common/store/notifications/models';\n\nexport const newNotificationsChannel = new ViewEventChannel<{\n    newNotifications: AnyNotificationT[];\n}>();\n","import { AsyncFormErrorsT, FieldsEnum } from './constants';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport {\n    checkIsTranziitApiRequestError,\n    TranziitApiRequestErrorSubTypeEnum,\n} from 'common/utils/api/tranziit/errors/tranziit-api-errors';\n\nconst asyncValidate = (addMemberRequestStatus: RequestStatusT): AsyncFormErrorsT => {\n    if (\n        checkIsTranziitApiRequestError(addMemberRequestStatus.error) &&\n        addMemberRequestStatus.error.subType === TranziitApiRequestErrorSubTypeEnum.emailAlreadyExist\n    ) {\n        return {\n            [FieldsEnum.email]: addMemberRequestStatus.error?.subType,\n        };\n    }\n\n    return {};\n};\n\nexport default asyncValidate;\n","import {\n    FETCH_SPOT_REQUESTS_PAGE_REQUEST,\n    FETCH_SPOT_REQUESTS_PAGE_REQUEST_BEGIN,\n    FETCH_SPOT_REQUESTS_PAGE_REQUEST_ERROR,\n    FETCH_SPOT_REQUESTS_PAGE_REQUEST_SUCCESS,\n    FetchSpotRequestsPageActionT,\n    FetchSpotRequestsPageBeginActionT,\n    FetchSpotRequestsPageErrorActionT,\n    FetchSpotRequestsPageSuccessActionT,\n    RESET_SPOT_REQUESTS,\n    ResetSpotRequestsActionT,\n} from './types';\nimport { SpotRequestT, FetchSpotRequestsPageQueryT } from './models';\nimport { PageResponseT } from 'common/utils/pagination/models';\n\nexport const fetchSpotRequestsPage = (\n    pageNumber: PageNumberT,\n    query: FetchSpotRequestsPageQueryT,\n    options?: FetchOptionsT,\n): FetchSpotRequestsPageActionT => ({\n    type: FETCH_SPOT_REQUESTS_PAGE_REQUEST,\n    query,\n    pageNumber,\n    options,\n});\n\nexport const fetchSpotRequestsPageBegin = (\n    query: FetchSpotRequestsPageQueryT,\n    pageNumber: PageNumberT,\n): FetchSpotRequestsPageBeginActionT => ({\n    type: FETCH_SPOT_REQUESTS_PAGE_REQUEST_BEGIN,\n    query,\n    pageNumber,\n});\n\nexport const fetchSpotRequestsPageSuccess = (\n    query: FetchSpotRequestsPageQueryT,\n    pageNumber: PageNumberT,\n    pageResponse: PageResponseT<SpotRequestT> | null,\n): FetchSpotRequestsPageSuccessActionT => ({\n    type: FETCH_SPOT_REQUESTS_PAGE_REQUEST_SUCCESS,\n    query,\n    pageResponse,\n    pageNumber,\n});\n\nexport const fetchSpotRequestsPageError = (\n    query: FetchSpotRequestsPageQueryT,\n    pageNumber: PageNumberT,\n    error: Error,\n): FetchSpotRequestsPageErrorActionT => ({\n    type: FETCH_SPOT_REQUESTS_PAGE_REQUEST_ERROR,\n    query,\n    error,\n    pageNumber,\n});\n\nexport const resetSpotRequests = (mutationListOptions: MutationListOptionsT): ResetSpotRequestsActionT => ({\n    type: RESET_SPOT_REQUESTS,\n    mutationListOptions,\n});\n","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { ApiPartnerCompanyT } from 'common/utils/api/models';\n\nexport type PartnerSuggestStateT = {\n    byId: Record<\n        PartnerIdT,\n        {\n            requestStatus: RequestStatusT;\n            data: ApiPartnerCompanyT | null;\n        }\n    >;\n};\n\nconst initialState: PartnerSuggestStateT = {\n    byId: {},\n};\n\nexport const partnerSuggestSlice = createSlice({\n    name: 'partnerSuggest',\n    initialState,\n    reducers: {\n        partnerSuggestRequest: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                partnerId: PartnerIdT;\n            }>,\n        ) => {},\n        partnerSuggestRequestBegin: (\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                partnerId: PartnerIdT;\n            }>,\n        ) => {\n            state.byId = {\n                ...state.byId,\n                [action.payload.partnerId]: {\n                    ...(state.byId[action.payload.partnerId] || {}),\n                    requestStatus: requestStatus.loading,\n                },\n            };\n        },\n        partnerSuggestRequestSuccess: (\n            state,\n            action: PayloadAction<{\n                partnerId: PartnerIdT;\n                data: ApiPartnerCompanyT | null;\n            }>,\n        ) => {\n            state.byId = {\n                ...state.byId,\n                [action.payload.partnerId]: {\n                    ...(state.byId[action.payload.partnerId] || {}),\n                    requestStatus: requestStatus.ok,\n                    data: action.payload.data,\n                },\n            };\n        },\n        partnerSuggestRequestError: (\n            state,\n            action: PayloadAction<{\n                partnerId: PartnerIdT;\n                error: Error;\n            }>,\n        ) => {\n            const { error } = action.payload;\n\n            state.byId = {\n                ...state.byId,\n                [action.payload.partnerId]: {\n                    ...(state.byId[action.payload.partnerId] || {}),\n                    requestStatus: requestStatus.setError(error),\n                    data: null,\n                },\n            };\n        },\n    },\n});\n\nexport const {\n    partnerSuggestRequest,\n    partnerSuggestRequestBegin,\n    partnerSuggestRequestSuccess,\n    partnerSuggestRequestError,\n} = partnerSuggestSlice.actions;\n\nexport default partnerSuggestSlice.reducer;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './WaypointNumberPinContent.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    withPaddings?: boolean;\n};\n\nconst WaypointNumberPinContent: React.FC<PropsT> = React.memo((props) => {\n    const { className, children, withPaddings } = props;\n\n    return (\n        <div\n            className={cs(\n                cx('content', {\n                    'content--withPaddings': withPaddings,\n                }),\n                className,\n            )}\n        >\n            {children}\n        </div>\n    );\n});\n\nexport default WaypointNumberPinContent;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './NotificationCardBody.scss';\nimport { NotificationEmotionEnum } from 'common/store/notifications/models';\nimport { UNIT } from 'common/constants';\nimport LogoIcon from 'common/icons/LogoIcon';\nimport Avatar, { AvatarSizeEnum } from 'common/components/Avatar/Avatar';\nimport CompanyLogo, { CompanyLogoSizeEnum } from 'common/components/CompanyLogo/CompanyLogo';\nimport { ApiLogInitiatorTypeT } from 'common/utils/api/models';\n\nconst cx = classNames.bind(styles);\n\nconst LOGO_SIZE_PX = 6 * UNIT;\n\nexport type NotificationCardBodyPropsT = {\n    className?: string;\n    emotion: NotificationEmotionEnum | null;\n    readAlready: boolean;\n    initiatorType?: ApiLogInitiatorTypeT;\n    initiatorName?: string | null;\n    onClick?: () => void;\n    markReadNode?: React.ReactNode;\n    children: React.ReactNode;\n};\n\nconst NotificationCardBody: React.FC<NotificationCardBodyPropsT> = React.memo((props) => {\n    const { className, emotion, readAlready, initiatorType, initiatorName, onClick, markReadNode, children } = props;\n\n    return (\n        <div\n            className={cs(\n                cx('wrap', {\n                    'wrap--is-clickable': !!onClick,\n                    'wrap--unread': !readAlready,\n                }),\n                className,\n            )}\n            onClick={onClick}\n        >\n            {!readAlready && (\n                <div\n                    className={cx('emotion', {\n                        [`emotion--theme-${emotion}`]: true,\n                    })}\n                />\n            )}\n            {initiatorType === 'SYSTEM' && <LogoIcon className={cx('icon')} size={LOGO_SIZE_PX} />}\n            {initiatorType === 'COMPANY' && <CompanyLogo className={cx('icon')} size={CompanyLogoSizeEnum.medium} />}\n            {initiatorType === 'USER' && (\n                <Avatar className={cx('icon')} size={AvatarSizeEnum.medium} hash={initiatorName || ''} />\n            )}\n            {markReadNode && <div className={cx('mark-read')}>{markReadNode}</div>}\n            {children}\n        </div>\n    );\n});\n\nexport default NotificationCardBody;\n","import * as React from 'react';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport { useTranslation } from 'react-i18next';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\n\nexport enum OrderTypeEnum {\n    all = 'all',\n    spot = 'spot',\n    contracted = 'contracted',\n}\n\nconst i18nTMap: Record<OrderTypeEnum, string> = {\n    [OrderTypeEnum.spot]: 'broker-orders.list.filters.order-type-filter.spot',\n    [OrderTypeEnum.contracted]: 'broker-orders.list.filters.order-type-filter.contracted',\n    [OrderTypeEnum.all]: 'broker-orders.list.filters.order-type-filter.all',\n};\n\ntype OptionT = {\n    id: OrderTypeEnum;\n    label: React.ReactNode;\n};\n\nexport type PropsT = {\n    className?: string;\n    value: OrderTypeEnum;\n    onSelect: (value: OrderTypeEnum) => void;\n    testSelector?: string;\n};\n\nconst OrderTypeDropdown = (props: PropsT) => {\n    const { className, value, onSelect, testSelector } = props;\n\n    const { t } = useTranslation();\n\n    const options = React.useMemo((): Array<OptionT> => {\n        return [\n            {\n                id: OrderTypeEnum.spot,\n                label: t(i18nTMap[OrderTypeEnum.spot]),\n            },\n            {\n                id: OrderTypeEnum.contracted,\n                label: t(i18nTMap[OrderTypeEnum.contracted]),\n            },\n        ];\n    }, [t]);\n\n    return (\n        <DropdownInput<OptionT, OrderTypeEnum>\n            className={className}\n            selectedValue={value}\n            options={options}\n            onSelect={onSelect}\n            testSelector={testSelector}\n            renderOption={(option) => {\n                if (!option) {\n                    return null;\n                }\n\n                return <DropdownControlOptionLabel withoutPaddings label={option.label} />;\n            }}\n            renderTriggerContent={(selectedOption, placeholder) => {\n                if (!selectedOption) {\n                    return placeholder;\n                }\n\n                return t(i18nTMap[selectedOption.id]);\n            }}\n            placeholder={t(i18nTMap[OrderTypeEnum.all])}\n            hasClearControl\n            onReset={() => {\n                onSelect(OrderTypeEnum.all);\n            }}\n            getOptionValue={(option) => option?.id}\n            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n        />\n    );\n};\n\nexport default OrderTypeDropdown;\n","import React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './LanguageSelector.scss';\nimport { useTranslation } from 'react-i18next';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\nimport { selectCountriesAllLangCodes, selectCountriesByLangCode } from 'common/store/countries-dict/selectors';\nimport { byAlphabetASC } from 'common/utils/sort';\n\nconst cx = classNames.bind(styles);\n\ntype OptionT = string;\ntype ValueT = string | null | undefined;\n\ntype PropsT = {\n    onChange: (langCode: ValueT) => void;\n    value?: ValueT;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    className?: string;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    hasChanges?: boolean;\n    onBlur?: () => void;\n    onFocus?: () => void;\n};\n\nconst LanguageSelector: React.FC<PropsT> = (props) => {\n    const { onChange, value, overlayPosition, className, hasError, hasWarning, hasChanges, onBlur, onFocus } = props;\n\n    const { t } = useTranslation();\n\n    const allLangCodes = useSelector(selectCountriesAllLangCodes);\n    const byLangCode = useSelector(selectCountriesByLangCode);\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchCountriesDict());\n    }, [dispatch]);\n\n    const renderOption = (langCode: OptionT | null | undefined): React.ReactElement | null => {\n        if (!langCode) {\n            return null;\n        }\n\n        const countryLanguage = byLangCode[langCode];\n\n        return <span>{countryLanguage?.name || '-'}</span>;\n    };\n\n    const sortedAllLangCodes = React.useMemo(() => {\n        return [...allLangCodes].sort((codeA, codeB) => {\n            const langA = byLangCode[codeA];\n            const langB = byLangCode[codeB];\n\n            return byAlphabetASC(langA.name, langB.name);\n        });\n    }, [allLangCodes, byLangCode]);\n\n    const getOptionValue = (option: OptionT): ValueT => option;\n\n    const handleOptionClick = (langCode: ValueT) => {\n        onChange(langCode);\n    };\n\n    return (\n        <DropdownInput\n            className={className}\n            selectedValue={value}\n            placeholder={t('common:language-selector.placeholder')}\n            options={sortedAllLangCodes}\n            onSelect={handleOptionClick}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            renderOption={renderOption}\n            getOptionValue={getOptionValue}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            overlayClassName={cx('overlay')}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n        />\n    );\n};\n\nexport default LanguageSelector;\n","import * as React from 'react';\nimport { useContext } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectScheduleAssetById,\n    selectSelectedScheduleEventId,\n    selectSelfCostPrediction,\n    selectUserSelection,\n} from 'broker-admin/store/broker-order-assigment/selectors';\nimport TruckIcon, { getTruckIconProps } from 'common/icons/TruckIcon';\nimport TrailerIcon, { getTrailerIconProps } from 'common/icons/TrailerIcon';\nimport TimelineSidebar from 'common/components/Timeline/TimelineSidebar/TimelineSidebar';\nimport { FlagT, TimeWindowT } from 'common/components/Timeline/models';\nimport { VehicleScheduleEventT } from 'common/store/vehicle-schedules/models';\nimport { parseDateStringWithoutTimezone } from 'common/utils/time';\nimport { ApiTransportationOrderFullT, VehicleScheduleEventTypeEnum } from 'common/utils/api/models';\nimport { ScheduleEventIdT } from 'broker-admin/store/broker-order-assigment/models';\nimport {\n    setSelectedScheduleEventId,\n    setShowSelectedAssetSchedule,\n} from 'broker-admin/store/broker-order-assigment/actions';\nimport { BrokerOrderDetailsT } from 'broker-admin/store/broker-order-details/models';\nimport { CURRENT_ASSIGNMENT_EVENT_ID } from '../constants';\nimport isNumber from 'lodash/isNumber';\nimport TimeZoneContext from '../contexts/timezone-context';\nimport { findTourActualTransportOrders } from 'broker-admin/store/broker-order-details/utils/find-actual-transport-order';\nimport {\n    ScheduleTimeWindowFactoryT,\n    useScheduleTimeWindowFactory,\n} from 'common/utils/hooks/use-schedule-time-window-factory';\nimport { ScheduleFlagsFactoryT, useScheduleFlagsFactory } from 'common/utils/hooks/use-schedule-flags-factory';\n\nconst convertTourToScheduleEvent = (\n    type: 'truck' | 'trailer',\n    carrierTransportOrder: ApiTransportationOrderFullT | null,\n    startTime: string | null,\n    finishTime: string | null,\n): VehicleScheduleEventT | null => {\n    if (!carrierTransportOrder || !startTime || !finishTime) {\n        return null;\n    }\n\n    if (type === 'truck') {\n        return {\n            truckDateFrom: startTime || undefined,\n            truckDateTo: finishTime || undefined,\n            eventType: VehicleScheduleEventTypeEnum.shipment,\n            id: CURRENT_ASSIGNMENT_EVENT_ID,\n            transportationOrderNumber: carrierTransportOrder?.number,\n            hasAccessToDispatch: false,\n            hasWarning: false,\n        };\n    }\n\n    if (type === 'trailer') {\n        return {\n            trailerDateFrom: startTime || undefined,\n            trailerDateTo: finishTime || undefined,\n            eventType: VehicleScheduleEventTypeEnum.shipment,\n            id: CURRENT_ASSIGNMENT_EVENT_ID,\n            transportationOrderNumber: carrierTransportOrder?.number,\n            hasAccessToDispatch: false,\n            hasWarning: false,\n        };\n    }\n\n    return null;\n};\n\ntype GetTimeWindowsParamsT = {\n    type: 'truck' | 'trailer';\n    events: Array<VehicleScheduleEventT>;\n    currentEventId: ScheduleEventIdT | null;\n    scheduleTimeWindowFactory: ScheduleTimeWindowFactoryT;\n};\n\nconst getTimeWindows = ({\n    type,\n    events,\n    currentEventId,\n    scheduleTimeWindowFactory,\n}: GetTimeWindowsParamsT): Array<TimeWindowT<any>> => {\n    const now = Date.now();\n\n    return events.reduce<Array<TimeWindowT<null>>>((result, scheduleEvent: VehicleScheduleEventT) => {\n        const dateFrom = type === 'truck' ? scheduleEvent.truckDateFrom : scheduleEvent.trailerDateFrom;\n        const start = parseDateStringWithoutTimezone(dateFrom);\n\n        const dateTo = type === 'truck' ? scheduleEvent.truckDateTo : scheduleEvent.trailerDateTo;\n        const end = parseDateStringWithoutTimezone(dateTo);\n\n        if (start && end) {\n            const commonScheduleEvent = {\n                id: scheduleEvent.id,\n                data: null,\n                start,\n                end,\n                isTransparent: false,\n            } as const;\n\n            const hasWarning = scheduleEvent?.hasWarning;\n            const entityNumber = scheduleEvent?.transportationOrderNumber || '';\n\n            if (scheduleEvent.eventType === VehicleScheduleEventTypeEnum.serviceMaintenance) {\n                const isPastEvent = start <= now && end <= now;\n\n                result.push({\n                    ...commonScheduleEvent,\n                    ...scheduleTimeWindowFactory.serviceMaintenance({\n                        isPastEvent,\n                        hasWarning,\n                    }),\n                });\n            }\n\n            if (scheduleEvent.eventType === VehicleScheduleEventTypeEnum.deadhead) {\n                const isPastEvent = start <= now && end <= now;\n\n                result.push({\n                    ...commonScheduleEvent,\n                    ...scheduleTimeWindowFactory.deadheadTO({ isPastEvent, entityNumber, hasWarning }),\n                });\n            }\n\n            if (scheduleEvent.eventType === VehicleScheduleEventTypeEnum.shipment) {\n                const entityNumber = scheduleEvent?.transportationOrderNumber || '';\n\n                if (scheduleEvent.id === CURRENT_ASSIGNMENT_EVENT_ID) {\n                    result.push({\n                        ...commonScheduleEvent,\n                        ...scheduleTimeWindowFactory.accentTO({\n                            entityNumber,\n                        }),\n                    });\n                } else if (scheduleEvent.id === currentEventId) {\n                    result.push({\n                        ...commonScheduleEvent,\n                        ...scheduleTimeWindowFactory.inProgressTO({\n                            entityNumber,\n                            hasWarning,\n                        }),\n                    });\n                } else if (start <= now && end <= now) {\n                    result.push({\n                        ...commonScheduleEvent,\n                        ...scheduleTimeWindowFactory.to({\n                            isPastEvent: true,\n                            entityNumber,\n                            hasWarning,\n                        }),\n                    });\n                } else if (now <= start && now <= end) {\n                    result.push({\n                        ...commonScheduleEvent,\n                        ...scheduleTimeWindowFactory.to({\n                            isPastEvent: false,\n                            entityNumber,\n                            hasWarning,\n                        }),\n                    });\n                }\n            }\n        }\n\n        return result;\n    }, []);\n};\n\ntype GetFlagsParamsT = {\n    type: 'truck' | 'trailer';\n    events: Array<VehicleScheduleEventT>;\n    scheduleFlagsFactory: ScheduleFlagsFactoryT;\n};\n\nconst getFlags = ({ type, events, scheduleFlagsFactory }: GetFlagsParamsT): Array<FlagT<VehicleScheduleEventT>> => {\n    return events.reduce<Array<FlagT<VehicleScheduleEventT>>>((result, scheduleEvent: VehicleScheduleEventT) => {\n        const dateFrom = type === 'truck' ? scheduleEvent.truckDateFrom : scheduleEvent.trailerDateFrom;\n        const start = parseDateStringWithoutTimezone(dateFrom);\n\n        const dateTo = type === 'truck' ? scheduleEvent.truckDateTo : scheduleEvent.trailerDateTo;\n        const end = parseDateStringWithoutTimezone(dateTo);\n\n        if (start && end) {\n            const commonScheduleEvent = {\n                id: scheduleEvent.id,\n                data: scheduleEvent,\n                start,\n                end,\n                isTransparent: false,\n            } as const;\n\n            if (scheduleEvent.eventType === VehicleScheduleEventTypeEnum.teleport) {\n                result.push({\n                    ...commonScheduleEvent,\n                    ...scheduleFlagsFactory.teleport(),\n                });\n            }\n        }\n\n        return result;\n    }, []);\n};\n\ntype PropsT = {\n    tourId: TourIdT;\n    brokerOrderDetails: BrokerOrderDetailsT | null;\n};\n\nconst AssignmentAssetSchedules: React.FC<PropsT> = React.memo((props) => {\n    const { tourId, brokerOrderDetails } = props;\n\n    const timeZoneContext = useContext(TimeZoneContext);\n    const utcOffsetMin = timeZoneContext?.value?.utcOffsetMin;\n\n    const dispatch = useDispatch();\n\n    const selfCostPrediction = useSelector(selectSelfCostPrediction);\n\n    const selectedScheduleEventId = useSelector(selectSelectedScheduleEventId);\n\n    const userSelection = useSelector(selectUserSelection);\n    const scheduleAssetById = useSelector(selectScheduleAssetById);\n\n    const selectedTrailerId = userSelection?.trailerId || null;\n    const trailerSchedule = scheduleAssetById[selectedTrailerId as TrailerIdT] || null;\n    const selectedTruckId = userSelection?.truckId || null;\n    const truckSchedule = scheduleAssetById[selectedTruckId as TruckIdT] || null;\n\n    const scheduleTimeWindowFactory = useScheduleTimeWindowFactory();\n    const scheduleFlagsFactory = useScheduleFlagsFactory();\n\n    const { levels, flags } = React.useMemo(() => {\n        const truckScheduleEvents: Array<VehicleScheduleEventT> = [...(truckSchedule?.events || [])];\n        const trailerScheduleEvents: Array<VehicleScheduleEventT> = [...(trailerSchedule?.events || [])];\n\n        const { carrierTransportOrder } = findTourActualTransportOrders(\n            brokerOrderDetails?.transportationOrders,\n            tourId,\n        );\n\n        const truckStartTime = selfCostPrediction?.truckStartTime || null;\n        const dropTruckDateTime = selfCostPrediction?.dropTruckDateTime || null;\n        const scheduleTruckEvent = convertTourToScheduleEvent(\n            'truck',\n            carrierTransportOrder,\n            truckStartTime,\n            dropTruckDateTime,\n        );\n        if (scheduleTruckEvent && selectedTruckId) {\n            truckScheduleEvents.push(scheduleTruckEvent);\n        }\n\n        const trailerStartTime = selfCostPrediction?.trailerStartTime || null;\n        const dropTrailerDateTime = selfCostPrediction?.dropTrailerDateTime || null;\n        const scheduleTrailerEvent = convertTourToScheduleEvent(\n            'trailer',\n            carrierTransportOrder,\n            trailerStartTime,\n            dropTrailerDateTime,\n        );\n        if (scheduleTrailerEvent && selectedTrailerId) {\n            trailerScheduleEvents.push(scheduleTrailerEvent);\n        }\n\n        return {\n            levels: [\n                {\n                    timeWindows: getTimeWindows({\n                        type: 'truck',\n                        events: truckScheduleEvents,\n                        currentEventId: truckSchedule?.currentEventId || null,\n                        scheduleTimeWindowFactory,\n                    }),\n                    icon: <TruckIcon {...getTruckIconProps('assignment-normal')} />,\n                },\n                {\n                    timeWindows: getTimeWindows({\n                        type: 'trailer',\n                        events: trailerScheduleEvents,\n                        currentEventId: trailerSchedule?.currentEventId || null,\n                        scheduleTimeWindowFactory,\n                    }),\n                    icon: <TrailerIcon {...getTrailerIconProps('assignment-normal')} />,\n                },\n            ],\n            flags: [\n                ...getFlags({ type: 'truck', events: truckScheduleEvents, scheduleFlagsFactory }),\n                ...getFlags({ type: 'trailer', events: trailerScheduleEvents, scheduleFlagsFactory }),\n            ],\n        };\n    }, [\n        selectedTruckId,\n        truckSchedule,\n        selectedTrailerId,\n        trailerSchedule,\n        tourId,\n        brokerOrderDetails,\n        selfCostPrediction,\n        scheduleTimeWindowFactory,\n        scheduleFlagsFactory,\n    ]);\n\n    const isLoading = (!!selectedTrailerId && !trailerSchedule) || (!!selectedTruckId && !truckSchedule);\n\n    const handleClose = () => {\n        dispatch(setShowSelectedAssetSchedule(false));\n    };\n\n    const handleEventFocus = (scheduleEventId: ScheduleEventIdT): void => {\n        dispatch(setSelectedScheduleEventId(scheduleEventId));\n    };\n\n    const handleEventBlur = (): void => {\n        dispatch(setSelectedScheduleEventId(null));\n    };\n\n    return (\n        <TimelineSidebar\n            isLoading={isLoading}\n            onClose={handleClose}\n            levels={levels}\n            flags={flags}\n            utcOffset={isNumber(utcOffsetMin) ? utcOffsetMin : null}\n            onTimeWindowBlur={handleEventBlur}\n            onTimeWindowFocus={handleEventFocus}\n            selectedTimeWindowId={selectedScheduleEventId}\n        />\n    );\n});\n\nexport default AssignmentAssetSchedules;\n","import React from 'react';\n\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\n\nimport classNames from 'classnames/bind';\nimport styles from './TourTypeMultipleDropdown.scss';\nimport { useTranslation } from 'react-i18next';\nimport { ApiBrokerTourTypeT, ApiBrokerTourEnum } from 'broker-admin/utils/api/broker-tranziit/models';\nimport DropdownMultipleInput from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInput';\nimport DropdownMultipleInputCountLabel from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInputCountLabel/DropdownMultipleInputCountLabel';\nimport { BROKER_TOUR_TYPE_T_MAP } from 'broker-admin/components/status-pill/BrokerTourTypePill/BrokerTourTypePill';\n\nconst cx = classNames.bind(styles);\n\ntype OptionT = {\n    value: ApiBrokerTourTypeT;\n    label: React.ReactNode;\n};\n\ntype ValueT = OptionT['value'];\n\nexport type PropsT = {\n    className?: string;\n    values: Array<ValueT>;\n    onSelect: (values: Array<ValueT>) => void;\n    overlayPosition: DropdownOverlayPositionEnum;\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    placeholder?: InputPropsT['placeholder'];\n    onBlur: InputPropsT['onBlur'];\n    onFocus: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasChanges?: boolean;\n    hasClearControl?: boolean;\n};\n\nconst TourTypeMultipleDropdown: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        values,\n        onSelect,\n        hasWarning,\n        hasError,\n        overlayPosition,\n        isDisabled,\n        placeholder,\n        onBlur,\n        onFocus,\n        hasChanges,\n        hasClearControl,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const options = React.useMemo((): Array<OptionT> => {\n        return [\n            {\n                label: t(BROKER_TOUR_TYPE_T_MAP[ApiBrokerTourEnum.deadhead]),\n                value: ApiBrokerTourEnum.deadhead,\n            },\n            {\n                label: t(BROKER_TOUR_TYPE_T_MAP[ApiBrokerTourEnum.shipment]),\n                value: ApiBrokerTourEnum.shipment,\n            },\n        ];\n    }, [t]);\n\n    const renderTriggerContent = (options: Array<OptionT>, placeholder: string | undefined) => {\n        if (!options?.length) {\n            return placeholder;\n        }\n\n        if (options.length === 1) {\n            const option = options[0];\n            return option?.label || null;\n        }\n\n        return <DropdownMultipleInputCountLabel count={options?.length} />;\n    };\n\n    const renderOption = (option: OptionT | null | undefined): React.ReactNode => {\n        if (!option) {\n            return null;\n        }\n\n        return option?.label || '';\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option.value;\n\n    const handleReset = () => {\n        onSelect([]);\n    };\n\n    return (\n        <DropdownMultipleInput<OptionT, ValueT>\n            className={className}\n            options={options}\n            selectedValues={values}\n            getOptionValue={getOptionValue}\n            placeholder={placeholder}\n            isDisabled={isDisabled}\n            onSelect={onSelect}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            renderOption={renderOption}\n            renderTriggerContent={renderTriggerContent}\n            overlayPosition={overlayPosition}\n            overlayClassName={cx('overlay')}\n            onReset={hasClearControl ? handleReset : undefined}\n        />\n    );\n};\n\nexport default TourTypeMultipleDropdown;\n","import { RFQsStatsT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport const FETCH_RFQS_STATS_REQUEST = 'common/rfqs-stats/FETCH_RFQS_STATS_REQUEST';\nexport const FETCH_RFQS_STATS_REQUEST_BEGIN = 'common/rfqs-stats/FETCH_RFQS_STATS_REQUEST_BEGIN';\nexport const FETCH_RFQS_STATS_REQUEST_ERROR = 'common/rfqs-stats/FETCH_RFQS_STATS_REQUEST_ERROR';\nexport const FETCH_RFQS_STATS_REQUEST_SUCCESS = 'common/rfqs-stats/FETCH_RFQS_STATS_REQUEST_SUCCESS';\n\nexport type RFQsStatsStateT = {\n    stats: RFQsStatsT | null;\n    fetchRequest: RequestStatusT;\n};\n\nexport type FetchRFQsStatsActionT = {\n    type: typeof FETCH_RFQS_STATS_REQUEST;\n    companyId: CompanyIdT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchRFQsStatsBeginActionT = {\n    type: typeof FETCH_RFQS_STATS_REQUEST_BEGIN;\n};\n\nexport type FetchRFQsStatsSuccessActionT = {\n    type: typeof FETCH_RFQS_STATS_REQUEST_SUCCESS;\n    statistics: RFQsStatsT | null;\n};\n\nexport type FetchRFQsStatsErrorActionT = {\n    type: typeof FETCH_RFQS_STATS_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type RFQsStatsActionT =\n    | FetchRFQsStatsActionT\n    | FetchRFQsStatsBeginActionT\n    | FetchRFQsStatsSuccessActionT\n    | FetchRFQsStatsErrorActionT;\n","import isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\n\ntype FormFieldT = string;\ntype FormValueT = object | number | string | boolean | null | undefined | Array<number> | Array<string>;\ntype FormValuesT = Record<FormFieldT, FormValueT>;\n\ntype ChangesDetactorT = <T extends FormValuesT>(valueA: ValueOfT<T>, valueB: ValueOfT<T>) => boolean;\n\nconst defaultChangesDetactor: ChangesDetactorT = (valueA, valueB) => isEqual(valueA, valueB);\n\nexport const checkValuesChanges = <T extends FormValuesT>(\n    fields: Array<keyof T>,\n    initValues: T,\n    values: T,\n    customChangesDetector?: ChangesDetactorT,\n): boolean => {\n    const changesDetector = customChangesDetector || defaultChangesDetactor;\n\n    return fields.some((field) => {\n        const isSameValue = changesDetector(initValues[field], values[field]);\n\n        return !isSameValue;\n    });\n};\n\nexport const checkHasAnyErrors = (errorsMap: Record<FormFieldT, string | string[]>): boolean => {\n    return !isEmpty(errorsMap);\n};\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n    width?: number;\n    height?: number;\n};\n\nconst DragIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, width = DEFAULT_ICON_SIZE, height = DEFAULT_ICON_SIZE } = props;\n\n    return (\n        <svg\n            xmlns=\"http://www.w3.org/2000/svg\"\n            xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n            width={width}\n            height={height}\n            viewBox=\"0 0 20 20\"\n        >\n            <path fill={fillColor} fillRule=\"evenodd\" d=\"m3 10 6 5V5l-6 5zm14 0-6 5V5l6 5z\" />\n        </svg>\n    );\n};\n\nDragIcon.displayName = 'DragIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n};\n\nexport { storyProps };\n\nexport default DragIcon;\n","import React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { partnerSuggestRequest } from 'common/store/partner-suggest/slice';\nimport { selectPartnerSuggestById } from 'common/store/partner-suggest/selectors';\n\ntype PropsT = {\n    partnerId: PartnerIdT | null | undefined;\n};\n\nconst PartnerFilterPill: React.FC<PropsT> = React.memo((props) => {\n    const { partnerId } = props;\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        if (!partnerId) {\n            return;\n        }\n\n        dispatch(\n            partnerSuggestRequest({\n                partnerId,\n            }),\n        );\n    }, [dispatch, partnerId]);\n\n    const { requestStatus, data } = useSelector(selectPartnerSuggestById(partnerId));\n\n    if (partnerId === null) {\n        return null;\n    }\n\n    if (requestStatus.loading) {\n        return <ControlLoaderIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />;\n    }\n\n    return <span>{data?.name}</span>;\n});\n\nexport default PartnerFilterPill;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst DetailsIcon: React.FC<PropsT> = (props) => {\n    const { className, strokeColor, ...restProps } = props;\n\n    return (\n        <svg\n            xmlns=\"http://www.w3.org/2000/svg\"\n            width=\"20\"\n            height=\"20\"\n            viewBox=\"0 0 20 20\"\n            className={className}\n            {...restProps}\n        >\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M12 5c2.07 0 3.75 1.68 3.75 3.75a3.73 3.73 0 01-.623 2.063L18 13.692l-1.057 1.057-2.873-2.872A3.751 3.751 0 018.25 8.75C8.25 6.68 9.93 5 12 5zm-1.5 8.25v1.5H3v-1.5h7.5zM6.75 9.5V11H3V9.5h3.75zm5.25-3a2.257 2.257 0 00-2.25 2.25A2.257 2.257 0 0012 11a2.257 2.257 0 002.25-2.25A2.257 2.257 0 0012 6.5zm-5.25-.75v1.5H3v-1.5h3.75z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nDetailsIcon.displayName = 'DetailsIcon';\n\nconst storyProps: PropsT = {\n    strokeColor: StyleGuideColorsEnum.charcoal,\n};\n\nexport { storyProps };\nexport default DetailsIcon;\n","import * as React from 'react';\nimport FilterPills, { FilterPillsConfigT } from 'common/components/FilterPills/FilterPills';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from '../query-models';\nimport { useTranslation } from 'react-i18next';\nimport { FilterPillThemeEnum } from 'common/components/FilterPills/FilterPill/FilterPill';\nimport { formatDateRangeFilterValue } from 'common/components/FilterPills/pill-renderers';\nimport { BROKER_TOUR_TYPE_T_MAP } from 'broker-admin/components/status-pill/BrokerTourTypePill/BrokerTourTypePill';\nimport { ApiBrokerTourTypeT } from 'broker-admin/utils/api/broker-tranziit/models';\n\ntype PropsT = {\n    isCompact?: boolean;\n    className?: string;\n    queryFilters: QueryFiltersT;\n    setQueryFilters: (queryFilters: QueryFiltersT) => void;\n};\n\nconst SelectedFilters: React.FC<PropsT> = React.memo((props) => {\n    const { isCompact, queryFilters, setQueryFilters } = props;\n\n    const { t } = useTranslation();\n\n    const filterPillsConfig = React.useMemo(\n        (): FilterPillsConfigT<QueryFiltersT> => [\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters, index) => {\n                    return t('broker-tours.list.filters.pills.carrier', {\n                        value: queryFilters[QueryFiltersKeysEnum.carrierNames]?.[index] || '',\n                    });\n                },\n                isMultiple: true,\n                clearKeys: [QueryFiltersKeysEnum.carrierIds, QueryFiltersKeysEnum.carrierNames],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('broker-tours.list.filters.pills.search', {\n                        value: queryFilters[QueryFiltersKeysEnum.searchText],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.searchText],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('broker-tours.list.filters.pills.origin-address', {\n                        value: queryFilters[QueryFiltersKeysEnum.originAddress],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.originAddress],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('broker-tours.list.filters.pills.destination-address', {\n                        value: queryFilters[QueryFiltersKeysEnum.destinationAddress],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.destinationAddress],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const dateFrom = queryFilters[QueryFiltersKeysEnum.originDateFrom];\n                    const dateTo = queryFilters[QueryFiltersKeysEnum.originDateTo];\n\n                    return t('broker-tours.list.filters.pills.origin-date', {\n                        value: formatDateRangeFilterValue(dateFrom, dateTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.originDateFrom, QueryFiltersKeysEnum.originDateTo],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const dateFrom = queryFilters[QueryFiltersKeysEnum.destinationDateFrom];\n                    const dateTo = queryFilters[QueryFiltersKeysEnum.destinationDateTo];\n\n                    return t('broker-tours.list.filters.pills.destination-date', {\n                        value: formatDateRangeFilterValue(dateFrom, dateTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.destinationDateFrom, QueryFiltersKeysEnum.destinationDateTo],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const dateFrom = queryFilters[QueryFiltersKeysEnum.dateCreatedFrom];\n                    const dateTo = queryFilters[QueryFiltersKeysEnum.dateCreatedTo];\n\n                    return t('broker-tours.list.filters.pills.date-created', {\n                        value: formatDateRangeFilterValue(dateFrom, dateTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.dateCreatedFrom, QueryFiltersKeysEnum.dateCreatedTo],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: (queryFilters, index) => {\n                    const tourType = queryFilters[QueryFiltersKeysEnum.tourTypes]?.[index];\n                    const i18nKey = BROKER_TOUR_TYPE_T_MAP[tourType as ApiBrokerTourTypeT];\n\n                    return t('broker-tours.list.filters.pills.tour-type', {\n                        value: i18nKey ? t(i18nKey) : '',\n                    });\n                },\n                isMultiple: true,\n                clearKeys: [QueryFiltersKeysEnum.tourTypes],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('broker-tours.list.filters.pills.plate-number', {\n                        value: queryFilters[QueryFiltersKeysEnum.plateNumber],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.plateNumber],\n            },\n            // Warning filters\n            {\n                theme: FilterPillThemeEnum.attention,\n                render: () => {\n                    return t('broker-tours.list.filters.warning-filters.transport-order-declined', {});\n                },\n                clearKeys: [QueryFiltersKeysEnum.transportOrderDeclined],\n            },\n            {\n                theme: FilterPillThemeEnum.attention,\n                render: () => {\n                    return t('broker-tours.list.filters.warning-filters.running-out-of-time-to-assign-carrier', {});\n                },\n                clearKeys: [QueryFiltersKeysEnum.runningOutOfTimeToAssignCarrier],\n            },\n            {\n                theme: FilterPillThemeEnum.tomatoRed,\n                render: () => {\n                    return t('broker-tours.list.filters.warning-filters.run-out-of-time-to-assign-carrier', {});\n                },\n                clearKeys: [QueryFiltersKeysEnum.runOutOfTimeToAssignCarrier],\n            },\n            {\n                theme: FilterPillThemeEnum.attention,\n                render: () => {\n                    return t('broker-tours.list.filters.warning-filters.running-out-of-time-to-assign-assets', {});\n                },\n                clearKeys: [QueryFiltersKeysEnum.runningOutOfTimeToAssignAssets],\n            },\n            {\n                theme: FilterPillThemeEnum.tomatoRed,\n                render: () => {\n                    return t('broker-tours.list.filters.warning-filters.run-out-of-time-to-assign-assets', {});\n                },\n                clearKeys: [QueryFiltersKeysEnum.runOutOfTimeToAssignAssets],\n            },\n            {\n                theme: FilterPillThemeEnum.attention,\n                render: () => {\n                    return t('broker-tours.list.filters.warning-filters.running-out-of-time-to-assign-driver', {});\n                },\n                clearKeys: [QueryFiltersKeysEnum.runningOutOfTimeToAssignDriver],\n            },\n            {\n                theme: FilterPillThemeEnum.tomatoRed,\n                render: () => {\n                    return t('broker-tours.list.filters.warning-filters.run-out-of-time-to-assign-driver', {});\n                },\n                clearKeys: [QueryFiltersKeysEnum.runOutOfTimeToAssignDriver],\n            },\n            {\n                theme: FilterPillThemeEnum.tomatoRed,\n                render: () => {\n                    return t('broker-tours.list.filters.warning-filters.no-show', {});\n                },\n                clearKeys: [QueryFiltersKeysEnum.noShow],\n            },\n            {\n                theme: FilterPillThemeEnum.tomatoRed,\n                render: () => {\n                    return t('broker-tours.list.filters.warning-filters.shipment-missed', {});\n                },\n                clearKeys: [QueryFiltersKeysEnum.shipmentMissed],\n            },\n            {\n                theme: FilterPillThemeEnum.attention,\n                render: () => {\n                    return t('broker-tours.list.filters.warning-filters.tour-delaying', {});\n                },\n                clearKeys: [QueryFiltersKeysEnum.tourDelaying],\n            },\n        ],\n        [t],\n    );\n\n    return (\n        <FilterPills\n            isCompact={isCompact}\n            queryFilters={queryFilters}\n            setQueryFilters={setQueryFilters}\n            config={filterPillsConfig}\n        />\n    );\n});\n\nexport default SelectedFilters;\n","import {\n    CREATE_PARTNER_REQUEST_BEGIN,\n    CREATE_PARTNER_REQUEST_ERROR,\n    CREATE_PARTNER_REQUEST_SUCCESS,\n    FETCH_PARTNERS_PAGE_REQUEST_BEGIN,\n    FETCH_PARTNERS_PAGE_REQUEST_ERROR,\n    FETCH_PARTNERS_PAGE_REQUEST_SUCCESS,\n    PartnersActionT,\n    PartnersStateT,\n    RESET_PARTNERS,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport {\n    pageBeginReducer,\n    pageErrorReducer,\n    pageSuccessReducer,\n    resetPagesCacheReducer,\n} from 'common/utils/pagination/reducers';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: PartnersStateT = {\n    pages: [],\n    query: null,\n    total: null,\n    byId: {},\n    createPartnerRequest: requestStatus.initial,\n};\n\nexport default (state = initialState, action: PartnersActionT | DestroySessionActionT): PartnersStateT => {\n    switch (action.type) {\n        case FETCH_PARTNERS_PAGE_REQUEST_BEGIN: {\n            const { pageNumber, query } = action;\n\n            return {\n                ...state,\n                ...pageBeginReducer(state, pageNumber, query),\n            };\n        }\n\n        case FETCH_PARTNERS_PAGE_REQUEST_SUCCESS: {\n            const { pageNumber, query, pageResponse } = action;\n\n            return {\n                ...state,\n                ...pageSuccessReducer(state, pageNumber, query, pageResponse),\n            };\n        }\n        case FETCH_PARTNERS_PAGE_REQUEST_ERROR: {\n            const { query, error, pageNumber } = action;\n\n            return {\n                ...state,\n                ...pageErrorReducer(state, pageNumber, query, error),\n            };\n        }\n\n        case RESET_PARTNERS: {\n            const { mutationListOptions } = action;\n\n            return {\n                ...initialState,\n                ...resetPagesCacheReducer(initialState, state, mutationListOptions),\n            };\n        }\n\n        case CREATE_PARTNER_REQUEST_BEGIN: {\n            return {\n                ...state,\n                createPartnerRequest: requestStatus.loading,\n            };\n        }\n\n        case CREATE_PARTNER_REQUEST_ERROR: {\n            const { error } = action;\n            return {\n                ...state,\n                createPartnerRequest: requestStatus.setError(error),\n            };\n        }\n\n        case CREATE_PARTNER_REQUEST_SUCCESS: {\n            return {\n                ...state,\n                createPartnerRequest: requestStatus.ok,\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default:\n            return state;\n    }\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport BigTrashIcon from 'common/icons/BigTrashIcon';\nimport { UpdateEntityStatusActionT } from 'common/store/state-machine/types';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport type CancelLastShipmentConfirmationDataT = UpdateEntityStatusActionT['payload'];\n\ntype PropsT = {\n    requestStatus: RequestStatusT | null;\n    data: CancelLastShipmentConfirmationDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onConfirm: (data: CancelLastShipmentConfirmationDataT) => void;\n};\n\nconst TEST_SELECTOR = 'cancel-last-shipment-confirmation';\n\nconst CancelLastShipmentConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { requestStatus, data, onCancel, onClose, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.keep'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: requestStatus?.loading,\n                            onClick: onCancel,\n                        },\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.danger,\n                            testSelector: `${TEST_SELECTOR}_confirm`,\n                            isLoading: requestStatus?.loading,\n                            isDisabled: requestStatus?.loading,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigTrashIcon />}\n                    title={t('common:dialogs.last-shipment-cancel-confirmation.title')}\n                    message={t('common:dialogs.last-shipment-cancel-confirmation.description')}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default CancelLastShipmentConfirmation;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst EmissionIcon: React.FC<PropsT> = (props) => {\n    const { strokeColor, ...rest } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" {...rest}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M0 0h20v20H0z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M11.667 7.5h-2.5a.836.836 0 00-.834.833v3.334c0 .458.375.833.834.833h2.5a.836.836 0 00.833-.833V8.333a.836.836 0 00-.833-.833zm-.417 3.75H9.583v-2.5h1.667v2.5zm-4.583-.417v.834a.836.836 0 01-.834.833h-2.5a.836.836 0 01-.833-.833V8.333c0-.458.375-.833.833-.833h2.5c.459 0 .834.375.834.833v.834h-1.25V8.75H3.75v2.5h1.667v-.417h1.25zm10.416 2.084h-1.666v.833h2.5V15h-3.75v-2.083c0-.459.375-.834.833-.834h1.667v-.833h-2.5V10h2.916c.459 0 .834.375.834.833v1.25a.836.836 0 01-.834.834z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nEmissionIcon.displayName = 'EmissionIcon';\n\nexport const EmissionIconProps = {\n    getControlProps: ({\n        isDisabled,\n        isFocused,\n        hasError,\n        hasWarning,\n        hasSuccess,\n        hasValue,\n    }: {\n        isDisabled?: boolean;\n        isFocused?: boolean;\n        hasError?: boolean;\n        hasWarning?: boolean;\n        hasSuccess?: boolean;\n        hasValue?: boolean;\n    }): PropsT => {\n        if (hasError) {\n            return {\n                strokeColor: StyleGuideColorsEnum.tomatoRed,\n            };\n        }\n\n        if (hasWarning) {\n            return {\n                strokeColor: StyleGuideColorsEnum.orange,\n            };\n        }\n\n        if (hasSuccess) {\n            return {\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n\n        if (isDisabled) {\n            return {\n                strokeColor: StyleGuideColorsEnum.slate,\n            };\n        }\n\n        return {\n            strokeColor: hasValue || isFocused ? StyleGuideColorsEnum.brandDark : StyleGuideColorsEnum.light,\n        };\n    },\n};\nconst storyProps: PropsT = {\n    strokeColor: StyleGuideColorsEnum.gray,\n};\n\nexport { storyProps };\nexport default EmissionIcon;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './NotificationCardInnerLayout.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    children: React.ReactNode;\n    className?: string;\n};\n\nconst NotificationCardInnerLayout: React.FC<PropsT> = React.memo((props) => {\n    const { children, className } = props;\n\n    return <div className={cx('inner', className)}>{children}</div>;\n});\n\nexport default NotificationCardInnerLayout;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './SpotBidStatusPill.scss';\nimport { useTranslation } from 'react-i18next';\nimport PillLabel, { colorCodingPillLabelTheme, PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { SPOT_BID_STATUS_T_MAP } from 'common/components/status/SpotBidStatus/SpotBidStatus';\nimport { ApiSpotBidStatusT, SpotBidStatusEnum } from 'common/utils/api/models';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport { DEFAULT_CARRIER_COMPANY_ID } from 'common/constants';\n\ntype PropsT = {\n    status?: ApiSpotBidStatusT | null;\n    isArchived?: boolean;\n    isSymmetrical?: boolean;\n    className?: string;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\nconst BROKER_PILL_THEME_BY_STATUS: Record<ApiSpotBidStatusT, PillLabelThemeEnum> = {\n    [SpotBidStatusEnum.new]: colorCodingPillLabelTheme.notImportant,\n    [SpotBidStatusEnum.open]: colorCodingPillLabelTheme.notImportant,\n    [SpotBidStatusEnum.accepted]: colorCodingPillLabelTheme.attention,\n    [SpotBidStatusEnum.rejected]: colorCodingPillLabelTheme.notImportant,\n    [SpotBidStatusEnum.expired]: colorCodingPillLabelTheme.attention,\n    [SpotBidStatusEnum.won]: colorCodingPillLabelTheme.success,\n    [SpotBidStatusEnum.lost]: colorCodingPillLabelTheme.normal,\n    [SpotBidStatusEnum.missed]: colorCodingPillLabelTheme.notImportant,\n    [SpotBidStatusEnum.canceled]: colorCodingPillLabelTheme.normal,\n};\n\nconst CARRIER_PILL_THEME_BY_STATUS: Record<ApiSpotBidStatusT, PillLabelThemeEnum> = {\n    [SpotBidStatusEnum.new]: colorCodingPillLabelTheme.attention,\n    [SpotBidStatusEnum.open]: colorCodingPillLabelTheme.attention,\n    [SpotBidStatusEnum.accepted]: colorCodingPillLabelTheme.normal,\n    [SpotBidStatusEnum.rejected]: colorCodingPillLabelTheme.normal,\n    [SpotBidStatusEnum.expired]: colorCodingPillLabelTheme.attention,\n    [SpotBidStatusEnum.won]: colorCodingPillLabelTheme.success,\n    [SpotBidStatusEnum.lost]: colorCodingPillLabelTheme.warning,\n    [SpotBidStatusEnum.missed]: colorCodingPillLabelTheme.warning,\n    [SpotBidStatusEnum.canceled]: colorCodingPillLabelTheme.normal,\n};\n\nconst SpotBidStatusPill: React.FC<PropsT> = React.memo((props) => {\n    const { status, className, isSymmetrical } = props;\n\n    const { partnerId } = usePartnerContext();\n\n    const themeMap =\n        partnerId === DEFAULT_CARRIER_COMPANY_ID ? CARRIER_PILL_THEME_BY_STATUS : BROKER_PILL_THEME_BY_STATUS;\n\n    const { t } = useTranslation();\n    if (!status) {\n        return null;\n    }\n\n    const theme = themeMap[status] || PillLabelThemeEnum.charcoal;\n\n    return (\n        <>\n            <PillLabel\n                isNoWrap\n                theme={theme}\n                testSelector=\"spot-bid-status\"\n                className={className}\n                isSymmetrical={isSymmetrical}\n            >\n                {t(SPOT_BID_STATUS_T_MAP[status])}\n            </PillLabel>\n        </>\n    );\n});\n\nexport default SpotBidStatusPill;\n","import * as React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './AssetTypeTabs.scss';\nimport { useTranslation } from 'react-i18next';\nimport { SelfCostPredictionT } from 'broker-admin/store/broker-order-assigment/models';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport ButtonGroup from 'design-system/components/ButtonGroup/ButtonGroup';\nimport { AssetTypeTabsEnum } from './constants';\nimport { TourTypeTabsEnum } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/TourTypeTabs/constants';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    selfCostPrediction?: SelfCostPredictionT | null;\n    selectedTourTypeTab: TourTypeTabsEnum;\n    selectedAssetType: AssetTypeTabsEnum | null;\n    onSelectAssetType: (tab: AssetTypeTabsEnum | null) => void;\n};\n\nconst I18N_MAP: Record<AssetTypeTabsEnum, string> = {\n    [AssetTypeTabsEnum.train]: 'assignment.asset-type-tabs.train',\n    [AssetTypeTabsEnum.truck]: 'assignment.asset-type-tabs.truck',\n    [AssetTypeTabsEnum.trailer]: 'assignment.asset-type-tabs.trailer',\n};\n\nconst AssetTypeTabs: React.FC<PropsT> = React.memo((props) => {\n    const { className, selectedTourTypeTab, selectedAssetType, onSelectAssetType, selfCostPrediction } = props;\n\n    const { t } = useTranslation();\n\n    const availableAssetTypeTabs = React.useMemo((): Array<AssetTypeTabsEnum> => {\n        const tabs: Array<AssetTypeTabsEnum> = [];\n\n        if (\n            selectedTourTypeTab === TourTypeTabsEnum.current &&\n            selfCostPrediction?.calculatedSumCost &&\n            selfCostPrediction?.calculatedTruckCost &&\n            selfCostPrediction?.calculatedTrailerCost\n        ) {\n            tabs.push(AssetTypeTabsEnum.train);\n        }\n\n        const isNextTourAssetsLink =\n            selfCostPrediction?.truckNextTransportationOrderInfo?.id &&\n            selfCostPrediction?.trailerNextTransportationOrderInfo?.id &&\n            selfCostPrediction?.truckNextTransportationOrderInfo?.id ===\n                selfCostPrediction?.trailerNextTransportationOrderInfo?.id;\n        if (selectedTourTypeTab === TourTypeTabsEnum.next && isNextTourAssetsLink) {\n            tabs.push(AssetTypeTabsEnum.train);\n        }\n\n        if (\n            selectedTourTypeTab === TourTypeTabsEnum.next &&\n            !isNextTourAssetsLink &&\n            selfCostPrediction?.truckNextTourNewCostDetails\n        ) {\n            tabs.push(AssetTypeTabsEnum.truck);\n        }\n\n        if (\n            selectedTourTypeTab === TourTypeTabsEnum.next &&\n            !isNextTourAssetsLink &&\n            selfCostPrediction?.trailerNextTourNewCostDetails\n        ) {\n            tabs.push(AssetTypeTabsEnum.trailer);\n        }\n\n        if (selectedTourTypeTab === TourTypeTabsEnum.current && selfCostPrediction?.calculatedTruckCost) {\n            tabs.push(AssetTypeTabsEnum.truck);\n        }\n\n        if (selectedTourTypeTab === TourTypeTabsEnum.current && selfCostPrediction?.calculatedTrailerCost) {\n            tabs.push(AssetTypeTabsEnum.trailer);\n        }\n\n        return tabs;\n    }, [selectedTourTypeTab, selfCostPrediction]);\n\n    React.useEffect(() => {\n        if (!selectedAssetType || !availableAssetTypeTabs.includes(selectedAssetType)) {\n            onSelectAssetType(availableAssetTypeTabs[0] || null);\n        }\n\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [availableAssetTypeTabs, selectedAssetType]);\n\n    return (\n        <ButtonGroup className={cs(cx('wrap'), className)}>\n            {availableAssetTypeTabs.map((type) => {\n                const isSelected = type === selectedAssetType;\n\n                return (\n                    <Button\n                        key={type}\n                        theme={ButtonThemeEnum.transparent}\n                        testSelector={type}\n                        isToggled={isSelected}\n                        onClick={() => {\n                            onSelectAssetType(type);\n                        }}\n                    >\n                        {t(I18N_MAP[type])}\n                    </Button>\n                );\n            })}\n        </ButtonGroup>\n    );\n});\n\nexport default AssetTypeTabs;\n","// extracted by mini-css-extract-plugin\nexport default {\"field\":\"SignInPage__field___hE7Ur\",\"field-label\":\"SignInPage__field-label___OhfHb\",\"submit\":\"SignInPage__submit___BmH6m\",\"footer-links\":\"SignInPage__footer-links___qbleG\",\"footer-links__link\":\"SignInPage__footer-links__link___Wa6gt\",\"notification\":\"SignInPage__notification___b_yFP\",\"opacityAppear\":\"SignInPage__opacityAppear___jdgOl\",\"input\":\"SignInPage__input___UUxGR\",\"fadeIn\":\"SignInPage__fadeIn___iJhj1\",\"blinking\":\"SignInPage__blinking___cgLkt\"};","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\n\ntype PropsT = {\n    tourNumber: React.ReactNode;\n    originCity: React.ReactNode;\n    destinationCity: React.ReactNode;\n};\n\nconst TourDelayingCard: React.FC<PropsT> = React.memo((props) => {\n    const { tourNumber, originCity, destinationCity } = props;\n\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey=\"common:notifications.tour-delaying\"\n                components={{\n                    tourNumber: <NotificationEntityLabel isBold isUnderline text={tourNumber} />,\n                    cityFrom: <NotificationEntityLabel isBold text={originCity} />,\n                    cityTo: <NotificationEntityLabel isBold text={destinationCity} />,\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default TourDelayingCard;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport DeleteIcon from 'common/icons/DeleteIcon';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\n\ntype PropsT = {\n    className?: string;\n    onClick: () => void;\n};\n\nconst DeleteWaypointTrigger: React.FC<PropsT> = React.memo((props) => {\n    const { className, onClick } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <Tooltip\n            position={TooltipPositionEnum.centerLeft}\n            theme={TooltipThemeEnum.black}\n            tooltipNode={\n                <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                    {t('common:new-order-form.route-editor.delete-point')}\n                </TooltipContent>\n            }\n        >\n            {() => (\n                <TransparentTrigger\n                    className={className}\n                    spaces=\"s\"\n                    onClick={onClick}\n                    leftIcon={<DeleteIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                    reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                />\n            )}\n        </Tooltip>\n    );\n});\n\nexport default DeleteWaypointTrigger;\n","// extracted by mini-css-extract-plugin\nexport default {\"widget\":\"BaseShipperContractDetailsLayout__widget___VJ8ax\",\"widget__inner\":\"BaseShipperContractDetailsLayout__widget__inner___VLzg0\",\"widget-group\":\"BaseShipperContractDetailsLayout__widget-group___sefo2\",\"widget-group__widget\":\"BaseShipperContractDetailsLayout__widget-group__widget___UbkpP\",\"history-table\":\"BaseShipperContractDetailsLayout__history-table___rx93M\",\"history\":\"BaseShipperContractDetailsLayout__history___mEpfA\",\"details\":\"BaseShipperContractDetailsLayout__details___rs8zO\",\"fadeIn\":\"BaseShipperContractDetailsLayout__fadeIn___QKl7v\",\"blinking\":\"BaseShipperContractDetailsLayout__blinking___gzujC\"};","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT, MAX_RADIUS_KM, MIN_VALID_FROM_VALID_TILL_DAYS } from './constants';\nimport {\n    checkDateIsBeforeDay,\n    checkDateIsAfterDay,\n    checkIsPositiveNumberValue,\n    checkMaxValue,\n    checkMinValue,\n    checkNotEmpty,\n    checkRoundValue,\n} from 'common/utils/form-validators';\nimport { checkIsAvailableCountryForShip } from 'common/store/country-settings-dict/utils/check-location';\n\nimport { ShipperContractDetailsT } from 'common/store/shipper-contract-details/models';\nimport { getDayDiff } from 'common/utils/time';\nimport { CountrySettingsByCodeT } from 'common/store/country-settings-dict/models';\n\ntype DataT = {\n    countriesSettingsByCode: CountrySettingsByCodeT;\n    contractDetails: ShipperContractDetailsT | null;\n};\n\nconst validate = (t: TFunction, values: FormValuesT, data: DataT): FormErrorsT => {\n    const { countriesSettingsByCode, contractDetails } = data;\n\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(\n            t,\n            [\n                FieldsEnum.trailerDictId,\n                FieldsEnum.emissionClass,\n\n                FieldsEnum.pickUpLocation,\n                FieldsEnum.pickUpLocationRadius,\n\n                FieldsEnum.dropOffLocation,\n                FieldsEnum.dropOffLocationRadius,\n\n                FieldsEnum.validFrom,\n                FieldsEnum.validTill,\n\n                FieldsEnum.layoverLimit,\n                FieldsEnum.ordersLimit,\n            ],\n            values,\n        ),\n        ...checkIsPositiveNumberValue(\n            t,\n            [\n                FieldsEnum.pickUpLocationRadius,\n                FieldsEnum.dropOffLocationRadius,\n                FieldsEnum.layoverLimit,\n                FieldsEnum.ordersLimit,\n            ],\n            values,\n        ),\n        ...checkMaxValue(t, [FieldsEnum.pickUpLocationRadius, FieldsEnum.dropOffLocationRadius], values, MAX_RADIUS_KM),\n        ...checkMaxValue(t, [FieldsEnum.layoverLimit], values, 48),\n        ...checkMinValue(t, [FieldsEnum.ordersLimit], values, 1),\n        ...checkMaxValue(t, [FieldsEnum.ordersLimit], values, 100000),\n        ...checkRoundValue(t, [FieldsEnum.layoverLimit, FieldsEnum.ordersLimit], values),\n\n        ...checkDateIsBeforeDay(t, [FieldsEnum.validFrom], values, values[FieldsEnum.validTill]),\n        ...checkDateIsAfterDay(t, [FieldsEnum.validFrom, FieldsEnum.validTill], values, contractDetails?.validFrom),\n        ...checkDateIsBeforeDay(t, [FieldsEnum.validFrom, FieldsEnum.validTill], values, contractDetails?.validTill),\n    };\n\n    const validFrom = values[FieldsEnum.validFrom];\n    const validTill = values[FieldsEnum.validTill];\n\n    if (validFrom && validTill && getDayDiff(validFrom, validTill) < MIN_VALID_FROM_VALID_TILL_DAYS) {\n        errors[FieldsEnum.validTill] = t('common:shipper-lane-details.errors.valid-till-inteval-valid-from', {\n            count: MIN_VALID_FROM_VALID_TILL_DAYS,\n        });\n    }\n\n    if (!checkIsAvailableCountryForShip(values[FieldsEnum.dropOffLocation], countriesSettingsByCode)) {\n        errors[FieldsEnum.dropOffLocation] = t('common:new-order-form.errors.unsupported-country');\n    }\n\n    if (!checkIsAvailableCountryForShip(values[FieldsEnum.pickUpLocation], countriesSettingsByCode)) {\n        errors[FieldsEnum.pickUpLocation] = t('common:new-order-form.errors.unsupported-country');\n    }\n\n    return errors;\n};\n\nexport default validate;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"ColoredStatusLabel__wrap___tIDK9\",\"wrap--isInline\":\"ColoredStatusLabel__wrap--isInline____VI5C\",\"wrap--isRightIcon\":\"ColoredStatusLabel__wrap--isRightIcon___psxDM\",\"icon\":\"ColoredStatusLabel__icon___Tu6U0\",\"label\":\"ColoredStatusLabel__label___OyNT6\",\"icon--withVerticalPaddings\":\"ColoredStatusLabel__icon--withVerticalPaddings___TzoWE\",\"fadeIn\":\"ColoredStatusLabel__fadeIn____hB5R\",\"blinking\":\"ColoredStatusLabel__blinking___CREOx\"};","// extracted by mini-css-extract-plugin\nexport default {\"table__header\":\"TrucksTable__table__header___oGsZh\",\"table__header--checkbox\":\"TrucksTable__table__header--checkbox___DMb91\",\"table__header--emission-class\":\"TrucksTable__table__header--emission-class___iUUcS\",\"table__header--linked\":\"TrucksTable__table__header--linked___Rpg6u\",\"table__header--dedicated\":\"TrucksTable__table__header--dedicated___wRblc\",\"table__column--checkbox\":\"TrucksTable__table__column--checkbox___EOfEo\",\"table__column--any\":\"TrucksTable__table__column--any___mNcXy\",\"table__column--created\":\"TrucksTable__table__column--created___FhRrD\",\"table__column--plate-number\":\"TrucksTable__table__column--plate-number___erfMn\",\"table__column--status\":\"TrucksTable__table__column--status___xOEWX\",\"fadeIn\":\"TrucksTable__fadeIn___GvMZ1\",\"blinking\":\"TrucksTable__blinking___lC1RU\"};","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"DetailsOrPapersTabs__header___kTOs8\",\"fadeIn\":\"DetailsOrPapersTabs__fadeIn___s8_Yp\",\"blinking\":\"DetailsOrPapersTabs__blinking___aarkM\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './TruckOptionLabel.scss';\nimport HollowCircleIcon from 'common/icons/HollowCircleIcon';\nimport getUtilizationColor from 'common/utils/get-utilization-color';\nimport { useTranslation } from 'react-i18next';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { ApiTruckRateModeT, TruckRateModeEnum } from 'common/utils/api/models';\nimport isNumber from 'lodash/isNumber';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    model?: string;\n    plateNumber?: string;\n    price?: string;\n    rateMode: ApiTruckRateModeT | null;\n    assetUtilizationPercent: number | null | undefined;\n    isAssetUtilizationLoading: boolean;\n    carrierUtilizationPercent: number | null | undefined;\n    isCarrierUtilizationLoading: boolean;\n    isInvalid?: boolean;\n};\n\nconst rateModeI18nMap: Record<ApiTruckRateModeT, string> = {\n    [TruckRateModeEnum.brutto]: 'assignment.rate-mode.brutto',\n    [TruckRateModeEnum.netto]: 'assignment.rate-mode.netto',\n};\n\nconst TruckOptionLabel: React.FC<PropsT> = React.memo((props) => {\n    const {\n        model,\n        plateNumber,\n        price,\n        rateMode,\n        assetUtilizationPercent,\n        isAssetUtilizationLoading,\n        carrierUtilizationPercent,\n        isCarrierUtilizationLoading,\n        isInvalid,\n    } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <div\n            className={cx('option', {\n                'option--is-invalid': !!isInvalid,\n            })}\n        >\n            <div className={cx('asset')}>\n                <div className={cx('asset-column')}>\n                    <div className={cx('model-and-plate-number')}>\n                        {[plateNumber, model].filter(Boolean).join(' / ')}\n                    </div>\n                    <div className={cx('price')}>\n                        {price || ''}\n                        {!!rateMode && <span className={cx('rate-mode')}>({t(rateModeI18nMap[rateMode])})</span>}\n                    </div>\n                </div>\n                <div className={cx('asset-column')}>\n                    <div className={cx('utilization')}>\n                        {isNumber(assetUtilizationPercent) && (\n                            <>\n                                <HollowCircleIcon borderColor={getUtilizationColor(assetUtilizationPercent)} />\n                                <div className={cx('utilization__label')}>\n                                    {t('assignment.asset-utilization', { percent: assetUtilizationPercent })}\n                                </div>\n                            </>\n                        )}\n                        {!isNumber(assetUtilizationPercent) && isAssetUtilizationLoading && (\n                            <ControlLoaderIcon fillColor={StyleGuideColorsEnum.brandAccent} size={DEFAULT_ICON_SIZE} />\n                        )}\n                    </div>\n                    <div className={cx('utilization')}>\n                        {isNumber(carrierUtilizationPercent) && (\n                            <>\n                                <HollowCircleIcon borderColor={getUtilizationColor(carrierUtilizationPercent)} />\n                                <div className={cx('utilization__label')}>\n                                    {t('assignment.carrier-utilization', { percent: carrierUtilizationPercent })}\n                                </div>\n                            </>\n                        )}\n                        {!isNumber(carrierUtilizationPercent) && isCarrierUtilizationLoading && (\n                            <ControlLoaderIcon fillColor={StyleGuideColorsEnum.brandAccent} size={DEFAULT_ICON_SIZE} />\n                        )}\n                    </div>\n                </div>\n            </div>\n        </div>\n    );\n});\n\nexport default TruckOptionLabel;\n","import {\n    FETCH_TRACK_REQUEST_BEGIN,\n    FETCH_TRACK_REQUEST_ERROR,\n    FETCH_TRACK_REQUEST_SUCCESS,\n    FetchTrackByOrderActionT,\n    FetchTrackRequestBeginActionT,\n    FetchTrackRequestErrorActionT,\n    FetchTrackRequestSuccessActionT,\n    FETCH_TRACK_BY_ORDER,\n    FetchTrackByTransportOrderActionT,\n    FETCH_TRACK_BY_TRANSPORT_ORDERS,\n} from './types';\nimport { TrackPointT } from 'common/store/asset-track/models';\n\nexport const fetchTracksByOrder = (orderId: OrderIdT): FetchTrackByOrderActionT => ({\n    type: FETCH_TRACK_BY_ORDER,\n    orderId,\n});\n\nexport const fetchTracksByTransportOrders = (\n    transportOrderIds: Array<TransportOrderIdT>,\n): FetchTrackByTransportOrderActionT => ({\n    type: FETCH_TRACK_BY_TRANSPORT_ORDERS,\n    transportOrderIds,\n});\n\nexport const fetchTrackBegin = (hash: HashT): FetchTrackRequestBeginActionT => ({\n    type: FETCH_TRACK_REQUEST_BEGIN,\n    hash,\n});\n\nexport const fetchTrackSuccess = (hash: HashT, points: Array<TrackPointT> | null): FetchTrackRequestSuccessActionT => ({\n    type: FETCH_TRACK_REQUEST_SUCCESS,\n    hash,\n    points,\n});\n\nexport const fetchTrackError = (hash: HashT, error: Error): FetchTrackRequestErrorActionT => ({\n    type: FETCH_TRACK_REQUEST_ERROR,\n    error,\n    hash,\n});\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './PartnerFiltersSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport getQueryFilters from './get-query-filters';\nimport getInitialValues from './get-initial-values';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { isDeepEqual } from 'common/utils/deep-equal';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport KeyAccountManagerDropdown from 'broker-admin/components/dropdowns/KeyAccountManagerDropdown/KeyAccountManagerDropdown';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport CountryDropdown from 'common/components/dropdowns/CountryDropdown/CountryDropdown';\nimport DispatcherDropdown from 'broker-admin/components/dropdowns/DispatcherDropdown/DispatcherDropdown';\nimport { SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { BrokerSidebarDataT } from 'broker-admin/layouts/SideBars/models';\nimport { PartherFilterSidebarDataT } from 'broker-admin/layouts/SideBars/PartnerFiltersSidebarContent/models';\nimport { useQueryParams } from 'use-query-params';\nimport { createJsonParams, createPageNumberParam, mergeQueryFilters } from 'common/utils/query';\nimport { QueryFiltersT, QueryKeysEnum } from 'broker-admin/layouts/PartnersPage/query-models';\nimport SelectedFilters from 'broker-admin/layouts/PartnersPage/SelectedFilters/SelectedFilters';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = SidebarContentPropsT<PartherFilterSidebarDataT, BrokerSidebarDataT>;\n\nconst PartnerFiltersSidebarContent: React.FC<PropsT> = (props) => {\n    const { onClose } = props;\n    const { t } = useTranslation();\n\n    const [query, changeQuery] = useQueryParams({\n        [QueryKeysEnum.partnersPage]: createPageNumberParam(),\n        [QueryKeysEnum.partnersFilters]: createJsonParams<QueryFiltersT>({}),\n    });\n    const queryFilters = query[QueryKeysEnum.partnersFilters];\n\n    const [initialQueryFilters, setInitialQueryFilters] = React.useState<QueryFiltersT>(queryFilters);\n\n    React.useEffect(() => {\n        setInitialQueryFilters(queryFilters);\n    }, [queryFilters]);\n\n    const initialValues = React.useMemo(() => getInitialValues(queryFilters), [queryFilters]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialValues,\n        onSubmit: (values, formikHelpers): void => {\n            const newQueryFilters = getQueryFilters(values);\n\n            const mergedQueryFilters = mergeQueryFilters(initialQueryFilters, newQueryFilters);\n\n            changeQuery({\n                [QueryKeysEnum.partnersPage]: 0,\n                [QueryKeysEnum.partnersFilters]: mergedQueryFilters,\n            });\n\n            formikHelpers.setTouched({});\n\n            if (onClose) {\n                onClose();\n            }\n        },\n    });\n\n    const isSameValues = React.useMemo(() => {\n        return isDeepEqual(initialValues, formik.values) && isDeepEqual(initialQueryFilters, queryFilters);\n    }, [initialValues, formik.values, initialQueryFilters, queryFilters]);\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('form')}>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent title={t('partner.filters.title')} onClose={onClose} />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <FormikField\n                    label={t('partner.filters.fields-labels.key-account-manager')}\n                    name={FieldsEnum.keyAccountManagerId}\n                    error={formik.errors[FieldsEnum.keyAccountManagerId]}\n                    meta={formik.getFieldMeta(FieldsEnum.keyAccountManagerId)}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <KeyAccountManagerDropdown\n                            selectedValue={formik.values[FieldsEnum.keyAccountManagerId]}\n                            initialLabel={initialValues[FieldsEnum.keyAccountManagerName]}\n                            placeholder={t('partner.filters.fields-placeholder.key-account-manager')}\n                            onSelect={(memberId, memberName) => {\n                                formik.setFieldValue(FieldsEnum.keyAccountManagerId, memberId);\n                                formik.setFieldValue(FieldsEnum.keyAccountManagerName, memberName);\n                            }}\n                            hasWarning={props.hasWarning}\n                            hasError={props.hasError}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            onReset={() => {\n                                formik.setFieldValue(FieldsEnum.keyAccountManagerId, null);\n                                formik.setFieldValue(FieldsEnum.keyAccountManagerName, null);\n                            }}\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    label={t('partner.filters.fields-labels.dispatcher')}\n                    name={FieldsEnum.dispatcherId}\n                    error={formik.errors[FieldsEnum.dispatcherId]}\n                    meta={formik.getFieldMeta(FieldsEnum.dispatcherId)}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <DispatcherDropdown\n                            selectedValue={formik.values[FieldsEnum.dispatcherId]}\n                            initialLabel={initialValues[FieldsEnum.dispatcherName]}\n                            placeholder={t('partner.filters.fields-placeholder.dispatcher')}\n                            onSelect={(memberId, memberName) => {\n                                formik.setFieldValue(FieldsEnum.dispatcherId, memberId);\n                                formik.setFieldValue(FieldsEnum.dispatcherName, memberName);\n                            }}\n                            hasWarning={props.hasWarning}\n                            hasError={props.hasError}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            onReset={() => {\n                                formik.setFieldValue(FieldsEnum.dispatcherId, null);\n                                formik.setFieldValue(FieldsEnum.dispatcherName, null);\n                            }}\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    label={t('partner.filters.fields-labels.country')}\n                    name={FieldsEnum.countryCode}\n                    error={formik.errors[FieldsEnum.countryCode]}\n                    meta={formik.getFieldMeta(FieldsEnum.countryCode)}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <CountryDropdown\n                            value={formik.values[FieldsEnum.countryCode]}\n                            onChange={props.onChange}\n                            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            onReset={() => {\n                                props.onChange(null);\n                            }}\n                        />\n                    )}\n                </FormikField>\n            </SideBarLayout>\n            <FooterSideBarLayout hasPaddings>\n                <div className={cx('selected-filters')}>\n                    <SelectedFilters queryFilters={initialQueryFilters} setQueryFilters={setInitialQueryFilters} />\n                </div>\n                <Button\n                    theme={ButtonThemeEnum.primary}\n                    isDisabled={isSameValues}\n                    isFullWidth\n                    isCenterContent\n                    type=\"submit\"\n                >\n                    {t('partner.filters.submit')}\n                </Button>\n            </FooterSideBarLayout>\n        </form>\n    );\n};\n\nexport default PartnerFiltersSidebarContent;\n","import {\n    SpotRequestsStatsActionT,\n    SpotRequestsStatsStateT,\n    FETCH_SPOT_REQUESTS_STATS_REQUEST_BEGIN,\n    FETCH_SPOT_REQUESTS_STATS_REQUEST_ERROR,\n    FETCH_SPOT_REQUESTS_STATS_REQUEST_SUCCESS,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\nimport { SpotRequestStatStatusEnum } from 'broker-admin/utils/api/spot-broker-tranziit/models';\nimport isNumber from 'lodash/isNumber';\n\nconst initialState: SpotRequestsStatsStateT = {\n    stats: null,\n    fetchRequest: requestStatus.initial,\n};\n\nexport default (\n    state = initialState,\n    action: SpotRequestsStatsActionT | DestroySessionActionT,\n): SpotRequestsStatsStateT => {\n    switch (action.type) {\n        case FETCH_SPOT_REQUESTS_STATS_REQUEST_BEGIN: {\n            return {\n                ...state,\n                fetchRequest: requestStatus.loading,\n            };\n        }\n\n        case FETCH_SPOT_REQUESTS_STATS_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                fetchRequest: requestStatus.setError(error),\n            };\n        }\n\n        case FETCH_SPOT_REQUESTS_STATS_REQUEST_SUCCESS: {\n            const { statistics } = action;\n\n            const stats = (statistics || []).reduce(\n                (acc, statistic) => {\n                    const { status, count } = statistic;\n\n                    if (status && isNumber(count)) {\n                        acc[status as SpotRequestStatStatusEnum] = count;\n                    }\n\n                    return acc;\n                },\n                {\n                    [SpotRequestStatStatusEnum.open]: 0,\n                    [SpotRequestStatStatusEnum.accepted]: 0,\n                    [SpotRequestStatStatusEnum.expireSoon]: 0,\n                    [SpotRequestStatStatusEnum.newBids]: 0,\n                    [SpotRequestStatStatusEnum.assigned]: 0,\n                    [SpotRequestStatStatusEnum.expired]: 0,\n                    [SpotRequestStatStatusEnum.canceled]: 0,\n                    [SpotRequestStatStatusEnum.unknown]: 0,\n                },\n            );\n            return {\n                ...state,\n                stats,\n                fetchRequest: requestStatus.ok,\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default:\n            return state;\n    }\n};\n","import * as React from 'react';\nimport { useEffect, useMemo } from 'react';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport HeaderSideBarContent, {\n    HeaderSidebarActionT,\n} from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport { fetchSpotRequestDetails } from 'broker-admin/store/spot-request-details/actions';\nimport { selectSpotRequestDetails } from 'broker-admin/store/spot-request-details/selectors';\nimport SpotRequestDetails from 'broker-admin/components/BaseSpotRequestDetailsSidebarContent/SpotRequestDetails/SpotRequestDetails';\nimport SpotRequestStatusPill from 'common/components/status-pill/SpotRequestStatusPill/SpotRequestStatusPill';\nimport EntitySidebarSkeleton from 'common/components/entity-details/EntitySidebarSkeleton/EntitySidebarSkeleton';\nimport SideBarRequestStatus from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarRequestStatus/SideBarRequestStatus';\nimport SideBarHeaderRequestStatus from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarHeaderRequestStatus/SideBarHeaderRequestStatus';\nimport SideBarLayoutContextWrap from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayoutContextWrap/SideBarLayoutContextWrap';\nimport MapTrigger, { MapTriggerPropsT } from 'common/components/MapTrigger/MapTrigger';\nimport {\n    ApiSpotRequestStatusT,\n    SpotBidT,\n    SpotRequestStatStatusEnum,\n    SpotRequestStatusEnum,\n} from 'broker-admin/utils/api/spot-broker-tranziit/models';\nimport { logWarning } from 'common/utils/logger';\nimport StartSelectBidFooterContent from './footers/StartSelectBidFooterContent/StartSelectBidFooterContent';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport { BidStatusEnum } from 'carrier/utils/api/spot-carrier-tranziit/models';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport DeleteIcon from 'common/icons/DeleteIcon';\nimport { useTranslation } from 'react-i18next';\nimport { cancelSpotRequest } from 'broker-admin/store/spot/actions';\nimport { selectSpotUpdateRequestStatus } from 'broker-admin/store/spot/selectors';\n\ntype PropsT = {\n    id: SpotRequestIdT;\n    onClose: (() => void) | null | undefined;\n    onOpenUserDetails: (params: {\n        partnerType: PartnerTypeEnum;\n        partnerId: PartnerIdT;\n        userId: UserIdT | null;\n    }) => void;\n} & MapTriggerPropsT;\n\nconst shouldSelectBidSet = new Set<ApiSpotRequestStatusT>([SpotRequestStatStatusEnum.accepted]);\n\nconst BaseSpotRequestDetailsSidebarContent: React.FC<PropsT> = React.memo((props) => {\n    const { id, onClose, isActiveMapTrigger, toggleMap, onOpenUserDetails } = props;\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const [selectedBidId, selectBidId] = React.useState<BidIdT | null>(null);\n\n    React.useEffect(() => {\n        dispatch(fetchSpotRequestDetails(id));\n    }, [id, dispatch]);\n\n    const { details, fetchDetailsRequestStatus, updateRequestStatus } = useSelector(selectSpotRequestDetails(id));\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        dispatch(fetchSpotRequestDetails(id));\n    }, [id, dispatch]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        dispatch(fetchSpotRequestDetails(id, { isForceUpdate: true }));\n    }, [id, dispatch]);\n\n    const spotUpdateRequestStatus = useSelector(selectSpotUpdateRequestStatus);\n\n    const handleSelectBid = React.useCallback((bid: SpotBidT) => {\n        if (!bid?.id) {\n            logWarning('empty bid.id!');\n            return;\n        }\n\n        selectBidId(bid.id);\n    }, []);\n\n    const wonBidId = useMemo((): BidIdT | null => {\n        const wonBid = (details?.bids || []).find((bid) => {\n            return bid.status === BidStatusEnum.won;\n        });\n\n        return wonBid?.id || null;\n    }, [details]);\n\n    useEffect(() => {\n        if (wonBidId !== selectedBidId) {\n            selectBidId(wonBidId);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [wonBidId]);\n\n    const isShouldSelectBid = details?.status && shouldSelectBidSet.has(details.status);\n\n    const renderFooterNode = (): React.ReactNode => {\n        if (isShouldSelectBid && selectedBidId) {\n            return (\n                <FooterSideBarLayout hasPaddings>\n                    <StartSelectBidFooterContent\n                        spotRequestId={id}\n                        selectedBidId={selectedBidId}\n                        details={details}\n                        updateRequestStatus={updateRequestStatus}\n                    />\n                </FooterSideBarLayout>\n            );\n        }\n\n        return null;\n    };\n\n    const headerDropdownOptions = React.useMemo((): Array<HeaderSidebarActionT> => {\n        if (details?.status === SpotRequestStatusEnum.open || details?.status === SpotRequestStatusEnum.accepted) {\n            return [\n                {\n                    label: (\n                        <DropdownControlOptionLabel\n                            icon={<DeleteIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                            label={t('spot-request-details.actions.cancel')}\n                        />\n                    ),\n                    onSelect: () => {\n                        dispatch(cancelSpotRequest(id));\n                    },\n                },\n            ];\n        }\n\n        return [];\n    }, [details, dispatch, id, t]);\n\n    return (\n        <SideBarLayoutContextWrap>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent\n                    title={details?.number || null}\n                    afterTitleNode={<SpotRequestStatusPill isSymmetrical status={details?.status} />}\n                    beforeDropdownNode={<MapTrigger isActiveMapTrigger={isActiveMapTrigger} toggleMap={toggleMap} />}\n                    testSelector=\"spot-request-details\"\n                    onClose={onClose}\n                    dropdownOptions={headerDropdownOptions}\n                />\n                <SideBarHeaderRequestStatus\n                    requestStatus={fetchDetailsRequestStatus}\n                    hasCachedData={Boolean(details)}\n                    isForceShowLoader={spotUpdateRequestStatus.loading || updateRequestStatus.loading}\n                />\n            </HeaderSideBarLayout>\n            <SideBarLayout testSelector=\"spot-request-details\">\n                <SideBarRequestStatus\n                    requestStatus={fetchDetailsRequestStatus}\n                    hasCachedData={Boolean(details)}\n                    onRetry={handleRefreshOnError}\n                    SkeletonComponent={EntitySidebarSkeleton}\n                >\n                    {details ? (\n                        <SpotRequestDetails\n                            id={id}\n                            selectedBidId={selectedBidId}\n                            isDisabledSelectBid={!isShouldSelectBid}\n                            onSelectBid={handleSelectBid}\n                            onOpenUserDetails={onOpenUserDetails}\n                        />\n                    ) : null}\n                </SideBarRequestStatus>\n            </SideBarLayout>\n            {renderFooterNode()}\n        </SideBarLayoutContextWrap>\n    );\n});\n\nexport default BaseSpotRequestDetailsSidebarContent;\n","import React, { ReactNode } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { DocumentT } from 'common/store/documents/models';\nimport DocumentsTable, {\n    TableColumnModsEnum,\n    TableColumnT,\n    TableRowMetaT,\n    TableRowModsEnum,\n    TableRowThemeEnum,\n} from 'common/components/DocumentsTable/DocumentsTable';\nimport MemoizedTable from 'common/components/Table/MemoizedTable/MemoizedTable';\nimport classNames from 'classnames/bind';\nimport styles from './BaseDocumentsTable.scss';\nimport DocumentTypeCell from 'common/layouts/BaseDocumentsLayout/BaseDocumentsTable/cell-renderers/DocumentTypeCell/DocumentTypeCell';\nimport EventCell from 'common/components/Table/cell-renderers/EventCell/EventCell';\nimport ActionsCell from 'common/layouts/BaseDocumentsLayout/BaseDocumentsTable/cell-renderers/ActionsCell/ActionsCell';\nimport { DocumentActionsT } from '../models';\nimport ExpireDateCell from 'common/layouts/BaseDocumentsLayout/BaseDocumentsTable/cell-renderers/ExpireDateCell/ExpireDateCell';\nimport { DictDocumentT } from 'common/store/documents-dict/models';\nimport { DocumentRequiredEnum, DocumentStatusEnum } from 'common/utils/api/models';\nimport DateCell from 'common/components/Table/cell-renderers/DateCell/DateCell';\nimport DocumentStatusPill from 'common/components/status-pill/DocumentStatusPill/DocumentStatusPill';\n\ntype PropsT = {\n    className?: string;\n    tableName: string;\n    rows: Array<DocumentRowT>;\n    onSelectRow?: (row: DocumentRowT) => void;\n    isLoading: boolean;\n    isShowReviewUser: boolean;\n    testSelector?: string;\n    footerNode?: ReactNode;\n    onOpenUserDetails: (userId: UserIdT) => void;\n    documentStatusesAttentionSet?: Set<DocumentStatusEnum | null>;\n} & DocumentActionsT;\n\nexport type DocumentRowT = {\n    dictDocument: DictDocumentT;\n    actualVersion: DocumentT | null;\n    oldVersions: Array<DocumentT> | null;\n};\n\nconst cx = classNames.bind(styles);\n\nconst BaseDocumentsTable: React.FC<PropsT> = React.memo((props) => {\n    const {\n        tableName,\n        rows,\n        isLoading,\n        onOpenUserDetails,\n        testSelector,\n        className,\n        footerNode,\n        onSelectRow,\n        onUploadDocument,\n        onDownloadDocument,\n        onEditDocumentInfo,\n        onRevokeDocument,\n        isShowReviewUser,\n        documentStatusesAttentionSet,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const columns: Array<TableColumnT<DocumentRowT, void>> = [\n        {\n            renderHeader: () => <span>{t('common:documents.table.columns.type')}</span>,\n            headerClassName: cx('table__header', 'table__header--type'),\n            render: (row: DocumentRowT) => (\n                <DocumentTypeCell name={row.dictDocument.name} isEmpty={!row?.actualVersion} />\n            ),\n            className: cx('table__column', 'table__column--type'),\n            testSelector: 'type',\n        },\n        {\n            renderHeader: () => <span>{t('common:documents.table.columns.uploaded')}</span>,\n            headerClassName: cx('table__header'),\n            render: (row: DocumentRowT) => {\n                if (!row.actualVersion) {\n                    return null;\n                }\n\n                return (\n                    <EventCell\n                        date={row.actualVersion.createdDate}\n                        userId={row.actualVersion.createdById}\n                        userFullName={row.actualVersion.createdByName}\n                        byBroker={row.actualVersion.createdByBroker}\n                        openUserDetails={onOpenUserDetails}\n                    />\n                );\n            },\n            className: cx('table__column', 'table__column--upload'),\n            testSelector: 'upload',\n        },\n        {\n            renderHeader: () => <span>{t('common:documents.table.columns.reviewed')}</span>,\n            headerClassName: cx('table__header'),\n            render: (row: DocumentRowT) => {\n                if (!row.actualVersion) {\n                    return null;\n                }\n\n                if (isShowReviewUser) {\n                    return (\n                        <EventCell\n                            date={row.actualVersion.reviewedDate}\n                            userId={row.actualVersion.reviewedById}\n                            userFullName={row.actualVersion.reviewedByName}\n                            byBroker\n                            openUserDetails={onOpenUserDetails}\n                        />\n                    );\n                }\n\n                return <DateCell isBigFont isBold date={row.actualVersion?.reviewedDate} />;\n            },\n            className: cx('table__column', 'table__column--review'),\n            testSelector: 'review',\n        },\n        {\n            renderHeader: () => <span>{t('common:documents.table.columns.expire-date')}</span>,\n            headerClassName: cx('table__header'),\n            headerMods: {\n                [TableColumnModsEnum.center]: true,\n            },\n            render: (row: DocumentRowT) => {\n                return <ExpireDateCell row={row} onUploadDocument={onUploadDocument} onSelectRow={onSelectRow} />;\n            },\n            className: cx('table__column', 'table__column--expire-date'),\n            testSelector: 'valid-till',\n        },\n        {\n            renderHeader: () => <span>{t('common:documents.table.columns.status')}</span>,\n            headerClassName: cx('table__header'),\n            render: (row: DocumentRowT) => {\n                const status = row.actualVersion ? row.actualVersion.status : null;\n\n                return (\n                    <DocumentStatusPill\n                        status={status}\n                        isSymmetrical\n                        isRequiredDocument={row?.dictDocument?.required === DocumentRequiredEnum.must}\n                    />\n                );\n            },\n            className: cx('table__column', 'table__column--status'),\n            testSelector: 'status',\n        },\n        {\n            renderHeader: () => null,\n            headerClassName: cx('table__header'),\n            render: (row: DocumentRowT) => {\n                return (\n                    <ActionsCell\n                        row={row}\n                        onUploadDocument={onUploadDocument}\n                        onDownloadDocument={onDownloadDocument}\n                        onEditDocumentInfo={onEditDocumentInfo}\n                        onRevokeDocument={onRevokeDocument}\n                    />\n                );\n            },\n            className: cx('table__column', 'table__column--actions'),\n            testSelector: 'actions',\n        },\n    ];\n\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const getRowMods = (meta: TableRowMetaT, row: DocumentRowT) => {\n        return {\n            [TableRowModsEnum.hasLeftOrangeBorder]: documentStatusesAttentionSet?.has(\n                row.actualVersion?.status || null,\n            ),\n        };\n    };\n\n    const getRowTheme = (meta: TableRowMetaT, row: DocumentRowT): TableRowThemeEnum => {\n        return row?.actualVersion ? TableRowThemeEnum.normal : TableRowThemeEnum.empty;\n    };\n\n    return (\n        <div className={cx('table')}>\n            <MemoizedTable<DocumentRowT> tableName={tableName} isLoading={isLoading} rows={rows}>\n                {(rows, isUsedPrevRows) => (\n                    <DocumentsTable<DocumentRowT, void>\n                        testSelector={testSelector}\n                        className={className}\n                        columns={columns}\n                        rows={rows}\n                        isLoading={isLoading}\n                        getRowMods={getRowMods}\n                        getRowTheme={getRowTheme}\n                        onSelectRow={onSelectRow}\n                        isUsedPrevRows={isUsedPrevRows}\n                        footerNode={footerNode}\n                    />\n                )}\n            </MemoizedTable>\n        </div>\n    );\n});\n\nexport default BaseDocumentsTable;\n","import { eventChannel } from 'redux-saga';\nimport { call, take } from 'redux-saga/effects';\n\nexport function createVisibilityChangeChannel() {\n    return eventChannel((emitter) => {\n        document.addEventListener('visibilitychange', () => {\n            emitter(document.hidden);\n        });\n\n        return () => {\n            // nothing\n        };\n    });\n}\n\nfunction* watchDocumentVisibilityChangeSaga(visibilityChangeSaga: any): WrapGeneratorT<void> {\n    const visibilityChangeChannel = yield call(createVisibilityChangeChannel);\n    while (true) {\n        const isHidden = yield take(visibilityChangeChannel);\n        if (isHidden) {\n            yield call(visibilityChangeSaga);\n        }\n    }\n}\n\nexport default watchDocumentVisibilityChangeSaga;\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkNotEmpty } from 'common/utils/form-validators';\n\nconst REQUIRED_FIELDS = [FieldsEnum.deadlineTimeWindow] as const;\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","import { FieldsEnum, FormValuesT, ShipmentFieldsEnum } from 'common/layouts/NewOrderPage/CargoDetailsForm/constants';\nimport { ApiTrailerDictTypeT } from 'common/utils/api/models';\nimport { TemperatureRangesValidationResultT } from 'common/layouts/NewOrderPage/CargoDetailsForm/footer-alert-contents/TemperatureRangesCompatibleValidationAlertContent/TemperatureRangesCompatibleValidationAlertContent';\n\ntype ValidateMetaT = {\n    trailerType: ApiTrailerDictTypeT | null | undefined;\n};\n\nexport const checkTemperatureRangesCompatible = (\n    formValues: FormValuesT,\n    meta: ValidateMetaT,\n): TemperatureRangesValidationResultT | null => {\n    if (!meta?.trailerType?.reefer) {\n        return null;\n    }\n\n    const shipments = formValues[FieldsEnum.shipments] || [];\n    const firstShipment = shipments?.[0] || null;\n\n    if (!firstShipment) {\n        return null;\n    }\n\n    let minTemperature = firstShipment[ShipmentFieldsEnum.cargoTemperatureRange][0];\n    let maxTemperature = firstShipment[ShipmentFieldsEnum.cargoTemperatureRange][1];\n\n    shipments.forEach((shipment) => {\n        minTemperature = Math.max(minTemperature, shipment[ShipmentFieldsEnum.cargoTemperatureRange][0]);\n        maxTemperature = Math.min(maxTemperature, shipment[ShipmentFieldsEnum.cargoTemperatureRange][1]);\n    });\n\n    const isCompatible = minTemperature <= maxTemperature;\n    return isCompatible ? null : {};\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"name--empty\":\"ContractName__name--empty___wo8Ik\",\"fadeIn\":\"ContractName__fadeIn___BIOGj\",\"blinking\":\"ContractName__blinking___ZBpQ0\"};","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './FooterSideBarLayout.scss';\nimport SideBarLayoutContext from 'common/layouts/LeftMenuLayout/SideBarLayout/contexts/side-bar-layout-context';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    isAbsolute?: boolean;\n    topNode?: React.ReactNode;\n    hasPaddings?: boolean;\n    hasTopBorder?: boolean;\n    isTransparent?: boolean;\n    hasShadow?: boolean;\n};\n\nconst FooterSideBarLayout: React.FC<PropsT> = React.memo((props) => {\n    const { children, isAbsolute, topNode, hasPaddings, hasTopBorder, isTransparent, hasShadow, className } = props;\n\n    const ref = React.useRef<HTMLDivElement | null>(null);\n\n    const context = React.useContext(SideBarLayoutContext);\n\n    const measureContainer = () => {\n        if (!ref.current) {\n            return;\n        }\n\n        const newHeight = ref.current?.clientHeight;\n        context.footerHeight?.setValue(newHeight);\n    };\n\n    React.useEffect(() => {\n        requestAnimationFrame(measureContainer);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [children, topNode, hasPaddings, hasTopBorder]);\n\n    React.useEffect(() => {\n        window.addEventListener('resize', measureContainer);\n\n        return () => {\n            window.removeEventListener('resize', measureContainer);\n            context.footerHeight?.setValue(0);\n        };\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    return (\n        <div\n            ref={ref}\n            className={cs(\n                cx('wrap', {\n                    'wrap--hasTopBorder': hasTopBorder,\n                }),\n                className,\n            )}\n            style={{ marginRight: `${context.scrollBarWidth?.value || 0}px` }}\n        >\n            <div\n                className={cx('inner', {\n                    'inner--isAbsolute': isAbsolute,\n                })}\n            >\n                {topNode}\n                {children && (\n                    <div\n                        className={cx('content', {\n                            'content--hasPaddings': hasPaddings,\n                            'content--hasBackground': !isTransparent,\n                            'content--hasShadow': hasShadow,\n                        })}\n                    >\n                        {children}\n                    </div>\n                )}\n            </div>\n        </div>\n    );\n});\n\nexport default FooterSideBarLayout;\n","import { useEffect, useState } from 'react';\nimport isEqual from 'lodash/isEqual';\n\nfunction useEqualPreviousValue<ValueT>(value: ValueT): ValueT {\n    const [savedValue, setSavedValue] = useState<ValueT>(value);\n\n    // Store current value in ref\n    useEffect(() => {\n        if (!isEqual(savedValue, value)) {\n            setSavedValue(value);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [value]);\n\n    return savedValue;\n}\n\nexport { useEqualPreviousValue };\n","// extracted by mini-css-extract-plugin\nexport default {\"widget\":\"SystemSettings__widget___b4FUU\",\"widget__inner\":\"SystemSettings__widget__inner___YTZbX\",\"widget-group\":\"SystemSettings__widget-group___HwkcD\",\"widget-group__widget\":\"SystemSettings__widget-group__widget___gEYhD\",\"actions\":\"SystemSettings__actions___zmTpV\",\"actions__save\":\"SystemSettings__actions__save___iapa8\",\"wrap\":\"SystemSettings__wrap___mAqDA\",\"field--minimal-cost-for-shipment\":\"SystemSettings__field--minimal-cost-for-shipment___WOVZa\",\"field--driver-salary-per-hour\":\"SystemSettings__field--driver-salary-per-hour___JGppj\",\"field--driver-working-day\":\"SystemSettings__field--driver-working-day___WUCZF\",\"field--driver-rest-time\":\"SystemSettings__field--driver-rest-time___wJVo3\",\"field--layover-cost-per-hour\":\"SystemSettings__field--layover-cost-per-hour___tdmFQ\",\"field--truck-consumption\":\"SystemSettings__field--truck-consumption____b5wm\",\"field--reef-consumption\":\"SystemSettings__field--reef-consumption___O5ZO6\",\"field--green-shipment-cost\":\"SystemSettings__field--green-shipment-cost___xx7hG\",\"field--pricing\":\"SystemSettings__field--pricing___UC4BT\",\"field--carrier-assignment\":\"SystemSettings__field--carrier-assignment___NGikw\",\"field--tranziit-service-fee-value\":\"SystemSettings__field--tranziit-service-fee-value___Dzfjw\",\"field--tranziit-service-fee-type\":\"SystemSettings__field--tranziit-service-fee-type___uFFSB\",\"tab\":\"SystemSettings__tab___zWbn6\",\"fadeIn\":\"SystemSettings__fadeIn___wasG8\",\"blinking\":\"SystemSettings__blinking___wwomZ\"};","import React from 'react';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\nimport find from 'lodash/find';\nimport {\n    useFloating,\n    autoUpdate,\n    offset,\n    flip,\n    shift,\n    useDismiss,\n    useInteractions,\n    FloatingPortal,\n    type Placement,\n} from '@floating-ui/react';\n\nimport styles from './SortDropdown.scss';\nimport ArrowsIcon from 'common/icons/ArrowsIcon';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport DoneIcon from 'common/icons/DoneIcon';\nimport { useTranslation } from 'react-i18next';\nimport ClickInterceptorLabel from 'common/components/ClickInterceptorLabel/ClickInterceptorLabel';\nimport { PageSortT, SortDirectionEnum } from 'common/utils/query';\n\nconst cx = classNames.bind(styles);\n\nexport enum SortDropdownOverlayPositionEnum {\n    left = 'left',\n    right = 'right',\n}\n\nexport type SortDropdownOptionT<T extends string> = {\n    label: string;\n    value: PageSortT<T>['value'];\n};\n\nexport type PropsT<T extends string> = {\n    selectedValue: PageSortT<T>;\n    isDisabled?: boolean;\n    options: Array<SortDropdownOptionT<T>>;\n    onSelect: (value: PageSortT<T>) => void;\n    className?: string;\n    triggerClassName?: string;\n    overlayPosition: SortDropdownOverlayPositionEnum;\n    testSelector?: string;\n};\n\nconst TOOLTIP_DELAY = 300;\n\nconst POSITION_TO_PLACEMENT: Record<SortDropdownOverlayPositionEnum, Placement> = {\n    [SortDropdownOverlayPositionEnum.left]: 'bottom-start',\n    [SortDropdownOverlayPositionEnum.right]: 'bottom-end',\n};\n\nconst SortDropdown = <T extends string = string>(props: PropsT<T>) => {\n    const { selectedValue, onSelect, options, isDisabled, className, triggerClassName, overlayPosition, testSelector } =\n        props;\n\n    const [isActive, toggleActive] = React.useState(false);\n    const [isOpen, toggleOpen] = React.useState(false);\n\n    const { t } = useTranslation();\n\n    const handleOpen = (): void => {\n        if (isDisabled) {\n            return;\n        }\n\n        toggleOpen(true);\n    };\n\n    const handleClose = (): void => {\n        toggleOpen(false);\n    };\n\n    const { refs, floatingStyles, context } = useFloating({\n        open: isOpen,\n        onOpenChange: (open) => {\n            if (!open) {\n                toggleOpen(false);\n            }\n        },\n        placement: POSITION_TO_PLACEMENT[overlayPosition],\n        middleware: [offset(0), flip({ padding: 8 }), shift({ padding: 8 })],\n        strategy: 'fixed',\n        transform: false,\n        whileElementsMounted: autoUpdate,\n    });\n\n    const dismiss = useDismiss(context, {\n        outsidePressEvent: 'mousedown',\n    });\n\n    const { getReferenceProps, getFloatingProps } = useInteractions([dismiss]);\n\n    const selectedOption = find(options, (option) => {\n        return selectedValue.value === option.value;\n    });\n\n    const fullTestSelector = `${testSelector}_sort`;\n\n    return (\n        <div className={cs(cx('input'), className)} ref={refs.setReference} {...getReferenceProps()}>\n            <div\n                className={cs(\n                    cx('trigger', {\n                        'trigger--isClickable': !isDisabled,\n                        'trigger--isPressed': isOpen,\n                        'trigger--isActive': isActive,\n                    }),\n                    triggerClassName,\n                )}\n                onMouseUp={(\n                    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n                    event,\n                ) => {\n                    toggleActive(false);\n                }}\n                onMouseLeave={(\n                    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n                    event,\n                ) => {\n                    toggleActive(false);\n                }}\n                onMouseDown={(\n                    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n                    event,\n                ) => {\n                    toggleActive(true);\n                }}\n                onClick={handleOpen}\n                data-test-selector={`${fullTestSelector}_trigger`}\n            >\n                <div className={cx('trigger__icon')}>\n                    <ClickInterceptorLabel\n                        onClick={() => {\n                            const invertDirection =\n                                selectedValue?.direction === SortDirectionEnum.DESC\n                                    ? SortDirectionEnum.ASC\n                                    : SortDirectionEnum.DESC;\n\n                            onSelect({\n                                value: selectedValue?.value,\n                                direction: invertDirection,\n                            });\n                        }}\n                        onMouseUp={(event) => {\n                            event.stopPropagation();\n                        }}\n                        onMouseDown={(event) => {\n                            event.stopPropagation();\n                        }}\n                    >\n                        <Tooltip\n                            position={\n                                overlayPosition === SortDropdownOverlayPositionEnum.right\n                                    ? TooltipPositionEnum.centerLeft\n                                    : TooltipPositionEnum.centerRight\n                            }\n                            theme={TooltipThemeEnum.black}\n                            delay={TOOLTIP_DELAY}\n                            tooltipNode={\n                                <div className={cx('trigger-tooltip')}>\n                                    {selectedValue?.direction === SortDirectionEnum.ASC\n                                        ? t('common:change-sort.desc')\n                                        : t('common:change-sort.asc')}\n                                </div>\n                            }\n                        >\n                            {() => (\n                                <div\n                                    className={cx('trigger-icon', {\n                                        'trigger-icon--isRevert': selectedValue?.direction === SortDirectionEnum.ASC,\n                                    })}\n                                    data-test-selector={`${fullTestSelector}_direction`}\n                                />\n                            )}\n                        </Tooltip>\n                    </ClickInterceptorLabel>\n                </div>\n                <div className={cx('trigger__label')}>{selectedOption?.label || ''}</div>\n                <div className={cx('trigger__icon')}>\n                    <ArrowsIcon className={cx('icon')} />\n                </div>\n            </div>\n            {isOpen && (\n                <FloatingPortal>\n                    <div\n                        ref={refs.setFloating}\n                        style={floatingStyles}\n                        className={cx('overlay')}\n                        {...getFloatingProps()}\n                    >\n                        {options.map((option, index): React.ReactElement => {\n                            const { label, value } = option || {};\n\n                            const isSelected = selectedValue.value === value;\n\n                            return (\n                                <div\n                                    key={index}\n                                    className={cx('option', {\n                                        'option--isSelected': isSelected,\n                                    })}\n                                    onClick={(): void => {\n                                        if (isDisabled) {\n                                            return;\n                                        }\n\n                                        onSelect({\n                                            value,\n                                            direction: selectedValue.direction,\n                                        });\n\n                                        handleClose();\n                                    }}\n                                    data-test-selector={`${fullTestSelector}_option_${index}`}\n                                >\n                                    <div className={cx('option__label')}>{label}</div>\n                                    {isSelected && (\n                                        <div\n                                            className={cx('option__icon')}\n                                            data-test-selector={`${fullTestSelector}_selected`}\n                                        >\n                                            <DoneIcon\n                                                fillColor={StyleGuideColorsEnum.charcoal}\n                                                size={DEFAULT_ICON_SIZE}\n                                                className={cx('icon')}\n                                            />\n                                        </div>\n                                    )}\n                                </div>\n                            );\n                        })}\n                    </div>\n                </FloatingPortal>\n            )}\n        </div>\n    );\n};\n\nexport default React.memo(SortDropdown) as typeof SortDropdown;\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const membersRefreshChannel = new ViewEventChannel<{}>();\n","import { RFQsQuickFilterEnum } from 'common/utils/api/models';\n\nexport enum QueryFiltersKeysEnum {\n    pickupAddress = 'pickupAddress',\n    dropoffAddress = 'dropoffAddress',\n    dictTrailerId = 'dictTrailerId',\n    pickupDateFrom = 'pickupDateFrom',\n    pickupDateTo = 'pickupDateTo',\n    dropOffDateFrom = 'dropOffDateFrom',\n    dropOffDateTo = 'dropOffDateTo',\n    createdDateFrom = 'createdDateFrom',\n    createdDateTo = 'createdDateTo',\n    createdByName = 'createdByName',\n    createdById = 'createdById',\n    source = 'source',\n    extendedSource = 'extendedSource',\n    shipperIds = 'shipperIds',\n    shipperNames = 'shipperNames',\n\n    quickFilter = 'quickFilter',\n\n    searchText = 'searchText',\n}\n\nexport type QueryFiltersT = Partial<{\n    [QueryFiltersKeysEnum.dropoffAddress]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.pickupAddress]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.dictTrailerId]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.pickupDateFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.pickupDateTo]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.dropOffDateFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.dropOffDateTo]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdDateFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdDateTo]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdByName]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdById]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.source]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.extendedSource]: QueryParam.ArrayT<string>;\n    [QueryFiltersKeysEnum.shipperIds]: QueryParam.ArrayT<string>;\n    [QueryFiltersKeysEnum.shipperNames]: QueryParam.ArrayT<string>;\n\n    [QueryFiltersKeysEnum.quickFilter]: RFQsQuickFilterEnum;\n\n    [QueryFiltersKeysEnum.searchText]: QueryParam.StringT;\n}>;\n\nexport enum QueryKeysEnum {\n    rfqsPage = 'rfqs-page',\n    rfqsSort = 'rfqs-sort',\n    rfqsFilters = 'rfqs-filters',\n}\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './AssetClusterPin.scss';\nimport TruckIcon, { getTruckIconProps } from 'common/icons/TruckIcon';\nimport TrailerIcon, { getTrailerIconProps } from 'common/icons/TrailerIcon';\nimport AssetLinkIcon, { getAssetLinkIconProps } from 'common/icons/AssetLinkIcon';\nimport { getAssignmentIconPreset } from '../utils/get-assignment-icon-preset';\nimport MapCluster, { MapClusterThemeEnum } from 'common/components/maps/MapCluster/MapCluster';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    lat: number;\n    lng: number;\n\n    trucksCount: number;\n    hasSelectedTruck: boolean;\n    trailersCount: number;\n    hasSelectedTrailer: boolean;\n    linksCount: number;\n    hasSelectedLink: boolean;\n\n    clusterId: number;\n    onClick: (clusterId: number) => void;\n    className?: string;\n\n    canInTime: boolean;\n};\n\nconst getMapClusterTheme = ({\n    canInTime,\n    hasSelectedTrailer,\n    hasSelectedTruck,\n    hasSelectedLink,\n}: {\n    canInTime: boolean;\n    hasSelectedTrailer: boolean;\n    hasSelectedTruck: boolean;\n    hasSelectedLink: boolean;\n}): MapClusterThemeEnum => {\n    if (hasSelectedTrailer || hasSelectedTruck || hasSelectedLink) {\n        return MapClusterThemeEnum.charcoal;\n    }\n\n    if (!canInTime) {\n        return MapClusterThemeEnum.light;\n    }\n\n    return MapClusterThemeEnum.slate;\n};\n\nconst AssetClusterPin: React.FC<PropsT> = React.memo((props) => {\n    const {\n        lat,\n        lng,\n        trucksCount,\n        hasSelectedTruck,\n        trailersCount,\n        hasSelectedTrailer,\n        linksCount,\n        hasSelectedLink,\n        className,\n        clusterId,\n        onClick,\n        canInTime,\n    } = props;\n\n    return (\n        <MapCluster\n            lat={lat}\n            lng={lng}\n            className={className}\n            theme={getMapClusterTheme({\n                canInTime,\n                hasSelectedTrailer,\n                hasSelectedTruck,\n                hasSelectedLink,\n            })}\n            onClick={() => {\n                onClick(clusterId);\n            }}\n        >\n            {() => (\n                <>\n                    {trucksCount !== 0 && (\n                        <div className={cx('row')}>\n                            <TruckIcon\n                                className={cx('icon')}\n                                {...getTruckIconProps(\n                                    getAssignmentIconPreset({\n                                        isSelected: hasSelectedTruck,\n                                        canInTime,\n                                    }),\n                                )}\n                            />\n                            <span\n                                className={cx('text', {\n                                    'text--isNotCanInTime': !canInTime,\n                                    'text--isSelected': hasSelectedTruck,\n                                })}\n                            >\n                                {trucksCount}\n                            </span>\n                        </div>\n                    )}\n                    {trailersCount !== 0 && (\n                        <div className={cx('row')}>\n                            <TrailerIcon\n                                className={cx('icon')}\n                                {...getTrailerIconProps(\n                                    getAssignmentIconPreset({ isSelected: hasSelectedTrailer, canInTime }),\n                                )}\n                            />\n                            <span\n                                className={cx('text', {\n                                    'text--isNotCanInTime': !canInTime,\n                                    'text--isSelected': hasSelectedTrailer,\n                                })}\n                            >\n                                {trailersCount}\n                            </span>\n                        </div>\n                    )}\n                    {linksCount !== 0 && (\n                        <div className={cx('row')}>\n                            <AssetLinkIcon\n                                className={cx('icon')}\n                                {...getAssetLinkIconProps(\n                                    getAssignmentIconPreset({ isSelected: hasSelectedLink, canInTime }),\n                                )}\n                            />\n                            <span\n                                className={cx('text', {\n                                    'text--isNotCanInTime': !canInTime,\n                                    'text--isSelected': hasSelectedLink,\n                                })}\n                            >\n                                {linksCount}\n                            </span>\n                        </div>\n                    )}\n                </>\n            )}\n        </MapCluster>\n    );\n});\n\nexport default AssetClusterPin;\n","import { useDispatch, useSelector } from 'react-redux';\nimport { selectCountriesByCode } from 'common/store/countries-dict/selectors';\nimport * as React from 'react';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\n\nconst useCountriesByCode = (): ReturnType<typeof selectCountriesByCode> => {\n    const dispatch = useDispatch();\n\n    const countriesByCode = useSelector(selectCountriesByCode);\n    React.useEffect(() => {\n        dispatch(fetchCountriesDict());\n    }, [dispatch]);\n\n    return countriesByCode;\n};\n\nexport { useCountriesByCode };\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './RFQsTable.scss';\nimport { useTranslation } from 'react-i18next';\nimport StatusCell from './cell-renderers/StatusCell/StatusCell';\nimport Table, { TableColumnT, TableRowMetaT } from 'common/components/Table/Table';\nimport LocationCell from './cell-renderers/LocationCell/LocationCell';\nimport CreatedCell from './cell-renderers/CreatedCell/CreatedCell';\nimport MemoizedTable from 'common/components/Table/MemoizedTable/MemoizedTable';\nimport { RFQT } from 'common/store/rfqs/models';\nimport { DirectionEnum } from 'common/constants';\nimport TrailerTypeCell from './cell-renderers/TrailerTypeCell/TrailerTypeCell';\nimport ExternalNumberCell from 'common/layouts/RFQListPageLayout/RFQsTable/cell-renderers/ExternalNumberCell/ExternalNumberCell';\nimport PricesCell from './cell-renderers/PricesCell/PricesCell';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    rfqs: Array<RFQT>;\n    className?: string;\n    goToRFQDetails: (event: React.MouseEvent, rfqId: RFQIdT) => void;\n    goToUserDetails: (userId: UserIdT) => void;\n    isLoading: boolean;\n};\n\nconst RFQsTable: React.FC<PropsT> = React.memo((props) => {\n    const { rfqs, className, goToUserDetails, goToRFQDetails, isLoading } = props;\n\n    const { t } = useTranslation();\n\n    const columns: Array<TableColumnT<RFQT, void>> = [\n        {\n            renderHeader: () => <span>{t('common:rfqs-page.table.columns.origin')}</span>,\n            headerClassName: cx('table__header', 'table__header--origin'),\n            render: (rfq: RFQT) => <LocationCell rfq={rfq} type={DirectionEnum.origin} />,\n            className: cx('table__column', 'table__column--origin'),\n            testSelector: 'origin',\n        },\n        {\n            renderHeader: () => <span>{t('common:rfqs-page.table.columns.destination')}</span>,\n            headerClassName: cx('table__header'),\n            render: (rfq: RFQT) => <LocationCell rfq={rfq} type={DirectionEnum.destination} />,\n            className: cx('table__column', 'table__column--destination'),\n            testSelector: 'destination',\n        },\n        {\n            renderHeader: () => <span>{t('common:rfqs-page.table.columns.created')}</span>,\n            headerClassName: cx('table__header'),\n            render: (rfq: RFQT) => <CreatedCell onOpenUser={goToUserDetails} rfq={rfq} />,\n            className: cx('table__column', 'table__column--create'),\n            testSelector: 'created',\n        },\n        {\n            renderHeader: () => <span>{t('common:rfqs-page.table.columns.source')}</span>,\n            headerClassName: cx('table__header', 'table__header--external-number'),\n            render: (rfq: RFQT) => <ExternalNumberCell number={rfq?.externalNumber} source={rfq?.source} />,\n            className: cx('table__column', 'table__column--external-number'),\n            testSelector: 'external-number',\n        },\n\n        {\n            renderHeader: () => <span>{t('common:rfqs-page.table.columns.prices')}</span>,\n            headerClassName: cx('table__header', 'table__header--prices'),\n            render: (rfq: RFQT) => <PricesCell price={rfq.price} targetPrice={rfq.targetPrice} />,\n            className: cx('table__column', 'table__column--prices'),\n            testSelector: 'prices',\n        },\n        {\n            renderHeader: () => <span>{t('common:rfqs-page.table.columns.trailer')}</span>,\n            headerClassName: cx('table__header'),\n            render: (rfq: RFQT) => <TrailerTypeCell rfq={rfq} />,\n            className: cx('table__column'),\n            testSelector: 'trailer',\n        },\n        {\n            renderHeader: () => <span>{t('common:rfqs-page.table.columns.status')}</span>,\n            headerClassName: cx('table__header'),\n            render: (rfq: RFQT) => <StatusCell rfq={rfq} />,\n            className: cx('table__column', 'table__column--status'),\n            testSelector: 'status',\n        },\n    ];\n\n    const handleSelectRow = (event: React.MouseEvent, rfq: RFQT) => {\n        if (!rfq.id) {\n            return;\n        }\n\n        goToRFQDetails(event, rfq.id);\n    };\n\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const getRowMods = (meta: TableRowMetaT, rfq: RFQT) => {\n        return {};\n    };\n\n    return (\n        <div className={cx('table')}>\n            <MemoizedTable<RFQT> tableName=\"rfqs\" isLoading={isLoading} rows={rfqs}>\n                {(rows, isUsedPrevRows) => (\n                    <Table<RFQT, void>\n                        testSelector=\"rfqs\"\n                        className={className}\n                        columns={columns}\n                        rows={rows}\n                        getRowMods={getRowMods}\n                        onSelectRow={handleSelectRow}\n                        isLoading={isLoading}\n                        isUsedPrevRows={isUsedPrevRows}\n                    />\n                )}\n            </MemoizedTable>\n        </div>\n    );\n});\n\nexport default RFQsTable;\n","import { StateT } from 'broker-admin/store/models';\nimport { DispatchersStateT } from './types';\n\nexport const selectFetchDispatchersRequest = (state: StateT): DispatchersStateT['request'] => state.dispatchers.request;\nexport const selectDispatchersAllIds = (state: StateT): DispatchersStateT['allIds'] => state.dispatchers.allIds || [];\nexport const selectDispatchersById = (state: StateT): DispatchersStateT['byId'] => state.dispatchers.byId || {};\n","import { SignUpParamsT } from 'common/store/auth/models';\nimport { FieldsEnum as UserFieldsEnum, FormValuesT as UserFormDataT } from './UserSignUpForm/constants';\nimport { FieldsEnum as CompanyFieldsEnum, FormValuesT as CompanyFormDataT } from './CompanySignUpForm/constants';\nimport { simpleStringFormatter } from 'common/utils/form-formatters';\n\nexport const prepareSignUpParams = (\n    userFormData: UserFormDataT | null,\n    companyFormData: CompanyFormDataT | null,\n): SignUpParamsT | null => {\n    if (!userFormData || !companyFormData) {\n        return null;\n    }\n\n    return {\n        firstName: simpleStringFormatter(userFormData[UserFieldsEnum.firstName]),\n        lastName: simpleStringFormatter(userFormData[UserFieldsEnum.lastName]),\n        email: simpleStringFormatter(userFormData[UserFieldsEnum.email]),\n        password: simpleStringFormatter(userFormData[UserFieldsEnum.password]),\n        phone: userFormData[UserFieldsEnum.phone],\n\n        companyName: simpleStringFormatter(companyFormData[CompanyFieldsEnum.companyName]),\n        city: simpleStringFormatter(companyFormData[CompanyFieldsEnum.city]),\n        countryCode: companyFormData[CompanyFieldsEnum.countryCode] || '',\n        street1: simpleStringFormatter(companyFormData[CompanyFieldsEnum.street1]),\n        zipCode: simpleStringFormatter(companyFormData[CompanyFieldsEnum.zipCode]),\n    };\n};\n","import {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport { CarrierContractStatusEnum } from 'common/utils/api/models';\nimport { PermissionsT } from 'common/store/auth/models';\nimport { ContractsActionsT } from '../models';\nimport EditIcon from 'common/icons/EditIcon';\nimport { logWarning } from 'common/utils/logger';\nimport { PartnerContractT } from 'common/store/carrier-contracts/models';\nimport DownloadIcon from 'common/icons/DownloadIcon';\n\nenum ContractActionsEnum {\n    download = 'download',\n    revoke = 'revoke',\n    edit = 'edit',\n}\n\ntype CallbacksT = ContractsActionsT;\n\nexport const useContractsActionOptions = (\n    contract: PartnerContractT | null,\n    permissions: PermissionsT,\n    callbacks: CallbacksT,\n): Array<DropdownControlOptionT | SpecialOptionEnum> => {\n    const { onDownloadContract, onEditContractDetails, onRevokeContract } = callbacks;\n\n    const { canDownloadCarrierContracts, canEditCarrierContracts, canRevokeCarrierContracts } = permissions;\n\n    const { t } = useTranslation();\n\n    const contractId = contract?.id || null;\n\n    const optionsConfigMap: Record<\n        ContractActionsEnum,\n        { icon: React.ReactNode; label: React.ReactNode; onSelect: () => void }\n    > = {\n        [ContractActionsEnum.download]: {\n            icon: <DownloadIcon fillColor={StyleGuideColorsEnum.charcoal} size={DEFAULT_ICON_SIZE} />,\n            label: t('common:carrier-contracts.table.actions.download'),\n            onSelect: () => {\n                if (!contractId) {\n                    logWarning('failed to download contract, empty contractId');\n                    return;\n                }\n\n                onDownloadContract(contractId);\n            },\n        },\n        [ContractActionsEnum.revoke]: {\n            icon: <CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />,\n            label: t('common:carrier-contracts.table.actions.revoke'),\n            onSelect: () => {\n                if (!contract) {\n                    logWarning('failed to revoke contract, empty contract');\n                    return;\n                }\n\n                onRevokeContract({\n                    id: contract.id,\n                    name: contract.name,\n                    truckRateKm: contract.truckRateKm,\n                    tiltRateKm: contract.tiltRateKm,\n                    boxRateKm: contract.boxRateKm,\n                });\n            },\n        },\n        [ContractActionsEnum.edit]: {\n            icon: (\n                <EditIcon\n                    size={DEFAULT_ICON_SIZE}\n                    fillColor={StyleGuideColorsEnum.brandAccent}\n                    strokeColor={StyleGuideColorsEnum.brandDark}\n                />\n            ),\n            label: t('common:carrier-contracts.table.actions.edit'),\n            onSelect: () => {\n                if (!contractId) {\n                    logWarning('failed to edit contract, empty contractId');\n                    return;\n                }\n\n                onEditContractDetails(contractId);\n            },\n        },\n    };\n\n    const actions = React.useMemo((): Array<ContractActionsEnum | SpecialOptionEnum> => {\n        const hasAnyVersion = !!contract;\n\n        const actions: Array<ContractActionsEnum | SpecialOptionEnum> = [];\n\n        if (hasAnyVersion && canDownloadCarrierContracts) {\n            actions.push(ContractActionsEnum.download);\n        }\n\n        if (hasAnyVersion && contract?.status === CarrierContractStatusEnum.approved && canEditCarrierContracts) {\n            actions.push(SpecialOptionEnum.separator);\n            actions.push(ContractActionsEnum.edit);\n        }\n\n        if (hasAnyVersion && contract?.status === CarrierContractStatusEnum.approved && canRevokeCarrierContracts) {\n            actions.push(SpecialOptionEnum.separator);\n            actions.push(ContractActionsEnum.revoke);\n        }\n\n        return actions;\n    }, [contract, canDownloadCarrierContracts, canEditCarrierContracts, canRevokeCarrierContracts]);\n\n    const options = actions.map((action) => {\n        if (action === SpecialOptionEnum.separator) {\n            return SpecialOptionEnum.separator;\n        }\n\n        const optionConfig = optionsConfigMap[action];\n\n        return {\n            label: <DropdownControlOptionLabel icon={optionConfig.icon} label={optionConfig.label} />,\n            onSelect: optionConfig.onSelect,\n        };\n    });\n\n    return options;\n};\n","import { ApiScheduleAddressT, SetUnavailableVehicleQueryT } from 'common/utils/api/models';\nimport moment from 'moment';\n\nimport { FieldsEnum, FormValuesT } from './constants';\nimport { AssetTypeEnum } from 'common/constants';\nimport { prepareLocation } from 'common/utils/prepare-location';\nimport isNumber from 'lodash/isNumber';\n\nexport const prepareQuery = (formValues: FormValuesT, assetType: AssetTypeEnum): SetUnavailableVehicleQueryT | null => {\n    const dateRange = formValues[FieldsEnum.dateRange];\n\n    if (!dateRange?.from) {\n        return null;\n    }\n\n    const query: SetUnavailableVehicleQueryT = {};\n\n    const apiLocation = prepareLocation(formValues[FieldsEnum.dropoffLocation]);\n\n    const dateFrom = moment(dateRange.from).startOf('day').format();\n    const dateTo = moment(dateRange.to || dateRange.from)\n        .endOf('day')\n        .format();\n\n    const latitude = apiLocation?.latitude || null;\n    const longitude = apiLocation?.longitude || null;\n    if (!isNumber(latitude) || !isNumber(longitude)) {\n        return null;\n    }\n\n    const scheduleAddress: ApiScheduleAddressT = {\n        ...apiLocation,\n        latitude,\n        longitude,\n    };\n\n    if (assetType === AssetTypeEnum.truck) {\n        query.truckDateFrom = dateFrom;\n        query.truckDateTo = dateTo;\n        query.truckOrigin = scheduleAddress || undefined;\n        query.truckDestination = scheduleAddress || undefined;\n    }\n\n    if (assetType === AssetTypeEnum.trailer) {\n        query.trailerDateFrom = dateFrom;\n        query.trailerDateTo = dateTo;\n        query.trailerOrigin = scheduleAddress || undefined;\n        query.trailerDestination = scheduleAddress || undefined;\n    }\n\n    return query;\n};\n","export enum TabEnum {\n    active = 'active',\n    archive = 'archive',\n}\n","import {\n    APPROVE_DOCUMENT_REQUEST,\n    APPROVE_EVIDENCE_OF_TAX_DOCUMENT_REQUEST,\n    ApproveDocumentActionT,\n    ApproveEvidenceOfTaxDocumentActionT,\n    DOWNLOAD_DOCUMENT_REQUEST,\n    DOWNLOAD_DOCUMENT_REQUEST_BEGIN,\n    DOWNLOAD_DOCUMENT_REQUEST_ERROR,\n    DOWNLOAD_DOCUMENT_REQUEST_SUCCESS,\n    DownloadDocumentActionT,\n    DownloadDocumentBeginActionT,\n    DownloadDocumentErrorActionT,\n    DownloadDocumentSuccessActionT,\n    FETCH_DOCUMENTS_REQUEST,\n    FETCH_DOCUMENTS_REQUEST_BEGIN,\n    FETCH_DOCUMENTS_REQUEST_ERROR,\n    FETCH_DOCUMENTS_REQUEST_SUCCESS,\n    FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST,\n    FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_BEGIN,\n    FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_ERROR,\n    FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_SUCCESS,\n    FetchDocumentsActionT,\n    FetchDocumentsBeginActionT,\n    FetchDocumentsErrorActionT,\n    FetchDocumentsSuccessActionT,\n    FetchEvidenceOfTaxDetailsActionT,\n    FetchEvidenceOfTaxDetailsBeginActionT,\n    FetchEvidenceOfTaxDetailsErrorActionT,\n    FetchEvidenceOfTaxDetailsSuccessActionT,\n    REJECT_DOCUMENT_REQUEST,\n    RejectDocumentActionT,\n    RESET,\n    ResetDocumentActionT,\n    REVOKE_DOCUMENT_REQUEST,\n    RevokeDocumentActionT,\n    UPDATE_DOCUMENT_REQUEST,\n    UPDATE_DOCUMENT_REQUEST_BEGIN,\n    UPDATE_DOCUMENT_REQUEST_ERROR,\n    UPDATE_DOCUMENT_REQUEST_SUCCESS,\n    UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST,\n    UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_BEGIN,\n    UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_ERROR,\n    UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_SUCCESS,\n    UpdateDocumentActionT,\n    UpdateDocumentBeginActionT,\n    UpdateDocumentErrorActionT,\n    UpdateDocumentSuccessActionT,\n    UpdateEvidenceOfTaxDetailsActionT,\n    UpdateEvidenceOfTaxDetailsBeginActionT,\n    UpdateEvidenceOfTaxDetailsErrorActionT,\n    UpdateEvidenceOfTaxDetailsSuccessActionT,\n    UPLOAD_DOCUMENT_REQUEST,\n    UPLOAD_DOCUMENT_REQUEST_BEGIN,\n    UPLOAD_DOCUMENT_REQUEST_ERROR,\n    UPLOAD_DOCUMENT_REQUEST_SUCCESS,\n    UploadDocumentActionT,\n    UploadDocumentBeginActionT,\n    UploadDocumentErrorActionT,\n    UploadDocumentSuccessActionT,\n} from './types';\nimport {\n    DocumentDetailsChangesT,\n    DocumentIdsByTypeT,\n    DocumentT,\n    EvidenceOfTaxDetailsChangesT,\n    EvidenceOfTaxDetailsT,\n} from './models';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\n\nexport const fetchDocuments = (companyId: CompanyIdT, options?: FetchOptionsT): FetchDocumentsActionT => ({\n    type: FETCH_DOCUMENTS_REQUEST,\n    companyId,\n    options,\n});\n\nexport const fetchDocumentsBegin = (companyId: CompanyIdT): FetchDocumentsBeginActionT => ({\n    type: FETCH_DOCUMENTS_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const fetchDocumentsSuccess = (\n    documentIdsByType: DocumentIdsByTypeT,\n    documentsList: DocumentT[],\n    companyId: CompanyIdT,\n): FetchDocumentsSuccessActionT => ({\n    type: FETCH_DOCUMENTS_REQUEST_SUCCESS,\n    documentIdsByType,\n    documentsList,\n    companyId,\n});\n\nexport const fetchDocumentsError = (error: Error, companyId: CompanyIdT): FetchDocumentsErrorActionT => ({\n    type: FETCH_DOCUMENTS_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const uploadDocument = (\n    dictDocumentId: DictDocumentFakeIdT,\n    file: File,\n    companyId: CompanyIdT,\n    partnerType: PartnerTypeEnum,\n): UploadDocumentActionT => ({\n    type: UPLOAD_DOCUMENT_REQUEST,\n    dictDocumentId,\n    file,\n    partnerType,\n    companyId,\n});\n\nexport const uploadDocumentBegin = (\n    companyId: CompanyIdT,\n    dictDocumentId: DictDocumentFakeIdT,\n): UploadDocumentBeginActionT => ({\n    type: UPLOAD_DOCUMENT_REQUEST_BEGIN,\n    companyId,\n    dictDocumentId,\n});\n\nexport const uploadDocumentSuccess = (companyId: CompanyIdT): UploadDocumentSuccessActionT => ({\n    type: UPLOAD_DOCUMENT_REQUEST_SUCCESS,\n    companyId,\n});\n\nexport const uploadDocumentError = (error: Error, companyId: CompanyIdT): UploadDocumentErrorActionT => ({\n    type: UPLOAD_DOCUMENT_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const downloadDocument = (documentId: DocumentIdT, companyId: CompanyIdT): DownloadDocumentActionT => ({\n    type: DOWNLOAD_DOCUMENT_REQUEST,\n    documentId,\n    companyId,\n});\n\nexport const downloadDocumentBegin = (companyId: CompanyIdT): DownloadDocumentBeginActionT => ({\n    type: DOWNLOAD_DOCUMENT_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const downloadDocumentSuccess = (companyId: CompanyIdT): DownloadDocumentSuccessActionT => ({\n    type: DOWNLOAD_DOCUMENT_REQUEST_SUCCESS,\n    companyId,\n});\n\nexport const downloadDocumentError = (error: Error, companyId: CompanyIdT): DownloadDocumentErrorActionT => ({\n    type: DOWNLOAD_DOCUMENT_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const approveDocument = (\n    documentId: DocumentIdT,\n    validTill: string | null,\n    companyId: CompanyIdT,\n    partnerType: PartnerTypeEnum,\n): ApproveDocumentActionT => ({\n    type: APPROVE_DOCUMENT_REQUEST,\n    documentId,\n    companyId,\n    validTill,\n    partnerType,\n});\n\nexport const approveEvidenceOfTaxDocument = (\n    companyId: CompanyIdT,\n    partnerType: PartnerTypeEnum,\n    documentId: DocumentIdT,\n    validTill: string | null,\n    detailsChanges: EvidenceOfTaxDetailsChangesT,\n): ApproveEvidenceOfTaxDocumentActionT => ({\n    type: APPROVE_EVIDENCE_OF_TAX_DOCUMENT_REQUEST,\n    documentId,\n    companyId,\n    validTill,\n    partnerType,\n    detailsChanges,\n});\n\nexport const rejectDocument = (\n    documentId: DocumentIdT,\n    reason: string,\n    companyId: CompanyIdT,\n    partnerType: PartnerTypeEnum,\n): RejectDocumentActionT => ({\n    type: REJECT_DOCUMENT_REQUEST,\n    documentId,\n    reason,\n    companyId,\n    partnerType,\n});\n\nexport const revokeDocument = (\n    documentId: DocumentIdT,\n    companyId: CompanyIdT,\n    partnerType: PartnerTypeEnum,\n): RevokeDocumentActionT => ({\n    type: REVOKE_DOCUMENT_REQUEST,\n    documentId,\n    companyId,\n    partnerType,\n});\n\nexport const updateEvidenceOfTaxDetails = (\n    companyId: CompanyIdT,\n    documentId: DocumentIdT,\n    detailsChanges: EvidenceOfTaxDetailsChangesT,\n): UpdateEvidenceOfTaxDetailsActionT => ({\n    type: UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST,\n    companyId,\n    documentId,\n    detailsChanges,\n});\n\nexport const updateEvidenceOfTaxDetailsBegin = (companyId: CompanyIdT): UpdateEvidenceOfTaxDetailsBeginActionT => ({\n    type: UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const updateEvidenceOfTaxDetailsSuccess = (companyId: CompanyIdT): UpdateEvidenceOfTaxDetailsSuccessActionT => ({\n    type: UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_SUCCESS,\n    companyId,\n});\n\nexport const updateEvidenceOfTaxDetailsError = (\n    error: Error,\n    companyId: CompanyIdT,\n): UpdateEvidenceOfTaxDetailsErrorActionT => ({\n    type: UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const updateDocument = (\n    documentId: DocumentIdT,\n    companyId: CompanyIdT,\n    detailChanges: DocumentDetailsChangesT,\n): UpdateDocumentActionT => ({\n    type: UPDATE_DOCUMENT_REQUEST,\n    documentId,\n    companyId,\n    detailChanges,\n});\n\nexport const updateDocumentBegin = (companyId: CompanyIdT, documentId: DocumentIdT): UpdateDocumentBeginActionT => ({\n    type: UPDATE_DOCUMENT_REQUEST_BEGIN,\n    companyId,\n    documentId,\n});\n\nexport const updateDocumentSuccess = (companyId: CompanyIdT): UpdateDocumentSuccessActionT => ({\n    type: UPDATE_DOCUMENT_REQUEST_SUCCESS,\n    companyId,\n});\n\nexport const updateDocumentError = (error: Error, companyId: CompanyIdT): UpdateDocumentErrorActionT => ({\n    type: UPDATE_DOCUMENT_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const fetchEvidenceOfTaxDetails = (companyId: CompanyIdT): FetchEvidenceOfTaxDetailsActionT => ({\n    type: FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST,\n    companyId,\n});\n\nexport const fetchEvidenceOfTaxDetailsBegin = (companyId: CompanyIdT): FetchEvidenceOfTaxDetailsBeginActionT => ({\n    type: FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const fetchEvidenceOfTaxDetailsSuccess = (\n    companyId: CompanyIdT,\n    evidenceOfTaxDetails: EvidenceOfTaxDetailsT,\n): FetchEvidenceOfTaxDetailsSuccessActionT => ({\n    type: FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_SUCCESS,\n    companyId,\n    evidenceOfTaxDetails,\n});\n\nexport const fetchEvidenceOfTaxDetailsError = (\n    companyId: CompanyIdT,\n    error: Error,\n): FetchEvidenceOfTaxDetailsErrorActionT => ({\n    type: FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const resetDocument = (companyId: CompanyIdT): ResetDocumentActionT => ({\n    type: RESET,\n    companyId,\n});\n","import { ContactPositionsEnum, RolesEnum, UserRoleT } from 'common/utils/api/models';\n\nexport const USER_ROLE_T_MAP: Record<`${UserRoleT}`, string> = {\n    CUSTOMER_SERVICE: '', // deprecated\n    [RolesEnum.serviceUser]: 'common:team-members.roles.COMPANY_ADMIN',\n    [RolesEnum.companyAdmin]: 'common:team-members.roles.COMPANY_ADMIN',\n    [RolesEnum.driver]: 'common:team-members.roles.DRIVER',\n    [RolesEnum.user]: 'common:team-members.roles.USER',\n    [RolesEnum.keyAccountManager]: 'common:team-members.roles.KEY_ACCOUNT_MANAGER',\n    [RolesEnum.dispatcher]: 'common:team-members.roles.DISPATCHER',\n};\n\nexport const USER_POSITIONS_T_MAP: Record<`${ContactPositionsEnum}`, string> = {\n    [ContactPositionsEnum.operator]: 'common:team-members.position.operator',\n    [ContactPositionsEnum.management]: 'common:team-members.position.management',\n    [ContactPositionsEnum.sales]: 'common:team-members.position.sales',\n    [ContactPositionsEnum.owner]: 'common:team-members.position.owner',\n    [ContactPositionsEnum.it]: 'common:team-members.position.it',\n};\n","import React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './Steps.scss';\nimport times from 'lodash/times';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    minValue: number;\n    stepsCount: number;\n    step: number;\n    shownLabelCount: number;\n    shownStepCount: number;\n    hasStartStep?: boolean;\n    hasEndStep?: boolean;\n    filledPositions: number[];\n    renderLabel: (value: number) => string | number;\n};\n\nconst Steps: React.FC<PropsT> = React.memo((props) => {\n    const { minValue, stepsCount, step, shownLabelCount, shownStepCount, renderLabel } = props;\n\n    return (\n        <>\n            {times(stepsCount + 1).map((_, index) => {\n                const isShowLabel = index % shownLabelCount === 0;\n                const isShowStep = index % shownStepCount === 0;\n\n                // const hasBorder = !((!hasStartStep && index === 0) || (!hasEndStep && index === stepsCount));\n                const position = (100 / stepsCount) * index;\n                // const isFilledPosition = filledPositions[0] <= position && position <= filledPositions[1];\n\n                return (\n                    <div\n                        key={index}\n                        className={cx('step', {\n                            'step--isHideStep': !isShowStep,\n                        })}\n                        data-test-selector={`step_${index}`}\n                        style={{ left: `${position}%` }}\n                    >\n                        {isShowLabel && (\n                            <div\n                                className={cx('step__label', {\n                                    'step__label--isFirst': index === 0,\n                                    'step__label--isLast': index === stepsCount,\n                                })}\n                            >\n                                {renderLabel(minValue + index * step)}\n                            </div>\n                        )}\n                    </div>\n                );\n            })}\n        </>\n    );\n});\n\nexport default Steps;\n","import React from 'react';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\n\nimport styles from './ShipperContractLaneDetails.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport FieldGroup, { FieldGroupEmptyItem } from 'common/components/FieldGroup/FieldGroup';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport { EMPTY_VALUE_PLACEHOLDER } from 'common/components/ReadOnlyFieldValue/ReadOnlyFieldValue';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport EmissionIcon from 'common/icons/EmissionIcon';\nimport { ShipperContractLaneDetailsT } from 'common/store/shipper-contract-lane-details/models';\nimport CalendarIcon from 'common/icons/CalendarIcon';\nimport TrailerIcon from 'common/icons/TrailerIcon';\nimport EmissionClassLabel from 'common/components/EmissionClassLabel/EmissionClassLabel';\nimport OriginIcon from 'common/icons/OriginIcon';\nimport UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\nimport DestinationIcon from 'common/icons/DestinationIcon';\nimport { selectTrailersDictById } from 'common/store/trailers-dict/selectors';\nimport isNumber from 'lodash/isNumber';\nimport moment from 'moment';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    data: ShipperContractLaneDetailsT | null;\n};\n\nconst DATE_FORMAT = 'DD.MM.YYYY';\n\nconst ShipperContractLaneDetails: React.FC<PropsT> = (props) => {\n    const { className, data } = props;\n\n    const { t } = useTranslation();\n\n    const trailersDictById = useSelector(selectTrailersDictById) || {};\n    const trailerDictModel = data?.dictTrailerId ? trailersDictById[data?.dictTrailerId] : null;\n\n    return (\n        <div className={cs(cx('wrap'), className)}>\n            <FieldGroup>\n                <ReadOnlyField\n                    className={cx('field', 'field--trailer-type')}\n                    label={t(`common:shipper-lane-details.fields.trailer-type.label`)}\n                    icon={\n                        <TrailerIcon\n                            size={20}\n                            fillColor={StyleGuideColorsEnum.brandAccent}\n                            strokeColor={StyleGuideColorsEnum.brandDark}\n                        />\n                    }\n                    value={\n                        trailerDictModel\n                            ? t('common:trailer-subtype-template', {\n                                  length: trailerDictModel.length,\n                                  model: trailerDictModel.model,\n                                  eur1Pallets: trailerDictModel.eur1Pallets,\n                                  eur2Pallets: trailerDictModel.eur2Pallets,\n                              })\n                            : ''\n                    }\n                />\n                <ReadOnlyField\n                    icon={<EmissionIcon strokeColor={StyleGuideColorsEnum.brandDark} />}\n                    className={cx('field', 'field--emission-class')}\n                    label={t('common:shipper-lane-details.fields.emission-type.label')}\n                    value={<EmissionClassLabel isCompact emissionClass={data?.emissionClass} />}\n                />\n            </FieldGroup>\n            <FieldGroup>\n                <ReadOnlyField\n                    icon={<OriginIcon />}\n                    className={cx('field', 'field--location')}\n                    label={t('common:shipper-lane-details.fields.origin.label')}\n                    value={data?.originFullAddress}\n                />\n                <ReadOnlyField\n                    className={cx('field', 'field--radius')}\n                    label={t('common:shipper-lane-details.fields.radius.label')}\n                    value={<UnitTypeCount count={data?.originRadius} type={UnitTypeEnum.kilometersAbbreviation} />}\n                />\n            </FieldGroup>\n            <FieldGroup>\n                <ReadOnlyField\n                    icon={<DestinationIcon />}\n                    className={cx('field', 'field--location')}\n                    label={t('common:shipper-lane-details.fields.destination.label')}\n                    value={data?.destinationFullAddress}\n                />\n                <ReadOnlyField\n                    className={cx('field', 'field--radius')}\n                    label={t('common:shipper-lane-details.fields.radius.label')}\n                    value={<UnitTypeCount count={data?.destinationRadius} type={UnitTypeEnum.kilometersAbbreviation} />}\n                />\n            </FieldGroup>\n            <FieldGroup>\n                <ReadOnlyField\n                    icon={\n                        <CalendarIcon\n                            size={DEFAULT_ICON_SIZE}\n                            fillColor={StyleGuideColorsEnum.white}\n                            strokeColor={StyleGuideColorsEnum.brandDark}\n                        />\n                    }\n                    className={cx('field', 'field--date')}\n                    label={t('common:shipper-lane-details.fields.valid-from.label')}\n                    value={data?.validFrom ? moment(data.validFrom).format(DATE_FORMAT) : null}\n                />\n                <ReadOnlyField\n                    icon={\n                        <CalendarIcon\n                            size={DEFAULT_ICON_SIZE}\n                            fillColor={StyleGuideColorsEnum.white}\n                            strokeColor={StyleGuideColorsEnum.brandDark}\n                        />\n                    }\n                    className={cx('field', 'field--date')}\n                    label={t('common:shipper-lane-details.fields.valid-till.label')}\n                    value={data?.validTill ? moment(data.validTill).format(DATE_FORMAT) : null}\n                />\n            </FieldGroup>\n            <FieldGroup>\n                <ReadOnlyField\n                    className={cx('field', 'field--limit')}\n                    label={t('common:shipper-lane-details.fields.layover-limit.label')}\n                    tooltipNode={\n                        <TooltipContent theme={TooltipContentThemeEnum.black} width={300}>\n                            {t('common:shipper-lane-details.fields.layover-limit.tooltip')}\n                        </TooltipContent>\n                    }\n                    value={<UnitTypeCount count={data?.maximumLayover} type={UnitTypeEnum.hoursAbbreviation} />}\n                />\n                <ReadOnlyField\n                    className={cx('field', 'field--limit')}\n                    label={t('common:shipper-lane-details.fields.orders-left.label')}\n                    value={\n                        isNumber(data?.ordersLeft) && isNumber(data?.maxNumberOfOrders)\n                            ? `${data?.ordersLeft}/${data?.maxNumberOfOrders}`\n                            : null\n                    }\n                />\n            </FieldGroup>\n            <FieldGroup>\n                <ReadOnlyField\n                    className={cx('field', 'field--external-lane-id')}\n                    label={t('common:shipper-lane-details.fields.external-lane-id.label')}\n                    value={data?.externalLaneId}\n                    placeholder={EMPTY_VALUE_PLACEHOLDER}\n                    tooltipNode={\n                        <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                            {t('common:shipper-lane-details.fields.external-lane-id.tooltip')}\n                        </TooltipContent>\n                    }\n                />\n                <FieldGroupEmptyItem className={cx('field', 'field--limit')} />\n            </FieldGroup>\n        </div>\n    );\n};\n\nexport default ShipperContractLaneDetails;\n","// extracted by mini-css-extract-plugin\nexport default {\"divider\":\"ContractDetails__divider___awX3N\",\"fadeIn\":\"ContractDetails__fadeIn___WhoiV\",\"blinking\":\"ContractDetails__blinking___Ng6Fn\"};","import { FieldsEnum, FormValuesT } from './constants';\n\nconst DEFAULT_VALUES: FormValuesT = {\n    [FieldsEnum.partnerType]: null,\n    [FieldsEnum.partnerId]: null,\n};\n\nconst getInitialValues = (): FormValuesT => {\n    const values: FormValuesT = { ...DEFAULT_VALUES };\n\n    return values;\n};\n\nexport default getInitialValues;\n","import {\n    ApiAdditionalServiceTypeEnum,\n    ApiAdditionalServicesT,\n    ApiBrokerAdditionalServiceT,\n    ApiBrokerAdditionalServiceTypeT,\n    ApiCarrierAdditionalServiceT,\n    ApiCarrierAdditionalServiceTypeT,\n} from 'common/utils/api/models';\n\nexport const checkIsCarrierAdditionalService = (\n    value: NonNullable<ApiAdditionalServicesT['items']>[number] | null | undefined,\n): value is ApiCarrierAdditionalServiceT => {\n    return value?.serviceType === ApiAdditionalServiceTypeEnum.carrier;\n};\n\nexport const checkIsBrokerAdditionalService = (\n    value: NonNullable<ApiAdditionalServicesT['items']>[number] | null | undefined,\n): value is ApiBrokerAdditionalServiceT => {\n    return value?.serviceType === ApiAdditionalServiceTypeEnum.broker;\n};\n\nexport const findAdditionalServiceByType = (\n    additionalServices: ApiAdditionalServicesT | null | undefined,\n    type: ApiCarrierAdditionalServiceTypeT | ApiBrokerAdditionalServiceTypeT,\n) => {\n    return additionalServices?.items?.find((additionalService) => {\n        if (checkIsCarrierAdditionalService(additionalService)) {\n            return additionalService.type === type;\n        }\n\n        if (checkIsBrokerAdditionalService(additionalService)) {\n            return additionalService.type === type;\n        }\n\n        return false;\n    });\n};\n","import isNil from 'lodash/isNil';\n\nexport const M_IN_KM = 1000;\n\nexport const convertToKm = (meters: number | null | undefined): number | null => {\n    if (isNil(meters)) {\n        return null;\n    }\n\n    return Math.round(meters / M_IN_KM);\n};\n","import React from 'react';\nimport times from 'lodash/times';\nimport moment from 'moment';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames/bind';\nimport styles from './YearMonthForm.scss';\nimport { checkIsSameYear, getISOFutureDate, getISOPastDate, getYear } from 'common/utils/time';\n\nconst cx = classNames.bind(styles);\n\nconst MIN_MONTH_INDEX = 0;\nconst MAX_MONTH_INDEX = 11;\n\ntype PropsT = {\n    date: Date;\n    onChange: (month: Date) => void;\n    minDate?: string | null;\n    maxDate?: string | null;\n};\n\nconst YearMonthForm: React.FC<PropsT> = React.memo((props) => {\n    const { date, onChange } = props;\n\n    const minDate = React.useMemo(() => {\n        return props.minDate || getISOPastDate(80, 'year');\n    }, [props.minDate]);\n\n    const maxDate = React.useMemo(() => {\n        return props.maxDate || getISOFutureDate(2, 'year');\n    }, [props.maxDate]);\n\n    const { t } = useTranslation();\n\n    const monthsLabels = React.useMemo(() => {\n        return times(12).map((index) => t(`common:month-name.${index}`));\n    }, [t]);\n\n    const minMonthIndexDayYear = React.useMemo(() => {\n        if (!checkIsSameYear(minDate, date)) {\n            return MIN_MONTH_INDEX;\n        }\n\n        return moment(minDate).month();\n    }, [minDate, date]);\n\n    const maxMonthIndexDayYear = React.useMemo(() => {\n        if (!checkIsSameYear(maxDate, date)) {\n            return MAX_MONTH_INDEX;\n        }\n\n        return moment(maxDate).month();\n    }, [maxDate, date]);\n\n    const years = React.useMemo(() => {\n        const maxYear = getYear(maxDate);\n        const minYear = getYear(minDate);\n\n        const yearList = times(maxYear - minYear + 1)\n            .map(Number)\n            .map((index) => minYear + index);\n\n        return yearList;\n    }, [minDate, maxDate]);\n\n    const handleChange = (event: any): void => {\n        const { year, month } = event.target.form;\n        onChange(new Date(year.value, month.value));\n    };\n\n    return (\n        <form className={cx('wrap')}>\n            <select\n                className={cx('select', 'select--month')}\n                name=\"month\"\n                onChange={handleChange}\n                value={date.getMonth()}\n            >\n                {monthsLabels.map((monthLabel, index) => {\n                    return (\n                        <option\n                            key={index}\n                            value={index}\n                            hidden={index < minMonthIndexDayYear || maxMonthIndexDayYear < index}\n                        >\n                            {monthLabel}\n                        </option>\n                    );\n                })}\n            </select>\n            <select className={cx('select')} name=\"year\" onChange={handleChange} value={date.getFullYear()}>\n                {years.map((year, index) => (\n                    <option key={index} value={year}>\n                        {year}\n                    </option>\n                ))}\n            </select>\n        </form>\n    );\n});\n\nexport default YearMonthForm;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\n\nimport styles from './TimeLeft.scss';\n\nconst cx = classNames.bind(styles);\n\ntype TimeLeftPropsT = {\n    className?: string;\n    isFailed: boolean;\n    failedMessage: React.ReactNode;\n    time: string | null | undefined;\n    timeDescription: React.ReactNode;\n    isWarning?: boolean;\n};\n\nconst TimeLeft: React.FC<TimeLeftPropsT> = (props) => {\n    const { className, isWarning, isFailed, failedMessage, time, timeDescription } = props;\n\n    if (!time) {\n        return null;\n    }\n\n    if (isFailed) {\n        return <div className={cx('failed-message')}>{failedMessage}</div>;\n    }\n\n    return (\n        <div\n            className={cs(\n                cx('status', {\n                    'status--is-warning': isWarning,\n                }),\n                className,\n            )}\n        >\n            <div className={cx('time')}>{time}</div>\n            <div className={cx('message')}>{timeDescription}</div>\n        </div>\n    );\n};\n\nexport default TimeLeft;\n","import { ApiCompanyContactMediaT, ApiUpdateDriverRequestT } from 'common/utils/api/models';\nimport { FieldsEnum, FormValuesT, MEDIA_FIELDS_NAME } from './EditDriverFormContent/constants';\nimport moment from 'moment';\nimport { parsePhoneNumber, parseSimpleNumber } from 'common/utils/input-parsers';\nimport { CompanyDriverDetailsT } from 'common/store/drivers/models';\nimport isNumber from 'lodash/isNumber';\n\nconst prepareApiDriverChanges = (\n    formValues: FormValuesT,\n    driverDetails?: CompanyDriverDetailsT | null,\n): ApiUpdateDriverRequestT | null => {\n    const medias = MEDIA_FIELDS_NAME.reduce<ApiCompanyContactMediaT[]>((acc, fieldName) => {\n        if (formValues[fieldName]) {\n            acc.push({\n                type: fieldName,\n                login: formValues[fieldName] as string,\n            });\n        }\n\n        return acc;\n    }, []);\n\n    const rate = parseSimpleNumber(formValues[FieldsEnum.ratePerKm]);\n    if (!driverDetails?.contact || !isNumber(rate)) {\n        return null;\n    }\n\n    const language = formValues[FieldsEnum.language] || undefined;\n\n    return {\n        ...driverDetails,\n        contact: {\n            ...driverDetails.contact,\n\n            mobilePhone: driverDetails?.hasAuthentication ? driverDetails.contact.mobilePhone : undefined,\n\n            formal: formValues[FieldsEnum.formal],\n            name: formValues[FieldsEnum.firstName],\n            surname: formValues[FieldsEnum.lastName],\n\n            deskPhone: parsePhoneNumber(formValues[FieldsEnum.desktopPhone]) || undefined,\n\n            language,\n\n            birthday: moment(formValues[FieldsEnum.birthday]).format('YYYY-MM-DD'),\n            residence: formValues[FieldsEnum.countryCode] || undefined,\n\n            medias,\n        },\n        homeAddress: formValues[FieldsEnum.address],\n        rate,\n        language,\n    };\n};\n\nexport default prepareApiDriverChanges;\n","import React, { useState } from 'react';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport { CommonSidebarDataT, CommonSidebarsTypeEnum, SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { DocumentDetailsSidebarDataT } from './models';\nimport { DocumentRequiredEnum, DocumentStatusEnum } from 'common/utils/api/models';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectCompanyDocumentIdsByType,\n    selectCompanyDocumentsById,\n    selectFetchCompanyDocumentsRequest,\n    selectUpdateCompanyDocumentsRequest,\n    selectUpdateEvidenceOfTaxDetailsRequest,\n    selectUploadCompanyDocumentsRequest,\n} from 'common/store/documents/selectors';\nimport {\n    selectDocumentsDictById,\n    selectDocumentsDictByType,\n    selectDocumentsDictRequest,\n} from 'common/store/documents-dict/selectors';\nimport { getDocumentInfo } from '../../../BaseDocumentsLayout/hooks/get-document-info';\nimport { fetchDocumentsDict } from 'common/store/documents-dict/actions';\nimport {\n    downloadDocument,\n    fetchDocuments,\n    rejectDocument,\n    revokeDocument,\n    uploadDocument,\n} from 'common/store/documents/actions';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport { useDocumentsActionOptions } from 'common/layouts/BaseDocumentsLayout/hooks/use-documents-action-options';\nimport SideBarRequestStatus from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarRequestStatus/SideBarRequestStatus';\nimport SideBarHeaderRequestStatus from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarHeaderRequestStatus/SideBarHeaderRequestStatus';\nimport EntitySidebarSkeleton from 'common/components/entity-details/EntitySidebarSkeleton/EntitySidebarSkeleton';\nimport isEmpty from 'lodash/isEmpty';\nimport UploadDocumentConfirmation, {\n    ConfirmUploadDocumentModalDataT,\n} from 'common/layouts/BaseDocumentsLayout/dialogs/UploadDocumentConfirmation/UploadDocumentConfirmation';\nimport { pickFile } from 'common/utils/pick-file';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport { selectCurrentCompany } from 'common/store/company/selectors';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport DocumentParamsDetails from './DocumentParamsDetails/DocumentParamsDetails';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport UploadFooterContent from './footers/UploadFooterContent/UploadFooterContent';\nimport RevokeDocumentsConfirmation, {\n    ConfirmRevokeDocumentModalDataT,\n} from 'common/layouts/BaseDocumentsLayout/dialogs/RevokeDocumentsConfirmation/RevokeDocumentsConfirmation';\nimport RejectDocumentConfirmation, {\n    ConfirmRejectDocumentModalDataT,\n} from 'common/layouts/BaseDocumentsLayout/dialogs/RejectDocumentConfirmation/RejectDocumentConfirmation';\nimport useRemoteFormActions from 'common/utils/hooks/useRemoteFormActions';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport DocumentParamsDetailsForm from './DocumentParamsDetailsForm/DocumentParamsDetailsForm';\nimport ReviewFooterContent from './footers/ReviewFooterContent/ReviewFooterContent';\nimport SaveFooterContent from './footers/SaveFooterContent/SaveFooterContent';\nimport DocumentDetailsLayout from 'common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentDetailsLayout/DocumentDetailsLayout';\nimport UploadLoader from 'common/layouts/SideBars/contents/DocumentDetailsSidebarContent/UploadLoader/UploadLoader';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport DocumentStatusPill from 'common/components/status-pill/DocumentStatusPill/DocumentStatusPill';\nimport useAfterSuccessRequest from 'common/utils/hooks/useAfterSuccessRequest';\nimport { logWarning } from 'common/utils/logger';\nimport usePartnerPermissionsContext from 'common/utils/hooks/usePartnerPermissionsContext';\n\ntype PropsT = SidebarContentPropsT<DocumentDetailsSidebarDataT, CommonSidebarDataT>;\n\nconst DocumentDetailsSidebarContent: React.FC<PropsT> = (props) => {\n    const { data, onClose, onGoBack, onOpenNextSidebar, setNeedCloseConfirmation } = props;\n\n    const { initIsEditing, documentType } = data;\n\n    const partnerContext = usePartnerContext();\n\n    const partnerId = data.partnerId || partnerContext.partnerId;\n    const partnerType = data.partnerType || partnerContext.partnerType;\n\n    const [isEditing, setIsEditing] = useState(initIsEditing);\n\n    const remoteFormActions = useRemoteFormActions();\n\n    const currentCompany = useSelector(selectCurrentCompany);\n\n    const uploadRequest = useSelector(selectUploadCompanyDocumentsRequest(partnerId));\n    const updateRequest = useSelector(selectUpdateCompanyDocumentsRequest(partnerId));\n    const updateEvidenceOfTaxDetailsRequest = useSelector(selectUpdateEvidenceOfTaxDetailsRequest(partnerId));\n\n    const documentsDictById = useSelector(selectDocumentsDictById(partnerType));\n    const documentsDictByType = useSelector(selectDocumentsDictByType(partnerType));\n    const dictDocument = documentsDictByType[documentType] || null;\n\n    const documentIdsByType = useSelector(selectCompanyDocumentIdsByType(partnerId));\n\n    const documentsById = useSelector(selectCompanyDocumentsById(partnerId));\n\n    const documentInfo = getDocumentInfo(dictDocument, documentIdsByType, documentsById);\n\n    const fetchDocumentsDictRequest = useSelector(selectDocumentsDictRequest(partnerType));\n    const fetchRequest = useSelector(selectFetchCompanyDocumentsRequest(partnerId));\n\n    const confirmUploadDocumentModalDialog = useModalDialog<ConfirmUploadDocumentModalDataT>();\n    const confirmRevokeDocumentModalDialog = useModalDialog<ConfirmRevokeDocumentModalDataT>();\n    const confirmRejectDocumentModalDialog = useModalDialog<ConfirmRejectDocumentModalDataT>();\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        if (!partnerType || !partnerId) {\n            logWarning('Empty partnerType or partnerId in DocumentDetailsSidebarContent useEffect');\n            return;\n        }\n        dispatch(fetchDocumentsDict(partnerType));\n        dispatch(fetchDocuments(partnerId));\n    }, [partnerType, partnerId, dispatch]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        if (!partnerType || !partnerId) {\n            logWarning('Empty partnerType or partnerId in documentVisibilityChangeHandler');\n            return;\n        }\n        dispatch(fetchDocumentsDict(partnerType));\n        dispatch(fetchDocuments(partnerId));\n    }, [partnerType, partnerId, dispatch]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const partnerPermissions = usePartnerPermissionsContext();\n    const permissions = useSelector(selectPermissions);\n\n    const handleDownloadDocument = (documentId: DocumentIdT) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleDownloadDocument');\n            return;\n        }\n        dispatch(downloadDocument(documentId, partnerId));\n    };\n\n    const handleUploadDocument = (dictDocumentId: DictDocumentFakeIdT) => {\n        const dictDocument = documentsDictById[dictDocumentId];\n\n        const shouldConfirm = dictDocument?.required === DocumentRequiredEnum.must && currentCompany?.documentsVerified;\n        if (shouldConfirm) {\n            confirmUploadDocumentModalDialog.setData({\n                dictDocumentId,\n            });\n        } else {\n            onConfirmUploadDocument({ dictDocumentId });\n        }\n    };\n\n    const handleEditDocumentInfo = () => {\n        setIsEditing(true);\n    };\n\n    const handleRevokeDocument = (dictDocumentId: DictDocumentFakeIdT, id: DocumentIdT) => {\n        if (!partnerType) {\n            logWarning('Empty partnerType in handleRevokeDocument');\n            return;\n        }\n        confirmRevokeDocumentModalDialog.setData({\n            dictDocumentId,\n            id,\n            partnerType,\n        });\n    };\n\n    const handleRejectDocument = (dictDocumentId: DictDocumentFakeIdT, id: DocumentIdT) => {\n        if (!partnerType) {\n            logWarning('Empty partnerType in handleRejectDocument');\n            return;\n        }\n        confirmRejectDocumentModalDialog.setData({\n            id,\n            dictDocumentId,\n            partnerType,\n        });\n    };\n\n    const actualVersion = documentInfo?.actualVersion || null;\n    const headerDropdownOptions = useDocumentsActionOptions({\n        actualDocumentVersion: actualVersion,\n        dictDocument,\n        permissions,\n        partnerPermissions: {\n            ...partnerPermissions,\n            canEditDocuments: isEditing ? false : Boolean(partnerPermissions.canEditDocuments),\n        },\n        callbacks: {\n            onDownloadDocument: handleDownloadDocument,\n            onUploadDocument: handleUploadDocument,\n            onRevokeDocument: handleRevokeDocument,\n            onEditDocumentInfo: handleEditDocumentInfo,\n        },\n    });\n\n    const onConfirmUploadDocument = (data: ConfirmUploadDocumentModalDataT): void => {\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in onConfirmUploadDocument');\n            return;\n        }\n        pickFile('image/*,application/pdf', (file) => {\n            dispatch(uploadDocument(data.dictDocumentId, file, partnerId, partnerType));\n        });\n    };\n\n    const onConfirmRevokeDocument = (id: DocumentIdT) => {\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in onConfirmRevokeDocument');\n            return;\n        }\n        dispatch(revokeDocument(id, partnerId, partnerType));\n    };\n\n    const onConfirmRejectDocument = (documentId: DocumentIdT, reason: string) => {\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in onConfirmRejectDocument');\n            return;\n        }\n        dispatch(rejectDocument(documentId, reason, partnerId, partnerType));\n    };\n\n    useCloseModalDialogAfterRequest(uploadRequest, [confirmUploadDocumentModalDialog]);\n    useCloseModalDialogAfterRequest(updateRequest, [\n        confirmRevokeDocumentModalDialog,\n        confirmRejectDocumentModalDialog,\n    ]);\n\n    useAfterSuccessRequest(updateEvidenceOfTaxDetailsRequest, () => {\n        setIsEditing(false);\n    });\n\n    useAfterSuccessRequest(updateRequest, () => {\n        setIsEditing(false);\n    });\n\n    useAfterSuccessRequest(uploadRequest, () => {\n        setIsEditing(true);\n    });\n\n    const handleOpenUserDetails = (userId: UserIdT) => {\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in handleOpenUserDetails');\n            return;\n        }\n        onOpenNextSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId,\n            partnerType,\n            userId,\n        });\n    };\n\n    const shouldReview = documentInfo?.actualVersion?.status === DocumentStatusEnum.waitingForApprove;\n\n    const isRequiredDocument = documentInfo?.dictDocument?.required === DocumentRequiredEnum.must;\n\n    const handleRetryFetchDocuments = React.useCallback(() => {\n        if (partnerId) {\n            dispatch(fetchDocuments(partnerId));\n        }\n    }, [partnerId, dispatch]);\n\n    return (\n        <RemoteFormActionsContext.Provider value={remoteFormActions}>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent\n                    onGoBack={onGoBack}\n                    title={\n                        <DocumentStatusPill\n                            isSymmetrical\n                            status={documentInfo?.actualVersion?.status}\n                            isRequiredDocument={isRequiredDocument}\n                        />\n                    }\n                    onClose={onClose}\n                    dropdownOptions={headerDropdownOptions}\n                />\n                <SideBarHeaderRequestStatus\n                    requestStatus={fetchRequest}\n                    hasCachedData={!isEmpty(documentsById)}\n                    isForceShowLoader={\n                        uploadRequest.loading ||\n                        updateRequest.loading ||\n                        updateEvidenceOfTaxDetailsRequest.loading ||\n                        fetchDocumentsDictRequest.loading\n                    }\n                />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <SideBarRequestStatus\n                    requestStatus={fetchRequest}\n                    hasCachedData={!isEmpty(documentsById)}\n                    onRetry={handleRetryFetchDocuments}\n                    SkeletonComponent={EntitySidebarSkeleton}\n                >\n                    <DocumentDetailsLayout\n                        dictDocument={documentInfo?.dictDocument || null}\n                        onDownloadFile={handleDownloadDocument}\n                        onOpenUserDetails={handleOpenUserDetails}\n                        permissions={permissions}\n                        isUploading={uploadRequest.loading}\n                        actualVersion={documentInfo?.actualVersion || null}\n                        oldVersions={documentInfo?.oldVersions || null}\n                        actualVersionFormNode={\n                            isEditing ? (\n                                <DocumentParamsDetailsForm\n                                    isReview={shouldReview}\n                                    actualVersion={documentInfo?.actualVersion || null}\n                                    dictDocument={documentInfo?.dictDocument || null}\n                                    setNeedCloseConfirmation={setNeedCloseConfirmation}\n                                    partnerId={partnerId}\n                                    partnerType={partnerType}\n                                />\n                            ) : (\n                                <DocumentParamsDetails\n                                    partnerId={partnerId}\n                                    dictDocument={documentInfo?.dictDocument || null}\n                                    actualVersion={documentInfo?.actualVersion || null}\n                                />\n                            )\n                        }\n                    />\n                </SideBarRequestStatus>\n            </SideBarLayout>\n            {uploadRequest.loading && <UploadLoader />}\n            {!documentInfo?.actualVersion && !uploadRequest.loading && partnerPermissions.canUploadDocuments && (\n                <FooterSideBarLayout>\n                    <UploadFooterContent\n                        partnerId={partnerId}\n                        onUploadDocument={handleUploadDocument}\n                        dictDocument={documentInfo?.dictDocument || null}\n                    />\n                </FooterSideBarLayout>\n            )}\n            {isEditing && shouldReview && (\n                <FooterSideBarLayout>\n                    <ReviewFooterContent\n                        partnerId={partnerId}\n                        dictDocument={documentInfo?.dictDocument || null}\n                        actualVersion={documentInfo?.actualVersion || null}\n                        onReject={handleRejectDocument}\n                    />\n                </FooterSideBarLayout>\n            )}\n            {isEditing && !shouldReview && (\n                <FooterSideBarLayout>\n                    <SaveFooterContent />\n                </FooterSideBarLayout>\n            )}\n            <UploadDocumentConfirmation\n                data={confirmUploadDocumentModalDialog.data}\n                onCancel={confirmUploadDocumentModalDialog.onCancel}\n                onClose={confirmUploadDocumentModalDialog.onClose}\n                requestStatus={uploadRequest}\n                documentsDictById={documentsDictById}\n                onConfirm={onConfirmUploadDocument}\n            />\n            <RejectDocumentConfirmation\n                name={dictDocument?.name}\n                data={confirmRejectDocumentModalDialog.data}\n                onCancel={confirmRejectDocumentModalDialog.onCancel}\n                onClose={confirmRejectDocumentModalDialog.onClose}\n                onConfirm={onConfirmRejectDocument}\n                requestStatus={updateRequest}\n            />\n            <RevokeDocumentsConfirmation\n                data={confirmRevokeDocumentModalDialog.data}\n                onCancel={confirmRevokeDocumentModalDialog.onCancel}\n                onClose={confirmRevokeDocumentModalDialog.onClose}\n                onConfirm={onConfirmRevokeDocument}\n                requestStatus={updateRequest}\n            />\n        </RemoteFormActionsContext.Provider>\n    );\n};\n\nexport default DocumentDetailsSidebarContent;\n","import * as React from 'react';\nimport { useMemo } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './TransportOrderDetailsCard.scss';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport Card from 'design-system/components/Card/Card';\nimport { useTranslation } from 'react-i18next';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport CarrierIcon from 'common/icons/CarrierIcon';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport TruckIcon from 'common/icons/TruckIcon';\nimport AssetLinkFormatter from 'design-system/components/InfoTable/formatters/AssetLinkFormatter/AssetLinkFormatter';\nimport AssetLabelFormatter from 'design-system/components/InfoTable/formatters/AssetLabelFormatter/AssetLabelFormatter';\nimport TrailerIcon from 'common/icons/TrailerIcon';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport { ApiTransportationOrderFullT, PartnerTypeEnum } from 'common/utils/api/models';\nimport { logWarning } from 'common/utils/logger';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport DriverIcon from 'common/icons/DriverIcon';\nimport TeamDrive2Icon from 'common/icons/TeamDrive2Icon';\nimport DocIcon from 'common/icons/DocIcon';\nimport TransportOrderStatusPill from 'common/components/status-pill/TransportOrderStatusPill/TransportOrderStatusPill';\nimport CarrierCostPriceInfoTable from 'broker-admin/components/info-tables/CarrierCostPriceInfoTable/CarrierCostPriceInfoTable';\nimport SimpleDriverFormatter from 'design-system/components/InfoTable/formatters/SimpleDriverFormatter/SimpleDriverFormatter';\nimport ChangeTransportOrderStatusControl from 'broker-admin/components/status-machine/ChangeTransportOrderStatusControl/ChangeTransportOrderStatusControl';\n\nexport type PropsT = {\n    transportOrderNumber: string;\n    transportOrderDetails: ApiTransportationOrderFullT | null | undefined;\n    keyboardShortcut?: string;\n    className?: string;\n};\n\nconst cx = classNames.bind(styles);\n\nconst TransportOrderDetailsCard: React.FC<PropsT> = React.memo((props) => {\n    const { transportOrderNumber, transportOrderDetails, keyboardShortcut, className } = props;\n\n    const { t } = useTranslation();\n\n    const carrier = transportOrderDetails?.carrier || null;\n    const truck = transportOrderDetails?.truck || null;\n    const trailer = transportOrderDetails?.trailer || null;\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const handleOpenTrailerDetails = () => {\n        if (!trailer?.id || !carrier?.id) {\n            logWarning('failed to open trailer details, empty trailer');\n            return;\n        }\n\n        openLeftSidebar(\n            {\n                type: CommonSidebarsTypeEnum.trailerDetails,\n                trailerId: trailer.id,\n                partnerId: carrier.id,\n            },\n            {\n                isForceShowBackAction: true,\n            },\n        );\n    };\n\n    const handleOpenTruckDetails = () => {\n        if (!truck?.id || !carrier?.id) {\n            logWarning('failed to open trailer details, empty truck');\n            return;\n        }\n\n        openLeftSidebar(\n            {\n                type: CommonSidebarsTypeEnum.truckDetails,\n                truckId: truck.id,\n                partnerId: carrier.id,\n            },\n            {\n                isForceShowBackAction: true,\n            },\n        );\n    };\n\n    const mainDriver = transportOrderDetails?.drivers?.[0] || null;\n\n    const teamDrivers = useMemo(() => {\n        const shouldShowTeamDrivers = !!transportOrderDetails?.teamDrive;\n        if (!shouldShowTeamDrivers) {\n            return [];\n        }\n\n        const drivers = transportOrderDetails?.drivers?.slice(1) || [];\n        return drivers?.length ? drivers : [null];\n    }, [transportOrderDetails]);\n\n    const moveDetails: Array<InfoTableRowT | null> = [\n        {\n            icon: (\n                <TruckIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                    fillColor={StyleGuideColorsEnum.light}\n                />\n            ),\n            name: t('broker-order-details.transport-order-details.columns.truck'),\n            value: truck ? (\n                <AssetLinkFormatter assetId={truck?.id} onOpenAssetDetails={handleOpenTruckDetails}>\n                    <AssetLabelFormatter model={truck?.dictTruckInfo?.model} plateNumber={truck?.plateNumber} />\n                </AssetLinkFormatter>\n            ) : null,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.truck-not-assigned'), isBold: true },\n        },\n        {\n            icon: (\n                <TrailerIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                    fillColor={StyleGuideColorsEnum.light}\n                />\n            ),\n            name: t('broker-order-details.transport-order-details.columns.trailer'),\n            value: trailer ? (\n                <AssetLinkFormatter assetId={trailer?.id} onOpenAssetDetails={handleOpenTrailerDetails}>\n                    <AssetLabelFormatter model={trailer?.dictTrailerInfo?.model} plateNumber={trailer?.plateNumber} />\n                </AssetLinkFormatter>\n            ) : null,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.trailer-not-assigned'), isBold: true },\n        },\n        {\n            icon: <DriverIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.gray} />,\n            name: t('broker-order-details.transport-order-details.columns.driver'),\n            value: mainDriver ? <SimpleDriverFormatter driver={mainDriver} /> : null,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.driver-not-assigned'), isBold: true },\n        },\n        ...teamDrivers.map((driver) => ({\n            icon: <TeamDrive2Icon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.gray} />,\n            name: t('broker-order-details.transport-order-details.columns.team-driver'),\n            value: driver ? <SimpleDriverFormatter driver={driver} /> : null,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.driver-not-assigned'), isBold: true },\n        })),\n        {\n            icon: <DocIcon strokeColor={StyleGuideColorsEnum.gray} />,\n            name: t('broker-order-details.transport-order-details.columns.tour'),\n            value: transportOrderDetails?.tourNumber,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.assets-not-assigned'), isBold: true },\n        },\n    ];\n\n    const carrierDetails: Array<InfoTableRowT> = [\n        {\n            icon: <CarrierIcon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.gray} />,\n            name: t('broker-order-details.transport-order-details.columns.carrier'),\n            value: carrier?.id ? (\n                <Link\n                    to={urlFactory.partnerDetails(PartnerTypeEnum.carrier, carrier.id)}\n                    className={cx('link')}\n                    theme={LinkThemeEnum.boldBrandDark}\n                >\n                    {carrier?.name}\n                </Link>\n            ) : null,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.carrier-not-assigned'), isBold: true },\n        },\n    ];\n\n    return (\n        <>\n            <Card\n                titleNode={t('broker-order-details.transport-order-details.title', {\n                    number: transportOrderNumber,\n                })}\n                rightNode={\n                    <>\n                        <TransportOrderStatusPill isSymmetrical status={transportOrderDetails?.status} />\n                        <ChangeTransportOrderStatusControl\n                            cancelByBrokerUnavailableReason={transportOrderDetails?.cancelByBrokerUnavailableReason}\n                            transportOrderId={transportOrderDetails?.id || null}\n                        />\n                    </>\n                }\n                className={className}\n                hasHeaderBottomBorder\n                keyboardShortcut={keyboardShortcut}\n            >\n                <div className={cx('content')}>\n                    <InfoTable shouldRenderIcons rows={carrierDetails} className={cx('table', 'table--carrier')} />\n                    <InfoTable shouldRenderIcons rows={moveDetails} className={cx('table', 'table--move')} />\n                    <CarrierCostPriceInfoTable\n                        className={cx('table', 'table--carrier-cost')}\n                        totalPrice={transportOrderDetails?.carrierCost?.totalCost}\n                        totalPriceLabel={t('broker-order-details.transport-order-details.carrier-cost')}\n                        lineHaulCost={transportOrderDetails?.carrierCost?.lineHaul}\n                        tollCost={transportOrderDetails?.carrierCost?.toll?.totalCost}\n                        tollByRoadType={transportOrderDetails?.carrierCost?.toll?.byRoadType}\n                        co2={transportOrderDetails?.carrierCost?.co2}\n                        layoverCost={transportOrderDetails?.carrierCost?.layover?.totalCost}\n                        layoverSeconds={transportOrderDetails?.carrierCost?.layover?.totalSeconds}\n                        layoverPaidHours={transportOrderDetails?.carrierCost?.layover?.paidHours}\n                        fuelDetails={transportOrderDetails?.carrierCost?.fuel}\n                        teamDriveCost={transportOrderDetails?.carrierCost?.teamDriveCost}\n                        travelHours={transportOrderDetails?.carrierCost?.teamDriveHours}\n                        additionalServiceItems={transportOrderDetails?.carrierCost?.additionalServices?.items}\n                        deadheadLineHaulCost={transportOrderDetails?.carrierCost?.deadhead?.lineHaul}\n                        payloadLineHaulCost={transportOrderDetails?.carrierCost?.payload?.lineHaul}\n                        appliedRules={transportOrderDetails?.carrierCost?.appliedRules}\n                    />\n                </div>\n            </Card>\n        </>\n    );\n});\n\nexport default TransportOrderDetailsCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"input\":\"DatePicker__input___edS4Z\",\"trigger\":\"DatePicker__trigger___vT9MD\",\"fadeIn\":\"DatePicker__fadeIn___Kea0O\",\"blinking\":\"DatePicker__blinking___uHHuJ\"};","import { SharableStateT } from '../models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { VehicleScheduleStateT } from './types';\nimport { initialVehicleState } from './reducer';\nimport { VehicleScheduleT } from 'common/store/vehicle-schedules/models';\nimport { getVehicleScheduleHash } from './utils/hash';\n\nconst selectVehicleState = (\n    state: SharableStateT,\n    vehicleId: VehicleIdT | null,\n    aroundDate?: ISODateTimeT | null,\n): VehicleScheduleStateT => {\n    if (vehicleId === null) {\n        return initialVehicleState;\n    }\n\n    const hash = getVehicleScheduleHash(vehicleId, aroundDate);\n\n    return state.vehicleSchedules.byHash[hash] || initialVehicleState;\n};\n\nexport const selectVehicleSchedule =\n    (vehicleId: VehicleIdT | null, aroundDate?: ISODateTimeT | null) =>\n    (state: SharableStateT): VehicleScheduleT => {\n        const vehicleState = selectVehicleState(state, vehicleId, aroundDate);\n\n        return vehicleState.schedule;\n    };\n\nexport const selectFetchScheduleRequest =\n    (vehicleId: VehicleIdT | null, aroundDate?: ISODateTimeT | null) =>\n    (state: SharableStateT): RequestStatusT => {\n        const vehicleState = selectVehicleState(state, vehicleId, aroundDate);\n\n        return vehicleState.fetchRequestStatus;\n    };\n\nexport const selectSetUnavailableVehicleRequestStatus = (state: SharableStateT): RequestStatusT => {\n    return state.vehicleSchedules.setUnavailableRequest;\n};\n\nexport const selectCancelUnavailableVehicleRequestStatus = (state: SharableStateT): RequestStatusT => {\n    return state.vehicleSchedules.cancelUnavailableRequest;\n};\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './DocumentsTable.scss';\nimport TableSkeleton from 'common/components/Table/TableSkeleton/TableSkeleton';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport LineLoader from 'common/components/LineLoader/LineLoader';\nimport { isNonNil } from 'common/utils';\nimport { ReactNode, useRef } from 'react';\n\nconst cx = classNames.bind(styles);\n\nconst CLICK_SHIFT_LIMIT = 10;\n\nexport type TableRowMetaT = {\n    isSelected: boolean;\n    isHovered: boolean;\n};\n\nexport enum TableColumnModsEnum {\n    center = 'center',\n}\n\nexport type TableColumnT<RowT, ColumnsExtraDataT> = {\n    // headers\n    renderHeader: (columnsExtraData?: ColumnsExtraDataT) => React.ReactElement | null;\n    headerClassName?: string;\n\n    headerMods?: Partial<Record<TableColumnModsEnum, boolean>>;\n\n    // cells\n    render: (row: RowT, meta: TableRowMetaT, rowIndex: number) => React.ReactElement | null;\n    className?: string;\n\n    testSelector?: string;\n};\n\nexport enum TableRowModsEnum {\n    hasLeftGreenBorder = 'hasLeftGreenBorder',\n    hasLeftOrangeBorder = 'hasLeftOrangeBorder',\n    hasLeftRedBorder = 'hasLeftRedBorder',\n    hasLeftGreyBorder = 'hasLeftGreyBorder',\n}\n\nexport enum TableRowThemeEnum {\n    empty = 'empty',\n    normal = 'normal',\n}\n\nexport type PropsT<RowT, ColumnsExtraDataT> = {\n    className?: string;\n    columns: Array<TableColumnT<RowT, ColumnsExtraDataT> | null>;\n    columnsExtraData?: ColumnsExtraDataT;\n    selectedRowsSet?: Set<RowT>;\n    rows: Array<RowT>;\n    getRowMods?: (meta: TableRowMetaT, row: RowT) => Partial<Record<TableRowModsEnum, boolean>>;\n    getRowTheme?: (meta: TableRowMetaT, row: RowT) => TableRowThemeEnum;\n    onSelectRow?: (row: RowT) => void;\n    isLoading: boolean;\n    testSelector?: string;\n    isUsedPrevRows: boolean;\n    footerNode?: ReactNode;\n    headerNode?: ReactNode;\n};\n\nconst DEFAULT_MODS = {\n    hasLeftGreenBorder: false,\n    hasLeftOrangeBorder: false,\n    hasLeftRedBorder: false,\n    hasLeftGreyBorder: false,\n    isHighlighted: false,\n    isSelected: false,\n};\n\nconst DocumentsTable = <RowT, ColumnsExtraDataT>(props: PropsT<RowT, ColumnsExtraDataT>) => {\n    const {\n        columns,\n        rows,\n        className,\n        onSelectRow,\n        selectedRowsSet,\n        getRowMods,\n        getRowTheme,\n        columnsExtraData,\n        isLoading,\n        testSelector,\n        isUsedPrevRows,\n        headerNode,\n        footerNode,\n    } = props;\n\n    const mouseDownPositionRef = useRef<number>(0);\n\n    const [hoveredRow, onHoverRow] = React.useState<RowT | null>(null);\n\n    const filteredColumns = React.useMemo(() => {\n        return columns.filter(isNonNil);\n    }, [columns]);\n\n    const fullTestSelector = `${testSelector}_table`;\n\n    const isShowTable = !!rows.length || !!headerNode || !!footerNode;\n    const isShowTableLoader = isLoading && !isShowTable;\n    const isShowLineLoader = isLoading && isShowTable && !isUsedPrevRows;\n    const isShowOverlayLoader = isUsedPrevRows;\n\n    return (\n        <div className={cs(cx('table'), className)}>\n            {isShowTable && (\n                <table data-test-selector={fullTestSelector}>\n                    <thead>\n                        <tr>\n                            {filteredColumns.map((column, columnIndex) => (\n                                <th\n                                    key={columnIndex}\n                                    className={cs(\n                                        cx('header', {\n                                            'header--mod-center': !!column.headerMods?.center,\n                                        }),\n                                        column.headerClassName,\n                                    )}\n                                    data-test-selector={`${fullTestSelector}_header_${column.testSelector}`}\n                                >\n                                    {columnIndex === 0 && (\n                                        <div className={cx('line-loader-container')}>\n                                            <LineLoader isShow={isShowLineLoader} />\n                                        </div>\n                                    )}\n                                    {column.renderHeader(columnsExtraData)}\n                                </th>\n                            ))}\n                        </tr>\n                    </thead>\n                    <tbody>\n                        {!!headerNode && (\n                            <tr>\n                                <td colSpan={filteredColumns.length}>{headerNode}</td>\n                            </tr>\n                        )}\n                        {rows.map((row, rowIndex) => {\n                            const meta: TableRowMetaT = {\n                                isSelected: !!selectedRowsSet?.has(row),\n                                isHovered: hoveredRow === row,\n                            };\n\n                            const rowMods = getRowMods ? getRowMods(meta, row) : DEFAULT_MODS;\n                            const rowTheme = getRowTheme ? getRowTheme(meta, row) : TableRowThemeEnum.normal;\n\n                            return (\n                                <tr\n                                    key={rowIndex}\n                                    className={cx('row', {\n                                        [`row--theme-${rowTheme}`]: !!rowTheme,\n                                        'row--mod-isSelected': meta.isSelected,\n                                        'row--mod-isHovered': meta.isHovered,\n                                        'row--hasLeftGreenBorder': rowMods.hasLeftGreenBorder,\n                                        'row--hasLeftRedBorder': rowMods.hasLeftRedBorder,\n                                        'row--hasLeftGreyBorder': rowMods.hasLeftGreyBorder,\n                                        'row--hasLeftOrangeBorder': rowMods.hasLeftOrangeBorder,\n                                    })}\n                                    onClick={(event): void => {\n                                        const isClick =\n                                            Math.abs(mouseDownPositionRef.current - event.clientX) < CLICK_SHIFT_LIMIT;\n                                        if (!isClick) {\n                                            return;\n                                        }\n\n                                        if (onSelectRow) {\n                                            onSelectRow(row);\n                                        }\n                                    }}\n                                    onMouseDown={(event) => {\n                                        mouseDownPositionRef.current = event.clientX;\n                                    }}\n                                    onMouseMove={() => {\n                                        if (row !== hoveredRow) {\n                                            onHoverRow(row);\n                                        }\n                                    }}\n                                    data-test-selector={`${fullTestSelector}_row_${rowIndex}`}\n                                >\n                                    {filteredColumns.map((column, columnIndex) => (\n                                        <td\n                                            key={columnIndex}\n                                            className={column.className}\n                                            data-test-selector={`${fullTestSelector}_cell_${column.testSelector}`}\n                                        >\n                                            {column.render(row, meta, rowIndex)}\n                                        </td>\n                                    ))}\n                                </tr>\n                            );\n                        })}\n                    </tbody>\n                </table>\n            )}\n            {isShowTableLoader && <TableSkeleton />}\n            {isShowOverlayLoader && <LoaderOverlay />}\n            {footerNode}\n        </div>\n    );\n};\n\nexport default React.memo(DocumentsTable) as typeof DocumentsTable;\n","import React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './SwitchableViewMapTrigger.scss';\nimport SwitchableViewTrigger from '../SwitchableViewTrigger/SwitchableViewTrigger';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n};\n\nconst SwitchableViewMapTrigger: React.FC<PropsT> = (props) => {\n    const { className } = props;\n\n    return <SwitchableViewTrigger className={cs(cx('map-trigger'), className)} />;\n};\n\nexport default SwitchableViewMapTrigger;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './AssetSchedulePin.scss';\nimport { AssetTypeEnum } from 'common/constants';\nimport TrailerIcon, { getTrailerIconProps } from 'common/icons/TrailerIcon';\nimport TruckIcon, { getTruckIconProps } from 'common/icons/TruckIcon';\nimport MapTooltip from 'common/components/maps/MapTooltip/MapTooltip';\nimport { MapPinThemeEnum } from 'common/components/maps/MapPin/MapPin';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    lat: number;\n    lng: number;\n    className?: string;\n\n    assetType: AssetTypeEnum;\n    isSelected: boolean;\n    number: number;\n};\n\nconst AssetSchedulePin: React.FC<PropsT> = React.memo((props) => {\n    const {\n        lat,\n        lng,\n        className,\n\n        assetType,\n        isSelected,\n        number,\n    } = props;\n\n    return (\n        <MapTooltip\n            contentClassName={cs(cx('asset-tooltip'), className)}\n            lat={lat}\n            lng={lng}\n            theme={isSelected ? MapPinThemeEnum.charcoal : MapPinThemeEnum.gray}\n        >\n            {() => (\n                <div className={cx('row')}>\n                    <div className={cx('icon')}>\n                        {assetType === AssetTypeEnum.truck && <TruckIcon {...getTruckIconProps('assignment-events')} />}\n                        {assetType === AssetTypeEnum.trailer && (\n                            <TrailerIcon {...getTrailerIconProps('assignment-events')} />\n                        )}\n                    </div>\n                    <div className={cx('number')}>{number}</div>\n                </div>\n            )}\n        </MapTooltip>\n    );\n});\n\nexport default AssetSchedulePin;\n","// extracted by mini-css-extract-plugin\nexport default {\"time-interval\":\"FerryOnboardPointPicker__time-interval___iH4XH\",\"fadeIn\":\"FerryOnboardPointPicker__fadeIn___QA0LX\",\"blinking\":\"FerryOnboardPointPicker__blinking___MXBmM\"};","// extracted by mini-css-extract-plugin\nexport default {\"created-date\":\"ContactCell__created-date___epbV3\",\"phone\":\"ContactCell__phone___aR46F\",\"tooltip\":\"ContactCell__tooltip___gqsMW\",\"tooltip__avatar\":\"ContactCell__tooltip__avatar___xrgVk\",\"tooltip__full-name\":\"ContactCell__tooltip__full-name___GAQlO\",\"tooltip__role\":\"ContactCell__tooltip__role___q1vBa\",\"fadeIn\":\"ContactCell__fadeIn___qnCBo\",\"blinking\":\"ContactCell__blinking___QQbei\"};","import moment from 'moment';\nimport { FieldsEnum, FormValuesT } from './EditDriverFormContent/constants';\nimport { ApiContactFormalEnum, CountryCodeT } from 'common/utils/api/models';\nimport { PHONE_NUMBER_PREFIX, SocialMediaEnum } from 'common/constants';\nimport { CompanyDriverDetailsT } from 'common/store/drivers/models';\nimport isNumber from 'lodash/isNumber';\n\nconst getInitialValues = (driverDetails?: CompanyDriverDetailsT | null): FormValuesT => {\n    const values: FormValuesT = {\n        [FieldsEnum.id]: driverDetails?.id || null,\n        [FieldsEnum.formal]: driverDetails?.contact?.formal as ApiContactFormalEnum,\n        [FieldsEnum.firstName]: driverDetails?.contact?.name || '',\n        [FieldsEnum.lastName]: driverDetails?.contact?.surname || '',\n\n        [FieldsEnum.desktopPhone]: driverDetails?.contact?.deskPhone || PHONE_NUMBER_PREFIX,\n\n        [FieldsEnum.address]: driverDetails?.homeAddress || '',\n\n        [FieldsEnum.birthday]: null,\n        [FieldsEnum.countryCode]: (driverDetails?.contact?.residence as CountryCodeT) || null,\n        [FieldsEnum.language]: driverDetails?.contact?.language || null,\n\n        [FieldsEnum.ratePerKm]: isNumber(driverDetails?.rate) ? String(driverDetails?.rate) : '',\n    };\n\n    driverDetails?.contact?.medias?.forEach((media) => {\n        const { login, type } = media;\n\n        values[type as SocialMediaEnum] = login;\n    });\n\n    if (driverDetails?.contact?.birthday) {\n        values[FieldsEnum.birthday] = moment(driverDetails.contact.birthday, 'YYYY-MM-DD').toDate();\n    }\n\n    return values;\n};\n\nexport default getInitialValues;\n","import {\n    FETCH_RATES_PAGE_REQUEST,\n    FETCH_RATES_PAGE_REQUEST_BEGIN,\n    FETCH_RATES_PAGE_REQUEST_ERROR,\n    FETCH_RATES_PAGE_REQUEST_SUCCESS,\n    FetchRatesPageActionT,\n    FetchRatesPageBeginActionT,\n    FetchRatesPageErrorActionT,\n    FetchRatesPageSuccessActionT,\n    RESET_RATES,\n    ResetRatesActionT,\n    UPDATE_RATES_REQUEST,\n    UPDATE_RATES_REQUEST_BEGIN,\n    UPDATE_RATES_REQUEST_ERROR,\n    UPDATE_RATES_REQUEST_SUCCESS,\n    UpdateRatesActionT,\n    UpdateRatesBeginActionT,\n    UpdateRatesErrorActionT,\n    UpdateRatesSuccessActionT,\n    UPLOAD_CSV_FILE_REQUEST,\n    UPLOAD_CSV_FILE_REQUEST_BEGIN,\n    UPLOAD_CSV_FILE_REQUEST_FAIL,\n    UPLOAD_CSV_FILE_REQUEST_SUCCESS,\n    UploadCsvFileActionT,\n    UploadCsvFileBeginActionT,\n    UploadCsvFileFailActionT,\n    UploadCsvFileSuccessActionT,\n} from './types';\nimport { FetchRatesPageQueryT, RateT } from './models';\nimport { UpdateRateStrategyEnum } from 'common/utils/api/models';\nimport { PageResponseT } from 'common/utils/pagination/models';\n\nexport const fetchRatesPage = (\n    pageNumber: PageNumberT,\n    query: FetchRatesPageQueryT,\n    options?: FetchOptionsT,\n): FetchRatesPageActionT => ({\n    type: FETCH_RATES_PAGE_REQUEST,\n    pageNumber,\n    query,\n    options,\n});\n\nexport const fetchRatesPageBegin = (\n    query: FetchRatesPageQueryT,\n    pageNumber: PageNumberT,\n): FetchRatesPageBeginActionT => ({\n    type: FETCH_RATES_PAGE_REQUEST_BEGIN,\n    query,\n    pageNumber,\n});\n\nexport const fetchRatesPageSuccess = (\n    query: FetchRatesPageQueryT,\n    pageNumber: PageNumberT,\n    pageResponse: PageResponseT<RateT> | null,\n): FetchRatesPageSuccessActionT => ({\n    type: FETCH_RATES_PAGE_REQUEST_SUCCESS,\n    query,\n    pageResponse,\n    pageNumber,\n});\n\nexport const fetchRatesPageError = (\n    query: FetchRatesPageQueryT,\n    pageNumber: PageNumberT,\n    error: Error,\n): FetchRatesPageErrorActionT => ({\n    type: FETCH_RATES_PAGE_REQUEST_ERROR,\n    error,\n    pageNumber,\n    query,\n});\n\nexport const updateRates = (\n    ids: Array<RateT['id']>,\n    value: number,\n    strategy: UpdateRateStrategyEnum,\n): UpdateRatesActionT => ({\n    type: UPDATE_RATES_REQUEST,\n    ids,\n    value,\n    strategy,\n});\n\nexport const updateRatesBegin = (): UpdateRatesBeginActionT => ({\n    type: UPDATE_RATES_REQUEST_BEGIN,\n});\n\nexport const updateRatesSuccess = (): UpdateRatesSuccessActionT => ({\n    type: UPDATE_RATES_REQUEST_SUCCESS,\n});\n\nexport const updateRatesError = (error: Error): UpdateRatesErrorActionT => ({\n    type: UPDATE_RATES_REQUEST_ERROR,\n    error,\n});\n\nexport const resetRates = (mutationListOptions: MutationListOptionsT): ResetRatesActionT => ({\n    type: RESET_RATES,\n    mutationListOptions,\n});\n\nexport const uploadCSVFile = (file: File): UploadCsvFileActionT => ({\n    type: UPLOAD_CSV_FILE_REQUEST,\n    file,\n});\n\nexport const uploadCSVFileBegin = (): UploadCsvFileBeginActionT => ({\n    type: UPLOAD_CSV_FILE_REQUEST_BEGIN,\n});\n\nexport const uploadCSVFileSuccess = (): UploadCsvFileSuccessActionT => ({\n    type: UPLOAD_CSV_FILE_REQUEST_SUCCESS,\n});\n\nexport const uploadCSVFailError = (error: Error): UploadCsvFileFailActionT => ({\n    type: UPLOAD_CSV_FILE_REQUEST_FAIL,\n    error,\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"operation-unavailable-reasons-alert\":\"RFQListPageLayout__operation-unavailable-reasons-alert___jzJlk\",\"fadeIn\":\"RFQListPageLayout__fadeIn___uIkKg\",\"blinking\":\"RFQListPageLayout__blinking___kAeXC\"};","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst LinkDropOffIcon: React.FC<PropsT> = (props) => {\n    const { strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\">\n            <path\n                fill={strokeColor}\n                fillRule=\"evenodd\"\n                d=\"M14.75 6.25c2.07 0 3.75 1.68 3.75 3.75 0 2.07-1.68 3.75-3.75 3.75h-3v-1.425h3A2.327 2.327 0 0017.075 10a2.327 2.327 0 00-2.325-2.325h-3V6.25zm-.75 3v1.5h-3.001v-1.5H14zm-11.448 3.5h1.192V9c0-.412.338-.75.75-.75h3c.413 0 .75.338.75.75v3.75h1.193c.667 0 1.005.81.532 1.283l-3.442 3.442a.747.747 0 01-1.058 0l-3.442-3.443c-.473-.472-.143-1.282.525-1.282zm4.942-6.056a.752.752 0 00.75-.739V4a.752.752 0 00-.75-.75h-3a.752.752 0 00-.75.75v1.944c0 .413.338.75.75.75h3z\"\n            />\n        </svg>\n    );\n};\n\nLinkDropOffIcon.displayName = 'LinkDropOffIcon';\n\nconst storyProps: PropsT = {\n    strokeColor: StyleGuideColorsEnum.brandAccent,\n};\n\n/**\n *  @deprecated create/use ...Props class\n * */\nexport const getLinkDropOffIconProps = (\n    preset:\n        | 'default'\n        | 'assignment-normal'\n        | 'assignment-error'\n        | 'assignment-selected'\n        | 'assignment-input-normal'\n        | 'assignment-input-selected',\n): PropsT => {\n    switch (preset) {\n        case 'assignment-normal': {\n            return {\n                strokeColor: StyleGuideColorsEnum.light,\n            };\n        }\n        case 'assignment-error': {\n            return {\n                strokeColor: StyleGuideColorsEnum.white,\n            };\n        }\n        case 'assignment-selected': {\n            return {\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        case 'assignment-input-normal': {\n            return {\n                strokeColor: StyleGuideColorsEnum.light,\n            };\n        }\n        case 'assignment-input-selected': {\n            return {\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        case 'default':\n        default: {\n            return {\n                strokeColor: StyleGuideColorsEnum.light,\n            };\n        }\n    }\n};\n\nexport { storyProps };\nexport default LinkDropOffIcon;\n","import { useState, useCallback, useLayoutEffect } from 'react';\n\ntype DimensionT = {\n    width: number;\n    height: number;\n    top: number;\n    left: number;\n    x: number;\n    y: number;\n    right: number;\n    bottom: number;\n} | null;\n\ntype UseDimensionsHookT = {\n    ref: (node: HTMLElement | null) => void;\n    dimensions: DimensionT;\n    node: HTMLElement | null;\n};\n\ntype UseDimensionsArgsT = {\n    liveMeasure?: boolean;\n};\n\nconst getDimensionObject = (node: HTMLElement): DimensionT => {\n    const rect = node.getBoundingClientRect();\n\n    return {\n        width: rect.width,\n        height: rect.height,\n        top: 'x' in rect ? rect.x : (rect as DOMRect).top,\n        left: 'y' in rect ? rect.y : (rect as DOMRect).left,\n        x: 'x' in rect ? rect.x : (rect as DOMRect).left,\n        y: 'y' in rect ? rect.y : (rect as DOMRect).top,\n        right: rect.right,\n        bottom: rect.bottom,\n    };\n};\n\nconst useDimensions = (args?: UseDimensionsArgsT): UseDimensionsHookT => {\n    const [dimensions, setDimensions] = useState<DimensionT>(null);\n    const [node, setNode] = useState<HTMLElement | null>(null);\n\n    const ref = useCallback((node): void => {\n        setNode(node);\n    }, []);\n\n    useLayoutEffect(() => {\n        if (node) {\n            const measure = () => {\n                window.requestAnimationFrame(() => {\n                    setDimensions(getDimensionObject(node));\n                });\n            };\n\n            measure();\n\n            if (args?.liveMeasure) {\n                window.addEventListener('resize', measure);\n                window.addEventListener('scroll', measure);\n\n                return () => {\n                    window.removeEventListener('resize', measure);\n                    window.removeEventListener('scroll', measure);\n                };\n            }\n            return () => {\n                // nothing\n            };\n        }\n        return () => {\n            // nothing\n        };\n\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [node]);\n\n    return {\n        ref,\n        dimensions,\n        node,\n    };\n};\n\nexport default useDimensions;\n","// extracted by mini-css-extract-plugin\nexport default {\"model\":\"TrailerCell__model___pf8Gs\",\"not-assigned\":\"TrailerCell__not-assigned___ZnqcG\",\"fadeIn\":\"TrailerCell__fadeIn___ODjBg\",\"blinking\":\"TrailerCell__blinking___ADhs1\"};","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    fillColor: StyleGuideColorsEnum;\n    number: number;\n};\n\nconst NumberIcon: React.FC<PropsT> = (props) => {\n    const { className, fillColor, number } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" className={className}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <circle cx=\"10\" cy=\"10\" r=\"10\" fill={fillColor} />\n                <text fill=\"#FFF\" fontFamily=\"Roboto-Black, Roboto\" fontSize=\"14\" fontWeight=\"800\">\n                    <tspan x=\"5.946\" y=\"15\">\n                        {number}\n                    </tspan>\n                </text>\n            </g>\n        </svg>\n    );\n};\n\nNumberIcon.displayName = 'NumberIcon';\n\nconst storyProps: PropsT = {\n    number: 1,\n    fillColor: StyleGuideColorsEnum.slate,\n};\n\nexport { storyProps };\nexport default NumberIcon;\n\nexport const NumberIconProps = {\n    getAssignmentControlProps: ({\n        isDisabled,\n        isFocused,\n        hasError,\n        hasWarning,\n        hasSuccess,\n        hasValue,\n    }: {\n        isDisabled?: boolean;\n        isFocused?: boolean;\n        hasError?: boolean;\n        hasWarning?: boolean;\n        hasSuccess?: boolean;\n        hasValue?: boolean;\n    }): Omit<PropsT, 'number'> => {\n        if (hasError) {\n            return {\n                fillColor: StyleGuideColorsEnum.tomatoRed,\n            };\n        }\n\n        if (hasWarning) {\n            return {\n                fillColor: StyleGuideColorsEnum.orange,\n            };\n        }\n\n        if (hasSuccess) {\n            return {\n                fillColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n\n        if (isDisabled) {\n            return {\n                fillColor: StyleGuideColorsEnum.slate,\n            };\n        }\n\n        return {\n            fillColor: hasValue || isFocused ? StyleGuideColorsEnum.charcoal : StyleGuideColorsEnum.light,\n        };\n    },\n};\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { checkNotEmpty } from 'common/utils/form-validators';\n\nconst validateForm = (values: FormValuesT, t: (key: string) => string): Partial<FormValuesT> => {\n    const errors: Partial<FormValuesT> = {\n        ...checkNotEmpty(t, [FieldsEnum.name, FieldsEnum.timeZone], values),\n    };\n\n    return errors;\n};\n\nexport default validateForm;\n","import { DictCarrierAdditionalServiceGroupT } from './models';\n\nexport function normalizeAdditionalServicesResponse(\n    response: DictCarrierAdditionalServiceGroupT[] | null,\n): DictCarrierAdditionalServiceGroupT[] | null {\n    if (!response) {\n        return null;\n    }\n\n    return response\n        .map((group) => ({\n            ...group,\n            services: [...group.services].sort((serviceA, serviceB) => {\n                return serviceA.service.localeCompare(serviceB.service);\n            }),\n        }))\n        .sort((groupA, groupB) => {\n            const categoryCompare = groupA.category.localeCompare(groupB.category);\n            if (categoryCompare !== 0) {\n                return categoryCompare;\n            }\n\n            const aTrailerType = groupA.trailerType || '';\n            const bTrailerType = groupB.trailerType || '';\n            return aTrailerType.localeCompare(bTrailerType);\n        });\n}\n","import { put, select, take, takeEvery } from 'redux-saga/effects';\nimport {\n    AssignActionT,\n    ASSIGNMENT_REQUEST,\n    CHANGE_USER_SELECTION,\n    ChangeUserSelectionActionT,\n    FETCH_ASSET_SCHEDULE,\n    FETCH_ASSIGN_DETAILS_REQUEST,\n    FETCH_AVAILABLE_CARRIERS_REQUEST,\n    FETCH_AVAILABLE_VEHICLES_REQUEST,\n    FetchAssetScheduleActionT,\n    FetchAssignDetailsActionT,\n    FetchAvailableCarriersActionT,\n    FetchAvailableVehiclesActionT,\n    FIND_TRAILER_REQUEST,\n    FIND_TRUCK_REQUEST,\n    FindTrailerActionT,\n    FindTruckActionT,\n    INIT,\n    INIT_USER_SELECTION,\n    InitUserSelectionActionT,\n    PREDICT_SELF_COST_REQUEST,\n    PredictSelfCostActionT,\n    REFRESH_TRAILER_REQUEST,\n    REFRESH_TRUCK_REQUEST,\n    RefreshTrailerActionT,\n    RefreshTruckActionT,\n    RESET,\n} from './types';\nimport {\n    assignBegin,\n    assignError,\n    assignSuccess,\n    changeUserSelection,\n    fetchAssetSchedule,\n    fetchAssetScheduleBegin,\n    fetchAssetScheduleError,\n    fetchAssetScheduleSuccess,\n    fetchAssignDetailsBegin,\n    fetchAssignDetailsError,\n    fetchAssignDetailsSuccess,\n    fetchAvailableCarriers,\n    fetchAvailableCarriersBegin,\n    fetchAvailableCarriersError,\n    fetchAvailableCarriersSuccess,\n    fetchAvailableVehicles,\n    fetchAvailableVehiclesBegin,\n    fetchAvailableVehiclesError,\n    fetchAvailableVehiclesSuccess,\n    findTrailer,\n    findTrailerBegin,\n    findTrailerError,\n    findTrailerSuccess,\n    findTruck,\n    findTruckBegin,\n    findTruckError,\n    findTruckSuccess,\n    predictSelfCost,\n    predictSelfCostBegin,\n    predictSelfCostError,\n    predictSelfCostSuccess,\n    refreshTrailer,\n    refreshTruck,\n    setAssetSchedule,\n    setEventLoadRoute,\n} from './actions';\nimport {\n    selectAssignmentRequestStatus,\n    selectAvailableCarriersRequest,\n    selectAvailableVehiclesQuery,\n    selectScheduleAssetById,\n    selectSelfCostPrediction,\n    selectSelfCostPredictionQuery,\n    selectTrailerAssignmentInfoById,\n    selectTrailerSuggestQuery,\n    selectTruckAssignmentInfoById,\n    selectTruckSuggestQuery,\n    selectUserSelection,\n} from './selectors';\nimport { MS_IN_SEC } from 'common/utils/time';\nimport { logWarning } from 'common/utils/logger';\nimport { selectBrokerOrderDetails } from 'broker-admin/store/broker-order-details/selectors';\nimport { fetchBrokerOrderDetails } from 'broker-admin/store/broker-order-details/slice';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { getCurrentScheduleEvent } from 'broker-admin/store/broker-order-assigment/utils';\nimport { ApiCountriesT, VehicleScheduleEventTypeEnum } from 'common/utils/api/models';\nimport { brokerOrdersRefreshChannel } from 'broker-admin/store/broker-orders/channels';\nimport { checkIsSameQuery } from 'common/utils/pagination/utils';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { M_IN_KM } from 'common/utils/distance';\nimport { PointToDropT, SelfCostPredictionT, UserSelectionT } from 'broker-admin/store/broker-order-assigment/models';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport { stateMachineRefreshChannel } from 'common/store/state-machine/channels';\nimport { isNonNil } from 'common/utils';\nimport uniq from 'lodash/uniq';\nimport { ALL_CARRIERS_ID } from 'common/constants';\nimport {\n    selectCountrySettingsByCountryCode,\n    selectCountrySettingsDictRequest,\n} from 'common/store/country-settings-dict/selectors';\nimport { COUNTRY_SETTINGS_DICT_REQUEST_SUCCESS } from 'common/store/country-settings-dict/types';\nimport { checkIsAvailableCountryForDropAsset } from 'common/store/country-settings-dict/utils/check-location';\nimport keyBy from 'lodash/keyBy';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { BrokerAlertTypeEnum, BrokerAnyAlert } from 'broker-admin/components/toasts/models';\n\nconst LIMIT_SUGGEST_RESULT = 50;\n\nfunction* checkIsAvailableDropAssetPoints(\n    pointToDropTruck: PointToDropT | null,\n    pointToDropTrailer: PointToDropT | null,\n): WrapGeneratorT<boolean> {\n    const countriesSettingsRequest: ReturnType<typeof selectCountrySettingsDictRequest> = yield select(\n        selectCountrySettingsDictRequest,\n    );\n    if (!countriesSettingsRequest?.ok) {\n        yield take([COUNTRY_SETTINGS_DICT_REQUEST_SUCCESS]);\n    }\n\n    const countriesSettingsByCode: ReturnType<typeof selectCountrySettingsByCountryCode> = yield select(\n        selectCountrySettingsByCountryCode,\n    );\n    const isAvailablePointToDropTrailer = pointToDropTrailer\n        ? checkIsAvailableCountryForDropAsset(\n              {\n                  ...pointToDropTrailer,\n                  utcOffsetMinutes: null,\n              },\n              countriesSettingsByCode,\n          )\n        : true;\n\n    const isAvailablePointToDropTruck = pointToDropTruck\n        ? checkIsAvailableCountryForDropAsset(\n              {\n                  ...pointToDropTruck,\n                  utcOffsetMinutes: null,\n              },\n              countriesSettingsByCode,\n          )\n        : true;\n\n    return isAvailablePointToDropTrailer && isAvailablePointToDropTruck;\n}\n\nfunction* initUserSelectionSaga(action: InitUserSelectionActionT): WrapGeneratorT<void> {\n    const { brokerOrderId, tourId, changes } = action;\n\n    if (\n        brokerOrderId &&\n        tourId &&\n        (changes.truckId || changes.trailerId) &&\n        ('truckId' in changes ||\n            'trailerId' in changes ||\n            'excludedCountries' in changes ||\n            'isIgnoreCertificates' in changes ||\n            'isIgnoreEmissionStandard' in changes ||\n            'pointToDropTruck' in changes ||\n            'pointToDropTrailer' in changes)\n    ) {\n        yield put(\n            predictSelfCost({\n                brokerOrderId,\n                tourId,\n                truckId: changes.truckId || null,\n                trailerId: changes.trailerId || null,\n                excludedCountries: changes.excludedCountries || [],\n                isIgnoreCertificates: !!changes.isIgnoreCertificates,\n                isIgnoreEmissionStandard: !!changes.isIgnoreEmissionStandard,\n                pointToDropTruck: changes.pointToDropTruck || null,\n                pointToDropTrailer: changes.pointToDropTrailer || null,\n            }),\n        );\n    }\n}\n\nfunction* changeUserSelectionSaga(action: ChangeUserSelectionActionT): WrapGeneratorT<void> {\n    const { changes, tourId, brokerOrderId } = action;\n\n    if (!brokerOrderId) {\n        logWarning('Empty brokerOrderId');\n        return;\n    }\n\n    if (!tourId) {\n        logWarning('Empty tourId');\n        return;\n    }\n\n    const prevUserSelection: ReturnType<typeof selectUserSelection> = yield select(selectUserSelection);\n    const userSelection: UserSelectionT = {\n        ...prevUserSelection,\n        ...changes,\n    };\n\n    if (\n        userSelection.radiusKm &&\n        ('radiusKm' in changes ||\n            'truckId' in changes ||\n            'trailerId' in changes ||\n            'carrierId' in changes ||\n            'isIgnoreCertificates' in changes ||\n            'isIgnoreEmissionStandard' in changes ||\n            'pointToDropTrailer' in changes ||\n            'pointToDropTruck' in changes)\n    ) {\n        yield put(\n            fetchAvailableVehicles({\n                brokerOrderId,\n                tourId,\n                radiusKm: userSelection.radiusKm,\n                carrierId: userSelection.carrierId,\n                truckId: userSelection.truckId,\n                trailerId: userSelection.trailerId,\n                isIgnoreCertificates: userSelection.isIgnoreCertificates,\n                isIgnoreEmissionStandard: userSelection.isIgnoreEmissionStandard,\n                pointToDropTruck: userSelection.pointToDropTruck,\n                pointToDropTrailer: userSelection.pointToDropTrailer,\n            }),\n        );\n    }\n\n    const selfCostReserve: ReturnType<typeof selectSelfCostPrediction> = yield select(selectSelfCostPrediction);\n    const isExpiredReserve = selfCostReserve?.expireTime ? selfCostReserve?.expireTime < Date.now() : false;\n    if (\n        'truckId' in changes ||\n        'trailerId' in changes ||\n        'excludedCountries' in changes ||\n        'isIgnoreCertificates' in changes ||\n        'isIgnoreEmissionStandard' in changes ||\n        'pointToDropTruck' in changes ||\n        'pointToDropTrailer' in changes ||\n        isExpiredReserve\n    ) {\n        yield put(\n            predictSelfCost({\n                brokerOrderId,\n                tourId,\n                truckId: userSelection.truckId,\n                trailerId: userSelection.trailerId,\n                excludedCountries: userSelection.excludedCountries,\n                isIgnoreCertificates: userSelection.isIgnoreCertificates,\n                isIgnoreEmissionStandard: userSelection.isIgnoreEmissionStandard,\n                pointToDropTruck: userSelection.pointToDropTruck,\n                pointToDropTrailer: userSelection.pointToDropTrailer,\n            }),\n        );\n    }\n\n    if (\n        userSelection.truckId &&\n        ('isIgnoreCertificates' in changes ||\n            'isIgnoreEmissionStandard' in changes ||\n            'pointToDropTruck' in changes ||\n            'pointToDropTrailer' in changes)\n    ) {\n        const truckAssignmentInfoById: ReturnType<typeof selectTruckAssignmentInfoById> = yield select(\n            selectTruckAssignmentInfoById,\n        );\n        const truckAssignmentInfo = truckAssignmentInfoById[userSelection.truckId as TruckIdT];\n        if (truckAssignmentInfo) {\n            yield put(\n                refreshTruck({\n                    plateNumber: truckAssignmentInfo.plateNumber || '',\n                    brokerOrderId,\n                    tourId,\n                    trailerId: userSelection.trailerId,\n                    isIgnoreCertificates: userSelection.isIgnoreCertificates,\n                    isIgnoreEmissionStandard: userSelection.isIgnoreEmissionStandard,\n                    pointToDropTruck: userSelection.pointToDropTruck,\n                    pointToDropTrailer: userSelection.pointToDropTrailer,\n                }),\n            );\n        }\n    }\n\n    if (\n        userSelection.trailerId &&\n        ('isIgnoreCertificates' in changes ||\n            'isIgnoreEmissionStandard' in changes ||\n            'pointToDropTruck' in changes ||\n            'pointToDropTrailer' in changes)\n    ) {\n        const trailerAssignmentInfoById: ReturnType<typeof selectTrailerAssignmentInfoById> = yield select(\n            selectTrailerAssignmentInfoById,\n        );\n        const trailerAssignmentInfo = trailerAssignmentInfoById[userSelection.trailerId as TrailerIdT];\n        if (trailerAssignmentInfo) {\n            yield put(\n                refreshTrailer({\n                    brokerOrderId,\n                    tourId,\n                    truckId: userSelection.truckId,\n                    plateNumber: trailerAssignmentInfo.plateNumber || '',\n                    isIgnoreCertificates: userSelection.isIgnoreCertificates,\n                    isIgnoreEmissionStandard: userSelection.isIgnoreEmissionStandard,\n                    pointToDropTruck: userSelection.pointToDropTruck,\n                    pointToDropTrailer: userSelection.pointToDropTrailer,\n                }),\n            );\n        }\n    }\n\n    if (userSelection.truckId && 'truckId' in changes) {\n        yield put(fetchAssetSchedule(userSelection.truckId, brokerOrderId, tourId));\n    }\n\n    if (userSelection.trailerId && 'trailerId' in changes) {\n        yield put(fetchAssetSchedule(userSelection.trailerId, brokerOrderId, tourId));\n    }\n}\n\nfunction* fetchAssignDetailsSaga(action: FetchAssignDetailsActionT): WrapGeneratorT<void> {\n    const { tourId, brokerOrderId } = action;\n\n    yield put(fetchAssignDetailsBegin());\n\n    const [error, details]: ReturnApiT<typeof brokerTranziitApi.fetchTourAssignDetails> =\n        yield brokerTranziitApi.fetchTourAssignDetails(tourId);\n\n    if (error) {\n        yield put(fetchAssignDetailsError(error));\n        return;\n    }\n\n    yield put(fetchAssignDetailsSuccess(details));\n\n    // refresh if need\n    const userSelection: ReturnType<typeof selectUserSelection> = yield select(selectUserSelection);\n    yield put(changeUserSelection(brokerOrderId, tourId, userSelection));\n}\n\nfunction* fetchAvailableVehiclesSaga(action: FetchAvailableVehiclesActionT): WrapGeneratorT<void> {\n    const { query } = action;\n\n    const prevQuery: ReturnType<typeof selectAvailableVehiclesQuery> = yield select(selectAvailableVehiclesQuery);\n    const isSameQuery = checkIsSameQuery(query, prevQuery);\n    if (isSameQuery) {\n        return;\n    }\n\n    const isAvailablePointToDrop = yield checkIsAvailableDropAssetPoints(\n        query.pointToDropTrailer,\n        query.pointToDropTruck,\n    );\n    if (!isAvailablePointToDrop) {\n        logWarning('not available country for drop asset');\n        return;\n    }\n\n    yield put(fetchAvailableVehiclesBegin(query));\n\n    const radiusM = query.radiusKm * M_IN_KM;\n\n    const carrierIds: Array<CompanyIdT> = [];\n    if (query.carrierId && query.carrierId !== ALL_CARRIERS_ID) {\n        carrierIds.push(query.carrierId);\n    }\n\n    const selectedAssets: Array<AssetIdT> = [];\n    if (query.truckId) {\n        selectedAssets.push(query.truckId);\n    }\n    if (query.trailerId) {\n        selectedAssets.push(query.trailerId);\n    }\n\n    const [error, vehicles]: ReturnApiT<typeof brokerTranziitApi.searchAssetsForAssigment> =\n        yield brokerTranziitApi.searchAssetsForAssigment(query.tourId, radiusM, {\n            ignoreEmissionStandard: query.isIgnoreEmissionStandard || undefined,\n            ignoreCertificates: query.isIgnoreCertificates || undefined,\n            pointToDropTruck: query.pointToDropTruck?.point\n                ? {\n                      longitude: query.pointToDropTruck.point.lng,\n                      latitude: query.pointToDropTruck.point.lat,\n                  }\n                : undefined,\n            pointToDropTrailer: query.pointToDropTrailer?.point\n                ? {\n                      longitude: query.pointToDropTrailer.point.lng,\n                      latitude: query.pointToDropTrailer.point.lat,\n                  }\n                : undefined,\n            carrierIds: uniq(carrierIds),\n            selectedAssets: selectedAssets?.length ? selectedAssets : undefined,\n        });\n\n    if (error) {\n        yield put(fetchAvailableVehiclesError(query, error));\n        return;\n    }\n\n    // randomizer for debug\n    // vehicles.forEach((vehicle) => {\n    //     vehicle.latitude += Math.random() * 3;\n    //     vehicle.longitude += Math.random() * 3;\n    // });\n\n    /*\n    // links for debug\n    const firstTruck = vehicles?.find((vehicle) => vehicle.truck);\n    const firstTrailer = vehicles?.find((vehicle) => vehicle.trailer);\n    if (firstTruck && firstTrailer) {\n        // @ts-ignore\n        firstTruck.trailer = firstTrailer.trailer;\n        // @ts-ignore\n        firstTrailer.trailer.latitude += 0.1;\n        // @ts-ignore\n        firstTrailer.trailer.longitude += 0.1;\n        // @ts-ignore\n        firstTruck.trailer.carrierId = firstTruck.truck.carrierId;\n        console.info('Added syntetic link!!!');\n    }\n     */\n\n    yield put(fetchAvailableVehiclesSuccess(query, vehicles || []));\n}\n\nfunction* fetchAvailableCarriersSaga(action: FetchAvailableCarriersActionT): WrapGeneratorT<void> {\n    const requestStatus: ReturnType<typeof selectAvailableCarriersRequest> = yield select(\n        selectAvailableCarriersRequest,\n    );\n\n    const isNeedRequest = checkNeedRequest(requestStatus, action.options);\n    if (!isNeedRequest) {\n        return;\n    }\n\n    yield put(fetchAvailableCarriersBegin());\n\n    const [error, carriers]: ReturnApiT<typeof brokerTranziitApi.fetchAvailableCarriers> =\n        yield brokerTranziitApi.fetchAvailableCarriers();\n\n    if (error) {\n        yield put(fetchAvailableCarriersError(error));\n        return;\n    }\n\n    yield put(fetchAvailableCarriersSuccess(carriers?.content || []));\n}\n\nfunction* refreshTruckSaga(action: RefreshTruckActionT): WrapGeneratorT<void> {\n    yield put(findTruck(action.query));\n}\n\nfunction* findTruckSaga(action: FindTruckActionT): WrapGeneratorT<void> {\n    const { query } = action;\n\n    const prevQuery: ReturnType<typeof selectTruckSuggestQuery> = yield select(selectTruckSuggestQuery);\n    const isSameQuery = checkIsSameQuery(query, prevQuery);\n    if (isSameQuery) {\n        return;\n    }\n\n    const isAvailablePointToDrop = yield checkIsAvailableDropAssetPoints(\n        query.pointToDropTrailer,\n        query.pointToDropTruck,\n    );\n    if (!isAvailablePointToDrop) {\n        logWarning('not available country for drop asset');\n        return;\n    }\n\n    yield put(findTruckBegin(query));\n\n    const [error, apiTrucksSuggestItems]: ReturnApiT<typeof brokerTranziitApi.findTrucksByPlateNumber> =\n        yield brokerTranziitApi.findTrucksByPlateNumber(\n            query.tourId,\n            {\n                trailerId: query.trailerId || undefined,\n                plateNumber: query.plateNumber || undefined,\n            },\n            {\n                ignoreEmissionStandard: query.isIgnoreEmissionStandard || undefined,\n                ignoreCertificates: query.isIgnoreCertificates || undefined,\n                pointToDropTruck: query.pointToDropTruck?.point\n                    ? {\n                          longitude: query.pointToDropTruck.point.lng,\n                          latitude: query.pointToDropTruck.point.lat,\n                      }\n                    : undefined,\n                pointToDropTrailer: query.pointToDropTrailer?.point\n                    ? {\n                          longitude: query.pointToDropTrailer.point.lng,\n                          latitude: query.pointToDropTrailer.point.lat,\n                      }\n                    : undefined,\n            },\n        );\n\n    if (error) {\n        yield put(findTruckError(query, error));\n        return;\n    }\n\n    const limitedTrucksSuggestItems = (apiTrucksSuggestItems || []).slice(0, LIMIT_SUGGEST_RESULT);\n\n    yield put(findTruckSuccess(query, limitedTrucksSuggestItems));\n}\n\nfunction* refreshTrailerSaga(action: RefreshTrailerActionT): WrapGeneratorT<void> {\n    yield put(findTrailer(action.query));\n}\n\nfunction* findTrailerSaga(action: FindTrailerActionT): WrapGeneratorT<void> {\n    const { query } = action;\n\n    const prevQuery: ReturnType<typeof selectTrailerSuggestQuery> = yield select(selectTrailerSuggestQuery);\n    const isSameQuery = checkIsSameQuery(query, prevQuery);\n    if (isSameQuery) {\n        return;\n    }\n\n    const isAvailablePointToDrop = yield checkIsAvailableDropAssetPoints(\n        query.pointToDropTrailer,\n        query.pointToDropTruck,\n    );\n    if (!isAvailablePointToDrop) {\n        logWarning('not available country for drop asset');\n        return;\n    }\n\n    yield put(findTrailerBegin(query));\n\n    const [error, apiTrailersSuggestItems]: ReturnApiT<typeof brokerTranziitApi.findTrailersByPlateNumber> =\n        yield brokerTranziitApi.findTrailersByPlateNumber(\n            query.tourId,\n            {\n                truckId: query.truckId || undefined,\n                plateNumber: query.plateNumber || undefined,\n            },\n            {\n                ignoreEmissionStandard: query.isIgnoreEmissionStandard || undefined,\n                ignoreCertificates: query.isIgnoreCertificates || undefined,\n                pointToDropTruck: query.pointToDropTruck?.point\n                    ? {\n                          longitude: query.pointToDropTruck.point.lng,\n                          latitude: query.pointToDropTruck.point.lat,\n                      }\n                    : undefined,\n                pointToDropTrailer: query.pointToDropTrailer?.point\n                    ? {\n                          longitude: query.pointToDropTrailer.point.lng,\n                          latitude: query.pointToDropTrailer.point.lat,\n                      }\n                    : undefined,\n            },\n        );\n\n    if (error) {\n        yield put(findTrailerError(query, error));\n        return;\n    }\n\n    const limitedTrailersSuggestItems = (apiTrailersSuggestItems || []).slice(0, LIMIT_SUGGEST_RESULT);\n\n    yield put(findTrailerSuccess(query, limitedTrailersSuggestItems));\n}\n\nfunction* predictSelfCostSaga(action: PredictSelfCostActionT): WrapGeneratorT<void> {\n    const { query } = action;\n\n    const selfCostReserve: ReturnType<typeof selectSelfCostPrediction> = yield select(selectSelfCostPrediction);\n    const isExpiredReserve = selfCostReserve?.expireTime ? selfCostReserve?.expireTime < Date.now() : false;\n\n    const prevQuery: ReturnType<typeof selectSelfCostPredictionQuery> = yield select(selectSelfCostPredictionQuery);\n    const isSameQuery = checkIsSameQuery(query, prevQuery);\n    if (isSameQuery && !isExpiredReserve) {\n        return;\n    }\n\n    yield put(predictSelfCostBegin(query));\n\n    const isAvailablePointToDrop = yield checkIsAvailableDropAssetPoints(\n        query.pointToDropTrailer,\n        query.pointToDropTruck,\n    );\n\n    const isInvalidQuery = (query.truckId === null && query.trailerId === null) || !isAvailablePointToDrop;\n    if (isInvalidQuery) {\n        yield put(predictSelfCostSuccess(query, null));\n        return;\n    }\n\n    const [error, result]: ReturnApiT<typeof brokerTranziitApi.calculateTourCostsForAssets> =\n        yield brokerTranziitApi.calculateTourCostsForAssets(\n            query.tourId,\n            {\n                truckId: query.truckId || undefined,\n                trailerId: query.trailerId || undefined,\n                prohibitedCountries: query.excludedCountries,\n                withPolyLines: true,\n            },\n            {\n                ignoreEmissionStandard: query.isIgnoreEmissionStandard || undefined,\n                ignoreCertificates: query.isIgnoreCertificates || undefined,\n                pointToDropTrailer: query.pointToDropTrailer?.point\n                    ? {\n                          longitude: query.pointToDropTrailer.point.lng,\n                          latitude: query.pointToDropTrailer.point.lat,\n                          country: query.pointToDropTrailer.addressComponents?.countryCode as ApiCountriesT,\n                          zipCode: query.pointToDropTrailer.addressComponents?.zipCode || undefined,\n                          city: query.pointToDropTrailer.addressComponents?.city || undefined,\n                          street1: query.pointToDropTrailer.addressComponents?.street1 || undefined,\n                          street2: query.pointToDropTrailer.addressComponents?.street2 || undefined,\n                      }\n                    : undefined,\n                pointToDropTruck: query.pointToDropTruck?.point\n                    ? {\n                          longitude: query.pointToDropTruck.point.lng,\n                          latitude: query.pointToDropTruck.point.lat,\n                          country: query.pointToDropTruck.addressComponents?.countryCode as ApiCountriesT,\n                          zipCode: query.pointToDropTruck.addressComponents?.zipCode || undefined,\n                          city: query.pointToDropTruck.addressComponents?.city || undefined,\n                          street1: query.pointToDropTruck.addressComponents?.street1 || undefined,\n                          street2: query.pointToDropTruck.addressComponents?.street2 || undefined,\n                      }\n                    : undefined,\n            },\n        );\n\n    if (error) {\n        yield put(predictSelfCostError(query, error));\n        return;\n    }\n\n    const preparedResult: SelfCostPredictionT = {\n        ...result,\n        expireTime: (result?.secondsToExpire || 0) * MS_IN_SEC + Date.now(),\n    };\n\n    yield put(predictSelfCostSuccess(query, preparedResult));\n}\n\nfunction* assignSaga(action: AssignActionT): WrapGeneratorT<void> {\n    const { brokerOrderId, tourId, assignmentContextId } = action;\n\n    const requestStatus: ReturnType<typeof selectAssignmentRequestStatus> = yield select(selectAssignmentRequestStatus);\n    if (requestStatus.loading) {\n        return;\n    }\n\n    yield put(assignBegin());\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.assignOrder> = yield brokerTranziitApi.assignOrder(\n        tourId,\n        assignmentContextId,\n    );\n    if (error) {\n        yield put(assignError(error));\n    } else {\n        yield put(assignSuccess());\n        yield put(\n            addAlert(\n                new BrokerAnyAlert({\n                    type: BrokerAlertTypeEnum.assetsAssignedToTour,\n                    data: {},\n                }),\n            ),\n        );\n    }\n\n    yield put(fetchBrokerOrderDetails({ id: brokerOrderId, options: { isForceUpdate: true } }));\n    brokerOrdersRefreshChannel.emit({});\n    stateMachineRefreshChannel.emit({});\n}\n\nfunction* fetchAssetScheduleSaga(action: FetchAssetScheduleActionT): WrapGeneratorT<void> {\n    const { assetId, tourId, brokerOrderId } = action;\n\n    const brokerOrderDetails: ReReturnT<typeof selectBrokerOrderDetails> = yield select(\n        selectBrokerOrderDetails(brokerOrderId),\n    );\n    if (!brokerOrderDetails) {\n        logWarning('empty brokerOrderDetails');\n        return;\n    }\n\n    const toursById = keyBy(brokerOrderDetails?.tours, 'id');\n    const tourDetails = toursById[tourId] || null;\n    const firstWaypoint = tourDetails?.waypoints?.[0] || null;\n    const targetDate = firstWaypoint?.correctedDateTimeFrom || firstWaypoint?.originalDateTimeFrom || null;\n    if (!targetDate) {\n        logWarning('empty targetDate');\n        return;\n    }\n\n    const scheduleAssetById = yield select(selectScheduleAssetById);\n    const alreadyHasAssetSchedule = !!scheduleAssetById[assetId];\n    if (alreadyHasAssetSchedule) {\n        return;\n    }\n\n    yield put(fetchAssetScheduleBegin(assetId));\n\n    const scheduleResponse: ReturnApiT<typeof brokerTranziitApi.fetchVehicleScheduleAroundDate> =\n        yield brokerTranziitApi.fetchVehicleScheduleAroundDate(assetId, targetDate);\n\n    const [error, data] = scheduleResponse;\n    if (error) {\n        yield put(fetchAssetScheduleError(assetId, error));\n        return;\n    }\n\n    const schedule = data || [];\n\n    const currentScheduleEvent = getCurrentScheduleEvent(assetId, schedule);\n    const currentScheduleEventId = currentScheduleEvent?.id || null;\n\n    yield put(setAssetSchedule(assetId, schedule, currentScheduleEventId));\n\n    for (const scheduleEvent of schedule) {\n        if (scheduleEvent?.eventType !== VehicleScheduleEventTypeEnum.shipment) {\n            // eslint-disable-next-line no-continue\n            continue;\n        }\n\n        const schedulePolylines: Array<GooglePolylineT> = [];\n\n        const rfqRoutePolylineIds = [\n            scheduleEvent?.dropTrailerPolylineId,\n            scheduleEvent?.dropTruckPolylineId,\n            scheduleEvent?.payloadPolylineId,\n            scheduleEvent?.trailerToPickUpPolylineId,\n            scheduleEvent?.truckToTrailerPolylineId,\n        ].filter(isNonNil);\n\n        for (const rfqRoutePolylineId of rfqRoutePolylineIds) {\n            let fetchRouteGeometryPlainResponse: ReturnApiT<typeof commonTranziitApi.fetchRouteGeometryGoogle> | null;\n\n            if (rfqRoutePolylineId) {\n                fetchRouteGeometryPlainResponse = yield commonTranziitApi.fetchRouteGeometryGoogle(rfqRoutePolylineId);\n            } else {\n                yield put(\n                    fetchAssetScheduleError(\n                        assetId,\n                        new Error(`empty polylineId for fetchRouteGeometryPlain ${JSON.stringify(rfqRoutePolylineId)}`),\n                    ),\n                );\n                fetchRouteGeometryPlainResponse = null;\n            }\n            if (fetchRouteGeometryPlainResponse?.[0]) {\n                yield put(fetchAssetScheduleError(assetId, fetchRouteGeometryPlainResponse[0]));\n            }\n\n            const polyline = fetchRouteGeometryPlainResponse?.[1];\n            if (polyline) {\n                schedulePolylines.push(...polyline);\n            }\n        }\n\n        const scheduleEventId = scheduleEvent?.id || '';\n        if (!scheduleEventId) {\n            logWarning('Empty scheduleEventId');\n        }\n\n        yield put(setEventLoadRoute(assetId, scheduleEventId, schedulePolylines));\n    }\n\n    yield put(fetchAssetScheduleSuccess(assetId));\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-function,no-empty-function\nfunction* resetSaga(): WrapGeneratorT<void> {}\n\nfunction* initAssignmentSaga(): WrapGeneratorT<void> {\n    yield put(fetchAvailableCarriers());\n}\n\nfunction* brokerOrderAssigmentSaga(): WrapGeneratorT<void> {\n    yield takeEvery(CHANGE_USER_SELECTION, changeUserSelectionSaga);\n    yield takeEvery(INIT_USER_SELECTION, initUserSelectionSaga);\n    yield takeEvery(FETCH_ASSIGN_DETAILS_REQUEST, fetchAssignDetailsSaga);\n    yield takeEvery(FETCH_AVAILABLE_VEHICLES_REQUEST, fetchAvailableVehiclesSaga);\n    yield takeEvery(FETCH_AVAILABLE_CARRIERS_REQUEST, fetchAvailableCarriersSaga);\n    yield takeEvery(FIND_TRUCK_REQUEST, findTruckSaga);\n    yield takeEvery(REFRESH_TRUCK_REQUEST, refreshTruckSaga);\n    yield takeEvery(FIND_TRAILER_REQUEST, findTrailerSaga);\n    yield takeEvery(REFRESH_TRAILER_REQUEST, refreshTrailerSaga);\n    yield takeEvery(PREDICT_SELF_COST_REQUEST, predictSelfCostSaga);\n    yield takeEvery(ASSIGNMENT_REQUEST, assignSaga);\n    yield takeEvery(FETCH_ASSET_SCHEDULE, fetchAssetScheduleSaga);\n    yield takeEvery(INIT, initAssignmentSaga);\n    yield takeEvery(RESET, resetSaga);\n}\n\nexport default brokerOrderAssigmentSaga;\n","// extracted by mini-css-extract-plugin\nexport default {};","import copy from 'copy-to-clipboard';\nimport { logError } from 'common/utils/logger';\n\nexport const copyToClipboard = (text: string) => {\n    try {\n        copy(text);\n    } catch (error) {\n        logError('Failed to update clipboard', error);\n    }\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"status\":\"ShipperContractLaneDetailsSidebarContent__status___xVR9L\",\"fadeIn\":\"ShipperContractLaneDetailsSidebarContent__fadeIn____YrRP\",\"blinking\":\"ShipperContractLaneDetailsSidebarContent__blinking___t0bMX\"};","import {\n    FETCH_PARTNERS_STATS_REQUEST_BEGIN,\n    FETCH_PARTNERS_STATS_REQUEST_ERROR,\n    FETCH_PARTNERS_STATS_REQUEST_SUCCESS,\n    PartnersStatsActionT,\n    PartnersStatsStateT,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: PartnersStatsStateT = {\n    fetchRequest: requestStatus.initial,\n    stats: null,\n};\n\nexport default (state = initialState, action: PartnersStatsActionT | DestroySessionActionT): PartnersStatsStateT => {\n    switch (action.type) {\n        case FETCH_PARTNERS_STATS_REQUEST_BEGIN: {\n            return {\n                ...state,\n                fetchRequest: requestStatus.loading,\n            };\n        }\n\n        case FETCH_PARTNERS_STATS_REQUEST_SUCCESS: {\n            const { stats } = action;\n\n            return {\n                ...state,\n                stats,\n                fetchRequest: requestStatus.ok,\n            };\n        }\n\n        case FETCH_PARTNERS_STATS_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                stats: null,\n                fetchRequest: requestStatus.setError(error),\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default:\n            return state;\n    }\n};\n","import * as React from 'react';\nimport { Trans } from 'react-i18next';\nimport CityName from '../entities/CityName/CityName';\nimport SubjectLink from '../entities/SubjectLink/SubjectLink';\nimport classNames from 'classnames/bind';\nimport styles from './OrderEditedCard.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    orderNumber: React.ReactNode;\n    originCity: React.ReactNode;\n    destinationCity: React.ReactNode;\n};\n\nconst OrderEditedCard: React.FC<PropsT> = React.memo((props) => {\n    const { orderNumber, originCity, destinationCity } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"common:notifications.order-edited\"\n                components={{\n                    orderNumber: <SubjectLink number={orderNumber} />,\n                    cityFrom: <CityName cityName={originCity} />,\n                    cityTo: <CityName cityName={destinationCity} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default OrderEditedCard;\n","import { PageSortT } from 'common/utils/query';\n\nconst SEPARATOR = ',';\n\nexport const formatPageQuerySort = <T extends string>(pageSort: PageSortT<T> | null): QuerySortT => {\n    if (!pageSort) {\n        return '';\n    }\n\n    return [pageSort.value, pageSort.direction].join(SEPARATOR);\n};\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    addMemberBegin,\n    addMemberError,\n    addMemberSuccess,\n    deleteMemberBegin,\n    deleteMemberError,\n    deleteMemberSuccess,\n    fetchContactDetails,\n    fetchContactDetailsBegin,\n    fetchContactDetailsError,\n    fetchContactDetailsSuccess,\n    fetchContactsBegin,\n    fetchContactsError,\n    fetchContactsSuccess,\n    updateMemberBegin,\n    updateMemberError,\n    updateMemberSuccess,\n} from './actions';\n\nimport {\n    ADD_CONTACT_REQUEST,\n    AddContactActionT,\n    CANCEL_INVITE,\n    CancelUserActionT,\n    CHANGE_USER_ROLE,\n    ChangeUserRoleActionT,\n    DELETE_CONTACT,\n    DELETE_USER,\n    DeleteContactActionT,\n    DeleteUserActionT,\n    FETCH_CONTACT_DETAILS_BY_USER_ID,\n    FETCH_CONTACT_DETAILS_REQUEST,\n    FETCH_CONTACTS_REQUEST,\n    FetchContactDetailsActionT,\n    FetchContactDetailsByUserIdActionT,\n    FetchContactsActionT,\n    INVITE_USER_REQUEST,\n    InviteUserActionT,\n    RESTORE_USER,\n    UPDATE_CONTACT,\n    UpdateContactActionT,\n} from './types';\nimport { selectContactById, selectContactIdByUserId, selectFetchContactsRequest } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { checkIsDefaultCompanyId } from 'common/utils';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAlertTypeEnum, CommonAnyAlert } from 'common/components/toasts/AlertToastsManager/models';\nimport { CompanyContactT } from 'common/store/members/models';\nimport { prepareCompanyContactDetails } from 'common/store/members/utils';\nimport { membersRefreshChannel } from './channels';\nimport { partnerDetailsRefreshChannel } from 'broker-admin/store/partner/details/channels';\nimport { CompanyTypeEnum } from 'common/constants';\n\nfunction* fetchContactsSaga(action: FetchContactsActionT): WrapGeneratorT<void> {\n    const { companyId, options } = action;\n\n    const requestStatus: ReReturnT<typeof selectFetchContactsRequest> = yield select(\n        selectFetchContactsRequest(companyId),\n    );\n    if (!checkNeedRequest(requestStatus, options)) {\n        return;\n    }\n\n    yield put(fetchContactsBegin(companyId));\n\n    let response: ReturnApiT<\n        typeof commonTranziitApi.fetchCompanyContacts | typeof brokerTranziitApi.fetchCompanyContacts\n    >;\n    if (checkIsDefaultCompanyId(companyId)) {\n        response = yield commonTranziitApi.fetchCompanyContacts();\n    } else {\n        response = yield brokerTranziitApi.fetchCompanyContacts(companyId);\n    }\n    const [error, companyContacts] = response;\n\n    if (error) {\n        yield put(fetchContactsError(error, companyId));\n    } else {\n        yield put(fetchContactsSuccess(companyContacts || [], companyId));\n    }\n}\n\nfunction* inviteUserSaga(action: InviteUserActionT): WrapGeneratorT<void> {\n    const { newUser, companyId } = action;\n\n    yield put(addMemberBegin(companyId));\n\n    let response: ReturnApiT<\n        typeof commonTranziitApi.addUserToCurrentCompany | typeof brokerTranziitApi.addUserToPartner\n    >;\n    if (checkIsDefaultCompanyId(companyId)) {\n        response = yield commonTranziitApi.addUserToCurrentCompany(newUser);\n    } else {\n        response = yield brokerTranziitApi.addUserToPartner(newUser, companyId);\n    }\n    const [error] = response;\n\n    if (error) {\n        yield put(addMemberError(error, companyId));\n    } else {\n        yield put(addMemberSuccess(companyId));\n\n        membersRefreshChannel.emit({});\n        partnerDetailsRefreshChannel.emit({});\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.emailInvited,\n                    data: {\n                        email: newUser.email,\n                    },\n                }),\n            ),\n        );\n    }\n}\n\nfunction* addContactSaga(action: AddContactActionT): WrapGeneratorT<void> {\n    const { newContact, companyId } = action;\n\n    yield put(addMemberBegin(companyId));\n\n    let response: ReturnApiT<typeof commonTranziitApi.addContactToCurrentCompany>;\n    if (checkIsDefaultCompanyId(companyId)) {\n        response = yield commonTranziitApi.addContactToCurrentCompany(newContact);\n    } else {\n        response = yield brokerTranziitApi.addContactToPartner();\n    }\n    const [error] = response;\n\n    if (error) {\n        yield put(addMemberError(error, companyId));\n    } else {\n        yield put(addMemberSuccess(companyId));\n\n        membersRefreshChannel.emit({});\n        partnerDetailsRefreshChannel.emit({});\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.contactAdded,\n                    data: {\n                        fullName: `${newContact.name || ''} ${newContact.surname || ''}`,\n                    },\n                }),\n            ),\n        );\n    }\n}\n\nfunction* getContactById(companyId: CompanyIdT, contactId: ContactIdT): WrapGeneratorT<CompanyContactT | null> {\n    const contactById: ReReturnT<typeof selectContactById> = yield select(selectContactById(companyId));\n\n    return contactById[contactId] || null;\n}\n\nfunction* getContactByUserId(companyId: CompanyIdT, userId: UserIdT): WrapGeneratorT<CompanyContactT | null> {\n    const contactIdByUserId: ReReturnT<typeof selectContactIdByUserId> = yield select(selectContactIdByUserId);\n    const contactById: ReReturnT<typeof selectContactById> = yield select(selectContactById(companyId));\n\n    const contactId = contactIdByUserId?.[userId];\n    return contactById?.[contactId] || null;\n}\n\nfunction* deleteContactSaga(action: DeleteContactActionT): WrapGeneratorT<void> {\n    const { companyId, contactId } = action;\n\n    yield put(deleteMemberBegin(companyId));\n\n    let result: ReturnApiT<typeof commonTranziitApi.deleteContact | typeof brokerTranziitApi.deleteContact> | null =\n        null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        result = yield commonTranziitApi.deleteContact(contactId);\n    } else {\n        result = yield brokerTranziitApi.deleteContact(contactId);\n    }\n    if (!result) {\n        return;\n    }\n\n    const [error] = result;\n\n    if (error) {\n        yield put(deleteMemberError(error, companyId));\n    } else {\n        yield put(deleteMemberSuccess(companyId));\n\n        membersRefreshChannel.emit({});\n        partnerDetailsRefreshChannel.emit({});\n\n        const contact = yield* getContactById(companyId, contactId);\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.contactDeleted,\n                    data: {\n                        fullName: contact?.fullName || '',\n                    },\n                }),\n            ),\n        );\n    }\n}\n\nfunction* deleteUserSaga(action: DeleteUserActionT): WrapGeneratorT<void> {\n    const { companyId, userId } = action;\n\n    yield put(deleteMemberBegin(companyId));\n\n    let result: ReturnApiT<typeof commonTranziitApi.deleteUser | typeof brokerTranziitApi.deleteUser> | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        result = yield commonTranziitApi.deleteUser(userId);\n    } else {\n        result = yield brokerTranziitApi.deleteUser(userId);\n    }\n    if (!result) {\n        return;\n    }\n\n    const [error] = result;\n\n    if (error) {\n        yield put(deleteMemberError(error, companyId));\n    } else {\n        yield put(deleteMemberSuccess(companyId));\n\n        membersRefreshChannel.emit({});\n        partnerDetailsRefreshChannel.emit({});\n\n        const contact = yield* getContactByUserId(companyId, userId);\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.userDeactivated,\n                    data: {\n                        fullName: contact?.fullName || '',\n                    },\n                }),\n            ),\n        );\n    }\n}\n\nfunction* cancelUserInviteSaga(action: CancelUserActionT): WrapGeneratorT<void> {\n    const { companyId, userId } = action;\n\n    yield put(updateMemberBegin(companyId));\n\n    let result: ReturnApiT<\n        typeof commonTranziitApi.cancelUserInvite | typeof brokerTranziitApi.cancelUserInvite\n    > | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        result = yield commonTranziitApi.cancelUserInvite(userId);\n    } else {\n        result = yield brokerTranziitApi.cancelUserInvite(userId);\n    }\n    if (!result) {\n        return;\n    }\n    const [error] = result;\n\n    if (error) {\n        yield put(updateMemberError(error, companyId));\n    } else {\n        yield put(updateMemberSuccess(companyId));\n\n        membersRefreshChannel.emit({});\n        partnerDetailsRefreshChannel.emit({});\n\n        const contact = yield* getContactByUserId(companyId, userId);\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.inviteCanceled,\n                    data: {\n                        email: contact?.email || '',\n                    },\n                }),\n            ),\n        );\n    }\n}\nfunction* restoreUserSaga(action: CancelUserActionT): WrapGeneratorT<void> {\n    const { companyId, userId } = action;\n\n    yield put(updateMemberBegin(companyId));\n\n    let result: ReturnApiT<typeof commonTranziitApi.restoreUser | typeof brokerTranziitApi.restoreUser> | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        result = yield commonTranziitApi.restoreUser(userId);\n    } else {\n        result = yield brokerTranziitApi.restoreUser(userId);\n    }\n    if (!result) {\n        return;\n    }\n    const [error] = result;\n\n    if (error) {\n        yield put(updateMemberError(error, companyId));\n    } else {\n        yield put(updateMemberSuccess(companyId));\n\n        membersRefreshChannel.emit({});\n        partnerDetailsRefreshChannel.emit({});\n\n        const contact = yield* getContactByUserId(companyId, userId);\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.userRestored,\n                    data: {\n                        fullName: contact?.fullName || '',\n                    },\n                }),\n            ),\n        );\n    }\n}\n\nfunction* changeUserRoleSaga(action: ChangeUserRoleActionT): WrapGeneratorT<void> {\n    const { companyId, userId, roles } = action;\n\n    yield put(updateMemberBegin(companyId));\n\n    let result: ReturnApiT<typeof commonTranziitApi.assignUserRole | typeof brokerTranziitApi.assignUserRole> | null =\n        null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        result = yield commonTranziitApi.assignUserRole(userId, roles);\n    } else {\n        result = yield brokerTranziitApi.assignUserRole(userId, roles);\n    }\n    if (!result) {\n        return;\n    }\n    const [error] = result;\n\n    if (error) {\n        yield put(updateMemberError(error, companyId));\n    } else {\n        yield put(updateMemberSuccess(companyId));\n\n        membersRefreshChannel.emit({});\n        partnerDetailsRefreshChannel.emit({});\n\n        const contact = yield* getContactByUserId(companyId, userId);\n\n        if (contact?.id) {\n            yield put(fetchContactDetails(contact.id));\n        }\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.userRolesChanged,\n                    data: {\n                        fullName: contact?.fullName || '',\n                        roles,\n                    },\n                }),\n            ),\n        );\n    }\n}\n\nfunction* updateContactSaga(action: UpdateContactActionT): WrapGeneratorT<void> {\n    const { companyId, contactId, contactChanges } = action;\n\n    yield put(updateMemberBegin(companyId));\n\n    let result: ReturnApiT<typeof commonTranziitApi.updateContact | typeof brokerTranziitApi.updateContact> | null =\n        null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        result = yield commonTranziitApi.updateContact(contactId, contactChanges);\n    } else {\n        result = yield brokerTranziitApi.updateContact(contactId, contactChanges);\n    }\n    if (!result) {\n        return;\n    }\n    const [error] = result;\n\n    if (error) {\n        yield put(updateMemberError(error, companyId));\n    } else {\n        yield put(updateMemberSuccess(companyId));\n\n        membersRefreshChannel.emit({});\n        partnerDetailsRefreshChannel.emit({});\n\n        yield put(fetchContactDetails(contactId));\n\n        const contact = yield* getContactById(companyId, contactId);\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.contactEdited,\n                    data: {\n                        fullName: contact?.fullName || '',\n                    },\n                }),\n            ),\n        );\n    }\n}\n\nfunction getFetchContactDetailsSaga(companyType: CompanyTypeEnum) {\n    return function* fetchContactDetailsSaga(action: FetchContactDetailsActionT): WrapGeneratorT<void> {\n        const { contactId } = action;\n\n        yield put(fetchContactDetailsBegin());\n\n        let response: ReturnApiT<\n            typeof commonTranziitApi.fetchContactDetails | typeof brokerTranziitApi.fetchContactDetails\n        >;\n        if (companyType !== CompanyTypeEnum.broker) {\n            response = yield commonTranziitApi.fetchContactDetails(contactId);\n        } else {\n            response = yield brokerTranziitApi.fetchContactDetails(contactId);\n        }\n        const [error, details] = response;\n\n        if (error) {\n            yield put(fetchContactDetailsError(error));\n        } else {\n            const preparedDetails = prepareCompanyContactDetails(details);\n            yield put(fetchContactDetailsSuccess(contactId, preparedDetails));\n        }\n    };\n}\n\nfunction getFetchContactDetailsByUserIdSaga(companyType: CompanyTypeEnum) {\n    return function* fetchContactDetailsByUserIdSaga(action: FetchContactDetailsByUserIdActionT): WrapGeneratorT<void> {\n        const { userId } = action;\n\n        yield put(fetchContactDetailsBegin());\n\n        let response: ReturnApiT<\n            typeof commonTranziitApi.fetchContactDetailsByUserId | typeof brokerTranziitApi.fetchContactDetailsByUserId\n        >;\n        if (companyType !== CompanyTypeEnum.broker) {\n            response = yield commonTranziitApi.fetchContactDetailsByUserId(userId);\n        } else {\n            response = yield brokerTranziitApi.fetchContactDetailsByUserId(userId);\n        }\n        const [error, details] = response;\n\n        if (error) {\n            yield put(fetchContactDetailsError(error));\n            return;\n        }\n\n        if (details?.id) {\n            const preparedDetails = prepareCompanyContactDetails(details);\n            yield put(fetchContactDetailsSuccess(details.id, preparedDetails));\n        }\n    };\n}\n\nfunction* companyMembersSaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_CONTACTS_REQUEST, fetchContactsSaga);\n    yield takeEvery(INVITE_USER_REQUEST, inviteUserSaga);\n    yield takeEvery(ADD_CONTACT_REQUEST, addContactSaga);\n    yield takeEvery(DELETE_CONTACT, deleteContactSaga);\n    yield takeEvery(DELETE_USER, deleteUserSaga);\n    yield takeEvery(CANCEL_INVITE, cancelUserInviteSaga);\n    yield takeEvery(RESTORE_USER, restoreUserSaga);\n    yield takeEvery(CHANGE_USER_ROLE, changeUserRoleSaga);\n    yield takeEvery(UPDATE_CONTACT, updateContactSaga);\n    yield takeEvery(FETCH_CONTACT_DETAILS_REQUEST, getFetchContactDetailsSaga(companyType));\n    yield takeEvery(FETCH_CONTACT_DETAILS_BY_USER_ID, getFetchContactDetailsByUserIdSaga(companyType));\n}\n\nexport default companyMembersSaga;\n","import * as React from 'react';\nimport { useMemo } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './TransportOrderRouteMap.scss';\n\nimport GoogleMapReact from 'google-map-react';\nimport { BOOTSTRAP_URL_KEYS, DEFAULT_CENTER, DEFAULT_ZOOM, MAP_OPTIONS } from 'common/store/constants';\nimport last from 'lodash/last';\nimport { AssetTypeEnum } from 'common/constants';\nimport MapRoute, { MapRouteThemeEnum } from 'common/components/maps/MapRoute/MapRoute';\nimport MapLoader from 'common/components/maps/MapLoader/MapLoader';\nimport { TransportOrderDetailsT } from 'common/store/transport-order-details/models';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectRoutingGeometryState } from 'common/store/routing-geometry/selectors';\nimport { fetchTracksByTransportOrders } from 'common/store/asset-track/actions';\nimport {\n    getAssetsTrackHashByTransportOrderId,\n    getAssetTrackHashByTransportOrderId,\n} from 'common/store/asset-track/utils';\nimport { selectAssetTrackPoints, selectAssetTrackRequest } from 'common/store/asset-track/selectors';\nimport { isNonNil } from 'common/utils';\nimport { useRouteGeometry } from 'common/utils/hooks/useRouteGeometry';\nimport { StopTypeEnum } from 'common/utils/api/models';\nimport AssetDropOffLocationPin from 'common/components/maps/pins/AssetDropOffLocationPin/AssetDropOffLocationPin';\nimport AssetPickUpLocationPin from 'common/components/maps/pins/AssetPickUpLocationPin/AssetPickUpLocationPin';\nimport Supercluster from 'supercluster';\nimport { PointGeoJsonPropertiesT } from './models';\nimport isNumber from 'lodash/isNumber';\nimport WaypointNumberPin from 'common/components/maps/pins/WaypointNumberPin/WaypointNumberPin';\nimport { MapPinThemeEnum } from 'common/components/maps/MapPin/MapPin';\nimport PointStackClusterPin from './PointStackClusterPin/PointStackClusterPin';\nimport LastAssetTrackPointPin from 'common/components/maps/pins/LastAssetTrackPointPin/LastAssetTrackPointPin';\nimport MapBound, { BoundPointT } from 'common/components/maps/MapBound/MapBound';\nimport FerryLocationPin from 'common/components/maps/pins/FerryLocationPin/FerryLocationPin';\nimport useGoogleMapsApiLoader from '../../../utils/hooks/maps/useGoogleMapsApiLoader';\nimport { useGoogleMapContext } from 'common/utils/hooks/maps/useGoogleMapContext';\nimport { useGoogleMapConfig } from 'common/utils/hooks/maps/useGoogleMapConfig';\nimport { SwitchableView } from 'common/components/SwitchableView/SwitchableView';\nimport { MapControlsLayout } from 'common/components/maps/MapControlsLayout/MapControlsLayout';\n\nconst FEATURES_LIMIT = 99999;\nconst DEFAULT_OFFSET = 0;\n\nconst SUPERCLUSTER_SETTINGS: Supercluster.Options<PointGeoJsonPropertiesT, any> = {\n    radius: 100,\n    maxZoom: 22,\n};\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    isLoading?: boolean;\n    transportOrderId: TransportOrderIdT;\n    transportOrderDetails: TransportOrderDetailsT | null | undefined;\n};\n\nconst TransportOrderRouteMap: React.FC<PropsT> = React.memo((props) => {\n    const { transportOrderId, transportOrderDetails } = props;\n\n    const dispatch = useDispatch();\n\n    const polylineIds = useMemo(() => {\n        return [\n            transportOrderDetails?.dropTrailerPolylineId,\n            transportOrderDetails?.dropTruckPolylineId,\n            transportOrderDetails?.polylineId,\n            transportOrderDetails?.trailerToPickUpPolylineId,\n            transportOrderDetails?.truckToTrailerPolylineId,\n        ].filter(isNonNil);\n    }, [\n        transportOrderDetails?.dropTrailerPolylineId,\n        transportOrderDetails?.dropTruckPolylineId,\n        transportOrderDetails?.polylineId,\n        transportOrderDetails?.trailerToPickUpPolylineId,\n        transportOrderDetails?.truckToTrailerPolylineId,\n    ]);\n\n    useRouteGeometry(polylineIds);\n\n    const dropTrailerGeometryState = useSelector(\n        selectRoutingGeometryState(transportOrderDetails?.dropTrailerPolylineId),\n    );\n    const dropTruckGeometryState = useSelector(selectRoutingGeometryState(transportOrderDetails?.dropTruckPolylineId));\n    const payloadGeometryState = useSelector(selectRoutingGeometryState(transportOrderDetails?.polylineId));\n    const trailerToPickUpGeometryState = useSelector(\n        selectRoutingGeometryState(transportOrderDetails?.trailerToPickUpPolylineId),\n    );\n    const truckToTrailerGeometryState = useSelector(\n        selectRoutingGeometryState(transportOrderDetails?.truckToTrailerPolylineId),\n    );\n\n    const isLoadingGeometry =\n        dropTrailerGeometryState?.requestStatus?.loading ||\n        dropTruckGeometryState?.requestStatus?.loading ||\n        payloadGeometryState?.requestStatus?.loading ||\n        trailerToPickUpGeometryState?.requestStatus?.loading ||\n        truckToTrailerGeometryState?.requestStatus?.loading;\n\n    React.useEffect(() => {\n        if (transportOrderId) {\n            dispatch(fetchTracksByTransportOrders([transportOrderId]));\n        }\n    }, [transportOrderId, dispatch]);\n\n    const firstTourTrailerId = transportOrderDetails?.trailer?.id;\n    const firstTourTruckId = transportOrderDetails?.truck?.id;\n\n    const assetsTracksHash = getAssetsTrackHashByTransportOrderId(transportOrderId);\n    const assetsTracksRequest = useSelector(selectAssetTrackRequest(assetsTracksHash));\n\n    const trailerHash = getAssetTrackHashByTransportOrderId(transportOrderId, firstTourTrailerId);\n    const trailerTrack = useSelector(selectAssetTrackPoints(trailerHash));\n    const trailerTrackRequest = useSelector(selectAssetTrackRequest(trailerHash));\n\n    const truckHash = getAssetTrackHashByTransportOrderId(transportOrderId, firstTourTruckId);\n    const truckTrack = useSelector(selectAssetTrackPoints(truckHash));\n    const truckTrackRequest = useSelector(selectAssetTrackRequest(truckHash));\n\n    const { googleMaps } = useGoogleMapContext();\n\n    const { onGoogleApiLoaded } = useGoogleMapsApiLoader({});\n\n    const { config, onZoomAnimationEnd, onDragEnd } = useGoogleMapConfig();\n\n    const boundMapPoints = React.useMemo((): Array<BoundPointT> => {\n        return (\n            transportOrderDetails?.waypoints?.map((waypoint): BoundPointT => {\n                return [waypoint?.address?.latitude, waypoint?.address?.longitude];\n            }) || []\n        );\n    }, [transportOrderDetails]);\n\n    const lastTruckTrackPoint = last(truckTrack);\n    const lastTrailerTrackPoint = last(trailerTrack);\n\n    const allGeoJSONs = React.useMemo(() => {\n        const geoJSONs: Array<Supercluster.PointFeature<PointGeoJsonPropertiesT>> = [];\n\n        transportOrderDetails?.waypoints?.forEach((waypoint) => {\n            const longitude = waypoint?.address?.longitude;\n            const latitude = waypoint?.address?.latitude;\n            if (isNumber(latitude) && isNumber(longitude)) {\n                const geoJson: Supercluster.PointFeature<PointGeoJsonPropertiesT> = {\n                    type: 'Feature',\n                    geometry: {\n                        type: 'Point',\n                        coordinates: [longitude, latitude],\n                    },\n                    properties: {\n                        type: 'waypoint-point',\n                        waypoint,\n                    },\n                };\n\n                geoJSONs.push(geoJson);\n            }\n        });\n\n        if (lastTrailerTrackPoint) {\n            geoJSONs.push({\n                type: 'Feature',\n                geometry: {\n                    type: 'Point',\n                    coordinates: [lastTrailerTrackPoint.lng, lastTrailerTrackPoint.lat],\n                },\n                properties: {\n                    type: 'trailer-last-point',\n                    point: lastTrailerTrackPoint,\n                },\n            });\n        }\n\n        if (lastTruckTrackPoint) {\n            geoJSONs.push({\n                type: 'Feature',\n                geometry: {\n                    type: 'Point',\n                    coordinates: [lastTruckTrackPoint.lng, lastTruckTrackPoint.lat],\n                },\n                properties: {\n                    type: 'truck-last-point',\n                    point: lastTruckTrackPoint,\n                },\n            });\n        }\n\n        return geoJSONs;\n    }, [transportOrderDetails?.waypoints, lastTruckTrackPoint, lastTrailerTrackPoint]);\n\n    const allGeoJSONsClusterator = React.useMemo(() => {\n        const clusterator = new Supercluster<PointGeoJsonPropertiesT>(SUPERCLUSTER_SETTINGS);\n        clusterator.load(allGeoJSONs || []);\n        return clusterator;\n    }, [allGeoJSONs]);\n\n    const allGeoJSONsClusters = React.useMemo(() => {\n        if (config) {\n            const clusters = allGeoJSONsClusterator.getClusters(config.bounds, config.zoom);\n            return clusters;\n        }\n\n        return [];\n    }, [config, allGeoJSONsClusterator]);\n\n    const renderSinglePointFeature = (properties: PointGeoJsonPropertiesT) => {\n        switch (properties.type) {\n            case 'trailer-last-point': {\n                return (\n                    <LastAssetTrackPointPin\n                        key=\"trailer-last-point\"\n                        iconType={AssetTypeEnum.trailer}\n                        lat={properties.point.lat}\n                        lng={properties.point.lng}\n                        timestamp={properties.point.timestamp}\n                    />\n                );\n            }\n            case 'truck-last-point': {\n                return (\n                    <LastAssetTrackPointPin\n                        key=\"truck-last-point\"\n                        iconType={AssetTypeEnum.truck}\n                        lat={properties.point.lat}\n                        lng={properties.point.lng}\n                        timestamp={properties.point.timestamp}\n                    />\n                );\n            }\n            case 'waypoint-point': {\n                const { waypoint } = properties;\n\n                const isVisitedWaypoint = !!waypoint.driverLeftTimeStamp;\n\n                const commonProps = {\n                    theme: isVisitedWaypoint ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal,\n                    key: `waypoint-${waypoint.id}-${waypoint.index}-${waypoint.id}`,\n                    className: cx('location'),\n                    lng: waypoint?.address?.longitude,\n                    lat: waypoint?.address?.latitude,\n                } as const;\n\n                switch (waypoint.type) {\n                    case StopTypeEnum.pickupTrailer: {\n                        return <AssetPickUpLocationPin assetType={AssetTypeEnum.trailer} {...commonProps} />;\n                    }\n                    case StopTypeEnum.pickupTruck: {\n                        return <AssetPickUpLocationPin assetType={AssetTypeEnum.truck} {...commonProps} />;\n                    }\n                    case StopTypeEnum.pickupRoadTrain: {\n                        return <AssetPickUpLocationPin assetType={null} {...commonProps} />;\n                    }\n                    case StopTypeEnum.dropTrailer: {\n                        return <AssetDropOffLocationPin assetType={AssetTypeEnum.trailer} {...commonProps} />;\n                    }\n                    case StopTypeEnum.dropTruck: {\n                        return <AssetDropOffLocationPin assetType={AssetTypeEnum.truck} {...commonProps} />;\n                    }\n                    case StopTypeEnum.dropRoadTrain: {\n                        return <AssetDropOffLocationPin assetType={null} {...commonProps} />;\n                    }\n                    case StopTypeEnum.ferryOnboard:\n                    case StopTypeEnum.ferryDisembark: {\n                        return <FerryLocationPin {...commonProps} />;\n                    }\n                    case StopTypeEnum.driveThrough: {\n                        return <WaypointNumberPin {...commonProps}>{(waypoint.index || 0) + 1}</WaypointNumberPin>;\n                    }\n                    case StopTypeEnum.dropAndHook:\n                    case StopTypeEnum.pickupDeliveryShipment:\n                    default: {\n                        return <WaypointNumberPin {...commonProps}>{(waypoint.index || 0) + 1}</WaypointNumberPin>;\n                    }\n                }\n            }\n            default: {\n                return null;\n            }\n        }\n    };\n\n    const handleClusterClick = React.useCallback(\n        (clusterId: number) => {\n            const { map, maps } = googleMaps;\n\n            if (!maps || !map) {\n                return;\n            }\n\n            const clusterFeatures = allGeoJSONsClusterator.getLeaves(clusterId, FEATURES_LIMIT, DEFAULT_OFFSET);\n\n            const bounds = new maps.LatLngBounds();\n\n            clusterFeatures.forEach((feature: Supercluster.PointFeature<{}>) => {\n                const point = new maps.LatLng(feature.geometry.coordinates[1], feature.geometry.coordinates[0]);\n\n                bounds.extend(point);\n            });\n\n            map.fitBounds(bounds);\n        },\n        [googleMaps, allGeoJSONsClusterator],\n    );\n\n    const isLoading =\n        props.isLoading ||\n        isLoadingGeometry ||\n        assetsTracksRequest?.loading ||\n        truckTrackRequest?.loading ||\n        trailerTrackRequest?.loading;\n\n    return (\n        <>\n            <GoogleMapReact\n                defaultCenter={DEFAULT_CENTER}\n                defaultZoom={DEFAULT_ZOOM}\n                bootstrapURLKeys={BOOTSTRAP_URL_KEYS}\n                options={MAP_OPTIONS}\n                onGoogleApiLoaded={onGoogleApiLoaded}\n                onDragEnd={onDragEnd}\n                onZoomAnimationEnd={onZoomAnimationEnd}\n                yesIWantToUseGoogleMapApiInternals\n            >\n                {allGeoJSONsClusters.map((cluster) => {\n                    if ('cluster' in cluster.properties) {\n                        const pointsFeatures = allGeoJSONsClusterator.getLeaves(\n                            cluster.properties.cluster_id,\n                            FEATURES_LIMIT,\n                            DEFAULT_OFFSET,\n                        );\n\n                        const clusterProperties = pointsFeatures.map((pointFeatures) => {\n                            return pointFeatures.properties;\n                        });\n\n                        return (\n                            <PointStackClusterPin\n                                key={`cluster-${cluster.properties.cluster_id}`}\n                                clusterId={cluster.properties.cluster_id}\n                                lng={cluster.geometry.coordinates[0]}\n                                lat={cluster.geometry.coordinates[1]}\n                                clusterProperties={clusterProperties}\n                                onClusterClick={handleClusterClick}\n                                withoutArrow={Boolean(config && config.zoom < 20)}\n                            />\n                        );\n                    }\n\n                    return renderSinglePointFeature(cluster.properties as PointGeoJsonPropertiesT);\n                })}\n            </GoogleMapReact>\n            {dropTrailerGeometryState && (\n                <MapRoute\n                    key=\"dropTrailerGeometryState\"\n                    map={googleMaps.map}\n                    maps={googleMaps.maps}\n                    geometryLibrary={googleMaps?.libraries?.geometry}\n                    polylines={dropTrailerGeometryState.data}\n                    theme={MapRouteThemeEnum.trackFuture}\n                    zIndex={1}\n                />\n            )}\n            {dropTruckGeometryState && (\n                <MapRoute\n                    key=\"dropTruckGeometryState\"\n                    map={googleMaps?.map}\n                    maps={googleMaps?.maps}\n                    geometryLibrary={googleMaps?.libraries?.geometry}\n                    polylines={dropTruckGeometryState.data}\n                    theme={MapRouteThemeEnum.trackFuture}\n                    zIndex={1}\n                />\n            )}\n            {payloadGeometryState && (\n                <MapRoute\n                    key=\"payloadGeometryState\"\n                    map={googleMaps?.map}\n                    maps={googleMaps?.maps}\n                    geometryLibrary={googleMaps?.libraries?.geometry}\n                    polylines={payloadGeometryState.data}\n                    theme={MapRouteThemeEnum.trackFuture}\n                    zIndex={1}\n                />\n            )}\n            {trailerToPickUpGeometryState && (\n                <MapRoute\n                    key=\"trailerToPickUpGeometryState\"\n                    map={googleMaps?.map}\n                    maps={googleMaps?.maps}\n                    geometryLibrary={googleMaps?.libraries?.geometry}\n                    polylines={trailerToPickUpGeometryState.data}\n                    theme={MapRouteThemeEnum.trackFuture}\n                    zIndex={1}\n                />\n            )}\n            {truckToTrailerGeometryState && (\n                <MapRoute\n                    key=\"truckToTrailerGeometryState\"\n                    map={googleMaps?.map}\n                    maps={googleMaps?.maps}\n                    geometryLibrary={googleMaps?.libraries?.geometry}\n                    polylines={truckToTrailerGeometryState.data}\n                    theme={MapRouteThemeEnum.trackFuture}\n                    zIndex={1}\n                />\n            )}\n            <MapRoute\n                map={googleMaps?.map}\n                maps={googleMaps?.maps}\n                route={trailerTrack}\n                theme={MapRouteThemeEnum.trackPast}\n                zIndex={2}\n            />\n            <MapRoute\n                map={googleMaps?.map}\n                maps={googleMaps?.maps}\n                route={truckTrack}\n                theme={MapRouteThemeEnum.trackPast}\n                zIndex={2}\n            />\n            <MapBound map={googleMaps?.map} maps={googleMaps?.maps} allMapPoints={boundMapPoints} />\n            <MapControlsLayout.Container gap={2}>\n                <MapControlsLayout.Row gap={2}>\n                    <SwitchableView.MapTrigger />\n                </MapControlsLayout.Row>\n                <MapControlsLayout.Row isCenter>{isLoading && <MapLoader isUnWrap />}</MapControlsLayout.Row>\n            </MapControlsLayout.Container>\n        </>\n    );\n});\n\nexport default TransportOrderRouteMap;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './PhoneNumberIcon.scss';\nimport { parsePhoneNumber } from 'react-phone-number-input';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    phoneNumber?: string;\n};\n\nconst PhoneNumberIcon: React.FC<PropsT> = (props) => {\n    const { phoneNumber } = props;\n\n    const [countryCode, setCountryCode] = React.useState<string | null>(null);\n\n    React.useEffect(() => {\n        const parsedPhoneNumber = parsePhoneNumber(phoneNumber || '');\n\n        if (countryCode !== parsedPhoneNumber?.country) {\n            setCountryCode(parsedPhoneNumber?.country || null);\n        }\n\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [phoneNumber]);\n\n    if (!countryCode) {\n        return <div className={cx('empty-flag')} />;\n    }\n\n    return <FlagIcon countryCode={countryCode} />;\n};\n\nexport default PhoneNumberIcon;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './NotificationCardHead.scss';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport ArrowForwardIcon from 'common/icons/ArrowForwardIcon';\nimport FilledCircleIcon from 'common/icons/FilledCircleIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport AsyncDictCountryNameLabel from 'common/components/AsyncDictCountryNameLabel/AsyncDictCountryNameLabel';\nimport { CountryCodeT } from 'common/utils/api/models';\n\nconst cx = classNames.bind(styles);\n\nexport type NotificationCardHeadPropsT = {\n    className?: string;\n    subjectTypeLabel?: React.ReactNode;\n    subjectNumber?: React.ReactNode;\n    profileName?: React.ReactNode;\n    profileCountryCode?: CountryCodeT | null;\n    originCity?: React.ReactNode;\n    originCountryCode?: string | null;\n    destinationCity?: React.ReactNode;\n    destinationCountryCode?: string | null;\n};\n\nconst NotificationCardHead: React.FC<NotificationCardHeadPropsT> = React.memo((props) => {\n    const {\n        className,\n        subjectTypeLabel,\n        subjectNumber,\n        originCity,\n        originCountryCode,\n        destinationCity,\n        destinationCountryCode,\n        profileName,\n        profileCountryCode,\n    } = props;\n\n    return (\n        <div className={cs(cx('head'), className)}>\n            {profileName ? (\n                <div className={cx('profile')}>\n                    <span>{profileName}</span>\n                    {profileCountryCode && (\n                        <>\n                            <span>・</span>\n                            <AsyncDictCountryNameLabel countryCode={profileCountryCode} />\n                            <FlagIcon className={cx('flag')} countryCode={profileCountryCode} />\n                        </>\n                    )}\n                </div>\n            ) : (\n                <div className={cx('subject')}>\n                    {subjectTypeLabel} <span className={cx('subject__number')}>#{subjectNumber}</span>\n                </div>\n            )}\n            {originCity && destinationCity && (\n                <>\n                    <FilledCircleIcon size={10} fillColor={StyleGuideColorsEnum.light} />\n                    <span className={cx('city')}>{originCity}</span>\n                    <FlagIcon className={cx('flag')} countryCode={originCountryCode} />\n                    <ArrowForwardIcon />\n                    <span className={cx('city')}>{destinationCity}</span>\n                    <FlagIcon className={cx('flag')} countryCode={destinationCountryCode} />\n                </>\n            )}\n        </div>\n    );\n});\n\nexport default NotificationCardHead;\n","import { put, takeEvery } from 'redux-saga/effects';\nimport {\n    partnerSuggestRequest,\n    partnerSuggestRequestBegin,\n    partnerSuggestRequestError,\n    partnerSuggestRequestSuccess,\n} from './slice';\nimport { PartnerSuggestRequestActionT } from './types';\nimport { CompanyTypeEnum } from 'common/constants';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getPartnerSuggestSaga(companyType: CompanyTypeEnum) {\n    return function* (action: PartnerSuggestRequestActionT): WrapGeneratorT<void> {\n        const { partnerId } = action.payload;\n\n        yield put(\n            partnerSuggestRequestBegin({\n                partnerId,\n            }),\n        );\n\n        const [error, data]: ReturnApiT<typeof brokerTranziitApi.fetchPartnerDetails> =\n            yield brokerTranziitApi.fetchPartnerDetails(partnerId);\n\n        if (error) {\n            yield put(partnerSuggestRequestError({ error, partnerId }));\n            return;\n        }\n\n        yield put(\n            partnerSuggestRequestSuccess({\n                partnerId,\n                data,\n            }),\n        );\n    };\n}\n\nfunction* partnerSuggestSaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery(partnerSuggestRequest.type, getPartnerSuggestSaga(companyType));\n}\n\nexport { partnerSuggestSaga };\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './CreateUpdateCell.scss';\nimport { clearDateTimezone, formatDate } from 'common/utils/time';\nimport { RuleT } from 'broker-admin/store/price-settings/rules/models';\n\ntype PropsT = {\n    rule: RuleT;\n};\n\nconst DATE_FORMAT = 'DD MMM, YYYY';\n\nconst cx = classNames.bind(styles);\n\nconst CreateUpdateCell: React.FC<PropsT> = React.memo((props) => {\n    const { rule } = props;\n\n    return (\n        <div>\n            <div className={cx('date')}>{formatDate(DATE_FORMAT, clearDateTimezone(rule?.createdDate))}</div>\n            <div className={cx('date')}>{formatDate(DATE_FORMAT, clearDateTimezone(rule?.updatedDate))}</div>\n        </div>\n    );\n});\n\nexport default CreateUpdateCell;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n};\n\nconst EcoIcon: React.FC<PropsT> = (props) => {\n    const { size, ...rest } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\" {...rest}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill=\"#8ABA2E\"\n                    d=\"M5.537 7.037a5.251 5.251 0 00-.014 7.41c1.102-2.55 3.067-4.68 5.52-5.947A11.96 11.96 0 007 15.49c1.95.922 4.35.585 5.963-1.027C15.572 11.853 16 4 16 4s-7.853.428-10.463 3.037z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nEcoIcon.displayName = 'EcoIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n};\n\nexport { storyProps };\nexport default EcoIcon;\n","export type RequestStatusT = {\n    initial: boolean;\n    loading: boolean;\n    error: Error | null;\n    ok: boolean;\n    time: number;\n};\n\ntype RequestStatusStateT = {\n    initial: RequestStatusT;\n    loading: RequestStatusT;\n    ok: RequestStatusT;\n    setError: (error: Error) => RequestStatusT;\n};\n\nconst getDefaultState = (): RequestStatusT => ({\n    initial: false,\n    loading: false,\n    error: null,\n    ok: false,\n    time: process.env.TEST ? 11111 : Date.now(),\n});\n\nconst requestStatus: RequestStatusStateT = {\n    get initial() {\n        return {\n            ...getDefaultState(),\n            time: 0,\n            initial: true,\n        };\n    },\n    get loading() {\n        return {\n            ...getDefaultState(),\n            loading: true,\n        };\n    },\n    get ok() {\n        return {\n            ...getDefaultState(),\n            ok: true,\n        };\n    },\n    setError: (error: Error) => ({\n        ...getDefaultState(),\n        error,\n    }),\n};\n\nexport default requestStatus;\n","import { StyleGuideColorsEnum } from 'common/constants';\nimport * as React from 'react';\n\ntype PropsT = {\n    className?: string;\n    fillColor: StyleGuideColorsEnum;\n};\n\nconst InfoIcon: React.FC<PropsT> = (props) => {\n    const { className, fillColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" className={className}>\n            <path\n                fill={fillColor}\n                fillRule=\"evenodd\"\n                d=\"M8.38 14.006c-.213 0-.385-.201-.385-.448s.172-.448.385-.448L9 13v-3l-.62-.116c-.213 0-.385-.201-.385-.448s.172-.448.385-.448h2.514c.077 0 .102-.032.113-.058-.003.015-.007.029-.007.07v4l.619.11c.213 0 .386.201.386.448s-.173.448-.386.448H8.38zM9 6h.98c.007 0 .013-.004.02-.004.007 0 .013.004.02.004H11v.94c.001.022.012.04.012.061 0 .022-.011.04-.012.061V8h-.967c-.012.001-.022.007-.033.007-.012 0-.022-.006-.033-.007H9v-.939c-.002-.021-.013-.038-.013-.06 0-.021.011-.039.013-.06V6zm-7 4a8 8 0 1016 0 8 8 0 00-16 0z\"\n            />\n        </svg>\n    );\n};\n\nInfoIcon.displayName = 'InfoIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n};\n\nexport { storyProps };\nexport default InfoIcon;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\n\nimport styles from './PapersMessagePlaceholder.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    children: React.ReactNode;\n};\n\nconst PapersMessagePlaceholder: React.FC<PropsT> = React.memo((props) => {\n    const { className, children } = props;\n\n    return <div className={cs(cx('placeholder'), className)}>{children}</div>;\n});\n\nexport { PapersMessagePlaceholder };\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './CompletedPartnerShipperContractCard.scss';\nimport { Trans } from 'react-i18next';\nimport ContractName from 'broker-admin/components/notification-cards/entities/ContractName/ContractName';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    contractName: string;\n};\n\nconst CompletedPartnerShipperContractCard: React.FC<PropsT> = React.memo((props) => {\n    const { contractName } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"notifications.partner-shipper-contract-completed\"\n                components={{\n                    contractName: <ContractName contractName={contractName} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default CompletedPartnerShipperContractCard;\n","import * as React from 'react';\nimport { useState } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ShipperContractLaneCreationConfirmForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport NumberInput from 'common/components/NumberInput/NumberInput';\nimport { CurrencyEnum, DEFAULT_ICON_SIZE, StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { CreationLaneConfirmDataT } from './models';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport DoneIcon from 'common/icons/DoneIcon';\nimport EditIcon from 'common/icons/EditIcon';\nimport { simpleNumberFormatter } from 'common/utils/form-formatters';\nimport Money from 'common/components/Money/Money';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport ControlLoaderLabel from 'common/components/ControlLoaderLabel/ControlLoaderLabel';\nimport { useSelector } from 'react-redux';\nimport {\n    selectAveragePriceOffer,\n    selectCalculateCostRequest,\n    selectCreationRequest,\n} from 'common/store/shipper-contract-lane-creation/selectors';\nimport AveragePriceOfferDetails from './AveragePriceOfferDetails/AveragePriceOfferDetails';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    onConfirm: (data: CreationLaneConfirmDataT) => void;\n    onCancel: () => void;\n};\n\nexport const DEFAULT_INITIAL_VALUES: FormValuesT = {\n    [FieldsEnum.totalPrice]: '',\n};\n\nconst ShipperContractLaneCreationConfirmForm: React.FC<PropsT> = React.memo((props) => {\n    const { onConfirm, onCancel, className } = props;\n\n    const { t } = useTranslation();\n\n    const [prevTotalPrice, setPrevTotalPrice] = useState<string | null>(null);\n\n    const creationRequest = useSelector(selectCreationRequest);\n    const calculateCostRequest = useSelector(selectCalculateCostRequest);\n\n    const averagePriceOffer = useSelector(selectAveragePriceOffer);\n\n    const isShowLoader = calculateCostRequest.loading;\n    const initTotalPrice = averagePriceOffer?.totalPrice;\n\n    const validate = React.useCallback(\n        (values: FormValuesT) => {\n            return validateForm(t, values);\n        },\n        [t],\n    );\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = {\n            ...DEFAULT_INITIAL_VALUES,\n            [FieldsEnum.totalPrice]: simpleNumberFormatter(initTotalPrice) || '',\n        };\n\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [initTotalPrice]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        initialTouched: {\n            [FieldsEnum.totalPrice]: true,\n        },\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            onConfirm({\n                totalPrice: parseSimpleNumber(values[FieldsEnum.totalPrice]) || 0,\n            });\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const isLoading = calculateCostRequest.loading;\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={className}>\n            <div className={cx('head')}>\n                {isShowLoader ? (\n                    <div className={cx('total-price-skeleton')} />\n                ) : (\n                    <>\n                        {prevTotalPrice ? (\n                            <>\n                                <FormikField\n                                    className={cx('field', 'field--total-price')}\n                                    name={FieldsEnum.totalPrice}\n                                    error={formik.errors[FieldsEnum.totalPrice]}\n                                    meta={formik.getFieldMeta(FieldsEnum.totalPrice)}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                    withoutLabel\n                                >\n                                    {(props) => (\n                                        <NumberInput\n                                            name={FieldsEnum.totalPrice}\n                                            value={formik.values[FieldsEnum.totalPrice]}\n                                            step={1}\n                                            unitType={UnitTypeEnum.euroAbbreviation}\n                                            onChange={props.onChange}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                            hasError={props.hasError}\n                                            hasWarning={props.hasWarning}\n                                        />\n                                    )}\n                                </FormikField>\n                                <div className={cx('mini-actions')}>\n                                    <TransparentTrigger\n                                        onClick={() => {\n                                            formik.setFieldValue(FieldsEnum.totalPrice, prevTotalPrice);\n                                            setPrevTotalPrice(null);\n                                        }}\n                                        leftIcon={<CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                                        reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                                    />\n                                    <TransparentTrigger\n                                        onClick={() => {\n                                            if (formik.errors[FieldsEnum.totalPrice]) {\n                                                return;\n                                            }\n\n                                            setPrevTotalPrice(null);\n                                        }}\n                                        leftIcon={\n                                            <DoneIcon\n                                                size={DEFAULT_ICON_SIZE}\n                                                fillColor={StyleGuideColorsEnum.brandAccent}\n                                            />\n                                        }\n                                        reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                                    />\n                                </div>\n                            </>\n                        ) : (\n                            <>\n                                <div className={cx('total-price')}>\n                                    <Money\n                                        amount={parseSimpleNumber(formik.values[FieldsEnum.totalPrice])}\n                                        currency={CurrencyEnum.EUR}\n                                    />\n                                </div>\n                                <div className={cx('mini-actions')}>\n                                    <TransparentTrigger\n                                        onClick={() => {\n                                            setPrevTotalPrice(formik.values[FieldsEnum.totalPrice]);\n                                        }}\n                                        leftIcon={\n                                            <EditIcon\n                                                size={DEFAULT_ICON_SIZE}\n                                                fillColor={StyleGuideColorsEnum.brandAccent}\n                                                strokeColor={StyleGuideColorsEnum.brandDark}\n                                            />\n                                        }\n                                        reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                                    />\n                                </div>\n                            </>\n                        )}\n                    </>\n                )}\n            </div>\n            <div className={cx('body')}>\n                <div className={cx('receipt')}>\n                    <AveragePriceOfferDetails priceOffer={averagePriceOffer} />\n                </div>\n                {isLoading && (\n                    <div className={cx('loader__container')}>\n                        <div className={cx('loader__paranja')} />\n                        <div className={cx('loader')}>\n                            <ControlLoaderLabel isInvert>{t('shipper-lane-creation.calculating')}</ControlLoaderLabel>\n                        </div>\n                    </div>\n                )}\n            </div>\n\n            <div className={cx('actions')}>\n                <Button\n                    className={cx('action')}\n                    theme={ButtonThemeEnum.secondary}\n                    type=\"button\"\n                    onClick={onCancel}\n                    testSelector=\"cancel\"\n                >\n                    {t('shipper-lane-creation.actions.cancel')}\n                </Button>\n                <Button\n                    isDisabled={calculateCostRequest.loading || creationRequest.loading}\n                    className={cx('action')}\n                    theme={ButtonThemeEnum.primary}\n                    type=\"submit\"\n                    isLoading={creationRequest.loading}\n                    testSelector=\"add\"\n                >\n                    {t('shipper-lane-creation.actions.add')}\n                </Button>\n            </div>\n        </form>\n    );\n});\n\nexport default ShipperContractLaneCreationConfirmForm;\n","// extracted by mini-css-extract-plugin\nexport default {\"id\":\"IdCell__id___Imm4R\",\"fadeIn\":\"IdCell__fadeIn___xRXM6\",\"blinking\":\"IdCell__blinking___rl3oJ\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './SideBarLoader.scss';\nimport ControlLoaderWithShadow from 'common/components/ControlLoaderWithShadow/ControlLoaderWithShadow';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    isRelative?: boolean;\n    message?: React.ReactNode;\n};\n\nconst SideBarLoader: React.FC<PropsT> = React.memo((props) => {\n    const { isRelative, message } = props;\n\n    return (\n        <div\n            className={cx('loader', {\n                'loader--isRelative': isRelative,\n                'loader--isAbsolute': !isRelative,\n            })}\n        >\n            <ControlLoaderWithShadow fillColor={StyleGuideColorsEnum.light} />\n            {message && <div className={cx('message')}>{message}</div>}\n        </div>\n    );\n});\n\nexport default SideBarLoader;\n","import * as React from 'react';\nimport PillLabel, { colorCodingPillLabelTheme, PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport PriceRuleStatusLabel from 'broker-admin/components/status/PriceRuleStatusLabel/PriceRuleStatusLabel';\nimport isBoolean from 'lodash/isBoolean';\n\ntype PropsT = {\n    className?: string;\n    isActive: boolean | null | undefined;\n};\n\nconst PriceRuleStatusPill: React.FC<PropsT> = React.memo((props) => {\n    const { isActive, ...restProps } = props;\n\n    let pillTheme: PillLabelThemeEnum = colorCodingPillLabelTheme.normal;\n    if (isBoolean(isActive) && isActive) {\n        pillTheme = colorCodingPillLabelTheme.success;\n    }\n    if (isBoolean(isActive) && !isActive) {\n        pillTheme = colorCodingPillLabelTheme.normal;\n    }\n\n    return (\n        <PillLabel isNoWrap isSymmetrical {...restProps} theme={pillTheme}>\n            <PriceRuleStatusLabel isActive={isActive} />\n        </PillLabel>\n    );\n});\n\nexport default PriceRuleStatusPill;\n","import * as React from 'react';\nimport { ApiFuelOptionTypeT, FuelOptionTypeEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    fuelOption: ApiFuelOptionTypeT | null | undefined;\n};\n\nexport const FUEL_OPTION_TYPE_I18N_MAP: Record<ApiFuelOptionTypeT, string> = {\n    [FuelOptionTypeEnum.hvo]: 'common:fuel-option.HVO',\n    [FuelOptionTypeEnum.diesel]: 'common:fuel-option.DIESEL',\n    [FuelOptionTypeEnum.mixed]: 'common:fuel-option.MIXED',\n};\n\nconst FuelOptionTypeLabel: React.FC<PropsT> = React.memo((props) => {\n    const { fuelOption } = props;\n\n    const { t } = useTranslation();\n\n    if (!fuelOption) {\n        return null;\n    }\n\n    return <span>{t(FUEL_OPTION_TYPE_I18N_MAP[fuelOption])}</span>;\n});\n\nexport default FuelOptionTypeLabel;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './ContactCell.scss';\nimport { PartnerT } from 'broker-admin/store/partners/models';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport Avatar from 'common/components/Avatar/Avatar';\nimport { useTranslation } from 'react-i18next';\nimport Link, { LinkSizeEnum, LinkThemeEnum } from 'common/components/Link/Link';\nimport { logWarning } from 'common/utils/logger';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { ApiPartnerTypeT, PartnerTypeEnum } from 'common/utils/api/models';\nimport { useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport TableCellLink from 'common/components/Table/cell-renderers/TableCellLink/TableCellLink';\n\ntype PropsT = {\n    partner: PartnerT;\n    className?: string;\n};\n\nconst cx = classNames.bind(styles);\n\nconst partnerTypeMap: Record<ApiPartnerTypeT, PartnerTypeEnum> = {\n    SHIPPER: PartnerTypeEnum.shipper,\n    CARRIER: PartnerTypeEnum.carrier,\n    BROKER: PartnerTypeEnum.broker,\n};\n\n// @ts-expect-error\n// wait backend TZT-9285\nconst positionMap: Record<NonNullable<PartnerT['contactPosition']>, string> = {\n    it: 'common:team-members.position.it',\n    management: 'common:team-members.position.management',\n    operator: 'common:team-members.position.operator',\n    owner: 'common:team-members.position.owner',\n    sales: 'common:team-members.position.sales',\n};\n\nconst ContactCell: React.FC<PropsT> = React.memo((props) => {\n    const { partner, className } = props;\n\n    const { t } = useTranslation();\n\n    // @ts-expect-error\n    // wait backend TZT-9285\n    const { contactEmail, contactId, contactName, contactPhone, contactPosition, contactSurname, id, type } = partner;\n\n    const contactFullName = `${contactName} ${contactSurname}`;\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const openUserDetails = () => {\n        if (!contactId) {\n            logWarning(`Failed to open user details, empty contactId`);\n            return;\n        }\n\n        const partnerType = type ? partnerTypeMap[type] : null;\n        if (!partnerType) {\n            logWarning(`Failed to open user details, empty partnerType`);\n            return;\n        }\n\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId: id,\n            partnerType,\n            contactId,\n        });\n    };\n\n    return (\n        <div className={cs(cx('created-date'), className)}>\n            {contactId && (\n                <Tooltip\n                    tooltipNode={\n                        <TooltipContent theme={TooltipContentThemeEnum.black} width={240}>\n                            <div className={cx('tooltip')}>\n                                <div className={cx('tooltip__avatar')}>\n                                    <Avatar className={cx('avatar')} hash={contactFullName} />\n                                </div>\n                                <div className={cx('tooltip__info')}>\n                                    <div className={cx('tooltip__full-name')}>{contactFullName}</div>\n                                    {contactPosition && (\n                                        <div className={cx('tooltip__role')}>{t(positionMap[contactPosition])}</div>\n                                    )}\n                                    {!!contactEmail && (\n                                        <Link\n                                            to={`mailto:${contactEmail}`}\n                                            theme={LinkThemeEnum.boldBrandAccent}\n                                            size={LinkSizeEnum.medium}\n                                            isExternal\n                                        >\n                                            {contactEmail}\n                                        </Link>\n                                    )}\n                                </div>\n                            </div>\n                        </TooltipContent>\n                    }\n                    position={TooltipPositionEnum.centerLeft}\n                    theme={TooltipThemeEnum.black}\n                >\n                    {() => (\n                        <TableCellLink\n                            onClick={openUserDetails}\n                            className={cx('full-name')}\n                            theme={LinkThemeEnum.boldBrandDark}\n                            size={LinkSizeEnum.medium}\n                        >\n                            {contactFullName}\n                        </TableCellLink>\n                    )}\n                </Tooltip>\n            )}\n            <div className={cx('phone')}>{contactPhone}</div>\n        </div>\n    );\n});\n\nexport default ContactCell;\n","import { CountryCodeT, ApiBrokerCompanyChangesT } from 'common/utils/api/models';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport { simpleStringFormatter } from 'common/utils/form-formatters';\n\nconst prepareApiPartnerDetails = (formValues: FormValuesT): ApiBrokerCompanyChangesT => {\n    const changes: ApiBrokerCompanyChangesT = {\n        name: simpleStringFormatter(formValues[FieldsEnum.name]),\n\n        legalAddress: {\n            country: (formValues[FieldsEnum.legalAddressCountryCode] as CountryCodeT) || undefined,\n            zipCode: simpleStringFormatter(formValues[FieldsEnum.legalAddressZipCode]),\n            city: simpleStringFormatter(formValues[FieldsEnum.legalAddressCity]),\n            street1: simpleStringFormatter(formValues[FieldsEnum.legalAddressStreet1]),\n            street2: simpleStringFormatter(formValues[FieldsEnum.legalAddressStreet2]),\n        },\n\n        postalAddress: {\n            country: (formValues[FieldsEnum.postalAddressCountryCode] as CountryCodeT) || undefined,\n            zipCode: simpleStringFormatter(formValues[FieldsEnum.postalAddressZipCode]),\n            city: simpleStringFormatter(formValues[FieldsEnum.postalAddressCity]),\n            street1: simpleStringFormatter(formValues[FieldsEnum.postalAddressStreet1]),\n            street2: simpleStringFormatter(formValues[FieldsEnum.postalAddressStreet2]),\n        },\n\n        billingAddress: {\n            country: (formValues[FieldsEnum.billingAddressCountryCode] as CountryCodeT) || undefined,\n            zipCode: simpleStringFormatter(formValues[FieldsEnum.billingAddressZipCode]),\n            city: simpleStringFormatter(formValues[FieldsEnum.billingAddressCity]),\n            street1: simpleStringFormatter(formValues[FieldsEnum.billingAddressStreet1]),\n            street2: simpleStringFormatter(formValues[FieldsEnum.billingAddressStreet2]),\n        },\n\n        billingEmail: formValues[FieldsEnum.billingEmail],\n    };\n\n    return changes;\n};\n\nexport default prepareApiPartnerDetails;\n","// extracted by mini-css-extract-plugin\nexport default {\"money\":\"Money__money___JOTQ1\",\"fadeIn\":\"Money__fadeIn___VlGxi\",\"blinking\":\"Money__blinking___dDhO2\"};","import * as React from 'react';\nimport { ShipmentStatusEnum, ApiShipmentStatusT } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    status?: ApiShipmentStatusT | null | undefined;\n};\n\nexport const LOAD_STATUS_T_MAP: Record<ApiShipmentStatusT, string> = {\n    [ShipmentStatusEnum.awaitingLoading]: 'common:load-status.AWAITING_LOADING',\n    [ShipmentStatusEnum.loading]: 'common:load-status.LOADING',\n    [ShipmentStatusEnum.inTransit]: 'common:load-status.IN_TRANSIT',\n    [ShipmentStatusEnum.unloading]: 'common:load-status.UNLOADING',\n    [ShipmentStatusEnum.delivered]: 'common:load-status.DELIVERED',\n    [ShipmentStatusEnum.canceled]: 'common:load-status.CANCELED',\n};\n\nconst LoadStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return null;\n    }\n\n    return t(LOAD_STATUS_T_MAP[status]);\n});\n\nexport default LoadStatus;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { QueryFiltersT } from 'common/layouts/TrucksPageLayout/query-models';\n\nconst getInitialValues = (\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    queryFilters: QueryFiltersT,\n): FormValuesT => {\n    return {\n        [FieldsEnum.model]: [],\n        [FieldsEnum.plateNumber]: '',\n        [FieldsEnum.country]: [],\n        [FieldsEnum.emissionClass]: [],\n        [FieldsEnum.contractId]: [],\n        [FieldsEnum.contractName]: [],\n        [FieldsEnum.status]: [],\n        [FieldsEnum.createDates]: null,\n        [FieldsEnum.lastTelematicUpdateDates]: null,\n        [FieldsEnum.lastModifyDates]: null,\n        [FieldsEnum.createdByUserId]: [],\n        [FieldsEnum.createdByUserName]: [],\n        [FieldsEnum.lastModifyByUserId]: [],\n        [FieldsEnum.lastModifyByUserName]: [],\n    };\n};\n\nexport default getInitialValues;\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"TruckTriggerLabel__option___JZrXs\",\"model-and-plate-number\":\"TruckTriggerLabel__model-and-plate-number___nmMM2\",\"model-and-plate-number--isDisabled\":\"TruckTriggerLabel__model-and-plate-number--isDisabled____HTTC\",\"trigger-rate-mode\":\"TruckTriggerLabel__trigger-rate-mode___Uv1GZ\",\"spacer\":\"TruckTriggerLabel__spacer___ky2ek\",\"price\":\"TruckTriggerLabel__price___ulnhx\",\"price--isDisabled\":\"TruckTriggerLabel__price--isDisabled___d9bxo\",\"reset\":\"TruckTriggerLabel__reset___SwWxr\",\"details\":\"TruckTriggerLabel__details___UCc9H\",\"fadeIn\":\"TruckTriggerLabel__fadeIn___tfkSf\",\"blinking\":\"TruckTriggerLabel__blinking___cjKPk\"};","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n    className?: string;\n};\n\nconst SnowflakeIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, ...restProps } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" {...restProps}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M0 0h20v20H0z\" />\n                <path\n                    fill={fillColor}\n                    d=\"M18.333 9.167h-3.475l2.7-2.7-1.175-1.184L12.5 9.167h-1.667V7.5l3.884-3.883-1.184-1.175-2.7 2.7V1.667H9.167v3.475l-2.7-2.7-1.184 1.175L9.167 7.5v1.667H7.5L3.617 5.283 2.442 6.467l2.7 2.7H1.667v1.666h3.475l-2.7 2.7 1.175 1.184L7.5 10.833h1.667V12.5l-3.884 3.883 1.184 1.175 2.7-2.7v3.475h1.666v-3.475l2.7 2.7 1.184-1.175-3.884-3.883v-1.667H12.5l3.883 3.884 1.175-1.184-2.7-2.7h3.475z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nSnowflakeIcon.displayName = 'SnowflakeIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default SnowflakeIcon;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\n\nimport styles from './SpotRequestDetailsTabs.scss';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\nimport { SpotRequestDetailsT } from 'broker-admin/store/spot-request-details/models';\nimport { formatDiff, getTimeLeft, MS_IN_HOUR, parseDiff } from 'common/utils/time';\nimport { SpotDetailsTabEnum } from 'broker-admin/components/BaseSpotRequestDetailsSidebarContent/SpotRequestDetails/models';\nimport ButtonGroup from 'design-system/components/ButtonGroup/ButtonGroup';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport isNumber from 'lodash/isNumber';\nimport { BidsQuickFilterEnum } from '../Bids/constants';\nimport { getBidQuickFilterCounts } from '../Bids/hooks/bids-filter';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n\n    isShowStatus: boolean;\n\n    details: SpotRequestDetailsT | null;\n\n    selectedTab: SpotDetailsTabEnum | null;\n    onSelectTab: (selectedTab: SpotDetailsTabEnum | null) => void;\n};\n\nconst ASSIGNMENT_WARNING = 24 * MS_IN_HOUR;\n\nconst SpotRequestDetailsTabs: React.FC<PropsT> = React.memo((props) => {\n    const { className, details, onSelectTab, isShowStatus, selectedTab } = props;\n\n    const { t } = useTranslation();\n\n    const bids = React.useMemo(() => details?.bids || [], [details]);\n\n    const bidCounts = React.useMemo(() => {\n        return getBidQuickFilterCounts(bids);\n    }, [bids]);\n\n    const bidCount = bidCounts[BidsQuickFilterEnum.accepted];\n\n    const deadline = details?.expiresAt;\n    const timeLeft = getTimeLeft(deadline);\n    const diff = timeLeft !== null ? timeLeft : null;\n\n    const parsedDiff = isNumber(diff) ? parseDiff(diff) : null;\n\n    const formattedDiff = parsedDiff ? formatDiff(t, parsedDiff) : null;\n\n    if (!details) {\n        return null;\n    }\n\n    const renderDiffStatus = (diff: number | null) => {\n        if (diff === null || !isShowStatus) {\n            return null;\n        }\n\n        if (diff < 0) {\n            return null;\n        }\n\n        return (\n            <div\n                className={cx('status', {\n                    'status--is-warning': isNumber(diff) && diff <= ASSIGNMENT_WARNING,\n                })}\n            >\n                <div className={cx('time')}>{formattedDiff}</div>\n                <div className={cx('message')}>{t('spot-request-details.start-select-bid.to-assign')}</div>\n            </div>\n        );\n    };\n    return (\n        <div className={cs(cx('container'), className)}>\n            <ButtonGroup className={cx('button-group')}>\n                <Button\n                    key={SpotDetailsTabEnum.details}\n                    theme={ButtonThemeEnum.transparent}\n                    onClick={() => {\n                        onSelectTab(SpotDetailsTabEnum.details);\n                    }}\n                    isToggled={selectedTab === SpotDetailsTabEnum.details}\n                >\n                    {t('spot-request-details.details-tabs.details')}\n                </Button>\n                <Button\n                    key={SpotDetailsTabEnum.bids}\n                    theme={ButtonThemeEnum.transparent}\n                    onClick={() => {\n                        onSelectTab(SpotDetailsTabEnum.bids);\n                    }}\n                    isToggled={selectedTab === SpotDetailsTabEnum.bids}\n                    leftIcon={\n                        bidCount ? (\n                            <PillLabel isSymmetrical theme={PillLabelThemeEnum.orange} isRounded>\n                                <span className={cx('count')}>{bidCount}</span>\n                            </PillLabel>\n                        ) : null\n                    }\n                >\n                    {t('spot-request-details.details-tabs.bids')}\n                </Button>\n            </ButtonGroup>\n            {renderDiffStatus(diff)}\n        </div>\n    );\n});\n\nexport default SpotRequestDetailsTabs;\n","import React from 'react';\nimport { useQueryParam } from 'use-query-params';\nimport { JSONArrayParam } from 'common/utils/query';\nimport {\n    CommonSidebarContentPropsT,\n    CommonSidebarMetaT,\n    GetSidebarCloseConfirmationT,\n    RenderSidebarContentT,\n    SidebarDataWithMetaT,\n    SidebarSizeEnum,\n    SideBarPositionEnum,\n    SidebarQueryKeysEnum,\n} from './models';\nimport { commonGetSidebarCloseConfirmation, renderCommonSidebarContent } from './utils';\nimport SideBarParanja from './SideBarParanja/SideBarParanja';\nimport SideBar from './SideBar/SideBar';\nimport isNumber from 'lodash/isNumber';\nimport { pushSidebarsArray } from 'common/layouts/SideBars/hooks';\nimport last from 'lodash/last';\n\ntype PropsT<T> = {\n    renderSidebarContent?: PipedPropsT<T>['renderSidebarContent'];\n    getSidebarCloseConfirmation?: PipedPropsT<T>['getSidebarCloseConfirmation'];\n    paranjaShowLevel?: number;\n};\n\ntype PipedPropsT<T> = {\n    renderSidebarContent: RenderSidebarContentT<T>;\n    getSidebarCloseConfirmation: GetSidebarCloseConfirmationT<T>;\n};\n\nconst pipeProps = <T,>(props: PropsT<T>): PipedPropsT<T> => {\n    return {\n        renderSidebarContent: (...args) => {\n            const result = props?.renderSidebarContent?.(...args);\n            if (result) {\n                return result;\n            }\n\n            // @ts-ignore\n            return renderCommonSidebarContent(...args);\n        },\n        getSidebarCloseConfirmation: (...args) => {\n            const result = props?.getSidebarCloseConfirmation?.(...args);\n            if (result) {\n                return result;\n            }\n\n            // @ts-ignore\n            return commonGetSidebarCloseConfirmation(...args);\n        },\n    };\n};\n\nconst SideBars = <T,>(props: PropsT<T>): React.ReactElement | null => {\n    const { renderSidebarContent, getSidebarCloseConfirmation, paranjaShowLevel } = props;\n\n    const [leftSidebarsData, setLeftSidebarsData] = useQueryParam<Array<SidebarDataWithMetaT<T>>>(\n        SidebarQueryKeysEnum.leftSidebar,\n        JSONArrayParam,\n    );\n\n    const [rightSidebarsData, setRightSidebarsData] = useQueryParam<Array<SidebarDataWithMetaT<T>>>(\n        SidebarQueryKeysEnum.rightSidebar,\n        JSONArrayParam,\n    );\n\n    const commonLeftSidebarProps = React.useMemo((): CommonSidebarContentPropsT<T> => {\n        const hasBackAction = leftSidebarsData.length >= 2 || last(leftSidebarsData)?.isForceShowBackAction;\n\n        return {\n            onOpenNextSidebar: (data: T, meta?: CommonSidebarMetaT) => {\n                setLeftSidebarsData(\n                    pushSidebarsArray(leftSidebarsData, {\n                        ...data,\n                        ...meta,\n                    }),\n                );\n            },\n            onUpdateSidebarData: (data: T) => {\n                setLeftSidebarsData([\n                    ...leftSidebarsData.slice(0, -1),\n                    {\n                        ...last(leftSidebarsData),\n                        ...data,\n                    },\n                ]);\n            },\n            onClose: () => {\n                setLeftSidebarsData([]);\n            },\n            onGoBack: hasBackAction\n                ? () => {\n                      setLeftSidebarsData(leftSidebarsData.slice(0, -1));\n                  }\n                : null,\n            position: SideBarPositionEnum.left,\n        };\n    }, [leftSidebarsData, setLeftSidebarsData]);\n\n    const commonRightSidebarProps = React.useMemo((): CommonSidebarContentPropsT<T> => {\n        const hasBackAction = rightSidebarsData.length >= 2 || last(rightSidebarsData)?.isForceShowBackAction;\n\n        return {\n            onOpenNextSidebar: (data: T, meta?: CommonSidebarMetaT) => {\n                setRightSidebarsData(\n                    pushSidebarsArray(rightSidebarsData, {\n                        ...data,\n                        ...meta,\n                    }),\n                );\n            },\n            onUpdateSidebarData: (data: T) => {\n                setRightSidebarsData([\n                    ...rightSidebarsData.slice(0, -1),\n                    {\n                        ...last(rightSidebarsData),\n                        ...data,\n                    },\n                ]);\n            },\n            onClose: () => {\n                setRightSidebarsData([]);\n            },\n            onGoBack: hasBackAction\n                ? () => {\n                      setRightSidebarsData(rightSidebarsData.slice(0, -1));\n                  }\n                : null,\n            position: SideBarPositionEnum.right,\n        };\n    }, [rightSidebarsData, setRightSidebarsData]);\n\n    const isShowParanja = isNumber(paranjaShowLevel)\n        ? leftSidebarsData?.length > paranjaShowLevel || rightSidebarsData?.length > paranjaShowLevel\n        : false;\n\n    const commonSidebarProps = React.useMemo(() => {\n        return pipeProps({\n            renderSidebarContent,\n            getSidebarCloseConfirmation,\n        });\n    }, [renderSidebarContent, getSidebarCloseConfirmation]);\n\n    const leftSidebarData = last(leftSidebarsData) || null;\n    const rightSidebarData = last(rightSidebarsData) || null;\n\n    return (\n        <>\n            {isShowParanja && <SideBarParanja />}\n            {leftSidebarData && (\n                <SideBar\n                    key=\"left\"\n                    data={leftSidebarData}\n                    size={leftSidebarData.size || SidebarSizeEnum.l}\n                    {...commonSidebarProps}\n                    {...commonLeftSidebarProps}\n                />\n            )}\n            {rightSidebarData && (\n                <SideBar\n                    key=\"right\"\n                    data={rightSidebarData}\n                    size={rightSidebarData.size || SidebarSizeEnum.l}\n                    {...commonSidebarProps}\n                    {...commonRightSidebarProps}\n                />\n            )}\n        </>\n    );\n};\n\nexport default React.memo(SideBars) as typeof SideBars;\n","import * as React from 'react';\nimport TopBar from 'common/layouts/LeftMenuLayout/TopBar/TopBar';\nimport { useTranslation } from 'react-i18next';\nimport ScrollableContent from 'common/layouts/LeftMenuLayout/ScrollableContent/ScrollableContent';\nimport NotificationsBarTrigger from 'common/components/notifications/NotificationsBarTrigger/NotificationsBarTrigger';\nimport TopBarContent from 'common/layouts/LeftMenuLayout/TopBarContent/TopBarContent';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport RFQListPageLayout from 'common/layouts/RFQListPageLayout/RFQListPageLayout';\n\nimport SideBars from 'broker-admin/layouts/SideBars/SideBars';\nimport { useOpenLeftSidebar, useToggleRightSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport { CommonSidebarsTypeEnum, SidebarSizeEnum } from 'common/layouts/SideBars/models';\nimport { logWarning } from 'common/utils/logger';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport { useHistoryPush } from 'common/utils/hooks/useHistoryPush';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport FeaturesContext from 'common/contexts/features';\nimport { ClientFeatureEnum } from 'common/utils/features/client-features-config';\nimport { BrokerSidebarsTypeEnum } from 'broker-admin/layouts/SideBars/constants';\n\ntype PropsT = {};\n\nconst BrokerRFQsListPage: React.FC<PropsT> = React.memo(() => {\n    const { partnerId, partnerType } = usePartnerContext();\n\n    const { historyPush } = useHistoryPush();\n\n    const { t } = useTranslation();\n    const featuresContext = React.useContext(FeaturesContext);\n    const isAllowedShowRFQStatistics = !!featuresContext?.checkActiveClientFeature?.(\n        ClientFeatureEnum.showRFQStatistics,\n    );\n\n    const handleOpenRFQDetails = (event: React.MouseEvent, rfqId: RFQIdT | null) => {\n        if (!rfqId) {\n            logWarning('Empty rfqId on handleOpenRFQDetails');\n            return;\n        }\n\n        const url = urlFactory.brokerRFQDetails(rfqId);\n        historyPush(event, url);\n    };\n\n    const openLeftSidebar = useOpenLeftSidebar();\n    const { isOpened: isRFQStatisticsOpen, toggle: toggleRFQStatistics } = useToggleRightSidebar(\n        {\n            type: BrokerSidebarsTypeEnum.rfqStatistics,\n        },\n        {\n            size: SidebarSizeEnum.m,\n        },\n    );\n\n    const handleOpenUserDetails = (userId: UserIdT | null) => {\n        if (!userId || !partnerType || !partnerId) {\n            logWarning('failed to open contact details in rfq, empty userId or partnerType or partnerId');\n            return;\n        }\n\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId,\n            partnerType,\n            userId,\n        });\n    };\n\n    return (\n        <ScrollableContent>\n            <PageTitle title={t('page-titles.broker-rfqs')} />\n            <ContentMargins>\n                <TopBar>\n                    <TopBarContent title={t('broker-rfqs-table.title')} rightNode={<NotificationsBarTrigger />} />\n                </TopBar>\n            </ContentMargins>\n            <RFQListPageLayout\n                onOpenRFQDetails={handleOpenRFQDetails}\n                onOpenUserDetails={handleOpenUserDetails}\n                onOpenRFQStatistics={toggleRFQStatistics}\n                isAllowedShowRFQStatistics={isAllowedShowRFQStatistics}\n                isRFQStatisticsOpen={isRFQStatisticsOpen}\n            />\n            <SideBars />\n        </ScrollableContent>\n    );\n});\n\nexport default BrokerRFQsListPage;\n","import { TrailerTypeEnum } from '../constants';\n\nconst parseTrailerModel = (trailerMode: string | null | undefined): [string | null, string | null] => {\n    if (!trailerMode) {\n        return [null, null];\n    }\n\n    const [firstPart, secondPart] = trailerMode.split(', ') || [];\n\n    const availableTrailerTypes = Object.values(TrailerTypeEnum) as Array<string>;\n    if (firstPart && availableTrailerTypes.includes(firstPart)) {\n        return [secondPart || null, firstPart];\n    }\n\n    return [trailerMode, null];\n};\n\nexport default parseTrailerModel;\n","// extracted by mini-css-extract-plugin\nexport default {\"zone-title\":\"TimeWindowZoneText__zone-title___kQY6w\",\"content\":\"TimeWindowZoneText__content___iiVtt\",\"content__left-icon\":\"TimeWindowZoneText__content__left-icon___xg07w\",\"content__content\":\"TimeWindowZoneText__content__content___G_QFX\",\"text\":\"TimeWindowZoneText__text___aKM4u\",\"fadeIn\":\"TimeWindowZoneText__fadeIn___KDtKB\",\"blinking\":\"TimeWindowZoneText__blinking___AOIGd\"};","import * as React from 'react';\nimport { useSelector } from 'react-redux';\nimport PartnerPermissionContext from 'common/contexts/partner-permission-context';\nimport { selectPermissions } from 'common/store/auth/selectors';\n\ntype PropsT = {\n    children?: React.ReactNode;\n};\n\nconst PartnerPermissionsContextProvider: React.FC<PropsT> = React.memo((props) => {\n    const { children } = props;\n\n    const permissions = useSelector(selectPermissions);\n\n    return <PartnerPermissionContext.Provider value={permissions}>{children}</PartnerPermissionContext.Provider>;\n});\n\nexport default PartnerPermissionsContextProvider;\n","import { formatPageQuerySort } from 'common/utils/page-sort';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from './query-models';\nimport { DepreactedPagingTokensT, FetchInvoicesPageQueryT } from 'broker-admin/store/invoices/models';\nimport { InvoicesQuickFilterEnum } from 'broker-admin/layouts/InvoicesListPage/constants';\nimport { InvoiceStatusEnum } from 'common/utils/api/models';\nimport { PageSortT } from 'common/utils/query';\nimport { BrokerInvoicesSortEnum } from 'broker-admin/utils/api/broker-tranziit/models';\n\nconst getQueryFromQuickFilters = (quickFilter: InvoicesQuickFilterEnum | null | undefined): FetchInvoicesPageQueryT => {\n    switch (quickFilter) {\n        case InvoicesQuickFilterEnum.open: {\n            return {\n                status: InvoiceStatusEnum.open,\n            };\n        }\n        case InvoicesQuickFilterEnum.void: {\n            return {\n                status: InvoiceStatusEnum.void,\n            };\n        }\n        case InvoicesQuickFilterEnum.paid: {\n            return {\n                status: InvoiceStatusEnum.paid,\n            };\n        }\n        case InvoicesQuickFilterEnum.uncollectible: {\n            return {\n                status: InvoiceStatusEnum.uncollectible,\n            };\n        }\n        default: {\n            return {};\n        }\n    }\n};\n\nconst prepareFetchPageQuery = (\n    queryFilters: QueryFiltersT,\n    sort: PageSortT<BrokerInvoicesSortEnum> | null,\n    deprecatedPagingToken: DepreactedPagingTokensT,\n): FetchInvoicesPageQueryT => {\n    return {\n        invoiceNumber: queryFilters[QueryFiltersKeysEnum.searchText] || undefined,\n\n        // TODO use tabs\n        ...getQueryFromQuickFilters(queryFilters[QueryFiltersKeysEnum.quickFilter]),\n\n        startingAfter: deprecatedPagingToken?.startingAfter || undefined,\n        endingBefore: deprecatedPagingToken?.endingBefore || undefined,\n\n        sort: formatPageQuerySort(sort),\n    };\n};\n\nexport { prepareFetchPageQuery };\n","import { RequestStatusT } from 'common/utils/request-status';\n\nimport { SystemSettingsChangesT, SystemSettingsT } from './models';\n\nexport const FETCH_SYSTEM_SETTINGS_REQUEST =\n    'broker-admin/price-settings/system-settings/FETCH_SYSTEM_SETTINGS_REQUEST';\nexport const FETCH_SYSTEM_SETTINGS_REQUEST_BEGIN =\n    'broker-admin/price-settings/system-settings/FETCH_SYSTEM_SETTINGS_REQUEST_BEGIN';\nexport const FETCH_SYSTEM_SETTINGS_REQUEST_ERROR =\n    'broker-admin/price-settings/system-settings/FETCH_SYSTEM_SETTINGS_REQUEST_ERROR';\nexport const FETCH_SYSTEM_SETTINGS_REQUEST_SUCCESS =\n    'broker-admin/price-settings/system-settings/FETCH_SYSTEM_SETTINGS_REQUEST_SUCCESS';\n\nexport const UPDATE_SYSTEM_SETTINGS_REQUEST =\n    'broker-admin/price-settings/system-settings/UPDATE_SYSTEM_SETTINGS_REQUEST';\nexport const UPDATE_SYSTEM_SETTINGS_REQUEST_BEGIN =\n    'broker-admin/price-settings/system-settings/UPDATE_SYSTEM_SETTINGS_REQUEST_BEGIN';\nexport const UPDATE_SYSTEM_SETTINGS_REQUEST_ERROR =\n    'broker-admin/price-settings/system-settings/UPDATE_SYSTEM_SETTINGS_REQUEST_ERROR';\nexport const UPDATE_SYSTEM_SETTINGS_REQUEST_SUCCESS =\n    'broker-admin/price-settings/system-settings/UPDATE_SYSTEM_SETTINGS_REQUEST_SUCCESS';\n\nexport type SystemSettingsStateT = {\n    data: SystemSettingsT | null;\n    fetchRequest: RequestStatusT;\n    updateRequest: RequestStatusT;\n};\n\nexport type FetchSystemSettingsActionT = {\n    type: typeof FETCH_SYSTEM_SETTINGS_REQUEST;\n    options?: FetchOptionsT;\n};\n\nexport type FetchSystemSettingsBeginActionT = {\n    type: typeof FETCH_SYSTEM_SETTINGS_REQUEST_BEGIN;\n};\n\nexport type FetchSystemSettingsSuccessActionT = {\n    type: typeof FETCH_SYSTEM_SETTINGS_REQUEST_SUCCESS;\n    data: SystemSettingsT | null;\n};\n\nexport type FetchSystemSettingsErrorActionT = {\n    type: typeof FETCH_SYSTEM_SETTINGS_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type UpdateSystemSettingsActionT = {\n    type: typeof UPDATE_SYSTEM_SETTINGS_REQUEST;\n    settingsChanges: SystemSettingsChangesT;\n};\n\nexport type UpdateSystemSettingsBeginActionT = {\n    type: typeof UPDATE_SYSTEM_SETTINGS_REQUEST_BEGIN;\n};\n\nexport type UpdateSystemSettingsSuccessActionT = {\n    type: typeof UPDATE_SYSTEM_SETTINGS_REQUEST_SUCCESS;\n};\n\nexport type UpdateSystemSettingsErrorActionT = {\n    type: typeof UPDATE_SYSTEM_SETTINGS_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type SystemSettingsActionTypesT =\n    | FetchSystemSettingsActionT\n    | FetchSystemSettingsBeginActionT\n    | FetchSystemSettingsSuccessActionT\n    | FetchSystemSettingsErrorActionT\n    | UpdateSystemSettingsActionT\n    | UpdateSystemSettingsBeginActionT\n    | UpdateSystemSettingsSuccessActionT\n    | UpdateSystemSettingsErrorActionT;\n","// extracted by mini-css-extract-plugin\nexport default {\"field\":\"FormikField__field___oCHER\",\"notes--checkbox\":\"FormikField__notes--checkbox___EaCAs\",\"fadeIn\":\"FormikField__fadeIn___zlJHF\",\"blinking\":\"FormikField__blinking___NHLjq\"};","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor?: StyleGuideColorsEnum;\n    size: number;\n    className?: string;\n};\n\nconst CheckIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, size, ...restProps } = props;\n\n    return (\n        <svg width={size} height={size} viewBox=\"0 0 20 20\" {...restProps}>\n            <path\n                d=\"m8.652 12.894-2.546-2.563a.362.362 0 0 1 0-.513l.515-.512a.365.365 0 0 1 .514 0L8.909 11.1l3.956-3.994a.365.365 0 0 1 .514 0l.514.513a.36.36 0 0 1 0 .512l-4.727 4.763a.365.365 0 0 1-.514 0\"\n                fill={fillColor}\n                fillRule=\"evenodd\"\n            />\n        </svg>\n    );\n};\n\nCheckIcon.displayName = 'CheckIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.charcoal,\n};\n\nexport { storyProps };\nexport default CheckIcon;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport Modal from 'common/components/Modal/Modal';\nimport { useSelector } from 'react-redux';\nimport { selectAddMemberRequest, selectCompanyContacts } from 'common/store/members/selectors';\nimport BigPlusUsers from 'common/icons/BigPlusUsers';\nimport InviteUserForm from 'common/layouts/Members/InviteUserForm/InviteUserForm';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { InviteUserRequestT } from 'common/store/members/models';\n\nexport type InviteUserModalDataT = {\n    email: string;\n    partnerId: CompanyIdT;\n    partnerType: PartnerTypeEnum;\n};\n\nexport type InviteUserModalPropsT = {\n    data: InviteUserModalDataT | null;\n    onClose: () => void;\n    onCancel: () => void;\n    onInviteUser: (newUser: InviteUserRequestT) => void;\n};\n\nconst InviteUserModal: React.FC<InviteUserModalPropsT> = React.memo((props) => {\n    const { data, onClose, onInviteUser } = props;\n\n    const { t } = useTranslation();\n\n    const partnerId = data?.partnerId || null;\n    const partnerType = data?.partnerType || null;\n\n    const contacts = useSelector(selectCompanyContacts(partnerId));\n    const addMemberRequestStatus = useSelector(selectAddMemberRequest(partnerId));\n\n    if (!partnerId || !partnerType || !contacts || !data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    icon={<BigPlusUsers />}\n                    title={t('common:team-members.invite-form.title')}\n                >\n                    <InviteUserForm\n                        contacts={contacts}\n                        initialEmail={data.email}\n                        onInviteUser={onInviteUser}\n                        addMemberRequestStatus={addMemberRequestStatus}\n                        allowSelectTeam={partnerType === PartnerTypeEnum.broker}\n                        partnerType={partnerType}\n                    />\n                </ModalDialog>\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default InviteUserModal;\n","import React, { useCallback } from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\n\nimport styles from './ActiveContractDropdown.scss';\nimport { useTranslation } from 'react-i18next';\nimport DropdownSearchInput from 'design-system/components/dropdowns/DropdownSearchInput/DropdownSearchInput';\nimport {\n    AdditionalOptionFilterT,\n    useAsyncFilterOptions,\n} from 'design-system/components/dropdowns/DropdownSearchInput/hooks/use-async-filter-options';\nimport { AsyncRequestFactoryT } from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-options-request';\nimport { checkIsDefaultCompanyId } from 'common/utils';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport carrierTranziitApi from 'carrier/utils/api/carrier-tranziit/api';\nimport { ApiPartnerContractT } from 'common/utils/api/models';\nimport ContractName from 'common/components/ContractName/ContractName';\n\nconst cx = classNames.bind(styles);\n\ntype ValueT = CarrierContractIdT | null;\n\ntype PropsT = {\n    className?: string;\n    placeholder?: string;\n    value: ValueT;\n    hasNoneOption?: boolean;\n    isDisabled: boolean;\n    onChange: (value: ValueT) => void;\n    hasChanges?: boolean;\n    companyId: CompanyIdT | null;\n    onBlur: () => void;\n    onFocus: () => void;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    excludedContractIds?: Array<CarrierContractIdT>;\n    overlayPosition?: DropdownOverlayPositionEnum;\n};\n\ntype NoneOptionT = {\n    id: null;\n    name: string;\n};\n\nexport type OptionT = ApiPartnerContractT | NoneOptionT;\n\nconst ActiveContractDropdown: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        value,\n        placeholder,\n        onChange,\n        hasNoneOption,\n        isDisabled,\n        hasChanges,\n        onBlur,\n        onFocus,\n        hasError,\n        hasWarning,\n        companyId,\n        excludedContractIds,\n        overlayPosition,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const requestFactory: AsyncRequestFactoryT<OptionT> = useCallback(async () => {\n        let options: Array<OptionT> = [];\n\n        if (!companyId) {\n            return [null, null];\n        }\n\n        const isPartner = !checkIsDefaultCompanyId(companyId);\n        if (isPartner) {\n            const brokerResponse = await brokerTranziitApi.fetchCarrierApprovedContracts(companyId);\n            const [brokerError, brokerResult] = brokerResponse;\n            if (brokerError) {\n                return [brokerError, null];\n            }\n            if (brokerResult) {\n                options = brokerResult;\n            }\n        } else {\n            const carrierResponse = await carrierTranziitApi.fetchCarrierApprovedContracts();\n            const [carrierError, carrierResult] = carrierResponse;\n            if (carrierError) {\n                return [carrierError, null];\n            }\n            if (carrierResult) {\n                options = carrierResult;\n            }\n        }\n\n        if (hasNoneOption) {\n            options.unshift({\n                name: t('common:dedicated.none'),\n                id: null,\n            });\n        }\n        return [null, options];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [t, companyId, excludedContractIds, hasNoneOption]);\n\n    const additionalOptionFilter: AdditionalOptionFilterT<OptionT> = useCallback(\n        (option) => {\n            return !!option.id && !excludedContractIds?.includes(option.id);\n        },\n        [excludedContractIds],\n    );\n\n    const getOptionText = useCallback((option: OptionT) => option.name || '', []);\n\n    const asyncFilterOptionsRequest = useAsyncFilterOptions<OptionT>({\n        requestFactory,\n        getOptionText,\n        additionalOptionFilter,\n        settings: {},\n    });\n\n    const renderOption = (option: OptionT | null | undefined, placeholder?: string): React.ReactElement | null => {\n        if (!option && hasNoneOption) {\n            return t('common:dedicated.none');\n        }\n\n        if (!option) {\n            return <div>{placeholder || null}</div>;\n        }\n\n        return (\n            <div className={cx('option')} key={option.id}>\n                <ContractName name={option.name} />\n            </div>\n        );\n    };\n\n    const handleSelect = (value: ValueT): void => {\n        onChange(value);\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option.id || null;\n\n    const handleFocus = useCallback(() => {\n        if (onFocus) {\n            onFocus();\n        }\n\n        asyncFilterOptionsRequest.onRefresh();\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [onFocus, asyncFilterOptionsRequest.onRefresh]);\n\n    return (\n        <DropdownSearchInput<OptionT, ValueT>\n            className={className}\n            selectedValue={value}\n            placeholder={placeholder}\n            options={asyncFilterOptionsRequest.options}\n            isDisabled={isDisabled}\n            onSelect={handleSelect}\n            onReset={() => {\n                handleSelect(null);\n            }}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            onChangeQuery={asyncFilterOptionsRequest.onChangeQuery}\n            renderOption={renderOption}\n            renderTrigger={renderOption}\n            getOptionValue={getOptionValue}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            isLoading={asyncFilterOptionsRequest.requestStatus.loading}\n            onFocus={handleFocus}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n        />\n    );\n};\n\nexport default ActiveContractDropdown;\n","import { put, select } from 'redux-saga/effects';\nimport { fetchTrailersDictBegin, fetchTrailersDictError, fetchTrailersDictSuccess } from './actions';\nimport { TRAILERS_DICT_REQUEST } from './types';\nimport { selectTrailersDict } from './selectors';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport { semaphoreSaga } from 'common/utils/semaphore-saga';\n\nfunction* fetchTrailersDictSaga(): WrapGeneratorT<void> {\n    const currentTrailersDict: ReturnType<typeof selectTrailersDict> = yield select(selectTrailersDict);\n    if (currentTrailersDict) {\n        return;\n    }\n\n    yield put(fetchTrailersDictBegin());\n\n    const [error, trailersDict]: ReturnApiT<typeof commonTranziitApi.getTrailersDict> =\n        yield commonTranziitApi.getTrailersDict();\n    if (error) {\n        yield put(fetchTrailersDictError(error));\n    } else {\n        yield put(fetchTrailersDictSuccess(trailersDict || {}));\n    }\n}\n\nfunction* trailersSaga(): WrapGeneratorT<void> {\n    yield semaphoreSaga(TRAILERS_DICT_REQUEST, fetchTrailersDictSaga);\n}\n\nexport default trailersSaga;\n","// extracted by mini-css-extract-plugin\nexport default {\"app\":\"App__app___zuSLr\",\"fadeIn\":\"App__fadeIn___flZPQ\",\"blinking\":\"App__blinking___Nsvlq\"};","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"PriceSettingsRulePreviewLayout__header___MqYUV\",\"inner\":\"PriceSettingsRulePreviewLayout__inner___qI24o\",\"form\":\"PriceSettingsRulePreviewLayout__form___Dup3N\",\"button--preview\":\"PriceSettingsRulePreviewLayout__button--preview___tYVr6\",\"field--date\":\"PriceSettingsRulePreviewLayout__field--date___srIuj\",\"field--type\":\"PriceSettingsRulePreviewLayout__field--type___JrmbA\",\"field--trailer\":\"PriceSettingsRulePreviewLayout__field--trailer___qDoC6\",\"field--partner\":\"PriceSettingsRulePreviewLayout__field--partner___v6Wg9\",\"field--country\":\"PriceSettingsRulePreviewLayout__field--country___JABeH\",\"field--action\":\"PriceSettingsRulePreviewLayout__field--action___SV44R\",\"preview\":\"PriceSettingsRulePreviewLayout__preview___oPD16\",\"loader\":\"PriceSettingsRulePreviewLayout__loader___NF2Og\",\"fadeIn\":\"PriceSettingsRulePreviewLayout__fadeIn___JH6oH\",\"blinking\":\"PriceSettingsRulePreviewLayout__blinking___xPqee\"};","export enum FieldsEnum {\n    timeSlotToBoardFerry = 'TIME_SLOT_TO_BOARD_FERRY',\n    timeSlotDisembarkFerry = 'TIME_SLOT_DISEMBARK_FERRY',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.timeSlotToBoardFerry]: string;\n    [FieldsEnum.timeSlotDisembarkFerry]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"DataSourceDropdown__fadeIn___HqLCy\",\"blinking\":\"DataSourceDropdown__blinking___Xwdqp\"};","import * as React from 'react';\nimport isEqual from 'lodash/isEqual';\nimport LinkDropOffIcon, { getLinkDropOffIconProps } from 'common/icons/LinkDropOffIcon';\nimport TruckDropOffIcon, { getTruckDropOffIconProps } from 'common/icons/TruckDropOffIcon';\nimport TrailerDropOffIcon, { getTrailerDropOffIconProps } from 'common/icons/TrailerDropOffIcon';\nimport { InitDropPointT } from './models';\nimport NumberIcon, { NumberIconProps } from 'common/icons/NumberIcon';\nimport { IconMetaT } from 'common/components/GeoSuggest/GeoSuggest';\n\nexport const renderTruckDropOffIcon =\n    (\n        preset: 'assignment-input-normal' | 'assignment-input-selected',\n        initDropPoint: InitDropPointT | null,\n        truckDropOffLocation: LocationT | null,\n        trailerDropOffLocation: LocationT | null,\n    ) =>\n    (iconMeta: IconMetaT) => {\n        if (initDropPoint && isEqual(initDropPoint?.location?.point, truckDropOffLocation?.point)) {\n            return (\n                <NumberIcon\n                    number={(initDropPoint?.index || 0) + 1}\n                    {...NumberIconProps.getAssignmentControlProps(iconMeta)}\n                />\n            );\n        }\n\n        if (\n            !isEqual(initDropPoint?.location?.point, truckDropOffLocation?.point) &&\n            !isEqual(initDropPoint?.location?.point, trailerDropOffLocation?.point) &&\n            isEqual(trailerDropOffLocation?.point, truckDropOffLocation?.point)\n        ) {\n            return <LinkDropOffIcon {...getLinkDropOffIconProps(preset)} />;\n        }\n\n        return <TruckDropOffIcon {...getTruckDropOffIconProps(preset)} />;\n    };\n\nexport const renderTrailerDropOffIcon =\n    (\n        preset: 'assignment-input-normal' | 'assignment-input-selected',\n        initDropPoint: InitDropPointT | null,\n        truckDropOffLocation: LocationT | null,\n        trailerDropOffLocation: LocationT | null,\n    ) =>\n    (iconMeta: IconMetaT) => {\n        if (initDropPoint && isEqual(initDropPoint?.location?.point, trailerDropOffLocation?.point)) {\n            return (\n                <NumberIcon\n                    number={(initDropPoint?.index || 0) + 1}\n                    {...NumberIconProps.getAssignmentControlProps(iconMeta)}\n                />\n            );\n        }\n\n        if (\n            !isEqual(initDropPoint?.location?.point, truckDropOffLocation?.point) &&\n            !isEqual(initDropPoint?.location?.point, trailerDropOffLocation?.point) &&\n            isEqual(trailerDropOffLocation?.point, truckDropOffLocation?.point)\n        ) {\n            return <LinkDropOffIcon {...getLinkDropOffIconProps(preset)} />;\n        }\n\n        return <TrailerDropOffIcon {...getTrailerDropOffIconProps(preset)} />;\n    };\n","// extracted by mini-css-extract-plugin\nexport default {\"submit\":\"ChangePasswordPage__submit___g7TD8\",\"footer-links\":\"ChangePasswordPage__footer-links___kKTxt\",\"footer-links__link\":\"ChangePasswordPage__footer-links__link___Ozp3e\",\"input\":\"ChangePasswordPage__input___GoGEh\",\"fadeIn\":\"ChangePasswordPage__fadeIn___vrc7f\",\"blinking\":\"ChangePasswordPage__blinking___SYQQS\"};","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"AccessDeniedPage__fadeIn___xc5DK\",\"blinking\":\"AccessDeniedPage__blinking___FLlq_\"};","import { SharableStateT } from 'common/store/models';\nimport { ErrorsStateT } from './types';\nimport { ErrorActionT } from 'common/store/errors/models';\n\nexport const selectErrorLogs = (state: SharableStateT): ErrorsStateT['logs'] => state.errors.logs;\n\nexport const selectNewErrorLogs = (state: SharableStateT): ErrorActionT[] => {\n    return state.errors.logs.filter((log) => log.isNew);\n};\n\nexport const selectIsShowErrorModal = (state: SharableStateT): ErrorsStateT['isShowErrorModal'] =>\n    state.errors.isShowErrorModal;\n","import { ApiLocationT, CountryCodeT } from 'common/utils/api/models';\n\nconst prepareLocation = (location: LocationT | null): ApiLocationT | null => {\n    if (!location) {\n        return null;\n    }\n\n    return {\n        country: (location.addressComponents?.countryCode || '') as CountryCodeT,\n        street1: location.addressComponents?.street1 || '',\n        street2: location.addressComponents?.street2 || '',\n        zipCode: location.addressComponents?.zipCode || '',\n        city: location.addressComponents?.city || '',\n        longitude: location.point?.lng,\n        latitude: location.point?.lat,\n    };\n};\n\nexport { prepareLocation };\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './ImportCsv.scss';\nimport { useTranslation } from 'react-i18next';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport DoneIcon from 'common/icons/DoneIcon';\nimport Loader from 'common/components/Loader/Loader';\nimport Button from 'common/components/Button/Button';\nimport { selectUploadCSVFileRequest } from 'broker-admin/store/price-settings/rates/selectors';\nimport { useSelector } from 'react-redux';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { ApiRequestError } from 'common/utils/api/errors/api-request-error';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    onClose: () => void;\n};\n\nconst ImportCsv: React.FC<PropsT> = (props) => {\n    const { onClose } = props;\n\n    const { t } = useTranslation();\n\n    const requestStatus = useSelector(selectUploadCSVFileRequest);\n\n    let content = null;\n\n    if (requestStatus.loading) {\n        content = (\n            <>\n                <div className={cx('status')}>{t('price-settings.rate-matrix.import-csv.status.checking-file')}</div>\n                <div className={cx('status-icon')}>\n                    <Loader size={20} className={cx('loader')} />\n                </div>\n            </>\n        );\n    }\n\n    if (requestStatus.ok) {\n        content = (\n            <>\n                <div className={cx('status')}>{t('price-settings.rate-matrix.import-csv.status.success')}</div>\n                <div className={cx('status-icon')}>\n                    <DoneIcon fillColor={StyleGuideColorsEnum.brandAccent} size={20} />\n                </div>\n                <div className={cx('description')} />\n                <Button\n                    className={cx('action')}\n                    onClick={() => {\n                        onClose();\n                    }}\n                >\n                    {t('price-settings.rate-matrix.import-csv.action.ok')}\n                </Button>\n            </>\n        );\n    }\n\n    if (requestStatus.error) {\n        let errorDescription = requestStatus?.error?.message;\n        if (requestStatus.error instanceof ApiRequestError) {\n            errorDescription = requestStatus?.error?.response?.message;\n        }\n\n        content = (\n            <>\n                <div className={cx('status')}>{t('price-settings.rate-matrix.import-csv.status.wrong')}</div>\n                <div className={cx('status-icon')}>\n                    <CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />\n                </div>\n                <div className={cx('description')}>{errorDescription}</div>\n                <Button\n                    className={cx('action')}\n                    onClick={() => {\n                        onClose();\n                    }}\n                >\n                    {t('price-settings.rate-matrix.import-csv.action.ok')}\n                </Button>\n            </>\n        );\n    }\n\n    return (\n        <div className={cx('wrap')}>\n            <div className={cx('icon')} />\n            <div className={cx('content')}>{content}</div>\n        </div>\n    );\n};\n\nexport default ImportCsv;\n","import { useContext } from 'react';\nimport PartnerContext, { PartnerContextT } from 'common/contexts/partner-context';\n\nconst usePartnerContext = (): PartnerContextT => {\n    return useContext(PartnerContext);\n};\n\nexport default usePartnerContext;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"ExpiredPartnerShipperLaneContractCard__inner___zDIYn\",\"fadeIn\":\"ExpiredPartnerShipperLaneContractCard__fadeIn___bXl7r\",\"blinking\":\"ExpiredPartnerShipperLaneContractCard__blinking____RCAL\"};","// extracted by mini-css-extract-plugin\nexport default {\"dnd-wrap\":\"DnDIconWrap__dnd-wrap___eu68w\",\"icon\":\"DnDIconWrap__icon___Qoy6_\",\"icon--is-hide\":\"DnDIconWrap__icon--is-hide___tMmvs\",\"fadeIn\":\"DnDIconWrap__fadeIn___mbJqi\",\"blinking\":\"DnDIconWrap__blinking___ND688\"};","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\n\ntype PropsT = {\n    transportationOrderNumber: React.ReactNode;\n};\n\nconst TransportationOrderWasCanceledCard: React.FC<PropsT> = React.memo((props) => {\n    const { transportationOrderNumber } = props;\n\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey=\"common:notifications.transportation-order-was-canceled\"\n                components={{\n                    transportationOrderNumber: (\n                        <NotificationEntityLabel isBold isUnderline text={transportationOrderNumber} />\n                    ),\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default TransportationOrderWasCanceledCard;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport moment from 'moment';\nimport { EvidenceOfTaxDetailsChangesT } from 'common/store/documents/models';\nimport { simpleStringFormatter } from 'common/utils/form-formatters';\nimport { FAKE_NO_LIMIT_VALID_TILL_YEAR } from 'common/constants';\n\nconst VALID_TILL_FORMAT = 'YYYY-MM-DD';\n\nconst prepareApproveData = (values: FormValuesT): EvidenceOfTaxDetailsChangesT | null => {\n    const approveData: EvidenceOfTaxDetailsChangesT = {\n        taxId: simpleStringFormatter(values[FieldsEnum.taxId]),\n        iban: simpleStringFormatter(values[FieldsEnum.iban]),\n        bic: simpleStringFormatter(values[FieldsEnum.bic]),\n        validTill: moment().add(FAKE_NO_LIMIT_VALID_TILL_YEAR, 'year').format(VALID_TILL_FORMAT),\n    };\n\n    if (!approveData.taxId || !approveData.iban || !approveData.bic) {\n        return null;\n    }\n\n    const rawVatNumber = simpleStringFormatter(values[FieldsEnum.vatNumber]);\n    if (rawVatNumber) {\n        approveData.vat = rawVatNumber;\n    }\n\n    return approveData;\n};\n\nexport default prepareApproveData;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    size: number;\n    fillColor: StyleGuideColorsEnum;\n    opacity?: number;\n};\n\nconst StartIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, opacity, className, size } = props;\n\n    return (\n        <svg width={size} height={size} viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" className={className}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M0 0h20v20H0z\" />\n                <path fill={fillColor} opacity={opacity || 1} d=\"M6.667 4.167v11.666L15.833 10z\" />\n            </g>\n        </svg>\n    );\n};\n\nStartIcon.displayName = 'StartIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.tomatoRed,\n    opacity: 1,\n    size: DEFAULT_ICON_SIZE,\n};\n\nexport { storyProps };\nexport default StartIcon;\n","import { SpotRequestsStatsT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { ApiSpotRequestsStatsT } from 'broker-admin/utils/api/spot-broker-tranziit/models';\n\nexport const FETCH_SPOT_REQUESTS_STATS_REQUEST = 'broker/spot-requests-stats/FETCH_SPOT_REQUESTS_STATS_REQUEST';\nexport const FETCH_SPOT_REQUESTS_STATS_REQUEST_BEGIN =\n    'broker/spot-requests-stats/FETCH_SPOT_REQUESTS_STATS_REQUEST_BEGIN';\nexport const FETCH_SPOT_REQUESTS_STATS_REQUEST_ERROR =\n    'broker/spot-requests-stats/FETCH_SPOT_REQUESTS_STATS_REQUEST_ERROR';\nexport const FETCH_SPOT_REQUESTS_STATS_REQUEST_SUCCESS =\n    'broker/spot-requests-stats/FETCH_SPOT_REQUESTS_STATS_REQUEST_SUCCESS';\n\nexport type SpotRequestsStatsStateT = {\n    stats: SpotRequestsStatsT | null;\n    fetchRequest: RequestStatusT;\n};\n\nexport type FetchSpotRequestsStatsActionT = {\n    type: typeof FETCH_SPOT_REQUESTS_STATS_REQUEST;\n    options?: FetchOptionsT;\n};\n\nexport type FetchSpotRequestsStatsBeginActionT = {\n    type: typeof FETCH_SPOT_REQUESTS_STATS_REQUEST_BEGIN;\n};\n\nexport type FetchSpotRequestsStatsSuccessActionT = {\n    type: typeof FETCH_SPOT_REQUESTS_STATS_REQUEST_SUCCESS;\n    statistics: ApiSpotRequestsStatsT | null;\n};\n\nexport type FetchSpotRequestsStatsErrorActionT = {\n    type: typeof FETCH_SPOT_REQUESTS_STATS_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type SpotRequestsStatsActionT =\n    | FetchSpotRequestsStatsActionT\n    | FetchSpotRequestsStatsBeginActionT\n    | FetchSpotRequestsStatsSuccessActionT\n    | FetchSpotRequestsStatsErrorActionT;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ShipmentDetailsCard.scss';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport Card from 'design-system/components/Card/Card';\nimport { useTranslation } from 'react-i18next';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport { formatTimeInterval } from 'common/utils/time';\nimport NumberIcon from 'common/icons/NumberIcon';\nimport ShipmentStatusPill from 'common/components/status-pill/ShipmentStatusPill/ShipmentStatusPill';\nimport CargoUnitIcon from 'common/icons/CargoUnitIcon';\nimport UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\nimport { getLoadUnitType } from 'common/utils/units';\nimport WeightIcon from 'common/icons/WeightIcon';\nimport SnowflakeIcon from 'common/icons/SnowflakeIcon';\nimport TemperatureModeFormatter from 'design-system/components/InfoTable/formatters/TemperatureModeFormatter/TemperatureModeFormatter';\nimport CommentIcon from 'common/icons/CommentIcon';\nimport LocationLabel from 'common/components/LocationLabel/LocationLabel';\nimport { TransportOrderDetailsT } from 'common/store/transport-order-details/models';\nimport {\n    ApiReadShipmentAttachedPapersUnavailableReasonT,\n    ApiShipmentAttachedPaperTypeT,\n    ApiTourShipmentEventT,\n    PartnerTypeEnum,\n} from 'common/utils/api/models';\nimport { hideLoaderStatusSet } from 'broker-admin/components/status-machine/footers/ChangeShipmentStatusFooter/constants';\nimport ShipmentWarningPill from 'common/components/status-pill/ShipmentWarningPill/ShipmentWarningPill';\nimport { getShipmentAnchor } from 'common/layouts/TransportOrderDetailsPageLayout/TransportOrderDetails/ShipmentDetailsCard/utils';\nimport ChangeShipmentStatusSidebarFooter from './ChangeShipmentStatusSidebarFooter/ChangeShipmentStatusSidebarFooter';\nimport DetailsOrPapersTabs from 'common/components/entity-details/DetailsOrPapersTabs/DetailsOrPapersTabs';\nimport { ShipmentPapersTabContent } from 'common/components/entity-details/ShipmentPapersTabContent/ShipmentPapersTabContent';\nimport { ShipmentPaperAttachPapersDropdownControl } from 'common/components/papers/ShipmentPaperAttachPapersDropdownControl/ShipmentPaperAttachPapersDropdownControl';\nimport { useSelector } from 'react-redux';\nimport { selectShipmentChangesById } from 'common/store/papers-edit/selectors';\nimport { useRenderPapersTabCount } from 'common/components/papers/hooks/use-render-papers-tab-count';\nimport HighlightedEntityContext from 'common/components/status-machine/contexts/HighlightedEntityContext';\nimport { useAttachPaperForPaperTabRenderTrigger } from 'common/components/papers/ShipmentPaperAttachPapersDropdownControl/hooks';\n\nexport type PropsT = {\n    shipmentNumber: number;\n    isReeferTrailer: boolean;\n    shipment: TransportOrderDetailsT['shipments'][number] | null;\n    pickUpWaypoint: TransportOrderDetailsT['waypoints'][number] | null;\n    dropOffWaypoint: TransportOrderDetailsT['waypoints'][number] | null;\n    keyboardShortcut?: string;\n    className?: string;\n    isReadOnly: boolean;\n    shouldConfirmForCancelLastShipment: boolean;\n    onAttachShipmentPaper: (\n        shipmentId: ShipmentIdT,\n        paperType: ApiShipmentAttachedPaperTypeT,\n        comment?: string,\n    ) => void;\n    getShipmentPaperThumbnailUrl: (shipmentId: ShipmentIdT | null, paperId: PaperIdT | null) => string | null;\n    onOpenGalleryShipmentPaper: (shipmentId: ShipmentIdT, paperId: PaperIdT) => void;\n    onDownloadShipmentPaper: (shipmentId: ShipmentIdT, paperId: PaperIdT) => void;\n    onDeleteShipmentPaper?: (shipmentId: ShipmentIdT, paperId: PaperIdT) => void;\n    onOpenUserDetails: (params: {\n        userId: UserIdT | null;\n        partnerType?: PartnerTypeEnum;\n        partnerId?: PartnerIdT;\n    }) => void;\n    onOpenDriverDetails?: (params: { driverId: DriverIdT; partnerId: PartnerIdT }) => void;\n    readAttachedPapersUnavailableReason?: ApiReadShipmentAttachedPapersUnavailableReasonT | null;\n    tourShipmentActions: ApiTourShipmentEventT[] | null;\n};\n\nconst cx = classNames.bind(styles);\n\nconst ShipmentDetailsCard: React.FC<PropsT> = React.memo((props) => {\n    const {\n        shipmentNumber,\n        shipment,\n        pickUpWaypoint,\n        dropOffWaypoint,\n        isReeferTrailer,\n        keyboardShortcut,\n        className,\n        isReadOnly,\n        shouldConfirmForCancelLastShipment,\n        onAttachShipmentPaper,\n        getShipmentPaperThumbnailUrl,\n        onOpenGalleryShipmentPaper,\n        onDownloadShipmentPaper,\n        onDeleteShipmentPaper,\n        onOpenUserDetails,\n        onOpenDriverDetails,\n        tourShipmentActions,\n        readAttachedPapersUnavailableReason,\n    } = props;\n\n    const { t } = useTranslation();\n    const { highlightedEntityId } = React.useContext(HighlightedEntityContext);\n\n    const shipmentId = shipment?.id || null;\n    const shipmentChanges = useSelector(selectShipmentChangesById(shipmentId));\n\n    const idDetails: Array<InfoTableRowT> = [\n        {\n            icon: null,\n            name: t('common:transport-order-details.shipment-details.columns.shipment-id'),\n            value: shipment?.number,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n        },\n    ];\n\n    const poDetails: Array<InfoTableRowT> = [\n        {\n            icon: null,\n            name: t('common:transport-order-details.shipment-details.columns.po-number'),\n            value: shipment?.purchaseOrderNumber,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n            testSelector: 'po-number',\n        },\n    ];\n\n    const originPointDetails: Array<InfoTableRowT> = [\n        {\n            icon: <NumberIcon number={(pickUpWaypoint?.index || 0) + 1} fillColor={StyleGuideColorsEnum.charcoal} />,\n            name: t('common:transport-order-details.shipment-details.columns.pickup'),\n            value: <LocationLabel format=\"s1_s2_zip_city_country\" location={pickUpWaypoint?.address} />,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n            rows: [\n                {\n                    icon: null,\n                    name: t('common:transport-order-details.shipment-details.columns.time-slot'),\n                    value: formatTimeInterval(pickUpWaypoint?.dateTimeFrom, pickUpWaypoint?.dateTimeTo),\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('common:transport-order-details.shipment-details.columns.company-name'),\n                    value: pickUpWaypoint?.contact?.companyName,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'contact-company-name',\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('common:transport-order-details.shipment-details.columns.contact-name'),\n                    value: pickUpWaypoint?.contact?.fullName,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('common:transport-order-details.shipment-details.columns.contact-phone'),\n                    value: pickUpWaypoint?.contact?.phone,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('common:transport-order-details.shipment-details.columns.contact-email'),\n                    value: pickUpWaypoint?.contact?.email,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('common:transport-order-details.shipment-details.columns.comments'),\n                    value: pickUpWaypoint?.contact?.comment,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                },\n            ],\n        },\n    ];\n\n    const destinationPointDetails: Array<InfoTableRowT> = [\n        {\n            icon: <NumberIcon number={(dropOffWaypoint?.index || 0) + 1} fillColor={StyleGuideColorsEnum.charcoal} />,\n            name: t('common:transport-order-details.shipment-details.columns.delivery'),\n            value: <LocationLabel format=\"s1_s2_zip_city_country\" location={dropOffWaypoint?.address} />,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n            rows: [\n                {\n                    icon: null,\n                    name: t('common:transport-order-details.shipment-details.columns.time-slot'),\n                    value: formatTimeInterval(dropOffWaypoint?.dateTimeFrom, dropOffWaypoint?.dateTimeTo),\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('common:transport-order-details.shipment-details.columns.company-name'),\n                    value: dropOffWaypoint?.contact?.companyName,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'contact-company-name',\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('common:transport-order-details.shipment-details.columns.contact-name'),\n                    value: dropOffWaypoint?.contact?.fullName,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('common:transport-order-details.shipment-details.columns.contact-phone'),\n                    value: dropOffWaypoint?.contact?.phone,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('common:transport-order-details.shipment-details.columns.contact-email'),\n                    value: dropOffWaypoint?.contact?.email,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('common:transport-order-details.shipment-details.columns.comments'),\n                    value: dropOffWaypoint?.contact?.comment,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                },\n            ],\n        },\n    ];\n\n    const shipmentDetails: Array<InfoTableRowT | null> = [\n        {\n            icon: (\n                <CargoUnitIcon\n                    size={DEFAULT_ICON_SIZE}\n                    fillColor={StyleGuideColorsEnum.light}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                />\n            ),\n            name: t('common:transport-order-details.shipment-details.columns.units'),\n            value: <UnitTypeCount type={getLoadUnitType(shipment?.unitsType)} count={shipment?.maxNumberOfUnits} />,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n        },\n        {\n            icon: <WeightIcon fillColor={StyleGuideColorsEnum.gray} />,\n            name: t('common:transport-order-details.shipment-details.columns.weight'),\n            value: <UnitTypeCount count={shipment?.weight} type={UnitTypeEnum.kilogramsAbbreviation} />,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n        },\n        isReeferTrailer\n            ? {\n                  icon: <SnowflakeIcon fillColor={StyleGuideColorsEnum.gray} />,\n                  name: t('common:transport-order-details.shipment-details.columns.temperature-range'),\n                  value: (\n                      <TemperatureModeFormatter\n                          lowestTemperature={shipment?.lowestTemperature}\n                          highestTemperature={shipment?.highestTemperature}\n                      />\n                  ),\n                  valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n              }\n            : null,\n        {\n            icon: <CommentIcon fillColor={StyleGuideColorsEnum.light} strokeColor={StyleGuideColorsEnum.gray} />,\n            name: t('common:transport-order-details.shipment-details.columns.description'),\n            value: shipment?.description,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n        },\n    ];\n\n    const papersBadge = useRenderPapersTabCount({\n        optimisticPapers: shipmentChanges?.optimisticPapers,\n        entityPapers: shipment?.attachedPapers,\n    });\n\n    const takeShotsOfPapersEvent = React.useMemo(() => {\n        return (\n            tourShipmentActions?.find((action) => {\n                return action?.actions?.some((shipmentAction) => {\n                    return shipmentAction?.type === 'TAKE_SHOTS_OF_PAPERS';\n                });\n            }) || null\n        );\n    }, [tourShipmentActions]);\n\n    const { attachPaperRenderTrigger } = useAttachPaperForPaperTabRenderTrigger({\n        triggerText: t('common:papers-card.attach-new'),\n        hasPlusIcon: true,\n        attachPapersUnavailableReason: shipment?.attachPapersUnavailableReason || null,\n    });\n\n    return (\n        <>\n            <Card\n                titleNode={t('common:transport-order-details.shipment-details.title', {\n                    number: shipmentNumber + 1,\n                })}\n                rightNode={\n                    <>\n                        <ShipmentWarningPill isSymmetrical warning={shipment?.warning} />\n                        <ShipmentStatusPill isSymmetrical status={shipment?.status} />\n                    </>\n                }\n                className={className}\n                keyboardShortcut={keyboardShortcut}\n                hasHeaderBottomBorder\n                anchor={getShipmentAnchor(shipment?.id || null)}\n                isHighlighted={highlightedEntityId === shipment?.id}\n                footerNode={\n                    !isReadOnly ? (\n                        <ChangeShipmentStatusSidebarFooter\n                            isShowLoading={!!shipment && !hideLoaderStatusSet.has(shipment?.status)}\n                            takeShotsOfPapersTourShipmentEvent={takeShotsOfPapersEvent}\n                            shipment={shipment || null}\n                            onAttachShipmentPaper={onAttachShipmentPaper}\n                            shouldConfirmForCancelLastShipment={shouldConfirmForCancelLastShipment}\n                        />\n                    ) : null\n                }\n            >\n                <div>\n                    <DetailsOrPapersTabs\n                        papersBadge={papersBadge}\n                        papersTabRightNode={\n                            isReadOnly ? null : (\n                                <ShipmentPaperAttachPapersDropdownControl\n                                    shipmentId={shipmentId}\n                                    onAttachShipmentPaper={onAttachShipmentPaper}\n                                    renderTrigger={attachPaperRenderTrigger}\n                                />\n                            )\n                        }\n                    >\n                        <div className={cx('content')}>\n                            <InfoTable shouldRenderIcons rows={idDetails} className={cx('table', 'table--id')} />\n                            <InfoTable shouldRenderIcons rows={poDetails} className={cx('table', 'table--po')} />\n                            <InfoTable\n                                shouldRenderIcons\n                                rows={originPointDetails}\n                                className={cx('table', 'table--point')}\n                            />\n                            <InfoTable\n                                shouldRenderIcons\n                                rows={destinationPointDetails}\n                                className={cx('table', 'table--point')}\n                            />\n                            <InfoTable\n                                shouldRenderIcons\n                                rows={shipmentDetails}\n                                className={cx('table', 'table--shipment')}\n                            />\n                        </div>\n                        <ShipmentPapersTabContent\n                            attachedPapers={shipment?.attachedPapers || null}\n                            shipmentId={shipmentId}\n                            attachPapersUnavailableReason={shipment?.attachPapersUnavailableReason || null}\n                            readAttachedPapersUnavailableReason={readAttachedPapersUnavailableReason || null}\n                            onOpenUserDetails={onOpenUserDetails}\n                            onOpenDriverDetails={onOpenDriverDetails}\n                            getShipmentPaperThumbnailUrl={getShipmentPaperThumbnailUrl}\n                            onOpenGalleryShipmentPaper={onOpenGalleryShipmentPaper}\n                            onDownloadShipmentPaper={onDownloadShipmentPaper}\n                            onDeleteShipmentPaper={isReadOnly ? undefined : onDeleteShipmentPaper}\n                            onAttachShipmentPaper={isReadOnly ? undefined : onAttachShipmentPaper}\n                        />\n                    </DetailsOrPapersTabs>\n                </div>\n            </Card>\n        </>\n    );\n});\n\nexport default ShipmentDetailsCard;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './ModalDialog.scss';\nimport { ButtonPropsT } from 'common/components/Button/Button';\nimport ModalDialogActions from 'common/components/Modal/ModalDialogActions/ModalDialogActions';\n\nconst cx = classNames.bind(styles);\n\nexport type ModalDialogActionT = ButtonPropsT & { children: React.ReactNode };\n\nexport type ModalDialogPropsT = {\n    width: number;\n    testSelector?: string;\n    actions?: ModalDialogActionT[];\n    icon: React.ReactNode;\n    title: React.ReactNode;\n    message?: React.ReactNode;\n    body?: React.ReactNode;\n    className?: string;\n};\n\nexport const DEFAULT_MODAL_DIALOG_WIDTH = 340;\n\nconst ModalDialog: React.FC<ModalDialogPropsT> = (props) => {\n    const { testSelector, width, body, actions, icon, title, message, children, className } = props;\n\n    const fullTestSelector = `${testSelector}_modal-dialog`;\n\n    return (\n        <div\n            className={cs(\n                cx('wrap', {\n                    'wrap--hasTopPadding': !!actions?.length,\n                }),\n                className,\n            )}\n            data-test-selector={fullTestSelector}\n            style={{\n                width: `${width}px`,\n            }}\n        >\n            <div className={cx('content')}>\n                <div className={cx('icon')}>{icon}</div>\n                <div className={cx('title')}>{title}</div>\n                {!!message && <div className={cx('message')}>{message}</div>}\n                {body}\n            </div>\n            <ModalDialogActions actions={actions} />\n            {children}\n        </div>\n    );\n};\n\nexport default ModalDialog;\n","// extracted by mini-css-extract-plugin\nexport default {\"value\":\"EmissionUnitValue__value___UeR4U\",\"fadeIn\":\"EmissionUnitValue__fadeIn___Ww0yw\",\"blinking\":\"EmissionUnitValue__blinking___V5YRt\"};","import { AnyNotificationT } from 'common/store/notifications/models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport const filterNewNotifications = ({\n    notifications,\n    prevLastUnReadNotification,\n    prevUnReadNotificationsRequest,\n    minTimestamp,\n}: {\n    notifications: AnyNotificationT[];\n    prevLastUnReadNotification: AnyNotificationT | null;\n    prevUnReadNotificationsRequest: RequestStatusT;\n    minTimestamp?: string;\n}): AnyNotificationT[] => {\n    if (!prevUnReadNotificationsRequest.ok) {\n        return [];\n    }\n\n    const isAfterMinTimestamp = (notification: AnyNotificationT): boolean => {\n        return !minTimestamp || notification.timestamp > minTimestamp;\n    };\n\n    // if there is no unread and the request is successful, then all notifications after the cutoff are new.\n    if (!prevLastUnReadNotification) {\n        return notifications.filter(isAfterMinTimestamp);\n    }\n\n    return notifications.filter((notification) => {\n        return notification.timestamp > prevLastUnReadNotification.timestamp && isAfterMinTimestamp(notification);\n    });\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"content--with-top-padding\":\"ListPageHeaderLayout__content--with-top-padding___FrSxO\",\"tools\":\"ListPageHeaderLayout__tools___fVYII\",\"left-tools\":\"ListPageHeaderLayout__left-tools___ICtjJ\",\"right-tools\":\"ListPageHeaderLayout__right-tools___byKsy\",\"filter-tags\":\"ListPageHeaderLayout__filter-tags___Eqvsj\",\"fadeIn\":\"ListPageHeaderLayout__fadeIn___dO2ua\",\"blinking\":\"ListPageHeaderLayout__blinking___KjUSW\"};","type AuthIdTokenT = string;\n\nabstract class BaseSecurityAuthApi {\n    abstract getAuthToken(): Promise<string | null>;\n\n    abstract getAuthHeaders(): Promise<Record<string, string> | null>;\n}\n\nexport { BaseSecurityAuthApi, AuthIdTokenT };\n","import { StateT } from 'broker-admin/store/models';\nimport { BrokerTeamEditByIdStateT } from './slice';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\n\nconst initialTeamEditState: BrokerTeamEditByIdStateT = {\n    updateRequest: requestStatus.initial,\n    deleteRequest: requestStatus.initial,\n};\n\nexport const selectBrokerTeamEditCreateRequestStatus = (state: StateT): RequestStatusT =>\n    state.brokerTeamEdit.createRequest;\n\nexport const selectBrokerTeamEditCreatedTeam = (state: StateT): { id: TeamIdT } | null =>\n    state.brokerTeamEdit.createdTeam;\n\nexport const selectBrokerTeamEditById =\n    (id: TeamIdT | null | undefined) =>\n    (state: StateT): BrokerTeamEditByIdStateT =>\n        state.brokerTeamEdit.byId[id as TeamIdT] || initialTeamEditState;\n\nexport const selectBrokerTeamEditUpdateRequestStatus =\n    (id?: TeamIdT | null | undefined) =>\n    (state: StateT): RequestStatusT =>\n        state.brokerTeamEdit.byId[id as TeamIdT]?.updateRequest || initialTeamEditState.updateRequest;\n\nexport const selectBrokerTeamEditDeleteRequestStatus =\n    (id?: TeamIdT | null | undefined) =>\n    (state: StateT): RequestStatusT =>\n        state.brokerTeamEdit.byId[id as TeamIdT]?.deleteRequest || initialTeamEditState.deleteRequest;\n","import { StatisticSourceEnum } from 'broker-admin/utils/api/broker-tranziit/models';\n\nexport const DEFAULT_DATA_SOURCE = StatisticSourceEnum.import;\n\nexport enum AggregateEnum {\n    rejectedShipperRate = 'rejected-shipper-rate',\n    acceptedShipperRate = 'accepted-shipper-rate',\n    estimatedCarrierRate = 'estimated-carrier-rate',\n    realCarrierRate = 'real-carrier-rate',\n    margin = 'margin',\n}\n","import { StateT } from 'broker-admin/store/models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { SystemSettingsT } from './models';\n\nexport const selectSystemSettings = (state: StateT): SystemSettingsT | null => state.priceSettings.systemSettings.data;\n\nexport const selectSystemSettingsFetchRequest = (state: StateT): RequestStatusT =>\n    state.priceSettings.systemSettings.fetchRequest;\n\nexport const selectSystemSettingsUpdateRequest = (state: StateT): RequestStatusT =>\n    state.priceSettings.systemSettings.updateRequest;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { UnlinkProfileConfirmationDataT } from './models';\n\ntype PropsT = {\n    data: UnlinkProfileConfirmationDataT | null;\n    requestStatus: RequestStatusT;\n    onClose: () => void;\n    onCancel: () => void;\n    onConfirm: (data: UnlinkProfileConfirmationDataT) => void;\n};\n\nconst TEST_SELECTOR = 'unlink-profile-confirmation';\n\nconst UnlinkProfileConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, requestStatus, onClose, onCancel, onConfirm } = props;\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: requestStatus.loading,\n                            onClick: onCancel,\n                        },\n                        {\n                            children: t('partner.details-tab.dialogs.unlink-profile.confirm-action'),\n                            theme: ButtonThemeEnum.danger,\n                            isDisabled: requestStatus.loading,\n                            isLoading: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                    title={t('partner.details-tab.dialogs.unlink-profile.title')}\n                    message={t('partner.details-tab.dialogs.unlink-profile.description')}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default UnlinkProfileConfirmation;\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"ConfirmEmailPage__content___PuarU\",\"error\":\"ConfirmEmailPage__error___spvYD\",\"fadeIn\":\"ConfirmEmailPage__fadeIn___cheLM\",\"blinking\":\"ConfirmEmailPage__blinking___GXtAL\"};","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { BrokerTourStatsT } from './models';\n\nexport type BrokerTourStatsStateT = {\n    stats: BrokerTourStatsT | null;\n    fetchRequest: RequestStatusT;\n};\n\nconst initialState: BrokerTourStatsStateT = {\n    stats: null,\n    fetchRequest: requestStatus.initial,\n};\n\nexport const brokerTourStatsSlice = createSlice({\n    name: 'brokerTourStats',\n    initialState,\n    reducers: {\n        fetchBrokerTourStats: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n        ) => {\n            // nothing - handled by saga\n        },\n        fetchBrokerTourStatsBegin: (state) => {\n            state.fetchRequest = requestStatus.loading;\n        },\n        fetchBrokerTourStatsSuccess: (\n            state,\n            action: PayloadAction<{\n                statistics: BrokerTourStatsT | null;\n            }>,\n        ) => {\n            const { statistics } = action.payload;\n            state.stats = statistics;\n            state.fetchRequest = requestStatus.ok;\n        },\n        fetchBrokerTourStatsError: (\n            state,\n            action: PayloadAction<{\n                error: Error;\n            }>,\n        ) => {\n            const { error } = action.payload;\n            state.fetchRequest = requestStatus.setError(error);\n        },\n    },\n    extraReducers: (builder) => {\n        builder.addCase('auth/destroySession', () => {\n            return initialState;\n        });\n    },\n});\n\nexport const {\n    fetchBrokerTourStats,\n    fetchBrokerTourStatsBegin,\n    fetchBrokerTourStatsSuccess,\n    fetchBrokerTourStatsError,\n} = brokerTourStatsSlice.actions;\n\nexport default brokerTourStatsSlice.reducer;\n","// extracted by mini-css-extract-plugin\nexport default {\"title\":\"EditStopContactForm__title___BjnIN\",\"form\":\"EditStopContactForm__form___reu6K\",\"field--half\":\"EditStopContactForm__field--half___escj2\",\"actions\":\"EditStopContactForm__actions___wBsEO\",\"action--cancel\":\"EditStopContactForm__action--cancel___Qs7n2\",\"action--save\":\"EditStopContactForm__action--save___DSpWj\",\"fadeIn\":\"EditStopContactForm__fadeIn___aGPgj\",\"blinking\":\"EditStopContactForm__blinking___rTFSJ\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './SpotRequestRoute.scss';\nimport { useSelector } from 'react-redux';\nimport { selectSpotRequestDetails } from 'broker-admin/store/spot-request-details/selectors';\nimport { selectRoutingGeometryState } from 'common/store/routing-geometry/selectors';\nimport { isNonNil } from 'common/utils';\nimport { useMemo } from 'react';\nimport { useRouteGeometry } from 'common/utils/hooks/useRouteGeometry';\nimport MultiPointOrderRouteMap, {\n    MultiPointOrderRouteMapPropsT,\n} from 'common/components/MultiPointOrderRouteMap/MultiPointOrderRouteMap';\n\nimport { ApiStopTypeT, StopTypeEnum } from 'common/utils/api/models';\nimport { MapPointT } from 'common/components/MultiPointOrderRouteMap/models';\nimport isNumber from 'lodash/isNumber';\n\nconst spotRequestTypeMap: Record<ApiStopTypeT, MapPointT['type']> = {\n    [StopTypeEnum.pickupTrailer]: 'PICKUP_TRAILER',\n    [StopTypeEnum.pickupTruck]: 'PICKUP_TRUCK',\n    [StopTypeEnum.pickupRoadTrain]: 'PICKUP_ROAD_TRAIN',\n    [StopTypeEnum.pickupDeliveryShipment]: 'SHIPMENT',\n    [StopTypeEnum.driveThrough]: 'DRIVE_THROUGH',\n    [StopTypeEnum.dropAndHook]: 'DROP_AND_HOOK',\n    [StopTypeEnum.dropTrailer]: 'DROP_TRAILER',\n    [StopTypeEnum.dropTruck]: 'DROP_TRUCK',\n    [StopTypeEnum.dropRoadTrain]: 'DROP_ROAD_TRAIN',\n    [StopTypeEnum.ferryOnboard]: 'FERRY_ONBOARD',\n    [StopTypeEnum.ferryDisembark]: 'FERRY_DISEMBARK',\n};\n\ntype PropsT = {\n    id: SpotRequestIdT;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\nconst SpotRequestRoute: React.FC<PropsT> = React.memo((props) => {\n    const { id } = props;\n\n    const { details } = useSelector(selectSpotRequestDetails(id));\n\n    const polylineIds = useMemo(() => {\n        return [details?.polylineId].filter(isNonNil);\n    }, [details?.polylineId]);\n\n    useRouteGeometry(polylineIds);\n\n    const routingGeometryState = useSelector(selectRoutingGeometryState(details?.polylineId));\n\n    const mapPoints = useMemo((): MultiPointOrderRouteMapPropsT['points'] => {\n        return (\n            details?.stops\n                ?.map((stop): MapPointT | null => {\n                    if (!isNumber(stop?.address?.latitude) || !isNumber(stop?.address?.longitude)) {\n                        return null;\n                    }\n\n                    return {\n                        latitude: stop?.address?.latitude,\n                        longitude: stop?.address?.longitude,\n                        index: stop.index || 0,\n                        type: spotRequestTypeMap[stop.type],\n                    };\n                })\n                .filter(isNonNil) || []\n        );\n    }, [details]);\n\n    return (\n        <MultiPointOrderRouteMap\n            key={details?.id}\n            points={mapPoints}\n            route={routingGeometryState.data}\n            routeRequest={routingGeometryState.requestStatus}\n        />\n    );\n});\n\nexport default SpotRequestRoute;\n","const ECLIPSE = '...';\nconst TAIL_LENGTH = 15;\n\nexport const reduceFileNameIfNeed = (fileName: string, limit: number): string => {\n    if (fileName.length < limit - ECLIPSE.length) {\n        return fileName;\n    }\n\n    return [fileName.slice(0, limit - ECLIPSE.length - TAIL_LENGTH), ECLIPSE, fileName.slice(-1 * TAIL_LENGTH)].join(\n        '',\n    );\n};\n\nexport const checkIsPDFFile = (fileName: string | null | undefined): boolean => {\n    if (!fileName) {\n        return false;\n    }\n\n    return /\\.pdf$/.test(fileName);\n};\n","import * as React from 'react';\nimport { memo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { selectCountriesByCode, selectCountriesDictRequest } from 'common/store/countries-dict/selectors';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\nimport { CountryCodeT } from 'common/utils/api/models';\n\nexport type PropsT = {\n    className?: string;\n    countryCode: CountryCodeT | null | undefined;\n};\n\nconst AsyncDictCountryNameLabel: React.FC<PropsT> = memo((props) => {\n    const { className, countryCode } = props;\n\n    const dispatch = useDispatch();\n\n    const countryByCode = useSelector(selectCountriesByCode);\n    const requestStatus = useSelector(selectCountriesDictRequest);\n\n    React.useEffect(() => {\n        dispatch(fetchCountriesDict());\n    }, [dispatch]);\n\n    const country = countryByCode[countryCode as CountryCodeT] || null;\n\n    if (requestStatus.loading) {\n        return <ControlLoaderIcon fillColor={StyleGuideColorsEnum.gray} size={DEFAULT_ICON_SIZE} />;\n    }\n\n    return <span className={className}>{country?.userLangDisplayName}</span>;\n});\n\nexport default AsyncDictCountryNameLabel;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {};\n\nconst LoaderTitle: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n\n    return <div>{t('common:loading')}</div>;\n});\n\nexport default LoaderTitle;\n","export {\n    downloadTenderXLSFile,\n    downloadTenderXLSFileBegin,\n    downloadTenderXLSFileSuccess,\n    downloadTenderXLSFileError,\n    importTenderXLSFile,\n    importTenderXLSFileBegin,\n    importTenderXLSFileSuccess,\n    importTenderXLSFileError,\n    fetchTenderStatus,\n    fetchTenderStatusBegin,\n    fetchTenderStatusSuccess,\n    fetchTenderStatusError,\n    deleteTender,\n    deleteTenderBegin,\n    deleteTenderSuccess,\n    deleteTenderError,\n} from './slice';\n","import React, { useEffect } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './EditDriverSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { FormikContext, useFormik } from 'formik';\nimport { FieldsEnum, FormValuesT } from './EditDriverFormContent/constants';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport prepareApiDriverChanges from './prepare-api-driver-changes';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport { logWarning } from 'common/utils/logger';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport values from 'lodash/values';\nimport EditDriverFormContent from './EditDriverFormContent/EditDriverFormContent';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport {\n    activateDriver,\n    archiveDriver,\n    cancelDriverInvite,\n    fetchDriverDetails,\n    updateDriver,\n} from 'common/store/drivers/actions';\nimport { CommonSidebarDataT, SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { EditDriverDetailsSidebarDataT } from 'common/layouts/SideBars/contents/EditDriverSidebarContent/models';\nimport { useDriverActionOptions } from 'common/layouts/SideBars/contents/DriverDetailsSidebarContent/hooks/use-driver-action-options';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectDriverDetailsById,\n    selectFetchDriverDetailsRequest,\n    selectUpdateDriverRequest,\n} from 'common/store/drivers/selectors';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport ArchiveDriverConfirmation, {\n    ArchiveDriverConfirmationDataT,\n} from 'common/layouts/DriversPageLayout/dialogs/ArchiveDriverConfirmation/ArchiveDriverConfirmation';\nimport ActivateDriverConfirmation, {\n    ActivateDriverConfirmationDataT,\n} from 'common/layouts/DriversPageLayout/dialogs/ActivateDriverConfirmation/ActivateDriverConfirmation';\nimport CancelDriverInviteModal, {\n    CancelDriverInviteConfirmationDataT,\n} from 'common/layouts/DriversPageLayout/dialogs/CancelDriverInviteModal/CancelDriverInviteModal';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport noop from 'lodash/noop';\nimport DriverSidebarHeader from 'common/layouts/SideBars/contents/DriverDetailsSidebarContent/DriverSidebarHeader/DriverSidebarHeader';\nimport useCloseSidebarAfterRequest from 'common/utils/hooks/useCloseSidebarAfterRequest';\nimport DriverStatusPill from 'common/components/status-pill/DriverStatusPill/DriverStatusPill';\nimport FormUnsavedValuesColoredStatus from 'common/components/status-colored/FormUnsavedValuesColoredStatus/FormUnsavedValuesColoredStatus';\n\nconst cx = classNames.bind(styles);\n\nconst ALL_FIELDS = values(FieldsEnum);\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(ALL_FIELDS);\n\ntype PropsT = SidebarContentPropsT<EditDriverDetailsSidebarDataT, CommonSidebarDataT>;\n\nconst EditDriverSidebarContent: React.FC<PropsT> = (props) => {\n    const { data, onClose, onGoBack, setNeedCloseConfirmation } = props;\n\n    const dispatch = useDispatch();\n\n    const { t } = useTranslation();\n\n    const fetchDriverDetailsRequestStatus = useSelector(selectFetchDriverDetailsRequest(data.partnerId));\n\n    const driverDetailsById = useSelector(selectDriverDetailsById(data.partnerId));\n    const driverDetails = driverDetailsById[data.driverId as DriverIdT];\n    React.useEffect(() => {\n        dispatch(fetchDriverDetails(data.driverId, data.partnerId, { isForceUpdate: false }));\n    }, [data, dispatch]);\n\n    const updateDriversRequestStatus = useSelector(selectUpdateDriverRequest(data.partnerId));\n\n    useCloseSidebarAfterRequest(updateDriversRequestStatus, onGoBack || onClose);\n\n    const archiveDriverConfirmation = useModalDialog<ArchiveDriverConfirmationDataT>();\n    const activateDriverConfirmation = useModalDialog<ActivateDriverConfirmationDataT>();\n    const cancelDriverInviteConfirmation = useModalDialog<CancelDriverInviteConfirmationDataT>();\n\n    useCloseModalDialogAfterRequest(updateDriversRequestStatus, [\n        archiveDriverConfirmation,\n        activateDriverConfirmation,\n        cancelDriverInviteConfirmation,\n    ]);\n\n    const headerDropdownOptions = useDriverActionOptions(driverDetails, data.partnerId, {\n        onCancelInvite: cancelDriverInviteConfirmation.setData,\n        onArchiveDriver: archiveDriverConfirmation.setData,\n        onActivateDriver: activateDriverConfirmation.setData,\n    });\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues(driverDetails);\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [driverDetails]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            if (!data.driverId) {\n                logWarning('empty driverId!');\n                return;\n            }\n\n            const driverChanges = prepareApiDriverChanges(values, driverDetails);\n            if (!driverChanges) {\n                logWarning('empty driverChanges!');\n                return;\n            }\n\n            dispatch(updateDriver(data.driverId, driverChanges, data.partnerId));\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n    useEffect(() => {\n        setNeedCloseConfirmation(hasAnyFieldValueChanges);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasAnyFieldValueChanges]);\n\n    const handleConfirmArchive = (data: ArchiveDriverConfirmationDataT): void => {\n        dispatch(archiveDriver(data.driverId, data.companyId));\n    };\n\n    const handleConfirmActivate = (data: ActivateDriverConfirmationDataT): void => {\n        dispatch(activateDriver(data.driverId, data.companyId));\n    };\n\n    const handleConfirmCancelDriverInvite = (data: CancelDriverInviteConfirmationDataT): void => {\n        dispatch(cancelDriverInvite(data.driverUserId, data.companyId));\n    };\n\n    const isLoading = fetchDriverDetailsRequestStatus.loading || updateDriversRequestStatus.loading;\n\n    return (\n        <FormikContext.Provider value={formik}>\n            <form onSubmit={formik.handleSubmit} className={cx('form')}>\n                {isLoading && <LoaderOverlay />}\n                <HeaderSideBarLayout>\n                    <HeaderSideBarContent\n                        onGoBack={onGoBack}\n                        title={driverDetails ? <DriverSidebarHeader driverDetails={driverDetails} /> : null}\n                        afterTitleNode={\n                            driverDetails ? (\n                                <DriverStatusPill isSymmetrical status={driverDetails.status || null} />\n                            ) : null\n                        }\n                        dropdownOptions={headerDropdownOptions}\n                        rightNode={<>{hasAnyFieldValueChanges && <FormUnsavedValuesColoredStatus />}</>}\n                        onClose={onClose}\n                    />\n                </HeaderSideBarLayout>\n                <SideBarLayout>\n                    <EditDriverFormContent\n                        driverDetails={driverDetails}\n                        allowShowChanges\n                        isHideMobilePhoneField={!driverDetails?.hasAuthentication}\n                    />\n                </SideBarLayout>\n                <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n                <FooterSideBarLayout hasPaddings>\n                    <div className={cx('actions')}>\n                        <Button\n                            className={cx('actions__action', 'actions__action--cancel')}\n                            theme={ButtonThemeEnum.secondary}\n                            onClick={onGoBack ? () => onGoBack({ needCloseConfirmation: false }) : noop}\n                        >\n                            {t('common:form-actions.cancel')}\n                        </Button>\n                        <Button\n                            className={cx('actions__action', 'actions__action--update')}\n                            theme={ButtonThemeEnum.primary}\n                            type=\"submit\"\n                        >\n                            {t('common:driver-details.update-contact')}\n                        </Button>\n                    </div>\n                </FooterSideBarLayout>\n            </form>\n            <ArchiveDriverConfirmation\n                data={archiveDriverConfirmation.data}\n                onConfirm={handleConfirmArchive}\n                onCancel={archiveDriverConfirmation.onCancel}\n                onClose={archiveDriverConfirmation.onClose}\n                requestStatus={updateDriversRequestStatus}\n            />\n            <ActivateDriverConfirmation\n                data={activateDriverConfirmation.data}\n                onConfirm={handleConfirmActivate}\n                onCancel={activateDriverConfirmation.onCancel}\n                onClose={activateDriverConfirmation.onClose}\n                requestStatus={updateDriversRequestStatus}\n            />\n            <CancelDriverInviteModal\n                data={cancelDriverInviteConfirmation.data}\n                onConfirm={handleConfirmCancelDriverInvite}\n                onCancel={cancelDriverInviteConfirmation.onCancel}\n                onClose={cancelDriverInviteConfirmation.onClose}\n                requestStatus={updateDriversRequestStatus}\n            />\n        </FormikContext.Provider>\n    );\n};\n\nexport default EditDriverSidebarContent;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"FiltersTrigger__fadeIn___vXoJJ\",\"blinking\":\"FiltersTrigger__blinking___EfB2S\"};","// extracted by mini-css-extract-plugin\nexport default {\"loader\":\"ControlLoaderLabel__loader___Cys4g\",\"loader--is-invert\":\"ControlLoaderLabel__loader--is-invert___BmVAy\",\"loader__text\":\"ControlLoaderLabel__loader__text___CWOQv\",\"loader__text--is-invert\":\"ControlLoaderLabel__loader__text--is-invert___UhqBz\",\"fadeIn\":\"ControlLoaderLabel__fadeIn___a0AjA\",\"blinking\":\"ControlLoaderLabel__blinking___Ig33N\"};","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport TimeWindowIcon from 'common/icons/TimeWindowIcon';\n\nexport type PropsT = {\n    className?: string;\n    children?: React.ReactNode;\n};\n\nconst DelayingWarningAlert: React.FC<PropsT> = React.memo(({ className, children }) => {\n    return (\n        <Alert\n            icon={\n                <TimeWindowIcon strokeColor={StyleGuideColorsEnum.white} fillColor={StyleGuideColorsEnum.transparent} />\n            }\n            size={AlertSizeEnum.small}\n            theme={AlertThemeEnum.orange}\n            className={className}\n        >\n            {children}\n        </Alert>\n    );\n});\n\nexport default DelayingWarningAlert;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"BrokerOrderListPage__fadeIn___ZorDt\",\"blinking\":\"BrokerOrderListPage__blinking___7IaUl\"};","import {\n    FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_BEGIN,\n    FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_ERROR,\n    FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_SUCCESS,\n    GroupedNotificationCountsActionT,\n    GroupedNotificationCountsStateT,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: GroupedNotificationCountsStateT = {\n    fetchRequest: requestStatus.initial,\n    counts: null,\n};\n\nexport default (\n    state = initialState,\n    action: GroupedNotificationCountsActionT | DestroySessionActionT,\n): GroupedNotificationCountsStateT => {\n    switch (action.type) {\n        case FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_BEGIN: {\n            return {\n                ...state,\n                fetchRequest: requestStatus.loading,\n            };\n        }\n\n        case FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_SUCCESS: {\n            const { counts } = action;\n\n            return {\n                ...state,\n                fetchRequest: requestStatus.ok,\n                counts,\n            };\n        }\n\n        case FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                fetchRequest: requestStatus.setError(error),\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default: {\n            return state;\n        }\n    }\n};\n","import * as React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport Modal from 'common/components/Modal/Modal';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { ContractDetailsChangesT } from 'common/store/carrier-contracts/models';\n\nexport type ConfirmApproveContractModalDataT = {\n    contractId: CarrierContractIdT;\n    contractChanges: ContractDetailsChangesT;\n};\n\ntype PropsT = {\n    data: ConfirmApproveContractModalDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onConfirm: (data: ConfirmApproveContractModalDataT) => void;\n    isLoading: boolean;\n    name: string | undefined;\n};\n\nconst TEST_SELECTOR = 'approve-contract-confirmation';\n\nconst ApproveContractConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { name, data, onClose, onConfirm, isLoading } = props;\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: isLoading,\n                            onClick: () => {\n                                onClose();\n                            },\n                        },\n                        {\n                            children: t('common:error-modal.actions.approve'),\n                            theme: ButtonThemeEnum.primary,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            isLoading,\n                            isDisabled: isLoading,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.brandAccent} />}\n                    title={t('common:carrier-contracts.approve-confirmation.title')}\n                    message={t('common:carrier-contracts.approve-confirmation.description', {\n                        contractName: name,\n                    })}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default ApproveContractConfirmation;\n","import * as React from 'react';\nimport { ApiShipmentStatusT, ShipmentStatusEnum } from 'common/utils/api/models';\nimport ColoredStatusLabel, {\n    PropsT as ColoredStatusLabelPropsT,\n} from 'common/components/ColoredStatusLabel/ColoredStatusLabel';\nimport LoadStatus from 'common/components/status/LoadStatus/LoadStatus';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = Omit<ColoredStatusLabelPropsT, 'label' | 'color'> & {\n    status: ApiShipmentStatusT | null | undefined;\n};\n\nexport const LOAD_STATUS_COLOR_MAP: Record<ApiShipmentStatusT, StyleGuideColorsEnum> = {\n    [ShipmentStatusEnum.awaitingLoading]: StyleGuideColorsEnum.light,\n    [ShipmentStatusEnum.loading]: StyleGuideColorsEnum.light,\n    [ShipmentStatusEnum.inTransit]: StyleGuideColorsEnum.light,\n    [ShipmentStatusEnum.unloading]: StyleGuideColorsEnum.light,\n    [ShipmentStatusEnum.delivered]: StyleGuideColorsEnum.mediumGreen,\n    [ShipmentStatusEnum.canceled]: StyleGuideColorsEnum.light,\n};\n\nconst ShipmentColoredStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status, ...restProps } = props;\n\n    if (!status) {\n        return null;\n    }\n\n    const color = LOAD_STATUS_COLOR_MAP[status];\n\n    return <ColoredStatusLabel {...restProps} label={<LoadStatus status={status} />} color={color} />;\n});\n\nexport default ShipmentColoredStatus;\n","import * as React from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\n\ntype PropsT = {\n    addressType: Api2.Definitions.NotificationAddressType;\n    verified: boolean;\n};\n\nconst ADDRESS_TYPE_I18N_MAP: Record<Api2.Definitions.NotificationAddressType, string> = {\n    LEGAL: 'common:notifications.business-partner-address-verification.address-types.legal',\n    POSTAL: 'common:notifications.business-partner-address-verification.address-types.postal',\n    BILLING: 'common:notifications.business-partner-address-verification.address-types.billing',\n};\n\nconst BusinessPartnerAddressVerificationCard: React.FC<PropsT> = React.memo((props) => {\n    const { addressType, verified } = props;\n    const { t } = useTranslation();\n\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey={\n                    verified\n                        ? 'common:notifications.business-partner-address-verification.verified'\n                        : 'common:notifications.business-partner-address-verification.unverified'\n                }\n                components={{\n                    addressType: <NotificationEntityLabel text={t(ADDRESS_TYPE_I18N_MAP[addressType])} isBold />,\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default BusinessPartnerAddressVerificationCard;\n","import { FetchStatisticsQueryT } from 'broker-admin/store/statistics/models';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from './query-models';\nimport { StatisticGranularityEnum, StatisticSourceEnum } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { getDateFromDate } from 'common/utils/time';\nimport { DEFAULT_DATA_SOURCE } from 'broker-admin/layouts/StatisticsPage/constants';\nimport { ApiCountriesT } from 'common/utils/api/models';\n\nconst prepareFetchQuery = (\n    queryFilters: QueryFiltersT,\n    selectedGranularity: StatisticGranularityEnum,\n    dates: DateRangeT | null,\n): FetchStatisticsQueryT | null => {\n    if (!dates?.from || !dates?.to) {\n        return null;\n    }\n\n    const shippedId = queryFilters[QueryFiltersKeysEnum.shipperId];\n    const carrierId = queryFilters[QueryFiltersKeysEnum.carrierId];\n\n    return {\n        granularity: selectedGranularity,\n        source: (queryFilters[QueryFiltersKeysEnum.dataSource] as StatisticSourceEnum) || DEFAULT_DATA_SOURCE,\n        toDate: getDateFromDate(dates.to),\n        fromDate: getDateFromDate(dates.from),\n        destinationCountry: (queryFilters[QueryFiltersKeysEnum.toCountryCode] as ApiCountriesT) || undefined,\n        destinationZipCode: queryFilters[QueryFiltersKeysEnum.toZipCode] || undefined,\n        originCountry: (queryFilters[QueryFiltersKeysEnum.fromCountryCode] as ApiCountriesT) || undefined,\n        originZipCode: queryFilters[QueryFiltersKeysEnum.fromZipCode] || undefined,\n        shippedIds: shippedId ? [shippedId] : undefined,\n        carrierIds: carrierId ? [carrierId] : undefined,\n    };\n};\n\nexport { prepareFetchQuery };\n","import * as React from 'react';\n\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport TransparentTrigger, {\n    ReflectionThemeEnum,\n    TransparentTriggerPropsT,\n} from 'common/components/TransparentTrigger/TransparentTrigger';\n\nexport type TransparentTriggerWithTooltipPropsT = {\n    tooltipContent?: React.ReactNode;\n    tooltipPosition?: TooltipPositionEnum;\n    onClick: (event: React.MouseEvent<HTMLElement>) => void;\n    transparentTriggerProps: Partial<TransparentTriggerPropsT>;\n};\n\nconst TransparentTriggerWithTooltip: React.FC<TransparentTriggerWithTooltipPropsT> = (props) => {\n    const { tooltipContent, onClick, transparentTriggerProps, tooltipPosition } = props;\n\n    return (\n        <Tooltip\n            position={tooltipPosition || TooltipPositionEnum.topCenter}\n            theme={TooltipThemeEnum.black}\n            tooltipNode={\n                tooltipContent ? (\n                    <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                        {tooltipContent}\n                    </TooltipContent>\n                ) : null\n            }\n        >\n            {() => (\n                <TransparentTrigger\n                    onClick={onClick}\n                    reflectionTheme={ReflectionThemeEnum.light}\n                    {...transparentTriggerProps}\n                />\n            )}\n        </Tooltip>\n    );\n};\n\nexport default TransparentTriggerWithTooltip;\n","import * as React from 'react';\n\nimport CloseIcon from 'common/icons/CloseIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    onCancel: () => void;\n};\n\nconst CancelServiceMaintanceTooltipContent: React.FC<PropsT> = React.memo((props) => {\n    const { onCancel, className } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <Button\n            leftIcon={<CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n            className={className}\n            theme={ButtonThemeEnum.transparentLightAlpha}\n            testSelector=\"cancel-service-maintance\"\n            onClick={onCancel}\n        >\n            {t('common:vehicle-schedule.event-tooltip.service-maintenance.trigger')}\n        </Button>\n    );\n});\n\nexport default CancelServiceMaintanceTooltipContent;\n","import { CountryCodeT } from 'common/utils/api/models';\n\nexport enum FieldsEnum {\n    companyName = 'companyName',\n    countryCode = 'countryCode',\n    zipCode = 'zipCode',\n    city = 'city',\n    street1 = 'street1',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.companyName]: string;\n    [FieldsEnum.countryCode]: CountryCodeT | null;\n    [FieldsEnum.zipCode]: string;\n    [FieldsEnum.city]: string;\n    [FieldsEnum.street1]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"SaveFooterContent__content___p9k1i\",\"action\":\"SaveFooterContent__action___w2nJ1\",\"fadeIn\":\"SaveFooterContent__fadeIn___HQuTw\",\"blinking\":\"SaveFooterContent__blinking___AvEuJ\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './DriverAssignOptionLabel.scss';\nimport Avatar, { AvatarSizeEnum } from 'common/components/Avatar/Avatar';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    driver: {\n        label: string;\n    };\n};\n\nconst DriverAssignOptionLabel: React.FC<PropsT> = React.memo((props) => {\n    const { driver } = props;\n\n    return (\n        <div className={cx('option')}>\n            <div className={cx('column')}>\n                <Avatar className={cx('avatar')} hash={driver.label || ''} size={AvatarSizeEnum.small} />\n            </div>\n            <div className={cx('column')}>{driver.label}</div>\n        </div>\n    );\n});\n\nexport default DriverAssignOptionLabel;\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkNotEmpty, checkRangeNotIncludeDisabledDates } from 'common/utils/form-validators';\nimport isNumber from 'lodash/isNumber';\nimport { CountrySettingsByCodeT } from 'common/store/country-settings-dict/models';\nimport { checkIsAvailableCountryForServiceMaintananceAsset } from 'common/store/country-settings-dict/utils/check-location';\n\nconst REQUIRED_FIELDS = [FieldsEnum.dateRange, FieldsEnum.dropoffLocation] as const;\n\ntype MetaT = {\n    disabledDates: string[];\n    countriesSettingsByCode: CountrySettingsByCodeT;\n};\n\nconst validate = (t: TFunction, values: FormValuesT, meta: MetaT): FormErrorsT => {\n    const { disabledDates, countriesSettingsByCode } = meta;\n\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n        ...checkRangeNotIncludeDisabledDates(t, [FieldsEnum.dateRange], values, disabledDates),\n    };\n\n    if (\n        values[FieldsEnum.dropoffLocation] &&\n        (!isNumber(values[FieldsEnum.dropoffLocation]?.point?.lng) ||\n            !isNumber(values[FieldsEnum.dropoffLocation]?.point?.lat))\n    ) {\n        errors[FieldsEnum.dropoffLocation] = t('common:assets.set-unavailable.errors.wrong-location');\n    }\n\n    const dropoffLocation = values[FieldsEnum.dropoffLocation];\n    if (!checkIsAvailableCountryForServiceMaintananceAsset(dropoffLocation, countriesSettingsByCode)) {\n        errors[FieldsEnum.dropoffLocation] = t('common:assets.set-unavailable.errors.unsupported-country');\n    }\n\n    return errors;\n};\n\nexport default validate;\n","// extracted by mini-css-extract-plugin\nexport default {\"contract-name\":\"PartnerName__contract-name___OTaMI\",\"fadeIn\":\"PartnerName__fadeIn___M9XtE\",\"blinking\":\"PartnerName__blinking___OohYZ\"};","import React from 'react';\n\nimport { ArrayHelpers, FieldArray, FormikProps, useFormikContext } from 'formik';\nimport get from 'lodash/get';\n\nexport type ChildrenPropsT<FormValuesT, FieldValueT> = OverwriteT<\n    ArrayHelpers,\n    {\n        push: (obj: FieldValueT) => void;\n        insert: (index: number, value: FieldValueT) => void;\n        replace: (index: number, value: FieldValueT) => void;\n        unshift: (value: FieldValueT) => number;\n    }\n> & {\n    form: FormikProps<FormValuesT>;\n};\n\nexport type PropsT<TFieldValues extends FieldValues, TFieldPath extends FieldPath<TFieldValues>> = {\n    name: TFieldPath;\n    children: (\n        values: FieldPathValue<TFieldValues, TFieldPath>,\n        props: ChildrenPropsT<TFieldValues, FieldPathValue<TFieldValues, TFieldPath>[number]>,\n    ) => React.ReactElement | null;\n};\n\nconst FormikFieldArray = <TFieldValues extends FieldValues, TFieldPath extends FieldPath<TFieldValues>>(\n    props: PropsT<TFieldValues, TFieldPath>,\n) => {\n    const { name, children } = props;\n\n    const formik = useFormikContext<TFieldValues>();\n    const values = get(formik.values, name);\n\n    return <FieldArray name={name} render={(props) => children(values, props)} />;\n};\n\nexport default React.memo(FormikFieldArray) as typeof FormikFieldArray;\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkBirthday, checkDate, checkEmail, checkNotEmpty, checkPhoneNumber } from 'common/utils/form-validators';\n\nconst REQUIRED_FIELDS = [FieldsEnum.firstName, FieldsEnum.lastName, FieldsEnum.position, FieldsEnum.language] as const;\nconst BIRTHDAY_FIELDS = [FieldsEnum.birthday] as const;\nconst DATE_FIELDS = [FieldsEnum.birthday] as const;\nconst EMAIL_FIELDS = [FieldsEnum.email] as const;\nconst PHONE_FIELDS = [FieldsEnum.desktopPhone, FieldsEnum.mobilePhone] as const;\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n        ...checkBirthday(t, BIRTHDAY_FIELDS, values),\n        ...checkDate(t, DATE_FIELDS, values),\n        ...checkEmail(t, EMAIL_FIELDS, values),\n        ...checkPhoneNumber(t, PHONE_FIELDS, values),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","import { AsyncFormErrorsT, FieldsEnum } from './constants';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { AuthErrorTypeEnum, checkIsAuthApiError } from 'common/utils/api/auth/errors/auth-api-error';\n\nconst asyncValidate = (requestStatus: RequestStatusT): AsyncFormErrorsT => {\n    if (!checkIsAuthApiError(requestStatus.error)) {\n        return {};\n    }\n\n    if (\n        requestStatus.error?.type === AuthErrorTypeEnum.expiredActionCode ||\n        requestStatus.error?.type === AuthErrorTypeEnum.invalidActionCode ||\n        requestStatus.error?.type === AuthErrorTypeEnum.userNotFound ||\n        requestStatus.error?.type === AuthErrorTypeEnum.userDisabled ||\n        requestStatus.error?.type === AuthErrorTypeEnum.weakPassword ||\n        requestStatus.error?.type === AuthErrorTypeEnum.failUpdatePassword ||\n        requestStatus.error?.type === AuthErrorTypeEnum.failReauthenticateWithCredential\n    ) {\n        return {\n            [FieldsEnum.password]: requestStatus.error.type,\n        };\n    }\n\n    return {};\n};\n\nexport default asyncValidate;\n","import * as React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\n\nconst OrderWasPlacedCard: React.FC = React.memo(() => {\n    const { t } = useTranslation();\n\n    return <NotificationCardInnerLayout>{t('common:notifications.order-was-placed')}</NotificationCardInnerLayout>;\n});\n\nexport default OrderWasPlacedCard;\n","import { PartnersStateT } from './types';\nimport { StateT } from '../models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport const selectPartnersPages = (state: StateT): PartnersStateT['pages'] => state.partners.pages;\n\nexport const selectPartnersQuery = (state: StateT): PartnersStateT['query'] => state.partners.query;\n\nexport const selectPartnersTotal = (state: StateT): PartnersStateT['total'] => state.partners.total;\n\nexport const selectPartnersByIds = (state: StateT): PartnersStateT['byId'] => state.partners.byId;\n\nexport const selectPartnerCreationRequest = (state: StateT): RequestStatusT => state.partners.createPartnerRequest;\n","export enum FieldsEnum {\n    urgentOrderProcessingDelay = 'URGENT_ORDER_PROCESSING_DELAY',\n    regularOrderProcessingDelay = 'REGULAR_ORDER_PROCESSING_DELAY',\n    minWindowSize = 'MIN_WINDOW_SIZE',\n    maxWindowSize = 'MAX_WINDOW_SIZE',\n    brokerWorkingHours = 'brokerWorkingHours',\n    orderCreationSeconds = 'ORDER_CREATION_SECONDS',\n    quantumMinutes = 'QUANTUM_MINUTES',\n    mapPrecisionDelta = 'MAP_PRECISION_DELTA',\n    hvoEmissionPercent = 'HVO_EMISSION_PERCENT',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.urgentOrderProcessingDelay]: string;\n    [FieldsEnum.regularOrderProcessingDelay]: string;\n    [FieldsEnum.minWindowSize]: string;\n    [FieldsEnum.maxWindowSize]: string;\n    [FieldsEnum.brokerWorkingHours]: [number, number];\n    [FieldsEnum.orderCreationSeconds]: string;\n    [FieldsEnum.quantumMinutes]: string;\n    [FieldsEnum.mapPrecisionDelta]: string;\n    [FieldsEnum.hvoEmissionPercent]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import * as React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport Modal from 'common/components/Modal/Modal';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { useDictDocumentById } from 'common/layouts/BaseDocumentsLayout/hooks/use-dict-document';\nimport BigTrashIcon from 'common/icons/BigTrashIcon';\n\nexport type ConfirmRevokeDocumentModalDataT = {\n    id: DocumentIdT;\n    partnerType: PartnerTypeEnum;\n    dictDocumentId: DictDocumentFakeIdT;\n};\n\ntype PropsT = {\n    data: ConfirmRevokeDocumentModalDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onConfirm: (id: ConfirmRevokeDocumentModalDataT['id']) => void;\n    requestStatus: RequestStatusT;\n};\n\nconst TEST_SELECTOR = 'revoke-document-confirmation';\n\nconst RevokeDocumentsConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, onClose, onConfirm, requestStatus } = props;\n    const { t } = useTranslation();\n\n    const dictDocument = useDictDocumentById(data?.partnerType, data?.dictDocumentId);\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.keep'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_keep`,\n                            isDisabled: requestStatus.loading,\n                            onClick: () => {\n                                onClose();\n                            },\n                        },\n                        {\n                            children: t('common:error-modal.actions.revoke'),\n                            theme: ButtonThemeEnum.danger,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            isLoading: requestStatus.loading,\n                            isDisabled: requestStatus.loading,\n                            onClick: () => {\n                                onConfirm(data.id);\n                            },\n                        },\n                    ]}\n                    icon={<BigTrashIcon />}\n                    title={t('common:documents.revoke-confirmation.title')}\n                    message={t('common:documents.revoke-confirmation.description', {\n                        document: dictDocument?.name,\n                    })}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default RevokeDocumentsConfirmation;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './TrailerFiltersSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport DatePicker, { DatePickerOverlayPositionEnum } from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport getQueryFilters from './get-query-filters';\nimport getInitialValues from './get-initial-values';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport Input from 'common/components/Input/Input';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { isDeepEqual } from 'common/utils/deep-equal';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { createJsonParams, createPageNumberParam, mergeQueryFilters } from 'common/utils/query';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport { CommonSidebarDataT, SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { TrailerFiltersSidebarDataT } from './models';\nimport { useQueryParams } from 'use-query-params';\nimport { QueryFiltersT, QueryKeysEnum } from 'common/layouts/TrailersPageLayout/query-models';\nimport { CarrierContractStatusEnum, TrailerStatusEnum } from 'common/utils/api/models';\nimport TrailerStatusMultipleDropdown from 'common/components/dropdowns/TrailerStatusMultipleDropdown/TrailerStatusMultipleDropdown';\nimport CountryMultipleDropdown from 'common/components/dropdowns/CountryMultipleDropdown/CountryMultipleDropdown';\nimport DictTrailerMultipleDropdown from 'common/components/dropdowns/DictTrailerMultipleDropdown/DictTrailerMultipleDropdown';\nimport UserMultipleDropdown from 'common/components/dropdowns/UserMultipleDropdown/UserMultipleDropdown';\nimport ContractMultipleDropdown from 'common/components/dropdowns/ContractMultipleDropdown/ContractMultipleDropdown';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport SelectedFilters from 'common/layouts/TrailersPageLayout/SelectedFilters/SelectedFilters';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = SidebarContentPropsT<TrailerFiltersSidebarDataT, CommonSidebarDataT>;\n\nconst TRAILER_EXCLUDE_STATUSES: Array<TrailerStatusEnum> = [TrailerStatusEnum.archived];\n\nconst EXCLUDED_STATUSES_SET = new Set([\n    CarrierContractStatusEnum.waitingForApprove,\n    CarrierContractStatusEnum.rejected,\n]);\n\nconst TrailerFiltersSidebarContent: React.FC<PropsT> = (props) => {\n    const { onClose } = props;\n    const { t } = useTranslation();\n\n    const { partnerId } = usePartnerContext();\n\n    const [query, changeQuery] = useQueryParams({\n        [QueryKeysEnum.trailersPage]: createPageNumberParam(),\n        [QueryKeysEnum.trailersFilters]: createJsonParams<QueryFiltersT>({}),\n    });\n    const queryFilters = query[QueryKeysEnum.trailersFilters];\n\n    const [initialQueryFilters, setInitialQueryFilters] = React.useState<QueryFiltersT>(queryFilters);\n\n    React.useEffect(() => {\n        setInitialQueryFilters(queryFilters);\n    }, [queryFilters]);\n\n    const initialValues = React.useMemo(() => getInitialValues(queryFilters), [queryFilters]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialValues,\n        onSubmit: (values, formikHelpers): void => {\n            const newQueryFilters = getQueryFilters(values);\n            const mergedQueryFilters = mergeQueryFilters(initialQueryFilters, newQueryFilters);\n\n            changeQuery({\n                [QueryKeysEnum.trailersPage]: 0,\n                [QueryKeysEnum.trailersFilters]: mergedQueryFilters,\n            });\n\n            formikHelpers.setTouched({});\n\n            if (onClose) {\n                onClose();\n            }\n        },\n    });\n\n    const isSameValues = React.useMemo(() => {\n        return isDeepEqual(initialValues, formik.values) && isDeepEqual(initialQueryFilters, queryFilters);\n    }, [initialValues, formik.values, initialQueryFilters, queryFilters]);\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('form')}>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent title={t('common:trailers-page.filters.title')} onClose={onClose} />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--type')}\n                        name={FieldsEnum.dictTrailerTypeId}\n                        error={formik.errors[FieldsEnum.dictTrailerTypeId]}\n                        meta={formik.getFieldMeta(FieldsEnum.dictTrailerTypeId)}\n                        label={t('common:trailers-page.filters.fields.trailer-type.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DictTrailerMultipleDropdown\n                                values={formik.values[FieldsEnum.dictTrailerTypeId]}\n                                onChange={props.onChange}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasClearControl\n                                isShortLabel\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--status')}\n                        name={FieldsEnum.status}\n                        error={formik.errors[FieldsEnum.status]}\n                        meta={formik.getFieldMeta(FieldsEnum.status)}\n                        label={t('common:trailers-page.filters.fields.status.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <TrailerStatusMultipleDropdown\n                                excludeStatuses={TRAILER_EXCLUDE_STATUSES}\n                                value={formik.values[FieldsEnum.status]}\n                                onChange={props.onChange}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--plate-number')}\n                        name={FieldsEnum.plateNumber}\n                        label={t('common:trailers-page.filters.fields.plate-number.label')}\n                        error={formik.errors[FieldsEnum.plateNumber]}\n                        meta={formik.getFieldMeta(FieldsEnum.plateNumber)}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <Input\n                                name={FieldsEnum.plateNumber}\n                                value={formik.values[FieldsEnum.plateNumber]}\n                                placeholder={t('common:trailers-page.filters.fields.plate-number.placeholder')}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field--country')}\n                        name={FieldsEnum.country}\n                        error={formik.errors[FieldsEnum.country]}\n                        meta={formik.getFieldMeta(FieldsEnum.country)}\n                        label={t('common:trailers-page.filters.fields.country.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <CountryMultipleDropdown\n                                values={formik.values[FieldsEnum.country]}\n                                onChange={props.onChange}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--date')}\n                        name={FieldsEnum.lastTelematicUpdateDates}\n                        error={formik.errors[FieldsEnum.lastTelematicUpdateDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.lastTelematicUpdateDates)}\n                        label={t('common:trailers-page.filters.fields.telematic-update-dates.label')}\n                        tooltipNode={\n                            <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                {t('common:trailers-page.filters.fields.telematic-update-dates.tooltip')}\n                            </TooltipContent>\n                        }\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.lastTelematicUpdateDates]}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--contract')}\n                        name={FieldsEnum.contractId}\n                        error={formik.errors[FieldsEnum.contractId]}\n                        meta={formik.getFieldMeta(FieldsEnum.contractId)}\n                        label={t('common:trailers-page.filters.fields.contract.label')}\n                        tooltipNode={\n                            <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                {t('common:trailers-page.filters.fields.contract.tooltip')}\n                            </TooltipContent>\n                        }\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <ContractMultipleDropdown\n                                hasNoneOption\n                                values={formik.values[FieldsEnum.contractId]}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                                onChange={(values, labels) => {\n                                    props.onChange(values);\n                                    formik.setFieldValue(FieldsEnum.contractName, labels);\n                                }}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                companyId={partnerId}\n                                hasClearControl\n                                excludedStatusesSet={EXCLUDED_STATUSES_SET}\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--date')}\n                        name={FieldsEnum.createDates}\n                        error={formik.errors[FieldsEnum.createDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.createDates)}\n                        label={t('common:trailers-page.filters.fields.creation-dates.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.createDates]}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--user')}\n                        name={FieldsEnum.createdByUserId}\n                        error={formik.errors[FieldsEnum.createdByUserId]}\n                        meta={formik.getFieldMeta(FieldsEnum.createdByUserId)}\n                        label={t('common:trailers-page.filters.fields.creation-user.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <UserMultipleDropdown\n                                companyId={partnerId}\n                                initialValues={formik.values[FieldsEnum.createdByUserId]}\n                                initialLabels={formik.values[FieldsEnum.createdByUserName]}\n                                values={formik.values[FieldsEnum.createdByUserId]}\n                                onSelect={(userId, userName) => {\n                                    props.onChange(userId);\n                                    formik.setFieldValue(FieldsEnum.createdByUserName, userName);\n                                }}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasClearControl\n                                isShowAllBrokerUsersOption\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--date')}\n                        name={FieldsEnum.lastModifyDates}\n                        error={formik.errors[FieldsEnum.lastModifyDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.lastModifyDates)}\n                        label={t('common:trailers-page.filters.fields.last-modify-dates.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.lastModifyDates]}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--user')}\n                        name={FieldsEnum.lastModifyByUserId}\n                        error={formik.errors[FieldsEnum.lastModifyByUserId]}\n                        meta={formik.getFieldMeta(FieldsEnum.lastModifyByUserId)}\n                        label={t('common:trailers-page.filters.fields.last-modify-user.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <UserMultipleDropdown\n                                companyId={partnerId}\n                                initialValues={formik.values[FieldsEnum.lastModifyByUserId]}\n                                initialLabels={formik.values[FieldsEnum.lastModifyByUserName]}\n                                values={formik.values[FieldsEnum.lastModifyByUserId]}\n                                onSelect={(userId, userName) => {\n                                    props.onChange(userId);\n                                    formik.setFieldValue(FieldsEnum.lastModifyByUserName, userName);\n                                }}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasClearControl\n                                isShowAllBrokerUsersOption\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n            </SideBarLayout>\n            <FooterSideBarLayout hasPaddings>\n                <div className={cx('selected-filters')}>\n                    <SelectedFilters queryFilters={initialQueryFilters} setQueryFilters={setInitialQueryFilters} />\n                </div>\n                <Button\n                    theme={ButtonThemeEnum.primary}\n                    isDisabled={isSameValues}\n                    isFullWidth\n                    isCenterContent\n                    type=\"submit\"\n                >\n                    {t('common:trailers-page.filters.submit')}\n                </Button>\n            </FooterSideBarLayout>\n        </form>\n    );\n};\n\nexport default TrailerFiltersSidebarContent;\n","import * as React from 'react';\nimport { ReactNode } from 'react';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport { useTranslation } from 'react-i18next';\nimport { clientConfig } from 'common/utils/client-config';\n\ntype PropsT = {\n    fullName: ReactNode;\n    userId: UserIdT | null | undefined;\n    onOpenUserDetails: (userId: UserIdT, isBrokerUser: boolean) => void;\n    byBroker?: boolean;\n};\n\nconst UserLinkFormatter: React.FC<PropsT> = React.memo((props) => {\n    const { fullName, userId, onOpenUserDetails, byBroker } = props;\n\n    const { t } = useTranslation();\n\n    if (byBroker && !clientConfig.isBrokerProject) {\n        return <div>{t('common:broker-name')}</div>;\n    }\n\n    if (!userId) {\n        return null;\n    }\n\n    return (\n        <Link\n            onClick={() => {\n                onOpenUserDetails(userId, !!byBroker);\n            }}\n            theme={LinkThemeEnum.boldBrandDark}\n        >\n            {fullName}\n        </Link>\n    );\n});\n\nexport default UserLinkFormatter;\n","export enum FieldsEnum {\n    driverId = 'driverId',\n    teamDriverId = 'teamDriverId',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.driverId]: DriverIdT | null;\n    [FieldsEnum.teamDriverId]: DriverIdT | null;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import * as React from 'react';\nimport { ApiRFQStatusT, RFQStatusEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    status: ApiRFQStatusT | null | undefined;\n};\n\nexport const RFQ_STATUS_T_MAP: Record<ApiRFQStatusT, string> = {\n    [RFQStatusEnum.open]: 'common:rfq-status.OPEN',\n    [RFQStatusEnum.expireSoon]: 'common:rfq-status.EXPIRE_SOON',\n    [RFQStatusEnum.expired]: 'common:rfq-status.EXPIRED',\n    [RFQStatusEnum.completed]: 'common:rfq-status.COMPLETED',\n    [RFQStatusEnum.closed]: 'common:rfq-status.CLOSED',\n};\n\nconst RFQStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return null;\n    }\n\n    return t(RFQ_STATUS_T_MAP[status]);\n});\n\nexport default RFQStatus;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"WarningIndicatorCell__fadeIn___Ixygv\",\"blinking\":\"WarningIndicatorCell__blinking___fKoj8\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './RFQStats.scss';\nimport DatePicker, { DatePickerOverlayPositionEnum } from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport moment from 'moment/moment';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { fetchRFQStats, resetRFQStats } from 'broker-admin/store/partner/rfq-stats/actions';\nimport { selectCompanyDocumentsGroup, selectRFQStatsRequest } from 'broker-admin/store/partner/rfq-stats/selectors';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport { logWarning } from 'common/utils/logger';\n\ntype PropsT = {};\n\nconst cx = classNames.bind(styles);\n\nconst DATE_FORMAT = 'YYYY-MM-DD';\n\nconst TODAY = moment().format();\n\nconst RFQStats: React.FC<PropsT> = React.memo(() => {\n    const dispatch = useDispatch();\n\n    const { partnerId } = usePartnerContext();\n\n    const requestStatus = useSelector(selectRFQStatsRequest);\n\n    const partnerRFQStats = useSelector(selectCompanyDocumentsGroup(partnerId));\n\n    const [dates, setDates] = React.useState<DateRangeT | null>(() => {\n        const { query } = partnerRFQStats;\n\n        const queryFrom = query?.fromDate;\n        const queryTo = query?.toDate;\n        if (queryFrom && queryTo) {\n            const parsedFrom = moment(queryFrom, DATE_FORMAT);\n            const parsedTo = moment(queryTo, DATE_FORMAT);\n\n            if (parsedFrom.isValid() && parsedTo.isValid() && parsedTo.isAfter(parsedFrom)) {\n                return {\n                    from: parsedFrom.toDate(),\n                    to: moment(queryTo, DATE_FORMAT).toDate(),\n                };\n            }\n        }\n\n        const defaultDateTo = moment().toDate();\n        const defaultDateFrom = moment().subtract(1, 'month').toDate();\n\n        return {\n            from: defaultDateFrom,\n            to: defaultDateTo,\n        };\n    });\n\n    React.useEffect(() => {\n        return () => {\n            dispatch(resetRFQStats());\n        };\n    }, [dispatch]);\n\n    React.useEffect(() => {\n        if (!dates) {\n            return;\n        }\n\n        if (!partnerId) {\n            logWarning('Empty partnerId or dates in RFQStats useEffect');\n            return;\n        }\n\n        const { from, to } = dates;\n        if (!from || !to || !partnerId) {\n            return;\n        }\n\n        dispatch(\n            fetchRFQStats({\n                companyId: partnerId,\n                fromDate: moment(from).format(DATE_FORMAT),\n                toDate: moment(to).format(DATE_FORMAT),\n            }),\n        );\n    }, [dispatch, partnerId, dates]);\n\n    return (\n        <form\n            className={cx('form')}\n            onSubmit={(event) => {\n                // enter interceptor\n                event.stopPropagation();\n                event.preventDefault();\n            }}\n        >\n            <DatePicker\n                isRange\n                className={cx('dates')}\n                inputClassName={cx('input-dates')}\n                value={dates}\n                maxDate={TODAY}\n                hasYearMonthForm\n                onChange={setDates}\n                overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n            />\n            <PillLabel className={cx('pill')} isSymmetrical theme={PillLabelThemeEnum.charcoal}>\n                {requestStatus?.loading ? (\n                    <ControlLoaderIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />\n                ) : (\n                    <span className={cx('count')}>{partnerRFQStats.stats?.count}</span>\n                )}\n            </PillLabel>\n        </form>\n    );\n});\n\nexport default RFQStats;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './DocumentMessage.scss';\n\ntype PropsT = {\n    icon?: React.ReactNode;\n    title?: React.ReactNode;\n    description?: React.ReactNode;\n};\n\nconst cx = classNames.bind(styles);\n\nconst DocumentMessage: React.FC<PropsT> = React.memo((props) => {\n    const { icon, title, description } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <div className={cx('icon')}>{icon}</div>\n            <div className={cx('title')}>{title}</div>\n            <div className={cx('description')}>{description}</div>\n        </div>\n    );\n});\n\nexport default DocumentMessage;\n","import * as React from 'react';\nimport { NotificationTextRendererT } from 'common/components/toasts/NotificationToastsManager/models';\nimport {\n    NotificationLinkFactoryT,\n    NotificationRendererT,\n} from 'common/components/notifications/NotificationsBarContent/models';\nimport StatusChangedCard from 'common/components/notification-cards/StatusChangedCard/StatusChangedCard';\nimport { NotificationActionEnum, NotificationEmotionEnum } from 'common/store/notifications/models';\nimport {\n    ApiNotificationAlertLevelT,\n    ApiOrderStatusT,\n    ApiTourStatusT,\n    PartnerTypeEnum,\n    SubjectTypeEnum,\n} from 'common/utils/api/models';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport TransportOrderColoredStatus from 'common/components/status-colored/TransportOrderColoredStatus/TransportOrderColoredStatus';\nimport ShipmentColoredStatus from 'common/components/status-colored/ShipmentColoredStatus/ShipmentColoredStatus';\nimport {\n    EMOTION_LOAD_STATUS_MAP,\n    EMOTION_ORDER_STATUS_MAP,\n    EMOTION_TOUR_STATUS_MAP,\n    EMOTION_TRANSPORTATION_STATUS_MAP,\n} from 'common/components/toasts/utils';\nimport TourColoredStatus from 'common/components/status-colored/TourColoredStatus/TourColoredStatus';\nimport { AlertToastRendererT } from 'common/components/toasts/AlertToastsManager/models';\nimport { AnyAlert } from 'common/store/alerts/models';\nimport { BrokerAlertTypeEnum, BrokerAnyAlert } from './models';\nimport { AlertEmotionEnum, alertThemeMapByEmotion } from 'common/components/Alert/Alert';\nimport EditIcon from 'common/icons/EditIcon';\nimport AddUserIcon from 'common/icons/AddUserIcon';\nimport AssetLinkIcon from 'common/icons/AssetLinkIcon';\nimport UnlinkIcon from 'common/icons/UnlinkIcon';\nimport UnLockIcon from 'common/icons/UnLockIcon';\nimport LockIcon from 'common/icons/LockIcon';\nimport PadIcon from 'common/icons/PadIcon';\nimport RadarIcon from 'common/icons/RadarIcon';\nimport RouteIcon from 'common/icons/RouteIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport SpotRequestStatusCard from 'common/components/notification-cards/SpotRequestStatusCard/SpotRequestStatusCard';\nimport SpotBidStatusCard from 'common/components/notification-cards/SpotBidStatusCard/SpotBidStatusCard';\nimport RevokedPartnerShipperContractCard from 'broker-admin/components/notification-cards/RevokedPartnerShipperContractCard/RevokedPartnerShipperContractCard';\nimport ExpiredPartnerShipperContractCard from 'broker-admin/components/notification-cards/ExpiredPartnerShipperContractCard/ExpiredPartnerShipperContractCard';\nimport ExpireSoonPartnerShipperContractCard from 'broker-admin/components/notification-cards/ExpireSoonPartnerShipperContractCard/ExpireSoonPartnerShipperContractCard';\nimport UpdatedPartnerCarrierContractCard from 'broker-admin/components/notification-cards/UpdatedPartnerCarrierContractCard/UpdatedPartnerCarrierContractCard';\nimport RevokedPartnerCarrierContractCard from 'broker-admin/components/notification-cards/RevokedPartnerCarrierContractCard/RevokedPartnerCarrierContractCard';\nimport ExpiredPartnerCarrierContractCard from 'broker-admin/components/notification-cards/ExpiredPartnerCarrierContractCard/ExpiredPartnerCarrierContractCard';\nimport ExpireSoonPartnerCarrierContractCard from 'broker-admin/components/notification-cards/ExpireSoonPartnerCarrierContractCard/ExpireSoonPartnerCarrierContractCard';\nimport UpdatedPartnerShipperContractCard from 'broker-admin/components/notification-cards/UpdatedPartnerShipperContractCard/UpdatedPartnerShipperContractCard';\nimport CompletedPartnerDocumentCard from 'broker-admin/components/notification-cards/CompletedPartnerDocumentCard/CompletedPartnerDocumentCard';\nimport CompletedPartnerShipperContractCard from 'broker-admin/components/notification-cards/CompletedPartnerShipperContractCard/CompletedPartnerShipperContractCard';\nimport CompletedPartnerCarrierContractCard from '../notification-cards/CompletedPartnerCarrierContractCard/CompletedPartnerCarrierContractCard';\nimport UpdatedPartnerShipperLaneContractCard from '../notification-cards/UpdatedPartnerShipperLaneContractCard/UpdatedPartnerShipperLaneContractCard';\nimport RevokedPartnerShipperLaneContractCard from '../notification-cards/RevokedPartnerShipperLaneContractCard/RevokedPartnerShipperLaneContractCard';\nimport ExpiredPartnerShipperLaneContractCard from '../notification-cards/ExpiredPartnerShipperLaneContractCard/ExpiredPartnerShipperLaneContractCard';\nimport CompletedPartnerShipperLaneContractCard from '../notification-cards/CompletedPartnerShipperLaneContractCard/CompletedPartnerShipperLaneContractCard';\nimport ExpireSoonPartnerShipperLaneContractCard from '../notification-cards/ExpireSoonPartnerShipperLaneContractCard/ExpireSoonPartnerShipperLaneContractCard';\nimport TransportationOrderMileagAndPaymentChangedCard from 'broker-admin/components/notification-cards/TransportationOrderMileagAndPaymentChangedCard/TransportationOrderMileagAndPaymentChangedCard';\nimport ShipmentWasCanceledCard from 'common/components/notification-cards/ShipmentWasCanceledCard/ShipmentWasCanceledCard';\nimport ShipmentWasUpdatedCard from 'common/components/notification-cards/ShipmentWasUpdatedCard/ShipmentWasUpdatedCard';\nimport CarrierNoShowForShipmentCard from 'common/components/notification-cards/CarrierNoShowForShipmentCard/CarrierNoShowForShipmentCard';\nimport MissedDeliveryForShipmentCard from 'common/components/notification-cards/MissedDeliveryForShipmentCard/MissedDeliveryForShipmentCard';\nimport InvitedToTeamCard from 'broker-admin/components/notification-cards/InvitedToTeamCard/InvitedToTeamCard';\nimport RemovedFromTeamCard from 'broker-admin/components/notification-cards/RemovedFromTeamCard/RemovedFromTeamCard';\nimport OrderEditedCard from 'common/components/notification-cards/OrderEditedCard/OrderEditedCard';\nimport TransportationOrderDeclinedCard from 'broker-admin/components/notification-cards/TransportationOrderDeclinedCard/TransportationOrderDeclinedCard';\nimport OrderWasPlacedCard from 'common/components/notification-cards/OrderWasPlacedCard/OrderWasPlacedCard';\nimport OrderWasCanceledCard from 'common/components/notification-cards/OrderWasCanceledCard/OrderWasCanceledCard';\nimport OrderStatusChangedCard from 'common/components/notification-cards/OrderStatusChangedCard/OrderStatusChangedCard';\nimport ShipmentStatusChangedCard from 'common/components/notification-cards/ShipmentStatusChangedCard/ShipmentStatusChangedCard';\nimport TourStatusChangedCard from 'common/components/notification-cards/TourStatusChangedCard/TourStatusChangedCard';\nimport OrderRouteWasUpdatedCard from 'common/components/notification-cards/OrderRouteWasUpdatedCard/OrderRouteWasUpdatedCard';\nimport TourOutOfTimeToAssignCarrierCard from 'common/components/notification-cards/TourOutOfTimeToAssignCarrierCard/TourOutOfTimeToAssignCarrierCard';\nimport TourDelayingCard from 'common/components/notification-cards/TourDelayingCard/TourDelayingCard';\nimport TourSpotExpiredCard from 'common/components/notification-cards/TourSpotExpiredCard/TourSpotExpiredCard';\nimport TourSpotCancelledCard from 'common/components/notification-cards/TourSpotCancelledCard/TourSpotCancelledCard';\nimport TourSpotPlacedCard from 'common/components/notification-cards/TourSpotPlacedCard/TourSpotPlacedCard';\nimport TransportationOrderStatusChangedCard from 'common/components/notification-cards/TransportationOrderStatusChangedCard/TransportationOrderStatusChangedCard';\nimport TransportationOrderWasDeclinedCard from 'common/components/notification-cards/TransportationOrderWasDeclinedCard/TransportationOrderWasDeclinedCard';\nimport TransportationOrderWasCanceledCard from 'common/components/notification-cards/TransportationOrderWasCanceledCard/TransportationOrderWasCanceledCard';\nimport TransportationOrderWasPlacedCard from 'common/components/notification-cards/TransportationOrderWasPlacedCard/TransportationOrderWasPlacedCard';\nimport TransportationOrderWasUpdatedCard from 'common/components/notification-cards/TransportationOrderWasUpdatedCard/TransportationOrderWasUpdatedCard';\nimport TransportationOrderAssetsAssignedCard from 'common/components/notification-cards/TransportationOrderAssetsAssignedCard/TransportationOrderAssetsAssignedCard';\nimport TransportationOrderAssetsUnassignedCard from 'common/components/notification-cards/TransportationOrderAssetsUnassignedCard/TransportationOrderAssetsUnassignedCard';\nimport TransportationOrderDriverAssignedCard from 'common/components/notification-cards/TransportationOrderDriverAssignedCard/TransportationOrderDriverAssignedCard';\nimport TransportationOrderDriverUnassignedCard from 'common/components/notification-cards/TransportationOrderDriverUnassignedCard/TransportationOrderDriverUnassignedCard';\nimport TransportationOrderOutOfTimeToAssignAssetsCard from 'common/components/notification-cards/TransportationOrderOutOfTimeToAssignAssetsCard/TransportationOrderOutOfTimeToAssignAssetsCard';\nimport TransportationOrderOutOfTimeToAssignDriverCard from 'common/components/notification-cards/TransportationOrderOutOfTimeToAssignDriverCard/TransportationOrderOutOfTimeToAssignDriverCard';\nimport NotificationSubjectType from 'common/components/notification-cards/entities/NotificationSubjectType/NotificationSubjectType';\nimport BusinessPartnerAddressVerificationCard from 'common/components/notification-cards/BusinessPartnerAddressVerificationCard/BusinessPartnerAddressVerificationCard';\nimport BusinessPartnerProfileUpdatedCard from 'broker-admin/components/notification-cards/BusinessPartnerProfileUpdatedCard/BusinessPartnerProfileUpdatedCard';\nimport { notificationEmotionMapByAlertLevel } from 'common/store/notifications/constants';\nimport AssetLink from 'common/components/notification-cards/entities/AssetLink/AssetLink';\n\nimport { logWarning } from 'common/utils/logger';\nimport { LogTextRendererT, LogViewRendererT, LogViewT } from 'common/components/logs/models';\nimport { LogRecordActionEnum } from 'common/store/subject-logs/models';\nimport WaypointUpdatedCard from 'common/components/notification-cards/WaypointUpdatedCard/WaypointUpdatedCard';\nimport UploadDocumentCard from 'common/components/notification-cards/UploadDocumentCard/UploadDocumentCard';\nimport ApprovedDocumentCard from 'common/components/notification-cards/ApprovedDocumentCard/ApprovedDocumentCard';\nimport RejectedDocumentCard from 'common/components/notification-cards/RejectedDocumentCard/RejectedDocumentCard';\nimport RevokedDocumentCard from 'common/components/notification-cards/RevokedDocumentCard/RevokedDocumentCard';\nimport UpdatedDocumentCard from 'common/components/notification-cards/UpdatedDocumentCard/UpdatedDocumentCard';\nimport ExpireSoonDocumentCard from 'common/components/notification-cards/ExpireSoonDocumentCard/ExpireSoonDocumentCard';\nimport ExpiredDocumentCard from 'common/components/notification-cards/ExpiredDocumentCard/ExpiredDocumentCard';\n\nconst getAlertLevelOrFallback = <T extends { alertLevel?: ApiNotificationAlertLevelT }>(\n    notification: T,\n    fallback: NotificationEmotionEnum,\n): NotificationEmotionEnum => {\n    if (!notification.alertLevel) {\n        return fallback;\n    }\n\n    return notificationEmotionMapByAlertLevel[notification.alertLevel];\n};\n\nexport const renderLog: LogViewRendererT = (log) => {\n    const base: LogViewT = {\n        body: {\n            id: log.id,\n            initiatorType: log.initiatorType,\n            initiatorName: log.initiatorName,\n        },\n        footer: {\n            initiatorType: log.initiatorType,\n            userFullName: log.initiatorName,\n            userId: log.initiatorId,\n            timestamp: log.timestamp,\n        },\n    };\n\n    switch (log.action) {\n        default: {\n            return base;\n        }\n    }\n};\n\nexport const renderLogText: LogTextRendererT = (log) => {\n    switch (log.action) {\n        case LogRecordActionEnum.DOCUMENT_UPLOAD: {\n            return <UploadDocumentCard documentType={log.data.documentType} />;\n        }\n        case LogRecordActionEnum.DOCUMENT_APPROVED: {\n            return <ApprovedDocumentCard documentType={log.data.documentType} />;\n        }\n        case LogRecordActionEnum.DOCUMENT_REJECTED: {\n            return <RejectedDocumentCard documentType={log.data.documentType} />;\n        }\n        case LogRecordActionEnum.DOCUMENT_REVOKED: {\n            return <RevokedDocumentCard documentType={log.data.documentType} />;\n        }\n        case LogRecordActionEnum.DOCUMENT_UPDATED: {\n            return <UpdatedDocumentCard documentType={log.data.documentType} />;\n        }\n        case LogRecordActionEnum.DOCUMENT_EXPIRATION_SOON: {\n            return <ExpireSoonDocumentCard documentType={log.data.documentType} />;\n        }\n        case LogRecordActionEnum.DOCUMENT_EXPIRED: {\n            return <ExpiredDocumentCard documentType={log.data.documentType} />;\n        }\n        case LogRecordActionEnum.WAYPOINT_UPDATED: {\n            const { data } = log;\n\n            return <WaypointUpdatedCard fullAddress={data.fullAddress} updatedFields={data.updatedFields} />;\n        }\n        case LogRecordActionEnum.ORDER_STATUS_CHANGED: {\n            const { data } = log;\n\n            return <OrderStatusChangedCard status={data.status as ApiOrderStatusT} />;\n        }\n        case LogRecordActionEnum.ORDER_PLACED: {\n            return <OrderWasPlacedCard />;\n        }\n        case LogRecordActionEnum.ORDER_CANCELED: {\n            return <OrderWasCanceledCard />;\n        }\n        case LogRecordActionEnum.TOUR_STATUS_CHANGED: {\n            const { data } = log;\n\n            return <TourStatusChangedCard tourNumber={data.tourNumber} status={data.status as ApiTourStatusT} />;\n        }\n        case LogRecordActionEnum.ORDER_ROUTE_UPDATED: {\n            const { data } = log;\n\n            return (\n                <OrderRouteWasUpdatedCard\n                    orderNumber={data.orderNumber}\n                    originCity={data.cityFrom}\n                    destinationCity={data.cityTo}\n                    updatedFields={data.updatedFields}\n                    updatedStops={data.updatedStops}\n                />\n            );\n        }\n        case LogRecordActionEnum.TOUR_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER: {\n            const { data } = log;\n            const isRunOut = Boolean(data.runOutOfTimeToAssignCarrier);\n            const isRunningOut = Boolean(data.runningOutOfTimeToAssignCarrier);\n\n            if (!isRunOut && !isRunningOut) {\n                logWarning(`Empty run out of time flags for log`, { log });\n            }\n\n            return (\n                <TourOutOfTimeToAssignCarrierCard\n                    tourNumber={data.tourNumber}\n                    originCity={data.tourCityFrom ?? data.cityFrom}\n                    destinationCity={data.tourCityTo ?? data.cityTo}\n                    isRunOut={isRunOut}\n                />\n            );\n        }\n        case LogRecordActionEnum.TOUR_DELAYING: {\n            const { data } = log;\n\n            return (\n                <TourDelayingCard\n                    tourNumber={data.tourNumber}\n                    originCity={data.tourCityFrom ?? data.cityFrom}\n                    destinationCity={data.tourCityTo ?? data.cityTo}\n                />\n            );\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_STATUS_CHANGED: {\n            const { data } = log;\n\n            if (data.declined) {\n                return (\n                    <TransportationOrderDeclinedCard\n                        transportationOrderNumber={data.transportationOrderNumber || ''}\n                        orderNumber={data.orderNumber || ''}\n                        cityFrom={data.cityFrom}\n                        cityTo={data.cityTo}\n                        carrierName={data.carrierName || ''}\n                    />\n                );\n            }\n\n            return (\n                <TransportationOrderStatusChangedCard\n                    transportationOrderNumber={data.transportationOrderNumber}\n                    status={data.status}\n                />\n            );\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_DECLINED: {\n            const { data } = log;\n\n            return (\n                <TransportationOrderWasDeclinedCard\n                    transportationOrderNumber={data.transportationOrderNumber}\n                    carrierName={data.carrierName}\n                />\n            );\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_CANCELED: {\n            const { data } = log;\n\n            return <TransportationOrderWasCanceledCard transportationOrderNumber={data.transportationOrderNumber} />;\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_UPDATED: {\n            const { data } = log;\n\n            return (\n                <TransportationOrderWasUpdatedCard\n                    transportationOrderNumber={data.transportationOrderNumber}\n                    updatedFields={data.updatedFields}\n                    updatedStops={data.updatedStops}\n                />\n            );\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_ASSETS_ASSIGNED: {\n            const { data } = log;\n\n            return (\n                <TransportationOrderAssetsAssignedCard\n                    transportationOrderNumber={data.transportationOrderNumber}\n                    truckDetails={\n                        <AssetLink\n                            assetId={data.truckId}\n                            assetModel={data.dictTruckInfo?.model}\n                            assetPlateNumber={data.truckPlateNumber}\n                            assetType=\"truck\"\n                            carrierId={data.carrierId}\n                        />\n                    }\n                    trailerDetails={\n                        <AssetLink\n                            assetId={data.trailerId}\n                            assetModel={data.dictTrailerInfo?.model}\n                            assetPlateNumber={data.trailerPlateNumber}\n                            assetType=\"trailer\"\n                            carrierId={data.carrierId}\n                        />\n                    }\n                />\n            );\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_ASSETS_UNASSIGNED: {\n            const { data } = log;\n\n            return (\n                <TransportationOrderAssetsUnassignedCard transportationOrderNumber={data.transportationOrderNumber} />\n            );\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_DRIVER_ASSIGNED: {\n            const { data } = log;\n\n            return (\n                <TransportationOrderDriverAssignedCard\n                    transportationOrderNumber={data.transportationOrderNumber}\n                    driverName={data.driverName}\n                    teamDriverName={data.teamDriverName}\n                />\n            );\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_DRIVER_UNASSIGNED: {\n            const { data } = log;\n\n            return (\n                <TransportationOrderDriverUnassignedCard transportationOrderNumber={data.transportationOrderNumber} />\n            );\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_ASSETS: {\n            const { data } = log;\n            const isRunOut = Boolean(data.runOutOfTimeToAssignAssets);\n            const isRunningOut = Boolean(data.runningOutOfTimeToAssignAssets);\n\n            if (!isRunOut && !isRunningOut) {\n                logWarning(`Empty run out of time flags for log`, { log });\n            }\n\n            return (\n                <TransportationOrderOutOfTimeToAssignAssetsCard\n                    transportationOrderNumber={data.transportationOrderNumber}\n                    isRunOut={isRunOut}\n                />\n            );\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_DRIVER: {\n            const { data } = log;\n            const isRunOut = Boolean(data.runOutOfTimeToAssignDriver);\n            const isRunningOut = Boolean(data.runningOutOfTimeToAssignDriver);\n\n            if (!isRunOut && !isRunningOut) {\n                logWarning(`Empty run out of time flags for log`, { log });\n            }\n\n            return (\n                <TransportationOrderOutOfTimeToAssignDriverCard\n                    transportationOrderNumber={data.transportationOrderNumber}\n                    isRunOut={isRunOut}\n                />\n            );\n        }\n        case LogRecordActionEnum.TRANSPORTATION_ORDER_PLACED: {\n            const { data } = log;\n\n            return (\n                <TransportationOrderWasPlacedCard\n                    transportationOrderNumber={data.transportationOrderNumber}\n                    truckPlateNumber={data.truckPlateNumber}\n                    truckModel={data.dictTruckInfo?.model}\n                    trailerPlateNumber={data.trailerPlateNumber}\n                    trailerType={data.dictTrailerInfo?.model}\n                />\n            );\n        }\n        case LogRecordActionEnum.SHIPMENT_STATUS_CHANGED: {\n            const { data } = log;\n\n            return <ShipmentStatusChangedCard shipmentNumber={data.shipmentNumber} status={data.status} />;\n        }\n        case LogRecordActionEnum.SHIPMENT_CANCELED: {\n            const { data } = log;\n\n            return <ShipmentWasCanceledCard shipmentNumber={data.shipmentNumber} />;\n        }\n        case LogRecordActionEnum.SHIPMENT_NO_SHOW: {\n            const { data } = log;\n\n            return <CarrierNoShowForShipmentCard shipmentNumber={data.shipmentNumber} />;\n        }\n        case LogRecordActionEnum.SHIPMENT_MISSED: {\n            const { data } = log;\n\n            return <MissedDeliveryForShipmentCard shipmentNumber={data.shipmentNumber} />;\n        }\n        case LogRecordActionEnum.SHIPMENT_UPDATED: {\n            const { data } = log;\n\n            return <ShipmentWasUpdatedCard shipmentNumber={data.shipmentNumber} updatedFields={data.updatedFields} />;\n        }\n        case LogRecordActionEnum.TOUR_SPOT_PLACED: {\n            const { data } = log;\n\n            return <TourSpotPlacedCard tourNumber={data.tourNumber} />;\n        }\n        case LogRecordActionEnum.TOUR_SPOT_EXPIRED: {\n            const { data } = log;\n\n            return <TourSpotExpiredCard spotNumber={data.spotNumber} tourNumber={data.tourNumber} />;\n        }\n        case LogRecordActionEnum.TOUR_SPOT_CANCELLED: {\n            const { data } = log;\n\n            return <TourSpotCancelledCard tourNumber={data.tourNumber} />;\n        }\n        case LogRecordActionEnum.UNKNOWN_ACTION:\n        default: {\n            return null;\n        }\n    }\n};\n\nexport const renderNotificationText: NotificationTextRendererT = (notification) => {\n    switch (notification.action) {\n        case NotificationActionEnum.SHIPMENT_MISSED: {\n            const { data } = notification;\n\n            return <MissedDeliveryForShipmentCard shipmentNumber={data.shipmentNumber} />;\n        }\n        case NotificationActionEnum.SHIPMENT_NO_SHOW: {\n            const { data } = notification;\n\n            return <CarrierNoShowForShipmentCard shipmentNumber={data.shipmentNumber} />;\n        }\n        case NotificationActionEnum.SHIPMENT_CANCELED: {\n            const { data } = notification;\n\n            return <ShipmentWasCanceledCard shipmentNumber={data.shipmentNumber} />;\n        }\n        case NotificationActionEnum.SHIPMENT_UPDATED: {\n            const { data } = notification;\n\n            return <ShipmentWasUpdatedCard shipmentNumber={data.shipmentNumber} updatedFields={data.updatedFields} />;\n        }\n        case NotificationActionEnum.SHIPMENT_STATUS_CHANGED: {\n            const { data } = notification;\n\n            return (\n                <StatusChangedCard\n                    subjectType={SubjectTypeEnum.order}\n                    subjectNumber={data.orderNumber}\n                    originCity={data.cityFrom}\n                    destinationCity={data.cityTo}\n                    actionType={SubjectTypeEnum.shipment}\n                    actionStatus={<ShipmentColoredStatus status={data.status} />}\n                />\n            );\n        }\n\n        case NotificationActionEnum.ORDER_STATUS_CHANGED: {\n            const { data } = notification;\n\n            return <OrderStatusChangedCard status={data.status} />;\n        }\n\n        case NotificationActionEnum.ORDER_EDITED: {\n            const { data } = notification;\n\n            return (\n                <OrderEditedCard\n                    orderNumber={data.orderNumber}\n                    originCity={data.cityFrom}\n                    destinationCity={data.cityTo}\n                />\n            );\n        }\n\n        case NotificationActionEnum.ORDER_PLACED: {\n            return <OrderWasPlacedCard />;\n        }\n\n        case NotificationActionEnum.ORDER_CANCELED: {\n            return <OrderWasCanceledCard />;\n        }\n\n        case NotificationActionEnum.TOUR_STATUS_CHANGED: {\n            const { data } = notification;\n\n            return (\n                <StatusChangedCard\n                    subjectType={SubjectTypeEnum.order}\n                    subjectNumber={data.orderNumber}\n                    originCity={data.cityFrom}\n                    destinationCity={data.cityTo}\n                    actionType={SubjectTypeEnum.tour}\n                    actionStatus={<TourColoredStatus status={data.status} />}\n                />\n            );\n        }\n\n        case NotificationActionEnum.ORDER_ROUTE_UPDATED: {\n            const { data } = notification;\n\n            return (\n                <OrderRouteWasUpdatedCard\n                    orderNumber={data.orderNumber}\n                    originCity={data.cityFrom}\n                    destinationCity={data.cityTo}\n                    updatedFields={data.updatedFields}\n                    updatedStops={data.updatedStops}\n                />\n            );\n        }\n        case NotificationActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_ASSETS: {\n            const { data } = notification;\n            const isRunOut = Boolean(data.runOutOfTimeToAssignAssets);\n            const isRunningOut = Boolean(data.runningOutOfTimeToAssignAssets);\n\n            if (!isRunOut && !isRunningOut) {\n                logWarning(`Empty run out of time flags for notification`, { notification });\n            }\n\n            return (\n                <TransportationOrderOutOfTimeToAssignAssetsCard\n                    transportationOrderNumber={data.transportationOrderNumber}\n                    isRunOut={isRunOut}\n                />\n            );\n        }\n\n        case NotificationActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_DRIVER: {\n            const { data } = notification;\n            const isRunOut = Boolean(data.runOutOfTimeToAssignDriver);\n            const isRunningOut = Boolean(data.runningOutOfTimeToAssignDriver);\n\n            if (!isRunOut && !isRunningOut) {\n                logWarning(`Empty run out of time flags for notification`, { notification });\n            }\n\n            return (\n                <TransportationOrderOutOfTimeToAssignDriverCard\n                    transportationOrderNumber={data.transportationOrderNumber}\n                    isRunOut={isRunOut}\n                />\n            );\n        }\n\n        case NotificationActionEnum.TRANSPORTATION_ORDER_STATUS_CHANGED: {\n            const { data } = notification;\n\n            if (data.declined) {\n                return (\n                    <TransportationOrderDeclinedCard\n                        transportationOrderNumber={data.transportationOrderNumber || ''}\n                        orderNumber={data.orderNumber || ''}\n                        cityFrom={data.cityFrom}\n                        cityTo={data.cityTo}\n                        carrierName={data.carrierName || ''}\n                    />\n                );\n            }\n\n            return (\n                <StatusChangedCard\n                    subjectType={SubjectTypeEnum.order}\n                    subjectNumber={data.orderNumber}\n                    originCity={data.cityFrom}\n                    destinationCity={data.cityTo}\n                    actionType={SubjectTypeEnum.transportationOrder}\n                    actionStatus={<TransportOrderColoredStatus status={data.status} />}\n                />\n            );\n        }\n\n        case NotificationActionEnum.TRANSPORTATION_ORDER_DECLINED: {\n            const { data } = notification;\n\n            return (\n                <TransportationOrderWasDeclinedCard\n                    transportationOrderNumber={data.transportationOrderNumber}\n                    carrierName={data.carrierName}\n                />\n            );\n        }\n\n        case NotificationActionEnum.TRANSPORTATION_ORDER_CANCELED: {\n            const { data } = notification;\n\n            return <TransportationOrderWasCanceledCard transportationOrderNumber={data.transportationOrderNumber} />;\n        }\n\n        case NotificationActionEnum.TRANSPORTATION_ORDER_PLACED: {\n            const { data } = notification;\n\n            return (\n                <TransportationOrderWasPlacedCard\n                    transportationOrderNumber={data.transportationOrderNumber}\n                    truckPlateNumber={data.truckPlateNumber}\n                    truckModel={data.dictTruckInfo?.model}\n                    trailerPlateNumber={data.trailerPlateNumber}\n                    trailerType={data.dictTrailerInfo?.model}\n                />\n            );\n        }\n\n        case NotificationActionEnum.TRANSPORTATION_ORDER_UPDATED: {\n            const { data } = notification;\n\n            return (\n                <TransportationOrderWasUpdatedCard\n                    transportationOrderNumber={data.transportationOrderNumber}\n                    updatedFields={data.updatedFields}\n                    updatedStops={data.updatedStops}\n                />\n            );\n        }\n\n        case NotificationActionEnum.TRANSPORTATION_ORDER_MILEAGE_AND_PAYMENT_CHANGED: {\n            const { data } = notification;\n\n            return (\n                <TransportationOrderMileagAndPaymentChangedCard\n                    number={data.orderNumber || ''}\n                    cityA={data.cityFrom}\n                    cityB={data.cityTo}\n                />\n            );\n        }\n\n        case NotificationActionEnum.TOUR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER:\n        case NotificationActionEnum.TOUR_RUN_OUT_OF_TIME_TO_ASSIGN_CARRIER: {\n            const { data } = notification;\n            const isRunOut = Boolean(data.runOutOfTimeToAssignCarrier);\n\n            if (!isRunOut && !data.runningOutOfTimeToAssignCarrier) {\n                logWarning(`Empty run out of time flags for notification`, { notification });\n            }\n\n            return (\n                <TourOutOfTimeToAssignCarrierCard\n                    tourNumber={data.tourNumber}\n                    originCity={data.tourCityFrom ?? data.cityFrom}\n                    destinationCity={data.tourCityTo ?? data.cityTo}\n                    isRunOut={isRunOut}\n                />\n            );\n        }\n\n        case NotificationActionEnum.TOUR_DELAYING: {\n            const { data } = notification;\n\n            return (\n                <TourDelayingCard\n                    tourNumber={data.tourNumber}\n                    originCity={data.tourCityFrom ?? data.cityFrom}\n                    destinationCity={data.tourCityTo ?? data.cityTo}\n                />\n            );\n        }\n\n        case NotificationActionEnum.SPOT_PLACED: {\n            const { data } = notification;\n\n            return (\n                <SpotRequestStatusCard\n                    type=\"new\"\n                    fromLocation={data.cityFrom}\n                    toLocation={data.cityTo}\n                    spotRequestNumber={data.spotNumber}\n                />\n            );\n        }\n\n        case NotificationActionEnum.SPOT_EXPIRED:\n        case NotificationActionEnum.TOUR_SPOT_EXPIRED: {\n            const { data } = notification;\n\n            return <TourSpotExpiredCard spotNumber={data.spotNumber} tourNumber={data.tourNumber} />;\n        }\n\n        case NotificationActionEnum.SPOT_BID_ACCEPTED:\n        case NotificationActionEnum.SPOT_BID_PLACED: {\n            const { data } = notification;\n\n            return (\n                <SpotBidStatusCard\n                    type=\"new\"\n                    fromLocation={data.cityFrom}\n                    toLocation={data.cityTo}\n                    spotRequestNumber={data.spotNumber}\n                />\n            );\n        }\n\n        case NotificationActionEnum.SPOT_BID_EXPIRED: {\n            const { data } = notification;\n\n            return (\n                <SpotBidStatusCard\n                    type=\"expired\"\n                    fromLocation={data.cityFrom}\n                    toLocation={data.cityTo}\n                    spotRequestNumber={data.spotNumber}\n                />\n            );\n        }\n\n        case NotificationActionEnum.DOCUMENT_UPDATED: {\n            return <UpdatedDocumentCard documentType={notification.data.documentType} />;\n        }\n        case NotificationActionEnum.DOCUMENT_UPLOAD: {\n            return <UploadDocumentCard documentType={notification.data.documentType} />;\n        }\n        case NotificationActionEnum.DOCUMENT_APPROVED: {\n            return <ApprovedDocumentCard documentType={notification.data.documentType} />;\n        }\n        case NotificationActionEnum.DOCUMENT_REJECTED: {\n            return <RejectedDocumentCard documentType={notification.data.documentType} />;\n        }\n\n        case NotificationActionEnum.DOCUMENT_REVOKED: {\n            return <RevokedDocumentCard documentType={notification.data.documentType} />;\n        }\n\n        case NotificationActionEnum.DOCUMENT_EXPIRED: {\n            return <ExpiredDocumentCard documentType={notification.data.documentType} />;\n        }\n        case NotificationActionEnum.DOCUMENT_COMPLETED: {\n            const { data } = notification;\n\n            return (\n                <CompletedPartnerDocumentCard\n                    partnerName={data.companyName || ''}\n                    partnerType={data.companyType || null}\n                    documentType={data.documentType}\n                />\n            );\n        }\n\n        case NotificationActionEnum.DOCUMENT_EXPIRATION_SOON: {\n            return <ExpireSoonDocumentCard documentType={notification.data.documentType} />;\n        }\n\n        case NotificationActionEnum.SHIPPER_CONTRACT_UPDATED: {\n            const { data } = notification;\n\n            return <UpdatedPartnerShipperContractCard contractName={data.contractName || ''} />;\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_REVOKED: {\n            const { data } = notification;\n\n            return <RevokedPartnerShipperContractCard contractName={data.contractName || ''} />;\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_EXPIRED: {\n            const { data } = notification;\n\n            return <ExpiredPartnerShipperContractCard contractName={data.contractName || ''} />;\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_COMPLETED: {\n            const { data } = notification;\n\n            return <CompletedPartnerShipperContractCard contractName={data.contractName || ''} />;\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_EXPIRATION_SOON: {\n            const { data } = notification;\n\n            return <ExpireSoonPartnerShipperContractCard contractName={data.contractName || ''} />;\n        }\n\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_UPDATED: {\n            const { data } = notification;\n\n            return <UpdatedPartnerShipperLaneContractCard id={data.tztLaneId || ''} />;\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_REVOKED: {\n            const { data } = notification;\n\n            return <RevokedPartnerShipperLaneContractCard id={data.tztLaneId || ''} />;\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_EXPIRED: {\n            const { data } = notification;\n\n            return <ExpiredPartnerShipperLaneContractCard id={data.tztLaneId || ''} />;\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_COMPLETED: {\n            const { data } = notification;\n\n            return <CompletedPartnerShipperLaneContractCard id={data.tztLaneId || ''} />;\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_EXPIRATION_SOON: {\n            const { data } = notification;\n\n            return <ExpireSoonPartnerShipperLaneContractCard id={data.tztLaneId || ''} />;\n        }\n\n        case NotificationActionEnum.CARRIER_CONTRACT_UPDATED: {\n            const { data } = notification;\n\n            return <UpdatedPartnerCarrierContractCard contractName={data.contractName || ''} />;\n        }\n        case NotificationActionEnum.CARRIER_CONTRACT_REVOKED: {\n            const { data } = notification;\n\n            return <RevokedPartnerCarrierContractCard contractName={data.contractName || ''} />;\n        }\n        case NotificationActionEnum.CARRIER_CONTRACT_EXPIRED: {\n            const { data } = notification;\n\n            return <ExpiredPartnerCarrierContractCard contractName={data.contractName || ''} />;\n        }\n        case NotificationActionEnum.CARRIER_CONTRACT_EXPIRATION_SOON: {\n            const { data } = notification;\n\n            return <ExpireSoonPartnerCarrierContractCard contractName={data.contractName || ''} />;\n        }\n        case NotificationActionEnum.CARRIER_CONTRACT_COMPLETED: {\n            const { data } = notification;\n\n            return <CompletedPartnerCarrierContractCard contractName={data.contractName || ''} />;\n        }\n        case NotificationActionEnum.TEAM_REMOVED: {\n            const { data } = notification;\n\n            return <RemovedFromTeamCard teamName={data.teamName || ''} />;\n        }\n        case NotificationActionEnum.TEAM_USER_ADDED: {\n            const { data } = notification;\n\n            return <InvitedToTeamCard teamName={data.teamName || ''} />;\n        }\n        case NotificationActionEnum.TEAM_USER_REMOVED: {\n            const { data } = notification;\n\n            return <RemovedFromTeamCard teamName={data.teamName || ''} />;\n        }\n        case NotificationActionEnum.BUSINESS_PARTNER_ADDRESS_VERIFICATION: {\n            const { data } = notification;\n\n            return (\n                <BusinessPartnerAddressVerificationCard\n                    addressType={data.addressType}\n                    verified={data.verified ?? false}\n                />\n            );\n        }\n        case NotificationActionEnum.BROKER_BUSINESS_PARTNER_UPDATED: {\n            const { data } = notification;\n\n            return (\n                <BusinessPartnerProfileUpdatedCard\n                    companyName={data.companyName}\n                    updatedFields={data.updatedFields}\n                    requiredToCheckProfile={data.requiredToCheckProfile}\n                />\n            );\n        }\n        default: {\n            return null;\n        }\n    }\n};\n\nexport const renderNotification: NotificationRendererT = (notification) => {\n    const common = {\n        footer: {\n            timestamp: notification.timestamp,\n            initiatorType: notification.initiatorType,\n            userFullName: notification.initiatorName,\n            userId: notification.initiatorId,\n        },\n    } as const;\n\n    const bodyCommon = {\n        id: notification.id,\n        initiatorName: notification.initiatorName,\n        initiatorType: notification.initiatorType,\n    } as const;\n\n    switch (notification.action) {\n        case NotificationActionEnum.SHIPMENT_MISSED: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    subjectTypeLabel: <NotificationSubjectType subjectType={SubjectTypeEnum.order} isCapitalized />,\n                    subjectNumber: data.orderNumber,\n                    originCity: data.cityFrom,\n                    originCountryCode: data.countryFrom,\n                    destinationCity: data.cityTo,\n                    destinationCountryCode: data.countryTo,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.negative),\n                },\n            };\n        }\n        case NotificationActionEnum.SHIPMENT_NO_SHOW: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    subjectTypeLabel: <NotificationSubjectType subjectType={SubjectTypeEnum.order} isCapitalized />,\n                    subjectNumber: data.orderNumber,\n                    originCity: data.cityFrom,\n                    originCountryCode: data.countryFrom,\n                    destinationCity: data.cityTo,\n                    destinationCountryCode: data.countryTo,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.negative),\n                },\n            };\n        }\n        case NotificationActionEnum.SHIPMENT_CANCELED: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    subjectTypeLabel: <NotificationSubjectType subjectType={SubjectTypeEnum.order} isCapitalized />,\n                    subjectNumber: data.orderNumber,\n                    originCity: data.cityFrom,\n                    originCountryCode: data.countryFrom,\n                    destinationCity: data.cityTo,\n                    destinationCountryCode: data.countryTo,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n        case NotificationActionEnum.SHIPMENT_UPDATED: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    subjectTypeLabel: <NotificationSubjectType subjectType={SubjectTypeEnum.order} isCapitalized />,\n                    subjectNumber: data.orderNumber,\n                    originCity: data.cityFrom,\n                    originCountryCode: data.countryFrom,\n                    destinationCity: data.cityTo,\n                    destinationCountryCode: data.countryTo,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n        case NotificationActionEnum.SHIPMENT_STATUS_CHANGED: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(\n                        notification,\n                        data.status ? EMOTION_LOAD_STATUS_MAP[data.status] : NotificationEmotionEnum.neutral,\n                    ),\n                },\n            };\n        }\n\n        case NotificationActionEnum.ORDER_STATUS_CHANGED: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    subjectTypeLabel: <NotificationSubjectType subjectType={SubjectTypeEnum.order} isCapitalized />,\n                    subjectNumber: data.orderNumber,\n                    originCity: data.cityFrom,\n                    originCountryCode: data.countryFrom,\n                    destinationCity: data.cityTo,\n                    destinationCountryCode: data.countryTo,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(\n                        notification,\n                        data.status ? EMOTION_ORDER_STATUS_MAP[data.status] : NotificationEmotionEnum.neutral,\n                    ),\n                },\n            };\n        }\n\n        case NotificationActionEnum.ORDER_EDITED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n\n        case NotificationActionEnum.ORDER_PLACED: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    subjectTypeLabel: <NotificationSubjectType subjectType={SubjectTypeEnum.order} isCapitalized />,\n                    subjectNumber: data.orderNumber,\n                    originCity: data.cityFrom,\n                    originCountryCode: data.countryFrom,\n                    destinationCity: data.cityTo,\n                    destinationCountryCode: data.countryTo,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n\n        case NotificationActionEnum.TRANSPORTATION_ORDER_PLACED: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    subjectTypeLabel: (\n                        <NotificationSubjectType subjectType={SubjectTypeEnum.transportationOrder} isCapitalized />\n                    ),\n                    subjectNumber: data.transportationOrderNumber,\n                    originCity: data.cityFrom,\n                    originCountryCode: data.countryFrom,\n                    destinationCity: data.cityTo,\n                    destinationCountryCode: data.countryTo,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n\n        case NotificationActionEnum.ORDER_CANCELED: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    subjectTypeLabel: <NotificationSubjectType subjectType={SubjectTypeEnum.order} isCapitalized />,\n                    subjectNumber: data.orderNumber,\n                    originCity: data.cityFrom,\n                    originCountryCode: data.countryFrom,\n                    destinationCity: data.cityTo,\n                    destinationCountryCode: data.countryTo,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.neutral),\n                },\n            };\n        }\n\n        case NotificationActionEnum.TOUR_STATUS_CHANGED: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(\n                        notification,\n                        data.status ? EMOTION_TOUR_STATUS_MAP[data.status] : NotificationEmotionEnum.neutral,\n                    ),\n                },\n            };\n        }\n\n        case NotificationActionEnum.ORDER_ROUTE_UPDATED: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    subjectTypeLabel: <NotificationSubjectType subjectType={SubjectTypeEnum.order} isCapitalized />,\n                    subjectNumber: data.orderNumber,\n                    originCity: data.cityFrom,\n                    originCountryCode: data.countryFrom,\n                    destinationCity: data.cityTo,\n                    destinationCountryCode: data.countryTo,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n\n        case NotificationActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_ASSETS: {\n            const { data } = notification;\n            const isRunOut = Boolean(data.runOutOfTimeToAssignAssets);\n            const isRunningOut = Boolean(data.runningOutOfTimeToAssignAssets);\n\n            if (!isRunOut && !isRunningOut) {\n                logWarning(`Empty run out of time flags for notification`, { notification });\n            }\n\n            return {\n                ...common,\n                header: {\n                    subjectTypeLabel: <NotificationSubjectType subjectType={SubjectTypeEnum.order} isCapitalized />,\n                    subjectNumber: data.orderNumber,\n                    originCity: data.orderCityFrom ?? data.cityFrom,\n                    originCountryCode: data.orderCountryFrom ?? data.countryFrom,\n                    destinationCity: data.orderCityTo ?? data.cityTo,\n                    destinationCountryCode: data.orderCountryTo ?? data.countryTo,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n\n        case NotificationActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_DRIVER: {\n            const { data } = notification;\n            const isRunOut = Boolean(data.runOutOfTimeToAssignDriver);\n            const isRunningOut = Boolean(data.runningOutOfTimeToAssignDriver);\n\n            if (!isRunOut && !isRunningOut) {\n                logWarning(`Empty run out of time flags for notification`, { notification });\n            }\n\n            return {\n                ...common,\n                header: {\n                    subjectTypeLabel: <NotificationSubjectType subjectType={SubjectTypeEnum.order} isCapitalized />,\n                    subjectNumber: data.orderNumber,\n                    originCity: data.orderCityFrom ?? data.cityFrom,\n                    originCountryCode: data.orderCountryFrom ?? data.countryFrom,\n                    destinationCity: data.orderCityTo ?? data.cityTo,\n                    destinationCountryCode: data.orderCountryTo ?? data.countryTo,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n\n        case NotificationActionEnum.TOUR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER:\n        case NotificationActionEnum.TOUR_RUN_OUT_OF_TIME_TO_ASSIGN_CARRIER: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    subjectTypeLabel: <NotificationSubjectType subjectType={SubjectTypeEnum.order} isCapitalized />,\n                    subjectNumber: data.orderNumber,\n                    originCity: data.orderCityFrom ?? data.cityFrom,\n                    originCountryCode: data.orderCountryFrom ?? data.countryFrom,\n                    destinationCity: data.orderCityTo ?? data.cityTo,\n                    destinationCountryCode: data.orderCountryTo ?? data.countryTo,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n\n        case NotificationActionEnum.TOUR_DELAYING: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    subjectTypeLabel: <NotificationSubjectType subjectType={SubjectTypeEnum.order} isCapitalized />,\n                    subjectNumber: data.orderNumber,\n                    originCity: data.orderCityFrom ?? data.cityFrom,\n                    originCountryCode: data.orderCountryFrom ?? data.countryFrom,\n                    destinationCity: data.orderCityTo ?? data.cityTo,\n                    destinationCountryCode: data.orderCountryTo ?? data.countryTo,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n\n        case NotificationActionEnum.TRANSPORTATION_ORDER_STATUS_CHANGED: {\n            const { data } = notification;\n\n            if (data.declined) {\n                return {\n                    ...common,\n                    body: {\n                        ...bodyCommon,\n                        emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                    },\n                };\n            }\n\n            const emotionStatus = data.status\n                ? EMOTION_TRANSPORTATION_STATUS_MAP[data.status]\n                : NotificationEmotionEnum.neutral;\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, emotionStatus),\n                },\n            };\n        }\n\n        case NotificationActionEnum.TRANSPORTATION_ORDER_DECLINED: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    subjectTypeLabel: <NotificationSubjectType subjectType={SubjectTypeEnum.order} isCapitalized />,\n                    subjectNumber: data.orderNumber,\n                    originCity: data.orderCityFrom ?? data.cityFrom,\n                    originCountryCode: data.orderCountryFrom ?? data.countryFrom,\n                    destinationCity: data.orderCityTo ?? data.cityTo,\n                    destinationCountryCode: data.orderCountryTo ?? data.countryTo,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n\n        case NotificationActionEnum.TRANSPORTATION_ORDER_CANCELED: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    subjectTypeLabel: <NotificationSubjectType subjectType={SubjectTypeEnum.order} isCapitalized />,\n                    subjectNumber: data.orderNumber,\n                    originCity: data.cityFrom,\n                    originCountryCode: data.countryFrom,\n                    destinationCity: data.cityTo,\n                    destinationCountryCode: data.countryTo,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n\n        case NotificationActionEnum.TRANSPORTATION_ORDER_UPDATED: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    subjectTypeLabel: <NotificationSubjectType subjectType={SubjectTypeEnum.order} isCapitalized />,\n                    subjectNumber: data.transportationOrderNumber,\n                    originCity: data.cityFrom,\n                    originCountryCode: data.countryFrom,\n                    destinationCity: data.cityTo,\n                    destinationCountryCode: data.countryTo,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n\n        case NotificationActionEnum.TRANSPORTATION_ORDER_MILEAGE_AND_PAYMENT_CHANGED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.negative),\n                },\n            };\n        }\n\n        case NotificationActionEnum.SPOT_PLACED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.neutral),\n                },\n            };\n        }\n\n        case NotificationActionEnum.SPOT_EXPIRED:\n        case NotificationActionEnum.TOUR_SPOT_EXPIRED: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    subjectTypeLabel: <NotificationSubjectType subjectType={SubjectTypeEnum.order} isCapitalized />,\n                    subjectNumber: data.orderNumber,\n                    originCity: data.orderCityFrom ?? data.cityFrom,\n                    originCountryCode: data.orderCountryFrom ?? data.countryFrom,\n                    destinationCity: data.orderCityTo ?? data.cityTo,\n                    destinationCountryCode: data.orderCountryTo ?? data.countryTo,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n\n        case NotificationActionEnum.SPOT_BID_ACCEPTED:\n        case NotificationActionEnum.SPOT_BID_PLACED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.neutral),\n                },\n            };\n        }\n\n        case NotificationActionEnum.SPOT_BID_EXPIRED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.negative),\n                },\n            };\n        }\n\n        case NotificationActionEnum.DOCUMENT_EXPIRED: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    profileName: data.companyName,\n                    profileCountryCode: data.companyCountryCode,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.negative),\n                },\n            };\n        }\n        case NotificationActionEnum.DOCUMENT_UPDATED: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    profileName: data.companyName,\n                    profileCountryCode: data.companyCountryCode,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n        case NotificationActionEnum.DOCUMENT_REVOKED: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    profileName: data.companyName,\n                    profileCountryCode: data.companyCountryCode,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.negative),\n                },\n            };\n        }\n        case NotificationActionEnum.DOCUMENT_UPLOAD: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    profileName: data.companyName,\n                    profileCountryCode: data.companyCountryCode,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.positive),\n                },\n            };\n        }\n        case NotificationActionEnum.DOCUMENT_APPROVED: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    profileName: data.companyName,\n                    profileCountryCode: data.companyCountryCode,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.positive),\n                },\n            };\n        }\n        case NotificationActionEnum.DOCUMENT_REJECTED: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    profileName: data.companyName,\n                    profileCountryCode: data.companyCountryCode,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.negative),\n                },\n            };\n        }\n        case NotificationActionEnum.DOCUMENT_COMPLETED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n        case NotificationActionEnum.DOCUMENT_EXPIRATION_SOON: {\n            const { data } = notification;\n\n            return {\n                ...common,\n                header: {\n                    profileName: data.companyName,\n                    profileCountryCode: data.companyCountryCode,\n                },\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n\n        case NotificationActionEnum.SHIPPER_CONTRACT_EXPIRED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.negative),\n                },\n            };\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_UPDATED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.positive),\n                },\n            };\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_REVOKED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.negative),\n                },\n            };\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_EXPIRATION_SOON: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.negative),\n                },\n            };\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_COMPLETED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_EXPIRED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.negative),\n                },\n            };\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_UPDATED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.positive),\n                },\n            };\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_REVOKED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.negative),\n                },\n            };\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_EXPIRATION_SOON: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.negative),\n                },\n            };\n        }\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_COMPLETED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n\n        case NotificationActionEnum.CARRIER_CONTRACT_EXPIRED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.negative),\n                },\n            };\n        }\n        case NotificationActionEnum.CARRIER_CONTRACT_UPDATED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.positive),\n                },\n            };\n        }\n        case NotificationActionEnum.CARRIER_CONTRACT_REVOKED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.negative),\n                },\n            };\n        }\n        case NotificationActionEnum.CARRIER_CONTRACT_EXPIRATION_SOON: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.negative),\n                },\n            };\n        }\n        case NotificationActionEnum.CARRIER_CONTRACT_COMPLETED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n        case NotificationActionEnum.TEAM_REMOVED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n        case NotificationActionEnum.TEAM_USER_ADDED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.neutral),\n                },\n            };\n        }\n        case NotificationActionEnum.TEAM_USER_REMOVED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n        case NotificationActionEnum.BUSINESS_PARTNER_ADDRESS_VERIFICATION: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n        case NotificationActionEnum.BROKER_BUSINESS_PARTNER_UPDATED: {\n            return {\n                ...common,\n                body: {\n                    ...bodyCommon,\n                    emotion: getAlertLevelOrFallback(notification, NotificationEmotionEnum.attention),\n                },\n            };\n        }\n        default: {\n            return null;\n        }\n    }\n};\n\nexport const getNotificationLink: NotificationLinkFactoryT = (notification) => {\n    switch (notification.action) {\n        case NotificationActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_ASSETS:\n        case NotificationActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_DRIVER:\n        case NotificationActionEnum.TOUR_STATUS_CHANGED:\n        case NotificationActionEnum.ORDER_ROUTE_UPDATED:\n        case NotificationActionEnum.SHIPMENT_MISSED:\n        case NotificationActionEnum.SHIPMENT_NO_SHOW:\n        case NotificationActionEnum.SHIPMENT_CANCELED:\n        case NotificationActionEnum.SHIPMENT_UPDATED:\n        case NotificationActionEnum.SHIPMENT_STATUS_CHANGED: {\n            if (!notification.data.orderId) {\n                logWarning(`Empty orderId for notification`, { notification });\n                return null;\n            }\n\n            return urlFactory.brokerOrderDetails(notification.data.orderId);\n        }\n\n        case NotificationActionEnum.ORDER_STATUS_CHANGED:\n        case NotificationActionEnum.TRANSPORTATION_ORDER_STATUS_CHANGED:\n        case NotificationActionEnum.TRANSPORTATION_ORDER_DECLINED:\n        case NotificationActionEnum.TRANSPORTATION_ORDER_CANCELED:\n        case NotificationActionEnum.TRANSPORTATION_ORDER_UPDATED: {\n            // @ts-expect-error wait orderId from TRANSPORTATION_ORDER_UPDATED\n            if (!notification.data.orderId) {\n                logWarning(`Empty orderId for notification`, { notification });\n                return null;\n            }\n\n            // @ts-expect-error wait orderId from TRANSPORTATION_ORDER_UPDATED\n            return urlFactory.brokerOrderDetails(notification.data.orderId);\n        }\n        case NotificationActionEnum.ORDER_EDITED: {\n            if (!notification.data?.orderId) {\n                logWarning(`Empty orderId for notification`, { notification });\n                return null;\n            }\n\n            return urlFactory.brokerOrderDetails(notification.data.orderId);\n        }\n        case NotificationActionEnum.ORDER_PLACED: {\n            if (!notification.data?.orderId) {\n                logWarning(`Empty orderId for notification`, { notification });\n                return null;\n            }\n\n            return urlFactory.brokerOrderDetails(notification.data.orderId);\n        }\n        case NotificationActionEnum.TRANSPORTATION_ORDER_PLACED: {\n            if (!notification.data.transportationOrderId) {\n                logWarning(`Empty transportationOrderId for notification`, { notification });\n                return null;\n            }\n\n            if (!notification.data.carrierId) {\n                logWarning(`Empty carrierId for notification`, { notification });\n                return null;\n            }\n\n            return urlFactory.partnerTransportOrderDetails(\n                PartnerTypeEnum.carrier,\n                notification.data.carrierId,\n                notification.data.transportationOrderId,\n            );\n        }\n        case NotificationActionEnum.ORDER_CANCELED: {\n            if (!notification.data?.orderId) {\n                logWarning(`Empty orderId for notification`, { notification });\n                return null;\n            }\n\n            return urlFactory.brokerOrderDetails(notification.data.orderId);\n        }\n        case NotificationActionEnum.TRANSPORTATION_ORDER_MILEAGE_AND_PAYMENT_CHANGED: {\n            if (!notification.data.orderId) {\n                logWarning(`Empty orderId for notification`, { notification });\n                return null;\n            }\n\n            return urlFactory.brokerOrderDetails(notification.data.orderId);\n        }\n\n        case NotificationActionEnum.SPOT_PLACED:\n        case NotificationActionEnum.SPOT_BID_PLACED:\n        case NotificationActionEnum.SPOT_BID_ACCEPTED:\n        case NotificationActionEnum.SPOT_BID_EXPIRED: {\n            if (!notification.data.spotId) {\n                logWarning(`Empty spotId for notification`, { notification });\n                return null;\n            }\n\n            return urlFactory.spotRequestDetails(notification.data.spotId);\n        }\n        case NotificationActionEnum.SPOT_EXPIRED:\n        case NotificationActionEnum.TOUR_SPOT_EXPIRED: {\n            if (!notification.data.orderId) {\n                logWarning(`Empty orderId for notification`, { notification });\n                return null;\n            }\n\n            return urlFactory.brokerOrderDetails(notification.data.orderId);\n        }\n        case NotificationActionEnum.DOCUMENT_UPLOAD:\n        case NotificationActionEnum.DOCUMENT_APPROVED:\n        case NotificationActionEnum.DOCUMENT_REJECTED:\n        case NotificationActionEnum.DOCUMENT_EXPIRED:\n        case NotificationActionEnum.DOCUMENT_REVOKED:\n        case NotificationActionEnum.DOCUMENT_UPDATED:\n        case NotificationActionEnum.DOCUMENT_COMPLETED:\n        case NotificationActionEnum.DOCUMENT_EXPIRATION_SOON: {\n            const { documentType, companyType, companyId } = notification.data;\n\n            if (!companyId) {\n                logWarning(`Empty companyId for notification`, { notification });\n                return null;\n            }\n\n            return urlFactory.partnerDocumentDetails(companyId, companyType as PartnerTypeEnum, documentType);\n        }\n\n        case NotificationActionEnum.SHIPPER_CONTRACT_EXPIRED:\n        case NotificationActionEnum.SHIPPER_CONTRACT_REVOKED:\n        case NotificationActionEnum.SHIPPER_CONTRACT_UPDATED:\n        case NotificationActionEnum.SHIPPER_CONTRACT_COMPLETED:\n        case NotificationActionEnum.SHIPPER_CONTRACT_EXPIRATION_SOON: {\n            const { companyType, companyId } = notification.data;\n\n            if (!companyId) {\n                logWarning(`Empty companyId for notification`, { notification });\n                return null;\n            }\n\n            if (!notification.data.contractId) {\n                logWarning(`Empty contractId for notification`, { notification });\n                return null;\n            }\n\n            return urlFactory.partnerShipperContactDetails({\n                partnerId: companyId,\n                partnerType: companyType as PartnerTypeEnum,\n                shipperContractId: notification.data.contractId,\n            });\n        }\n\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_UPLOAD:\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_EXPIRED:\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_REVOKED:\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_UPDATED:\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_COMPLETED:\n        case NotificationActionEnum.SHIPPER_CONTRACT_LANE_EXPIRATION_SOON: {\n            const { companyType, companyId, contractId, laneId } = notification.data;\n\n            if (!companyId) {\n                logWarning(`Empty companyId for notification`, { notification });\n                return null;\n            }\n\n            if (!contractId) {\n                logWarning(`Empty contractId for notification`, { notification });\n                return null;\n            }\n\n            if (!laneId) {\n                logWarning(`Empty laneId for notification`, { notification });\n                return null;\n            }\n\n            return urlFactory.partnerShipperContractLane({\n                partnerId: companyId,\n                partnerType: companyType as PartnerTypeEnum,\n                contractId,\n                laneId,\n            });\n        }\n        case NotificationActionEnum.TEAM_REMOVED: {\n            return null;\n        }\n        case NotificationActionEnum.TEAM_USER_ADDED:\n        case NotificationActionEnum.TEAM_USER_REMOVED: {\n            const { teamId } = notification.data;\n\n            if (!teamId) {\n                logWarning(`Empty teamId for notification`, { notification });\n                return null;\n            }\n\n            return urlFactory.brokerUsersTeam(teamId);\n        }\n        case NotificationActionEnum.CARRIER_CONTRACT_EXPIRED:\n        case NotificationActionEnum.CARRIER_CONTRACT_REVOKED:\n        case NotificationActionEnum.CARRIER_CONTRACT_UPDATED:\n        case NotificationActionEnum.CARRIER_CONTRACT_COMPLETED:\n        case NotificationActionEnum.CARRIER_CONTRACT_EXPIRATION_SOON: {\n            const { companyType, companyId, contractId } = notification.data;\n\n            if (!companyId) {\n                logWarning(`Empty companyId for notification`, { notification });\n                return null;\n            }\n\n            if (!contractId) {\n                logWarning(`Empty contractId for notification`, { notification });\n                return null;\n            }\n\n            return urlFactory.partnerCarrierContactDetails(companyId, companyType as PartnerTypeEnum, contractId);\n        }\n\n        case NotificationActionEnum.TOUR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER:\n        case NotificationActionEnum.TOUR_RUN_OUT_OF_TIME_TO_ASSIGN_CARRIER: {\n            if (!notification.data.orderId) {\n                logWarning(`Empty orderId for notification`, { notification });\n                return null;\n            }\n\n            return urlFactory.brokerOrderDetails(notification.data.orderId);\n        }\n\n        case NotificationActionEnum.TOUR_DELAYING: {\n            if (!notification.data.orderId) {\n                logWarning(`Empty orderId for notification`, { notification });\n                return null;\n            }\n\n            return urlFactory.brokerOrderDetails(notification.data.orderId);\n        }\n\n        case NotificationActionEnum.BUSINESS_PARTNER_ADDRESS_VERIFICATION: {\n            const { companyId, companyType } = notification.data;\n\n            if (!companyType) {\n                return urlFactory.partners();\n            }\n\n            // Determine partner type based on address type\n            // For simplicity, we use shipper, but this can be improved if partner type information is available in the data\n            // Currently using shipper as default, as it's the most common case\n            return urlFactory.partnerDetails(companyType, companyId);\n        }\n\n        case NotificationActionEnum.BROKER_BUSINESS_PARTNER_UPDATED: {\n            const { companyId, companyType } = notification.data;\n\n            if (!companyId) {\n                logWarning(`Empty companyId for notification`, { notification });\n                return null;\n            }\n\n            if (!companyType) {\n                return urlFactory.partners();\n            }\n\n            // Determine partner type\n            // For simplicity, we use shipper, but this can be improved if partner type information is available in the data\n            return urlFactory.partnerDetails(companyType, companyId);\n        }\n\n        default: {\n            return null;\n        }\n    }\n};\n\nconst checkIsBrokerAnyAlert = (anyAlert: AnyAlert | null | undefined): anyAlert is BrokerAnyAlert => {\n    return anyAlert instanceof BrokerAnyAlert;\n};\n\nexport const renderAlertToast: AlertToastRendererT = (t, anyAlert) => {\n    if (!checkIsBrokerAnyAlert(anyAlert)) {\n        return null;\n    }\n\n    switch (anyAlert.payload.type) {\n        case BrokerAlertTypeEnum.tourSentToSpot: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.positive],\n                icon: <RadarIcon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.white} />,\n                text: t('alerts.tour-sent-to-spot'),\n            };\n        }\n        case BrokerAlertTypeEnum.spotRequestCancelled: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.attention],\n                icon: <RadarIcon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.white} />,\n                text: t('alerts.spot-request-cancelled'),\n            };\n        }\n        case BrokerAlertTypeEnum.transportOrderAssigned: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.positive],\n                icon: null,\n                text: t('alerts.transport-order-assigned'),\n            };\n        }\n        case BrokerAlertTypeEnum.assetsAssignedToTour: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.positive],\n                icon: null,\n                text: t('alerts.assets-assigned-to-tour'),\n            };\n        }\n        case BrokerAlertTypeEnum.deadheadTourPlaced: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.normal],\n                icon: null,\n                text: t('alerts.deadhead-tour-placed'),\n            };\n        }\n        case BrokerAlertTypeEnum.transportOrderCancelled: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.attention],\n                icon: null,\n                text: t('alerts.transport-order-cancelled'),\n            };\n        }\n        case BrokerAlertTypeEnum.orderRouteUpdated: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.normal],\n                icon: <RouteIcon fillColor={StyleGuideColorsEnum.white} />,\n                text: t('alerts.order-route-updated'),\n            };\n        }\n        case BrokerAlertTypeEnum.businessPartnerUpdated: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.normal],\n                icon: (\n                    <EditIcon\n                        size={DEFAULT_ICON_SIZE}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                        strokeColor={StyleGuideColorsEnum.white}\n                    />\n                ),\n                text: t('alerts.business-partner-updated'),\n            };\n        }\n        case BrokerAlertTypeEnum.businessPartnerInvited: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.positive],\n                icon: (\n                    <AddUserIcon\n                        fillColor={StyleGuideColorsEnum.transparent}\n                        strokeColor={StyleGuideColorsEnum.white}\n                    />\n                ),\n                text: t('alerts.business-partner-invited'),\n            };\n        }\n        case BrokerAlertTypeEnum.businessPartnerLinkedToExternalProfile: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.positive],\n                icon: <AssetLinkIcon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.white} />,\n                text: t('alerts.business-partner-linked-to-external-profile'),\n            };\n        }\n        case BrokerAlertTypeEnum.businessPartnerUnlinkedFromExternalProfile: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.attention],\n                icon: <UnlinkIcon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.white} />,\n                text: t('alerts.business-partner-unlinked-from-external-profile'),\n            };\n        }\n        case BrokerAlertTypeEnum.businessPartnerUnlocked: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.positive],\n                icon: <UnLockIcon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.white} />,\n                text: t('alerts.business-partner-unlocked'),\n            };\n        }\n        case BrokerAlertTypeEnum.businessPartnerLocked: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.attention],\n                icon: <LockIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.white} />,\n                text: t('alerts.business-partner-locked'),\n            };\n        }\n        case BrokerAlertTypeEnum.businessPartnerAddressVerified: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.positive],\n                icon: <PadIcon fillColor={StyleGuideColorsEnum.transparent} strokeColor={StyleGuideColorsEnum.white} />,\n                text: t('alerts.address-verified'),\n            };\n        }\n        case BrokerAlertTypeEnum.businessPartnerAddressUnverified: {\n            return {\n                id: anyAlert.id,\n                theme: alertThemeMapByEmotion[AlertEmotionEnum.attention],\n                icon: <PadIcon fillColor={StyleGuideColorsEnum.transparent} strokeColor={StyleGuideColorsEnum.white} />,\n                text: t('alerts.address-unverified'),\n            };\n        }\n        default: {\n            return null;\n        }\n    }\n\n    // TODO\n    return null;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"PriceSettingsRules__fadeIn___MBEDk\",\"blinking\":\"PriceSettingsRules__blinking___jjFqJ\"};","import { v4 as uuidv4 } from 'uuid';\n\nexport type AnyAlertPayloadT<T = string, D = any> = {\n    type: T;\n    data: D;\n};\n\nexport class AnyAlert<P = AnyAlertPayloadT> {\n    id: AlertIdT;\n\n    payload: P;\n\n    constructor(payload: P) {\n        this.id = uuidv4();\n        this.payload = payload;\n    }\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"overlay\":\"PriceRuleOperationMultipleDropdown__overlay___js8gq\",\"fadeIn\":\"PriceRuleOperationMultipleDropdown__fadeIn___cbZbe\",\"blinking\":\"PriceRuleOperationMultipleDropdown__blinking___ojUx2\"};","import * as React from 'react';\nimport DropdownControlOptionLabel, {\n    DropdownControlOptionLabelPropsT,\n} from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\n\ntype PropsT = DropdownControlOptionLabelPropsT & {\n    tooltipPosition?: TooltipPositionEnum;\n    tooltipContent: React.ReactNode;\n};\n\nconst DropdownControlOptionLabelWithTooltip: React.FC<PropsT> = (props) => {\n    const { tooltipContent, tooltipPosition, ...restProps } = props;\n\n    return (\n        <Tooltip\n            position={tooltipPosition || TooltipPositionEnum.centerLeft}\n            theme={TooltipThemeEnum.black}\n            tooltipNode={\n                tooltipContent ? (\n                    <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                        {tooltipContent}\n                    </TooltipContent>\n                ) : null\n            }\n        >\n            {() => <DropdownControlOptionLabel {...restProps} />}\n        </Tooltip>\n    );\n};\n\nexport default DropdownControlOptionLabelWithTooltip;\n","import { AuthErrorTypeEnum } from 'common/utils/api/auth/errors/auth-api-error';\n\nexport enum FieldsEnum {\n    email = 'email',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.email]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n\nexport type AsyncFormErrorsT = Partial<{\n    [FieldsEnum.email]: AuthErrorTypeEnum.userNotFound | AuthErrorTypeEnum.unknown;\n}>;\n","import * as React from 'react';\n\ntype PropsT = {\n    className?: string;\n};\n\nconst SignOutIcon: React.FC<PropsT> = (props) => {\n    return (\n        <svg width={20} height={20} viewBox=\"0 0 20 20\" {...props}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path fill=\"#3E3F42\" d=\"M16 9.25H6.872l4.193-4.192L10 4l-6 6 6 6 1.057-1.057-4.185-4.193H16z\" />\n            </g>\n        </svg>\n    );\n};\n\nexport default SignOutIcon;\n","import { ContextRoutePointAliasT } from '../models';\nimport { ApiEditOrderContextT } from 'broker-admin/utils/api/broker-tranziit/models';\n\nexport const getAddedStopAliases = (\n    prevContext: ApiEditOrderContextT | null,\n    contextAfterModify: ApiEditOrderContextT | null,\n): Array<ContextRoutePointAliasT> => {\n    const prevStopAliases =\n        prevContext?.tours\n            ?.flatMap((tour) => {\n                return tour?.stops || [];\n            })\n            .map((stop) => stop.alias) || [];\n\n    const contextStopAliases =\n        contextAfterModify?.tours\n            ?.flatMap((tour) => {\n                return tour?.stops || [];\n            })\n            .map((stop) => stop.alias) || [];\n\n    return contextStopAliases.filter((alias): alias is string => Boolean(alias) && !prevStopAliases.includes(alias));\n};\n","import React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport TruckDetailsForm from './TruckDetailsForm/TruckDetailsForm';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectAddTruckRequestStatus,\n    selectTrucksDetailsByIds,\n    selectUpdateTruckRequestStatus,\n} from 'common/store/trucks/selectors';\nimport { addTruckRequest, updateTruck } from 'common/store/trucks/actions';\nimport { FormValuesT as DetailsFormValuesT } from './TruckDetailsForm/constants';\nimport { prepareCreateApiTruck, prepareUpdateApiTruck } from './prepare-api-truck';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport TruckStatusPill from 'common/components/status-pill/TruckStatusPill/TruckStatusPill';\n\ntype PropsT = {\n    partnerId: PartnerIdT;\n    truckId: TruckIdT | null;\n    onGoBack?: () => void;\n    onClose?: () => void;\n    onCancel: () => void;\n    setNeedCloseConfirmation?: (needCloseConfirmation: boolean) => void;\n    onOpenTruckDetails: (truckId: TruckIdT) => void;\n    onOpenTrailerDetails: (trailerId: TrailerIdT) => void;\n    onOpenUserDetails: (userId: UserIdT, isBrokerUser?: boolean) => void;\n};\n\nconst EditTruckSidebarContent: React.FC<PropsT> = (props) => {\n    const {\n        partnerId,\n        onGoBack,\n        onClose,\n        truckId,\n        onCancel,\n        setNeedCloseConfirmation,\n        onOpenTruckDetails,\n        onOpenTrailerDetails,\n        onOpenUserDetails,\n    } = props;\n\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n\n    const updateRequestStatus = useSelector(selectUpdateTruckRequestStatus(partnerId));\n    const addRequestStatus = useSelector(selectAddTruckRequestStatus(partnerId));\n    const detailsById = useSelector(selectTrucksDetailsByIds(partnerId));\n\n    const isNewTruck = !truckId;\n\n    const handleSubmit = (detailsFormValues: DetailsFormValuesT) => {\n        if (isNewTruck) {\n            const truckRequest = prepareCreateApiTruck(detailsFormValues);\n            if (!truckRequest) {\n                return;\n            }\n            dispatch(addTruckRequest(truckRequest, partnerId));\n        } else if (truckId) {\n            const truckRequest = prepareUpdateApiTruck(detailsFormValues);\n            if (!truckRequest) {\n                return;\n            }\n            dispatch(updateTruck(truckId, truckRequest, partnerId));\n        }\n    };\n\n    const truckDetails = detailsById[truckId as string];\n\n    const title = isNewTruck\n        ? t('common:trucks-page.add-truck.title')\n        : t('common:trucks-page.edit-truck.title', {\n              plateNumber: truckDetails?.plateNumber || '',\n          });\n\n    return (\n        <>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent\n                    title={title}\n                    afterTitleNode={<TruckStatusPill isSymmetrical status={truckDetails?.status || null} />}\n                    onClose={onClose}\n                    onGoBack={onGoBack}\n                />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <TruckDetailsForm\n                    partnerId={partnerId}\n                    isLoading={updateRequestStatus.loading || addRequestStatus.loading}\n                    isNewTruck={isNewTruck}\n                    truckDetails={truckDetails}\n                    onSubmit={handleSubmit}\n                    onCancel={onCancel}\n                    setNeedCloseConfirmation={setNeedCloseConfirmation}\n                    onOpenTruckDetails={onOpenTruckDetails}\n                    onOpenTrailerDetails={onOpenTrailerDetails}\n                    onOpenUserDetails={onOpenUserDetails}\n                />\n            </SideBarLayout>\n        </>\n    );\n};\n\nexport default EditTruckSidebarContent;\n","import React from 'react';\n\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectAllTrailersTypes,\n    selectTrailersDict,\n    selectTrailersDictRequest,\n} from 'common/store/trailers-dict/selectors';\n\nimport classNames from 'classnames/bind';\nimport styles from './TrailerTypeMultipleDropdown.scss';\nimport { fetchTrailersDict } from 'common/store/trailers-dict/actions';\nimport DropdownTreeInput from 'design-system/components/dropdowns/DropdownTreeInput/DropdownTreeInput';\nimport { TreeNodeT } from 'design-system/components/CheckboxTree/CheckboxTree';\nimport { useTranslation } from 'react-i18next';\nimport { TrailerTypeEnum } from 'common/constants';\nimport TrailerIcon, { TrailerIconProps } from 'common/icons/TrailerIcon';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype ValueT = TrailerDictIdT;\n\nexport type PropsT = {\n    className?: string;\n    values: Array<ValueT>;\n    onSelect: (values: Array<ValueT>) => void;\n    overlayPosition: DropdownOverlayPositionEnum;\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    placeholder: InputPropsT['placeholder'];\n    onBlur: InputPropsT['onBlur'];\n    onFocus: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasClearControl?: InputPropsT['hasClearControl'];\n    hasChanges?: boolean;\n};\n\nconst TRAILER_TYPE_T_MAP: Record<TrailerTypeEnum, string> = {\n    [TrailerTypeEnum.tilt]: 'common:trailer-type-switcher.tilt',\n    [TrailerTypeEnum.box]: 'common:trailer-type-switcher.box',\n};\n\nconst TrailerTypeMultipleDropdown: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        values,\n        onSelect,\n        hasWarning,\n        hasError,\n        overlayPosition,\n        isDisabled,\n        placeholder,\n        onBlur,\n        onFocus,\n        hasChanges,\n        hasClearControl,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const requestStatus = useSelector(selectTrailersDictRequest);\n    const trailersDict = useSelector(selectTrailersDict);\n    const trailersTypes = useSelector(selectAllTrailersTypes);\n\n    const options = React.useMemo((): Array<TreeNodeT<ValueT>> => {\n        return [\n            {\n                label: t('common:trailer-type-switcher.all'),\n                children: trailersTypes.map((trailerType): TreeNodeT<ValueT> => {\n                    return {\n                        label: t(TRAILER_TYPE_T_MAP[trailerType]),\n                        children: (trailersDict?.[trailerType] || []).map((trailer): TreeNodeT<ValueT> => {\n                            return {\n                                label: t('common:trailer-subtype-template', {\n                                    length: trailer.length,\n                                    model: trailer.model,\n                                    eur1Pallets: trailer.eur1Pallets,\n                                    eur2Pallets: trailer.eur2Pallets,\n                                }),\n                                value: String(trailer.id),\n                                children: [],\n                            };\n                        }),\n                    };\n                }),\n            },\n        ];\n    }, [t, trailersTypes, trailersDict]);\n\n    const dispatch = useDispatch();\n    React.useEffect(() => {\n        dispatch(fetchTrailersDict());\n    }, [dispatch]);\n\n    return (\n        <DropdownTreeInput<ValueT>\n            className={className}\n            options={options}\n            renderLeftIcon={(iconMeta) => <TrailerIcon {...TrailerIconProps.getControlProps(iconMeta)} />}\n            selectedValues={values}\n            placeholder={placeholder}\n            isDisabled={isDisabled}\n            onSelect={onSelect}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            overlayPosition={overlayPosition}\n            hasClearControl={values?.length ? hasClearControl : false}\n            isLoading={requestStatus.loading}\n        />\n    );\n};\n\nexport default TrailerTypeMultipleDropdown;\n","// extracted by mini-css-extract-plugin\nexport default {\"name\":\"NameCell__name___gVxPQ\",\"status\":\"NameCell__status___XZAMa\",\"fadeIn\":\"NameCell__fadeIn___gggC8\",\"blinking\":\"NameCell__blinking___z9ac7\"};","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport isNumber from 'lodash/isNumber';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './EmissionUnitValue.scss';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    className?: string;\n    co2: number | null | undefined;\n};\n\nconst EmissionUnitValue: React.FC<PropsT> = (props) => {\n    const { className, co2 } = props;\n\n    const { t } = useTranslation();\n\n    if (!isNumber(co2)) {\n        return null;\n    }\n\n    const roundedCO2 = Math.round(co2);\n\n    return (\n        <span className={cs(cx('value'), className)}>\n            {roundedCO2}{' '}\n            {t('common:unit-count.emission-co2', {\n                postProcess: 'interval',\n                count: roundedCO2,\n            })}\n        </span>\n    );\n};\n\nexport default EmissionUnitValue;\n","import * as React from 'react';\nimport { LinkSizeEnum, LinkThemeEnum } from 'common/components/Link/Link';\nimport TableCellLink from 'common/components/Table/cell-renderers/TableCellLink/TableCellLink';\n\ntype PropsT = {\n    onOpenUserDetails: (userId: UserIdT | null) => void;\n    userFullName: string | null | undefined;\n    userId: UserIdT | null | undefined;\n};\n\nconst EventAuthorCell: React.FC<PropsT> = React.memo((props) => {\n    const { userId, userFullName, onOpenUserDetails } = props;\n\n    return (\n        <TableCellLink\n            theme={LinkThemeEnum.boldBrandDark}\n            size={LinkSizeEnum.medium}\n            onClick={() => {\n                if (!userId) {\n                    return;\n                }\n\n                onOpenUserDetails(userId);\n            }}\n        >\n            {userFullName}\n        </TableCellLink>\n    );\n});\n\nexport default EventAuthorCell;\n","import { StateT } from 'broker-admin/store/models';\nimport { BrokerOrderAssigmentStateT } from './types';\nimport keyBy from 'lodash/keyBy';\nimport { createSelector } from 'reselect';\nimport { CarrierT } from 'broker-admin/store/broker-order-assigment/models';\n\nexport const selectAvailableVehiclesQuery = (state: StateT): BrokerOrderAssigmentStateT['availableVehicles']['query'] =>\n    state.brokerOrderAssigment.availableVehicles.query;\n\nexport const selectUserSelection = (state: StateT): BrokerOrderAssigmentStateT['userSelection'] =>\n    state.brokerOrderAssigment.userSelection;\n\nexport const selectAvailableVehiclesRequest = (\n    state: StateT,\n): BrokerOrderAssigmentStateT['availableVehicles']['requestStatus'] =>\n    state.brokerOrderAssigment.availableVehicles.requestStatus;\n\nexport const selectFetchAssignDetailsRequest = (\n    state: StateT,\n): BrokerOrderAssigmentStateT['fetchAssignDetailsStatus'] => state.brokerOrderAssigment.fetchAssignDetailsStatus;\n\nexport const selectAvailableVehicles = (state: StateT): BrokerOrderAssigmentStateT['availableVehicles']['list'] =>\n    state.brokerOrderAssigment.availableVehicles.list;\n\nexport const selectVehicleLinks = (state: StateT): BrokerOrderAssigmentStateT['links'] =>\n    state.brokerOrderAssigment.links;\n\nexport const selectAvailableCarriersRequest = (\n    state: StateT,\n): BrokerOrderAssigmentStateT['availableCarriers']['requestStatus'] =>\n    state.brokerOrderAssigment.availableCarriers.requestStatus;\n\nexport const selectAvailableCarriers = (state: StateT): BrokerOrderAssigmentStateT['availableCarriers']['carriers'] =>\n    state.brokerOrderAssigment.availableCarriers.carriers;\n\nexport const selectAvailableCarriersById = createSelector(\n    selectAvailableCarriers,\n    (availableCarriers): Record<CarrierT['id'], CarrierT> => {\n        return keyBy(availableCarriers, 'id');\n    },\n);\n\nexport const selectTruckSuggestQuery = (state: StateT): BrokerOrderAssigmentStateT['truckSuggest']['query'] =>\n    state.brokerOrderAssigment.truckSuggest.query;\n\nexport const selectTruckSuggestRequestStatus = (\n    state: StateT,\n): BrokerOrderAssigmentStateT['truckSuggest']['requestStatus'] => state.brokerOrderAssigment.truckSuggest.requestStatus;\n\nexport const selectTruckSuggestIds = (state: StateT): BrokerOrderAssigmentStateT['truckSuggest']['ids'] =>\n    state.brokerOrderAssigment.truckSuggest.ids;\n\nexport const selectTruckAssignmentInfoById = (state: StateT): BrokerOrderAssigmentStateT['truckById'] =>\n    state.brokerOrderAssigment.truckById;\n\nexport const selectTrailerSuggestQuery = (state: StateT): BrokerOrderAssigmentStateT['trailerSuggest']['query'] =>\n    state.brokerOrderAssigment.trailerSuggest.query;\n\nexport const selectTrailerSuggestRequestStatus = (\n    state: StateT,\n): BrokerOrderAssigmentStateT['trailerSuggest']['requestStatus'] =>\n    state.brokerOrderAssigment.trailerSuggest.requestStatus;\n\nexport const selectTrailerSuggestIds = (state: StateT): BrokerOrderAssigmentStateT['trailerSuggest']['ids'] =>\n    state.brokerOrderAssigment.trailerSuggest.ids;\n\nexport const selectTrailerAssignmentInfoById = (state: StateT): BrokerOrderAssigmentStateT['trailerById'] =>\n    state.brokerOrderAssigment.trailerById;\n\nexport const selectSelfCostPredictionQuery = (\n    state: StateT,\n): BrokerOrderAssigmentStateT['selfCostPrediction']['query'] => state.brokerOrderAssigment.selfCostPrediction.query;\n\nexport const selectSelfCostPrediction = (state: StateT): BrokerOrderAssigmentStateT['selfCostPrediction']['result'] =>\n    state.brokerOrderAssigment.selfCostPrediction.result;\n\nexport const selectSelfCostPredictionRequestStatus = (\n    state: StateT,\n): BrokerOrderAssigmentStateT['selfCostPrediction']['requestStatus'] =>\n    state.brokerOrderAssigment.selfCostPrediction.requestStatus;\n\nexport const selectAssignmentRequestStatus = (state: StateT): BrokerOrderAssigmentStateT['assigmentStatus'] =>\n    state.brokerOrderAssigment.assigmentStatus;\n\nexport const selectCurrentPositionById = (state: StateT): BrokerOrderAssigmentStateT['currentPositionAssetById'] =>\n    state.brokerOrderAssigment.currentPositionAssetById;\n\nexport const selectScheduleAssetById = (state: StateT): BrokerOrderAssigmentStateT['scheduleAssetById'] =>\n    state.brokerOrderAssigment.scheduleAssetById;\n\nexport const selectShowSelectedAssetSchedules = (\n    state: StateT,\n): BrokerOrderAssigmentStateT['isShowSelectedAssetSchedules'] =>\n    state.brokerOrderAssigment.isShowSelectedAssetSchedules;\n\nexport const selectSelectedScheduleEventId = (state: StateT): BrokerOrderAssigmentStateT['selectedScheduleEventId'] =>\n    state.brokerOrderAssigment.selectedScheduleEventId;\n","import * as React from 'react';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport HorizontalColumnsLayout from 'common/layouts/HorizontalColumnsLayout/HorizontalColumnsLayout';\nimport { useTranslation } from 'react-i18next';\nimport history, { goBackIfHasRePath } from 'common/utils/history';\nimport PriceSettingsEditRuleLayout from 'broker-admin/layouts/PriceSettingsEditRuleLayout/PriceSettingsEditRuleLayout';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport { PreviewCurrentRuleT } from 'broker-admin/store/price-settings/rules/models';\nimport PriceSettingsRulePreviewLayout from 'broker-admin/layouts/PriceSettingsRulePreviewLayout/PriceSettingsRulePreviewLayout';\nimport SideBarLayoutContextWrap from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayoutContextWrap/SideBarLayoutContextWrap';\nimport classNames from 'classnames/bind';\nimport styles from './PriceSettingsRuleCreationPage.scss';\nimport { SettingsRoutesEnum } from 'broker-admin/constants';\nimport { useSelector } from 'react-redux';\nimport { selectCreateRuleRequest } from 'broker-admin/store/price-settings/rules/selectors';\nimport useOnlyChangesEffect from 'common/utils/hooks/useOnlyChangesEffect';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst PriceSettingsRuleCreationPage: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n\n    const handleClose = () => {\n        goBackIfHasRePath(() => {\n            history.push(urlFactory.settingsRules());\n        });\n    };\n\n    const createRuleRequest = useSelector(selectCreateRuleRequest);\n    useOnlyChangesEffect(() => {\n        if (createRuleRequest.ok) {\n            history.push({\n                pathname: SettingsRoutesEnum.rules,\n            });\n        }\n    }, [createRuleRequest.ok]);\n\n    const [previewCurrentRule, setPreviewCurrentRule] = React.useState<PreviewCurrentRuleT | null>(null);\n\n    return (\n        <>\n            <PageTitle title={t('page-titles.settings-rule-creation')} />\n            <HorizontalColumnsLayout\n                leftColumnTitle={t('price-settings.rules.tabs.form')}\n                leftColumnNode={\n                    <SideBarLayoutContextWrap>\n                        <PriceSettingsEditRuleLayout\n                            onChangePreviewCurrentRule={setPreviewCurrentRule}\n                            editableRuleId={null}\n                            onCancel={handleClose}\n                            onClose={handleClose}\n                        />\n                    </SideBarLayoutContextWrap>\n                }\n                rightColumnTitle={t('price-settings.rules.tabs.test')}\n                rightColumnNode={\n                    <SideBarLayoutContextWrap>\n                        <div className={cx('preview')}>\n                            <PriceSettingsRulePreviewLayout ruleId={null} previewCurrentRule={previewCurrentRule} />\n                        </div>\n                    </SideBarLayoutContextWrap>\n                }\n            />\n        </>\n    );\n});\n\nexport default PriceSettingsRuleCreationPage;\n","// extracted by mini-css-extract-plugin\nexport default {\"submit\":\"SetUnavailableForm__submit___ZD0xz\",\"field--date-range\":\"SetUnavailableForm__field--date-range___xnuSS\",\"alert\":\"SetUnavailableForm__alert___uYffo\",\"form\":\"SetUnavailableForm__form____YPEl\",\"fadeIn\":\"SetUnavailableForm__fadeIn___qrEB_\",\"blinking\":\"SetUnavailableForm__blinking___efrzQ\"};","import { ApiRequestError, checkIsApiRequestError } from './api-request-error';\n\nexport const checkIsTruckCantBeOnTimeForNextTourError = (\n    error: Error | null | undefined,\n): error is ApiRequestError<Api2.Definitions.BrokerCalculateTourCostsForAssetsTruckNextTourErrorResponse> => {\n    return (\n        checkIsApiRequestError(error) &&\n        (error.response as Api2.Definitions.BrokerCalculateTourCostsForAssetsTruckNextTourErrorResponse)?.reason ===\n            'TRUCK_CANT_BE_ON_TIME_FOR_NEXT_TOUR'\n    );\n};\n\nexport const checkIsTrailerCantBeOnTimeForNextTourError = (\n    error: Error | null | undefined,\n): error is ApiRequestError<Api2.Definitions.BrokerCalculateTourCostsForAssetsTrailerNextTourErrorResponse> => {\n    return (\n        checkIsApiRequestError(error) &&\n        (error.response as Api2.Definitions.BrokerCalculateTourCostsForAssetsTrailerNextTourErrorResponse)?.reason ===\n            'TRAILER_CANT_BE_ON_TIME_FOR_NEXT_TOUR'\n    );\n};\n","import { TourPapersUrlFactoryI } from 'common/components/papers/image-url-factories';\n\nexport const carrierTourPapersUrlFactory: TourPapersUrlFactoryI = {\n    getThumbnailUrl: (tourId: TourIdT | null, documentId: DocumentIdT | null): string | null => {\n        if (!tourId || !documentId) {\n            return null;\n        }\n\n        return `/api/v1/common/attached-papers/${documentId}/get-thumbnail`;\n    },\n\n    getContentUrl: (tourId: TourIdT | null, documentId: DocumentIdT | null): string | null => {\n        if (!tourId || !documentId) {\n            return null;\n        }\n\n        return `/api/v1/common/attached-papers/${documentId}/get-content`;\n    },\n};\n","import { put, select } from 'redux-saga/effects';\nimport { fetchTrucksDictBegin, fetchTrucksDictError, fetchTrucksDictSuccess } from './actions';\nimport { TRUCKS_DICT_REQUEST } from './types';\nimport { selectTrucksDict, selectTrucksDictRequest } from './selectors';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { semaphoreSaga } from 'common/utils/semaphore-saga';\nimport { sortTrucksDict } from './utils';\n\nfunction* fetchTrucksDictSaga(): WrapGeneratorT<void> {\n    const requestStatus: ReturnType<typeof selectTrucksDictRequest> = yield select(selectTrucksDictRequest);\n    if (!checkNeedRequest(requestStatus)) {\n        return;\n    }\n\n    const currentTrucksDict: ReturnType<typeof selectTrucksDict> = yield select(selectTrucksDict);\n    if (currentTrucksDict) {\n        return;\n    }\n\n    yield put(fetchTrucksDictBegin());\n\n    const [error, apiTrucksDict]: ReturnApiT<typeof commonTranziitApi.getTrucksDict> =\n        yield commonTranziitApi.getTrucksDict();\n    if (error) {\n        yield put(fetchTrucksDictError(error));\n    }\n\n    const trucksDict = sortTrucksDict(apiTrucksDict || []);\n    yield put(fetchTrucksDictSuccess(trucksDict));\n}\n\nfunction* trucksSaga(): WrapGeneratorT<void> {\n    yield semaphoreSaga(TRUCKS_DICT_REQUEST, fetchTrucksDictSaga);\n}\n\nexport default trucksSaga;\n","import { TranziitApiRequestErrorSubTypeEnum } from 'common/utils/api/tranziit/errors/tranziit-api-errors';\n\nexport enum FieldsEnum {\n    taxId = 'taxId',\n    vatNumber = 'vatNumber',\n    iban = 'iban',\n    bic = 'bic',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.taxId]: string;\n    [FieldsEnum.vatNumber]: string;\n    [FieldsEnum.iban]: string;\n    [FieldsEnum.bic]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n\nexport type AsyncFormErrorsT = Partial<{\n    [FieldsEnum.vatNumber]: TranziitApiRequestErrorSubTypeEnum.evidenceOfTaxDetails_WrongVat;\n}>;\n","import { ApiBrokerTransportOrderDetailsT, ApiCarrierTransportOrderDetailsT } from 'common/utils/api/models';\nimport { TransportOrderDetailsT } from 'common/store/transport-order-details/models';\n\nexport const checkIsCarrierTransportOrderDetails = (\n    details: TransportOrderDetailsT | null,\n): details is ApiCarrierTransportOrderDetailsT => {\n    return !!details;\n};\n\nexport const checkIsBrokerTransportOrderDetails = (\n    details: TransportOrderDetailsT | null,\n): details is ApiBrokerTransportOrderDetailsT => {\n    return !!details;\n};\n","import {\n    FETCH_SETTINGS,\n    FETCH_SETTINGS_BEGIN,\n    FETCH_SETTINGS_ERROR,\n    FETCH_SETTINGS_SUCCESS,\n    FetchSettingsActionT,\n    FetchSettingsBeginActionT,\n    FetchSettingsErrorActionT,\n    FetchSettingsSuccessActionT,\n} from './types';\nimport { SettingsT } from './models';\n\nexport const fetchSettings = (options?: FetchOptionsT): FetchSettingsActionT => ({\n    type: FETCH_SETTINGS,\n    options,\n});\n\nexport const fetchSettingsBegin = (): FetchSettingsBeginActionT => ({\n    type: FETCH_SETTINGS_BEGIN,\n});\n\nexport const fetchSettingsSuccess = (settings: SettingsT): FetchSettingsSuccessActionT => ({\n    type: FETCH_SETTINGS_SUCCESS,\n    settings,\n});\n\nexport const fetchSettingsError = (error: Error): FetchSettingsErrorActionT => ({\n    type: FETCH_SETTINGS_ERROR,\n    error,\n});\n","import React, { useEffect } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './AddDriverSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { FormikContext, useFormik } from 'formik';\nimport { FieldsEnum, FormValuesT } from '../EditDriverSidebarContent/EditDriverFormContent/constants';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport prepareApiAddDriver from './prepare-api-driver-changes';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport { logWarning } from 'common/utils/logger';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport values from 'lodash/values';\nimport EditDriverFormContent from '../EditDriverSidebarContent/EditDriverFormContent/EditDriverFormContent';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport { addDriver } from 'common/store/drivers/actions';\nimport { CommonSidebarDataT, SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { AddDriverSidebarDataT } from 'common/layouts/SideBars/contents/AddDriverSidebarContent/models';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectAddDriverRequest } from 'common/store/drivers/selectors';\nimport useCloseSidebarAfterRequest from 'common/utils/hooks/useCloseSidebarAfterRequest';\n\nconst cx = classNames.bind(styles);\n\nconst ALL_FIELDS = values(FieldsEnum);\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(ALL_FIELDS);\n\ntype PropsT = SidebarContentPropsT<AddDriverSidebarDataT, CommonSidebarDataT>;\n\nconst AddDriverSidebarContent: React.FC<PropsT> = (props) => {\n    const { data, onClose, onGoBack, setNeedCloseConfirmation } = props;\n\n    const dispatch = useDispatch();\n\n    const { t } = useTranslation();\n\n    const addDriverRequestStatus = useSelector(selectAddDriverRequest(data.partnerId));\n\n    useCloseSidebarAfterRequest(addDriverRequestStatus, onGoBack || onClose);\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues();\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const newDriver = prepareApiAddDriver(values);\n            if (!newDriver) {\n                logWarning('empty newDriver!');\n                return;\n            }\n\n            dispatch(addDriver(newDriver, data.partnerId));\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n    useEffect(() => {\n        setNeedCloseConfirmation(hasAnyFieldValueChanges);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasAnyFieldValueChanges]);\n\n    const isLoading = addDriverRequestStatus.loading;\n\n    return (\n        <FormikContext.Provider value={formik}>\n            <form onSubmit={formik.handleSubmit} className={cx('form')}>\n                {isLoading && <LoaderOverlay />}\n                <HeaderSideBarLayout>\n                    <HeaderSideBarContent\n                        onGoBack={onGoBack}\n                        title={t('common:drivers-page.add-driver.title')}\n                        onClose={onClose}\n                    />\n                </HeaderSideBarLayout>\n                <SideBarLayout>\n                    <EditDriverFormContent driverDetails={null} isHideMobilePhoneField />\n                </SideBarLayout>\n                <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n                <FooterSideBarLayout hasPaddings>\n                    <div className={cx('actions')}>\n                        <Button\n                            className={cx('actions__action', 'actions__action--cancel')}\n                            theme={ButtonThemeEnum.secondary}\n                            onClick={() => {\n                                if (onGoBack) {\n                                    onGoBack({ needCloseConfirmation: false });\n                                } else {\n                                    onClose?.();\n                                }\n                            }}\n                        >\n                            {t('common:form-actions.cancel')}\n                        </Button>\n                        <Button\n                            className={cx('actions__action', 'actions__action--add')}\n                            theme={ButtonThemeEnum.primary}\n                            type=\"submit\"\n                        >\n                            {t('common:drivers-page.add-driver.submit')}\n                        </Button>\n                    </div>\n                </FooterSideBarLayout>\n            </form>\n        </FormikContext.Provider>\n    );\n};\n\nexport default AddDriverSidebarContent;\n","// extracted by mini-css-extract-plugin\nexport default {\"table--carrier\":\"TransportOrderDetailsCard__table--carrier____xDBQ\",\"table--move\":\"TransportOrderDetailsCard__table--move___po6Uy\",\"table\":\"TransportOrderDetailsCard__table___CSp6b\",\"fadeIn\":\"TransportOrderDetailsCard__fadeIn___lDts8\",\"blinking\":\"TransportOrderDetailsCard__blinking___XFHCy\"};","import React from 'react';\nimport { SyncSetUnavailableFormMapStateContextValueT } from '../hooks/useSyncMapState';\n\nconst SyncSetUnavailableFormMapStateContext = React.createContext<SyncSetUnavailableFormMapStateContextValueT>({\n    hasDropAssetPointError: false,\n    setHasDropAssetPointError: () => {\n        // nothing\n    },\n});\n\nexport { SyncSetUnavailableFormMapStateContext };\n","// extracted by mini-css-extract-plugin\nexport default {\"actions\":\"DriversPageLayout__actions___SBwI5\",\"actions-overlay\":\"DriversPageLayout__actions-overlay___Rl_oA\",\"tabs\":\"DriversPageLayout__tabs___pNJNC\",\"fadeIn\":\"DriversPageLayout__fadeIn___HlpHR\",\"blinking\":\"DriversPageLayout__blinking___xJH4v\"};","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './FiltersSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport getQueryFilters from './get-query-filters';\nimport getInitialValues from './get-initial-values';\nimport { QueryFiltersT } from '../query-models';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { isDeepEqual } from 'common/utils/deep-equal';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport FieldGroup, { FieldGroupEmptyItem } from 'common/components/FieldGroup/FieldGroup';\nimport Input from 'common/components/Input/Input';\nimport DatePicker, { DatePickerOverlayPositionEnum } from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport CarriersSuggest from 'broker-admin/components/dropdowns/CarriersSuggest/CarriersSuggest';\nimport { useCarrierSuggestOptions } from 'broker-admin/components/dropdowns/CarriersSuggest/hooks/use-carrier-suggest-options';\nimport TourTypeMultipleDropdown from 'broker-admin/components/dropdowns/TourTypeMultipleDropdown/TourTypeMultipleDropdown';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\n\nimport PinIcon, { PinIconProps } from 'common/icons/PinIcon';\nimport SelectedFilters from '../SelectedFilters/SelectedFilters';\nimport { mergeQueryFilters } from 'common/utils/query';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    onClose: () => void;\n    queryFilters: QueryFiltersT;\n    setQueryFilters: (queryFilters: QueryFiltersT) => void;\n};\n\nconst FiltersSidebarContent: React.FC<PropsT> = (props) => {\n    const { onClose, setQueryFilters, queryFilters } = props;\n    const { t } = useTranslation();\n\n    const [initialQueryFilters, setInitialQueryFilters] = React.useState<QueryFiltersT>(queryFilters);\n\n    React.useEffect(() => {\n        setInitialQueryFilters(queryFilters);\n    }, [queryFilters]);\n\n    const initialValues = React.useMemo(() => getInitialValues(queryFilters), [queryFilters]);\n\n    const initialCarrierOptions = useCarrierSuggestOptions(\n        initialValues[FieldsEnum.carrierIds]?.length ? initialValues[FieldsEnum.carrierIds] : null,\n    );\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialValues,\n        onSubmit: (values, formikHelpers): void => {\n            const newQueryFilters = getQueryFilters(values);\n            const mergedQueryFilters = mergeQueryFilters(initialQueryFilters, newQueryFilters);\n\n            setQueryFilters(mergedQueryFilters);\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const isSameValues = React.useMemo(() => {\n        return isDeepEqual(initialValues, formik.values) && isDeepEqual(initialQueryFilters, queryFilters);\n    }, [initialValues, formik.values, initialQueryFilters, queryFilters]);\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('form')}>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent title={t('broker-tours.list.filters.title')} onClose={onClose} />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <FormikField\n                    className={cx('field', 'field--carriers')}\n                    name={FieldsEnum.carrierIds}\n                    error={formik.errors[FieldsEnum.carrierIds]}\n                    meta={formik.getFieldMeta(FieldsEnum.carrierIds)}\n                    label={t('broker-tours.list.filters.fields.carrier.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <CarriersSuggest\n                            values={formik.values[FieldsEnum.carrierIds] || []}\n                            initialOptions={initialCarrierOptions.initOptions}\n                            initialRequestStatus={initialCarrierOptions.initRequestStatus}\n                            onSelect={(carrierIds, carrierOptions) => {\n                                formik.setFieldValue(FieldsEnum.carrierIds, carrierIds);\n\n                                const carrierNames =\n                                    carrierOptions?.map((option) => {\n                                        return option.name || '';\n                                    }) || [];\n                                formik.setFieldValue(FieldsEnum.carrierNames, carrierNames);\n                            }}\n                            hasWarning={props.hasWarning}\n                            hasError={props.hasError}\n                            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                            placeholder={t('broker-tours.list.filters.fields.carrier.placeholder')}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasClearControl\n                        />\n                    )}\n                </FormikField>\n\n                <FormikField\n                    className={cx('field', 'field--address')}\n                    name={FieldsEnum.originAddress}\n                    error={formik.errors[FieldsEnum.originAddress]}\n                    meta={formik.getFieldMeta(FieldsEnum.originAddress)}\n                    label={t('broker-tours.list.filters.fields.origin-address.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <Input\n                            renderLeftIcon={(iconMeta) => <PinIcon {...PinIconProps.getControlProps(iconMeta)} />}\n                            name={FieldsEnum.originAddress}\n                            value={formik.values[FieldsEnum.originAddress] || ''}\n                            placeholder={t('broker-tours.list.filters.fields.origin-address.placeholder')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            hasClearControl\n                        />\n                    )}\n                </FormikField>\n\n                <FormikField\n                    className={cx('field', 'field--address')}\n                    name={FieldsEnum.destinationAddress}\n                    error={formik.errors[FieldsEnum.destinationAddress]}\n                    meta={formik.getFieldMeta(FieldsEnum.destinationAddress)}\n                    label={t('broker-tours.list.filters.fields.destination-address.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <Input\n                            renderLeftIcon={(iconMeta) => <PinIcon {...PinIconProps.getControlProps(iconMeta)} />}\n                            name={FieldsEnum.destinationAddress}\n                            value={formik.values[FieldsEnum.destinationAddress] || ''}\n                            placeholder={t('broker-tours.list.filters.fields.destination-address.placeholder')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            hasClearControl\n                        />\n                    )}\n                </FormikField>\n\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.originDates}\n                        error={formik.errors[FieldsEnum.originDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.originDates)}\n                        label={t('broker-tours.list.filters.fields.origin-date.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.originDates]}\n                                placeholder={t('broker-tours.list.filters.fields.origin-date.placeholder')}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.destinationDates}\n                        error={formik.errors[FieldsEnum.destinationDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.destinationDates)}\n                        label={t('broker-tours.list.filters.fields.destination-date.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.destinationDates]}\n                                placeholder={t('broker-tours.list.filters.fields.destination-date.placeholder')}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomRight}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.creationDates}\n                        error={formik.errors[FieldsEnum.creationDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.creationDates)}\n                        label={t('broker-tours.list.filters.fields.date-created.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.creationDates]}\n                                placeholder={t('broker-tours.list.filters.fields.date-created.placeholder')}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--tour-types')}\n                        name={FieldsEnum.tourTypes}\n                        error={formik.errors[FieldsEnum.tourTypes]}\n                        meta={formik.getFieldMeta(FieldsEnum.tourTypes)}\n                        label={t('broker-tours.list.filters.fields.tour-type.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <TourTypeMultipleDropdown\n                                values={formik.values[FieldsEnum.tourTypes]}\n                                placeholder={t('broker-tours.list.filters.fields.tour-type.placeholder')}\n                                onSelect={props.onChange}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--plate-number')}\n                        name={FieldsEnum.plateNumber}\n                        error={formik.errors[FieldsEnum.plateNumber]}\n                        meta={formik.getFieldMeta(FieldsEnum.plateNumber)}\n                        label={t('broker-tours.list.filters.fields.plate-number.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <Input\n                                name={FieldsEnum.plateNumber}\n                                value={formik.values[FieldsEnum.plateNumber] || ''}\n                                placeholder={t('broker-tours.list.filters.fields.plate-number.placeholder')}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FieldGroupEmptyItem className={cx('field', 'field--placeholder')} />\n                </FieldGroup>\n            </SideBarLayout>\n            <FooterSideBarLayout hasPaddings>\n                <div className={cx('selected-filters')}>\n                    <SelectedFilters queryFilters={initialQueryFilters} setQueryFilters={setInitialQueryFilters} />\n                </div>\n                <Button\n                    theme={ButtonThemeEnum.primary}\n                    isDisabled={isSameValues}\n                    isFullWidth\n                    isCenterContent\n                    type=\"submit\"\n                >\n                    {t('broker-tours.list.filters.submit')}\n                </Button>\n            </FooterSideBarLayout>\n        </form>\n    );\n};\n\nexport default FiltersSidebarContent;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"DateLinkTrigger__fadeIn___cxzzN\",\"blinking\":\"DateLinkTrigger__blinking___Ehp9Y\"};","import { CountryCodeT } from 'common/store/countries-dict/models';\nimport { ApiPriceRuleTypeT } from 'common/utils/api/models';\n\nexport enum FieldsEnum {\n    date = 'date',\n\n    ruleType = 'rule-type',\n    dictTrailerId = 'dict-trailer-id',\n\n    shipperId = 'shipper-id',\n    carrierId = 'carrier-id',\n\n    countryFrom = 'country-from',\n    countryTo = 'country-to',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.date]: Date | null;\n\n    [FieldsEnum.ruleType]: ApiPriceRuleTypeT | null;\n    [FieldsEnum.dictTrailerId]: TrailerDictIdT | null;\n\n    [FieldsEnum.shipperId]: ShipperIdT | null;\n    [FieldsEnum.carrierId]: CarrierIdT | null;\n\n    [FieldsEnum.countryFrom]: CountryCodeT | null;\n    [FieldsEnum.countryTo]: CountryCodeT | null;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"WaypointNumberPinContent__content___cJ_Hc\",\"content--withPaddings\":\"WaypointNumberPinContent__content--withPaddings___h9GtH\",\"fadeIn\":\"WaypointNumberPinContent__fadeIn___HVxXd\",\"blinking\":\"WaypointNumberPinContent__blinking___uatt9\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"Radio__wrap___XNy43\",\"radio\":\"Radio__radio___NtqAt\",\"radio--isClickable\":\"Radio__radio--isClickable___gocMW\",\"radio--isHover\":\"Radio__radio--isHover___VH8Nf\",\"radio--isSelected\":\"Radio__radio--isSelected___mxyKZ\",\"radio--isDisabled\":\"Radio__radio--isDisabled___Lk1VL\",\"label\":\"Radio__label___XSIkg\",\"label--isClickable\":\"Radio__label--isClickable___FjG4B\",\"label--isDisabled\":\"Radio__label--isDisabled___ypCBB\",\"label--hasRightIcon\":\"Radio__label--hasRightIcon___eK1y8\",\"fadeIn\":\"Radio__fadeIn___he7VH\",\"blinking\":\"Radio__blinking___KeV4O\"};","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const vehicleSchedulesRefreshChannel = new ViewEventChannel<{\n    vehicleId: VehicleIdT;\n}>();\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"QuickFiltersButtonGroups__wrap___jIdEh\",\"container\":\"QuickFiltersButtonGroups__container___Y5A7C\",\"container--isMeasuring\":\"QuickFiltersButtonGroups__container--isMeasuring___JG5CS\",\"option\":\"QuickFiltersButtonGroups__option___YNbzf\",\"toggle\":\"QuickFiltersButtonGroups__toggle___oS2B2\",\"trigger\":\"QuickFiltersButtonGroups__trigger___oai2D\",\"notification\":\"QuickFiltersButtonGroups__notification___ESAA7\",\"option-button--isSelected\":\"QuickFiltersButtonGroups__option-button--isSelected___jGjQv\",\"option-button-content\":\"QuickFiltersButtonGroups__option-button-content___LzEc_\",\"fadeIn\":\"QuickFiltersButtonGroups__fadeIn___svMNG\",\"blinking\":\"QuickFiltersButtonGroups__blinking___EbvSw\"};","import {\n    UserActionT,\n    UserStateT,\n    FETCH_USER_REQUEST_BEGIN,\n    FETCH_USER_REQUEST_ERROR,\n    FETCH_USER_REQUEST_SUCCESS,\n    PATCH_USER_REQUEST_BEGIN,\n    PATCH_USER_REQUEST_SUCCESS,\n    PATCH_USER_REQUEST_ERROR,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { prepareUser } from './utils';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: UserStateT = {\n    currentUserRequest: requestStatus.initial,\n    currentUser: null,\n    patchUserRequest: requestStatus.initial,\n};\n\nexport default (state = initialState, action: UserActionT | DestroySessionActionT): UserStateT => {\n    switch (action.type) {\n        case FETCH_USER_REQUEST_BEGIN: {\n            return {\n                ...state,\n                currentUserRequest: requestStatus.loading,\n            };\n        }\n        case FETCH_USER_REQUEST_SUCCESS: {\n            const { currentUser } = action;\n\n            return {\n                ...state,\n                currentUser: prepareUser(currentUser),\n                currentUserRequest: requestStatus.ok,\n            };\n        }\n        case FETCH_USER_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                currentUserRequest: requestStatus.setError(error),\n            };\n        }\n        case PATCH_USER_REQUEST_BEGIN: {\n            return {\n                ...state,\n                patchUserRequest: requestStatus.loading,\n            };\n        }\n        case PATCH_USER_REQUEST_SUCCESS: {\n            const { currentUser, currentUserUpdate } = action;\n\n            return {\n                ...state,\n                currentUser: prepareUser({\n                    ...currentUser,\n                    ...currentUserUpdate,\n                }),\n                patchUserRequest: requestStatus.ok,\n            };\n        }\n        case PATCH_USER_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                patchUserRequest: requestStatus.setError(error),\n            };\n        }\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n        default:\n            return state;\n    }\n};\n","import * as React from 'react';\nimport { Route, Switch } from 'react-router-dom';\nimport { BrokerRFQRoutesEnum } from 'broker-admin/constants';\nimport BrokerRFQDetailsPage from './BrokerRFQDetailsPage/BrokerRFQDetailsPage';\nimport BrokerRFQsListPage from './BrokerRFQsListPage/BrokerRFQsListPage';\n\ntype PropsT = {};\n\nconst BrokerRFQsPage: React.FC<PropsT> = React.memo(() => {\n    return (\n        <Switch>\n            <Route path={BrokerRFQRoutesEnum.details}>\n                <BrokerRFQDetailsPage />\n            </Route>\n            <Route path=\"*\">\n                <BrokerRFQsListPage />\n            </Route>\n        </Switch>\n    );\n});\n\nexport default BrokerRFQsPage;\n","// extracted by mini-css-extract-plugin\nexport default {\"placeholder\":\"PlaceholderFormatter__placeholder___ssf4K\",\"placeholder--isBold\":\"PlaceholderFormatter__placeholder--isBold___g4j1Y\",\"fadeIn\":\"PlaceholderFormatter__fadeIn___ipSOB\",\"blinking\":\"PlaceholderFormatter__blinking___UqrAD\"};","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport LeftMenuLayoutBase from 'common/layouts/LeftMenuLayout/LeftMenuLayout';\nimport { MenuLinkT } from 'common/layouts/LeftMenuLayout/Navigation/Navigation';\nimport { BrokerUsersRoutesEnum, OMSRoutesEnum, routesEnum, SettingsRoutesEnum } from 'broker-admin/constants';\nimport SettingsIcon from 'common/icons/SettingsIcon';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport { useSelector } from 'react-redux';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport {\n    BusinessPartnerMenuIcon,\n    DatabaseMenuIcon,\n    PlusMenuIcon,\n    TeamsMenuIcon,\n} from 'common/layouts/LeftMenuLayout/menu-icons';\nimport ChartIcon from 'common/icons/ChartIcon';\nimport RadarIcon from 'common/icons/RadarIcon';\nimport RouteIcon from 'common/icons/RouteIcon';\nimport InvoiceIcon, { getInvoiceIconProps } from 'common/icons/InvoiceIcon';\nimport FeaturesContext from 'common/contexts/features';\nimport { ServerFeatureEnum } from 'common/utils/hooks/useFeaturesContextValue';\nimport { ClientFeatureEnum } from 'common/utils/features/client-features-config';\nimport RFQIcon from 'common/icons/RFQIcon';\n\nconst badges = {};\n\ntype PropsT = {};\n\nconst LeftMenuLayout: React.FC<PropsT> = React.memo((props) => {\n    const { children } = props;\n    const { t } = useTranslation();\n    const permissions = useSelector(selectPermissions);\n\n    const featuresContext = React.useContext(FeaturesContext);\n\n    const menuLinks: Array<MenuLinkT | null> = [\n        permissions.canCreateOrder\n            ? {\n                  renderIcon: (isActive) => <PlusMenuIcon isActive={isActive} />,\n                  text: t('menu.new-order'),\n                  to: OMSRoutesEnum.newOrder,\n                  matchPathname: OMSRoutesEnum.newOrder,\n                  testSelector: 'new-order',\n              }\n            : null,\n        {\n            renderIcon: (isActive) => <DatabaseMenuIcon isActive={isActive} />,\n            text: t('menu.broker-orders'),\n            to: routesEnum.brokerOrders,\n            matchPathname: routesEnum.brokerOrders,\n            testSelector: 'broker-orders',\n        },\n        permissions?.canViewBrokerTours\n            ? {\n                  renderIcon: (isActive) => (\n                      <RouteIcon fillColor={isActive ? StyleGuideColorsEnum.brandDark : StyleGuideColorsEnum.slate} />\n                  ),\n                  text: t('menu.broker-tours'),\n                  to: routesEnum.brokerTours,\n                  matchPathname: routesEnum.brokerTours,\n                  testSelector: 'broker-tours',\n              }\n            : null,\n        permissions?.canViewBrokerRFQs\n            ? {\n                  renderIcon: (isActive) => (\n                      <RFQIcon\n                          fillColor={isActive ? StyleGuideColorsEnum.brandAccent : StyleGuideColorsEnum.light}\n                          strokeColor={isActive ? StyleGuideColorsEnum.brandDark : StyleGuideColorsEnum.slate}\n                          size={DEFAULT_ICON_SIZE}\n                      />\n                  ),\n                  text: t('menu.broker-rfqs'),\n                  to: routesEnum.brokerRFQs,\n                  matchPathname: routesEnum.brokerRFQs,\n                  testSelector: 'broker-rfqs',\n              }\n            : null,\n        permissions?.canViewInvoices && featuresContext?.checkActiveClientFeature?.(ClientFeatureEnum.invoices)\n            ? {\n                  renderIcon: (isActive) => <InvoiceIcon {...getInvoiceIconProps(isActive ? 'selected' : 'default')} />,\n                  text: t('menu.invoices'),\n                  to: routesEnum.invoices,\n                  matchPathname: routesEnum.invoices,\n                  testSelector: 'invoices',\n              }\n            : null,\n        {\n            renderIcon: (isActive) => <BusinessPartnerMenuIcon isActive={isActive} />,\n            text: t('menu.partners'),\n            to: routesEnum.partners,\n            matchPathname: routesEnum.partners,\n            testSelector: 'partners',\n        },\n        featuresContext?.checkActiveServerFeature?.(ServerFeatureEnum.spot) && permissions?.canViewSpot\n            ? {\n                  renderIcon: (isActive) => (\n                      <RadarIcon\n                          size={DEFAULT_ICON_SIZE}\n                          strokeColor={isActive ? StyleGuideColorsEnum.brandDark : StyleGuideColorsEnum.slate}\n                      />\n                  ),\n                  text: t('menu.spot'),\n                  to: routesEnum.spotRequests,\n                  matchPathname: routesEnum.spotRequests,\n                  testSelector: 'spot',\n              }\n            : null,\n        permissions?.canViewBrokerUsers\n            ? {\n                  renderIcon: (isActive) => <TeamsMenuIcon isActive={isActive} />,\n                  text: t('menu.users'),\n                  to: BrokerUsersRoutesEnum.brokerTeams,\n                  matchPathname: routesEnum.brokerUsers,\n                  testSelector: 'teams',\n              }\n            : null,\n        permissions.canViewPriceSettings\n            ? {\n                  renderIcon: (isActive) => (\n                      <SettingsIcon\n                          fillOpacity={isActive ? 0.3 : 1}\n                          fillColor={isActive ? StyleGuideColorsEnum.brandAccent : StyleGuideColorsEnum.light}\n                          strokeColor={isActive ? StyleGuideColorsEnum.brandDark : StyleGuideColorsEnum.slate}\n                      />\n                  ),\n                  text: t('menu.settings'),\n                  to: SettingsRoutesEnum.rateMatrix,\n                  matchPathname: routesEnum.settings,\n                  testSelector: 'settings',\n              }\n            : null,\n        permissions.canViewFullStatistic\n            ? {\n                  renderIcon: (isActive) => (\n                      <ChartIcon\n                          fillOpacity={isActive ? 0.3 : 1}\n                          fillColor={isActive ? StyleGuideColorsEnum.brandAccent : StyleGuideColorsEnum.light}\n                          strokeColor={isActive ? StyleGuideColorsEnum.brandDark : StyleGuideColorsEnum.slate}\n                      />\n                  ),\n                  text: t('menu.statistics'),\n                  to: routesEnum.statistics,\n                  matchPathname: routesEnum.statistics,\n                  testSelector: 'statistics',\n              }\n            : null,\n    ];\n\n    return (\n        <LeftMenuLayoutBase\n            menuLinks={menuLinks}\n            accountLink={routesEnum.account}\n            logoLink={routesEnum.home}\n            badges={badges}\n            isAllowHelpButton\n        >\n            {children}\n        </LeftMenuLayoutBase>\n    );\n});\n\nexport default LeftMenuLayout;\n","// extracted by mini-css-extract-plugin\nexport default {\"flag\":\"FlagCell__flag___ImNNg\",\"fadeIn\":\"FlagCell__fadeIn___EKbPT\",\"blinking\":\"FlagCell__blinking___AzaYH\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './NotificationToastsManager.scss';\nimport { useDispatch } from 'react-redux';\nimport { markAsRead } from 'common/store/notifications/actions';\nimport { NotificationTextRendererT } from 'common/components/toasts/NotificationToastsManager/models';\nimport { getUnknownNotificationText } from './utils';\nimport { AnyNotificationT } from 'common/store/notifications/models';\nimport { logWarning } from 'common/utils/logger';\nimport {\n    NotificationLinkFactoryT,\n    NotificationRendererT,\n    NotificationViewT,\n} from 'common/components/notifications/NotificationsBarContent/models';\nimport history from 'common/utils/history';\nimport Toast from 'common/components/toasts/Toast/Toast';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { newNotificationsChannel } from 'common/store/notifications/channels';\nimport uniqBy from 'lodash/uniqBy';\nimport NotificationCardHead from 'common/components/notifications/NotificationsBarContent/NotificationCardHead/NotificationCardHead';\nimport NotificationCardFooter from 'common/components/notifications/NotificationsBarContent/NotificationCardFooter/NotificationCardFooter';\nimport NotificationToastContent from 'common/components/toasts/NotificationToastContent/NotificationToastContent';\nimport {\n    renderCommonNotification,\n    renderUnknownNotification,\n} from 'common/components/notifications/NotificationsBarContent/utils';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    renderNotification: NotificationRendererT | null;\n    renderNotificationText: NotificationTextRendererT;\n    getNotificationLink: NotificationLinkFactoryT;\n};\n\nconst UNREAD_NOTIFICATIONS_LIMIT = 6;\n\nconst NotificationToastsManager = React.memo((props: PropsT) => {\n    const { className, renderNotificationText, renderNotification, getNotificationLink } = props;\n\n    const dispatch = useDispatch();\n\n    const [newNotifications, setNewNotifications] = React.useState<AnyNotificationT[]>([]);\n\n    useChannelSubscribe(newNotificationsChannel, (event) => {\n        setNewNotifications((prevNotifications) => {\n            return uniqBy(\n                [...(prevNotifications || []), ...(event.newNotifications || []).slice(0, UNREAD_NOTIFICATIONS_LIMIT)],\n                (notification) => notification.id,\n            );\n        });\n    });\n\n    const handleMarkAsOld = React.useCallback(\n        (notification: AnyNotificationT) => {\n            const { id } = notification;\n            if (!id) {\n                logWarning('empty notification id');\n                return;\n            }\n\n            setNewNotifications((prevNotifications) => {\n                return prevNotifications.filter((notification) => {\n                    return notification.id !== id;\n                });\n            });\n        },\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        [dispatch],\n    );\n\n    const handleMarkAsRead = React.useCallback(\n        (notification: AnyNotificationT) => {\n            const { id, readAlready } = notification;\n            if (!id) {\n                logWarning('empty notification id');\n                return;\n            }\n\n            setNewNotifications((prevNotifications) => {\n                return prevNotifications.filter((notification) => {\n                    return notification.id !== id;\n                });\n            });\n\n            if (!readAlready) {\n                dispatch(markAsRead([id]));\n            }\n        },\n        [dispatch],\n    );\n\n    return (\n        <div\n            className={className}\n            onClick={(event) => {\n                event.stopPropagation();\n                event.preventDefault();\n            }}\n        >\n            {newNotifications.map((notification, notificationIndex): React.ReactNode => {\n                const notificationView: NotificationViewT =\n                    renderCommonNotification(notification) ||\n                    renderNotification?.(notification) ||\n                    renderUnknownNotification(notification);\n\n                const notificationText: React.ReactNode =\n                    renderNotificationText(notification) || getUnknownNotificationText(notification);\n                const key = notification.id || notificationIndex;\n\n                return (\n                    <Toast\n                        key={key}\n                        className={cx('notification')}\n                        onClose={() => {\n                            handleMarkAsOld(notification);\n                        }}\n                    >\n                        {(onClose) => {\n                            const link: ReturnType<NotificationLinkFactoryT> =\n                                getNotificationLink(notification) || null;\n\n                            return (\n                                <NotificationToastContent\n                                    key={notification.id}\n                                    emotion={notificationView.body.emotion}\n                                    initiatorType={notificationView.body.initiatorType}\n                                    initiatorName={notificationView.body.initiatorName}\n                                    headerNode={\n                                        notificationView.header ? (\n                                            <NotificationCardHead {...notificationView.header} />\n                                        ) : null\n                                    }\n                                    footerNode={\n                                        notificationView.footer ? (\n                                            <NotificationCardFooter {...notificationView.footer} />\n                                        ) : null\n                                    }\n                                    notification={notification}\n                                    onClick={() => {\n                                        handleMarkAsRead(notification);\n\n                                        if (link) {\n                                            history.push(link);\n                                        }\n                                    }}\n                                    onClose={onClose}\n                                >\n                                    {notificationText}\n                                </NotificationToastContent>\n                            );\n                        }}\n                    </Toast>\n                );\n            })}\n        </div>\n    );\n});\n\nexport default NotificationToastsManager;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { SEC_IN_HOUR, SEC_IN_MIN } from 'common/utils/time';\nimport { convertToKm, M_IN_KM } from 'common/utils/distance';\nimport { TFunction } from 'i18next';\nimport { useTranslation } from 'react-i18next';\nimport { formatThousandNumber } from 'common/utils/formatters';\nimport classNames from 'classnames/bind';\nimport styles from './MapFooterEstimate.scss';\nimport MapFooter from 'common/components/maps/MapFooter/MapFooter';\nimport cs from 'classnames';\nimport isNumber from 'lodash/isNumber';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    distanceM: number | undefined;\n    travelTimeSec: number | undefined;\n    isLoading: boolean;\n};\n\nconst formatDistance = (t: TFunction, distanceM: number | undefined): React.ReactNode => {\n    if (distanceM === undefined) {\n        return null;\n    }\n\n    if (distanceM <= M_IN_KM) {\n        return t('common:short-meters', {\n            value: formatThousandNumber(Math.round(distanceM)),\n        });\n    }\n\n    return t('common:short-kilometers', {\n        value: formatThousandNumber(convertToKm(distanceM)),\n    });\n};\n\nconst formatDurationSec = (t: TFunction, durationSec: number | undefined): React.ReactNode => {\n    if (durationSec === undefined) {\n        return null;\n    }\n\n    if (durationSec < SEC_IN_HOUR) {\n        const roundedDuration = Math.round(durationSec / SEC_IN_MIN);\n        return `${roundedDuration} ${t('common:minutes', {\n            postProcess: 'interval',\n            count: roundedDuration,\n        })}`;\n    }\n\n    const roundedDuration = Math.round(durationSec / SEC_IN_HOUR);\n    return `${roundedDuration} ${t('common:hours', {\n        postProcess: 'interval',\n        count: Math.round(durationSec / SEC_IN_HOUR),\n    })}`;\n};\n\nconst MapFooterEstimate: React.FC<PropsT> = React.memo((props) => {\n    const { className, isLoading, distanceM, travelTimeSec } = props;\n\n    const { t } = useTranslation();\n\n    const hasMetrics = isNumber(distanceM) && isNumber(travelTimeSec);\n    if (!hasMetrics && !isLoading) {\n        return null;\n    }\n\n    return (\n        <MapFooter>\n            <div className={cs(cx('estimate'), className)}>\n                {isLoading && (\n                    <div className={cx('loader')}>\n                        <ControlLoaderIcon\n                            className={cx('loader-icon')}\n                            fillColor={StyleGuideColorsEnum.charcoal}\n                            size={DEFAULT_ICON_SIZE}\n                        />\n                        <span className={cx('loader-text')}>{t('common:maps.loading')}</span>\n                    </div>\n                )}\n                {hasMetrics && !isLoading && (\n                    <span>\n                        {formatDistance(t, distanceM)}\n                        {' / ~'}\n                        {formatDurationSec(t, travelTimeSec)}\n                    </span>\n                )}\n            </div>\n        </MapFooter>\n    );\n});\n\nexport default MapFooterEstimate;\n","import { createContext } from 'react';\n\ntype TabMetaT = { title: string };\n\nexport type SwitchableViewContextValueT = {\n    tabs: TabMetaT[];\n    activeTabIndex: number;\n    setActiveTabIndex: (index: number) => void;\n};\n\nexport const SwitchableViewContext = createContext<SwitchableViewContextValueT>({\n    tabs: [],\n    activeTabIndex: 0,\n    setActiveTabIndex: () => {},\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"text\":\"TimeIntervalDurationPillLabel__text___XIfgc\",\"fadeIn\":\"TimeIntervalDurationPillLabel__fadeIn___rDgdn\",\"blinking\":\"TimeIntervalDurationPillLabel__blinking___gydoH\"};","// extracted by mini-css-extract-plugin\nexport default {\"list\":\"PartnerOperationUnavailableReasonsAlert__list___wMOPk\"};","import { PageSortT, SortDirectionEnum } from 'common/utils/query';\nimport { FetchBrokerTeamsPageQueryT } from 'broker-admin/store/broker-teams/models';\nimport { BrokerUsersTeamsSortEnum, QueryFiltersKeysEnum, QueryFiltersT } from './query-models';\n\nconst formatSort = (sort: PageSortT<BrokerUsersTeamsSortEnum> | null): FetchBrokerTeamsPageQueryT['sorting'] | null => {\n    switch (sort?.value) {\n        case BrokerUsersTeamsSortEnum.name: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'NAME_ASC';\n            }\n            return 'NAME_DESC';\n        }\n        case BrokerUsersTeamsSortEnum.createdDate: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'CREATED_DATE_ASC';\n            }\n            return 'CREATED_DATE_DESC';\n        }\n        default: {\n            return null;\n        }\n    }\n};\n\nexport const prepareFetchPageQuery = (\n    queryFilters: QueryFiltersT,\n    sort: PageSortT<BrokerUsersTeamsSortEnum>,\n): FetchBrokerTeamsPageQueryT => {\n    return {\n        textSearch: queryFilters[QueryFiltersKeysEnum.searchText] || undefined,\n        companyIds: queryFilters[QueryFiltersKeysEnum.partnerIds] || undefined,\n        userIds: queryFilters[QueryFiltersKeysEnum.userIds] || undefined,\n        sorting: formatSort(sort) || undefined,\n    };\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"PriceSettingsRuleFiltersSidebarContent__form___hB3Uu\",\"apply\":\"PriceSettingsRuleFiltersSidebarContent__apply___yy7ha\",\"field--name\":\"PriceSettingsRuleFiltersSidebarContent__field--name___kfM_q\",\"field--type\":\"PriceSettingsRuleFiltersSidebarContent__field--type___AhAvK\",\"field--countries\":\"PriceSettingsRuleFiltersSidebarContent__field--countries___cNZ7K\",\"field--price-component\":\"PriceSettingsRuleFiltersSidebarContent__field--price-component___QTXlm\",\"field--price-operation\":\"PriceSettingsRuleFiltersSidebarContent__field--price-operation___AErLt\",\"field--user\":\"PriceSettingsRuleFiltersSidebarContent__field--user___KxcbU\",\"field--dates\":\"PriceSettingsRuleFiltersSidebarContent__field--dates___XL4RZ\",\"field--trailer-types\":\"PriceSettingsRuleFiltersSidebarContent__field--trailer-types___Ex8wn\",\"field--partners\":\"PriceSettingsRuleFiltersSidebarContent__field--partners___uSBib\",\"controls\":\"PriceSettingsRuleFiltersSidebarContent__controls____IIzn\",\"fadeIn\":\"PriceSettingsRuleFiltersSidebarContent__fadeIn____c80P\",\"blinking\":\"PriceSettingsRuleFiltersSidebarContent__blinking___yJotz\"};","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"UserSelectList__inner___OwBsl\",\"checkbox\":\"UserSelectList__checkbox___BG0DU\",\"checkbox-label\":\"UserSelectList__checkbox-label___MBBJl\",\"row\":\"UserSelectList__row___hle2K\",\"row--half-opacity\":\"UserSelectList__row--half-opacity___fVnze\",\"row__avatar\":\"UserSelectList__row__avatar___zjuVi\",\"row__text\":\"UserSelectList__row__text___e8rPw\",\"row__pills\":\"UserSelectList__row__pills___ptDuI\",\"pending-users-switcher\":\"UserSelectList__pending-users-switcher___AxkYh\",\"fadeIn\":\"UserSelectList__fadeIn___toZG2\",\"blinking\":\"UserSelectList__blinking___fmKZu\"};","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { FetchBrokerOrdersPageActionT } from './types';\nimport {\n    fetchBrokerOrdersPage,\n    fetchBrokerOrdersPageBegin,\n    fetchBrokerOrdersPageError,\n    fetchBrokerOrdersPageSuccess,\n    resetBrokerOrders,\n} from './slice';\nimport { selectBrokerOrdersPages, selectBrokerOrdersQuery } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { checkIsSameQuery, checkShouldEmitChangePage } from 'common/utils/pagination/utils';\nimport { brokerOrdersPaginationChannel } from 'broker-admin/store/broker-orders/channels';\n\nfunction* fetchBrokerOrdersSaga(action: FetchBrokerOrdersPageActionT): WrapGeneratorT<void> {\n    const { pageNumber, query, options } = action.payload;\n\n    const prevQuery: ReturnType<typeof selectBrokerOrdersQuery> = yield select(selectBrokerOrdersQuery);\n    const pages: ReturnType<typeof selectBrokerOrdersPages> = yield select(selectBrokerOrdersPages);\n    const isSameQuery = checkIsSameQuery(query, prevQuery);\n    const isNeedRequest = checkNeedRequest(pages[pageNumber]?.requestStatus, options);\n    if (isSameQuery && !isNeedRequest) {\n        return;\n    }\n    if (!isSameQuery) {\n        yield put(resetBrokerOrders({ mutationListOptions: { savingPageNumber: pageNumber } }));\n    }\n\n    yield put(fetchBrokerOrdersPageBegin({ query, pageNumber }));\n\n    const [error, response]: ReturnApiT<typeof brokerTranziitApi.fetchBrokerOrdersPage> =\n        yield brokerTranziitApi.fetchBrokerOrdersPage({\n            ...query,\n            page: pageNumber,\n        });\n\n    if (error) {\n        yield put(fetchBrokerOrdersPageError({ query, pageNumber, error }));\n        return;\n    }\n\n    yield put(fetchBrokerOrdersPageSuccess({ query, pageNumber, pageResponse: response }));\n\n    checkShouldEmitChangePage(pageNumber, response, brokerOrdersPaginationChannel);\n}\n\nfunction* brokerOrdersSaga(): WrapGeneratorT<void> {\n    yield takeEvery(fetchBrokerOrdersPage.type, fetchBrokerOrdersSaga);\n}\n\nexport default brokerOrdersSaga;\n","import {\n    OrderStatusEnum,\n    RFQStatusEnum,\n    ShipmentStatusEnum,\n    TourStatusEnum,\n    TransportOrderStatusEnum,\n} from 'common/utils/api/models';\nimport { NotificationEmotionEnum } from 'common/store/notifications/models';\n\nexport const EMOTION_LOAD_STATUS_MAP: Record<ShipmentStatusEnum, NotificationEmotionEnum> = {\n    [ShipmentStatusEnum.awaitingLoading]: NotificationEmotionEnum.neutral,\n    [ShipmentStatusEnum.loading]: NotificationEmotionEnum.neutral,\n    [ShipmentStatusEnum.inTransit]: NotificationEmotionEnum.neutral,\n    [ShipmentStatusEnum.unloading]: NotificationEmotionEnum.neutral,\n    [ShipmentStatusEnum.delivered]: NotificationEmotionEnum.positive,\n    [ShipmentStatusEnum.canceled]: NotificationEmotionEnum.neutral,\n};\n\nexport const EMOTION_ORDER_STATUS_MAP: Record<OrderStatusEnum, NotificationEmotionEnum> = {\n    [OrderStatusEnum.placed]: NotificationEmotionEnum.neutral,\n    [OrderStatusEnum.inProgress]: NotificationEmotionEnum.neutral,\n    [OrderStatusEnum.canceled]: NotificationEmotionEnum.neutral,\n    [OrderStatusEnum.delivered]: NotificationEmotionEnum.neutral,\n    [OrderStatusEnum.done]: NotificationEmotionEnum.positive,\n};\n\nexport const EMOTION_TOUR_STATUS_MAP: Record<TourStatusEnum, NotificationEmotionEnum> = {\n    [TourStatusEnum.carrierUnassigned]: NotificationEmotionEnum.negative,\n    [TourStatusEnum.carrierAssigned]: NotificationEmotionEnum.neutral,\n    [TourStatusEnum.inTransit]: NotificationEmotionEnum.neutral,\n    [TourStatusEnum.finished]: NotificationEmotionEnum.positive,\n    [TourStatusEnum.canceled]: NotificationEmotionEnum.neutral,\n};\n\nexport const EMOTION_TRANSPORTATION_STATUS_MAP: Record<TransportOrderStatusEnum, NotificationEmotionEnum> = {\n    [TransportOrderStatusEnum.assetsUnassigned]: NotificationEmotionEnum.negative,\n    [TransportOrderStatusEnum.driverUnassigned]: NotificationEmotionEnum.negative,\n    [TransportOrderStatusEnum.assigned]: NotificationEmotionEnum.neutral,\n    [TransportOrderStatusEnum.inTransit]: NotificationEmotionEnum.neutral,\n    [TransportOrderStatusEnum.done]: NotificationEmotionEnum.positive,\n    [TransportOrderStatusEnum.canceled]: NotificationEmotionEnum.neutral,\n    [TransportOrderStatusEnum.declined]: NotificationEmotionEnum.neutral,\n    [TransportOrderStatusEnum.unknown]: NotificationEmotionEnum.neutral,\n};\n\nexport const EMOTION_ORDER_DRAFT_STATUS_MAP: Record<RFQStatusEnum, NotificationEmotionEnum> = {\n    [RFQStatusEnum.open]: NotificationEmotionEnum.neutral,\n    [RFQStatusEnum.expireSoon]: NotificationEmotionEnum.attention,\n    [RFQStatusEnum.expired]: NotificationEmotionEnum.negative,\n    [RFQStatusEnum.completed]: NotificationEmotionEnum.positive,\n    [RFQStatusEnum.closed]: NotificationEmotionEnum.neutral,\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"alerts\":\"AlertGroup__alerts___hbgSM\",\"fadeIn\":\"AlertGroup__fadeIn___uvBr7\",\"blinking\":\"AlertGroup__blinking___xBCEE\"};","import * as React from 'react';\nimport { BrokerTeamShortT } from 'broker-admin/store/broker-teams/models';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\n\ntype PropsT = {\n    brokerTeamShort: BrokerTeamShortT;\n};\n\nconst PartnersCountCell: React.FC<PropsT> = React.memo((props) => {\n    const { brokerTeamShort } = props;\n\n    const partnersCount = brokerTeamShort?.numberOfCompanies || 0;\n\n    return (\n        <PillLabel isSymmetrical theme={partnersCount ? PillLabelThemeEnum.charcoal : PillLabelThemeEnum.grey}>\n            {partnersCount}\n        </PillLabel>\n    );\n});\n\nexport default PartnersCountCell;\n","import React from 'react';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { PartnerTypeEnum, RolesEnum, UserRoleT } from 'common/utils/api/models';\n\nimport { useTranslation } from 'react-i18next';\nimport { USER_ROLE_T_MAP } from 'common/utils/users';\nimport { ALL_ROLES_BY_PARTNER_TYPE } from 'common/store/auth/constants';\nimport DropdownMultipleInput from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInput';\nimport { SpecialOptionEnum } from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { CheckboxPropsT, CheckboxThemeEnum } from 'design-system/components/Checkbox/Checkbox';\n\ntype ValueT = UserRoleT;\n\ntype RoleOptionT = {\n    label: string;\n    value: ValueT;\n    isDisabled?: boolean;\n    theme?: CheckboxThemeEnum;\n};\n\ntype PropsT = {\n    value: Array<ValueT>;\n    initialValue?: Array<ValueT>;\n    placeholder?: string;\n    isDisabled?: boolean;\n    onChange: (value: Array<ValueT>) => void;\n    hasWarning: boolean;\n    hasError: boolean;\n    hasChanges?: boolean;\n    onBlur: () => void;\n    onFocus: () => void;\n    availableRoles: Array<RolesEnum>;\n    overlayPosition?: DropdownOverlayPositionEnum;\n};\n\nexport const getAvailableRolesByPartnerType = (partnerType: PartnerTypeEnum): Array<RolesEnum> => {\n    return ALL_ROLES_BY_PARTNER_TYPE[partnerType];\n};\n\nconst adminRolesSet = new Set<UserRoleT>([RolesEnum.companyAdmin]);\n\nconst UserRolesDropdown: React.FC<PropsT> = React.memo((props) => {\n    const {\n        placeholder,\n        value,\n        initialValue,\n        availableRoles,\n        overlayPosition,\n        onChange,\n        isDisabled,\n        hasWarning,\n        hasError,\n        hasChanges,\n        onBlur,\n        onFocus,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const renderOption = React.useCallback((option: RoleOptionT | null | undefined): React.ReactNode => {\n        return option?.label;\n    }, []);\n\n    const getOptionValue = React.useCallback((option: RoleOptionT) => option?.value, []);\n\n    const isSelectedAnyAdminRole = React.useMemo(() => {\n        return value.some((item) => adminRolesSet.has(item));\n    }, [value]);\n\n    const initialValueSet = React.useMemo(() => {\n        if (!initialValue) {\n            return null;\n        }\n\n        return new Set(initialValue);\n    }, [initialValue]);\n\n    const valueSet = React.useMemo(() => {\n        return new Set(value || []);\n    }, [value]);\n\n    const getCheckboxProps = React.useCallback(\n        (option: RoleOptionT) => {\n            const checkboxProps: Partial<CheckboxPropsT> = {};\n\n            if (initialValueSet) {\n                const hasChanges =\n                    (initialValueSet.has(option.value) && !valueSet.has(option.value)) ||\n                    (!initialValueSet.has(option.value) && valueSet.has(option.value));\n\n                checkboxProps.theme = hasChanges ? CheckboxThemeEnum.orange : CheckboxThemeEnum.green;\n            }\n\n            if (isSelectedAnyAdminRole && !adminRolesSet.has(option.value)) {\n                checkboxProps.isDisabled = true;\n            }\n\n            return checkboxProps;\n        },\n        [isSelectedAnyAdminRole, initialValueSet, valueSet],\n    );\n\n    const options = React.useMemo((): Array<RoleOptionT | SpecialOptionEnum> => {\n        const otherAvailableRoles = availableRoles.filter((role) => !adminRolesSet.has(role));\n\n        const otherRolesOptions = otherAvailableRoles.map((role) => {\n            return {\n                label: t(USER_ROLE_T_MAP[role]),\n                value: role,\n            };\n        });\n\n        const adminAvailableRoles = availableRoles.filter((role) => adminRolesSet.has(role));\n\n        const adminRolesOptions = adminAvailableRoles.map((role) => {\n            return {\n                label: t(USER_ROLE_T_MAP[role]),\n                value: role,\n            };\n        });\n\n        return [\n            ...otherRolesOptions,\n            ...(adminRolesOptions?.length ? [SpecialOptionEnum.separator, ...adminRolesOptions] : []),\n        ];\n    }, [availableRoles, t]);\n\n    const handleSelect = React.useCallback(\n        (value: Array<ValueT>): void => {\n            const hasAdminRole = value.some((item) => {\n                return adminRolesSet.has(item);\n            });\n\n            let newValue = value;\n            if (hasAdminRole) {\n                newValue = value.filter((item) => {\n                    return adminRolesSet.has(item);\n                });\n            }\n\n            onChange(newValue);\n        },\n        [onChange],\n    );\n\n    return (\n        <DropdownMultipleInput<RoleOptionT, RoleOptionT['value']>\n            selectedValues={value}\n            placeholder={placeholder}\n            options={options}\n            isDisabled={isDisabled}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            onSelect={handleSelect}\n            renderOption={renderOption}\n            getOptionValue={getOptionValue}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            hasChanges={hasChanges}\n            isNoWrapTrigger\n            getCheckboxProps={getCheckboxProps}\n            renderTriggerContent={(selectedOptions, placeholder) => {\n                if (!selectedOptions?.length) {\n                    return placeholder;\n                }\n\n                return selectedOptions?.map((option) => option.label).join(', ');\n            }}\n        />\n    );\n});\n\nexport default UserRolesDropdown;\n","import { BaseSecurityAuthApi } from './base-security-auth-api';\nimport { AuthApiError } from 'common/utils/api/auth/errors/auth-api-error';\nimport { AuthUserClaimRoleT } from 'common/utils/api/models';\n\ntype AuthUserClaimsT = {\n    roles: Array<AuthUserClaimRoleT>;\n};\n\ntype PasswordT = string;\ntype EmailAddressT = string;\n\ntype AuthUserT = {\n    email: EmailAddressT | null;\n    displayName: string | null;\n    isAnonymous: boolean;\n};\n\ntype AuthAccountUrlsT = {\n    changeCreds: string;\n};\n\ntype AuthStateChangedCallbackT = (user: AuthUserT | null) => void;\n\ntype AuthUnsubscribeCallbackT = () => void;\n\nabstract class BaseAuthService extends BaseSecurityAuthApi {\n    abstract checkAllowedAnonymouslyUserCreation: () => boolean;\n\n    abstract doSignOut: () => Promise<[AuthApiError | null, null]>;\n\n    abstract signInWithEmailAndPassword: (\n        email: EmailAddressT,\n        password: PasswordT,\n    ) => Promise<[AuthApiError | null, AuthUserT | null]>;\n\n    abstract getAuthUserClaims: () => Promise<[AuthApiError | null, AuthUserClaimsT | null]>;\n\n    abstract getAccountUrls: () => Promise<[AuthApiError | null, AuthAccountUrlsT | null]>;\n\n    abstract verificationEmail: (code: string) => Promise<[AuthApiError | null, null]>;\n\n    abstract onAuthStateChanged: (resolver: AuthStateChangedCallbackT) => AuthUnsubscribeCallbackT;\n\n    abstract createAnonymouslyUser: () => Promise<[AuthApiError | null, AuthUserT | null]>;\n\n    abstract updatePassword: (code: string, password: PasswordT) => Promise<[AuthApiError | null, null]>;\n\n    abstract reauthenticateWithCredential: (\n        email: EmailAddressT,\n        password: PasswordT,\n    ) => Promise<[AuthApiError | null, AuthUserT | null]>;\n\n    abstract changePassword: (newPassword: PasswordT) => Promise<[AuthApiError | null, null]>;\n\n    abstract updateProfile: (displayName: string, photoURL?: string) => Promise<[AuthApiError | null, null]>;\n\n    abstract checkIsContinueSignInRedirect: () => boolean;\n\n    abstract destroySession: () => void;\n\n    abstract createSignInUrl: (continueReturnUrl?: string) =>\n        | {\n              pathname: string;\n              search: string;\n          }\n        | string;\n\n    abstract createSignInUrlAfterChangePassword: () =>\n        | {\n              pathname: string;\n              search: string;\n          }\n        | string;\n\n    abstract createSignUpUrl: () => string;\n\n    abstract createForgotPasswordUrl: () => string;\n\n    abstract createChangePasswordUrl: () => string;\n\n    abstract createAccountUrl: () => string;\n\n    abstract forceRefreshToken: () => Promise<[AuthApiError | null, boolean | null]>;\n}\n\nexport {\n    AuthStateChangedCallbackT,\n    BaseAuthService,\n    EmailAddressT,\n    PasswordT,\n    AuthUserT,\n    AuthUserClaimsT,\n    AuthAccountUrlsT,\n    AuthUnsubscribeCallbackT,\n};\n","import qs from 'qs';\n\nconst stringifyQuery = (query: Record<string, any>) => {\n    return qs.stringify(query, { indices: false, addQueryPrefix: true });\n};\n\nexport { stringifyQuery };\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\nimport styles from './QuickFiltersButtonGroups.scss';\n\nimport isEmpty from 'lodash/isEmpty';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControl, {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport ArrowsIcon from 'common/icons/ArrowsIcon';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport NotificationLabel, {\n    NotificationLabelThemeEnum,\n    NotificationPropsT,\n} from '../../notifications/NotificationLabel/NotificationLabel';\nimport groupBy from 'lodash/groupBy';\nimport isEqual from 'lodash/isEqual';\nimport Button, { ButtonThemeEnum } from '../../Button/Button';\n\nconst cx = classNames.bind(styles);\n\nexport type QuickFiltersOptionT<ValueT> = {\n    id: ValueT | undefined;\n    showPriority: number;\n    hidePriority: number;\n    label: string;\n    notificationProps?: NotificationPropsT | null;\n    testSelector: string;\n};\n\nexport type PropsT<ValueT> = {\n    className?: string;\n    selectedId: ValueT | undefined;\n    onSelect: (id: ValueT | undefined) => void;\n    options: Array<QuickFiltersOptionT<ValueT>>;\n    revertSeparatorIndexes?: number[];\n    moreStatusesLabel: string;\n    testSelector?: string;\n};\n\nconst sortByShowPriorityAsc = <ValueT extends string>(\n    optionA: QuickFiltersOptionT<ValueT>,\n    optionB: QuickFiltersOptionT<ValueT>,\n): number => {\n    return optionA.showPriority - optionB.showPriority;\n};\n\ntype OptionWidthByIdT = Record<string, number>;\n\nconst getFullWidth = <ValueT extends string>(\n    options: Array<QuickFiltersOptionT<ValueT>>,\n    optionWidthById: OptionWidthByIdT,\n): number => {\n    return options.reduce((summaryWidth, option) => {\n        return summaryWidth + (optionWidthById[option.id as string] || 0);\n    }, 0);\n};\n\nconst reduceTriggerNotificationProps = <ValueT extends string>(\n    options: Array<QuickFiltersOptionT<ValueT>>,\n): null | NotificationPropsT => {\n    const notificationGroups = groupBy(options, 'notificationProps.theme');\n\n    const reduceNotificationGroup = (options: Array<QuickFiltersOptionT<ValueT>>) => {\n        return options.reduce((summary, option) => {\n            return summary + (option?.notificationProps?.count || 0);\n        }, 0);\n    };\n\n    if (notificationGroups[NotificationLabelThemeEnum.red]) {\n        return {\n            count: reduceNotificationGroup(notificationGroups[NotificationLabelThemeEnum.red]),\n            theme: NotificationLabelThemeEnum.red,\n            isShowPlusSign: true,\n        };\n    }\n\n    if (notificationGroups[NotificationLabelThemeEnum.orange]) {\n        return {\n            count: reduceNotificationGroup(notificationGroups[NotificationLabelThemeEnum.orange]),\n            theme: NotificationLabelThemeEnum.orange,\n            isShowPlusSign: true,\n        };\n    }\n\n    if (notificationGroups[NotificationLabelThemeEnum.green]) {\n        return {\n            count: reduceNotificationGroup(notificationGroups[NotificationLabelThemeEnum.green]),\n            theme: NotificationLabelThemeEnum.green,\n        };\n    }\n\n    return null;\n};\n\nconst PROXIMITY = 10;\n\nconst QuickFiltersButtonGroups = <ValueT extends string>(props: PropsT<ValueT>): React.ReactElement | null => {\n    const { selectedId, onSelect, options, className, moreStatusesLabel, testSelector, revertSeparatorIndexes } = props;\n\n    const [optionWidthById, setOptionWidthById] = React.useState<OptionWidthByIdT>({});\n\n    const [containerWidth, setContainerWidth] = React.useState<number | null>(null);\n\n    const [containerNode, setContainerNode] = React.useState<HTMLDivElement | null>(null);\n    const containerRef = React.useCallback((containerNode) => {\n        if (containerNode !== null) {\n            setContainerNode(containerNode);\n            setContainerWidth(containerNode.offsetWidth);\n        }\n    }, []);\n\n    React.useEffect(() => {\n        if (!containerNode || !containerNode.firstChild) {\n            return;\n        }\n\n        // @ts-ignore Property 'children' does not exist on type 'ChildNode'.\n        const { children } = containerNode.firstChild;\n        if (!children) {\n            return;\n        }\n\n        const widthById: Record<string, number> = {};\n\n        for (let index = 0; index < children.length; index += 1) {\n            const child = children[index];\n            const id = child?.getAttribute('data-id') || 'undefined';\n            widthById[id] = (child?.offsetWidth || 0) + 0.5; // fix subpixel problem\n        }\n\n        const newOptionWidthById = {\n            ...optionWidthById,\n            ...widthById,\n        };\n\n        if (!isEqual(newOptionWidthById, optionWidthById)) {\n            setOptionWidthById(newOptionWidthById);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [containerNode, options, moreStatusesLabel]);\n\n    React.useLayoutEffect(() => {\n        const measureContainer = () => {\n            if (!containerNode) {\n                return;\n            }\n\n            setContainerWidth(containerNode.offsetWidth);\n        };\n\n        window.addEventListener('resize', measureContainer);\n\n        return () => {\n            window.removeEventListener('resize', measureContainer);\n        };\n    }, [containerNode]);\n\n    const moreRef = React.createRef<HTMLDivElement>();\n    const [moreWidth, setMoreWidth] = React.useState<number | null>(null);\n    React.useEffect(() => {\n        setMoreWidth(moreRef.current?.offsetWidth || 0);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [moreRef.current]);\n\n    const sortedOptionsByHidePriority = options.sort((optionA, optionB) => {\n        return optionA.hidePriority - optionB.hidePriority;\n    });\n\n    const isMeasuring = isEmpty(optionWidthById) || containerWidth === null;\n\n    let optionsWidthLimit = isMeasuring || containerWidth === null ? Infinity : containerWidth - PROXIMITY;\n\n    const optionsForShow = [...sortedOptionsByHidePriority];\n    const optionsForHide = [];\n\n    let optionsWidth = getFullWidth(optionsForShow, optionWidthById);\n\n    if (optionsWidth > optionsWidthLimit && moreWidth !== null) {\n        optionsWidthLimit -= moreWidth;\n    }\n\n    while (optionsWidth > optionsWidthLimit) {\n        const option = optionsForShow.pop();\n        if (option) {\n            optionsForHide.push(option);\n            const optionWidth = optionWidthById[option?.id as string];\n            optionsWidth -= optionWidth;\n        }\n    }\n\n    const sortedOptionsForShow = isMeasuring ? options : optionsForShow.sort(sortByShowPriorityAsc);\n\n    const optionsForMeasure: Array<QuickFiltersOptionT<ValueT>> = [\n        {\n            // @ts-ignore\n            id: '',\n            showPriority: 0,\n            hidePriority: 0,\n            label: '',\n        },\n    ];\n\n    const rawDropdownOptions = isMeasuring ? optionsForMeasure : optionsForHide.sort(sortByShowPriorityAsc);\n\n    const dropdownOptions = rawDropdownOptions.map((option, optionIndex) => ({\n        label: (\n            <DropdownControlOptionLabel\n                key={optionIndex}\n                isSelected={selectedId === option.id}\n                label={\n                    <>\n                        {option.notificationProps && (\n                            <NotificationLabel className={cx('notification')} {...option.notificationProps} />\n                        )}\n                        {option.label}\n                    </>\n                }\n            />\n        ),\n        onSelect: () => {\n            onSelect(option.id);\n        },\n    }));\n\n    const triggerNotificationProps = reduceTriggerNotificationProps(rawDropdownOptions);\n\n    React.useEffect(() => {\n        setMoreWidth(moreRef.current?.offsetWidth || 0);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [`${triggerNotificationProps?.count}-${triggerNotificationProps?.theme}`, moreRef.current]);\n\n    const dropdownOptionsWithSeparators = React.useMemo(() => {\n        const { length } = dropdownOptions;\n        const options: Array<DropdownControlOptionT | SpecialOptionEnum> = [...dropdownOptions];\n\n        (revertSeparatorIndexes || []).forEach((separatorIndex) => {\n            if (separatorIndex >= length) {\n                return;\n            }\n\n            const originalIndex = length - separatorIndex;\n            const originalOptions = dropdownOptions[originalIndex];\n            const index = options.findIndex((option) => option === originalOptions);\n\n            options.splice(index, 0, SpecialOptionEnum.separator);\n        });\n\n        return options;\n    }, [dropdownOptions, revertSeparatorIndexes]);\n\n    return (\n        <div className={cs(cx('wrap'), className)} ref={containerRef}>\n            <div className={cx('container', { 'container--isMeasuring': isMeasuring })}>\n                {sortedOptionsForShow.map((option, optionIndex) => {\n                    const isSelected = selectedId === option.id;\n\n                    return (\n                        <div className={cx('option')} key={optionIndex} data-id={String(option.id)}>\n                            <Button\n                                noPaddings\n                                rowClassName={cx('option-button-content')}\n                                className={cx('option-button', { 'option-button--isSelected': isSelected })}\n                                theme={ButtonThemeEnum.transparent}\n                                testSelector={`${testSelector}_${option.testSelector}`}\n                                isToggled={isSelected}\n                                onClick={() => {\n                                    onSelect(option.id);\n                                }}\n                                leftIcon={\n                                    option.notificationProps?.count ? (\n                                        <NotificationLabel {...option.notificationProps} />\n                                    ) : null\n                                }\n                            >\n                                {option.label}\n                            </Button>\n                        </div>\n                    );\n                })}\n                <div className={cx('toggle')} ref={moreRef} data-id=\"more-statuses\">\n                    <DropdownControl\n                        options={dropdownOptionsWithSeparators}\n                        testSelector={`${testSelector}_more-statuses`}\n                        renderTrigger={(isActive, onClick) => (\n                            <Button\n                                onClick={onClick}\n                                isPressed={isActive}\n                                testSelector={`${testSelector}_more-statuses`}\n                                leftIcon={\n                                    triggerNotificationProps ? (\n                                        <NotificationLabel {...triggerNotificationProps} />\n                                    ) : null\n                                }\n                                rightIcon={<ArrowsIcon />}\n                                theme={ButtonThemeEnum.transparent}\n                            >\n                                {moreStatusesLabel}\n                            </Button>\n                        )}\n                        overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                    />\n                </div>\n            </div>\n        </div>\n    );\n};\n\nexport default React.memo(QuickFiltersButtonGroups) as typeof QuickFiltersButtonGroups;\n","// extracted by mini-css-extract-plugin\nexport default {\"trigger\":\"TableActions__trigger___oV0MP\",\"trigger__label\":\"TableActions__trigger__label___TdQQv\",\"fadeIn\":\"TableActions__fadeIn___YMscs\",\"blinking\":\"TableActions__blinking___z8ZEy\"};","import React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './SideBar.scss';\nimport {\n    CloseCallbackOptionsT,\n    CommonSidebarContentPropsT,\n    GetSidebarCloseConfirmationT,\n    RenderSidebarContentT,\n    SidebarDataDismissEnum,\n    SidebarContentPropsT,\n    SidebarSizeEnum,\n    SideBarPositionEnum,\n} from 'common/layouts/SideBars/models';\nimport OutsideClickHandler from 'design-system/components/OutsideClickHandler/OutsideClickHandler';\nimport { isInsideFloatingUiPortal } from 'common/utils/floating-ui';\nimport SideBarCloseConfirmation from 'common/layouts/SideBars/SideBarCloseConfirmation/SideBarCloseConfirmation';\nimport { KeyEnum } from 'common/constants';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport SideBarLayout from 'common/layouts/SideBars/SideBarLayout/SideBarLayout';\nimport SideBarLayoutContextWrap from '../../LeftMenuLayout/SideBarLayout/SideBarLayoutContextWrap/SideBarLayoutContextWrap';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT<T> = CommonSidebarContentPropsT<T> & {\n    data: T;\n    size: SidebarSizeEnum;\n    renderSidebarContent: RenderSidebarContentT<T>;\n    getSidebarCloseConfirmation: GetSidebarCloseConfirmationT<T>;\n};\n\nenum CloseActionEnum {\n    close = 'close',\n    goBack = 'go-back',\n}\n\ntype CloseSideBarConfirmationT = {\n    type: CloseActionEnum;\n};\n\nconst SideBar = <T,>(props: PropsT<T>): React.ReactElement | null => {\n    const {\n        data,\n        size,\n        position,\n        onClose,\n        onGoBack,\n        onOpenNextSidebar,\n        onUpdateSidebarData,\n        renderSidebarContent,\n        getSidebarCloseConfirmation,\n    } = props;\n\n    const closeSideBarConfirmation = useModalDialog<CloseSideBarConfirmationT>();\n\n    const handleConfirm = React.useCallback(() => {\n        switch (closeSideBarConfirmation.data?.type) {\n            case CloseActionEnum.close: {\n                if (onClose) {\n                    onClose();\n                }\n                break;\n            }\n            case CloseActionEnum.goBack: {\n                if (onGoBack) {\n                    onGoBack();\n                }\n                break;\n            }\n            default: {\n                // TODO\n            }\n        }\n\n        closeSideBarConfirmation.setData(null);\n\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [onClose, onGoBack, closeSideBarConfirmation.data, closeSideBarConfirmation.setData]);\n\n    const [needCloseConfirmation, setNeedCloseConfirmation] = React.useState<boolean>(false);\n\n    React.useEffect(() => {\n        if (needCloseConfirmation) {\n            setNeedCloseConfirmation(false);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [data]);\n\n    const handleClose = React.useCallback(\n        (options?: CloseCallbackOptionsT) => {\n            const isShowConfirmation = options ? options.needCloseConfirmation : needCloseConfirmation;\n            if (isShowConfirmation) {\n                closeSideBarConfirmation.setData({ type: CloseActionEnum.close });\n            } else if (onClose) {\n                onClose();\n            }\n        },\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        [closeSideBarConfirmation.setData, needCloseConfirmation, onClose],\n    );\n\n    const handleGoBack = React.useCallback(\n        (options?: CloseCallbackOptionsT) => {\n            const isShowConfirmation = options ? options.needCloseConfirmation : needCloseConfirmation;\n            if (isShowConfirmation) {\n                closeSideBarConfirmation.setData({ type: CloseActionEnum.goBack });\n            } else if (onGoBack) {\n                onGoBack();\n            }\n        },\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        [closeSideBarConfirmation.setData, needCloseConfirmation, onGoBack],\n    );\n\n    const handleCloseRef = React.useRef<typeof handleClose>(handleClose);\n    handleCloseRef.current = handleClose;\n\n    React.useEffect(() => {\n        const handleKeyDown = (event: KeyboardEvent): void => {\n            if (event.key === KeyEnum.escape) {\n                handleCloseRef.current();\n            }\n        };\n\n        document.addEventListener('keydown', handleKeyDown);\n\n        return () => {\n            document.removeEventListener('keydown', handleKeyDown);\n        };\n    }, []);\n\n    const handleOutsideClick = React.useCallback(\n        (event: any) => {\n            if (position === SideBarPositionEnum.left) {\n                const navigationNode = document.querySelector('div[data-dismiss=\"navigation\"]');\n                if (navigationNode?.contains(event.target)) {\n                    return;\n                }\n\n                const alertToastsManagerNode = document.querySelector('div[data-dismiss=\"alert-toasts-manager\"]');\n                if (alertToastsManagerNode?.contains(event.target)) {\n                    return;\n                }\n            }\n\n            const modalNode = document.querySelector('div[data-dismiss=\"modal\"]');\n            if (modalNode?.contains(event.target)) {\n                return;\n            }\n\n            const sidebarTriggerNode = document.querySelector(`div[data-dismiss=\"${SidebarDataDismissEnum.trigger}\"]`);\n            if (sidebarTriggerNode?.contains(event.target)) {\n                return;\n            }\n\n            if (isInsideFloatingUiPortal(event.target)) {\n                return;\n            }\n\n            handleClose();\n        },\n        [position, handleClose],\n    );\n\n    const commonSidebarContentProps: SidebarContentPropsT<T, T> = {\n        onOpenNextSidebar,\n        onUpdateSidebarData,\n        data,\n        onClose: handleClose,\n        onGoBack: onGoBack ? handleGoBack : null,\n        position,\n        setNeedCloseConfirmation,\n    };\n\n    return (\n        <>\n            <SideBarLayout position={position} size={size}>\n                <OutsideClickHandler onOutsideClick={handleOutsideClick} className={cx('wrapper')}>\n                    <SideBarLayoutContextWrap>\n                        {renderSidebarContent(commonSidebarContentProps)}\n                    </SideBarLayoutContextWrap>\n                </OutsideClickHandler>\n            </SideBarLayout>\n            <SideBarCloseConfirmation\n                isShow={closeSideBarConfirmation.isShow}\n                onCancel={closeSideBarConfirmation.onCancel}\n                onClose={closeSideBarConfirmation.onClose}\n                onConfirm={handleConfirm}\n                data={data}\n                getSidebarCloseConfirmation={getSidebarCloseConfirmation}\n            />\n        </>\n    );\n};\n\nexport default React.memo(SideBar) as typeof SideBar;\n","import React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './RuleTypeMultipleControl.scss';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport DropdownControl, {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { useTranslation } from 'react-i18next';\nimport DropdownControlTriggerLabel from 'design-system/components/dropdowns/option/DropdownControlTriggerLabel/DropdownControlTriggerLabel';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport ArrowsIcon from 'common/icons/ArrowsIcon';\nimport { ApiPriceRuleTypeRequestT, PriceRuleTypeEnum } from 'common/utils/api/models';\nimport PriceRuleTypeLabel from 'broker-admin/components/PriceRuleTypeLabel/PriceRuleTypeLabel';\nimport uniq from 'lodash/uniq';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype ValueT = ApiPriceRuleTypeRequestT;\n\ntype PropsT = {\n    selectedValues: Array<ValueT>;\n    onSelect: (type: Array<ValueT>) => void;\n    className?: string;\n};\n\nconst RuleTypeMultipleControl: React.FC<PropsT> = (props) => {\n    const { selectedValues, onSelect, className } = props;\n\n    const { t } = useTranslation();\n\n    const handleSelectOption = React.useCallback(\n        (value: ApiPriceRuleTypeRequestT | null) => {\n            if (!value) {\n                onSelect([]);\n                return;\n            }\n\n            const hasAlready = selectedValues.includes(value);\n            if (hasAlready) {\n                onSelect(selectedValues.filter((item) => item !== value));\n            } else {\n                onSelect(uniq([...selectedValues, value]));\n            }\n        },\n        [selectedValues, onSelect],\n    );\n\n    const options: Array<DropdownControlOptionT | SpecialOptionEnum> = React.useMemo(\n        () => [\n            {\n                label: (\n                    <DropdownControlOptionLabel\n                        withSelectedCheck\n                        isSelected={!selectedValues?.length}\n                        label={t('price-settings.rules.filters.fields.type.all')}\n                    />\n                ),\n                onSelect: () => handleSelectOption(null),\n            },\n            SpecialOptionEnum.separator,\n            {\n                label: (\n                    <DropdownControlOptionLabel\n                        withSelectedCheck\n                        isSelected={selectedValues.includes(PriceRuleTypeEnum.basic)}\n                        label={<PriceRuleTypeLabel ruleType={PriceRuleTypeEnum.basic} />}\n                    />\n                ),\n                onSelect: () => handleSelectOption(PriceRuleTypeEnum.basic),\n            },\n            {\n                label: (\n                    <DropdownControlOptionLabel\n                        withSelectedCheck\n                        isSelected={selectedValues.includes(PriceRuleTypeEnum.shipper)}\n                        label={<PriceRuleTypeLabel ruleType={PriceRuleTypeEnum.shipper} />}\n                    />\n                ),\n                onSelect: () => handleSelectOption(PriceRuleTypeEnum.shipper),\n            },\n            {\n                label: (\n                    <DropdownControlOptionLabel\n                        withSelectedCheck\n                        isSelected={selectedValues.includes(PriceRuleTypeEnum.carrier)}\n                        label={<PriceRuleTypeLabel ruleType={PriceRuleTypeEnum.carrier} />}\n                    />\n                ),\n                onSelect: () => handleSelectOption(PriceRuleTypeEnum.carrier),\n            },\n        ],\n        [t, selectedValues, handleSelectOption],\n    );\n\n    const triggerNode = React.useMemo(() => {\n        if (!selectedValues?.length) {\n            return <DropdownControlTriggerLabel label={t('price-settings.rules.filters.fields.type.all')} />;\n        }\n\n        return (\n            <DropdownControlTriggerLabel\n                label={\n                    <>\n                        {selectedValues.map((ruleType, ruleTypeIndex) => (\n                            <>\n                                <PriceRuleTypeLabel key={ruleType} ruleType={ruleType} />\n                                {ruleTypeIndex !== selectedValues.length - 1 ? ', ' : ''}\n                            </>\n                        ))}\n                    </>\n                }\n            />\n        );\n    }, [t, selectedValues]);\n\n    return (\n        <DropdownControl\n            className={className}\n            options={options}\n            renderTrigger={(isActive, onClick) => (\n                <TransparentTrigger\n                    label={triggerNode}\n                    isPressed={isActive}\n                    onClick={onClick}\n                    reflectionTheme={ReflectionThemeEnum.light}\n                    rightIcon={<ArrowsIcon />}\n                />\n            )}\n            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n        />\n    );\n};\n\nexport default RuleTypeMultipleControl;\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const companyRefreshChannel = new ViewEventChannel<{}>();\n","import React from 'react';\nimport PhoneNumberDropdownInput, {\n    PropsT as PhoneNumberDropdownInputPropsT,\n} from './PhoneNumberDropdownInput/PhoneNumberDropdownInput';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\nimport { selectCountriesDict } from 'common/store/countries-dict/selectors';\n\ntype PropsT = Omit<PhoneNumberDropdownInputPropsT, 'allCountries'>;\n\nconst PhoneNumberInput: React.FC<PropsT> = React.memo((props) => {\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchCountriesDict());\n    }, [dispatch]);\n\n    const allCountries = useSelector(selectCountriesDict);\n\n    return <PhoneNumberDropdownInput {...props} allCountries={allCountries} />;\n});\n\nexport default PhoneNumberInput;\n","import { OverloadingTrailerValidationResultT } from '../footer-alert-contents/OverloadingTrailerValidationAlertContent/OverloadingTrailerValidationAlertContent';\nimport { UnitTypeEnum } from 'common/constants';\nimport { FormValuesT, RoutePointT, ShipmentFieldsEnum } from 'common/layouts/NewOrderPage/CargoDetailsForm/constants';\nimport { ApiTrailerDictTypeT, OrderCreationReservePointTypeEnum } from 'common/utils/api/models';\nimport { FieldsEnum } from '../constants';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport isNumber from 'lodash/isNumber';\nimport findIndex from 'lodash/findIndex';\n\ntype MetaT = {\n    trailerType: ApiTrailerDictTypeT | null;\n    routePoints: Array<RoutePointT>;\n};\n\ntype StatsT = {\n    [UnitTypeEnum.eur1Pallets]: number;\n    [UnitTypeEnum.eur2Pallets]: number;\n    [UnitTypeEnum.eur6Pallets]: number;\n    [UnitTypeEnum.kilogramsAbbreviation]: number;\n};\n\nexport const validateOverloadingTrailer = (\n    formValues: FormValuesT,\n    meta: MetaT,\n): OverloadingTrailerValidationResultT | null => {\n    const { routePoints, trailerType } = meta;\n\n    if (!trailerType) {\n        return null;\n    }\n\n    const statsByPointId = routePoints.reduce<Record<RoutePointIdT, StatsT>>((acc, routePoint) => {\n        acc[routePoint.id] = {\n            [UnitTypeEnum.eur1Pallets]: 0,\n            [UnitTypeEnum.eur2Pallets]: 0,\n            [UnitTypeEnum.eur6Pallets]: 0,\n            [UnitTypeEnum.kilogramsAbbreviation]: 0,\n        };\n\n        return acc;\n    }, {});\n\n    const shipmentsFormValues = formValues[FieldsEnum.shipments] || [];\n    shipmentsFormValues.forEach((shipmentValues) => {\n        const pickupPointId = shipmentValues[ShipmentFieldsEnum.pickUpPointId];\n        const dropOffPointId = shipmentValues[ShipmentFieldsEnum.dropOffPointId];\n\n        const cargoUnitType = shipmentValues[ShipmentFieldsEnum.cargoUnitType];\n        const cargoUnitsCount = parseSimpleNumber(shipmentValues[ShipmentFieldsEnum.cargoUnitsCount]) || 0;\n        if (cargoUnitType === UnitTypeEnum.eur1Pallets) {\n            if (pickupPointId && statsByPointId[pickupPointId]) {\n                statsByPointId[pickupPointId][UnitTypeEnum.eur1Pallets] += cargoUnitsCount;\n            }\n\n            if (dropOffPointId && statsByPointId[dropOffPointId]) {\n                statsByPointId[dropOffPointId][UnitTypeEnum.eur1Pallets] -= cargoUnitsCount;\n            }\n        }\n\n        if (cargoUnitType === UnitTypeEnum.eur2Pallets) {\n            if (pickupPointId && statsByPointId[pickupPointId]) {\n                statsByPointId[pickupPointId][UnitTypeEnum.eur2Pallets] += cargoUnitsCount;\n            }\n\n            if (dropOffPointId && statsByPointId[dropOffPointId]) {\n                statsByPointId[dropOffPointId][UnitTypeEnum.eur2Pallets] -= cargoUnitsCount;\n            }\n        }\n\n        if (cargoUnitType === UnitTypeEnum.eur6Pallets) {\n            if (pickupPointId && statsByPointId[pickupPointId]) {\n                statsByPointId[pickupPointId][UnitTypeEnum.eur6Pallets] += cargoUnitsCount;\n            }\n\n            if (dropOffPointId && statsByPointId[dropOffPointId]) {\n                statsByPointId[dropOffPointId][UnitTypeEnum.eur6Pallets] -= cargoUnitsCount;\n            }\n        }\n\n        const cargoWeight = parseSimpleNumber(shipmentValues[ShipmentFieldsEnum.cargoWeight]) || 0;\n        if (pickupPointId && statsByPointId[pickupPointId]) {\n            statsByPointId[pickupPointId][UnitTypeEnum.kilogramsAbbreviation] += cargoWeight;\n        }\n\n        if (dropOffPointId && statsByPointId[dropOffPointId]) {\n            statsByPointId[dropOffPointId][UnitTypeEnum.kilogramsAbbreviation] -= cargoWeight;\n        }\n    });\n\n    let result: OverloadingTrailerValidationResultT | null = null;\n    const summaryStats: StatsT = {\n        [UnitTypeEnum.eur1Pallets]: 0,\n        [UnitTypeEnum.eur2Pallets]: 0,\n        [UnitTypeEnum.eur6Pallets]: 0,\n        [UnitTypeEnum.kilogramsAbbreviation]: 0,\n    };\n\n    routePoints?.forEach((routePoint, index) => {\n        if (!statsByPointId[routePoint.id] || result) {\n            return;\n        }\n\n        summaryStats[UnitTypeEnum.eur1Pallets] += statsByPointId[routePoint.id][UnitTypeEnum.eur1Pallets];\n        summaryStats[UnitTypeEnum.eur2Pallets] += statsByPointId[routePoint.id][UnitTypeEnum.eur2Pallets];\n        summaryStats[UnitTypeEnum.eur6Pallets] += statsByPointId[routePoint.id][UnitTypeEnum.eur6Pallets];\n        summaryStats[UnitTypeEnum.kilogramsAbbreviation] +=\n            statsByPointId[routePoint.id][UnitTypeEnum.kilogramsAbbreviation];\n\n        if (isNumber(trailerType.eur1Pallets) && summaryStats[UnitTypeEnum.eur1Pallets] > trailerType.eur1Pallets) {\n            result = {\n                unitType: UnitTypeEnum.eur1Pallets,\n                pointAIndex: index,\n                pointBIndex: findIndex(\n                    routePoints,\n                    (routePoint) => {\n                        return routePoint.type === OrderCreationReservePointTypeEnum.shipment;\n                    },\n                    index + 1,\n                ),\n            };\n        }\n\n        if (isNumber(trailerType.eur2Pallets) && summaryStats[UnitTypeEnum.eur2Pallets] > trailerType.eur2Pallets) {\n            result = {\n                unitType: UnitTypeEnum.eur2Pallets,\n                pointAIndex: index,\n                pointBIndex: findIndex(\n                    routePoints,\n                    (routePoint) => {\n                        return routePoint.type === OrderCreationReservePointTypeEnum.shipment;\n                    },\n                    index + 1,\n                ),\n            };\n        }\n\n        if (isNumber(trailerType.eur6Pallets) && summaryStats[UnitTypeEnum.eur6Pallets] > trailerType.eur6Pallets) {\n            result = {\n                unitType: UnitTypeEnum.eur6Pallets,\n                pointAIndex: index,\n                pointBIndex: findIndex(\n                    routePoints,\n                    (routePoint) => {\n                        return routePoint.type === OrderCreationReservePointTypeEnum.shipment;\n                    },\n                    index + 1,\n                ),\n            };\n        }\n\n        if (isNumber(trailerType.weight) && summaryStats[UnitTypeEnum.kilogramsAbbreviation] > trailerType.weight) {\n            result = {\n                unitType: UnitTypeEnum.kilogramsAbbreviation,\n                pointAIndex: index,\n                pointBIndex: findIndex(\n                    routePoints,\n                    (routePoint) => {\n                        return routePoint.type === OrderCreationReservePointTypeEnum.shipment;\n                    },\n                    index + 1,\n                ),\n            };\n        }\n    });\n\n    return result;\n};\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PartnerDetailsForm.scss';\n\nimport { useFormik } from 'formik';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { FAKE_EXTERNAL_BUSINESS_PARTNER_ID, FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport Input from 'common/components/Input/Input';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport FieldGroup, { FieldGroupEmptyItem } from 'common/components/FieldGroup/FieldGroup';\nimport CountryDropdown from 'common/components/dropdowns/CountryDropdown/CountryDropdown';\nimport { PartnerDetailsT } from 'broker-admin/store/partner/details/models';\nimport {\n    selectLinkPartnerRequestStatus,\n    selectUpdatePartnerDetailsRequest,\n} from 'broker-admin/store/partner/details/selectors';\nimport { linkWithExternalPlatformPartner, updatePartnerDetails } from 'broker-admin/store/partner/details/actions';\nimport prepareApiPartnerDetails from './prepare-partner-details';\nimport { AddressTypeEnum, PartnerTypeEnum } from 'common/utils/api/models';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport Widget from 'common/components/Widget/Widget';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport HiddenSubmitButtonForKeyboardEnter from 'common/components/HiddenEnterSubmitButton/HiddenSubmitButtonForKeyboardEnter';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport BasicWidgetHeaderActions from '../BasicWidgetHeaderActions/BasicWidgetHeaderActions';\nimport AddressWidgetHeaderActions from '../AddressWidgetHeaderActions/AddressWidgetHeaderActions';\nimport { selectCountriesByCode } from 'common/store/countries-dict/selectors';\nimport { VerifyPartnerAddressConfirmationDataT } from '../dialogs/VerifyPartnerAdressConfirmation/models';\nimport { UnlockPartnerConfirmationDataT } from '../dialogs/UnlockPartnerConfirmation/models';\nimport { LockPartnerConfirmationDataT } from '../dialogs/LockPartnerConfirmation/models';\nimport { UnVerifyPartnerAdressConfirmationDataT } from '../dialogs/UnVerifyPartnerAdressConfirmation/models';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport { logWarning } from 'common/utils/logger';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport { useWatchFormAnyErrors } from 'common/utils/hooks/useWatchFormFormHasErrors';\nimport { CountryCodeT } from 'common/store/countries-dict/models';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { checkIsAllowedLock } from 'broker-admin/store/partner/details/utils/lock';\nimport { checkIsFilledPartnerAddress } from 'broker-admin/store/partner/details/utils/addresses';\nimport BrokerTeamsSuggest from 'common/components/dropdowns/BrokerTeamsSuggest/BrokerTeamsSuggest';\nimport isEqual from 'lodash/isEqual';\nimport PartnerMainContactSuggest from 'common/components/suggests/PartnerMainContactSuggest/PartnerMainContactSuggest';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { checkNeedShowCreditLimit } from 'broker-admin/store/partner/details/utils/check-need-show-credit-limit';\nimport { selectIsExternalBusinessPartnerManagement } from 'common/store/settings/selectors';\nimport ExternalBusinessPartnerSuggest, {\n    ExternalBusinessPartnerOptionT,\n} from 'broker-admin/components/suggests/ExternalBusinessPartnerSuggest/ExternalBusinessPartnerSuggest';\nimport { ApiAllowedCompanyTypeT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport LinkProfileConfirmation from '../dialogs/LinkProfileConfirmation/LinkProfileConfirmation';\nimport { LinkProfileConfirmationDataT } from '../dialogs/LinkProfileConfirmation/models';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport ExternalRestrictionsPill from '../ExternalRestrictionsPill/ExternalRestrictionsPill';\nimport { checkHasExternalRestrictions } from '../utils/check-has-external-restrictions';\nimport PartnerDetailsHeaderPills from '../PartnerDetailsHeaderPills/PartnerDetailsHeaderPills';\nimport RFQStats from '../RFQStats/RFQStats';\nimport CreditLimit from '../CreditLimit/CreditLimit';\nimport { checkNeedShowBillingInfo } from 'broker-admin/store/partner/details/utils/check-need-show-billing-info';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    partnerDetails: PartnerDetailsT | null;\n    onVerifyPartner: (data: VerifyPartnerAddressConfirmationDataT | null) => void;\n    onUnverifyPartner: (data: UnVerifyPartnerAdressConfirmationDataT | null) => void;\n    onLockPartner: (data: LockPartnerConfirmationDataT | null) => void;\n    onUnlockPartner: (data: UnlockPartnerConfirmationDataT | null) => void;\n};\n\nconst legalAddressFields = [\n    FieldsEnum.legalAddressCountryCode,\n    FieldsEnum.legalAddressZipCode,\n    FieldsEnum.legalAddressCity,\n    FieldsEnum.legalAddressStreet1,\n    FieldsEnum.legalAddressStreet2,\n];\nconst useWatchLegalAddressChanges = createUseWatchAnyFieldValueChanges(legalAddressFields);\n\nconst postalAddressFields = [\n    FieldsEnum.postalAddressCountryCode,\n    FieldsEnum.postalAddressZipCode,\n    FieldsEnum.postalAddressCity,\n    FieldsEnum.postalAddressStreet1,\n    FieldsEnum.postalAddressStreet2,\n];\nconst useWatchPostalAddressChanges = createUseWatchAnyFieldValueChanges(postalAddressFields);\n\nconst billingAddressFields = [\n    FieldsEnum.billingAddressCountryCode,\n    FieldsEnum.billingAddressZipCode,\n    FieldsEnum.billingAddressCity,\n    FieldsEnum.billingAddressStreet1,\n    FieldsEnum.billingAddressStreet2,\n];\nconst useWatchBillingAddressChanges = createUseWatchAnyFieldValueChanges(billingAddressFields);\n\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(Object.values(FieldsEnum));\n\nconst PartnerDetailsForm: React.FC<PropsT> = React.memo((props) => {\n    const { partnerDetails, onVerifyPartner, onUnverifyPartner, onLockPartner, onUnlockPartner } = props;\n\n    const isInitialized = Boolean(partnerDetails);\n\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n\n    const { partnerType } = usePartnerContext();\n\n    const permissions = useSelector(selectPermissions);\n    const isExternalBusinessPartnerManagement = useSelector(selectIsExternalBusinessPartnerManagement);\n\n    const updateRequest = useSelector(selectUpdatePartnerDetailsRequest);\n    const linkRequestStatus = useSelector(selectLinkPartnerRequestStatus);\n\n    const linkProfileConfirmation = useModalDialog<LinkProfileConfirmationDataT>();\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const countryByCode = useSelector(selectCountriesByCode);\n\n    const shouldShowBillingInfo = checkNeedShowBillingInfo(partnerType);\n    const shouldShowTeams = partnerType === PartnerTypeEnum.shipper || partnerType === PartnerTypeEnum.carrier;\n    const shouldShowNoExternalProfileLinkLabel =\n        isInitialized && isExternalBusinessPartnerManagement && !partnerDetails?.externalBusinessPartnerId;\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values, { shouldShowBillingInfo });\n    }, [t, shouldShowBillingInfo]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues(partnerDetails);\n        const errors = validateForm(t, values, { shouldShowBillingInfo });\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [partnerDetails, shouldShowBillingInfo]);\n\n    const initialExternalBusinessPartnerOption = React.useMemo<ExternalBusinessPartnerOptionT | null>(() => {\n        return {\n            // An option with an empty id is only used as an initial fallback and can never be selected.\n            id: FAKE_EXTERNAL_BUSINESS_PARTNER_ID,\n            name: partnerDetails?.name ?? '',\n        };\n    }, [partnerDetails?.name]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const partnerDetailsChanges = prepareApiPartnerDetails(values);\n            if (!partnerDetails?.id) {\n                return;\n            }\n            if (!partnerType) {\n                logWarning('Empty partnerType in PartnerDetailsForm onSubmit');\n                return;\n            }\n\n            dispatch(\n                updatePartnerDetails({\n                    companyId: partnerDetails.id,\n                    partnerType,\n                    partnerDetailsChanges,\n                    mainContactChanges: {\n                        mainContactId: values[FieldsEnum.mainContactId] || null,\n                        mainContactFullName: values[FieldsEnum.mainContactFullName] || null,\n                    },\n                    teams: values[FieldsEnum.teamIds] || [],\n                }),\n            );\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const handleSelectExternalBusinessPartner = React.useCallback(\n        (value: PartnerIdT | null | undefined, option?: ExternalBusinessPartnerOptionT) => {\n            if (!value || value === FAKE_EXTERNAL_BUSINESS_PARTNER_ID) {\n                formik.setFieldValue(FieldsEnum.externalBusinessPartnerId, null);\n                return;\n            }\n\n            if (option) {\n                linkProfileConfirmation.setData({ externalBusinessPartner: option });\n            }\n        },\n        [formik, linkProfileConfirmation],\n    );\n\n    const handleLinkProfile = React.useCallback(\n        (data: LinkProfileConfirmationDataT) => {\n            if (!partnerDetails?.id) {\n                return;\n            }\n\n            formik.setFieldValue(FieldsEnum.externalBusinessPartnerId, data.externalBusinessPartner.id);\n            dispatch(\n                linkWithExternalPlatformPartner({\n                    businessPartnerId: data.externalBusinessPartner.id,\n                    internalCompanyId: partnerDetails.id,\n                }),\n            );\n        },\n        [dispatch, formik, partnerDetails?.id],\n    );\n\n    useCloseModalDialogAfterRequest(linkRequestStatus, [linkProfileConfirmation]);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormCallbacks) {\n            remoteFormActionsContext.setRemoteFormCallbacks({\n                submit: formik.submitForm,\n                reset: formik.resetForm,\n                touchAllFields: () => {\n                    const allFields = Object.keys(FieldsEnum) as Array<FieldsEnum>;\n\n                    const touched = allFields.reduce<Partial<Record<FieldsEnum, boolean>>>((acc, field) => {\n                        acc[field] = true;\n                        return acc;\n                    }, {});\n\n                    formik.setTouched({\n                        ...formik.touched,\n                        ...touched,\n                    });\n                },\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.submitForm, formik.resetForm]);\n\n    const hasFormAnyErrors = useWatchFormAnyErrors(formik.errors);\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormState) {\n            remoteFormActionsContext.setRemoteFormState({\n                hasChanges: hasAnyFieldValueChanges,\n                hasErrors: hasFormAnyErrors,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [remoteFormActionsContext.setRemoteFormState, hasFormAnyErrors, hasAnyFieldValueChanges]);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormRequest) {\n            remoteFormActionsContext.setRemoteFormRequest({\n                isLoading: updateRequest.loading,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [remoteFormActionsContext.setRemoteFormRequest, updateRequest.loading]);\n\n    const hasLegalAddressChanges = useWatchLegalAddressChanges(initialValues, formik.values);\n    const legalAddressCountry = countryByCode[formik.values[FieldsEnum.legalAddressCountryCode] as CountryCodeT];\n    const legalFullAddress = [\n        legalAddressCountry?.userLangDisplayName || '',\n        formik.values[FieldsEnum.legalAddressZipCode],\n        formik.values[FieldsEnum.legalAddressCity],\n        formik.values[FieldsEnum.legalAddressStreet1],\n        formik.values[FieldsEnum.legalAddressStreet2],\n    ]\n        .join(' ')\n        .trim();\n\n    const hasPostalAddressChanges = useWatchPostalAddressChanges(initialValues, formik.values);\n    const postalAddressCountryCode = countryByCode[formik.values[FieldsEnum.postalAddressCountryCode] as CountryCodeT];\n    const postalFullAddress = [\n        postalAddressCountryCode?.userLangDisplayName || '',\n        formik.values[FieldsEnum.postalAddressZipCode],\n        formik.values[FieldsEnum.postalAddressCity],\n        formik.values[FieldsEnum.postalAddressStreet1],\n        formik.values[FieldsEnum.postalAddressStreet2],\n    ]\n        .join(' ')\n        .trim();\n\n    const hasBillingAddressChanges = useWatchBillingAddressChanges(initialValues, formik.values);\n    const billingAddressCountryCode =\n        countryByCode[formik.values[FieldsEnum.billingAddressCountryCode] as CountryCodeT];\n    const billingFullAddress = [\n        billingAddressCountryCode?.userLangDisplayName || '',\n        formik.values[FieldsEnum.billingAddressZipCode],\n        formik.values[FieldsEnum.billingAddressCity],\n        formik.values[FieldsEnum.billingAddressStreet1],\n        formik.values[FieldsEnum.billingAddressStreet2],\n    ]\n        .join(' ')\n        .trim();\n\n    const hasLegalAddress = checkIsFilledPartnerAddress(partnerDetails?.legalAddress);\n    const isNeedApproveLegalAddress = hasLegalAddress && !partnerDetails?.legalAddressVerified;\n\n    const hasPostalAddress = checkIsFilledPartnerAddress(partnerDetails?.postalAddress);\n    const isNeedApprovePostalAddress = hasPostalAddress && !partnerDetails?.postalAddressVerified;\n\n    const hasBillingAddress = checkIsFilledPartnerAddress(partnerDetails?.billingAddress);\n    const isNeedApproveBillingAddress = hasBillingAddress && !partnerDetails?.billingAddressVerified;\n\n    const handleCopyBillingAddress = () => {\n        formik.setValues((values) => {\n            return {\n                ...values,\n                [FieldsEnum.billingAddressCountryCode]: values[FieldsEnum.legalAddressCountryCode],\n                [FieldsEnum.billingAddressZipCode]: values[FieldsEnum.legalAddressZipCode],\n                [FieldsEnum.billingAddressCity]: values[FieldsEnum.legalAddressCity],\n                [FieldsEnum.billingAddressStreet1]: values[FieldsEnum.legalAddressStreet1],\n                [FieldsEnum.billingAddressStreet2]: values[FieldsEnum.legalAddressStreet2],\n            };\n        });\n\n        formik.setTouched({\n            ...formik.touched,\n            [FieldsEnum.billingAddressCountryCode]: true,\n            [FieldsEnum.billingAddressZipCode]: true,\n            [FieldsEnum.billingAddressCity]: true,\n            [FieldsEnum.billingAddressStreet1]: true,\n            [FieldsEnum.billingAddressStreet2]: true,\n        });\n    };\n\n    const handleCopyPostalAddress = () => {\n        formik.setValues((values) => {\n            return {\n                ...values,\n                [FieldsEnum.postalAddressCountryCode]: values[FieldsEnum.legalAddressCountryCode],\n                [FieldsEnum.postalAddressZipCode]: values[FieldsEnum.legalAddressZipCode],\n                [FieldsEnum.postalAddressCity]: values[FieldsEnum.legalAddressCity],\n                [FieldsEnum.postalAddressStreet1]: values[FieldsEnum.legalAddressStreet1],\n                [FieldsEnum.postalAddressStreet2]: values[FieldsEnum.legalAddressStreet2],\n            };\n        });\n\n        formik.setTouched({\n            ...formik.touched,\n            [FieldsEnum.postalAddressCountryCode]: true,\n            [FieldsEnum.postalAddressZipCode]: true,\n            [FieldsEnum.postalAddressCity]: true,\n            [FieldsEnum.postalAddressStreet1]: true,\n            [FieldsEnum.postalAddressStreet2]: true,\n        });\n    };\n\n    const getTeamsWarning = () => {\n        if (!formik.values[FieldsEnum.teamIds]?.length) {\n            return ' '; // show warning without text\n        }\n\n        const isShowNoDispatcherWarning =\n            partnerDetails?.noAssignedDispatchers &&\n            isEqual(initialValues[FieldsEnum.teamIds], formik.values[FieldsEnum.teamIds]);\n        if (isShowNoDispatcherWarning) {\n            return t('partner.details-tab.warnings.no-dispatcher');\n        }\n\n        return null;\n    };\n\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <LinkProfileConfirmation\n                data={linkProfileConfirmation.data}\n                requestStatus={linkRequestStatus}\n                onClose={linkProfileConfirmation.onClose}\n                onCancel={linkProfileConfirmation.onCancel}\n                onConfirm={handleLinkProfile}\n            />\n            <ContentMargins className={cx('wrap')}>\n                <Widget\n                    className={cx('widget')}\n                    title={t('partner.details-tab.segments.basic')}\n                    afterTitleNode={\n                        <PartnerDetailsHeaderPills>\n                            {shouldShowNoExternalProfileLinkLabel ? (\n                                <PillLabel isSymmetrical theme={PillLabelThemeEnum.orange}>\n                                    No link to external profile\n                                </PillLabel>\n                            ) : null}\n                            {checkHasExternalRestrictions(partnerDetails?.operationUnavailableReasons) ? (\n                                <ExternalRestrictionsPill />\n                            ) : null}\n                        </PartnerDetailsHeaderPills>\n                    }\n                    rightNode={\n                        <BasicWidgetHeaderActions\n                            isShowUnlock={checkIsAllowedLock(partnerType)}\n                            isShowLock={checkIsAllowedLock(partnerType)}\n                            onLock={onLockPartner}\n                            onUnLock={onUnlockPartner}\n                            partnerDetails={partnerDetails}\n                        />\n                    }\n                >\n                    <div className={cx('widget__inner')}>\n                        <FieldGroup>\n                            {isExternalBusinessPartnerManagement ? (\n                                <FormikField\n                                    className={cx('field', 'field--name')}\n                                    name={FieldsEnum.externalBusinessPartnerId}\n                                    error={formik.errors[FieldsEnum.externalBusinessPartnerId]}\n                                    meta={formik.getFieldMeta(FieldsEnum.externalBusinessPartnerId)}\n                                    label={t('partner.details-tab.fields.name.label')}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                >\n                                    {(props) => (\n                                        <ExternalBusinessPartnerSuggest\n                                            companyType={(partnerType as ApiAllowedCompanyTypeT) || undefined}\n                                            initialOption={initialExternalBusinessPartnerOption}\n                                            value={formik.values[FieldsEnum.externalBusinessPartnerId]}\n                                            onSelect={handleSelectExternalBusinessPartner}\n                                            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                            hasClearControl\n                                            hasChanges={props.hasChanges}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                            hasError={props.hasError}\n                                            hasWarning={props.hasWarning}\n                                        />\n                                    )}\n                                </FormikField>\n                            ) : (\n                                <FormikField\n                                    className={cx('field', 'field--name')}\n                                    name={FieldsEnum.name}\n                                    error={formik.errors[FieldsEnum.name]}\n                                    meta={formik.getFieldMeta(FieldsEnum.name)}\n                                    label={t('partner.details-tab.fields.name.label')}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                >\n                                    {(props) => (\n                                        <Input\n                                            name={FieldsEnum.name}\n                                            value={formik.values[FieldsEnum.name]}\n                                            hasChanges={props.hasChanges}\n                                            onChange={props.onChange}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                            hasError={props.hasError}\n                                            hasWarning={props.hasWarning}\n                                        />\n                                    )}\n                                </FormikField>\n                            )}\n                            {shouldShowTeams ? (\n                                <FormikField\n                                    className={cx('field', 'field--teams')}\n                                    name={FieldsEnum.teamIds}\n                                    error={formik.errors[FieldsEnum.teamIds]}\n                                    meta={formik.getFieldMeta(FieldsEnum.teamIds)}\n                                    label={t('partner.details-tab.fields.teams.label')}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                    isForceShowWarning={isInitialized}\n                                    warning={getTeamsWarning()}\n                                    tooltipNode={\n                                        <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                            {t('partner.details-tab.fields.teams.tooltip')}\n                                        </TooltipContent>\n                                    }\n                                >\n                                    {(props) => (\n                                        <BrokerTeamsSuggest\n                                            initialOptions={partnerDetails?.teams}\n                                            values={formik.values[FieldsEnum.teamIds]}\n                                            onSelect={props.onChange}\n                                            hasWarning={props.hasWarning}\n                                            hasError={props.hasError}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                            hasChanges={props.hasChanges}\n                                            allowedQueryMinLength={0}\n                                            placeholder={t('partner.details-tab.fields.teams.placeholder')}\n                                            isDisabled={!isInitialized}\n                                        />\n                                    )}\n                                </FormikField>\n                            ) : (\n                                <FieldGroupEmptyItem className={cx('field', 'field--basic-segment-placeholder')} />\n                            )}\n                            <FormikField\n                                className={cx('field', 'field--main-contact')}\n                                name={FieldsEnum.mainContactId}\n                                error={formik.errors[FieldsEnum.mainContactId]}\n                                meta={formik.getFieldMeta(FieldsEnum.mainContactId)}\n                                label={t('partner.details-tab.fields.main-contact.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <PartnerMainContactSuggest\n                                        companyId={partnerDetails?.id || ''}\n                                        initialValue={formik.values[FieldsEnum.mainContactId]}\n                                        initialLabel={formik.values[FieldsEnum.mainContactFullName]}\n                                        value={formik.values[FieldsEnum.mainContactId]}\n                                        onSelect={(mainContactId, mainContactFullName) => {\n                                            formik.setFieldValue(FieldsEnum.mainContactId, mainContactId);\n                                            formik.setFieldValue(FieldsEnum.mainContactFullName, mainContactFullName);\n                                        }}\n                                        placeholder={t('common:not-selected')}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                        hasChanges={props.hasChanges}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasClearControl\n                                        isDisabled={!isInitialized}\n                                    />\n                                )}\n                            </FormikField>\n                        </FieldGroup>\n                    </div>\n                </Widget>\n                {partnerType === PartnerTypeEnum.shipper && (\n                    <div className={cx('stats-widget-group')}>\n                        {checkNeedShowCreditLimit(partnerDetails) && (\n                            <Widget\n                                className={cx('widget', 'stats-widget-group__widget')}\n                                title={t('partner.details-tab.segments.credit-limit')}\n                                titleTooltipNode={\n                                    <TooltipContent theme={TooltipContentThemeEnum.black} width={200}>\n                                        {t('partner.details-tab.credit-limit-tooltip')}\n                                    </TooltipContent>\n                                }\n                                afterTitleNode={<CreditLimit creditLimit={partnerDetails.creditLimit} />}\n                            />\n                        )}\n                        <Widget\n                            className={cx('widget', 'stats-widget-group__widget')}\n                            title={t('partner.details-tab.segments.rfq-stats')}\n                            titleTooltipNode={\n                                <TooltipContent theme={TooltipContentThemeEnum.black} width={200}>\n                                    {t('partner.details-tab.rfq-stats-tooltip')}\n                                </TooltipContent>\n                            }\n                            afterTitleNode={<RFQStats />}\n                        />\n                    </div>\n                )}\n                <div className={cx('widget-group')}>\n                    <Widget\n                        className={cx('widget', 'widget-group__widget')}\n                        title={t('partner.details-tab.segments.legal-address')}\n                        rightNode={\n                            <AddressWidgetHeaderActions\n                                isShowStatus={hasLegalAddress}\n                                isAllowShowVerifyAction={\n                                    hasLegalAddress && permissions.canVerifyPartner && !hasLegalAddressChanges\n                                }\n                                addressType={AddressTypeEnum.legal}\n                                fullAddress={legalFullAddress}\n                                needApproved={isNeedApproveLegalAddress}\n                                companyId={partnerDetails?.id}\n                                onVerify={onVerifyPartner}\n                                onUnVerify={onUnverifyPartner}\n                            />\n                        }\n                    >\n                        <div className={cx('widget__inner')}>\n                            <FieldGroup spaces={1}>\n                                <FormikField\n                                    className={cx('field', 'field--country')}\n                                    name={FieldsEnum.legalAddressCountryCode}\n                                    error={formik.errors[FieldsEnum.legalAddressCountryCode]}\n                                    meta={formik.getFieldMeta(FieldsEnum.legalAddressCountryCode)}\n                                    label={t('partner.details-tab.fields.country.label')}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                >\n                                    {(props) => (\n                                        <CountryDropdown\n                                            hasWarning={isNeedApproveLegalAddress}\n                                            hasError={props.hasError}\n                                            value={formik.values[FieldsEnum.legalAddressCountryCode]}\n                                            onChange={(countryCode) => {\n                                                props.onChange(countryCode);\n                                            }}\n                                            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                            hasChanges={props.hasChanges}\n                                        />\n                                    )}\n                                </FormikField>\n                                <FormikField\n                                    className={cx('field', 'field--zip')}\n                                    name={FieldsEnum.legalAddressZipCode}\n                                    error={formik.errors[FieldsEnum.legalAddressZipCode]}\n                                    meta={formik.getFieldMeta(FieldsEnum.legalAddressZipCode)}\n                                    label={t('partner.details-tab.fields.zip.label')}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                >\n                                    {(props) => (\n                                        <Input\n                                            name={FieldsEnum.legalAddressZipCode}\n                                            value={formik.values[FieldsEnum.legalAddressZipCode]}\n                                            placeholder={t('partner.details-tab.fields.zip.placeholder')}\n                                            onChange={props.onChange}\n                                            hasError={props.hasError}\n                                            hasWarning={props.hasWarning || isNeedApproveLegalAddress}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                            hasChanges={props.hasChanges}\n                                        />\n                                    )}\n                                </FormikField>\n                                <FormikField\n                                    className={cx('field', 'field--city')}\n                                    name={FieldsEnum.legalAddressCity}\n                                    error={formik.errors[FieldsEnum.legalAddressCity]}\n                                    meta={formik.getFieldMeta(FieldsEnum.legalAddressCity)}\n                                    label={t('partner.details-tab.fields.city.label')}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                >\n                                    {(props) => (\n                                        <Input\n                                            name={FieldsEnum.legalAddressCity}\n                                            value={formik.values[FieldsEnum.legalAddressCity]}\n                                            placeholder={t('partner.details-tab.fields.city.placeholder')}\n                                            onChange={props.onChange}\n                                            hasError={props.hasError}\n                                            hasWarning={props.hasWarning || isNeedApproveLegalAddress}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                            hasChanges={props.hasChanges}\n                                        />\n                                    )}\n                                </FormikField>\n                            </FieldGroup>\n                            <FormikField\n                                name={FieldsEnum.legalAddressStreet1}\n                                error={formik.errors[FieldsEnum.legalAddressStreet1]}\n                                meta={formik.getFieldMeta(FieldsEnum.legalAddressStreet1)}\n                                label={t('partner.details-tab.fields.street1.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <Input\n                                        name={FieldsEnum.legalAddressStreet1}\n                                        value={formik.values[FieldsEnum.legalAddressStreet1]}\n                                        placeholder={t('partner.details-tab.fields.street1.placeholder')}\n                                        onChange={props.onChange}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning || isNeedApproveLegalAddress}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasChanges={props.hasChanges}\n                                    />\n                                )}\n                            </FormikField>\n                            <FormikField\n                                name={FieldsEnum.legalAddressStreet2}\n                                error={formik.errors[FieldsEnum.legalAddressStreet2]}\n                                meta={formik.getFieldMeta(FieldsEnum.legalAddressStreet2)}\n                                label={t('partner.details-tab.fields.street2.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <Input\n                                        name={FieldsEnum.legalAddressStreet2}\n                                        value={formik.values[FieldsEnum.legalAddressStreet2]}\n                                        placeholder={t('partner.details-tab.fields.street2.placeholder')}\n                                        onChange={props.onChange}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning || isNeedApproveLegalAddress}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasChanges={props.hasChanges}\n                                    />\n                                )}\n                            </FormikField>\n                        </div>\n                    </Widget>\n                    <Widget\n                        className={cx('widget', 'widget-group__widget')}\n                        title={t('partner.details-tab.segments.postal-address')}\n                        rightNode={\n                            <AddressWidgetHeaderActions\n                                isShowStatus={hasPostalAddress}\n                                isAllowShowVerifyAction={\n                                    hasPostalAddress && permissions.canVerifyPartner && !hasPostalAddressChanges\n                                }\n                                addressType={AddressTypeEnum.postal}\n                                fullAddress={postalFullAddress}\n                                onCopy={handleCopyPostalAddress}\n                                needApproved={isNeedApprovePostalAddress}\n                                companyId={partnerDetails?.id}\n                                onVerify={onVerifyPartner}\n                                onUnVerify={onUnverifyPartner}\n                            />\n                        }\n                    >\n                        <div className={cx('widget__inner')}>\n                            <FieldGroup spaces={1}>\n                                <FormikField\n                                    className={cx('field', 'field--country')}\n                                    name={FieldsEnum.postalAddressCountryCode}\n                                    error={formik.errors[FieldsEnum.postalAddressCountryCode]}\n                                    label={t('partner.details-tab.fields.country.label')}\n                                    meta={formik.getFieldMeta(FieldsEnum.postalAddressCountryCode)}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                >\n                                    {(props) => (\n                                        <CountryDropdown\n                                            hasWarning={isNeedApprovePostalAddress}\n                                            hasError={props.hasError}\n                                            value={formik.values[FieldsEnum.postalAddressCountryCode]}\n                                            onChange={(countryCode) => {\n                                                props.onChange(countryCode);\n                                            }}\n                                            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                            hasChanges={props.hasChanges}\n                                        />\n                                    )}\n                                </FormikField>\n                                <FormikField\n                                    className={cx('field', 'field--zip')}\n                                    name={FieldsEnum.postalAddressZipCode}\n                                    error={formik.errors[FieldsEnum.postalAddressZipCode]}\n                                    meta={formik.getFieldMeta(FieldsEnum.postalAddressZipCode)}\n                                    label={t('partner.details-tab.fields.zip.label')}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                >\n                                    {(props) => (\n                                        <Input\n                                            name={FieldsEnum.postalAddressZipCode}\n                                            value={formik.values[FieldsEnum.postalAddressZipCode]}\n                                            placeholder={t('partner.details-tab.fields.zip.placeholder')}\n                                            onChange={props.onChange}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                            hasError={props.hasError}\n                                            hasWarning={props.hasWarning || isNeedApprovePostalAddress}\n                                            hasChanges={props.hasChanges}\n                                        />\n                                    )}\n                                </FormikField>\n                                <FormikField\n                                    className={cx('field', 'field--city')}\n                                    name={FieldsEnum.postalAddressCity}\n                                    error={formik.errors[FieldsEnum.postalAddressCity]}\n                                    meta={formik.getFieldMeta(FieldsEnum.postalAddressCity)}\n                                    label={t('partner.details-tab.fields.city.label')}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                >\n                                    {(props) => (\n                                        <Input\n                                            name={FieldsEnum.postalAddressCity}\n                                            value={formik.values[FieldsEnum.postalAddressCity]}\n                                            placeholder={t('partner.details-tab.fields.city.placeholder')}\n                                            onChange={props.onChange}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                            hasError={props.hasError}\n                                            hasWarning={props.hasWarning || isNeedApprovePostalAddress}\n                                            hasChanges={props.hasChanges}\n                                        />\n                                    )}\n                                </FormikField>\n                            </FieldGroup>\n                            <FormikField\n                                name={FieldsEnum.postalAddressStreet1}\n                                error={formik.errors[FieldsEnum.postalAddressStreet1]}\n                                meta={formik.getFieldMeta(FieldsEnum.postalAddressStreet1)}\n                                label={t('partner.details-tab.fields.street1.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <Input\n                                        name={FieldsEnum.postalAddressStreet1}\n                                        value={formik.values[FieldsEnum.postalAddressStreet1]}\n                                        placeholder={t('partner.details-tab.fields.street1.placeholder')}\n                                        onChange={props.onChange}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning || isNeedApprovePostalAddress}\n                                        hasChanges={props.hasChanges}\n                                    />\n                                )}\n                            </FormikField>\n                            <FormikField\n                                name={FieldsEnum.postalAddressStreet2}\n                                error={formik.errors[FieldsEnum.postalAddressStreet2]}\n                                meta={formik.getFieldMeta(FieldsEnum.postalAddressStreet2)}\n                                label={t('partner.details-tab.fields.street2.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <Input\n                                        name={FieldsEnum.postalAddressStreet2}\n                                        value={formik.values[FieldsEnum.postalAddressStreet2]}\n                                        placeholder={t('partner.details-tab.fields.street2.placeholder')}\n                                        onChange={props.onChange}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning || isNeedApprovePostalAddress}\n                                        hasChanges={props.hasChanges}\n                                    />\n                                )}\n                            </FormikField>\n                        </div>\n                    </Widget>\n                    {shouldShowBillingInfo && (\n                        <Widget\n                            className={cx('widget', 'widget-group__widget')}\n                            title={t('partner.details-tab.segments.billing-address')}\n                            rightNode={\n                                <AddressWidgetHeaderActions\n                                    isShowStatus={hasBillingAddress}\n                                    isAllowShowVerifyAction={\n                                        hasBillingAddress && permissions.canVerifyPartner && !hasBillingAddressChanges\n                                    }\n                                    addressType={AddressTypeEnum.billing}\n                                    fullAddress={billingFullAddress}\n                                    needApproved={isNeedApproveBillingAddress}\n                                    onCopy={handleCopyBillingAddress}\n                                    companyId={partnerDetails?.id}\n                                    onVerify={onVerifyPartner}\n                                    onUnVerify={onUnverifyPartner}\n                                />\n                            }\n                        >\n                            <div className={cx('widget__inner')}>\n                                <FieldGroup spaces={1}>\n                                    <FormikField\n                                        className={cx('field', 'field--country')}\n                                        name={FieldsEnum.billingAddressCountryCode}\n                                        error={formik.errors[FieldsEnum.billingAddressCountryCode]}\n                                        label={t('partner.details-tab.fields.country.label')}\n                                        meta={formik.getFieldMeta(FieldsEnum.billingAddressCountryCode)}\n                                        setFieldValue={formik.setFieldValue}\n                                        setFieldTouched={formik.setFieldTouched}\n                                    >\n                                        {(props) => (\n                                            <CountryDropdown\n                                                hasWarning={isNeedApproveBillingAddress}\n                                                hasError={props.hasError}\n                                                value={formik.values[FieldsEnum.billingAddressCountryCode]}\n                                                onChange={(countryCode) => {\n                                                    props.onChange(countryCode);\n                                                }}\n                                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                                onBlur={props.onBlur}\n                                                onFocus={props.onFocus}\n                                                hasChanges={props.hasChanges}\n                                            />\n                                        )}\n                                    </FormikField>\n                                    <FormikField\n                                        className={cx('field', 'field--zip')}\n                                        name={FieldsEnum.billingAddressZipCode}\n                                        error={formik.errors[FieldsEnum.billingAddressZipCode]}\n                                        meta={formik.getFieldMeta(FieldsEnum.billingAddressZipCode)}\n                                        label={t('partner.details-tab.fields.zip.label')}\n                                        setFieldValue={formik.setFieldValue}\n                                        setFieldTouched={formik.setFieldTouched}\n                                    >\n                                        {(props) => (\n                                            <Input\n                                                name={FieldsEnum.billingAddressZipCode}\n                                                value={formik.values[FieldsEnum.billingAddressZipCode]}\n                                                placeholder={t('partner.details-tab.fields.zip.placeholder')}\n                                                onChange={props.onChange}\n                                                onBlur={props.onBlur}\n                                                onFocus={props.onFocus}\n                                                hasError={props.hasError}\n                                                hasWarning={props.hasWarning || isNeedApproveBillingAddress}\n                                                hasChanges={props.hasChanges}\n                                            />\n                                        )}\n                                    </FormikField>\n                                    <FormikField\n                                        className={cx('field', 'field--city')}\n                                        name={FieldsEnum.billingAddressCity}\n                                        error={formik.errors[FieldsEnum.billingAddressCity]}\n                                        meta={formik.getFieldMeta(FieldsEnum.billingAddressCity)}\n                                        label={t('partner.details-tab.fields.city.label')}\n                                        setFieldValue={formik.setFieldValue}\n                                        setFieldTouched={formik.setFieldTouched}\n                                    >\n                                        {(props) => (\n                                            <Input\n                                                name={FieldsEnum.billingAddressCity}\n                                                value={formik.values[FieldsEnum.billingAddressCity]}\n                                                placeholder={t('partner.details-tab.fields.city.placeholder')}\n                                                onChange={props.onChange}\n                                                onBlur={props.onBlur}\n                                                onFocus={props.onFocus}\n                                                hasError={props.hasError}\n                                                hasWarning={props.hasWarning || isNeedApproveBillingAddress}\n                                                hasChanges={props.hasChanges}\n                                            />\n                                        )}\n                                    </FormikField>\n                                </FieldGroup>\n                                <FormikField\n                                    name={FieldsEnum.billingAddressStreet1}\n                                    error={formik.errors[FieldsEnum.billingAddressStreet1]}\n                                    meta={formik.getFieldMeta(FieldsEnum.billingAddressStreet1)}\n                                    label={t('partner.details-tab.fields.street1.label')}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                >\n                                    {(props) => (\n                                        <Input\n                                            name={FieldsEnum.billingAddressStreet1}\n                                            value={formik.values[FieldsEnum.billingAddressStreet1]}\n                                            placeholder={t('partner.details-tab.fields.street1.placeholder')}\n                                            onChange={props.onChange}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                            hasError={props.hasError}\n                                            hasWarning={props.hasWarning || isNeedApproveBillingAddress}\n                                            hasChanges={props.hasChanges}\n                                        />\n                                    )}\n                                </FormikField>\n                                <FormikField\n                                    name={FieldsEnum.billingAddressStreet2}\n                                    error={formik.errors[FieldsEnum.billingAddressStreet2]}\n                                    meta={formik.getFieldMeta(FieldsEnum.billingAddressStreet2)}\n                                    label={t('partner.details-tab.fields.street2.label')}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                >\n                                    {(props) => (\n                                        <Input\n                                            name={FieldsEnum.billingAddressStreet2}\n                                            value={formik.values[FieldsEnum.billingAddressStreet2]}\n                                            placeholder={t('partner.details-tab.fields.street2.placeholder')}\n                                            onChange={props.onChange}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                            hasError={props.hasError}\n                                            hasWarning={props.hasWarning || isNeedApproveBillingAddress}\n                                            hasChanges={props.hasChanges}\n                                        />\n                                    )}\n                                </FormikField>\n                                <FormikField\n                                    name={FieldsEnum.billingEmail}\n                                    error={formik.errors[FieldsEnum.billingEmail]}\n                                    meta={formik.getFieldMeta(FieldsEnum.billingEmail)}\n                                    label={t('partner.details-tab.fields.billing-email.label')}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                >\n                                    {(props) => (\n                                        <Input\n                                            name={FieldsEnum.billingEmail}\n                                            value={formik.values[FieldsEnum.billingEmail]}\n                                            placeholder=\"\"\n                                            onChange={props.onChange}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                            hasError={props.hasError}\n                                            hasWarning={props.hasWarning || isNeedApproveBillingAddress}\n                                            hasChanges={props.hasChanges}\n                                        />\n                                    )}\n                                </FormikField>\n                            </div>\n                        </Widget>\n                    )}\n                </div>\n            </ContentMargins>\n            <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n            <HiddenSubmitButtonForKeyboardEnter />\n        </form>\n    );\n});\n\nexport default PartnerDetailsForm;\n","import * as React from 'react';\nimport { useFormik } from 'formik';\nimport AuthLayout from 'common/layouts/AuthLayout/AuthLayout';\n\nimport styles from './ChangePasswordPage.scss';\nimport classNames from 'classnames/bind';\nimport { useTranslation } from 'react-i18next';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { Redirect } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { updatePassword } from 'common/store/auth/actions';\nimport { selectUpdatePasswordRequestStatus } from 'common/store/auth/selectors';\nimport useQuery from 'common/utils/hooks/useQuery';\nimport validateForm from './validate-form';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport Input from 'common/components/Input/Input';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport useAsyncFormErrors from 'common/utils/hooks/useAsyncFormErrors';\nimport asyncValidate from './async-validations';\nimport useAsyncFormErrorMessage from 'common/utils/hooks/useAsyncFormErrorMessage';\nimport { AuthErrorTypeEnum } from 'common/utils/api/auth/errors/auth-api-error';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport { simpleStringFormatter } from 'common/utils/form-formatters';\nimport RedirectSignedUser from 'common/components/RedirectSignedUser/RedirectSignedUser';\nimport { authApi } from 'common/utils/api/auth/factory';\n\nconst cx = classNames.bind(styles);\n\nconst INITIAL_VALUES: FormValuesT = { [FieldsEnum.password]: '' };\n\ntype PropsT = {};\n\ntype QueryT = {\n    oobCode: string;\n};\n\nconst ChangePasswordPage: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n    const query = useQuery<QueryT>();\n    const requestStatus = useSelector(selectUpdatePasswordRequestStatus);\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const initialErrors = React.useMemo(() => {\n        return validateForm(t, INITIAL_VALUES);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [t, INITIAL_VALUES]);\n\n    const formik = useFormik<FormValuesT>({\n        validateOnBlur: false,\n        initialErrors,\n        initialValues: INITIAL_VALUES,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            if (!query.oobCode) {\n                return;\n            }\n\n            const password = simpleStringFormatter(values[FieldsEnum.password]);\n            dispatch(updatePassword(query.oobCode, password));\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const asyncErrors = React.useMemo(() => {\n        return asyncValidate(requestStatus);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [requestStatus.error]);\n\n    const { asyncFormErrors, resetAsyncFormErrors } = useAsyncFormErrors(asyncErrors);\n\n    const asyncPasswordError = asyncFormErrors[FieldsEnum.password];\n\n    let passwordAsyncError = useAsyncFormErrorMessage(asyncPasswordError);\n    if (asyncPasswordError === AuthErrorTypeEnum.expiredActionCode) {\n        passwordAsyncError = t('common:change-password.errors.expired-link');\n    }\n    if (asyncPasswordError === AuthErrorTypeEnum.invalidActionCode) {\n        passwordAsyncError = t('common:change-password.errors.invalid-link');\n    }\n\n    if (requestStatus.ok) {\n        return <Redirect to={authApi.createSignInUrlAfterChangePassword()} />;\n    }\n\n    return (\n        <>\n            <RedirectSignedUser />\n            <AuthLayout title={t('common:change-password.title')} testSelector=\"change-password-page\">\n                <PageTitle title={t('common:page-titles.change-password')} />\n                <form onSubmit={formik.handleSubmit}>\n                    <div className={cx('fields')}>\n                        <div className={cx('input')}>\n                            <FormikField\n                                name={FieldsEnum.password}\n                                error={formik.errors[FieldsEnum.password]}\n                                meta={formik.getFieldMeta(FieldsEnum.password)}\n                                label={t('common:change-password.fields.password.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                                asyncError={passwordAsyncError}\n                                resetAsyncError={resetAsyncFormErrors}\n                            >\n                                {(props) => (\n                                    <Input\n                                        type=\"password\"\n                                        name={FieldsEnum.password}\n                                        value={formik.values[FieldsEnum.password]}\n                                        onChange={props.onChange}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                    />\n                                )}\n                            </FormikField>\n                        </div>\n                    </div>\n                    <Button\n                        isLoading={requestStatus.loading}\n                        theme={ButtonThemeEnum.primary}\n                        type=\"submit\"\n                        className={cx('submit')}\n                    >\n                        {t('common:change-password.submit')}\n                    </Button>\n                </form>\n            </AuthLayout>\n        </>\n    );\n});\n\nexport default ChangePasswordPage;\n","import * as React from 'react';\nimport UiContext from 'common/contexts/ui-context';\nimport { useSelector } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\n\nimport { selectCurrentUser } from 'common/store/user/selectors';\nimport { selectCurrentCompany } from 'common/store/company/selectors';\n\nimport Navigation, { BadgeT, MenuLinkT } from './Navigation/Navigation';\n\nimport ContentRootContext from 'common/layouts/LeftMenuLayout/contexts/content-root-context';\n\nimport classNames from 'classnames/bind';\nimport styles from './LeftMenuLayout.scss';\nimport { selectProfileType } from 'common/store/auth/selectors';\nimport { AuthProfileTypeEnum } from 'common/store/auth/constants';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    menuLinks: Array<MenuLinkT | null>;\n    badges: Record<string, BadgeT[]>;\n    accountLink: string;\n    logoLink: string;\n    isAllowHelpButton?: boolean;\n};\n\nconst NavigationWrap: React.FC<PropsT> = React.memo((props) => {\n    const { menuLinks, badges, logoLink, accountLink, isAllowHelpButton } = props;\n\n    const uiContext = React.useContext(UiContext);\n\n    const location = useLocation();\n    const user = useSelector(selectCurrentUser);\n    const company = useSelector(selectCurrentCompany);\n    const profileType = useSelector(selectProfileType);\n\n    React.useEffect(() => {\n        if (uiContext.menu) {\n            uiContext.menu.handleClose();\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [location.pathname]);\n\n    return (\n        <Navigation\n            isShowCompanyLogo={profileType === AuthProfileTypeEnum.broker}\n            className={cx('menu', {\n                'menu--isOpen': uiContext.menu?.isVisible,\n            })}\n            userName={user?.fullName || ''}\n            userEmail={user?.email || ''}\n            companyName={company?.name || ''}\n            companyId={company?.id || null}\n            badges={badges}\n            menuLinks={menuLinks}\n            accountLink={accountLink}\n            logoLink={logoLink}\n            isAllowHelpButton={isAllowHelpButton}\n        />\n    );\n});\n\nconst LeftMenuLayout: React.FC<PropsT> = React.memo((props) => {\n    const { children, ...rest } = props;\n\n    const [node, setRootNode] = React.useState<HTMLDivElement | null>(null);\n\n    const uiContext = React.useContext(UiContext);\n\n    return (\n        <div className={cx('wrap')}>\n            <NavigationWrap {...rest} />\n            <div\n                className={cx('content', 'menu', {\n                    'menu--isOpen': uiContext.menu?.isVisible,\n                })}\n            >\n                <ContentRootContext.Provider value={node}>\n                    <div className={cx('inner')} ref={(node) => setRootNode(node)}>\n                        {children}\n                    </div>\n                </ContentRootContext.Provider>\n            </div>\n        </div>\n    );\n});\n\nexport default LeftMenuLayout;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport type CancelingBrokerOrderConfirmationDataT = {\n    brokerOrderId: BrokerOrderIdT;\n};\n\ntype PropsT = {\n    data: CancelingBrokerOrderConfirmationDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onConfirm: (data: CancelingBrokerOrderConfirmationDataT) => void;\n    requestStatus: RequestStatusT | null;\n};\n\nconst TEST_SELECTOR = 'cancel-broker-order-confirmation';\n\nconst CancelBrokerOrderConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, requestStatus, onCancel, onClose, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.keep'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: requestStatus?.loading,\n                            onClick: () => {\n                                onCancel();\n                            },\n                        },\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.danger,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            isLoading: requestStatus?.loading,\n                            isDisabled: requestStatus?.loading,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                    title={t('broker-order-details.dialogs.cancel-broker-order.title')}\n                    message={t('broker-order-details.dialogs.cancel-broker-order.description')}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default CancelBrokerOrderConfirmation;\n","import { FetchRulePageQueryT } from 'broker-admin/store/price-settings/rules/models';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/query-models';\nimport { PageSortT, SortDirectionEnum } from 'common/utils/query';\nimport { RulesSortEnum } from 'common/utils/api/models';\nimport { PriceSettingsRuleStateEnum } from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/constants';\n\nconst formatSort = (sort: PageSortT<RulesSortEnum> | null): FetchRulePageQueryT['sort'] | undefined => {\n    switch (sort?.value) {\n        case RulesSortEnum.name: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'NAME_ASC';\n            }\n            return 'NAME_DESC';\n        }\n        case RulesSortEnum.updateDate: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'UPDATE_DATE_ASC';\n            }\n            return 'UPDATE_DATE_DESC';\n        }\n        case RulesSortEnum.createdDate: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'CREATED_DATE_ASC';\n            }\n            return 'CREATED_DATE_DESC';\n        }\n        case RulesSortEnum.validFrom: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'VALID_FROM_ASC';\n            }\n            return 'VALID_FROM_DESC';\n        }\n        case RulesSortEnum.validTill: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'VALID_TILL_ASC';\n            }\n            return 'VALID_TILL_DESC';\n        }\n        default: {\n            return undefined;\n        }\n    }\n};\n\nconst getActiveQuery = (rulesState: QueryFiltersT[QueryFiltersKeysEnum.rulesState]) => {\n    if (rulesState === PriceSettingsRuleStateEnum.activated) {\n        return true;\n    }\n\n    if (rulesState === PriceSettingsRuleStateEnum.deactivated) {\n        return false;\n    }\n\n    return undefined;\n};\n\nconst prepareFetchPageQuery = (\n    queryFilters: QueryFiltersT,\n    sort: PageSortT<RulesSortEnum> | null,\n): FetchRulePageQueryT => {\n    const rulesPartnerIds = queryFilters[QueryFiltersKeysEnum.rulesPartnerIds];\n    const trailerTypeIds = queryFilters[QueryFiltersKeysEnum.rulesTrailerTypeIds];\n\n    return {\n        name: queryFilters[QueryFiltersKeysEnum.rulesName] || undefined,\n        ruleType: queryFilters[QueryFiltersKeysEnum.rulesTypes] || undefined,\n\n        companyId: rulesPartnerIds || undefined,\n        trailerTypeIds: trailerTypeIds ? trailerTypeIds.map((trailerTypeId) => +trailerTypeId) : undefined,\n\n        countriesFrom: queryFilters[QueryFiltersKeysEnum.rulesFromCountryCodes],\n        countriesTo: queryFilters[QueryFiltersKeysEnum.rulesToCountryCodes],\n\n        validFromFrom: queryFilters[QueryFiltersKeysEnum.validFromFrom] || undefined,\n        validFromTo: queryFilters[QueryFiltersKeysEnum.validFromTo] || undefined,\n\n        validTillFrom: queryFilters[QueryFiltersKeysEnum.validTillFrom] || undefined,\n        validTillTo: queryFilters[QueryFiltersKeysEnum.validTillTo] || undefined,\n\n        target: queryFilters[QueryFiltersKeysEnum.rulesImpactPriceComponent] || undefined,\n        operator: queryFilters[QueryFiltersKeysEnum.rulesImpactPriceOperation] || undefined,\n\n        addedBy: queryFilters[QueryFiltersKeysEnum.createdByUserId] || undefined,\n        createdDateFrom: queryFilters[QueryFiltersKeysEnum.createdDateFrom] || undefined,\n        createdDateTo: queryFilters[QueryFiltersKeysEnum.createdDateTo] || undefined,\n\n        modifiedBy: queryFilters[QueryFiltersKeysEnum.lastModifyByUserId] || undefined,\n        updatedFrom: queryFilters[QueryFiltersKeysEnum.lastModifyDateFrom] || undefined,\n        updatedTo: queryFilters[QueryFiltersKeysEnum.lastModifyDateTo] || undefined,\n\n        textSearch: queryFilters[QueryFiltersKeysEnum.rulesSearchText] || undefined,\n\n        active: getActiveQuery(queryFilters[QueryFiltersKeysEnum.rulesState]),\n        sort: formatSort(sort),\n    };\n};\n\nexport { prepareFetchPageQuery };\n","import * as React from 'react';\nimport { useEffect } from 'react';\nimport isEmpty from 'lodash/isEmpty';\nimport scrollIntoView from 'scroll-into-view';\nimport { MS_IN_SEC } from 'common/utils/time';\n\ntype PropsT = {\n    submitCount: number;\n    asyncErrors: Record<string, any>;\n};\n\nconst FOCUS_TIME = MS_IN_SEC / 3;\n\nconst ScrollToFirstAsyncError: React.FC<PropsT> = React.memo((props) => {\n    const { submitCount, asyncErrors } = props;\n\n    const ref = React.createRef<HTMLDivElement>();\n    const prevSubmitCountRef = React.useRef<number>(submitCount);\n    const prevAsyncErrorsRef = React.useRef<Record<string, any> | undefined>(asyncErrors);\n\n    useEffect(() => {\n        if (submitCount === 0) {\n            prevSubmitCountRef.current = submitCount;\n            prevAsyncErrorsRef.current = asyncErrors;\n            return;\n        }\n\n        const hasAsyncErrors = !isEmpty(asyncErrors);\n        const hadAsyncErrors = !isEmpty(prevAsyncErrorsRef.current);\n        const asyncErrorsAppeared = hasAsyncErrors && !hadAsyncErrors;\n\n        prevSubmitCountRef.current = submitCount;\n        prevAsyncErrorsRef.current = asyncErrors;\n\n        if (!asyncErrorsAppeared) {\n            return;\n        }\n\n        if (!ref.current) {\n            return;\n        }\n\n        const formNode = ref.current.closest('form');\n        if (!formNode) {\n            return;\n        }\n\n        const fieldErrorNodes = formNode.querySelectorAll('[data-error-message]');\n        const firstErrorFieldNode = fieldErrorNodes?.[0];\n        if (!firstErrorFieldNode) {\n            return;\n        }\n\n        scrollIntoView(firstErrorFieldNode as HTMLElement, {\n            time: FOCUS_TIME,\n            align: {\n                top: 0.25,\n            },\n        });\n\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [submitCount, asyncErrors]);\n\n    return <div ref={ref} hidden />;\n});\n\nexport default ScrollToFirstAsyncError;\n","import React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './ReadOnlyField.scss';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipIconTrigger from 'design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger';\nimport { UnitTypeEnum } from 'common/constants';\nimport { ReadOnlyFieldValue } from 'common/components/ReadOnlyFieldValue/ReadOnlyFieldValue';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    className?: string;\n    label?: React.ReactNode;\n    subLabel?: React.ReactNode;\n    labelRightNode?: React.ReactNode;\n    value: React.ReactNode;\n    unitType?: UnitTypeEnum;\n    icon?: React.ReactNode;\n    placeholder?: React.ReactNode;\n    tooltipNode?: React.ReactNode;\n    tooltipPosition?: TooltipPositionEnum;\n    rightNode?: React.ReactNode;\n    withInputLayout?: boolean;\n    withoutErrorMessage?: boolean;\n};\n\nconst SHOW_TOOLTIP_DELAY_MS = 300;\n\nconst ReadOnlyField: React.FC<PropsT> = React.memo((props) => {\n    const {\n        withInputLayout,\n        withoutErrorMessage,\n        label,\n        subLabel,\n        labelRightNode,\n        value,\n        unitType,\n        icon,\n        placeholder,\n        tooltipNode,\n        tooltipPosition,\n        rightNode,\n        className,\n    } = props;\n\n    return (\n        <div\n            className={cs(\n                cx('wrap', {\n                    'wrap--withoutErrorMessage': !!withoutErrorMessage,\n                }),\n                className,\n            )}\n        >\n            {label && (\n                <div className={cx('field-label')}>\n                    <div className={cx('row', 'row--left')}>\n                        <span className={cx('text')}>{label}</span>\n                        {subLabel}\n                        {tooltipNode && (\n                            <Tooltip\n                                className={cx('tooltip')}\n                                position={tooltipPosition || TooltipPositionEnum.topCenter}\n                                theme={TooltipThemeEnum.black}\n                                tooltipNode={tooltipNode}\n                                delay={SHOW_TOOLTIP_DELAY_MS}\n                            >\n                                {(isShow) => <TooltipIconTrigger className={cx('tooltip__icon')} isShow={isShow} />}\n                            </Tooltip>\n                        )}\n                    </div>\n                    {labelRightNode && <div className={cx('row', 'row--right')}>{labelRightNode}</div>}\n                </div>\n            )}\n            <ReadOnlyFieldValue\n                withInputLayout={withInputLayout}\n                value={value}\n                unitType={unitType}\n                icon={icon}\n                placeholder={placeholder ? <span className={cx('placeholder')}>{placeholder}</span> : undefined}\n                rightNode={rightNode}\n            />\n        </div>\n    );\n});\n\nexport default ReadOnlyField;\n","// extracted by mini-css-extract-plugin\nexport default {\"row\":\"AssetClusterPin__row____ZWDY\",\"icon\":\"AssetClusterPin__icon___ZwaU1\",\"text\":\"AssetClusterPin__text___eO3NC\",\"text--isNotCanInTime\":\"AssetClusterPin__text--isNotCanInTime___UImzR\",\"text--isSelected\":\"AssetClusterPin__text--isSelected___ipk66\",\"fadeIn\":\"AssetClusterPin__fadeIn___XNEvg\",\"blinking\":\"AssetClusterPin__blinking___H5ANf\"};","// extracted by mini-css-extract-plugin\nexport default {\"table--id\":\"ShipmentDetailsCard__table--id___ipQcY\",\"table--po\":\"ShipmentDetailsCard__table--po___ccKGB\",\"table--point\":\"ShipmentDetailsCard__table--point___WghUT\",\"table--shipment\":\"ShipmentDetailsCard__table--shipment___zk9K9\",\"table\":\"ShipmentDetailsCard__table___HQAQH\",\"fadeIn\":\"ShipmentDetailsCard__fadeIn___hCTSQ\",\"blinking\":\"ShipmentDetailsCard__blinking___pUYfK\"};","import * as React from 'react';\nimport PillLabel, { colorCodingPillLabelTheme, PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { ApiShipperContractLaneStatusT, ShipperContractLaneStatusEnum } from 'common/utils/api/models';\nimport { AuthProfileTypeEnum } from 'common/store/auth/constants';\nimport { useSelector } from 'react-redux';\nimport { selectProfileType } from 'common/store/auth/selectors';\nimport ShipperContractLaneStatus from 'common/components/status/ShipperContractLaneStatus/ShipperContractLaneStatus';\n\ntype PropsT = {\n    status?: ApiShipperContractLaneStatusT | null;\n    isSymmetrical?: boolean;\n    className?: string;\n};\n\ntype ContractLaneStatusColorMapT = Record<ApiShipperContractLaneStatusT, PillLabelThemeEnum>;\n\nconst THEME_MAP: Record<AuthProfileTypeEnum, ContractLaneStatusColorMapT> = {\n    [AuthProfileTypeEnum.shipper]: {\n        [ShipperContractLaneStatusEnum.revoked]: colorCodingPillLabelTheme.normal,\n        [ShipperContractLaneStatusEnum.expired]: colorCodingPillLabelTheme.normal,\n        [ShipperContractLaneStatusEnum.completed]: colorCodingPillLabelTheme.normal,\n        [ShipperContractLaneStatusEnum.active]: colorCodingPillLabelTheme.success,\n    },\n    [AuthProfileTypeEnum.carrier]: {\n        [ShipperContractLaneStatusEnum.revoked]: colorCodingPillLabelTheme.normal,\n        [ShipperContractLaneStatusEnum.expired]: colorCodingPillLabelTheme.normal,\n        [ShipperContractLaneStatusEnum.completed]: colorCodingPillLabelTheme.normal,\n        [ShipperContractLaneStatusEnum.active]: colorCodingPillLabelTheme.success,\n    },\n    [AuthProfileTypeEnum.broker]: {\n        [ShipperContractLaneStatusEnum.revoked]: colorCodingPillLabelTheme.normal,\n        [ShipperContractLaneStatusEnum.expired]: colorCodingPillLabelTheme.normal,\n        [ShipperContractLaneStatusEnum.completed]: colorCodingPillLabelTheme.normal,\n        [ShipperContractLaneStatusEnum.active]: colorCodingPillLabelTheme.success,\n    },\n};\n\nconst DEFAULT_THEME = colorCodingPillLabelTheme.normal;\n\nconst ShipperContractLaneStatusPill: React.FC<PropsT> = React.memo((props) => {\n    const { status, className, isSymmetrical } = props;\n\n    const profileTypeEnum = useSelector(selectProfileType);\n\n    if (!status) {\n        return null;\n    }\n\n    const theme = status ? THEME_MAP[profileTypeEnum]?.[status] : DEFAULT_THEME;\n\n    return (\n        <>\n            <PillLabel\n                isNoWrap\n                theme={theme}\n                testSelector=\"shipper-contact-lane-status\"\n                className={className}\n                isSymmetrical={isSymmetrical}\n            >\n                <ShipperContractLaneStatus status={status} />\n            </PillLabel>\n        </>\n    );\n});\n\nexport default ShipperContractLaneStatusPill;\n","import * as React from 'react';\n\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useFormik } from 'formik';\nimport { useTranslation } from 'react-i18next';\nimport CountryDropdown from 'common/components/dropdowns/CountryDropdown/CountryDropdown';\n\nimport classNames from 'classnames/bind';\nimport styles from './CreateCompanyForm.scss';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport Input from 'common/components/Input/Input';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport Checkbox from 'design-system/components/Checkbox/Checkbox';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport { getZipCodePlaceholder } from 'common/utils/postal-codes';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { ApiCountriesT, ApiRegistrationCompanyRequestDraftT } from 'common/utils/api/models';\n\nconst cx = classNames.bind(styles);\n\nconst INITIAL_VALUES: FormValuesT = {\n    [FieldsEnum.companyName]: '',\n    [FieldsEnum.countryCode]: null,\n    [FieldsEnum.zipCode]: '',\n    [FieldsEnum.city]: '',\n    [FieldsEnum.street]: '',\n    [FieldsEnum.acceptTerms]: false,\n};\n\ntype PropsT = {\n    requestStatus?: RequestStatusT;\n    onSubmit: (registrationCompanyRequestDraft: ApiRegistrationCompanyRequestDraftT) => void;\n};\n\nconst CreateCompanyForm: React.FC<PropsT> = React.memo((props) => {\n    const { onSubmit, requestStatus } = props;\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const initialErrors = React.useMemo(() => {\n        return validateForm(t, INITIAL_VALUES);\n    }, [t]);\n\n    const formik = useFormik<FormValuesT>({\n        validateOnBlur: false,\n        initialErrors,\n        initialValues: INITIAL_VALUES,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const countryCode = values[FieldsEnum.countryCode] as ApiCountriesT;\n            if (!countryCode) {\n                return;\n            }\n\n            onSubmit({\n                companyName: values[FieldsEnum.companyName],\n                countryCode,\n                street: values[FieldsEnum.street],\n                zipCode: values[FieldsEnum.zipCode],\n                city: values[FieldsEnum.city],\n            });\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const parseRequestError = (error: Error | null | undefined): string | null => {\n        if (!error) {\n            return null;\n        }\n\n        // if (\n        //     checkIsTranziitApiRequestError(error) &&\n        //     error.subType === TranziitApiRequestErrorSubTypeEnum.emailAlreadyExist\n        // ) {\n        //     return t('common:auth-errors.email-already-exist');\n        // }\n\n        return error?.message || null;\n    };\n\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <div className={cx('fields')}>\n                <FormikField\n                    name={FieldsEnum.companyName}\n                    error={formik.errors[FieldsEnum.companyName]}\n                    meta={formik.getFieldMeta(FieldsEnum.companyName)}\n                    label={t('common:self-create-company.fields.companyName.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <Input\n                            name={FieldsEnum.companyName}\n                            value={formik.values[FieldsEnum.companyName]}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    name={FieldsEnum.countryCode}\n                    error={formik.errors[FieldsEnum.countryCode]}\n                    label={t('common:self-create-company.fields.countryCode.label')}\n                    meta={formik.getFieldMeta(FieldsEnum.countryCode)}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <CountryDropdown\n                            value={formik.values[FieldsEnum.countryCode]}\n                            onChange={(countryCode) => {\n                                props.onChange(countryCode);\n                            }}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                        />\n                    )}\n                </FormikField>\n                <FieldGroup spaces={1}>\n                    <FormikField\n                        className={cx('field--zip')}\n                        name={FieldsEnum.zipCode}\n                        error={formik.errors[FieldsEnum.zipCode]}\n                        meta={formik.getFieldMeta(FieldsEnum.zipCode)}\n                        label={t('common:self-create-company.fields.zipCode.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <Input\n                                name={FieldsEnum.zipCode}\n                                value={formik.values[FieldsEnum.zipCode]}\n                                placeholder={getZipCodePlaceholder(formik.values[FieldsEnum.countryCode])}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field--city')}\n                        name={FieldsEnum.city}\n                        error={formik.errors[FieldsEnum.city]}\n                        meta={formik.getFieldMeta(FieldsEnum.city)}\n                        label={t('common:self-create-company.fields.city.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <Input\n                                name={FieldsEnum.city}\n                                value={formik.values[FieldsEnum.city]}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FormikField\n                    name={FieldsEnum.street}\n                    error={formik.errors[FieldsEnum.street]}\n                    meta={formik.getFieldMeta(FieldsEnum.street)}\n                    label={t('common:self-create-company.fields.street.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <Input\n                            name={FieldsEnum.street}\n                            value={formik.values[FieldsEnum.street]}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    className={cx('checkbox')}\n                    name={FieldsEnum.acceptTerms}\n                    error={formik.errors[FieldsEnum.acceptTerms]}\n                    meta={formik.getFieldMeta(FieldsEnum.acceptTerms)}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                    isCheckbox\n                >\n                    {(props) => (\n                        <Checkbox\n                            checked={formik.values[FieldsEnum.acceptTerms]}\n                            onChange={props.onChange}\n                            label={\n                                <span className={cx('terms')}>\n                                    {t('common:sign-up.user-form.terms.read')}{' '}\n                                    <Link\n                                        isExternal\n                                        theme={LinkThemeEnum.boldCharcoal}\n                                        to={t('common:sign-up.user-form.terms.link')}\n                                        target=\"_blank\"\n                                    >\n                                        {t('common:sign-up.user-form.terms.link-text')}\n                                    </Link>\n                                </span>\n                            }\n                        />\n                    )}\n                </FormikField>\n            </div>\n            <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n            <Button\n                isLoading={requestStatus?.loading}\n                theme={ButtonThemeEnum.primary}\n                isDisabled={!formik.values[FieldsEnum.acceptTerms]}\n                type=\"submit\"\n                className={cx('submit')}\n            >\n                {t('common:self-create-company.actions.submit')}\n            </Button>\n            <div className={cx('error')}>{parseRequestError(requestStatus?.error)}</div>\n        </form>\n    );\n});\n\nexport default CreateCompanyForm;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { LockPartnerConfirmationDataT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    data: LockPartnerConfirmationDataT | null;\n    requestStatus: RequestStatusT;\n    onClose: () => void;\n    onCancel: () => void;\n    onConfirm: (data: LockPartnerConfirmationDataT | null) => void;\n};\n\nconst TEST_SELECTOR = 'lock-partner-confirmation';\n\nconst LockPartnerConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, requestStatus, onClose, onCancel, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: requestStatus.loading,\n                            onClick: onCancel,\n                        },\n                        {\n                            children: t('common:error-modal.actions.lock'),\n                            theme: ButtonThemeEnum.danger,\n                            isDisabled: requestStatus.loading,\n                            isLoading: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                    title={t('partner.details-tab.dialogs.lock-partner.title')}\n                    message={t('partner.details-tab.dialogs.lock-partner.description')}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default LockPartnerConfirmation;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ShipperContractLaneCreationForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { FieldsEnum, FormValuesT, MAX_RADIUS_KM, MIN_VALID_FROM_VALID_TILL_DAYS } from './constants';\nimport { UnitTypeEnum } from 'common/constants';\nimport { useDispatch, useSelector } from 'react-redux';\nimport DictTrailerDropdown from 'common/components/dropdowns/DictTrailerDropdown/DictTrailerDropdown';\nimport OriginIcon from 'common/icons/OriginIcon';\nimport GeoSuggest from 'common/components/GeoSuggest/GeoSuggest';\nimport DestinationIcon from 'common/icons/DestinationIcon';\nimport validateForm from './validate-form';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { DEFAULT_POINT_ZOOM } from 'common/store/constants';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\nimport isEqual from 'lodash/isEqual';\nimport EmissionClassDropdown from 'common/components/dropdowns/EmissionClassDropdown/EmissionClassDropdown';\nimport NumberInput from 'common/components/NumberInput/NumberInput';\nimport DatePicker, {\n    DatePickerOverlayPositionEnum,\n    datePicketRangePresets,\n} from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport Input from 'common/components/Input/Input';\nimport Checkbox from 'design-system/components/Checkbox/Checkbox';\nimport {\n    selectShipperLaneDestination,\n    selectShipperLaneOrigin,\n} from 'common/store/shipper-contract-lane-creation/selectors';\nimport FieldGroup, { FieldGroupEmptyItem } from 'common/components/FieldGroup/FieldGroup';\nimport {\n    setDestinationLocation,\n    setDestinationLocationRadius,\n    setMapSettings,\n    setOriginLocation,\n    setOriginLocationRadius,\n} from 'common/store/shipper-contract-lane-creation/slice';\nimport getBoundingBox, { createGeoPoint } from 'common/utils/get-bounding-box';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport {\n    CalculateCostRequestQueryT,\n    CreateRequestQueryDraftT,\n} from 'common/store/shipper-contract-lane-creation/models';\nimport { useMemo } from 'react';\nimport moment from 'moment/moment';\nimport { prepareApiCalculateCostRequestQuery, prepareApiCreateRequestQueryDraft } from './prepare-api-requests';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { fetchShipperContractDetails } from 'common/store/shipper-contract-details/slice';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport { selectShipperContractDetailsState } from 'common/store/shipper-contract-details/selectors';\nimport { logWarning } from 'common/utils/logger';\nimport { useEqualPreviousValue } from 'common/utils/hooks/useEqualPreviousValue';\nimport { getDateFromISO, getMaxISODate, getMinISODate } from 'common/utils/time';\nimport { selectCountrySettingsByCountryCode } from 'common/store/country-settings-dict/selectors';\nimport { fetchCountrySettingsDict } from 'common/store/country-settings-dict/actions';\nimport { SyncShipperContractLaneCreationFormMapStateContext } from 'broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/contexts/sync-map-state';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    contractId: ShipperContractIdT | null;\n    onSubmit: (data: CalculateCostRequestQueryT, createQueryDraft: CreateRequestQueryDraftT) => void;\n};\n\nexport const DEFAULT_INITIAL_VALUES: FormValuesT = {\n    [FieldsEnum.trailerDictId]: null,\n    [FieldsEnum.emissionClass]: null,\n\n    [FieldsEnum.pickUpLocation]: null,\n    [FieldsEnum.pickUpLocationRadius]: '',\n\n    [FieldsEnum.dropOffLocation]: null,\n    [FieldsEnum.dropOffLocationRadius]: '',\n\n    [FieldsEnum.validFrom]: null,\n    [FieldsEnum.validTill]: null,\n\n    [FieldsEnum.layoverLimit]: '',\n    [FieldsEnum.ordersLimit]: '',\n\n    [FieldsEnum.externalLaneId]: '',\n\n    [FieldsEnum.includeServiceFee]: false,\n    [FieldsEnum.includeTeamDrive]: false,\n    [FieldsEnum.useApplyRules]: false,\n};\n\nconst ShipperContractLaneCreationForm: React.FC<PropsT> = React.memo((props) => {\n    const { contractId, onSubmit } = props;\n\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n\n    const { partnerId } = usePartnerContext();\n\n    const countriesSettingsByCode = useSelector(selectCountrySettingsByCountryCode);\n    React.useEffect(() => {\n        dispatch(fetchCountrySettingsDict());\n        dispatch(fetchCountriesDict());\n    }, [dispatch]);\n\n    const contractDetailsState = useSelector(selectShipperContractDetailsState(contractId as ShipperContractIdT));\n    React.useEffect(() => {\n        if (!contractId) {\n            return;\n        }\n        if (!partnerId) {\n            logWarning('Empty partnerId in ShipperContractLaneCreationForm useEffect');\n            return;\n        }\n\n        dispatch(\n            fetchShipperContractDetails({\n                partnerId,\n                shipperContractId: contractId,\n            }),\n        );\n    }, [dispatch, partnerId, contractId]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        if (!contractId) {\n            return;\n        }\n        if (!partnerId) {\n            logWarning('Empty partnerId in documentVisibilityChangeHandler');\n            return;\n        }\n\n        dispatch(\n            fetchShipperContractDetails({\n                partnerId,\n                shipperContractId: contractId,\n            }),\n        );\n    }, [dispatch, partnerId, contractId]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const protectedContractDetails = useEqualPreviousValue(contractDetailsState?.data || null);\n    const validate = React.useCallback(\n        (values: FormValuesT) => {\n            return validateForm(t, values, {\n                countriesSettingsByCode,\n                contractDetails: protectedContractDetails,\n            });\n        },\n        [t, countriesSettingsByCode, protectedContractDetails],\n    );\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const contractValidFrom = protectedContractDetails?.validFrom\n            ? new Date(protectedContractDetails.validFrom)\n            : null;\n        const now = new Date();\n\n        const values = {\n            ...DEFAULT_INITIAL_VALUES,\n            [FieldsEnum.validFrom]: contractValidFrom && now < contractValidFrom ? contractValidFrom : now,\n        };\n\n        const errors = validateForm(t, values, {\n            countriesSettingsByCode,\n            contractDetails: protectedContractDetails || null,\n        });\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [countriesSettingsByCode, protectedContractDetails]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const query = prepareApiCalculateCostRequestQuery(values);\n            if (!query) {\n                return;\n            }\n\n            const createQueryDraft = prepareApiCreateRequestQueryDraft(values);\n            if (!createQueryDraft) {\n                return;\n            }\n\n            onSubmit(query, createQueryDraft);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const { setHasDropOffLocationError, setHasPickUpLocationError } = React.useContext(\n        SyncShipperContractLaneCreationFormMapStateContext,\n    );\n    React.useEffect(() => {\n        setHasDropOffLocationError(!!formik.errors?.[FieldsEnum.dropOffLocation]);\n        setHasPickUpLocationError(!!formik.errors?.[FieldsEnum.pickUpLocation]);\n    }, [formik.errors, setHasDropOffLocationError, setHasPickUpLocationError]);\n\n    const handleRadiusSetValue = (field: string, value: string): void => {\n        formik.setFieldValue(field, value);\n\n        const parsedValue = parseSimpleNumber(value);\n        const limitedValue = parsedValue ? Math.min(parsedValue, MAX_RADIUS_KM) : 0;\n\n        if (field === FieldsEnum.dropOffLocationRadius) {\n            dispatch(\n                setDestinationLocationRadius({\n                    radiusKm: limitedValue,\n                }),\n            );\n        }\n\n        if (field === FieldsEnum.pickUpLocationRadius) {\n            dispatch(\n                setOriginLocationRadius({\n                    radiusKm: limitedValue,\n                }),\n            );\n        }\n    };\n\n    const handleGeoSuggestSetValue = (field: string, value: LocationT | null): void => {\n        formik.setFieldValue(field, value);\n\n        const points: Array<GeoPointT | null> = [];\n\n        points.push(createGeoPoint(value?.point?.lat, value?.point?.lng));\n\n        if (field === FieldsEnum.dropOffLocation) {\n            dispatch(setDestinationLocation({ location: value }));\n\n            points.push(\n                createGeoPoint(\n                    formik.values[FieldsEnum.pickUpLocation]?.point?.lat,\n                    formik.values[FieldsEnum.pickUpLocation]?.point?.lng,\n                ),\n            );\n        }\n\n        if (field === FieldsEnum.pickUpLocation) {\n            dispatch(setOriginLocation({ location: value }));\n\n            points.push(\n                createGeoPoint(\n                    formik.values[FieldsEnum.dropOffLocation]?.point?.lat,\n                    formik.values[FieldsEnum.dropOffLocation]?.point?.lng,\n                ),\n            );\n        }\n\n        const boundingBox = getBoundingBox(points);\n        dispatch(\n            setMapSettings({\n                settings: {\n                    center: null,\n                    zoom: points?.length === 1 ? DEFAULT_POINT_ZOOM : null,\n                    boundingBox,\n                },\n            }),\n        );\n    };\n\n    // sync destiation location, redux => form\n    const destinationLocation = useSelector(selectShipperLaneDestination);\n    React.useEffect(() => {\n        const isSame = isEqual(destinationLocation?.location, formik.values[FieldsEnum.dropOffLocation]);\n        if (isSame) {\n            return;\n        }\n\n        if (destinationLocation?.location) {\n            formik.setFieldValue(FieldsEnum.dropOffLocation, destinationLocation.location);\n            formik.setFieldTouched(FieldsEnum.dropOffLocation);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [destinationLocation]);\n\n    // sync origin location, redux => form\n    const originLocation = useSelector(selectShipperLaneOrigin);\n    React.useEffect(() => {\n        const isSame = isEqual(originLocation?.location, formik.values[FieldsEnum.pickUpLocation]);\n        if (isSame) {\n            return;\n        }\n\n        if (originLocation?.location) {\n            formik.setFieldValue(FieldsEnum.pickUpLocation, originLocation.location);\n            formik.setFieldTouched(FieldsEnum.pickUpLocation);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [originLocation]);\n\n    const validFrom = formik.values[FieldsEnum.validFrom];\n    const minValidTillDate = useMemo((): string | undefined => {\n        return (\n            getMaxISODate(\n                moment().add(1, 'day').format(),\n                moment(validFrom).add(MIN_VALID_FROM_VALID_TILL_DAYS, 'day').format(),\n                protectedContractDetails?.validFrom,\n            ) || datePicketRangePresets.anyFutureDate.minDate\n        );\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [validFrom, protectedContractDetails]);\n    const maxValidTillDate = useMemo((): string | undefined => {\n        return getMinISODate(protectedContractDetails?.validTill) || datePicketRangePresets.anyFutureDate.maxDate;\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [validFrom, protectedContractDetails]);\n    const isDisabledValidTillDate = useMemo(() => {\n        if (!maxValidTillDate) {\n            return false;\n        }\n\n        return (\n            maxValidTillDate < moment().add(1, 'day').format() ||\n            (!!minValidTillDate &&\n                !!maxValidTillDate &&\n                getDateFromISO(minValidTillDate) > getDateFromISO(maxValidTillDate))\n        );\n    }, [minValidTillDate, maxValidTillDate]);\n\n    const validTill = formik.values[FieldsEnum.validTill];\n    const minValidFromDate = useMemo((): string | undefined => {\n        return (\n            getMaxISODate(moment().format(), protectedContractDetails?.validFrom) ||\n            datePicketRangePresets.anyFutureDate.minDate\n        );\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [validTill, protectedContractDetails]);\n    const maxValidFromDate = useMemo((): string | undefined => {\n        return (\n            getMinISODate(\n                validTill ? moment(validTill).format() : undefined,\n                protectedContractDetails?.validTill\n                    ? moment(protectedContractDetails?.validTill)\n                          .subtract(MIN_VALID_FROM_VALID_TILL_DAYS, 'days')\n                          .format()\n                    : undefined,\n            ) || datePicketRangePresets.anyFutureDate.maxDate\n        );\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [validTill, protectedContractDetails]);\n    const isDisabledValidFromDate = useMemo(() => {\n        if (!maxValidFromDate) {\n            return false;\n        }\n\n        return (\n            maxValidFromDate < moment().format() ||\n            (!!minValidFromDate &&\n                !!maxValidFromDate &&\n                getDateFromISO(minValidFromDate) > getDateFromISO(maxValidFromDate))\n        );\n    }, [maxValidFromDate, minValidFromDate]);\n\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <FieldGroup>\n                <FormikField\n                    className={cx('field', 'field--trailer-type')}\n                    name={FieldsEnum.trailerDictId}\n                    error={formik.errors[FieldsEnum.trailerDictId]}\n                    meta={formik.getFieldMeta(FieldsEnum.trailerDictId)}\n                    label={t(`common:shipper-lane-details.fields.trailer-type.label`)}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <DictTrailerDropdown\n                            placeholder={t(`common:shipper-lane-details.fields.trailer-type.placeholder`)}\n                            value={formik.values[FieldsEnum.trailerDictId]}\n                            onChange={props.onChange}\n                            hasWarning={props.hasWarning}\n                            hasError={props.hasError}\n                            onFocus={props.onFocus}\n                            onBlur={props.onBlur}\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    className={cx('field', 'field--emission-class')}\n                    name={FieldsEnum.emissionClass}\n                    error={formik.errors[FieldsEnum.emissionClass]}\n                    meta={formik.getFieldMeta(FieldsEnum.emissionClass)}\n                    label={t('common:shipper-lane-details.fields.emission-type.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <EmissionClassDropdown\n                            value={formik.values[FieldsEnum.emissionClass]}\n                            onChange={props.onChange}\n                            hasWarning={props.hasWarning}\n                            hasError={props.hasError}\n                            placeholder={t('common:shipper-lane-details.fields.emission-type.placeholder')}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                        />\n                    )}\n                </FormikField>\n            </FieldGroup>\n            <FieldGroup>\n                <FormikField\n                    className={cx('field', 'field--location')}\n                    name={FieldsEnum.pickUpLocation}\n                    error={formik.errors[FieldsEnum.pickUpLocation]}\n                    meta={formik.getFieldMeta(FieldsEnum.pickUpLocation)}\n                    label={t('common:shipper-lane-details.fields.origin.label')}\n                    setFieldValue={handleGeoSuggestSetValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <GeoSuggest\n                            name={FieldsEnum.pickUpLocation}\n                            value={formik.values[FieldsEnum.pickUpLocation]}\n                            placeholder={t('common:shipper-lane-details.fields.origin.placeholder')}\n                            renderLeftIcon={() => <OriginIcon />}\n                            onChange={props.onChange}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            onFocus={props.onFocus}\n                            onBlur={props.onBlur}\n                            testSelector=\"pickup-location\"\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    className={cx('field', 'field--radius')}\n                    name={FieldsEnum.pickUpLocationRadius}\n                    error={formik.errors[FieldsEnum.pickUpLocationRadius]}\n                    meta={formik.getFieldMeta(FieldsEnum.pickUpLocationRadius)}\n                    label={t('common:shipper-lane-details.fields.radius.label')}\n                    setFieldValue={handleRadiusSetValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <NumberInput\n                            name={FieldsEnum.pickUpLocationRadius}\n                            unitType={UnitTypeEnum.kilometersAbbreviation}\n                            value={formik.values[FieldsEnum.pickUpLocationRadius]}\n                            step={1}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikField>\n            </FieldGroup>\n            <FieldGroup>\n                <FormikField\n                    className={cx('field', 'field--location')}\n                    name={FieldsEnum.dropOffLocation}\n                    error={formik.errors[FieldsEnum.dropOffLocation]}\n                    meta={formik.getFieldMeta(FieldsEnum.dropOffLocation)}\n                    label={t('common:shipper-lane-details.fields.destination.label')}\n                    setFieldValue={handleGeoSuggestSetValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <GeoSuggest\n                            name={FieldsEnum.dropOffLocation}\n                            value={formik.values[FieldsEnum.dropOffLocation]}\n                            placeholder={t('common:shipper-lane-details.fields.destination.placeholder')}\n                            renderLeftIcon={() => <DestinationIcon />}\n                            onChange={props.onChange}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            onFocus={props.onFocus}\n                            onBlur={props.onBlur}\n                            testSelector=\"dropoff-location\"\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    className={cx('field', 'field--radius')}\n                    name={FieldsEnum.dropOffLocationRadius}\n                    error={formik.errors[FieldsEnum.dropOffLocationRadius]}\n                    meta={formik.getFieldMeta(FieldsEnum.dropOffLocationRadius)}\n                    label={t('common:shipper-lane-details.fields.radius.label')}\n                    setFieldValue={handleRadiusSetValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <NumberInput\n                            name={FieldsEnum.dropOffLocationRadius}\n                            unitType={UnitTypeEnum.kilometersAbbreviation}\n                            value={formik.values[FieldsEnum.dropOffLocationRadius]}\n                            step={1}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikField>\n            </FieldGroup>\n            <FieldGroup>\n                <FormikField\n                    className={cx('field', 'field--date')}\n                    name={FieldsEnum.validFrom}\n                    error={formik.errors[FieldsEnum.validFrom]}\n                    meta={formik.getFieldMeta(FieldsEnum.validFrom)}\n                    label={t('common:shipper-lane-details.fields.valid-from.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <DatePicker\n                            value={formik.values[FieldsEnum.validFrom]}\n                            placeholder={t('common:shipper-lane-details.fields.valid-from.placeholder')}\n                            onChange={props.onChange}\n                            overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            hasYearMonthForm\n                            minDate={minValidFromDate}\n                            maxDate={maxValidFromDate}\n                            isDisabled={isDisabledValidFromDate}\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    className={cx('field', 'field--date')}\n                    name={FieldsEnum.validTill}\n                    error={formik.errors[FieldsEnum.validTill]}\n                    meta={formik.getFieldMeta(FieldsEnum.validTill)}\n                    label={t('common:shipper-lane-details.fields.valid-till.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <DatePicker\n                            value={formik.values[FieldsEnum.validTill]}\n                            placeholder={t('common:shipper-lane-details.fields.valid-till.placeholder')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            hasYearMonthForm\n                            minDate={minValidTillDate}\n                            maxDate={maxValidTillDate}\n                            overlayPosition={DatePickerOverlayPositionEnum.bottomRight}\n                            isDisabled={isDisabledValidTillDate}\n                        />\n                    )}\n                </FormikField>\n            </FieldGroup>\n            <FieldGroup>\n                <FormikField\n                    className={cx('field', 'field--limit')}\n                    name={FieldsEnum.layoverLimit}\n                    error={formik.errors[FieldsEnum.layoverLimit]}\n                    meta={formik.getFieldMeta(FieldsEnum.layoverLimit)}\n                    label={t('common:shipper-lane-details.fields.layover-limit.label')}\n                    tooltipNode={\n                        <TooltipContent theme={TooltipContentThemeEnum.black} width={300}>\n                            {t('common:shipper-lane-details.fields.layover-limit.tooltip')}\n                        </TooltipContent>\n                    }\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <NumberInput\n                            name={FieldsEnum.layoverLimit}\n                            unitType={UnitTypeEnum.hoursAbbreviation}\n                            value={formik.values[FieldsEnum.layoverLimit]}\n                            step={1}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    className={cx('field', 'field--limit')}\n                    name={FieldsEnum.ordersLimit}\n                    error={formik.errors[FieldsEnum.ordersLimit]}\n                    meta={formik.getFieldMeta(FieldsEnum.ordersLimit)}\n                    label={t('common:shipper-lane-details.fields.orders-limit.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <NumberInput\n                            name={FieldsEnum.ordersLimit}\n                            value={formik.values[FieldsEnum.ordersLimit]}\n                            step={1}\n                            placeholder={t('common:shipper-lane-details.fields.orders-limit.placeholder')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikField>\n            </FieldGroup>\n            <FieldGroup>\n                <FormikField\n                    className={cx('field', 'field--external-lane-id')}\n                    name={FieldsEnum.externalLaneId}\n                    error={formik.errors[FieldsEnum.externalLaneId]}\n                    meta={formik.getFieldMeta(FieldsEnum.externalLaneId)}\n                    label={t('common:shipper-lane-details.fields.external-lane-id.label')}\n                    tooltipNode={\n                        <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                            {t('common:shipper-lane-details.fields.external-lane-id.tooltip')}\n                        </TooltipContent>\n                    }\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <Input\n                            name={FieldsEnum.externalLaneId}\n                            value={formik.values[FieldsEnum.externalLaneId]}\n                            placeholder={t('common:shipper-lane-details.fields.external-lane-id.placeholder')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikField>\n                <FieldGroupEmptyItem className={cx('field', 'field--limit')} />\n            </FieldGroup>\n            <FormikField\n                className={cx('checkbox')}\n                name={FieldsEnum.includeServiceFee}\n                error={formik.errors[FieldsEnum.includeServiceFee]}\n                meta={formik.getFieldMeta(FieldsEnum.includeServiceFee)}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n                isCheckbox\n                withoutLabel\n            >\n                {(props) => (\n                    <Checkbox\n                        checked={formik.values[FieldsEnum.includeServiceFee]}\n                        onChange={props.onChange}\n                        label={t('common:shipper-lane-details.fields.include-service-fee.label')}\n                    />\n                )}\n            </FormikField>\n            <FormikField\n                className={cx('checkbox')}\n                name={FieldsEnum.includeTeamDrive}\n                error={formik.errors[FieldsEnum.includeTeamDrive]}\n                meta={formik.getFieldMeta(FieldsEnum.includeTeamDrive)}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n                isCheckbox\n                withoutLabel\n            >\n                {(props) => (\n                    <Checkbox\n                        checked={formik.values[FieldsEnum.includeTeamDrive]}\n                        onChange={props.onChange}\n                        label={t('common:shipper-lane-details.fields.include-team-drive.label')}\n                    />\n                )}\n            </FormikField>\n            <FormikField\n                className={cx('checkbox')}\n                name={FieldsEnum.useApplyRules}\n                error={formik.errors[FieldsEnum.useApplyRules]}\n                meta={formik.getFieldMeta(FieldsEnum.useApplyRules)}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n                isCheckbox\n                withoutLabel\n            >\n                {(props) => (\n                    <Checkbox\n                        checked={formik.values[FieldsEnum.useApplyRules]}\n                        onChange={props.onChange}\n                        label={t('common:shipper-lane-details.fields.use-apply-rules.label')}\n                    />\n                )}\n            </FormikField>\n            <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n            <FooterSideBarLayout isAbsolute hasPaddings>\n                <Button\n                    className={cx('calculate')}\n                    theme={ButtonThemeEnum.primary}\n                    type=\"submit\"\n                    testSelector=\"next-step\"\n                >\n                    {t('shipper-lane-creation.actions.calculate')}\n                </Button>\n            </FooterSideBarLayout>\n        </form>\n    );\n});\n\nexport default ShipperContractLaneCreationForm;\n","import { RequestStatusT } from 'common/utils/request-status';\nimport { FindCarriersQueryT, PartnerT } from './models';\n\nexport const FIND_CARRIERS_REQUEST = 'common/carrier-suggest/FIND_CARRIERS_REQUEST';\nexport const FIND_CARRIERS_REQUEST_BEGIN = 'common/carrier-suggest/FIND_CARRIERS_REQUEST_BEGIN';\nexport const FIND_CARRIERS_REQUEST_ERROR = 'common/carrier-suggest/FIND_CARRIERS_REQUEST_ERROR';\nexport const FIND_CARRIERS_REQUEST_SUCCESS = 'common/carrier-suggest/FIND_CARRIERS_REQUEST_SUCCESS';\n\nexport const RESET = 'common/carrier-suggest/RESET';\n\nexport type CarrierSuggestStateT = {\n    query: FindCarriersQueryT | null;\n    requestStatus: RequestStatusT;\n    ids: Array<PartnerT['id']>;\n    byId: Record<PartnerT['id'], PartnerT>;\n};\n\nexport type FindCarriersActionT = {\n    type: typeof FIND_CARRIERS_REQUEST;\n    query: FindCarriersQueryT;\n};\n\nexport type FindCarriersBeginActionT = {\n    type: typeof FIND_CARRIERS_REQUEST_BEGIN;\n    query: FindCarriersQueryT;\n};\n\nexport type FindCarriersSuccessActionT = {\n    type: typeof FIND_CARRIERS_REQUEST_SUCCESS;\n    partners: PartnerT[];\n};\n\nexport type FindCarriersErrorActionT = {\n    type: typeof FIND_CARRIERS_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type ResetActionT = {\n    type: typeof RESET;\n};\n\nexport type CarrierSuggestActionT =\n    | FindCarriersActionT\n    | FindCarriersBeginActionT\n    | FindCarriersSuccessActionT\n    | FindCarriersErrorActionT\n    | ResetActionT;\n","import {\n    TRUCKS_DICT_REQUEST_BEGIN,\n    TRUCKS_DICT_REQUEST_ERROR,\n    TRUCKS_DICT_REQUEST_SUCCESS,\n    TrucksDictActionT,\n    TrucksDictStateT,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport keyBy from 'lodash/keyBy';\n\nconst initialState: TrucksDictStateT = {\n    trucksDict: null,\n    trucksDictRequest: requestStatus.initial,\n};\n\nexport default (state = initialState, action: TrucksDictActionT): TrucksDictStateT => {\n    switch (action.type) {\n        case TRUCKS_DICT_REQUEST_BEGIN: {\n            return {\n                ...state,\n                trucksDictRequest: requestStatus.loading,\n            };\n        }\n\n        case TRUCKS_DICT_REQUEST_SUCCESS: {\n            const { trucksDict } = action;\n\n            const trucksById = keyBy(trucksDict, 'id');\n\n            return {\n                ...state,\n                trucksDict: trucksById,\n                trucksDictRequest: requestStatus.ok,\n            };\n        }\n\n        case TRUCKS_DICT_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                trucksDictRequest: requestStatus.setError(error),\n            };\n        }\n\n        default: {\n            return state;\n        }\n    }\n};\n","import {\n    AssetTrackActionT,\n    AssetTrackItemStateT,\n    AssetTrackStateT,\n    FETCH_TRACK_REQUEST_BEGIN,\n    FETCH_TRACK_REQUEST_ERROR,\n    FETCH_TRACK_REQUEST_SUCCESS,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nexport const initialAssetTrackState: AssetTrackItemStateT = {\n    points: [],\n    requestStatus: requestStatus.initial,\n};\n\nconst initialState: AssetTrackStateT = {};\n\nexport default (state = initialState, action: AssetTrackActionT | DestroySessionActionT): AssetTrackStateT => {\n    switch (action.type) {\n        case FETCH_TRACK_REQUEST_BEGIN: {\n            const { hash } = action;\n\n            return {\n                ...state,\n                [hash]: {\n                    ...initialAssetTrackState,\n                    ...state[hash],\n                    requestStatus: requestStatus.loading,\n                },\n            };\n        }\n\n        case FETCH_TRACK_REQUEST_ERROR: {\n            const { hash, error } = action;\n\n            return {\n                ...state,\n                [hash]: {\n                    ...initialAssetTrackState,\n                    ...state[hash],\n                    requestStatus: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case FETCH_TRACK_REQUEST_SUCCESS: {\n            const { hash, points } = action;\n\n            return {\n                ...state,\n                [hash]: {\n                    ...initialAssetTrackState,\n                    ...state[hash],\n                    requestStatus: requestStatus.ok,\n                    points: points || [],\n                },\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default: {\n            return state;\n        }\n    }\n};\n","import React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './Zone.scss';\nimport { RangeSelectorZoneThemeEnum } from '../constants';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    isSelected?: boolean;\n    isHovered?: boolean;\n    hasLeftBorder?: boolean;\n    hasRightBorder?: boolean;\n    isDisabled?: boolean;\n    left: number;\n    width: number;\n    theme?: RangeSelectorZoneThemeEnum | null;\n    testSelector?: string;\n    children?: React.ReactNode;\n};\n\nconst Zone: React.FC<PropsT> = React.memo((props) => {\n    const { isSelected, isHovered, hasLeftBorder, hasRightBorder, theme, isDisabled, left, width, children } = props;\n\n    return (\n        <div\n            className={cx('zone', {\n                'zone--isDisabled': isDisabled,\n                'zone--isSelected': isSelected,\n                'zone--isHovered': isHovered,\n                'zone--hasLeftBorder': hasLeftBorder,\n                'zone--hasRightBorder': hasRightBorder,\n                [`zone--theme-${theme}`]: !!theme,\n            })}\n            style={{\n                left: `${left}%`,\n                width: `${width}%`,\n            }}\n            data-test-selector=\"range-selector-zone\"\n        >\n            {children}\n        </div>\n    );\n});\n\nexport default Zone;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './DropdownTreeInput.scss';\nimport { DropdownOverlayPositionEnum } from '../constants';\nimport DropdownBaseLayout from '../base/DropdownBaseLayout/DropdownBaseLayout';\nimport DropdownBaseButtonTrigger from '../base/DropdownBaseButtonTrigger/DropdownBaseButtonTrigger';\nimport cs from 'classnames';\nimport CheckboxTree, { getAllSubValues, TreeNodeT } from 'design-system/components/CheckboxTree/CheckboxTree';\nimport FilterPill, { FilterPillThemeEnum } from 'common/components/FilterPills/FilterPill/FilterPill';\nimport ControlLoaderIcon, { ControlLoaderIconProps } from 'common/icons/ControlLoaderIcon';\n\nconst cx = classNames.bind(styles);\n\nexport type IconMetaT = {\n    isEmpty: boolean;\n    isFocus: boolean;\n    isPressed: boolean;\n    isDisabled: boolean;\n    hasError: boolean;\n    hasWarning: boolean;\n    hasSuccess: boolean;\n    hasChanges: boolean;\n    hasValue: boolean;\n};\n\nexport type PropsT<ValueT> = {\n    selectedValues: Array<ValueT>;\n    placeholder?: string;\n    isDisabled?: boolean;\n    isInline?: boolean;\n    hasWarning?: boolean;\n    hasError?: boolean;\n    options: Array<TreeNodeT<ValueT>>;\n    onSelect: (values: Array<ValueT>) => void;\n    onBlur?: () => void;\n    onFocus?: () => void;\n    overlayPosition: DropdownOverlayPositionEnum;\n    className?: string;\n    hasChanges?: boolean;\n    triggerClassName?: string;\n    overlayClassName?: string;\n    testSelector?: string;\n    hasClearControl?: boolean;\n    isLoading?: boolean;\n    renderLeftIcon?: (iconMeta: IconMetaT) => React.ReactNode;\n};\n\nconst DropdownTreeInput = <ValueT,>(props: PropsT<ValueT>): React.ReactElement => {\n    const {\n        selectedValues,\n        placeholder,\n        onSelect,\n        options,\n        isDisabled,\n        isInline,\n        hasWarning,\n        hasError,\n        overlayPosition,\n        className,\n        hasChanges,\n        triggerClassName,\n        overlayClassName,\n        onFocus,\n        onBlur,\n        testSelector,\n        hasClearControl,\n        isLoading,\n        renderLeftIcon,\n    } = props;\n\n    const [isOpen, toggleOpen] = React.useState(false);\n\n    const handleOpen = (): void => {\n        if (isDisabled) {\n            return;\n        }\n        if (onFocus) {\n            onFocus();\n        }\n        toggleOpen(true);\n    };\n\n    const handleClose = (): void => {\n        if (onBlur) {\n            onBlur();\n        }\n        toggleOpen(false);\n    };\n\n    const handleOuterEvent = (): void => {\n        if (onBlur) {\n            onBlur();\n        }\n        handleClose();\n    };\n\n    const renderTrigger = (options: Array<TreeNodeT<ValueT>>, placeholder: string | undefined): React.ReactNode => {\n        if (!options?.length) {\n            return placeholder;\n        }\n\n        return (\n            <>\n                {options.map((option, optionIndex) => {\n                    return (\n                        <FilterPill\n                            className={cx('tag')}\n                            key={optionIndex}\n                            isCompact\n                            label={option.label}\n                            withCloser\n                            theme={FilterPillThemeEnum.charcoal}\n                            onClick={() => {\n                                const optionSubValues = getAllSubValues([option]);\n                                const optionSubValuesSet = new Set(optionSubValues);\n                                const newValues = selectedValues.filter((value) => {\n                                    return !optionSubValuesSet.has(value);\n                                });\n                                onSelect(newValues);\n                            }}\n                        />\n                    );\n                })}\n            </>\n        );\n    };\n\n    const selectedOptions = React.useMemo((): Array<TreeNodeT<ValueT>> => {\n        const result: Array<TreeNodeT<ValueT>> = [];\n\n        const valuesSet = new Set(selectedValues);\n\n        const findSelectedOption = (treeNode: TreeNodeT<ValueT>): void => {\n            const subValues = getAllSubValues([treeNode]);\n            if (!subValues?.length) {\n                return;\n            }\n\n            const isExactValue = subValues.every((subValue) => valuesSet.has(subValue));\n            if (isExactValue) {\n                result.push(treeNode);\n                subValues.forEach((subValue) => valuesSet.delete(subValue));\n                return;\n            }\n\n            const isPartlyValue = subValues.some((subValue) => valuesSet.has(subValue));\n            if (isPartlyValue) {\n                treeNode.children.forEach((subTreeNode) => findSelectedOption(subTreeNode));\n            }\n        };\n\n        options.forEach(findSelectedOption);\n\n        return result;\n    }, [options, selectedValues]);\n\n    const handleReset = React.useCallback(() => {\n        onSelect([]);\n    }, [onSelect]);\n\n    const hasValues = !!selectedOptions.length;\n\n    return (\n        <DropdownBaseLayout\n            isInline={isInline}\n            isOpen={isOpen}\n            className={className}\n            onClose={handleOuterEvent}\n            triggerNode={\n                <DropdownBaseButtonTrigger\n                    isEmpty={!hasValues}\n                    isPressed={isOpen}\n                    isDisabled={isDisabled}\n                    hasChanges={hasChanges}\n                    hasWarning={hasWarning}\n                    hasError={hasError}\n                    className={cs(cx('trigger'), triggerClassName)}\n                    testSelector={testSelector}\n                    onClick={handleOpen}\n                    renderLeftIcon={\n                        renderLeftIcon\n                            ? (iconMeta) =>\n                                  renderLeftIcon({\n                                      ...iconMeta,\n                                      hasValue: hasValues,\n                                  })\n                            : undefined\n                    }\n                    isShowClearControl={hasClearControl}\n                    onReset={hasClearControl ? handleReset : undefined}\n                    renderRightIcon={() =>\n                        isLoading ? <ControlLoaderIcon {...ControlLoaderIconProps.getFetchDataProps()} /> : null\n                    }\n                >\n                    {renderTrigger(selectedOptions, placeholder)}\n                </DropdownBaseButtonTrigger>\n            }\n            overlayPosition={overlayPosition}\n            overlayClassName={cs(cx('overlay'), overlayClassName)}\n            overlayNode={\n                <>\n                    {options.map((option, index): React.ReactElement => {\n                        return (\n                            <div key={index} className={cx('option')}>\n                                <CheckboxTree\n                                    trees={[option]}\n                                    values={selectedValues}\n                                    onChange={onSelect}\n                                    isFullWidth\n                                />\n                            </div>\n                        );\n                    })}\n                </>\n            }\n        />\n    );\n};\n\nexport default DropdownTreeInput;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ChartTooltip.scss';\n\nimport { DataItemT, TooltipOffsetT } from '../models';\nimport HollowCircleIcon from 'common/icons/HollowCircleIcon';\nimport { CurrencyEnum, StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport Money from 'common/components/Money/Money';\nimport { Trans, useTranslation } from 'react-i18next';\nimport UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\nimport isNumber from 'lodash/isNumber';\nimport { GraphSettingsT } from 'broker-admin/layouts/StatisticsPage/models';\nimport { AggregateEnum } from 'broker-admin/layouts/StatisticsPage/constants';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    data: DataItemT | null;\n    offset: TooltipOffsetT | null;\n    settings: GraphSettingsT;\n};\n\nconst ChartTooltip: React.FC<PropsT> = React.memo((props) => {\n    const { data, offset, settings } = props;\n\n    const { t } = useTranslation();\n\n    if (!offset) {\n        return null;\n    }\n\n    const deadheadValue = data?.tooltipData?.deadhead;\n    const deadhead = isNumber(deadheadValue) ? +deadheadValue.toFixed(2) : null;\n\n    const marginValue = data?.tooltipData?.margin;\n    const margin = isNumber(marginValue) ? +marginValue.toFixed(2) : null;\n\n    const notNumberMessage: React.ReactElement = t('common:not-number');\n\n    return (\n        <div\n            className={cx('wrap')}\n            style={{\n                top: `${offset?.top || 0}px`,\n                left: `${offset?.left || 0}px`,\n            }}\n        >\n            <div className={cx('content')}>\n                <div className={cx('row')}>\n                    <HollowCircleIcon borderColor={StyleGuideColorsEnum.tomatoRed} className={cx('row__icon')} />\n                    <div className={cx('row__text')}>\n                        <Trans\n                            i18nKey=\"statistics.chart.tooltip.rejected\"\n                            components={{\n                                value: settings.available[AggregateEnum.rejectedShipperRate] ? (\n                                    <Money\n                                        amount={data?.tooltipData?.rejectedShipperRate}\n                                        currency={CurrencyEnum.EUR}\n                                    />\n                                ) : (\n                                    notNumberMessage\n                                ),\n                            }}\n                        />\n                    </div>\n                </div>\n                <div className={cx('row')}>\n                    <HollowCircleIcon borderColor={StyleGuideColorsEnum.brandAccent} className={cx('row__icon')} />\n                    <div className={cx('row__text')}>\n                        <Trans\n                            i18nKey=\"statistics.chart.tooltip.accepted\"\n                            components={{\n                                value: settings.available[AggregateEnum.acceptedShipperRate] ? (\n                                    <Money\n                                        amount={data?.tooltipData?.acceptedShipperRate}\n                                        currency={CurrencyEnum.EUR}\n                                    />\n                                ) : (\n                                    notNumberMessage\n                                ),\n                            }}\n                        />\n                    </div>\n                </div>\n                <div className={cx('row')}>\n                    <HollowCircleIcon borderColor={StyleGuideColorsEnum.gray} className={cx('row__icon')} />\n                    <div className={cx('row__text')}>\n                        <Trans\n                            i18nKey=\"statistics.chart.tooltip.estimated\"\n                            components={{\n                                value: settings.available[AggregateEnum.estimatedCarrierRate] ? (\n                                    <Money\n                                        amount={data?.tooltipData?.estimatedCarrierRate}\n                                        currency={CurrencyEnum.EUR}\n                                    />\n                                ) : (\n                                    notNumberMessage\n                                ),\n                            }}\n                        />\n                    </div>\n                </div>\n                <div className={cx('row')}>\n                    <HollowCircleIcon borderColor={StyleGuideColorsEnum.orange} className={cx('row__icon')} />\n                    <div className={cx('row__text')}>\n                        <Trans\n                            i18nKey=\"statistics.chart.tooltip.real\"\n                            components={{\n                                value: settings.available[AggregateEnum.realCarrierRate] ? (\n                                    <Money amount={data?.tooltipData?.realCarrierRate} currency={CurrencyEnum.EUR} />\n                                ) : (\n                                    notNumberMessage\n                                ),\n                            }}\n                        />\n                    </div>\n                </div>\n                <div className={cx('row')}>\n                    <HollowCircleIcon borderColor={StyleGuideColorsEnum.light} className={cx('row__icon')} />\n                    <div className={cx('row__text')}>\n                        <Trans\n                            i18nKey=\"statistics.chart.tooltip.margin\"\n                            components={{\n                                value: settings.available[AggregateEnum.margin] ? (\n                                    <UnitTypeCount count={margin} type={UnitTypeEnum.percentsAbbreviation} />\n                                ) : (\n                                    notNumberMessage\n                                ),\n                            }}\n                        />\n                    </div>\n                </div>\n                <div className={cx('row')}>\n                    <HollowCircleIcon borderColor={StyleGuideColorsEnum.light} className={cx('row__icon')} />\n                    <div className={cx('row__text')}>\n                        <Trans\n                            i18nKey=\"statistics.chart.tooltip.deadhead\"\n                            components={{\n                                value: <UnitTypeCount count={deadhead} type={UnitTypeEnum.percentsAbbreviation} />,\n                            }}\n                        />\n                    </div>\n                </div>\n                <div className={cx('row')}>\n                    <HollowCircleIcon borderColor={StyleGuideColorsEnum.light} className={cx('row__icon')} />\n                    <div className={cx('row__text')}>\n                        <Trans\n                            i18nKey=\"statistics.chart.tooltip.avg-distance\"\n                            components={{\n                                value: (\n                                    <UnitTypeCount\n                                        count={data?.tooltipData?.avgDistance}\n                                        type={UnitTypeEnum.kilometersAbbreviation}\n                                    />\n                                ),\n                            }}\n                        />\n                    </div>\n                </div>\n            </div>\n        </div>\n    );\n});\n\nexport default ChartTooltip;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectCountriesByCode } from 'common/store/countries-dict/selectors';\nimport { CountryCodeT } from 'common/store/countries-dict/models';\n\nimport classNames from 'classnames/bind';\nimport styles from './ExcludedCountries.scss';\nimport ExcludedCountry from './ExcludedCountry/ExcludedCountry';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipIconTrigger from 'design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\n\nimport isEmpty from 'lodash/isEmpty';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    className?: string;\n    countryCodes: Array<CountryCodeT>;\n    titleNode?: React.ReactNode;\n    tooltipNode?: React.ReactNode;\n};\n\nconst ExcludedCountries: React.FC<PropsT> = React.memo((props) => {\n    const { countryCodes, titleNode, tooltipNode, className } = props;\n\n    const countryByCode = useSelector(selectCountriesByCode);\n    const dispatch = useDispatch();\n    React.useEffect(() => {\n        dispatch(fetchCountriesDict());\n    }, [dispatch]);\n\n    if (isEmpty(countryCodes)) {\n        return null;\n    }\n    return (\n        <div className={cs(cx('wrap'), className)}>\n            <Tooltip\n                className={cx('tooltip')}\n                position={TooltipPositionEnum.centerRight}\n                theme={TooltipThemeEnum.black}\n                tooltipNode={\n                    <TooltipContent theme={TooltipContentThemeEnum.black} width={300}>\n                        {tooltipNode}\n                    </TooltipContent>\n                }\n            >\n                {(isShow) => <TooltipIconTrigger className={cx('tooltip__icon')} isShow={isShow} />}\n            </Tooltip>\n            <div className={cx('title')}>{titleNode}</div>\n            {countryCodes.map((countryCode: CountryCodeT, index: number) => {\n                const country = countryByCode[countryCode];\n\n                return (\n                    <ExcludedCountry\n                        key={index}\n                        countryCode={countryCode}\n                        countryLabel={country?.userLangDisplayName}\n                        className={cx('country')}\n                    />\n                );\n            })}\n        </div>\n    );\n});\n\nexport default ExcludedCountries;\n","import { ApiCompanyContactMediaT, ApiCompanyContactRequestT } from 'common/utils/api/models';\nimport { FormValuesT, FieldsEnum, MEDIA_FIELDS_NAME } from './constants';\nimport moment from 'moment';\nimport { parsePhoneNumber } from 'common/utils/input-parsers';\n\nconst prepareApiContact = (formValues: FormValuesT): ApiCompanyContactRequestT => {\n    const medias = MEDIA_FIELDS_NAME.reduce<ApiCompanyContactMediaT[]>((acc, fieldName) => {\n        const value = formValues[fieldName];\n        if (value) {\n            acc.push({\n                type: fieldName,\n                login: value,\n            });\n        }\n\n        return acc;\n    }, []);\n\n    return {\n        formal: formValues[FieldsEnum.formal],\n        name: formValues[FieldsEnum.firstName],\n        surname: formValues[FieldsEnum.lastName],\n\n        position: formValues[FieldsEnum.position],\n\n        main: formValues[FieldsEnum.isDefault],\n        deskPhone: parsePhoneNumber(formValues[FieldsEnum.desktopPhone]),\n        mobilePhone: parsePhoneNumber(formValues[FieldsEnum.mobilePhone]),\n        fax: formValues[FieldsEnum.faxNumber],\n        email: formValues[FieldsEnum.email],\n\n        website: formValues[FieldsEnum.webpageLink],\n\n        birthday: moment(formValues[FieldsEnum.birthday]).format('YYYY-MM-DD'), // `${}T00:00:00.000000+00:00`,\n        language: formValues[FieldsEnum.language] || undefined,\n        residence: formValues[FieldsEnum.countryCode] || undefined,\n\n        medias,\n        roles: [],\n    };\n};\n\nexport default prepareApiContact;\n","import * as React from 'react';\nimport { ApiShipperContractStatusT } from 'common/utils/api/models';\nimport ShipperContractLaneOrderCounterPill from 'common/components/pills/ShipperContractLaneOrderCounterPill/ShipperContractLaneOrderCounterPill';\n\ntype PropsT = {\n    ordersLeft: number | null | undefined;\n    maxNumberOfOrders: number | null | undefined;\n    status: ApiShipperContractStatusT | null | undefined;\n};\n\nconst OrdersCountCell: React.FC<PropsT> = React.memo((props) => {\n    const { ordersLeft, maxNumberOfOrders, status } = props;\n\n    return (\n        <ShipperContractLaneOrderCounterPill\n            ordersLeft={ordersLeft}\n            maxNumberOfOrders={maxNumberOfOrders}\n            status={status}\n            isSymmetrical\n        />\n    );\n});\n\nexport default OrdersCountCell;\n","import * as React from 'react';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport { RevokeContractActionEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype ValueT = RevokeContractActionEnum | null;\n\nexport type ActionOptionT = {\n    label: React.ReactNode;\n    value: ValueT;\n};\n\ntype PropsT = {\n    className?: string;\n    value: ValueT;\n    onSelect: (value: ValueT) => void;\n    onBlur?: () => void;\n    onFocus?: () => void;\n};\n\nconst RevokeContractActionDropdown: React.FC<PropsT> = React.memo((props) => {\n    const { className, value, onSelect, onBlur, onFocus } = props;\n\n    const { t } = useTranslation();\n\n    const options = React.useMemo((): Array<ActionOptionT> => {\n        return [\n            {\n                value: RevokeContractActionEnum.setNewContract,\n                label: t('common:carrier-contracts.revoke-confirmation.actions.set-new-contract'),\n            },\n            {\n                value: RevokeContractActionEnum.keepOldRate,\n                label: t('common:carrier-contracts.revoke-confirmation.actions.keep-old-rate'),\n            },\n            {\n                value: RevokeContractActionEnum.setNewRate,\n                label: t('common:carrier-contracts.revoke-confirmation.actions.set-new-rate'),\n            },\n        ];\n    }, [t]);\n\n    return (\n        <DropdownInput<ActionOptionT, ActionOptionT['value']>\n            className={className}\n            selectedValue={value}\n            options={options}\n            onSelect={onSelect}\n            renderOption={(option) => {\n                if (!option) {\n                    return null;\n                }\n\n                return <DropdownControlOptionLabel withoutPaddings label={option.label} />;\n            }}\n            renderTriggerContent={(option) => {\n                if (!option) {\n                    return null;\n                }\n\n                return <DropdownControlOptionLabel withoutPaddings label={option.label} />;\n            }}\n            getOptionValue={(option) => option?.value}\n            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n            onBlur={onBlur}\n            onFocus={onFocus}\n        />\n    );\n});\n\nexport default RevokeContractActionDropdown;\n","import React from 'react';\nimport { DeadheadRouteStopTypeEnum } from 'broker-admin/store/deadhead-creation/models';\nimport noop from 'lodash/noop';\nimport { BoundPointT } from 'common/components/maps/MapBound/MapBound';\nimport { CountryCodeT } from 'common/utils/api/models';\n\nexport type MapRoutePointT = {\n    id: RoutePointIdT;\n    type: DeadheadRouteStopTypeEnum;\n    number: number;\n    location: LocationT | null;\n    isDraggable: boolean;\n    hasError: boolean;\n};\n\nexport type OnMapClickCallbackT = (location: LocationT | null) => void;\nexport type OnDragEndDnDCallbackT = (id: RoutePointIdT, location: LocationT | null) => void;\nexport type OnSetMapBoundingBoxCallbackT = (boundPoints: Array<BoundPointT> | null) => void;\nexport type OnChangeExcludedCountriesCallbackT = (excludedCountries: Array<CountryCodeT>) => void;\n\nexport type SyncAssignmentFormMapStateContextValueT = {\n    onSetMapBoundingBox: { callback: OnSetMapBoundingBoxCallbackT } | null;\n    setOnSetMapBoundingBox: (params: { callback: OnSetMapBoundingBoxCallbackT }) => void;\n\n    mapRoutePoints: Array<MapRoutePointT>;\n    setMapRoutePoints: (routePoints: Array<MapRoutePointT>) => void;\n\n    onMapClickCallback: { callback: OnMapClickCallbackT } | null;\n    setOnMapClickCallback: (params: { callback: OnMapClickCallbackT }) => void;\n\n    onDragEndDnDCallback: { callback: OnDragEndDnDCallbackT } | null;\n    setOnDragEndDnDCallback: (params: { callback: OnDragEndDnDCallbackT }) => void;\n\n    excludedCountries: Array<CountryCodeT>;\n    setExcludedCountries: (excludedCountries: Array<CountryCodeT>) => void;\n\n    onChangeExcludedCountriesCallback: { callback: OnChangeExcludedCountriesCallbackT } | null;\n    setOnChangeExcludedCountriesCallback: (params: { callback: OnChangeExcludedCountriesCallbackT }) => void;\n};\n\nconst SyncRouteEditFormMapStateContext = React.createContext<SyncAssignmentFormMapStateContextValueT>({\n    onSetMapBoundingBox: null,\n    setOnSetMapBoundingBox: noop,\n\n    mapRoutePoints: [],\n    setMapRoutePoints: noop,\n\n    onMapClickCallback: null,\n    setOnMapClickCallback: noop,\n\n    onDragEndDnDCallback: null,\n    setOnDragEndDnDCallback: noop,\n\n    excludedCountries: [],\n    setExcludedCountries: noop,\n\n    onChangeExcludedCountriesCallback: null,\n    setOnChangeExcludedCountriesCallback: noop,\n});\n\nexport { SyncRouteEditFormMapStateContext };\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"CompletedPartnerCarrierContractCard__inner___HfGn3\",\"fadeIn\":\"CompletedPartnerCarrierContractCard__fadeIn___QSzV8\",\"blinking\":\"CompletedPartnerCarrierContractCard__blinking___PssfE\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"ExcludedCountries__wrap___fHaN5\",\"tooltip\":\"ExcludedCountries__tooltip___dANAG\",\"title\":\"ExcludedCountries__title____Q_5i\",\"country\":\"ExcludedCountries__country___hnOtV\",\"fadeIn\":\"ExcludedCountries__fadeIn___XINF1\",\"blinking\":\"ExcludedCountries__blinking___KcQ7j\"};","import { SharableStateT } from 'common/store/models';\nimport { initialAssetTrackState } from './reducer';\nimport { AssetTrackItemStateT, AssetTrackStateT } from './types';\n\nexport const selectAssetTrackRequest =\n    (hash?: HashT) =>\n    (state: SharableStateT): AssetTrackItemStateT['requestStatus'] => {\n        if (!hash) {\n            return initialAssetTrackState.requestStatus;\n        }\n\n        return state.assetTrack[hash]?.requestStatus || initialAssetTrackState.requestStatus;\n    };\n\nexport const selectAssetTrackPoints =\n    (hash?: HashT) =>\n    (state: SharableStateT): AssetTrackItemStateT['points'] => {\n        if (!hash) {\n            return initialAssetTrackState.points;\n        }\n\n        return state.assetTrack[hash]?.points || initialAssetTrackState.points;\n    };\n\nexport const selectAssetTrackSliceState = (state: SharableStateT): AssetTrackStateT => {\n    return state.assetTrack;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"CompletedPartnerShipperContractCard__inner___GyYTC\",\"fadeIn\":\"CompletedPartnerShipperContractCard__fadeIn___fXRWG\",\"blinking\":\"CompletedPartnerShipperContractCard__blinking___FS0EB\"};","import {\n    AuthActionT,\n    AuthStateT,\n    EMAIL_VERIFICATION_REQUEST_BEGIN,\n    RESET_PASSWORD_REQUEST_BEGIN,\n    RESET_PASSWORD_REQUEST_ERROR,\n    RESET_PASSWORD_REQUEST_SUCCESS,\n    SET_USER,\n    RESET_USER,\n    SIGN_IN_REQUEST_BEGIN,\n    SIGN_IN_REQUEST_ERROR,\n    SIGN_IN_REQUEST_SUCCESS,\n    SIGN_OUT_REQUEST_BEGIN,\n    SIGN_OUT_REQUEST_ERROR,\n    SIGN_OUT_REQUEST_SUCCESS,\n    SIGN_UP_REQUEST_BEGIN,\n    SIGN_UP_REQUEST_ERROR,\n    SIGN_UP_REQUEST_SUCCESS,\n    UPDATE_PASSWORD_REQUEST_BEGIN,\n    UPDATE_PASSWORD_REQUEST_ERROR,\n    UPDATE_PASSWORD_REQUEST_SUCCESS,\n    EMAIL_VERIFICATION_REQUEST_SUCCESS,\n    EMAIL_VERIFICATION_REQUEST_ERROR,\n    DESTROY_SESSION,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { AuthProfileTypeEnum } from 'common/store/auth/constants';\n\nconst getInitialState = (profileType: AuthProfileTypeEnum): AuthStateT => ({\n    user: null,\n    userClaims: null,\n    signInRequest: requestStatus.initial,\n    resetPasswordRequest: requestStatus.initial,\n    updatePasswordRequest: requestStatus.initial,\n    signUpRequest: requestStatus.initial,\n    signOutRequest: requestStatus.initial,\n    emailVerificationRequest: requestStatus.initial,\n    profileType,\n});\n\nexport default (profileType: AuthProfileTypeEnum) =>\n    (state = getInitialState(profileType), action: AuthActionT): AuthStateT => {\n        switch (action.type) {\n            case SIGN_IN_REQUEST_BEGIN: {\n                return {\n                    ...state,\n                    signInRequest: requestStatus.loading,\n                };\n            }\n            case SIGN_IN_REQUEST_SUCCESS: {\n                const { user, userClaims } = action;\n                return {\n                    ...state,\n                    user,\n                    userClaims,\n                    signInRequest: requestStatus.ok,\n                };\n            }\n            case SIGN_IN_REQUEST_ERROR: {\n                const { error } = action;\n\n                return {\n                    ...state,\n                    signInRequest: requestStatus.setError(error),\n                };\n            }\n            case SET_USER: {\n                const { user, userClaims } = action;\n\n                return {\n                    ...state,\n                    user,\n                    userClaims,\n                };\n            }\n            case RESET_USER: {\n                return {\n                    ...state,\n                    user: null,\n                };\n            }\n            case RESET_PASSWORD_REQUEST_BEGIN: {\n                return {\n                    ...state,\n                    resetPasswordRequest: requestStatus.loading,\n                };\n            }\n            case RESET_PASSWORD_REQUEST_SUCCESS: {\n                return {\n                    ...state,\n                    resetPasswordRequest: requestStatus.ok,\n                };\n            }\n            case RESET_PASSWORD_REQUEST_ERROR: {\n                const { error } = action;\n\n                return {\n                    ...state,\n                    resetPasswordRequest: requestStatus.setError(error),\n                };\n            }\n            case UPDATE_PASSWORD_REQUEST_BEGIN: {\n                return {\n                    ...state,\n                    updatePasswordRequest: requestStatus.loading,\n                };\n            }\n            case UPDATE_PASSWORD_REQUEST_SUCCESS: {\n                return {\n                    ...state,\n                    updatePasswordRequest: requestStatus.ok,\n                };\n            }\n            case UPDATE_PASSWORD_REQUEST_ERROR: {\n                const { error } = action;\n\n                return {\n                    ...state,\n                    updatePasswordRequest: requestStatus.setError(error),\n                };\n            }\n            case SIGN_UP_REQUEST_BEGIN: {\n                return {\n                    ...state,\n                    signUpRequest: requestStatus.loading,\n                };\n            }\n            case SIGN_UP_REQUEST_SUCCESS: {\n                return {\n                    ...state,\n                    signUpRequest: requestStatus.ok,\n                };\n            }\n            case SIGN_UP_REQUEST_ERROR: {\n                const { error } = action;\n\n                return {\n                    ...state,\n                    signUpRequest: requestStatus.setError(error),\n                };\n            }\n            case SIGN_OUT_REQUEST_BEGIN: {\n                return {\n                    ...state,\n                    signOutRequest: requestStatus.loading,\n                };\n            }\n            case SIGN_OUT_REQUEST_SUCCESS: {\n                return {\n                    ...state,\n                    signOutRequest: requestStatus.ok,\n                };\n            }\n            case SIGN_OUT_REQUEST_ERROR: {\n                const { error } = action;\n\n                return {\n                    ...state,\n                    signOutRequest: requestStatus.setError(error),\n                };\n            }\n            case EMAIL_VERIFICATION_REQUEST_BEGIN: {\n                return {\n                    ...state,\n                    emailVerificationRequest: requestStatus.loading,\n                };\n            }\n            case EMAIL_VERIFICATION_REQUEST_SUCCESS: {\n                return {\n                    ...state,\n                    emailVerificationRequest: requestStatus.ok,\n                };\n            }\n            case EMAIL_VERIFICATION_REQUEST_ERROR: {\n                const { error } = action;\n\n                return {\n                    ...state,\n                    emailVerificationRequest: requestStatus.setError(error),\n                };\n            }\n\n            case DESTROY_SESSION: {\n                return {\n                    ...getInitialState(profileType),\n                    signOutRequest: state.signOutRequest,\n                    user: state.user,\n                    userClaims: state.userClaims,\n                };\n            }\n\n            default:\n                return state;\n        }\n    };\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"NotificationCardBody__wrap___rtSjR\",\"wrap--unread\":\"NotificationCardBody__wrap--unread___XHymR\",\"mark-read\":\"NotificationCardBody__mark-read___b_CcL\",\"wrap--is-clickable\":\"NotificationCardBody__wrap--is-clickable___T6b8H\",\"emotion\":\"NotificationCardBody__emotion___rKHv6\",\"emotion--theme-neutral\":\"NotificationCardBody__emotion--theme-neutral___wc1Tz\",\"emotion--theme-positive\":\"NotificationCardBody__emotion--theme-positive___XolU4\",\"emotion--theme-negative\":\"NotificationCardBody__emotion--theme-negative___BULHp\",\"emotion--theme-attention\":\"NotificationCardBody__emotion--theme-attention___a1hPh\",\"emotion--theme-null\":\"NotificationCardBody__emotion--theme-null___obog5\",\"icon\":\"NotificationCardBody__icon___mcyXe\",\"fadeIn\":\"NotificationCardBody__fadeIn___ZnOky\",\"blinking\":\"NotificationCardBody__blinking___tayxK\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './SelectedOfferHeader.scss';\nimport SideBarLayoutContext from 'common/layouts/LeftMenuLayout/SideBarLayout/contexts/side-bar-layout-context';\nimport Money from 'common/components/Money/Money';\nimport { CurrencyEnum } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    amount: number;\n    currency: CurrencyEnum;\n    hasChangedLineHaul: boolean;\n    onClickAmount: () => void;\n};\n\nconst SelectedOfferHeader: React.FC<PropsT> = React.memo((props) => {\n    const { onClickAmount, amount, currency, hasChangedLineHaul } = props;\n    const context = React.useContext(SideBarLayoutContext);\n\n    const scrollTopValue = context?.scrollTop?.value || 0;\n    if (scrollTopValue < 500) {\n        return null;\n    }\n\n    return (\n        <div className={cx('content')}>\n            <span\n                className={cx('total', {\n                    'total--changed': hasChangedLineHaul,\n                })}\n                onClick={onClickAmount}\n            >\n                <Money amount={amount} currency={currency} />\n            </span>\n        </div>\n    );\n});\n\nexport default SelectedOfferHeader;\n","import React from 'react';\nimport UiContext from 'common/contexts/ui-context';\nimport NavBurger from 'common/components/NavBurger/NavBurger';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './TopBar.scss';\nimport ContentLimiter from '../ContentLimiter/ContentLimiter';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    isSticky?: boolean;\n    isWhite?: boolean;\n    scrollBarWidth?: number;\n};\n\nconst TopBar: React.FC<PropsT> = (props) => {\n    const { children, isSticky, isWhite, scrollBarWidth, className } = props;\n\n    const uiContext = React.useContext(UiContext);\n\n    const contentNode = (\n        <>\n            <div className={cx('menu-trigger')} onClick={uiContext.menu?.handleToggle}>\n                <NavBurger isOpen={!!uiContext.menu?.isVisible} />\n            </div>\n            {children}\n        </>\n    );\n\n    return (\n        <div\n            className={cs(\n                cx('top-bar', {\n                    'top-bar--isSticky': isSticky,\n                }),\n                className,\n            )}\n            style={{\n                left: `${0}px`,\n                right: `${scrollBarWidth || 0}px`,\n            }}\n        >\n            {isSticky ? (\n                <ContentLimiter>\n                    <div\n                        className={cs(\n                            cx('inner', {\n                                'inner--isWhite': isWhite,\n                                'inner--isSticky': isSticky,\n                            }),\n                        )}\n                    >\n                        {contentNode}\n                    </div>\n                </ContentLimiter>\n            ) : (\n                <div className={cx('inner')}>{contentNode}</div>\n            )}\n        </div>\n    );\n};\n\nexport default TopBar;\n","import * as React from 'react';\nimport FilterPills, { FilterPillsConfigT } from 'common/components/FilterPills/FilterPills';\nimport { useTranslation } from 'react-i18next';\nimport { FilterPillThemeEnum } from 'common/components/FilterPills/FilterPill/FilterPill';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from '../query-models';\n\ntype PropsT = {\n    isCompact?: boolean;\n    className?: string;\n    queryFilters: QueryFiltersT;\n    setQueryFilters: (queryFilters: QueryFiltersT) => void;\n};\n\nconst SelectedFilters: React.FC<PropsT> = React.memo((props) => {\n    const { isCompact, queryFilters, setQueryFilters } = props;\n\n    const { t } = useTranslation();\n\n    const filterPillsConfig = React.useMemo(\n        (): FilterPillsConfigT<QueryFiltersT> => [\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('invoices.list.filters.pills.search', {\n                        value: queryFilters[QueryFiltersKeysEnum.searchText],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.searchText],\n            },\n        ],\n        [t],\n    );\n\n    return (\n        <FilterPills<QueryFiltersT>\n            isCompact={isCompact}\n            queryFilters={queryFilters}\n            setQueryFilters={setQueryFilters}\n            config={filterPillsConfig}\n        />\n    );\n});\n\nexport default SelectedFilters;\n","import * as React from 'react';\n\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { useTranslation } from 'react-i18next';\nimport { ApiBrokerTourTypeT, ApiBrokerTourEnum } from 'broker-admin/utils/api/broker-tranziit/models';\n\ntype PropsT = {\n    type?: ApiBrokerTourTypeT | null | undefined;\n    isSymmetrical?: boolean;\n    className?: string;\n};\n\nconst PILL_THEME_BY_TOUR_TYPE: Record<ApiBrokerTourTypeT, PillLabelThemeEnum> = {\n    [ApiBrokerTourEnum.deadhead]: PillLabelThemeEnum.tumbleweed,\n    [ApiBrokerTourEnum.shipment]: PillLabelThemeEnum.lightSlateGray,\n};\n\nexport const BROKER_TOUR_TYPE_T_MAP: Record<ApiBrokerTourTypeT, string> = {\n    [ApiBrokerTourEnum.deadhead]: 'broker-tour-type.DEADHEAD',\n    [ApiBrokerTourEnum.shipment]: 'broker-tour-type.SHIPMENT',\n};\n\nconst BrokerTourTypePill: React.FC<PropsT> = React.memo((props) => {\n    const { type, isSymmetrical, className } = props;\n\n    const { t } = useTranslation();\n\n    if (!type) {\n        return null;\n    }\n\n    const theme = PILL_THEME_BY_TOUR_TYPE[type] ?? PillLabelThemeEnum.slate;\n\n    return (\n        <PillLabel\n            isNoWrap\n            isSymmetrical={isSymmetrical}\n            className={className}\n            theme={theme}\n            testSelector=\"broker-tour-type\"\n        >\n            {t(BROKER_TOUR_TYPE_T_MAP[type])}\n        </PillLabel>\n    );\n});\n\nexport default BrokerTourTypePill;\n","// eslint-disable-next-line no-restricted-exports\nexport { default } from './slice';\n","import * as React from 'react';\nimport DropdownControl, {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport MoreIcon from 'common/icons/MoreIcon';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\n\ntype PropsT = {\n    className?: string;\n    options: Array<DropdownControlOptionT | SpecialOptionEnum>;\n};\n\nconst ControlsCell: React.FC<PropsT> = React.memo((props) => {\n    const { className, options } = props;\n\n    return (\n        <DropdownControl\n            className={className}\n            options={options}\n            renderTrigger={(isActive, onClick) => (\n                <TransparentTrigger\n                    isPressed={isActive}\n                    onClick={onClick}\n                    leftIcon={<MoreIcon />}\n                    reflectionTheme={ReflectionThemeEnum.light}\n                />\n            )}\n            overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n        />\n    );\n});\n\nexport default ControlsCell;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './EditShipperContractDetailsForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport { FieldsEnum, FormValuesT, MIN_VALID_FROM_VALID_TILL_DAYS } from './constants';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport Input from 'common/components/Input/Input';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { useSelector } from 'react-redux';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport FilePickerInput from 'design-system/components/FilePickerInput/FilePickerInput';\nimport DatePicker, {\n    DatePickerOverlayPositionEnum,\n    datePicketRangePresets,\n} from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport { ShipperContractDetailsT, UpdateShipperContractChangesT } from 'common/store/shipper-contract-details/models';\nimport { logWarning } from 'common/utils/logger';\nimport { selectUpdateShipperContractRequest } from 'common/store/shipper-contract-details/selectors';\nimport { simpleStringFormatter } from 'common/utils/form-formatters';\nimport moment from 'moment';\nimport { EMPTY_VALUE_PLACEHOLDER } from 'common/components/ReadOnlyFieldValue/ReadOnlyFieldValue';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport { useWatchFormAnyErrors } from 'common/utils/hooks/useWatchFormFormHasErrors';\nimport { DownloadDataT } from './models';\nimport HiddenSubmitButtonForKeyboardEnter from 'common/components/HiddenEnterSubmitButton/HiddenSubmitButtonForKeyboardEnter';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { TooltipPositionEnum } from 'design-system/components/Tooltip/Tooltip';\nimport isNumber from 'lodash/isNumber';\nimport { getMaxISODate } from 'common/utils/time';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport DownloadIcon from 'common/icons/DownloadIcon';\n\nconst cx = classNames.bind(styles);\n\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(Object.values(FieldsEnum));\n\ntype PropsT = {\n    partnerId: PartnerIdT;\n    shipperContractId: ShipperContractIdT;\n    shipperContractDetails: ShipperContractDetailsT | null;\n    onDownloadShipperContract: (data: DownloadDataT) => void;\n    onUpdateShipperContract: (data: {\n        partnerId: PartnerIdT;\n        shipperContractId: ShipperContractIdT;\n        detailsChanges: UpdateShipperContractChangesT;\n        file: File | null;\n    }) => void;\n};\n\nconst VALID_TILL_FORMAT = 'YYYY-MM-DD';\n\nconst EditShipperContractDetailsForm: React.FC<PropsT> = (props) => {\n    const { partnerId, shipperContractId, shipperContractDetails, onDownloadShipperContract, onUpdateShipperContract } =\n        props;\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues(partnerId, shipperContractDetails);\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [partnerId, shipperContractDetails]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const file = values[FieldsEnum.file];\n            if (!file) {\n                logWarning('failed to upload shipper contract, empty file');\n                return;\n            }\n\n            const detailsChanges: UpdateShipperContractChangesT = {\n                name: simpleStringFormatter(values[FieldsEnum.name]),\n                number: simpleStringFormatter(values[FieldsEnum.number]),\n                validFrom: moment(values[FieldsEnum.activateDate]).format(VALID_TILL_FORMAT),\n                validTill: moment(values[FieldsEnum.validTillDate]).format(VALID_TILL_FORMAT),\n            };\n\n            onUpdateShipperContract({\n                partnerId,\n                shipperContractId,\n                detailsChanges,\n                file: file instanceof File ? file : null,\n            });\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const uploadRequestStatus = useSelector(selectUpdateShipperContractRequest);\n    const isLoading = uploadRequestStatus?.loading;\n\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormCallbacks) {\n            remoteFormActionsContext.setRemoteFormCallbacks({\n                submit: formik.submitForm,\n                reset: formik.resetForm,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.submitForm, formik.resetForm]);\n\n    const hasFormAnyErros = useWatchFormAnyErrors(formik.errors);\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormState) {\n            remoteFormActionsContext.setRemoteFormState({\n                hasChanges: hasAnyFieldValueChanges,\n                hasErrors: hasFormAnyErros,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasFormAnyErros, hasAnyFieldValueChanges]);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormRequest) {\n            remoteFormActionsContext.setRemoteFormRequest({\n                isLoading,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isLoading]);\n\n    const activateDate = formik.values[FieldsEnum.activateDate];\n    const minValidTillDate = React.useMemo(() => {\n        if (!activateDate) {\n            return datePicketRangePresets.documentValidTill.minDate;\n        }\n\n        return (\n            getMaxISODate(\n                moment(activateDate).add(MIN_VALID_FROM_VALID_TILL_DAYS, 'day').format(),\n                shipperContractDetails?.validTill,\n            ) || datePicketRangePresets.documentValidTill.minDate\n        );\n    }, [activateDate, shipperContractDetails?.validTill]);\n\n    const validTillDate = formik.values[FieldsEnum.validTillDate];\n    const maxActivateDate = React.useMemo(() => {\n        if (!validTillDate) {\n            return datePicketRangePresets.documentValidTill.maxDate;\n        }\n\n        return moment(validTillDate).subtract(1, 'day').format();\n    }, [validTillDate]);\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('form')}>\n            <FieldGroup>\n                <FormikField\n                    className={cx('field', 'field--name')}\n                    name={FieldsEnum.name}\n                    error={formik.errors[FieldsEnum.name]}\n                    meta={formik.getFieldMeta(FieldsEnum.name)}\n                    label={t('common:shipper-contract-details.editing-form.fields.name.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <Input\n                            name={FieldsEnum.name}\n                            value={formik.values[FieldsEnum.name]}\n                            placeholder={t('common:shipper-contract-details.editing-form.fields.name.placeholder')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasChanges={props.hasChanges}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    className={cx('field', 'field--number')}\n                    name={FieldsEnum.number}\n                    error={formik.errors[FieldsEnum.number]}\n                    meta={formik.getFieldMeta(FieldsEnum.number)}\n                    label={t('common:shipper-contract-details.editing-form.fields.number.label')}\n                    tooltipNode={\n                        <TooltipContent isCenter theme={TooltipContentThemeEnum.black} width={150}>\n                            {t('common:shipper-contract-details.editing-form.fields.number.tooltip')}\n                        </TooltipContent>\n                    }\n                    tooltipPosition={TooltipPositionEnum.centerLeft}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <Input\n                            name={FieldsEnum.number}\n                            value={formik.values[FieldsEnum.number]}\n                            placeholder={t('common:shipper-contract-details.editing-form.fields.number.placeholder')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasChanges={props.hasChanges}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikField>\n            </FieldGroup>\n            <FieldGroup>\n                <FormikField\n                    className={cx('field', 'field--activate-date')}\n                    name={FieldsEnum.activateDate}\n                    error={formik.errors[FieldsEnum.activateDate]}\n                    meta={formik.getFieldMeta(FieldsEnum.activateDate)}\n                    label={t('common:shipper-contract-details.editing-form.fields.activate-date.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <DatePicker\n                            value={formik.values[FieldsEnum.activateDate]}\n                            placeholder={t(\n                                'common:shipper-contract-details.editing-form.fields.activate-date.placeholder',\n                            )}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            minDate={datePicketRangePresets.documentValidTill.minDate}\n                            maxDate={maxActivateDate}\n                            hasError={props.hasError}\n                            hasChanges={props.hasChanges}\n                            hasWarning={props.hasWarning}\n                            overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                            hasYearMonthForm\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    className={cx('field', 'field--valid-till')}\n                    name={FieldsEnum.validTillDate}\n                    error={formik.errors[FieldsEnum.validTillDate]}\n                    meta={formik.getFieldMeta(FieldsEnum.validTillDate)}\n                    label={t('common:shipper-contract-details.editing-form.fields.valid-till-date.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <DatePicker\n                            value={formik.values[FieldsEnum.validTillDate]}\n                            placeholder={t(\n                                'common:shipper-contract-details.editing-form.fields.valid-till-date.placeholder',\n                            )}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            minDate={minValidTillDate}\n                            maxDate={datePicketRangePresets.documentValidTill.maxDate}\n                            hasError={props.hasError}\n                            hasChanges={props.hasChanges}\n                            hasWarning={props.hasWarning}\n                            overlayPosition={DatePickerOverlayPositionEnum.bottomRight}\n                            hasYearMonthForm\n                        />\n                    )}\n                </FormikField>\n                <ReadOnlyField\n                    className={cx('field', 'field--orders-left')}\n                    label={t('common:shipper-contract-details.editing-form.fields.orders-left.label')}\n                    value={\n                        isNumber(shipperContractDetails?.ordersLeft) &&\n                        isNumber(shipperContractDetails?.maxNumberOfOrders)\n                            ? `${shipperContractDetails?.ordersLeft}/${shipperContractDetails?.maxNumberOfOrders}`\n                            : null\n                    }\n                    placeholder={EMPTY_VALUE_PLACEHOLDER}\n                />\n            </FieldGroup>\n            <FormikField\n                className={cx('field', 'field--file')}\n                name={FieldsEnum.file}\n                error={formik.errors[FieldsEnum.file]}\n                meta={formik.getFieldMeta(FieldsEnum.file)}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n                withoutLabel\n            >\n                {(props) => (\n                    <FilePickerInput\n                        accept=\"image/*,application/pdf\"\n                        name={FieldsEnum.file}\n                        value={formik.values[FieldsEnum.file]}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        hasChanges={props.hasChanges}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                        onDownload={onDownloadShipperContract}\n                        hasUploadNewControl\n                        renderLeftIcon={({ isEmpty }) => (\n                            <DownloadIcon\n                                fillColor={isEmpty ? StyleGuideColorsEnum.charcoal : StyleGuideColorsEnum.brandDark}\n                                size={DEFAULT_ICON_SIZE}\n                            />\n                        )}\n                    />\n                )}\n            </FormikField>\n            <HiddenSubmitButtonForKeyboardEnter />\n        </form>\n    );\n};\n\nexport default EditShipperContractDetailsForm;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport moment from 'moment';\nimport { DocumentVersionT } from 'common/store/documents/models';\n\nconst getInitialValues = (\n    actualVersion: DocumentVersionT | null,\n    { isShowExpirationDate }: { isShowExpirationDate: boolean },\n): FormValuesT => {\n    return {\n        [FieldsEnum.expiration]:\n            isShowExpirationDate && actualVersion?.validTill ? moment(actualVersion.validTill).toDate() : null,\n    };\n};\n\nexport default getInitialValues;\n","// extracted by mini-css-extract-plugin\nexport default {\"input\":\"SortDropdown__input___o8l7h\",\"trigger\":\"SortDropdown__trigger___j0zrX\",\"trigger--withoutBorderRadius\":\"SortDropdown__trigger--withoutBorderRadius___W59nP\",\"trigger--isClickable\":\"SortDropdown__trigger--isClickable___wT7Z4\",\"trigger--isPressed\":\"SortDropdown__trigger--isPressed___Yi2f8\",\"trigger--isActive\":\"SortDropdown__trigger--isActive___Wcx9I\",\"trigger__icon\":\"SortDropdown__trigger__icon___qrIV1\",\"trigger__label\":\"SortDropdown__trigger__label___g6sr0\",\"trigger-icon\":\"SortDropdown__trigger-icon___f5Izf\",\"trigger-icon--isRevert\":\"SortDropdown__trigger-icon--isRevert___DHhlC\",\"overlay\":\"SortDropdown__overlay___hAkPk\",\"fadeIn\":\"SortDropdown__fadeIn___qbtd0\",\"option\":\"SortDropdown__option___xIgb5\",\"option--isSelected\":\"SortDropdown__option--isSelected___wkGK6\",\"option__label\":\"SortDropdown__option__label___FDqo0\",\"option__icon\":\"SortDropdown__option__icon___j4M9V\",\"trigger-tooltip\":\"SortDropdown__trigger-tooltip___jk8T7\",\"icon\":\"SortDropdown__icon___Lzsw6\",\"blinking\":\"SortDropdown__blinking___oSvzX\"};","import { CountrySettingsByCodeT, CountrySettingsT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport const COUNTRY_SETTINGS_DICT_REQUEST = 'common/country-settings-dict/COUNTRY_SETTINGS_DICT_REQUEST';\nexport const COUNTRY_SETTINGS_DICT_REQUEST_BEGIN = 'common/country-settings-dict/COUNTRY_SETTINGS_DICT_REQUEST_BEGIN';\nexport const COUNTRY_SETTINGS_DICT_REQUEST_SUCCESS =\n    'common/country-settings-dict/COUNTRY_SETTINGS_DICT_REQUEST_SUCCESS';\nexport const COUNTRY_SETTINGS_DICT_REQUEST_ERROR = 'common/country-settings-dict/COUNTRY_SETTINGS_DICT_REQUEST_ERROR';\n\nexport type FetchCountrySettingsDictActionT = {\n    type: typeof COUNTRY_SETTINGS_DICT_REQUEST;\n};\n\nexport type FetchCountrySettingsDictBeginActionT = {\n    type: typeof COUNTRY_SETTINGS_DICT_REQUEST_BEGIN;\n};\n\nexport type FetchCountrySettingsDictSuccessActionT = {\n    type: typeof COUNTRY_SETTINGS_DICT_REQUEST_SUCCESS;\n    list: Array<CountrySettingsT>;\n};\n\nexport type FetchCountrySettingsDictErrorActionT = {\n    type: typeof COUNTRY_SETTINGS_DICT_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type CountrySettingsDictActionT =\n    | FetchCountrySettingsDictActionT\n    | FetchCountrySettingsDictBeginActionT\n    | FetchCountrySettingsDictSuccessActionT\n    | FetchCountrySettingsDictErrorActionT;\n\nexport type CountrySettingsDictStateT = {\n    byCountryCode: CountrySettingsByCodeT;\n    request: RequestStatusT;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"table\":\"TruckActionHistory__table___K7pnb\",\"fadeIn\":\"TruckActionHistory__fadeIn___eNNFV\",\"blinking\":\"TruckActionHistory__blinking___UqAG3\"};","import * as React from 'react';\nimport PillLabel, { PillLabelPropsT, PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { ApiEmissionClassT, EmissionClassEnum } from 'common/constants';\nimport EmissionClassLabel from 'common/components/EmissionClassLabel/EmissionClassLabel';\n\ntype PropsT = Omit<PillLabelPropsT, 'theme'> & {\n    emissionClass: ApiEmissionClassT | null | undefined;\n};\n\nexport const PILL_THEME_BY_DRIVER_STATUS: Record<ApiEmissionClassT, PillLabelThemeEnum> = {\n    [EmissionClassEnum.euro5]: PillLabelThemeEnum.slate,\n    [EmissionClassEnum.euro6]: PillLabelThemeEnum.brandDark,\n};\n\nconst EmissionClassPill: React.FC<PropsT> = React.memo((props) => {\n    const { emissionClass, ...restProps } = props;\n\n    if (!emissionClass) {\n        return null;\n    }\n\n    return (\n        <PillLabel isSymmetrical isNoWrap {...restProps} theme={PILL_THEME_BY_DRIVER_STATUS[emissionClass]}>\n            <EmissionClassLabel emissionClass={emissionClass} />\n        </PillLabel>\n    );\n});\n\nexport default EmissionClassPill;\n","import { TFunction } from 'i18next';\n\nimport * as formCommonValidators from './form-common-validators';\nimport moment from 'moment';\n\nexport const checkNotZero = <KeyT extends string>(\n    t: TFunction,\n    fields: readonly KeyT[],\n    values: Partial<Record<KeyT, string | null | undefined>>,\n): ReturnType<typeof formCommonValidators.checkNotZero> => {\n    return formCommonValidators.checkNotZero(fields, values, () => {\n        return t('common:form-errors.required');\n    });\n};\n\nexport const checkNotEmpty = <KeyT extends string>(\n    t: TFunction,\n    fields: readonly KeyT[],\n    values: Partial<Record<KeyT, object | number | string | null | undefined>>,\n    label?: string,\n): ReturnType<typeof formCommonValidators.checkNotEmpty> => {\n    return formCommonValidators.checkNotEmpty(fields, values, () => {\n        return label || t('common:form-errors.required');\n    });\n};\n\nexport const checkFullRange = <KeyT extends string>(\n    t: TFunction,\n    fields: readonly KeyT[],\n    values: Partial<Record<KeyT, DateRangeT | null | undefined>>,\n): ReturnType<typeof formCommonValidators.checkFullRange> => {\n    return formCommonValidators.checkFullRange(fields, values, () => {\n        return t('common:form-errors.not-full-range');\n    });\n};\n\nexport const checkDateIsAfterDay = <KeyT extends string>(\n    t: TFunction,\n    fields: readonly KeyT[],\n    values: Partial<Record<KeyT, Date | null | undefined>>,\n    limit: string | number | Date | null | undefined,\n): ReturnType<typeof formCommonValidators.checkFullRange> => {\n    return formCommonValidators.checkDateIsAfterDay(fields, values, limit, () => {\n        return t('common:form-errors.date-is-after', {\n            date: moment(limit).format('DD MMM YYYY'),\n        });\n    });\n};\n\nexport const checkDateIsBeforeDay = <KeyT extends string>(\n    t: TFunction,\n    fields: readonly KeyT[],\n    values: Partial<Record<KeyT, Date | null | undefined>>,\n    limit: string | number | Date | null | undefined,\n): ReturnType<typeof formCommonValidators.checkFullRange> => {\n    return formCommonValidators.checkDateIsBeforeDay(fields, values, limit, () => {\n        return t('common:form-errors.date-is-before', {\n            date: moment(limit).format('DD MMM YYYY'),\n        });\n    });\n};\n\nexport const checkRangeNotIncludeDisabledDates = <KeyT extends string>(\n    t: TFunction,\n    fields: readonly KeyT[],\n    values: Partial<Record<KeyT, DateRangeT | null | undefined>>,\n    disabledDates: string[],\n): ReturnType<typeof formCommonValidators.checkRangeNotIncludeDisabledDates> => {\n    return formCommonValidators.checkRangeNotIncludeDisabledDates(fields, values, disabledDates, () => {\n        return t('common:form-errors.range-has-disabled-date');\n    });\n};\n\nexport const checkNotEmptyString = <KeyT extends string>(\n    t: TFunction,\n    fields: readonly KeyT[],\n    values: Partial<Record<KeyT, string | null | undefined>>,\n): ReturnType<typeof formCommonValidators.checkNotEmptyString> => {\n    return formCommonValidators.checkNotEmptyString(fields, values, () => {\n        return t('common:form-errors.required');\n    });\n};\n\nexport const checkMinLength = <KeyT extends string>(\n    t: TFunction,\n    fields: readonly KeyT[],\n    values: Record<KeyT, string | null | undefined>,\n    minLength: number,\n): ReturnType<typeof formCommonValidators.checkMinLength> => {\n    return formCommonValidators.checkMinLength(fields, values, minLength, () => {\n        return t('common:form-errors.too-short');\n    });\n};\n\nexport const checkMaxLength = <KeyT extends string>(\n    t: TFunction,\n    fields: readonly KeyT[],\n    values: Record<KeyT, string | null | undefined>,\n    maxLength: number,\n): ReturnType<typeof formCommonValidators.checkMaxLength> => {\n    return formCommonValidators.checkMaxLength(fields, values, maxLength, () => {\n        return t('common:form-errors.too-long');\n    });\n};\n\nexport const checkMinValue = <KeyT extends string>(\n    t: TFunction,\n    fields: readonly KeyT[],\n    values: Record<KeyT, string | null | undefined>,\n    minValue: number,\n): ReturnType<typeof formCommonValidators.checkMinValue> => {\n    return formCommonValidators.checkMinValue(fields, values, minValue, ({ value }) => {\n        return t('common:form-errors.too-small-number', {\n            value,\n        });\n    });\n};\n\nexport const checkIsPositiveNumberValue = <KeyT extends string>(\n    t: TFunction,\n    fields: readonly KeyT[],\n    values: Record<KeyT, string | null | undefined>,\n): ReturnType<typeof formCommonValidators.checkStrictMinValue> => {\n    return formCommonValidators.checkStrictMinValue(fields, values, 0, ({ value }) => {\n        return t('common:form-errors.not-positive-number', {\n            value,\n        });\n    });\n};\n\nexport const checkIsPositiveNumberOrZeroValue = <KeyT extends string>(\n    t: TFunction,\n    fields: readonly KeyT[],\n    values: Record<KeyT, string | null | undefined>,\n): ReturnType<typeof formCommonValidators.checkStrictMinValue> => {\n    return formCommonValidators.checkMinValue(fields, values, 0, ({ value }) => {\n        return t('common:form-errors.not-positive-number-or-zero', {\n            value,\n        });\n    });\n};\n\nexport const checkMaxValue = <KeyT extends string>(\n    t: TFunction,\n    fields: readonly KeyT[],\n    values: Record<KeyT, string | null | undefined>,\n    maxValue: number,\n): ReturnType<typeof formCommonValidators.checkMaxValue> => {\n    return formCommonValidators.checkMaxValue(fields, values, maxValue, ({ value }) => {\n        return t('common:form-errors.too-large-number', {\n            value,\n        });\n    });\n};\n\nexport const checkStrictMaxValue = <KeyT extends string>(\n    t: TFunction,\n    fields: readonly KeyT[],\n    values: Record<KeyT, string | null | undefined>,\n    maxValue: number,\n): ReturnType<typeof formCommonValidators.checkStrictMaxValue> => {\n    return formCommonValidators.checkStrictMaxValue(fields, values, maxValue, ({ value }) => {\n        return t('common:form-errors.too-large-number', {\n            value,\n        });\n    });\n};\n\nexport const checkRoundValue = <KeyT extends string>(\n    t: TFunction,\n    fields: readonly KeyT[],\n    values: Record<KeyT, string | null | undefined>,\n): ReturnType<typeof formCommonValidators.checkRoundValue> => {\n    return formCommonValidators.checkRoundValue(fields, values, () => {\n        return t('common:form-errors.not-rounded-number');\n    });\n};\n\nexport const checkEmail = <KeyT extends string>(\n    t: TFunction,\n    fields: readonly KeyT[],\n    values: Partial<Record<KeyT, object | number | string | null | undefined>>,\n): ReturnType<typeof formCommonValidators.checkEmail> => {\n    return formCommonValidators.checkEmail(fields, values, () => {\n        return t('common:form-errors.invalid-email');\n    });\n};\n\nexport const checkDate = <KeyT extends string>(\n    t: TFunction,\n    fields: readonly KeyT[],\n    values: Record<KeyT, Date | null | undefined>,\n): ReturnType<typeof formCommonValidators.checkDate> => {\n    return formCommonValidators.checkDate(fields, values, () => {\n        return t('common:form-errors.invalid-date');\n    });\n};\n\nexport const checkBirthday = <KeyT extends string>(\n    t: TFunction,\n    fields: readonly KeyT[],\n    values: Record<KeyT, Date | null | undefined>,\n): ReturnType<typeof formCommonValidators.checkBirthday> => {\n    return formCommonValidators.checkBirthday(fields, values, () => {\n        return t('common:form-errors.invalid-birthday');\n    });\n};\n\nexport const checkPhoneNumber = <KeyT extends string>(\n    t: TFunction,\n    fields: readonly KeyT[],\n    values: Record<KeyT, string | null | undefined>,\n): ReturnType<typeof formCommonValidators.checkPhoneNumber> => {\n    return formCommonValidators.checkPhoneNumber(fields, values, () => {\n        return t('common:form-errors.invalid-phone');\n    });\n};\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { QueryFiltersT } from 'common/layouts/TrailersPageLayout/query-models';\n\nconst getInitialValues = (\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    queryFilters: QueryFiltersT,\n): FormValuesT => {\n    return {\n        [FieldsEnum.dictTrailerTypeId]: [],\n        [FieldsEnum.plateNumber]: '',\n        [FieldsEnum.status]: [],\n        [FieldsEnum.country]: [],\n        [FieldsEnum.createDates]: null,\n        [FieldsEnum.createdByUserId]: [],\n        [FieldsEnum.createdByUserName]: [],\n        [FieldsEnum.lastModifyDates]: null,\n        [FieldsEnum.lastModifyByUserId]: [],\n        [FieldsEnum.lastModifyByUserName]: [],\n        [FieldsEnum.lastTelematicUpdateDates]: null,\n        [FieldsEnum.contractId]: [],\n        [FieldsEnum.contractName]: [],\n    };\n};\n\nexport default getInitialValues;\n","import * as React from 'react';\nimport { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport SkeletonFormatter from 'design-system/components/InfoTable/formatters/SkeletonFormatter/SkeletonFormatter';\nimport { fetchSpotRequestDetails } from 'broker-admin/store/spot-request-details/actions';\nimport { selectSpotRequestDetails } from 'broker-admin/store/spot-request-details/selectors';\nimport { logWarning } from 'common/utils/logger';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\n\ntype PropsT = {\n    spotRequestId: SpotRequestIdT | null;\n    onOpenSpotRequestDetails: (spotRequestId: SpotRequestIdT | null) => void;\n};\n\nconst AsyncSpotRequestDetailsLinkFormatter: React.FC<PropsT> = React.memo((props) => {\n    const { spotRequestId, onOpenSpotRequestDetails } = props;\n\n    const dispatch = useDispatch();\n\n    const { fetchDetailsRequestStatus, details } = useSelector(selectSpotRequestDetails(spotRequestId));\n\n    useEffect(() => {\n        if (!spotRequestId) {\n            return;\n        }\n\n        dispatch(fetchSpotRequestDetails(spotRequestId));\n    }, [spotRequestId, dispatch]);\n\n    if (fetchDetailsRequestStatus.loading || !details) {\n        return <SkeletonFormatter />;\n    }\n\n    return (\n        <Link\n            onClick={() => {\n                const spotRequestId = details?.id;\n                if (!spotRequestId) {\n                    logWarning('Empty spotRequestId');\n                    return;\n                }\n\n                onOpenSpotRequestDetails(spotRequestId);\n            }}\n            theme={LinkThemeEnum.boldBrandDark}\n        >\n            {details?.number}\n        </Link>\n    );\n});\n\nexport default AsyncSpotRequestDetailsLinkFormatter;\n","export type AssignmentVehiclesSuggestItemT = Api2.Definitions.AssetWithAvailableHooks;\n\nexport type LinksT = {\n    byTruckId: Record<TruckIdT, TrailerIdT>;\n    byTrailerId: Record<TrailerIdT, TruckIdT>;\n};\n\nexport type BrokerAssetsSearchRequestInvalidReasonT = Api2.Definitions.BrokerAssetsSearchRequestInvalidReason;\n\nexport type AssetAssignmentInfoT = Api2.Definitions.Asset &\n    Omit<Api2.Definitions.AssetWithAvailableHooks, 'truck' | 'trailer'>;\n\nexport const getAssignmentVehicleLinks = (vehicles: AssignmentVehiclesSuggestItemT[]): LinksT => {\n    return vehicles.reduce<LinksT>(\n        (acc, vehicle) => {\n            const truckId = vehicle?.truck?.id;\n            const trailerId = vehicle?.trailer?.id;\n            if (!truckId || !trailerId) {\n                return acc;\n            }\n\n            return {\n                byTruckId: {\n                    ...acc.byTruckId,\n                    [truckId]: trailerId,\n                },\n                byTrailerId: {\n                    ...acc.byTrailerId,\n                    [trailerId]: truckId,\n                },\n            };\n        },\n        {\n            byTruckId: {},\n            byTrailerId: {},\n        },\n    );\n};\n\nexport const getTrailerById = (\n    vehicles: AssignmentVehiclesSuggestItemT[],\n    prevTrailerById: Record<TrailerIdT, AssetAssignmentInfoT>,\n): Record<TrailerIdT, AssetAssignmentInfoT> => {\n    return vehicles.reduce<Record<TrailerIdT, AssetAssignmentInfoT>>((acc, vehicle) => {\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        const { trailer, truck, ...meta } = vehicle;\n\n        const trailerId = trailer?.id;\n        if (!trailerId) {\n            return acc;\n        }\n\n        return {\n            ...acc,\n            [trailerId]: {\n                assetsToHook: prevTrailerById[trailerId]?.assetsToHook,\n                ...meta,\n                ...trailer,\n                id: trailerId,\n            },\n        };\n    }, {});\n};\n\nexport const getTruckById = (\n    vehicles: AssignmentVehiclesSuggestItemT[],\n    prevTruckById: Record<TruckIdT, AssetAssignmentInfoT>,\n): Record<TruckIdT, AssetAssignmentInfoT> => {\n    return vehicles.reduce<Record<TruckIdT, AssetAssignmentInfoT>>((acc, vehicle) => {\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        const { trailer, truck, ...meta } = vehicle;\n\n        const truckId = truck?.id;\n        if (!truckId) {\n            return acc;\n        }\n\n        return {\n            ...acc,\n            [truckId]: {\n                assetsToHook: prevTruckById[truckId]?.assetsToHook,\n                ...meta,\n                ...truck,\n                id: truckId,\n            },\n        };\n    }, {});\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"field--from-country-code\":\"StatisticFiltersSidebarContent__field--from-country-code___G3sSR\",\"field--to-country-code\":\"StatisticFiltersSidebarContent__field--to-country-code___6q3ix\",\"field--from-zip-code\":\"StatisticFiltersSidebarContent__field--from-zip-code___c4ejb\",\"field--to-zip-code\":\"StatisticFiltersSidebarContent__field--to-zip-code___mBNNK\",\"field--shipper\":\"StatisticFiltersSidebarContent__field--shipper___f94Vv\",\"field--carrier\":\"StatisticFiltersSidebarContent__field--carrier___RVyyD\",\"form\":\"StatisticFiltersSidebarContent__form___DfO_e\",\"selected-filters\":\"StatisticFiltersSidebarContent__selected-filters___xPGBk\",\"fadeIn\":\"StatisticFiltersSidebarContent__fadeIn___dbTRI\",\"blinking\":\"StatisticFiltersSidebarContent__blinking___ZAeH2\"};","import { StateT } from '../models';\n\nexport const selectOrderEditCreateContextRequest = (state: StateT) => {\n    return state.orderEditContext.createContextRequestStatus;\n};\n\nexport const selectOrderEditDeleteContextRequest = (state: StateT) => {\n    return state.orderEditContext.deleteContextRequestStatus;\n};\n\nexport const selectOrderEditApplyContextRequest = (state: StateT) => {\n    return state.orderEditContext.applyContextRequestStatus;\n};\n\nexport const selectOrderEditContext = (state: StateT) => {\n    return state.orderEditContext.context;\n};\n\nexport const selectOrderEditBrokerOrderDetails = (state: StateT) => {\n    return state.orderEditContext.brokerOrderDetails;\n};\n\nexport const selectIsApplyingContextChanges = (state: StateT) => {\n    return state.orderEditContext.isApplyingContextChanges;\n};\n\nexport const selectOrderEditFakeSessionId = (state: StateT) => {\n    return state.orderEditContext.fakeSessionId;\n};\n\nexport const selectChangeContextError = (state: StateT) => {\n    return state.orderEditContext.changeContextError;\n};\n","import React, { useMemo } from 'react';\n\nexport type MapSettingsT = {\n    zoom: number | null;\n    center: GeoPointT | null;\n    boundingBox: BoundingBoxT | null;\n};\n\nexport type SyncMapSettingsCallbackT = (mapSettings: MapSettingsT) => void;\n\nexport type SyncShipmentDetailsFormMapStateContextValueT = {\n    isMapInitialized: boolean;\n    setIsMapInitialized: (isMapInitialized: boolean) => void;\n    editingRoutePointIndex: number | null;\n    setEditingRoutePointIndex: (editingRoutePointIndex: number | null) => void;\n    syncMapSettings: SyncMapSettingsCallbackT | null;\n    setSyncMapSettings: (syncMapSettings: SyncMapSettingsCallbackT | null) => void;\n    editingRoutePointErrorsIndexes: Array<number>;\n    setHasEditingRoutePointErrorIndexes: (editingRoutePointErrorsIndexes: Array<number>) => void;\n    hasEditingRoutePointError: boolean;\n    initialBoundingBox: BoundingBoxT | null;\n    setInitialBoundingBox: (initialBoundingBox: BoundingBoxT | null) => void;\n};\n\nexport const useSyncShipmentDetailsFormMapState = (): SyncShipmentDetailsFormMapStateContextValueT => {\n    const [isMapInitialized, setIsMapInitialized] = React.useState<boolean>(false);\n    const [initialBoundingBox, setInitialBoundingBox] = React.useState<BoundingBoxT | null>(null);\n    const [editingRoutePointErrorsIndexes, setHasEditingRoutePointErrorIndexes] = React.useState<Array<number>>([]);\n    const [editingRoutePointIndex, setEditingRoutePointIndex] = React.useState<number | null>(null);\n    const syncMapSettingsCallbackRef = React.useRef<SyncMapSettingsCallbackT | null>(null);\n\n    return useMemo(() => {\n        return {\n            isMapInitialized,\n            setIsMapInitialized,\n            initialBoundingBox,\n            setInitialBoundingBox,\n            editingRoutePointIndex,\n            setEditingRoutePointIndex,\n            editingRoutePointErrorsIndexes,\n            setHasEditingRoutePointErrorIndexes,\n            syncMapSettings: syncMapSettingsCallbackRef.current,\n            setSyncMapSettings: (callback) => {\n                syncMapSettingsCallbackRef.current = callback;\n            },\n            hasEditingRoutePointError:\n                editingRoutePointIndex !== null && editingRoutePointErrorsIndexes.includes(editingRoutePointIndex),\n        };\n    }, [\n        isMapInitialized,\n        setIsMapInitialized,\n        initialBoundingBox,\n        setInitialBoundingBox,\n        editingRoutePointIndex,\n        setEditingRoutePointIndex,\n        editingRoutePointErrorsIndexes,\n        setHasEditingRoutePointErrorIndexes,\n    ]);\n};\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    fillColor: StyleGuideColorsEnum;\n    fillOpacity?: number;\n    strokeColor: StyleGuideColorsEnum;\n    strokeOpacity?: number;\n};\n\nconst CaseIcon: React.FC<PropsT> = (props) => {\n    const { size, fillColor, fillOpacity, strokeColor, strokeOpacity, ...rest } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\" {...rest}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={strokeColor}\n                    fillOpacity={strokeOpacity || 1}\n                    d=\"M16 6.25h-3v-1.5l-1.5-1.5h-3L7 4.75v1.5H4c-.825 0-1.5.675-1.5 1.5v3.75c0 .563.3 1.035.75 1.297v2.453c0 .832.667 1.5 1.5 1.5h10.5c.832 0 1.5-.668 1.5-1.5v-2.46a1.51 1.51 0 00.75-1.29V7.75c0-.825-.675-1.5-1.5-1.5zM7.75 13v.75h4.5V13h3v2.25H4.75V13h3zm3.75-8.25v1.5h-3v-1.5h3zm-.75 6v1.5h-1.5v-1.5h1.5zm5.25-3v3.75h-3.75V9.25h-4.5v2.25H4V7.75h12z\"\n                />\n                <path\n                    fillOpacity={fillOpacity || 1}\n                    fill={fillColor}\n                    d=\"M12.25 13.75h-4.5V13h-3v2.25h10.5V13h-3v.75zM4 11.5h3.75V9.25h4.5v2.25H16V7.75H4v3.75z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nCaseIcon.displayName = 'CaseIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport const CaseIconProps = {\n    getControlProps: ({\n        isDisabled,\n        isFocused,\n        hasError,\n        hasWarning,\n        hasSuccess,\n        hasValue,\n    }: {\n        isDisabled?: boolean;\n        isFocused?: boolean;\n        hasError?: boolean;\n        hasWarning?: boolean;\n        hasSuccess?: boolean;\n        hasValue?: boolean;\n    }): PropsT => {\n        if (hasError) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.light,\n                strokeColor: StyleGuideColorsEnum.tomatoRed,\n            };\n        }\n\n        if (hasWarning) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.light,\n                strokeColor: StyleGuideColorsEnum.orange,\n            };\n        }\n\n        if (hasSuccess) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.brandAccent,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n\n        if (isDisabled) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.light,\n                strokeColor: StyleGuideColorsEnum.slate,\n            };\n        }\n\n        return {\n            size: DEFAULT_ICON_SIZE,\n            fillColor: hasValue || isFocused ? StyleGuideColorsEnum.brandAccent5 : StyleGuideColorsEnum.light,\n            strokeColor: hasValue || isFocused ? StyleGuideColorsEnum.brandDark : StyleGuideColorsEnum.gray,\n        };\n    },\n};\n\nexport { storyProps };\nexport default CaseIcon;\n","import * as React from 'react';\n\ntype PropsT = {};\n\nconst HelpIcon: React.FC<PropsT> = (props) => {\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" {...props}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M0 0h20v20H0z\" />\n                <path\n                    fill=\"#6B6C6F\"\n                    d=\"M10 3c3.783 0 6.857 3.138 6.857 7 .629 0 1.143.525 1.143 1.167V13.5c0 .642-.514 1.167-1.143 1.167v1.166c0 .642-.514 1.167-1.143 1.167H8.857v-1.167h6.857V10c0-3.22-2.56-5.833-5.714-5.833-3.154 0-5.714 2.613-5.714 5.833v4.667H3.143C2.514 14.667 2 14.142 2 13.5v-2.333C2 10.525 2.514 10 3.143 10c0-3.862 3.074-7 6.857-7zm-2.857 7c.473 0 .857.392.857.875a.866.866 0 01-.857.875.866.866 0 01-.857-.875c0-.483.383-.875.857-.875zm5.714 0c.474 0 .857.392.857.875a.866.866 0 01-.857.875.866.866 0 01-.857-.875c0-.483.384-.875.857-.875zM10 5.333c2.114 0 3.874 1.47 4.389 3.465-2.823.234-4.458-1.691-5.063-3.033-.389 2.03-1.92 3.628-3.886 4.095.126-3.932 3.783-4.527 4.56-4.527z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nHelpIcon.displayName = 'HelpIcon';\n\nconst storyProps: PropsT = {};\n\nexport { storyProps };\nexport default HelpIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"widget\":\"PartnerExternalPlatformDetailsForm__widget___tMN0c\",\"widget__inner\":\"PartnerExternalPlatformDetailsForm__widget__inner___P6Gvz\",\"widget-group\":\"PartnerExternalPlatformDetailsForm__widget-group___RbW8y\",\"widget-group__widget\":\"PartnerExternalPlatformDetailsForm__widget-group__widget___4xZJz\",\"stats-widget-group\":\"PartnerExternalPlatformDetailsForm__stats-widget-group___F4veF\",\"stats-widget-group__widget\":\"PartnerExternalPlatformDetailsForm__stats-widget-group__widget___XdD6Y\",\"wrap\":\"PartnerExternalPlatformDetailsForm__wrap___M7BVd\",\"field--name\":\"PartnerExternalPlatformDetailsForm__field--name___ZcmtM\",\"field--teams\":\"PartnerExternalPlatformDetailsForm__field--teams___Go3ol\",\"field--main-contact\":\"PartnerExternalPlatformDetailsForm__field--main-contact___gW0Ut\",\"field--placeholder\":\"PartnerExternalPlatformDetailsForm__field--placeholder___B1teL\",\"field-group\":\"PartnerExternalPlatformDetailsForm__field-group___Xaexi\",\"fadeIn\":\"PartnerExternalPlatformDetailsForm__fadeIn___NvSB0\",\"blinking\":\"PartnerExternalPlatformDetailsForm__blinking___YS3wB\"};","import { BrokerOrderDetailsT } from '../models';\n\nexport const findTourById = (\n    brokerOrderDetails: BrokerOrderDetailsT | null | undefined,\n    tourId: TourIdT | null | undefined,\n): BrokerOrderDetailsT['tours'][number] | null => {\n    return brokerOrderDetails?.tours?.find((tour) => tour?.id === tourId) || null;\n};\n","import * as React from 'react';\nimport { ApiCarrierContractStatusT, CarrierContractStatusEnum } from 'common/utils/api/models';\nimport { PropsT as ColoredStatusLabelPropsT } from 'common/components/ColoredStatusLabel/ColoredStatusLabel';\nimport { useSelector } from 'react-redux';\nimport { selectProfileType } from 'common/store/auth/selectors';\nimport { AuthProfileTypeEnum } from 'common/store/auth/constants';\nimport CarrierContractStatus from 'common/components/status/CarrierContractStatus/CarrierContractStatus';\nimport PillLabel, { colorCodingPillLabelTheme, PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\n\ntype PropsT = Omit<ColoredStatusLabelPropsT, 'label' | 'color'> & {\n    status: ApiCarrierContractStatusT | null | undefined;\n    isSymmetrical?: boolean;\n};\n\ntype ContractStatusColorMapT = Record<CarrierContractStatusEnum, PillLabelThemeEnum>;\n\nconst statusColorMap: Record<AuthProfileTypeEnum, ContractStatusColorMapT> = {\n    [AuthProfileTypeEnum.shipper]: {\n        [CarrierContractStatusEnum.waitingForApprove]: colorCodingPillLabelTheme.normal,\n        [CarrierContractStatusEnum.approved]: colorCodingPillLabelTheme.positive,\n        [CarrierContractStatusEnum.rejected]: colorCodingPillLabelTheme.normal,\n        [CarrierContractStatusEnum.revoked]: colorCodingPillLabelTheme.normal,\n        [CarrierContractStatusEnum.expired]: colorCodingPillLabelTheme.normal,\n    },\n    [AuthProfileTypeEnum.carrier]: {\n        [CarrierContractStatusEnum.waitingForApprove]: colorCodingPillLabelTheme.normal,\n        [CarrierContractStatusEnum.approved]: colorCodingPillLabelTheme.positive,\n        [CarrierContractStatusEnum.rejected]: colorCodingPillLabelTheme.normal,\n        [CarrierContractStatusEnum.revoked]: colorCodingPillLabelTheme.normal,\n        [CarrierContractStatusEnum.expired]: colorCodingPillLabelTheme.normal,\n    },\n    [AuthProfileTypeEnum.broker]: {\n        [CarrierContractStatusEnum.waitingForApprove]: colorCodingPillLabelTheme.attention,\n        [CarrierContractStatusEnum.approved]: colorCodingPillLabelTheme.positive,\n        [CarrierContractStatusEnum.rejected]: colorCodingPillLabelTheme.normal,\n        [CarrierContractStatusEnum.revoked]: colorCodingPillLabelTheme.normal,\n        [CarrierContractStatusEnum.expired]: colorCodingPillLabelTheme.normal,\n    },\n};\n\nconst CarrierContractStatusPill: React.FC<PropsT> = React.memo((props) => {\n    const { status, ...restProps } = props;\n\n    const profileTypeEnum = useSelector(selectProfileType);\n\n    let theme: PillLabelThemeEnum;\n\n    // not upload\n    if (!status) {\n        theme = PillLabelThemeEnum.slate;\n    } else {\n        theme = statusColorMap[profileTypeEnum]?.[status];\n    }\n\n    return (\n        <PillLabel isNoWrap {...restProps} theme={theme}>\n            <CarrierContractStatus status={status} />\n        </PillLabel>\n    );\n});\n\nexport default CarrierContractStatusPill;\n","// extracted by mini-css-extract-plugin\nexport default {\"paranja\":\"SideBarParanja__paranja___VoWzf\",\"fadeIn\":\"SideBarParanja__fadeIn___oV_Ls\",\"blinking\":\"SideBarParanja__blinking___RRcO2\"};","import { getDistanceMask, getMoneyMask } from 'common/utils/input-masks';\nimport { UnitTypeEnum } from 'common/constants';\n\nexport const getMaskByType = (unitType: UnitTypeEnum | null) => {\n    switch (unitType) {\n        case UnitTypeEnum.euroAbbreviation:\n            return getMoneyMask();\n        case UnitTypeEnum.kilometersAbbreviation:\n            return getDistanceMask();\n        default:\n            return null;\n    }\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport { AddressTypeEnum } from 'common/utils/api/models';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { VerifyPartnerAddressConfirmationDataT } from './models';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { RequestStatusT } from 'common/utils/request-status';\n\ntype PropsT = {\n    data: VerifyPartnerAddressConfirmationDataT | null;\n    onConfirm: (data: VerifyPartnerAddressConfirmationDataT | null) => void;\n    onCancel: () => void;\n    onClose: () => void;\n    requestStatus: RequestStatusT;\n};\n\nconst TEST_SELECTOR = 'verify-partner-address-confirmation';\n\nconst I18N_LABELS_MAP: Record<AddressTypeEnum, { title: string; message: string }> = {\n    [AddressTypeEnum.postal]: {\n        title: 'partner.details-tab.dialogs.verify-postal-address.title',\n        message: 'partner.details-tab.dialogs.verify-postal-address.description',\n    },\n    [AddressTypeEnum.legal]: {\n        title: 'partner.details-tab.dialogs.verify-legal-address.title',\n        message: 'partner.details-tab.dialogs.verify-legal-address.description',\n    },\n    [AddressTypeEnum.billing]: {\n        title: 'partner.details-tab.dialogs.verify-billing-address.title',\n        message: 'partner.details-tab.dialogs.verify-billing-address.description',\n    },\n};\n\nconst VerifyPartnerAdressConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, onConfirm, onCancel, onClose, requestStatus } = props;\n\n    const { t } = useTranslation();\n\n    const i18nLabelsMap = I18N_LABELS_MAP[data?.addressType as AddressTypeEnum];\n\n    if (!data) {\n        return null;\n    }\n\n    const labels = {\n        title: t(i18nLabelsMap.title),\n        message: t(i18nLabelsMap.message),\n    };\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            onClick: onCancel,\n                            isDisabled: requestStatus.loading,\n                        },\n                        {\n                            children: t('common:error-modal.actions.verify'),\n                            theme: ButtonThemeEnum.danger,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            isDisabled: requestStatus.loading,\n                            isLoading: requestStatus.loading,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                    {...labels}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default VerifyPartnerAdressConfirmation;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"FooterSideBarLayout__wrap___K2THf\",\"wrap--hasTopBorder\":\"FooterSideBarLayout__wrap--hasTopBorder___NiF2h\",\"inner--isAbsolute\":\"FooterSideBarLayout__inner--isAbsolute___AjfTj\",\"content--hasPaddings\":\"FooterSideBarLayout__content--hasPaddings___NEBir\",\"content--hasBackground\":\"FooterSideBarLayout__content--hasBackground___Z4Ya3\",\"content--hasShadow\":\"FooterSideBarLayout__content--hasShadow___HUnWI\",\"fadeIn\":\"FooterSideBarLayout__fadeIn___BQK7j\",\"blinking\":\"FooterSideBarLayout__blinking___HnpWG\"};","import React, { RefObject } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './Trigger.scss';\nimport { RangeSelectorZoneThemeEnum } from '../constants';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    isLeft?: boolean;\n    isRight?: boolean;\n    isDisabled?: boolean;\n    isInteractive?: boolean;\n    theme: RangeSelectorZoneThemeEnum;\n    divRef: RefObject<HTMLDivElement>;\n};\n\nconst COLOR_SCHEMAS = {\n    [RangeSelectorZoneThemeEnum.orange]: {\n        strokeColor: StyleGuideColorsEnum.orange,\n    },\n    [RangeSelectorZoneThemeEnum.green]: {\n        strokeColor: StyleGuideColorsEnum.brandAccent,\n    },\n    [RangeSelectorZoneThemeEnum.darkGreen]: {\n        strokeColor: StyleGuideColorsEnum.brandDark,\n    },\n    [RangeSelectorZoneThemeEnum.light]: {\n        strokeColor: StyleGuideColorsEnum.light,\n    },\n    [RangeSelectorZoneThemeEnum.charcoal]: {\n        strokeColor: StyleGuideColorsEnum.charcoal,\n    },\n};\n\nconst HOVERED_COLOR_SCHEMAS = {\n    [RangeSelectorZoneThemeEnum.orange]: {\n        strokeColor: '#ae6100',\n    },\n    [RangeSelectorZoneThemeEnum.green]: {\n        strokeColor: '#578200',\n    },\n    [RangeSelectorZoneThemeEnum.darkGreen]: {\n        strokeColor: '#578200',\n    },\n    [RangeSelectorZoneThemeEnum.light]: {\n        strokeColor: StyleGuideColorsEnum.light,\n    },\n    [RangeSelectorZoneThemeEnum.charcoal]: {\n        strokeColor: StyleGuideColorsEnum.light,\n    },\n};\n\nconst Trigger: React.FC<PropsT> = React.memo((props) => {\n    const { isLeft, isRight, isDisabled, isInteractive, theme, divRef } = props;\n\n    const [isHovered, setHovered] = React.useState(false);\n\n    const testSelector = React.useMemo(() => {\n        if (isLeft) {\n            return 'left-trigger';\n        }\n        if (isRight) {\n            return 'right-trigger';\n        }\n\n        return 'trigger';\n    }, [isLeft, isRight]);\n\n    const handleTriggerMouseLeave = (): void => {\n        if (isHovered) {\n            setHovered(false);\n        }\n    };\n\n    const handleTriggerMouseEnter = (): void => {\n        if (isDisabled) {\n            return;\n        }\n\n        if (!isHovered) {\n            setHovered(true);\n        }\n    };\n\n    const colorSchemas = isHovered ? HOVERED_COLOR_SCHEMAS[theme] : COLOR_SCHEMAS[theme];\n\n    return (\n        <div\n            className={cx('trigger', {\n                'trigger--isLeft': isLeft,\n                'trigger--isRight': isRight,\n                'trigger--isDisabled': isDisabled,\n                'trigger--isInteractive': isInteractive,\n            })}\n            ref={isInteractive ? divRef : null}\n            data-test-selector={testSelector}\n            onMouseEnter={handleTriggerMouseEnter}\n            onMouseLeave={handleTriggerMouseLeave}\n        >\n            <div\n                className={cx('line')}\n                style={{\n                    backgroundColor: colorSchemas.strokeColor,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default Trigger;\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport { selectTrailersDictById, selectTrailersDictRequest } from 'common/store/trailers-dict/selectors';\nimport { fetchTrailersDict } from 'common/store/trailers-dict/actions';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\n\ntype PropsT = {\n    isShortLabel?: boolean;\n    trailerDictId?: TrailerDictIdT | null;\n};\n\nconst TrailerDictIdFilterPill: React.FC<PropsT> = React.memo((props) => {\n    const { isShortLabel, trailerDictId } = props;\n\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchTrailersDict());\n    }, [dispatch]);\n\n    const dictTrailerById = useSelector(selectTrailersDictById);\n    const fetchRequest = useSelector(selectTrailersDictRequest);\n\n    if (!trailerDictId) {\n        return null;\n    }\n\n    if (fetchRequest.loading) {\n        return <ControlLoaderIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />;\n    }\n\n    const dictTrailer = dictTrailerById[trailerDictId as string];\n    if (!dictTrailer) {\n        return null;\n    }\n\n    return (\n        <span>\n            {isShortLabel\n                ? dictTrailer.model || ''\n                : t('common:trailer-subtype-template', {\n                      length: dictTrailer.length,\n                      model: dictTrailer.model,\n                      eur1Pallets: dictTrailer.eur1Pallets,\n                      eur2Pallets: dictTrailer.eur2Pallets,\n                  })}\n        </span>\n    );\n});\n\nexport default TrailerDictIdFilterPill;\n","import isEmpty from 'lodash/isEmpty';\nimport { isNonNil } from 'common/utils';\nimport pickBy from 'lodash/pickBy';\nimport pick from 'lodash/pick';\n\nexport const checkQueryFiltersKeys = <T extends Record<string, any>>(\n    sourceQueryFilters: T,\n    primaryQueryKeys: Array<keyof T>,\n    secondaryQueryKeys: Array<keyof T>,\n) => {\n    const clearedQueryFilters = pickBy(sourceQueryFilters, isNonNil);\n    const hasAnyFilters = !isEmpty(clearedQueryFilters);\n\n    const primaryQueryFilters = pick(clearedQueryFilters, primaryQueryKeys || []);\n    const hasPrimaryQueryFilters = !isEmpty(primaryQueryFilters);\n\n    const secondaryQueryFilters = pick(clearedQueryFilters, secondaryQueryKeys || []);\n    const hasSecondaryQueryFilters = !isEmpty(secondaryQueryFilters);\n\n    return {\n        hasAnyFilters,\n        hasPrimaryQueryFilters,\n        hasSecondaryQueryFilters,\n    };\n};\n","export enum QueryKeysEnum {\n    driversPage = 'drivers-page',\n    driversSort = 'drivers-sort',\n    driversFilters = 'drivers-filters',\n    driversTab = 'drivers-tab',\n}\n\nexport enum QueryFiltersKeysEnum {\n    searchText = 'searchText',\n    name = 'name',\n}\n\nexport enum DriversSortEnum {\n    name = 'name',\n    surname = 'surname',\n    createdDate = 'created-date',\n}\n\nexport type QueryFiltersT = Partial<{\n    [QueryFiltersKeysEnum.searchText]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.name]: QueryParam.StringT;\n}>;\n","import { FieldsEnum, FormValuesT } from './constants';\n\nexport type FormDataT = {\n    reason: string;\n};\n\nconst prepareData = (formValues: FormValuesT): FormDataT => {\n    return {\n        reason: formValues[FieldsEnum.reason],\n    };\n};\n\nexport { prepareData };\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    fetchAdditionalServices,\n    fetchAdditionalServicesBegin,\n    fetchAdditionalServicesError,\n    fetchAdditionalServicesSuccess,\n} from './slice';\nimport { selectAdditionalServicesDictStatus } from 'common/store/additional-services-dict/selectors';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport { normalizeAdditionalServicesResponse } from './utils';\n\nfunction* fetchAdditionalServicesSaga(): WrapGeneratorT<void> {\n    const requestStatus: ReturnType<typeof selectAdditionalServicesDictStatus> = yield select(\n        selectAdditionalServicesDictStatus,\n    );\n\n    if (requestStatus.ok) {\n        return;\n    }\n\n    yield put(fetchAdditionalServicesBegin());\n\n    const [error, data]: ReturnApiT<typeof commonTranziitApi.fetchAdditionalServices> =\n        yield commonTranziitApi.fetchAdditionalServices();\n\n    if (error) {\n        yield put(fetchAdditionalServicesError({ error }));\n        return;\n    }\n\n    const normalizedData = normalizeAdditionalServicesResponse(data);\n    yield put(fetchAdditionalServicesSuccess({ additionalServiceGroups: normalizedData }));\n}\n\nfunction* additionalServicesDictSaga(): WrapGeneratorT<void> {\n    yield takeEvery([fetchAdditionalServices.type], fetchAdditionalServicesSaga);\n}\n\nexport default additionalServicesDictSaga;\n","// extracted by mini-css-extract-plugin\nexport default {\"block\":\"ShipmentDetailsForm__block___mMUD8\",\"block__title\":\"ShipmentDetailsForm__block__title___Do_49\",\"block--isTimeWindow\":\"ShipmentDetailsForm__block--isTimeWindow___VlnSu\",\"block--isRoute\":\"ShipmentDetailsForm__block--isRoute___ctgG3\",\"block--isLane\":\"ShipmentDetailsForm__block--isLane___LDA3y\",\"block--dates\":\"ShipmentDetailsForm__block--dates___S6W3T\",\"address\":\"ShipmentDetailsForm__address___swyvH\",\"checkbox-label\":\"ShipmentDetailsForm__checkbox-label___O5v7N\",\"field--date\":\"ShipmentDetailsForm__field--date___CQdqV\",\"field--trailer-type\":\"ShipmentDetailsForm__field--trailer-type___UfLY0\",\"field--is-green-truck\":\"ShipmentDetailsForm__field--is-green-truck___EkgJ3\",\"field--trailer-mode\":\"ShipmentDetailsForm__field--trailer-mode___kGRYJ\",\"button-loader--isHide\":\"ShipmentDetailsForm__button-loader--isHide___nm886\",\"broker-time-window\":\"ShipmentDetailsForm__broker-time-window___c6K52\",\"help-panel\":\"ShipmentDetailsForm__help-panel___ng_FS\",\"help__title\":\"ShipmentDetailsForm__help__title___Aqr3T\",\"help__content\":\"ShipmentDetailsForm__help__content___ug6EC\",\"help__content--isLast\":\"ShipmentDetailsForm__help__content--isLast___qARQg\",\"local-date-time-tooltip\":\"ShipmentDetailsForm__local-date-time-tooltip___tR6KK\",\"wrap\":\"ShipmentDetailsForm__wrap___LnfMo\",\"route-points-divider\":\"ShipmentDetailsForm__route-points-divider___pBB78\",\"lane-control-placeholder\":\"ShipmentDetailsForm__lane-control-placeholder___zL2CU\",\"fadeIn\":\"ShipmentDetailsForm__fadeIn___MHVYJ\",\"blinking\":\"ShipmentDetailsForm__blinking___m2SeT\"};","import React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './DispatcherDropdown.scss';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport UserDropdownOptionLabel from 'common/components/dropdowns/options/UserDropdownOptionLabel/UserDropdownOptionLabel';\nimport ControlLoaderIcon, { ControlLoaderIconProps } from 'common/icons/ControlLoaderIcon';\nimport { fetchDispatchers } from 'broker-admin/store/dispatchers/actions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectDispatchersAllIds,\n    selectDispatchersById,\n    selectFetchDispatchersRequest,\n} from 'broker-admin/store/dispatchers/selectors';\nimport { ManagerT } from 'broker-admin/store/managers/models';\nimport isNil from 'lodash/isNil';\nimport DropdownSearchInput from 'design-system/components/dropdowns/DropdownSearchInput/DropdownSearchInput';\nimport { prepareSearchQuery } from 'common/utils/search';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype ValueT = UserIdT | null;\n\ntype PropsT = {\n    selectedValue: ValueT;\n    initialLabel: string | null;\n    placeholder: string;\n    isDisabled?: boolean;\n    onSelect: (value: ValueT, label: string) => void;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    className?: string;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    hasChanges?: boolean;\n    onBlur: () => void;\n    onFocus: () => void;\n    onReset?: () => void;\n    excludeUserIds?: Array<UserIdT>;\n};\n\ntype OptionT = ValueT;\n\nconst getLabel = (user?: ManagerT) => {\n    if (!user) {\n        return '';\n    }\n    return `${user.name} ${user.surname}`;\n};\n\nconst DispatcherDropdown: React.FC<PropsT> = React.memo((props) => {\n    const {\n        selectedValue,\n        initialLabel,\n        placeholder,\n        isDisabled,\n        onSelect,\n        overlayPosition,\n        className,\n        hasError,\n        hasWarning,\n        hasChanges,\n        onBlur,\n        onFocus,\n        onReset,\n        excludeUserIds,\n    } = props;\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchDispatchers());\n    }, [dispatch]);\n\n    const fetchRequest = useSelector(selectFetchDispatchersRequest);\n    const allIds = useSelector(selectDispatchersAllIds);\n    const byId = useSelector(selectDispatchersById);\n\n    const renderOption = (id?: ValueT, placeholder?: string): React.ReactNode => {\n        if (isNil(id)) {\n            return <UserDropdownOptionLabel label={placeholder || ''} isPlaceholder />;\n        }\n\n        const user = byId[id];\n        if (!user) {\n            if (!initialLabel) {\n                return null;\n            }\n\n            return <UserDropdownOptionLabel label={initialLabel} />;\n        }\n\n        return <UserDropdownOptionLabel label={getLabel(user)} />;\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option;\n\n    const handleSelect = (value: ValueT) => {\n        const user = byId[value as string];\n        const label = getLabel(user);\n\n        onSelect(value, label);\n    };\n\n    const [query, setQuery] = React.useState<string>('');\n\n    const filteredOptions = React.useMemo(() => {\n        const preparedQuery = prepareSearchQuery(query);\n\n        const excludeUserIdsSet = new Set<UserIdT>(excludeUserIds || []);\n\n        return allIds.filter((id: UserIdT) => {\n            if (excludeUserIdsSet.has(id)) {\n                return false;\n            }\n\n            const user = byId[id];\n\n            const label = getLabel(user);\n            const preparedLabel = prepareSearchQuery(label);\n\n            return preparedLabel.includes(preparedQuery);\n        });\n    }, [allIds, byId, query, excludeUserIds]);\n\n    return (\n        <DropdownSearchInput<OptionT, ValueT>\n            className={className}\n            selectedValue={selectedValue}\n            placeholder={placeholder}\n            options={filteredOptions}\n            isDisabled={fetchRequest.loading || isDisabled}\n            onSelect={handleSelect}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            onChangeQuery={setQuery}\n            renderRightIcon={() =>\n                fetchRequest.loading ? <ControlLoaderIcon {...ControlLoaderIconProps.getFetchDataProps()} /> : null\n            }\n            renderOption={renderOption}\n            renderTrigger={renderOption}\n            getOptionValue={getOptionValue}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            onReset={onReset}\n        />\n    );\n});\n\nexport default DispatcherDropdown;\n","import {\n    AssignActionT,\n    AssignBeginActionT,\n    AssignErrorActionT,\n    ASSIGN,\n    ASSIGNMENT_REQUEST_BEGIN,\n    ASSIGNMENT_REQUEST_ERROR,\n    ASSIGNMENT_REQUEST_SUCCESS,\n    AssignSuccessActionT,\n    CHANGE_USER_SELECTION,\n    ChangeUserSelectionActionT,\n    FIND_TRAILER_REQUEST,\n    FIND_TRAILER_REQUEST_BEGIN,\n    FIND_TRAILER_REQUEST_ERROR,\n    FIND_TRAILER_REQUEST_SUCCESS,\n    FIND_TRUCK_REQUEST,\n    FIND_TRUCK_REQUEST_BEGIN,\n    FIND_TRUCK_REQUEST_ERROR,\n    FIND_TRUCK_REQUEST_SUCCESS,\n    FindTrailerActionT,\n    FindTrailerBeginActionT,\n    FindTrailerErrorActionT,\n    FindTrailerSuccessActionT,\n    FindTruckActionT,\n    FindTruckBeginActionT,\n    FindTruckErrorActionT,\n    FindTruckSuccessActionT,\n    UnAssignActionT,\n    UNASSIGN,\n} from './types';\n\nimport { FindTrailerQueryT, FindTruckQueryT, UserSelectionT } from './models';\nimport { AssignmentVehiclesSuggestItemT } from './assignment';\nimport { CountryCodeT } from 'common/utils/api/models';\n\nexport const changeUserSelection = (\n    transportOrderId: TransportOrderIdT | null,\n    changes: Partial<UserSelectionT>,\n): ChangeUserSelectionActionT => ({\n    type: CHANGE_USER_SELECTION,\n    transportOrderId,\n    changes,\n});\n\nexport const findTrailer = (query: FindTrailerQueryT): FindTrailerActionT => ({\n    type: FIND_TRAILER_REQUEST,\n    query,\n});\n\nexport const findTrailerBegin = (query: FindTrailerQueryT): FindTrailerBeginActionT => ({\n    type: FIND_TRAILER_REQUEST_BEGIN,\n    query,\n});\n\nexport const findTrailerSuccess = (\n    query: FindTrailerQueryT,\n    trailersSuggestItems: AssignmentVehiclesSuggestItemT[],\n): FindTrailerSuccessActionT => ({\n    type: FIND_TRAILER_REQUEST_SUCCESS,\n    trailersSuggestItems,\n    query,\n});\n\nexport const findTrailerError = (query: FindTrailerQueryT, error: Error): FindTrailerErrorActionT => ({\n    type: FIND_TRAILER_REQUEST_ERROR,\n    error,\n    query,\n});\n\nexport const findTruck = (query: FindTruckQueryT): FindTruckActionT => ({\n    type: FIND_TRUCK_REQUEST,\n    query,\n});\n\nexport const findTruckBegin = (query: FindTruckQueryT): FindTruckBeginActionT => ({\n    type: FIND_TRUCK_REQUEST_BEGIN,\n    query,\n});\n\nexport const findTruckSuccess = (\n    query: FindTruckQueryT,\n    trucksSuggestItems: AssignmentVehiclesSuggestItemT[],\n): FindTruckSuccessActionT => ({\n    type: FIND_TRUCK_REQUEST_SUCCESS,\n    trucksSuggestItems,\n    query,\n});\n\nexport const findTruckError = (query: FindTruckQueryT, error: Error): FindTruckErrorActionT => ({\n    type: FIND_TRUCK_REQUEST_ERROR,\n    error,\n    query,\n});\n\nexport const assign = (\n    transportOrderId: TransportOrderIdT,\n    truckId: TruckIdT,\n    trailerId: TrailerIdT,\n    prohibitedCountries?: Array<CountryCodeT>,\n): AssignActionT => ({\n    type: ASSIGN,\n    trailerId,\n    truckId,\n    transportOrderId,\n    prohibitedCountries,\n});\n\nexport const unassign = (transportOrderId: TransportOrderIdT): UnAssignActionT => ({\n    type: UNASSIGN,\n    transportOrderId,\n});\n\nexport const assignBegin = (): AssignBeginActionT => ({\n    type: ASSIGNMENT_REQUEST_BEGIN,\n});\n\nexport const assignSuccess = (): AssignSuccessActionT => ({\n    type: ASSIGNMENT_REQUEST_SUCCESS,\n});\n\nexport const assignError = (error: Error): AssignErrorActionT => ({\n    type: ASSIGNMENT_REQUEST_ERROR,\n    error,\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"status\":\"BasicWidgetHeaderActions__status___tUwsZ\",\"fadeIn\":\"BasicWidgetHeaderActions__fadeIn___Oi2ty\",\"blinking\":\"BasicWidgetHeaderActions__blinking___JZX10\"};","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport { PageResponseT, PaginationStateT } from 'common/utils/pagination/models';\nimport {\n    pageBeginReducer,\n    pageErrorReducer,\n    pageSuccessReducer,\n    resetPagesCacheReducer,\n} from 'common/utils/pagination/reducers';\nimport { BrokerTourShortT, FetchBrokerToursPageQueryT } from './models';\n\nexport type BrokerTourStateT = PaginationStateT<BrokerTourShortT, FetchBrokerToursPageQueryT>;\n\nconst initialState: BrokerTourStateT = {\n    pages: [],\n    query: null,\n    total: null,\n    byId: {},\n};\n\nexport const brokerToursSlice = createSlice({\n    name: 'brokerTours',\n    initialState,\n    reducers: {\n        fetchBrokerToursPage: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                pageNumber: PageNumberT;\n                query: FetchBrokerToursPageQueryT;\n                options?: FetchOptionsT;\n            }>,\n        ) => {\n            // nothing\n        },\n        fetchBrokerToursPageBegin: (\n            state,\n            action: PayloadAction<{\n                query: FetchBrokerToursPageQueryT;\n                pageNumber: PageNumberT;\n            }>,\n        ) => {\n            const { pageNumber, query } = action.payload;\n\n            Object.assign(state, pageBeginReducer(state, pageNumber, query));\n        },\n        fetchBrokerToursPageSuccess: (\n            state,\n            action: PayloadAction<{\n                query: FetchBrokerToursPageQueryT;\n                pageNumber: PageNumberT;\n                pageResponse: PageResponseT<BrokerTourShortT> | null;\n            }>,\n        ) => {\n            const { query, pageNumber, pageResponse } = action.payload;\n\n            Object.assign(state, pageSuccessReducer(state, pageNumber, query, pageResponse));\n        },\n        fetchBrokerToursPageError: (\n            state,\n            action: PayloadAction<{\n                query: FetchBrokerToursPageQueryT;\n                pageNumber: PageNumberT;\n                error: Error;\n            }>,\n        ) => {\n            const { query, error, pageNumber } = action.payload;\n\n            Object.assign(state, pageErrorReducer(state, pageNumber, query, error));\n        },\n        resetBrokerTours: (\n            state,\n            action: PayloadAction<{\n                mutationListOptions: MutationListOptionsT;\n            }>,\n        ) => {\n            const { mutationListOptions } = action.payload;\n\n            Object.assign(state, initialState, resetPagesCacheReducer(initialState, state, mutationListOptions));\n        },\n    },\n    extraReducers: (builder) => {\n        builder.addCase('auth/destroySession', () => {\n            return initialState;\n        });\n    },\n});\n\nexport const {\n    fetchBrokerToursPage,\n    fetchBrokerToursPageBegin,\n    fetchBrokerToursPageSuccess,\n    fetchBrokerToursPageError,\n    resetBrokerTours,\n} = brokerToursSlice.actions;\n\nexport default brokerToursSlice.reducer;\n","import * as React from 'react';\nimport history, { createExternalRelativePath } from 'common/utils/history';\nimport { useLocation } from 'react-router-dom';\n\ntype NextLocationT = Parameters<typeof history.push>[0] | string;\n\nexport const useHistoryPush = () => {\n    const location = useLocation();\n\n    const historyPush = React.useCallback(\n        (event: React.MouseEvent, nextLocation: NextLocationT) => {\n            if (event.ctrlKey || event.metaKey) {\n                const pathname =\n                    typeof nextLocation === 'string' ? nextLocation : nextLocation.pathname || location.pathname;\n                const search = typeof nextLocation === 'string' ? '' : nextLocation.search || '';\n\n                window.open(createExternalRelativePath(`${pathname}${search}`), '_blank');\n                return;\n            }\n\n            history.push(nextLocation);\n        },\n        [location],\n    );\n\n    return {\n        historyPush,\n    };\n};\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { QueryFiltersT } from 'broker-admin/layouts/PartnersPage/query-models';\n\nconst getInitialValues = (\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    queryFilters: QueryFiltersT,\n): FormValuesT => {\n    return {\n        [FieldsEnum.keyAccountManagerId]: null,\n        [FieldsEnum.keyAccountManagerName]: null,\n        [FieldsEnum.dispatcherId]: null,\n        [FieldsEnum.dispatcherName]: null,\n        [FieldsEnum.countryCode]: null,\n    };\n};\n\nexport default getInitialValues;\n","import React from 'react';\nimport { createPortal } from 'react-dom';\nimport classNames from 'classnames/bind';\n\nimport styles from './SideBarLayout.scss';\nimport ContentRootContext from 'common/layouts/LeftMenuLayout/contexts/content-root-context';\nimport { SidebarSizeEnum } from 'common/layouts/SideBars/models';\n\nconst cx = classNames.bind(styles);\n\nexport enum SideBarPositionEnum {\n    left = 'left',\n    right = 'right',\n}\n\ntype PropsT = {\n    size?: SidebarSizeEnum;\n    position?: SideBarPositionEnum;\n};\n\nconst SideBarLayout: React.FC<PropsT> = React.memo((props) => {\n    const { children, size = SidebarSizeEnum.l } = props;\n\n    const position = props.position || SideBarPositionEnum.left;\n\n    const contentRootNode = React.useContext(ContentRootContext);\n    if (!contentRootNode) {\n        return null;\n    }\n\n    return createPortal(\n        <div\n            className={cx('side-bar', {\n                'side-bar--isShow': true,\n                [`side-bar--size-${size}`]: true,\n                [`side-bar--position-${position}`]: true,\n            })}\n        >\n            <div className={cx('content')}>{children}</div>\n        </div>,\n        contentRootNode,\n    );\n});\n\nexport default SideBarLayout;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './StatusFooterContent.scss';\nimport { TransportOrderDetailsT } from 'common/store/transport-order-details/models';\nimport ManagementControl from 'common/layouts/TransportOrderDetailsPageLayout/footers/StatusFooterContent/ManagementControl/ManagementControl';\nimport { useTimeMark } from 'common/utils/hooks/useTimeMark';\nimport { TransportOrderStatusEnum } from 'common/utils/api/models';\nimport { checkIsCarrierTransportOrderDetails } from 'common/store/transport-order-details/type-guards';\nimport TimeLeft from 'common/layouts/TimeLeft/TimeLeft';\nimport isNumber from 'lodash/isNumber';\nimport { useTranslation } from 'react-i18next';\nimport AdditionalManagementControl from 'common/layouts/TransportOrderDetailsPageLayout/footers/StatusFooterContent/AdditionalManagementControl/AdditionalManagementControl';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport ChangeTourStatusControls from 'common/layouts/TransportOrderDetailsPageLayout/footers/StatusFooterContent/ChangeTourStatusControls/ChangeTourStatusControls';\nimport { ApiStopTypeT, ApiTourWaypointActionTypeT } from 'common/store/consistent-state-machine/models';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { useMemo } from 'react';\n\nconst cx = classNames.bind(styles);\n\ntype AssignAssetsUnavailableReasonT = Api2.Definitions.AssignAssetsUnavailableReason;\ntype CarrierAssignAssetsUnavailableReasonT = Api2.Definitions.CarrierAssignAssetsUnavailableReason;\ntype AssignDriverUnavailableReasonT = Api2.Definitions.AssignDriverUnavailableReason;\n\nconst assignAssetsUnavailableReasonI18nMap: Record<\n    AssignAssetsUnavailableReasonT | CarrierAssignAssetsUnavailableReasonT,\n    string\n> = {\n    KAM_CANT_ASSIGN_ASSETS: 'common:transport-order-details.assign-assets-unavailable-reason.KAM_CANT_ASSIGN_ASSETS',\n    TOUR_ON_SPOT: 'common:transport-order-details.assign-assets-unavailable-reason.TOUR_ON_SPOT',\n    UNAVAILABLE_STATUS: 'common:transport-order-details.assign-assets-unavailable-reason.UNAVAILABLE_STATUS',\n    RUN_OUT_OF_TIME_TO_ASSIGN_CARRIER:\n        'common:transport-order-details.assign-assets-unavailable-reason.RUN_OUT_OF_TIME_TO_ASSIGN_CARRIER',\n    TO_IS_NOT_ON_SPOT: 'common:transport-order-details.assign-assets-unavailable-reason.TO_IS_NOT_ON_SPOT',\n    TO_BELONGS_TO_ANOTHER_CARRIER:\n        'common:transport-order-details.assign-assets-unavailable-reason.TO_BELONGS_TO_ANOTHER_CARRIER',\n    TO_IS_RUN_OUT_OF_TIME_TO_ASSIGN_ASSETS:\n        'common:transport-order-details.assign-assets-unavailable-reason.TO_IS_RUN_OUT_OF_TIME_TO_ASSIGN_ASSETS',\n};\n\nconst assignDriverUnavailableReasonI18nMap: Record<AssignDriverUnavailableReasonT, string> = {\n    TO_HAS_TRAILER_TYPE: 'common:transport-order-details.assign-driver-unavailable-reason.TO_HAS_TRAILER_TYPE',\n    TO_IS_RUN_OUT_OF_TIME_TO_ASSIGN_DRIVER:\n        'common:transport-order-details.assign-driver-unavailable-reason.TO_IS_RUN_OUT_OF_TIME_TO_ASSIGN_DRIVER',\n    UNAVAILABLE_STATUS: 'common:transport-order-details.assign-driver-unavailable-reason.UNAVAILABLE_STATUS',\n};\n\ntype PropsT = {\n    className?: string;\n    transportOrderDetails: TransportOrderDetailsT | null | undefined;\n    onUnassignedAssets: () => void;\n    unassignAssetsUnavailableTooltipContent?: React.ReactNode | null;\n    onStartAssignAssets: () => void;\n    isAvailableToUnassignDriver: boolean;\n    onUnassignedDrivers: () => void;\n    onStartAssignDrivers: () => void;\n    onManageShipment: (shipmentId: ShipmentIdT) => void;\n    unassignDriverTooltipContent?: React.ReactNode | null;\n};\n\nconst deadlineGuideI18nMap: Record<ApiStopTypeT, Record<ApiTourWaypointActionTypeT, string>> = {\n    PICKUP_TRAILER: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.PICKUP_TRAILER.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.PICKUP_TRAILER.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.PICKUP_TRAILER.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.PICKUP_TRAILER.FINISH_TOUR',\n        TRAILER_HOOKED: 'common:change-tour-status.deadline-guide.PICKUP_TRAILER.TRAILER_HOOKED',\n        TRAILER_DROPPED: '',\n    },\n    PICKUP_TRUCK: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.PICKUP_TRUCK.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.PICKUP_TRUCK.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.PICKUP_TRUCK.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.PICKUP_TRUCK.FINISH_TOUR',\n        TRAILER_HOOKED: 'common:change-tour-status.deadline-guide.PICKUP_TRUCK.TRAILER_HOOKED',\n        TRAILER_DROPPED: '',\n    },\n    PICKUP_ROAD_TRAIN: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.PICKUP_ROAD_TRAIN.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.PICKUP_ROAD_TRAIN.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.PICKUP_ROAD_TRAIN.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.PICKUP_ROAD_TRAIN.FINISH_TOUR',\n        TRAILER_HOOKED: 'common:change-tour-status.deadline-guide.PICKUP_ROAD_TRAIN.TRAILER_HOOKED',\n        TRAILER_DROPPED: '',\n    },\n    PICKUP_DELIVERY_SHIPMENT: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.PICKUP_DELIVERY_SHIPMENT.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.PICKUP_DELIVERY_SHIPMENT.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.PICKUP_DELIVERY_SHIPMENT.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.PICKUP_DELIVERY_SHIPMENT.FINISH_TOUR',\n        TRAILER_HOOKED: '',\n        TRAILER_DROPPED: '',\n    },\n    DRIVE_THROUGH: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.DRIVE_THROUGH.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.DRIVE_THROUGH.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.DRIVE_THROUGH.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.DRIVE_THROUGH.FINISH_TOUR',\n        TRAILER_HOOKED: '',\n        TRAILER_DROPPED: '',\n    },\n    DROP_AND_HOOK: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.DROP_AND_HOOK.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.DROP_AND_HOOK.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.DROP_AND_HOOK.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.DROP_AND_HOOK.FINISH_TOUR',\n        TRAILER_HOOKED: '',\n        TRAILER_DROPPED: '',\n    },\n    DROP_TRAILER: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.DROP_TRAILER.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.DROP_TRAILER.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.DROP_TRAILER.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.DROP_TRAILER.FINISH_TOUR',\n        TRAILER_DROPPED: 'common:change-tour-status.deadline-guide.DROP_TRAILER.TRAILER_DROPPED',\n        TRAILER_HOOKED: '',\n    },\n    DROP_TRUCK: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.DROP_TRUCK.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.DROP_TRUCK.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.DROP_TRUCK.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.DROP_TRUCK.FINISH_TOUR',\n        TRAILER_DROPPED: 'common:change-tour-status.deadline-guide.DROP_TRUCK.TRAILER_DROPPED',\n        TRAILER_HOOKED: '',\n    },\n    DROP_ROAD_TRAIN: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.DROP_ROAD_TRAIN.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.DROP_ROAD_TRAIN.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.DROP_ROAD_TRAIN.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.DROP_ROAD_TRAIN.FINISH_TOUR',\n        TRAILER_DROPPED: 'common:change-tour-status.deadline-guide.DROP_ROAD_TRAIN.TRAILER_DROPPED',\n        TRAILER_HOOKED: '',\n    },\n    FERRY_DISEMBARK: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.FERRY_DISEMBARK.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.FERRY_DISEMBARK.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.FERRY_DISEMBARK.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.FERRY_DISEMBARK.FINISH_TOUR',\n        TRAILER_HOOKED: '',\n        TRAILER_DROPPED: '',\n    },\n    FERRY_ONBOARD: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.FERRY_ONBOARD.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.FERRY_ONBOARD.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.FERRY_ONBOARD.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.FERRY_ONBOARD.FINISH_TOUR',\n        TRAILER_HOOKED: '',\n        TRAILER_DROPPED: '',\n    },\n};\n\nconst StatusFooterContent: React.FC<PropsT> = React.memo((props) => {\n    const {\n        transportOrderDetails,\n        onUnassignedAssets,\n        unassignAssetsUnavailableTooltipContent,\n        onStartAssignAssets,\n        isAvailableToUnassignDriver,\n        onUnassignedDrivers,\n        onStartAssignDrivers,\n        onManageShipment,\n        unassignDriverTooltipContent,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const assignAssetsUnavailableReason = useMemo(() => {\n        if (!transportOrderDetails) {\n            return null;\n        }\n        if (!checkIsCarrierTransportOrderDetails(transportOrderDetails)) {\n            return null;\n        }\n\n        return transportOrderDetails.assignAssetsUnavailableReason || null;\n    }, [transportOrderDetails]);\n\n    const assignAssetsTooltipContent = useMemo(() => {\n        if (!assignAssetsUnavailableReason) {\n            return null;\n        }\n\n        return (\n            <TooltipContent theme={TooltipContentThemeEnum.black} width={150} isCenter>\n                {t(assignAssetsUnavailableReasonI18nMap[assignAssetsUnavailableReason])}\n            </TooltipContent>\n        );\n    }, [assignAssetsUnavailableReason, t]);\n\n    const assignDriverUnavailableReason = useMemo(() => {\n        if (!transportOrderDetails) {\n            return null;\n        }\n        if (!checkIsCarrierTransportOrderDetails(transportOrderDetails)) {\n            return null;\n        }\n\n        return transportOrderDetails.assignDriverUnavailableReason || null;\n    }, [transportOrderDetails]);\n\n    const assignDriverTooltipContent = useMemo(() => {\n        if (!assignDriverUnavailableReason) {\n            return null;\n        }\n\n        return (\n            <TooltipContent theme={TooltipContentThemeEnum.black} width={150} isCenter>\n                {t(assignDriverUnavailableReasonI18nMap[assignDriverUnavailableReason])}\n            </TooltipContent>\n        );\n    }, [assignDriverUnavailableReason, t]);\n\n    const isAllowAssignAssets =\n        !!transportOrderDetails &&\n        checkIsCarrierTransportOrderDetails(transportOrderDetails) &&\n        !assignAssetsUnavailableReason;\n\n    const isAllowAssignDrivers =\n        !!transportOrderDetails &&\n        checkIsCarrierTransportOrderDetails(transportOrderDetails) &&\n        !assignDriverUnavailableReason;\n\n    const currentWaypointId = transportOrderDetails?.availableSteps?.current?.waypointId || null;\n    const currentWaypoint = transportOrderDetails?.waypoints?.find((waypoint) => {\n        return waypoint?.id === currentWaypointId;\n    });\n    const currentFirstDoAction =\n        transportOrderDetails?.availableSteps?.current?.actions?.find((action) => {\n            return !action?.done;\n        }) || null;\n\n    const deadline =\n        (currentFirstDoAction?.type === 'ARRIVED_AT_WAYPOINT'\n            ? currentWaypoint?.dateTimeFrom\n            : currentWaypoint?.dateTimeTo) || null;\n    const deadlineLabel =\n        currentWaypoint && currentFirstDoAction\n            ? t(deadlineGuideI18nMap?.[currentWaypoint.type]?.[currentFirstDoAction.type], {\n                  number: (currentWaypoint.index || 0) + 1,\n              })\n            : null;\n\n    const { diff, formattedDiff } = useTimeMark({\n        timeMark: deadline,\n    });\n\n    const isFailed = isNumber(diff) && diff <= 0;\n    const isWarning = !!(\n        transportOrderDetails &&\n        checkIsCarrierTransportOrderDetails(transportOrderDetails) &&\n        (transportOrderDetails?.runningOutOfTimeToAssignAsset || transportOrderDetails?.runningOutOfTimeToAssignDriver)\n    );\n\n    const isAssetsUnassigned = transportOrderDetails?.status === TransportOrderStatusEnum.assetsUnassigned;\n    if (isAssetsUnassigned) {\n        return (\n            <div className={cx('actions')}>\n                <TimeLeft\n                    className={cx('time-left')}\n                    isWarning={isWarning}\n                    isFailed={isFailed}\n                    failedMessage={t('common:transport-order-details.footer.tour-already-started')}\n                    time={formattedDiff}\n                    timeDescription={t('common:transport-order-details.footer.to-assign-assets')}\n                />\n\n                <div className={cx('action', 'action--assign')}>\n                    {checkIsCarrierTransportOrderDetails(transportOrderDetails) && (\n                        <Tooltip\n                            position={TooltipPositionEnum.topCenter}\n                            theme={TooltipThemeEnum.black}\n                            tooltipNode={assignAssetsTooltipContent}\n                        >\n                            {() => (\n                                <Button\n                                    isFullWidth\n                                    isCenterContent\n                                    theme={ButtonThemeEnum.primary}\n                                    onClick={onStartAssignAssets}\n                                    isDisabled={!!assignAssetsUnavailableReason}\n                                >\n                                    {t('common:transport-order-details.actions.assign-assets')}\n                                </Button>\n                            )}\n                        </Tooltip>\n                    )}\n                </div>\n\n                <AdditionalManagementControl\n                    transportOrderDetails={transportOrderDetails}\n                    isShowAssignDrivers\n                    isAllowAssignDrivers={isAllowAssignDrivers}\n                    onStartAssignDrivers={onStartAssignDrivers}\n                    isAllowToUnassignDriver={isAvailableToUnassignDriver}\n                    onUnassignedDrivers={onUnassignedDrivers}\n                    unassignDriverTooltipContent={unassignDriverTooltipContent}\n                />\n            </div>\n        );\n    }\n\n    const isDriverUnassigned = transportOrderDetails?.status === TransportOrderStatusEnum.driverUnassigned;\n    if (isDriverUnassigned) {\n        return (\n            <div className={cx('actions')}>\n                <TimeLeft\n                    className={cx('time-left')}\n                    isWarning={isWarning}\n                    isFailed={isFailed}\n                    failedMessage={t('common:transport-order-details.footer.tour-already-started')}\n                    time={formattedDiff}\n                    timeDescription={t('common:transport-order-details.footer.to-assign-driver', {\n                        postProcess: 'interval',\n                        count: transportOrderDetails?.drivers?.length || 0,\n                    })}\n                />\n                <ManagementControl\n                    transportOrderDetails={transportOrderDetails}\n                    isShowAssignAssets={isAllowAssignAssets}\n                    isAllowAssignAssets={isAllowAssignAssets}\n                    onUnassignedAssets={onUnassignedAssets}\n                    unassignAssetsUnavailableTooltipContent={unassignAssetsUnavailableTooltipContent}\n                    onStartAssignAssets={onStartAssignAssets}\n                    isShowAssignDrivers={false}\n                    isAllowAssignDrivers={false}\n                    onUnassignedDrivers={onUnassignedDrivers}\n                    onStartAssignDrivers={onStartAssignDrivers}\n                    overlayPosition={DropdownOverlayPositionEnum.topRight}\n                    overlayTooltipPosition={TooltipPositionEnum.centerLeft}\n                    unassignDriverTooltipContent={unassignDriverTooltipContent}\n                />\n                <div className={cx('action', 'action--assign')}>\n                    {checkIsCarrierTransportOrderDetails(transportOrderDetails) && (\n                        <Tooltip\n                            position={TooltipPositionEnum.topCenter}\n                            theme={TooltipThemeEnum.black}\n                            tooltipNode={assignDriverTooltipContent}\n                        >\n                            {() => (\n                                <Button\n                                    isFullWidth\n                                    isCenterContent\n                                    theme={ButtonThemeEnum.primary}\n                                    onClick={onStartAssignDrivers}\n                                    isDisabled={!!assignDriverUnavailableReason}\n                                >\n                                    {t('common:transport-order-details.actions.assign-drivers', {\n                                        postProcess: 'interval',\n                                        count: transportOrderDetails?.drivers?.length || 0,\n                                    })}\n                                </Button>\n                            )}\n                        </Tooltip>\n                    )}\n                </div>\n            </div>\n        );\n    }\n\n    return (\n        <div className={cx('actions')}>\n            <TimeLeft\n                className={cx('time-left')}\n                isFailed={isFailed}\n                isWarning={isWarning}\n                failedMessage={\n                    currentFirstDoAction\n                        ? t('common:transport-order-details.footer.out-of-time', {\n                              toAction: deadlineLabel,\n                          })\n                        : t('common:transport-order-details.footer.tour-already-started')\n                }\n                time={formattedDiff}\n                timeDescription={\n                    currentFirstDoAction ? deadlineLabel : t('common:transport-order-details.footer.to-start-tour')\n                }\n            />\n            <div className={cx('spacer')} />\n            <ManagementControl\n                transportOrderDetails={transportOrderDetails}\n                isShowAssignAssets\n                isAllowAssignAssets={isAllowAssignAssets}\n                onUnassignedAssets={onUnassignedAssets}\n                unassignAssetsUnavailableTooltipContent={unassignAssetsUnavailableTooltipContent}\n                onStartAssignAssets={onStartAssignAssets}\n                isShowAssignDrivers\n                isAllowAssignDrivers={isAllowAssignDrivers}\n                onUnassignedDrivers={onUnassignedDrivers}\n                onStartAssignDrivers={onStartAssignDrivers}\n                overlayPosition={DropdownOverlayPositionEnum.topLeft}\n                overlayTooltipPosition={TooltipPositionEnum.centerRight}\n                unassignDriverTooltipContent={unassignDriverTooltipContent}\n            />\n            <ChangeTourStatusControls\n                transportOrderDetails={transportOrderDetails}\n                onManageShipment={onManageShipment}\n            />\n        </div>\n    );\n});\n\nexport default StatusFooterContent;\n","import { ApiBrokerShipperContractDetailsT } from 'common/utils/api/models';\nimport { ShipperContractDetailsT } from 'common/store/shipper-contract-details/models';\n\nexport const checkIsApiBrokerShipperContractDetails = (\n    details: ShipperContractDetailsT | null,\n): details is ApiBrokerShipperContractDetailsT => {\n    return !!details;\n};\n","import { TranziitApiRequestErrorSubTypeEnum } from './tranziit-api-errors';\nimport { ErrorParserT } from '../../errors/models';\nimport { ResponseDataMapT } from 'common/utils/api/tranziit/errors/error-response';\n\nconst parseErrors: Record<TranziitApiRequestErrorSubTypeEnum, ErrorParserT> = {\n    [TranziitApiRequestErrorSubTypeEnum.accessDeniedToApi]: (error) => {\n        return error?.response?.code === 'ACCESS_DENIED_TO_API';\n    },\n    [TranziitApiRequestErrorSubTypeEnum.accessDeniedToEntity]: (error) => {\n        return error?.response?.code === 'ACCESS_DENIED_TO_ENTITY';\n    },\n    [TranziitApiRequestErrorSubTypeEnum.couldNotUnLockCompany]: (error) => {\n        return /unlock company/.test(error.response?.message || '');\n    },\n    [TranziitApiRequestErrorSubTypeEnum.canNotDowngradeLastAdminInTeam]: (error) => {\n        return /Can not change role for last company admin/.test(error.response?.message || '');\n    },\n    [TranziitApiRequestErrorSubTypeEnum.notFoundCompany]: (error) => {\n        if (/\\/company$/.test(error?.requestConfig.path || '') && error?.httpStatusCode === 404) {\n            return true;\n        }\n\n        return false;\n    },\n    [TranziitApiRequestErrorSubTypeEnum.alreadyAssignedDrivers]: (error) => {\n        if (\n            /\\/assign-drivers-to-tour/.test(error?.requestConfig.path || '') &&\n            /^Tour with id (.*?) already has maximum drivers/.test(error.response?.message || '')\n        ) {\n            return true;\n        }\n\n        return false;\n    },\n    [TranziitApiRequestErrorSubTypeEnum.notFoundUser]: (error) => {\n        if (/\\/(contact|restore)/.test(error?.requestConfig.path || '')) {\n            return false;\n        }\n\n        return /^User not found/.test(error.response?.message || '');\n    },\n    [TranziitApiRequestErrorSubTypeEnum.canNotDeleteHimself]: (error) => {\n        return /User (.*?) delete himself/.test(error.response?.message || '');\n    },\n    [TranziitApiRequestErrorSubTypeEnum.phoneAlreadyExist]: (error) => {\n        return error?.response?.code === 'PHONE_ALREADY_EXIST';\n    },\n    [TranziitApiRequestErrorSubTypeEnum.emailAlreadyExist]: (error) => {\n        return /^Email (.*?) already exists$/.test(error.response?.message || '');\n    },\n    [TranziitApiRequestErrorSubTypeEnum.notAuthorizedUser]: (error) => {\n        // check 401\n        return /^Email (.*?) already exists$/.test(error.response?.message || '');\n    },\n    [TranziitApiRequestErrorSubTypeEnum.successorHasNotActiveStatus]: (error) => {\n        return /^New user (.*?) is not in Active status$/.test(error.response?.message || '');\n    },\n    [TranziitApiRequestErrorSubTypeEnum.orderCreationExpiredRFQ]: (error) => {\n        return /^No order (.*?) in status DRAFT$/.test(error.response?.message || '');\n    },\n    [TranziitApiRequestErrorSubTypeEnum.orderCreation_ExpiredPriceOffer]: (error) => {\n        return (\n            /^Price offer (.*?) has expired$/.test(error.response?.message || '') && error?.response?.code === 'EXPIRED'\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.orderCreation_AlreadyCompletedRFQ]: (error) => {\n        return (\n            /^Unable to complete RFQ (.*?) from COMPLETED$/.test(error.response?.message || '') &&\n            error?.response?.code === 'WRONG_STATUS'\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.firebaseTooManyResendInviteRequests]: (error) => {\n        return (\n            (/user\\/invite/.test(error?.requestConfig.path || '') ||\n                /registration\\/user\\/invite/.test(error?.requestConfig.path || '')) &&\n            error?.response?.code === 'FIREBASE_TOO_MANY_ATTEMPTS_TRY_LATER'\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.expiredContextPreviewReserve]: (error) => {\n        return (\n            /preview/.test(error?.requestConfig.path || '') &&\n            /^Context has expired or never exists/.test(error.response?.message || '')\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.failedArchiveInTransitDriver]: (error) => {\n        return (\n            /archive/.test(error?.requestConfig.path || '') &&\n            /deactivate driver who is in transit now or has future tours assigned/.test(error.response?.message || '')\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.assignmentSelfCostPrediction]: (error) => {\n        return (\n            /calculate-tour-costs-for-assets/.test(error?.requestConfig.path || '') &&\n            error?.httpStatusCode === 400 &&\n            !!error?.response?.reason\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.noRouteFound]: (error) => {\n        return /^No route found for the given vehicle(.*?)$/.test(error.response?.message || '');\n    },\n    [TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedCompleteRFQ_CapacityExcess]: (error) => {\n        return (\n            /api\\/v2\\/rfqs\\/(.*?)\\/status\\/completed$/.test(error?.requestConfig.path || '') &&\n            error?.requestConfig?.method === 'POST' &&\n            error?.httpStatusCode === 400 &&\n            (\n                error?.response as ResponseDataMapT[TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedCompleteRFQ_CapacityExcess]\n            )?.faultCode === 'CAPACITY_EXCESS'\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedCompleteRFQ_Overweight]: (error) => {\n        return (\n            /api\\/v2\\/rfqs\\/(.*?)\\/status\\/completed$/.test(error?.requestConfig.path || '') &&\n            error?.requestConfig?.method === 'POST' &&\n            error?.httpStatusCode === 400 &&\n            (\n                error?.response as ResponseDataMapT[TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedCompleteRFQ_Overweight]\n            )?.faultCode === 'OVERWEIGHT'\n        );\n    },\n\n    [TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedPreviewRoute_ProhibitedCountry]: (error) => {\n        return (\n            /api\\/v2\\/order-reserves$/.test(error?.requestConfig.path || '') &&\n            error?.requestConfig?.method === 'POST' &&\n            (\n                error?.response as ResponseDataMapT[TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedPreviewRoute_ProhibitedCountry]\n            )?.code === 'OTHER' &&\n            /is prohibited/.test(\n                (\n                    error?.response as ResponseDataMapT[TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedPreviewRoute_ProhibitedCountry]\n                )?.message || '',\n            )\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedPreviewRoute_RouteNotFound]: (error) => {\n        return (\n            /api\\/v2\\/order-reserves$/.test(error?.requestConfig.path || '') &&\n            error?.requestConfig?.method === 'POST' &&\n            (\n                error?.response as ResponseDataMapT[TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedPreviewRoute_RouteNotFound]\n            )?.code === 'ROUTE_NOT_FOUND'\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedPreviewRoute_RouteWaypointNotLinkable]: (error) => {\n        return (\n            /api\\/v2\\/order-reserves$/.test(error?.requestConfig.path || '') &&\n            error?.requestConfig?.method === 'POST' &&\n            (\n                error?.response as ResponseDataMapT[TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedPreviewRoute_RouteWaypointNotLinkable]\n            )?.code === 'WAYPOINT_NOT_LINKABLE'\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.orderCreation_ShipperNotAllowedToHaveNewOrders]: (error) => {\n        return (\n            /api\\/v2\\/order-reserves$/.test(error?.requestConfig.path || '') &&\n            error?.requestConfig?.method === 'POST' &&\n            error?.httpStatusCode === 400 &&\n            error?.response?.code === 'OTHER' &&\n            /The Shipper .+ is not allowed to have new orders/.test(error?.response?.message || '')\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.orderCreation_ShipperNotAvailable]: (error) => {\n        return (\n            /api\\/v2\\/order-reserves$/.test(error?.requestConfig.path || '') &&\n            error?.requestConfig?.method === 'POST' &&\n            error?.httpStatusCode === 400 &&\n            error?.response?.code === 'OTHER' &&\n            /User is not assigned with Shipper .+/.test(error?.response?.message || '')\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.brokerOrderEdit_ExpirationContext]: (error) => {\n        return (\n            /order-edit/.test(error?.requestConfig?.path || '') &&\n            /OrderEditContext with id .+ not found/.test(error?.response?.message || '')\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.brokerDeadheadCreation_ExpirationContext]: (error) => {\n        // TODO check is actual\n        return (\n            /tours\\/deadhead/.test(error?.requestConfig?.path || '') &&\n            /Context with id .+ not found/.test(error?.response?.message || '')\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.evidenceOfTaxDetails_WrongVat]: (error) => {\n        return (\n            /approve-evidence-of-tax/.test(error?.requestConfig?.path || '') &&\n            error?.response?.code === 'FIELDS_VALIDATION' &&\n            /Field vat/.test(error?.response?.message || '')\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.deadheadCreation_InvalidVehicle]: (error) => {\n        return (\n            /choose-arrival-date-time/.test(error?.requestConfig?.path || '') &&\n            error?.response?.code === 'OTHER' &&\n            /Vehicle .+ unavailable/.test(error?.response?.message || '')\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.manualRateRuleCreation_InvalidZipsFrom]: (error) => {\n        return (\n            /\\/v2\\/manual-rate-rule\\/create$/.test(error?.requestConfig?.path || '') &&\n            error?.requestConfig?.method === 'POST' &&\n            error?.httpStatusCode === 400 &&\n            error?.response?.code === 'OTHER' &&\n            /^zipsFrom contains invalid zips/.test(error?.response?.message || '')\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.manualRateRuleUpdate_InvalidZipsFrom]: (error) => {\n        return (\n            /\\/v2\\/manual-rate-rule\\/\\d+\\/update$/.test(error?.requestConfig?.path || '') &&\n            error?.requestConfig?.method === 'PUT' &&\n            error?.httpStatusCode === 400 &&\n            error?.response?.code === 'OTHER' &&\n            /^zipsFrom contains invalid zips/.test(error?.response?.message || '')\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.manualRateRuleCreation_InvalidZipsTo]: (error) => {\n        return (\n            /\\/v2\\/manual-rate-rule\\/create$/.test(error?.requestConfig?.path || '') &&\n            error?.requestConfig?.method === 'POST' &&\n            error?.httpStatusCode === 400 &&\n            error?.response?.code === 'OTHER' &&\n            /^zipsTo contains invalid zips/.test(error?.response?.message || '')\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.manualRateRuleUpdate_InvalidZipsTo]: (error) => {\n        return (\n            /\\/v2\\/manual-rate-rule\\/\\d+\\/update$/.test(error?.requestConfig?.path || '') &&\n            error?.requestConfig?.method === 'PUT' &&\n            error?.httpStatusCode === 400 &&\n            error?.response?.code === 'OTHER' &&\n            /^zipsTo contains invalid zips/.test(error?.response?.message || '')\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.tenderJobNotFound]: (error) => {\n        return (\n            /\\/v1\\/broker\\/simple-tender$/.test(error?.requestConfig?.path || '') &&\n            error?.requestConfig?.method === 'GET' &&\n            error?.httpStatusCode === 404 &&\n            /^No tender job found for user/.test(error?.response?.message || '')\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.tenderJobNotInProcessingState]: (error) => {\n        return (\n            /\\/v1\\/broker\\/simple-tender$/.test(error?.requestConfig?.path || '') &&\n            error?.requestConfig?.method === 'DELETE' &&\n            error?.httpStatusCode === 400 &&\n            error?.response?.code === 'OTHER' &&\n            /^Tender job for user .+ is not in processing state$/.test(error?.response?.message || '')\n        );\n    },\n    [TranziitApiRequestErrorSubTypeEnum.documents_unsupportedFileType]: (error) => {\n        return /document/.test(error?.requestConfig?.path || '') && error?.response?.code === 'UNSUPPORTED_FILE_TYPE';\n    },\n    [TranziitApiRequestErrorSubTypeEnum.attachedPapers_unsupportedFileType]: (error) => {\n        return (\n            /attached-papers/.test(error?.requestConfig?.path || '') &&\n            error?.response?.code === 'UNSUPPORTED_FILE_TYPE'\n        );\n    },\n} as const;\n\nexport default parseErrors;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './TruckTriggerLabel.scss';\nimport { CurrencyEnum, StyleGuideColorsEnum } from 'common/constants';\nimport Money from 'common/components/Money/Money';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport DetailsIcon from 'common/icons/DetailsIcon';\nimport ClickInterceptorLabel from 'common/components/ClickInterceptorLabel/ClickInterceptorLabel';\nimport isNumber from 'lodash/isNumber';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { useTranslation } from 'react-i18next';\nimport { ApiTruckRateModeT, TruckRateModeEnum } from 'common/utils/api/models';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    model?: string;\n    plateNumber?: string;\n    ratePerKm: number | null | undefined;\n    rateMode: ApiTruckRateModeT | null | undefined;\n    isDisabled: boolean;\n    resetTooltipNode?: React.ReactNode;\n    onReset: () => void;\n    onOpenDetails: () => void;\n};\n\nconst rateModeI18nMap: Record<ApiTruckRateModeT, string> = {\n    [TruckRateModeEnum.brutto]: 'assignment.rate-mode.brutto',\n    [TruckRateModeEnum.netto]: 'assignment.rate-mode.netto',\n};\n\nconst TruckTriggerLabel: React.FC<PropsT> = React.memo((props) => {\n    const { model, plateNumber, ratePerKm, rateMode, isDisabled, onReset, onOpenDetails, resetTooltipNode } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <div className={cx('option')}>\n            <div\n                className={cx('model-and-plate-number', {\n                    'model-and-plate-number--isDisabled': isDisabled,\n                })}\n            >\n                {[plateNumber, model].filter(Boolean).join(' / ')}\n            </div>\n            <div className={cx('spacer')} />\n            {isNumber(ratePerKm) && (\n                <div\n                    className={cx('price', {\n                        'price--isDisabled': isDisabled,\n                    })}\n                >\n                    <Money amount={ratePerKm} currency={CurrencyEnum.EUR} />\n                    {!!rateMode && <span className={cx('trigger-rate-mode')}>({t(rateModeI18nMap[rateMode])})</span>}\n                </div>\n            )}\n            <ClickInterceptorLabel className={cx('reset')}>\n                <Tooltip\n                    className={cx('tooltip')}\n                    position={TooltipPositionEnum.centerLeft}\n                    theme={TooltipThemeEnum.black}\n                    tooltipNode={\n                        resetTooltipNode ? (\n                            <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                {resetTooltipNode}\n                            </TooltipContent>\n                        ) : null\n                    }\n                >\n                    {() => (\n                        <TransparentTrigger\n                            spaces=\"xxs\"\n                            onClick={onReset}\n                            leftIcon={<CloseIcon fillColor={StyleGuideColorsEnum.gray} />}\n                            reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                        />\n                    )}\n                </Tooltip>\n            </ClickInterceptorLabel>\n            <ClickInterceptorLabel className={cx('details')}>\n                <Tooltip\n                    className={cx('tooltip')}\n                    position={TooltipPositionEnum.centerLeft}\n                    theme={TooltipThemeEnum.black}\n                    tooltipNode={\n                        <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                            {t('common:tooltips.open-details')}\n                        </TooltipContent>\n                    }\n                >\n                    {() => (\n                        <TransparentTrigger\n                            spaces=\"xxs\"\n                            onClick={onOpenDetails}\n                            leftIcon={<DetailsIcon strokeColor={StyleGuideColorsEnum.gray} />}\n                            reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                        />\n                    )}\n                </Tooltip>\n            </ClickInterceptorLabel>\n        </div>\n    );\n});\n\nexport default TruckTriggerLabel;\n","import { AuthErrorTypeEnum } from 'common/utils/api/auth/errors/auth-api-error';\n\nexport enum FieldsEnum {\n    password = 'password',\n}\n\nexport type AsyncFormErrorsT = Partial<{\n    [FieldsEnum.password]:\n        | AuthErrorTypeEnum.failUpdatePassword\n        | AuthErrorTypeEnum.failReauthenticateWithCredential\n        | AuthErrorTypeEnum.expiredActionCode\n        | AuthErrorTypeEnum.invalidActionCode\n        | AuthErrorTypeEnum.weakPassword\n        | AuthErrorTypeEnum.userNotFound\n        | AuthErrorTypeEnum.userDisabled;\n}>;\n\nexport type FormValuesT = {\n    [FieldsEnum.password]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"CompletedPartnerShipperLaneContractCard__inner___kLzuI\",\"fadeIn\":\"CompletedPartnerShipperLaneContractCard__fadeIn___v4UZS\",\"blinking\":\"CompletedPartnerShipperLaneContractCard__blinking___IbNVQ\"};","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"PriceSettingsEditRuleLayout__form___MOSa8\",\"button--add\":\"PriceSettingsEditRuleLayout__button--add___ZeKj0\",\"button--cancel\":\"PriceSettingsEditRuleLayout__button--cancel___Fa9gH\",\"button--save\":\"PriceSettingsEditRuleLayout__button--save___MkrSS\",\"buttons\":\"PriceSettingsEditRuleLayout__buttons___F2g3R\",\"field--name\":\"PriceSettingsEditRuleLayout__field--name___a7tNc\",\"field--type\":\"PriceSettingsEditRuleLayout__field--type___AwXFz\",\"field--group\":\"PriceSettingsEditRuleLayout__field--group___HCYge\",\"field--countries\":\"PriceSettingsEditRuleLayout__field--countries___Yd9vL\",\"field--zips\":\"PriceSettingsEditRuleLayout__field--zips___v_nr3\",\"field--valid-date\":\"PriceSettingsEditRuleLayout__field--valid-date___hTff1\",\"field--price-component\":\"PriceSettingsEditRuleLayout__field--price-component___fKI99\",\"field--repeat-strategy\":\"PriceSettingsEditRuleLayout__field--repeat-strategy____HrlB\",\"field--repeat-type\":\"PriceSettingsEditRuleLayout__field--repeat-type___ok7Jc\",\"field--impact-strategy\":\"PriceSettingsEditRuleLayout__field--impact-strategy___fCJsl\",\"combined-field--days\":\"PriceSettingsEditRuleLayout__combined-field--days___Yzaf0\",\"combined-field--dates\":\"PriceSettingsEditRuleLayout__combined-field--dates___jSrc4\",\"combined-field--repeat-type\":\"PriceSettingsEditRuleLayout__combined-field--repeat-type___ys1nU\",\"combined-field--impact-value\":\"PriceSettingsEditRuleLayout__combined-field--impact-value___uRoqb\",\"combined-field--impact-strategy\":\"PriceSettingsEditRuleLayout__combined-field--impact-strategy___hkSzO\",\"field-group--rule\":\"PriceSettingsEditRuleLayout__field-group--rule___C6_cU\",\"field-group--schedule\":\"PriceSettingsEditRuleLayout__field-group--schedule___tE6IM\",\"status\":\"PriceSettingsEditRuleLayout__status___UFmM1\",\"fadeIn\":\"PriceSettingsEditRuleLayout__fadeIn___Zh_mr\",\"blinking\":\"PriceSettingsEditRuleLayout__blinking___ZpV_f\"};","// extracted by mini-css-extract-plugin\nexport default {\"zone-mark\":\"ZoneMark__zone-mark___KVOUU\",\"zone-mark--isActive\":\"ZoneMark__zone-mark--isActive___dLl0v\",\"zone-mark--hasLeftBorder\":\"ZoneMark__zone-mark--hasLeftBorder___zQ5w2\",\"zone-mark--theme-green\":\"ZoneMark__zone-mark--theme-green___Pt9Pm\",\"zone-mark--theme-orange\":\"ZoneMark__zone-mark--theme-orange___IDAPC\",\"zone-mark--theme-dark-green\":\"ZoneMark__zone-mark--theme-dark-green___GUcAs\",\"zone-mark--theme-light\":\"ZoneMark__zone-mark--theme-light___iFN12\",\"fadeIn\":\"ZoneMark__fadeIn___dfI4L\",\"blinking\":\"ZoneMark__blinking___iHVfm\"};","import {\n    EMAIL_VERIFICATION_REQUEST_ERROR,\n    RESET_PASSWORD_REQUEST_ERROR,\n    SIGN_IN_REQUEST_ERROR,\n    SIGN_UP_REQUEST_ERROR,\n    UPDATE_PASSWORD_REQUEST_ERROR,\n} from 'common/store/auth/types';\nimport { AuthErrorTypeEnum, checkIsAuthApiError } from 'common/utils/api/auth/errors/auth-api-error';\nimport { AnyAction } from 'redux';\nimport {\n    checkIsTranziitApiRequestError,\n    TranziitApiRequestErrorSubTypeEnum,\n} from 'common/utils/api/tranziit/errors/tranziit-api-errors';\nimport {\n    ApiRequestErrorTypeEnum,\n    checkIsApiRequestError,\n    checkIsUnauthorizedError,\n} from 'common/utils/api/errors/api-request-error';\nimport { CHECK_GPS_STATUS_REQUEST_ERROR } from 'common/store/gps-tracking-status/types';\n\nexport const checkError = (actionType: string): boolean => {\n    return /(_ERROR|Error)$/.test(actionType);\n};\n\nconst IGNORE_ACTION_TYPES_SET = new Set([\n    SIGN_IN_REQUEST_ERROR,\n    RESET_PASSWORD_REQUEST_ERROR,\n    SIGN_UP_REQUEST_ERROR,\n    EMAIL_VERIFICATION_REQUEST_ERROR,\n    UPDATE_PASSWORD_REQUEST_ERROR,\n    CHECK_GPS_STATUS_REQUEST_ERROR,\n]);\n\nconst IGNORE_API_ERRORS_TYPES_SET = new Set([\n    AuthErrorTypeEnum.failReauthenticateWithCredential,\n    AuthErrorTypeEnum.failUpdatePassword,\n    AuthErrorTypeEnum.wrongPassword,\n    AuthErrorTypeEnum.wrongRole,\n]);\n\nconst IGNORE_API_ERRORS_SUB_TYPES_SET = new Set([\n    TranziitApiRequestErrorSubTypeEnum.notFoundCompany,\n    TranziitApiRequestErrorSubTypeEnum.notFoundUser,\n    TranziitApiRequestErrorSubTypeEnum.emailAlreadyExist,\n    TranziitApiRequestErrorSubTypeEnum.notAuthorizedUser,\n    TranziitApiRequestErrorSubTypeEnum.phoneAlreadyExist,\n    TranziitApiRequestErrorSubTypeEnum.expiredContextPreviewReserve,\n    TranziitApiRequestErrorSubTypeEnum.assignmentSelfCostPrediction,\n    TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedCompleteRFQ_CapacityExcess,\n    TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedCompleteRFQ_Overweight,\n    TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedPreviewRoute_RouteNotFound,\n    TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedPreviewRoute_RouteWaypointNotLinkable,\n    TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedPreviewRoute_ProhibitedCountry,\n    TranziitApiRequestErrorSubTypeEnum.orderCreation_ShipperNotAllowedToHaveNewOrders,\n    TranziitApiRequestErrorSubTypeEnum.orderCreation_ShipperNotAvailable,\n    TranziitApiRequestErrorSubTypeEnum.brokerOrderEdit_ExpirationContext,\n    TranziitApiRequestErrorSubTypeEnum.evidenceOfTaxDetails_WrongVat,\n    TranziitApiRequestErrorSubTypeEnum.deadheadCreation_InvalidVehicle,\n    TranziitApiRequestErrorSubTypeEnum.manualRateRuleCreation_InvalidZipsFrom,\n    TranziitApiRequestErrorSubTypeEnum.manualRateRuleUpdate_InvalidZipsFrom,\n    TranziitApiRequestErrorSubTypeEnum.manualRateRuleCreation_InvalidZipsTo,\n    TranziitApiRequestErrorSubTypeEnum.manualRateRuleUpdate_InvalidZipsTo,\n    TranziitApiRequestErrorSubTypeEnum.tenderJobNotFound,\n    TranziitApiRequestErrorSubTypeEnum.tenderJobNotInProcessingState,\n\n    // error if the user has not yet registered and will be redirected to the continued registration page\n    // and an error will be displayed on the view where the requested entity is being rendered\n    TranziitApiRequestErrorSubTypeEnum.accessDeniedToEntity,\n    TranziitApiRequestErrorSubTypeEnum.accessDeniedToApi,\n]);\n\nexport const extractErrorFromAction = (action: AnyAction): Error | null => {\n    return action?.error || action?.payload?.error || null;\n};\n\n// Allows individual action dispatchers to suppress the error modal by passing shouldIgnoreErrorModal: true\n// in the payload, useful when the error is already handled via an alert toast\nexport const checkIsIgnoreErrorModal = (action: AnyAction): boolean => {\n    return Boolean(action?.payload?.shouldIgnoreErrorModal);\n};\n\nexport const checkIgnoreError = (action: AnyAction): boolean => {\n    const actionError = extractErrorFromAction(action);\n\n    if (\n        (checkIsAuthApiError(actionError) && actionError?.type === AuthErrorTypeEnum.networkRequestFailed) ||\n        (checkIsApiRequestError(actionError) && actionError?.type === ApiRequestErrorTypeEnum.networkError)\n    ) {\n        return true;\n    }\n\n    if (checkIsApiRequestError(actionError) && actionError?.type === ApiRequestErrorTypeEnum.timeoutError) {\n        return false;\n    }\n\n    if (checkIsAuthApiError(actionError) && actionError?.type === AuthErrorTypeEnum.wrongRole) {\n        return true;\n    }\n\n    return (\n        IGNORE_ACTION_TYPES_SET.has(action.type) ||\n        checkIsUnauthorizedError(actionError) ||\n        (checkIsAuthApiError(actionError) && IGNORE_API_ERRORS_TYPES_SET.has(actionError?.type)) ||\n        (checkIsTranziitApiRequestError(actionError) && IGNORE_API_ERRORS_SUB_TYPES_SET.has(actionError?.subType))\n    );\n};\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './FiltersSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport getQueryFilters from './get-query-filters';\nimport getInitialValues from './get-initial-values';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { isDeepEqual } from 'common/utils/deep-equal';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport FieldGroup, { FieldGroupEmptyItem } from 'common/components/FieldGroup/FieldGroup';\nimport DictTrailerDropdown from 'common/components/dropdowns/DictTrailerDropdown/DictTrailerDropdown';\nimport Input from 'common/components/Input/Input';\nimport DatePicker, { DatePickerOverlayPositionEnum } from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { fetchTrailersDict } from 'common/store/trailers-dict/actions';\nimport { TooltipPositionEnum } from 'design-system/components/Tooltip/Tooltip';\nimport PinIcon, { PinIconProps } from 'common/icons/PinIcon';\nimport SelectedFilters from '../SelectedFilters/SelectedFilters';\nimport { clearEmptyValues } from 'common/utils/query';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from '../query-models';\nimport BrokerAdminUserSuggest from 'common/components/suggests/BrokerAdminUserSuggest/BrokerAdminUserSuggest';\nimport { selectPermissions } from 'common/store/auth/selectors';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    onClose: () => void;\n    queryFilters: QueryFiltersT;\n    setQueryFilters: (queryFilters: QueryFiltersT) => void;\n};\n\nconst FiltersSidebarContent: React.FC<PropsT> = (props) => {\n    const { onClose, setQueryFilters, queryFilters } = props;\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchTrailersDict());\n    }, [dispatch]);\n\n    const permissions = useSelector(selectPermissions);\n\n    const [initialQueryFilters, setInitialQueryFilters] = React.useState<QueryFiltersT>(queryFilters);\n\n    React.useEffect(() => {\n        setInitialQueryFilters(queryFilters);\n    }, [queryFilters]);\n\n    const initialValues = React.useMemo(() => getInitialValues(queryFilters), [queryFilters]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialValues,\n        onSubmit: (values, formikHelpers): void => {\n            const queryFilters = getQueryFilters(values);\n\n            clearEmptyValues(queryFilters);\n\n            setQueryFilters({\n                ...initialQueryFilters,\n                ...(queryFilters[QueryFiltersKeysEnum.address]\n                    ? {\n                          [QueryFiltersKeysEnum.text]: undefined,\n                      }\n                    : {}),\n                ...queryFilters,\n            });\n\n            formikHelpers.setTouched({});\n\n            if (onClose) {\n                onClose();\n            }\n        },\n    });\n\n    const isSameValues = React.useMemo(() => {\n        return isDeepEqual(initialValues, formik.values) && isDeepEqual(initialQueryFilters, queryFilters);\n    }, [initialValues, formik.values, initialQueryFilters, queryFilters]);\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('form')}>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent title={t('common:shipper-contract-lanes.filters.title')} onClose={onClose} />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <FormikField\n                    className={cx('field', 'field--trailer-type')}\n                    name={FieldsEnum.dictTrailerId}\n                    error={formik.errors[FieldsEnum.dictTrailerId]}\n                    meta={formik.getFieldMeta(FieldsEnum.dictTrailerId)}\n                    label={t('common:shipper-contract-lanes.filters.fields.trailer-type.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <DictTrailerDropdown\n                            placeholder={t('common:shipper-contract-lanes.filters.fields.trailer-type.placeholder')}\n                            value={formik.values[FieldsEnum.dictTrailerId]}\n                            onChange={props.onChange}\n                            hasWarning={props.hasWarning}\n                            hasError={props.hasError}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasClearControl\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    className={cx('field', 'field--address')}\n                    name={FieldsEnum.address}\n                    error={formik.errors[FieldsEnum.address]}\n                    meta={formik.getFieldMeta(FieldsEnum.address)}\n                    label={t('common:shipper-contract-lanes.filters.fields.address.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                    tooltipPosition={TooltipPositionEnum.topLeft}\n                >\n                    {(props) => (\n                        <Input\n                            renderLeftIcon={(iconMeta) => <PinIcon {...PinIconProps.getControlProps(iconMeta)} />}\n                            name={FieldsEnum.address}\n                            value={formik.values[FieldsEnum.address] || ''}\n                            placeholder={t('common:shipper-contract-lanes.filters.fields.address.placeholder')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            hasClearControl\n                        />\n                    )}\n                </FormikField>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.validFromDates}\n                        error={formik.errors[FieldsEnum.validFromDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.validFromDates)}\n                        label={t('common:shipper-contract-lanes.filters.fields.valid-from-dates.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.validFromDates]}\n                                placeholder={t(\n                                    'common:shipper-contract-lanes.filters.fields.valid-from-dates.placeholder',\n                                )}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                                hasClearControl\n                                hasYearMonthForm\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.validTillDates}\n                        error={formik.errors[FieldsEnum.validTillDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.validTillDates)}\n                        label={t('common:shipper-contract-lanes.filters.fields.valid-till-dates.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.validTillDates]}\n                                placeholder={t(\n                                    'common:shipper-contract-lanes.filters.fields.valid-till-dates.placeholder',\n                                )}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomRight}\n                                hasClearControl\n                                hasYearMonthForm\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.createdDates}\n                        error={formik.errors[FieldsEnum.createdDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.createdDates)}\n                        label={t('common:shipper-contract-lanes.filters.fields.added-dates.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.createdDates]}\n                                placeholder={t('common:shipper-contract-lanes.filters.fields.added-dates.placeholder')}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                                hasClearControl\n                                hasYearMonthForm\n                            />\n                        )}\n                    </FormikField>\n                    {permissions.canUseBrokerAdminSuggest ? (\n                        <FormikField\n                            className={cx('field', 'field--user')}\n                            name={FieldsEnum.createdById}\n                            error={formik.errors[FieldsEnum.createdById]}\n                            meta={formik.getFieldMeta(FieldsEnum.createdById)}\n                            label={t('common:shipper-contract-lanes.filters.fields.added-by.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <BrokerAdminUserSuggest\n                                    initialValue={formik.values[FieldsEnum.createdById]}\n                                    initialLabel={formik.values[FieldsEnum.createdByName]}\n                                    value={formik.values[FieldsEnum.createdById]}\n                                    placeholder={t('common:shipper-contract-lanes.filters.fields.added-by.placeholder')}\n                                    onSelect={(userId, userName) => {\n                                        props.onChange(userId);\n                                        formik.setFieldValue(FieldsEnum.createdByName, userName);\n                                    }}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasClearControl\n                                />\n                            )}\n                        </FormikField>\n                    ) : (\n                        <FieldGroupEmptyItem className={cx('field', 'field--user')} />\n                    )}\n                </FieldGroup>\n            </SideBarLayout>\n            <FooterSideBarLayout hasPaddings>\n                <div className={cx('selected-filters')}>\n                    <SelectedFilters queryFilters={initialQueryFilters} setQueryFilters={setInitialQueryFilters} />\n                </div>\n                <Button\n                    theme={ButtonThemeEnum.primary}\n                    isDisabled={isSameValues}\n                    isFullWidth\n                    isCenterContent\n                    type=\"submit\"\n                >\n                    {t('common:shipper-contract-lanes.filters.submit')}\n                </Button>\n            </FooterSideBarLayout>\n        </form>\n    );\n};\n\nexport default FiltersSidebarContent;\n","// extracted by mini-css-extract-plugin\nexport default {\"ReactDayPicker\":\"Calendar__ReactDayPicker___u4hnN\",\"ReactDayPicker__wrapper\":\"Calendar__ReactDayPicker__wrapper___y_bBG\",\"ReactDayPicker__NavButton\":\"Calendar__ReactDayPicker__NavButton___PRNyx\",\"ReactDayPicker__NavButton--prev\":\"Calendar__ReactDayPicker__NavButton--prev___CRJDH\",\"ReactDayPicker__NavButton--next\":\"Calendar__ReactDayPicker__NavButton--next___tmPGR\",\"ReactDayPicker__NavButton--interactionDisabled\":\"Calendar__ReactDayPicker__NavButton--interactionDisabled___OEOwM\",\"ReactDayPicker__Months\":\"Calendar__ReactDayPicker__Months___AQ2eD\",\"ReactDayPicker__Month\":\"Calendar__ReactDayPicker__Month___J3DTY\",\"ReactDayPicker__Caption\":\"Calendar__ReactDayPicker__Caption___NSV9c\",\"ReactDayPicker__Weekdays\":\"Calendar__ReactDayPicker__Weekdays___IvnL_\",\"ReactDayPicker__WeekdaysRow\":\"Calendar__ReactDayPicker__WeekdaysRow___JuDh1\",\"ReactDayPicker__Weekday\":\"Calendar__ReactDayPicker__Weekday___upHv2\",\"ReactDayPicker__Body\":\"Calendar__ReactDayPicker__Body___Plfyt\",\"ReactDayPicker__Week\":\"Calendar__ReactDayPicker__Week___qyCML\",\"ReactDayPicker__Day\":\"Calendar__ReactDayPicker__Day___xUDQl\",\"ReactDayPicker__Day--today\":\"Calendar__ReactDayPicker__Day--today___PFF5x\",\"ReactDayPicker__Day--disabled\":\"Calendar__ReactDayPicker__Day--disabled___kTvo1\",\"ReactDayPicker__Day--selected\":\"Calendar__ReactDayPicker__Day--selected___RQOMW\",\"DayPicker__Day--outside\":\"Calendar__DayPicker__Day--outside___YYMdp\",\"startAndEnd\":\"Calendar__startAndEnd___W5jHY\",\"start\":\"Calendar__start___cLMCP\",\"end\":\"Calendar__end___sycoU\",\"ReactDayPicker__WeekNumber\":\"Calendar__ReactDayPicker__WeekNumber___MgIcU\",\"ReactDayPicker__Footer\":\"Calendar__ReactDayPicker__Footer___Ehd3g\",\"fadeIn\":\"Calendar__fadeIn___wIk3R\",\"blinking\":\"Calendar__blinking___JF3vS\"};","import React from 'react';\n\ntype RemoteFormRequestT = {\n    isLoading?: boolean;\n};\n\ntype RemoteFormStateT = {\n    hasChanges?: boolean;\n    hasErrors?: boolean;\n};\n\ntype RemoteFormCallbacksT = {\n    submit?: () => void;\n    reset?: () => void;\n    touchAllFields?: () => void;\n};\n\nexport type RemoteFormActionsT = {\n    remoteFormState?: RemoteFormStateT;\n    setRemoteFormState?: (remoteFormState: RemoteFormStateT) => void;\n    remoteFormCallbacks?: RemoteFormCallbacksT;\n    setRemoteFormCallbacks?: (remoteFormCallbacks: RemoteFormCallbacksT) => void;\n    remoteFormRequest?: RemoteFormRequestT;\n    setRemoteFormRequest?: (remoteFormRequest: RemoteFormRequestT) => void;\n};\n\nconst useRemoteFormActions = (): RemoteFormActionsT => {\n    const [remoteFormState, setRemoteFormState] = React.useState<RemoteFormStateT>({});\n    const [remoteFormCallbacks, setRemoteFormCallbacks] = React.useState<RemoteFormCallbacksT>({});\n    const [remoteFormRequest, setRemoteFormRequest] = React.useState<RemoteFormRequestT>({});\n\n    return {\n        remoteFormState,\n        setRemoteFormState,\n        remoteFormCallbacks,\n        setRemoteFormCallbacks,\n        remoteFormRequest,\n        setRemoteFormRequest,\n    };\n};\n\nexport default useRemoteFormActions;\n","import { GPSTrackingStatusStateT } from './types';\nimport { SharableStateT } from '../models';\nimport { GPStatusEnum } from 'common/store/gps-tracking-status/constants';\n\nexport const selectGPSCheckQuery = (state: SharableStateT): GPSTrackingStatusStateT['query'] =>\n    state.gpsTrackingStatus.query;\n\nexport const selectGPSCheckStatus = (state: SharableStateT): GPSTrackingStatusStateT['requestStatus'] =>\n    state.gpsTrackingStatus.requestStatus;\n\nexport const selectGPSCheckData = (state: SharableStateT): GPSTrackingStatusStateT['data'] =>\n    state.gpsTrackingStatus.data;\n\nexport const selectGPSIsChecking = (state: SharableStateT): boolean => {\n    const { requestStatus } = state.gpsTrackingStatus;\n\n    return requestStatus.loading;\n};\n\nexport const selectGPSStatus = (state: SharableStateT): GPStatusEnum | null => {\n    const { requestStatus, data } = state.gpsTrackingStatus;\n\n    if (requestStatus.ok && data?.hasGps) {\n        return GPStatusEnum.enabled;\n    }\n\n    if (requestStatus.error || (data && !data.hasGps)) {\n        return GPStatusEnum.unable;\n    }\n\n    return null;\n};\n","import { v4 as uuidv4 } from 'uuid';\nimport { FieldsEnum, RoutePointFieldsEnum, RoutePointFormValuesT } from './constants';\nimport { ApiTourUpdateStopDataT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { ContextRoutePointAliasT } from '../../../../store/order-edit-context/models';\n\nexport const generatePointFakeId = (): string => {\n    return uuidv4();\n};\n\nexport const getRoutePointFieldName = <T extends RoutePointFieldsEnum>(\n    pointIndex: number,\n    routePointField: T,\n): `${FieldsEnum.route}.${number}.${T}` => {\n    return `${FieldsEnum.route}.${pointIndex}.${routePointField}`;\n};\n\nexport const checkIsAvailableRoutePoint = (routePointValues: RoutePointFormValuesT) => {\n    return !!routePointValues[RoutePointFieldsEnum.location];\n};\n\nexport const getRoutePointTimeWindowHash = (\n    start: ISODateTimeT | null | undefined,\n    end: ISODateTimeT | null | undefined,\n) => {\n    return `${start}-${end}`;\n};\n\nexport const checkIsChangedAddressByCoords = (\n    addressA: ApiTourUpdateStopDataT['address'] | null | undefined,\n    addressB: ApiTourUpdateStopDataT['address'] | null | undefined,\n) => {\n    return Boolean(\n        addressA && addressB && (addressA.latitude !== addressB.latitude || addressA.longitude !== addressB.longitude),\n    );\n};\n\nexport const checkIsAllowToUpdateAddress = (tourUpdateStop: ApiTourUpdateStopDataT | null | undefined) => {\n    return tourUpdateStop ? !!tourUpdateStop.allowToUpdateAddress : true;\n};\n\nexport const checkIsAllowToDelete = (tourUpdateStop: ApiTourUpdateStopDataT | null | undefined) => {\n    return tourUpdateStop ? !!tourUpdateStop.allowToDelete : true;\n};\n\nexport const checkIsAllowToUpdateTimeSlots = (tourUpdateStop: ApiTourUpdateStopDataT | null | undefined) => {\n    return tourUpdateStop ? !!tourUpdateStop.allowToUpdateTimeSlots : false;\n};\n\nexport const getBeforeContextRoutePointAliases = (\n    routeValues: RoutePointFormValuesT[],\n    index: number,\n): ContextRoutePointAliasT[] => {\n    return routeValues.slice(0, index).map((values) => {\n        return values?.[RoutePointFieldsEnum.fakePointId];\n    });\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"NotificationsBarContent__inner___Whqy9\",\"loader\":\"NotificationsBarContent__loader___aDETs\",\"message\":\"NotificationsBarContent__message___QHu3y\",\"message-wrap\":\"NotificationsBarContent__message-wrap___s0QS5\",\"notifications\":\"NotificationsBarContent__notifications___xpKwp\",\"date-group\":\"NotificationsBarContent__date-group___dcpCz\",\"date-group__title\":\"NotificationsBarContent__date-group__title___hQA11\",\"date-group__container\":\"NotificationsBarContent__date-group__container___Z3vey\",\"date-group__item\":\"NotificationsBarContent__date-group__item___sSoSh\",\"fadeIn\":\"NotificationsBarContent__fadeIn___IF377\",\"blinking\":\"NotificationsBarContent__blinking___WlK3E\"};","// extracted by mini-css-extract-plugin\nexport default {\"action\":\"CancelSpotRequestFooter__action___epUmw\",\"fadeIn\":\"CancelSpotRequestFooter__fadeIn___C_0Uy\",\"blinking\":\"CancelSpotRequestFooter__blinking___GyCmj\"};","import history from 'common/utils/history';\nimport { useLocation } from 'react-router-dom';\n\nexport const useStateSafeHistory = () => {\n    const location = useLocation<{}>();\n\n    const replace = (nextLocation: Partial<Location>) => {\n        history.replace({\n            ...location,\n            ...nextLocation,\n        });\n    };\n\n    const push = (nextLocation: Partial<Location>) => {\n        history.push({\n            ...location,\n            ...nextLocation,\n        });\n    };\n\n    return {\n        stateSafeHistory: {\n            replace,\n            push,\n        },\n    };\n};\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {};\n\nconst OriginIcon: React.FC<PropsT> = () => {\n    return (\n        <svg width={20} height={20} viewBox=\"0 0 20 20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <circle cx={10} cy={10} r={10} fill={StyleGuideColorsEnum.dodgerBlue} />\n                <path\n                    fill=\"#FFF\"\n                    fillRule=\"nonzero\"\n                    d=\"M7.775 15l.574-1.86h3.288l.581 1.86h2.577l-3.677-9.953H8.862L5.212 15h2.563zm3.288-3.712h-2.14L9.99 7.836l1.073 3.452z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nOriginIcon.displayName = 'OriginIcon';\n\nconst storyProps: PropsT = {};\n\nexport { storyProps };\nexport default OriginIcon;\n","import { useCallback, useEffect, useRef } from 'react';\n\nconst useDebouncedEffect = (effect: () => void, delay: number, deps: Array<any>) => {\n    const didMount = useRef(false);\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    const callback = useCallback(effect, deps);\n\n    useEffect(() => {\n        // trigger only change\n        if (!didMount.current) {\n            didMount.current = true;\n            return () => {\n                // nothing\n            };\n        }\n\n        const handler = setTimeout(() => {\n            callback();\n        }, delay);\n\n        return () => {\n            clearTimeout(handler);\n        };\n    }, [callback, delay]);\n};\n\nexport default useDebouncedEffect;\n","import * as React from 'react';\n\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport InfoIcon from 'common/icons/InfoIcon';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport { Trans } from 'react-i18next';\n\nconst ReasonLabel: React.FC<{ reason: string }> = ({ reason }) => <span>{reason}</span>;\n\nexport type PropsT = {\n    className?: string;\n    reason: string;\n};\n\nconst ArchiveReasonAlert: React.FC<PropsT> = React.memo((props) => {\n    const { className, reason } = props;\n\n    return (\n        <Alert\n            className={className}\n            icon={<InfoIcon fillColor={StyleGuideColorsEnum.white} />}\n            size={AlertSizeEnum.small}\n            theme={AlertThemeEnum.gray}\n        >\n            <Trans\n                i18nKey=\"common:alerts.archive-reason\"\n                components={{\n                    reason: <ReasonLabel reason={reason} />,\n                }}\n            />\n        </Alert>\n    );\n});\n\nexport default ArchiveReasonAlert;\n","import {\n    RFQDetailsActionT,\n    RFQDetailsByIdStateT,\n    RFQDetailsStateT,\n    FETCH_RFQ_DETAILS_REQUEST_BEGIN,\n    FETCH_RFQ_DETAILS_REQUEST_ERROR,\n    FETCH_RFQ_DETAILS_REQUEST_SUCCESS,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\nimport isEqual from 'lodash/isEqual';\n\nconst initialState: RFQDetailsByIdStateT = {};\n\nexport const initialRFQDetailsState: RFQDetailsStateT = {\n    details: null,\n    suggestedOffer: null,\n    requestStatus: requestStatus.initial,\n};\n\nexport default (state = initialState, action: RFQDetailsActionT | DestroySessionActionT): RFQDetailsByIdStateT => {\n    switch (action.type) {\n        case FETCH_RFQ_DETAILS_REQUEST_BEGIN: {\n            const { id } = action;\n\n            const rfqDetailsState = state[id] || initialRFQDetailsState;\n\n            return {\n                ...state,\n                [id]: {\n                    ...rfqDetailsState,\n                    requestStatus: requestStatus.loading,\n                },\n            };\n        }\n\n        case FETCH_RFQ_DETAILS_REQUEST_ERROR: {\n            const { error, id } = action;\n\n            const rfqDetailsState = state[id] || initialRFQDetailsState;\n\n            return {\n                ...state,\n                [id]: {\n                    ...rfqDetailsState,\n                    requestStatus: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case FETCH_RFQ_DETAILS_REQUEST_SUCCESS: {\n            const { details, suggestedOffer, id } = action;\n\n            const rfqDetailsState = state[id] || initialRFQDetailsState;\n\n            return {\n                ...state,\n                [id]: {\n                    ...rfqDetailsState,\n                    requestStatus: requestStatus.ok,\n                    details: isEqual(details, rfqDetailsState.details) ? rfqDetailsState.details : details,\n                    suggestedOffer,\n                },\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default: {\n            return state;\n        }\n    }\n};\n","import { AnyAlert, AnyAlertPayloadT } from 'common/store/alerts/models';\n\nexport enum BrokerAlertTypeEnum {\n    unknown = 'unknown',\n    transportOrderAssigned = 'transport-order-assigned',\n    assetsAssignedToTour = 'assets-assigned-to-tour',\n    deadheadTourPlaced = 'deadhead-tour-placed',\n    transportOrderCancelled = 'transport-order-cancelled',\n    orderRouteUpdated = 'order-route-updated',\n    tourSentToSpot = 'tour-sent-to-spot',\n    spotRequestCancelled = 'spot-request-cancelled',\n    businessPartnerUpdated = 'business-partner-updated',\n    businessPartnerInvited = 'business-partner-invited',\n    businessPartnerLinkedToExternalProfile = 'business-partner-linked-to-external-profile',\n    businessPartnerUnlinkedFromExternalProfile = 'business-partner-unlinked-from-external-profile',\n    businessPartnerUnlocked = 'business-partner-unlocked',\n    businessPartnerLocked = 'business-partner-locked',\n    businessPartnerAddressVerified = 'business-partner-address-verified',\n    businessPartnerAddressUnverified = 'business-partner-address-unverified',\n}\n\nexport type BrokerAnyAlertPayloadT =\n    | AnyAlertPayloadT<\n          BrokerAlertTypeEnum.unknown,\n          {\n              // TODO\n          }\n      >\n    | AnyAlertPayloadT<BrokerAlertTypeEnum.spotRequestCancelled, {}>\n    | AnyAlertPayloadT<BrokerAlertTypeEnum.tourSentToSpot, {}>\n    | AnyAlertPayloadT<BrokerAlertTypeEnum.businessPartnerUpdated, {}>\n    | AnyAlertPayloadT<BrokerAlertTypeEnum.businessPartnerInvited, {}>\n    | AnyAlertPayloadT<BrokerAlertTypeEnum.businessPartnerLinkedToExternalProfile, {}>\n    | AnyAlertPayloadT<BrokerAlertTypeEnum.businessPartnerUnlinkedFromExternalProfile, {}>\n    | AnyAlertPayloadT<BrokerAlertTypeEnum.businessPartnerUnlocked, {}>\n    | AnyAlertPayloadT<BrokerAlertTypeEnum.businessPartnerLocked, {}>\n    | AnyAlertPayloadT<BrokerAlertTypeEnum.businessPartnerAddressVerified, {}>\n    | AnyAlertPayloadT<BrokerAlertTypeEnum.businessPartnerAddressUnverified, {}>\n    | AnyAlertPayloadT<BrokerAlertTypeEnum.transportOrderAssigned, {}>\n    | AnyAlertPayloadT<BrokerAlertTypeEnum.assetsAssignedToTour, {}>\n    | AnyAlertPayloadT<BrokerAlertTypeEnum.deadheadTourPlaced, {}>\n    | AnyAlertPayloadT<BrokerAlertTypeEnum.transportOrderCancelled, {}>\n    | AnyAlertPayloadT<BrokerAlertTypeEnum.orderRouteUpdated, {}>;\n\nexport class BrokerAnyAlert extends AnyAlert<BrokerAnyAlertPayloadT> {}\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport TooltipIconTrigger from 'design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { formatLocation } from 'common/utils/formatters';\nimport { ApiLocationT } from 'common/utils/api/models';\n\ntype PropsT = {\n    originalLocation: ApiLocationT | null | undefined;\n    className?: string;\n};\n\nconst AddressChangesIndicator: React.FC<PropsT> = React.memo(({ originalLocation, className }) => {\n    const { t } = useTranslation();\n\n    const formattedAddress = formatLocation(originalLocation);\n\n    return (\n        <Tooltip\n            isInline\n            position={TooltipPositionEnum.topCenter}\n            theme={TooltipThemeEnum.black}\n            tooltipNode={\n                <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                    {t('broker-order-route-edit.fields.route-point.tooltip.original-address', {\n                        address: formattedAddress,\n                    })}\n                </TooltipContent>\n            }\n        >\n            {(isShow) => (\n                <TooltipIconTrigger\n                    className={className}\n                    isShow={isShow}\n                    fillColor={StyleGuideColorsEnum.orange}\n                    activeFillColor={StyleGuideColorsEnum.orange}\n                />\n            )}\n        </Tooltip>\n    );\n});\n\nexport default AddressChangesIndicator;\n","import * as React from 'react';\nimport { useMemo } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './TransportOrderDetailsCard.scss';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport Card from 'design-system/components/Card/Card';\nimport { useTranslation } from 'react-i18next';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport CarrierIcon from 'common/icons/CarrierIcon';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport TruckIcon from 'common/icons/TruckIcon';\nimport AssetLinkFormatter from 'design-system/components/InfoTable/formatters/AssetLinkFormatter/AssetLinkFormatter';\nimport AssetLabelFormatter from 'design-system/components/InfoTable/formatters/AssetLabelFormatter/AssetLabelFormatter';\nimport TrailerIcon from 'common/icons/TrailerIcon';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport { ApiTransportationOrderFullT, PartnerTypeEnum } from 'common/utils/api/models';\nimport { logWarning } from 'common/utils/logger';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport DriverIcon from 'common/icons/DriverIcon';\nimport TeamDrive2Icon from 'common/icons/TeamDrive2Icon';\nimport DocIcon from 'common/icons/DocIcon';\nimport TransportOrderStatusPill from 'common/components/status-pill/TransportOrderStatusPill/TransportOrderStatusPill';\nimport CarrierCostPriceInfoTable from 'broker-admin/components/info-tables/CarrierCostPriceInfoTable/CarrierCostPriceInfoTable';\nimport SimpleDriverFormatter from 'design-system/components/InfoTable/formatters/SimpleDriverFormatter/SimpleDriverFormatter';\nimport ChangeTransportOrderStatusControl from 'broker-admin/components/status-machine/ChangeTransportOrderStatusControl/ChangeTransportOrderStatusControl';\nimport LinkFormatter from 'design-system/components/InfoTable/formatters/LinkFormatter/LinkFormatter';\n\nexport type PropsT = {\n    transportOrderNumber: string;\n    transportOrderDetails: ApiTransportationOrderFullT | null | undefined;\n    keyboardShortcut?: string;\n    className?: string;\n};\n\nconst cx = classNames.bind(styles);\n\nconst TransportOrderDetailsCard: React.FC<PropsT> = React.memo((props) => {\n    const { transportOrderNumber, transportOrderDetails, keyboardShortcut, className } = props;\n\n    const { t } = useTranslation();\n\n    const carrier = transportOrderDetails?.carrier || null;\n    const truck = transportOrderDetails?.truck || null;\n    const trailer = transportOrderDetails?.trailer || null;\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const handleOpenTrailerDetails = () => {\n        if (!trailer?.id || !carrier?.id) {\n            logWarning('failed to open trailer details, empty trailer');\n            return;\n        }\n\n        openLeftSidebar(\n            {\n                type: CommonSidebarsTypeEnum.trailerDetails,\n                trailerId: trailer.id,\n                partnerId: carrier.id,\n            },\n            {\n                isForceShowBackAction: true,\n            },\n        );\n    };\n\n    const handleOpenTruckDetails = () => {\n        if (!truck?.id || !carrier?.id) {\n            logWarning('failed to open trailer details, empty truck');\n            return;\n        }\n\n        openLeftSidebar(\n            {\n                type: CommonSidebarsTypeEnum.truckDetails,\n                truckId: truck.id,\n                partnerId: carrier.id,\n            },\n            {\n                isForceShowBackAction: true,\n            },\n        );\n    };\n\n    const mainDriver = transportOrderDetails?.drivers?.[0] || null;\n\n    const teamDrivers = useMemo(() => {\n        const shouldShowTeamDrivers = !!transportOrderDetails?.teamDrive;\n        if (!shouldShowTeamDrivers) {\n            return [];\n        }\n\n        const drivers = transportOrderDetails?.drivers?.slice(1) || [];\n        return drivers?.length ? drivers : [null];\n    }, [transportOrderDetails]);\n\n    const moveDetails: Array<InfoTableRowT | null> = [\n        {\n            icon: (\n                <TruckIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                    fillColor={StyleGuideColorsEnum.light}\n                />\n            ),\n            name: t('broker-order-details.transport-order-details.columns.truck'),\n            value: truck ? (\n                <AssetLinkFormatter assetId={truck?.id} onOpenAssetDetails={handleOpenTruckDetails}>\n                    <AssetLabelFormatter model={truck?.dictTruckInfo?.model} plateNumber={truck?.plateNumber} />\n                </AssetLinkFormatter>\n            ) : null,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.truck-not-assigned'), isBold: true },\n        },\n        {\n            icon: (\n                <TrailerIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                    fillColor={StyleGuideColorsEnum.light}\n                />\n            ),\n            name: t('broker-order-details.transport-order-details.columns.trailer'),\n            value: trailer ? (\n                <AssetLinkFormatter assetId={trailer?.id} onOpenAssetDetails={handleOpenTrailerDetails}>\n                    <AssetLabelFormatter model={trailer?.dictTrailerInfo?.model} plateNumber={trailer?.plateNumber} />\n                </AssetLinkFormatter>\n            ) : null,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.trailer-not-assigned'), isBold: true },\n        },\n        {\n            icon: <DriverIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.gray} />,\n            name: t('broker-order-details.transport-order-details.columns.driver'),\n            value: mainDriver ? <SimpleDriverFormatter driver={mainDriver} /> : null,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.driver-not-assigned'), isBold: true },\n        },\n        ...teamDrivers.map((driver) => ({\n            icon: <TeamDrive2Icon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.gray} />,\n            name: t('broker-order-details.transport-order-details.columns.team-driver'),\n            value: driver ? <SimpleDriverFormatter driver={driver} /> : null,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.driver-not-assigned'), isBold: true },\n        })),\n        {\n            icon: <DocIcon strokeColor={StyleGuideColorsEnum.gray} />,\n            name: t('broker-order-details.transport-order-details.columns.tour'),\n            value: transportOrderDetails?.tourId ? (\n                <LinkFormatter to={urlFactory.brokerTourDetails(transportOrderDetails.tourId)}>\n                    {transportOrderDetails?.tourNumber}\n                </LinkFormatter>\n            ) : null,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.assets-not-assigned'), isBold: true },\n        },\n    ];\n\n    const carrierDetails: Array<InfoTableRowT> = [\n        {\n            icon: <CarrierIcon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.gray} />,\n            name: t('broker-order-details.transport-order-details.columns.carrier'),\n            value: carrier?.id ? (\n                <Link\n                    to={urlFactory.partnerDetails(PartnerTypeEnum.carrier, carrier.id)}\n                    className={cx('link')}\n                    theme={LinkThemeEnum.boldBrandDark}\n                >\n                    {carrier?.name}\n                </Link>\n            ) : null,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.carrier-not-assigned'), isBold: true },\n        },\n    ];\n\n    return (\n        <>\n            <Card\n                titleNode={t('broker-order-details.transport-order-details.title', {\n                    number: transportOrderNumber,\n                })}\n                rightNode={\n                    <>\n                        <TransportOrderStatusPill isSymmetrical status={transportOrderDetails?.status} />\n                        <ChangeTransportOrderStatusControl\n                            cancelByBrokerUnavailableReason={transportOrderDetails?.cancelByBrokerUnavailableReason}\n                            transportOrderId={transportOrderDetails?.id || null}\n                        />\n                    </>\n                }\n                className={className}\n                hasHeaderBottomBorder\n                keyboardShortcut={keyboardShortcut}\n            >\n                <div className={cx('content')}>\n                    <InfoTable shouldRenderIcons rows={carrierDetails} className={cx('table', 'table--carrier')} />\n                    <InfoTable shouldRenderIcons rows={moveDetails} className={cx('table', 'table--move')} />\n                    <CarrierCostPriceInfoTable\n                        className={cx('table', 'table--carrier-cost')}\n                        totalPrice={transportOrderDetails?.carrierCost?.totalCost}\n                        totalPriceLabel={t('broker-order-details.transport-order-details.carrier-cost')}\n                        lineHaulCost={transportOrderDetails?.carrierCost?.lineHaul}\n                        tollCost={transportOrderDetails?.carrierCost?.toll?.totalCost}\n                        tollByRoadType={transportOrderDetails?.carrierCost?.toll?.byRoadType}\n                        co2={transportOrderDetails?.carrierCost?.co2}\n                        layoverCost={transportOrderDetails?.carrierCost?.layover?.totalCost}\n                        layoverSeconds={transportOrderDetails?.carrierCost?.layover?.totalSeconds}\n                        layoverPaidHours={transportOrderDetails?.carrierCost?.layover?.paidHours}\n                        fuelDetails={transportOrderDetails?.carrierCost?.fuel}\n                        teamDriveCost={transportOrderDetails?.carrierCost?.teamDriveCost}\n                        travelHours={transportOrderDetails?.carrierCost?.teamDriveHours}\n                        additionalServiceItems={transportOrderDetails?.carrierCost?.additionalServices?.items}\n                        deadheadLineHaulCost={transportOrderDetails?.carrierCost?.deadhead?.lineHaul}\n                        payloadLineHaulCost={transportOrderDetails?.carrierCost?.payload?.lineHaul}\n                        appliedRules={transportOrderDetails?.carrierCost?.appliedRules}\n                    />\n                </div>\n            </Card>\n        </>\n    );\n});\n\nexport default TransportOrderDetailsCard;\n","import { RequestStatusT } from 'common/utils/request-status';\nimport { SharableDocumentsStateT } from 'common/store/models';\n\nimport { CompanyDocumentsStateT } from './types';\nimport { initialCompanyDocumentsState } from './reducer';\nimport { EvidenceOfTaxDetailsT } from 'common/store/documents/models';\n\nconst selectDocumentsState = (companyId: CompanyIdT | null, state: SharableDocumentsStateT): CompanyDocumentsStateT => {\n    if (!companyId) {\n        return initialCompanyDocumentsState;\n    }\n\n    return state.documents[companyId] || initialCompanyDocumentsState;\n};\n\nexport const selectCompanyDocumentIdsByType =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableDocumentsStateT): CompanyDocumentsStateT['idsByType'] =>\n        selectDocumentsState(companyId, state).idsByType || ({} as CompanyDocumentsStateT['idsByType']);\n\nexport const selectCompanyDocumentsById =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableDocumentsStateT): CompanyDocumentsStateT['byId'] =>\n        selectDocumentsState(companyId, state).byId || {};\n\nexport const selectFetchCompanyDocumentsRequest =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableDocumentsStateT): RequestStatusT =>\n        selectDocumentsState(companyId, state).fetchDocumentsRequest;\n\nexport const selectUploadCompanyDocumentsRequest =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableDocumentsStateT): RequestStatusT =>\n        selectDocumentsState(companyId, state).uploadRequest;\n\nexport const selectUploadingDictDocumentId =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableDocumentsStateT): DictDocumentFakeIdT | null =>\n        selectDocumentsState(companyId, state).uploadingDictDocumentId;\n\nexport const selectUpdateCompanyDocumentsRequest =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableDocumentsStateT): RequestStatusT =>\n        selectDocumentsState(companyId, state).updateRequest;\n\nexport const selectUpdatingDocumentId =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableDocumentsStateT): DictDocumentFakeIdT | null =>\n        selectDocumentsState(companyId, state).updatingDocumentId;\n\nexport const selectFetchEvidenceOfTaxDetailsRequest =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableDocumentsStateT): RequestStatusT =>\n        selectDocumentsState(companyId, state).fetchEvidenceOfTaxDetailsRequest;\n\nexport const selectFetchEvidenceOfTaxDetails =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableDocumentsStateT): EvidenceOfTaxDetailsT | null =>\n        selectDocumentsState(companyId, state).evidenceOfTaxDetails;\n\nexport const selectUpdateEvidenceOfTaxDetailsRequest =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableDocumentsStateT): RequestStatusT =>\n        selectDocumentsState(companyId, state).updateEvidenceOfTaxDetailsRequest;\n","import { ErrorActionT } from './models';\n\nexport const CLOSE_ERROR_MODAL = 'common/errors/CLOSE_ERROR_MODAL';\nexport const OPEN_ERROR_MODAL = 'common/errors/OPEN_ERROR_MODAL';\nexport const RESET_LOGS = 'common/errors/RESET_LOGS';\n\nexport type ErrorsStateT = {\n    logs: Array<ErrorActionT>;\n    isShowErrorModal: boolean;\n};\n\nexport type CloseErrorModalActionT = {\n    type: typeof CLOSE_ERROR_MODAL;\n};\n\nexport type OpenErrorModalActionT = {\n    type: typeof OPEN_ERROR_MODAL;\n};\n\nexport type ResetErrorLogsActionT = {\n    type: typeof RESET_LOGS;\n};\n\nexport type ErrorsActionT = CloseErrorModalActionT | OpenErrorModalActionT | ResetErrorLogsActionT;\n","// extracted by mini-css-extract-plugin\nexport default {\"table--id\":\"ShipmentDetailsCard__table--id___YsG1a\",\"table--po\":\"ShipmentDetailsCard__table--po___IGvGm\",\"table--point\":\"ShipmentDetailsCard__table--point___mqwNx\",\"table--shipment\":\"ShipmentDetailsCard__table--shipment___DpZvv\",\"table\":\"ShipmentDetailsCard__table___S0dbm\",\"fadeIn\":\"ShipmentDetailsCard__fadeIn___yNTcX\",\"blinking\":\"ShipmentDetailsCard__blinking___YpieH\"};","import * as React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './MapStackClusterPin.scss';\nimport MapPin, { MapPinThemeEnum, MapPointPropsT } from 'common/components/maps/MapPin/MapPin';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    lat?: number | undefined;\n    lng?: number | undefined;\n    className?: string;\n    pointProps: Array<Partial<MapPointPropsT>>;\n    clusterId: number;\n    onClusterClick: (clusterId: number) => void;\n    withoutArrow?: boolean;\n};\n\nconst VERTICAL_SHIFT_PX = 10;\nconst BASE_HEIGHT_PX = 45;\n\nconst MapStackClusterPin: React.FC<PropsT> = React.memo((props) => {\n    const { className, pointProps, clusterId, onClusterClick, withoutArrow } = props;\n\n    if (!pointProps || !pointProps?.length) {\n        return null;\n    }\n\n    return (\n        <div\n            className={cs(cx('wrap'), className)}\n            style={{\n                top: -1 * (BASE_HEIGHT_PX / 2 + (withoutArrow ? 0 : VERTICAL_SHIFT_PX * (pointProps?.length || 0))),\n            }}\n            onClick={() => {\n                onClusterClick(clusterId);\n            }}\n        >\n            {pointProps.map(({ className, style, ...restProps }, index) => {\n                const verticalIndex = pointProps.length - 1 - index;\n\n                return (\n                    <MapPin\n                        hasPaddings\n                        hasBorder\n                        key={index}\n                        className={cs(cx('pin'), className)}\n                        withoutArrow={withoutArrow || verticalIndex !== 0}\n                        style={{\n                            ...style,\n                            top: -1 * VERTICAL_SHIFT_PX * verticalIndex,\n                        }}\n                        theme={MapPinThemeEnum.charcoal}\n                        {...restProps}\n                    />\n                );\n            })}\n        </div>\n    );\n});\n\nexport default MapStackClusterPin;\n","import requestStatus from 'common/utils/request-status';\nimport {\n    ASSIGNMENT_REQUEST_BEGIN,\n    ASSIGNMENT_REQUEST_ERROR,\n    ASSIGNMENT_REQUEST_SUCCESS,\n    CHANGE_USER_SELECTION,\n    FIND_TRAILER_REQUEST_BEGIN,\n    FIND_TRAILER_REQUEST_ERROR,\n    FIND_TRAILER_REQUEST_SUCCESS,\n    FIND_TRUCK_REQUEST_BEGIN,\n    FIND_TRUCK_REQUEST_ERROR,\n    FIND_TRUCK_REQUEST_SUCCESS,\n    SpotAssetsAssignmentActionT,\n    SpotAssetsAssignmentStateT,\n} from './types';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\nimport { checkIsSameQuery } from 'common/utils/pagination/utils';\nimport { getAssignmentVehicleLinks, getTrailerById, getTruckById } from './assignment';\n\nconst initialUserSelectionValues: SpotAssetsAssignmentStateT['userSelection'] = {\n    truckId: null,\n    trailerId: null,\n};\n\nconst initialState: SpotAssetsAssignmentStateT = {\n    userSelection: initialUserSelectionValues,\n    trailerById: {},\n    truckById: {},\n    truckSuggest: {\n        query: null,\n        requestStatus: requestStatus.initial,\n        ids: [],\n    },\n    trailerSuggest: {\n        query: null,\n        requestStatus: requestStatus.initial,\n        ids: [],\n    },\n    links: {\n        byTruckId: {},\n        byTrailerId: {},\n    },\n    assigmentStatus: requestStatus.initial,\n};\n\nexport default (\n    state = initialState,\n    action: SpotAssetsAssignmentActionT | DestroySessionActionT,\n): SpotAssetsAssignmentStateT => {\n    switch (action.type) {\n        case CHANGE_USER_SELECTION: {\n            const { changes } = action;\n            const { userSelection: prevUserSelection } = state;\n\n            const newUserSelection = {\n                ...prevUserSelection,\n                ...changes,\n            };\n\n            const isPrevSelectedLink =\n                state.links.byTruckId[prevUserSelection.truckId as string] &&\n                state.links.byTrailerId[prevUserSelection.trailerId as string];\n            if (isPrevSelectedLink && 'trailerId' in changes && !('truckId' in changes)) {\n                newUserSelection.truckId = null;\n            }\n\n            if (isPrevSelectedLink && !('trailerId' in changes) && 'truckId' in changes) {\n                newUserSelection.trailerId = null;\n            }\n\n            return {\n                ...state,\n                userSelection: newUserSelection,\n            };\n        }\n\n        case FIND_TRAILER_REQUEST_BEGIN: {\n            const { query } = action;\n\n            return {\n                ...state,\n                trailerSuggest: {\n                    ...state.trailerSuggest,\n                    query,\n                    requestStatus: requestStatus.loading,\n                },\n            };\n        }\n\n        case FIND_TRAILER_REQUEST_ERROR: {\n            const { error, query } = action;\n\n            if (!checkIsSameQuery(state.trailerSuggest.query, query)) {\n                return state;\n            }\n\n            return {\n                ...state,\n                trailerSuggest: {\n                    ...state.trailerSuggest,\n                    requestStatus: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case FIND_TRAILER_REQUEST_SUCCESS: {\n            const { trailersSuggestItems, query } = action;\n\n            if (!checkIsSameQuery(state.trailerSuggest.query, query)) {\n                return state;\n            }\n\n            const ids = trailersSuggestItems.reduce((result, trailersSuggestItem) => {\n                const trailerId = trailersSuggestItem.trailer?.id;\n                if (trailerId) {\n                    result.push(trailerId);\n                }\n\n                return result;\n            }, [] as TrailerIdT[]);\n\n            const trailerById = getTrailerById(trailersSuggestItems);\n            const truckById = getTruckById(trailersSuggestItems);\n            const links = getAssignmentVehicleLinks(trailersSuggestItems);\n\n            return {\n                ...state,\n                links: {\n                    byTruckId: {\n                        ...state.links.byTruckId,\n                        ...links.byTruckId,\n                    },\n                    byTrailerId: {\n                        ...state.links.byTrailerId,\n                        ...links.byTrailerId,\n                    },\n                },\n                trailerById: {\n                    ...state.trailerById,\n                    ...trailerById,\n                },\n                truckById: {\n                    ...state.truckById,\n                    ...truckById,\n                },\n                trailerSuggest: {\n                    ...state.trailerSuggest,\n                    requestStatus: requestStatus.ok,\n                    ids,\n                },\n            };\n        }\n\n        case FIND_TRUCK_REQUEST_BEGIN: {\n            const { query } = action;\n\n            return {\n                ...state,\n                truckSuggest: {\n                    ...state.truckSuggest,\n                    query,\n                    requestStatus: requestStatus.loading,\n                },\n            };\n        }\n\n        case FIND_TRUCK_REQUEST_ERROR: {\n            const { error, query } = action;\n\n            if (!checkIsSameQuery(state.truckSuggest.query, query)) {\n                return state;\n            }\n\n            return {\n                ...state,\n                truckSuggest: {\n                    ...state.truckSuggest,\n                    requestStatus: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case FIND_TRUCK_REQUEST_SUCCESS: {\n            const { trucksSuggestItems, query } = action;\n\n            if (!checkIsSameQuery(state.truckSuggest.query, query)) {\n                return state;\n            }\n\n            const ids = trucksSuggestItems.reduce((result, trucksSuggestItem) => {\n                const truckId = trucksSuggestItem.truck?.id;\n                if (truckId) {\n                    result.push(truckId);\n                }\n\n                return result;\n            }, [] as TruckIdT[]);\n\n            const trailerById = getTrailerById(trucksSuggestItems);\n            const truckById = getTruckById(trucksSuggestItems);\n            const links = getAssignmentVehicleLinks(trucksSuggestItems);\n\n            return {\n                ...state,\n                links: {\n                    byTruckId: {\n                        ...state.links.byTruckId,\n                        ...links.byTruckId,\n                    },\n                    byTrailerId: {\n                        ...state.links.byTrailerId,\n                        ...links.byTrailerId,\n                    },\n                },\n                trailerById: {\n                    ...state.trailerById,\n                    ...trailerById,\n                },\n                truckById: {\n                    ...state.truckById,\n                    ...truckById,\n                },\n                truckSuggest: {\n                    ...state.truckSuggest,\n                    requestStatus: requestStatus.ok,\n                    ids,\n                },\n            };\n        }\n\n        case ASSIGNMENT_REQUEST_BEGIN: {\n            return {\n                ...state,\n                assigmentStatus: requestStatus.loading,\n            };\n        }\n\n        case ASSIGNMENT_REQUEST_SUCCESS: {\n            return {\n                ...state,\n                assigmentStatus: requestStatus.ok,\n            };\n        }\n\n        case ASSIGNMENT_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                assigmentStatus: requestStatus.setError(error),\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default:\n            return state;\n    }\n};\n","export enum FieldsEnum {\n    reason = 'reason',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.reason]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import { DoneStatisticT, FetchStatisticsQueryT, RejectStatisticT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport const FETCH_STATISTICS_REQUEST = 'broker-admin/statistics/FETCH_STATISTICS_REQUEST';\nexport const FETCH_STATISTICS_REQUEST_BEGIN = 'broker-admin/statistics/FETCH_STATISTICS_REQUEST_BEGIN';\nexport const FETCH_DONE_STATISTICS_REQUEST_BEGIN = 'broker-admin/statistics/FETCH_DONE_STATISTICS_REQUEST_BEGIN';\nexport const FETCH_DONE_STATISTICS_REQUEST_ERROR = 'broker-admin/statistics/FETCH_DONE_STATISTICS_REQUEST_ERROR';\nexport const FETCH_DONE_STATISTICS_REQUEST_SUCCESS = 'broker-admin/statistics/FETCH_DONE_STATISTICS_REQUEST_SUCCESS';\nexport const FETCH_REJECT_STATISTICS_REQUEST_BEGIN = 'broker-admin/statistics/FETCH_REJECT_STATISTICS_REQUEST_BEGIN';\nexport const FETCH_REJECT_STATISTICS_REQUEST_ERROR = 'broker-admin/statistics/FETCH_REJECT_STATISTICS_REQUEST_ERROR';\nexport const FETCH_REJECT_STATISTICS_REQUEST_SUCCESS =\n    'broker-admin/statistics/FETCH_REJECT_STATISTICS_REQUEST_SUCCESS';\n\nexport type StatisticsStateT = {\n    fetchQuery: FetchStatisticsQueryT | null;\n    rejectData: RejectStatisticT | null;\n    rejectRequestStatus: RequestStatusT;\n    doneData: DoneStatisticT | null;\n    doneRequestStatus: RequestStatusT;\n};\n\nexport type FetchStatisticsRequestActionT = {\n    type: typeof FETCH_STATISTICS_REQUEST;\n    query: FetchStatisticsQueryT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchStatisticsRequestBeginActionT = {\n    type: typeof FETCH_STATISTICS_REQUEST_BEGIN;\n    query: FetchStatisticsQueryT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchDoneStatisticsRequestBeginActionT = {\n    type: typeof FETCH_DONE_STATISTICS_REQUEST_BEGIN;\n    query: FetchStatisticsQueryT;\n};\n\nexport type FetchDoneStatisticsRequestErrorActionT = {\n    type: typeof FETCH_DONE_STATISTICS_REQUEST_ERROR;\n    query: FetchStatisticsQueryT;\n    error: Error;\n};\n\nexport type FetchDoneStatisticsRequestSuccessActionT = {\n    type: typeof FETCH_DONE_STATISTICS_REQUEST_SUCCESS;\n    query: FetchStatisticsQueryT;\n    statistic: DoneStatisticT | null;\n};\n\nexport type FetchRejectStatisticsRequestBeginActionT = {\n    type: typeof FETCH_REJECT_STATISTICS_REQUEST_BEGIN;\n    query: FetchStatisticsQueryT;\n};\n\nexport type FetchRejectStatisticsRequestErrorActionT = {\n    type: typeof FETCH_REJECT_STATISTICS_REQUEST_ERROR;\n    query: FetchStatisticsQueryT;\n    error: Error;\n};\n\nexport type FetchRejectStatisticsRequestSuccessActionT = {\n    type: typeof FETCH_REJECT_STATISTICS_REQUEST_SUCCESS;\n    query: FetchStatisticsQueryT;\n    statistic: RejectStatisticT | null;\n};\n\nexport type StatisticsActionT =\n    | FetchStatisticsRequestActionT\n    | FetchStatisticsRequestBeginActionT\n    | FetchDoneStatisticsRequestBeginActionT\n    | FetchDoneStatisticsRequestErrorActionT\n    | FetchDoneStatisticsRequestSuccessActionT\n    | FetchRejectStatisticsRequestBeginActionT\n    | FetchRejectStatisticsRequestErrorActionT\n    | FetchRejectStatisticsRequestSuccessActionT;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './StatusCell.scss';\nimport { ApiTruckT } from 'common/store/trucks/models';\nimport TruckStatusPill from 'common/components/status-pill/TruckStatusPill/TruckStatusPill';\n\ntype PropsT = {\n    truck: ApiTruckT;\n    className?: string;\n};\n\nconst cx = classNames.bind(styles);\n\nconst StatusCell: React.FC<PropsT> = React.memo((props) => {\n    const { truck, className } = props;\n\n    return (\n        <div className={cx('status')}>\n            <TruckStatusPill isSymmetrical className={className} status={truck?.status} />\n        </div>\n    );\n});\n\nexport default StatusCell;\n","// extracted by mini-css-extract-plugin\nexport default {\"textarea\":\"RevokeShipperContractConfirmation__textarea___p9d6p\",\"fadeIn\":\"RevokeShipperContractConfirmation__fadeIn___rjDkg\",\"blinking\":\"RevokeShipperContractConfirmation__blinking___whnga\"};","import { SharableStateT } from '../models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { TrailersDictT } from './models';\nimport { TrailerTypeEnum } from '../../constants';\nimport flatten from 'lodash/flatten';\nimport keyBy from 'lodash/keyBy';\nimport { ApiTrailerDictTypeT } from 'common/utils/api/models';\nimport { createSelector } from 'reselect';\n\nexport const selectTrailersDict = (state: SharableStateT): TrailersDictT | null => state.trailersDict.trailersDict;\n\nexport const selectTrailersDictRequest = (state: SharableStateT): RequestStatusT =>\n    state.trailersDict.trailersDictRequest;\n\nexport const selectAllTrailersTypes = createSelector(selectTrailersDict, (trailersDict): Array<TrailerTypeEnum> => {\n    return Object.keys(trailersDict || {}) as Array<TrailerTypeEnum>;\n});\n\nexport const selectTrailersDictList = createSelector(selectTrailersDict, (trailersDict): Array<ApiTrailerDictTypeT> => {\n    return flatten(Object.values(trailersDict || {}));\n});\n\nexport const selectTrailerDictTypeIds = createSelector(\n    selectTrailersDictList,\n    (trailersDictList): Array<TrailerDictIdT> => {\n        return trailersDictList.map((trailerType) => String(trailerType?.id));\n    },\n);\n\nexport const selectTrailersDictById = createSelector(\n    selectTrailersDictList,\n    (trailersDictList): Record<string, ApiTrailerDictTypeT> => {\n        return keyBy(trailersDictList, 'id');\n    },\n);\n","import { FieldsEnum, FormValuesT } from './constants';\n\nexport type FormDataT = {\n    reason: string;\n};\n\nconst prepareData = (formValues: FormValuesT): FormDataT => {\n    return {\n        reason: formValues[FieldsEnum.reason] || '',\n    };\n};\n\nexport { prepareData };\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkMaxLength, checkMinLength, checkNotEmpty, checkPhoneNumber } from 'common/utils/form-validators';\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    let errors: FormErrorsT = {\n        ...checkNotEmpty(t, [FieldsEnum.firstName, FieldsEnum.lastName], values),\n        ...checkMinLength(t, [FieldsEnum.firstName, FieldsEnum.lastName], values, 2),\n        ...checkMaxLength(t, [FieldsEnum.firstName, FieldsEnum.lastName], values, 255),\n        ...checkPhoneNumber(t, [FieldsEnum.phoneNumber], values),\n    };\n\n    if (!values[FieldsEnum.currentPassword] && !!values[FieldsEnum.newPassword]) {\n        errors = {\n            ...errors,\n            [FieldsEnum.currentPassword]: t('common:form-errors.required'),\n        };\n    }\n\n    if (values[FieldsEnum.currentPassword]) {\n        errors = {\n            ...errors,\n            ...checkMinLength(t, [FieldsEnum.currentPassword], values, 6),\n            ...checkMaxLength(t, [FieldsEnum.currentPassword], values, 255),\n        };\n    }\n\n    if (values[FieldsEnum.newPassword]) {\n        errors = {\n            ...errors,\n            ...checkMinLength(t, [FieldsEnum.newPassword], values, 6),\n            ...checkMaxLength(t, [FieldsEnum.newPassword], values, 255),\n        };\n    }\n\n    return errors;\n};\n\nexport default validate;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { getDateFromDate } from 'common/utils/time';\nimport { PreviewCurrentRuleT, RulePreviewRequestT } from 'broker-admin/store/price-settings/rules/models';\nimport { PriceRuleTypeEnum } from 'common/utils/api/models';\n\nconst prepareApiRulePreview = (\n    ruleId: RuleIdT | null,\n    previewCurrentRule: PreviewCurrentRuleT | null,\n    formValues: FormValuesT,\n): RulePreviewRequestT | null => {\n    const ruleType = formValues[FieldsEnum.ruleType];\n    const countryFrom = formValues[FieldsEnum.countryFrom];\n    const countryTo = formValues[FieldsEnum.countryTo];\n    const dictTrailerId = formValues[FieldsEnum.dictTrailerId];\n    if (!ruleType || !countryFrom || !countryTo || !dictTrailerId) {\n        return null;\n    }\n\n    const date = formValues[FieldsEnum.date];\n    const formattedDate = date ? `${getDateFromDate(date)}T12:00:00.000Z` : null;\n    if (!formattedDate) {\n        return null;\n    }\n\n    if (ruleType === PriceRuleTypeEnum.custom) {\n        return null;\n    }\n\n    let companyId: RulePreviewRequestT['companyId'];\n    if (ruleType === PriceRuleTypeEnum.carrier) {\n        companyId = formValues[FieldsEnum.carrierId] || undefined;\n    }\n    if (ruleType === PriceRuleTypeEnum.shipper) {\n        companyId = formValues[FieldsEnum.shipperId] || undefined;\n    }\n\n    return {\n        companyId,\n        countryFrom,\n        countryTo,\n        pickUpDate: formattedDate,\n        ruleType,\n        trailerTypeId: +dictTrailerId,\n        currentRule: previewCurrentRule\n            ? {\n                  id: ruleId ? +ruleId : undefined,\n                  ...previewCurrentRule,\n              }\n            : undefined,\n    };\n};\n\nexport default prepareApiRulePreview;\n","import {\n    DOCUMENTS_DICT_REQUEST_BEGIN,\n    DOCUMENTS_DICT_REQUEST_ERROR,\n    DOCUMENTS_DICT_REQUEST_SUCCESS,\n    DocumentsDictActionT,\n    DocumentsDictStateT,\n    PartnerTypeDocumentsStateT,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { isNonNil } from 'common/utils';\nimport keyBy from 'lodash/keyBy';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nexport const initialPartnerTypeDocumentsState: PartnerTypeDocumentsStateT = {\n    ids: [],\n    byId: {},\n    byType: {},\n    fetchRequest: requestStatus.initial,\n};\n\nconst initialState: DocumentsDictStateT = {};\n\nexport default (state = initialState, action: DocumentsDictActionT | DestroySessionActionT): DocumentsDictStateT => {\n    switch (action.type) {\n        case DOCUMENTS_DICT_REQUEST_BEGIN: {\n            const { partnerType } = action;\n\n            const currentPartnerTypeState = state[partnerType] || initialPartnerTypeDocumentsState;\n\n            return {\n                ...state,\n                [partnerType]: {\n                    ...currentPartnerTypeState,\n                    fetchRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case DOCUMENTS_DICT_REQUEST_SUCCESS: {\n            const { partnerType, documentsList } = action;\n\n            const currentPartnerTypeState = state[partnerType] || initialPartnerTypeDocumentsState;\n\n            const ids = documentsList.map((document) => document?.id).filter(isNonNil);\n            const byId = keyBy(documentsList, 'id');\n            const byType = keyBy(documentsList, 'type');\n\n            return {\n                ...state,\n                [partnerType]: {\n                    ...currentPartnerTypeState,\n                    ids,\n                    byId,\n                    byType,\n                    fetchRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case DOCUMENTS_DICT_REQUEST_ERROR: {\n            const { error, partnerType } = action;\n\n            const currentPartnerTypeState = state[partnerType] || initialPartnerTypeDocumentsState;\n\n            return {\n                ...state,\n                [partnerType]: {\n                    ...currentPartnerTypeState,\n                    fetchRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default: {\n            return state;\n        }\n    }\n};\n","import * as React from 'react';\nimport { useMemo } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ShipperContractLaneCreationMap.scss';\nimport GoogleMapReact, { ClickEventValue } from 'google-map-react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { BOOTSTRAP_URL_KEYS, DEFAULT_CENTER, DEFAULT_ZOOM, MAP_OPTIONS } from 'common/store/constants';\nimport DestinationPinIcon from 'common/icons/DestinationPinIcon';\nimport OriginPinIcon from 'common/icons/OriginPinIcon';\nimport useGoogleMapsApiLoader from 'common/utils/hooks/maps/useGoogleMapsApiLoader';\nimport { useGoogleMapContext } from 'common/utils/hooks/maps/useGoogleMapContext';\nimport Estimate from './Estimate/Estimate';\nimport MapRoute, { MapRouteThemeEnum } from 'common/components/maps/MapRoute/MapRoute';\nimport { useGoogleMapGeocoding } from 'common/utils/hooks/maps/useGoogleMapGeocoding';\nimport MapFooter from 'common/components/maps/MapFooter/MapFooter';\nimport {\n    selectAveragePriceOffer,\n    selectFetchRouteRequest,\n    selectMapSettings,\n    selectPolylines,\n    selectShipperLaneDestination,\n    selectShipperLaneOrigin,\n} from 'common/store/shipper-contract-lane-creation/selectors';\nimport { setDestinationLocation, setOriginLocation } from 'common/store/shipper-contract-lane-creation/slice';\nimport MapArea, { MapAreaThemeEnum } from 'common/components/maps/MapArea/MapArea';\nimport { M_IN_KM } from 'common/utils/distance';\nimport { useTranslation } from 'react-i18next';\nimport MapLoader from 'common/components/maps/MapLoader/MapLoader';\nimport MapZoom from 'common/components/maps/MapZoom/MapZoom';\nimport MapCenter from 'common/components/maps/MapCenter/MapCenter';\nimport MapBound from 'common/components/maps/MapBound/MapBound';\nimport { SyncShipperContractLaneCreationFormMapStateContext } from '../contexts/sync-map-state';\n\nconst cx = classNames.bind(styles);\n\nconst MAP_PIN_KEYS = {\n    origin: 'origin',\n    destination: 'destination',\n};\n\ntype PropsT = {\n    isDisabledDraggable?: boolean;\n    isAllowShowLoaders?: boolean;\n};\n\nconst ShipperContractLaneCreationMap: React.FC<PropsT> = React.memo((props) => {\n    const { isDisabledDraggable, isAllowShowLoaders } = props;\n\n    const mapSettings = useSelector(selectMapSettings);\n    const dispatch = useDispatch();\n\n    const syncFormMapStateContext = React.useContext(SyncShipperContractLaneCreationFormMapStateContext);\n\n    const { googleMaps } = useGoogleMapContext();\n    const { onGoogleApiLoaded } = useGoogleMapsApiLoader({});\n    const { tryGeocodeByPoint } = useGoogleMapGeocoding();\n\n    const { t } = useTranslation();\n\n    const fetchRouteRequest = useSelector(selectFetchRouteRequest);\n    const averagePriceOffer = useSelector(selectAveragePriceOffer);\n    const isShowEstimate = !!averagePriceOffer;\n\n    const polylines = useSelector(selectPolylines);\n\n    const draggablePinRef = React.useRef<string | null>(null);\n    const [activeLocation, setActiveLocation] = React.useState<LocationT | null>(null);\n\n    const destination = useSelector(selectShipperLaneDestination);\n    const origin = useSelector(selectShipperLaneOrigin);\n\n    const [draggable, setDraggable] = React.useState(true);\n\n    const handleDragMove = (childKey: string, childProps: any, mouse: GeoPointT) => {\n        if (isDisabledDraggable) {\n            return;\n        }\n\n        if (draggable) {\n            setDraggable(false);\n        }\n\n        draggablePinRef.current = childKey;\n        setActiveLocation({\n            point: {\n                lat: mouse.lat,\n                lng: mouse.lng,\n            },\n            address: null,\n            addressComponents: null,\n            utcOffsetMinutes: null,\n        });\n    };\n\n    const dispatchChangeOriginLocation = (location: LocationT | null) => {\n        dispatch(setOriginLocation({ location }));\n    };\n\n    const dispatchChangeDestinationLocation = (location: LocationT | null) => {\n        dispatch(setDestinationLocation({ location }));\n    };\n\n    const handleDragEnd = async (childKey: string, childProps: any, mouse: GeoPointT) => {\n        if (!draggablePinRef.current) {\n            return;\n        }\n\n        setDraggable(true);\n\n        const location = await tryGeocodeByPoint(mouse);\n\n        if (draggablePinRef.current === MAP_PIN_KEYS.destination) {\n            dispatchChangeDestinationLocation(location);\n        }\n\n        if (draggablePinRef.current === MAP_PIN_KEYS.origin) {\n            dispatchChangeOriginLocation(location);\n        }\n    };\n\n    const handleMapClick = async (event: ClickEventValue) => {\n        if (isDisabledDraggable) {\n            return;\n        }\n\n        if (origin.location && destination?.location) {\n            return;\n        }\n\n        const location = await tryGeocodeByPoint(event);\n        if (!origin.location) {\n            dispatchChangeOriginLocation(location);\n        } else {\n            dispatchChangeDestinationLocation(location);\n        }\n    };\n\n    const destinationLatLngProps = useMemo(() => {\n        let latLngProps: GeoPointT | null = null;\n\n        if (draggablePinRef.current === MAP_PIN_KEYS.destination) {\n            if (!activeLocation?.point) {\n                return null;\n            }\n\n            latLngProps = {\n                lat: activeLocation.point.lat,\n                lng: activeLocation.point.lng,\n            };\n        } else {\n            if (!destination?.location?.point) {\n                return null;\n            }\n\n            latLngProps = {\n                lat: destination.location.point.lat,\n                lng: destination.location.point.lng,\n            };\n        }\n\n        return latLngProps;\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [draggablePinRef.current, activeLocation, destination]);\n\n    const originLatLngProps = useMemo(() => {\n        let latLngProps: GeoPointT | null = null;\n\n        if (draggablePinRef.current === MAP_PIN_KEYS.origin) {\n            if (!activeLocation?.point) {\n                return null;\n            }\n\n            latLngProps = {\n                lat: activeLocation.point.lat,\n                lng: activeLocation.point.lng,\n            };\n        } else {\n            if (!origin?.location?.point) {\n                return null;\n            }\n\n            latLngProps = {\n                lat: origin.location.point.lat,\n                lng: origin.location.point.lng,\n            };\n        }\n\n        return latLngProps;\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [draggablePinRef.current, activeLocation, origin]);\n\n    return (\n        <div className={cx('map')}>\n            <GoogleMapReact\n                draggable={draggable}\n                defaultCenter={DEFAULT_CENTER}\n                defaultZoom={DEFAULT_ZOOM}\n                bootstrapURLKeys={BOOTSTRAP_URL_KEYS}\n                onClick={handleMapClick}\n                options={MAP_OPTIONS}\n                onChildMouseDown={handleDragMove}\n                onChildMouseUp={handleDragEnd}\n                onChildMouseMove={handleDragMove}\n                onGoogleApiLoaded={onGoogleApiLoaded}\n            >\n                {destinationLatLngProps && (\n                    <DestinationPinIcon\n                        key={MAP_PIN_KEYS.destination}\n                        className={cx('marker')}\n                        {...destinationLatLngProps}\n                        isWrong={syncFormMapStateContext.hasDropOffLocationError}\n                    />\n                )}\n\n                {originLatLngProps && (\n                    <OriginPinIcon\n                        key={MAP_PIN_KEYS.origin}\n                        className={cx('marker')}\n                        {...originLatLngProps}\n                        isWrong={syncFormMapStateContext.hasPickUpLocationError}\n                    />\n                )}\n            </GoogleMapReact>\n            <MapZoom map={googleMaps?.map} maps={googleMaps?.maps} zoom={mapSettings?.zoom} />\n            <MapCenter map={googleMaps?.map} maps={googleMaps?.maps} center={mapSettings?.center} />\n            <MapBound map={googleMaps?.map} maps={googleMaps?.maps} boundingBox={mapSettings?.boundingBox} />\n            {isAllowShowLoaders && fetchRouteRequest.loading && <MapLoader>{t('common:maps.loading')}</MapLoader>}\n            {polylines && (\n                <MapRoute\n                    map={googleMaps?.map}\n                    maps={googleMaps?.maps}\n                    geometryLibrary={googleMaps?.libraries?.geometry}\n                    theme={MapRouteThemeEnum.laneCreation}\n                    polylines={polylines}\n                />\n            )}\n            {!!destination?.radiusKm && destinationLatLngProps && (\n                <MapArea\n                    key={`${MAP_PIN_KEYS.destination}-area`}\n                    map={googleMaps?.map}\n                    maps={googleMaps?.maps}\n                    theme={MapAreaThemeEnum.destinationArea}\n                    centerLat={destinationLatLngProps.lat}\n                    centerLon={destinationLatLngProps.lng}\n                    radiusM={destination.radiusKm * M_IN_KM}\n                />\n            )}\n            {!!origin?.radiusKm && originLatLngProps && (\n                <MapArea\n                    key={`${MAP_PIN_KEYS.origin}-area`}\n                    map={googleMaps?.map}\n                    maps={googleMaps?.maps}\n                    theme={MapAreaThemeEnum.originArea}\n                    centerLat={originLatLngProps.lat}\n                    centerLon={originLatLngProps.lng}\n                    radiusM={origin.radiusKm * M_IN_KM}\n                />\n            )}\n            {isShowEstimate && (\n                <MapFooter>\n                    <Estimate className={cx('estimate')} />\n                </MapFooter>\n            )}\n        </div>\n    );\n});\n\nexport default ShipperContractLaneCreationMap;\n","// extracted by mini-css-extract-plugin\nexport default {\"target\":\"PriceRuleTargetLabel__target___L1Tvr\",\"fadeIn\":\"PriceRuleTargetLabel__fadeIn___H8rCb\",\"blinking\":\"PriceRuleTargetLabel__blinking___hr8vh\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './TransportOrderStatusPill.scss';\nimport PillLabel, { colorCodingPillLabelTheme, PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { TransportOrderStatusEnum, ApiTransportOrderStatusT } from 'common/utils/api/models';\nimport TransportOrderStatus from 'common/components/status/TransportOrderStatus/TransportOrderStatus';\nimport { useTranslation } from 'react-i18next';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    status?: ApiTransportOrderStatusT;\n    isArchived?: boolean;\n    isSpot?: boolean;\n    isSymmetrical?: boolean;\n};\n\nconst PILL_THEME_BY_STATUS: Record<ApiTransportOrderStatusT, PillLabelThemeEnum> = {\n    [TransportOrderStatusEnum.assetsUnassigned]: colorCodingPillLabelTheme.attention,\n    [TransportOrderStatusEnum.driverUnassigned]: colorCodingPillLabelTheme.attention,\n    [TransportOrderStatusEnum.assigned]: colorCodingPillLabelTheme.normal,\n    [TransportOrderStatusEnum.inTransit]: colorCodingPillLabelTheme.normal,\n    [TransportOrderStatusEnum.done]: colorCodingPillLabelTheme.success,\n    [TransportOrderStatusEnum.canceled]: colorCodingPillLabelTheme.attention,\n    [TransportOrderStatusEnum.declined]: colorCodingPillLabelTheme.normal,\n    [TransportOrderStatusEnum.unknown]: colorCodingPillLabelTheme.notImportant,\n};\n\nconst TransportOrderStatusPill: React.FC<PropsT> = React.memo((props) => {\n    const { status, isArchived, isSpot, isSymmetrical } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return null;\n    }\n\n    return (\n        <>\n            {isSpot && (\n                <PillLabel\n                    isNoWrap\n                    isSymmetrical={isSymmetrical}\n                    className={cx('pill', 'pill--is-spot')}\n                    theme={PillLabelThemeEnum.grey}\n                >\n                    {t('common:transport-order-spot')}{' '}\n                </PillLabel>\n            )}\n            <PillLabel isNoWrap isSymmetrical={isSymmetrical} theme={PILL_THEME_BY_STATUS[status]}>\n                <TransportOrderStatus status={status} />\n            </PillLabel>\n            {isArchived && (\n                <PillLabel\n                    isNoWrap\n                    isSymmetrical={isSymmetrical}\n                    className={cx('pill', 'pill--is-archive')}\n                    theme={PillLabelThemeEnum.grey}\n                >\n                    {t('common:transport-order-archived')}{' '}\n                </PillLabel>\n            )}\n        </>\n    );\n});\n\nexport default TransportOrderStatusPill;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport { isNonNil } from 'common/utils';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\nimport RouteIcon from 'common/icons/RouteIcon';\nimport { ApiDistancePartT } from 'broker-admin/store/broker-order-assigment/models';\nimport isNumber from 'lodash/isNumber';\nimport { convertToKm } from 'common/utils/distance';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport AsyncCountryFormatter from 'design-system/components/InfoTable/formatters/AsyncCountryFormatter/AsyncCountryFormatter';\n\ntype PropsT = {\n    className?: string;\n    totalDistance: number | null;\n    deadheadDistance: ApiDistancePartT | null;\n    payloadDistance: ApiDistancePartT | null;\n    // TODO check need delete?\n    isNotActual?: boolean;\n};\n\nconst MileageInfoTable: React.FC<PropsT> = React.memo((props) => {\n    const { className, totalDistance, deadheadDistance, payloadDistance } = props;\n\n    const { t } = useTranslation();\n\n    const getDistancePartRows = (distancePart: ApiDistancePartT | null | undefined): Array<InfoTableRowT | null> => {\n        if (!distancePart) {\n            return [];\n        }\n\n        return (\n            distancePart?.byCountry?.map(({ country: countryCode, distance }) => {\n                return {\n                    icon: <FlagIcon countryCode={countryCode} />,\n                    name: !countryCode ? (\n                        t('common:tolls.unspecified')\n                    ) : (\n                        <AsyncCountryFormatter countryCode={countryCode} />\n                    ),\n                    valueMods: { isBold: true },\n                    value: <UnitTypeCount type={UnitTypeEnum.kilometersAbbreviation} count={convertToKm(distance)} />,\n                };\n            }) || []\n        );\n    };\n\n    const rows: Array<InfoTableRowT | null> = [\n        isNumber(totalDistance)\n            ? {\n                  icon: <RouteIcon fillColor={StyleGuideColorsEnum.gray} />,\n                  isInitOpenRows: true,\n                  name: t('assignment.receipt.total-mileage'),\n                  value: (\n                      <UnitTypeCount type={UnitTypeEnum.kilometersAbbreviation} count={convertToKm(totalDistance)} />\n                  ),\n                  valueMods: { isBold: true },\n                  rows: [\n                      isNumber(payloadDistance?.totalDistance)\n                          ? {\n                                icon: null,\n\n                                name: t('assignment.receipt.payload-mileage'),\n                                value: (\n                                    <UnitTypeCount\n                                        type={UnitTypeEnum.kilometersAbbreviation}\n                                        count={convertToKm(payloadDistance?.totalDistance)}\n                                    />\n                                ),\n                                valueMods: { isBold: true },\n                                rows: getDistancePartRows(payloadDistance),\n                            }\n                          : null,\n                      isNumber(deadheadDistance?.totalDistance)\n                          ? {\n                                icon: null,\n                                name: t('assignment.receipt.deadhead-mileage'),\n                                value: (\n                                    <UnitTypeCount\n                                        type={UnitTypeEnum.kilometersAbbreviation}\n                                        count={convertToKm(deadheadDistance?.totalDistance)}\n                                    />\n                                ),\n                                valueMods: { isBold: true },\n                                rows: getDistancePartRows(deadheadDistance),\n                            }\n                          : null,\n                  ],\n              }\n            : null,\n    ].filter(isNonNil);\n\n    return <InfoTable className={className} shouldRenderIcons rows={rows} />;\n});\n\nexport default MileageInfoTable;\n","import { FormValuesT } from '../constants';\nimport { createSyncFormValuesContext } from 'common/contexts/sync-form-values';\n\nexport const SyncShipmentDetailsFormValuesContext = createSyncFormValuesContext<FormValuesT>();\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"PartnerDetailsHeaderPills__wrap___iuaXr\",\"fadeIn\":\"PartnerDetailsHeaderPills__fadeIn___hd11k\",\"blinking\":\"PartnerDetailsHeaderPills__blinking___zypua\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"PartnerDocumentsPage__wrap___mBYxc\",\"document-table-wrap\":\"PartnerDocumentsPage__document-table-wrap___QhBFY\",\"fadeIn\":\"PartnerDocumentsPage__fadeIn___Rg06i\",\"blinking\":\"PartnerDocumentsPage__blinking___hqIdd\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './TrailersTable.scss';\nimport { useTranslation } from 'react-i18next';\nimport Table, { TableColumnT, TableRowMetaT, TableRowModsEnum } from 'common/components/Table/Table';\nimport { ApiTrailerT } from 'common/store/trailers/models';\nimport StatusCell from './cell-renderers/StatusCell/StatusCell';\nimport TypeCell from './cell-renderers/TypeCell/TypeCell';\nimport PlateNumberCell from 'common/components/Table/cell-renderers/PlateNumberCell/PlateNumberCell';\nimport CheckboxCell from 'common/components/Table/cell-renderers/CheckboxCell/CheckboxCell';\nimport CheckboxHeader from 'common/components/Table/header-renderers/CheckboxHeader/CheckboxHeader';\nimport MemoizedTable from 'common/components/Table/MemoizedTable/MemoizedTable';\nimport FlagCell from 'common/components/Table/cell-renderers/FlagCell/FlagCell';\nimport EventCell from 'common/components/Table/cell-renderers/EventCell/EventCell';\nimport { TabEnum } from '../constants';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport TooltipIconTrigger from 'design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger';\nimport TelematicUpdateDateCell from 'common/components/Table/cell-renderers/TelematicUpdateDateCell/TelematicUpdateDateCell';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    trailers: Array<ApiTrailerT>;\n    className?: string;\n    selectedTrailersSet: Set<ApiTrailerT>;\n    onSelectTrailers: (selectedTrailerIds: Set<ApiTrailerT>) => void;\n    onSelectRow: (event: React.MouseEvent, trailer: ApiTrailerT) => void;\n    isLoading: boolean;\n    allowedCheckboxes: boolean;\n    onOpenUserDetails: (userId: UserIdT | null) => void;\n    activeTab: TabEnum;\n};\n\nconst TrailersTable: React.FC<PropsT> = React.memo((props) => {\n    const {\n        onOpenUserDetails,\n        trailers,\n        allowedCheckboxes,\n        className,\n        selectedTrailersSet,\n        onSelectTrailers,\n        isLoading,\n        onSelectRow,\n        activeTab,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const columns: Array<TableColumnT<ApiTrailerT, void> | null> = [\n        allowedCheckboxes\n            ? {\n                  renderHeader: () => (\n                      <CheckboxHeader<ApiTrailerT>\n                          selectedRowsSet={selectedTrailersSet}\n                          rows={trailers}\n                          onChange={onSelectTrailers}\n                      />\n                  ),\n                  headerClassName: cx('table__header', 'table__header--checkbox'),\n                  render: (trailer: ApiTrailerT) => (\n                      <CheckboxCell<ApiTrailerT>\n                          row={trailer}\n                          selectedRowsSet={selectedTrailersSet}\n                          onChange={onSelectTrailers}\n                      />\n                  ),\n                  className: cx('table__column--checkbox'),\n              }\n            : null,\n        {\n            renderHeader: () => t('common:trailers-page.table.columns.plate-number'),\n            headerClassName: cx('table__header'),\n            render: (trailer: ApiTrailerT) => <PlateNumberCell plateNumber={trailer?.plateNumber} />,\n            className: cx('table__column', 'table__column--plate-number'),\n        },\n        {\n            renderHeader: () => t('common:trailers-page.table.columns.type'),\n            headerClassName: cx('table__header', 'table__header--type'),\n            render: (trailer: ApiTrailerT) => <TypeCell trailer={trailer} />,\n            className: cx('table__column', 'table__column--type'),\n        },\n        {\n            renderHeader: () => t('common:trailers-page.table.columns.added-date'),\n            headerClassName: cx('table__header'),\n            render: (trailer: ApiTrailerT) => (\n                <EventCell\n                    openUserDetails={onOpenUserDetails}\n                    userFullName={trailer.createdBy?.fullName}\n                    userId={trailer.createdBy?.id}\n                    byBroker={trailer.addedByBroker}\n                    date={trailer.createdDate}\n                />\n            ),\n            className: cx('table__column', 'table__column--created'),\n        },\n    ];\n\n    if (activeTab === TabEnum.active) {\n        columns.push({\n            renderHeader: () => t('common:trailers-page.table.columns.linked'),\n            headerClassName: cx('table__header', 'table__header--linked'),\n            render: (trailer: ApiTrailerT) => <FlagCell isShowFlag={!!trailer.linked} />,\n            className: cx('table__column', 'table__column--any'),\n        });\n\n        columns.push({\n            renderHeader: () => t('common:trailers-page.table.columns.dedicated'),\n            headerClassName: cx('table__header', 'table__header--dedicated'),\n            render: (trailer: ApiTrailerT) => <FlagCell isShowFlag={!!trailer.dedicated} />,\n            className: cx('table__column', 'table__column--any'),\n        });\n\n        columns.push({\n            renderHeader: () => (\n                <span>\n                    {t('common:trailers-page.table.columns.GPS')}\n                    <Tooltip\n                        position={TooltipPositionEnum.topCenter}\n                        theme={TooltipThemeEnum.black}\n                        isInline\n                        tooltipNode={\n                            <TooltipContent isCenter theme={TooltipContentThemeEnum.black} isNoWrap>\n                                {t('common:trailers-page.table.tooltips.GPS')}\n                            </TooltipContent>\n                        }\n                    >\n                        {(isShow) => <TooltipIconTrigger isShow={isShow} />}\n                    </Tooltip>\n                </span>\n            ),\n            headerClassName: cx('table__header', 'table__header--gps'),\n            render: (trailer: ApiTrailerT) => (\n                <TelematicUpdateDateCell\n                    placeholder={t('common:trailers-page.GPS.empty-update-date')}\n                    telematicUpdatedDate={trailer.telematicUpdatedDate}\n                />\n            ),\n            className: cx('table__column', 'table__column--any'),\n        });\n\n        columns.push({\n            renderHeader: () => t('common:trailers-page.table.columns.status'),\n            headerClassName: cx('table__header'),\n            render: (trailer: ApiTrailerT) => <StatusCell trailer={trailer} />,\n            className: cx('table__column', 'table__column--status'),\n        });\n    }\n\n    if (activeTab === TabEnum.archive) {\n        columns.push({\n            renderHeader: () => t('common:trailers-page.table.columns.archived'),\n            headerClassName: cx('table__header'),\n            render: (trailer: ApiTrailerT) => (\n                <EventCell\n                    openUserDetails={onOpenUserDetails}\n                    userFullName={trailer.archivedBy?.fullName}\n                    userId={trailer.archivedBy?.id}\n                    byBroker={trailer.archivedByBroker}\n                    date={trailer.archivedDate}\n                />\n            ),\n            className: cx('table__column', 'table__column--any'),\n        });\n    }\n\n    const getRowMods = (meta: TableRowMetaT) => {\n        return {\n            [TableRowModsEnum.isSelected]: meta.isSelected,\n        };\n    };\n\n    return (\n        <div className={cx('table')}>\n            <MemoizedTable<ApiTrailerT> tableName=\"trailers\" isLoading={isLoading} rows={trailers}>\n                {(rows, isUsedPrevRows) => (\n                    <Table<ApiTrailerT, void>\n                        className={className}\n                        columns={columns}\n                        rows={rows}\n                        selectedRowsSet={selectedTrailersSet}\n                        getRowMods={getRowMods}\n                        isLoading={isLoading}\n                        onSelectRow={onSelectRow}\n                        isUsedPrevRows={isUsedPrevRows}\n                    />\n                )}\n            </MemoizedTable>\n        </div>\n    );\n});\n\nexport default TrailersTable;\n","// extracted by mini-css-extract-plugin\nexport default {\"type\":\"PriceRuleTypeLabel__type___SHgu3\",\"fadeIn\":\"PriceRuleTypeLabel__fadeIn___K61RH\",\"blinking\":\"PriceRuleTypeLabel__blinking___XXcRI\"};","import * as React from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport classNames from 'classnames/bind';\nimport styles from './PickupPointPicker.scss';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { formatTimeInterval } from 'common/utils/time';\nimport { useFormikContext } from 'formik';\nimport { FieldsEnum, RouteFormValuesT, RoutePointFieldsEnum } from '../constants';\nimport { getFieldFormValue } from 'common/utils/form-values';\nimport { DeadheadContextRangeT, DeadheadRouteStopTypeEnum } from 'broker-admin/store/deadhead-creation/models';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport TruckPickUpIcon from 'common/icons/TruckPickUpIcon';\nimport LinkPickUpIcon from 'common/icons/LinkPickUpIcon';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\n\nimport TooltipIconTrigger from 'design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\n\ntype AssetLinkPropsT = {\n    linkedAsset: DeadheadContextRangeT['linkedAsset'];\n    onOpenTrailerDetails: (partnerId: PartnerIdT, trailerId: TrailerIdT) => void;\n    theme?: LinkThemeEnum;\n};\n\nconst AssetLink = (props: AssetLinkPropsT) => {\n    const { linkedAsset, onOpenTrailerDetails, theme } = props;\n\n    return (\n        <Link\n            theme={theme || LinkThemeEnum.boldBrandDark}\n            onClick={() => {\n                if (linkedAsset?.carrierId && linkedAsset?.id) {\n                    onOpenTrailerDetails(linkedAsset.carrierId, linkedAsset.id);\n                }\n            }}\n        >\n            {linkedAsset?.plateNumber || '-'}\n        </Link>\n    );\n};\n\nconst SHOW_TOOLTIP_DELAY_MS = 300;\n\ntype PropsT = {\n    className?: string;\n    routePointIndex: number;\n    currentRange: DeadheadContextRangeT | null;\n    onOpenTrailerDetails: (partnerId: PartnerIdT, trailerId: TrailerIdT) => void;\n};\n\nconst cx = classNames.bind(styles);\n\nconst PickupPointPicker: React.FC<PropsT> = React.memo((props) => {\n    const { routePointIndex, currentRange, onOpenTrailerDetails } = props;\n\n    const { t } = useTranslation();\n\n    const formik = useFormikContext<RouteFormValuesT>();\n\n    const typeFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.type}` as const;\n    const locationFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.location}` as const;\n    const timeWindowFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.timeWindow}` as const;\n\n    const type = getFieldFormValue(formik.values, typeFieldName);\n    const location = getFieldFormValue(formik.values, locationFieldName);\n    const timeWindow = getFieldFormValue(formik.values, timeWindowFieldName);\n\n    const linkedAsset = currentRange?.linkedAsset || null;\n\n    let iconNode: React.ReactNode = null;\n    if (location && type === DeadheadRouteStopTypeEnum.pickupTruck) {\n        iconNode = (\n            <TruckPickUpIcon\n                size={DEFAULT_ICON_SIZE}\n                fillColor={StyleGuideColorsEnum.brandAccent}\n                strokeColor={StyleGuideColorsEnum.brandDark}\n            />\n        );\n    }\n    if (!location && type === DeadheadRouteStopTypeEnum.pickupTruck) {\n        iconNode = (\n            <TruckPickUpIcon\n                size={DEFAULT_ICON_SIZE}\n                strokeColor={StyleGuideColorsEnum.gray}\n                fillColor={StyleGuideColorsEnum.light}\n            />\n        );\n    }\n    if (location && type === DeadheadRouteStopTypeEnum.pickupRoadTrain) {\n        iconNode = <LinkPickUpIcon strokeColor={StyleGuideColorsEnum.brandDark} />;\n    }\n    if (!location && type === DeadheadRouteStopTypeEnum.pickupRoadTrain) {\n        iconNode = <LinkPickUpIcon strokeColor={StyleGuideColorsEnum.gray} />;\n    }\n\n    return (\n        <ReadOnlyField\n            icon={iconNode}\n            label={t('deadhead-creation.route-form.fields.pickup-point.label')}\n            placeholder={t('deadhead-creation.route-form.fields.pickup-point.placeholder')}\n            subLabel={\n                <PillLabel className={cx('time-interval')} isSymmetrical theme={PillLabelThemeEnum.charcoal}>\n                    {formatTimeInterval(timeWindow?.start, timeWindow?.end)}\n                </PillLabel>\n            }\n            labelRightNode={\n                linkedAsset ? (\n                    <div className={cx('linked-asset')}>\n                        <Trans\n                            i18nKey=\"deadhead-creation.route-form.fields.pickup-point.linked-asset\"\n                            components={{\n                                plateNumber: (\n                                    <AssetLink\n                                        linkedAsset={linkedAsset}\n                                        onOpenTrailerDetails={onOpenTrailerDetails}\n                                        theme={LinkThemeEnum.boldCharcoal}\n                                    />\n                                ),\n                            }}\n                        />\n                        <Tooltip\n                            position={TooltipPositionEnum.centerLeft}\n                            theme={TooltipThemeEnum.black}\n                            tooltipNode={\n                                <TooltipContent theme={TooltipContentThemeEnum.black} width={150} isCenter>\n                                    {t('deadhead-creation.route-form.fields.pickup-point.linked-asset-placeholder')}\n                                </TooltipContent>\n                            }\n                            delay={SHOW_TOOLTIP_DELAY_MS}\n                        >\n                            {(isShow) => <TooltipIconTrigger isShow={isShow} />}\n                        </Tooltip>\n                    </div>\n                ) : null\n            }\n            value={location?.address}\n        />\n    );\n});\n\nexport default PickupPointPicker;\n","import { TimeZonesStateT } from './slice';\nimport { SharableStateT } from '../models';\n\nexport const selectTimeZonesRequest = (state: SharableStateT): TimeZonesStateT['fetchRequest'] =>\n    state.timeZones.fetchRequest;\n\nexport const selectTimeZones = (state: SharableStateT): TimeZonesStateT['timeZones'] => state.timeZones.timeZones;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillOpacity?: number;\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst PartnersIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, fillOpacity, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 18 18\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M.9.9h16.2v16.2H.9z\" />\n                <path\n                    fill={fillColor}\n                    fillOpacity={fillOpacity || 1}\n                    d=\"M6.347 11.7c.061-.155.088-.263.614-.466A5.583 5.583 0 019 10.856c.695 0 1.384.122 2.038.378.52.203.547.31.615.466H6.347zM9 6.3c.371 0 .675.304.675.675A.677.677 0 019 7.65a.677.677 0 01-.675-.675c0-.371.304-.675.675-.675\"\n                    opacity=\"0.3\"\n                />\n                <path\n                    fill={strokeColor}\n                    d=\"M3.6 9.675c.742 0 1.35-.607 1.35-1.35 0-.742-.607-1.35-1.35-1.35-.743 0-1.35.607-1.35 1.35 0 .743.607 1.35 1.35 1.35zm.763.742c-.25-.04-.5-.067-.763-.067-.668 0-1.303.142-1.877.392A1.355 1.355 0 00.9 11.99v1.06h3.038v-1.087c0-.56.155-1.087.425-1.546zM14.4 9.676c.742 0 1.35-.607 1.35-1.35 0-.742-.607-1.35-1.35-1.35-.742 0-1.35.607-1.35 1.35 0 .743.607 1.35 1.35 1.35zm2.7 2.315c0-.546-.324-1.033-.823-1.248a4.692 4.692 0 00-1.877-.392c-.263 0-.513.027-.763.068.27.458.425.985.425 1.545v1.087H17.1v-1.06zm-5.238-1.876c-.79-.351-1.762-.608-2.862-.608s-2.072.264-2.862.608a2.017 2.017 0 00-1.188 1.85v1.086h8.1v-1.087a2.02 2.02 0 00-1.188-1.85zM6.347 11.7c.061-.155.088-.263.614-.466A5.583 5.583 0 019 10.856c.695 0 1.384.122 2.039.378.52.203.546.31.614.466H6.347zM9 6.3c.371 0 .675.304.675.675A.677.677 0 019 7.65a.677.677 0 01-.675-.675c0-.371.304-.675.675-.675m0-1.35c-1.12 0-2.025.905-2.025 2.025C6.975 8.095 7.879 9 9 9c1.12 0 2.025-.904 2.025-2.025 0-1.12-.905-2.025-2.025-2.025z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nPartnersIcon.displayName = 'PartnersIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default PartnersIcon;\n\nexport const PartnersIconProps = {\n    getControlProps: ({\n        isDisabled,\n        isFocused,\n        hasError,\n        hasWarning,\n        hasSuccess,\n        hasValue,\n    }: {\n        isDisabled?: boolean;\n        isFocused?: boolean;\n        hasError?: boolean;\n        hasWarning?: boolean;\n        hasSuccess?: boolean;\n        hasValue?: boolean;\n    }): PropsT => {\n        if (hasError) {\n            return {\n                fillColor: StyleGuideColorsEnum.light,\n                strokeColor: StyleGuideColorsEnum.tomatoRed,\n            };\n        }\n\n        if (hasWarning) {\n            return {\n                fillColor: StyleGuideColorsEnum.light,\n                strokeColor: StyleGuideColorsEnum.orange,\n            };\n        }\n\n        if (hasSuccess) {\n            return {\n                fillColor: StyleGuideColorsEnum.brandAccent,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n\n        if (isDisabled) {\n            return {\n                fillColor: StyleGuideColorsEnum.light,\n                strokeColor: StyleGuideColorsEnum.slate,\n            };\n        }\n\n        return {\n            fillColor: hasValue || isFocused ? StyleGuideColorsEnum.brandAccent5 : StyleGuideColorsEnum.light,\n            strokeColor: hasValue || isFocused ? StyleGuideColorsEnum.brandDark : StyleGuideColorsEnum.gray,\n        };\n    },\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"DropdownControlTriggerLabel__option___q7pTt\",\"option__icon\":\"DropdownControlTriggerLabel__option__icon___bPNPu\",\"option__label\":\"DropdownControlTriggerLabel__option__label___zIQnC\",\"fadeIn\":\"DropdownControlTriggerLabel__fadeIn___sbl1E\",\"blinking\":\"DropdownControlTriggerLabel__blinking___xYKIM\"};","import React from 'react';\n\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\n\nimport classNames from 'classnames/bind';\nimport styles from './PriceComponentTypeCustomMultipleDropdown.scss';\nimport { useTranslation } from 'react-i18next';\nimport { ApiPriceComponentTypeT, PriceComponentTypeEnum } from 'broker-admin/utils/api/broker-tranziit/models';\nimport RouteIcon from 'common/icons/RouteIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum, UNIT } from 'common/constants';\nimport FuelIcon from 'common/icons/FuelIcon';\nimport TollIcon from 'common/icons/TollIcon';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport CheckIcon from 'common/icons/CheckIcon';\nimport FeeIcon from 'common/icons/FeeIcon';\n\nconst cx = classNames.bind(styles);\n\ntype OptionT = {\n    nestLevel: number;\n    value: ApiPriceComponentTypeT;\n    icon?: React.ReactNode;\n    label: React.ReactNode;\n};\n\ntype ValueT = OptionT['value'] | null;\n\nexport type PropsT = {\n    className?: string;\n    value: ValueT;\n    onSelect: (value: ValueT) => void;\n    overlayPosition: DropdownOverlayPositionEnum;\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    placeholder?: InputPropsT['placeholder'];\n    onBlur: InputPropsT['onBlur'];\n    onFocus: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasClearControl?: InputPropsT['hasClearControl'];\n    hasChanges?: boolean;\n    availableValues?: Array<ValueT>;\n};\n\nconst TYPE_I18N_MAP: Record<ApiPriceComponentTypeT, string> = {\n    [PriceComponentTypeEnum.lineHaul]: 'price-settings.rules.form.fields.impact-price-components.options.line-haul',\n    [PriceComponentTypeEnum.fuel]: 'price-settings.rules.form.fields.impact-price-components.options.fuel',\n    [PriceComponentTypeEnum.roadTaxes]: 'price-settings.rules.form.fields.impact-price-components.options.road-taxes',\n    [PriceComponentTypeEnum.roadTaxesGeneral]:\n        'price-settings.rules.form.fields.impact-price-components.options.road-taxes-general',\n    [PriceComponentTypeEnum.roadTaxesCity]:\n        'price-settings.rules.form.fields.impact-price-components.options.road-taxes-city',\n    [PriceComponentTypeEnum.roadTaxesBridge]:\n        'price-settings.rules.form.fields.impact-price-components.options.road-taxes-bridge',\n    [PriceComponentTypeEnum.roadTaxesTunnel]:\n        'price-settings.rules.form.fields.impact-price-components.options.road-taxes-tunnel',\n    [PriceComponentTypeEnum.roadTaxesFerry]:\n        'price-settings.rules.form.fields.impact-price-components.options.road-taxes-ferry',\n    [PriceComponentTypeEnum.roadTaxesMountainPass]:\n        'price-settings.rules.form.fields.impact-price-components.options.road-taxes-mountain-pass',\n    [PriceComponentTypeEnum.serviceFee]: 'price-settings.rules.form.fields.impact-price-components.options.service-fee',\n};\n\nconst SUB_VALUES_MAP: Record<ApiPriceComponentTypeT, ApiPriceComponentTypeT[]> = {\n    [PriceComponentTypeEnum.lineHaul]: [],\n    [PriceComponentTypeEnum.fuel]: [],\n    [PriceComponentTypeEnum.roadTaxes]: [\n        PriceComponentTypeEnum.roadTaxesGeneral,\n        PriceComponentTypeEnum.roadTaxesCity,\n        PriceComponentTypeEnum.roadTaxesBridge,\n        PriceComponentTypeEnum.roadTaxesTunnel,\n        PriceComponentTypeEnum.roadTaxesFerry,\n        PriceComponentTypeEnum.roadTaxesMountainPass,\n    ],\n    [PriceComponentTypeEnum.roadTaxesGeneral]: [],\n    [PriceComponentTypeEnum.roadTaxesCity]: [],\n    [PriceComponentTypeEnum.roadTaxesBridge]: [],\n    [PriceComponentTypeEnum.roadTaxesTunnel]: [],\n    [PriceComponentTypeEnum.roadTaxesFerry]: [],\n    [PriceComponentTypeEnum.roadTaxesMountainPass]: [],\n    [PriceComponentTypeEnum.serviceFee]: [],\n};\n\nconst LEVEL_PADDING = 9 * UNIT;\n\nconst PriceComponentTypeCustomMultipleDropdown: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        value,\n        onSelect,\n        hasWarning,\n        hasError,\n        overlayPosition,\n        isDisabled,\n        placeholder,\n        availableValues,\n        onBlur,\n        onFocus,\n        hasChanges,\n        hasClearControl,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const options = React.useMemo((): Array<OptionT> => {\n        return [\n            {\n                icon: <RouteIcon fillColor={StyleGuideColorsEnum.slate} />,\n                label: t(TYPE_I18N_MAP[PriceComponentTypeEnum.lineHaul]),\n                value: PriceComponentTypeEnum.lineHaul,\n                nestLevel: 0,\n            },\n            {\n                icon: <FuelIcon strokeColor={StyleGuideColorsEnum.slate} fillColor={StyleGuideColorsEnum.light} />,\n                label: t(TYPE_I18N_MAP[PriceComponentTypeEnum.fuel]),\n                value: PriceComponentTypeEnum.fuel,\n                nestLevel: 0,\n            },\n            {\n                icon: (\n                    <TollIcon\n                        strokeColor={StyleGuideColorsEnum.slate}\n                        fillColor={StyleGuideColorsEnum.light}\n                        size={DEFAULT_ICON_SIZE}\n                    />\n                ),\n                label: t(TYPE_I18N_MAP[PriceComponentTypeEnum.roadTaxes]),\n                value: PriceComponentTypeEnum.roadTaxes,\n                nestLevel: 0,\n            },\n            {\n                label: t(TYPE_I18N_MAP[PriceComponentTypeEnum.roadTaxesGeneral]),\n                value: PriceComponentTypeEnum.roadTaxesGeneral,\n                nestLevel: 1,\n            },\n            {\n                label: t(TYPE_I18N_MAP[PriceComponentTypeEnum.roadTaxesCity]),\n                value: PriceComponentTypeEnum.roadTaxesCity,\n                nestLevel: 1,\n            },\n            {\n                label: t(TYPE_I18N_MAP[PriceComponentTypeEnum.roadTaxesBridge]),\n                value: PriceComponentTypeEnum.roadTaxesBridge,\n                nestLevel: 1,\n            },\n            {\n                label: t(TYPE_I18N_MAP[PriceComponentTypeEnum.roadTaxesTunnel]),\n                value: PriceComponentTypeEnum.roadTaxesTunnel,\n                nestLevel: 1,\n            },\n            {\n                label: t(TYPE_I18N_MAP[PriceComponentTypeEnum.roadTaxesFerry]),\n                value: PriceComponentTypeEnum.roadTaxesFerry,\n                nestLevel: 1,\n            },\n            {\n                label: t(TYPE_I18N_MAP[PriceComponentTypeEnum.roadTaxesMountainPass]),\n                value: PriceComponentTypeEnum.roadTaxesMountainPass,\n                nestLevel: 1,\n            },\n            {\n                icon: <FeeIcon strokeColor={StyleGuideColorsEnum.slate} />,\n                label: t(TYPE_I18N_MAP[PriceComponentTypeEnum.serviceFee]),\n                value: PriceComponentTypeEnum.serviceFee,\n                nestLevel: 0,\n            },\n        ].filter((option) => {\n            if (!availableValues) {\n                return true;\n            }\n\n            return availableValues.includes(option.value);\n        });\n    }, [t, availableValues]);\n\n    const renderTriggerContent = (option?: OptionT, placeholder?: string) => {\n        if (!option) {\n            return placeholder;\n        }\n\n        return option?.label;\n    };\n\n    const subValues = value ? SUB_VALUES_MAP[value] : [];\n\n    const renderOption = (option?: OptionT) => {\n        const isSelected = option?.value && (option?.value === value || subValues.includes(option.value));\n\n        return (\n            <div\n                key={option?.value}\n                className={cx('option')}\n                style={{ paddingLeft: `${(option?.nestLevel || 0) * LEVEL_PADDING}px` }}\n            >\n                {!!option?.icon && (\n                    <div\n                        className={cx('option__icon')}\n                        onClick={() => {\n                            onSelect(value);\n                        }}\n                    >\n                        {option?.icon}\n                    </div>\n                )}\n                <div\n                    className={cx('option__label')}\n                    onClick={() => {\n                        onSelect(value);\n                    }}\n                >\n                    {option?.label || ''}\n                </div>\n                {isSelected && (\n                    <div className={cx('option__right-icon')}>\n                        <CheckIcon fillColor={StyleGuideColorsEnum.charcoal} size={DEFAULT_ICON_SIZE} />\n                    </div>\n                )}\n            </div>\n        );\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option.value;\n\n    return (\n        <DropdownInput<OptionT, ValueT>\n            className={className}\n            options={options}\n            selectedValue={value}\n            isNotHighlightSelectedOption\n            getOptionValue={getOptionValue}\n            placeholder={placeholder}\n            isDisabled={isDisabled}\n            onSelect={onSelect}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            renderOption={renderOption}\n            renderTriggerContent={renderTriggerContent}\n            overlayPosition={overlayPosition}\n            overlayClassName={cx('overlay')}\n            hasClearControl={value ? hasClearControl : false}\n        />\n    );\n};\n\nexport default PriceComponentTypeCustomMultipleDropdown;\n","import React from 'react';\n\nexport type AssetServiceLocationContextT = {\n    location: LocationT | null;\n    setLocation: (location: LocationT | null) => void;\n};\n\nconst AssetServiceLocationContext = React.createContext<AssetServiceLocationContextT>({\n    location: null,\n    setLocation: () => {\n        // nothing\n    },\n});\n\nexport default AssetServiceLocationContext;\n","import React from 'react';\n\nexport type SyncSetUnavailableFormMapStateContextValueT = {\n    hasDropAssetPointError: boolean;\n    setHasDropAssetPointError: (hasDropAssetPointError: boolean) => void;\n};\n\nexport const useSyncMapState = (): SyncSetUnavailableFormMapStateContextValueT => {\n    const [hasDropAssetPointError, setHasDropAssetPointError] = React.useState<boolean>(false);\n\n    return React.useMemo(() => {\n        return {\n            hasDropAssetPointError,\n            setHasDropAssetPointError,\n        };\n    }, [hasDropAssetPointError]);\n};\n","import {\n    ASSIGN_BID_TO_SPOT_REQUEST,\n    AssignBidToSpotRequestActionT,\n    FETCH_SPOT_REQUEST_DETAILS_REQUEST,\n    FETCH_SPOT_REQUEST_DETAILS_REQUEST_BEGIN,\n    FETCH_SPOT_REQUEST_DETAILS_REQUEST_ERROR,\n    FETCH_SPOT_REQUEST_DETAILS_REQUEST_SUCCESS,\n    FetchSpotRequestDetailsRequestActionT,\n    FetchSpotRequestDetailsRequestBeginActionT,\n    FetchSpotRequestDetailsRequestErrorActionT,\n    FetchSpotRequestDetailsRequestSuccessActionT,\n    UPDATE_SPOT_REQUEST_REQUEST_BEGIN,\n    UPDATE_SPOT_REQUEST_REQUEST_ERROR,\n    UPDATE_SPOT_REQUEST_REQUEST_SUCCESS,\n    UpdateSpotRequestRequestBeginActionT,\n    UpdateSpotRequestRequestErrorActionT,\n    UpdateSpotRequestRequestSuccessActionT,\n} from './types';\nimport { SpotRequestDetailsT } from './models';\n\nexport const fetchSpotRequestDetails = (\n    id: SpotRequestIdT,\n    options?: FetchOptionsT,\n): FetchSpotRequestDetailsRequestActionT => ({\n    type: FETCH_SPOT_REQUEST_DETAILS_REQUEST,\n    id,\n    options,\n});\n\nexport const fetchSpotRequestDetailsBegin = (id: SpotRequestIdT): FetchSpotRequestDetailsRequestBeginActionT => ({\n    type: FETCH_SPOT_REQUEST_DETAILS_REQUEST_BEGIN,\n    id,\n});\n\nexport const fetchSpotRequestDetailsSuccess = (\n    id: SpotRequestIdT,\n    details: SpotRequestDetailsT | null,\n): FetchSpotRequestDetailsRequestSuccessActionT => ({\n    type: FETCH_SPOT_REQUEST_DETAILS_REQUEST_SUCCESS,\n    details,\n    id,\n});\n\nexport const fetchSpotRequestDetailsError = (\n    id: SpotRequestIdT,\n    error: Error,\n): FetchSpotRequestDetailsRequestErrorActionT => ({\n    type: FETCH_SPOT_REQUEST_DETAILS_REQUEST_ERROR,\n    error,\n    id,\n});\n\nexport const assignBidToSpotRequest = (id: SpotRequestIdT, bidId: BidIdT): AssignBidToSpotRequestActionT => ({\n    type: ASSIGN_BID_TO_SPOT_REQUEST,\n    id,\n    bidId,\n});\n\nexport const updateSpotRequestRequestBegin = (id: SpotRequestIdT): UpdateSpotRequestRequestBeginActionT => ({\n    type: UPDATE_SPOT_REQUEST_REQUEST_BEGIN,\n    id,\n});\n\nexport const updateSpotRequestRequestSuccess = (id: SpotRequestIdT): UpdateSpotRequestRequestSuccessActionT => ({\n    type: UPDATE_SPOT_REQUEST_REQUEST_SUCCESS,\n    id,\n});\n\nexport const updateSpotRequestRequestError = (\n    id: SpotRequestIdT,\n    error: Error,\n): UpdateSpotRequestRequestErrorActionT => ({\n    type: UPDATE_SPOT_REQUEST_REQUEST_ERROR,\n    error,\n    id,\n});\n","import { EmissionClassEnum } from 'common/constants';\n\nexport const MAX_RADIUS_KM = 300;\nexport const MIN_VALID_FROM_VALID_TILL_DAYS = 7;\n\nexport enum FieldsEnum {\n    trailerDictId = 'trailerDictId',\n    emissionClass = 'emissionClass',\n\n    pickUpLocation = 'pickUpLocation',\n    pickUpLocationRadius = 'pickUpLocationRadius',\n\n    dropOffLocation = 'dropOffLocation',\n    dropOffLocationRadius = 'dropOffLocationRadius',\n\n    validFrom = 'validFrom',\n    validTill = 'validTill',\n\n    layoverLimit = 'layoverLimit',\n    ordersLimit = 'ordersLimit',\n\n    externalLaneId = 'externalLaneId',\n\n    includeServiceFee = 'includeServiceFee',\n    includeTeamDrive = 'includeTeamDrive',\n    useApplyRules = 'useApplyRules',\n}\n\nexport type FormTouchedT = Partial<Record<FieldsEnum, boolean>>;\n\nexport type FormValuesT = {\n    [FieldsEnum.trailerDictId]: TrailerDictIdT | null;\n    [FieldsEnum.emissionClass]: EmissionClassEnum | null;\n\n    [FieldsEnum.pickUpLocation]: LocationT | null;\n    [FieldsEnum.pickUpLocationRadius]: string;\n\n    [FieldsEnum.dropOffLocation]: LocationT | null;\n    [FieldsEnum.dropOffLocationRadius]: string;\n\n    [FieldsEnum.validFrom]: Date | null;\n    [FieldsEnum.validTill]: Date | null;\n\n    [FieldsEnum.layoverLimit]: string;\n    [FieldsEnum.ordersLimit]: string;\n\n    [FieldsEnum.externalLaneId]: string;\n\n    [FieldsEnum.includeServiceFee]: boolean;\n    [FieldsEnum.includeTeamDrive]: boolean;\n    [FieldsEnum.useApplyRules]: boolean;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import { ApiTourEditNewStopT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { RoutePointTypeEnum } from '../models';\n\nexport const convertRoutePointType = (type: RoutePointTypeEnum | null): ApiTourEditNewStopT['type'] | null => {\n    if (type === RoutePointTypeEnum.driveThrough) {\n        return 'DRIVE_THROUGH';\n    }\n\n    if (type === RoutePointTypeEnum.dropAndHook) {\n        return 'DROP_AND_HOOK';\n    }\n\n    return null;\n};\n","import { put, select } from 'redux-saga/effects';\nimport {\n    fetchCountrySettingsDictBegin,\n    fetchCountrySettingsDictError,\n    fetchCountrySettingsDictSuccess,\n} from './actions';\nimport { COUNTRY_SETTINGS_DICT_REQUEST } from './types';\nimport { selectCountrySettingsDictRequest } from './selectors';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport { semaphoreSaga } from 'common/utils/semaphore-saga';\n\nfunction* fetchCountrySettingsDictSaga(): WrapGeneratorT<void> {\n    const requestStatus: ReturnType<typeof selectCountrySettingsDictRequest> = yield select(\n        selectCountrySettingsDictRequest,\n    );\n    if (requestStatus.ok || requestStatus.loading) {\n        return;\n    }\n\n    yield put(fetchCountrySettingsDictBegin());\n\n    const [error, list]: ReturnApiT<typeof commonTranziitApi.getCountrySettingsDict> =\n        yield commonTranziitApi.getCountrySettingsDict();\n\n    if (error) {\n        yield put(fetchCountrySettingsDictError(error));\n    }\n\n    if (list) {\n        yield put(fetchCountrySettingsDictSuccess(list));\n    }\n}\n\nexport function* countrySettingsDictSaga(): WrapGeneratorT<void> {\n    yield semaphoreSaga(COUNTRY_SETTINGS_DICT_REQUEST, fetchCountrySettingsDictSaga);\n}\n","import {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DEFAULT_ICON_SIZE, documentsWithoutExpirySet, StyleGuideColorsEnum } from 'common/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport { DocumentStatusEnum } from 'common/utils/api/models';\nimport { PermissionsT } from 'common/store/auth/models';\nimport { DocumentActionsT } from '../models';\nimport { DocumentT } from 'common/store/documents/models';\nimport UploadFileIcon from 'common/icons/UploadFileIcon';\nimport EditIcon from 'common/icons/EditIcon';\nimport { DictDocumentT } from 'common/store/documents-dict/models';\nimport { logWarning } from 'common/utils/logger';\nimport DownloadIcon from 'common/icons/DownloadIcon';\nimport { PartnerPermissionsT } from 'common/contexts/partner-permission-context';\n\nenum DocumentActionsEnum {\n    download = 'download',\n    upload = 'upload',\n    revoke = 'revoke',\n    edit = 'edit',\n}\n\ntype CallbacksT = DocumentActionsT;\n\nexport const useDocumentsActionOptions = ({\n    actualDocumentVersion,\n    dictDocument,\n    permissions,\n    partnerPermissions,\n    callbacks,\n}: {\n    actualDocumentVersion: DocumentT | null;\n    dictDocument: DictDocumentT | null;\n    permissions: PermissionsT;\n    partnerPermissions: Partial<PartnerPermissionsT>;\n    callbacks: CallbacksT;\n}): Array<DropdownControlOptionT | SpecialOptionEnum> => {\n    const { onDownloadDocument, onUploadDocument, onRevokeDocument, onEditDocumentInfo } = callbacks;\n    const { canDownloadDocuments } = permissions;\n    const { canUploadDocuments, canRevokeDocuments, canEditDocuments } = partnerPermissions;\n\n    const { t } = useTranslation();\n\n    const optionsConfigMap: Record<\n        DocumentActionsEnum,\n        { icon: React.ReactNode; label: React.ReactNode; onSelect: () => void }\n    > = {\n        [DocumentActionsEnum.download]: {\n            icon: <DownloadIcon fillColor={StyleGuideColorsEnum.charcoal} size={DEFAULT_ICON_SIZE} />,\n            label: t('common:documents.table.actions.download'),\n            onSelect: () => {\n                if (actualDocumentVersion) {\n                    onDownloadDocument(actualDocumentVersion.id);\n                } else {\n                    logWarning('failed to download document');\n                }\n            },\n        },\n        [DocumentActionsEnum.upload]: {\n            icon: <UploadFileIcon fillColor={StyleGuideColorsEnum.charcoal} />,\n            label:\n                actualDocumentVersion?.status === null\n                    ? t('common:documents.table.actions.upload')\n                    : t('common:documents.table.actions.upload-new'),\n            onSelect: () => {\n                if (actualDocumentVersion?.dictDocumentId) {\n                    onUploadDocument(actualDocumentVersion.dictDocumentId);\n                } else {\n                    logWarning('failed to upload document');\n                }\n            },\n        },\n        [DocumentActionsEnum.revoke]: {\n            icon: <CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />,\n            label: t('common:documents.table.actions.revoke'),\n            onSelect: () => {\n                if (dictDocument && actualDocumentVersion) {\n                    onRevokeDocument(dictDocument.id, actualDocumentVersion.id);\n                } else {\n                    logWarning('failed to revoke document');\n                }\n            },\n        },\n        [DocumentActionsEnum.edit]: {\n            icon: (\n                <EditIcon\n                    size={DEFAULT_ICON_SIZE}\n                    fillColor={StyleGuideColorsEnum.brandAccent}\n                    strokeColor={StyleGuideColorsEnum.brandDark}\n                />\n            ),\n            label: t('common:documents.table.actions.edit'),\n            onSelect: () => {\n                if (dictDocument) {\n                    onEditDocumentInfo(dictDocument.type);\n                } else {\n                    logWarning('failed to edit document');\n                }\n            },\n        },\n    };\n\n    const actions = React.useMemo((): Array<DocumentActionsEnum | SpecialOptionEnum> => {\n        const hasAnyVersion = !!actualDocumentVersion;\n\n        const actions: Array<DocumentActionsEnum | SpecialOptionEnum> = [];\n\n        if (hasAnyVersion && canDownloadDocuments) {\n            actions.push(DocumentActionsEnum.download);\n        }\n\n        if (hasAnyVersion && canUploadDocuments) {\n            actions.push(DocumentActionsEnum.upload);\n        }\n\n        if (actualDocumentVersion?.status === DocumentStatusEnum.approved && hasAnyVersion && canEditDocuments) {\n            actions.push(SpecialOptionEnum.separator);\n\n            const isAllowEdit =\n                !!actualDocumentVersion?.documentType &&\n                !documentsWithoutExpirySet.has(actualDocumentVersion.documentType);\n            if (isAllowEdit) {\n                actions.push(DocumentActionsEnum.edit);\n            }\n        }\n\n        if (actualDocumentVersion?.status === DocumentStatusEnum.approved && hasAnyVersion && canRevokeDocuments) {\n            actions.push(SpecialOptionEnum.separator);\n            actions.push(DocumentActionsEnum.revoke);\n        }\n\n        return actions;\n    }, [actualDocumentVersion, canDownloadDocuments, canUploadDocuments, canRevokeDocuments, canEditDocuments]);\n\n    const options = actions.map((action) => {\n        if (action === SpecialOptionEnum.separator) {\n            return SpecialOptionEnum.separator;\n        }\n\n        const optionConfig = optionsConfigMap[action];\n\n        return {\n            label: <DropdownControlOptionLabel icon={optionConfig.icon} label={optionConfig.label} />,\n            onSelect: optionConfig.onSelect,\n        };\n    });\n\n    return options;\n};\n","import * as React from 'react';\n\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useFormik } from 'formik';\nimport { useTranslation } from 'react-i18next';\nimport CountryDropdown from 'common/components/dropdowns/CountryDropdown/CountryDropdown';\n\nimport classNames from 'classnames/bind';\nimport styles from './CompanySignUpForm.scss';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport Input from 'common/components/Input/Input';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport { getZipCodePlaceholder } from 'common/utils/postal-codes';\nimport {\n    checkIsTranziitApiRequestError,\n    TranziitApiRequestErrorSubTypeEnum,\n} from 'common/utils/api/tranziit/errors/tranziit-api-errors';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\n\nconst cx = classNames.bind(styles);\n\nconst INITIAL_VALUES: FormValuesT = {\n    [FieldsEnum.companyName]: '',\n    [FieldsEnum.countryCode]: null,\n    [FieldsEnum.zipCode]: '',\n    [FieldsEnum.city]: '',\n    [FieldsEnum.street1]: '',\n};\n\ntype CompanySignUpFormPropsT = {\n    loading?: boolean;\n    onSubmit: (formValues: FormValuesT) => void;\n    error: Error | null;\n};\n\nconst CompanySignUpForm: React.FC<CompanySignUpFormPropsT> = React.memo((props) => {\n    const { loading, onSubmit, error } = props;\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const initialErrors = React.useMemo(() => {\n        return validateForm(t, INITIAL_VALUES);\n    }, [t]);\n\n    const formik = useFormik<FormValuesT>({\n        validateOnBlur: false,\n        initialErrors,\n        initialValues: INITIAL_VALUES,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            onSubmit(values);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const parseRequestError = (error: Error | null): string | null => {\n        if (!error) {\n            return null;\n        }\n\n        if (\n            checkIsTranziitApiRequestError(error) &&\n            error.subType === TranziitApiRequestErrorSubTypeEnum.emailAlreadyExist\n        ) {\n            return t('common:auth-errors.email-already-exist');\n        }\n\n        return error?.message || null;\n    };\n\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <div className={cx('fields')}>\n                <FormikField\n                    name={FieldsEnum.companyName}\n                    error={formik.errors[FieldsEnum.companyName]}\n                    meta={formik.getFieldMeta(FieldsEnum.companyName)}\n                    label={t('common:sign-up.fields.companyName.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <Input\n                            name={FieldsEnum.companyName}\n                            value={formik.values[FieldsEnum.companyName]}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    name={FieldsEnum.countryCode}\n                    error={formik.errors[FieldsEnum.countryCode]}\n                    label={t('common:sign-up.fields.countryCode.label')}\n                    meta={formik.getFieldMeta(FieldsEnum.countryCode)}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <CountryDropdown\n                            value={formik.values[FieldsEnum.countryCode]}\n                            onChange={(countryCode) => {\n                                props.onChange(countryCode);\n                            }}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                        />\n                    )}\n                </FormikField>\n                <FieldGroup spaces={1}>\n                    <FormikField\n                        className={cx('field--zip')}\n                        name={FieldsEnum.zipCode}\n                        error={formik.errors[FieldsEnum.zipCode]}\n                        meta={formik.getFieldMeta(FieldsEnum.zipCode)}\n                        label={t('common:sign-up.fields.zipCode.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <Input\n                                name={FieldsEnum.zipCode}\n                                value={formik.values[FieldsEnum.zipCode]}\n                                placeholder={getZipCodePlaceholder(formik.values[FieldsEnum.countryCode])}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field--city')}\n                        name={FieldsEnum.city}\n                        error={formik.errors[FieldsEnum.city]}\n                        meta={formik.getFieldMeta(FieldsEnum.city)}\n                        label={t('common:sign-up.fields.city.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <Input\n                                name={FieldsEnum.city}\n                                value={formik.values[FieldsEnum.city]}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FormikField\n                    name={FieldsEnum.street1}\n                    error={formik.errors[FieldsEnum.street1]}\n                    meta={formik.getFieldMeta(FieldsEnum.street1)}\n                    label={t('common:sign-up.fields.street1.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <Input\n                            name={FieldsEnum.street1}\n                            value={formik.values[FieldsEnum.street1]}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikField>\n            </div>\n            <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n            <Button isLoading={loading} theme={ButtonThemeEnum.primary} type=\"submit\" className={cx('submit')}>\n                {t('common:sign-up.company-form.submit')}\n            </Button>\n            <div className={cx('error')}>{parseRequestError(error)}</div>\n        </form>\n    );\n});\n\nexport default CompanySignUpForm;\n","import DatabaseIcon from 'common/icons/DatabaseIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport * as React from 'react';\nimport PartnersIcon from 'common/icons/PartnersIcon';\nimport PadIcon from 'common/icons/PadIcon';\nimport CaseIcon from 'common/icons/CaseIcon';\nimport PlusIcon from 'common/icons/PlusIcon';\n\ntype MenuIconPropsT = {\n    isActive: boolean;\n};\n\nconst DEFAULT_ICON_PRESET = {\n    active: {\n        fillOpacity: 0.3,\n        fill: StyleGuideColorsEnum.brandAccent,\n        stroke: StyleGuideColorsEnum.brandDark,\n    },\n    default: {\n        fillOpacity: 1,\n        fill: StyleGuideColorsEnum.light,\n        stroke: StyleGuideColorsEnum.slate,\n    },\n};\n\nexport const DatabaseMenuIcon: React.FC<MenuIconPropsT> = (props) => {\n    const { isActive } = props;\n\n    return (\n        <DatabaseIcon\n            fillOpacity={isActive ? DEFAULT_ICON_PRESET.active.fillOpacity : DEFAULT_ICON_PRESET.default.fillOpacity}\n            fillColor={isActive ? DEFAULT_ICON_PRESET.active.fill : DEFAULT_ICON_PRESET.default.fill}\n            strokeColor={isActive ? DEFAULT_ICON_PRESET.active.stroke : DEFAULT_ICON_PRESET.default.stroke}\n        />\n    );\n};\n\nexport const PlusMenuIcon: React.FC<MenuIconPropsT> = (props) => {\n    const { isActive } = props;\n\n    return (\n        <PlusIcon\n            size={DEFAULT_ICON_SIZE}\n            strokeColor={isActive ? DEFAULT_ICON_PRESET.active.stroke : DEFAULT_ICON_PRESET.default.stroke}\n        />\n    );\n};\n\nexport const TeamsMenuIcon: React.FC<MenuIconPropsT> = (props) => {\n    const { isActive } = props;\n\n    return (\n        <PartnersIcon\n            fillOpacity={isActive ? DEFAULT_ICON_PRESET.active.fillOpacity : DEFAULT_ICON_PRESET.default.fillOpacity}\n            fillColor={isActive ? DEFAULT_ICON_PRESET.active.fill : DEFAULT_ICON_PRESET.default.fill}\n            strokeColor={isActive ? DEFAULT_ICON_PRESET.active.stroke : DEFAULT_ICON_PRESET.default.stroke}\n        />\n    );\n};\n\nexport const BusinessPartnerMenuIcon: React.FC<MenuIconPropsT> = (props) => {\n    const { isActive } = props;\n\n    return (\n        <CaseIcon\n            size={DEFAULT_ICON_SIZE}\n            fillOpacity={isActive ? DEFAULT_ICON_PRESET.active.fillOpacity : DEFAULT_ICON_PRESET.default.fillOpacity}\n            fillColor={isActive ? DEFAULT_ICON_PRESET.active.fill : DEFAULT_ICON_PRESET.default.fill}\n            strokeColor={isActive ? DEFAULT_ICON_PRESET.active.stroke : DEFAULT_ICON_PRESET.default.stroke}\n        />\n    );\n};\n\nexport const ProfileMenuIcon: React.FC<MenuIconPropsT> = (props) => {\n    const { isActive } = props;\n\n    return (\n        <PadIcon\n            fillOpacity={isActive ? DEFAULT_ICON_PRESET.active.fillOpacity : DEFAULT_ICON_PRESET.default.fillOpacity}\n            fillColor={isActive ? DEFAULT_ICON_PRESET.active.fill : DEFAULT_ICON_PRESET.default.fill}\n            strokeColor={isActive ? DEFAULT_ICON_PRESET.active.stroke : DEFAULT_ICON_PRESET.default.stroke}\n        />\n    );\n};\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './CollapsedOfferDetails.scss';\n\nimport { useTranslation } from 'react-i18next';\nimport { PriceOfferT } from 'common/store/order-creation/models';\nimport Money from 'common/components/Money/Money';\nimport { convertSecToHours } from 'common/utils/time';\nimport ExpandIcon from 'common/icons/ExpandIcon';\nimport { CurrencyEnum, DEFAULT_ICON_SIZE, StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\nimport BigRadioIcon from 'common/icons/BigRadioIcon';\nimport BigCheckIcon from 'common/icons/BigCheckIcon';\nimport EmissionIcon from 'common/icons/EmissionIcon';\nimport EmissionUnitValue from 'common/components/EmissionUnitValue/EmissionUnitValue';\nimport isNumber from 'lodash/isNumber';\nimport EmissionClassPill from 'common/components/status-pill/EmissionClassPill/EmissionClassPill';\nimport FuelOptionTypePill from 'common/components/status-pill/FuelOptionTypePill/FuelOptionTypePill';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport OfferAttribute, {\n    OfferAttributeIconTypeEnum,\n} from 'common/layouts/NewOrderPage/OfferDetails/CollapsedOfferDetails/OfferAttribute/OfferAttribute';\nimport EditIcon from 'common/icons/EditIcon';\nimport { checkIsCreditLimitExceeded } from 'common/layouts/NewOrderPage/utils/check-is-credit-limit-exceeded';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    offer: PriceOfferT;\n    totalOfferPrice: number;\n    onSelect: () => void;\n    onOpenDetails: () => void;\n    isSelectable?: boolean;\n    isSelected?: boolean;\n    isDisabled?: boolean;\n    isOpenDetails?: boolean;\n    isChangedTotalPrice?: boolean;\n    isAllowEditTotalPrice?: boolean;\n    onStartEditTotalPrice?: () => void;\n    creditLimit: number | null;\n};\n\nconst CollapsedOfferDetails: React.FC<PropsT> = React.memo((props) => {\n    const {\n        totalOfferPrice,\n        onSelect,\n        onOpenDetails,\n        isSelectable,\n        isSelected,\n        isDisabled,\n        isOpenDetails,\n        offer,\n        isChangedTotalPrice,\n        isAllowEditTotalPrice,\n        onStartEditTotalPrice,\n        creditLimit,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const teamDriveTooltipLabel = t('common:new-order-details.team-drive');\n    const urgentShipmentTooltipLabel = t('common:new-order-details.urgent-shipment');\n\n    const layoverHours = convertSecToHours(offer.layoverSeconds);\n\n    const layoverTooltipLabel = layoverHours\n        ? t('common:new-order-details.layover', {\n              hours: `${layoverHours} ${t('common:hours', {\n                  postProcess: 'interval',\n                  count: layoverHours,\n              })}`,\n          })\n        : null;\n\n    const handleClick = (event: React.MouseEvent<HTMLDivElement>) => {\n        if (event?.target instanceof HTMLElement) {\n            const isPriceDetailsClick = event?.target?.dataset?.clickDetect;\n            if (isPriceDetailsClick && isSelectable) {\n                return;\n            }\n\n            if (isSelectable && !isSelected && !isDisabled) {\n                onSelect();\n            } else {\n                onOpenDetails();\n            }\n        }\n    };\n\n    const handleTriggerClick = () => {\n        onOpenDetails();\n    };\n\n    const ratePerKm = totalOfferPrice / offer.distanceKm;\n    const isCreditLimitExceeded = checkIsCreditLimitExceeded({ creditLimit, cost: totalOfferPrice });\n\n    return (\n        <div\n            className={cx('details', {\n                'details--isSelectable': isSelectable,\n                'details--isClickable': !isDisabled,\n            })}\n            onClick={handleClick}\n            data-test-selector=\"collapsed-price-offer\"\n        >\n            {isSelectable ? (\n                <BigRadioIcon className={cx('icon')} isSelected={isSelected} isDisabled={isDisabled} />\n            ) : (\n                <BigCheckIcon className={cx('icon')} isDisabled={isDisabled} />\n            )}\n            <div className={cx('price')}>\n                {offer?.price && (\n                    <div\n                        className={cx('price__total', {\n                            'price__total--changed': isChangedTotalPrice,\n                        })}\n                    >\n                        <Money amount={totalOfferPrice} currency={CurrencyEnum.EUR} />\n                    </div>\n                )}\n                <div className={cx('price__description')}>\n                    <UnitTypeCount\n                        types={[UnitTypeEnum.euroAbbreviation, UnitTypeEnum.kilometersAbbreviation]}\n                        count={ratePerKm}\n                    />\n                </div>\n            </div>\n            <div className={cx('price-details-trigger')}>\n                <Tooltip\n                    position={TooltipPositionEnum.topCenter}\n                    theme={TooltipThemeEnum.black}\n                    tooltipNode={\n                        <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                            {t(isOpenDetails ? 'common:tooltips.hide-details' : 'common:tooltips.show-details')}\n                        </TooltipContent>\n                    }\n                >\n                    {() => (\n                        <TransparentTrigger\n                            spaces=\"xs\"\n                            onClick={handleTriggerClick}\n                            leftIcon={\n                                <ExpandIcon fillColor={StyleGuideColorsEnum.brandAccent} isInvert={isOpenDetails} />\n                            }\n                            reflectionTheme={ReflectionThemeEnum.light}\n                        />\n                    )}\n                </Tooltip>\n            </div>\n            {isAllowEditTotalPrice && (\n                <div className={cx('edit')}>\n                    <Tooltip\n                        position={TooltipPositionEnum.topCenter}\n                        theme={TooltipThemeEnum.black}\n                        tooltipNode={\n                            <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                                {t('common:new-order-details.tooltips.edit')}\n                            </TooltipContent>\n                        }\n                    >\n                        {() => (\n                            <TransparentTrigger\n                                spaces=\"xs\"\n                                onClick={(event) => {\n                                    event.stopPropagation();\n\n                                    if (onStartEditTotalPrice) {\n                                        onStartEditTotalPrice();\n                                    }\n                                }}\n                                leftIcon={\n                                    <EditIcon\n                                        size={DEFAULT_ICON_SIZE}\n                                        fillColor={StyleGuideColorsEnum.light}\n                                        strokeColor={StyleGuideColorsEnum.charcoal}\n                                    />\n                                }\n                                reflectionTheme={ReflectionThemeEnum.light}\n                            />\n                        )}\n                    </Tooltip>\n                </div>\n            )}\n            <div className={cx('other-details')}>\n                <div className={cx('other-details__row', 'other-details__row--first')}>\n                    <div className={cx('emission-labels')}>\n                        {offer?.isGreenTruck && (\n                            <OfferAttribute\n                                className={cx('attribute')}\n                                iconType={OfferAttributeIconTypeEnum.eco}\n                                tooltipLabel={t('common:new-order-details.tooltips.green')}\n                            />\n                        )}\n                        <Tooltip\n                            position={TooltipPositionEnum.topCenter}\n                            theme={TooltipThemeEnum.black}\n                            tooltipNode={\n                                <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                    {t('common:new-order-details.tooltips.emission-class')}\n                                </TooltipContent>\n                            }\n                        >\n                            {() =>\n                                offer?.emissionClass ? <EmissionClassPill emissionClass={offer.emissionClass} /> : null\n                            }\n                        </Tooltip>\n                        <FuelOptionTypePill fuelOption={offer?.fuelOptionType} />\n                        {isCreditLimitExceeded && (\n                            <Tooltip\n                                position={TooltipPositionEnum.topCenter}\n                                theme={TooltipThemeEnum.black}\n                                tooltipNode={\n                                    <TooltipContent width={160} theme={TooltipContentThemeEnum.black}>\n                                        {t('common:new-order-details.tooltips.credit-limit')}\n                                    </TooltipContent>\n                                }\n                            >\n                                {() => (\n                                    <PillLabel isSymmetrical isNoWrap theme={PillLabelThemeEnum.tomatoRed}>\n                                        {t('common:new-order-details.credit-limit')}\n                                    </PillLabel>\n                                )}\n                            </Tooltip>\n                        )}\n                    </div>\n                </div>\n                <div className={cx('other-details__row', 'other-details__row--secondary')}>\n                    <div className={cx('attributes')}>\n                        {offer?.isUrgentShipment && (\n                            <OfferAttribute\n                                className={cx('attribute')}\n                                iconType={OfferAttributeIconTypeEnum.urgent}\n                                tooltipLabel={urgentShipmentTooltipLabel}\n                            />\n                        )}\n                        {offer?.hasLayover && (\n                            <OfferAttribute\n                                className={cx('attribute')}\n                                iconType={OfferAttributeIconTypeEnum.layover}\n                                tooltipLabel={layoverTooltipLabel}\n                            />\n                        )}\n                        {offer?.isTeamDrive && (\n                            <OfferAttribute\n                                className={cx('attribute')}\n                                iconType={OfferAttributeIconTypeEnum.teamDrive}\n                                tooltipLabel={teamDriveTooltipLabel}\n                            />\n                        )}\n                        {isNumber(offer?.co2) ? (\n                            <Tooltip\n                                position={TooltipPositionEnum.topCenter}\n                                theme={TooltipThemeEnum.black}\n                                tooltipNode={\n                                    <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                        {t('common:new-order-details.tooltips.emission-value')}\n                                    </TooltipContent>\n                                }\n                                isInline\n                            >\n                                {() => (\n                                    <>\n                                        <EmissionIcon\n                                            strokeColor={StyleGuideColorsEnum.charcoal}\n                                            className={cx('emission__icon')}\n                                        />\n                                        <EmissionUnitValue className={cx('emission__value')} co2={offer?.co2} />\n                                    </>\n                                )}\n                            </Tooltip>\n                        ) : null}\n                    </div>\n                </div>\n            </div>\n        </div>\n    );\n});\n\nexport default CollapsedOfferDetails;\n","import { buffers } from 'redux-saga';\nimport { actionChannel, cancel, delay, fork, put, select, take, takeEvery, takeLeading } from 'redux-saga/effects';\nimport { generatePath } from 'react-router';\nimport { diff } from 'deep-object-diff';\nimport isNil from 'lodash/isNil';\nimport {\n    CHANGE_RESERVE_QUERY,\n    ChangeReserveQueryActionT,\n    CREATE_ORDER_REQUEST,\n    CREATE_PRICE_OFFER_WITH_LANE_REQUEST,\n    CREATE_PRICE_OFFER_WITH_LANE_REQUEST_ERROR,\n    CREATE_RFQ_REQUEST,\n    CREATE_RFQ_REQUEST_ERROR,\n    CreateOrderActionT,\n    CreatePriceOfferWithLaneRequestActionT,\n    CreateRFQActionT,\n    ENSURE_CREATED_RFQ,\n    EnsureCreatedRFQActionT,\n    FETCH_ROUTE,\n    FETCH_SHIPPER_INFO,\n    FetchShipperInfoActionT,\n    FETCH_TASK_OFFER,\n    FetchRouteActionT,\n    PREVIEW_RESERVE_ERROR,\n    PreviewReserveErrorActionT,\n    SELECT_OFFER,\n    SelectOfferActionT,\n} from './types';\nimport {\n    changeReserveQuery,\n    clearOffersTasks,\n    correctPreviewReserveQuery,\n    correctReserveQuery,\n    createOrderBegin,\n    createOrderError,\n    createOrderSuccess,\n    createPriceOfferWithLaneRequestBegin,\n    createPriceOfferWithLaneRequestError,\n    createPriceOfferWithLaneRequestSuccess,\n    createReserveBegin,\n    createReserveError,\n    createReserveSuccess,\n    createRFQBegin,\n    createRFQError,\n    createRFQSuccess,\n    fetchOffers,\n    fetchOffersError,\n    fetchRoute,\n    fetchRouteError,\n    fetchRouteSuccess,\n    fetchShipperInfoBegin,\n    fetchShipperInfoError,\n    fetchShipperInfoSuccess,\n    markOffersExpired,\n    previewReserveBegin,\n    previewReserveError,\n    previewReserveSuccess,\n    resetCreateReserveWithQuery,\n    resetOrderCreation,\n    setAllowCreateRFQ,\n    setCreateReserveQuery,\n    setExpectedOffersCount,\n    setPreviewReserveQuery,\n} from './actions';\nimport history from 'common/utils/history';\nimport { CommonRoutesEnum, CompanyTypeEnum, OMSRoutesEnum, QueryKeysEnum } from 'common/constants';\nimport {\n    selectCreateRFQRequest,\n    selectOffersTasks,\n    selectPolylines,\n    selectPriceOffers,\n    selectPriceOffersList,\n    selectReserve,\n    selectReservePreview,\n    selectReservePreviewQuery,\n    selectReservePreviewRequest,\n    selectReserveQuery,\n    selectReserveRequest,\n    selectRFQ,\n    selectShipperInfoById,\n    selectShipperInfoRequestStatus,\n} from './selectors';\nimport preparePriceOffer from './utils/prepare-price-offer';\nimport prepareRFQ from './utils/prepare-rfq';\nimport ValuesStorage from 'common/utils/form-values-storage';\nimport { CARGO_DETAILS_FORM_NAME } from 'common/layouts/NewOrderPage/CargoDetailsForm/constants';\nimport { SHIPMENT_DETAIL_FORM_NAME } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/constants';\nimport { logDebug, logWarning } from 'common/utils/logger';\n\nimport { formatQuery, parseQuery } from 'common/utils/query';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport {\n    checkIsTranziitApiRequestError,\n    TranziitApiRequestErrorSubTypeEnum,\n} from 'common/utils/api/tranziit/errors/tranziit-api-errors';\nimport {\n    CreateReserveQueryT,\n    ReservePreviewQueryT,\n    ReserveQueryModifyEventT,\n    ReserveT,\n    ReserveTimeWindowT,\n} from './models';\nimport { checkIsPastDate, getDateFromISO, MS_IN_SEC } from 'common/utils/time';\nimport { byAlphabetASC } from 'common/utils/sort';\nimport { getApiReverseQuery, getReverseQueryChanges, mergeReverseQueryChanges } from './utils/create-reverse-query';\nimport { checkIsSameQuery } from 'common/utils/pagination/utils';\nimport {\n    correctionPreviewReverseQueryAfterReserve,\n    getApiPreviewReverseQuery,\n    getPreviewReverseQueryChanges,\n    mergePreviewReverseQuery,\n    setReversePreviewDefaultQuery,\n} from './utils/preview-reverse-query';\nimport prepareReservePreview from 'common/store/order-creation/utils/prepare-reserve-preview';\nimport isEmpty from 'lodash/isEmpty';\nimport preparePreview from 'common/store/order-creation/utils/prepare-reserve';\nimport uniq from 'lodash/uniq';\nimport { getDefaultAdditionalServices } from 'common/store/order-creation/utils/get-default-additional-services';\nimport { ordersRefreshChannel } from 'common/store/orders/channels';\nimport { reserveQueryModifyChannel } from 'common/store/order-creation/channels';\nimport { getPreviewReserveQueryCorrection } from 'common/store/order-creation/utils/get-preview-reserve-query-correction';\nimport { getReserveQueryCorrection } from 'common/store/order-creation/utils/get-reserve-query-correction';\nimport { getQueryModifyEventAfterReserve } from 'common/store/order-creation/utils/get-query-modify-event-after-reserve';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAlertTypeEnum, CommonAnyAlert } from 'common/components/toasts/AlertToastsManager/models';\nimport { routesEnum as BrokerRoutesEnum } from 'broker-admin/constants';\nimport { urlFactory as brokerUrlFactory } from 'broker-admin/utils/urls';\nimport { urlFactory as shipperUrlFactory } from 'shipper/utils/urls';\nimport { urlFactory as commonUrlFactory } from 'common/utils/urls';\nimport { createFakeIdFromPoint } from 'common/store/order-creation/utils/create-fake-id-from-point';\nimport { editablePointTypeSet } from 'common/store/order-creation/constants';\nimport { selectCountrySettingsByCountryCode } from 'common/store/country-settings-dict/selectors';\nimport { COUNTRY_SETTINGS_DICT_REQUEST_SUCCESS } from 'common/store/country-settings-dict/types';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport shipperTranziitApi from 'shipper/utils/api/shipper-tranziit/api';\nimport checkNeedRequest from 'common/utils/check-need-request';\n\nfunction* fetchShipperInfoSaga(action: FetchShipperInfoActionT): WrapGeneratorT<void> {\n    const shipperInfoById: ReturnType<typeof selectShipperInfoById> = yield select(selectShipperInfoById);\n    const currentRequestStatus: ReturnType<typeof selectShipperInfoRequestStatus> = yield select(\n        selectShipperInfoRequestStatus,\n    );\n    if (shipperInfoById[action.shipperId] && !checkNeedRequest(currentRequestStatus, action.options)) {\n        return;\n    }\n\n    yield put(fetchShipperInfoBegin());\n\n    const response: ReturnApiT<typeof commonTranziitApi.fetchOrderReservesShippers> =\n        yield commonTranziitApi.fetchOrderReservesShippers({ id: action.shipperId });\n    const [error, result] = response;\n\n    if (error) {\n        yield put(fetchShipperInfoError(error));\n        return;\n    }\n\n    const shipperInfo = result?.content?.find((shipper) => shipper.id === action.shipperId);\n    if (!shipperInfo) {\n        yield put(fetchShipperInfoError(new Error(`Shipper ${action.shipperId} not found`)));\n        return;\n    }\n\n    yield put(fetchShipperInfoSuccess(shipperInfo));\n}\n\n// eslint-disable-next-line require-yield\nfunction* redirectToStartNewOrderSaga() {\n    history.push({\n        pathname: generatePath(OMSRoutesEnum.newOrder),\n        search: history.location.search,\n    });\n}\n\nlet delayedSyncFetchTaskOffers: TODO = null;\n\nfunction* unSubscribeTaskOffersSaga() {\n    if (delayedSyncFetchTaskOffers) {\n        yield cancel(delayedSyncFetchTaskOffers);\n        delayedSyncFetchTaskOffers = null;\n    }\n}\n\nconst SUBSCRIPTION_INTERVAL = 2 * MS_IN_SEC;\nconst ATTEMPTS_LIMIT = 5;\n\nfunction* delayedSyncFetchTaskOffersSaga({\n    rfqId,\n    expectedOffersCount,\n}: {\n    rfqId: RFQIdT;\n    isBroker: boolean;\n    expectedOffersCount: number | null;\n}) {\n    if (!expectedOffersCount) {\n        return;\n    }\n\n    let attempt = 0;\n    let isComplete = false;\n\n    while (attempt <= ATTEMPTS_LIMIT && !isComplete) {\n        if (attempt) {\n            yield delay(attempt * SUBSCRIPTION_INTERVAL);\n        }\n\n        const responsePriceOffers: ReturnApiT<typeof commonTranziitApi.getPriceOffers> =\n            yield commonTranziitApi.getPriceOffers(rfqId);\n        const [apiPriceOffersError, apiPriceOffers] = responsePriceOffers;\n\n        if (apiPriceOffersError) {\n            yield put(fetchOffersError(apiPriceOffersError));\n        }\n\n        if (!apiPriceOffers) {\n            const error = new Error('empty apiPriceOffers!');\n            yield put(fetchOffersError(error));\n        }\n\n        const priceOffers = (apiPriceOffers || []).map(preparePriceOffer);\n        yield put(fetchOffers(priceOffers));\n\n        isComplete = priceOffers?.length >= expectedOffersCount;\n        attempt += 1;\n    }\n}\n\nfunction getCreateRFQSaga(companyType: CompanyTypeEnum) {\n    return function* createRFQSaga(action: CreateRFQActionT): WrapGeneratorT<void> {\n        const isBroker = companyType === CompanyTypeEnum.broker;\n\n        const { actualOrderRequest, reserve, shipperId } = action;\n\n        yield unSubscribeTaskOffersSaga();\n        yield put(clearOffersTasks());\n\n        yield put(createRFQBegin());\n\n        const reserveId = reserve?.reserveId;\n\n        const apiCreateRFQResponse: ReturnApiT<typeof commonTranziitApi.createMultipointOrderQuotation> =\n            yield commonTranziitApi.createMultipointOrderQuotation(reserveId, actualOrderRequest);\n\n        if (!apiCreateRFQResponse) {\n            return;\n        }\n\n        const [apiCreateRFQError, apiCreateRFQResult] = apiCreateRFQResponse;\n        if (apiCreateRFQError) {\n            yield put(createRFQError(apiCreateRFQError));\n            return;\n        }\n        if (!apiCreateRFQResult) {\n            logWarning('empty apiCreateRFQResult');\n            return;\n        }\n\n        const rfqId = apiCreateRFQResult?.rfqId;\n        const defaultAdditionalServices = getDefaultAdditionalServices();\n\n        const baseQuery = {\n            [QueryKeysEnum.orderCreationAdditionalServices]: defaultAdditionalServices,\n            [QueryKeysEnum.orderCreationDropOffDate]: getDateFromISO(apiCreateRFQResult?.selectedDropOffDate),\n            [QueryKeysEnum.orderCreationPickUpDate]: getDateFromISO(apiCreateRFQResult?.selectedPickupDate),\n            [QueryKeysEnum.orderCreationPickUpDatesRange]: (apiCreateRFQResult.pickupDates || [])\n                .map((date) => {\n                    return getDateFromISO(date);\n                })\n                .sort(byAlphabetASC),\n            [QueryKeysEnum.orderCreationDropOffDatesRange]: (apiCreateRFQResult?.dropOffDates || [])\n                .map((date) => {\n                    return getDateFromISO(date);\n                })\n                .sort(byAlphabetASC),\n            [QueryKeysEnum.orderCreationShipperId]: shipperId,\n        };\n\n        history.push({\n            pathname: generatePath(OMSRoutesEnum.newOrderOffers, {\n                rfqId,\n            }),\n            search: formatQuery(baseQuery),\n        });\n\n        const expectedOffersCount = apiCreateRFQResult?.expectedOffersCount || null;\n        yield put(setExpectedOffersCount(expectedOffersCount));\n\n        if (rfqId) {\n            delayedSyncFetchTaskOffers = yield fork(delayedSyncFetchTaskOffersSaga, {\n                isBroker,\n                rfqId,\n                expectedOffersCount,\n            });\n        }\n\n        let apiRFQDetailsResponse: ReturnApiT<\n            typeof brokerTranziitApi.fetchRFQDetails | typeof shipperTranziitApi.fetchRFQDetails\n        >;\n        if (companyType === CompanyTypeEnum.broker) {\n            apiRFQDetailsResponse = yield brokerTranziitApi.fetchRFQDetails(rfqId);\n        } else {\n            apiRFQDetailsResponse = yield shipperTranziitApi.fetchRFQDetails(rfqId);\n        }\n        const [apiRFQDetailsError, apiRFQDetailsData] = apiRFQDetailsResponse;\n\n        if (apiRFQDetailsError) {\n            yield put(createRFQError(apiRFQDetailsError));\n            return;\n        }\n\n        if (!apiRFQDetailsData) {\n            const error = new Error('empty apiRFQData');\n            yield put(createRFQError(error));\n            return;\n        }\n\n        const preparedRFQ = prepareRFQ(apiRFQDetailsData);\n\n        yield put(createRFQSuccess(preparedRFQ));\n\n        if (apiRFQDetailsData?.polylineId) {\n            yield put(fetchRoute(apiRFQDetailsData.polylineId));\n        }\n    };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getCreatePriceOfferWithLaneSaga(companyType: CompanyTypeEnum) {\n    return function* createPriceOfferWithLaneSaga(\n        action: CreatePriceOfferWithLaneRequestActionT,\n    ): WrapGeneratorT<void> {\n        const { actualOrderRequest, reserve, laneId } = action;\n\n        yield put(createPriceOfferWithLaneRequestBegin());\n\n        const reserveId = reserve?.reserveId;\n\n        const result: ReturnApiT<typeof commonTranziitApi.createMultipointOrderQuotation> =\n            yield commonTranziitApi.createMultipointOrderQuotation(reserveId, actualOrderRequest, laneId);\n\n        if (!result) {\n            return;\n        }\n\n        const [apiCreateLaneOrderPriceOfferError, apiCreateLaneOrderPriceOfferResult] = result;\n\n        if (apiCreateLaneOrderPriceOfferError) {\n            yield put(createPriceOfferWithLaneRequestError(apiCreateLaneOrderPriceOfferError));\n            return;\n        }\n        if (!apiCreateLaneOrderPriceOfferResult) {\n            logWarning('empty apiCreateLaneOrderPriceOfferResult');\n            return;\n        }\n\n        const apiLanePriceOffers: ReturnApiT<typeof commonTranziitApi.getPriceOffers> =\n            yield commonTranziitApi.getPriceOffers(apiCreateLaneOrderPriceOfferResult?.rfqId);\n        const [apiLanePriceOffersError, apiLanePriceOffersResult] = apiLanePriceOffers;\n        if (apiLanePriceOffersError) {\n            yield put(createPriceOfferWithLaneRequestError(apiLanePriceOffersError));\n            return;\n        }\n\n        const apiLanePriceOffer = apiLanePriceOffersResult?.[0] || null;\n        if (!apiLanePriceOffer) {\n            logWarning('empty lanePriceOffer');\n            return;\n        }\n\n        const rfqId = apiLanePriceOffer?.rfqId || null;\n        if (!rfqId) {\n            logWarning('empty rfqId');\n            return;\n        }\n\n        const offerId = apiLanePriceOffer.id || null;\n        if (!offerId) {\n            logWarning('empty offerId');\n            return;\n        }\n\n        history.push({\n            pathname: generatePath(OMSRoutesEnum.newOrderDetailsWithLane, {\n                rfqId,\n                offerId,\n                laneId,\n            }),\n            search: formatQuery({\n                [QueryKeysEnum.orderCreationAdditionalServices]: [],\n            }),\n        });\n\n        let apiRFQDetailsResponse: ReturnApiT<\n            typeof brokerTranziitApi.fetchRFQDetails | typeof shipperTranziitApi.fetchRFQDetails\n        >;\n        if (companyType === CompanyTypeEnum.broker) {\n            apiRFQDetailsResponse = yield brokerTranziitApi.fetchRFQDetails(rfqId);\n        } else {\n            apiRFQDetailsResponse = yield shipperTranziitApi.fetchRFQDetails(rfqId);\n        }\n        const [apiRFQDetailsError, apiRFQDetailsData] = apiRFQDetailsResponse;\n        if (apiRFQDetailsError) {\n            yield put(createPriceOfferWithLaneRequestError(apiRFQDetailsError));\n            return;\n        }\n\n        if (!apiRFQDetailsData) {\n            const error = new Error('empty apiRFQData');\n            yield put(createPriceOfferWithLaneRequestError(error));\n            return;\n        }\n\n        if (apiRFQDetailsData.polylineId) {\n            yield put(fetchRoute(apiRFQDetailsData.polylineId));\n        }\n\n        const preparedRFQ = prepareRFQ(apiRFQDetailsData);\n        const lanePriceOffer = preparePriceOffer(apiLanePriceOffer);\n\n        yield put(createPriceOfferWithLaneRequestSuccess(preparedRFQ, lanePriceOffer));\n    };\n}\n\nfunction* handlePreviewReserveErrorSaga(action: PreviewReserveErrorActionT): WrapGeneratorT<void> {\n    if (\n        checkIsTranziitApiRequestError(action.error) &&\n        action.error.subType === TranziitApiRequestErrorSubTypeEnum.expiredContextPreviewReserve\n    ) {\n        // try re-reserve\n        yield put(changeReserveQuery({}));\n    }\n}\n\nfunction* fetchTaskOfferSaga(): WrapGeneratorT<void> {\n    const offersTasks: ReturnType<typeof selectOffersTasks> = yield select(selectOffersTasks);\n    if (!isNil(offersTasks.total) && offersTasks.count === offersTasks.total) {\n        yield unSubscribeTaskOffersSaga();\n    }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getEnsureCreatedRFQSaga(companyType: CompanyTypeEnum) {\n    return function* ensureCreatedRFQSaga(action: EnsureCreatedRFQActionT): WrapGeneratorT<void> {\n        const { rfqId } = action;\n        if (!rfqId) {\n            yield redirectToStartNewOrderSaga();\n            logWarning('empty rfqId');\n            return;\n        }\n\n        const createRFQStatus: ReturnType<typeof selectCreateRFQRequest> = yield select(selectCreateRFQRequest);\n        if (createRFQStatus.loading) {\n            return;\n        }\n\n        const currentRFQ: ReturnType<typeof selectRFQ> = yield select(selectRFQ);\n        const currentRoute: ReturnType<typeof selectPolylines> = yield select(selectPolylines);\n        const currentPriceOffers: ReturnType<typeof selectPriceOffers> = yield select(selectPriceOffers);\n        if (currentRFQ && currentRoute && currentPriceOffers) {\n            logWarning('some empty');\n            return;\n        }\n\n        yield put(createRFQBegin());\n\n        let response: ReturnApiT<typeof brokerTranziitApi.fetchRFQDetails | typeof shipperTranziitApi.fetchRFQDetails>;\n        if (companyType === CompanyTypeEnum.broker) {\n            response = yield brokerTranziitApi.fetchRFQDetails(rfqId);\n        } else {\n            response = yield shipperTranziitApi.fetchRFQDetails(rfqId);\n        }\n        const [apiRFQError, apiRFQData] = response;\n\n        if (apiRFQError) {\n            yield put(createRFQError(apiRFQError));\n            return;\n        }\n\n        if (!apiRFQData) {\n            const error = new Error('empty apiRFQData');\n            yield put(createRFQError(error));\n            return;\n        }\n\n        const responsePriceOffers: ReturnApiT<typeof commonTranziitApi.getPriceOffers> =\n            yield commonTranziitApi.getPriceOffers(rfqId);\n        const [apiPriceOffersError, apiPriceOffers] = responsePriceOffers;\n\n        if (apiPriceOffersError) {\n            yield put(createRFQError(apiPriceOffersError));\n            return;\n        }\n\n        if (!apiPriceOffers) {\n            const error = new Error('empty apiPriceOffers!');\n            yield put(createRFQError(error));\n            return;\n        }\n\n        const priceOffers = (apiPriceOffers || []).map(preparePriceOffer);\n\n        const preparedRFQ = prepareRFQ(apiRFQData);\n\n        if (preparedRFQ?.polylineId) {\n            yield put(fetchRoute(preparedRFQ.polylineId));\n        }\n\n        yield put(createRFQSuccess(preparedRFQ));\n        yield put(fetchOffers(priceOffers));\n\n        const query = parseQuery(history.location.search);\n        if (query?.[QueryKeysEnum.orderCreationComplete]) {\n            const pickupDatesRange = uniq(priceOffers.map((priceOffer) => priceOffer.pickUpDate)).sort();\n            const dropOffDateRange = uniq(priceOffers.map((priceOffer) => priceOffer.dropOffDate)).sort();\n\n            const defaultAdditionalServices = getDefaultAdditionalServices();\n\n            const firstRFQPoint = preparedRFQ?.points?.[0];\n            const lastRFQPoint = preparedRFQ?.points ? preparedRFQ.points[preparedRFQ.points.length - 1] : null;\n\n            history.push({\n                search: formatQuery({\n                    ...query,\n                    [QueryKeysEnum.orderCreationAdditionalServices]: defaultAdditionalServices,\n                    [QueryKeysEnum.orderCreationPickUpDate]: firstRFQPoint?.fromDate,\n                    [QueryKeysEnum.orderCreationDropOffDate]: lastRFQPoint?.toDate,\n                    [QueryKeysEnum.orderCreationPickUpDatesRange]: pickupDatesRange,\n                    [QueryKeysEnum.orderCreationDropOffDatesRange]: dropOffDateRange,\n                }),\n            });\n        }\n    };\n}\n\nfunction getCreatedOrderSaga(isBroker: boolean) {\n    return function* createdOrderSaga(action: CreateOrderActionT): WrapGeneratorT<void> {\n        const { createOrderRequest, isCreateNextOrder, rfqId } = action;\n        yield put(createOrderBegin());\n\n        const responseCreateOrder: ReturnApiT<typeof commonTranziitApi.completeRFQ> =\n            yield commonTranziitApi.completeRFQ(rfqId, createOrderRequest);\n        const [error, data] = responseCreateOrder;\n        if (error) {\n            yield put(createOrderError(error));\n\n            if (\n                checkIsTranziitApiRequestError(error) &&\n                (error?.subType === TranziitApiRequestErrorSubTypeEnum.orderCreationExpiredRFQ ||\n                    error?.subType === TranziitApiRequestErrorSubTypeEnum.orderCreation_ExpiredPriceOffer ||\n                    error?.subType === TranziitApiRequestErrorSubTypeEnum.orderCreation_AlreadyCompletedRFQ)\n            ) {\n                history.push(OMSRoutesEnum.newOrder);\n            }\n        } else {\n            yield put(createOrderSuccess());\n            yield put(\n                addAlert(\n                    new CommonAnyAlert({\n                        type: CommonAlertTypeEnum.orderPlaced,\n                        data: {},\n                    }),\n                ),\n            );\n\n            ordersRefreshChannel.emit({});\n\n            yield put(resetOrderCreation());\n\n            const cargoDetailsStorage = new ValuesStorage(CARGO_DETAILS_FORM_NAME);\n            cargoDetailsStorage.reset();\n\n            const shipmentDetailsStorage = new ValuesStorage(SHIPMENT_DETAIL_FORM_NAME);\n            shipmentDetailsStorage.reset();\n\n            if (isCreateNextOrder) {\n                history.push(commonUrlFactory.orderCreation());\n            } else if (!isBroker && data && 'orderId' in data) {\n                history.push(shipperUrlFactory.orderDetails(data.orderId, { rePath: CommonRoutesEnum.orders }));\n            } else if (isBroker && data && 'orderId' in data) {\n                history.push(\n                    brokerUrlFactory.brokerOrderDetails(data.orderId, { rePath: BrokerRoutesEnum.brokerOrders }),\n                );\n            } else {\n                history.push({\n                    pathname: CommonRoutesEnum.home,\n                });\n            }\n        }\n    };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getFetchRouteSaga(isBroker: boolean) {\n    return function* fetchRouteSaga(action: FetchRouteActionT): WrapGeneratorT<void> {\n        const { polylineId } = action;\n        if (!polylineId) {\n            logWarning('failed fetch route, empty polylineId');\n            return;\n        }\n\n        const [apiRouteError, apiRoute]: ReturnApiT<typeof commonTranziitApi.fetchRouteGeometryGoogle> =\n            yield commonTranziitApi.fetchRouteGeometryGoogle(polylineId);\n\n        if (apiRouteError) {\n            yield put(fetchRouteError(apiRouteError));\n            return;\n        }\n\n        if (!apiRoute) {\n            const error = new Error('empty apiRoute');\n            yield put(fetchRouteError(error));\n            return;\n        }\n\n        const polylines = apiRoute || [];\n\n        yield put(fetchRouteSuccess(polylines));\n    };\n}\n\n// eslint-disable-next-line require-yield\nfunction* selectOfferSaga(action: SelectOfferActionT): WrapGeneratorT<void> {\n    const { offer, rfqId } = action;\n\n    const pathname = generatePath(OMSRoutesEnum.newOrderDetails, {\n        rfqId,\n        offerId: offer.id,\n    });\n\n    history.push(pathname + history.location.search);\n}\n\nfunction* createReserveSaga(\n    isBroker: boolean,\n    createReserveQuery: CreateReserveQueryT | null,\n): WrapGeneratorT<ReserveQueryModifyEventT> {\n    let event: ReserveQueryModifyEventT = {};\n\n    let countrySettingsByCountryCode: ReturnType<typeof selectCountrySettingsByCountryCode> = yield select(\n        selectCountrySettingsByCountryCode,\n    );\n    if (isEmpty(countrySettingsByCountryCode)) {\n        yield take([COUNTRY_SETTINGS_DICT_REQUEST_SUCCESS]);\n        countrySettingsByCountryCode = yield select(selectCountrySettingsByCountryCode);\n    }\n\n    const apiCreateReserveQuery = getApiReverseQuery(isBroker, createReserveQuery);\n\n    const isValidAddresses = createReserveQuery?.addresses?.every((address) => {\n        if (address?.type && !editablePointTypeSet.has(address.type)) {\n            return true;\n        }\n\n        const countryCode = address?.address?.country;\n        if (\n            countryCode &&\n            (!countrySettingsByCountryCode[countryCode]?.ship ||\n                createReserveQuery?.prohibitedCountries.includes(countryCode))\n        ) {\n            return false;\n        }\n\n        return true;\n    });\n\n    if (!isValidAddresses || !apiCreateReserveQuery) {\n        yield put(resetCreateReserveWithQuery(createReserveQuery));\n        return event;\n    }\n\n    yield put(createReserveBegin(createReserveQuery));\n\n    /* start debug logs */\n    logDebug(`New reserve [request]: ${JSON.stringify(apiCreateReserveQuery, null, 4)}`);\n    /* end debug logs */\n\n    let responseCreateReserve: ReturnApiT<typeof commonTranziitApi.createMultipointOrderReservation>;\n\n    const { shipperId, ...restApiCreateReserveQuery } = apiCreateReserveQuery;\n    if (isBroker) {\n        responseCreateReserve = yield commonTranziitApi.createMultipointOrderReservation(\n            restApiCreateReserveQuery,\n            shipperId || undefined,\n        );\n    } else {\n        responseCreateReserve = yield commonTranziitApi.createMultipointOrderReservation(restApiCreateReserveQuery);\n    }\n\n    /* start debug logs */\n    logDebug(`New reserve [response]: ${JSON.stringify(responseCreateReserve, null, 4)}`);\n    /* end debug logs */\n\n    const [error, reserve] = responseCreateReserve;\n    if (error) {\n        yield put(createReserveError(error, createReserveQuery));\n    }\n\n    if (reserve) {\n        const preparedReserve = preparePreview(reserve);\n        yield put(createReserveSuccess(preparedReserve, createReserveQuery));\n\n        event = {\n            correctedPoints: preparedReserve?.points,\n        };\n    }\n\n    const notes = reserve?.notes || [];\n    for (const note of notes) {\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.orderContextNote,\n                    data: {\n                        note,\n                    },\n                }),\n            ),\n        );\n    }\n\n    return event;\n}\n\nfunction* previewReserveSaga(\n    isBroker: boolean,\n    reservePreviewQuery: ReservePreviewQueryT | null,\n    reserve: ReserveT | null,\n): WrapGeneratorT<ReserveQueryModifyEventT> {\n    let event: ReserveQueryModifyEventT = {};\n\n    const apiReservePreviewQuery = getApiPreviewReverseQuery(reservePreviewQuery, reserve);\n    const reserveId = reservePreviewQuery?.reserveId;\n\n    if (!reservePreviewQuery || !apiReservePreviewQuery || !reserveId) {\n        return event;\n    }\n\n    yield put(previewReserveBegin(reservePreviewQuery));\n\n    /* start debug logs */\n    logDebug(`New reserve preview [request]: ${JSON.stringify({ reserveId, apiReservePreviewQuery }, null, 4)}`);\n    /* end debug logs */\n\n    const responsePreviewReserve: ReturnApiT<typeof commonTranziitApi.previewReserve> =\n        yield commonTranziitApi.previewReserve(\n            reserveId,\n            apiReservePreviewQuery,\n            reservePreviewQuery?.laneId || undefined,\n        );\n\n    /* start debug logs */\n    logDebug(`New reserve preview [response]: ${JSON.stringify(responsePreviewReserve, null, 4)}`);\n    /* end debug logs */\n\n    const [error, apiPreview] = responsePreviewReserve;\n    if (error) {\n        yield put(previewReserveError(error, reservePreviewQuery));\n    }\n    if (apiPreview) {\n        const preview = prepareReservePreview(apiPreview, reserve);\n        yield put(previewReserveSuccess(preview, reservePreviewQuery));\n\n        const addressAliasByPointId =\n            reserve?.points?.reduce<Record<RoutePointAddressAliasT, RoutePointIdT | null>>((acc, point) => {\n                acc[point.id] = point.addressAlias || createFakeIdFromPoint(point) || null;\n\n                return acc;\n            }, {}) || {};\n\n        event = {\n            correctedTimeWindowsByPointId: preview?.timeWindows?.reduce<\n                Record<RoutePointIdT, ReserveTimeWindowT | null>\n            >((acc, timeWindow) => {\n                if (timeWindow?.id) {\n                    const addressAlias = addressAliasByPointId[timeWindow.id];\n                    if (addressAlias) {\n                        acc[addressAlias] = timeWindow.correctedTimeWindow || null;\n                    }\n                }\n\n                return acc;\n            }, {}),\n            correctedBrokerWindowByPointId: preview?.timeWindows?.reduce<Record<RoutePointIdT, boolean | null>>(\n                (acc, timeWindow) => {\n                    if (timeWindow?.id) {\n                        const addressAlias = addressAliasByPointId[timeWindow.id];\n                        if (addressAlias) {\n                            acc[addressAlias] = timeWindow.correctedBrokerWindow || null;\n                        }\n                    }\n\n                    return acc;\n                },\n                {},\n            ),\n        };\n    }\n\n    return event;\n}\n\nfunction* changeReserveQuerySaga(\n    companyType: CompanyTypeEnum,\n    action: ChangeReserveQueryActionT,\n): WrapGeneratorT<ReserveQueryModifyEventT> {\n    let queryModifyEvent: ReserveQueryModifyEventT = {};\n\n    const isBroker = companyType === CompanyTypeEnum.broker;\n\n    let reserve: ReturnType<typeof selectReserve> = yield select(selectReserve);\n\n    const prevReserveQuery: ReturnType<typeof selectReserveQuery> = yield select(selectReserveQuery);\n    const prevReserveRequest: ReturnType<typeof selectReserveRequest> = yield select(selectReserveRequest);\n\n    const reverseQueryChanges = getReverseQueryChanges(action.changes, prevReserveQuery, reserve);\n    const currentReserveQuery = mergeReverseQueryChanges(prevReserveQuery, reverseQueryChanges);\n\n    const isSameReserveRequest = checkIsSameQuery(prevReserveQuery, currentReserveQuery);\n\n    const isExpiredReserve = reserve?.expireTime ? reserve?.expireTime < Date.now() : false;\n\n    const isInitReserveRequest = prevReserveRequest.initial && !reserve;\n\n    if (!isSameReserveRequest || isExpiredReserve || isInitReserveRequest) {\n        logDebug('diff reserve request', diff(prevReserveQuery || {}, currentReserveQuery || {}), {\n            prevReserveQuery,\n            currentReserveQuery,\n        });\n\n        yield put(setCreateReserveQuery(currentReserveQuery));\n\n        const reserveQueryModifyEvent = yield* createReserveSaga(isBroker, currentReserveQuery);\n\n        queryModifyEvent = {\n            ...queryModifyEvent,\n            ...reserveQueryModifyEvent,\n        };\n    }\n\n    reserve = yield select(selectReserve);\n\n    const reserveQueryCorrection = getReserveQueryCorrection(currentReserveQuery, reserve);\n    if (reserveQueryCorrection) {\n        yield put(correctReserveQuery(reserveQueryCorrection));\n    }\n\n    const prevReservePreviewQuery: ReturnType<typeof selectReservePreviewQuery> = yield select(\n        selectReservePreviewQuery,\n    );\n    const previewReverseQueryChanges = getPreviewReverseQueryChanges(action.changes, prevReservePreviewQuery, reserve);\n    let currentReservePreviewQuery = mergePreviewReverseQuery(prevReservePreviewQuery, previewReverseQueryChanges);\n    currentReservePreviewQuery = setReversePreviewDefaultQuery(currentReservePreviewQuery, reserve);\n\n    currentReservePreviewQuery = correctionPreviewReverseQueryAfterReserve(currentReservePreviewQuery, reserve);\n    const queryModifyEventAfterReserve = getQueryModifyEventAfterReserve(prevReservePreviewQuery, reserve);\n    queryModifyEvent = {\n        ...queryModifyEvent,\n        ...queryModifyEventAfterReserve,\n    };\n\n    const reservePreview: ReturnType<typeof selectReservePreview> = yield select(selectReservePreview);\n    const reservePreviewRequest: ReturnType<typeof selectReservePreviewRequest> = yield select(\n        selectReservePreviewRequest,\n    );\n    const isInitReservePreview = reservePreviewRequest.initial && !reservePreview;\n    const isSamePreviewRequest = checkIsSameQuery(prevReservePreviewQuery, currentReservePreviewQuery);\n    if (!isSamePreviewRequest || isInitReservePreview) {\n        logDebug('diff preview request', diff(prevReservePreviewQuery || {}, currentReservePreviewQuery || {}), {\n            prevReservePreviewQuery,\n            currentReservePreviewQuery,\n        });\n        yield put(setPreviewReserveQuery(currentReservePreviewQuery));\n\n        const previewReserveQueryModify = yield* previewReserveSaga(isBroker, currentReservePreviewQuery, reserve);\n\n        queryModifyEvent = {\n            ...queryModifyEvent,\n            ...previewReserveQueryModify,\n        };\n    }\n\n    const previewResults: ReturnType<typeof selectReservePreview> = yield select(selectReservePreview);\n    const previewReserveQueryCorrection = getPreviewReserveQueryCorrection(\n        currentReservePreviewQuery,\n        previewResults,\n        reserve,\n    );\n    if (previewReserveQueryCorrection) {\n        yield put(correctPreviewReserveQuery(previewReserveQueryCorrection));\n    }\n\n    return queryModifyEvent;\n}\n\n/**\n * @deprecated use simple buffer\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction createMergeActionsBuffer() {\n    let changes: ChangeReserveQueryActionT | null = null;\n\n    return {\n        isEmpty: (): boolean => {\n            return isEmpty(changes);\n        },\n        put: (action: ChangeReserveQueryActionT): void => {\n            if (!changes) {\n                changes = action;\n                return;\n            }\n\n            changes = {\n                ...changes,\n                changes: {\n                    ...changes?.changes,\n                    ...action?.changes,\n                },\n            };\n        },\n        take: (): ChangeReserveQueryActionT | undefined => {\n            const oldChanges = changes;\n\n            changes = null;\n\n            return oldChanges || undefined;\n        },\n        flush: (): ChangeReserveQueryActionT[] => {\n            const oldChanges = changes;\n\n            changes = null;\n\n            return oldChanges ? [oldChanges] : [];\n        },\n    };\n}\n\nclass QueryModifyEventsQueue {\n    private summaryEvent: ReserveQueryModifyEventT = {};\n\n    addEvent = (event: ReserveQueryModifyEventT) => {\n        this.summaryEvent = {\n            ...this.summaryEvent,\n            ...event,\n        };\n    };\n\n    flush = (): ReserveQueryModifyEventT => {\n        const prevSummaryEvent = this.summaryEvent;\n\n        this.summaryEvent = {};\n\n        return prevSummaryEvent;\n    };\n}\n\n// eslint-disable-next-line require-yield\nfunction* emitQueryModifyIfNeed(event: ReserveQueryModifyEventT): WrapGeneratorT<void> {\n    if (event && !isEmpty(event)) {\n        reserveQueryModifyChannel.emit(event);\n    }\n}\n\nfunction* watchSyncChangeReserveQuerySaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    const buffer = buffers.fixed<ChangeReserveQueryActionT>(100);\n    const channel = yield actionChannel(CHANGE_RESERVE_QUERY, buffer);\n    const queryModifyEventsQueue = new QueryModifyEventsQueue();\n\n    while (true) {\n        const action: ChangeReserveQueryActionT = yield take(channel);\n\n        yield put(setAllowCreateRFQ(false));\n\n        const queryModifyEvent = yield* changeReserveQuerySaga(companyType, action);\n        queryModifyEventsQueue.addEvent(queryModifyEvent);\n\n        if (buffer.isEmpty()) {\n            yield put(setAllowCreateRFQ(true));\n            yield emitQueryModifyIfNeed(queryModifyEventsQueue.flush());\n        }\n    }\n}\n\nfunction* watchPriceOffersExpirationSaga(): WrapGeneratorT<void> {\n    const REFRESH_INTERVAL = 30 * MS_IN_SEC;\n\n    while (true) {\n        yield delay(REFRESH_INTERVAL);\n\n        const priceOffers: ReturnType<typeof selectPriceOffersList> = yield select(selectPriceOffersList);\n\n        const expriredOfferIds = priceOffers\n            .filter((offer) => checkIsPastDate(offer.expirationMs))\n            .map((offer) => offer.id);\n\n        yield put(markOffersExpired(expriredOfferIds));\n    }\n}\n\nfunction* orderCreationSaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    const isBroker = companyType === CompanyTypeEnum.broker;\n\n    yield takeEvery(CREATE_RFQ_REQUEST, getCreateRFQSaga(companyType));\n    yield takeEvery(CREATE_PRICE_OFFER_WITH_LANE_REQUEST, getCreatePriceOfferWithLaneSaga(companyType));\n    yield takeEvery(ENSURE_CREATED_RFQ, getEnsureCreatedRFQSaga(companyType));\n    yield takeEvery(CREATE_ORDER_REQUEST, getCreatedOrderSaga(isBroker));\n    yield takeEvery(FETCH_ROUTE, getFetchRouteSaga(isBroker));\n    yield takeEvery(FETCH_SHIPPER_INFO, fetchShipperInfoSaga);\n    yield takeEvery(SELECT_OFFER, selectOfferSaga);\n    yield takeEvery(FETCH_TASK_OFFER, fetchTaskOfferSaga);\n    yield takeEvery(PREVIEW_RESERVE_ERROR, handlePreviewReserveErrorSaga);\n    yield takeLeading(\n        [CREATE_RFQ_REQUEST_ERROR, CREATE_PRICE_OFFER_WITH_LANE_REQUEST_ERROR],\n        redirectToStartNewOrderSaga,\n    );\n\n    yield fork(watchSyncChangeReserveQuerySaga, companyType);\n    yield fork(watchPriceOffersExpirationSaga);\n}\n\nexport default orderCreationSaga;\n","import * as React from 'react';\nimport { memo } from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './ControlLoaderLabel.scss';\nimport cs from 'classnames';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\nexport type PropsT = {\n    className?: string;\n    isInvert?: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nconst ControlLoaderLabel: React.FC<PropsT> = memo((props) => {\n    const { className, children, isInvert } = props;\n\n    return (\n        <div\n            className={cs(\n                cx('loader', {\n                    'loader--is-invert': isInvert,\n                }),\n                className,\n            )}\n        >\n            <ControlLoaderIcon\n                opacity={1}\n                fillColor={isInvert ? StyleGuideColorsEnum.light : StyleGuideColorsEnum.slate}\n                size={DEFAULT_ICON_SIZE}\n            />\n            <span\n                className={cx('loader__text', {\n                    'loader__text--is-invert': isInvert,\n                })}\n            >\n                {children}\n            </span>\n        </div>\n    );\n});\n\nexport default ControlLoaderLabel;\n","import { SpotRequestsStatsStateT } from './types';\nimport { StateT } from '../models';\n\nexport const selectSpotRequestsStatsRequest = (state: StateT): SpotRequestsStatsStateT['fetchRequest'] =>\n    state.spotRequestsStats.fetchRequest;\n\nexport const selectSpotRequestsStats = (state: StateT): SpotRequestsStatsStateT['stats'] =>\n    state.spotRequestsStats.stats;\n","import * as React from 'react';\nimport { useMemo } from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './BrokerOrderDetails.scss';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\nimport RouteLocationsOverview from 'common/components/entity-details/RouteLocationsOverview/RouteLocationsOverview';\nimport {\n    ApiBrokerOrderWaypointT,\n    ApiTourShipmentEventT,\n    PartnerTypeEnum,\n    ShipmentWarningEnum,\n    TransportOrderStatusEnum,\n} from 'common/utils/api/models';\nimport { finallyStatusSet } from 'broker-admin/components/status-machine/footers/ChangeShipmentStatusFooter/constants';\nimport { BrokerOrderDetailsT } from 'broker-admin/store/broker-order-details/models';\nimport { UpdateShipmentRequestT } from 'broker-admin/store/broker-order-edit/types';\nimport { urlFactory } from '../../../../utils/urls';\nimport ExcludedCountries from 'common/components/entity-details/ExcludedCountries/ExcludedCountries';\n\nimport ShipperIcon from 'common/icons/ShipperIcon';\nimport { convertToKm } from 'common/utils/distance';\nimport DateFormatter from 'design-system/components/InfoTable/formatters/DateFormatter/DateFormatter';\nimport InvoiceBinaryStatusPill from 'common/components/status-pill/InvoiceBinaryStatusPill/InvoiceBinaryStatusPill';\nimport ShipperPriceOfferInfoTable from 'common/components/info-tables/ShipperPriceOfferInfoTable/ShipperPriceOfferInfoTable';\nimport CarrierCostPriceInfoTable from 'broker-admin/components/info-tables/CarrierCostPriceInfoTable/CarrierCostPriceInfoTable';\nimport { useMoneyDiff } from 'common/utils/hooks/useMoneyDiff';\nimport Invoice2Icon from 'common/icons/Invoice2Icon';\nimport PaperIcon from 'common/icons/PaperIcon';\nimport LinkFormatter from 'design-system/components/InfoTable/formatters/LinkFormatter/LinkFormatter';\nimport ShipperContractStatusPill from 'common/components/status-pill/ShipperContractStatusPill/ShipperContractStatusPill';\nimport ShipperContractLaneStatusPill from 'common/components/status-pill/ShipperContractLaneStatusPill/ShipperContractLaneStatusPill';\nimport ShipperContractLaneOrderCounterPill from 'common/components/pills/ShipperContractLaneOrderCounterPill/ShipperContractLaneOrderCounterPill';\nimport ButtonTabs, { ButtonTabCountThemeEnum, ButtonTabT } from 'common/components/tabs/ButtonTabs/ButtonTabs';\nimport { useTabs } from 'common/components/tabs/hooks';\nimport TourDetailsCard from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderDetails/TourDetailsCard/TourDetailsCard';\nimport ShipmentDetailsCard from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderDetails/ShipmentDetailsCard/ShipmentDetailsCard';\nimport TransportOrderDetailsCard from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderDetails/TransportOrderDetailsCard/TransportOrderDetailsCard';\nimport AsyncTrailerTypeFormatter from 'design-system/components/InfoTable/formatters/AsyncTrailerTypeFormatter/AsyncTrailerTypeFormatter';\nimport keyBy from 'lodash/keyBy';\nimport EmissionClassFormatter from 'design-system/components/InfoTable/formatters/EmissionClassFormatter/EmissionClassFormatter';\nimport { useBrokerOrderPayloadWaypoints } from 'broker-admin/utils/hooks/useBrokerOrderPayloadWaypoints';\nimport { findTourActualTransportOrders } from 'broker-admin/store/broker-order-details/utils/find-actual-transport-order';\n\nimport { formatISOTime, formatISOTimeWithoutTimezone } from 'common/utils/time';\nimport isNumber from 'lodash/isNumber';\nimport max from 'lodash/max';\nimport min from 'lodash/min';\nimport { useDistanceByCountryRows } from 'common/components/entity-details/hooks/distanceByCountry';\nimport { isNonNil } from 'common/utils';\nimport scrollIntoView from 'scroll-into-view';\nimport { getShipmentAnchor } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderDetails/ShipmentDetailsCard/utils';\nimport { useAttachTourPapers } from 'common/components/papers/hooks/use-attach-tour-papers';\nimport EntityWarningAlert from 'common/components/entity-details/alerts/EntityWarningAlert';\nimport EntityCriticalWarningAlert from 'common/components/entity-details/alerts/EntityCriticalWarningAlert';\nimport { AlertGroup } from 'common/layouts/AlertGroup/AlertGroup';\nimport EntityEtaAlert from 'common/components/entity-details/alerts/EntityEtaAlert';\nimport ViolationTemperatureAlert from 'common/components/entity-details/alerts/ViolationTemperatureAlert';\nimport DelayingWarningAlert from 'common/components/entity-details/alerts/DelayingWarningAlert';\nimport { checkTemperatureViolation } from 'common/components/entity-details/utils/check-temperature-violation';\nimport { useDistanceRowsFactory } from 'common/components/entity-details/hooks/distance-rows-factory';\nimport { useShipperOrderDetailsRowsFactory } from 'common/components/entity-details/hooks/shipper-order-details-rows-factory';\nimport { ClientFeatureEnum } from 'common/utils/features/client-features-config';\nimport { brokerTourPapersUrlFactory } from 'broker-admin/utils/tour-papers-url-factory';\nimport ImageGalleryModal from 'common/components/papers/modals/ImageGalleryModal/ImageGalleryModal';\nimport DeletePaperConfirmation from 'common/components/papers/dialogs/DeletePaperConfirmation/DeletePaperConfirmation';\nimport { useAttachShipmentPapers } from 'common/components/papers/hooks/use-attach-shipment-papers';\nimport { brokerShipmentPapersUrlFactory } from 'broker-admin/utils/shipment-papers-url-factory';\nimport HighlightedEntityContext from 'common/components/status-machine/contexts/HighlightedEntityContext';\nimport FeaturesContext from 'common/contexts/features';\n\ntype PropsT = {\n    isDisableAnyActions: boolean;\n    brokerOrderDetails: BrokerOrderDetailsT | null | undefined;\n    onOpenUserDetails: (params: {\n        partnerType?: PartnerTypeEnum;\n        partnerId?: PartnerIdT;\n        userId: UserIdT | null;\n    }) => void;\n    onUpdateShipment: (shipmentId: ShipmentIdT, data: UpdateShipmentRequestT) => void;\n    onStartAssignment: (tourId: TourIdT) => void;\n    onStartSendToSpot: (tourId: TourIdT) => void;\n    onStartEditTimeWindows: (tourId: TourIdT) => void;\n    onStartEditStopContact: (waypoint: ApiBrokerOrderWaypointT) => void;\n};\n\nconst cx = classNames.bind(styles);\n\nenum TabEnum {\n    tours = 'tours',\n    shipments = 'shipments',\n    transportOrders = 'transport-orders',\n}\n\nconst TODO = 'TODO';\n\nconst BrokerOrderDetails: React.FC<PropsT> = React.memo((props) => {\n    const {\n        brokerOrderDetails,\n        isDisableAnyActions,\n        onOpenUserDetails,\n        onStartEditTimeWindows,\n        onStartAssignment,\n        onStartSendToSpot,\n        onStartEditStopContact,\n        onUpdateShipment,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const featuresContext = React.useContext(FeaturesContext);\n\n    const {\n        onAttachTourPaper,\n        onDeleteTourPaper,\n        onConfirmDeleteTourPaper,\n        deleteTourPaperRequestStatus,\n        onDownloadTourPaper,\n        onOpenGalleryTourPaper,\n        getTourPaperThumbnailUrl,\n        deleteTourPaperConfirmationDialog,\n        tourPaperGalleryModal,\n    } = useAttachTourPapers(brokerTourPapersUrlFactory);\n\n    const {\n        onAttachShipmentPaper,\n        onDeleteShipmentPaper,\n        onConfirmDeleteShipmentPaper,\n        deleteShipmentPaperRequestStatus,\n        onDownloadShipmentPaper,\n        onOpenGalleryShipmentPaper,\n        getShipmentPaperThumbnailUrl,\n        deleteShipmentPaperConfirmationDialog,\n        shipmentPaperGalleryModal,\n    } = useAttachShipmentPapers(brokerShipmentPapersUrlFactory);\n\n    const tours = useMemo(() => {\n        return brokerOrderDetails?.tours || [];\n    }, [brokerOrderDetails]);\n\n    const { activeTabType, setActiveTabType } = useTabs<TabEnum>(TabEnum.tours);\n\n    const { setHighlightedEntityId: setHighlightedShipmentId } = React.useContext(HighlightedEntityContext);\n\n    const ref = React.useRef<HTMLDivElement>(null);\n    const [managedShipmentId, setManagedShipmentId] = React.useState<ShipmentIdT | null>(null);\n\n    const tourShipmentActionsByShipmentId = React.useMemo((): Record<ShipmentIdT, ApiTourShipmentEventT[]> => {\n        const resultById: Record<ShipmentIdT, ApiTourShipmentEventT[]> = {};\n\n        brokerOrderDetails?.tours?.forEach((tour) => {\n            return tour?.availableSteps?.current?.shipments?.forEach((tourShipmentAction) => {\n                const { shipmentId } = tourShipmentAction;\n\n                if (!resultById[shipmentId]) {\n                    resultById[shipmentId] = [];\n                }\n\n                resultById[shipmentId].push(tourShipmentAction);\n            });\n        });\n\n        return resultById;\n    }, [brokerOrderDetails]);\n\n    const onManageShipment = React.useCallback(\n        (shipmentId: ShipmentIdT) => {\n            setManagedShipmentId(shipmentId);\n            setActiveTabType(TabEnum.shipments);\n        },\n        [setActiveTabType],\n    );\n\n    React.useEffect(() => {\n        if (!managedShipmentId || activeTabType !== TabEnum.shipments) {\n            return;\n        }\n\n        const anchor = getShipmentAnchor(managedShipmentId);\n        const targetNode = ref.current?.querySelector(`[data-anchor=\"${anchor}\"]`);\n        if (!targetNode) {\n            return;\n        }\n\n        setHighlightedShipmentId(managedShipmentId);\n        scrollIntoView(targetNode as HTMLElement, {\n            align: {\n                top: 0.2,\n            },\n        });\n        setManagedShipmentId(null);\n    }, [activeTabType, managedShipmentId, setHighlightedShipmentId]);\n\n    const allWaypoints = useMemo(() => {\n        return tours?.flatMap((tour) => tour?.waypoints).filter(isNonNil);\n    }, [tours]);\n\n    const waypointById = useMemo(() => {\n        return keyBy(allWaypoints, 'id');\n    }, [allWaypoints]);\n\n    const carrierTransportOrders = useMemo(() => {\n        return brokerOrderDetails?.tours\n            .map((tour) => {\n                const { carrierTransportOrder } = findTourActualTransportOrders(\n                    brokerOrderDetails?.transportationOrders,\n                    tour?.id,\n                );\n\n                return carrierTransportOrder;\n            })\n            .filter(isNonNil);\n    }, [brokerOrderDetails]);\n\n    const priceOffer = brokerOrderDetails?.priceOffer || null;\n\n    const distanceByCountryRows = useDistanceByCountryRows(priceOffer?.distances?.byCountry);\n\n    const distanceRowsFactory = useDistanceRowsFactory();\n\n    const mileageDetails: Array<InfoTableRowT | null> = [\n        {\n            ...distanceRowsFactory.totalDistance(convertToKm(priceOffer?.distances?.totalDistance)),\n            rows: distanceByCountryRows,\n        },\n    ];\n\n    const shipperOrderDetailsRowsFactory = useShipperOrderDetailsRowsFactory();\n\n    const moveDetails: Array<InfoTableRowT> = [\n        {\n            ...shipperOrderDetailsRowsFactory.trailerType(),\n            value: <AsyncTrailerTypeFormatter trailerDictId={brokerOrderDetails?.trailerInfo?.id} />,\n        },\n        {\n            ...shipperOrderDetailsRowsFactory.emissionClass(),\n            value: <EmissionClassFormatter emissionClass={brokerOrderDetails?.emissionClass} />,\n        },\n    ];\n\n    const carrierTotalCostDiff = useMoneyDiff(\n        brokerOrderDetails?.fullCarrierCost?.totalCost,\n        brokerOrderDetails?.priceOffer?.totalPrice,\n    );\n\n    const createdBy = brokerOrderDetails?.createdBy || null;\n    const shipper = brokerOrderDetails?.shipper || null;\n\n    const creationDetails: Array<InfoTableRowT | null> = [\n        {\n            icon: <ShipperIcon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.gray} />,\n            name: t('broker-entity-details.columns.shipper'),\n            value: brokerOrderDetails?.shipper ? (\n                <LinkFormatter to={urlFactory.partnerDetails(PartnerTypeEnum.shipper, brokerOrderDetails.shipper.id)}>\n                    {brokerOrderDetails.shipper.name}\n                </LinkFormatter>\n            ) : null,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n            testSelector: 'shipper',\n            rows: [\n                {\n                    icon: null,\n                    name: t('broker-entity-details.columns.order-created-on'),\n                    value: <DateFormatter date={brokerOrderDetails?.createdDate} format=\"DD MMM YYYY, HH:mm\" />,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'order-created-on',\n                },\n                {\n                    icon: null,\n                    name: t('broker-entity-details.columns.order-created-by'),\n                    value:\n                        createdBy && shipper ? (\n                            <LinkFormatter\n                                onClick={() => {\n                                    onOpenUserDetails({\n                                        partnerType: PartnerTypeEnum.shipper,\n                                        partnerId: shipper.id,\n                                        userId: createdBy.id,\n                                    });\n                                }}\n                            >\n                                {createdBy?.fullName}\n                            </LinkFormatter>\n                        ) : null,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'order-created-by',\n                },\n                featuresContext?.checkActiveClientFeature?.(ClientFeatureEnum.invoices)\n                    ? {\n                          icon: (\n                              <Invoice2Icon\n                                  size={DEFAULT_ICON_SIZE}\n                                  strokeColor={StyleGuideColorsEnum.gray}\n                                  fillColor={StyleGuideColorsEnum.light}\n                              />\n                          ),\n                          name: t('broker-entity-details.columns.invoice'),\n                          value: brokerOrderDetails?.invoiceNumber,\n                          valueMods: {\n                              emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                              isBold: true,\n                          },\n                          rightNode: <InvoiceBinaryStatusPill isSymmetrical isPaid={!!brokerOrderDetails?.paid} />,\n                          testSelector: 'invoice',\n                      }\n                    : null,\n                brokerOrderDetails?.shipperContract\n                    ? {\n                          icon: (\n                              <PaperIcon\n                                  size={DEFAULT_ICON_SIZE}\n                                  strokeColor={StyleGuideColorsEnum.gray}\n                                  fillColor={StyleGuideColorsEnum.light}\n                              />\n                          ),\n                          name: t('broker-entity-details.columns.shipper-contract'),\n                          value:\n                              brokerOrderDetails?.shipper && brokerOrderDetails?.shipperContract ? (\n                                  <LinkFormatter\n                                      to={urlFactory.partnerShipperContactDetails({\n                                          partnerId: brokerOrderDetails.shipper.id,\n                                          partnerType: PartnerTypeEnum.shipper,\n                                          shipperContractId: brokerOrderDetails.shipperContract.id,\n                                      })}\n                                  >\n                                      {brokerOrderDetails?.shipperContract?.name}\n                                  </LinkFormatter>\n                              ) : null,\n                          valueMods: {\n                              emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                              isBold: true,\n                          },\n                          rightNode: brokerOrderDetails?.shipperContract ? (\n                              <ShipperContractStatusPill\n                                  isSymmetrical\n                                  status={brokerOrderDetails?.shipperContract?.status}\n                              />\n                          ) : null,\n                          testSelector: 'shipper-contract',\n                      }\n                    : null,\n                brokerOrderDetails?.shipperContractLane\n                    ? {\n                          icon: (\n                              <PaperIcon\n                                  size={DEFAULT_ICON_SIZE}\n                                  strokeColor={StyleGuideColorsEnum.gray}\n                                  fillColor={StyleGuideColorsEnum.light}\n                              />\n                          ),\n                          name: t('broker-entity-details.columns.shipper-contract-lane'),\n                          value:\n                              brokerOrderDetails?.shipper &&\n                              brokerOrderDetails?.shipperContract &&\n                              brokerOrderDetails?.shipperContractLane ? (\n                                  <LinkFormatter\n                                      to={urlFactory.partnerShipperContractLane({\n                                          partnerId: brokerOrderDetails.shipper.id,\n                                          partnerType: PartnerTypeEnum.shipper,\n                                          contractId: brokerOrderDetails.shipperContract.id,\n                                          laneId: brokerOrderDetails.shipperContractLane.id,\n                                      })}\n                                  >\n                                      {brokerOrderDetails?.shipperContractLane?.tztLaneId}\n                                  </LinkFormatter>\n                              ) : null,\n                          rightNode: (\n                              <>\n                                  <ShipperContractLaneOrderCounterPill\n                                      ordersLeft={brokerOrderDetails?.shipperContractLane?.ordersLeft}\n                                      maxNumberOfOrders={brokerOrderDetails?.shipperContractLane?.maxNumberOfOrders}\n                                      status={brokerOrderDetails?.shipperContract?.status}\n                                      isSymmetrical\n                                  />\n                                  <ShipperContractLaneStatusPill\n                                      isSymmetrical\n                                      status={brokerOrderDetails?.shipperContractLane?.status}\n                                  />\n                              </>\n                          ),\n                          valueMods: {\n                              emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                              isBold: true,\n                          },\n                          testSelector: 'shipper-contract-lane',\n                      }\n                    : null,\n            ],\n        },\n    ];\n\n    const tabs = useMemo((): Array<ButtonTabT<TabEnum> | null> => {\n        const transportOrderCount = brokerOrderDetails?.transportationOrders?.length || 0;\n\n        const tourCount = brokerOrderDetails?.tours?.length || 0;\n\n        const shipmentCount = brokerOrderDetails?.shipments?.length || 0;\n\n        return [\n            tourCount\n                ? {\n                      type: TabEnum.tours,\n                      label: t('broker-order-details.tab-titles.tours'),\n                      counter: {\n                          value: tourCount,\n                          theme: ButtonTabCountThemeEnum.warning,\n                      },\n                  }\n                : null,\n            shipmentCount\n                ? {\n                      type: TabEnum.shipments,\n                      label: t('broker-order-details.tab-titles.shipments'),\n                      counter: {\n                          value: shipmentCount,\n                          theme: ButtonTabCountThemeEnum.normal,\n                      },\n                  }\n                : null,\n            transportOrderCount\n                ? {\n                      type: TabEnum.transportOrders,\n                      label: t('broker-order-details.tab-titles.transport-orders'),\n                      counter: {\n                          value: transportOrderCount,\n                          theme: ButtonTabCountThemeEnum.normal,\n                      },\n                  }\n                : null,\n        ];\n    }, [t, brokerOrderDetails]);\n\n    const { originWaypoint, destinationWaypoint } = useBrokerOrderPayloadWaypoints(allWaypoints);\n\n    const allShipments = useMemo(() => {\n        return brokerOrderDetails?.shipments || [];\n    }, [brokerOrderDetails]);\n\n    const requiredTemperatureMin = useMemo(() => {\n        return max(\n            allShipments.map((shipment) => {\n                return shipment?.lowestTemperature;\n            }),\n        );\n    }, [allShipments]);\n\n    const requiredTemperatureMax = useMemo(() => {\n        return min(\n            allShipments.map((shipment) => {\n                return shipment?.highestTemperature;\n            }),\n        );\n    }, [allShipments]);\n\n    const hasNotShowShipments = useMemo(() => {\n        return allShipments.some((shipment) => {\n            return shipment?.warning === ShipmentWarningEnum.noShow;\n        });\n    }, [allShipments]);\n\n    const hasMissedShipments = useMemo(() => {\n        return allShipments.some((shipment) => {\n            return shipment?.warning === ShipmentWarningEnum.missed;\n        });\n    }, [allShipments]);\n\n    const isLastNotFinallyShipment = useMemo(() => {\n        return (\n            allShipments?.filter((shipment) => {\n                return !finallyStatusSet.has(shipment.status);\n            })?.length === 1\n        );\n    }, [allShipments]);\n\n    const reeferTemperatureMin = brokerOrderDetails?.trailerTemperature?.reeferTemperatureMin;\n    const reeferTemperatureMax = brokerOrderDetails?.trailerTemperature?.reeferTemperatureMax;\n    const hasTemperatureViolation = checkTemperatureViolation({\n        reeferTemperatureMin,\n        reeferTemperatureMax,\n        requiredTemperatureMin,\n        requiredTemperatureMax,\n    });\n\n    if (!brokerOrderDetails) {\n        return null;\n    }\n\n    return (\n        <div ref={ref}>\n            <RouteLocationsOverview\n                className={cx('route')}\n                origin={originWaypoint?.address}\n                pickupDockingHoursFrom={originWaypoint?.correctedDateTimeFrom || originWaypoint?.originalDateTimeFrom}\n                pickupDockingHoursTo={originWaypoint?.correctedDateTimeTo || originWaypoint?.originalDateTimeTo}\n                destination={destinationWaypoint?.address}\n                dropOffDockingHoursFrom={\n                    destinationWaypoint?.correctedDateTimeFrom || destinationWaypoint?.originalDateTimeFrom\n                }\n                dropOffDockingHoursTo={\n                    destinationWaypoint?.correctedDateTimeTo || destinationWaypoint?.originalDateTimeTo\n                }\n            />\n            <ExcludedCountries\n                className={cx('excluded-countries')}\n                titleNode={t('broker-order-details.excluded-countries.title')}\n                countryCodes={brokerOrderDetails?.prohibitedCountries || []}\n                tooltipNode={t('broker-order-details.excluded-countries.tooltip')}\n            />\n            {!TODO && (\n                <ExcludedCountries\n                    className={cx('excluded-countries')}\n                    titleNode={t('broker-order-details.broker-excluded-countries.title')}\n                    countryCodes={brokerOrderDetails?.prohibitedCountries || []}\n                    tooltipNode={t('broker-order-details.broker-excluded-countries.tooltip')}\n                />\n            )}\n            <AlertGroup className={cx('alerts')}>\n                {tours.map((tour) => (\n                    <>\n                        {tour?.runningOutOfTimeToAssignAsset && (\n                            <EntityWarningAlert key={`runningOutOfTimeToAssignAsset-${tour?.id}`}>\n                                {t('broker-entity-details.alerts.running-out-of-time-assign-assets')}\n                            </EntityWarningAlert>\n                        )}\n                        {tour?.runOutOfTimeToAssignAsset && (\n                            <EntityCriticalWarningAlert key={`runOutOfTimeToAssignAsset-${tour?.id}`}>\n                                {t('broker-entity-details.alerts.run-out-of-time-assign-assets')}\n                            </EntityCriticalWarningAlert>\n                        )}\n                        {tour?.runningOutOfTimeToAssignDriver && (\n                            <EntityWarningAlert key={`runningOutOfTimeToAssignDriver-${tour?.id}`}>\n                                {t('broker-entity-details.alerts.running-out-of-time-assign-driver')}\n                            </EntityWarningAlert>\n                        )}\n                        {tour?.runOutOfTimeToAssignDriver && (\n                            <EntityCriticalWarningAlert key={`runOutOfTimeToAssignDriver-${tour?.id}`}>\n                                {t('broker-entity-details.alerts.run-out-of-time-assign-driver')}\n                            </EntityCriticalWarningAlert>\n                        )}\n                        {tour?.runningOutOfTimeToAssignCarrier && (\n                            <EntityWarningAlert key={`runningOutOfTimeToAssignCarrier-${tour?.id}`}>\n                                {t('broker-entity-details.alerts.running-out-of-time-assign-carrier')}\n                            </EntityWarningAlert>\n                        )}\n                        {tour?.runOutOfTimeToAssignCarrier && (\n                            <EntityCriticalWarningAlert key={`runOutOfTimeToAssignCarrier-${tour?.id}`}>\n                                {t('broker-entity-details.alerts.run-out-of-time-assign-carrier')}\n                            </EntityCriticalWarningAlert>\n                        )}\n                        {tour?.delaying && (\n                            <DelayingWarningAlert key={`delaying-${tour?.id}`}>\n                                {t('broker-entity-details.alerts.delaying', {\n                                    time: brokerOrderDetails?.eta ? formatISOTime(brokerOrderDetails?.eta) : '',\n                                })}\n                            </DelayingWarningAlert>\n                        )}\n                    </>\n                ))}\n                {hasTemperatureViolation && (\n                    <ViolationTemperatureAlert key=\"violation-temperature\">\n                        {t('broker-entity-details.alerts.violation-temperature-mode', {\n                            currentMin: reeferTemperatureMin,\n                            currentMax: reeferTemperatureMax,\n                            requiredMin: requiredTemperatureMin,\n                            requiredMax: requiredTemperatureMax,\n                        })}\n                    </ViolationTemperatureAlert>\n                )}\n                {carrierTransportOrders?.map((carrierTransportOrder) => {\n                    return (\n                        <>\n                            {carrierTransportOrder?.status === TransportOrderStatusEnum.declined && (\n                                <EntityWarningAlert key={`declined-transport-order-${carrierTransportOrder.id}`}>\n                                    {t('broker-entity-details.alerts.carrier-declined-transport-order')}\n                                </EntityWarningAlert>\n                            )}\n                            {isNumber(reeferTemperatureMin) && isNumber(reeferTemperatureMax) && (\n                                <EntityEtaAlert key={`current-temperature-${carrierTransportOrder?.id}`}>\n                                    {t('broker-entity-details.alerts.current-temperature', {\n                                        min: reeferTemperatureMin,\n                                        max: reeferTemperatureMax,\n                                    })}\n                                </EntityEtaAlert>\n                            )}\n                        </>\n                    );\n                })}\n                {hasMissedShipments && (\n                    <EntityCriticalWarningAlert key=\"missed-shipments\">\n                        {t('broker-entity-details.alerts.missed-shipments')}\n                    </EntityCriticalWarningAlert>\n                )}\n                {hasNotShowShipments && (\n                    <EntityCriticalWarningAlert key=\"no-show-shipments\">\n                        {t('broker-entity-details.alerts.no-show-shipments')}\n                    </EntityCriticalWarningAlert>\n                )}\n                {brokerOrderDetails?.eta && (\n                    <EntityEtaAlert\n                        key=\"eta\"\n                        tooltipContent={\n                            brokerOrderDetails?.truckCoordinatesUpdatedAt\n                                ? t('broker-entity-details.alerts.sync-time', {\n                                      time: formatISOTimeWithoutTimezone(brokerOrderDetails?.truckCoordinatesUpdatedAt),\n                                  })\n                                : null\n                        }\n                    >\n                        {t('broker-entity-details.alerts.eta', { time: formatISOTime(brokerOrderDetails?.eta) })}\n                    </EntityEtaAlert>\n                )}\n            </AlertGroup>\n            <InfoTable\n                shouldRenderIcons\n                className={cx('table', 'table--creation-details')}\n                rows={creationDetails}\n                testSelector=\"creation-details\"\n            />\n            <InfoTable\n                shouldRenderIcons\n                className={cx('table', 'table--mileage')}\n                rows={mileageDetails}\n                testSelector=\"mileage-details\"\n            />\n            <InfoTable\n                shouldRenderIcons\n                className={cx('table', 'table--move-details')}\n                rows={moveDetails}\n                testSelector=\"move-details\"\n            />\n            <ShipperPriceOfferInfoTable\n                className={cx('table', 'table--shipper-price')}\n                totalPriceLabel={t('broker-entity-details.columns.shipper-price')}\n                totalPriceTooltip={t('broker-entity-details.column-placeholders.shipper-price')}\n                hasContract={!!brokerOrderDetails?.shipperContract}\n                totalPrice={brokerOrderDetails?.priceOffer?.totalPrice}\n                lineHaulCost={brokerOrderDetails?.priceOffer?.lineHaul}\n                teamDriveCost={brokerOrderDetails?.priceOffer?.teamDriveCost}\n                travelHours={brokerOrderDetails?.priceOffer?.teamDriveHours}\n                co2={brokerOrderDetails?.priceOffer?.co2}\n                tollCost={brokerOrderDetails?.priceOffer?.toll?.totalCost}\n                tollByRoadType={brokerOrderDetails?.priceOffer?.toll?.byRoadType}\n                tranziitServiceFee={brokerOrderDetails?.priceOffer?.serviceFee}\n                layoverCost={brokerOrderDetails?.priceOffer?.layover?.totalCost}\n                layoverSeconds={brokerOrderDetails?.priceOffer?.layover?.totalSeconds}\n                layoverPaidHours={brokerOrderDetails?.priceOffer?.layover?.paidHours}\n                fuelDetails={brokerOrderDetails?.priceOffer?.fuel}\n                additionalServiceItems={brokerOrderDetails?.priceOffer?.additionalServices?.items}\n                appliedRules={brokerOrderDetails?.priceOffer?.appliedRules}\n                shouldAlwaysRenderExpandTrigger\n            />\n            <div className={cx('separator')} />\n            <CarrierCostPriceInfoTable\n                className={cx('table')}\n                totalPrice={brokerOrderDetails?.carrierEstimatedCost?.totalCost}\n                totalPriceLabel={t('broker-entity-details.columns.carrier-estimated-cost')}\n                totalPriceTooltip={t('broker-entity-details.column-placeholders.carrier-estimated-cost')}\n                lineHaulCost={brokerOrderDetails?.carrierEstimatedCost?.lineHaul}\n                tollCost={brokerOrderDetails?.carrierEstimatedCost?.toll?.totalCost}\n                tollByRoadType={brokerOrderDetails?.carrierEstimatedCost?.toll?.byRoadType}\n                co2={brokerOrderDetails?.carrierEstimatedCost?.co2}\n                layoverCost={brokerOrderDetails?.carrierEstimatedCost?.layover?.totalCost}\n                layoverSeconds={brokerOrderDetails?.carrierEstimatedCost?.layover?.totalSeconds}\n                layoverPaidHours={brokerOrderDetails?.carrierEstimatedCost?.layover?.paidHours}\n                fuelDetails={brokerOrderDetails?.carrierEstimatedCost?.fuel}\n                teamDriveCost={brokerOrderDetails?.carrierEstimatedCost?.teamDriveCost}\n                travelHours={brokerOrderDetails?.carrierEstimatedCost?.teamDriveHours}\n                additionalServiceItems={brokerOrderDetails?.carrierEstimatedCost?.additionalServices?.items}\n                appliedRules={brokerOrderDetails?.carrierEstimatedCost?.appliedRules}\n                testSelector=\"estimated-carrier-cost\"\n                shouldAlwaysRenderExpandTrigger\n            />\n            <div className={cx('separator')} />\n            <CarrierCostPriceInfoTable\n                className={cx('table', 'table--carrier-cost')}\n                totalPrice={brokerOrderDetails?.fullCarrierCost?.totalCost}\n                totalPriceDiff={carrierTotalCostDiff}\n                totalPriceIsInvertedPriceDiff\n                totalPriceLabel={t('broker-entity-details.columns.carrier-cost')}\n                lineHaulCost={brokerOrderDetails?.fullCarrierCost?.lineHaul}\n                tollCost={brokerOrderDetails?.fullCarrierCost?.toll?.totalCost}\n                tollByRoadType={brokerOrderDetails?.fullCarrierCost?.toll?.byRoadType}\n                co2={brokerOrderDetails?.fullCarrierCost?.co2}\n                layoverCost={brokerOrderDetails?.fullCarrierCost?.layover?.totalCost}\n                layoverSeconds={brokerOrderDetails?.fullCarrierCost?.layover?.totalSeconds}\n                layoverPaidHours={brokerOrderDetails?.fullCarrierCost?.layover?.paidHours}\n                fuelDetails={brokerOrderDetails?.fullCarrierCost?.fuel}\n                teamDriveCost={brokerOrderDetails?.fullCarrierCost?.teamDriveCost}\n                travelHours={brokerOrderDetails?.fullCarrierCost?.teamDriveHours}\n                additionalServiceItems={brokerOrderDetails?.fullCarrierCost?.additionalServices?.items}\n                deadheadLineHaulCost={brokerOrderDetails?.fullCarrierCost?.deadhead?.lineHaul}\n                payloadLineHaulCost={brokerOrderDetails?.fullCarrierCost?.payload?.lineHaul}\n                appliedRules={brokerOrderDetails?.fullCarrierCost?.appliedRules}\n                testSelector=\"carrier-cost\"\n                shouldAlwaysRenderExpandTrigger\n            />\n            <ButtonTabs\n                className={cx('tabs')}\n                activeTabType={activeTabType}\n                setActiveTabType={setActiveTabType}\n                tabs={tabs}\n            />\n            {activeTabType === TabEnum.tours && (\n                <>\n                    {brokerOrderDetails?.tours?.map((tour, tourIndex) => {\n                        return (\n                            <TourDetailsCard\n                                key={`tourIndex-${tourIndex}`}\n                                tour={tour}\n                                tourNumber={tourIndex + 1}\n                                className={cx('entry-card')}\n                                isDisableAnyActions={isDisableAnyActions}\n                                onStartAssignment={onStartAssignment}\n                                onStartSendToSpot={onStartSendToSpot}\n                                onStartEditTimeWindows={onStartEditTimeWindows}\n                                onStartEditStopContact={onStartEditStopContact}\n                                keyboardShortcut={String(tourIndex + 1)}\n                                onManageShipment={onManageShipment}\n                                transportationOrders={brokerOrderDetails?.transportationOrders || null}\n                                onAttachTourPaper={onAttachTourPaper}\n                                getTourPaperThumbnailUrl={getTourPaperThumbnailUrl}\n                                onOpenGalleryTourPaper={onOpenGalleryTourPaper}\n                                onDownloadTourPaper={onDownloadTourPaper}\n                                onDeleteTourPaper={onDeleteTourPaper}\n                                onOpenUserDetails={onOpenUserDetails}\n                            />\n                        );\n                    })}\n                </>\n            )}\n            {activeTabType === TabEnum.transportOrders && (\n                <>\n                    {brokerOrderDetails?.transportationOrders?.map((transportationOrder, transportationOrderIndex) => {\n                        return (\n                            <TransportOrderDetailsCard\n                                key={`transportationOrderIndex-${transportationOrderIndex}`}\n                                transportOrderDetails={transportationOrder}\n                                transportOrderNumber={transportationOrder.number}\n                                className={cx('entry-card')}\n                                keyboardShortcut={String(transportationOrderIndex + 1)}\n                            />\n                        );\n                    })}\n                </>\n            )}\n            {activeTabType === TabEnum.shipments && (\n                <>\n                    {brokerOrderDetails?.shipments?.map((shipment, shipmentIndex) => {\n                        return (\n                            <ShipmentDetailsCard\n                                key={shipmentIndex}\n                                brokerOrderDetails={brokerOrderDetails}\n                                shipment={shipment}\n                                waypointById={waypointById}\n                                shipmentNumber={shipmentIndex + 1}\n                                className={cx('entry-card')}\n                                keyboardShortcut={String(shipmentIndex + 1)}\n                                onAttachShipmentPaper={onAttachShipmentPaper}\n                                getShipmentPaperThumbnailUrl={getShipmentPaperThumbnailUrl}\n                                onOpenGalleryShipmentPaper={onOpenGalleryShipmentPaper}\n                                onDownloadShipmentPaper={onDownloadShipmentPaper}\n                                onDeleteShipmentPaper={onDeleteShipmentPaper}\n                                onOpenUserDetails={onOpenUserDetails}\n                                shouldConfirmForCancelLastShipment={isLastNotFinallyShipment}\n                                tourShipmentActions={tourShipmentActionsByShipmentId[shipment.id] || null}\n                                onUpdateShipment={onUpdateShipment}\n                                onStartEditStopContact={onStartEditStopContact}\n                            />\n                        );\n                    })}\n                </>\n            )}\n            <ImageGalleryModal data={tourPaperGalleryModal.data} onClose={tourPaperGalleryModal.onClose} />\n            <DeletePaperConfirmation\n                data={deleteTourPaperConfirmationDialog.data}\n                onConfirm={onConfirmDeleteTourPaper}\n                onCancel={deleteTourPaperConfirmationDialog.onCancel}\n                onClose={deleteTourPaperConfirmationDialog.onClose}\n                requestStatus={deleteTourPaperRequestStatus}\n            />\n            <ImageGalleryModal data={shipmentPaperGalleryModal.data} onClose={shipmentPaperGalleryModal.onClose} />\n            <DeletePaperConfirmation\n                data={deleteShipmentPaperConfirmationDialog.data}\n                onConfirm={onConfirmDeleteShipmentPaper}\n                onCancel={deleteShipmentPaperConfirmationDialog.onCancel}\n                onClose={deleteShipmentPaperConfirmationDialog.onClose}\n                requestStatus={deleteShipmentPaperRequestStatus}\n            />\n        </div>\n    );\n});\n\nexport default BrokerOrderDetails;\n","import * as React from 'react';\n\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\n\nimport classNames from 'classnames/bind';\nimport styles from './SystemSettings.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport { DEFAULT_ICON_SIZE, QueryKeysEnum, StyleGuideColorsEnum } from 'common/constants';\nimport {\n    selectSystemSettings,\n    selectSystemSettingsFetchRequest,\n    selectSystemSettingsUpdateRequest,\n} from 'broker-admin/store/price-settings/system-settings/selectors';\nimport { fetchSystemSettings, updateSystemSettings } from 'broker-admin/store/price-settings/system-settings/actions';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport LeftCardLayout from 'common/layouts/LeftCardLayout/LeftCardLayout';\nimport WalletIcon, { getWalletIconProps } from 'common/icons/WalletIcon';\nimport CargoUnitIcon, { getCargoUnitIconProps } from 'common/icons/CargoUnitIcon';\nimport TimeWindowIcon, { getTimeWindowIconProps } from 'common/icons/TimeWindowIcon';\nimport GeoAreaIcon, { getGeoAreaIconProps } from 'common/icons/GeoAreaIcon';\nimport useQuery from 'common/utils/hooks/useQuery';\nimport history from 'common/utils/history';\nimport { formatQuery } from 'common/utils/query';\nimport values from 'lodash/values';\nimport PricingSettingsForm from './PricingSettingsForm/PricingSettingsForm';\nimport NewOrderParametersSettingsForm from './NewOrderParametersSettingsForm/NewOrderParametersSettingsForm';\nimport AlertsSettingsForm from './AlertsSettingsForm/AlertsSettingsForm';\nimport AssignmentSettingsForm from './AssignmentSettingsForm/AssignmentSettingsForm';\nimport { SystemSettingsChangesT } from 'broker-admin/store/price-settings/system-settings/models';\nimport RadarIcon from 'common/icons/RadarIcon';\nimport SpotSettingsForm from 'broker-admin/layouts/SettingsPage/SystemSettings/SpotSettingsForm/SpotSettingsForm';\nimport FerrySettingsForm from 'broker-admin/layouts/SettingsPage/SystemSettings/FerrySettingsForm/FerrySettingsForm';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport BoatIcon from 'common/icons/BoatIcon';\nimport RouteIcon from 'common/icons/RouteIcon';\nimport RoutingSettingsForm from 'broker-admin/layouts/SettingsPage/SystemSettings/RoutingSettingsForm/RoutingSettingsForm';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nenum TabTypeEnum {\n    pricing = 'pricing',\n    newOrderParameters = 'new-order-parameters',\n    alerts = 'alerts',\n    assignment = 'assignment',\n    spot = 'spot',\n    ferry = 'ferry',\n    routing = 'routing',\n}\n\ntype TabConfigT = {\n    type: TabTypeEnum;\n    icon: React.ReactElement;\n};\n\ntype QueryT = {\n    [QueryKeysEnum.systemSettingsTab]: string;\n};\n\nconst DEFAULT_TAB_TYPE = TabTypeEnum.pricing;\n\nconst parseQueryTabType = (queryTabType: string | undefined): TabTypeEnum => {\n    if (!queryTabType) {\n        return DEFAULT_TAB_TYPE;\n    }\n\n    const availableTabs: string[] = values(TabTypeEnum);\n    if (availableTabs.includes(queryTabType)) {\n        return queryTabType as TabTypeEnum;\n    }\n\n    return DEFAULT_TAB_TYPE;\n};\n\nconst TAB_MAP_T: Record<TabTypeEnum, string> = {\n    [TabTypeEnum.pricing]: 'system-settings.tabs.pricing',\n    [TabTypeEnum.newOrderParameters]: 'system-settings.tabs.new-order-parameters',\n    [TabTypeEnum.alerts]: 'system-settings.tabs.alerts',\n    [TabTypeEnum.assignment]: 'system-settings.tabs.assignment',\n    [TabTypeEnum.spot]: 'system-settings.tabs.spot',\n    [TabTypeEnum.ferry]: 'system-settings.tabs.ferry',\n    [TabTypeEnum.routing]: 'system-settings.tabs.routing',\n};\n\nconst SystemSettings: React.FC<PropsT> = React.memo(() => {\n    const systemSettings = useSelector(selectSystemSettings);\n\n    const updateRequest = useSelector(selectSystemSettingsUpdateRequest);\n    const fetchRequest = useSelector(selectSystemSettingsFetchRequest);\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchSystemSettings());\n    }, [dispatch]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        dispatch(fetchSystemSettings());\n    }, [dispatch]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const query = useQuery<QueryT>();\n\n    const handleTabClick = (tabType: TabTypeEnum) => {\n        history.push({\n            search: formatQuery({\n                ...query,\n                [QueryKeysEnum.systemSettingsTab]: tabType,\n            }),\n        });\n    };\n\n    const handleUpdateSettings = (systemSettingsChanges: SystemSettingsChangesT): void => {\n        dispatch(updateSystemSettings(systemSettingsChanges));\n    };\n\n    const selectedTabType = parseQueryTabType(query[QueryKeysEnum.systemSettingsTab]);\n\n    const tabsConfig: TabConfigT[] = [\n        {\n            type: TabTypeEnum.pricing,\n            icon: (\n                <WalletIcon {...getWalletIconProps(selectedTabType === TabTypeEnum.pricing ? 'selected' : 'default')} />\n            ),\n        },\n        {\n            type: TabTypeEnum.newOrderParameters,\n            icon: (\n                <CargoUnitIcon\n                    {...getCargoUnitIconProps(\n                        selectedTabType === TabTypeEnum.newOrderParameters ? 'selected' : 'default',\n                    )}\n                    size={DEFAULT_ICON_SIZE}\n                />\n            ),\n        },\n        {\n            type: TabTypeEnum.alerts,\n            icon: (\n                <TimeWindowIcon\n                    {...getTimeWindowIconProps(selectedTabType === TabTypeEnum.alerts ? 'selected' : 'default')}\n                />\n            ),\n        },\n        {\n            type: TabTypeEnum.assignment,\n            icon: (\n                <GeoAreaIcon\n                    {...getGeoAreaIconProps(selectedTabType === TabTypeEnum.assignment ? 'selected' : 'default')}\n                />\n            ),\n        },\n        {\n            type: TabTypeEnum.spot,\n            icon: (\n                <RadarIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={\n                        selectedTabType === TabTypeEnum.spot\n                            ? StyleGuideColorsEnum.brandDark\n                            : StyleGuideColorsEnum.slate\n                    }\n                />\n            ),\n        },\n        {\n            type: TabTypeEnum.ferry,\n            icon: (\n                <BoatIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={\n                        selectedTabType === TabTypeEnum.ferry\n                            ? StyleGuideColorsEnum.brandDark\n                            : StyleGuideColorsEnum.slate\n                    }\n                    fillColor={\n                        selectedTabType === TabTypeEnum.ferry\n                            ? StyleGuideColorsEnum.brandAccent\n                            : StyleGuideColorsEnum.light\n                    }\n                />\n            ),\n        },\n        {\n            type: TabTypeEnum.routing,\n            icon: (\n                <RouteIcon\n                    fillColor={\n                        selectedTabType === TabTypeEnum.routing\n                            ? StyleGuideColorsEnum.brandDark\n                            : StyleGuideColorsEnum.slate\n                    }\n                />\n            ),\n        },\n    ];\n\n    const isLoading = fetchRequest.loading || updateRequest.loading;\n\n    const commonFormProps = {\n        isLoading,\n        systemSettings,\n        onUpdate: handleUpdateSettings,\n    };\n    return (\n        <ContentMargins className={cx('wrap')}>\n            {isLoading && <LoaderOverlay />}\n            <LeftCardLayout\n                testSelector=\"system-settings\"\n                cardNode={\n                    <div>\n                        {tabsConfig.map((tabsConfig) => (\n                            <Button\n                                key={tabsConfig.type}\n                                className={cx('tab')}\n                                theme={ButtonThemeEnum.transparent}\n                                isToggled={tabsConfig.type === selectedTabType}\n                                leftIcon={tabsConfig.icon}\n                                onClick={() => handleTabClick(tabsConfig.type)}\n                            >\n                                {t(TAB_MAP_T[tabsConfig.type])}\n                            </Button>\n                        ))}\n                    </div>\n                }\n            >\n                {selectedTabType === TabTypeEnum.pricing && (\n                    <PricingSettingsForm {...commonFormProps} title={t(TAB_MAP_T[TabTypeEnum.pricing])} />\n                )}\n                {selectedTabType === TabTypeEnum.newOrderParameters && (\n                    <NewOrderParametersSettingsForm\n                        {...commonFormProps}\n                        title={t(TAB_MAP_T[TabTypeEnum.newOrderParameters])}\n                    />\n                )}\n                {selectedTabType === TabTypeEnum.alerts && (\n                    <AlertsSettingsForm {...commonFormProps} title={t(TAB_MAP_T[TabTypeEnum.alerts])} />\n                )}\n                {selectedTabType === TabTypeEnum.assignment && (\n                    <AssignmentSettingsForm {...commonFormProps} title={t(TAB_MAP_T[TabTypeEnum.assignment])} />\n                )}\n                {selectedTabType === TabTypeEnum.spot && (\n                    <SpotSettingsForm {...commonFormProps} title={t(TAB_MAP_T[TabTypeEnum.spot])} />\n                )}\n                {selectedTabType === TabTypeEnum.ferry && (\n                    <FerrySettingsForm {...commonFormProps} title={t(TAB_MAP_T[TabTypeEnum.ferry])} />\n                )}\n                {selectedTabType === TabTypeEnum.routing && (\n                    <RoutingSettingsForm {...commonFormProps} title={t(TAB_MAP_T[TabTypeEnum.routing])} />\n                )}\n            </LeftCardLayout>\n        </ContentMargins>\n    );\n});\n\nexport default SystemSettings;\n","import React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport BigTrashIcon from 'common/icons/BigTrashIcon';\n\nexport type DeletePaperConfirmationDataT = {\n    tourId: TourIdT;\n    paperId: PapersIdT;\n};\n\ntype PropsT = {\n    data: DeletePaperConfirmationDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onConfirm: (data: DeletePaperConfirmationDataT) => void;\n    requestStatus: RequestStatusT;\n};\n\nconst TEST_SELECTOR = 'delete-paper-confirmation';\n\nconst DeletePaperConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, onCancel, onClose, requestStatus, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            isDisabled: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            onClick: () => {\n                                onCancel();\n                            },\n                        },\n                        {\n                            children: t('common:error-modal.actions.remove'),\n                            theme: ButtonThemeEnum.danger,\n                            isDisabled: requestStatus.loading,\n                            isLoading: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigTrashIcon />}\n                    title={t('common:order-details.delete-paper-confirmation.title')}\n                    message={t('common:order-details.delete-paper-confirmation.message')}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default DeletePaperConfirmation;\n","// extracted by mini-css-extract-plugin\nexport default {\"widget\":\"AssignmentSettingsForm__widget___OB9Ur\",\"widget__inner\":\"AssignmentSettingsForm__widget__inner___zpU9P\",\"field\":\"AssignmentSettingsForm__field___lAKOQ\",\"field-group\":\"AssignmentSettingsForm__field-group___KJ5zF\",\"fadeIn\":\"AssignmentSettingsForm__fadeIn___a6Ptx\",\"blinking\":\"AssignmentSettingsForm__blinking___fb1Fj\"};","import * as React from 'react';\n\nconst usePollingCallback = ({\n    callback,\n    intervalMs,\n    isEnabled,\n}: {\n    callback: () => void;\n    intervalMs: number;\n    isEnabled: boolean;\n}) => {\n    const intervalIdRef = React.useRef<NodeJS.Timeout | null>(null);\n\n    React.useEffect(() => {\n        if (!isEnabled) {\n            if (intervalIdRef.current) {\n                clearInterval(intervalIdRef.current);\n                intervalIdRef.current = null;\n            }\n            return () => {\n                // nothing\n            };\n        }\n\n        intervalIdRef.current = setInterval(() => {\n            callback();\n        }, intervalMs);\n\n        return () => {\n            if (intervalIdRef.current) {\n                clearInterval(intervalIdRef.current);\n                intervalIdRef.current = null;\n            }\n        };\n    }, [callback, intervalMs, isEnabled]);\n};\n\nexport default usePollingCallback;\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"SendingToSpotForm__form___ZGPrO\",\"field--time-picker\":\"SendingToSpotForm__field--time-picker___nI4_W\",\"actions\":\"SendingToSpotForm__actions___qwjgz\",\"action\":\"SendingToSpotForm__action___hGnqa\",\"action--cancel\":\"SendingToSpotForm__action--cancel___T_Jdc\",\"action--send\":\"SendingToSpotForm__action--send___ZJEAh\",\"time-window-pill-label\":\"SendingToSpotForm__time-window-pill-label___xN6LU\",\"fadeIn\":\"SendingToSpotForm__fadeIn___lqkfQ\",\"blinking\":\"SendingToSpotForm__blinking___HMmfO\"};","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { FETCH_CARRIER_CONTRACT_DETAILS_REQUEST, FetchCarrierContractDetailsActionT } from './types';\nimport { selectCarrierContractStateById } from './selectors';\nimport {\n    fetchCarrierContractDetailsBegin,\n    fetchCarrierContractDetailsError,\n    fetchCarrierContractDetailsSuccess,\n} from './actions';\nimport carrierTranziitApi from 'carrier/utils/api/carrier-tranziit/api';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { checkIsDefaultCompanyId } from 'common/utils';\nimport checkNeedRequest from 'common/utils/check-need-request';\n\nfunction* fetchCarrierContractDetailsSaga(action: FetchCarrierContractDetailsActionT): WrapGeneratorT<void> {\n    const { partnerId, contractId, options } = action;\n\n    const carrierContractState: ReReturnT<typeof selectCarrierContractStateById> = yield select(\n        selectCarrierContractStateById(contractId),\n    );\n    if (!checkNeedRequest(carrierContractState.fetchRequest, options)) {\n        return;\n    }\n\n    yield put(fetchCarrierContractDetailsBegin(partnerId));\n\n    let result: ReturnApiT<\n        typeof carrierTranziitApi.fetchCarrierContractDetails | typeof brokerTranziitApi.fetchCarrierContractDetails\n    >;\n\n    if (checkIsDefaultCompanyId(partnerId)) {\n        result = yield carrierTranziitApi.fetchCarrierContractDetails(contractId);\n    } else {\n        result = yield brokerTranziitApi.fetchCarrierContractDetails(partnerId, contractId);\n    }\n\n    const [error, contractDetails] = result;\n\n    if (error) {\n        yield put(fetchCarrierContractDetailsError(contractId, error));\n        return;\n    }\n\n    yield put(fetchCarrierContractDetailsSuccess(contractId, contractDetails || null));\n}\n\nfunction* carrierContractDetailsSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_CARRIER_CONTRACT_DETAILS_REQUEST, fetchCarrierContractDetailsSaga);\n}\n\nexport default carrierContractDetailsSaga;\n","// extracted by mini-css-extract-plugin\nexport default {\"time-window\":\"TimeWindow__time-window___SIbTr\",\"time-window--charcoal\":\"TimeWindow__time-window--charcoal___Fw12W\",\"time-window--pewter-blue\":\"TimeWindow__time-window--pewter-blue___Oob5N\",\"time-window--light-slate-gray\":\"TimeWindow__time-window--light-slate-gray___BWCAs\",\"time-window--tumbleweed\":\"TimeWindow__time-window--tumbleweed___kGFA9\",\"time-window--light\":\"TimeWindow__time-window--light___s0N6w\",\"time-window--brand-accent\":\"TimeWindow__time-window--brand-accent___iaYmJ\",\"time-window--tomato-red-70\":\"TimeWindow__time-window--tomato-red-70___ta9co\",\"time-window--attention\":\"TimeWindow__time-window--attention___mExmB\",\"time-window--isTransparent\":\"TimeWindow__time-window--isTransparent___NcNTZ\",\"time-window__label-wrap\":\"TimeWindow__time-window__label-wrap___tMoRs\",\"time-window__label\":\"TimeWindow__time-window__label___GYbFq\",\"time-window__label--charcoal\":\"TimeWindow__time-window__label--charcoal___cBceg\",\"time-window__label--light\":\"TimeWindow__time-window__label--light___Pu03B\",\"tooltip\":\"TimeWindow__tooltip___kshGk\",\"tooltip__inner\":\"TimeWindow__tooltip__inner___GCcrx\",\"tooltip__inner--theme-white\":\"TimeWindow__tooltip__inner--theme-white___mqP2k\",\"tooltip__inner--theme-black\":\"TimeWindow__tooltip__inner--theme-black___W8EaG\",\"fadeIn\":\"TimeWindow__fadeIn___R7kkJ\",\"blinking\":\"TimeWindow__blinking___xdr9o\"};","import isNil from 'lodash/isNil';\nimport React from 'react';\n\nexport type SideBarHeaderHeightContextT = {\n    value: number | null;\n    setValue: (value: number) => void;\n};\n\nconst DEFAULT_HEADER_HEIGHT = 70; // most popular case\n\nconst useSideBarHeaderHeight = (): SideBarHeaderHeightContextT => {\n    const [value, setValue] = React.useState<number | null>(null);\n\n    return {\n        value: isNil(value) ? DEFAULT_HEADER_HEIGHT : value || 0,\n        setValue,\n    };\n};\n\nexport default useSideBarHeaderHeight;\n","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"DeprecatedCountyFlagLabel__wrap___XhZ2m\",\"icon\":\"DeprecatedCountyFlagLabel__icon___icGCK\",\"count\":\"DeprecatedCountyFlagLabel__count___kKLog\",\"label\":\"DeprecatedCountyFlagLabel__label___FPB_v\",\"label--isThin\":\"DeprecatedCountyFlagLabel__label--isThin___V31Uf\",\"flag-icon\":\"DeprecatedCountyFlagLabel__flag-icon___v_dmN\",\"fadeIn\":\"DeprecatedCountyFlagLabel__fadeIn___PA_3f\",\"blinking\":\"DeprecatedCountyFlagLabel__blinking___wRAT4\"};","// extracted by mini-css-extract-plugin\nexport default {\"notification\":\"NotificationLabel__notification___syYXi\",\"notification--theme-slate\":\"NotificationLabel__notification--theme-slate___aHKs7\",\"notification--theme-charcoal\":\"NotificationLabel__notification--theme-charcoal___sHgu9\",\"notification--theme-orange\":\"NotificationLabel__notification--theme-orange___g1XT5\",\"notification--theme-green\":\"NotificationLabel__notification--theme-green___TPyZ7\",\"notification--theme-red\":\"NotificationLabel__notification--theme-red___B_n29\",\"fadeIn\":\"NotificationLabel__fadeIn___eSKZx\",\"blinking\":\"NotificationLabel__blinking___tfQg3\"};","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { FetchRoutePlainGeometryActionT, FetchRoutesPlainGeometryActionT } from './types';\nimport { selectRoutingGeometryState } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { CompanyTypeEnum } from 'common/constants';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport {\n    fetchRouteGeometryBegin,\n    fetchRouteGeometryError,\n    fetchRouteGeometrySuccess,\n    fetchRoutePlainGeometry,\n    fetchRoutesPlainGeometry,\n} from './slice';\nimport { ROUTING_GEOMETRY_TTL } from 'common/store/routing-geometry/constants';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getFetchRoutesGeometrySaga(companyType: CompanyTypeEnum) {\n    return function* fetchRoutesGeometrySaga(action: FetchRoutesPlainGeometryActionT): WrapGeneratorT<void> {\n        const { polylineIds, options } = action.payload;\n\n        for (const polylineId of polylineIds) {\n            if (polylineId) {\n                yield put(\n                    fetchRoutePlainGeometry({\n                        polylineId,\n                        options,\n                    }),\n                );\n            }\n        }\n    };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getFetchRouteGeometrySaga(companyType: CompanyTypeEnum) {\n    return function* fetchRouteGeometrySaga(action: FetchRoutePlainGeometryActionT): WrapGeneratorT<void> {\n        const { polylineId, options } = action.payload;\n\n        const { requestStatus }: ReReturnT<typeof selectRoutingGeometryState> = yield select(\n            selectRoutingGeometryState(polylineId),\n        );\n        if (!checkNeedRequest(requestStatus, options, ROUTING_GEOMETRY_TTL)) {\n            return;\n        }\n\n        yield put(fetchRouteGeometryBegin({ polylineId }));\n\n        const [error, data]: ReturnApiT<typeof commonTranziitApi.fetchRouteGeometryGoogle> =\n            yield commonTranziitApi.fetchRouteGeometryGoogle(polylineId);\n\n        if (error) {\n            yield put(fetchRouteGeometryError({ polylineId, error }));\n        } else {\n            const polylines = data || [];\n\n            yield put(fetchRouteGeometrySuccess({ polylineId, data: polylines }));\n        }\n    };\n}\n\nfunction* routingGeometrySaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery(fetchRoutesPlainGeometry.type, getFetchRoutesGeometrySaga(companyType));\n    yield takeEvery(fetchRoutePlainGeometry.type, getFetchRouteGeometrySaga(companyType));\n}\n\nexport { routingGeometrySaga };\n","import * as React from 'react';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport { useTranslation } from 'react-i18next';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport InfoIcon from 'common/icons/InfoIcon';\nimport classNames from 'classnames/bind';\nimport styles from './ChangeRateOrContractWarning.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    onClose: () => void;\n    className?: string;\n};\n\nconst ChangeRateOrContractWarning: React.FC<PropsT> = React.memo((props) => {\n    const { className, onClose } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <Alert\n            className={className}\n            icon={<InfoIcon fillColor={StyleGuideColorsEnum.white} />}\n            size={AlertSizeEnum.small}\n            theme={AlertThemeEnum.orange}\n            onClose={onClose}\n        >\n            <div className={cx('inner')}>{t('common:trucks-page.warnings.change-rate-or-contract')}</div>\n        </Alert>\n    );\n});\n\nexport default ChangeRateOrContractWarning;\n","import React from 'react';\nimport { SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { BrokerSidebarDataT } from 'broker-admin/layouts/SideBars/models';\nimport { PriceSettingsEditRuleSidebarDataT } from './models';\nimport PriceSettingsEditRuleLayout from 'broker-admin/layouts/PriceSettingsEditRuleLayout/PriceSettingsEditRuleLayout';\nimport useCloseSidebarAfterRequest from 'common/utils/hooks/useCloseSidebarAfterRequest';\nimport { useSelector } from 'react-redux';\nimport { selectCreateRuleRequest } from 'broker-admin/store/price-settings/rules/selectors';\n\ntype PropsT = SidebarContentPropsT<PriceSettingsEditRuleSidebarDataT, BrokerSidebarDataT>;\n\nconst PriceSettingsEditRuleSidebarContent: React.FC<PropsT> = (props) => {\n    const { onGoBack, onClose, setNeedCloseConfirmation, data } = props;\n\n    const createRuleRequest = useSelector(selectCreateRuleRequest);\n\n    useCloseSidebarAfterRequest(createRuleRequest, onGoBack || onClose);\n\n    const handleCancel = () => {\n        if (onGoBack) {\n            onGoBack({ needCloseConfirmation: false });\n        }\n    };\n\n    const editableRuleId = 'editableRuleId' in data ? data.editableRuleId : null;\n\n    return (\n        <PriceSettingsEditRuleLayout\n            editableRuleId={editableRuleId}\n            onClose={onClose}\n            onCancel={handleCancel}\n            setNeedCloseConfirmation={setNeedCloseConfirmation}\n        />\n    );\n};\n\nexport default PriceSettingsEditRuleSidebarContent;\n","// extracted by mini-css-extract-plugin\nexport default {\"overlay\":\"DatePickerOverlay__overlay___O6ffA\",\"fadeIn\":\"DatePickerOverlay__fadeIn___ZJwqz\",\"blinking\":\"DatePickerOverlay__blinking___iq2rV\"};","import React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './SuggestInput.scss';\nimport Input, { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from '../constants';\nimport DropdownBaseLayout from '../base/DropdownBaseLayout/DropdownBaseLayout';\nimport isEqual from 'lodash/isEqual';\nimport debounce from 'lodash/debounce';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT<OptionT, OptionValueT> = {\n    selectedValue: OptionValueT | null;\n    initialInputValue?: string;\n    options: Array<OptionT>;\n    onSelect: (value: OptionValueT | null) => void;\n    overlayPosition: DropdownOverlayPositionEnum;\n    renderOption: (option: OptionT) => React.ReactNode;\n    formatOption: (option: OptionT) => string;\n    getOptionValue: (option: OptionT) => OptionValueT | null;\n    onChangeQuery: (query: string) => void;\n    renderLeftIcon: InputPropsT['renderLeftIcon'];\n    rightInputText?: (option: OptionT | null) => React.ReactNode;\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    hasSuccess?: InputPropsT['hasSuccess'];\n    placeholder?: InputPropsT['placeholder'];\n    onBlur?: InputPropsT['onBlur'];\n    onFocus?: InputPropsT['onFocus'];\n    onKeyUp?: InputPropsT['onKeyUp'];\n    isDisabled?: InputPropsT['isDisabled'];\n    isFocused?: InputPropsT['isFocused'];\n    hasClearControl?: InputPropsT['hasClearControl'];\n    hasOptionsSeparator?: boolean;\n    isLoading?: boolean;\n    hasChanges?: boolean;\n    overlayClassName?: string;\n    className?: string;\n    isInline?: boolean;\n};\n\nconst COLD_TIME = 300;\n\nconst SuggestInput = <OptionT, OptionValueT>(props: PropsT<OptionT, OptionValueT>) => {\n    const {\n        renderLeftIcon,\n        rightInputText,\n        selectedValue,\n        isInline,\n        initialInputValue,\n        className,\n        overlayClassName,\n        placeholder,\n        onSelect,\n        options,\n        renderOption,\n        getOptionValue,\n        hasWarning,\n        hasError,\n        hasSuccess,\n        hasOptionsSeparator,\n        hasClearControl,\n        onChangeQuery,\n        overlayPosition,\n        formatOption,\n        onBlur,\n        onFocus,\n        onKeyUp,\n        isFocused,\n        isDisabled,\n        isLoading,\n        hasChanges,\n    } = props;\n\n    const [selectedOption, setSelectedOption] = React.useState<OptionT | null>(null);\n    const [inputValue, setInputValue] = React.useState<string>(initialInputValue || '');\n    const [isOpen, toggleOpen] = React.useState<boolean>(false);\n\n    React.useEffect(() => {\n        if (isDisabled && isOpen) {\n            toggleOpen(false);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isDisabled]);\n\n    const handleClose = (): void => {\n        toggleOpen(false);\n    };\n\n    const handleChangeQuery = React.useMemo(() => {\n        return debounce((inputValue: string): void => {\n            onChangeQuery(inputValue);\n        }, COLD_TIME);\n    }, [onChangeQuery]);\n\n    const handleInputChange = (value: string) => {\n        setInputValue(value);\n        handleChangeQuery(value);\n\n        if (!value) {\n            onSelect(null);\n        }\n    };\n\n    const handleFocus: InputPropsT['onFocus'] = () => {\n        toggleOpen(true);\n\n        if (onFocus) {\n            onFocus();\n        }\n    };\n\n    React.useEffect(() => {\n        const optionsValue = options.map((option) => getOptionValue(option));\n        const selectedOptionIndex = optionsValue.indexOf(selectedValue);\n        const nextSelectedOption = selectedOptionIndex !== -1 ? options[selectedOptionIndex] : null;\n        const isSameSelectedOption = isEqual(selectedOption, nextSelectedOption);\n        if (!isSameSelectedOption) {\n            setSelectedOption(nextSelectedOption);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [selectedValue]);\n\n    React.useEffect(() => {\n        const optionInputValue = selectedOption ? formatOption(selectedOption) : '';\n        setInputValue(optionInputValue);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [selectedOption]);\n\n    const handleBlur = () => {\n        if (!inputValue) {\n            onSelect(null);\n        }\n\n        if (!options.length) {\n            onSelect(null);\n        }\n\n        if (inputValue && selectedOption) {\n            const optionInputValue = formatOption(selectedOption);\n            setInputValue(optionInputValue);\n        }\n\n        if (onBlur) {\n            onBlur();\n        }\n    };\n\n    const handleOuterEvent = (): void => {\n        if (isOpen) {\n            handleClose();\n            handleBlur();\n        }\n    };\n\n    const inputRightTextNode = rightInputText ? rightInputText(selectedOption) : null;\n\n    return (\n        <DropdownBaseLayout\n            isInline={isInline}\n            isOpen={isOpen}\n            className={className}\n            onClose={handleOuterEvent}\n            triggerNode={\n                <Input\n                    renderLeftIcon={\n                        renderLeftIcon\n                            ? (iconMeta) =>\n                                  renderLeftIcon({\n                                      ...iconMeta,\n                                      hasValue: !!selectedOption,\n                                  })\n                            : undefined\n                    }\n                    name=\"suggest-input\"\n                    value={inputValue}\n                    hasChanges={hasChanges}\n                    placeholder={placeholder}\n                    onChange={handleInputChange}\n                    rightNode={inputRightTextNode}\n                    hasWarning={hasWarning}\n                    hasError={hasError}\n                    hasSuccess={hasSuccess}\n                    onFocus={handleFocus}\n                    isLoading={isLoading}\n                    onKeyUp={onKeyUp}\n                    isFocused={isFocused}\n                    isDisabled={isDisabled}\n                    hasClearControl={hasClearControl}\n                />\n            }\n            overlayPosition={overlayPosition}\n            overlayClassName={cs(cx('overlay'), overlayClassName)}\n            overlayNode={\n                <div className={cx('options')}>\n                    {options.map((option, index): React.ReactElement => {\n                        const value = getOptionValue(option);\n\n                        const isSelected = selectedValue === value;\n\n                        return (\n                            <div\n                                key={index}\n                                className={cx('option', {\n                                    'option--isSelected': isSelected,\n                                    'option--hasSeparator': hasOptionsSeparator,\n                                })}\n                                onClick={(): void => {\n                                    onSelect(value);\n                                    toggleOpen(false);\n                                    handleClose();\n                                    if (onBlur) {\n                                        onBlur();\n                                    }\n                                }}\n                            >\n                                {renderOption(option)}\n                            </div>\n                        );\n                    })}\n                </div>\n            }\n        />\n    );\n};\n\nexport default React.memo(SuggestInput) as typeof SuggestInput;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './PlaceholderFormatter.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    children?: React.ReactNode;\n    isBold?: boolean;\n};\n\nconst PlaceholderFormatter: React.FC<PropsT> = React.memo((props) => {\n    const { children, isBold } = props;\n\n    return <div className={cx('placeholder', { 'placeholder--isBold': isBold })}>{children}</div>;\n});\n\nexport default PlaceholderFormatter;\n","import React, { useCallback, useMemo } from 'react';\n\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport keyBy from 'lodash/keyBy';\nimport { AsyncRequestFactoryT } from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-options-request';\nimport { checkIsDefaultCompanyId } from 'common/utils';\nimport DropdownSearchInput, {\n    PropsT as DropdownSearchInputPropsT,\n} from 'design-system/components/dropdowns/DropdownSearchInput/DropdownSearchInput';\nimport ControlLoaderIcon, { ControlLoaderIconProps } from 'common/icons/ControlLoaderIcon';\nimport isNil from 'lodash/isNil';\nimport UserDropdownOptionLabel from 'common/components/dropdowns/options/UserDropdownOptionLabel/UserDropdownOptionLabel';\nimport { useAsyncFilterOptions } from 'design-system/components/dropdowns/DropdownSearchInput/hooks/use-async-filter-options';\n\ntype OptionT = {\n    fullName?: string;\n    userId?: UserIdT;\n    email?: string;\n};\n\ntype ValueT = OptionT['userId'] | null;\n\nexport type PropsT = {\n    className?: string;\n    companyId: CompanyIdT;\n    initialValue: ValueT;\n    initialLabel: string | null;\n    onSelect: (value: ValueT, label?: string) => void;\n    value: ValueT;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    placeholder: InputPropsT['placeholder'];\n    onBlur: InputPropsT['onBlur'];\n    onFocus: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasChanges?: boolean;\n    hasClearControl?: boolean;\n    renderLeftIcon?: DropdownSearchInputPropsT<OptionT, ValueT>['renderLeftIcon'];\n};\n\nconst PartnerUserSuggest: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        companyId,\n        initialValue,\n        initialLabel,\n        value,\n        onSelect,\n        hasWarning,\n        hasError,\n        overlayPosition,\n        isDisabled,\n        onBlur,\n        onFocus,\n        hasChanges,\n        hasClearControl,\n        placeholder,\n        renderLeftIcon,\n    } = props;\n\n    const initialOption = useMemo((): OptionT | null => {\n        if (!initialValue) {\n            return null;\n        }\n\n        return {\n            fullName: initialLabel || 'Unknown user',\n            userId: initialValue,\n        };\n    }, [initialLabel, initialValue]);\n\n    const initialOptions = useMemo(() => {\n        if (!initialOption) {\n            return null;\n        }\n\n        return [initialOption];\n    }, [initialOption]);\n\n    const requestFactory: AsyncRequestFactoryT<OptionT> = useCallback(\n        (query) => {\n            const isPartner = !checkIsDefaultCompanyId(companyId);\n            if (isPartner) {\n                return brokerTranziitApi.findPartnerUsersByName(companyId, {\n                    userName: query || undefined,\n                });\n            }\n\n            return commonTranziitApi.findCompanyUsersByName(query);\n        },\n        [companyId],\n    );\n\n    const getOptionText = useCallback((option: OptionT) => option.fullName || option.email || '-', []);\n\n    const asyncFilterOptionsRequest = useAsyncFilterOptions<OptionT>({\n        initialOptions,\n        requestFactory,\n        getOptionText,\n        settings: {},\n    });\n\n    const optionByUserId = React.useMemo(() => {\n        return keyBy(asyncFilterOptionsRequest.options, 'userId');\n    }, [asyncFilterOptionsRequest.options]);\n\n    const renderOption = (option?: OptionT, placeholder?: string): React.ReactNode => {\n        if (isNil(option)) {\n            return <UserDropdownOptionLabel label={placeholder || ''} isPlaceholder />;\n        }\n\n        return <UserDropdownOptionLabel label={option?.fullName || ''} />;\n    };\n\n    const handleFocus = useCallback(() => {\n        if (onFocus) {\n            onFocus();\n        }\n\n        asyncFilterOptionsRequest.onRefresh();\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [onFocus, asyncFilterOptionsRequest.onRefresh]);\n\n    return (\n        <DropdownSearchInput<OptionT, ValueT>\n            className={className}\n            selectedValue={value}\n            placeholder={placeholder}\n            options={asyncFilterOptionsRequest.options}\n            isDisabled={isDisabled}\n            onSelect={(value) => {\n                const option = value ? optionByUserId[value] : null;\n                const label = option?.fullName || '';\n\n                onSelect(value, label);\n            }}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            onChangeQuery={asyncFilterOptionsRequest.onChangeQuery}\n            renderLeftIcon={renderLeftIcon}\n            renderRightIcon={() =>\n                asyncFilterOptionsRequest.requestStatus.loading ? (\n                    <ControlLoaderIcon {...ControlLoaderIconProps.getFetchDataProps()} />\n                ) : null\n            }\n            renderOption={renderOption}\n            renderTrigger={renderOption}\n            getOptionValue={(option) => option?.userId}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={handleFocus}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            onReset={\n                hasClearControl\n                    ? () => {\n                          onSelect(null);\n                      }\n                    : undefined\n            }\n        />\n    );\n};\n\nexport default PartnerUserSuggest;\n","export type TimelineTicksParamsT = {\n    minMs: number;\n    maxMs: number;\n    stepMs: number;\n    utcOffsetMs: number;\n};\n\nexport function getTicksTimestamps({ minMs, maxMs, stepMs, utcOffsetMs }: TimelineTicksParamsT): number[] {\n    const ticksMs: number[] = [];\n\n    const shiftedMin = minMs + utcOffsetMs;\n    let t = Math.floor(shiftedMin / stepMs) * stepMs - utcOffsetMs;\n\n    while (t <= maxMs) {\n        ticksMs.push(t);\n        t += stepMs;\n    }\n\n    return ticksMs;\n}\n\nexport function getHalfTicksTimestamps({ minMs, maxMs, stepMs, utcOffsetMs }: TimelineTicksParamsT): number[] {\n    const ticksMs: number[] = [];\n\n    const shiftedMin = minMs + utcOffsetMs;\n    let t = Math.floor(shiftedMin / stepMs) * stepMs + stepMs / 2 - utcOffsetMs;\n\n    while (t <= maxMs) {\n        ticksMs.push(t);\n        t += stepMs;\n    }\n\n    return ticksMs;\n}\n","import React from 'react';\n\nimport { CompanyContactT } from 'common/store/members/models';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectContactById, selectUpdateMemberRequest } from 'common/store/members/selectors';\nimport { logWarning } from 'common/utils/logger';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { fetchContacts } from 'common/store/members/actions';\n\nexport type RestoreUserConfirmationDataT = {\n    partnerId: CompanyIdT;\n    contactId: CompanyContactT['id'];\n};\n\nexport type RestoreUserConfirmationPropsT = {\n    data: RestoreUserConfirmationDataT | null;\n    onClose: () => void;\n    onConfirm: (userId: UserIdT, partnerId: PartnerIdT) => void;\n};\n\nconst TEST_SELECTOR = 'restore-user-confirmation';\n\nconst RestoreUserConfirmation: React.FC<RestoreUserConfirmationPropsT> = React.memo((props) => {\n    const { data, onClose, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    const contactById = useSelector(selectContactById(data?.partnerId || null));\n\n    const dispatch = useDispatch();\n    React.useEffect(() => {\n        if (!data?.partnerId) {\n            logWarning('failed fetchContacts, empty data?.partnerId');\n            return;\n        }\n\n        dispatch(fetchContacts(data.partnerId));\n    }, [dispatch, data?.partnerId]);\n\n    const updateMemberRequestStatus = useSelector(selectUpdateMemberRequest(data?.partnerId || null));\n\n    if (!data || !data?.partnerId || !data?.contactId) {\n        return null;\n    }\n\n    const contact = contactById[data.contactId];\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: updateMemberRequestStatus.loading,\n                            onClick: () => {\n                                onClose();\n                            },\n                        },\n                        {\n                            children: t('common:team-members.dialogs.restore-user.restore'),\n                            theme: ButtonThemeEnum.primary,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            isLoading: updateMemberRequestStatus.loading,\n                            onClick: () => {\n                                if (contact?.userId) {\n                                    onConfirm(contact.userId, data.partnerId);\n                                } else {\n                                    logWarning('empty user id');\n                                }\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.brandAccent} />}\n                    title={t('common:team-members.dialogs.restore-user.title', {\n                        fullName: contact?.fullName,\n                    })}\n                    message={t('common:team-members.dialogs.restore-user.description', {\n                        fullName: contact?.fullName,\n                    })}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default RestoreUserConfirmation;\n","import {\n    ADD_DRIVER_REQUEST_BEGIN,\n    ADD_DRIVER_REQUEST_ERROR,\n    ADD_DRIVER_REQUEST_SUCCESS,\n    CompanyDriversStateT,\n    DELETE_DRIVER_REQUEST_BEGIN,\n    DELETE_DRIVER_REQUEST_ERROR,\n    DELETE_DRIVER_REQUEST_SUCCESS,\n    DriversActionT,\n    DriversStateT,\n    FETCH_DRIVER_DETAILS_REQUEST_BEGIN,\n    FETCH_DRIVER_DETAILS_REQUEST_ERROR,\n    FETCH_DRIVER_DETAILS_REQUEST_SUCCESS,\n    FETCH_DRIVERS_PAGE_REQUEST_BEGIN,\n    FETCH_DRIVERS_PAGE_REQUEST_ERROR,\n    FETCH_DRIVERS_PAGE_REQUEST_SUCCESS,\n    INVITE_DRIVER_REQUEST_BEGIN,\n    INVITE_DRIVER_REQUEST_ERROR,\n    INVITE_DRIVER_REQUEST_SUCCESS,\n    RESET_DRIVERS,\n    UPDATE_DRIVER_REQUEST_BEGIN,\n    UPDATE_DRIVER_REQUEST_ERROR,\n    UPDATE_DRIVER_REQUEST_SUCCESS,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport {\n    pageBeginReducer,\n    pageErrorReducer,\n    pageSuccessReducer,\n    resetPagesCacheReducer,\n} from 'common/utils/pagination/reducers';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nexport const initialCompanyDriversState: CompanyDriversStateT = {\n    pages: [],\n    query: null,\n    total: null,\n    byId: {},\n    inviteRequest: requestStatus.initial,\n    addRequest: requestStatus.initial,\n    deleteRequest: requestStatus.initial,\n    updateRequest: requestStatus.initial,\n    fetchDetailsRequest: requestStatus.initial,\n    detailsById: {},\n};\n\nconst initialState: DriversStateT = {};\n\nexport default (state = initialState, action: DriversActionT | DestroySessionActionT): DriversStateT => {\n    switch (action.type) {\n        case FETCH_DRIVERS_PAGE_REQUEST_BEGIN: {\n            const { pageNumber, query, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyDriversState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    ...pageBeginReducer(companyState, pageNumber, query),\n                },\n            };\n        }\n\n        case FETCH_DRIVERS_PAGE_REQUEST_SUCCESS: {\n            const { query, pageResponse, pageNumber, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyDriversState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    ...pageSuccessReducer(companyState, pageNumber, query, pageResponse),\n                },\n            };\n        }\n        case FETCH_DRIVERS_PAGE_REQUEST_ERROR: {\n            const { error, query, pageNumber, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyDriversState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    ...pageErrorReducer(companyState, pageNumber, query, error),\n                },\n            };\n        }\n\n        case INVITE_DRIVER_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyDriversState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    inviteRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case INVITE_DRIVER_REQUEST_SUCCESS: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyDriversState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    inviteRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case INVITE_DRIVER_REQUEST_ERROR: {\n            const { error, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyDriversState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    inviteRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case ADD_DRIVER_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyDriversState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    addRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case ADD_DRIVER_REQUEST_SUCCESS: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyDriversState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    addRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case ADD_DRIVER_REQUEST_ERROR: {\n            const { error, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyDriversState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    addRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case DELETE_DRIVER_REQUEST_BEGIN: {\n            const { companyId } = action;\n            const companyState = state[companyId] || initialCompanyDriversState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    deleteRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case DELETE_DRIVER_REQUEST_SUCCESS: {\n            const { companyId } = action;\n            const companyState = state[companyId] || initialCompanyDriversState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    deleteRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case DELETE_DRIVER_REQUEST_ERROR: {\n            const { error, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyDriversState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    deleteRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case UPDATE_DRIVER_REQUEST_BEGIN: {\n            const { companyId } = action;\n            const companyState = state[companyId] || initialCompanyDriversState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    updateRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case UPDATE_DRIVER_REQUEST_SUCCESS: {\n            const { companyId } = action;\n            const companyState = state[companyId] || initialCompanyDriversState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    updateRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case UPDATE_DRIVER_REQUEST_ERROR: {\n            const { error, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyDriversState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    updateRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case FETCH_DRIVER_DETAILS_REQUEST_BEGIN: {\n            const { companyId } = action;\n            const companyState = state[companyId] || initialCompanyDriversState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    fetchDetailsRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case FETCH_DRIVER_DETAILS_REQUEST_ERROR: {\n            const { companyId, error } = action;\n            const companyState = state[companyId] || initialCompanyDriversState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    fetchDetailsRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case FETCH_DRIVER_DETAILS_REQUEST_SUCCESS: {\n            const { companyId, driverId, details } = action;\n            const companyState = state[companyId] || initialCompanyDriversState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    detailsById: {\n                        ...companyState.detailsById,\n                        [driverId]: details,\n                    },\n                    fetchDetailsRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        case RESET_DRIVERS: {\n            const { companyId, mutationListOptions } = action;\n            const companyState = state[companyId] || initialCompanyDriversState;\n\n            return {\n                ...initialState,\n                [companyId]: {\n                    ...initialCompanyDriversState,\n                    ...resetPagesCacheReducer(initialCompanyDriversState, companyState, mutationListOptions),\n                },\n            };\n\n            return {\n                ...state,\n                [companyId]: null,\n            };\n        }\n\n        default: {\n            return state;\n        }\n    }\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"textarea\":\"RejectContractConfirmation__textarea___wbTVj\",\"fadeIn\":\"RejectContractConfirmation__fadeIn___kzG7F\",\"blinking\":\"RejectContractConfirmation__blinking___Cs6c0\"};","import mapValues from 'lodash/mapValues';\nimport isArray from 'lodash/isArray';\nimport { ALL_AUTH_PROFILE_TYPES, AuthProfileTypeEnum } from 'common/store/auth/constants';\n\nconst getPermissions = <RolesT, PermissionKeysT extends string>(\n    userRolesSet: Set<RolesT>,\n    config: Record<PermissionKeysT, Array<RolesT | RolesT[]>>,\n    profileType: AuthProfileTypeEnum,\n    profileTypeRestrictConfig: Partial<Record<PermissionKeysT, AuthProfileTypeEnum[]>>,\n): Record<PermissionKeysT, boolean> => {\n    return mapValues(config, (necessaryRoles, key) => {\n        const profileTypeRestriction: AuthProfileTypeEnum[] =\n            profileTypeRestrictConfig[key as PermissionKeysT] || ALL_AUTH_PROFILE_TYPES;\n\n        return (\n            necessaryRoles.some((rule): boolean => {\n                if (isArray(rule)) {\n                    return rule.every((role): boolean => {\n                        return userRolesSet.has(role);\n                    });\n                }\n\n                const role = rule;\n                return userRolesSet.has(role);\n            }) && profileTypeRestriction.includes(profileType)\n        );\n    });\n};\n\nexport { getPermissions };\n","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { BrokerStopChangesSourceEnum, UpdateTourShipmentRequestT, UpdateTourStopContactRequestT } from './types';\n\nexport type BrokerTourEditStateT = {\n    updateById: Record<BrokerTourIdT, RequestStatusT>;\n};\n\nconst initialState: BrokerTourEditStateT = {\n    updateById: {},\n};\n\nexport const brokerTourEditSlice = createSlice({\n    name: 'brokerTourEdit',\n    initialState,\n    reducers: {\n        updateTourShipment: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                brokerTourId: BrokerTourIdT;\n                shipmentId: string;\n                data: UpdateTourShipmentRequestT;\n            }>,\n        ) => {\n            // nothing - handled by saga\n        },\n        updateTourStopContact: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                brokerTourId: BrokerTourIdT;\n                stopId: string;\n                data: UpdateTourStopContactRequestT;\n                source: BrokerStopChangesSourceEnum;\n            }>,\n        ) => {\n            // nothing - handled by saga\n        },\n        updateBrokerTourBegin: (state, action: PayloadAction<{ brokerTourId: BrokerTourIdT }>) => {\n            state.updateById[action.payload.brokerTourId] = requestStatus.loading;\n        },\n        updateBrokerTourSuccess: (state, action: PayloadAction<{ brokerTourId: BrokerTourIdT }>) => {\n            state.updateById[action.payload.brokerTourId] = requestStatus.ok;\n        },\n        updateBrokerTourError: (state, action: PayloadAction<{ brokerTourId: BrokerTourIdT; error: Error }>) => {\n            const { brokerTourId, error } = action.payload;\n            state.updateById[brokerTourId] = requestStatus.setError(error);\n        },\n        resetBrokerTourEdit: () => {\n            return initialState;\n        },\n    },\n    extraReducers: (builder) => {\n        builder.addCase('auth/destroySession', () => {\n            return initialState;\n        });\n    },\n});\n\nexport const {\n    updateTourShipment,\n    updateTourStopContact,\n    updateBrokerTourBegin,\n    updateBrokerTourSuccess,\n    updateBrokerTourError,\n    resetBrokerTourEdit,\n} = brokerTourEditSlice.actions;\n\nexport default brokerTourEditSlice.reducer;\n","import { QueryFiltersT } from '../query-models';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport { OrderTypeEnum } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/FiltersSidebarContent/OrderTypeDropdown/OrderTypeDropdown';\nimport { TransportOrderTypeEnum } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/FiltersSidebarContent/TransportOrderTypeDropdown/TransportOrderTypeDropdown';\n\nconst getInitialValues = (\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    queryFilters: QueryFiltersT,\n): FormValuesT => {\n    const values: FormValuesT = {\n        [FieldsEnum.dropOffAddress]: null,\n        [FieldsEnum.originAddress]: null,\n\n        [FieldsEnum.dispatcherId]: null,\n        [FieldsEnum.dispatcherName]: null,\n\n        [FieldsEnum.keyAccountManagerId]: null,\n        [FieldsEnum.keyAccountManagerName]: null,\n\n        [FieldsEnum.shipperId]: null,\n        [FieldsEnum.shipperName]: null,\n\n        [FieldsEnum.carrierId]: null,\n        [FieldsEnum.carrierName]: null,\n\n        [FieldsEnum.dictTrailerId]: null,\n\n        [FieldsEnum.ordersType]: OrderTypeEnum.all,\n        [FieldsEnum.transportOrdersType]: TransportOrderTypeEnum.all,\n\n        [FieldsEnum.createDates]: null,\n        [FieldsEnum.pickupDates]: null,\n        [FieldsEnum.dropoffDates]: null,\n\n        [FieldsEnum.hasUnpaidOrders]: false,\n    };\n\n    return values;\n};\n\nexport default getInitialValues;\n","import { SharableStateT } from '../models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport const selectCountrySettingsDictRequest = (state: SharableStateT): RequestStatusT =>\n    state.countrySettingsDict.request;\nexport const selectCountrySettingsByCountryCode = (state: SharableStateT) => state.countrySettingsDict.byCountryCode;\n","// extracted by mini-css-extract-plugin\nexport default {\"input-wrap\":\"EditOfferTotalPriceLayout__input-wrap___pO5VY\",\"input\":\"EditOfferTotalPriceLayout__input___yRZJx\",\"details\":\"EditOfferTotalPriceLayout__details___aTP5j\",\"controls\":\"EditOfferTotalPriceLayout__controls___cZXbA\",\"fadeIn\":\"EditOfferTotalPriceLayout__fadeIn___qE1l7\",\"blinking\":\"EditOfferTotalPriceLayout__blinking___CVaRf\"};","import { FieldsEnum, FormValuesT } from './constants';\nimport { QueryFiltersT } from 'common/layouts/DriversPageLayout/query-models';\n\nconst getInitialValues = (\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    queryFilters: QueryFiltersT,\n): FormValuesT => {\n    const values: FormValuesT = {\n        [FieldsEnum.name]: '',\n    };\n\n    return values;\n};\n\nexport default getInitialValues;\n","import * as React from 'react';\nimport { useMemo } from 'react';\nimport DropdownControl, {\n    DropdownControlOptionT,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch } from 'react-redux';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport {\n    ConsistentStateMachineDescriptorT,\n    ApiStopTypeT,\n    ApiTourWaypointActionTypeT,\n    ApiTourWaypointEventRestrictionT,\n} from 'common/store/consistent-state-machine/models';\nimport { useConsistentStateMachine } from 'common/utils/hooks/useConsistentStateMachine';\nimport TimeLeftForStart from 'common/layouts/sidebar-footers/TimeLeftForStart/TimeLeftForStart';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport {\n    toursWaypointsArrived,\n    toursWaypointsLeft,\n    toursWaypointsUndoArrived,\n    toursWaypointsUndoLeft,\n} from 'common/store/consistent-state-machine/slice';\nimport { logWarning } from 'common/utils/logger';\nimport MoreIcon from 'common/icons/MoreIcon';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport RestoreIcon from 'common/icons/RestoreIcon';\nimport { isNonNil } from 'common/utils';\nimport classNames from 'classnames/bind';\n\nimport styles from './ChangeTourStatusFooter.scss';\nimport { ApiBrokerCommonTourDetailsT } from 'common/utils/api/models';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    isShowLoading: boolean;\n    tourId: TourIdT | null;\n    tour: ApiBrokerCommonTourDetailsT | null;\n    onManageShipment: (shipmentId: ShipmentIdT) => void;\n};\n\nconst tourActionI18nMap: Record<ApiStopTypeT, Record<ApiTourWaypointActionTypeT, string>> = {\n    PICKUP_TRAILER: {\n        START_TOUR: 'common:change-tour-status.actions.PICKUP_TRAILER.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.PICKUP_TRAILER.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.PICKUP_TRAILER.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.PICKUP_TRAILER.FINISH_TOUR',\n        TRAILER_HOOKED: 'common:change-tour-status.actions.PICKUP_TRAILER.TRAILER_HOOKED',\n        TRAILER_DROPPED: '',\n    },\n    PICKUP_TRUCK: {\n        START_TOUR: 'common:change-tour-status.actions.PICKUP_TRUCK.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.PICKUP_TRUCK.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.PICKUP_TRUCK.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.PICKUP_TRUCK.FINISH_TOUR',\n        TRAILER_HOOKED: 'common:change-tour-status.actions.PICKUP_TRUCK.TRAILER_HOOKED',\n        TRAILER_DROPPED: '',\n    },\n    PICKUP_ROAD_TRAIN: {\n        START_TOUR: 'common:change-tour-status.actions.PICKUP_ROAD_TRAIN.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.PICKUP_ROAD_TRAIN.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.PICKUP_ROAD_TRAIN.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.PICKUP_ROAD_TRAIN.FINISH_TOUR',\n        TRAILER_HOOKED: 'common:change-tour-status.actions.PICKUP_ROAD_TRAIN.TRAILER_HOOKED',\n        TRAILER_DROPPED: '',\n    },\n    PICKUP_DELIVERY_SHIPMENT: {\n        START_TOUR: 'common:change-tour-status.actions.PICKUP_DELIVERY_SHIPMENT.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.PICKUP_DELIVERY_SHIPMENT.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.PICKUP_DELIVERY_SHIPMENT.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.PICKUP_DELIVERY_SHIPMENT.FINISH_TOUR',\n        TRAILER_HOOKED: '',\n        TRAILER_DROPPED: '',\n    },\n    DRIVE_THROUGH: {\n        START_TOUR: 'common:change-tour-status.actions.DRIVE_THROUGH.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.DRIVE_THROUGH.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.DRIVE_THROUGH.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.DRIVE_THROUGH.FINISH_TOUR',\n        TRAILER_HOOKED: '',\n        TRAILER_DROPPED: '',\n    },\n    DROP_AND_HOOK: {\n        START_TOUR: 'common:change-tour-status.actions.DROP_AND_HOOK.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.DROP_AND_HOOK.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.DROP_AND_HOOK.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.DROP_AND_HOOK.FINISH_TOUR',\n        TRAILER_HOOKED: 'common:change-tour-status.actions.DROP_AND_HOOK.TRAILER_HOOKED',\n        TRAILER_DROPPED: 'common:change-tour-status.actions.DROP_AND_HOOK.TRAILER_DROPPED',\n    },\n    DROP_TRAILER: {\n        START_TOUR: 'common:change-tour-status.actions.DROP_TRAILER.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.DROP_TRAILER.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.DROP_TRAILER.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.DROP_TRAILER.FINISH_TOUR',\n        TRAILER_HOOKED: '',\n        TRAILER_DROPPED: 'common:change-tour-status.actions.DROP_TRAILER.TRAILER_DROPPED',\n    },\n    DROP_TRUCK: {\n        START_TOUR: 'common:change-tour-status.actions.DROP_TRUCK.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.DROP_TRUCK.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.DROP_TRUCK.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.DROP_TRUCK.FINISH_TOUR',\n        TRAILER_HOOKED: '',\n        TRAILER_DROPPED: 'common:change-tour-status.actions.DROP_TRUCK.TRAILER_DROPPED',\n    },\n    DROP_ROAD_TRAIN: {\n        START_TOUR: 'common:change-tour-status.actions.DROP_ROAD_TRAIN.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.DROP_ROAD_TRAIN.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.DROP_ROAD_TRAIN.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.DROP_ROAD_TRAIN.FINISH_TOUR',\n        TRAILER_HOOKED: '',\n        TRAILER_DROPPED: 'common:change-tour-status.actions.DROP_ROAD_TRAIN.TRAILER_DROPPED',\n    },\n    FERRY_ONBOARD: {\n        START_TOUR: 'common:change-tour-status.actions.FERRY_ONBOARD.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.FERRY_ONBOARD.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.FERRY_ONBOARD.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.FERRY_ONBOARD.FINISH_TOUR',\n        TRAILER_HOOKED: '',\n        TRAILER_DROPPED: '',\n    },\n    FERRY_DISEMBARK: {\n        START_TOUR: 'common:change-tour-status.actions.FERRY_DISEMBARK.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.FERRY_DISEMBARK.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.FERRY_DISEMBARK.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.FERRY_DISEMBARK.FINISH_TOUR',\n        TRAILER_HOOKED: '',\n        TRAILER_DROPPED: '',\n    },\n};\n\nconst deadlineGuideI18nMap: Record<ApiStopTypeT, Record<ApiTourWaypointActionTypeT, string>> = {\n    PICKUP_TRAILER: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.PICKUP_TRAILER.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.PICKUP_TRAILER.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.PICKUP_TRAILER.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.PICKUP_TRAILER.FINISH_TOUR',\n        TRAILER_HOOKED: 'common:change-tour-status.deadline-guide.PICKUP_TRAILER.TRAILER_HOOKED',\n        TRAILER_DROPPED: '',\n    },\n    PICKUP_TRUCK: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.PICKUP_TRUCK.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.PICKUP_TRUCK.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.PICKUP_TRUCK.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.PICKUP_TRUCK.FINISH_TOUR',\n        TRAILER_HOOKED: 'common:change-tour-status.deadline-guide.PICKUP_TRUCK.TRAILER_HOOKED',\n        TRAILER_DROPPED: '',\n    },\n    PICKUP_ROAD_TRAIN: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.PICKUP_ROAD_TRAIN.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.PICKUP_ROAD_TRAIN.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.PICKUP_ROAD_TRAIN.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.PICKUP_ROAD_TRAIN.FINISH_TOUR',\n        TRAILER_HOOKED: 'common:change-tour-status.deadline-guide.PICKUP_ROAD_TRAIN.TRAILER_HOOKED',\n        TRAILER_DROPPED: '',\n    },\n    PICKUP_DELIVERY_SHIPMENT: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.PICKUP_DELIVERY_SHIPMENT.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.PICKUP_DELIVERY_SHIPMENT.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.PICKUP_DELIVERY_SHIPMENT.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.PICKUP_DELIVERY_SHIPMENT.FINISH_TOUR',\n        TRAILER_HOOKED: '',\n        TRAILER_DROPPED: '',\n    },\n    DRIVE_THROUGH: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.DRIVE_THROUGH.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.DRIVE_THROUGH.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.DRIVE_THROUGH.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.DRIVE_THROUGH.FINISH_TOUR',\n        TRAILER_HOOKED: '',\n        TRAILER_DROPPED: '',\n    },\n    DROP_AND_HOOK: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.DROP_AND_HOOK.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.DROP_AND_HOOK.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.DROP_AND_HOOK.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.DROP_AND_HOOK.FINISH_TOUR',\n        TRAILER_HOOKED: 'common:change-tour-status.deadline-guide.DROP_AND_HOOK.TRAILER_HOOKED',\n        TRAILER_DROPPED: 'common:change-tour-status.deadline-guide.DROP_AND_HOOK.TRAILER_DROPPED',\n    },\n    DROP_TRAILER: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.DROP_TRAILER.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.DROP_TRAILER.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.DROP_TRAILER.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.DROP_TRAILER.FINISH_TOUR',\n        TRAILER_HOOKED: '',\n        TRAILER_DROPPED: 'common:change-tour-status.deadline-guide.DROP_TRAILER.TRAILER_DROPPED',\n    },\n    DROP_TRUCK: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.DROP_TRUCK.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.DROP_TRUCK.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.DROP_TRUCK.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.DROP_TRUCK.FINISH_TOUR',\n        TRAILER_HOOKED: '',\n        TRAILER_DROPPED: 'common:change-tour-status.deadline-guide.DROP_TRUCK.TRAILER_DROPPED',\n    },\n    DROP_ROAD_TRAIN: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.DROP_ROAD_TRAIN.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.DROP_ROAD_TRAIN.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.DROP_ROAD_TRAIN.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.DROP_ROAD_TRAIN.FINISH_TOUR',\n        TRAILER_HOOKED: '',\n        TRAILER_DROPPED: 'common:change-tour-status.deadline-guide.DROP_ROAD_TRAIN.TRAILER_DROPPED',\n    },\n    FERRY_DISEMBARK: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.FERRY_DISEMBARK.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.FERRY_DISEMBARK.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.FERRY_DISEMBARK.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.FERRY_DISEMBARK.FINISH_TOUR',\n        TRAILER_HOOKED: '',\n        TRAILER_DROPPED: '',\n    },\n    FERRY_ONBOARD: {\n        START_TOUR: 'common:change-tour-status.deadline-guide.FERRY_ONBOARD.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.deadline-guide.FERRY_ONBOARD.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.deadline-guide.FERRY_ONBOARD.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.deadline-guide.FERRY_ONBOARD.FINISH_TOUR',\n        TRAILER_HOOKED: '',\n        TRAILER_DROPPED: '',\n    },\n};\n\nconst tourWaypointEventRestrictionI18nMap: Record<ApiTourWaypointEventRestrictionT, string> = {\n    NOT_FULLY_ASSIGN: 'common:change-tour-status.restrictions.NOT_FULLY_ASSIGN',\n    NOT_RESOLVE_SHIPMENT: 'common:change-tour-status.restrictions.NOT_RESOLVE_SHIPMENT',\n    TRAILER_STILL_USE_PREVIOUS_TOUR: 'common:change-tour-status.restrictions.TRAILER_STILL_USE_PREVIOUS_TOUR',\n};\n\nconst ChangeTourStatusFooter: React.FC<PropsT> = React.memo((props) => {\n    const { className, tourId, tour, isShowLoading, onManageShipment } = props;\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const descriptor = useMemo((): ConsistentStateMachineDescriptorT | null => {\n        if (!tourId) {\n            return null;\n        }\n\n        return {\n            tourId,\n        };\n    }, [tourId]);\n\n    const { updateRequest } = useConsistentStateMachine(descriptor, { isAllowFetch: false });\n\n    const availableSteps = tour?.availableSteps || null;\n\n    const currentWaypointId = availableSteps?.current?.waypointId || null;\n    const currentWaypoint = tour?.waypoints?.find((waypoint) => waypoint.id === currentWaypointId) || null;\n    const currentFirstDoAction =\n        availableSteps?.current?.actions?.find((action) => {\n            return !action?.done;\n        }) || null;\n\n    const currentFirstDoRestriction = availableSteps?.current?.restriction || null;\n\n    const currentNeedManageShipmentEvent =\n        availableSteps?.current?.shipments?.find((event) => {\n            return event?.actions?.some((action) => {\n                return !action?.done;\n            });\n        }) || null;\n\n    const previousWaypointId = availableSteps?.previous?.waypointId || null;\n    const previousWaypoint = tour?.waypoints?.find((waypoint) => waypoint.id === previousWaypointId) || null;\n    const previousFirstDoAction =\n        availableSteps?.previous?.actions?.find((action) => {\n            return action?.done;\n        }) || null;\n\n    const previousFirstDoRestriction = availableSteps?.previous?.restriction || null;\n\n    const deadline =\n        (currentFirstDoAction?.type === 'ARRIVED_AT_WAYPOINT'\n            ? currentWaypoint?.correctedDateTimeFrom || currentWaypoint?.originalDateTimeFrom\n            : currentWaypoint?.correctedDateTimeTo || currentWaypoint?.originalDateTimeTo) || null;\n\n    const options: Array<DropdownControlOptionT | null | undefined> = [\n        previousWaypoint && previousFirstDoAction\n            ? {\n                  label: (\n                      <Tooltip\n                          position={TooltipPositionEnum.topCenter}\n                          theme={TooltipThemeEnum.black}\n                          tooltipNode={\n                              previousFirstDoRestriction ? (\n                                  <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                      {t(tourWaypointEventRestrictionI18nMap[previousFirstDoRestriction])}\n                                  </TooltipContent>\n                              ) : null\n                          }\n                      >\n                          {() => (\n                              <DropdownControlOptionLabel\n                                  isDisabled={!!previousFirstDoRestriction}\n                                  label={\n                                      previousFirstDoRestriction\n                                          ? t('common:change-tour-status.unable-undo', {\n                                                action: t(\n                                                    tourActionI18nMap?.[previousWaypoint.type]?.[\n                                                        previousFirstDoAction.type\n                                                    ],\n                                                    {\n                                                        number: (previousWaypoint.index || 0) + 1,\n                                                    },\n                                                ),\n                                            })\n                                          : t('common:change-tour-status.undo', {\n                                                action: t(\n                                                    tourActionI18nMap?.[previousWaypoint.type]?.[\n                                                        previousFirstDoAction.type\n                                                    ],\n                                                    {\n                                                        number: (previousWaypoint.index || 0) + 1,\n                                                    },\n                                                ),\n                                            })\n                                  }\n                                  icon={<RestoreIcon strokeColor={StyleGuideColorsEnum.tomatoRed} />}\n                              />\n                          )}\n                      </Tooltip>\n                  ),\n                  isDisabled: !!previousFirstDoRestriction,\n                  onSelect: () => {\n                      if (!tourId || !previousWaypointId || !descriptor) {\n                          logWarning('Empty tour id or waypoint id or descriptor');\n                          return;\n                      }\n\n                      if (previousFirstDoAction?.type === 'ARRIVED_AT_WAYPOINT') {\n                          dispatch(\n                              toursWaypointsUndoArrived({\n                                  tourId,\n                                  waypointId: previousWaypointId,\n                                  descriptor,\n                              }),\n                          );\n                      }\n\n                      if (\n                          previousFirstDoAction?.type === 'LEAVE_WAYPOINT' ||\n                          previousFirstDoAction?.type === 'START_TOUR' ||\n                          previousFirstDoAction?.type === 'FINISH_TOUR' ||\n                          previousFirstDoAction?.type === 'TRAILER_DROPPED' ||\n                          previousFirstDoAction?.type === 'TRAILER_HOOKED'\n                      ) {\n                          dispatch(\n                              toursWaypointsUndoLeft({\n                                  tourId,\n                                  waypointId: previousWaypointId,\n                                  descriptor,\n                              }),\n                          );\n                      }\n                  },\n              }\n            : null,\n    ].filter(isNonNil);\n\n    const handleDoManagementShipmentEvent = () => {\n        const shipmentId = currentNeedManageShipmentEvent?.shipmentId || null;\n        if (!shipmentId) {\n            logWarning('Empty shipmentId');\n            return;\n        }\n\n        onManageShipment(shipmentId);\n    };\n\n    const handleDoCurrentFirstDoAction = () => {\n        if (!tourId || !currentWaypointId || !descriptor) {\n            logWarning('Empty tour id or waypoint id or descriptor');\n            return;\n        }\n\n        if (currentFirstDoAction?.type === 'ARRIVED_AT_WAYPOINT') {\n            dispatch(\n                toursWaypointsArrived({\n                    tourId,\n                    waypointId: currentWaypointId,\n                    descriptor,\n                }),\n            );\n        }\n\n        if (\n            currentFirstDoAction?.type === 'LEAVE_WAYPOINT' ||\n            currentFirstDoAction?.type === 'START_TOUR' ||\n            currentFirstDoAction?.type === 'FINISH_TOUR' ||\n            currentFirstDoAction?.type === 'TRAILER_DROPPED' ||\n            currentFirstDoAction?.type === 'TRAILER_HOOKED'\n        ) {\n            dispatch(\n                toursWaypointsLeft({\n                    tourId,\n                    waypointId: currentWaypointId,\n                    descriptor,\n                }),\n            );\n        }\n    };\n\n    const isLoading = updateRequest?.loading;\n\n    const deadlineLabel =\n        currentWaypoint && currentFirstDoAction\n            ? t(deadlineGuideI18nMap?.[currentWaypoint.type]?.[currentFirstDoAction.type], {\n                  number: (currentWaypoint.index || 0) + 1,\n              })\n            : null;\n\n    const alreadyStartedLabel = t('common:change-tour-status.out-of-time', {\n        toAction: deadlineLabel,\n    });\n\n    if (!isShowLoading) {\n        return null;\n    }\n\n    const isShowActionButton = Boolean(currentFirstDoAction || currentNeedManageShipmentEvent);\n\n    if (!isShowActionButton && !options?.length) {\n        return null;\n    }\n\n    return (\n        <TimeLeftForStart\n            deadline={deadline}\n            alreadyStartedLabel={alreadyStartedLabel}\n            deadlineLabel={deadlineLabel}\n            renderActions={(isDisabled) => {\n                return (\n                    <>\n                        {isShowActionButton && (\n                            <Tooltip\n                                position={TooltipPositionEnum.topCenter}\n                                theme={TooltipThemeEnum.black}\n                                className={cx('tooltip')}\n                                tooltipNode={\n                                    currentFirstDoRestriction ? (\n                                        <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                            {t(tourWaypointEventRestrictionI18nMap[currentFirstDoRestriction])}\n                                        </TooltipContent>\n                                    ) : null\n                                }\n                            >\n                                {() => {\n                                    if (currentNeedManageShipmentEvent) {\n                                        return (\n                                            <Button\n                                                className={cx('action', 'action--next')}\n                                                theme={ButtonThemeEnum.secondaryPositive}\n                                                onClick={handleDoManagementShipmentEvent}\n                                                isDisabled={isDisabled}\n                                                isLoading={isLoading}\n                                            >\n                                                {t('common:change-tour-status.manage-shipment')}\n                                            </Button>\n                                        );\n                                    }\n\n                                    if (currentFirstDoAction) {\n                                        return (\n                                            <Button\n                                                className={cx('action', 'action--next')}\n                                                theme={ButtonThemeEnum.secondaryPositive}\n                                                onClick={handleDoCurrentFirstDoAction}\n                                                isDisabled={!!currentFirstDoRestriction || isDisabled}\n                                                isLoading={isLoading}\n                                            >\n                                                {currentWaypoint\n                                                    ? t(\n                                                          tourActionI18nMap?.[currentWaypoint.type]?.[\n                                                              currentFirstDoAction.type\n                                                          ],\n                                                          {\n                                                              number: (currentWaypoint.index || 0) + 1,\n                                                          },\n                                                      )\n                                                    : null}\n                                            </Button>\n                                        );\n                                    }\n\n                                    return null;\n                                }}\n                            </Tooltip>\n                        )}\n                        <DropdownControl\n                            className={className}\n                            options={options}\n                            isDisabled={isLoading}\n                            isShowTriggerForEmptyOptions={isLoading}\n                            renderTrigger={(isActive, onClick) => (\n                                <TransparentTrigger\n                                    isPressed={isActive}\n                                    onClick={onClick}\n                                    leftIcon={<MoreIcon />}\n                                    reflectionTheme={ReflectionThemeEnum.light}\n                                />\n                            )}\n                            overlayPosition={DropdownOverlayPositionEnum.topRight}\n                        />\n                    </>\n                );\n            }}\n        />\n    );\n});\n\nexport default ChangeTourStatusFooter;\n","import React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './ContractDetailsForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport Input from 'common/components/Input/Input';\nimport getInitialValues from './get-initial-values';\nimport NumberInput from 'common/components/NumberInput/NumberInput';\nimport { UnitTypeEnum } from 'common/constants';\nimport isEmpty from 'lodash/isEmpty';\nimport { useDispatch, useSelector } from 'react-redux';\nimport prepareChanges from './prepare-changes';\nimport HiddenSubmitButtonForKeyboardEnter from 'common/components/HiddenEnterSubmitButton/HiddenSubmitButtonForKeyboardEnter';\nimport { logWarning } from 'common/utils/logger';\nimport DatePicker, {\n    DatePickerOverlayPositionEnum,\n    datePicketRangePresets,\n} from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport values from 'lodash/values';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport { PartnerContractDetailsT } from 'common/store/carrier-contract-details/models';\nimport { approveCarrierContract, updateCarrierContract } from 'common/store/carrier-contracts/actions';\nimport { selectUpdateCarrierContractRequest } from 'common/store/carrier-contracts/selectors';\nimport SideBarLoader from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLoader/SideBarLoader';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport { useWatchFormAnyErrors } from 'common/utils/hooks/useWatchFormFormHasErrors';\nimport ApproveContractConfirmation, {\n    ConfirmApproveContractModalDataT,\n} from 'common/layouts/BaseCarrierContractsLayout/dialogs/ApproveContractConfirmation/ApproveContractConfirmation';\nimport { selectCarrierContractStateById } from 'common/store/carrier-contract-details/selectors';\nimport TruckRateModeDropdown from 'common/components/dropdowns/TruckRateModeDropdown/TruckRateModeDropdown';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { TooltipPositionEnum } from 'design-system/components/Tooltip/Tooltip';\nimport Divider from 'design-system/components/Divider/Divider';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    isReview: boolean;\n    contractDetails: PartnerContractDetailsT | null;\n    setNeedCloseConfirmation: (needCloseConfirmation: boolean) => void;\n    partnerId: PartnerIdT | null;\n};\n\nconst ALL_FIELDS = values(FieldsEnum);\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(ALL_FIELDS);\n\nconst ContractDetailsForm: React.FC<PropsT> = (props) => {\n    const { isReview, contractDetails, setNeedCloseConfirmation, partnerId } = props;\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const confirmApproveContractModalDialog = useModalDialog<ConfirmApproveContractModalDataT>();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues(contractDetails);\n        const errors = validateForm(t, values);\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [contractDetails]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const contractId = contractDetails?.id || null;\n            if (!contractId) {\n                logWarning('empty contractId');\n                return;\n            }\n\n            const contractChanges = prepareChanges(contractId, values);\n            if (!contractChanges) {\n                logWarning('empty contractChanges');\n                return;\n            }\n\n            if (isReview) {\n                confirmApproveContractModalDialog.setData({\n                    contractId,\n                    contractChanges,\n                });\n            } else {\n                if (!partnerId) {\n                    logWarning('Empty partnerId in ContractDetailsForm onSubmit');\n                    return;\n                }\n                dispatch(\n                    updateCarrierContract({\n                        partnerId,\n                        contractId,\n                        contractChanges,\n                    }),\n                );\n            }\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormCallbacks) {\n            remoteFormActionsContext.setRemoteFormCallbacks({\n                submit: formik.submitForm,\n                reset: formik.resetForm,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.submitForm, formik.resetForm]);\n\n    const hasFormAnyErrors = useWatchFormAnyErrors(formik.errors);\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormState) {\n            remoteFormActionsContext.setRemoteFormState({\n                hasChanges: hasAnyFieldValueChanges,\n                hasErrors: hasFormAnyErrors,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasFormAnyErrors, hasAnyFieldValueChanges]);\n\n    React.useEffect(() => {\n        return () => {\n            setNeedCloseConfirmation(false);\n        };\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    React.useEffect(() => {\n        if (hasAnyFieldValueChanges) {\n            setNeedCloseConfirmation(hasAnyFieldValueChanges);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasAnyFieldValueChanges]);\n\n    const updateCarrierContractRequest = useSelector(selectUpdateCarrierContractRequest(partnerId));\n\n    const isLoading = updateCarrierContractRequest.loading;\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormRequest) {\n            remoteFormActionsContext.setRemoteFormRequest({\n                isLoading,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isLoading]);\n\n    const handleConfirmApproveContract = (data: ConfirmApproveContractModalDataT) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleConfirmApproveContract');\n            return;\n        }\n        dispatch(\n            approveCarrierContract({\n                partnerId,\n                contractId: data.contractId,\n                contractChanges: data.contractChanges,\n            }),\n        );\n    };\n\n    const { fetchRequest: fetchContractDetailsRequest } = useSelector(\n        selectCarrierContractStateById(contractDetails?.id),\n    );\n\n    if (isEmpty(contractDetails) && fetchContractDetailsRequest.loading) {\n        return <SideBarLoader isRelative />;\n    }\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('wrap')}>\n            <FormikField\n                className={cx('field', 'field--date')}\n                name={FieldsEnum.expiration}\n                error={formik.errors[FieldsEnum.expiration]}\n                meta={formik.getFieldMeta(FieldsEnum.expiration)}\n                label={t('common:carrier-contracts.details.fields.expiration.label')}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n            >\n                {(props) => (\n                    <DatePicker\n                        {...datePicketRangePresets.documentValidTill}\n                        hasYearMonthForm\n                        value={formik.values[FieldsEnum.expiration]}\n                        placeholder={t('common:carrier-contracts.details.fields.expiration.placeholder')}\n                        onChange={props.onChange}\n                        hasWarning={props.hasWarning}\n                        hasError={props.hasError}\n                        overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                        hasClearControl\n                    />\n                )}\n            </FormikField>\n            <Divider className={cx('divider')} />\n            <FormikField\n                className={cx('field', 'field--name')}\n                name={FieldsEnum.name}\n                error={formik.errors[FieldsEnum.name]}\n                meta={formik.getFieldMeta(FieldsEnum.name)}\n                label={t('common:carrier-contracts.details.fields.name.label')}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n            >\n                {(props) => (\n                    <Input\n                        name={FieldsEnum.name}\n                        value={formik.values[FieldsEnum.name]}\n                        placeholder={t('common:carrier-contracts.details.fields.name.placeholder')}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                    />\n                )}\n            </FormikField>\n            <FormikField\n                className={cx('field', 'field--number')}\n                name={FieldsEnum.number}\n                error={formik.errors[FieldsEnum.number]}\n                meta={formik.getFieldMeta(FieldsEnum.number)}\n                label={t('common:carrier-contracts.details.fields.number.label')}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n            >\n                {(props) => (\n                    <Input\n                        name={FieldsEnum.number}\n                        value={formik.values[FieldsEnum.number]}\n                        placeholder={t('common:carrier-contracts.details.fields.number.placeholder')}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                    />\n                )}\n            </FormikField>\n            <FormikField\n                className={cx('field', 'field--rate-mode')}\n                name={FieldsEnum.truckRateMode}\n                error={formik.errors[FieldsEnum.truckRateMode]}\n                meta={formik.getFieldMeta(FieldsEnum.truckRateMode)}\n                label={t('common:carrier-contracts.details.fields.truck-rate-mode.label')}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n                tooltipNode={\n                    <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                        {t('common:carrier-contracts.details.fields.truck-rate-mode.tooltip')}\n                    </TooltipContent>\n                }\n                tooltipPosition={TooltipPositionEnum.centerRight}\n            >\n                {(props) => (\n                    <TruckRateModeDropdown\n                        value={formik.values[FieldsEnum.truckRateMode]}\n                        onChange={props.onChange}\n                        hasWarning={props.hasWarning}\n                        hasError={props.hasError}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                    />\n                )}\n            </FormikField>\n            <FormikField\n                className={cx('field', 'field--rate')}\n                name={FieldsEnum.truckRate}\n                error={formik.errors[FieldsEnum.truckRate]}\n                meta={formik.getFieldMeta(FieldsEnum.truckRate)}\n                label={t('common:carrier-contracts.details.fields.truck-rate.label')}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n            >\n                {(props) => (\n                    <NumberInput\n                        name={FieldsEnum.truckRate}\n                        unitType={UnitTypeEnum.euroAbbreviation}\n                        value={formik.values[FieldsEnum.truckRate]}\n                        placeholder={t('common:carrier-contracts.details.fields.truck-rate.placeholder')}\n                        step={1}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                    />\n                )}\n            </FormikField>\n            <FormikField\n                className={cx('field', 'field--rate')}\n                name={FieldsEnum.tiltRate}\n                error={formik.errors[FieldsEnum.tiltRate]}\n                meta={formik.getFieldMeta(FieldsEnum.tiltRate)}\n                label={t('common:carrier-contracts.details.fields.tilt-rate.label')}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n            >\n                {(props) => (\n                    <NumberInput\n                        name={FieldsEnum.tiltRate}\n                        unitType={UnitTypeEnum.euroAbbreviation}\n                        value={formik.values[FieldsEnum.tiltRate]}\n                        placeholder={t('common:carrier-contracts.details.fields.tilt-rate.placeholder')}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                        step={1}\n                    />\n                )}\n            </FormikField>\n            <FormikField\n                className={cx('field', 'field--rate')}\n                name={FieldsEnum.boxRate}\n                error={formik.errors[FieldsEnum.boxRate]}\n                meta={formik.getFieldMeta(FieldsEnum.boxRate)}\n                label={t('common:carrier-contracts.details.fields.box-rate.label')}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n            >\n                {(props) => (\n                    <NumberInput\n                        name={FieldsEnum.boxRate}\n                        unitType={UnitTypeEnum.euroAbbreviation}\n                        value={formik.values[FieldsEnum.boxRate]}\n                        placeholder={t('common:carrier-contracts.details.fields.box-rate.placeholder')}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                        step={1}\n                    />\n                )}\n            </FormikField>\n            <FormikField\n                className={cx('field', 'field--truck-expected-mileage')}\n                name={FieldsEnum.truckExpectedMileage}\n                error={formik.errors[FieldsEnum.truckExpectedMileage]}\n                meta={formik.getFieldMeta(FieldsEnum.truckExpectedMileage)}\n                label={t('common:carrier-contracts.details.fields.truck-expected-mileage.label')}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n            >\n                {(props) => (\n                    <NumberInput\n                        name={FieldsEnum.truckExpectedMileage}\n                        unitType={UnitTypeEnum.kilometersAbbreviation}\n                        value={formik.values[FieldsEnum.truckExpectedMileage]}\n                        placeholder={t('common:carrier-contracts.details.fields.truck-expected-mileage.placeholder')}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                        step={1}\n                    />\n                )}\n            </FormikField>\n            <FormikField\n                className={cx('field', 'field--box-expected-mileage')}\n                name={FieldsEnum.boxExpectedMileage}\n                error={formik.errors[FieldsEnum.boxExpectedMileage]}\n                meta={formik.getFieldMeta(FieldsEnum.boxExpectedMileage)}\n                label={t('common:carrier-contracts.details.fields.box-expected-mileage.label')}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n            >\n                {(props) => (\n                    <NumberInput\n                        name={FieldsEnum.boxExpectedMileage}\n                        unitType={UnitTypeEnum.kilometersAbbreviation}\n                        value={formik.values[FieldsEnum.boxExpectedMileage]}\n                        placeholder={t('common:carrier-contracts.details.fields.box-expected-mileage.placeholder')}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                        step={1}\n                    />\n                )}\n            </FormikField>\n            <FormikField\n                className={cx('field', 'field--tilt-expected-mileage')}\n                name={FieldsEnum.tiltExpectedMileage}\n                error={formik.errors[FieldsEnum.tiltExpectedMileage]}\n                meta={formik.getFieldMeta(FieldsEnum.tiltExpectedMileage)}\n                label={t('common:carrier-contracts.details.fields.tilt-expected-mileage.label')}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n            >\n                {(props) => (\n                    <NumberInput\n                        name={FieldsEnum.tiltExpectedMileage}\n                        unitType={UnitTypeEnum.kilometersAbbreviation}\n                        value={formik.values[FieldsEnum.tiltExpectedMileage]}\n                        placeholder={t('common:carrier-contracts.details.fields.tilt-expected-mileage.placeholder')}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                        step={1}\n                    />\n                )}\n            </FormikField>\n            <HiddenSubmitButtonForKeyboardEnter />\n            <ApproveContractConfirmation\n                name={formik.values[FieldsEnum.name]}\n                data={confirmApproveContractModalDialog.data}\n                onCancel={confirmApproveContractModalDialog.onCancel}\n                onClose={confirmApproveContractModalDialog.onClose}\n                onConfirm={handleConfirmApproveContract}\n                isLoading={isLoading}\n            />\n        </form>\n    );\n};\n\nexport default ContractDetailsForm;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport type DeclineOrderConfirmationDataT = {};\n\ntype PropsT = {\n    requestStatus: RequestStatusT | null;\n    data: DeclineOrderConfirmationDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onConfirm: (data: DeclineOrderConfirmationDataT) => void;\n};\n\nconst TEST_SELECTOR = 'decline-order-confirmation';\n\nconst DeclineOrderConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { requestStatus, data, onClose, onCancel, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: requestStatus?.loading,\n                            onClick: onCancel,\n                        },\n                        {\n                            children: t('common:error-modal.actions.decline'),\n                            theme: ButtonThemeEnum.danger,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            isDisabled: requestStatus?.loading,\n                            isLoading: requestStatus?.loading,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                    title={t('common:transport-order-details.decline-confirm.title')}\n                    message={t('common:transport-order-details.decline-confirm.description')}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default DeclineOrderConfirmation;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { SystemSettingsT } from 'broker-admin/store/price-settings/system-settings/models';\n\nconst getInitialValues = (systemSettings: SystemSettingsT | null | undefined): FormValuesT => {\n    return {\n        [FieldsEnum.spotRequestLimit]: systemSettings?.SPOT_REQUEST_LIMIT || '',\n        [FieldsEnum.expiresSoonAlert]: systemSettings?.EXPIRES_SOON || '',\n    };\n};\n\nexport default getInitialValues;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"PreviewMessage__inner___hVahN\",\"icon\":\"PreviewMessage__icon___ZOUUG\",\"title\":\"PreviewMessage__title___nzkWM\",\"description\":\"PreviewMessage__description___DRYZ2\",\"fadeIn\":\"PreviewMessage__fadeIn___PybFE\",\"blinking\":\"PreviewMessage__blinking___O9_Lc\"};","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport { RoutingGeometrySliceT, RoutingGeometryStateT } from './types';\nimport requestStatus from 'common/utils/request-status';\n\nexport const initialRoutingGeometryState: RoutingGeometrySliceT = {\n    data: [],\n    requestStatus: requestStatus.initial,\n};\n\nconst initialState: RoutingGeometryStateT = {};\n\nexport const routingGeometrySlice = createSlice({\n    name: 'routingGeometry',\n    initialState,\n    reducers: {\n        fetchRoutesPlainGeometry: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                polylineIds: Array<PolylineIdT | null>;\n                options?: FetchOptionsT;\n            }>,\n        ) => {\n            // nothing\n        },\n        fetchRoutePlainGeometry: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                polylineId: PolylineIdT;\n                options?: FetchOptionsT;\n            }>,\n        ) => {\n            // nothing\n        },\n        fetchRouteGeometryBegin: (\n            state,\n            action: PayloadAction<{\n                polylineId: PolylineIdT;\n            }>,\n        ) => {\n            const { polylineId } = action.payload;\n            const routingGeometryState = state[polylineId] || initialRoutingGeometryState;\n\n            state[polylineId] = {\n                ...routingGeometryState,\n                requestStatus: requestStatus.loading,\n            };\n        },\n        fetchRouteGeometrySuccess: (\n            state,\n            action: PayloadAction<{\n                polylineId: PolylineIdT;\n                data: Array<GooglePolylineT>;\n            }>,\n        ) => {\n            const { polylineId, data } = action.payload;\n            const routingGeometryState = state[polylineId] || initialRoutingGeometryState;\n\n            state[polylineId] = {\n                ...routingGeometryState,\n                requestStatus: requestStatus.ok,\n                data,\n            };\n        },\n        fetchRouteGeometryError: (\n            state,\n            action: PayloadAction<{\n                polylineId: PolylineIdT;\n                error: Error;\n            }>,\n        ) => {\n            const { polylineId, error } = action.payload;\n            const routingGeometryState = state[polylineId] || initialRoutingGeometryState;\n\n            state[polylineId] = {\n                ...routingGeometryState,\n                requestStatus: requestStatus.setError(error),\n            };\n        },\n        resetRouteGeometry: (\n            state,\n            action: PayloadAction<{\n                polylineIds: Array<PolylineIdT | null>;\n            }>,\n        ) => {\n            const { polylineIds } = action.payload;\n\n            polylineIds.forEach((polylineId) => {\n                if (polylineId) {\n                    delete state[polylineId];\n                }\n            });\n        },\n    },\n});\n\nexport const {\n    fetchRoutesPlainGeometry,\n    fetchRoutePlainGeometry,\n    fetchRouteGeometryBegin,\n    fetchRouteGeometrySuccess,\n    fetchRouteGeometryError,\n    resetRouteGeometry,\n} = routingGeometrySlice.actions;\n\nexport default routingGeometrySlice.reducer;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ControlsCell.scss';\nimport DropdownControl, {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport MoreIcon from 'common/icons/MoreIcon';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport DeleteIcon from 'common/icons/DeleteIcon';\nimport { useTranslation } from 'react-i18next';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport DoneIcon from 'common/icons/DoneIcon';\nimport CloseIcon from 'common/icons/CloseIcon';\n\nexport type ActionsPropsT = {\n    onActiveRule: (ruleId: RuleIdT) => void;\n    onDeactiveRule: (ruleId: RuleIdT) => void;\n    onDeleteRule: (ruleId: RuleIdT) => void;\n};\n\ntype PropsT = {\n    className?: string;\n    id: RuleIdT | null | undefined;\n    isActive: boolean;\n} & ActionsPropsT;\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\nconst ControlsCell: React.FC<PropsT> = React.memo((props) => {\n    const { className, onActiveRule, onDeactiveRule, onDeleteRule, id, isActive } = props;\n\n    const { t } = useTranslation();\n\n    const activateOption: DropdownControlOptionT = {\n        label: (\n            <DropdownControlOptionLabel\n                icon={<DoneIcon fillColor={StyleGuideColorsEnum.brandAccent} size={DEFAULT_ICON_SIZE} />}\n                label={t('price-settings.rules.actions.activate')}\n            />\n        ),\n        testSelector: 'activate',\n        onSelect: () => {\n            if (!id) {\n                return;\n            }\n            onActiveRule(id);\n        },\n    };\n\n    const deactivateOption: DropdownControlOptionT = {\n        label: (\n            <DropdownControlOptionLabel\n                icon={<CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                label={t('price-settings.rules.actions.deactivate')}\n            />\n        ),\n        testSelector: 'deactivate',\n        onSelect: () => {\n            if (!id) {\n                return;\n            }\n            onDeactiveRule(id);\n        },\n    };\n\n    const deleteOption: DropdownControlOptionT = {\n        label: (\n            <DropdownControlOptionLabel\n                icon={<DeleteIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                label={t('price-settings.rules.actions.delete')}\n            />\n        ),\n        testSelector: 'delete',\n        onSelect: () => {\n            if (!id) {\n                return;\n            }\n            onDeleteRule(id);\n        },\n    };\n\n    const options: Array<DropdownControlOptionT | SpecialOptionEnum> = [];\n\n    if (isActive) {\n        options.push(deactivateOption);\n        options.push(SpecialOptionEnum.separator);\n    } else {\n        options.push(activateOption);\n        options.push(SpecialOptionEnum.separator);\n    }\n\n    options.push(deleteOption);\n\n    const fullTestSelector = 'rule-row-controls';\n\n    return (\n        <DropdownControl\n            className={className}\n            options={options}\n            renderTrigger={(isActive, onClick) => (\n                <TransparentTrigger\n                    isPressed={isActive}\n                    onClick={onClick}\n                    leftIcon={<MoreIcon />}\n                    reflectionTheme={ReflectionThemeEnum.light}\n                    testSelector={`${fullTestSelector}-trigger`}\n                />\n            )}\n            testSelector={fullTestSelector}\n            overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n        />\n    );\n});\n\nexport default ControlsCell;\n","import Decimal from 'decimal.js-light';\n\nexport const safeArithmeticOperations = {\n    plus: (a: number, b: number): number => {\n        const bigA = new Decimal(a);\n\n        return bigA.plus(b).toNumber();\n    },\n    minus: (a: number, b: number): number => {\n        const bigA = new Decimal(a);\n\n        return bigA.minus(b).toNumber();\n    },\n};\n","const getScrollbarWidth = (element: HTMLHeadingElement | null | undefined): number => {\n    if (!element) {\n        return 0;\n    }\n\n    return element.offsetWidth - element.clientWidth;\n};\n\nexport default getScrollbarWidth;\n","import React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport { ApiContactFormalEnum, ApiContactFormalT } from 'common/utils/api/models';\n\nimport styles from './UserFormalDropdown.scss';\nimport { useTranslation } from 'react-i18next';\n\ntype FormalOptionT = {\n    label: string;\n    value: ApiContactFormalT;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype ValueT = ApiContactFormalT | null;\n\ntype PropsT = {\n    placeholder?: string;\n    value: ValueT;\n    isDisabled?: boolean;\n    onChange: (value: ValueT) => void;\n    hasWarning: boolean;\n    hasError: boolean;\n    hasChanges?: boolean;\n    onBlur: () => void;\n    onFocus: () => void;\n};\n\nexport const FORMAL_T_MAP: Record<ApiContactFormalT, string> = {\n    [ApiContactFormalEnum.mr]: 'common:formal.mr',\n    [ApiContactFormalEnum.mrs]: 'common:formal.ms',\n    [ApiContactFormalEnum.dr]: 'common:formal.dr',\n    [ApiContactFormalEnum.mag]: 'common:formal.mag',\n    [ApiContactFormalEnum.prof]: 'common:formal.prof',\n};\n\nconst AVAILABLE_FORMALS = [\n    ApiContactFormalEnum.mr,\n    ApiContactFormalEnum.mrs,\n    ApiContactFormalEnum.dr,\n    ApiContactFormalEnum.mag,\n    ApiContactFormalEnum.prof,\n];\n\nconst UserFormalDropdown: React.FC<PropsT> = React.memo((props) => {\n    const { value, placeholder, onChange, isDisabled, hasWarning, hasError, hasChanges, onBlur, onFocus } = props;\n\n    const { t } = useTranslation();\n\n    const options: Array<FormalOptionT> = AVAILABLE_FORMALS.map((formal) => ({\n        label: t(FORMAL_T_MAP[formal]),\n        value: formal,\n    }));\n\n    const renderOption = (option: FormalOptionT | null | undefined): React.ReactElement | null => {\n        if (!option) {\n            return null;\n        }\n\n        return <span>{option?.label}</span>;\n    };\n\n    const handleSelect = (value: ValueT): void => {\n        onChange(value);\n    };\n\n    const getOptionValue = (option: FormalOptionT) => option?.value;\n\n    return (\n        <DropdownInput<FormalOptionT, ValueT>\n            selectedValue={value}\n            placeholder={placeholder}\n            options={options}\n            onSelect={handleSelect}\n            isDisabled={isDisabled}\n            renderOption={renderOption}\n            getOptionValue={getOptionValue}\n            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n            hasWarning={hasWarning}\n            hasError={hasError}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n        />\n    );\n});\n\nexport default UserFormalDropdown;\n","import { RequestStatusT } from 'common/utils/request-status';\nimport { CompanyChangesT, CompanyT } from './models';\n\nexport const FETCH_COMPANY_REQUEST = 'common/company/FETCH_COMPANY_REQUEST';\nexport const FETCH_COMPANY_REQUEST_BEGIN = 'common/company/FETCH_COMPANY_REQUEST_BEGIN';\nexport const FETCH_COMPANY_REQUEST_ERROR = 'common/company/FETCH_COMPANY_REQUEST_ERROR';\nexport const FETCH_COMPANY_REQUEST_SUCCESS = 'common/company/FETCH_COMPANY_REQUEST_SUCCESS';\n\nexport const UPDATE_COMPANY_REQUEST = 'common/company/UPDATE_COMPANY_REQUEST';\nexport const UPDATE_COMPANY_REQUEST_BEGIN = 'common/company/UPDATE_COMPANY_REQUEST_BEGIN';\nexport const UPDATE_COMPANY_REQUEST_ERROR = 'common/company/UPDATE_COMPANY_REQUEST_ERROR';\nexport const UPDATE_COMPANY_REQUEST_SUCCESS = 'common/company/UPDATE_COMPANY_REQUEST_SUCCESS';\n\nexport type CompanyStateT = {\n    currentCompanyRequest: RequestStatusT;\n    updateCompanyRequest: RequestStatusT;\n    currentCompany: CompanyT | null;\n};\n\nexport type FetchCompanyActionT = {\n    type: typeof FETCH_COMPANY_REQUEST;\n    options?: FetchOptionsT;\n};\n\nexport type FetchCompanyBeginActionT = {\n    type: typeof FETCH_COMPANY_REQUEST_BEGIN;\n};\n\nexport type FetchCompanySuccessActionT = {\n    type: typeof FETCH_COMPANY_REQUEST_SUCCESS;\n    currentCompany: CompanyT | null;\n};\n\nexport type FetchCompanyErrorActionT = {\n    type: typeof FETCH_COMPANY_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type UpdateCompanyActionT = {\n    type: typeof UPDATE_COMPANY_REQUEST;\n    companyChanges: CompanyChangesT;\n    company: CompanyT;\n};\n\nexport type UpdateCompanyBeginActionT = {\n    type: typeof UPDATE_COMPANY_REQUEST_BEGIN;\n};\n\nexport type UpdateCompanySuccessActionT = {\n    type: typeof UPDATE_COMPANY_REQUEST_SUCCESS;\n    companyChanges: CompanyChangesT | null;\n};\n\nexport type UpdateCompanyErrorActionT = {\n    type: typeof UPDATE_COMPANY_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type CompanyActionT =\n    | FetchCompanyActionT\n    | FetchCompanyBeginActionT\n    | FetchCompanySuccessActionT\n    | FetchCompanyErrorActionT\n    | UpdateCompanyActionT\n    | UpdateCompanyBeginActionT\n    | UpdateCompanySuccessActionT\n    | UpdateCompanyErrorActionT;\n","import * as React from 'react';\n\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport useCommonUrlFactoryContext from 'common/utils/hooks/useCommonUrlFactoryContext';\n\ntype PropsT = {\n    assetId?: string;\n    assetModel?: string;\n    assetPlateNumber?: string;\n    assetType: 'truck' | 'trailer';\n    carrierId?: string;\n};\n\nconst formatAssetDetails = (plateNumber?: string, model?: string): string =>\n    [plateNumber, model].filter(Boolean).join(' / ');\n\nconst AssetLink: React.FC<PropsT> = React.memo((props) => {\n    const { assetId, assetModel, assetPlateNumber, assetType, carrierId } = props;\n    const commonUrlFactory = useCommonUrlFactoryContext();\n    const assetDetails = formatAssetDetails(assetPlateNumber, assetModel);\n\n    if (!assetId || !assetDetails || !carrierId) {\n        return <>{assetDetails}</>;\n    }\n\n    const to = commonUrlFactory[`${assetType}Details`](carrierId, assetId);\n\n    return (\n        <Link theme={LinkThemeEnum.boldBrandDark} to={to}>\n            {assetDetails}\n        </Link>\n    );\n});\n\nexport default AssetLink;\n","import {\n    FETCH_RFQS_STATS_REQUEST,\n    FETCH_RFQS_STATS_REQUEST_BEGIN,\n    FETCH_RFQS_STATS_REQUEST_ERROR,\n    FETCH_RFQS_STATS_REQUEST_SUCCESS,\n    FetchRFQsStatsActionT,\n    FetchRFQsStatsBeginActionT,\n    FetchRFQsStatsErrorActionT,\n    FetchRFQsStatsSuccessActionT,\n} from './types';\nimport { RFQsStatsT } from './models';\n\nexport const fetchRFQsStats = (companyId: CompanyIdT, options?: FetchOptionsT): FetchRFQsStatsActionT => ({\n    type: FETCH_RFQS_STATS_REQUEST,\n    companyId,\n    options,\n});\n\nexport const fetchRFQsStatsBegin = (): FetchRFQsStatsBeginActionT => ({\n    type: FETCH_RFQS_STATS_REQUEST_BEGIN,\n});\n\nexport const fetchRFQsStatsSuccess = (statistics: RFQsStatsT | null): FetchRFQsStatsSuccessActionT => ({\n    type: FETCH_RFQS_STATS_REQUEST_SUCCESS,\n    statistics,\n});\n\nexport const fetchRFQsStatsError = (error: Error): FetchRFQsStatsErrorActionT => ({\n    type: FETCH_RFQS_STATS_REQUEST_ERROR,\n    error,\n});\n","import React, { useMemo } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './EditTimeWindowsForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { FieldsEnum, FormValuesT, WaypointsFieldEnum } from './constants';\nimport validateForm from './validate-form';\nimport { FormikContext, useFormik } from 'formik';\nimport TimeWindowPicker from 'common/components/forms/TimeWindowPicker/TimeWindowPicker';\nimport TimeIntervalDurationPillLabel from 'common/layouts/NewOrderPage/ShipmentDetailsForm/TimeIntervalDurationPillLabel/TimeIntervalDurationPillLabel';\nimport moment from 'moment';\nimport { clearDateTimezone } from 'common/utils/time';\nimport { RangeSelectorZoneThemeEnum } from 'common/components/RangeSelector/constants';\nimport { updateDockingHours } from '../../../../store/broker-order-edit/actions';\nimport { selectBrokerOrderEditUpdateRequestStatus } from '../../../../store/broker-order-edit/selectors';\nimport { prepareQuery } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/EditTimeWindowsForm/prepare-query';\nimport { logWarning } from 'common/utils/logger';\nimport { BrokerOrderDetailsT } from 'broker-admin/store/broker-order-details/models';\nimport { ALL_DAY_RANGE, StyleGuideColorsEnum } from 'common/constants';\nimport { RangeSelectorRangeT } from 'common/components/RangeSelector/RangeSelector';\nimport FormikConnectContextField from 'common/components/forms/FormikConnectContextField/FormikConnectContextField';\nimport isEmpty from 'lodash/isEmpty';\nimport NumberIcon from 'common/icons/NumberIcon';\nimport { findTourById } from 'broker-admin/store/broker-order-details/utils/find-tour-by-id';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    brokerOrderId: BrokerOrderIdT | null;\n    brokerOrderDetails: BrokerOrderDetailsT;\n    tourId: TourIdT | null;\n    onCancel: () => void;\n};\n\nconst INITIAL_VALUES: FormValuesT = {\n    [FieldsEnum.waypoints]: [],\n};\n\n// TODO move to utils\nconst formatTimeInterval = (\n    fromDate: string | null | undefined,\n    toDate: string | null | undefined,\n): [number, number] => {\n    let [timeIntervalFrom, timeIntervalTo] = ALL_DAY_RANGE;\n\n    const targetDateFrom = moment(clearDateTimezone(fromDate));\n    timeIntervalFrom = targetDateFrom.valueOf() - targetDateFrom.clone().startOf('day').valueOf();\n\n    const targetDateTo = moment(clearDateTimezone(toDate));\n\n    if (!targetDateFrom.isSame(targetDateTo, 'day')) {\n        return [timeIntervalFrom, ALL_DAY_RANGE[1]];\n    }\n\n    timeIntervalTo = targetDateTo.valueOf() - targetDateTo.clone().startOf('day').valueOf();\n\n    return [timeIntervalFrom, timeIntervalTo];\n};\n\nconst EditTimeWindowsForm: React.FC<PropsT> = (props) => {\n    const { onCancel, brokerOrderId, brokerOrderDetails, tourId } = props;\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const requestStatus = useSelector(selectBrokerOrderEditUpdateRequestStatus(brokerOrderId));\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const needAppointmentWaypoints = useMemo(() => {\n        const tour = findTourById(brokerOrderDetails, tourId);\n        const waypoints = tour?.waypoints || [];\n\n        return waypoints.filter((payloadWaypoint) => {\n            return payloadWaypoint?.appointmentByBroker;\n        });\n    }, [brokerOrderDetails, tourId]);\n\n    const timeIntervals = React.useMemo(() => {\n        return needAppointmentWaypoints.map((waypoint) => {\n            return formatTimeInterval(\n                waypoint.correctedDateTimeFrom || waypoint?.originalDateTimeFrom,\n                waypoint.correctedDateTimeTo || waypoint?.originalDateTimeTo,\n            );\n        });\n    }, [needAppointmentWaypoints]);\n\n    const ranges = React.useMemo(() => {\n        return timeIntervals.map((timeInterval): Array<RangeSelectorRangeT> => {\n            return [\n                {\n                    id: 'available-range',\n                    values: timeInterval,\n                    theme: RangeSelectorZoneThemeEnum.green,\n                    label: '',\n                },\n            ];\n        });\n    }, [timeIntervals]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = {\n            ...INITIAL_VALUES,\n            [FieldsEnum.waypoints]: timeIntervals.map((timeInterval) => {\n                return {\n                    [WaypointsFieldEnum.timeWindow]: timeInterval,\n                };\n            }),\n        };\n\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [timeIntervals]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const query = prepareQuery(values, brokerOrderDetails, {\n                needAppointmentWaypoints,\n            });\n            if (!query || !brokerOrderId || !tourId) {\n                logWarning('empty query or brokerOrderId or tourId');\n                return;\n            }\n\n            // TODO need resolve TZT-7576, need tourId\n            dispatch(updateDockingHours({ brokerOrderId, query }));\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const hasFormAnyErrors = React.useMemo(() => {\n        const waypointsErrors = formik.errors[FieldsEnum.waypoints] || [];\n\n        if (typeof waypointsErrors === 'string') {\n            return true;\n        }\n\n        return waypointsErrors.some((waypointErrors) => {\n            return !isEmpty(waypointErrors);\n        });\n    }, [formik.errors]);\n\n    const waypointsFormValues = formik.values[FieldsEnum.waypoints];\n\n    return (\n        <FormikContext.Provider value={formik}>\n            <div className={cx('wrap')}>\n                <div className={cx('title')}>{t('broker-order-details.edit-time-windows.title')}</div>\n                <form onSubmit={formik.handleSubmit}>\n                    <div className={cx('form')}>\n                        {waypointsFormValues.map((waypointFormValues, index) => {\n                            const fieldName =\n                                `${FieldsEnum.waypoints}.${index}.${WaypointsFieldEnum.timeWindow}` as const;\n                            const needAppointmentWaypoint = needAppointmentWaypoints[index];\n                            const timeInterval = timeIntervals[index];\n                            const range = ranges[index];\n\n                            const waypointNumber = (needAppointmentWaypoint.index || 0) + 1;\n\n                            return (\n                                <FormikConnectContextField<FormValuesT, typeof fieldName>\n                                    className={cx('time-picker')}\n                                    name={fieldName}\n                                    withoutLabel\n                                    key={`waypoint-${index}`}\n                                >\n                                    {(props, extendsProps) => (\n                                        <TimeWindowPicker\n                                            range={ALL_DAY_RANGE}\n                                            availableValues={timeInterval}\n                                            ranges={range}\n                                            name={extendsProps.name}\n                                            hasStartStep\n                                            hasEndStep\n                                            icon={\n                                                <NumberIcon\n                                                    className={cx('time-picker__icon')}\n                                                    number={waypointNumber}\n                                                    fillColor={StyleGuideColorsEnum.gray}\n                                                />\n                                            }\n                                            values={extendsProps.value}\n                                            setFieldValue={(_, value) => {\n                                                props.onChange(value);\n                                            }}\n                                            label={t(\n                                                'broker-order-details.edit-time-windows.fields.waypoint-time-window.label',\n                                                {\n                                                    number: waypointNumber,\n                                                },\n                                            )}\n                                            duration={\n                                                <TimeIntervalDurationPillLabel\n                                                    isDayRelative\n                                                    timeWindow={extendsProps.value}\n                                                />\n                                            }\n                                        />\n                                    )}\n                                </FormikConnectContextField>\n                            );\n                        })}\n                    </div>\n                    <div className={cx('actions')}>\n                        <Button\n                            theme={ButtonThemeEnum.secondary}\n                            className={cx('action', 'action--cancel')}\n                            onClick={onCancel}\n                        >\n                            {t('broker-order-details.edit-time-windows.actions.cancel')}\n                        </Button>\n                        <Button\n                            theme={ButtonThemeEnum.primary}\n                            isDisabled={hasFormAnyErrors || requestStatus.loading}\n                            className={cx('action', 'action--set')}\n                            isLoading={requestStatus.loading}\n                            type=\"submit\"\n                        >\n                            {t('broker-order-details.edit-time-windows.actions.set')}\n                        </Button>\n                    </div>\n                </form>\n            </div>\n        </FormikContext.Provider>\n    );\n};\n\nexport default EditTimeWindowsForm;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    baseColor: StyleGuideColorsEnum;\n};\n\nconst BigQuestionIcon: React.FC<PropsT> = (props) => {\n    const { baseColor, ...rest } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"200\" height=\"130\" viewBox=\"0 0 200 130\" {...rest}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path\n                    fill={baseColor}\n                    fillOpacity=\"0.05\"\n                    d=\"M176 20a7 7 0 010 14h-40a7 7 0 010 14h22a7 7 0 010 14h-10.174c-4.874 0-8.826 3.134-8.826 7 0 2.577 2 4.91 6 7a7 7 0 010 14H62a7 7 0 010-14H23a7 7 0 010-14h40a7 7 0 000-14H38a7 7 0 010-14h40a7 7 0 010-14h98zm0 28a7 7 0 110 14 7 7 0 010-14z\"\n                />\n                <path\n                    fill=\"#FFF\"\n                    stroke={baseColor}\n                    strokeLinecap=\"round\"\n                    strokeWidth=\"2.5\"\n                    d=\"M138.577 93.075a54.587 54.587 0 01-7.933 5.299l.165 14.083a2 2 0 01-3.22 1.609l-12.663-9.743A66.553 66.553 0 01100 106c-30.376 0-55-20.147-55-45s24.624-45 55-45 55 20.147 55 45c0 6.879-1.886 13.397-5.259 19.227a42.703 42.703 0 01-2.015 3.154m-2.533 3.273a47.462 47.462 0 01-2.906 3.122\"\n                />\n                <path\n                    fill={baseColor}\n                    fillRule=\"nonzero\"\n                    d=\"M98.142 72.135c0-2.149.239-3.94.717-5.376.479-1.436 1.524-3.096 3.135-4.98 1.611-1.885 2.661-3.248 3.15-4.088.488-.84.864-1.728 1.127-2.666.264-.937.396-2.03.396-3.28 0-2.442-.537-4.351-1.611-5.728-1.075-1.377-2.54-2.066-4.395-2.066-1.875 0-3.408.67-4.6 2.007-1.19 1.338-1.806 3.13-1.845 5.376h-3.223c.04-3.203.962-5.767 2.769-7.69 1.806-1.924 4.106-2.886 6.9-2.886 2.89 0 5.155.991 6.796 2.973 1.64 1.983 2.46 4.644 2.46 7.984 0 2.07-.404 4.009-1.215 5.815-.81 1.807-2.358 3.99-4.643 6.548-1.797 1.856-2.696 4.541-2.696 8.057h-3.222zm-.352 9.785c0-.684.186-1.255.557-1.714.37-.459.898-.688 1.582-.688.683 0 1.216.23 1.596.688.381.459.572 1.03.572 1.714 0 .664-.19 1.216-.572 1.655-.38.44-.913.66-1.596.66-.684 0-1.211-.22-1.582-.66-.371-.44-.557-.991-.557-1.655z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nBigQuestionIcon.displayName = 'BigQuestionIcon';\n\nconst storyProps: PropsT = {\n    baseColor: StyleGuideColorsEnum.tomatoRed,\n};\n\nexport { storyProps };\nexport default BigQuestionIcon;\n","import { ApiBrokerTeamDetailsT } from 'broker-admin/utils/api/broker-tranziit/models';\n\nexport const normalizeTeamDetails = (teamDetails: ApiBrokerTeamDetailsT | null): ApiBrokerTeamDetailsT | null => {\n    if (!teamDetails) {\n        return null;\n    }\n\n    const companies = [...(teamDetails.companies || [])];\n    companies.sort((companyA, companyB) => {\n        return companyA.id.localeCompare(companyB.id);\n    });\n\n    const users = [...(teamDetails.users || [])];\n    users.sort((userA, userB) => {\n        return userA.id.localeCompare(userB.id);\n    });\n\n    return {\n        ...teamDetails,\n        // the backend can change the order without update\n        companies,\n        // the backend can change the order without update\n        users,\n    };\n};\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n    size?: number;\n    className?: string;\n};\n\nconst FilledCircleIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, className } = props;\n\n    const size = props.size || DEFAULT_ICON_SIZE;\n\n    return (\n        <svg width={size} height={size} viewBox=\"0 0 10 10\" xmlns=\"http://www.w3.org/2000/svg\" className={className}>\n            <circle fill={fillColor} cx=\"5\" cy=\"5\" r=\"2\" fillRule=\"evenodd\" />\n        </svg>\n    );\n};\n\nFilledCircleIcon.displayName = 'FilledCircleIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.charcoal,\n    size: DEFAULT_ICON_SIZE,\n};\n\nexport { storyProps };\nexport default FilledCircleIcon;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {};\n\nconst ReplacedLocationsAlertContent: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n\n    return <span>{t('common:new-order-form.warnings-alert.invalid-route')}</span>;\n});\n\nexport default ReplacedLocationsAlertContent;\n","import { DictDocumentT } from 'common/store/documents-dict/models';\nimport { DocumentIdsByTypeT, DocumentT } from 'common/store/documents/models';\nimport { DocumentRowT } from 'common/layouts/BaseDocumentsLayout/BaseDocumentsTable/BaseDocumentsTable';\nimport forEach from 'lodash/forEach';\nimport * as React from 'react';\nimport { useSelector } from 'react-redux';\nimport { selectDocumentsDict } from 'common/store/documents-dict/selectors';\nimport {\n    selectCompanyDocumentIdsByType,\n    selectCompanyDocumentsById,\n    selectFetchCompanyDocumentsRequest,\n} from 'common/store/documents/selectors';\nimport { DocumentRequiredEnum, PartnerTypeEnum } from 'common/utils/api/models';\nimport { getDocumentInfo } from './get-document-info';\nimport { isNonNil } from 'common/utils';\n\nconst getDocumentRows = (\n    dictDocuments: Array<DictDocumentT>,\n    documentIdsByType: DocumentIdsByTypeT | null,\n    documentsById: Record<DocumentIdT, DocumentT> | null,\n): Array<DocumentRowT> => {\n    return dictDocuments\n        .map((dictDocument) => {\n            return getDocumentInfo(dictDocument, documentIdsByType, documentsById);\n        })\n        .filter(isNonNil);\n};\n\nconst useDocumentsRows = (partnerId: PartnerIdT | null, partnerType: PartnerTypeEnum | null) => {\n    const documentsDict = useSelector(selectDocumentsDict(partnerType));\n\n    const documentIdsByType = useSelector(selectCompanyDocumentIdsByType(partnerId));\n    const documentsById = useSelector(selectCompanyDocumentsById(partnerId));\n    const fetchDocumentsRequest = useSelector(selectFetchCompanyDocumentsRequest(partnerId));\n\n    return React.useMemo(() => {\n        if (!partnerId || !partnerType) {\n            return {\n                requiredDocumentRows: [],\n                optionalDocumentRows: [],\n            };\n        }\n\n        if (!fetchDocumentsRequest.ok && !fetchDocumentsRequest.error) {\n            return {\n                requiredDocumentRows: [],\n                optionalDocumentRows: [],\n            };\n        }\n\n        const requiredDictDocuments: Array<DictDocumentT> = [];\n        const optionalDictDocuments: Array<DictDocumentT> = [];\n\n        forEach(documentsDict, (item) => {\n            if (item?.required === DocumentRequiredEnum.must) {\n                requiredDictDocuments.push(item);\n            }\n\n            if (item?.required === DocumentRequiredEnum.optional) {\n                optionalDictDocuments.push(item);\n            }\n        });\n\n        const requiredDocumentRows = getDocumentRows(requiredDictDocuments, documentIdsByType, documentsById);\n        const optionalDocumentRows = getDocumentRows(optionalDictDocuments, documentIdsByType, documentsById);\n\n        return {\n            requiredDocumentRows,\n            optionalDocumentRows,\n        };\n    }, [documentsDict, documentIdsByType, documentsById, fetchDocumentsRequest, partnerId, partnerType]);\n};\n\nexport { useDocumentsRows };\n","import { StateT } from '../../../shipper/store/models';\nimport { BestOffersT, PriceOfferT, RFQDetailsT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { OrderCreationStateT } from './types';\nimport { byPriceAsc } from './utils/sort-offers';\nimport { isNonNil } from 'common/utils';\nimport mapValues from 'lodash/mapValues';\nimport { createSelector } from 'reselect';\n\nexport const selectCreateRFQRequest = (state: StateT): RequestStatusT => state.orderCreation.createRFQRequest;\nexport const selectShipperInfoById = (state: StateT): OrderCreationStateT['shipperInfoById'] =>\n    state.orderCreation.shipperInfoById;\nexport const selectShipperInfoRequestStatus = (state: StateT): OrderCreationStateT['shipperInfoRequestStatus'] =>\n    state.orderCreation.shipperInfoRequestStatus;\nexport const selectCreatePriceOfferWithLaneRequest = (state: StateT): RequestStatusT =>\n    state.orderCreation.createPriceOfferWithLaneRequest;\n\nexport const selectRFQ = (state: StateT): RFQDetailsT | null => state.orderCreation.rfq;\n\nexport const selectLanePriceOffer = (state: StateT): OrderCreationStateT['lanePriceOffer'] =>\n    state.orderCreation.lanePriceOffer;\n\nexport const selectPolylines = (state: StateT): Array<GooglePolylineT> | null => state.orderCreation.polylines;\n\nexport const selectPriceOffers = (state: StateT): OrderCreationStateT['priceOffers'] => state.orderCreation.priceOffers;\n\nexport const selectPriceOffersList = createSelector(selectPriceOffers, (priceOffers): Array<PriceOfferT> => {\n    return (priceOffers?.list || []).map((id) => priceOffers?.byId[id]).filter(isNonNil);\n});\n\nexport const selectPriceOffersByHash = createSelector(\n    selectPriceOffers,\n    (priceOffers): Record<string, Array<PriceOfferT>> => {\n        return mapValues(priceOffers?.byHash, (ids: PriceOfferIdT[]) => {\n            return ids.map((id) => priceOffers?.byId[id]).filter(isNonNil);\n        });\n    },\n);\n\nexport const selectPriceOffersById = (state: StateT): Record<string, PriceOfferT> =>\n    state.orderCreation.priceOffers?.byId || {};\n\nexport const selectCreateOrderRequest = (state: StateT): RequestStatusT => state.orderCreation.createOrderRequest;\n\nexport const selectOffersTasks = (state: StateT): OrderCreationStateT['offersTasks'] => state.orderCreation.offersTasks;\n\nexport const selectIsPartialLoadingOffers = (state: StateT): boolean => {\n    const { total, count } = state.orderCreation.offersTasks;\n\n    return total !== null && total !== count;\n};\n\nexport const selectReserve = (state: StateT): OrderCreationStateT['reserve'] => {\n    return state.orderCreation.reserve;\n};\n\nexport const selectReserveQuery = (state: StateT): OrderCreationStateT['reserveQuery'] => {\n    return state.orderCreation.reserveQuery;\n};\n\nexport const selectReserveRequest = (state: StateT): OrderCreationStateT['reserveRequest'] => {\n    return state.orderCreation.reserveRequest;\n};\n\nexport const selectReservePreview = (state: StateT): OrderCreationStateT['previewReserve'] => {\n    return state.orderCreation.previewReserve;\n};\n\nexport const selectReservePreviewQuery = (state: StateT): OrderCreationStateT['previewReserveQuery'] => {\n    return state.orderCreation.previewReserveQuery;\n};\n\nexport const selectIsAllowCreateRFQ = (state: StateT): OrderCreationStateT['isAllowCreateRFQ'] => {\n    return state.orderCreation.isAllowCreateRFQ;\n};\n\nexport const selectReservePreviewRequest = (state: StateT): OrderCreationStateT['previewReserveRequest'] => {\n    return state.orderCreation.previewReserveRequest;\n};\n\nexport const selectBestOffers = createSelector(selectPriceOffersList, (priceOffers): BestOffersT | null => {\n    if (!priceOffers) {\n        return null;\n    }\n\n    const bestOffers: BestOffersT = {\n        bestPrice: null,\n        urgent: null,\n    };\n\n    const bestPriceOffer = priceOffers.filter((offer) => offer.isBestPrice).sort(byPriceAsc)[0];\n    if (bestPriceOffer) {\n        bestOffers.bestPrice = bestPriceOffer;\n    }\n\n    const bestUrgentOffer = priceOffers.filter((offer) => offer.isUrgentShipment).sort(byPriceAsc)[0];\n    if (bestUrgentOffer) {\n        bestOffers.urgent = bestUrgentOffer;\n    }\n\n    return bestOffers;\n});\n","export const CURRENT_ASSIGNMENT_EVENT_ID = 'CURRENT_ASSIGNMENT_EVENT_ID';\n\nexport const LONG_DEADHEAD_PERCENT = 30;\n","import { MS_IN_DAY, MS_IN_HOUR, MS_IN_MIN } from 'common/utils/time';\n\nconst stepCandidates = [\n    MS_IN_DAY,\n    12 * MS_IN_HOUR,\n    6 * MS_IN_HOUR,\n    2 * MS_IN_HOUR,\n    MS_IN_HOUR,\n    30 * MS_IN_MIN,\n    10 * MS_IN_MIN,\n];\n\ntype ChooseDelimeterStepParamsT = {\n    viewMs: number;\n    targetTicks: number;\n};\n\nexport function chooseDelimeterMultipleMs({ viewMs, targetTicks }: ChooseDelimeterStepParamsT): number {\n    const minTicks = targetTicks * 0.5;\n    const maxTicks = targetTicks * 1.5;\n    let bestStepMs = stepCandidates[0];\n    let bestDelta = Infinity;\n    let hasInRange = false;\n\n    for (const stepMs of stepCandidates) {\n        const numTicks = Math.floor(viewMs / stepMs) + 1;\n        const delta = Math.abs(numTicks - targetTicks);\n\n        if (numTicks >= minTicks && numTicks <= maxTicks) {\n            if (!hasInRange || delta < bestDelta) {\n                bestStepMs = stepMs;\n                bestDelta = delta;\n                hasInRange = true;\n            }\n        } else if (!hasInRange && delta < bestDelta) {\n            bestStepMs = stepMs;\n            bestDelta = delta;\n        }\n    }\n\n    return bestStepMs;\n}\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n};\n\nconst RightArrowIcon: React.FC<PropsT> = (props) => {\n    const { fillColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M19 1H1v18h18z\" />\n                <path fill={fillColor} d=\"M4 9.25h9.128L8.935 5.058 10 4l6 6-6 6-1.057-1.057 4.185-4.193H4z\" />\n            </g>\n        </svg>\n    );\n};\n\nRightArrowIcon.displayName = 'RightArrowIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n};\n\nexport { storyProps };\nexport default RightArrowIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"DocumentMessage__inner___IWPBb\",\"icon\":\"DocumentMessage__icon___cWZsT\",\"title\":\"DocumentMessage__title___r8chO\",\"description\":\"DocumentMessage__description___NO_2Q\",\"fadeIn\":\"DocumentMessage__fadeIn___hmtQb\",\"blinking\":\"DocumentMessage__blinking___perKz\"};","import React, { useCallback } from 'react';\nimport RangeSelector, { RangeSelectorMarkT, RangeSelectorRangeT } from 'common/components/RangeSelector/RangeSelector';\nimport { getTimeRelativeStartDay, MS_IN_DAY, MS_IN_HOUR } from 'common/utils/time';\n\ntype PropsT = {\n    className?: string;\n    isDisabled?: boolean;\n    isLocked?: boolean;\n    isAllowOnlyDragRange?: boolean;\n    isLockedLeftRangeControl?: boolean;\n    isLockedRightRangeControl?: boolean;\n    values: TimeWindowT | null;\n    onChange: (values: TimeWindowT) => void;\n    range: TimeWindowT;\n    step?: number;\n    minRangeWidth?: number;\n    maxRangeWidth?: number;\n    availableValues: TimeWindowT;\n    ranges: RangeSelectorRangeT[];\n    marks?: Array<RangeSelectorMarkT>;\n    hasStartStep?: boolean;\n    hasEndStep?: boolean;\n    renderZoneTextNode?: (currentRanges: RangeSelectorRangeT[] | null) => React.ReactNode;\n};\n\nconst TimeWindowPicker: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        values,\n        isDisabled,\n        isLocked,\n        isAllowOnlyDragRange,\n        isLockedLeftRangeControl,\n        isLockedRightRangeControl,\n        range,\n        minRangeWidth,\n        maxRangeWidth,\n        availableValues,\n        ranges,\n        onChange,\n        hasStartStep,\n        hasEndStep,\n        renderZoneTextNode,\n        marks,\n    } = props;\n\n    const handleSelect = useCallback(\n        (selectedValue: TimeWindowT) => {\n            if (isLocked) {\n                return;\n            }\n\n            onChange(selectedValue);\n        },\n        [isLocked, onChange],\n    );\n\n    const step = props.step || MS_IN_HOUR / 2;\n\n    const shownStepCount = MS_IN_DAY / (step * 24);\n    const shownLabelCount = shownStepCount * 3;\n\n    const labelsConfig = React.useMemo(() => {\n        return {\n            shownStepCount,\n            shownLabelCount,\n            hasStartStep,\n            hasEndStep,\n        };\n    }, [shownStepCount, shownLabelCount, hasStartStep, hasEndStep]);\n\n    return (\n        <RangeSelector\n            className={className}\n            isDisabled={isDisabled}\n            valuesRange={range}\n            availableValues={availableValues || range}\n            ranges={ranges || []}\n            values={values}\n            valueStep={step}\n            isLocked={isLocked}\n            isLockedLeftRangeControl={isLockedLeftRangeControl}\n            isLockedRightRangeControl={isLockedRightRangeControl}\n            isAllowOnlyDragRange={isAllowOnlyDragRange}\n            minValuesRangeWidth={minRangeWidth}\n            maxValuesRangeWidth={maxRangeWidth}\n            labelsConfig={labelsConfig}\n            marks={marks}\n            renderZoneTextNode={renderZoneTextNode}\n            renderLabel={(value: number) => {\n                const relativeTime = getTimeRelativeStartDay(value);\n                if (value && relativeTime === '00:00') {\n                    return '23:59';\n                }\n\n                return relativeTime;\n            }}\n            onSelect={handleSelect}\n        />\n    );\n});\n\nexport default TimeWindowPicker;\n","import { ApiGoogleAddressComponentT } from './api/geo-api-models';\nimport isNil from 'lodash/isNil';\n\nenum GoogleAddressComponentsTypeEnum {\n    country = 'country',\n    route = 'route',\n    streetNumber = 'street_number',\n    postalCode = 'postal_code',\n    locality = 'locality',\n    political = 'political',\n    postalTown = 'postal_town',\n    administrativeAreaLevel1 = 'administrative_area_level_1',\n    administrativeAreaLevel2 = 'administrative_area_level_2',\n    administrativeAreaLevel3 = 'administrative_area_level_3',\n    administrativeAreaLevel4 = 'administrative_area_level_4',\n    administrativeAreaLevel5 = 'administrative_area_level_5',\n}\n\nexport const prepareAddressComponents = (\n    addressComponents: google.maps.GeocoderAddressComponent[],\n): AddressComponentsT => {\n    const componentsMap = addressComponents.reduce<Record<string, ApiGoogleAddressComponentT>>((acc, component) => {\n        component.types.forEach((type) => {\n            // eslint-disable-next-line no-param-reassign\n            acc[type] = component;\n        });\n\n        return acc;\n    }, {});\n\n    /* eslint-disable camelcase */\n    return {\n        countryCode:\n            componentsMap[GoogleAddressComponentsTypeEnum.country]?.short_name ||\n            componentsMap[GoogleAddressComponentsTypeEnum.political]?.short_name ||\n            null,\n        street1:\n            [\n                componentsMap[GoogleAddressComponentsTypeEnum.route]?.long_name,\n                componentsMap[GoogleAddressComponentsTypeEnum.streetNumber]?.long_name,\n            ]\n                .filter(Boolean)\n                .join(' ') || '',\n        street2: '',\n        zipCode: componentsMap[GoogleAddressComponentsTypeEnum.postalCode]?.long_name || null,\n        city:\n            componentsMap[GoogleAddressComponentsTypeEnum.locality]?.long_name ||\n            componentsMap[GoogleAddressComponentsTypeEnum.postalTown]?.long_name ||\n            componentsMap[GoogleAddressComponentsTypeEnum.administrativeAreaLevel1]?.long_name ||\n            componentsMap[GoogleAddressComponentsTypeEnum.administrativeAreaLevel2]?.long_name ||\n            componentsMap[GoogleAddressComponentsTypeEnum.administrativeAreaLevel3]?.long_name ||\n            componentsMap[GoogleAddressComponentsTypeEnum.administrativeAreaLevel4]?.long_name ||\n            componentsMap[GoogleAddressComponentsTypeEnum.administrativeAreaLevel5]?.long_name ||\n            null,\n    };\n    /* eslint-enable camelcase */\n};\n\nexport const formatAddressComponents = (\n    addressComponents: AddressComponentsT | null | undefined,\n    separator = ' ',\n): string => {\n    if (!addressComponents) {\n        return '';\n    }\n\n    return [\n        addressComponents.street1,\n        addressComponents.street2,\n        addressComponents.zipCode,\n        addressComponents.city,\n        addressComponents.countryCode,\n    ]\n        .filter(Boolean)\n        .join(separator);\n};\n\nexport const getGeoCodingLocation = (result: google.maps.places.PlaceResult): LocationT | null => {\n    if (isNil(result.utc_offset_minutes)) {\n        return null;\n    }\n\n    if (!result.geometry) {\n        return null;\n    }\n\n    if (!result.address_components) {\n        return null;\n    }\n\n    if (!result.geometry.location) {\n        return null;\n    }\n\n    return {\n        point: {\n            lat: result.geometry.location.lat(),\n            lng: result.geometry.location.lng(),\n        },\n        address: result.formatted_address || null,\n        utcOffsetMinutes: result.utc_offset_minutes,\n        addressComponents: prepareAddressComponents(result.address_components),\n    };\n};\n","import React, { useCallback, useMemo } from 'react';\nimport styles from './DriverSuggestInput.scss';\nimport classNames from 'classnames/bind';\n\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownSearchInput from 'design-system/components/dropdowns/DropdownSearchInput/DropdownSearchInput';\nimport {\n    AsyncRequestFactoryT,\n    useAsyncOptionsRequest,\n} from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-options-request';\nimport DriverAssignOptionLabel from './DriverAssignOptionLabel/DriverAssignOptionLabel';\nimport ControlLoaderIcon, { ControlLoaderIconProps } from 'common/icons/ControlLoaderIcon';\nimport carrierTranziitApi from 'carrier/utils/api/carrier-tranziit/api';\nimport { ApiShortDriverT } from 'common/utils/api/models';\nimport keyBy from 'lodash/keyBy';\nimport DriverIcon, { DriverIconProps } from 'common/icons/DriverIcon';\nimport Avatar, { AvatarSizeEnum } from 'common/components/Avatar/Avatar';\nimport { getDriverLabel } from 'common/layouts/TransportOrderDetailsPageLayout/DriversAssignmentForm/DriverSuggestInput/utils';\n\nconst cx = classNames.bind(styles);\n\ntype ValueT = DriverIdT;\n\ntype OptionT = {\n    label: string;\n    id: ApiShortDriverT['id'];\n};\n\nexport type PropsT = {\n    transportOrderId: TransportOrderIdT | null;\n    initialValue?: ValueT;\n    initialLabel?: string;\n    onSelect: (value: ValueT | null, name?: string | null) => void;\n    value: ValueT | null;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    inputPlaceholder: InputPropsT['placeholder'];\n    placeholder: InputPropsT['placeholder'];\n    onBlur: InputPropsT['onBlur'];\n    onFocus: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasChanges?: boolean;\n};\n\nconst DriverSuggestInput: React.FC<PropsT> = (props) => {\n    const {\n        transportOrderId,\n        initialValue,\n        initialLabel,\n        value,\n        onSelect,\n        hasWarning,\n        hasError,\n        overlayPosition,\n        isDisabled,\n        inputPlaceholder,\n        placeholder,\n        onBlur,\n        onFocus,\n        hasChanges,\n    } = props;\n\n    const initialOption = useMemo((): OptionT | null => {\n        if (!initialValue) {\n            return null;\n        }\n\n        return {\n            label: initialLabel || 'Unknown user',\n            id: initialValue,\n        };\n    }, [initialLabel, initialValue]);\n\n    const [lastSelectedOption, setLastSelectedOption] = React.useState<OptionT | null>();\n\n    const requestFactory: AsyncRequestFactoryT<OptionT> = useCallback(\n        async (query) => {\n            if (!transportOrderId) {\n                return [null, null];\n            }\n\n            const [error, response] = await carrierTranziitApi.getAvailableDrivers(transportOrderId, query || '');\n            if (error) {\n                return [error, null];\n            }\n\n            const availableDrivers = (response || []).filter((driver) => {\n                return value !== driver.id;\n            });\n\n            const options = availableDrivers.map((driver): OptionT => {\n                return {\n                    label: getDriverLabel(driver) || '',\n                    id: driver.id,\n                };\n            });\n\n            return [null, options];\n        },\n        [transportOrderId, value],\n    );\n\n    const getOptionText = (option: OptionT): string => {\n        return option.label || '';\n    };\n\n    const asyncOptionsRequest = useAsyncOptionsRequest<OptionT>({\n        initialOptions: null,\n        requestFactory,\n        settings: {},\n    });\n\n    const handleFocus = useCallback(() => {\n        if (onFocus) {\n            onFocus();\n        }\n    }, [onFocus]);\n\n    const renderOption = (option: OptionT) => {\n        return <DriverAssignOptionLabel driver={option} />;\n    };\n\n    const renderTrigger = (option: OptionT | undefined, placeholder?: string) => {\n        if (!option) {\n            return placeholder;\n        }\n\n        return option.label;\n    };\n\n    const options = React.useMemo(() => {\n        const hasInitialOption =\n            initialOption?.id &&\n            asyncOptionsRequest.options?.some((option) => {\n                return option?.id === initialOption?.id;\n            });\n\n        const result = [...asyncOptionsRequest.options];\n\n        if (!hasInitialOption && initialOption) {\n            result.push(initialOption);\n        }\n\n        return result;\n    }, [asyncOptionsRequest.options, initialOption]);\n\n    const optionByUserId = React.useMemo(() => {\n        return {\n            ...keyBy(options, 'id'),\n            ...(initialOption\n                ? {\n                      [initialOption.id]: initialOption,\n                  }\n                : {}),\n            ...(lastSelectedOption\n                ? {\n                      [lastSelectedOption.id]: lastSelectedOption,\n                  }\n                : {}),\n        };\n    }, [options, lastSelectedOption, initialOption]);\n\n    const selectedOption = optionByUserId[value as string] || null;\n\n    return (\n        <DropdownSearchInput<OptionT, ValueT | null>\n            selectedValue={value}\n            options={options}\n            onSelect={(value) => {\n                const option = value ? optionByUserId[value] : null;\n                const label = option ? getOptionText(option) : '';\n\n                if (option) {\n                    onSelect(value, label);\n                } else {\n                    onSelect(null, null);\n                }\n\n                setLastSelectedOption(option);\n            }}\n            renderTrigger={renderTrigger}\n            renderOption={renderOption}\n            getOptionValue={(option) => option?.id}\n            onChangeQuery={asyncOptionsRequest.onChangeQuery}\n            renderLeftIcon={(iconMeta) => {\n                if (selectedOption) {\n                    return <Avatar hash={selectedOption?.label || ''} size={AvatarSizeEnum.small} />;\n                }\n\n                return <DriverIcon {...DriverIconProps.getControlProps(iconMeta)} />;\n            }}\n            renderRightIcon={() =>\n                asyncOptionsRequest.requestStatus.loading ? (\n                    <ControlLoaderIcon {...ControlLoaderIconProps.getFetchDataProps()} />\n                ) : null\n            }\n            onBlur={onBlur}\n            onFocus={handleFocus}\n            hasWarning={hasWarning}\n            hasError={hasError}\n            hasChanges={hasChanges}\n            isDisabled={isDisabled}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            inputPlaceholder={inputPlaceholder}\n            placeholder={placeholder}\n            optionClassName={cx('option')}\n            onReset={() => {\n                onSelect(null, null);\n            }}\n        />\n    );\n};\n\nexport default DriverSuggestInput;\n","import { ApiRuleDraftT, PriceRuleTypeEnum } from 'common/utils/api/models';\nimport { diffImpactStrategySet, FieldsEnum, FormValuesT, RepeatTypeEnum } from './constants';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport { getDateFromDate, MS_IN_DAY } from 'common/utils/time';\nimport { WEEK_DAYS_ORDER, ZIP_CODES_SEPARATOR } from 'common/constants';\nimport isNil from 'lodash/isNil';\nimport { RepeatStrategyTypeEnum } from 'broker-admin/utils/api/broker-tranziit/models';\nimport isNaN from 'lodash/isNaN';\n\nconst prepareApiRule = (formValues: FormValuesT): ApiRuleDraftT | null => {\n    let repeatDays: Array<number> = [];\n\n    const selectedRepeatType = formValues[FieldsEnum.repeatType];\n    let selectedRepeatMode = formValues[FieldsEnum.repeatStrategy] || RepeatStrategyTypeEnum.none;\n\n    if (selectedRepeatType === RepeatTypeEnum.weekdays) {\n        repeatDays = formValues[FieldsEnum.days].map((day) => WEEK_DAYS_ORDER.indexOf(day) + 1);\n        selectedRepeatMode = RepeatStrategyTypeEnum.weekly;\n    }\n\n    if (selectedRepeatType === RepeatTypeEnum.dates) {\n        const dates = formValues[FieldsEnum.dates];\n\n        if (dates?.from && !dates?.to) {\n            repeatDays.push(+dates.from);\n        }\n\n        if (!dates?.from && dates?.to) {\n            repeatDays.push(+dates.to);\n        }\n\n        if (dates?.from && dates?.to) {\n            const daysCount = (+dates.to - +dates.from) / MS_IN_DAY;\n\n            // eslint-disable-next-line no-plusplus\n            for (let i = 0; i <= daysCount; i++) {\n                repeatDays.push(+dates.from + MS_IN_DAY * i);\n            }\n        }\n    }\n    if (!repeatDays?.length) {\n        return null;\n    }\n\n    const validTill = formValues[FieldsEnum.validTill];\n    const formattedValidTill = validTill ? `${getDateFromDate(validTill)}T23:59:59.000Z` : null;\n\n    const validFrom = formValues[FieldsEnum.validFrom];\n    if (!validFrom) {\n        return null;\n    }\n\n    const impactStrategy = formValues[FieldsEnum.impactStrategy];\n    const isDiffImpactStrategy = diffImpactStrategySet.has(impactStrategy);\n    const parsedImpactValue = parseSimpleNumber(\n        isDiffImpactStrategy ? formValues[FieldsEnum.impactDiffValue] : formValues[FieldsEnum.impactValue],\n    );\n    if (isNil(parsedImpactValue) || isNaN(parsedImpactValue)) {\n        return null;\n    }\n\n    const type = formValues[FieldsEnum.type];\n\n    let companyIds: Array<CarrierIdT | ShipperIdT> = [];\n\n    const shipperIds = formValues[FieldsEnum.shipperIds];\n    if (type === PriceRuleTypeEnum.shipper) {\n        companyIds = shipperIds;\n    }\n\n    const carrierIds = formValues[FieldsEnum.carrierIds];\n    if (type === PriceRuleTypeEnum.carrier) {\n        companyIds = carrierIds;\n    }\n\n    const countriesFrom = formValues[FieldsEnum.fromCountryCodes];\n    if (!countriesFrom?.length) {\n        return null;\n    }\n\n    const countriesTo = formValues[FieldsEnum.toCountryCodes];\n    if (!countriesTo?.length) {\n        return null;\n    }\n\n    if (!type || type === PriceRuleTypeEnum.custom) {\n        return null;\n    }\n\n    const impactPriceComponent = formValues[FieldsEnum.impactPriceComponent];\n    if (!impactPriceComponent) {\n        return null;\n    }\n\n    return {\n        name: formValues[FieldsEnum.name],\n\n        ruleType: type,\n\n        countriesFrom,\n        zipsFrom: formValues[FieldsEnum.fromCountryZipCodes].split(ZIP_CODES_SEPARATOR).filter(Boolean),\n        countriesTo,\n        zipsTo: formValues[FieldsEnum.toCountryZipCodes].split(ZIP_CODES_SEPARATOR).filter(Boolean),\n\n        repeatDays,\n        repeatMode: selectedRepeatMode,\n\n        validFrom: `${getDateFromDate(validFrom)}T00:00:00.000Z`,\n        validTill: formattedValidTill || undefined,\n\n        value: parsedImpactValue,\n        target: impactPriceComponent,\n        operator: impactStrategy,\n\n        trailerTypeIds: formValues[FieldsEnum.trailerTypeIds].map((trailerTypeId) => +trailerTypeId),\n\n        companyIds,\n    };\n};\n\nexport default prepareApiRule;\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"DriverAssignOptionLabel__option___uaOk_\",\"avatar\":\"DriverAssignOptionLabel__avatar___RA89C\",\"name\":\"DriverAssignOptionLabel__name___QcKjo\",\"fadeIn\":\"DriverAssignOptionLabel__fadeIn___rwt3u\",\"blinking\":\"DriverAssignOptionLabel__blinking___mHME2\"};","// extracted by mini-css-extract-plugin\nexport default {\"alerts\":\"TruckDetailsForm__alerts___kQARp\",\"field--emission-standard\":\"TruckDetailsForm__field--emission-standard___LhlHP\",\"field--vin\":\"TruckDetailsForm__field--vin___Ccmwt\",\"field--country-code\":\"TruckDetailsForm__field--country-code___vkiF1\",\"field--plate-number\":\"TruckDetailsForm__field--plate-number___Y8htS\",\"field--placeholder\":\"TruckDetailsForm__field--placeholder____rKPJ\",\"field--cabin-color\":\"TruckDetailsForm__field--cabin-color___aJaC1\",\"field--contract\":\"TruckDetailsForm__field--contract___UEe7x\",\"field--rate\":\"TruckDetailsForm__field--rate___hfQ0X\",\"field--fuel-consumption\":\"TruckDetailsForm__field--fuel-consumption___FblXN\",\"field--oil-percent\":\"TruckDetailsForm__field--oil-percent___mpbeE\",\"fields\":\"TruckDetailsForm__fields___DpvrV\",\"actions\":\"TruckDetailsForm__actions___gptHW\",\"actions__action\":\"TruckDetailsForm__actions__action___Dckh_\",\"actions__action--cancel\":\"TruckDetailsForm__actions__action--cancel___s2r7D\",\"actions__action--delete\":\"TruckDetailsForm__actions__action--delete___TsMUO\",\"footer-warning\":\"TruckDetailsForm__footer-warning___C_Swx\",\"fadeIn\":\"TruckDetailsForm__fadeIn___sNXfs\",\"blinking\":\"TruckDetailsForm__blinking___I4T3e\"};","import { SharableStateT } from '../models';\nimport {\n    initialShipperContractDetailsItemState,\n    ShipperContractDetailsItemStateT,\n    ShipperContractDetailsStateT,\n} from './slice';\n\nexport const selectShipperContractDetailsState = (shipperContractId: ShipperContractIdT) => {\n    return (state: SharableStateT): ShipperContractDetailsItemStateT => {\n        return state.shipperContractDetails.detailsById[shipperContractId] || initialShipperContractDetailsItemState;\n    };\n};\n\nexport const selectUpdateShipperContractRequest = (\n    state: SharableStateT,\n): ShipperContractDetailsStateT['updateRequest'] => {\n    return state.shipperContractDetails.updateRequest;\n};\n\nexport const selectDownloadShipperContractRequest = (\n    state: SharableStateT,\n): ShipperContractDetailsStateT['downloadRequest'] => {\n    return state.shipperContractDetails.downloadRequest;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"type\":\"TypeCell__type___j4ItS\",\"sub-type\":\"TypeCell__sub-type___H5ZDY\",\"fadeIn\":\"TypeCell__fadeIn___lG_vt\",\"blinking\":\"TypeCell__blinking___XYfHb\"};","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './WaypointNumberPin.scss';\nimport MapPin, { MapPinThemeEnum } from 'common/components/maps/MapPin/MapPin';\nimport WaypointNumberPinContent from 'common/components/maps/pins/content/WaypointNumberPinContent/WaypointNumberPinContent';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    lat: number | undefined;\n    lng: number | undefined;\n    theme?: MapPinThemeEnum;\n    children?: React.ReactNode;\n};\n\nconst WaypointNumberPin: React.FC<PropsT> = React.memo((props) => {\n    const { className, lat, lng, theme, children } = props;\n\n    return (\n        <MapPin className={cs(cx('content'), className)} lat={lat} lng={lng} theme={theme || MapPinThemeEnum.charcoal}>\n            <WaypointNumberPinContent>{children}</WaypointNumberPinContent>\n        </MapPin>\n    );\n});\n\nexport default WaypointNumberPin;\n","import * as React from 'react';\nimport { ApiTourStatusT, TourStatusEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    status?: ApiTourStatusT | null | undefined;\n};\n\nexport const TOUR_STATUS_T_MAP: Record<ApiTourStatusT, string> = {\n    [TourStatusEnum.carrierUnassigned]: 'common:tour-status.CARRIER_UNASSIGNED',\n    [TourStatusEnum.carrierAssigned]: 'common:tour-status.CARRIER_ASSIGNED',\n    [TourStatusEnum.inTransit]: 'common:tour-status.IN_TRANSIT',\n    [TourStatusEnum.finished]: 'common:tour-status.FINISHED',\n    [TourStatusEnum.canceled]: 'common:tour-status.CANCELED',\n};\n\nconst TourStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return null;\n    }\n\n    return t(TOUR_STATUS_T_MAP[status]);\n});\n\nexport default TourStatus;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"TrailerTypeMultipleDropdown__fadeIn___iqifZ\",\"blinking\":\"TrailerTypeMultipleDropdown__blinking___sondY\"};","import classNames from 'classnames/bind';\nimport styles from './MapLoader.scss';\nimport * as React from 'react';\nimport cs from 'classnames';\nimport ControlLoaderLabel from 'common/components/ControlLoaderLabel/ControlLoaderLabel';\nimport { useTranslation } from 'react-i18next';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    // TODO remove, when props is used everywhere\n    isUnWrap?: boolean;\n};\n\nconst MapLoader: React.FC<PropsT> = React.memo((props) => {\n    const { className, isUnWrap, children } = props;\n\n    const { t } = useTranslation();\n\n    const labelNode = <ControlLoaderLabel isInvert>{children || t('common:maps.loading')}</ControlLoaderLabel>;\n\n    if (isUnWrap) {\n        return labelNode;\n    }\n\n    return <div className={cs(cx('map-loader__container'), className)}>{labelNode}</div>;\n});\n\nexport default MapLoader;\n","// extracted by mini-css-extract-plugin\nexport default {\"zone\":\"Zone__zone___JcWDa\",\"zone--isSelected\":\"Zone__zone--isSelected___tzdPv\",\"zone--theme-green\":\"Zone__zone--theme-green___y3p1c\",\"zone--isHovered\":\"Zone__zone--isHovered___uw2wF\",\"zone--theme-orange\":\"Zone__zone--theme-orange___MBEwy\",\"zone--theme-dark-green\":\"Zone__zone--theme-dark-green___Bnlqd\",\"zone--theme-light\":\"Zone__zone--theme-light___t_SM7\",\"zone--theme-charcoal\":\"Zone__zone--theme-charcoal___jPDNt\",\"zone--isDisabled\":\"Zone__zone--isDisabled___P9eAf\",\"zone--hasLeftBorder\":\"Zone__zone--hasLeftBorder___JAYQ2\",\"zone--hasRightBorder\":\"Zone__zone--hasRightBorder___OfSMH\",\"fadeIn\":\"Zone__fadeIn___C2iQ1\",\"blinking\":\"Zone__blinking___ywKtD\"};","import React, { useMemo } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './SpotAssetsAssignmentForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport AssetOptionLabel from './AssetOptionLabel/AssetOptionLabel';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport { useFormik } from 'formik';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { TransportOrderDetailsT } from 'common/store/transport-order-details/models';\nimport {\n    selectTrailerAssignmentInfoById,\n    selectTrailerSuggestIds,\n    selectTrailerSuggestRequestStatus,\n    selectTruckAssignmentInfoById,\n    selectTruckSuggestIds,\n    selectTruckSuggestRequestStatus,\n    selectVehicleLinks,\n} from 'common/store/spot-assets-assigment/selectors';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport { findTrailer, findTruck } from 'common/store/spot-assets-assigment/actions';\nimport { logWarning } from 'common/utils/logger';\nimport TrailerIcon, { TrailerIconProps } from 'common/icons/TrailerIcon';\nimport TruckIcon, { TruckIconProps } from 'common/icons/TruckIcon';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport DropdownSearchInput from 'design-system/components/dropdowns/DropdownSearchInput/DropdownSearchInput';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\n\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { useOpenLeftSidebar } from 'common/layouts/SideBars/hooks';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport mapValues from 'lodash/mapValues';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    transportOrderId: TransportOrderIdT;\n    transportOrderDetails: TransportOrderDetailsT | null | undefined;\n    onCancel: () => void;\n    assignmentRequestStatus: RequestStatusT;\n    onAssignAssets: (params: { transportOrderId: TransportOrderIdT; truckId: AssetIdT; trailerId: AssetIdT }) => void;\n    onClearAssets: (params: { transportOrderId: TransportOrderIdT }) => void;\n    unassignAssetsUnavailableTooltipContent?: React.ReactNode | null;\n};\n\ntype AssetOptionT = {\n    id: AssetIdT;\n    plateNumber: string;\n    model?: string;\n};\n\nconst INITIAL_VALUES: FormValuesT = {\n    [FieldsEnum.truckId]: null,\n    [FieldsEnum.trailerId]: null,\n};\n\nconst SpotAssetsAssignmentForm: React.FC<PropsT> = (props) => {\n    const {\n        onCancel,\n        transportOrderId,\n        transportOrderDetails,\n        onClearAssets,\n        onAssignAssets,\n        assignmentRequestStatus,\n        unassignAssetsUnavailableTooltipContent,\n    } = props;\n\n    const { partnerId } = usePartnerContext();\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const trailer = transportOrderDetails?.trailer || null;\n    const trailerId = trailer?.id || null;\n\n    const truck = transportOrderDetails?.truck || null;\n    const truckId = truck?.id;\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = {\n            ...INITIAL_VALUES,\n            [FieldsEnum.truckId]: truckId || null,\n            [FieldsEnum.trailerId]: trailerId || null,\n        };\n\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [trailerId, truckId]);\n\n    const hasInitialAssets = trailerId && trailerId;\n\n    const formik = useFormik<FormValuesT>({\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const trailerId = values[FieldsEnum.trailerId];\n            const truckId = values[FieldsEnum.truckId];\n            if (!trailerId || !truckId || !transportOrderId) {\n                logWarning('failed to assign assets, empty any parameter');\n                return;\n            }\n\n            onAssignAssets({\n                transportOrderId,\n                truckId,\n                trailerId,\n            });\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const links = useSelector(selectVehicleLinks);\n\n    const truckSuggestRequestStatus = useSelector(selectTruckSuggestRequestStatus);\n    const truckSuggestIds = useSelector(selectTruckSuggestIds);\n    const truckInfoById = useSelector(selectTruckAssignmentInfoById);\n    const trucksOptions = useMemo(() => {\n        const result: AssetOptionT[] = [];\n\n        if (truck && !truckSuggestIds.includes(truck.id)) {\n            result.push({\n                id: truck?.id,\n                plateNumber: truck?.plateNumber || '',\n                model: truck?.dictTruckInfo?.model,\n            });\n        }\n\n        truckSuggestIds.forEach((id) => {\n            const info = truckInfoById[id] || null;\n\n            result.push({\n                id,\n                plateNumber: info?.plateNumber || '',\n                model: info?.model,\n            });\n        });\n\n        return result;\n    }, [truckInfoById, truckSuggestIds, truck]);\n\n    // TODO check need?\n    React.useEffect(() => {\n        if (!transportOrderId) {\n            return;\n        }\n\n        dispatch(\n            findTrailer({\n                transportOrderId,\n                plateNumber: '',\n            }),\n        );\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const trailerSuggestRequestStatus = useSelector(selectTrailerSuggestRequestStatus);\n    const trailerSuggestIds = useSelector(selectTrailerSuggestIds);\n    const trailerInfoById = useSelector(selectTrailerAssignmentInfoById);\n    const trailersOptions: AssetOptionT[] = useMemo(() => {\n        const result: AssetOptionT[] = [];\n\n        if (trailer && !trailerSuggestIds.includes(trailer.id)) {\n            result.push({\n                id: trailer?.id,\n                plateNumber: trailer?.plateNumber || '',\n                model: trailer?.dictTrailerInfo?.model,\n            });\n        }\n\n        trailerSuggestIds.forEach((id) => {\n            const info = trailerInfoById[id] || null;\n\n            result.push({\n                id,\n                plateNumber: info?.plateNumber || '',\n                model: info?.model,\n            });\n        });\n\n        return result;\n    }, [trailerInfoById, trailerSuggestIds, trailer]);\n\n    const getOptionValue = (option: AssetOptionT) => option.id;\n\n    const renderOption = (option: AssetOptionT) => {\n        return <AssetOptionLabel plateNumber={option.plateNumber} model={option.model} />;\n    };\n\n    const handleChangeTruck = (_: string, truckId: AssetOptionT['id'] | null) => {\n        const formValueChanges: Partial<FormValuesT> = {\n            [FieldsEnum.truckId]: truckId,\n        };\n\n        const linkedTrailerId = truckId ? links.byTruckId[truckId] : null;\n        if (linkedTrailerId) {\n            formValueChanges[FieldsEnum.trailerId] = linkedTrailerId;\n        }\n\n        formik.setValues((prevValues) => {\n            return {\n                ...prevValues,\n                ...formValueChanges,\n            };\n        });\n\n        // Set meta => touched true\n        setTimeout(() => {\n            formik.setTouched(mapValues(formValueChanges, () => true));\n        }, 0);\n    };\n\n    const handleChangeTrailer = (_: string, trailerId: AssetOptionT['id'] | null) => {\n        const formValueChanges: Partial<FormValuesT> = {\n            [FieldsEnum.trailerId]: trailerId,\n        };\n\n        const linkedTruckId = trailerId ? links.byTrailerId[trailerId] : null;\n        if (linkedTruckId) {\n            formValueChanges[FieldsEnum.truckId] = linkedTruckId;\n        }\n\n        formik.setValues((prevValues) => {\n            return {\n                ...prevValues,\n                ...formValueChanges,\n            };\n        });\n\n        // Set meta => touched true\n        setTimeout(() => {\n            formik.setTouched(mapValues(formValueChanges, () => true));\n        }, 0);\n    };\n\n    const handleClearAssets = () => {\n        if (!transportOrderId) {\n            return;\n        }\n\n        onClearAssets({\n            transportOrderId,\n        });\n    };\n\n    const renderTruckTrigger = (option: AssetOptionT | undefined, placeholder?: React.ReactNode) => {\n        if (!option) {\n            return placeholder;\n        }\n\n        return (\n            <AssetOptionLabel\n                plateNumber={option.plateNumber}\n                model={option.model}\n                onOpenDetails={() => {\n                    if (!partnerId) {\n                        logWarning('Empty partnerId in renderTruckTrigger');\n                        return;\n                    }\n\n                    if (!option?.id) {\n                        logWarning('Empty option?.id in renderTruckTrigger');\n                        return;\n                    }\n\n                    openLeftSidebar(\n                        {\n                            type: CommonSidebarsTypeEnum.truckDetails,\n                            truckId: option.id,\n                            partnerId,\n                            isReadOnly: true,\n                            isDisableShowOnMap: true,\n                        },\n                        {\n                            isForceShowBackAction: true,\n                        },\n                    );\n                }}\n            />\n        );\n    };\n\n    const renderTrailerTrigger = (option: AssetOptionT | undefined, placeholder?: React.ReactNode) => {\n        if (!option) {\n            return placeholder;\n        }\n\n        return (\n            <AssetOptionLabel\n                plateNumber={option.plateNumber}\n                model={option.model}\n                onOpenDetails={() => {\n                    if (!partnerId) {\n                        logWarning('Empty partnerId in renderTrailerTrigger');\n                        return;\n                    }\n\n                    if (!option?.id) {\n                        logWarning('Empty option?.id in renderTrailerTrigger');\n                        return;\n                    }\n\n                    openLeftSidebar(\n                        {\n                            type: CommonSidebarsTypeEnum.trailerDetails,\n                            trailerId: option?.id,\n                            partnerId,\n                            isReadOnly: true,\n                            isDisableShowOnMap: true,\n                        },\n                        {\n                            isForceShowBackAction: true,\n                        },\n                    );\n                }}\n            />\n        );\n    };\n\n    return (\n        <div className={cx('wrap')}>\n            <form onSubmit={formik.handleSubmit}>\n                <div className={cx('head')}>\n                    <div className={cx('head__title')}>{t('common:spot-asset-transport-order-assignment.title')}</div>\n                </div>\n                <div className={cx('form')}>\n                    <FormikField\n                        className={cx('field')}\n                        name={FieldsEnum.truckId}\n                        error={formik.errors[FieldsEnum.truckId]}\n                        meta={formik.getFieldMeta(FieldsEnum.truckId)}\n                        label={t('common:spot-asset-transport-order-assignment.fields.truck.label')}\n                        setFieldValue={handleChangeTruck}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DropdownSearchInput<AssetOptionT, AssetOptionT['id'] | null>\n                                selectedValue={formik.values[FieldsEnum.truckId]}\n                                options={trucksOptions}\n                                onSelect={props.onChange}\n                                renderTrigger={renderTruckTrigger}\n                                renderOption={renderOption}\n                                isLoading={truckSuggestRequestStatus.loading}\n                                getOptionValue={getOptionValue}\n                                onChangeQuery={(text) => {\n                                    dispatch(\n                                        findTruck({\n                                            transportOrderId,\n                                            plateNumber: text.trim(),\n                                        }),\n                                    );\n                                }}\n                                renderLeftIcon={(iconMeta) => (\n                                    <TruckIcon {...TruckIconProps.getControlProps(iconMeta)} />\n                                )}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                overlayPosition={DropdownOverlayPositionEnum.topLeft}\n                                inputPlaceholder={t(\n                                    'common:spot-asset-transport-order-assignment.fields.truck.input-placeholder',\n                                )}\n                                placeholder={t('common:spot-asset-transport-order-assignment.fields.truck.placeholder')}\n                                optionClassName={cx('truck-option')}\n                                onReset={() => {\n                                    props.onChange(null);\n                                }}\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field')}\n                        name={FieldsEnum.trailerId}\n                        error={formik.errors[FieldsEnum.trailerId]}\n                        meta={formik.getFieldMeta(FieldsEnum.trailerId)}\n                        label={t('common:spot-asset-transport-order-assignment.fields.trailer.label')}\n                        setFieldValue={handleChangeTrailer}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DropdownSearchInput<AssetOptionT, AssetOptionT['id'] | null>\n                                selectedValue={formik.values[FieldsEnum.trailerId]}\n                                options={trailersOptions}\n                                onSelect={props.onChange}\n                                renderTrigger={renderTrailerTrigger}\n                                renderOption={renderOption}\n                                isLoading={trailerSuggestRequestStatus.loading}\n                                getOptionValue={getOptionValue}\n                                onChangeQuery={(text) => {\n                                    dispatch(\n                                        findTrailer({\n                                            transportOrderId,\n                                            plateNumber: text.trim(),\n                                        }),\n                                    );\n                                }}\n                                renderLeftIcon={(iconMeta) => (\n                                    <TrailerIcon {...TrailerIconProps.getControlProps(iconMeta)} />\n                                )}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                overlayPosition={DropdownOverlayPositionEnum.topLeft}\n                                inputPlaceholder={t(\n                                    'common:spot-asset-transport-order-assignment.fields.trailer.input-placeholder',\n                                )}\n                                placeholder={t(\n                                    'common:spot-asset-transport-order-assignment.fields.trailer.placeholder',\n                                )}\n                                optionClassName={cx('trailer-option')}\n                                onReset={() => {\n                                    props.onChange(null);\n                                }}\n                            />\n                        )}\n                    </FormikField>\n                </div>\n                {hasInitialAssets ? (\n                    <div className={cx('actions')}>\n                        <Tooltip\n                            position={TooltipPositionEnum.centerRight}\n                            theme={TooltipThemeEnum.black}\n                            tooltipNode={unassignAssetsUnavailableTooltipContent}\n                        >\n                            {() => (\n                                <Button\n                                    theme={ButtonThemeEnum.secondaryDanger}\n                                    className={cx('action')}\n                                    onClick={handleClearAssets}\n                                    isLoading={assignmentRequestStatus.loading}\n                                    isDisabled={\n                                        assignmentRequestStatus.loading || !!unassignAssetsUnavailableTooltipContent\n                                    }\n                                >\n                                    {t('common:spot-asset-transport-order-assignment.action.clear-assets')}\n                                </Button>\n                            )}\n                        </Tooltip>\n                        <div className={cx('sub-actions')}>\n                            <Button\n                                theme={ButtonThemeEnum.secondary}\n                                className={cx('action', 'action--reassign-cancel')}\n                                onClick={onCancel}\n                            >\n                                {t('common:spot-asset-transport-order-assignment.action.cancel')}\n                            </Button>\n                            <Button\n                                theme={ButtonThemeEnum.primary}\n                                className={cx('action', 'action--reassign')}\n                                isLoading={assignmentRequestStatus.loading}\n                                isDisabled={assignmentRequestStatus.loading}\n                                type=\"submit\"\n                            >\n                                {t('common:spot-asset-transport-order-assignment.action.reassign')}\n                            </Button>\n                        </div>\n                    </div>\n                ) : (\n                    <div className={cx('actions')}>\n                        <Button\n                            theme={ButtonThemeEnum.secondary}\n                            className={cx('action', 'action--assign-cancel')}\n                            onClick={onCancel}\n                        >\n                            {t('common:spot-asset-transport-order-assignment.action.cancel')}\n                        </Button>\n                        <Button\n                            theme={ButtonThemeEnum.primary}\n                            className={cx('action', 'action--assign')}\n                            isLoading={assignmentRequestStatus.loading}\n                            type=\"submit\"\n                        >\n                            {t('common:spot-asset-transport-order-assignment.action.assign')}\n                        </Button>\n                    </div>\n                )}\n                <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n            </form>\n        </div>\n    );\n};\n\nexport default SpotAssetsAssignmentForm;\n","import { ApiAddDriverRequestT, ApiCompanyContactMediaT } from 'common/utils/api/models';\nimport {\n    FieldsEnum,\n    FormValuesT,\n    MEDIA_FIELDS_NAME,\n} from '../EditDriverSidebarContent/EditDriverFormContent/constants';\nimport moment from 'moment';\nimport { parsePhoneNumber, parseSimpleNumber } from 'common/utils/input-parsers';\nimport isNumber from 'lodash/isNumber';\n\nconst prepareApiAddDriver = (formValues: FormValuesT): ApiAddDriverRequestT | null => {\n    const medias = MEDIA_FIELDS_NAME.reduce<ApiCompanyContactMediaT[]>((acc, fieldName) => {\n        if (formValues[fieldName]) {\n            acc.push({\n                type: fieldName,\n                login: formValues[fieldName] as string,\n            });\n        }\n\n        return acc;\n    }, []);\n\n    const rate = parseSimpleNumber(formValues[FieldsEnum.ratePerKm]);\n    if (!isNumber(rate)) {\n        return null;\n    }\n\n    const language = formValues[FieldsEnum.language] || undefined;\n\n    return {\n        contact: {\n            formal: formValues[FieldsEnum.formal],\n            name: formValues[FieldsEnum.firstName],\n            surname: formValues[FieldsEnum.lastName],\n\n            deskPhone: parsePhoneNumber(formValues[FieldsEnum.desktopPhone]) || undefined,\n\n            language,\n\n            birthday: formValues[FieldsEnum.birthday]\n                ? moment(formValues[FieldsEnum.birthday]).format('YYYY-MM-DD')\n                : undefined,\n            residence: formValues[FieldsEnum.countryCode] || undefined,\n\n            medias,\n        },\n        homeAddress: formValues[FieldsEnum.address] || undefined,\n        rate,\n    };\n};\n\nexport default prepareApiAddDriver;\n","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport ChangedFieldLabel from 'common/components/notification-cards/shared/ChangedFieldLabel/ChangedFieldLabel';\nimport ChangedStopFieldLabel from 'common/components/notification-cards/shared/ChangedStopFieldLabel/ChangedStopFieldLabel';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\nimport NotificationVerticalRow from 'common/components/notification-cards/shared/NotificationVerticalRow/NotificationVerticalRow';\nimport NotificationVerticalRowsLayout from 'common/components/notification-cards/shared/NotificationVerticalRowsLayout/NotificationVerticalRowsLayout';\n\ntype PropsT = {\n    transportationOrderNumber: React.ReactNode;\n    updatedFields?: Api2.Definitions.FieldChangeDto[];\n    updatedStops?: Api2.Definitions.StopChangeDto[];\n};\n\nconst TransportationOrderWasUpdatedCard: React.FC<PropsT> = React.memo((props) => {\n    const { transportationOrderNumber, updatedFields = [], updatedStops = [] } = props;\n\n    const stopFieldRows = updatedStops.flatMap((stop, stopIndex) =>\n        (stop.updatedFields ?? []).map((field, fieldIndex) => (\n            <NotificationVerticalRow\n                key={`stop-${stop.stopId ?? stop.sequenceNumber}-${stopIndex}-${field.fieldCode}-${fieldIndex}`}\n            >\n                <ChangedStopFieldLabel\n                    stop={stop}\n                    code={field.fieldCode}\n                    oldValue={field.oldValue}\n                    newValue={field.newValue}\n                />\n            </NotificationVerticalRow>\n        )),\n    );\n\n    return (\n        <NotificationCardInnerLayout>\n            <NotificationVerticalRowsLayout>\n                {[\n                    <NotificationVerticalRow key=\"summary\">\n                        <Trans\n                            i18nKey=\"common:notifications.transportation-order-was-updated\"\n                            components={{\n                                transportationOrderNumber: (\n                                    <NotificationEntityLabel isBold isUnderline text={transportationOrderNumber} />\n                                ),\n                            }}\n                        />\n                    </NotificationVerticalRow>,\n                    ...updatedFields.map((field, index) => (\n                        <NotificationVerticalRow key={`${field.fieldCode}-${index}`}>\n                            <ChangedFieldLabel\n                                code={field.fieldCode}\n                                oldValue={field.oldValue}\n                                newValue={field.newValue}\n                            />\n                        </NotificationVerticalRow>\n                    )),\n                    ...stopFieldRows,\n                ]}\n            </NotificationVerticalRowsLayout>\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default TransportationOrderWasUpdatedCard;\n","import * as React from 'react';\nimport { useEffect } from 'react';\nimport isEmpty from 'lodash/isEmpty';\nimport scrollIntoView from 'scroll-into-view';\nimport { MS_IN_SEC } from 'common/utils/time';\n\ntype PropsT = {\n    submitCount: number;\n    errors: Record<string, any>;\n};\n\nconst FOCUS_TIME = MS_IN_SEC / 3;\n\nconst ScrollToFirstError: React.FC<PropsT> = React.memo((props) => {\n    const { submitCount, errors } = props;\n\n    const ref = React.createRef<HTMLDivElement>();\n\n    useEffect(() => {\n        const hasErrors = !isEmpty(errors);\n        if (!hasErrors) {\n            return;\n        }\n\n        if (!ref.current) {\n            return;\n        }\n\n        const formNode = ref.current.closest('form');\n        if (!formNode) {\n            return;\n        }\n\n        const fieldErrorNodes = formNode.querySelectorAll('[data-error-message]');\n        const firstErrorFieldNode = fieldErrorNodes?.[0];\n        if (!firstErrorFieldNode) {\n            return;\n        }\n\n        scrollIntoView(firstErrorFieldNode as HTMLElement, {\n            time: FOCUS_TIME,\n            align: {\n                top: 0.25,\n            },\n        });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [submitCount]);\n\n    return <div ref={ref} hidden />;\n});\n\nexport default ScrollToFirstError;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './CheckboxHeader.scss';\nimport Checkbox from 'design-system/components/Checkbox/Checkbox';\n\ntype PropsT<TableRowT> = {\n    rows: Array<TableRowT>;\n    selectedRowsSet: Set<TableRowT>;\n    onChange: (selectedRowsSet: Set<TableRowT>) => void;\n    className?: string;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\nconst CheckboxHeader = <TableRowT extends {}>(props: PropsT<TableRowT>) => {\n    const { rows, selectedRowsSet, onChange, className } = props;\n\n    const [isShowSelectedAll, setShowSelectedAll] = React.useState<boolean>(false);\n\n    React.useEffect(() => {\n        setShowSelectedAll(false);\n    }, [rows]);\n\n    return (\n        <Checkbox\n            checked={isShowSelectedAll}\n            onChange={() => {\n                const isSelectedAll = rows.length === selectedRowsSet.size;\n                if (isSelectedAll) {\n                    setShowSelectedAll(false);\n                    onChange(new Set());\n                } else {\n                    setShowSelectedAll(true);\n                    onChange(new Set(rows));\n                }\n            }}\n            className={className}\n            label={null}\n        />\n    );\n};\n\nexport default React.memo(CheckboxHeader) as typeof CheckboxHeader;\n","// extracted by mini-css-extract-plugin\nexport default {\"action\":\"ExpireDateCell__action___v812H\",\"date\":\"ExpireDateCell__date___aGQYb\",\"fadeIn\":\"ExpireDateCell__fadeIn___Nklud\",\"blinking\":\"ExpireDateCell__blinking___InNAZ\"};","import { DictDocumentT } from 'common/store/documents-dict/models';\nimport { DocumentIdsByTypeT, DocumentT } from 'common/store/documents/models';\nimport { isNonNil } from 'common/utils';\n\nconst getDocumentInfo = (\n    dictDocument: DictDocumentT | null,\n    documentIdsByType: DocumentIdsByTypeT | null,\n    documentsById: Record<DocumentIdT, DocumentT> | null,\n) => {\n    if (!dictDocument) {\n        return null;\n    }\n\n    const versionIds = documentIdsByType?.[dictDocument.type] || null;\n    const actualVersionId = versionIds?.[0] || null;\n    const actualVersion = documentsById?.[actualVersionId as DocumentIdT] || null;\n    const oldVersionIds = versionIds?.slice(1) || [];\n    const oldVersions = oldVersionIds\n        .map((versionId) => {\n            return documentsById?.[versionId];\n        })\n        .filter(isNonNil);\n\n    return {\n        dictDocument,\n        actualVersion,\n        oldVersions,\n    };\n};\n\nexport { getDocumentInfo };\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"PaperLayout__wrap___ljxap\",\"thumbnail\":\"PaperLayout__thumbnail___uSzUv\",\"thumbnail__img\":\"PaperLayout__thumbnail__img____4FNx\",\"thumbnail--clickable\":\"PaperLayout__thumbnail--clickable___go3f_\",\"controls\":\"PaperLayout__controls___oLXBc\",\"controls__button-inner\":\"PaperLayout__controls__button-inner___YL97N\",\"uploaded-by-label\":\"PaperLayout__uploaded-by-label___vJ4QN\",\"loader\":\"PaperLayout__loader___K6qSk\",\"loader__container\":\"PaperLayout__loader__container___vBgNc\",\"loader__container--is-paranja\":\"PaperLayout__loader__container--is-paranja___wWoGe\",\"details\":\"PaperLayout__details___O9t8T\",\"details__file-name\":\"PaperLayout__details__file-name___CWJNS\",\"details__date\":\"PaperLayout__details__date___n7ufx\",\"details__user-link\":\"PaperLayout__details__user-link___K70ya\",\"details__user-text\":\"PaperLayout__details__user-text___NkhIt\",\"fadeIn\":\"PaperLayout__fadeIn___zD4H0\",\"blinking\":\"PaperLayout__blinking___IC9tm\"};","// extracted by mini-css-extract-plugin\nexport default {\"status\":\"RFQStatusPill__status___TfdIr\",\"fadeIn\":\"RFQStatusPill__fadeIn___gCD13\",\"blinking\":\"RFQStatusPill__blinking___XGspP\"};","import React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './SearchControl.scss';\nimport Input from 'common/components/Input/Input';\nimport SearchIcon, { SearchIconProps } from 'common/icons/SearchIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport { simpleStringFormatter } from 'common/utils/form-formatters';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    searchText: string | null | undefined;\n    placeholder: string;\n    onChangeSearchText: (searchText: string) => void;\n    className?: string;\n};\n\nlet timeoutId: NodeJS.Timeout | null = null;\n\nconst COLD_TIME = 500;\n\nconst SearchControl: React.FC<PropsT> = React.memo((props) => {\n    const { searchText, placeholder, onChangeSearchText } = props;\n\n    const [isFocused, setFocused] = React.useState<boolean>(false);\n    const [isShow, setShow] = React.useState<boolean>(!!searchText);\n    const [text, setText] = React.useState<string>(searchText || '');\n\n    React.useEffect(() => {\n        if (searchText !== simpleStringFormatter(text)) {\n            setText(searchText || '');\n\n            if (!searchText && !isFocused) {\n                setShow(false);\n            }\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [searchText]);\n\n    const handleChangeText = (text: string): void => {\n        setText(text);\n\n        if (timeoutId) {\n            clearTimeout(timeoutId);\n        }\n\n        timeoutId = setTimeout(() => {\n            onChangeSearchText(simpleStringFormatter(text));\n        }, COLD_TIME);\n\n        // if clear button\n        if (!isFocused) {\n            setShow(false);\n        }\n    };\n\n    const handleFocus = (): void => {\n        setFocused(true);\n    };\n\n    const handleBlur = (): void => {\n        setFocused(false);\n\n        const isEmpty = !text;\n        if (isEmpty) {\n            setShow(false);\n        }\n    };\n\n    if (!isShow) {\n        return (\n            <TransparentTrigger\n                onClick={() => {\n                    setShow(true);\n                }}\n                leftIcon={<SearchIcon fillColor={StyleGuideColorsEnum.charcoal} />}\n                reflectionTheme={ReflectionThemeEnum.light}\n            />\n        );\n    }\n\n    return (\n        <Input\n            autoFocus\n            name=\"search-text\"\n            className={cx('search')}\n            renderLeftIcon={(iconMeta) => <SearchIcon {...SearchIconProps.getControlProps(iconMeta)} />}\n            placeholder={placeholder}\n            value={text}\n            onChange={handleChangeText}\n            hasClearControl\n            onFocus={handleFocus}\n            onBlur={handleBlur}\n        />\n    );\n});\n\nexport default SearchControl;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"TransportationOrderMileagAndPaymentChangedCard__inner___a73Fe\",\"fadeIn\":\"TransportationOrderMileagAndPaymentChangedCard__fadeIn___N1bOc\",\"blinking\":\"TransportationOrderMileagAndPaymentChangedCard__blinking___wUFX8\"};","import { ApiReserveT, ReserveT, ReserveTimeWindowT } from '../models';\nimport { MS_IN_SEC } from 'common/utils/time';\n\nconst preparePreview = (apiReserve: ApiReserveT): ReserveT => {\n    const { points: apiPoints, ...restApiReserve } = apiReserve;\n\n    const expireTime = apiReserve.secondsToExpire * MS_IN_SEC + Date.now();\n\n    return {\n        ...restApiReserve,\n        expireTime,\n        points: apiPoints.map((apiPoint): ReserveT['points'][number] => {\n            const { defaultFrom, defaultTo, ...restApiPoint } = apiPoint;\n\n            const defaultTimeWindow: ReserveTimeWindowT = {\n                start: defaultFrom,\n                end: defaultTo,\n            };\n\n            return {\n                ...restApiPoint,\n                defaultTimeWindow,\n            };\n        }),\n    };\n};\n\nexport default preparePreview;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ReviewFooterContent.scss';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport { logWarning } from 'common/utils/logger';\nimport { useSelector } from 'react-redux';\nimport { selectUpdateCompanyDocumentsRequest } from 'common/store/documents/selectors';\nimport { DocumentVersionT } from 'common/store/documents/models';\nimport { DictDocumentT } from 'common/store/documents-dict/models';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    dictDocument: DictDocumentT | null;\n    actualVersion: DocumentVersionT | null;\n    onReject: (dictDocumentId: DictDocumentFakeIdT, id: DocumentIdT) => void;\n    partnerId: PartnerIdT | null;\n};\n\nconst ReviewFooterContent: React.FC<PropsT> = React.memo((props) => {\n    const { actualVersion, onReject, dictDocument, partnerId } = props;\n\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n\n    const updateRequest = useSelector(selectUpdateCompanyDocumentsRequest(partnerId));\n\n    const { t } = useTranslation();\n\n    return (\n        <div className={cx('content')}>\n            <div className={cx('actions')}>\n                <Button\n                    theme={ButtonThemeEnum.danger}\n                    className={cx('action', 'action--reject')}\n                    onClick={() => {\n                        if (!actualVersion?.id) {\n                            logWarning('failed to reject, empty actualVersion?.id');\n                            return;\n                        }\n\n                        if (!dictDocument?.id) {\n                            logWarning('failed to reject, empty dictDocument?.id');\n                            return;\n                        }\n\n                        onReject(dictDocument.id, actualVersion.id);\n                    }}\n                    isDisabled={updateRequest.loading}\n                >\n                    {t('common:document.actions.reject')}\n                </Button>\n                <Button\n                    theme={ButtonThemeEnum.primary}\n                    className={cx('action', 'action--approve')}\n                    onClick={remoteFormActionsContext?.remoteFormCallbacks?.submit}\n                    isLoading={updateRequest.loading}\n                    isDisabled={updateRequest.loading}\n                >\n                    {t('common:document.actions.approve')}\n                </Button>\n            </div>\n        </div>\n    );\n});\n\nexport default ReviewFooterContent;\n","// extracted by mini-css-extract-plugin\nexport default {\"map-tooltip\":\"MapPin__map-tooltip___wFL3n\",\"map-tooltip--hasPaddings\":\"MapPin__map-tooltip--hasPaddings___P9EEQ\",\"map-tooltip--hasBorder\":\"MapPin__map-tooltip--hasBorder___Yy4FA\",\"map-tooltip--hasArrow\":\"MapPin__map-tooltip--hasArrow___B9_yx\",\"map-tooltip--theme-light\":\"MapPin__map-tooltip--theme-light___PVuyT\",\"map-tooltip--theme-gray\":\"MapPin__map-tooltip--theme-gray___w5336\",\"map-tooltip--theme-brand-dark\":\"MapPin__map-tooltip--theme-brand-dark___P2gUz\",\"map-tooltip--theme-slate\":\"MapPin__map-tooltip--theme-slate___bPH5i\",\"map-tooltip--theme-tomato-red\":\"MapPin__map-tooltip--theme-tomato-red___soDdr\",\"map-tooltip--theme-blaze-orange\":\"MapPin__map-tooltip--theme-blaze-orange___JmtLw\",\"fadeIn\":\"MapPin__fadeIn___yNFES\",\"blinking\":\"MapPin__blinking___oheIF\"};","import { findTourById } from 'broker-admin/store/broker-order-details/utils/find-tour-by-id';\nimport { StopTypeEnum } from 'common/utils/api/models';\nimport isNumber from 'lodash/isNumber';\nimport { formatLocation } from 'common/utils/formatters';\nimport { BrokerOrderDetailsT } from 'broker-admin/store/broker-order-details/models';\nimport { InitDropPointT } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/models';\n\nexport const createInitWaypointTruckDropPoint = (\n    brokerOrderDetails: BrokerOrderDetailsT | null,\n    tourId: TourIdT | null,\n): InitDropPointT | null => {\n    const tour = findTourById(brokerOrderDetails, tourId);\n    const waypoints = tour?.waypoints || [];\n\n    const lastDropWaypoint =\n        waypoints?.find((waypoint) => {\n            return waypoint.type === StopTypeEnum.dropTruck || waypoint.type === StopTypeEnum.dropRoadTrain;\n        }) || null;\n\n    const waypoint = lastDropWaypoint || null;\n    if (!waypoint) {\n        return null;\n    }\n\n    const waypointAddress = waypoint?.address || null;\n    if (!waypointAddress) {\n        return null;\n    }\n\n    if (!isNumber(waypointAddress?.latitude) || !isNumber(waypointAddress?.longitude)) {\n        return null;\n    }\n\n    return {\n        location: {\n            address: formatLocation(waypointAddress),\n            utcOffsetMinutes: null,\n            addressComponents: {\n                countryCode: waypointAddress.country,\n                street1: waypointAddress?.street1,\n                street2: waypointAddress?.street2,\n                zipCode: waypointAddress?.zipCode,\n                city: waypointAddress?.city,\n            },\n            point: {\n                lat: waypointAddress.latitude || 0,\n                lng: waypointAddress.longitude || 0,\n            },\n        },\n        index: isNumber(waypoint?.index) ? waypoint.index : null,\n    };\n};\n","import { DictCarrierAdditionalServiceGroupT } from './models';\n\nexport function normalizeAdditionalServicesResponse(\n    response: DictCarrierAdditionalServiceGroupT[] | null,\n): DictCarrierAdditionalServiceGroupT[] | null {\n    if (!response) {\n        return null;\n    }\n\n    return response\n        .map((group) => ({\n            ...group,\n            services: [...group.services].sort((serviceA, serviceB) => {\n                return serviceA.service.localeCompare(serviceB.service);\n            }),\n        }))\n        .sort((groupA, groupB) => {\n            const categoryCompare = groupA.category.localeCompare(groupB.category);\n            if (categoryCompare !== 0) {\n                return categoryCompare;\n            }\n\n            const aTrailerType = groupA.trailerType || '';\n            const bTrailerType = groupB.trailerType || '';\n            return aTrailerType.localeCompare(bTrailerType);\n        });\n}\n","import { RequestStatusT } from 'common/utils/request-status';\n\nimport { DispatcherT } from './models';\n\nexport const FETCH_DISPATCHERS_REQUEST = 'broker-admin/dispatchers/FETCH_DISPATCHERS_REQUEST';\nexport const FETCH_DISPATCHERS_REQUEST_BEGIN = 'broker-admin/dispatchers/FETCH_DISPATCHERS_REQUEST_BEGIN';\nexport const FETCH_DISPATCHERS_REQUEST_ERROR = 'broker-admin/dispatchers/FETCH_DISPATCHERS_REQUEST_ERROR';\nexport const FETCH_DISPATCHERS_REQUEST_SUCCESS = 'broker-admin/dispatchers/FETCH_DISPATCHERS_REQUEST_SUCCESS';\n\ntype DispatcherIdT = string;\n\nexport type DispatchersStateT = {\n    request: RequestStatusT;\n    byId: Record<DispatcherIdT, DispatcherT>;\n    allIds: Array<DispatcherIdT>;\n};\n\nexport type FetchDispatchersActionT = {\n    type: typeof FETCH_DISPATCHERS_REQUEST;\n};\n\nexport type FetchDispatchersBeginActionT = {\n    type: typeof FETCH_DISPATCHERS_REQUEST_BEGIN;\n};\n\nexport type FetchDispatchersSuccessActionT = {\n    type: typeof FETCH_DISPATCHERS_REQUEST_SUCCESS;\n    dispatchers: DispatcherT[];\n};\n\nexport type FetchDispatchersErrorActionT = {\n    type: typeof FETCH_DISPATCHERS_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type DispatchersActionT =\n    | FetchDispatchersActionT\n    | FetchDispatchersBeginActionT\n    | FetchDispatchersSuccessActionT\n    | FetchDispatchersErrorActionT;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"SideBar__wrapper___LM3dZ\",\"fadeIn\":\"SideBar__fadeIn___XIAyc\",\"blinking\":\"SideBar__blinking___Rf91Z\"};","import { TFunction } from 'i18next';\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkNotEmpty } from 'common/utils/form-validators';\n\nconst REQUIRED_FIELDS = [\n    FieldsEnum.name,\n    FieldsEnum.partnerType,\n    FieldsEnum.street1,\n    FieldsEnum.countryCode,\n    FieldsEnum.zipCode,\n    FieldsEnum.city,\n];\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"QuickActions__wrap___bwpgL\",\"action\":\"QuickActions__action___Phomw\",\"button\":\"QuickActions__button___yDVic\",\"fadeIn\":\"QuickActions__fadeIn___KDwYp\",\"blinking\":\"QuickActions__blinking___IQePY\"};","import { TFunction } from 'i18next';\n\nimport {\n    FieldsEnum,\n    FormErrorsT,\n    FormValuesT,\n    PointContactsFieldsEnum,\n    RoutePointT,\n    ShipmentFieldsEnum,\n} from './constants';\nimport { ApiTrailerDictTypeT, OrderCreationReservePointTypeEnum } from 'common/utils/api/models';\nimport { checkEmail, checkMinValue, checkNotEmpty, checkNotZero, checkPhoneNumber } from 'common/utils/form-validators';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport { UnitTypeEnum } from 'common/constants';\nimport keys from 'lodash/keys';\nimport set from 'lodash/set';\n\nconst SHIPMENT_REQUIRED_FIELDS = [\n    ShipmentFieldsEnum.cargoUnitType,\n    ShipmentFieldsEnum.cargoUnitsCount,\n    ShipmentFieldsEnum.cargoWeight,\n    ShipmentFieldsEnum.pickUpPointId,\n    ShipmentFieldsEnum.dropOffPointId,\n] as const;\n\nconst SHIPMENT_NOT_ZERO_FIELDS = [ShipmentFieldsEnum.cargoUnitsCount] as const;\n\nconst POINT_CONTACTS_EMAILS_FIELDS = [PointContactsFieldsEnum.email] as const;\n\nconst POINT_CONTACTS_PHONE_FIELDS = [PointContactsFieldsEnum.phoneNumber] as const;\n\nconst POINT_CONTACTS_REQUIRED_FIELDS = [PointContactsFieldsEnum.companyName] as const;\n\ntype ValidateMetaT = {\n    routePoints: Array<RoutePointT>;\n    trailerType: ApiTrailerDictTypeT | null | undefined;\n};\n\nconst validate = (t: TFunction, values: FormValuesT, meta: ValidateMetaT): FormErrorsT => {\n    const { routePoints, trailerType } = meta;\n\n    const errors: FormErrorsT = {};\n\n    const shipmentsFormValues = values[FieldsEnum.shipments];\n    shipmentsFormValues.forEach((shipmentFormValues, index) => {\n        const shipmentFormErrors: NonNullable<FormErrorsT[FieldsEnum.shipments]>[number] = {\n            ...checkNotEmpty(t, SHIPMENT_REQUIRED_FIELDS, shipmentFormValues),\n            ...checkNotZero(t, SHIPMENT_NOT_ZERO_FIELDS, shipmentFormValues),\n            ...checkMinValue(\n                t,\n                [ShipmentFieldsEnum.cargoUnitsCount, ShipmentFieldsEnum.cargoWeight],\n                shipmentFormValues,\n                0,\n            ),\n        };\n\n        const parsedCargoWeight = parseSimpleNumber(shipmentFormValues[ShipmentFieldsEnum.cargoWeight]);\n        if (parsedCargoWeight && trailerType?.weight && parsedCargoWeight > trailerType.weight) {\n            shipmentFormErrors[ShipmentFieldsEnum.cargoWeight] = t('common:new-order-form.errors.cargo-is-too-huge');\n        }\n\n        const parsedUnitsCount = parseSimpleNumber(shipmentFormValues[ShipmentFieldsEnum.cargoUnitsCount]);\n        const cargoUnitType = shipmentFormValues[ShipmentFieldsEnum.cargoUnitType];\n\n        const isMoreUnitLimits =\n            (cargoUnitType === UnitTypeEnum.eur1Pallets &&\n                trailerType?.eur1Pallets &&\n                parsedUnitsCount &&\n                parsedUnitsCount > trailerType.eur1Pallets) ||\n            (cargoUnitType === UnitTypeEnum.eur2Pallets &&\n                trailerType?.eur2Pallets &&\n                parsedUnitsCount &&\n                parsedUnitsCount > trailerType.eur2Pallets) ||\n            (cargoUnitType === UnitTypeEnum.eur6Pallets &&\n                trailerType?.eur6Pallets &&\n                parsedUnitsCount &&\n                parsedUnitsCount > trailerType.eur6Pallets);\n\n        if (isMoreUnitLimits) {\n            shipmentFormErrors[ShipmentFieldsEnum.cargoUnitsCount] = t(\n                'common:new-order-form.errors.cargo-is-too-huge',\n            );\n        }\n\n        keys(shipmentFormErrors).forEach((fieldName) => {\n            set(\n                errors,\n                `${FieldsEnum.shipments}.${index}.${fieldName}`,\n                shipmentFormErrors[fieldName as ShipmentFieldsEnum],\n            );\n        });\n    });\n\n    const contactsFormValues = values[FieldsEnum.contacts];\n    contactsFormValues.forEach((contactFormValues, index) => {\n        const point = routePoints[index];\n        if (point?.type !== OrderCreationReservePointTypeEnum.shipment) {\n            return;\n        }\n\n        const contactFormErrors: NonNullable<FormErrorsT[FieldsEnum.contacts]>[number] = {\n            ...checkNotEmpty(t, POINT_CONTACTS_REQUIRED_FIELDS, contactFormValues),\n            ...checkEmail(t, POINT_CONTACTS_EMAILS_FIELDS, contactFormValues),\n            ...checkPhoneNumber(t, POINT_CONTACTS_PHONE_FIELDS, contactFormValues),\n        };\n\n        keys(contactFormErrors).forEach((fieldName) => {\n            set(\n                errors,\n                `${FieldsEnum.contacts}.${index}.${fieldName}`,\n                contactFormErrors[fieldName as PointContactsFieldsEnum],\n            );\n        });\n    });\n\n    return errors;\n};\n\nexport default validate;\n","// extracted by mini-css-extract-plugin\nexport default {\"section__title\":\"EditDriverFormContent__section__title___ZELQb\",\"section__block\":\"EditDriverFormContent__section__block___UfTPX\",\"field--formal\":\"EditDriverFormContent__field--formal___DBdkz\",\"field--first-name\":\"EditDriverFormContent__field--first-name___tVWoe\",\"field--last-name\":\"EditDriverFormContent__field--last-name___VjTQ5\",\"field--desktop-phone\":\"EditDriverFormContent__field--desktop-phone___rD7A6\",\"field--mobile-phone\":\"EditDriverFormContent__field--mobile-phone___jY4Ro\",\"field--fax-number\":\"EditDriverFormContent__field--fax-number___Ulx1H\",\"field--email\":\"EditDriverFormContent__field--email___GU9Cz\",\"field--birthday\":\"EditDriverFormContent__field--birthday___qc3o9\",\"field--country\":\"EditDriverFormContent__field--country___VooZt\",\"field--language\":\"EditDriverFormContent__field--language___YLwj8\",\"field--rate\":\"EditDriverFormContent__field--rate____xPRk\",\"media\":\"EditDriverFormContent__media____iWkN\",\"media__input\":\"EditDriverFormContent__media__input___yUrpL\",\"media__icon\":\"EditDriverFormContent__media__icon___KT8Uu\",\"fadeIn\":\"EditDriverFormContent__fadeIn___mXFmb\",\"blinking\":\"EditDriverFormContent__blinking___uDSqG\"};","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"InvitedToTeamCard__inner___b7UrF\",\"fadeIn\":\"InvitedToTeamCard__fadeIn___NfQx5\",\"blinking\":\"InvitedToTeamCard__blinking___XFJ5j\"};","import {\n    FETCH_RFQS_STATS_REQUEST_BEGIN,\n    FETCH_RFQS_STATS_REQUEST_ERROR,\n    FETCH_RFQS_STATS_REQUEST_SUCCESS,\n    RFQsStatsActionT,\n    RFQsStatsStateT,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: RFQsStatsStateT = {\n    stats: null,\n    fetchRequest: requestStatus.initial,\n};\n\nexport default (state = initialState, action: RFQsStatsActionT | DestroySessionActionT): RFQsStatsStateT => {\n    switch (action.type) {\n        case FETCH_RFQS_STATS_REQUEST_BEGIN: {\n            return {\n                ...state,\n                fetchRequest: requestStatus.loading,\n            };\n        }\n\n        case FETCH_RFQS_STATS_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                fetchRequest: requestStatus.setError(error),\n            };\n        }\n\n        case FETCH_RFQS_STATS_REQUEST_SUCCESS: {\n            const { statistics } = action;\n            return {\n                ...state,\n                stats: statistics,\n                fetchRequest: requestStatus.ok,\n            };\n        }\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default:\n            return state;\n    }\n};\n","import * as React from 'react';\nimport { BrokerSidebarDataT } from './models';\nimport { BrokerSidebarsTypeEnum } from './constants';\nimport { GetSidebarCloseConfirmationT, RenderSidebarContentT } from 'common/layouts/SideBars/models';\nimport SpotRequestDetailsSidebarContent from 'broker-admin/layouts/SideBars/SpotRequestDetailsSidebarContent/SpotRequestDetailsSidebarContent';\nimport SpotRequestsFiltersSidebarContent from 'broker-admin/layouts/SideBars/SpotRequestsFiltersSidebarContent/SpotRequestsFiltersSidebarContent';\nimport PartnerFiltersSidebarContent from 'broker-admin/layouts/SideBars/PartnerFiltersSidebarContent/PartnerFiltersSidebarContent';\nimport CreatePartnerSidebarContent from 'broker-admin/layouts/SideBars/CreatePartnerSidebarContent/CreatePartnerSidebarContent';\nimport CreateExternalPartnerSidebarContent from 'broker-admin/layouts/SideBars/CreateExternalPartnerSidebarContent/CreateExternalPartnerSidebarContent';\nimport PriceSettingsRuleFiltersSidebarContent from 'broker-admin/layouts/SideBars/PriceSettingsRuleFiltersSidebarContent/PriceSettingsRuleFiltersSidebarContent';\nimport PriceSettingsEditRuleSidebarContent from 'broker-admin/layouts/SideBars/PriceSettingsEditRuleSidebarContent/PriceSettingsEditRuleSidebarContent';\nimport StatisticFiltersSidebarContent from 'broker-admin/layouts/SideBars/StatisticFiltersSidebarContent/StatisticFiltersSidebarContent';\nimport UploadShipperContractSidebarContent from 'broker-admin/layouts/SideBars/UploadShipperContractSidebarContent/UploadShipperContractSidebarContent';\nimport EditableShipperContractLaneDetailsSidebarContent from 'broker-admin/layouts/SideBars/EditableShipperContractLaneDetailsSidebarContent/EditableShipperContractLaneDetailsSidebarContent';\nimport EditBrokerTeamSidebarContent from 'broker-admin/layouts/SideBars/EditBrokerTeamSidebarContent/EditBrokerTeamSidebarContent';\nimport RFQStatisticsSidebarContent from 'broker-admin/layouts/SideBars/RFQStatisticsSidebarContent/RFQStatisticsSidebarContent';\n\nexport const renderSidebarContent: RenderSidebarContentT<BrokerSidebarDataT> = (props) => {\n    const { data, ...restProps } = props;\n\n    switch (data.type) {\n        case BrokerSidebarsTypeEnum.spotRequestDetails: {\n            return <SpotRequestDetailsSidebarContent data={data} {...restProps} />;\n        }\n\n        case BrokerSidebarsTypeEnum.spotRequestsFilter: {\n            return <SpotRequestsFiltersSidebarContent data={data} {...restProps} />;\n        }\n\n        case BrokerSidebarsTypeEnum.partnerFilter: {\n            return <PartnerFiltersSidebarContent data={data} {...restProps} />;\n        }\n\n        case BrokerSidebarsTypeEnum.createPartner: {\n            return <CreatePartnerSidebarContent data={data} {...restProps} />;\n        }\n\n        case BrokerSidebarsTypeEnum.createExternalPartner: {\n            return <CreateExternalPartnerSidebarContent data={data} {...restProps} />;\n        }\n\n        case BrokerSidebarsTypeEnum.priceSettingsRuleFilter: {\n            return <PriceSettingsRuleFiltersSidebarContent data={data} {...restProps} />;\n        }\n\n        case BrokerSidebarsTypeEnum.editPriceSettingsRuleSidebar: {\n            return <PriceSettingsEditRuleSidebarContent data={data} {...restProps} />;\n        }\n\n        case BrokerSidebarsTypeEnum.statisticsFilter: {\n            return <StatisticFiltersSidebarContent data={data} {...restProps} />;\n        }\n\n        case BrokerSidebarsTypeEnum.uploadShipperContract: {\n            return <UploadShipperContractSidebarContent data={data} {...restProps} />;\n        }\n\n        case BrokerSidebarsTypeEnum.shipperContractLaneDetails: {\n            return <EditableShipperContractLaneDetailsSidebarContent data={data} {...restProps} />;\n        }\n\n        case BrokerSidebarsTypeEnum.editBrokerTeamDetails: {\n            return <EditBrokerTeamSidebarContent data={data} {...restProps} />;\n        }\n\n        case BrokerSidebarsTypeEnum.rfqStatistics: {\n            return <RFQStatisticsSidebarContent data={data} {...restProps} />;\n        }\n\n        default: {\n            return null;\n        }\n    }\n};\n\nexport const getSidebarCloseConfirmation: GetSidebarCloseConfirmationT<BrokerSidebarDataT> = (\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    t,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    data,\n) => {\n    return null;\n};\n","export enum FieldsEnum {\n    transportationOrderHasNoDriverAlertTime = 'transportationOrderHasNoDriverAlertTime',\n    assignDriverLimitAlert = 'assignDriverLimitAlert',\n    allowedGAPToBeDelayed = 'ALLOWED_GAP_TO_BE_DELAYED',\n    deleteNotificationsOlderDays = 'DELETE_NOTIFICATIONS_OLDER_DAYS',\n    docExpiresSoonAlert = 'DOC_EXPIRES_SOON_ALERT',\n    assignAssetLimitAlert = 'assignAssetLimitAlert',\n    transportationOrderHasNoAssetsAlertTime = 'transportationOrderHasNoAssetsAlertTime',\n    radiusAroundWaypointM = 'RADIUS_AROUND_WAYPOINT_METERS',\n    timeLimitToCancelOrderHours = 'TIME_LIMIT_TO_CANCEL_ORDER_HOURS',\n    timeLimitToCancelTransportationOrderHours = 'TIME_LIMIT_TO_CANCEL_TRANSPORTATION_ORDER_HOURS',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.transportationOrderHasNoDriverAlertTime]: string;\n    [FieldsEnum.assignDriverLimitAlert]: string;\n    [FieldsEnum.allowedGAPToBeDelayed]: string;\n    [FieldsEnum.deleteNotificationsOlderDays]: string;\n    [FieldsEnum.docExpiresSoonAlert]: string;\n    [FieldsEnum.assignAssetLimitAlert]: string;\n    [FieldsEnum.transportationOrderHasNoAssetsAlertTime]: string;\n    [FieldsEnum.radiusAroundWaypointM]: string;\n    [FieldsEnum.timeLimitToCancelOrderHours]: string;\n    [FieldsEnum.timeLimitToCancelTransportationOrderHours]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PartnerDetailsLayout.scss';\nimport { useTranslation } from 'react-i18next';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport { PartnerDetailsT } from 'broker-admin/store/partner/details/models';\nimport { AddressTypeEnum, PartnerTypeEnum } from 'common/utils/api/models';\nimport Widget from 'common/components/Widget/Widget';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport BasicWidgetHeaderActions from '../BasicWidgetHeaderActions/BasicWidgetHeaderActions';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { checkIsAllowedLock, getBlockLockingReason } from 'broker-admin/store/partner/details/utils/lock';\nimport PartnerAddressWidget from '../PartnerAddressWidget/PartnerAddressWidget';\nimport { isNonNil } from 'common/utils';\nimport { checkNeedShowCreditLimit } from 'broker-admin/store/partner/details/utils/check-need-show-credit-limit';\nimport ExternalRestrictionsPill from '../ExternalRestrictionsPill/ExternalRestrictionsPill';\nimport { checkHasExternalRestrictions } from '../utils/check-has-external-restrictions';\nimport PartnerDetailsHeaderPills from '../PartnerDetailsHeaderPills/PartnerDetailsHeaderPills';\nimport RFQStats from '../RFQStats/RFQStats';\nimport CreditLimit from '../CreditLimit/CreditLimit';\nimport { checkNeedShowBillingInfo } from 'broker-admin/store/partner/details/utils/check-need-show-billing-info';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    partnerDetails: PartnerDetailsT | null;\n};\n\nconst PartnerDetailsLayout: React.FC<PropsT> = React.memo((props) => {\n    const { partnerDetails } = props;\n\n    const { partnerType } = usePartnerContext();\n\n    const { t } = useTranslation();\n\n    const shouldShowBillingInfo = checkNeedShowBillingInfo(partnerType);\n\n    return (\n        <ContentMargins className={cx('wrap')}>\n            <Widget\n                className={cx('widget')}\n                title={t('partner.details-tab.segments.basic')}\n                afterTitleNode={\n                    <PartnerDetailsHeaderPills>\n                        {checkHasExternalRestrictions(partnerDetails?.operationUnavailableReasons) ? (\n                            <ExternalRestrictionsPill />\n                        ) : null}\n                    </PartnerDetailsHeaderPills>\n                }\n                rightNode={\n                    <BasicWidgetHeaderActions\n                        blockUnlockingReason={getBlockLockingReason(partnerType, partnerDetails)}\n                        isShowUnlock={checkIsAllowedLock(partnerType)}\n                        blockLockingReason={getBlockLockingReason(partnerType, partnerDetails)}\n                        isShowLock={checkIsAllowedLock(partnerType)}\n                        partnerDetails={partnerDetails}\n                    />\n                }\n            >\n                <div className={cx('widget__inner')}>\n                    <FieldGroup>\n                        <ReadOnlyField\n                            className={cx('field', 'field--name')}\n                            label={t('partner.details-tab.fields.name.label')}\n                            value={partnerDetails?.name || ''}\n                        />\n                        <ReadOnlyField\n                            className={cx('field', 'field--teams')}\n                            label={t('partner.details-tab.fields.teams.label')}\n                            tooltipNode={\n                                <TooltipContent theme={TooltipContentThemeEnum.black} width={200}>\n                                    {t('partner.details-tab.fields.teams.tooltip')}\n                                </TooltipContent>\n                            }\n                            value={\n                                partnerDetails?.teams\n                                    ?.map((team) => {\n                                        return team?.name || '';\n                                    })\n                                    .join(', ') || ''\n                            }\n                        />\n                        <ReadOnlyField\n                            className={cx('field', 'field--main-contact')}\n                            label={t('partner.details-tab.fields.main-contact.label')}\n                            value={\n                                (partnerDetails?.mainContactInfo &&\n                                    [partnerDetails.mainContactInfo.name, partnerDetails.mainContactInfo.surname]\n                                        .filter(isNonNil)\n                                        .join(' ')) ||\n                                ''\n                            }\n                        />\n                    </FieldGroup>\n                </div>\n            </Widget>\n            {partnerType === PartnerTypeEnum.shipper && (\n                <div className={cx('stats-widget-group')}>\n                    {checkNeedShowCreditLimit(partnerDetails) && (\n                        <Widget\n                            className={cx('widget', 'stats-widget-group__widget')}\n                            title={t('partner.details-tab.segments.credit-limit')}\n                            titleTooltipNode={\n                                <TooltipContent theme={TooltipContentThemeEnum.black} width={200}>\n                                    {t('partner.details-tab.credit-limit-tooltip')}\n                                </TooltipContent>\n                            }\n                            afterTitleNode={<CreditLimit creditLimit={partnerDetails.creditLimit} />}\n                        />\n                    )}\n                    <Widget\n                        className={cx('widget', 'stats-widget-group__widget')}\n                        title={t('partner.details-tab.segments.rfq-stats')}\n                        titleTooltipNode={\n                            <TooltipContent theme={TooltipContentThemeEnum.black} width={200}>\n                                {t('partner.details-tab.rfq-stats-tooltip')}\n                            </TooltipContent>\n                        }\n                        afterTitleNode={<RFQStats />}\n                    />\n                </div>\n            )}\n            <div className={cx('widget-group')}>\n                <PartnerAddressWidget\n                    className={cx('widget-group__widget')}\n                    title={t('partner.details-tab.segments.legal-address')}\n                    address={partnerDetails?.legalAddress}\n                    addressType={AddressTypeEnum.legal}\n                    companyId={partnerDetails?.id}\n                    isVerified={!!partnerDetails?.legalAddressVerified}\n                />\n                <PartnerAddressWidget\n                    className={cx('widget-group__widget')}\n                    title={t('partner.details-tab.segments.postal-address')}\n                    address={partnerDetails?.postalAddress}\n                    addressType={AddressTypeEnum.postal}\n                    companyId={partnerDetails?.id}\n                    isVerified={!!partnerDetails?.postalAddressVerified}\n                />\n                {shouldShowBillingInfo && (\n                    <PartnerAddressWidget\n                        className={cx('widget-group__widget')}\n                        title={t('partner.details-tab.segments.billing-address')}\n                        address={partnerDetails?.billingAddress}\n                        addressType={AddressTypeEnum.billing}\n                        billingEmail={partnerDetails?.billingEmail || ''}\n                        companyId={partnerDetails?.id}\n                        isVerified={!!partnerDetails?.billingAddressVerified}\n                    />\n                )}\n            </div>\n        </ContentMargins>\n    );\n});\n\nexport default PartnerDetailsLayout;\n","// extracted by mini-css-extract-plugin\nexport default {\"offer\":\"CargoDetailsForm__offer___tWlBJ\",\"block\":\"CargoDetailsForm__block___SkUoF\",\"block__title\":\"CargoDetailsForm__block__title___i4GlL\",\"block__content\":\"CargoDetailsForm__block__content___YSt8y\",\"actions\":\"CargoDetailsForm__actions___apyul\",\"actions__action--place-and-next-new-order\":\"CargoDetailsForm__actions__action--place-and-next-new-order___Y2_pB\",\"actions__action--place\":\"CargoDetailsForm__actions__action--place___kL0Fr\",\"inner\":\"CargoDetailsForm__inner___zTMTh\",\"shipments-card\":\"CargoDetailsForm__shipments-card___TrYwr\",\"contacts-card\":\"CargoDetailsForm__contacts-card___JK_M8\",\"contacts-card-title\":\"CargoDetailsForm__contacts-card-title___VMGU_\",\"fadeIn\":\"CargoDetailsForm__fadeIn___Da7gp\",\"blinking\":\"CargoDetailsForm__blinking___wm_f9\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './RevokedPartnerShipperLaneContractCard.scss';\nimport { Trans } from 'react-i18next';\nimport ShipperContractLaneId from 'broker-admin/components/notification-cards/entities/ShipperContractLaneId/ShipperContractLaneId';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    id: string;\n};\n\nconst RevokedPartnerShipperLaneContractCard: React.FC<PropsT> = React.memo((props) => {\n    const { id } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"notifications.partner-shipper-contract-lane-revoked\"\n                components={{\n                    id: <ShipperContractLaneId id={id} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default RevokedPartnerShipperLaneContractCard;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './RoutingSettingsForm.scss';\n\nimport { useFormik } from 'formik';\nimport { useTranslation } from 'react-i18next';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport FieldGroup, { FieldGroupEmptyItem } from 'common/components/FieldGroup/FieldGroup';\nimport prepareApiSystemSettings from './prepare-system-settings';\nimport withWidgetChangesDetector from 'common/components/SaveChangesNotification/withWidgetChangesDetector';\nimport Widget from 'common/components/Widget/Widget';\nimport values from 'lodash/values';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport HiddenSubmitButtonForKeyboardEnter from 'common/components/HiddenEnterSubmitButton/HiddenSubmitButtonForKeyboardEnter';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport { SystemSettingsFormCommonPropsT } from 'broker-admin/layouts/SettingsPage/SystemSettings/models';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport { useWatchFormAnyErrors } from 'common/utils/hooks/useWatchFormFormHasErrors';\nimport Switcher from 'common/components/Switcher/Switcher';\n\nconst cx = classNames.bind(styles);\n\nconst FIELD_LABEL_T_MAP = {\n    [FieldsEnum.autoExcludeNonEUCountries]: 'price-settings.routing-form.fields.auto-exclude-non-eu-countries.label',\n};\n\ntype PropsT = SystemSettingsFormCommonPropsT;\n\nconst ALL_FIELDS = values(FieldsEnum);\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(ALL_FIELDS);\n\nconst RoutingSettingsForm: React.FC<PropsT> = (props) => {\n    const { systemSettings, title, onUpdate, isLoading } = props;\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues(systemSettings);\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [systemSettings]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const apiSystemSettings = prepareApiSystemSettings(values);\n            onUpdate(apiSystemSettings);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormCallbacks) {\n            remoteFormActionsContext.setRemoteFormCallbacks({\n                submit: formik.submitForm,\n                reset: formik.resetForm,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.submitForm, formik.resetForm]);\n\n    const hasFormAnyErrors = useWatchFormAnyErrors(formik.errors);\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormState) {\n            remoteFormActionsContext.setRemoteFormState({\n                hasChanges: hasAnyFieldValueChanges,\n                hasErrors: hasFormAnyErrors,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasFormAnyErrors, hasAnyFieldValueChanges]);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormRequest) {\n            remoteFormActionsContext.setRemoteFormRequest({\n                isLoading,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isLoading]);\n\n    const WidgetChangesDetector = withWidgetChangesDetector(formik.values, initialValues);\n\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <Widget className={cx('widget')} title={title} rightNode={<WidgetChangesDetector fields={ALL_FIELDS} />}>\n                <div className={cx('widget__inner')}>\n                    <FieldGroup>\n                        <FormikField\n                            withoutLabel\n                            className={cx('checkbox')}\n                            name={FieldsEnum.autoExcludeNonEUCountries}\n                            error={formik.errors[FieldsEnum.autoExcludeNonEUCountries]}\n                            meta={formik.getFieldMeta(FieldsEnum.autoExcludeNonEUCountries)}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                            isCheckbox\n                        >\n                            {(props) => (\n                                <Switcher\n                                    checked={formik.values[FieldsEnum.autoExcludeNonEUCountries]}\n                                    onToggle={props.onChange}\n                                    label={t(FIELD_LABEL_T_MAP[FieldsEnum.autoExcludeNonEUCountries])}\n                                />\n                            )}\n                        </FormikField>\n                        <FieldGroupEmptyItem className={cx('field')} />\n                    </FieldGroup>\n                    <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n                    <HiddenSubmitButtonForKeyboardEnter />\n                </div>\n            </Widget>\n        </form>\n    );\n};\n\nexport default React.memo(RoutingSettingsForm) as typeof RoutingSettingsForm;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"TimelineSidebar__wrap___JxJgA\",\"inner\":\"TimelineSidebar__inner___zVLXJ\",\"header\":\"TimelineSidebar__header___cyxPP\",\"icons\":\"TimelineSidebar__icons___EkQzh\",\"icons__inner\":\"TimelineSidebar__icons__inner___pKVzT\",\"icons__item\":\"TimelineSidebar__icons__item___OJUhJ\",\"zoom\":\"TimelineSidebar__zoom___pGUra\",\"zoom-trigger\":\"TimelineSidebar__zoom-trigger___MU_5h\",\"zoom-trigger--isClickable\":\"TimelineSidebar__zoom-trigger--isClickable___cTmtq\",\"zoom-trigger--plus\":\"TimelineSidebar__zoom-trigger--plus___p2JZ9\",\"zoom-trigger--minus\":\"TimelineSidebar__zoom-trigger--minus___nzT9P\",\"fadeIn\":\"TimelineSidebar__fadeIn___X_s6w\",\"blinking\":\"TimelineSidebar__blinking___QEDs3\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './RevokedPartnerCarrierContractCard.scss';\nimport { Trans } from 'react-i18next';\nimport ContractName from 'broker-admin/components/notification-cards/entities/ContractName/ContractName';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    contractName: string;\n};\n\nconst RevokedPartnerCarrierContractCard: React.FC<PropsT> = React.memo((props) => {\n    const { contractName } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"notifications.partner-carrier-contract-revoked\"\n                components={{\n                    contractName: <ContractName contractName={contractName} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default RevokedPartnerCarrierContractCard;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './BrokerToursTable.scss';\nimport { useTranslation } from 'react-i18next';\nimport Table, { TableColumnT, TableRowMetaT } from 'common/components/Table/Table';\nimport MemoizedTable from 'common/components/Table/MemoizedTable/MemoizedTable';\nimport { BrokerTourShortT } from 'broker-admin/store/broker-tours/models';\nimport IdCell from 'common/components/Table/cell-renderers/IdCell/IdCell';\nimport OriginCell from './cell-renderers/OriginCell/OriginCell';\nimport DestinationCell from './cell-renderers/DestinationCell/DestinationCell';\nimport CarrierCell from './cell-renderers/CarrierCell/CarrierCell';\nimport CreatedCell from './cell-renderers/CreatedCell/CreatedCell';\nimport TypeCell from './cell-renderers/TypeCell/TypeCell';\nimport StatusCell from './cell-renderers/StatusCell/StatusCell';\nimport WarningIndicatorCell from 'common/components/Table/cell-renderers/WarningIndicatorCell/WarningIndicatorCell';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    brokerTours: Array<BrokerTourShortT>;\n    className: string;\n    goToBrokerTourDetails?: (event: React.MouseEvent, brokerTourId: TourIdT) => void;\n    isLoading: boolean;\n};\n\nconst BrokerToursTable: React.FC<PropsT> = React.memo((props) => {\n    const { brokerTours, className, goToBrokerTourDetails, isLoading } = props;\n\n    const { t } = useTranslation();\n\n    const columns: Array<TableColumnT<BrokerTourShortT, void>> = [\n        {\n            renderHeader: () => <span>{t('broker-tours.list.table.columns.id')}</span>,\n            headerClassName: cx('table__header', 'table__header--id'),\n            render: (brokerTourShort) => <IdCell id={brokerTourShort?.tourNumber} />,\n            className: cx('table__column', 'table__column--id'),\n            testSelector: 'id',\n        },\n        {\n            renderHeader: () => <span>{t('broker-tours.list.table.columns.origin')}</span>,\n            headerClassName: cx('table__header'),\n            render: (brokerTourShort) => <OriginCell brokerTourShort={brokerTourShort} />,\n            className: cx('table__column', 'table__column--origin'),\n            testSelector: 'origin',\n        },\n        {\n            renderHeader: () => <span>{t('broker-tours.list.table.columns.destination')}</span>,\n            headerClassName: cx('table__header'),\n            render: (brokerTourShort) => <DestinationCell brokerTourShort={brokerTourShort} />,\n            className: cx('table__column', 'table__column--destination'),\n            testSelector: 'destination',\n        },\n        {\n            renderHeader: () => <span>{t('broker-tours.list.table.columns.carrier')}</span>,\n            headerClassName: cx('table__header'),\n            render: (brokerTourShort) => <CarrierCell brokerTourShort={brokerTourShort} />,\n            className: cx('table__column', 'table__column--carrier'),\n            testSelector: 'carrier',\n        },\n        {\n            renderHeader: () => <span>{t('broker-tours.list.table.columns.created')}</span>,\n            headerClassName: cx('table__header'),\n            render: (brokerTourShort) => <CreatedCell brokerTourShort={brokerTourShort} />,\n            className: cx('table__column', 'table__column--created'),\n            testSelector: 'created',\n        },\n        {\n            renderHeader: () => <span>{t('broker-tours.list.table.columns.type')}</span>,\n            headerClassName: cx('table__header'),\n            render: (brokerTourShort) => <TypeCell brokerTourShort={brokerTourShort} />,\n            className: cx('table__column', 'table__column--type'),\n            testSelector: 'type',\n        },\n        {\n            renderHeader: () => null,\n            headerClassName: cx('table__header'),\n            render: (brokerTourShort) => (\n                <WarningIndicatorCell\n                    isShow={!!brokerTourShort.hasWarning}\n                    tooltipText={t('broker-tours.list.table.has-warnings')}\n                />\n            ),\n            className: cx('table__column', 'table__column--has-warnings'),\n            testSelector: 'has-warnings',\n        },\n        {\n            renderHeader: () => <span>{t('broker-tours.list.table.columns.status')}</span>,\n            headerClassName: cx('table__header', 'table__header--status'),\n            render: (brokerTourShort) => <StatusCell brokerTourShort={brokerTourShort} />,\n            className: cx('table__column', 'table__column--status'),\n            testSelector: 'status',\n        },\n    ];\n\n    const handleSelectRow = (event: React.MouseEvent, brokerTourShort: BrokerTourShortT) => {\n        if (!brokerTourShort.id || !goToBrokerTourDetails) {\n            return;\n        }\n\n        goToBrokerTourDetails(event, brokerTourShort.id);\n    };\n\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const getRowMods = (meta: TableRowMetaT, brokerTourShort: BrokerTourShortT) => {\n        return {};\n    };\n\n    return (\n        <div className={cx('table')}>\n            <MemoizedTable<BrokerTourShortT> tableName=\"broker-tours\" isLoading={isLoading} rows={brokerTours}>\n                {(rows, isUsedPrevRows) => (\n                    <Table<BrokerTourShortT, void>\n                        testSelector=\"broker-tours\"\n                        className={className}\n                        columns={columns}\n                        rows={rows}\n                        getRowMods={getRowMods}\n                        onSelectRow={handleSelectRow}\n                        isLoading={isLoading}\n                        isUsedPrevRows={isUsedPrevRows}\n                    />\n                )}\n            </MemoizedTable>\n        </div>\n    );\n});\n\nexport default BrokerToursTable;\n","import { RatesStateT } from './types';\nimport { StateT } from 'broker-admin/store/models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport const selectRatesPages = (state: StateT): RatesStateT['pages'] => state.priceSettings.rates.pages;\n\nexport const selectRatesQuery = (state: StateT): RatesStateT['query'] => state.priceSettings.rates.query;\n\nexport const selectRatesTotal = (state: StateT): RatesStateT['total'] => state.priceSettings.rates.total;\n\nexport const selectRatesByIds = (state: StateT): RatesStateT['byId'] => state.priceSettings.rates.byId;\n\nexport const selectUpdateRatesRequest = (state: StateT): RequestStatusT => state.priceSettings.rates.updateRequest;\n\nexport const selectUploadCSVFileRequest = (state: StateT): RequestStatusT => state.priceSettings.rates.uploadCSVRequest;\n","import commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\n\nconst downloadImage = async (imageUrl: string): Promise<void> => {\n    const headers = await commonTranziitApi.getAuthHeaders();\n\n    const response = await fetch(imageUrl, {\n        method: 'GET',\n        headers: headers || {},\n    });\n\n    if (!response.ok) {\n        throw new Error(`HTTP error! status: ${response.status}`);\n    }\n\n    const contentDisposition = response.headers.get('Content-Disposition');\n    let filename = 'photo.jpg';\n\n    if (contentDisposition) {\n        const filenameMatch = contentDisposition.match(/filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/);\n        if (filenameMatch && filenameMatch[1]) {\n            filename = filenameMatch[1].replace(/['\"]/g, '');\n        }\n    }\n\n    const blob = await response.blob();\n    const url = window.URL.createObjectURL(blob);\n    const link = document.createElement('a');\n    link.href = url;\n    link.download = filename;\n    document.body.appendChild(link);\n    link.click();\n    document.body.removeChild(link);\n    window.URL.revokeObjectURL(url);\n};\n\nexport { downloadImage };\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport isNumber from 'lodash/isNumber';\n\ntype PropsT = {\n    className?: string;\n    fillColor: StyleGuideColorsEnum;\n    fillOpacity?: number;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst TimeWindowIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, fillOpacity, strokeColor, ...restProps } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" {...restProps}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M0 0h20v20H0z\" />\n                <path\n                    fill={fillColor}\n                    d=\"M10 3.325a6.665 6.665 0 00-6.667 6.667c0 3.683 2.984 6.666 6.667 6.666s6.667-2.983 6.667-6.666A6.665 6.665 0 0010 3.325zm3.542 10.2a5.01 5.01 0 01-7.075 0L10 9.992v-5c1.283 0 2.558.491 3.533 1.466a4.992 4.992 0 01.009 7.067z\"\n                    opacity={isNumber(fillOpacity) ? fillOpacity : '0.3'}\n                />\n                <path\n                    fill={strokeColor}\n                    d=\"M13.533 6.458A4.978 4.978 0 0010 4.992v5l-3.533 3.533a5.01 5.01 0 007.075 0 4.992 4.992 0 00-.009-7.067zM10 1.658c-4.6 0-8.333 3.734-8.333 8.334S5.4 18.325 10 18.325s8.333-3.733 8.333-8.333S14.6 1.658 10 1.658zm0 15a6.665 6.665 0 01-6.667-6.666c0-3.684 2.984-6.667 6.667-6.667s6.667 2.983 6.667 6.667A6.665 6.665 0 0110 16.658z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nTimeWindowIcon.displayName = 'TimeWindowIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default TimeWindowIcon;\n\n/**\n *  @deprecated create/use ...Props class\n * */\nexport const getTimeWindowIconProps = (preset: 'default' | 'selected'): Pick<PropsT, 'fillColor' | 'strokeColor'> => {\n    switch (preset) {\n        case 'selected': {\n            return {\n                fillColor: StyleGuideColorsEnum.brandAccent,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        default: {\n            return {\n                fillColor: StyleGuideColorsEnum.light,\n                strokeColor: StyleGuideColorsEnum.slate,\n            };\n        }\n    }\n};\n","import { CountryCodeT } from 'common/store/countries-dict/models';\nimport { DaysEnum } from 'common/constants';\nimport {\n    ApiRepeatStrategyTypeTypeT,\n    ApiPriceComponentTypeT,\n    ApiRuleImpactStrategyTypeT,\n    RuleImpactStrategyEnum,\n    PriceComponentTypeEnum,\n} from 'broker-admin/utils/api/broker-tranziit/models';\nimport { ApiPriceRuleTypeT, PriceRuleTypeEnum } from 'common/utils/api/models';\n\nexport enum RepeatTypeEnum {\n    weekdays = 'WEEKDAYS',\n    dates = 'DATES',\n}\n\nexport enum FieldsEnum {\n    id = 'id',\n\n    name = 'name',\n    type = 'type',\n\n    shipperIds = 'shipper-ids',\n    carrierIds = 'carrier-ids',\n\n    trailerTypeIds = 'trailer-type-ids',\n\n    fromCountryCodes = 'from-country-codes',\n    fromCountryZipCodes = 'from-country-zip-codes',\n\n    toCountryCodes = 'to-country-codes',\n    toCountryZipCodes = 'to-country-zip-codes',\n\n    dates = 'dates',\n    days = 'days',\n    repeatType = 'repeat-type',\n    repeatStrategy = 'repeat-strategy',\n\n    validFrom = 'valid-from',\n    validTill = 'valid-till',\n\n    impactPriceComponent = 'impact-price-component',\n    impactValue = 'impact-value',\n    impactDiffValue = 'impact-diff-value',\n    impactStrategy = 'impact-strategy',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.id]: number | null;\n    [FieldsEnum.name]: string;\n\n    [FieldsEnum.type]: ApiPriceRuleTypeT | null;\n\n    [FieldsEnum.shipperIds]: Array<ShipperIdT>;\n    [FieldsEnum.carrierIds]: Array<CarrierIdT>;\n\n    [FieldsEnum.trailerTypeIds]: Array<TrailerDictIdT>;\n\n    [FieldsEnum.fromCountryCodes]: Array<CountryCodeT>;\n    [FieldsEnum.fromCountryZipCodes]: string;\n\n    [FieldsEnum.toCountryCodes]: Array<CountryCodeT>;\n    [FieldsEnum.toCountryZipCodes]: string;\n\n    [FieldsEnum.dates]: DateRangeT | null;\n    [FieldsEnum.days]: Array<DaysEnum>;\n    [FieldsEnum.repeatType]: RepeatTypeEnum;\n    [FieldsEnum.repeatStrategy]: ApiRepeatStrategyTypeTypeT;\n\n    [FieldsEnum.validFrom]: Date | null;\n    [FieldsEnum.validTill]: Date | null;\n\n    [FieldsEnum.impactPriceComponent]: ApiPriceComponentTypeT | null;\n    [FieldsEnum.impactValue]: string;\n    [FieldsEnum.impactDiffValue]: string;\n    [FieldsEnum.impactStrategy]: ApiRuleImpactStrategyTypeT;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n\nexport type AsyncFormErrorsT = Partial<Record<FieldsEnum, string>>;\n\nexport const diffImpactStrategySet = new Set<ApiRuleImpactStrategyTypeT>([RuleImpactStrategyEnum.percent]);\n\nexport const defaultAvailablePriceComponents: Array<ApiPriceComponentTypeT> = [\n    PriceComponentTypeEnum.lineHaul,\n    PriceComponentTypeEnum.fuel,\n    PriceComponentTypeEnum.roadTaxes,\n    PriceComponentTypeEnum.roadTaxesGeneral,\n    PriceComponentTypeEnum.roadTaxesCity,\n    PriceComponentTypeEnum.roadTaxesBridge,\n    PriceComponentTypeEnum.roadTaxesTunnel,\n    PriceComponentTypeEnum.roadTaxesFerry,\n    PriceComponentTypeEnum.roadTaxesMountainPass,\n    PriceComponentTypeEnum.serviceFee,\n];\n\nexport const availablePriceComponentByType: Record<ApiPriceRuleTypeT, Array<ApiPriceComponentTypeT>> = {\n    [PriceRuleTypeEnum.basic]: [\n        PriceComponentTypeEnum.lineHaul,\n        PriceComponentTypeEnum.fuel,\n        PriceComponentTypeEnum.roadTaxes,\n        PriceComponentTypeEnum.roadTaxesGeneral,\n        PriceComponentTypeEnum.roadTaxesCity,\n        PriceComponentTypeEnum.roadTaxesBridge,\n        PriceComponentTypeEnum.roadTaxesTunnel,\n        PriceComponentTypeEnum.roadTaxesFerry,\n        PriceComponentTypeEnum.roadTaxesMountainPass,\n    ],\n    [PriceRuleTypeEnum.shipper]: [\n        PriceComponentTypeEnum.lineHaul,\n        PriceComponentTypeEnum.fuel,\n        PriceComponentTypeEnum.roadTaxes,\n        PriceComponentTypeEnum.roadTaxesGeneral,\n        PriceComponentTypeEnum.roadTaxesCity,\n        PriceComponentTypeEnum.roadTaxesBridge,\n        PriceComponentTypeEnum.roadTaxesTunnel,\n        PriceComponentTypeEnum.roadTaxesFerry,\n        PriceComponentTypeEnum.roadTaxesMountainPass,\n        PriceComponentTypeEnum.serviceFee,\n    ],\n    [PriceRuleTypeEnum.carrier]: [\n        PriceComponentTypeEnum.lineHaul,\n        PriceComponentTypeEnum.fuel,\n        PriceComponentTypeEnum.roadTaxes,\n        PriceComponentTypeEnum.roadTaxesGeneral,\n        PriceComponentTypeEnum.roadTaxesCity,\n        PriceComponentTypeEnum.roadTaxesBridge,\n        PriceComponentTypeEnum.roadTaxesTunnel,\n        PriceComponentTypeEnum.roadTaxesFerry,\n        PriceComponentTypeEnum.roadTaxesMountainPass,\n    ],\n    [PriceRuleTypeEnum.custom]: [],\n};\n\nexport const getAvailablePriceComponent = (selectedType: ApiPriceRuleTypeT | null | undefined) => {\n    if (!selectedType) {\n        return defaultAvailablePriceComponents;\n    }\n\n    return availablePriceComponentByType[selectedType] || defaultAvailablePriceComponents;\n};\n\nexport const defaultAvailableStrategies: Array<ApiRuleImpactStrategyTypeT> = [\n    RuleImpactStrategyEnum.percent,\n    RuleImpactStrategyEnum.value,\n];\n\nexport const commonAvailableStrategiesByPriceComponentType: Record<\n    ApiPriceComponentTypeT,\n    Array<ApiRuleImpactStrategyTypeT>\n> = {\n    [PriceComponentTypeEnum.lineHaul]: [RuleImpactStrategyEnum.percent],\n    [PriceComponentTypeEnum.fuel]: [RuleImpactStrategyEnum.percent],\n    [PriceComponentTypeEnum.roadTaxes]: [RuleImpactStrategyEnum.percent],\n    [PriceComponentTypeEnum.roadTaxesGeneral]: [RuleImpactStrategyEnum.percent],\n    [PriceComponentTypeEnum.roadTaxesCity]: [RuleImpactStrategyEnum.percent],\n    [PriceComponentTypeEnum.roadTaxesBridge]: [RuleImpactStrategyEnum.percent],\n    [PriceComponentTypeEnum.roadTaxesTunnel]: [RuleImpactStrategyEnum.percent],\n    [PriceComponentTypeEnum.roadTaxesFerry]: [RuleImpactStrategyEnum.percent],\n    [PriceComponentTypeEnum.roadTaxesMountainPass]: [RuleImpactStrategyEnum.percent],\n    [PriceComponentTypeEnum.serviceFee]: [RuleImpactStrategyEnum.percent, RuleImpactStrategyEnum.value],\n};\n\nexport const availableStrategies: Record<ApiPriceRuleTypeT, typeof commonAvailableStrategiesByPriceComponentType> = {\n    [PriceRuleTypeEnum.basic]: commonAvailableStrategiesByPriceComponentType,\n    [PriceRuleTypeEnum.carrier]: commonAvailableStrategiesByPriceComponentType,\n    [PriceRuleTypeEnum.shipper]: {\n        ...commonAvailableStrategiesByPriceComponentType,\n        [PriceComponentTypeEnum.lineHaul]: [RuleImpactStrategyEnum.percent, RuleImpactStrategyEnum.value],\n    },\n    [PriceRuleTypeEnum.custom]: commonAvailableStrategiesByPriceComponentType,\n};\n\nexport const getAvailableStrategies = (\n    ruleType: ApiPriceRuleTypeT | null | undefined,\n    selectedPriceComponent: ApiPriceComponentTypeT | null | undefined,\n) => {\n    if (!ruleType || !selectedPriceComponent) {\n        return defaultAvailableStrategies;\n    }\n\n    return availableStrategies?.[ruleType]?.[selectedPriceComponent] || defaultAvailableStrategies;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"divider\":\"DividerTrigger__divider___fjPOe\",\"divider--isClickable\":\"DividerTrigger__divider--isClickable___x61vQ\",\"divider__icon\":\"DividerTrigger__divider__icon___CWD1V\",\"divider--isToggled\":\"DividerTrigger__divider--isToggled___XuNZ0\",\"divider__line\":\"DividerTrigger__divider__line___IAyM4\",\"fadeIn\":\"DividerTrigger__fadeIn___SaTU9\",\"blinking\":\"DividerTrigger__blinking___kXF0U\"};","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { CURRENCY_SYMBOLS, UnitTypeEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n} & (\n    | {\n          type: UnitTypeEnum | null | undefined;\n      }\n    | {\n          types: Array<UnitTypeEnum>;\n      }\n);\n\ntype CurrencyUnitTypesT = UnitTypeEnum.euroAbbreviation | UnitTypeEnum.euro4SignificantDigitsAbbreviation;\nconst CURRENCY_TYPE_MAP: Record<CurrencyUnitTypesT, string> = {\n    [UnitTypeEnum.euroAbbreviation]: CURRENCY_SYMBOLS.EUR,\n    [UnitTypeEnum.euro4SignificantDigitsAbbreviation]: CURRENCY_SYMBOLS.EUR,\n};\n\ntype SimpleUnitTypesT = UnitTypeEnum.percentsAbbreviation;\nconst SIMPLE_UNIT_MAP: Record<SimpleUnitTypesT, string> = {\n    [UnitTypeEnum.percentsAbbreviation]: '%',\n};\n\ntype OtherUnitTypesT = Exclude<UnitTypeEnum, CurrencyUnitTypesT | SimpleUnitTypesT>;\nconst UNIT_TYPE_T_MAP: Record<OtherUnitTypesT, string> = {\n    [UnitTypeEnum.eur1Pallets]: 'common:unit-type.eur-1-pallets',\n    [UnitTypeEnum.eur2Pallets]: 'common:unit-type.eur-2-pallets',\n    [UnitTypeEnum.eur6Pallets]: 'common:unit-type.eur-6-pallets',\n    [UnitTypeEnum.other]: 'common:unit-type.other',\n    [UnitTypeEnum.kilogramsAbbreviation]: 'common:unit-type.kilograms-abbreviation',\n    [UnitTypeEnum.oneHundredKilometersAbbreviation]: 'common:unit-type.100-kilometers-abbreviation',\n    [UnitTypeEnum.metersAbbreviation]: 'common:unit-type.meters-abbreviation',\n    [UnitTypeEnum.kilometersAbbreviation]: 'common:unit-type.kilometers-abbreviation',\n    [UnitTypeEnum.litersAbbreviation]: 'common:unit-type.liters-abbreviation',\n    [UnitTypeEnum.days]: 'common:unit-type.days',\n    [UnitTypeEnum.hoursAbbreviation]: 'common:unit-type.hours-abbreviation',\n    [UnitTypeEnum.hours]: 'common:unit-type.hours',\n    [UnitTypeEnum.minutesAbbreviation]: 'common:unit-type.minutes-abbreviation',\n    [UnitTypeEnum.milliSecondsAbbreviation]: 'common:unit-type.milli-seconds-abbreviation',\n    [UnitTypeEnum.shipments]: 'common:unit-type.shipments',\n    [UnitTypeEnum.secondsAbbreviation]: 'common:unit-type.seconds-abbreviation',\n    [UnitTypeEnum.kilometersPerHourAbbreviation]: 'common:unit-type.kilometers-per-hour-abbreviation',\n};\n\nconst UnitType: React.FC<PropsT> = React.memo((props) => {\n    const { className } = props;\n\n    const { t } = useTranslation();\n\n    if ('types' in props) {\n        const { types: subTypes } = props;\n\n        const formattedSubTypes = subTypes.map((subType) => {\n            if (CURRENCY_TYPE_MAP[subType as CurrencyUnitTypesT]) {\n                return CURRENCY_TYPE_MAP[subType as CurrencyUnitTypesT];\n            }\n\n            if (SIMPLE_UNIT_MAP[subType as SimpleUnitTypesT]) {\n                return SIMPLE_UNIT_MAP[subType as SimpleUnitTypesT];\n            }\n\n            return t(UNIT_TYPE_T_MAP[subType as OtherUnitTypesT]);\n        });\n\n        return <span className={className}>{formattedSubTypes.join('/')}</span>;\n    }\n\n    const { type } = props;\n    if (!type) {\n        return null;\n    }\n\n    const label =\n        CURRENCY_TYPE_MAP[type as CurrencyUnitTypesT] ||\n        SIMPLE_UNIT_MAP[type as SimpleUnitTypesT] ||\n        t(UNIT_TYPE_T_MAP[type as OtherUnitTypesT]);\n\n    return <span className={className}>{label}</span>;\n});\n\nexport default UnitType;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n    size: number;\n};\n\nconst UserSettingsIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, size } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <g fill={fillColor}>\n                    <path\n                        fill=\"none\"\n                        d=\"M8.5 8.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm0 4.5a4.8 4.8 0 01.06-.742c-.023-.008-.037-.008-.06-.008a8.167 8.167 0 00-4.192 1.155c-.188.105-.308.345-.308.607v.488h4.718A5.181 5.181 0 018.5 13z\"\n                    />\n                    <path d=\"M14.5 9.25l.225 1.117c.3.113.57.27.81.473l1.088-.367.75 1.312-.856.75c.023.158.046.307.046.473 0 .165-.023.315-.046.472l.856.75-.75 1.297-1.088-.367c-.24.203-.51.36-.81.473L14.5 16.75H13l-.225-1.133c-.3-.112-.57-.27-.81-.472l-1.088.367-.75-1.297.855-.75c-.022-.158-.044-.307-.044-.473 0-.165.022-.315.044-.472l-.854-.75.75-1.297 1.087.367c.24-.203.51-.36.81-.473L13 9.25h1.5zm-6 1.5c.172 0 .338.008.503.023-.218.457-.368.96-.443 1.485-.023-.008-.037-.008-.06-.008a8.167 8.167 0 00-4.192 1.155c-.188.113-.308.353-.308.607v.488h4.718c.165.54.412 1.05.727 1.5H2.5v-1.988c0-.772.382-1.507 1.042-1.897A9.657 9.657 0 018.5 10.75zm5.25.75c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5 1.5-.675 1.5-1.5-.675-1.5-1.5-1.5zM8.5 4a3 3 0 110 6 3 3 0 110-6zm0 1.5C7.675 5.5 7 6.175 7 7s.675 1.5 1.5 1.5S10 7.825 10 7s-.675-1.5-1.5-1.5z\" />\n                </g>\n            </g>\n        </svg>\n    );\n};\n\nUserSettingsIcon.displayName = 'UserSettingsIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.orange,\n    size: 20,\n};\n\nexport { storyProps };\nexport default UserSettingsIcon;\n","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport { PageResponseT, PaginationStateT } from 'common/utils/pagination/models';\nimport {\n    pageBeginReducer,\n    pageErrorReducer,\n    pageSuccessReducer,\n    resetPagesCacheReducer,\n} from 'common/utils/pagination/reducers';\nimport { FetchShipperContractsPageQueryT, ShipperContractT } from 'common/store/shipper-contracts/models';\n\nexport type PartnerShipperContractStateT = PaginationStateT<ShipperContractT, FetchShipperContractsPageQueryT>;\n\nexport const initialPartnerShipperContractsState: PartnerShipperContractStateT = {\n    pages: [],\n    query: null,\n    total: null,\n    byId: {},\n};\n\nexport type ShipperContractsStateT = Record<PartnerIdT, PartnerShipperContractStateT>;\n\nconst initialState: ShipperContractsStateT = {};\n\nexport const shipperContractsSlice = createSlice({\n    name: 'shipperContracts',\n    initialState,\n    reducers: {\n        fetchShipperContractsPage: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                pageNumber: PageNumberT;\n                query: FetchShipperContractsPageQueryT;\n                partnerId: PartnerIdT;\n                options?: FetchOptionsT;\n            }>,\n        ) => {\n            // nothing\n        },\n        fetchShipperContractsPageBegin: (\n            state,\n            action: PayloadAction<{\n                query: FetchShipperContractsPageQueryT;\n                pageNumber: PageNumberT;\n                partnerId: PartnerIdT;\n            }>,\n        ) => {\n            const { partnerId, pageNumber, query } = action.payload;\n            const partnerState = state[partnerId] || initialPartnerShipperContractsState;\n\n            state[partnerId] = {\n                ...partnerState,\n                ...pageBeginReducer(partnerState, pageNumber, query),\n            };\n        },\n        fetchShipperContractsPageSuccess: (\n            state,\n            action: PayloadAction<{\n                query: FetchShipperContractsPageQueryT;\n                pageNumber: PageNumberT;\n                response: PageResponseT<ShipperContractT> | null;\n                partnerId: PartnerIdT;\n            }>,\n        ) => {\n            const { partnerId, pageNumber, query, response } = action.payload;\n            const partnerState = state[partnerId] || initialPartnerShipperContractsState;\n\n            state[partnerId] = {\n                ...partnerState,\n                ...pageSuccessReducer(partnerState, pageNumber, query, response),\n            };\n        },\n        fetchShipperContractsPageError: (\n            state,\n            action: PayloadAction<{\n                query: FetchShipperContractsPageQueryT;\n                pageNumber: PageNumberT;\n                error: Error;\n                partnerId: PartnerIdT;\n            }>,\n        ) => {\n            const { partnerId, pageNumber, query, error } = action.payload;\n            const partnerState = state[partnerId] || initialPartnerShipperContractsState;\n\n            state[partnerId] = {\n                ...partnerState,\n                ...pageErrorReducer(partnerState, pageNumber, query, error),\n            };\n        },\n        resetShipperContracts: (\n            state,\n            action: PayloadAction<{\n                partnerId: PartnerIdT;\n                mutationListOptions: MutationListOptionsT;\n            }>,\n        ) => {\n            const { partnerId, mutationListOptions } = action.payload;\n            const partnerState = state[partnerId] || initialPartnerShipperContractsState;\n\n            state[partnerId] = {\n                ...partnerState,\n                ...resetPagesCacheReducer(initialPartnerShipperContractsState, partnerState, mutationListOptions),\n            };\n        },\n    },\n});\n\nexport const {\n    fetchShipperContractsPage,\n    fetchShipperContractsPageBegin,\n    fetchShipperContractsPageSuccess,\n    fetchShipperContractsPageError,\n    resetShipperContracts,\n} = shipperContractsSlice.actions;\n\nexport default shipperContractsSlice.reducer;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './DateCell.scss';\n\nimport isNil from 'lodash/isNil';\nimport { formatDate } from 'common/utils/time';\n\ntype PropsT = {\n    date: string | null | undefined;\n    className?: string;\n    dateFormat?: string;\n    isBold?: boolean;\n    isBigFont?: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nconst DEFAULT_DATE_FORMAT = 'DD MMM YYYY';\n\nconst DateCell: React.FC<PropsT> = React.memo((props) => {\n    const { date, isBold, dateFormat, isBigFont, className } = props;\n\n    if (isNil(date)) {\n        return null;\n    }\n\n    return (\n        <div className={cs(cx('date', { 'date--isBold': isBold, 'date--isBigFont': isBigFont }), className)}>\n            {formatDate(dateFormat || DEFAULT_DATE_FORMAT, date)}\n        </div>\n    );\n});\n\nexport default DateCell;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './Checkbox.scss';\nimport cs from 'classnames';\n\nconst cx = classNames.bind(styles);\n\nexport enum CheckboxThemeEnum {\n    orange = 'orange',\n    green = 'green',\n}\n\nexport type CheckboxPropsT = {\n    className?: string;\n    checked: boolean;\n    indeterminated?: boolean;\n    onChange?: (checked: boolean, event: React.MouseEvent<HTMLDivElement>) => void;\n    isFullWidth?: boolean;\n    isDisabled?: boolean;\n    isReadOnly?: boolean;\n    isBoxHidden?: boolean;\n    theme?: CheckboxThemeEnum | null;\n    label?: React.ReactNode;\n    labelClassName?: string;\n    rightIcon?: React.ReactNode;\n    testSelector?: string;\n};\n\nconst Checkbox: React.FC<CheckboxPropsT> = React.memo((props) => {\n    const {\n        className,\n        theme,\n        checked,\n        indeterminated,\n        onChange,\n        isDisabled,\n        isReadOnly,\n        isBoxHidden,\n        label,\n        labelClassName,\n        rightIcon,\n        isFullWidth,\n        testSelector,\n    } = props;\n\n    const [isHover, setHover] = React.useState<boolean>(false);\n\n    const handleChange = (event: React.MouseEvent<HTMLDivElement>) => {\n        if (isDisabled || isReadOnly) {\n            return;\n        }\n\n        if (onChange) {\n            onChange(!checked, event);\n        }\n    };\n\n    const handleMouseMove = () => {\n        if (isHover) {\n            return;\n        }\n\n        setHover(true);\n    };\n\n    const handleMouseLeave = () => {\n        setHover(false);\n    };\n\n    const fullTestSelector = `${testSelector}_checkbox`;\n\n    return (\n        <div\n            className={cs(\n                cx('checkbox', {\n                    'checkbox--isFullWidth': isFullWidth,\n                }),\n                className,\n            )}\n        >\n            {!isBoxHidden && (\n                <div\n                    className={cx('box', {\n                        'box--isHover': isHover,\n                        'box--isClickable': !isDisabled && !isReadOnly,\n                        'box--isChecked': checked,\n                        'box--isIndeterminated': indeterminated,\n                        'box--isDisabled': isDisabled || isReadOnly,\n                        [`box--theme-${theme}`]: true,\n                    })}\n                    onMouseMove={handleMouseMove}\n                    onMouseLeave={handleMouseLeave}\n                    onClick={handleChange}\n                    data-test-selector={`${fullTestSelector}_box`}\n                />\n            )}\n            {!!label && (\n                <div\n                    className={cs(\n                        cx('label', {\n                            'label--isFullWidth': isFullWidth,\n                            'label--isClickable': !isDisabled && !isReadOnly,\n                            'label--isDisabled': isDisabled,\n                            'label--hasRightIcon': !!rightIcon,\n                            'label--withoutBox': isBoxHidden,\n                        }),\n                        labelClassName,\n                    )}\n                    onMouseMove={handleMouseMove}\n                    onMouseLeave={handleMouseLeave}\n                    onClick={handleChange}\n                    data-test-selector={`${fullTestSelector}_label`}\n                >\n                    {label}\n                </div>\n            )}\n            {rightIcon}\n        </div>\n    );\n});\n\nexport default Checkbox;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ExpireSoonPartnerCarrierContractCard.scss';\nimport { Trans } from 'react-i18next';\nimport ContractName from 'broker-admin/components/notification-cards/entities/ContractName/ContractName';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    contractName: string;\n};\n\nconst ExpireSoonPartnerCarrierContractCard: React.FC<PropsT> = React.memo((props) => {\n    const { contractName } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"notifications.partner-carrier-contract-expire-soon\"\n                components={{\n                    contractName: <ContractName contractName={contractName} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default ExpireSoonPartnerCarrierContractCard;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './OrderStatusPill.scss';\nimport { useTranslation } from 'react-i18next';\nimport PillLabel, { colorCodingPillLabelTheme, PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { ApiOrderStatusT, OrderStatusEnum } from 'common/utils/api/models';\nimport { ORDER_STATUS_T_MAP } from 'common/components/status/OrderStatus/OrderStatus';\n\ntype PropsT = {\n    status?: ApiOrderStatusT | null;\n    isArchived?: boolean;\n    isSymmetrical?: boolean;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\nconst PILL_THEME_BY_STATUS: Record<ApiOrderStatusT, PillLabelThemeEnum> = {\n    [OrderStatusEnum.placed]: colorCodingPillLabelTheme.normal,\n    [OrderStatusEnum.inProgress]: colorCodingPillLabelTheme.normal,\n    [OrderStatusEnum.delivered]: colorCodingPillLabelTheme.positive,\n    [OrderStatusEnum.canceled]: colorCodingPillLabelTheme.normal,\n    [OrderStatusEnum.done]: colorCodingPillLabelTheme.positive,\n};\n\nconst OrderStatusPill: React.FC<PropsT> = React.memo((props) => {\n    const { status, isArchived, isSymmetrical } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return null;\n    }\n\n    const theme = PILL_THEME_BY_STATUS[status] || PillLabelThemeEnum.charcoal;\n\n    return (\n        <>\n            <PillLabel isNoWrap theme={theme} testSelector=\"order-status\" isSymmetrical={isSymmetrical}>\n                {t(ORDER_STATUS_T_MAP[status])}\n            </PillLabel>\n            {isArchived && (\n                <PillLabel isNoWrap theme={theme} testSelector=\"order-archived\" isSymmetrical={isSymmetrical}>\n                    {t('common:order-archived')}\n                </PillLabel>\n            )}\n        </>\n    );\n});\n\nexport default OrderStatusPill;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport { useDispatch, useSelector } from 'react-redux';\nimport moment from 'moment';\n\nimport styles from './SendingToSpotFooterContent.scss';\nimport { BrokerOrderDetailsT } from 'broker-admin/store/broker-order-details/models';\nimport SendingToSpotForm from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/SendingToSpotForm/SendingToSpotForm';\nimport { selectSpotRequestLimitMs } from 'broker-admin/store/settings/selectors';\nimport { roundTimestamp, MS_IN_HOUR } from 'common/utils/time';\nimport { findTourById } from 'broker-admin/store/broker-order-details/utils/find-tour-by-id';\nimport { sendToSpotByTour } from 'broker-admin/store/spot/actions';\nimport { logWarning } from 'common/utils/logger';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    brokerOrderDetails: BrokerOrderDetailsT | null | undefined;\n    tourId: TourIdT | null;\n    onCancel: () => void;\n};\n\nconst SendingToSpotFooterContent: React.FC<PropsT> = React.memo((props) => {\n    const { brokerOrderDetails, tourId, onCancel } = props;\n\n    const dispatch = useDispatch();\n\n    const spotRequestLimitMs = useSelector(selectSpotRequestLimitMs);\n\n    const startValidTillTimeWindow = React.useMemo(() => {\n        return roundTimestamp(Date.now(), MS_IN_HOUR);\n    }, []);\n\n    const allowedRangeValidTill = React.useMemo((): TimeWindowT | null => {\n        if (!brokerOrderDetails) {\n            return null;\n        }\n\n        const tour = findTourById(brokerOrderDetails, tourId);\n        const firstWaypoint = tour?.waypoints?.[0] || null;\n        const pickupDockingHoursFrom =\n            firstWaypoint?.correctedDateTimeFrom || firstWaypoint?.originalDateTimeFrom || null;\n        const pickupDockingHoursFromTimestamp = moment(pickupDockingHoursFrom).valueOf();\n\n        return [startValidTillTimeWindow, pickupDockingHoursFromTimestamp - spotRequestLimitMs];\n    }, [tourId, startValidTillTimeWindow, brokerOrderDetails, spotRequestLimitMs]);\n\n    const handleSubmit = React.useCallback(\n        (deadline: string, comment: string) => {\n            if (!tourId) {\n                logWarning('failed to send to spot, empty tourId');\n                return;\n            }\n\n            dispatch(sendToSpotByTour(tourId, deadline, comment));\n        },\n        [dispatch, tourId],\n    );\n\n    if (!brokerOrderDetails) {\n        return null;\n    }\n\n    return (\n        <div className={cx('content')}>\n            <SendingToSpotForm\n                allowedRangeValidTill={allowedRangeValidTill}\n                onCancel={onCancel}\n                onSubmit={handleSubmit}\n            />\n        </div>\n    );\n});\n\nexport default SendingToSpotFooterContent;\n","import { FormikHelpers, FormikState } from 'formik';\nimport { FieldsEnum, FormValuesT, RoutePointFieldsEnum } from '../constants';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { reserveQueryModifyChannel } from 'common/store/order-creation/channels';\nimport { reserveSyncPointsModifyChannel } from './use-sync-points-channels';\nimport { useCallback } from 'react';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport isEmpty from 'lodash/isEmpty';\nimport isNumber from 'lodash/isNumber';\nimport { checkIsSameTimezone } from '../utils';\nimport isBoolean from 'lodash/isBoolean';\nimport keyBy from 'lodash/keyBy';\nimport { convertISODateToTimezone } from 'common/utils/time';\n\ntype FormikT = FormikState<FormValuesT> & FormikHelpers<FormValuesT>;\n\nexport const useSyncReserveChannels = (formik: FormikT) => {\n    // correction after reserve\n    const reserveQueryModifyChannelHandler = useCallback(\n        (event: InferChannelEventT<typeof reserveQueryModifyChannel>) => {\n            const formValuesChanges: Partial<FormValuesT> = {};\n\n            const routeFormValues = formik.values[FieldsEnum.route];\n            const newRouteFormValues: typeof routeFormValues = [];\n\n            const correctedPointsByFakeId = keyBy(event?.correctedPoints, (point) => {\n                return point.addressAlias || '';\n            });\n\n            routeFormValues.forEach((prevRouteFormValue) => {\n                const newRouteFormValue: typeof prevRouteFormValue = {\n                    ...prevRouteFormValue,\n                };\n\n                const fakeId = prevRouteFormValue?.fakeId || null;\n                if (!fakeId) {\n                    return;\n                }\n\n                const eventCorrectedPoint = correctedPointsByFakeId?.[fakeId] || null;\n\n                if (eventCorrectedPoint?.replacedCoordinate) {\n                    const prevLocation = prevRouteFormValue[RoutePointFieldsEnum.location];\n                    const utcOffsetMinutes = prevLocation?.utcOffsetMinutes;\n\n                    newRouteFormValue[RoutePointFieldsEnum.location] = {\n                        ...prevLocation,\n                        address: prevLocation?.address || null,\n                        addressComponents: prevLocation?.addressComponents || null,\n                        utcOffsetMinutes: isNumber(utcOffsetMinutes) ? utcOffsetMinutes : null,\n                        point: eventCorrectedPoint?.replacedCoordinate\n                            ? {\n                                  lng: eventCorrectedPoint.replacedCoordinate.longitude,\n                                  lat: eventCorrectedPoint.replacedCoordinate.latitude,\n                              }\n                            : null,\n                    };\n                }\n\n                const prevTimeWindow = prevRouteFormValue[RoutePointFieldsEnum.timeWindow];\n                if (eventCorrectedPoint?.defaultTimeWindow && !prevTimeWindow) {\n                    newRouteFormValue[RoutePointFieldsEnum.timeWindow] = eventCorrectedPoint.defaultTimeWindow;\n                }\n\n                // start: convert timezone start\n                if (\n                    eventCorrectedPoint?.defaultTimeWindow?.start &&\n                    newRouteFormValue[RoutePointFieldsEnum.timeWindow]?.start &&\n                    !checkIsSameTimezone(\n                        eventCorrectedPoint?.defaultTimeWindow?.start,\n                        newRouteFormValue[RoutePointFieldsEnum.timeWindow]?.start,\n                    )\n                ) {\n                    const convertedStart = convertISODateToTimezone(\n                        newRouteFormValue[RoutePointFieldsEnum.timeWindow]?.start,\n                        eventCorrectedPoint?.defaultTimeWindow?.start,\n                    );\n\n                    if (convertedStart) {\n                        newRouteFormValue[RoutePointFieldsEnum.timeWindow].start = convertedStart;\n                    }\n                }\n                // end: convert timezone start\n\n                // start: convert timezone end\n                if (\n                    eventCorrectedPoint?.defaultTimeWindow?.end &&\n                    newRouteFormValue[RoutePointFieldsEnum.timeWindow]?.end &&\n                    !checkIsSameTimezone(\n                        eventCorrectedPoint?.defaultTimeWindow?.end,\n                        newRouteFormValue[RoutePointFieldsEnum.timeWindow]?.end,\n                    )\n                ) {\n                    const convertedEnd = convertISODateToTimezone(\n                        newRouteFormValue[RoutePointFieldsEnum.timeWindow]?.end,\n                        eventCorrectedPoint?.defaultTimeWindow?.end,\n                    );\n\n                    if (convertedEnd) {\n                        newRouteFormValue[RoutePointFieldsEnum.timeWindow].end = convertedEnd;\n                    }\n                }\n                // end: convert timezone end\n\n                const correctedTimeWindow = event?.correctedTimeWindowsByPointId?.[fakeId] || null;\n                if (correctedTimeWindow) {\n                    newRouteFormValue[RoutePointFieldsEnum.timeWindow] = correctedTimeWindow;\n                }\n\n                const correctedBrokerWindow = event?.correctedBrokerWindowByPointId?.[fakeId];\n                if (isBoolean(correctedBrokerWindow)) {\n                    newRouteFormValue[RoutePointFieldsEnum.isBrokerTimeWindow] = correctedBrokerWindow;\n                }\n\n                newRouteFormValues.push(newRouteFormValue);\n            });\n\n            formValuesChanges[FieldsEnum.route] = newRouteFormValues;\n\n            if ('correctedLaneId' in event) {\n                formValuesChanges[FieldsEnum.laneId] = event.correctedLaneId || null;\n            }\n\n            if (!isEmpty(formValuesChanges)) {\n                formik.setValues((prevValues) => ({\n                    ...prevValues,\n                    ...formValuesChanges,\n                }));\n            }\n\n            const hasPointsCorrection = Boolean(event.correctedPoints?.length);\n            if (hasPointsCorrection && event.correctedPoints) {\n                reserveSyncPointsModifyChannel.emit({\n                    routeFormValues: newRouteFormValues,\n                    correctedPoints: event.correctedPoints,\n                    correctedBrokerWindowByPointId: event.correctedBrokerWindowByPointId,\n                    correctedTimeWindowsByPointId: event.correctedTimeWindowsByPointId,\n                });\n            }\n        },\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        [formik.values, formik.setValues],\n    );\n\n    useChannelSubscribe(reserveQueryModifyChannel, reserveQueryModifyChannelHandler);\n};\n","import * as React from 'react';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport { QueryFiltersKeysEnum, QueryFiltersT, QueryKeysEnum } from './query-models';\nimport TransportOrdersTable from './TransportOrdersTable/TransportOrdersTable';\nimport { useTranslation } from 'react-i18next';\nimport FiltersTrigger from 'common/components/Table/FiltersTrigger/FiltersTrigger';\nimport SortDropdown, {\n    SortDropdownOptionT,\n    SortDropdownOverlayPositionEnum,\n} from 'common/components/Table/SortDropdown/SortDropdown';\nimport omit from 'lodash/omit';\nimport { TransportOrderQuickFilterEnum, TransportOrderSortEnum } from 'common/utils/api/models';\nimport Pagination from 'common/components/Table/Pagination/Pagination';\nimport { TransportOrderT } from 'common/store/transport-orders/models';\nimport FiltersSidebarContent from './FiltersSidebarContent/FiltersSidebarContent';\nimport SideBar from 'common/layouts/LeftMenuLayout/SideBar/SideBar';\nimport {\n    createJsonParams,\n    createPageNumberParam,\n    createSortParams,\n    PageSortT,\n    SortDirectionEnum,\n} from 'common/utils/query';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport StickyFooter from 'common/layouts/LeftMenuLayout/StickyFooter/StickyFooter';\nimport { QuickFiltersOptionT } from 'common/components/Table/QuickFilters/QuickFilters';\nimport {\n    selectTransportOrdersByIds,\n    selectTransportOrdersPages,\n    selectTransportOrdersTotal,\n} from 'common/store/transport-orders/selectors';\nimport { fetchTransportOrdersPage } from 'common/store/transport-orders/actions';\nimport { isNonNil } from 'common/utils';\nimport { fetchTrailersDict } from 'common/store/trailers-dict/actions';\nimport { fetchTrucksDict } from 'common/store/trucks-dict/actions';\nimport SearchControl from 'common/components/Table/SearchControl/SearchControl';\nimport TableError from 'common/components/Table/TableError/TableError';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport { prepareFetchPageQuery } from './prepare-fetch-page-query';\nimport ListPageLayout from 'common/layouts/ListPage/ListPageLayout/ListPageLayout';\nimport ListPageHeaderLayout from 'common/layouts/ListPage/ListPageHeaderLayout/ListPageHeaderLayout';\nimport ListPageHeaderTabsLayout from 'common/layouts/ListPage/ListPageHeaderTabsLayout/ListPageHeaderTabsLayout';\nimport { fetchGroupedNotificationCounts } from 'common/store/grouped-notification-counts/actions';\nimport SelectedFilters from 'common/layouts/TransportOrderListPageLayout/SelectedFilters/SelectedFilters';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport {\n    transportOrdersPaginationChannel,\n    transportOrdersRefreshChannel,\n} from 'common/store/transport-orders/channels';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { useQueryParams } from 'use-query-params';\nimport { checkNeedRenderEmptyState } from 'common/components/Table/utils/check-need-render-empty-state';\nimport TableMessage, { TableMessageIconsEnum } from 'common/components/Table/TableMessage/TableMessage';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { checkFilters } from 'common/components/Table/utils/check-filters';\nimport QuickFiltersButtonGroups from 'common/components/Table/QuickFiltersButtonGroups/QuickFiltersButtonGroups';\nimport TransportOrderTypeDropdown from 'common/layouts/TransportOrderListPageLayout/TransportOrderTypeDropdown/TransportOrderTypeDropdown';\nimport WarningsFilter from 'common/layouts/TransportOrderListPageLayout/WarningsFilter/WarningsFilter';\nimport { TransportOrderStatsT } from 'common/store/transport-orders-stats/models';\nimport { logWarning } from 'common/utils/logger';\n\ntype PropsT = {\n    stat: TransportOrderStatsT | null;\n    onOpenTransportOrderDetails: (event: React.MouseEvent, transportOrderId: TransportOrderIdT | null) => void;\n    orderQuickFilterOptions: Array<QuickFiltersOptionT<TransportOrderQuickFilterEnum>> | null;\n    orderQuickFilterOptionSeparators: number[];\n};\n\nconst TransportOrderListPageLayout: React.FC<PropsT> = React.memo((props) => {\n    const { stat, onOpenTransportOrderDetails, orderQuickFilterOptions, orderQuickFilterOptionSeparators } = props;\n\n    const { partnerId } = usePartnerContext();\n\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n    const total = useSelector(selectTransportOrdersTotal(partnerId));\n    const ordersPages = useSelector(selectTransportOrdersPages(partnerId));\n    const orderById = useSelector(selectTransportOrdersByIds(partnerId));\n\n    const [isShowFilters, triggerFilters] = React.useState<boolean>(false);\n    const showFilters = (): void => {\n        triggerFilters(true);\n    };\n    const hideFilters = (): void => {\n        triggerFilters(false);\n    };\n\n    const [query, changeQuery] = useQueryParams({\n        [QueryKeysEnum.transportOrdersFilters]: createJsonParams<QueryFiltersT>({}),\n        [QueryKeysEnum.transportOrdersPage]: createPageNumberParam(),\n        [QueryKeysEnum.transportOrdersSort]: createSortParams<TransportOrderSortEnum>({\n            direction: SortDirectionEnum.DESC,\n            value: TransportOrderSortEnum.receiveDate,\n        }),\n    });\n\n    const pageNumber = query[QueryKeysEnum.transportOrdersPage];\n    const selectedSort = query[QueryKeysEnum.transportOrdersSort];\n    const queryFilters = query[QueryKeysEnum.transportOrdersFilters];\n\n    const page = ordersPages[pageNumber];\n    const { ids, requestStatus } = page || {};\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in documentVisibilityChangeHandler');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchTransportOrdersPage(pageNumber, query, partnerId, { isForceUpdate: false }));\n\n        dispatch(fetchGroupedNotificationCounts({ isForceUpdate: false }));\n    }, [pageNumber, selectedSort, queryFilters, partnerId, dispatch]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    React.useEffect(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in TransportOrderListPageLayout useEffect');\n            return (): void => {};\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchTransportOrdersPage(pageNumber, query, partnerId));\n\n        dispatch(fetchGroupedNotificationCounts({ isForceUpdate: false }));\n\n        return (): void => {\n            // TODO reset\n        };\n    }, [pageNumber, selectedSort, queryFilters, partnerId, dispatch]);\n\n    const refreshPageHandler = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in refreshPageHandler');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchTransportOrdersPage(pageNumber, query, partnerId, { isForceUpdate: true }));\n\n        dispatch(fetchGroupedNotificationCounts({ isForceUpdate: false }));\n    }, [queryFilters, selectedSort, pageNumber, partnerId, dispatch]);\n    useChannelSubscribe(transportOrdersRefreshChannel, refreshPageHandler);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleRefreshOnError');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchTransportOrdersPage(pageNumber, query, partnerId, { isForceUpdate: true }));\n    }, [queryFilters, selectedSort, pageNumber, partnerId, dispatch]);\n\n    React.useEffect(() => {\n        dispatch(fetchTrailersDict());\n        dispatch(fetchTrucksDict());\n    }, [dispatch]);\n\n    const orders = React.useMemo(() => {\n        return (ids || []).map((id): TransportOrderT => orderById[id as string]).filter(isNonNil);\n    }, [ids, orderById]);\n\n    const goToPage = React.useCallback(\n        (pageNumber: PageNumberT) => {\n            changeQuery({\n                [QueryKeysEnum.transportOrdersPage]: pageNumber,\n            });\n        },\n        [changeQuery],\n    );\n\n    const setPageHandler = React.useCallback(\n        ({ pageNumber }: InferChannelEventT<typeof transportOrdersPaginationChannel>) => {\n            goToPage(pageNumber);\n        },\n        [goToPage],\n    );\n\n    useChannelSubscribe(transportOrdersPaginationChannel, setPageHandler);\n\n    const sortOptions: Array<SortDropdownOptionT<TransportOrderSortEnum>> = React.useMemo(\n        () => [\n            {\n                label: t('common:transport-orders-page.table.sorts.triggers.receivedDate'),\n                value: TransportOrderSortEnum.receiveDate,\n            },\n            {\n                label: t('common:transport-orders-page.table.sorts.triggers.pickupDate'),\n                value: TransportOrderSortEnum.pickupDate,\n            },\n            {\n                label: t('common:transport-orders-page.table.sorts.triggers.dropOffDate'),\n                value: TransportOrderSortEnum.dropOffDate,\n            },\n            {\n                label: t('common:transport-orders-page.table.sorts.triggers.price'),\n                value: TransportOrderSortEnum.price,\n            },\n        ],\n        [t],\n    );\n\n    const handleSelectSort = (sort: PageSortT<TransportOrderSortEnum>) => {\n        changeQuery({\n            [QueryKeysEnum.transportOrdersPage]: 0,\n            [QueryKeysEnum.transportOrdersSort]: sort,\n        });\n    };\n\n    const handleSetStatusFilter = (quickFilterId: TransportOrderQuickFilterEnum | undefined) => {\n        const prevQueryFilters = query[QueryKeysEnum.transportOrdersFilters] || {};\n\n        const queryFilters: QueryFiltersT = {\n            ...prevQueryFilters,\n            [QueryFiltersKeysEnum.quickFilter]: quickFilterId,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.transportOrdersPage]: 0,\n            [QueryKeysEnum.transportOrdersFilters]: queryFilters,\n        });\n    };\n\n    const handleSetQueryFilters = (selectedQueryFilters: QueryFiltersT) => {\n        const queryFilters = {\n            ...selectedQueryFilters,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.transportOrdersPage]: 0,\n            [QueryKeysEnum.transportOrdersFilters]: queryFilters,\n        });\n\n        hideFilters();\n    };\n\n    const updateQueryFilters = (queryFiltersChanges: QueryFiltersT) => {\n        const prevQueryFilters = query[QueryKeysEnum.transportOrdersFilters] || {};\n\n        const queryFilters = {\n            ...prevQueryFilters,\n            ...queryFiltersChanges,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.transportOrdersPage]: 0,\n            [QueryKeysEnum.transportOrdersFilters]: queryFilters,\n        });\n    };\n\n    const handleSearch = (searchText: string) => {\n        updateQueryFilters({\n            [QueryFiltersKeysEnum.searchText]: searchText || undefined,\n        });\n    };\n\n    const renderTableMessage = () => {\n        if (!checkNeedRenderEmptyState(orders, requestStatus)) {\n            return null;\n        }\n\n        if (requestStatus?.error) {\n            return <TableError error={requestStatus?.error} onRetry={handleRefreshOnError} />;\n        }\n\n        const { hasPrimaryQueryFilters, hasSecondaryQueryFilters } = checkFilters(\n            [queryFilters[QueryFiltersKeysEnum.quickFilter]],\n            [omit(queryFilters, [QueryFiltersKeysEnum.quickFilter])],\n        );\n        if (requestStatus?.ok && hasSecondaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.notFound}\n                    title={t('common:transport-orders-page.table.messages.not-found.title')}\n                    description={t('common:transport-orders-page.table.messages.not-found.description')}\n                    isShowAction\n                    actionTitle={t('common:transport-orders-page.table.messages.not-found.action')}\n                    actionTheme={ButtonThemeEnum.secondary}\n                    onActionClick={() => handleSetQueryFilters({})}\n                    testSelector=\"empty-state-has-secondary-filters\"\n                />\n            );\n        }\n\n        if (requestStatus?.ok && hasPrimaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.empty}\n                    title={t('common:transport-orders-page.table.messages.not-found-only-primary-filters.title')}\n                    description=\"\"\n                    testSelector=\"empty-state-has-primary-filters\"\n                    isShowAction={false}\n                />\n            );\n        }\n\n        return (\n            <TableMessage\n                iconType={TableMessageIconsEnum.empty}\n                title={t('common:transport-orders-page.table.messages.empty.title')}\n                testSelector=\"empty\"\n                isShowAction={false}\n            />\n        );\n    };\n\n    return (\n        <>\n            <ContentMargins>\n                <ListPageLayout>\n                    {orderQuickFilterOptions && (\n                        <ListPageHeaderTabsLayout>\n                            <QuickFiltersButtonGroups\n                                options={orderQuickFilterOptions}\n                                revertSeparatorIndexes={orderQuickFilterOptionSeparators}\n                                selectedId={queryFilters[QueryFiltersKeysEnum.quickFilter]}\n                                onSelect={handleSetStatusFilter}\n                                moreStatusesLabel={t('common:transport-orders-page.status-filter.more-statuses')}\n                            />\n                        </ListPageHeaderTabsLayout>\n                    )}\n                    <ListPageHeaderLayout\n                        withTopPadding\n                        leftToolsNode={\n                            <>\n                                <FiltersTrigger\n                                    title={t('common:transport-orders-page.filters.trigger')}\n                                    isActive={isShowFilters}\n                                    onClick={showFilters}\n                                />\n                                <TransportOrderTypeDropdown\n                                    isSelectedDedicated={!!queryFilters[QueryFiltersKeysEnum.dedicated]}\n                                    isSelectedSpot={!!queryFilters[QueryFiltersKeysEnum.spot]}\n                                    onSelect={({ isSelectedSpot, isSelectedDedicated }) => {\n                                        updateQueryFilters({\n                                            [QueryFiltersKeysEnum.spot]: isSelectedSpot || undefined,\n                                            [QueryFiltersKeysEnum.dedicated]: isSelectedDedicated || undefined,\n                                        });\n                                    }}\n                                />\n                                <WarningsFilter\n                                    stat={stat}\n                                    queryFilters={queryFilters}\n                                    onQueryFiltersChange={updateQueryFilters}\n                                />\n                                <SortDropdown\n                                    overlayPosition={SortDropdownOverlayPositionEnum.left}\n                                    selectedValue={selectedSort}\n                                    options={sortOptions}\n                                    onSelect={handleSelectSort}\n                                />\n                                <SearchControl\n                                    placeholder={t('common:transport-orders-page.filters.placeholders.search')}\n                                    searchText={queryFilters[QueryFiltersKeysEnum.searchText]}\n                                    onChangeSearchText={handleSearch}\n                                />\n                            </>\n                        }\n                        filterTagsNode={\n                            <SelectedFilters\n                                isCompact\n                                queryFilters={queryFilters}\n                                setQueryFilters={handleSetQueryFilters}\n                            />\n                        }\n                    />\n                    {renderTableMessage()}\n                    <TransportOrdersTable\n                        orders={orders}\n                        goToTransportOrderDetails={onOpenTransportOrderDetails}\n                        isLoading={requestStatus?.loading}\n                    />\n                </ListPageLayout>\n            </ContentMargins>\n            <StickyFooter>\n                <Pagination current={pageNumber} count={total?.pageCount} goToPage={goToPage} />\n            </StickyFooter>\n            <SideBar isShow={isShowFilters} onClose={hideFilters}>\n                {(onClose) => (\n                    <FiltersSidebarContent\n                        onClose={onClose}\n                        queryFilters={queryFilters}\n                        setQueryFilters={handleSetQueryFilters}\n                    />\n                )}\n            </SideBar>\n        </>\n    );\n});\n\nexport default TransportOrderListPageLayout;\n","// extracted by mini-css-extract-plugin\nexport default {\"position\":\"ContactSidebarHeader__position___LrtG1\",\"fadeIn\":\"ContactSidebarHeader__fadeIn___eu_Uj\",\"blinking\":\"ContactSidebarHeader__blinking___MOyCx\"};","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './Widget.scss';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipIconTrigger from 'design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    title: React.ReactNode;\n    afterTitleNode?: React.ReactNode;\n    titleTooltipNode?: React.ReactNode;\n    rightNode?: React.ReactNode;\n    className?: string;\n};\n\nconst Widget: React.FC<PropsT> = React.memo((props) => {\n    const { title, afterTitleNode, titleTooltipNode, rightNode, className, children } = props;\n\n    return (\n        <div className={cs(cx('wrap'), className)}>\n            <div className={cx('header')}>\n                <div className={cx('left-node')}>\n                    <div className={cx('title')}>{title}</div>\n                    {titleTooltipNode && (\n                        <Tooltip\n                            className={cx('tooltip')}\n                            position={TooltipPositionEnum.topCenter}\n                            theme={TooltipThemeEnum.black}\n                            tooltipNode={titleTooltipNode}\n                        >\n                            {(isShow) => <TooltipIconTrigger isShow={isShow} />}\n                        </Tooltip>\n                    )}\n                    {afterTitleNode}\n                </div>\n                <div className={cx('right-node')}>{rightNode}</div>\n            </div>\n            <div className={cx('content')}>{children}</div>\n        </div>\n    );\n});\n\nexport default Widget;\n","import { combineReducers } from 'redux';\n\nimport ratesReducer from './rates/reducer';\nimport rulesReducer from './rules/reducer';\nimport systemSettingsReducer from './system-settings/reducer';\nimport additionalServicesReducer from './additional-services/reducer';\n\nimport { RatesStateT } from './rates/types';\nimport { RulesStateT } from './rules/types';\nimport { SystemSettingsStateT } from './system-settings/types';\nimport { AdditionalServicesStateT } from './additional-services/types';\n\nexport default combineReducers({\n    rates: ratesReducer,\n    rules: rulesReducer,\n    systemSettings: systemSettingsReducer,\n    additionalServices: additionalServicesReducer,\n});\n\nexport type PriceSettingsStateT = {\n    rates: RatesStateT;\n    rules: RulesStateT;\n    systemSettings: SystemSettingsStateT;\n    additionalServices: AdditionalServicesStateT;\n};\n","import * as React from 'react';\nimport { checkHasAnyErrors } from 'common/utils/form-helpers';\n\ntype FormFieldT = string;\ntype FormErrorT = string | string[];\n\nexport const useWatchFormAnyErrors = (errorsMap: Record<FormFieldT, FormErrorT>): boolean => {\n    const hasErrors = React.useMemo(() => {\n        return checkHasAnyErrors(errorsMap);\n    }, [errorsMap]);\n\n    return hasErrors;\n};\n","import * as React from 'react';\nimport { useSyncPointsChannels } from '../hooks/use-sync-points-channels';\nimport { RoutePointFormValuesT } from '../constants';\n\ntype PropsT = {\n    formikArrayHelpers: {\n        insert: (index: number, value: RoutePointFormValuesT) => void;\n        remove: (index: number) => void;\n        move: (from: number, to: number) => void;\n    };\n};\n\nconst SyncPointsWatcher: React.FC<PropsT> = React.memo((props) => {\n    useSyncPointsChannels(props.formikArrayHelpers);\n\n    return null;\n});\n\nexport default SyncPointsWatcher;\n","import { VehicleIdT, VehicleScheduleHashT, VehicleScheduleT } from './models';\n\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { CancelUnavailableVehicleQueryT, SetUnavailableVehicleQueryT } from 'common/utils/api/models';\n\nexport const FETCH_VEHICLE_SCHEDULE_REQUEST = 'common/vehicle-schedules/FETCH_VEHICLE_SCHEDULE_REQUEST';\nexport const FETCH_VEHICLE_SCHEDULE_REQUEST_BEGIN = 'common/vehicle-schedules/FETCH_VEHICLE_SCHEDULE_REQUEST_BEGIN';\nexport const FETCH_VEHICLE_SCHEDULE_REQUEST_SUCCESS = 'common/vehicle-schedules/FETCH_VEHICLE_SCHEDULE_REQUEST_SUCCESS';\nexport const FETCH_VEHICLE_SCHEDULE_REQUEST_ERROR = 'common/vehicle-schedules/FETCH_VEHICLE_SCHEDULE_REQUEST_ERROR';\nexport const SET_UNAVAILABLE_VEHICLE_REQUEST = 'common/vehicle-schedules/SET_UNAVAILABLE_VEHICLE_REQUEST';\nexport const SET_UNAVAILABLE_VEHICLE_REQUEST_BEGIN = 'common/vehicle-schedules/SET_UNAVAILABLE_VEHICLE_REQUEST_BEGIN';\nexport const SET_UNAVAILABLE_VEHICLE_REQUEST_ERROR = 'common/vehicle-schedules/SET_UNAVAILABLE_VEHICLE_REQUEST_ERROR';\nexport const SET_UNAVAILABLE_VEHICLE_REQUEST_SUCCESS =\n    'common/vehicle-schedules/SET_UNAVAILABLE_VEHICLE_REQUEST_SUCCESS';\nexport const CANCEL_UNAVAILABLE_VEHICLE_REQUEST = 'common/vehicle-schedules/CANCEL_UNAVAILABLE_VEHICLE_REQUEST';\nexport const CANCEL_UNAVAILABLE_VEHICLE_REQUEST_BEGIN =\n    'common/vehicle-schedules/CANCEL_UNAVAILABLE_VEHICLE_REQUEST_BEGIN';\nexport const CANCEL_UNAVAILABLE_VEHICLE_REQUEST_ERROR =\n    'common/vehicle-schedules/CANCEL_UNAVAILABLE_VEHICLE_REQUEST_ERROR';\nexport const CANCEL_UNAVAILABLE_VEHICLE_REQUEST_SUCCESS =\n    'common/vehicle-schedules/CANCEL_UNAVAILABLE_VEHICLE_REQUEST_SUCCESS';\n\nexport type SetUnavailableVehicleRequestActionT = {\n    type: typeof SET_UNAVAILABLE_VEHICLE_REQUEST;\n    query: SetUnavailableVehicleQueryT;\n    companyId: CompanyIdT;\n};\n\nexport type SetUnavailableVehicleRequestBeginActionT = {\n    type: typeof SET_UNAVAILABLE_VEHICLE_REQUEST_BEGIN;\n};\n\nexport type SetUnavailableVehicleRequestErrorActionT = {\n    type: typeof SET_UNAVAILABLE_VEHICLE_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type SetUnavailableVehicleRequestSuccessActionT = {\n    type: typeof SET_UNAVAILABLE_VEHICLE_REQUEST_SUCCESS;\n};\n\nexport type CancelUnavailableVehicleRequestActionT = {\n    type: typeof CANCEL_UNAVAILABLE_VEHICLE_REQUEST;\n    query: CancelUnavailableVehicleQueryT;\n    companyId: CompanyIdT;\n};\n\nexport type CancelUnavailableVehicleRequestBeginActionT = {\n    type: typeof CANCEL_UNAVAILABLE_VEHICLE_REQUEST_BEGIN;\n};\n\nexport type CancelUnavailableVehicleRequestErrorActionT = {\n    type: typeof CANCEL_UNAVAILABLE_VEHICLE_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type CancelUnavailableVehicleRequestSuccessActionT = {\n    type: typeof CANCEL_UNAVAILABLE_VEHICLE_REQUEST_SUCCESS;\n};\n\nexport type FetchVehicleScheduleActionT = {\n    type: typeof FETCH_VEHICLE_SCHEDULE_REQUEST;\n    vehicleId: VehicleIdT;\n    aroundDate?: ISODateTimeT | null;\n    options?: FetchOptionsT;\n};\n\nexport type FetchVehicleScheduleBeginActionT = {\n    type: typeof FETCH_VEHICLE_SCHEDULE_REQUEST_BEGIN;\n    hash: VehicleScheduleHashT;\n};\n\nexport type FetchVehicleScheduleSuccessActionT = {\n    type: typeof FETCH_VEHICLE_SCHEDULE_REQUEST_SUCCESS;\n    hash: VehicleScheduleHashT;\n    schedule: VehicleScheduleT;\n};\n\nexport type FetchVehicleScheduleErrorActionT = {\n    type: typeof FETCH_VEHICLE_SCHEDULE_REQUEST_ERROR;\n    error: Error;\n    hash: VehicleScheduleHashT;\n};\n\nexport type VehicleSchedulesActionT =\n    | SetUnavailableVehicleRequestActionT\n    | SetUnavailableVehicleRequestBeginActionT\n    | SetUnavailableVehicleRequestErrorActionT\n    | SetUnavailableVehicleRequestSuccessActionT\n    | CancelUnavailableVehicleRequestActionT\n    | CancelUnavailableVehicleRequestBeginActionT\n    | CancelUnavailableVehicleRequestErrorActionT\n    | CancelUnavailableVehicleRequestSuccessActionT\n    | FetchVehicleScheduleActionT\n    | FetchVehicleScheduleBeginActionT\n    | FetchVehicleScheduleSuccessActionT\n    | FetchVehicleScheduleErrorActionT;\n\nexport type VehicleScheduleStateT = {\n    schedule: VehicleScheduleT;\n    fetchRequestStatus: RequestStatusT;\n};\n\nexport type VehicleSchedulesStateT = {\n    setUnavailableRequest: RequestStatusT;\n    cancelUnavailableRequest: RequestStatusT;\n    byHash: Record<VehicleScheduleHashT, VehicleScheduleStateT>;\n};\n","import { PartnerTypeEnum, RolesEnum } from 'common/utils/api/models';\n\nexport const ALL_ROLES_BY_PARTNER_TYPE: Record<PartnerTypeEnum, RolesEnum[]> = {\n    [PartnerTypeEnum.carrier]: [RolesEnum.user, RolesEnum.companyAdmin],\n    [PartnerTypeEnum.shipper]: [RolesEnum.user, RolesEnum.companyAdmin],\n    [PartnerTypeEnum.broker]: [RolesEnum.companyAdmin, RolesEnum.keyAccountManager, RolesEnum.dispatcher],\n    // DEPRECATED ROLES: RolesEnum.customService\n};\n\nexport enum AuthProfileTypeEnum {\n    shipper = 'shipper',\n    carrier = 'carrier',\n    broker = 'broker',\n}\n\nexport const ALL_AUTH_PROFILE_TYPES = Object.values(AuthProfileTypeEnum);\n","// extracted by mini-css-extract-plugin\nexport default {\"field-value\":\"ReadOnlyFieldValue__field-value___ImI3P\",\"field-value--withInputLayout\":\"ReadOnlyFieldValue__field-value--withInputLayout___rUAcu\",\"field-value__icon\":\"ReadOnlyFieldValue__field-value__icon___icA4H\",\"field-value__label\":\"ReadOnlyFieldValue__field-value__label___yKuYG\",\"field-value__label--hasValue\":\"ReadOnlyFieldValue__field-value__label--hasValue___aoRlK\",\"field-value__right-node\":\"ReadOnlyFieldValue__field-value__right-node___GemYv\",\"unit\":\"ReadOnlyFieldValue__unit___tEIYe\",\"fadeIn\":\"ReadOnlyFieldValue__fadeIn___Q37yR\",\"blinking\":\"ReadOnlyFieldValue__blinking___b7Ubu\"};","import React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport { ApiTruckDictTypeT } from 'common/utils/api/models';\n\nimport styles from './TruckModelDropdown.scss';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectTrucksDict, selectTrucksDictRequest } from 'common/store/trucks-dict/selectors';\nimport ControlLoaderIcon, { ControlLoaderIconProps } from 'common/icons/ControlLoaderIcon';\nimport { fetchTrucksDict } from 'common/store/trucks-dict/actions';\nimport { getTruckDictTypeLabel } from 'common/store/trucks-dict/utils';\nimport TruckIcon, { TruckIconProps } from 'common/icons/TruckIcon';\n\nexport enum TruckIconTypesEnum {\n    default = 'default',\n}\n\nconst cx = classNames.bind(styles);\n\ntype ValueT = ApiTruckDictTypeT | null | undefined;\n\ntype PropsT = {\n    placeholder?: string;\n    value: ValueT;\n    isDisabled?: boolean;\n    onChange: (value: ValueT) => void;\n    hasWarning: boolean;\n    hasError: boolean;\n    hasChanges?: boolean;\n    onBlur: () => void;\n    onFocus: () => void;\n    hasClearControl?: boolean;\n};\n\nexport type OptionT = {\n    value: ValueT;\n    label: string;\n    iconType: TruckIconTypesEnum | null;\n};\n\nconst TruckModelDropdown: React.FC<PropsT> = React.memo((props) => {\n    const {\n        value,\n        placeholder,\n        onChange,\n        isDisabled,\n        hasWarning,\n        hasError,\n        hasChanges,\n        onBlur,\n        onFocus,\n        hasClearControl,\n    } = props;\n\n    const trucksDict = useSelector(selectTrucksDict);\n    const trucksDictList = Object.values(trucksDict || {});\n    const fetchRequest = useSelector(selectTrucksDictRequest);\n\n    const dispatch = useDispatch();\n    React.useEffect(() => {\n        dispatch(fetchTrucksDict());\n    }, [dispatch]);\n\n    const trucksOptions = React.useMemo(\n        () =>\n            trucksDictList.map((truck) => {\n                return {\n                    value: truck.id,\n                    iconType: null,\n                    label: getTruckDictTypeLabel(truck),\n                };\n            }),\n        [trucksDictList],\n    );\n\n    const renderOption = (option: OptionT | null | undefined): React.ReactElement | null => {\n        if (!option) {\n            return null;\n        }\n\n        return (\n            <div className={cx('option')} key={option.label}>\n                {option.label}\n            </div>\n        );\n    };\n\n    const handleSelect = (value: ValueT): void => {\n        onChange(value);\n    };\n\n    const handleReset = (): void => {\n        onChange(null);\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option.value;\n\n    return (\n        <DropdownInput\n            selectedValue={value}\n            placeholder={placeholder}\n            options={trucksOptions}\n            onSelect={handleSelect}\n            isDisabled={isDisabled || fetchRequest.loading}\n            renderOption={renderOption}\n            getOptionValue={getOptionValue}\n            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n            hasWarning={hasWarning}\n            hasError={hasError}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            hasClearControl={hasClearControl}\n            renderLeftIcon={(iconMeta) => <TruckIcon {...TruckIconProps.getControlProps(iconMeta)} />}\n            renderRightIcon={() =>\n                fetchRequest.loading ? <ControlLoaderIcon {...ControlLoaderIconProps.getFetchDataProps()} /> : null\n            }\n            onReset={handleReset}\n        />\n    );\n});\n\nexport default TruckModelDropdown;\n","// extracted by mini-css-extract-plugin\nexport default {\"button\":\"LinkButton__button___bffxu\",\"button--isClickable\":\"LinkButton__button--isClickable___qnxja\",\"button--isDisabled\":\"LinkButton__button--isDisabled___C4IMx\",\"button--height-regular\":\"LinkButton__button--height-regular___d6zdh\",\"button--height-narrow\":\"LinkButton__button--height-narrow___cTyDY\",\"icon\":\"LinkButton__icon___GrzzA\",\"icon--isLeft\":\"LinkButton__icon--isLeft___AzCp7\",\"icon--isRight\":\"LinkButton__icon--isRight___LvQa_\",\"icon--isHidden\":\"LinkButton__icon--isHidden___Z4Ixj\",\"text\":\"LinkButton__text___SGA5_\",\"text--theme-brand-dark\":\"LinkButton__text--theme-brand-dark___XonmY\",\"text--isHidden\":\"LinkButton__text--isHidden___ivSz_\",\"border\":\"LinkButton__border___or6U9\",\"border--theme-brand-dark\":\"LinkButton__border--theme-brand-dark___JHtD4\",\"border--height-regular\":\"LinkButton__border--height-regular___FQF8y\",\"border--height-narrow\":\"LinkButton__border--height-narrow___k3Y1b\",\"inner\":\"LinkButton__inner___jZmya\",\"fadeIn\":\"LinkButton__fadeIn___NwkAk\",\"blinking\":\"LinkButton__blinking___r8KSI\"};","// extracted by mini-css-extract-plugin\nexport default {\"field-group\":\"FieldGroup__field-group___W3AQV\",\"field-group--spaces-3\":\"FieldGroup__field-group--spaces-3___KlSUU\",\"field-group--spaces-2\":\"FieldGroup__field-group--spaces-2___sb762\",\"field-group--spaces-1\":\"FieldGroup__field-group--spaces-1___tywPl\",\"field-group--is-full-width\":\"FieldGroup__field-group--is-full-width___nTUci\",\"fadeIn\":\"FieldGroup__fadeIn___qTetc\",\"blinking\":\"FieldGroup__blinking___P7G09\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './BrokerOrderTable.scss';\nimport { useTranslation } from 'react-i18next';\nimport Table, { TableColumnT, TableRowMetaT } from 'common/components/Table/Table';\nimport CreateCell from './cell-renderers/CreateCell/CreateCell';\nimport { CompanyTypeEnum } from 'common/constants';\nimport MemoizedTable from 'common/components/Table/MemoizedTable/MemoizedTable';\nimport { BrokerOrderShortT } from 'broker-admin/store/broker-orders/models';\nimport TrailerCell from './cell-renderers/TrailerCell/TrailerCell';\nimport CostCell from 'common/components/Table/cell-renderers/CostCell/CostCell';\nimport DropOffCell from './cell-renderers/DropOffCell/DropOffCell';\nimport PickUpCell from './cell-renderers/PickUpCell/PickUpCell';\nimport IdCell from 'common/components/Table/cell-renderers/IdCell/IdCell';\nimport BrokerOrderStatusPill from 'common/components/status-pill/BrokerOrderStatusPill/BrokerOrderStatusPill';\nimport WarningIndicatorCell from 'common/components/Table/cell-renderers/WarningIndicatorCell/WarningIndicatorCell';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    brokerOrders: Array<BrokerOrderShortT>;\n    className: string;\n    goToBrokerOrderDetails: (event: React.MouseEvent, brokerOrderId: BrokerOrderIdT) => void;\n    goToPartnerDetails: (companyId: CarrierIdT, companyType: CompanyTypeEnum) => void;\n    goToTrailerDetails: (companyId: CarrierIdT, trailerId: TrailerIdT) => void;\n    isLoading: boolean;\n};\n\nconst BrokerOrderTable: React.FC<PropsT> = React.memo((props) => {\n    const { brokerOrders, className, goToBrokerOrderDetails, goToPartnerDetails, goToTrailerDetails, isLoading } =\n        props;\n\n    const { t } = useTranslation();\n\n    const columns: Array<TableColumnT<BrokerOrderShortT, void>> = [\n        {\n            renderHeader: () => <span>{t('broker-orders.list.table.columns.id')}</span>,\n            headerClassName: cx('table__header', 'table__header--id'),\n            render: (brokerOrderShort) => <IdCell id={brokerOrderShort?.number} />,\n            className: cx('table__column', 'table__column--id'),\n            testSelector: 'id',\n        },\n        {\n            renderHeader: () => <span>{t('broker-orders.list.table.columns.pick-up')}</span>,\n            headerClassName: cx('table__header'),\n            render: (brokerOrderShort) => <PickUpCell brokerOrderShort={brokerOrderShort} />,\n            className: cx('table__column', 'table__column--pickup'),\n            testSelector: 'pickup',\n        },\n        {\n            renderHeader: () => <span>{t('broker-orders.list.table.columns.drop-off')}</span>,\n            headerClassName: cx('table__header'),\n            render: (brokerOrderShort) => <DropOffCell brokerOrderShort={brokerOrderShort} />,\n            className: cx('table__column', 'table__column--dropoff'),\n            testSelector: 'dropoff',\n        },\n        {\n            renderHeader: () => <span>{t('broker-orders.list.table.columns.created')}</span>,\n            headerClassName: cx('table__header'),\n            render: (brokerOrderShort) => (\n                <CreateCell brokerOrderShort={brokerOrderShort} onOpenPartnerDetails={goToPartnerDetails} />\n            ),\n            className: cx('table__column', 'table__column--created'),\n            testSelector: 'created',\n        },\n        {\n            renderHeader: () => <span>{t('broker-orders.list.table.columns.cost')}</span>,\n            headerClassName: cx('table__header'),\n            render: (brokerOrderShort) => {\n                return <CostCell cost={brokerOrderShort.shipperPrice} />;\n            },\n            className: cx('table__column'),\n            testSelector: 'cost',\n        },\n        {\n            renderHeader: () => <span>{t('broker-orders.list.table.columns.trailer')}</span>,\n            headerClassName: cx('table__header'),\n            render: (brokerOrderShort) => (\n                <TrailerCell brokerOrderShort={brokerOrderShort} onOpenTrailerDetails={goToTrailerDetails} />\n            ),\n            className: cx('table__column', 'table__column--trailer'),\n            testSelector: 'trailer',\n        },\n        {\n            renderHeader: () => null,\n            headerClassName: cx('table__header'),\n            render: (brokerOrderShort) => (\n                <WarningIndicatorCell\n                    isShow={!!brokerOrderShort.hasWarnings}\n                    tooltipText={t('broker-orders.list.table.has-warnings')}\n                />\n            ),\n            className: cx('table__column', 'table__column--has-warnings'),\n            testSelector: 'has-warnings',\n        },\n        {\n            renderHeader: () => <span>{t('broker-orders.list.table.columns.status')}</span>,\n            headerClassName: cx('table__header'),\n            render: (brokerOrderShort) => (\n                <BrokerOrderStatusPill isSymmetrical status={brokerOrderShort.calculatedStatus} />\n            ),\n            className: cx('table__column', 'table__column--status'),\n            testSelector: 'status',\n        },\n    ];\n\n    const handleSelectRow = (event: React.MouseEvent, brokerOrderShort: BrokerOrderShortT) => {\n        if (!brokerOrderShort.id) {\n            return;\n        }\n\n        goToBrokerOrderDetails(event, brokerOrderShort.id);\n    };\n\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const getRowMods = (meta: TableRowMetaT, brokerOrderShort: BrokerOrderShortT) => {\n        return {};\n    };\n\n    return (\n        <div className={cx('table')}>\n            <MemoizedTable<BrokerOrderShortT> tableName=\"broker-orders\" isLoading={isLoading} rows={brokerOrders}>\n                {(rows, isUsedPrevRows) => (\n                    <Table<BrokerOrderShortT, void>\n                        testSelector=\"broker-orders\"\n                        className={className}\n                        columns={columns}\n                        rows={rows}\n                        getRowMods={getRowMods}\n                        onSelectRow={handleSelectRow}\n                        isLoading={isLoading}\n                        isUsedPrevRows={isUsedPrevRows}\n                    />\n                )}\n            </MemoizedTable>\n        </div>\n    );\n});\n\nexport default BrokerOrderTable;\n","export enum FieldsEnum {\n    expiration = 'expiration',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.expiration]: Date | null;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"TrailerDetailsPage__fadeIn___ph4hm\",\"blinking\":\"TrailerDetailsPage__blinking___buLh_\"};","import { AdditionalServicesStateT } from './types';\nimport { StateT } from 'broker-admin/store/models';\n\nexport const selectAdditionalServices = (state: StateT): AdditionalServicesStateT['list'] =>\n    state.priceSettings.additionalServices.list;\n\nexport const selectUpdateAdditionalServiceRequest = (state: StateT): AdditionalServicesStateT['updateRequest'] =>\n    state.priceSettings.additionalServices.updateRequest;\n\nexport const selectFetchAdditionalServicesRequest = (state: StateT): AdditionalServicesStateT['fetchRequest'] =>\n    state.priceSettings.additionalServices.fetchRequest;\n","// extracted by mini-css-extract-plugin\nexport default {\"loader--isAbsolute\":\"SideBarLoader__loader--isAbsolute___tqFK7\",\"loader--isRelative\":\"SideBarLoader__loader--isRelative____pnyC\",\"message\":\"SideBarLoader__message___rtpIw\",\"fadeIn\":\"SideBarLoader__fadeIn___ZJN7x\",\"blinking\":\"SideBarLoader__blinking___qGY2s\"};","import React from 'react';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { EmissionClassEnum } from 'common/constants';\nimport EmissionIcon, { EmissionIconProps } from 'common/icons/EmissionIcon';\nimport { EMISSION_CLASS_I18N_MAP } from 'common/components/EmissionClassLabel/EmissionClassLabel';\nimport DropdownMultipleInput, {\n    RenderTriggerPropsT,\n} from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInput';\nimport { useTranslation } from 'react-i18next';\nimport DropdownBaseButtonTrigger from 'design-system/components/dropdowns/base/DropdownBaseButtonTrigger/DropdownBaseButtonTrigger';\nimport DropdownMultipleInputCountLabel from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInputCountLabel/DropdownMultipleInputCountLabel';\n\ntype ValueT = EmissionClassEnum | null;\n\ntype PropsT = {\n    placeholder?: string;\n    values: Array<ValueT>;\n    onChange: (values: Array<ValueT>) => void;\n    hasWarning: boolean;\n    hasError: boolean;\n    hasChanges?: boolean;\n    onBlur: () => void;\n    onFocus: () => void;\n    hasClearControl?: boolean;\n};\n\ntype EmissionStandardOptionT = {\n    label: string;\n    value: ValueT;\n};\n\nconst ALL_EMISSION_STANDARDS: EmissionClassEnum[] = [EmissionClassEnum.euro5, EmissionClassEnum.euro6];\n\nconst EmissionClassMultipleDropdown: React.FC<PropsT> = React.memo((props) => {\n    const { values, placeholder, onChange, hasWarning, hasError, hasChanges, onBlur, onFocus, hasClearControl } = props;\n\n    const { t } = useTranslation();\n\n    const options: Array<EmissionStandardOptionT> = React.useMemo(\n        () =>\n            ALL_EMISSION_STANDARDS.map((value) => ({\n                label: t(EMISSION_CLASS_I18N_MAP[value]),\n                value,\n            })),\n        [t],\n    );\n\n    const renderOption = (option: EmissionStandardOptionT | null | undefined): React.ReactElement | null => {\n        if (!option) {\n            return null;\n        }\n\n        return <div key={option.label}>{option.label}</div>;\n    };\n\n    const renderTrigger = (\n        props: RenderTriggerPropsT,\n        options: Array<EmissionStandardOptionT>,\n        placeholder: string | undefined,\n    ): React.ReactNode => {\n        if (!options?.length) {\n            return (\n                <DropdownBaseButtonTrigger\n                    {...props}\n                    isShowClearControl={false}\n                    renderLeftIcon={(iconMeta) => {\n                        return <EmissionIcon {...EmissionIconProps.getControlProps(iconMeta)} />;\n                    }}\n                >\n                    {placeholder || ''}\n                </DropdownBaseButtonTrigger>\n            );\n        }\n\n        if (options.length === 1) {\n            const firstOption = options?.[0];\n\n            return (\n                <DropdownBaseButtonTrigger\n                    {...props}\n                    renderLeftIcon={(iconMeta) => {\n                        return <EmissionIcon {...EmissionIconProps.getControlProps(iconMeta)} />;\n                    }}\n                >\n                    {firstOption?.label}\n                </DropdownBaseButtonTrigger>\n            );\n        }\n\n        return (\n            <DropdownBaseButtonTrigger\n                {...props}\n                renderLeftIcon={(iconMeta) => {\n                    return <EmissionIcon {...EmissionIconProps.getControlProps(iconMeta)} />;\n                }}\n            >\n                <DropdownMultipleInputCountLabel count={options?.length} />\n            </DropdownBaseButtonTrigger>\n        );\n    };\n\n    const handleReset = () => {\n        onChange([]);\n    };\n\n    return (\n        <DropdownMultipleInput<EmissionStandardOptionT, EmissionClassEnum | null>\n            selectedValues={values}\n            placeholder={placeholder}\n            options={options}\n            onSelect={onChange}\n            renderOption={renderOption}\n            renderTrigger={renderTrigger}\n            getOptionValue={(option: EmissionStandardOptionT) => {\n                return option.value;\n            }}\n            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n            hasWarning={hasWarning}\n            hasError={hasError}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            onReset={hasClearControl ? handleReset : undefined}\n        />\n    );\n});\n\nexport default EmissionClassMultipleDropdown;\n","import { ApiPartnerTypeT, PartnerTypeEnum } from 'common/utils/api/models';\n\nexport const checkNeedShowBillingInfo = (partnerType: ApiPartnerTypeT | null | undefined): boolean =>\n    partnerType === PartnerTypeEnum.shipper || partnerType === PartnerTypeEnum.carrier;\n","// extracted by mini-css-extract-plugin\nexport default {\"map-trigger\":\"SwitchableViewMapTrigger__map-trigger___Mal3t\",\"fadeIn\":\"SwitchableViewMapTrigger__fadeIn___lDjHb\",\"blinking\":\"SwitchableViewMapTrigger__blinking___UD9mv\"};","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"DictTrailerDropdown__option___B1d_Y\",\"option__icon\":\"DictTrailerDropdown__option__icon___kCLcR\",\"fadeIn\":\"DictTrailerDropdown__fadeIn___cdc5_\",\"blinking\":\"DictTrailerDropdown__blinking___w9L8i\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './ContractNameCell.scss';\nimport ContractName from 'common/components/ContractName/ContractName';\n\ntype PropsT = {\n    name: string;\n};\n\nconst cx = classNames.bind(styles);\n\nconst ContractNameCell: React.FC<PropsT> = React.memo((props) => {\n    const { name } = props;\n\n    return (\n        <div className={cx('name')}>\n            <ContractName name={name} />\n        </div>\n    );\n});\n\nexport default ContractNameCell;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './PartnersTable.scss';\nimport { useTranslation } from 'react-i18next';\nimport LocationCell from './cell-renderers/LocationCell/LocationCell';\nimport TypeCell from './cell-renderers/TypeCell/TypeCell';\nimport Table, { TableColumnT, TableRowMetaT, TableRowModsEnum } from 'common/components/Table/Table';\nimport { PartnerT } from 'broker-admin/store/partners/models';\nimport ControlsCell from './cell-renderers/ControlsCell/ControlsCell';\nimport NameCell from './cell-renderers/NameCell/NameCell';\nimport ContactCell from './cell-renderers/ContactCell/ContactCell';\nimport { ApiPartnerTypeT } from 'common/utils/api/models';\nimport MemoizedTable from 'common/components/Table/MemoizedTable/MemoizedTable';\nimport { checkAllVerified } from './utils';\nimport { isNonNil } from 'common/utils';\nimport TeamsCell from './cell-renderers/TeamsCell/TeamsCell';\nimport WarningsCell from './cell-renderers/WarningsCell/WarningsCell';\nimport { logWarning } from 'common/utils/logger';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    partners: Array<PartnerT>;\n    className?: string;\n    goToPartnerDetails: (event: React.MouseEvent, partnerType: ApiPartnerTypeT, partnerId: PartnerIdT) => void;\n    isLoading: boolean;\n    canDeletePartner: boolean;\n};\n\nconst PartnersTable: React.FC<PropsT> = React.memo((props) => {\n    const { partners, className, goToPartnerDetails, isLoading, canDeletePartner } = props;\n\n    const { t } = useTranslation();\n\n    const handleDelete = () => {\n        // TODO\n    };\n\n    const columns: Array<TableColumnT<PartnerT, void>> = [\n        {\n            renderHeader: () => <span>{t('partners-table.columns.name')}</span>,\n            headerClassName: cx('table__header', 'table__header--name'),\n            render: (partner: PartnerT) => <NameCell partner={partner} />,\n            className: cx('table__column', 'table__column--name'),\n        },\n        {\n            renderHeader: () => <span>{t('partners-table.columns.location')}</span>,\n            headerClassName: cx('table__header'),\n            render: (partner: PartnerT) => <LocationCell partner={partner} />,\n            className: cx('table__column', 'table__column--any'),\n        },\n        {\n            renderHeader: () => <span>{t('partners-table.columns.contact')}</span>,\n            headerClassName: cx('table__header'),\n            render: (partner: PartnerT) => <ContactCell partner={partner} />,\n            className: cx('table__column', 'table__column--сontact'),\n        },\n        {\n            renderHeader: () => <span>{t('partners-table.columns.teams')}</span>,\n            headerClassName: cx('table__header', 'table__header--teams'),\n            render: (partner: PartnerT) => <TeamsCell partner={partner} />,\n            className: cx('table__column', 'table__column--teams'),\n        },\n        {\n            renderHeader: () => <span>{t('partners-table.columns.type')}</span>,\n            headerClassName: cx('table__header', 'table__header--type'),\n            render: (partner: PartnerT) => <TypeCell partner={partner} />,\n            className: cx('table__column', 'table__column--type'),\n        },\n        {\n            renderHeader: () => null,\n            headerClassName: cx('table__header', 'table__header--warnings'),\n            render: (partner: PartnerT) => <WarningsCell partner={partner} />,\n            className: cx(\n                'table__column',\n                canDeletePartner ? 'table__column--warnings' : 'table__column--last-warnings',\n            ),\n        },\n        canDeletePartner\n            ? {\n                  renderHeader: () => null,\n                  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n                  render: (partner: PartnerT) => (\n                      <>\n                          <ControlsCell onDelete={handleDelete} canDeletePartner={canDeletePartner} />\n                      </>\n                  ),\n                  className: cx('table__column', 'table__column--controls'),\n              }\n            : null,\n    ].filter(isNonNil);\n\n    const handleSelectRow = (event: React.MouseEvent, partner: PartnerT) => {\n        if (!partner.type) {\n            logWarning('Failed to select row, empty partner type');\n            return;\n        }\n        goToPartnerDetails(event, partner.type, partner.id);\n    };\n\n    const getRowMods = (meta: TableRowMetaT, partner: PartnerT) => {\n        const isAllVerified = checkAllVerified(partner);\n        return {\n            [TableRowModsEnum.hasLeftGreenBorder]: false,\n            [TableRowModsEnum.hasLeftRedBorder]: false,\n            [TableRowModsEnum.hasLeftGreyBorder]: !isAllVerified,\n            [TableRowModsEnum.isSelected]: false,\n            [TableRowModsEnum.isHighlighted]: !isAllVerified,\n        };\n    };\n\n    return (\n        <div className={cx('table')}>\n            <MemoizedTable<PartnerT> tableName=\"partners\" isLoading={isLoading} rows={partners}>\n                {(rows, isUsedPrevRows) => (\n                    <Table<PartnerT, void>\n                        className={className}\n                        columns={columns}\n                        rows={rows}\n                        getRowMods={getRowMods}\n                        onSelectRow={handleSelectRow}\n                        isLoading={isLoading}\n                        isUsedPrevRows={isUsedPrevRows}\n                    />\n                )}\n            </MemoizedTable>\n        </div>\n    );\n});\n\nexport default PartnersTable;\n","// extracted by mini-css-extract-plugin\nexport default {\"icon\":\"TooltipIconTrigger__icon___eRCY4\",\"fadeIn\":\"TooltipIconTrigger__fadeIn___L9ncV\",\"blinking\":\"TooltipIconTrigger__blinking___bo_my\"};","import * as React from 'react';\nimport { useMemo } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './RouteMap.scss';\nimport { useSelector } from 'react-redux';\nimport { selectPolylines, selectPriceOffersById, selectRFQ } from 'common/store/order-creation/selectors';\nimport MultiPointOrderRouteMap, {\n    MultiPointOrderRouteMapPropsT,\n} from 'common/components/MultiPointOrderRouteMap/MultiPointOrderRouteMap';\nimport MapFooterEstimate from 'common/layouts/NewOrderPage/MapFooterEstimate/MapFooterEstimate';\nimport { M_IN_KM } from 'common/utils/distance';\nimport { QueryKeysEnum } from 'common/constants';\nimport useQuery from 'common/utils/hooks/useQuery';\n\nconst cx = classNames.bind(styles);\n\ntype QueryT = {\n    [QueryKeysEnum.orderCreationPriceOfferId]: string;\n};\n\ntype PropsT = {};\n\nconst RouteMap: React.FC<PropsT> = React.memo(() => {\n    const polylines = useSelector(selectPolylines);\n\n    const query = useQuery<QueryT>();\n\n    const priceOffersById = useSelector(selectPriceOffersById);\n    const selectedOfferId = query[QueryKeysEnum.orderCreationPriceOfferId];\n    const selectedOffer = priceOffersById[selectedOfferId || ''] || null;\n\n    const rfq = useSelector(selectRFQ);\n\n    const mapPoints = useMemo((): MultiPointOrderRouteMapPropsT['points'] => {\n        if (rfq) {\n            return rfq.points.map((point, index) => {\n                return {\n                    longitude: point.address?.longitude,\n                    latitude: point.address?.latitude,\n                    type: point.type,\n                    index,\n                };\n            });\n        }\n\n        return null;\n    }, [rfq]);\n\n    const isLoading = !polylines?.length || !rfq;\n\n    return (\n        <div className={cx('map')}>\n            <MultiPointOrderRouteMap isLoading={isLoading} points={mapPoints} route={polylines}>\n                <MapFooterEstimate\n                    isLoading={isLoading}\n                    distanceM={selectedOffer?.distanceKm ? selectedOffer.distanceKm * M_IN_KM : undefined}\n                    travelTimeSec={selectedOffer?.travelSeconds}\n                />\n            </MultiPointOrderRouteMap>\n        </div>\n    );\n});\n\nexport default RouteMap;\n","import * as React from 'react';\nimport { memo } from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './RateSourceOption.scss';\nimport cs from 'classnames';\nimport { Trans } from 'react-i18next';\n\nconst cx = classNames.bind(styles);\n\nconst ContractName = ({\n    className,\n    label,\n    labelFallback,\n}: {\n    label?: React.ReactNode;\n    labelFallback?: React.ReactNode;\n    className?: string;\n}) => {\n    return (\n        <span\n            className={cs(\n                cx('contract-name', {\n                    'contract-name--is-fallback': !label,\n                }),\n                className,\n            )}\n        >\n            {label || labelFallback || '-'}\n        </span>\n    );\n};\n\ntype PropsT = {\n    isContract: boolean;\n    isCurrentContract: boolean;\n    label?: React.ReactNode;\n    labelFallback?: React.ReactNode;\n};\n\nconst RateSourceOption: React.FC<PropsT> = memo((props) => {\n    const { isContract, isCurrentContract, label, labelFallback } = props;\n\n    if (isContract) {\n        return (\n            <Trans\n                i18nKey={\n                    isCurrentContract\n                        ? 'common:assets.activation.fields.source.current-contract-option-template'\n                        : 'common:assets.activation.fields.source.contract-option-template'\n                }\n                components={{\n                    contractName: <ContractName label={label} labelFallback={labelFallback} />,\n                }}\n            />\n        );\n    }\n\n    return <span>{label || labelFallback || null}</span>;\n});\n\nexport default RateSourceOption;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './WarningTextFormatter.scss';\n\ntype PropsT = {\n    isActive: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nconst WarningTextFormatter: React.FC<PropsT> = React.memo((props) => {\n    const { isActive, children } = props;\n\n    return <span className={isActive ? cx('warning') : ''}>{children}</span>;\n});\n\nexport default WarningTextFormatter;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst LinearScaleIcon: React.FC<PropsT> = (props) => {\n    const { strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M15.625 8.125c-.773 0-1.425.465-1.717 1.125h-2.19A1.876 1.876 0 0010 8.125c-.773 0-1.425.465-1.718 1.125h-2.19a1.876 1.876 0 00-1.717-1.125 1.876 1.876 0 000 3.75c.772 0 1.425-.465 1.718-1.125h2.19c.292.66.944 1.125 1.717 1.125.773 0 1.425-.465 1.717-1.125h2.19c.293.66.945 1.125 1.718 1.125a1.876 1.876 0 000-3.75z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nLinearScaleIcon.displayName = 'LinearScaleIcon';\n\nconst storyProps: PropsT = {\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default LinearScaleIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"group--isGroup\":\"CheckboxTree__group--isGroup___tlLUB\",\"checkbox\":\"CheckboxTree__checkbox___ovv0K\",\"fadeIn\":\"CheckboxTree__fadeIn___zqs_A\",\"blinking\":\"CheckboxTree__blinking___g7x3p\"};","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"UserFormalDropdown__option___OKwLV\",\"fadeIn\":\"UserFormalDropdown__fadeIn___kmpws\",\"blinking\":\"UserFormalDropdown__blinking___s0kzE\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\nimport moment from 'moment';\nimport { useTranslation } from 'react-i18next';\n\nimport styles from './PaperLayout.scss';\nimport ImageLoader from 'common/components/papers/ImageLoader/ImageLoader';\nimport Link, { LinkSizeEnum, LinkThemeEnum } from 'common/components/Link/Link';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport ArrowDownIcon from 'common/icons/ArrowDownIcon';\nimport ControlLoaderWithShadow from 'common/components/ControlLoaderWithShadow/ControlLoaderWithShadow';\nimport { DEFAULT_CARRIER_COMPANY_ID, StyleGuideColorsEnum } from 'common/constants';\nimport isString from 'lodash/isString';\nimport UploadedByLabel from './UploadedByLabel/UploadedByLabel';\nimport { ApiDeleteUnavailableReasonT, ApiPaperCreatedByRoleT, PartnerTypeEnum } from 'common/utils/api/models';\nimport { PaperPlaceholder } from 'common/components/papers/PaperLayout/PaperPlaceholder/PaperPlaceholder';\nimport { checkIsPDFFile } from 'common/utils/file-name';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    isOptimistic?: boolean;\n    paperId: PaperIdT;\n    imageSrc?: string | null;\n    imageAlt?: string | null;\n    originalFileName?: string | null;\n    date?: string | null;\n    userName?: string | null;\n    userId?: UserIdT | null;\n    onOpenUserDetails?: (params: {\n        userId: UserIdT | null;\n        partnerType?: PartnerTypeEnum;\n        partnerId?: PartnerIdT;\n    }) => void;\n    onOpenDriverDetails?: (params: { driverId: DriverIdT; partnerId: PartnerIdT }) => void;\n    createdByRole?: ApiPaperCreatedByRoleT | null;\n    onClick?: (event: React.MouseEvent<HTMLElement>, paperId: PaperIdT) => void;\n    onDownload?: (event: React.MouseEvent<HTMLElement>, paperId: PaperIdT) => void;\n    isDeleting?: boolean;\n    onDelete?: (event: React.MouseEvent<HTMLElement>, paperId: PaperIdT) => void;\n    deleteUnavailableReason?: ApiDeleteUnavailableReasonT | null;\n    isUploading?: boolean;\n    isHideUserInfo?: boolean;\n    className?: string;\n};\n\nconst deleteUnavailableReasonI18nMap: Record<ApiDeleteUnavailableReasonT, string> = {\n    NO_ACCESS: 'common:papers-card.delete-unavailable-reason.NO_ACCESS',\n    LAST_DELIVERY_NOTE: 'common:papers-card.delete-unavailable-reason.LAST_DELIVERY_NOTE',\n    LAST_SIGNED_DELIVERY_NOTE: 'common:papers-card.delete-unavailable-reason.LAST_SIGNED_DELIVERY_NOTE',\n    TO_IS_CANCELED: 'common:papers-card.delete-unavailable-reason.TO_IS_CANCELED',\n    TO_IS_DONE: 'common:papers-card.delete-unavailable-reason.TO_ID_DONE',\n    SHIPMENT_IS_CANCELED: 'common:papers-card.delete-unavailable-reason.SHIPMENT_IS_CANCELED',\n    SHIPMENT_IS_DONE: 'common:papers-card.delete-unavailable-reason.SHIPMENT_IS_DONE',\n};\n\nconst PaperLayout: React.FC<PropsT> = React.memo((props) => {\n    const {\n        paperId,\n        imageSrc,\n        imageAlt,\n        originalFileName,\n        date,\n        userName,\n        userId,\n        onOpenUserDetails,\n        onOpenDriverDetails,\n        isDeleting,\n        onDelete,\n        deleteUnavailableReason,\n        onDownload,\n        createdByRole,\n        isUploading,\n        onClick,\n        className,\n        isHideUserInfo,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const formattedDate = React.useMemo(() => {\n        if (!date) {\n            return null;\n        }\n        return moment(date).format('DD.MM.YYYY, HH:mm');\n    }, [date]);\n\n    const handleOpenUserDetails = React.useCallback(() => {\n        if (!userId) {\n            return;\n        }\n\n        if (createdByRole === 'BROKER' && onOpenUserDetails) {\n            onOpenUserDetails({\n                userId,\n            });\n        } else if (createdByRole === 'SHIPPER' && onOpenUserDetails) {\n            onOpenUserDetails({\n                userId,\n            });\n        } else if (createdByRole === 'CARRIER' && onOpenUserDetails) {\n            onOpenUserDetails({\n                userId,\n            });\n        } else if (createdByRole === 'DRIVER' && onOpenDriverDetails) {\n            onOpenDriverDetails({\n                driverId: userId,\n                // The driver details section is currently available only for the carrier, so we use the default carrier company id.\n                // userId in the broker portal should be empty because the broker does not have access to driver details.\n                partnerId: DEFAULT_CARRIER_COMPANY_ID,\n            });\n        }\n    }, [userId, createdByRole, onOpenUserDetails, onOpenDriverDetails]);\n\n    const isDisabledDelete = Boolean(deleteUnavailableReason);\n\n    const handleDelete = React.useCallback(\n        (event: React.MouseEvent<HTMLElement>) => {\n            event.stopPropagation();\n\n            if (isDisabledDelete) {\n                return;\n            }\n\n            if (onDelete && paperId) {\n                onDelete(event, paperId);\n            }\n        },\n        [onDelete, paperId, isDisabledDelete],\n    );\n\n    const handleDownload = React.useCallback(\n        (event: React.MouseEvent<HTMLElement>) => {\n            event.stopPropagation();\n            if (onDownload && paperId) {\n                onDownload(event, paperId);\n            }\n        },\n        [onDownload, paperId],\n    );\n\n    const handleClick = React.useCallback(\n        (event: React.MouseEvent<HTMLElement>) => {\n            if (onClick && paperId) {\n                onClick(event, paperId);\n            }\n        },\n        [onClick, paperId],\n    );\n\n    const isShowUserInfo =\n        !isHideUserInfo &&\n        ((createdByRole === 'BROKER' && onOpenUserDetails) ||\n            (createdByRole === 'SHIPPER' && onOpenUserDetails) ||\n            (createdByRole === 'CARRIER' && onOpenUserDetails) ||\n            (createdByRole === 'DRIVER' && onOpenDriverDetails));\n\n    const renderPaperThumbnail = () => {\n        const isPdfPaper = checkIsPDFFile(originalFileName);\n        if (isPdfPaper) {\n            return <PaperPlaceholder className={cx('thumbnail__img')} />;\n        }\n\n        if (imageSrc) {\n            return <ImageLoader src={imageSrc} alt={imageAlt || null} className={cx('thumbnail__img')} />;\n        }\n\n        return null;\n    };\n\n    return (\n        <div className={cs(cx('wrap'), className)}>\n            <div className={cs(cx('thumbnail'), { [cx('thumbnail--clickable')]: !!onClick })} onClick={handleClick}>\n                {renderPaperThumbnail()}\n                <UploadedByLabel createdByRole={createdByRole} className={cx('uploaded-by-label')} />\n                <div className={cx('controls')}>\n                    {!isDeleting && onDownload && (\n                        <Tooltip\n                            position={TooltipPositionEnum.topCenter}\n                            theme={TooltipThemeEnum.black}\n                            tooltipNode={\n                                <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                                    {t('common:tooltips.download')}\n                                </TooltipContent>\n                            }\n                        >\n                            {() => (\n                                <Button\n                                    onClick={handleDownload}\n                                    theme={ButtonThemeEnum.secondary}\n                                    testSelector=\"download-paper\"\n                                    noPaddings\n                                    contentClassName={cx('controls__button-inner')}\n                                >\n                                    <ArrowDownIcon fillColor={StyleGuideColorsEnum.charcoal} />\n                                </Button>\n                            )}\n                        </Tooltip>\n                    )}\n                    {!isDeleting && onDelete && (\n                        <Tooltip\n                            position={TooltipPositionEnum.topCenter}\n                            theme={TooltipThemeEnum.black}\n                            tooltipNode={\n                                <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                                    {deleteUnavailableReason\n                                        ? t(deleteUnavailableReasonI18nMap[deleteUnavailableReason])\n                                        : t('common:tooltips.remove')}\n                                </TooltipContent>\n                            }\n                        >\n                            {() => (\n                                <Button\n                                    onClick={handleDelete}\n                                    theme={ButtonThemeEnum.secondary}\n                                    testSelector=\"delete-paper\"\n                                    noPaddings\n                                    contentClassName={cx('controls__button-inner')}\n                                    isDisabled={isDisabledDelete}\n                                >\n                                    <CloseIcon fillColor={StyleGuideColorsEnum.currentColor} />\n                                </Button>\n                            )}\n                        </Tooltip>\n                    )}\n                </div>\n                {(isDeleting || isUploading) && (\n                    <div className={cx('loader__container', 'loader__container--is-paranja')}>\n                        <ControlLoaderWithShadow className={cx('loader')} fillColor={StyleGuideColorsEnum.light} />\n                    </div>\n                )}\n            </div>\n            <div className={cx('details')}>\n                <div className={cx('details__file-name')} title={originalFileName || undefined}>\n                    {originalFileName}\n                </div>\n                {isString(formattedDate) && <div className={cx('details__date')}>{formattedDate}</div>}\n                {isShowUserInfo && isString(userName) && (\n                    <>\n                        {userId && onOpenUserDetails ? (\n                            <Link\n                                onClick={handleOpenUserDetails}\n                                theme={LinkThemeEnum.boldBrandDark}\n                                size={LinkSizeEnum.preExtraSmall}\n                                className={cx('details__user-link')}\n                            >\n                                {userName}\n                            </Link>\n                        ) : (\n                            <span className={cx('details__user-text')}>{userName}</span>\n                        )}\n                    </>\n                )}\n            </div>\n        </div>\n    );\n});\n\nexport default PaperLayout;\n","import React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport BigTrashIcon from 'common/icons/BigTrashIcon';\n\nexport type RevokeShipperLaneConfirmationDataT = {\n    partnerId: PartnerIdT;\n    shipperContractId: ShipperContractIdT;\n    laneId: ShipperContractLaneIdT;\n    laneNumber: string;\n};\n\ntype PropsT = {\n    data: RevokeShipperLaneConfirmationDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onConfirm: (data: RevokeShipperLaneConfirmationDataT) => void;\n    requestStatus: RequestStatusT;\n};\n\nconst TEST_SELECTOR = 'revoke-shipper-lane-confirmation';\n\nconst RevokeShipperLaneConfirmationModal: React.FC<PropsT> = React.memo((props) => {\n    const { data, onCancel, onClose, requestStatus, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            isDisabled: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            onClick: () => {\n                                onCancel();\n                            },\n                        },\n                        {\n                            children: t('common:error-modal.actions.revoke'),\n                            theme: ButtonThemeEnum.danger,\n                            isDisabled: requestStatus.loading,\n                            isLoading: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigTrashIcon />}\n                    title={t('common:shipper-lane-details.dialogs.revoke.title', {\n                        number: data.laneNumber,\n                    })}\n                    message={t('common:shipper-lane-details.dialogs.revoke.message')}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default RevokeShipperLaneConfirmationModal;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './DropdownControlTriggerLabel.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    label: React.ReactNode;\n    icon?: React.ReactNode;\n};\n\nconst DropdownControlTriggerLabel: React.FC<PropsT> = (props) => {\n    const { label, icon } = props;\n\n    return (\n        <div className={cx('option')}>\n            {icon && <div className={cx('option__icon')}>{icon}</div>}\n            <div className={cx('option__label')}>{label}</div>\n        </div>\n    );\n};\n\nexport default DropdownControlTriggerLabel;\n","import * as React from 'react';\nimport { useMemo } from 'react';\nimport {\n    DEFAULT_TIME_WINDOW_PICKER_SETTINGS,\n    FieldsEnum,\n    FormValuesT,\n    RangeIdSetEnum,\n    RoutePointFieldsEnum,\n} from '../constants';\nimport { ReservePreviewT, ReserveT } from 'common/store/order-creation/models';\nimport {\n    convertReserveTimeWindowToRelativeTimeWindow,\n    createReserveTimeWindow,\n    setDateForReserveTimeWindow,\n    setTimeWindowForReserveTimeWindow,\n    suggestLastTimeWindowOfDay,\n} from 'common/layouts/NewOrderPage/ShipmentDetailsForm/utils';\nimport { useSelector } from 'react-redux';\nimport { ALL_DAY_RANGE, DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport {\n    OnChangeRoutePointReserveT,\n    TimeWindowPickerSettingsT,\n} from 'common/layouts/NewOrderPage/ShipmentDetailsForm/models';\nimport { RangeSelectorMarkT, RangeSelectorRangeT } from 'common/components/RangeSelector/RangeSelector';\nimport { isNonNil } from 'common/utils';\nimport { clearDateTimezone, getMaxISODate, MS_IN_MIN } from 'common/utils/time';\nimport { RangeSelectorZoneThemeEnum } from 'common/components/RangeSelector/constants';\nimport {\n    selectMaxWindowSizeMs,\n    selectMinWindowSizeMs,\n    selectTimeWindowQuantumMs,\n} from 'common/store/settings/selectors';\nimport { useTranslation } from 'react-i18next';\nimport FormikConnectContextField from 'common/components/forms/FormikConnectContextField/FormikConnectContextField';\nimport GeoSuggest from 'common/components/GeoSuggest/GeoSuggest';\nimport noop from 'lodash/noop';\nimport TimeIntervalDurationPillLabel from 'common/layouts/NewOrderPage/ShipmentDetailsForm/TimeIntervalDurationPillLabel/TimeIntervalDurationPillLabel';\nimport QuickTimeWindowLink from 'common/layouts/NewOrderPage/ShipmentDetailsForm/QuickTimeWindowLink/QuickTimeWindowLink';\nimport Switcher, { SwitcherThemeEnum } from 'common/components/Switcher/Switcher';\nimport { useFormikContext } from 'formik';\nimport { getFieldFormValue } from 'common/utils/form-values';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './PickupOrDeliveryRoutePointPicker.scss';\nimport TimeWindowPicker from 'common/components/range-selectors/TimeWindowPicker/TimeWindowPicker';\nimport DeleteWaypointTrigger from 'common/layouts/NewOrderPage/ShipmentDetailsForm/DeleteWaypointTrigger/DeleteWaypointTrigger';\nimport WaypointNumberIcon from 'common/layouts/NewOrderPage/ShipmentDetailsForm/WaypointNumberIcon/WaypointNumberIcon';\nimport { SyncShipmentDetailsFormMapStateContext } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/contexts/sync-map-state';\nimport LinkDatePicker, {\n    DatePickerOverlayPositionEnum,\n} from 'design-system/components/date-pickers/LinkDatePicker/LinkDatePicker';\nimport { CalendarDateValueT } from 'design-system/components/Calendar/Calendar';\nimport moment from 'moment';\nimport { useSelectedLane } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/hooks/use-selected-lane';\nimport isEqual from 'lodash/isEqual';\nimport CalendarAltIcon from 'common/icons/CalendarAltIcon';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipIconTrigger from 'design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger';\nimport TimeIntervalLimitPillLabel from 'common/layouts/NewOrderPage/ShipmentDetailsForm/TimeIntervalLimitPillLabel/TimeIntervalLimitPillLabel';\nimport TimeWindowZoneText from './TimeWindowZoneText/TimeWindowZoneText';\nimport TeamDriveIcon, { TeamDriveIconProps } from 'common/icons/TeamDriveIcon';\nimport UrgentIcon, { UrgentIconProps } from 'common/icons/UrgentIcon';\nimport HourglassIcon, { HourglassIconProps } from 'common/icons/HourglassIcon';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    label: React.ReactNode;\n    routePointIndex: number;\n    previewReserve: ReservePreviewT | null;\n    reserve: ReserveT | null;\n    onRemove: (index: number) => void;\n    isAllowRemove: boolean;\n    onManualSelectLocation: (location: LocationT | null, routePointIndex: number) => void;\n    onChangeRoutePointReserve: OnChangeRoutePointReserveT;\n    onResetRoutePointLocation: () => void;\n    isDisabledPreviewReserve?: boolean;\n    isShowSuggestLoading?: boolean;\n    hasSelectedAnyTeamDrive?: boolean;\n};\n\nconst surchargeRangeTypeSet = new Set<string>([\n    RangeIdSetEnum.urgentPickUp,\n    RangeIdSetEnum.teamDriveDropOff,\n    RangeIdSetEnum.layoverDropOff,\n    RangeIdSetEnum.broker,\n]);\n\nconst PickupOrDeliveryRoutePointPicker: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        routePointIndex,\n        previewReserve,\n        onRemove,\n        reserve,\n        isAllowRemove,\n        label,\n        onManualSelectLocation,\n        onChangeRoutePointReserve,\n        isDisabledPreviewReserve,\n        isShowSuggestLoading,\n        hasSelectedAnyTeamDrive,\n        onResetRoutePointLocation,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const currentPointTimeWindow = previewReserve?.timeWindows?.[routePointIndex] || null;\n\n    const syncShipmentDetailsFormMapStateContext = React.useContext(SyncShipmentDetailsFormMapStateContext);\n\n    const formik = useFormikContext<FormValuesT>();\n\n    const fakeIdFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.fakeId}` as const;\n    const locationFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.location}` as const;\n    const timeWindowFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.timeWindow}` as const;\n    const isBrokerTimeWindowFieldName =\n        `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.isBrokerTimeWindow}` as const;\n    const selectedIsBrokerTimeWindow = getFieldFormValue(formik.values, isBrokerTimeWindowFieldName);\n    const selectedTimeWindow = getFieldFormValue(formik.values, timeWindowFieldName);\n    const fakeId = getFieldFormValue(formik.values, fakeIdFieldName);\n\n    const timeWindowQuantumMs = useSelector(selectTimeWindowQuantumMs);\n\n    const minWindowSizeMs = useSelector(selectMinWindowSizeMs);\n    const maxWindowSizeMs = useSelector(selectMaxWindowSizeMs);\n\n    const minRangeTimeWindow = minWindowSizeMs - MS_IN_MIN;\n    const maxRangeTimeWindow = maxWindowSizeMs + MS_IN_MIN;\n\n    const teamDriveMark = useMemo(\n        () => ({\n            borderTheme: RangeSelectorZoneThemeEnum.orange,\n            icon: <TeamDriveIcon {...TeamDriveIconProps.getCreateOrder()} />,\n        }),\n        [],\n    );\n\n    const urgentPickUpMark = useMemo(\n        () => ({\n            borderTheme: RangeSelectorZoneThemeEnum.orange,\n            icon: <UrgentIcon {...UrgentIconProps.getCreateOrder()} />,\n        }),\n        [],\n    );\n\n    const layoverMark = useMemo(\n        () => ({\n            borderTheme: RangeSelectorZoneThemeEnum.orange,\n            icon: <HourglassIcon {...HourglassIconProps.getCreateOrder()} />,\n        }),\n        [],\n    );\n\n    const teamDriveDropOffRange = useMemo(\n        () => ({\n            id: RangeIdSetEnum.teamDriveDropOff,\n            label: t('common:time-windows-types.team-drive'),\n            theme: RangeSelectorZoneThemeEnum.orange,\n        }),\n        [t],\n    );\n\n    const regularDropOffRange = useMemo(\n        () => ({\n            id: RangeIdSetEnum.regularDropOff,\n            theme: null,\n        }),\n        [],\n    );\n\n    const brokerAppointmentDropOffRange = useMemo(\n        () => ({\n            id: RangeIdSetEnum.broker,\n            theme: RangeSelectorZoneThemeEnum.orange,\n            label: t('common:time-windows-types.broker-appointment'),\n        }),\n        [t],\n    );\n\n    const urgentPickUpRange = useMemo(\n        () => ({\n            id: RangeIdSetEnum.urgentPickUp,\n            label: t('common:time-windows-types.urgent'),\n            theme: RangeSelectorZoneThemeEnum.orange,\n        }),\n        [t],\n    );\n\n    const regularPickUpRange = useMemo(\n        () => ({\n            id: RangeIdSetEnum.regularPickUp,\n            theme: null,\n        }),\n        [],\n    );\n\n    const layoverDropOffRange = useMemo(\n        () => ({\n            id: RangeIdSetEnum.layoverDropOff,\n            label: t('common:time-windows-types.layover'),\n            theme: RangeSelectorZoneThemeEnum.orange,\n        }),\n        [t],\n    );\n\n    const brokerAppointmentPickUpRange = useMemo(\n        () => ({\n            id: RangeIdSetEnum.broker,\n            theme: RangeSelectorZoneThemeEnum.orange,\n            label: t('common:time-windows-types.broker-appointment'),\n        }),\n        [t],\n    );\n\n    const renderZoneTextNode = React.useCallback((currentRanges: RangeSelectorRangeT[] | null) => {\n        const surchargeCurrentRanges = currentRanges?.filter((range) => {\n            return range && surchargeRangeTypeSet.has(range.id);\n        });\n\n        if (!surchargeCurrentRanges?.length) {\n            return null;\n        }\n\n        return <TimeWindowZoneText currentRanges={surchargeCurrentRanges} />;\n    }, []);\n\n    const settings = React.useMemo<TimeWindowPickerSettingsT>(() => {\n        const isFirstTimeWindow = routePointIndex === 0;\n\n        if (!previewReserve || !selectedTimeWindow) {\n            return DEFAULT_TIME_WINDOW_PICKER_SETTINGS;\n        }\n\n        const baseDate = selectedTimeWindow.start;\n\n        const availableValuesStart =\n            currentPointTimeWindow?.urgentTimeWindow?.start || currentPointTimeWindow?.regularTimeWindow?.start;\n        if (!availableValuesStart) {\n            return DEFAULT_TIME_WINDOW_PICKER_SETTINGS;\n        }\n\n        const availableValuesEnd =\n            currentPointTimeWindow?.layoverTimeWindow?.end || currentPointTimeWindow?.regularTimeWindow?.end || null;\n\n        const availableValues = suggestLastTimeWindowOfDay(\n            {\n                start: availableValuesStart,\n                end: availableValuesEnd,\n            },\n            baseDate,\n        );\n\n        const urgentTimeWindow = convertReserveTimeWindowToRelativeTimeWindow(\n            suggestLastTimeWindowOfDay(currentPointTimeWindow?.urgentTimeWindow || null, baseDate),\n        );\n\n        const regularTimeWindow = convertReserveTimeWindowToRelativeTimeWindow(\n            suggestLastTimeWindowOfDay(currentPointTimeWindow?.regularTimeWindow || null, baseDate),\n        );\n\n        const layoverTimeWindow = convertReserveTimeWindowToRelativeTimeWindow(\n            suggestLastTimeWindowOfDay(currentPointTimeWindow?.layoverTimeWindow || null, baseDate),\n        );\n\n        const brokerAppointmentTimeWindow = convertReserveTimeWindowToRelativeTimeWindow(\n            suggestLastTimeWindowOfDay(currentPointTimeWindow?.brokerAppointmentTimeWindow || null, baseDate),\n        );\n\n        const marks: Array<RangeSelectorMarkT> = [];\n\n        if (layoverTimeWindow) {\n            marks.push({\n                ...layoverMark,\n                value: layoverTimeWindow[0],\n            });\n        }\n\n        const timeWindowRanges: RangeSelectorRangeT[] = [\n            urgentTimeWindow\n                ? {\n                      ...(isFirstTimeWindow ? urgentPickUpRange : teamDriveDropOffRange),\n                      values: urgentTimeWindow,\n                      marks: [\n                          {\n                              ...(isFirstTimeWindow ? urgentPickUpMark : teamDriveMark),\n                              value: urgentTimeWindow[0],\n                          },\n                      ],\n                  }\n                : null,\n            regularTimeWindow\n                ? {\n                      ...(isFirstTimeWindow ? regularPickUpRange : regularDropOffRange),\n                      values: regularTimeWindow,\n                  }\n                : null,\n            layoverTimeWindow\n                ? {\n                      ...layoverDropOffRange,\n                      values: layoverTimeWindow,\n                      isHidden: true,\n                      marks: [\n                          {\n                              ...layoverMark,\n                              value: layoverTimeWindow[0],\n                          },\n                      ],\n                  }\n                : null,\n        ].filter(isNonNil);\n\n        const brokerTimeWindowRanges: RangeSelectorRangeT[] = [\n            brokerAppointmentTimeWindow\n                ? {\n                      values: brokerAppointmentTimeWindow,\n                      ...(isFirstTimeWindow ? brokerAppointmentPickUpRange : brokerAppointmentDropOffRange),\n                  }\n                : null,\n        ].filter(isNonNil);\n\n        const brokerAvailableValuesStart =\n            routePointIndex !== 0 && hasSelectedAnyTeamDrive\n                ? currentPointTimeWindow?.urgentTimeWindow?.start ?? currentPointTimeWindow?.regularTimeWindow?.start\n                : currentPointTimeWindow?.regularTimeWindow?.start;\n        const brokerAvailableValuesEnd = currentPointTimeWindow?.regularTimeWindow?.end || null;\n\n        const brokerAvailableValues = brokerAvailableValuesStart\n            ? suggestLastTimeWindowOfDay(\n                  {\n                      start: brokerAvailableValuesStart,\n                      end: brokerAvailableValuesEnd,\n                  },\n                  baseDate,\n              )\n            : null;\n\n        const settings: TimeWindowPickerSettingsT = {\n            availableValues: convertReserveTimeWindowToRelativeTimeWindow(availableValues) || ALL_DAY_RANGE,\n            brokerAvailableValues: convertReserveTimeWindowToRelativeTimeWindow(brokerAvailableValues) || ALL_DAY_RANGE,\n            brokerTimeWindowRanges,\n            timeWindowRanges,\n            marks,\n        };\n\n        return settings;\n    }, [\n        currentPointTimeWindow,\n        layoverDropOffRange,\n        layoverMark,\n        teamDriveMark,\n        urgentPickUpMark,\n        previewReserve,\n        selectedTimeWindow,\n        routePointIndex,\n        teamDriveDropOffRange,\n        regularDropOffRange,\n        brokerAppointmentDropOffRange,\n        urgentPickUpRange,\n        regularPickUpRange,\n        brokerAppointmentPickUpRange,\n        hasSelectedAnyTeamDrive,\n    ]);\n\n    const relativeTimeWindow = useMemo((): TimeWindowT | null => {\n        return convertReserveTimeWindowToRelativeTimeWindow(selectedTimeWindow);\n    }, [selectedTimeWindow]);\n\n    const handleChangeTimeWindow = (value: TimeWindowT) => {\n        const newTimeWindow = setTimeWindowForReserveTimeWindow(value, selectedTimeWindow);\n\n        formik.setFieldValue(timeWindowFieldName, newTimeWindow);\n\n        onChangeRoutePointReserve(fakeId, {\n            [RoutePointFieldsEnum.timeWindow]: newTimeWindow,\n        });\n    };\n\n    const handlePickTargetTime = (start: ISODateTimeT | null | undefined) => {\n        if (!start) {\n            return;\n        }\n\n        const newTimeWindow = createReserveTimeWindow(start, minWindowSizeMs);\n\n        formik.setFieldValue(timeWindowFieldName, newTimeWindow);\n\n        onChangeRoutePointReserve(fakeId, {\n            [RoutePointFieldsEnum.timeWindow]: newTimeWindow,\n        });\n    };\n\n    const hasViolation = reserve?.points?.[routePointIndex]?.violated;\n\n    const selectedDate = React.useMemo(() => {\n        if (!selectedTimeWindow) {\n            return null;\n        }\n\n        return moment(clearDateTimezone(selectedTimeWindow.start)).toDate();\n    }, [selectedTimeWindow]);\n\n    const selectedLaneId = formik.values[FieldsEnum.laneId];\n    const selectedLane = useSelectedLane(selectedLaneId);\n\n    const allowedTimeWindowStart = useMemo(() => {\n        if (selectedIsBrokerTimeWindow) {\n            return currentPointTimeWindow?.brokerAppointmentTimeWindow?.start || null;\n        }\n\n        return currentPointTimeWindow?.urgentTimeWindow?.start || currentPointTimeWindow?.regularTimeWindow?.start;\n    }, [selectedIsBrokerTimeWindow, currentPointTimeWindow]);\n\n    const minDate = getMaxISODate(selectedLane?.validFrom, allowedTimeWindowStart);\n    const maxDate =\n        (currentPointTimeWindow?.layoverTimeWindow\n            ? currentPointTimeWindow?.layoverTimeWindow?.end\n            : currentPointTimeWindow?.regularTimeWindow?.end) || undefined;\n\n    const handleChangeDate = (date: CalendarDateValueT): void => {\n        if (!date) {\n            formik.setFieldValue(timeWindowFieldName, null);\n            return;\n        }\n\n        let newTimeWindow = setDateForReserveTimeWindow(date, selectedTimeWindow);\n\n        if (newTimeWindow && currentPointTimeWindow && selectedIsBrokerTimeWindow) {\n            newTimeWindow = suggestLastTimeWindowOfDay(\n                currentPointTimeWindow.regularTimeWindow\n                    ? {\n                          start: currentPointTimeWindow.regularTimeWindow.start,\n                          end:\n                              currentPointTimeWindow.layoverTimeWindow?.end ||\n                              currentPointTimeWindow.regularTimeWindow.end,\n                      }\n                    : null,\n                newTimeWindow.start,\n            );\n        }\n\n        const isSameValue = isEqual(newTimeWindow, selectedTimeWindow);\n        if (isSameValue) {\n            return;\n        }\n\n        formik.setFieldValue(timeWindowFieldName, newTimeWindow);\n\n        onChangeRoutePointReserve(fakeId, {\n            [RoutePointFieldsEnum.timeWindow]: newTimeWindow,\n        });\n    };\n\n    const isDisabledTimeSlots = !settings.brokerTimeWindowRanges?.length;\n\n    return (\n        <>\n            <div className={cs(cx('time-picker'), className)}>\n                <FormikConnectContextField<FormValuesT, typeof locationFieldName>\n                    name={locationFieldName}\n                    label={label}\n                    fieldLabelClassName={cx('field', 'field--location')}\n                    subLabel={\n                        <>\n                            <TimeIntervalDurationPillLabel\n                                className={cx('time-interval', {\n                                    'time-interval--isHalfOpacity': isDisabledPreviewReserve,\n                                })}\n                                i18nKey={selectedIsBrokerTimeWindow ? 'common:new-order-form.time-interval' : null}\n                                isDayRelative\n                                timeWindow={relativeTimeWindow}\n                            />\n                            <TimeIntervalLimitPillLabel\n                                className={cx('time-interval', {\n                                    'time-interval--isHalfOpacity': isDisabledPreviewReserve,\n                                })}\n                                timeWindow={relativeTimeWindow}\n                            />\n                        </>\n                    }\n                    warning={hasViolation ? t('common:new-order-form.warnings.check-route-points') : null}\n                    labelRightNode={\n                        <div className={cx('right-node')}>\n                            <QuickTimeWindowLink\n                                isDisabled={isDisabledPreviewReserve}\n                                values={selectedIsBrokerTimeWindow ? null : relativeTimeWindow}\n                                routePointIndex={routePointIndex}\n                                ranges={settings?.timeWindowRanges || []}\n                                reservePreview={previewReserve}\n                                onClick={handlePickTargetTime}\n                            />\n                            {selectedDate && (\n                                <LinkDatePicker\n                                    leftIcon={\n                                        <CalendarAltIcon\n                                            size={DEFAULT_ICON_SIZE}\n                                            strokeColor={StyleGuideColorsEnum.brandDark}\n                                        />\n                                    }\n                                    isDisabled={isDisabledPreviewReserve}\n                                    minDate={minDate || undefined}\n                                    maxDate={maxDate}\n                                    value={selectedDate}\n                                    onChange={handleChangeDate}\n                                    overlayPosition={DatePickerOverlayPositionEnum.bottomRight}\n                                />\n                            )}\n                        </div>\n                    }\n                >\n                    {(props, extendsProps) => (\n                        <div className={cx('wrap')} data-fake-id={fakeId}>\n                            <GeoSuggest\n                                className={cx('geo-suggest')}\n                                hasTriangle\n                                name={extendsProps.name}\n                                value={extendsProps.value}\n                                placeholder={t('common:new-order-form.fields.pickup-delivery-point.placeholder')}\n                                renderLeftIcon={({ hasValue, hasError, hasWarning, isDisabled }) => (\n                                    <WaypointNumberIcon\n                                        routePointIndex={routePointIndex}\n                                        hasValue={hasValue}\n                                        hasError={hasError}\n                                        hasWarning={hasWarning}\n                                        isDisabled={isDisabled}\n                                        isPickupOrDeliveryRoutePointPicker\n                                    />\n                                )}\n                                onChange={(value) => {\n                                    props.onChange(value);\n\n                                    onManualSelectLocation(value, routePointIndex);\n\n                                    onChangeRoutePointReserve(fakeId, {\n                                        [RoutePointFieldsEnum.location]: value,\n                                    });\n\n                                    if (value === null) {\n                                        onResetRoutePointLocation();\n                                    }\n                                }}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onFocus={() => {\n                                    props.onFocus();\n\n                                    if (syncShipmentDetailsFormMapStateContext?.setEditingRoutePointIndex) {\n                                        syncShipmentDetailsFormMapStateContext.setEditingRoutePointIndex(\n                                            routePointIndex,\n                                        );\n                                    }\n                                }}\n                                onBlur={() => {\n                                    props.onBlur();\n\n                                    if (syncShipmentDetailsFormMapStateContext?.setEditingRoutePointIndex) {\n                                        syncShipmentDetailsFormMapStateContext.setEditingRoutePointIndex(null);\n                                    }\n                                }}\n                                testSelector={`pickup-or-delivery-location-${routePointIndex}`}\n                                showClearControl={!!extendsProps.value}\n                                isLoading={isShowSuggestLoading}\n                                isRedTriangle={\n                                    syncShipmentDetailsFormMapStateContext?.editingRoutePointIndex ===\n                                        routePointIndex &&\n                                    syncShipmentDetailsFormMapStateContext?.hasEditingRoutePointError\n                                }\n                                triangleClassName={cx('triangle', {\n                                    'triangle--has-remove-control': isAllowRemove,\n                                })}\n                            />\n                            {isAllowRemove && (\n                                <DeleteWaypointTrigger\n                                    onClick={() => {\n                                        onRemove(routePointIndex);\n                                    }}\n                                />\n                            )}\n                        </div>\n                    )}\n                </FormikConnectContextField>\n                <TimeWindowPicker\n                    className={className}\n                    range={ALL_DAY_RANGE}\n                    isDisabled={isDisabledPreviewReserve}\n                    isLocked={selectedIsBrokerTimeWindow}\n                    availableValues={\n                        selectedIsBrokerTimeWindow ? settings?.brokerAvailableValues : settings?.availableValues\n                    }\n                    ranges={\n                        (selectedIsBrokerTimeWindow ? settings?.brokerTimeWindowRanges : settings?.timeWindowRanges) ||\n                        []\n                    }\n                    marks={selectedIsBrokerTimeWindow ? [] : settings?.marks}\n                    values={relativeTimeWindow}\n                    step={timeWindowQuantumMs}\n                    minRangeWidth={selectedIsBrokerTimeWindow ? undefined : minRangeTimeWindow}\n                    maxRangeWidth={selectedIsBrokerTimeWindow ? undefined : maxRangeTimeWindow}\n                    renderZoneTextNode={renderZoneTextNode}\n                    onChange={selectedIsBrokerTimeWindow ? noop : handleChangeTimeWindow}\n                />\n                <FormikConnectContextField<FormValuesT, typeof isBrokerTimeWindowFieldName>\n                    name={isBrokerTimeWindowFieldName}\n                    withoutLabel\n                >\n                    {(props, extendsProps) => (\n                        <Switcher\n                            isDisabled={isDisabledTimeSlots || isDisabledPreviewReserve || !selectedTimeWindow}\n                            checked={extendsProps.value}\n                            theme={SwitcherThemeEnum.danger}\n                            label={t('common:new-order-form.fields.is-broker-time-window.label')}\n                            rightIcon={\n                                <Tooltip\n                                    position={TooltipPositionEnum.topCenter}\n                                    theme={TooltipThemeEnum.black}\n                                    tooltipNode={\n                                        <TooltipContent theme={TooltipContentThemeEnum.black} width={160}>\n                                            {t('common:new-order-form.fields.is-broker-time-window.tooltip-note')}\n                                        </TooltipContent>\n                                    }\n                                >\n                                    {(isShow) => <TooltipIconTrigger isShow={isShow} />}\n                                </Tooltip>\n                            }\n                            onToggle={() => {\n                                const newValue = !extendsProps.value;\n\n                                props.onChange(newValue);\n\n                                onChangeRoutePointReserve(fakeId, {\n                                    [RoutePointFieldsEnum.isBrokerTimeWindow]: newValue,\n                                });\n                            }}\n                        />\n                    )}\n                </FormikConnectContextField>\n            </div>\n        </>\n    );\n});\n\nexport default PickupOrDeliveryRoutePointPicker;\n","export enum FieldsEnum {\n    firstName = 'firstName',\n    lastName = 'lastName',\n    email = 'email',\n    phone = 'phone',\n    password = 'password',\n    acceptTerms = 'acceptTerms',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.firstName]: string;\n    [FieldsEnum.lastName]: string;\n    [FieldsEnum.email]: string;\n    [FieldsEnum.phone]: string;\n    [FieldsEnum.password]: string;\n    [FieldsEnum.acceptTerms]: boolean;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './NameCell.scss';\nimport { PartnerT } from 'broker-admin/store/partners/models';\nimport NotificationLabel, {\n    NotificationLabelThemeEnum,\n} from 'common/components/notifications/NotificationLabel/NotificationLabel';\nimport { checkAllVerified } from 'broker-admin/layouts/PartnersPage/PartnersTable/utils';\n\ntype PropsT = {\n    partner: PartnerT;\n};\n\nconst cx = classNames.bind(styles);\n\nconst NameCell: React.FC<PropsT> = React.memo((props) => {\n    const { partner } = props;\n\n    const isAllVerified = checkAllVerified(partner);\n\n    return (\n        <div className={cx('cell')}>\n            {!isAllVerified && (\n                <div className={cx('notification')}>\n                    <NotificationLabel isShowWarning theme={NotificationLabelThemeEnum.charcoal} />\n                </div>\n            )}\n            <div>\n                <div className={cx('name')}>{partner.name}</div>\n                <div className={cx('id')}>{partner.number}</div>\n            </div>\n        </div>\n    );\n});\n\nexport default NameCell;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"PartnerDetailsPage__fadeIn___AQ_Wq\",\"blinking\":\"PartnerDetailsPage__blinking___xtX_Y\"};","import React from 'react';\nimport { UseAsyncFormErrorsT } from 'common/utils/hooks/useAsyncFormErrors';\n\nconst FormAsyncErrorsContext = React.createContext<UseAsyncFormErrorsT | null>(null);\n\nexport default FormAsyncErrorsContext;\n","import { RequestStatusT } from 'common/utils/request-status';\n\nimport { UserChangesT, UserT } from './models';\nimport { ApiUserT, ApiUserUpdateT } from 'common/utils/api/models';\nimport { AuthUserT } from 'common/utils/api/auth/base-auth-service';\n\nexport const FETCH_USER_REQUEST = 'common/user/FETCH_USER_REQUEST';\nexport const FETCH_USER_REQUEST_BEGIN = 'common/user/FETCH_USER_REQUEST_BEGIN';\nexport const FETCH_USER_REQUEST_ERROR = 'common/user/FETCH_USER_REQUEST_ERROR';\nexport const FETCH_USER_REQUEST_SUCCESS = 'common/user/FETCH_USER_REQUEST_SUCCESS';\n\nexport const PATCH_USER_REQUEST = 'common/user/PATCH_USER_REQUEST';\nexport const PATCH_USER_REQUEST_BEGIN = 'common/user/PATCH_USER_REQUEST_BEGIN';\nexport const PATCH_USER_REQUEST_ERROR = 'common/user/PATCH_USER_REQUEST_ERROR';\nexport const PATCH_USER_REQUEST_SUCCESS = 'common/user/PATCH_USER_REQUEST_SUCCESS';\n\nexport type UserStateT = {\n    currentUserRequest: RequestStatusT;\n    currentUser: UserT | null;\n    patchUserRequest: RequestStatusT;\n};\n\nexport type FetchUserActionT = {\n    type: typeof FETCH_USER_REQUEST;\n};\n\nexport type FetchUserBeginActionT = {\n    type: typeof FETCH_USER_REQUEST_BEGIN;\n};\n\nexport type FetchUserSuccessActionT = {\n    type: typeof FETCH_USER_REQUEST_SUCCESS;\n    currentUser: ApiUserT;\n};\n\nexport type FetchUserErrorActionT = {\n    type: typeof FETCH_USER_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type PatchUserActionT = {\n    type: typeof PATCH_USER_REQUEST;\n    user: UserT | null;\n    authUser: AuthUserT | null;\n    changes: UserChangesT;\n};\n\nexport type PatchUserBeginActionT = {\n    type: typeof PATCH_USER_REQUEST_BEGIN;\n};\n\nexport type PatchUserSuccessActionT = {\n    type: typeof PATCH_USER_REQUEST_SUCCESS;\n    currentUser: ApiUserT;\n    currentUserUpdate: ApiUserUpdateT;\n};\n\nexport type PatchUserErrorActionT = {\n    type: typeof PATCH_USER_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type UserActionT =\n    | FetchUserActionT\n    | FetchUserBeginActionT\n    | FetchUserSuccessActionT\n    | FetchUserErrorActionT\n    | PatchUserActionT\n    | PatchUserBeginActionT\n    | PatchUserSuccessActionT\n    | PatchUserErrorActionT;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ContractDetails.scss';\nimport { useTranslation } from 'react-i18next';\nimport Divider from 'design-system/components/Divider/Divider';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport CalendarIcon from 'common/icons/CalendarIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport { formatDate } from 'common/utils/time';\nimport SideBarLoader from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLoader/SideBarLoader';\nimport { useSelector } from 'react-redux';\nimport { selectCarrierContractStateById } from 'common/store/carrier-contract-details/selectors';\nimport isEmpty from 'lodash/isEmpty';\nimport { PartnerContractT } from 'common/store/carrier-contracts/models';\nimport { truckRateModeI18nMap } from 'common/components/dropdowns/TruckRateModeDropdown/TruckRateModeDropdown';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    contract: PartnerContractT | null;\n};\n\nconst ContractDetails: React.FC<PropsT> = (props) => {\n    const { contract } = props;\n\n    const { t } = useTranslation();\n\n    const { data: contractDetails, fetchRequest: fetchContractDetailsRequest } = useSelector(\n        selectCarrierContractStateById(contract?.id),\n    );\n\n    if (fetchContractDetailsRequest.loading && isEmpty(contractDetails)) {\n        return <SideBarLoader isRelative />;\n    }\n\n    if (isEmpty(contractDetails)) {\n        return null;\n    }\n\n    return (\n        <>\n            <ReadOnlyField\n                label={t('common:carrier-contracts.details.fields.expiration.label')}\n                value={formatDate('DD.MM.YYYY', contract?.validTill)}\n                placeholder={t('common:fields.placeholder.empty')}\n                icon={\n                    <CalendarIcon\n                        size={DEFAULT_ICON_SIZE}\n                        fillColor={StyleGuideColorsEnum.brandAccent}\n                        strokeColor={StyleGuideColorsEnum.brandDark}\n                    />\n                }\n            />\n            <Divider className={cx('divider')} />\n            <ReadOnlyField\n                label={t('common:carrier-contracts.details.fields.name.label')}\n                value={contractDetails?.name}\n                placeholder={t('common:fields.placeholder.empty')}\n            />\n            <ReadOnlyField\n                label={t('common:carrier-contracts.details.fields.number.label')}\n                value={contractDetails?.number}\n                placeholder={t('common:fields.placeholder.empty')}\n            />\n            <ReadOnlyField\n                label={t('common:carrier-contracts.details.fields.truck-rate-mode.label')}\n                value={contractDetails?.truckRateMode ? t(truckRateModeI18nMap[contractDetails.truckRateMode]) : null}\n                placeholder={t('common:fields.placeholder.empty')}\n            />\n            <ReadOnlyField\n                label={t('common:carrier-contracts.details.fields.truck-rate.label')}\n                value={contractDetails?.truckRateKm}\n                placeholder={t('common:fields.placeholder.empty')}\n                unitType={UnitTypeEnum.euroAbbreviation}\n            />\n            <ReadOnlyField\n                label={t('common:carrier-contracts.details.fields.tilt-rate.label')}\n                value={contractDetails?.tiltRateKm}\n                placeholder={t('common:fields.placeholder.empty')}\n                unitType={UnitTypeEnum.euroAbbreviation}\n            />\n            <ReadOnlyField\n                label={t('common:carrier-contracts.details.fields.box-rate.label')}\n                value={contractDetails?.boxRateKm}\n                placeholder={t('common:fields.placeholder.empty')}\n                unitType={UnitTypeEnum.euroAbbreviation}\n            />\n            <ReadOnlyField\n                label={t('common:carrier-contracts.details.fields.truck-expected-mileage.label')}\n                value={contractDetails?.truckExpectedKm}\n                placeholder={t('common:fields.placeholder.empty')}\n                unitType={UnitTypeEnum.kilometersAbbreviation}\n            />\n            <ReadOnlyField\n                label={t('common:carrier-contracts.details.fields.box-expected-mileage.label')}\n                value={contractDetails?.boxExpectedKm}\n                placeholder={t('common:fields.placeholder.empty')}\n                unitType={UnitTypeEnum.kilometersAbbreviation}\n            />\n            <ReadOnlyField\n                label={t('common:carrier-contracts.details.fields.tilt-expected-mileage.label')}\n                value={contractDetails?.tiltExpectedKm}\n                placeholder={t('common:fields.placeholder.empty')}\n                unitType={UnitTypeEnum.kilometersAbbreviation}\n            />\n        </>\n    );\n};\n\nexport default ContractDetails;\n","import { AssetAssignmentInfoT } from 'common/utils/assignment';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nimport {\n    ApiAssignmentDetailsT,\n    AssignmentVehiclesSuggestItemT,\n    AssignmentVehiclesT,\n    AvailableVehiclesQueryT,\n    CarrierT,\n    FindTrailerQueryT,\n    FindTruckQueryT,\n    LinksT,\n    ScheduleEventIdT,\n    ScheduleEventT,\n    SelfCostPredictionQueryT,\n    SelfCostPredictionT,\n    UserSelectionT,\n} from './models';\n\nexport const INIT_USER_SELECTION = 'broker-admin/broker-order-assigment/INIT_USER_SELECTION';\nexport const CHANGE_USER_SELECTION = 'broker-admin/broker-order-assigment/CHANGE_USER_SELECTION';\n\nexport const FETCH_ASSIGN_DETAILS_REQUEST = 'broker-admin/broker-order-assigment/FETCH_ASSIGN_DETAILS_REQUEST';\nexport const FETCH_ASSIGN_DETAILS_REQUEST_BEGIN =\n    'broker-admin/broker-order-assigment/FETCH_ASSIGN_DETAILS_REQUEST_BEGIN';\nexport const FETCH_ASSIGN_DETAILS_REQUEST_ERROR =\n    'broker-admin/broker-order-assigment/FETCH_ASSIGN_DETAILS_REQUEST_ERROR';\nexport const FETCH_ASSIGN_DETAILS_REQUEST_SUCCESS =\n    'broker-admin/broker-order-assigment/FETCH_ASSIGN_DETAILS_REQUEST_SUCCESS';\n\nexport const FETCH_AVAILABLE_VEHICLES_REQUEST = 'broker-admin/broker-order-assigment/FETCH_AVAILABLE_VEHICLES_REQUEST';\nexport const FETCH_AVAILABLE_VEHICLES_REQUEST_BEGIN =\n    'broker-admin/broker-order-assigment/FETCH_AVAILABLE_VEHICLES_REQUEST_BEGIN';\nexport const FETCH_AVAILABLE_VEHICLES_REQUEST_ERROR =\n    'broker-admin/broker-order-assigment/FETCH_AVAILABLE_VEHICLES_REQUEST_ERROR';\nexport const FETCH_AVAILABLE_VEHICLES_REQUEST_SUCCESS =\n    'broker-admin/broker-order-assigment/FETCH_AVAILABLE_VEHICLES_REQUEST_SUCCESS';\n\nexport const FETCH_AVAILABLE_CARRIERS_REQUEST = 'broker-admin/broker-order-assigment/FETCH_AVAILABLE_CARRIERS_REQUEST';\nexport const FETCH_AVAILABLE_CARRIERS_REQUEST_BEGIN =\n    'broker-admin/broker-order-assigment/FETCH_AVAILABLE_CARRIERS_REQUEST_BEGIN';\nexport const FETCH_AVAILABLE_CARRIERS_REQUEST_ERROR =\n    'broker-admin/broker-order-assigment/FETCH_AVAILABLE_CARRIERS_REQUEST_ERROR';\nexport const FETCH_AVAILABLE_CARRIERS_REQUEST_SUCCESS =\n    'broker-admin/broker-order-assigment/FETCH_AVAILABLE_CARRIERS_REQUEST_SUCCESS';\n\nexport const SET_INIT_ASSETS_INFO = 'broker-admin/broker-order-assigment/SET_INIT_ASSETS_INFO';\n\nexport const REFRESH_TRAILER_REQUEST = 'broker-admin/broker-order-assigment/REFRESH_TRAILER_REQUEST';\nexport const FIND_TRAILER_REQUEST = 'broker-admin/broker-order-assigment/FIND_TRAILER_REQUEST';\nexport const FIND_TRAILER_REQUEST_BEGIN = 'broker-admin/broker-order-assigment/FIND_TRAILER_REQUEST_BEGIN';\nexport const FIND_TRAILER_REQUEST_ERROR = 'broker-admin/broker-order-assigment/FIND_TRAILER_REQUEST_ERROR';\nexport const FIND_TRAILER_REQUEST_SUCCESS = 'broker-admin/broker-order-assigment/FIND_TRAILER_REQUEST_SUCCESS';\n\nexport const REFRESH_TRUCK_REQUEST = 'broker-admin/broker-order-assigment/REFRESH_TRUCK_REQUEST';\nexport const FIND_TRUCK_REQUEST = 'broker-admin/broker-order-assigment/FIND_TRUCK_REQUEST';\nexport const FIND_TRUCK_REQUEST_BEGIN = 'broker-admin/broker-order-assigment/FIND_TRUCK_REQUEST_BEGIN';\nexport const FIND_TRUCK_REQUEST_ERROR = 'broker-admin/broker-order-assigment/FIND_TRUCK_REQUEST_ERROR';\nexport const FIND_TRUCK_REQUEST_SUCCESS = 'broker-admin/broker-order-assigment/FIND_TRUCK_REQUEST_SUCCESS';\n\nexport const PREDICT_SELF_COST_REQUEST = 'broker-admin/broker-order-assigment/PREDICT_SELF_COST_REQUEST';\nexport const PREDICT_SELF_COST_REQUEST_BEGIN = 'broker-admin/broker-order-assigment/PREDICT_SELF_COST_REQUEST_BEGIN';\nexport const PREDICT_SELF_COST_REQUEST_ERROR = 'broker-admin/broker-order-assigment/PREDICT_SELF_COST_REQUEST_ERROR';\nexport const PREDICT_SELF_COST_REQUEST_SUCCESS =\n    'broker-admin/broker-order-assigment/PREDICT_SELF_COST_REQUEST_SUCCESS';\n\nexport const ASSIGNMENT_REQUEST = 'broker-admin/broker-order-assigment/ASSIGNMENT_REQUEST';\nexport const ASSIGNMENT_REQUEST_BEGIN = 'broker-admin/broker-order-assigment/ASSIGNMENT_REQUEST_BEGIN';\nexport const ASSIGNMENT_REQUEST_ERROR = 'broker-admin/broker-order-assigment/ASSIGNMENT_REQUEST_ERROR';\nexport const ASSIGNMENT_REQUEST_SUCCESS = 'broker-admin/broker-order-assigment/ASSIGNMENT_REQUEST_SUCCESS';\n\nexport const FETCH_ASSET_SCHEDULE = 'broker-admin/broker-order-assigment/FETCH_ASSET_SCHEDULE';\nexport const FETCH_ASSET_SCHEDULE_BEGIN = 'broker-admin/broker-order-assigment/FETCH_ASSET_SCHEDULE_BEGIN';\nexport const FETCH_ASSET_SCHEDULE_ERROR = 'broker-admin/broker-order-assigment/FETCH_ASSET_SCHEDULE_ERROR';\nexport const FETCH_ASSET_SCHEDULE_SUCCESS = 'broker-admin/broker-order-assigment/FETCH_ASSET_SCHEDULE_SUCCESS';\nexport const SET_ASSET_SCHEDULE = 'broker-admin/broker-order-assigment/SET_ASSET_SCHEDULE';\nexport const SET_EVENT_LOAD_ROUTE = 'broker-admin/broker-order-assigment/SET_EVENT_LOAD_ROUTE';\n\nexport const SET_SHOW_SELECTED_ASSET_SCHEDULES =\n    'broker-admin/broker-order-assigment/SET_SHOW_SELECTED_ASSET_SCHEDULES';\nexport const SET_SELECTED_SCHEDULE_EVENT_ID = 'broker-admin/broker-order-assigment/SET_SELECTED_SCHEDULE_EVENT_ID';\n\nexport const INIT = 'broker-admin/broker-order-assigment/INIT';\nexport const RESET = 'broker-admin/broker-order-assigment/RESET';\n\nexport type ScheduleAssetT = {\n    requestStatus: RequestStatusT;\n    events: Array<ScheduleEventT>;\n    routeById: Record<ScheduleEventIdT, Array<GooglePolylineT>>;\n    currentEventId: ScheduleEventIdT | null;\n};\n\nexport type BrokerOrderAssigmentStateT = {\n    userSelection: UserSelectionT;\n    trailerById: Record<TrailerIdT, AssetAssignmentInfoT>;\n    truckById: Record<TruckIdT, AssetAssignmentInfoT>;\n    truckSuggest: {\n        query: FindTruckQueryT | null;\n        requestStatus: RequestStatusT;\n        ids: Array<TruckIdT>;\n    };\n    trailerSuggest: {\n        query: FindTrailerQueryT | null;\n        requestStatus: RequestStatusT;\n        ids: Array<TrailerIdT>;\n    };\n    availableVehicles: {\n        query: AvailableVehiclesQueryT | null;\n        requestStatus: RequestStatusT;\n        list: Array<{\n            trailerId: TrailerIdT | null;\n            truckId: TruckIdT | null;\n        }>;\n    };\n    currentPositionAssetById: Record<TrailerIdT | TruckIdT, GeoPointT>;\n    scheduleAssetById: Record<TrailerIdT | TruckIdT, ScheduleAssetT>;\n    links: LinksT;\n    selfCostPrediction: {\n        query: SelfCostPredictionQueryT | null;\n        requestStatus: RequestStatusT;\n        result: SelfCostPredictionT | null;\n    };\n    availableCarriers: {\n        requestStatus: RequestStatusT;\n        carriers: Array<CarrierT>;\n    };\n    assigmentStatus: RequestStatusT;\n    isShowSelectedAssetSchedules: boolean;\n    selectedScheduleEventId: ScheduleEventIdT | null;\n    fetchAssignDetailsStatus: RequestStatusT;\n};\n\nexport type InitUserSelectionActionT = {\n    type: typeof INIT_USER_SELECTION;\n    changes: Partial<UserSelectionT>;\n    brokerOrderId: BrokerOrderIdT | null;\n    tourId: TourIdT | null;\n};\n\nexport type ChangeUserSelectionActionT = {\n    type: typeof CHANGE_USER_SELECTION;\n    changes: Partial<UserSelectionT>;\n    tourId: TourIdT | null;\n    brokerOrderId: BrokerOrderIdT | null;\n};\n\nexport type FetchAvailableVehiclesActionT = {\n    type: typeof FETCH_AVAILABLE_VEHICLES_REQUEST;\n    query: AvailableVehiclesQueryT;\n};\n\nexport type FetchAvailableVehiclesBeginActionT = {\n    type: typeof FETCH_AVAILABLE_VEHICLES_REQUEST_BEGIN;\n    query: AvailableVehiclesQueryT;\n};\n\nexport type FetchAvailableVehiclesSuccessActionT = {\n    type: typeof FETCH_AVAILABLE_VEHICLES_REQUEST_SUCCESS;\n    vehicles: AssignmentVehiclesT[];\n    query: AvailableVehiclesQueryT;\n};\n\nexport type FetchAvailableVehiclesErrorActionT = {\n    type: typeof FETCH_AVAILABLE_VEHICLES_REQUEST_ERROR;\n    error: Error;\n    query: AvailableVehiclesQueryT;\n};\n\nexport type FetchAssignDetailsActionT = {\n    type: typeof FETCH_ASSIGN_DETAILS_REQUEST;\n    brokerOrderId: BrokerOrderIdT;\n    tourId: TourIdT;\n};\n\nexport type FetchAssignDetailsBeginActionT = {\n    type: typeof FETCH_ASSIGN_DETAILS_REQUEST_BEGIN;\n};\n\nexport type FetchAssignDetailsSuccessActionT = {\n    type: typeof FETCH_ASSIGN_DETAILS_REQUEST_SUCCESS;\n    details: ApiAssignmentDetailsT | null;\n};\n\nexport type FetchAssignDetailsErrorActionT = {\n    type: typeof FETCH_ASSIGN_DETAILS_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type FetchAvailableCarriersActionT = {\n    type: typeof FETCH_AVAILABLE_CARRIERS_REQUEST;\n    options?: FetchOptionsT;\n};\n\nexport type FetchAvailableCarriersBeginActionT = {\n    type: typeof FETCH_AVAILABLE_CARRIERS_REQUEST_BEGIN;\n};\n\nexport type FetchAvailableCarriersSuccessActionT = {\n    type: typeof FETCH_AVAILABLE_CARRIERS_REQUEST_SUCCESS;\n    carriers: CarrierT[];\n};\n\nexport type FetchAvailableCarriersErrorActionT = {\n    type: typeof FETCH_AVAILABLE_CARRIERS_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type SetInitAssetsInfoActionT = {\n    type: typeof SET_INIT_ASSETS_INFO;\n    truck: AssignmentVehiclesSuggestItemT | null;\n    trailer: AssignmentVehiclesSuggestItemT | null;\n};\n\nexport type RefreshTrailerActionT = {\n    type: typeof REFRESH_TRAILER_REQUEST;\n    query: FindTrailerQueryT;\n};\n\nexport type FindTrailerActionT = {\n    type: typeof FIND_TRAILER_REQUEST;\n    query: FindTrailerQueryT;\n};\n\nexport type FindTrailerBeginActionT = {\n    type: typeof FIND_TRAILER_REQUEST_BEGIN;\n    query: FindTrailerQueryT;\n};\n\nexport type FindTrailerSuccessActionT = {\n    type: typeof FIND_TRAILER_REQUEST_SUCCESS;\n    trailersSuggestItems: AssignmentVehiclesSuggestItemT[];\n    query: FindTrailerQueryT;\n};\n\nexport type FindTrailerErrorActionT = {\n    type: typeof FIND_TRAILER_REQUEST_ERROR;\n    error: Error;\n    query: FindTrailerQueryT;\n};\n\nexport type RefreshTruckActionT = {\n    type: typeof REFRESH_TRUCK_REQUEST;\n    query: FindTruckQueryT;\n};\n\nexport type FindTruckActionT = {\n    type: typeof FIND_TRUCK_REQUEST;\n    query: FindTruckQueryT;\n};\n\nexport type FindTruckBeginActionT = {\n    type: typeof FIND_TRUCK_REQUEST_BEGIN;\n    query: FindTruckQueryT;\n};\n\nexport type FindTruckSuccessActionT = {\n    type: typeof FIND_TRUCK_REQUEST_SUCCESS;\n    trucksSuggestItems: AssignmentVehiclesSuggestItemT[];\n    query: FindTruckQueryT;\n};\n\nexport type FindTruckErrorActionT = {\n    type: typeof FIND_TRUCK_REQUEST_ERROR;\n    error: Error;\n    query: FindTruckQueryT;\n};\n\nexport type PredictSelfCostActionT = {\n    type: typeof PREDICT_SELF_COST_REQUEST;\n    query: SelfCostPredictionQueryT;\n};\n\nexport type PredictSelfCostBeginActionT = {\n    type: typeof PREDICT_SELF_COST_REQUEST_BEGIN;\n    query: SelfCostPredictionQueryT;\n};\n\nexport type PredictSelfCostSuccessActionT = {\n    type: typeof PREDICT_SELF_COST_REQUEST_SUCCESS;\n    selfCostPrediction: SelfCostPredictionT | null;\n    query: SelfCostPredictionQueryT;\n};\n\nexport type PredictSelfCostErrorActionT = {\n    type: typeof PREDICT_SELF_COST_REQUEST_ERROR;\n    error: Error;\n    query: SelfCostPredictionQueryT;\n};\n\nexport type AssignActionT = {\n    type: typeof ASSIGNMENT_REQUEST;\n    brokerOrderId: BrokerOrderIdT;\n    tourId: TourIdT;\n    assignmentContextId: AssignmentContextIdT;\n};\n\nexport type AssignBeginActionT = {\n    type: typeof ASSIGNMENT_REQUEST_BEGIN;\n};\n\nexport type AssignSuccessActionT = {\n    type: typeof ASSIGNMENT_REQUEST_SUCCESS;\n};\n\nexport type AssignErrorActionT = {\n    type: typeof ASSIGNMENT_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type FetchAssetScheduleActionT = {\n    type: typeof FETCH_ASSET_SCHEDULE;\n    assetId: AssetIdT;\n    brokerOrderId: BrokerOrderIdT;\n    tourId: TourIdT;\n};\n\nexport type FetchAssetScheduleBeginActionT = {\n    type: typeof FETCH_ASSET_SCHEDULE_BEGIN;\n    assetId: AssetIdT;\n};\n\nexport type FetchAssetScheduleErrorActionT = {\n    type: typeof FETCH_ASSET_SCHEDULE_ERROR;\n    assetId: AssetIdT;\n    error: Error;\n};\n\nexport type FetchAssetScheduleSuccessActionT = {\n    type: typeof FETCH_ASSET_SCHEDULE_SUCCESS;\n    assetId: AssetIdT;\n};\n\nexport type SetAssetScheduleActionT = {\n    type: typeof SET_ASSET_SCHEDULE;\n    assetId: AssetIdT;\n    events: Array<ScheduleEventT>;\n    currentEventId: ScheduleEventIdT | null;\n};\n\nexport type SetEventLoadRouteActionT = {\n    type: typeof SET_EVENT_LOAD_ROUTE;\n    assetId: AssetIdT;\n    scheduleEventId: ScheduleEventIdT;\n    polylines: Array<GooglePolylineT>;\n};\n\nexport type SetShowSelectedAssetScheduleActionT = {\n    type: typeof SET_SHOW_SELECTED_ASSET_SCHEDULES;\n    isShowSelectedAssetSchedules: boolean;\n};\n\nexport type SetSelectedScheduleEventIdActionT = {\n    type: typeof SET_SELECTED_SCHEDULE_EVENT_ID;\n    selectedScheduleEventId: ScheduleEventIdT | null;\n};\n\nexport type ResetActionT = {\n    type: typeof RESET;\n};\n\nexport type InitActionT = {\n    type: typeof INIT;\n};\n\nexport type BrokerOrderAssigmentActionT =\n    | InitActionT\n    | InitUserSelectionActionT\n    | ChangeUserSelectionActionT\n    | FetchAvailableVehiclesActionT\n    | FetchAvailableVehiclesBeginActionT\n    | FetchAvailableVehiclesSuccessActionT\n    | FetchAvailableVehiclesErrorActionT\n    | FetchAvailableCarriersActionT\n    | FetchAvailableCarriersBeginActionT\n    | FetchAvailableCarriersSuccessActionT\n    | FetchAvailableCarriersErrorActionT\n    | FetchAssignDetailsActionT\n    | FetchAssignDetailsBeginActionT\n    | FetchAssignDetailsSuccessActionT\n    | FetchAssignDetailsErrorActionT\n    | RefreshTrailerActionT\n    | SetInitAssetsInfoActionT\n    | FindTrailerActionT\n    | FindTrailerBeginActionT\n    | FindTrailerSuccessActionT\n    | FindTrailerErrorActionT\n    | RefreshTruckActionT\n    | FindTruckActionT\n    | FindTruckBeginActionT\n    | FindTruckSuccessActionT\n    | FindTruckErrorActionT\n    | PredictSelfCostActionT\n    | PredictSelfCostBeginActionT\n    | PredictSelfCostSuccessActionT\n    | PredictSelfCostErrorActionT\n    | AssignActionT\n    | AssignBeginActionT\n    | AssignSuccessActionT\n    | AssignErrorActionT\n    | FetchAssetScheduleActionT\n    | FetchAssetScheduleBeginActionT\n    | FetchAssetScheduleErrorActionT\n    | FetchAssetScheduleSuccessActionT\n    | SetAssetScheduleActionT\n    | SetEventLoadRouteActionT\n    | SetShowSelectedAssetScheduleActionT\n    | SetSelectedScheduleEventIdActionT\n    | ResetActionT;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"DictTrailerMultipleDropdown__fadeIn___CY2lf\",\"blinking\":\"DictTrailerMultipleDropdown__blinking___MfI_C\"};","import { FieldsEnum, FormValuesT } from './constants';\nimport {\n    BooleanSettingValueEnum,\n    SystemSettingsChangesT,\n} from 'broker-admin/store/price-settings/system-settings/models';\n\nconst prepareApiSystemSettings = (formValues: FormValuesT): SystemSettingsChangesT => {\n    return {\n        MINIMAL_COST_FOR_SHIPMENT: formValues[FieldsEnum.minimalShipmentCost],\n        DRIVER_SALARY_PER_HOUR: formValues[FieldsEnum.driverSalaryPerHour],\n        MINIMAL_COST_FOR_TRUCK: formValues[FieldsEnum.minimalCostForTruck],\n        MINIMAL_COST_FOR_TRAILER: formValues[FieldsEnum.minimalCostForTrailer],\n        COST_PER_ONE_HOUR_LAYOVER: formValues[FieldsEnum.layoverCostPerHour],\n        COST_PER_ONE_DAY_LAYOVER: formValues[FieldsEnum.layoverCostPerDay],\n        LAYOVER_FREE_HOURS: formValues[FieldsEnum.layoverFreeHours],\n        URGENT_OVERPRICE: formValues[FieldsEnum.urgentOverPrice],\n        OVERPRICE_FOR_EVERY_ADDITIONAL_STOP: formValues[FieldsEnum.overPriceForEveryAdditionalStop],\n        TIME_SLOT_APPOINTMENT_COST: formValues[FieldsEnum.timeSlotAppointmentCost],\n        COST_PER_GREEN_SHIPMENT: formValues[FieldsEnum.costPerGreenShipment],\n        TRANZIIT_SERVICE_FEE_FIXED_MODE: formValues[FieldsEnum.tranziitServiceFeeFixedMode],\n        TRANZIIT_SERVICE_FEE_PERCENT: formValues[FieldsEnum.tranziitServiceFeePercent],\n        TRANZIIT_SERVICE_FEE_FIXED: formValues[FieldsEnum.tranziitServiceFeeFixed],\n        PRICING_STRATEGY: formValues[FieldsEnum.pricingStrategy],\n        TRUCK_CONSUMPTION: formValues[FieldsEnum.truckConsumption],\n        REEFER_CONSUMPTION: formValues[FieldsEnum.reeferConsumption],\n        RATE_MATRIX_SPREAD: formValues[FieldsEnum.rateMatrixSpread],\n        HVO_PRICE_PERCENT: formValues[FieldsEnum.hvoPricePercent],\n        USE_PERIODIC_RULES: formValues[FieldsEnum.usePeriodicRulesForWeekdays]\n            ? BooleanSettingValueEnum.true\n            : BooleanSettingValueEnum.false,\n        YEAR_PERIODIC_AUTO_RULES: formValues[FieldsEnum.usePeriodicRulesForMonths]\n            ? BooleanSettingValueEnum.true\n            : BooleanSettingValueEnum.false,\n    };\n};\n\nexport default prepareApiSystemSettings;\n","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { ApiLocationT, CountryCodeT } from 'common/utils/api/models';\nimport {\n    DeadheadContactT,\n    DeadheadInitContextResponseT,\n    DeadheadPreviewContextResponseT,\n    DeadheadApplyContextResponseT,\n    RawDeadheadInitContextQueryT,\n    RawDeadheadPreviewQueryT,\n    ContextRouteStopFakeIdT,\n} from './models';\n\nexport type DeadheadCreationStateT = {\n    contextQuery: RawDeadheadInitContextQueryT | null;\n    contextResponse: DeadheadInitContextResponseT | null;\n    contextRequest: RequestStatusT;\n\n    previewQuery: RawDeadheadPreviewQueryT | null;\n    previewResponse: DeadheadPreviewContextResponseT | null;\n    previewRequest: RequestStatusT;\n\n    isApplyingContextChanges: boolean;\n\n    applyContextRequest: RequestStatusT;\n};\n\nexport const initialDeadheadCreationState: DeadheadCreationStateT = {\n    contextQuery: null,\n    contextResponse: null,\n    contextRequest: requestStatus.initial,\n\n    previewQuery: null,\n    previewResponse: null,\n    previewRequest: requestStatus.initial,\n\n    isApplyingContextChanges: false,\n\n    applyContextRequest: requestStatus.initial,\n};\n\nexport const deadheadCreationSlice = createSlice({\n    name: 'deadheadCreation',\n    initialState: initialDeadheadCreationState,\n    reducers: {\n        changeDeadheadContext: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<DeadheadChangeEventT>,\n        ) => {\n            // handled in saga\n        },\n        setContextQuery: (state, action: PayloadAction<{ query: RawDeadheadInitContextQueryT | null }>) => {\n            state.contextQuery = action.payload.query;\n        },\n        initContextRequestBegin: (state) => {\n            state.contextRequest = requestStatus.loading;\n        },\n        initContextRequestSuccess: (\n            state,\n            action: PayloadAction<{ response: DeadheadInitContextResponseT | null }>,\n        ) => {\n            state.contextResponse = action.payload.response;\n            state.contextRequest = requestStatus.ok;\n        },\n        initContextRequestError: (state, action: PayloadAction<{ error: Error }>) => {\n            state.contextRequest = requestStatus.setError(action.payload.error);\n        },\n        resetContext: (state) => {\n            state.contextRequest = requestStatus.initial;\n            state.contextResponse = null;\n        },\n        resetPreviewContext: (state) => {\n            state.previewRequest = requestStatus.initial;\n            state.previewResponse = null;\n        },\n        resetPreviewContextQuery: (state) => {\n            state.previewQuery = initialDeadheadCreationState.previewQuery;\n        },\n        setPreviewQuery: (state, action: PayloadAction<{ query: RawDeadheadPreviewQueryT | null }>) => {\n            state.previewQuery = action.payload.query;\n        },\n        previewContextRequestBegin: (state) => {\n            state.previewRequest = requestStatus.loading;\n        },\n        previewContextRequestSuccess: (\n            state,\n            action: PayloadAction<{ response: DeadheadPreviewContextResponseT | null }>,\n        ) => {\n            state.previewResponse = action.payload.response;\n            state.previewRequest = requestStatus.ok;\n        },\n        previewContextRequestError: (state, action: PayloadAction<{ error: Error }>) => {\n            state.previewRequest = requestStatus.setError(action.payload.error);\n        },\n        applyContextRequest: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                doNotIncludeCostsInTransportOrder: boolean;\n                contacts: Array<DeadheadContactT>;\n            }>,\n        ) => {\n            // nothing, saga will handle\n        },\n        applyContextRequestBegin: (state) => {\n            state.applyContextRequest = requestStatus.loading;\n        },\n        applyContextRequestSuccess: (\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{ response: DeadheadApplyContextResponseT | null }>,\n        ) => {\n            state.applyContextRequest = requestStatus.ok;\n        },\n        applyContextRequestError: (state, action: PayloadAction<{ error: Error }>) => {\n            state.applyContextRequest = requestStatus.setError(action.payload.error);\n        },\n\n        setIsApplyingContextChanges: (state, action: PayloadAction<boolean>) => {\n            state.isApplyingContextChanges = action.payload;\n        },\n\n        resetDeadheadCreation: () => {\n            return { ...initialDeadheadCreationState };\n        },\n    },\n    extraReducers: (builder) => {\n        builder.addCase('auth/destroySession', () => {\n            return { ...initialDeadheadCreationState };\n        });\n    },\n});\n\nexport type DeadheadChangeEventT =\n    | {\n          type: 'check-context-expiration';\n      }\n    | {\n          type: 'init';\n          initRoute: Array<{\n              contextRouteStopFakeId: ContextRouteStopFakeIdT;\n              address: ApiLocationT | null;\n          }>;\n      }\n    | {\n          type: 'set-truck-id';\n          truckId: TruckIdT | null;\n          resetRoute?: Array<{\n              contextRouteStopFakeId: ContextRouteStopFakeIdT;\n              address: ApiLocationT | null;\n          }>;\n      }\n    | {\n          type: 'change-stop-location';\n          contextRouteStopFakeId: ContextRouteStopFakeIdT;\n          address: ApiLocationT | null;\n      }\n    | {\n          type: 'insert-route-point';\n          beforeContextRouteStopFakeIds: Array<ContextRouteStopFakeIdT>;\n          contextRouteStopFakeId: ContextRouteStopFakeIdT;\n          address: ApiLocationT | null;\n      }\n    | {\n          type: 'delete-route-point';\n          contextRouteStopFakeId: ContextRouteStopFakeIdT;\n      }\n    | {\n          type: 'set-arrival-date-time';\n          arrivalDateTime: ISODateTimeT;\n      }\n    | {\n          type: 'set-excluded-countries';\n          excludedCountries: Array<CountryCodeT>;\n      };\n\nexport const {\n    changeDeadheadContext,\n    setContextQuery,\n    initContextRequestBegin,\n    initContextRequestSuccess,\n    initContextRequestError,\n    resetContext,\n    resetPreviewContext,\n    resetPreviewContextQuery,\n    setPreviewQuery,\n    previewContextRequestBegin,\n    previewContextRequestSuccess,\n    previewContextRequestError,\n    applyContextRequest,\n    applyContextRequestBegin,\n    applyContextRequestSuccess,\n    applyContextRequestError,\n    setIsApplyingContextChanges,\n    resetDeadheadCreation,\n} = deadheadCreationSlice.actions;\n\nexport default deadheadCreationSlice.reducer;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './LoaderOverlay.scss';\nimport ControlLoaderWithShadow from 'common/components/ControlLoaderWithShadow/ControlLoaderWithShadow';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size?: number;\n    isTransparent?: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nconst LoaderOverlay: React.FC<PropsT> = React.memo((props) => {\n    const { size, isTransparent } = props;\n\n    return (\n        <div className={cx('loader-overlay')} data-test-selector=\"overlay\">\n            {isTransparent ? null : <div className={cx('overlay')} />}\n            <div className={cx('inner')}>\n                <ControlLoaderWithShadow fillColor={StyleGuideColorsEnum.gray} size={size} />\n            </div>\n        </div>\n    );\n});\n\nexport default LoaderOverlay;\n","import { useMemo } from 'react';\nimport { ApiStopTypeT, StopTypeEnum } from 'common/utils/api/models';\nimport { BrokerOrderWaypointT } from 'broker-admin/store/broker-order-details/models';\n\nconst useBrokerOrderPayloadWaypoints = (brokerOrderWaypoints: Array<BrokerOrderWaypointT> | null | undefined) => {\n    return useMemo(() => {\n        if (!brokerOrderWaypoints) {\n            return {\n                firstPayloadWaypoint: null,\n                lastPayloadWaypoint: null,\n            };\n        }\n\n        const originWaypoint = brokerOrderWaypoints?.find((waypoint) => {\n            return waypoint?.origin;\n        });\n\n        const destinationWaypoint = brokerOrderWaypoints?.find((waypoint) => {\n            return waypoint?.destination;\n        });\n\n        const payloadWaypointStopTypeSet = new Set<ApiStopTypeT>([\n            StopTypeEnum.pickupDeliveryShipment,\n            StopTypeEnum.driveThrough,\n            StopTypeEnum.dropAndHook,\n        ]);\n\n        const payloadWaypoints = brokerOrderWaypoints?.filter((waypoint) => {\n            return payloadWaypointStopTypeSet.has(waypoint.type);\n        });\n\n        const firstPayloadWaypoint = payloadWaypoints[0] || null;\n        const lastPayloadWaypoint = payloadWaypoints[payloadWaypoints.length - 1] || null;\n\n        return {\n            originWaypoint: originWaypoint || firstPayloadWaypoint,\n            destinationWaypoint: destinationWaypoint || lastPayloadWaypoint,\n        };\n    }, [brokerOrderWaypoints]);\n};\n\nexport { useBrokerOrderPayloadWaypoints };\n","import {\n    FETCH_DONE_STATISTICS_REQUEST_BEGIN,\n    FETCH_DONE_STATISTICS_REQUEST_ERROR,\n    FETCH_DONE_STATISTICS_REQUEST_SUCCESS,\n    FETCH_STATISTICS_REQUEST,\n    FetchDoneStatisticsRequestBeginActionT,\n    FetchDoneStatisticsRequestErrorActionT,\n    FetchDoneStatisticsRequestSuccessActionT,\n    FetchStatisticsRequestActionT,\n    FetchRejectStatisticsRequestSuccessActionT,\n    FetchRejectStatisticsRequestErrorActionT,\n    FetchRejectStatisticsRequestBeginActionT,\n    FETCH_REJECT_STATISTICS_REQUEST_BEGIN,\n    FETCH_REJECT_STATISTICS_REQUEST_SUCCESS,\n    FETCH_REJECT_STATISTICS_REQUEST_ERROR,\n    FetchStatisticsRequestBeginActionT,\n    FETCH_STATISTICS_REQUEST_BEGIN,\n} from './types';\nimport { DoneStatisticT, FetchStatisticsQueryT, RejectStatisticT } from './models';\n\nexport const fetchStatistics = (\n    query: FetchStatisticsQueryT,\n    options?: FetchOptionsT,\n): FetchStatisticsRequestActionT => ({\n    type: FETCH_STATISTICS_REQUEST,\n    query,\n    options,\n});\n\nexport const fetchStatisticsBegin = (\n    query: FetchStatisticsQueryT,\n    options?: FetchOptionsT,\n): FetchStatisticsRequestBeginActionT => ({\n    type: FETCH_STATISTICS_REQUEST_BEGIN,\n    query,\n    options,\n});\n\nexport const fetchDoneStatisticsBegin = (query: FetchStatisticsQueryT): FetchDoneStatisticsRequestBeginActionT => ({\n    type: FETCH_DONE_STATISTICS_REQUEST_BEGIN,\n    query,\n});\n\nexport const fetchDoneStatisticsSuccess = (\n    query: FetchStatisticsQueryT,\n    statistic: DoneStatisticT | null,\n): FetchDoneStatisticsRequestSuccessActionT => ({\n    type: FETCH_DONE_STATISTICS_REQUEST_SUCCESS,\n    query,\n    statistic,\n});\n\nexport const fetchDoneStatisticsError = (\n    query: FetchStatisticsQueryT,\n    error: Error,\n): FetchDoneStatisticsRequestErrorActionT => ({\n    type: FETCH_DONE_STATISTICS_REQUEST_ERROR,\n    error,\n    query,\n});\n\nexport const fetchRejectStatisticsBegin = (query: FetchStatisticsQueryT): FetchRejectStatisticsRequestBeginActionT => ({\n    type: FETCH_REJECT_STATISTICS_REQUEST_BEGIN,\n    query,\n});\n\nexport const fetchRejectStatisticsSuccess = (\n    query: FetchStatisticsQueryT,\n    statistic: RejectStatisticT | null,\n): FetchRejectStatisticsRequestSuccessActionT => ({\n    type: FETCH_REJECT_STATISTICS_REQUEST_SUCCESS,\n    query,\n    statistic,\n});\n\nexport const fetchRejectStatisticsError = (\n    query: FetchStatisticsQueryT,\n    error: Error,\n): FetchRejectStatisticsRequestErrorActionT => ({\n    type: FETCH_REJECT_STATISTICS_REQUEST_ERROR,\n    error,\n    query,\n});\n","import * as React from 'react';\n\nimport cs from 'classnames';\n\nimport classNames from 'classnames/bind';\nimport styles from './PriceDetailsHeader.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    title: React.ReactNode;\n    rightNode?: React.ReactNode;\n    className?: string;\n};\n\nconst PriceDetailsHeader: React.FC<PropsT> = React.memo((props) => {\n    const { title, rightNode, className } = props;\n\n    return (\n        <div className={cs(cx('row'), className)}>\n            <div\n                className={cx('row__column', {\n                    'row__column--title': true,\n                })}\n            >\n                <span className={cx('title')}>{title}</span>\n            </div>\n            {rightNode && (\n                <div\n                    className={cx('row__column', {\n                        'row__column--right-node': true,\n                    })}\n                >\n                    {rightNode}\n                </div>\n            )}\n        </div>\n    );\n});\n\nexport default PriceDetailsHeader;\n","import React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport UpArrowIcon from 'common/icons/UpArrowIcon';\nimport DownArrowIcon from 'common/icons/DownArrowIcon';\n\nimport MaskedInput from 'react-text-mask';\n\nimport styles from './NumberInput.scss';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport { StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport UnitType from 'common/components/units/UnitType/UnitType';\nimport { simpleNumberFormatter } from 'common/utils/form-formatters';\nimport { safeArithmeticOperations } from 'common/utils/safe-arithmetic';\n\nconst cx = classNames.bind(styles);\n\ntype ValueT = string;\n\nexport type IconMetaT = {\n    isDisabled: boolean;\n    hasError: boolean;\n    hasWarning: boolean;\n    hasChanges: boolean;\n};\n\nexport type PropsT = {\n    name: string;\n    value: ValueT;\n    unitType?: UnitTypeEnum;\n    step?: number;\n    renderLeftIcon?: (meta: IconMetaT) => React.ReactNode;\n    placeholder?: string;\n    onChange: (value: ValueT) => void;\n    onBlur?: () => void;\n    onFocus?: () => void;\n    isDisabled?: boolean;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    hasChanges?: boolean;\n    mask?: MaskT;\n    className?: string;\n    inputClassName?: string;\n};\n\nconst getControlColor = (isEmpty: boolean, isFocused: boolean): StyleGuideColorsEnum => {\n    if (isFocused) {\n        return StyleGuideColorsEnum.brandDark;\n    }\n\n    return StyleGuideColorsEnum.gray;\n};\n\nconst CONTROL_SIZE = 19;\n\nconst NumberInput: React.FC<PropsT> = (props) => {\n    const {\n        value,\n        name,\n        hasChanges,\n        unitType,\n        step,\n        placeholder,\n        onChange,\n        onBlur,\n        onFocus,\n        renderLeftIcon,\n        isDisabled,\n        hasError,\n        hasWarning,\n        mask,\n        className,\n        inputClassName,\n    } = props;\n\n    const [isFocused, setFocused] = React.useState<boolean>(false);\n    const handleChange = (event: React.FormEvent<HTMLInputElement>): void => {\n        onChange(event.currentTarget.value);\n    };\n\n    const [isHovered, setHovered] = React.useState<boolean>(false);\n    const handleMouseMove = (): void => {\n        if (!isHovered) {\n            setHovered(true);\n        }\n    };\n\n    const handleMouseLeave = (): void => {\n        setHovered(false);\n    };\n\n    const handleBlur = (): void => {\n        if (isDisabled) {\n            return;\n        }\n\n        setFocused(false);\n\n        if (onBlur) {\n            onBlur();\n        }\n    };\n\n    const handleFocus = (): void => {\n        if (isDisabled) {\n            return;\n        }\n\n        setFocused(true);\n\n        if (onFocus) {\n            onFocus();\n        }\n    };\n\n    const isEmpty = !value;\n    const controlsColor = getControlColor(isEmpty, isFocused);\n\n    const valueStep = step || 1;\n    const handleIncrement = (): void => {\n        if (isDisabled) {\n            return;\n        }\n\n        const parsedValue = parseSimpleNumber(value) || 0;\n        const nextValue = safeArithmeticOperations.plus(parsedValue, valueStep);\n        const stringNextValue = simpleNumberFormatter(nextValue);\n        if (onBlur) {\n            onBlur();\n        }\n        onChange(stringNextValue);\n    };\n\n    const handleDecrement = (): void => {\n        if (isDisabled) {\n            return;\n        }\n\n        const parsedValue = parseSimpleNumber(value) || 0;\n        const nextValue = safeArithmeticOperations.minus(parsedValue, valueStep);\n        const stringNextValue = simpleNumberFormatter(nextValue);\n        if (onBlur) {\n            onBlur();\n        }\n        onChange(stringNextValue);\n    };\n\n    const inputProps: React.InputHTMLAttributes<HTMLInputElement> = {\n        onChange: handleChange,\n        onBlur: handleBlur,\n        onFocus: handleFocus,\n        name,\n        type: mask ? 'text' : 'number',\n        step: 'any',\n        value: value || '',\n        className: cx('input-inner', {\n            'input-inner--isEmpty': isEmpty,\n            'input-inner--isDisabled': isDisabled,\n        }),\n        placeholder,\n        disabled: isDisabled,\n    };\n\n    const isHideValueControl = !step;\n    return (\n        <div className={cs(cx('wrap'), className)}>\n            <div className={cx('content')}>\n                <div\n                    className={cx('input-wrap', {\n                        'input-wrap--withValueControl': !isHideValueControl,\n                    })}\n                >\n                    <div\n                        className={cx(\n                            'input',\n                            {\n                                'input--hasWarning': hasWarning,\n                                'input--isChanged': hasChanges,\n                                'input--hasError': hasError,\n                                'input--isEmpty': isEmpty,\n                                'input--hasIcon': !!renderLeftIcon,\n                                'input--isFocused': isFocused,\n                                'input--isHovered': isHovered,\n                                'input--isDisabled': isDisabled,\n                            },\n                            inputClassName,\n                        )}\n                        onMouseMove={handleMouseMove}\n                        onMouseLeave={handleMouseLeave}\n                    >\n                        {renderLeftIcon && (\n                            <div className={cx('icon')}>\n                                {renderLeftIcon({\n                                    isDisabled: !!isDisabled,\n                                    hasError: !!hasError,\n                                    hasWarning: !!hasWarning,\n                                    hasChanges: !!hasChanges,\n                                })}\n                            </div>\n                        )}\n                        {mask ? <MaskedInput mask={mask} {...inputProps} /> : <input {...inputProps} />}\n                        <div\n                            className={cx('units', {\n                                'units--isEmpty': isEmpty,\n                                'units--isDisabled': isDisabled,\n                                'units--isHideValueControl': isHideValueControl,\n                            })}\n                        >\n                            {unitType && <UnitType type={unitType} />}\n                        </div>\n                    </div>\n                </div>\n                {!isHideValueControl && (\n                    <div className={cx('controls')}>\n                        <div\n                            className={cx('controls__control', {\n                                'controls__control--increment': true,\n                                'controls__control--hasWarning': hasWarning,\n                                'controls__control--hasError': hasError,\n                                'controls__control--isEmpty': isEmpty,\n                                'controls__control--isFocused': isFocused,\n                                'controls__control--isHovered': isHovered,\n                                'controls__control--isDisabled': isDisabled,\n                            })}\n                            onClick={handleIncrement}\n                        >\n                            <UpArrowIcon fillColor={controlsColor} width={CONTROL_SIZE} height={CONTROL_SIZE} />\n                        </div>\n                        <div\n                            className={cx('controls__control', {\n                                'controls__control--decrement': true,\n                                'controls__control--hasWarning': hasWarning,\n                                'controls__control--hasError': hasError,\n                                'controls__control--isEmpty': isEmpty,\n                                'controls__control--isFocused': isFocused,\n                                'controls__control--isHovered': isHovered,\n                                'controls__control--isDisabled': isDisabled,\n                            })}\n                            onClick={handleDecrement}\n                        >\n                            <DownArrowIcon fillColor={controlsColor} width={CONTROL_SIZE} height={CONTROL_SIZE} />\n                        </div>\n                    </div>\n                )}\n            </div>\n        </div>\n    );\n};\n\nexport default NumberInput;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './AttentionTextFormatter.scss';\n\ntype PropsT = {\n    isActive: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nconst AttentionTextFormatter: React.FC<PropsT> = React.memo((props) => {\n    const { isActive, children } = props;\n\n    return <span className={isActive ? cx('warning') : ''}>{children}</span>;\n});\n\nexport default AttentionTextFormatter;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './SpotSettingsForm.scss';\n\nimport { useFormik } from 'formik';\nimport { useTranslation } from 'react-i18next';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport prepareApiSystemSettings from './prepare-system-settings';\nimport NumberInput from 'common/components/NumberInput/NumberInput';\nimport withWidgetChangesDetector from 'common/components/SaveChangesNotification/withWidgetChangesDetector';\nimport { UnitTypeEnum } from 'common/constants';\nimport Widget from 'common/components/Widget/Widget';\nimport values from 'lodash/values';\nimport { getMaskByType } from '../utils';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport HiddenSubmitButtonForKeyboardEnter from 'common/components/HiddenEnterSubmitButton/HiddenSubmitButtonForKeyboardEnter';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport { SystemSettingsFormCommonPropsT } from 'broker-admin/layouts/SettingsPage/SystemSettings/models';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport { useWatchFormAnyErrors } from 'common/utils/hooks/useWatchFormFormHasErrors';\n\nconst cx = classNames.bind(styles);\n\nconst UNIT_TYPE_MAP = {\n    [FieldsEnum.spotRequestLimit]: UnitTypeEnum.hoursAbbreviation,\n    [FieldsEnum.expiresSoonAlert]: UnitTypeEnum.hoursAbbreviation,\n};\n\nconst STEP_MAP = {\n    [FieldsEnum.spotRequestLimit]: 1,\n    [FieldsEnum.expiresSoonAlert]: 1,\n};\n\nconst FIELD_LABEL_T_MAP = {\n    [FieldsEnum.spotRequestLimit]: 'price-settings.spot-form.fields.spot-request-limit.label',\n    [FieldsEnum.expiresSoonAlert]: 'price-settings.spot-form.fields.expires-soon-alert.label',\n};\n\nconst FIELD_DESCRIPTION_T_MAP = {\n    [FieldsEnum.spotRequestLimit]: 'price-settings.spot-form.fields.spot-request-limit.description',\n    [FieldsEnum.expiresSoonAlert]: 'price-settings.spot-form.fields.expires-soon-alert.description',\n};\n\ntype PropsT = SystemSettingsFormCommonPropsT;\n\nconst ALL_FIELDS = values(FieldsEnum);\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(ALL_FIELDS);\n\ntype NumberFieldsT = FieldsEnum.spotRequestLimit | FieldsEnum.expiresSoonAlert;\n\nconst SpotSettingsForm: React.FC<PropsT> = (props) => {\n    const { systemSettings, title, onUpdate, isLoading } = props;\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues(systemSettings);\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [systemSettings]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const apiSystemSettings = prepareApiSystemSettings(values);\n            onUpdate(apiSystemSettings);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormCallbacks) {\n            remoteFormActionsContext.setRemoteFormCallbacks({\n                submit: formik.submitForm,\n                reset: formik.resetForm,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.submitForm, formik.resetForm]);\n\n    const hasFormAnyErros = useWatchFormAnyErrors(formik.errors);\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormState) {\n            remoteFormActionsContext.setRemoteFormState({\n                hasChanges: hasAnyFieldValueChanges,\n                hasErrors: hasFormAnyErros,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasFormAnyErros, hasAnyFieldValueChanges]);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormRequest) {\n            remoteFormActionsContext.setRemoteFormRequest({\n                isLoading,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isLoading]);\n\n    const WidgetChangesDetector = withWidgetChangesDetector(formik.values, initialValues);\n\n    const renderNumberField = (name: NumberFieldsT): React.ReactNode => {\n        return (\n            <FormikField\n                className={cx('field')}\n                name={name}\n                error={formik.errors[name]}\n                meta={formik.getFieldMeta(name)}\n                label={t(FIELD_LABEL_T_MAP[name])}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n                tooltipNode={\n                    <TooltipContent theme={TooltipContentThemeEnum.black} width={150}>\n                        {t(FIELD_DESCRIPTION_T_MAP[name])}\n                    </TooltipContent>\n                }\n            >\n                {(props) => (\n                    <NumberInput\n                        name={name}\n                        unitType={UNIT_TYPE_MAP[name]}\n                        mask={getMaskByType(UNIT_TYPE_MAP[name])}\n                        step={STEP_MAP[name]}\n                        value={formik.values[name]}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                        hasChanges={props.hasChanges}\n                    />\n                )}\n            </FormikField>\n        );\n    };\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <Widget className={cx('widget')} title={title} rightNode={<WidgetChangesDetector fields={ALL_FIELDS} />}>\n                <div className={cx('widget__inner')}>\n                    <FieldGroup>\n                        {renderNumberField(FieldsEnum.spotRequestLimit)}\n                        {renderNumberField(FieldsEnum.expiresSoonAlert)}\n                        {/* <FieldGroupEmptyItem className={cx('field')} /> */}\n                    </FieldGroup>\n                    <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n                    <HiddenSubmitButtonForKeyboardEnter />\n                </div>\n            </Widget>\n        </form>\n    );\n};\n\nexport default React.memo(SpotSettingsForm) as typeof SpotSettingsForm;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"ExpireSoonDocumentCard__inner___aDs2A\"};","import { ShipmentPapersUrlFactoryI } from 'common/components/papers/image-url-factories';\n\nexport const brokerShipmentPapersUrlFactory: ShipmentPapersUrlFactoryI = {\n    getThumbnailUrl: (shipmentId: ShipmentIdT | null, documentId: DocumentIdT | null): string | null => {\n        if (!shipmentId || !documentId) {\n            return null;\n        }\n\n        return `/api/v1/common/attached-papers/${documentId}/get-thumbnail`;\n    },\n\n    getContentUrl: (shipmentId: ShipmentIdT | null, documentId: DocumentIdT | null): string | null => {\n        if (!shipmentId || !documentId) {\n            return null;\n        }\n\n        return `/api/v1/common/attached-papers/${documentId}/get-content`;\n    },\n};\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './EditTourStopContactFooterContent.scss';\nimport { ApiBrokerTourWaypointT } from 'common/utils/api/models';\nimport EditStopContactForm from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/EditStopContactForm/EditStopContactForm';\nimport NumberIcon from 'common/icons/NumberIcon';\nimport LocationLabel from 'common/components/LocationLabel/LocationLabel';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectBrokerTourEditUpdateRequestStatus } from 'broker-admin/store/broker-tour-edit/selectors';\nimport { updateTourStopContact } from 'broker-admin/store/broker-tour-edit/actions';\nimport { BrokerStopChangesSourceEnum, UpdateTourStopContactRequestT } from 'broker-admin/store/broker-tour-edit/types';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    brokerTourId: BrokerTourIdT | null;\n    waypoint: ApiBrokerTourWaypointT | null;\n    source: BrokerStopChangesSourceEnum;\n    onCancel: () => void;\n};\n\nconst EditTourStopContactFooterContent: React.FC<PropsT> = React.memo((props) => {\n    const { brokerTourId, waypoint, source, onCancel } = props;\n\n    const dispatch = useDispatch();\n    const requestStatus = useSelector(selectBrokerTourEditUpdateRequestStatus(brokerTourId));\n\n    const handleSave = React.useCallback(\n        (stopId: string, data: UpdateTourStopContactRequestT) => {\n            if (!brokerTourId) {\n                return;\n            }\n            dispatch(updateTourStopContact({ brokerTourId, stopId, data, source }));\n        },\n        [brokerTourId, dispatch, source],\n    );\n\n    if (!waypoint) {\n        return null;\n    }\n\n    return (\n        <div className={cx('content')}>\n            <div className={cx('head')}>\n                <NumberIcon\n                    className={cx('head__icon')}\n                    number={(waypoint?.index || 0) + 1}\n                    fillColor={StyleGuideColorsEnum.charcoal}\n                />\n                <LocationLabel\n                    className={cx('head__title')}\n                    format=\"s1_s2_zip_city_country\"\n                    location={waypoint?.address}\n                />\n            </div>\n            <EditStopContactForm\n                requestStatus={requestStatus}\n                waypoint={waypoint}\n                onSave={handleSave}\n                onCancel={onCancel}\n            />\n        </div>\n    );\n});\n\nexport default EditTourStopContactFooterContent;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"QuickFilters__wrap___Dp0sP\",\"container\":\"QuickFilters__container___HwkNG\",\"container--isMeasuring\":\"QuickFilters__container--isMeasuring___fCYi7\",\"option\":\"QuickFilters__option___VFJcQ\",\"toggle\":\"QuickFilters__toggle___tCUh4\",\"trigger\":\"QuickFilters__trigger___MMUcv\",\"notification\":\"QuickFilters__notification___BemKs\",\"fadeIn\":\"QuickFilters__fadeIn___dX4dN\",\"blinking\":\"QuickFilters__blinking___bZ9od\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './BrokerTourDeadheadCreationPage.scss';\n\nimport GoogleMapContextProvider from 'common/components/maps/GoogleMapContextProvider/GoogleMapContextProvider';\nimport HorizontalColumnsLayout from 'common/layouts/HorizontalColumnsLayout/HorizontalColumnsLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport SideBarLayoutContextWrap from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayoutContextWrap/SideBarLayoutContextWrap';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport SideBars from 'broker-admin/layouts/SideBars/SideBars';\n\nimport { SyncRouteEditFormMapStateContext } from './contexts/sync-map-state';\nimport { useSyncMapStateContextValue } from './hooks/useSyncMapStateContextValue';\nimport RouteEditMap from './RouteEditMap/RouteEditMap';\nimport {\n    selectDeadheadApplyRequest,\n    selectDeadheadPreviewResponse,\n} from 'broker-admin/store/deadhead-creation/selectors';\nimport { useDispatch, useSelector } from 'react-redux';\nimport Steps from 'broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/Steps/Steps';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\nimport RouteDetailsForm from 'broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteDetailsForm/RouteDetailsForm';\nimport RouteForm from 'broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/RouteForm';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport history, { goBackIfHasRePath } from 'common/utils/history';\nimport { BooleanParam, StringParam, useQueryParams } from 'use-query-params';\nimport {\n    NEW_DEADHEAD_TOUR_EVENT_ID,\n    QueryKeysEnum,\n} from 'broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/contants';\nimport { RouteFormValuesT } from 'broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/constants';\nimport {\n    applyContextRequest,\n    changeDeadheadContext,\n    resetDeadheadCreation,\n} from 'broker-admin/store/deadhead-creation/slice';\nimport { RouteDetailsFormValuesT } from 'broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteDetailsForm/constants';\nimport { prepareContacts } from 'broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/utils/prepare-contacts';\nimport { useTranslation } from 'react-i18next';\nimport {\n    checkIsTranziitApiRequestError,\n    TranziitApiRequestErrorSubTypeEnum,\n} from 'common/utils/api/tranziit/errors/tranziit-api-errors';\nimport AssetScheduleSidebar from 'common/components/AssetScheduleSidebar/AssetScheduleSidebar';\nimport { selectFetchScheduleRequest, selectVehicleSchedule } from 'common/store/vehicle-schedules/selectors';\nimport { SyncAssetScheduleContext } from 'broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/contexts/sync-asset-schedule';\nimport { useSyncAssetScheduleContextValue } from './hooks/useSyncAssetScheduleContextValue';\nimport noop from 'lodash/noop';\nimport { fetchVehicleSchedule } from 'common/store/vehicle-schedules/actions';\nimport { VehicleScheduleEventT } from 'common/store/vehicle-schedules/models';\nimport first from 'lodash/first';\nimport last from 'lodash/last';\nimport { useScheduleTimeWindowFactory } from 'common/utils/hooks/use-schedule-time-window-factory';\nimport { parseDateStringWithoutTimezone } from 'common/utils/time';\nimport { TimeWindowT } from 'common/components/Timeline/models';\nimport isNumber from 'lodash/isNumber';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { vehicleSchedulesRefreshChannel } from 'common/store/vehicle-schedules/channels';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport useSideBarFooterAlertsContextValue from 'common/utils/hooks/useSideBarFooterAlertsContextValue';\nimport SideBarFooterAlertsContext from 'common/layouts/LeftMenuLayout/SideBarLayout/contexts/side-bar-footer-alerts-context';\nimport { AlertThemeEnum } from 'common/components/Alert/Alert';\nimport ExpirationContextAlertContent from './ExpirationContextAlertContent/ExpirationContextAlertContent';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst BrokerTourDeadheadCreationPage: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const applyRequestStatus = useSelector(selectDeadheadApplyRequest);\n\n    const sideBarFooterAlertsContextValue = useSideBarFooterAlertsContextValue();\n    const showFooterAlert = sideBarFooterAlertsContextValue.showAlert;\n\n    const applyContextRequestError = applyRequestStatus?.error || null;\n    React.useEffect(() => {\n        const error = applyContextRequestError || null;\n        if (\n            error &&\n            checkIsTranziitApiRequestError(error) &&\n            error?.subType === TranziitApiRequestErrorSubTypeEnum.brokerDeadheadCreation_ExpirationContext\n        ) {\n            showFooterAlert({\n                theme: AlertThemeEnum.orange,\n                content: <ExpirationContextAlertContent />,\n            });\n        }\n    }, [applyContextRequestError, showFooterAlert]);\n\n    const handleExpireContext = React.useCallback(() => {\n        showFooterAlert({\n            theme: AlertThemeEnum.orange,\n            content: <ExpirationContextAlertContent />,\n        });\n\n        dispatch(\n            changeDeadheadContext({\n                type: 'check-context-expiration',\n            }),\n        );\n    }, [dispatch, showFooterAlert]);\n\n    const mapStateContextValue = useSyncMapStateContextValue();\n    const assetScheduleContextValue = useSyncAssetScheduleContextValue();\n\n    const [query, changeQuery] = useQueryParams({\n        [QueryKeysEnum.doNotIncludeCostsInTransportOrder]: BooleanParam,\n        [QueryKeysEnum.contextId]: StringParam,\n    });\n\n    const doNotIncludeCostsInTransportOrder = !!query?.doNotIncludeCostsInTransportOrder;\n    const setDoNotIncludeCostsInTransportOrder = (doNotIncludeCostsInTransportOrder: boolean) => {\n        changeQuery({\n            [QueryKeysEnum.doNotIncludeCostsInTransportOrder]: doNotIncludeCostsInTransportOrder,\n        });\n    };\n\n    React.useEffect(() => {\n        dispatch(fetchCountriesDict());\n    }, [dispatch]);\n\n    const deadheadPreviewResponse = useSelector(selectDeadheadPreviewResponse);\n\n    const [activeStepIndex, setActiveStepIndex] = React.useState<number>(0);\n\n    const handleClose = () => {\n        goBackIfHasRePath(() => {\n            history.push(urlFactory.brokerTours());\n        });\n    };\n\n    const initialFormValuesRef = React.useRef<RouteFormValuesT | null>(null);\n\n    const handleSubmitRouteForm = (contextId: ContextIdT, routeFormValues: RouteFormValuesT) => {\n        changeQuery({\n            [QueryKeysEnum.contextId]: contextId,\n        });\n\n        initialFormValuesRef.current = routeFormValues;\n\n        setActiveStepIndex((activeStepIndex) => activeStepIndex + 1);\n    };\n\n    const handleSubmitRouteDetailsForm = (routeDetailsFormValues: RouteDetailsFormValuesT) => {\n        dispatch(\n            applyContextRequest({\n                doNotIncludeCostsInTransportOrder,\n                contacts: prepareContacts(routeDetailsFormValues.contacts),\n            }),\n        );\n    };\n\n    React.useEffect(() => {\n        return () => {\n            dispatch(resetDeadheadCreation());\n        };\n    }, [dispatch]);\n\n    const scheduleTimeWindowFactory = useScheduleTimeWindowFactory();\n    const newDeadheadTimeWindows = React.useMemo((): Array<TimeWindowT<VehicleScheduleEventT | null>> => {\n        if (!deadheadPreviewResponse) {\n            return [];\n        }\n\n        const firstStop = first(deadheadPreviewResponse?.stops) || null;\n        const lastStop = last(deadheadPreviewResponse?.stops) || null;\n\n        const truckDateFrom = firstStop?.correctedDateTimeFrom || firstStop?.originalDateTimeFrom || null;\n        const truckDateTo = lastStop?.correctedDateTimeTo || lastStop?.originalDateTimeTo || null;\n\n        const start = parseDateStringWithoutTimezone(truckDateFrom);\n        const end = parseDateStringWithoutTimezone(truckDateTo);\n        if (!isNumber(start) || !isNumber(end)) {\n            return [];\n        }\n\n        return [\n            {\n                id: NEW_DEADHEAD_TOUR_EVENT_ID,\n                data: null,\n                start,\n                end,\n                isTransparent: false,\n                ...scheduleTimeWindowFactory.accentTO({ entityNumber: '-' }),\n                label: t('deadhead-creation.schedule.new-deadhead-time-window.label'),\n            },\n        ];\n    }, [deadheadPreviewResponse, scheduleTimeWindowFactory, t]);\n\n    const selectedTruckId = assetScheduleContextValue?.truckId || null;\n    const fetchScheduleRequestStatus = useSelector(selectFetchScheduleRequest(selectedTruckId));\n    const schedule = useSelector(selectVehicleSchedule(selectedTruckId));\n\n    React.useEffect(() => {\n        if (selectedTruckId) {\n            dispatch(fetchVehicleSchedule({ vehicleId: selectedTruckId }));\n        }\n    }, [dispatch, selectedTruckId]);\n\n    const refreshVehicleSchedulesHandler = React.useCallback(\n        (event: InferChannelEventT<typeof vehicleSchedulesRefreshChannel>) => {\n            const { vehicleId } = event;\n\n            if (vehicleId === selectedTruckId) {\n                dispatch(fetchVehicleSchedule({ vehicleId: selectedTruckId }, { isForceUpdate: true }));\n            }\n        },\n        [dispatch, selectedTruckId],\n    );\n    useChannelSubscribe(vehicleSchedulesRefreshChannel, refreshVehicleSchedulesHandler);\n\n    return (\n        <SideBarFooterAlertsContext.Provider value={sideBarFooterAlertsContextValue}>\n            <SyncRouteEditFormMapStateContext.Provider value={mapStateContextValue}>\n                <SyncAssetScheduleContext.Provider value={assetScheduleContextValue}>\n                    <GoogleMapContextProvider>\n                        <PageTitle title={t('page-titles.deadhead-creation')} />\n                        <HorizontalColumnsLayout\n                            testSelector=\"broker-tour-deadhead-creation\"\n                            className={cx('wrap')}\n                            leftColumnTitle={t('deadhead-creation.main-tabs.details')}\n                            leftColumnNode={\n                                <SideBarLayoutContextWrap>\n                                    <HeaderSideBarLayout>\n                                        <HeaderSideBarContent\n                                            title={t('deadhead-creation.title')}\n                                            onClose={handleClose}\n                                        />\n                                    </HeaderSideBarLayout>\n                                    <SideBarLayout>\n                                        <Steps\n                                            activeStepIndex={activeStepIndex}\n                                            setActiveStepIndex={setActiveStepIndex}\n                                        />\n                                        {activeStepIndex === 0 && (\n                                            <RouteForm\n                                                initialFormValues={initialFormValuesRef.current}\n                                                onSubmit={handleSubmitRouteForm}\n                                                doNotIncludeCostsInTransportOrder={doNotIncludeCostsInTransportOrder}\n                                                setDoNotIncludeCostsInTransportOrder={\n                                                    setDoNotIncludeCostsInTransportOrder\n                                                }\n                                                onExpireContext={handleExpireContext}\n                                            />\n                                        )}\n                                        {activeStepIndex === 1 && (\n                                            <RouteDetailsForm\n                                                onSubmit={handleSubmitRouteDetailsForm}\n                                                onExpireContext={handleExpireContext}\n                                            />\n                                        )}\n                                    </SideBarLayout>\n                                </SideBarLayoutContextWrap>\n                            }\n                            rightColumnTitle={t('deadhead-creation.main-tabs.map')}\n                            rightColumnNode={\n                                <div className={cx('right-column-wrap')}>\n                                    <div className={cx('schedule')}>\n                                        <AssetScheduleSidebar\n                                            type=\"truck\"\n                                            isLoading={fetchScheduleRequestStatus.loading}\n                                            onEventClick={noop}\n                                            schedule={schedule}\n                                            additionalTimeWindows={newDeadheadTimeWindows}\n                                        />\n                                    </div>\n                                    <div className={cx('map')}>\n                                        <RouteEditMap\n                                            key=\"deadhead-create-map\"\n                                            deadheadPreviewResponse={deadheadPreviewResponse}\n                                            isShowExcludeCountriesControl={activeStepIndex === 0}\n                                        />\n                                    </div>\n                                </div>\n                            }\n                        />\n                    </GoogleMapContextProvider>\n                </SyncAssetScheduleContext.Provider>\n                <SideBars />\n            </SyncRouteEditFormMapStateContext.Provider>\n        </SideBarFooterAlertsContext.Provider>\n    );\n});\n\nexport default BrokerTourDeadheadCreationPage;\n","// extracted by mini-css-extract-plugin\nexport default {\"title\":\"DocumentSummary__title___fw2Dz\",\"download\":\"DocumentSummary__download___x_6Yi\",\"info\":\"DocumentSummary__info___amiK6\",\"fadeIn\":\"DocumentSummary__fadeIn___MxdOO\",\"blinking\":\"DocumentSummary__blinking___AhV5S\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ShipmentDetailsCard.scss';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport Card from 'design-system/components/Card/Card';\nimport { useTranslation } from 'react-i18next';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\n\nimport { formatTimeInterval } from 'common/utils/time';\nimport NumberIcon from 'common/icons/NumberIcon';\nimport CargoUnitIcon from 'common/icons/CargoUnitIcon';\nimport UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\nimport { getLoadUnitType } from 'common/utils/units';\nimport WeightIcon from 'common/icons/WeightIcon';\nimport SnowflakeIcon from 'common/icons/SnowflakeIcon';\nimport TemperatureModeFormatter from 'design-system/components/InfoTable/formatters/TemperatureModeFormatter/TemperatureModeFormatter';\nimport CommentIcon from 'common/icons/CommentIcon';\n\nimport LocationLabel from 'common/components/LocationLabel/LocationLabel';\nimport { ApiBrokerSpotShipmentT, ApiSpotStopT } from 'broker-admin/utils/api/spot-broker-tranziit/models';\n\nconst ADDRESS_SEPARATOR = ', ';\n\nexport type PropsT = {\n    isReeferTrailer: boolean;\n    shipmentNumber: number;\n    shipment: ApiBrokerSpotShipmentT | null;\n    pickUpStop: ApiSpotStopT | null;\n    dropOffStop: ApiSpotStopT | null;\n    keyboardShortcut?: string;\n    className?: string;\n};\n\nconst cx = classNames.bind(styles);\n\nconst ShipmentDetailsCard: React.FC<PropsT> = React.memo((props) => {\n    const { isReeferTrailer, shipmentNumber, shipment, pickUpStop, dropOffStop, keyboardShortcut, className } = props;\n\n    const { t } = useTranslation();\n\n    const pickUpDetails: Array<InfoTableRowT> = [\n        {\n            icon: <NumberIcon number={(pickUpStop?.index || 0) + 1} fillColor={StyleGuideColorsEnum.charcoal} />,\n            name: t('spot-request-details.shipment-details.by-type.pickup'),\n            value: (\n                <LocationLabel\n                    format=\"s1_s2_zip_city_country\"\n                    location={pickUpStop?.address}\n                    separator={ADDRESS_SEPARATOR}\n                />\n            ),\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n            testSelector: 'origin',\n            rows: [\n                {\n                    icon: null,\n                    name: t('spot-request-details.shipment-details.columns.time-slots'),\n                    value: formatTimeInterval(pickUpStop?.timeSlotFrom, pickUpStop?.timeSlotTo),\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'date-time',\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('spot-request-details.shipment-details.columns.company-name'),\n                    value: pickUpStop?.contact?.companyName,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'contact-company-name',\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('spot-request-details.shipment-details.columns.contact-name'),\n                    value: pickUpStop?.contact?.fullName,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'contact-name',\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('spot-request-details.shipment-details.columns.contact-phone'),\n                    value: pickUpStop?.contact?.phone,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'contact-phone',\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('spot-request-details.shipment-details.columns.contact-email'),\n                    value: pickUpStop?.contact?.email,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'contact-email',\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('spot-request-details.shipment-details.columns.reference-number'),\n                    value: shipment?.pickupReferenceNumber,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'loading-reference',\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('spot-request-details.shipment-details.columns.comment'),\n                    value: pickUpStop?.contact?.comment,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'contact-comment',\n                },\n            ],\n        },\n    ];\n\n    const dropOffDetails: Array<InfoTableRowT> = [\n        {\n            icon: <NumberIcon number={(dropOffStop?.index || 0) + 1} fillColor={StyleGuideColorsEnum.charcoal} />,\n            name: t('spot-request-details.shipment-details.by-type.delivery'),\n            value: (\n                <LocationLabel\n                    format=\"s1_s2_zip_city_country\"\n                    location={dropOffStop?.address}\n                    separator={ADDRESS_SEPARATOR}\n                />\n            ),\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n            testSelector: 'origin',\n            rows: [\n                {\n                    icon: null,\n                    name: t('spot-request-details.shipment-details.columns.time-slots'),\n                    value: formatTimeInterval(dropOffStop?.timeSlotFrom, dropOffStop?.timeSlotTo),\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'date-time',\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('spot-request-details.shipment-details.columns.company-name'),\n                    value: dropOffStop?.contact?.companyName,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'contact-company-name',\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('spot-request-details.shipment-details.columns.contact-name'),\n                    value: dropOffStop?.contact?.fullName,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'contact-name',\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('spot-request-details.shipment-details.columns.contact-phone'),\n                    value: dropOffStop?.contact?.phone,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'contact-phone',\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('spot-request-details.shipment-details.columns.contact-email'),\n                    value: dropOffStop?.contact?.email,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'contact-email',\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('spot-request-details.shipment-details.columns.reference-number'),\n                    value: shipment?.dropOffReferenceNumber,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'loading-reference',\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('spot-request-details.shipment-details.columns.comment'),\n                    value: dropOffStop?.contact?.comment,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'contact-comment',\n                },\n            ],\n        },\n    ];\n\n    const loadDetails: Array<InfoTableRowT | null> = [\n        {\n            icon: (\n                <CargoUnitIcon\n                    size={DEFAULT_ICON_SIZE}\n                    fillColor={StyleGuideColorsEnum.light}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                />\n            ),\n            name: t('spot-request-details.shipment-details.columns.units'),\n            value: <UnitTypeCount type={getLoadUnitType(shipment?.unitsType)} count={shipment?.maxNumberOfUnits} />,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n            testSelector: 'load-units',\n        },\n        {\n            icon: <WeightIcon fillColor={StyleGuideColorsEnum.gray} />,\n            name: t('spot-request-details.shipment-details.columns.cargo-weight'),\n            value: <UnitTypeCount count={shipment?.weight} type={UnitTypeEnum.kilogramsAbbreviation} />,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n            testSelector: 'cargo-weight',\n        },\n        isReeferTrailer\n            ? {\n                  icon: <SnowflakeIcon fillColor={StyleGuideColorsEnum.gray} />,\n                  name: t('spot-request-details.shipment-details.columns.temperature'),\n                  value: (\n                      <TemperatureModeFormatter\n                          lowestTemperature={shipment?.lowestTemperature}\n                          highestTemperature={shipment?.highestTemperature}\n                      />\n                  ),\n                  valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                  testSelector: 'temperature',\n              }\n            : null,\n        {\n            icon: <CommentIcon fillColor={StyleGuideColorsEnum.light} strokeColor={StyleGuideColorsEnum.gray} />,\n            name: t('spot-request-details.shipment-details.columns.description'),\n            value: shipment?.description,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n            testSelector: 'description',\n        },\n    ];\n\n    return (\n        <>\n            <Card\n                titleNode={t('spot-request-details.shipment-details.title', {\n                    number: shipmentNumber,\n                })}\n                afterTitleNode={\n                    <CargoUnitIcon\n                        size={DEFAULT_ICON_SIZE}\n                        fillColor={StyleGuideColorsEnum.light}\n                        strokeColor={StyleGuideColorsEnum.slate}\n                    />\n                }\n                className={className}\n                hasHeaderBottomBorder\n                keyboardShortcut={keyboardShortcut}\n            >\n                <div className={cx('content')}>\n                    <InfoTable shouldRenderIcons rows={pickUpDetails} className={cx('table', 'table--point')} />\n                    <InfoTable shouldRenderIcons rows={dropOffDetails} className={cx('table', 'table--point')} />\n                    <InfoTable\n                        shouldRenderIcons\n                        className={cx('table', 'table--load')}\n                        rows={loadDetails}\n                        testSelector=\"load-details\"\n                    />\n                </div>\n            </Card>\n        </>\n    );\n});\n\nexport default ShipmentDetailsCard;\n","import { FormikHelpers, FormikState } from 'formik';\nimport { FieldsEnum, FormValuesT, RoutePointFieldsEnum } from '../constants';\nimport { useEffect, useRef } from 'react';\n\ntype FormikT = FormikState<FormValuesT> & FormikHelpers<FormValuesT>;\n\nexport const useEditRouteWatcher = (formik: FormikT) => {\n    const prevFirstEmptyLocationRoutePointIndex = useRef<number | null>(null);\n\n    const routeValue = formik.values[FieldsEnum.route];\n\n    useEffect(() => {\n        const firstEmptyLocationRoutePointIndex = routeValue?.findIndex((routePointValue) => {\n            return !routePointValue[RoutePointFieldsEnum.location];\n        });\n\n        if (prevFirstEmptyLocationRoutePointIndex.current !== firstEmptyLocationRoutePointIndex) {\n            if (firstEmptyLocationRoutePointIndex !== -1 && firstEmptyLocationRoutePointIndex !== null) {\n                const newRouteValue = routeValue.map((routePointValue, index) => {\n                    const isShouldResetTimeWindow = index >= firstEmptyLocationRoutePointIndex;\n                    if (routePointValue[RoutePointFieldsEnum.timeWindow] && isShouldResetTimeWindow) {\n                        return {\n                            ...routePointValue,\n                            [RoutePointFieldsEnum.timeWindow]: null,\n                            [RoutePointFieldsEnum.isBrokerTimeWindow]: false,\n                        };\n                    }\n\n                    return routePointValue;\n                });\n\n                formik.setFieldValue(FieldsEnum.route, newRouteValue);\n            }\n\n            prevFirstEmptyLocationRoutePointIndex.current = firstEmptyLocationRoutePointIndex;\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [routeValue]);\n};\n","import { FieldsEnum, requiredContactsStopTypeSet, RouteDetailsFormValuesT } from './constants';\nimport { DeadheadRouteStopT } from 'broker-admin/store/deadhead-creation/models';\n\nexport const prepareValues = (\n    values: RouteDetailsFormValuesT,\n    stops: Array<DeadheadRouteStopT>,\n): RouteDetailsFormValuesT => {\n    const contacts = values[FieldsEnum.contacts] || [];\n\n    return {\n        ...values,\n        contacts: contacts.filter((_, index) => {\n            const stop = stops[index] || null;\n\n            const isRequiredContacts = stop?.type ? requiredContactsStopTypeSet.has(stop.type) : false;\n\n            return isRequiredContacts;\n        }),\n    };\n};\n","import * as React from 'react';\nimport { useMemo } from 'react';\nimport DropdownControl, {\n    checkIsNotEmptyOptions,\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch } from 'react-redux';\nimport { updateEntityStatus } from 'common/store/state-machine/slice';\nimport {\n    ApiShipmentAttachedPaperTypeT,\n    ApiShipmentEventTypeT,\n    ApiShipmentStatusT,\n    ApiTourShipmentEventT,\n    ShipmentStatusEnum,\n} from 'common/utils/api/models';\nimport {\n    AvailableSubjectStatusesResponseT,\n    StateMachineEntityDescriptorT,\n    TypedAvailableSubjectStatusesResponseT,\n} from 'common/store/state-machine/models';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport CancelLastShipmentConfirmation, {\n    CancelLastShipmentConfirmationDataT,\n} from 'common/layouts/dialogs/CancelLastShipmentConfirmation/CancelLastShipmentConfirmation';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\n\nimport ClickInterceptorLabel from 'common/components/ClickInterceptorLabel/ClickInterceptorLabel';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport { useStateMachine } from 'common/utils/hooks/useStateMachine';\nimport classNames from 'classnames/bind';\n\nimport styles from './ChangeShipmentStatusSidebarFooter.scss';\nimport TimeLeftForStart from 'common/layouts/sidebar-footers/TimeLeftForStart/TimeLeftForStart';\nimport MoreIcon from 'common/icons/MoreIcon';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport InfoIcon from 'common/icons/InfoIcon';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport { logWarning } from 'common/utils/logger';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport RestoreIcon from 'common/icons/RestoreIcon';\nimport { isNonNil } from 'common/utils';\nimport DeleteIcon from 'common/icons/DeleteIcon';\nimport { TransportOrderDetailsT } from 'common/store/transport-order-details/models';\nimport { LOAD_STATUS_T_MAP } from 'common/components/status-pill/ShipmentStatusPill/ShipmentStatusPill';\nimport { ShipmentPaperAttachPapersDropdownControl } from 'common/components/papers/ShipmentPaperAttachPapersDropdownControl/ShipmentPaperAttachPapersDropdownControl';\nimport { useAttachPaperForStateMachineRenderTrigger } from 'common/components/papers/ShipmentPaperAttachPapersDropdownControl/hooks';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    isShowLoading: boolean;\n    shipment: TransportOrderDetailsT['shipments'][number] | null;\n    onAttachShipmentPaper: (\n        shipmentId: ShipmentIdT,\n        paperType: ApiShipmentAttachedPaperTypeT,\n        comment?: string,\n    ) => void;\n    shouldConfirmForCancelLastShipment: boolean;\n    takeShotsOfPapersTourShipmentEvent: ApiTourShipmentEventT | null;\n};\n\nconst blockedI18nMap: Record<NonNullable<AvailableSubjectStatusesResponseT['description']>, string> = {\n    HAS_LOADING_UNLOADING_SHIPMENT: 'change-shipment-status.blocked.HAS_LOADING_UNLOADING_SHIPMENT',\n    NOT_FULLY_ASSIGN: 'change-shipment-status.blocked.NOT_FULLY_ASSIGN',\n    ALL_SHIPMENTS_NOT_DELIVERED: 'change-shipment-status.blocked.ALL_SHIPMENTS_NOT_DELIVERED',\n    DRIVER_NOT_ARRIVED_AT_STOP: 'change-shipment-status.blocked.DRIVER_NOT_ARRIVED_AT_STOP',\n    ATTACH_DOCUMENT: 'change-shipment-status.blocked.ATTACH_DOCUMENT',\n};\n\nconst deadlineGuideI18nMap: Record<ApiShipmentEventTypeT, string> = {\n    LOADING: 'change-shipment-status.deadline-guide.LOADING',\n    UNLOADING: 'change-shipment-status.deadline-guide.UNLOADING',\n};\n\nconst shipmentActionI18nMap: Record<ApiShipmentStatusT, string> = {\n    LOADING: 'change-shipment-status.actions.LOADING',\n    AWAITING_LOADING: 'change-shipment-status.actions.AWAITING_LOADING',\n    IN_TRANSIT: 'change-shipment-status.actions.IN_TRANSIT',\n    UNLOADING: 'change-shipment-status.actions.UNLOADING',\n    DELIVERED: 'change-shipment-status.actions.DELIVERED',\n    CANCELED: 'change-shipment-status.actions.CANCELED',\n};\n\nconst ChangeShipmentStatusSidebarFooter: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        isShowLoading,\n        shipment,\n        shouldConfirmForCancelLastShipment,\n        onAttachShipmentPaper,\n        takeShotsOfPapersTourShipmentEvent,\n    } = props;\n\n    const cancelLastShipmentConfirmation = useModalDialog<CancelLastShipmentConfirmationDataT>();\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const shipmentId = shipment?.id || null;\n\n    const descriptor = useMemo((): StateMachineEntityDescriptorT | null => {\n        if (!shipmentId) {\n            return null;\n        }\n\n        return {\n            entityType: 'SHIPMENT',\n            entityId: shipmentId,\n        };\n    }, [shipmentId]);\n\n    const availableStatuses = (shipment?.availableStatuses ||\n        null) as TypedAvailableSubjectStatusesResponseT<ApiShipmentStatusT> | null;\n\n    const { updateRequest } = useStateMachine<ApiShipmentStatusT>(descriptor, { isAllowFetch: false });\n\n    const firstForwardAvailableStatus = React.useMemo(() => {\n        return (\n            availableStatuses?.forward?.find((status) => {\n                return status !== ShipmentStatusEnum.canceled;\n            }) || null\n        );\n    }, [availableStatuses]);\n\n    const forwardDescription = availableStatuses?.description || null;\n\n    const backwardDescription = availableStatuses?.backwardDescription || null;\n\n    const firstBackwardAvailableStatus =\n        (availableStatuses?.backward?.find((status) => {\n            return status !== ShipmentStatusEnum.canceled;\n        }) as ApiShipmentStatusT) || null;\n\n    useCloseModalDialogAfterRequest(updateRequest, [cancelLastShipmentConfirmation]);\n\n    const isShowCancelAction = shipment?.canBeCanceled;\n\n    const options: Array<DropdownControlOptionT | SpecialOptionEnum | null | undefined> = [\n        firstBackwardAvailableStatus\n            ? {\n                  label: (\n                      <Tooltip\n                          position={TooltipPositionEnum.topCenter}\n                          theme={TooltipThemeEnum.black}\n                          tooltipNode={\n                              backwardDescription ? (\n                                  <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                      {t(blockedI18nMap[backwardDescription])}\n                                  </TooltipContent>\n                              ) : null\n                          }\n                      >\n                          {() => (\n                              <DropdownControlOptionLabel\n                                  isDisabled={!!backwardDescription}\n                                  label={\n                                      backwardDescription\n                                          ? t('change-shipment-status.unable-undo', {\n                                                action: t(LOAD_STATUS_T_MAP[firstBackwardAvailableStatus]),\n                                            })\n                                          : t('change-shipment-status.undo', {\n                                                action: t(LOAD_STATUS_T_MAP[firstBackwardAvailableStatus]),\n                                            })\n                                  }\n                                  icon={<RestoreIcon strokeColor={StyleGuideColorsEnum.tomatoRed} />}\n                              />\n                          )}\n                      </Tooltip>\n                  ),\n                  isDisabled: !!backwardDescription,\n                  onSelect: () => {\n                      if (!descriptor) {\n                          logWarning('Empty tour id or waypoint id or descriptor');\n                          return;\n                      }\n\n                      if (firstBackwardAvailableStatus && shipmentId) {\n                          dispatch(\n                              updateEntityStatus({\n                                  update: {\n                                      status: firstBackwardAvailableStatus,\n                                      entityType: 'SHIPMENT',\n                                      entityId: shipmentId,\n                                  },\n                                  descriptor,\n                              }),\n                          );\n                      }\n                  },\n              }\n            : null,\n        isShowCancelAction ? SpecialOptionEnum.separator : null,\n        isShowCancelAction\n            ? {\n                  label: (\n                      <DropdownControlOptionLabel\n                          label={t('change-shipment-status.cancel')}\n                          icon={<DeleteIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                      />\n                  ),\n                  onSelect: () => {\n                      if (!shipmentId || !descriptor) {\n                          return;\n                      }\n\n                      const data = {\n                          update: {\n                              status: ShipmentStatusEnum.canceled,\n                              entityType: 'SHIPMENT',\n                              entityId: shipmentId,\n                          },\n                          descriptor,\n                      } as const;\n\n                      if (shouldConfirmForCancelLastShipment) {\n                          cancelLastShipmentConfirmation.setData(data);\n                      } else {\n                          dispatch(updateEntityStatus(data));\n                      }\n                  },\n              }\n            : null,\n    ].filter(isNonNil);\n\n    const isLoading = updateRequest?.loading;\n\n    const handleConfirmCancelLastShipment = (data: CancelLastShipmentConfirmationDataT) => {\n        dispatch(updateEntityStatus(data));\n    };\n\n    const handleDoCurrentFirstDoAction = () => {\n        if (firstForwardAvailableStatus && shipmentId && descriptor) {\n            dispatch(\n                updateEntityStatus({\n                    update: {\n                        entityType: 'SHIPMENT',\n                        entityId: shipmentId,\n                        status: firstForwardAvailableStatus,\n                    },\n                    descriptor,\n                }),\n            );\n            return;\n        }\n\n        logWarning('Empty action');\n    };\n\n    const { attachPaperRenderTrigger } = useAttachPaperForStateMachineRenderTrigger({\n        triggerText: t('change-shipment-status.attach-papers'),\n        requiredDocuments: takeShotsOfPapersTourShipmentEvent?.requiredDocuments || [],\n    });\n\n    const renderCurrentShipmentAction = ({ isDisabled }: { isDisabled: boolean }) => {\n        if (forwardDescription === 'ATTACH_DOCUMENT') {\n            return (\n                <ShipmentPaperAttachPapersDropdownControl\n                    isFullWidth\n                    shipmentId={shipmentId}\n                    onAttachShipmentPaper={onAttachShipmentPaper}\n                    renderTrigger={attachPaperRenderTrigger}\n                    className={cx('attach-papers')}\n                />\n            );\n        }\n\n        if (forwardDescription) {\n            return (\n                <Alert\n                    icon={<InfoIcon fillColor={StyleGuideColorsEnum.light} />}\n                    size={AlertSizeEnum.small}\n                    theme={AlertThemeEnum.gray}\n                    className={cx('alert')}\n                >\n                    {t(blockedI18nMap[forwardDescription])}\n                </Alert>\n            );\n        }\n\n        if (firstForwardAvailableStatus) {\n            return (\n                <Button\n                    className={cx('action', 'action--next')}\n                    theme={ButtonThemeEnum.secondaryPositive}\n                    onClick={handleDoCurrentFirstDoAction}\n                    isDisabled={isDisabled}\n                    isLoading={isLoading}\n                >\n                    {t(shipmentActionI18nMap[firstForwardAvailableStatus])}\n                </Button>\n            );\n        }\n\n        return null;\n    };\n\n    const deadline = shipment?.eventDateTime?.timeStamp;\n\n    const deadlineLabel = shipment?.eventDateTime?.type ? t(deadlineGuideI18nMap[shipment?.eventDateTime?.type]) : null;\n\n    const alreadyStartedLabel = t('change-shipment-status.out-of-time', {\n        toAction: deadlineLabel,\n    });\n\n    if (!isShowLoading) {\n        return null;\n    }\n\n    return (\n        <>\n            <TimeLeftForStart\n                deadline={deadline}\n                alreadyStartedLabel={alreadyStartedLabel}\n                deadlineLabel={deadlineLabel}\n                renderActions={(isDisabled) => {\n                    return [\n                        renderCurrentShipmentAction({ isDisabled }),\n                        checkIsNotEmptyOptions(options) && (\n                            <DropdownControl\n                                key=\"actions\"\n                                className={className}\n                                options={options}\n                                isDisabled={isLoading}\n                                isShowTriggerForEmptyOptions={isLoading}\n                                renderTrigger={(isActive, onClick) => (\n                                    <TransparentTrigger\n                                        isPressed={isActive}\n                                        onClick={onClick}\n                                        leftIcon={<MoreIcon />}\n                                        reflectionTheme={ReflectionThemeEnum.light}\n                                    />\n                                )}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                            />\n                        ),\n                    ];\n                }}\n            />\n            <ClickInterceptorLabel>\n                <CancelLastShipmentConfirmation\n                    requestStatus={updateRequest}\n                    data={cancelLastShipmentConfirmation.data}\n                    onClose={cancelLastShipmentConfirmation.onClose}\n                    onCancel={cancelLastShipmentConfirmation.onCancel}\n                    onConfirm={handleConfirmCancelLastShipment}\n                />\n            </ClickInterceptorLabel>\n        </>\n    );\n});\n\nexport default ChangeShipmentStatusSidebarFooter;\n","import * as React from 'react';\nimport { useState } from 'react';\n\nimport AuthLayout from 'common/layouts/AuthLayout/AuthLayout';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport classNames from 'classnames/bind';\nimport styles from './SelfCreateCompanyPage.scss';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport CreateCompanyForm from 'common/layouts/SelfCreateCompanyPage/CreateCompanyForm/CreateCompanyForm';\nimport { ApiRegistrationCompanyRequestDraftT, PartnerTypeEnum } from 'common/utils/api/models';\nimport { createCompanyRequest } from 'common/store/create-company/slice';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\nimport { selectCreateCompanyRequest, selectCreatedCompanyIsLocked } from 'common/store/create-company/selectors';\nimport { QueryKeysEnum } from 'common/constants';\nimport useQuery from 'common/utils/hooks/useQuery';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport AuthLayoutMessage, { AuthMessageIconsEnum } from 'common/layouts/AuthLayout/AuthLayoutMessage/AuthLayoutMessage';\nimport useOnlyChangesEffect from 'common/utils/hooks/useOnlyChangesEffect';\nimport { selectCountriesDictRequest } from 'common/store/countries-dict/selectors';\nimport history from 'common/utils/history';\nimport { parseAuthReturnUrl } from 'common/utils/auth-return-url';\nimport { selectUser } from 'common/store/auth/selectors';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype QueryT = {\n    [QueryKeysEnum.returnUrl]: string;\n};\n\ntype PropsT = {};\n\nconst SelfCreateCompanyPage: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n\n    const { partnerType } = usePartnerContext();\n\n    const query = useQuery<QueryT>();\n\n    const returnUrl = query[QueryKeysEnum.returnUrl] || null;\n\n    const [isShowLockedMessage, setIsShowLockedMessage] = useState(false);\n\n    const user = useSelector(selectUser);\n\n    const countriesDictRequest = useSelector(selectCountriesDictRequest);\n    const requestStatus = useSelector(selectCreateCompanyRequest);\n    const isLocked = useSelector(selectCreatedCompanyIsLocked);\n\n    useOnlyChangesEffect(() => {\n        if (isLocked) {\n            setIsShowLockedMessage(isLocked);\n        }\n    }, [isLocked]);\n\n    useOnlyChangesEffect(() => {\n        if (countriesDictRequest.error) {\n            history.push(parseAuthReturnUrl(returnUrl));\n        }\n    }, [countriesDictRequest.error]);\n\n    useOnlyChangesEffect(() => {\n        if (user) {\n            history.push(parseAuthReturnUrl(returnUrl));\n        }\n    }, [user]);\n\n    React.useEffect(() => {\n        dispatch(fetchCountriesDict());\n    }, [dispatch]);\n\n    const handleSubmit = (registrationCompanyRequestDraft: ApiRegistrationCompanyRequestDraftT): void => {\n        dispatch(createCompanyRequest({ registrationCompanyRequestDraft, returnUrl }));\n    };\n\n    if (isShowLockedMessage) {\n        return (\n            <AuthLayout testSelector=\"created-company-is-locked\">\n                <AuthLayoutMessage\n                    iconType={AuthMessageIconsEnum.success}\n                    title={t('common:sign-up.success-message.title')}\n                    description={t('common:sign-up.success-message.description')}\n                    testSelector=\"success\"\n                />\n            </AuthLayout>\n        );\n    }\n\n    const isBroker = partnerType === PartnerTypeEnum.broker;\n    if (isBroker) {\n        return (\n            <AuthLayout testSelector=\"continue-sign-up-page\">\n                <AuthLayoutMessage\n                    iconType={AuthMessageIconsEnum.warning}\n                    title={t('common:self-create-company.messages.blocked-for-broker')}\n                    testSelector=\"broker-create-company-forbidden\"\n                />\n            </AuthLayout>\n        );\n    }\n\n    return (\n        <>\n            <AuthLayout title={t('common:continue-sign-up.title')} testSelector=\"continue-sign-up-page\">\n                <PageTitle title={t('common:page-titles.continue-sign-up')} />\n                <CreateCompanyForm onSubmit={handleSubmit} requestStatus={requestStatus} />\n            </AuthLayout>\n        </>\n    );\n});\n\nexport default SelfCreateCompanyPage;\n","import * as React from 'react';\nimport { ApiBrokerOrderStatusT, BrokerOrderStatusEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    status: ApiBrokerOrderStatusT | null | undefined;\n};\n\nexport const BROKER_ORDER_STATUS_T_MAP: Record<ApiBrokerOrderStatusT, string> = {\n    [BrokerOrderStatusEnum.newOrder]: 'common:broker-order-status.NEW_ORDER',\n    [BrokerOrderStatusEnum.carrierUnassigned]: 'common:broker-order-status.CARRIER_UNASSIGNED',\n    [BrokerOrderStatusEnum.carrierAssigned]: 'common:broker-order-status.CARRIER_ASSIGNED',\n    [BrokerOrderStatusEnum.inTransit]: 'common:broker-order-status.IN_TRANSIT',\n    [BrokerOrderStatusEnum.canceled]: 'common:broker-order-status.CANCELED',\n    [BrokerOrderStatusEnum.delivered]: 'common:broker-order-status.DELIVERED',\n    [BrokerOrderStatusEnum.unknown]: 'common:broker-order-status.UNKNOWN',\n};\n\nconst BrokerOrderStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return null;\n    }\n\n    return t(BROKER_ORDER_STATUS_T_MAP[status]);\n});\n\nexport default BrokerOrderStatus;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './Table.scss';\nimport TableSkeleton from 'common/components/Table/TableSkeleton/TableSkeleton';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport LineLoader from 'common/components/LineLoader/LineLoader';\nimport { isNonNil } from 'common/utils';\nimport { useRef } from 'react';\n\nconst cx = classNames.bind(styles);\n\nexport type TableRowMetaT = {\n    isSelected: boolean;\n    isHovered: boolean;\n};\n\nexport type TableColumnT<RowT, ColumnsExtraDataT> = {\n    // headers\n    renderHeader: (columnsExtraData?: ColumnsExtraDataT) => React.ReactElement | null;\n    headerClassName?: string;\n\n    // cells\n    render: (row: RowT, meta: TableRowMetaT, rowIndex: number) => React.ReactElement | null;\n    className?: string;\n\n    testSelector?: string;\n};\n\nexport enum TableRowModsEnum {\n    hasLeftGreenBorder = 'hasLeftGreenBorder',\n    hasLeftOrangeBorder = 'hasLeftOrangeBorder',\n    hasLeftRedBorder = 'hasLeftRedBorder',\n    hasLeftGreyBorder = 'hasLeftGreyBorder',\n    isHighlighted = 'isHighlighted',\n    isSelected = 'isSelected',\n}\n\ntype PropsT<RowT, ColumnsExtraDataT> = {\n    className?: string;\n    columns: Array<TableColumnT<RowT, ColumnsExtraDataT> | null>;\n    columnsExtraData?: ColumnsExtraDataT;\n    selectedRowsSet?: Set<RowT>;\n    rows: Array<RowT>;\n    getRowMods?: (meta: TableRowMetaT, row: RowT) => Partial<Record<TableRowModsEnum, boolean>>;\n    onSelectRow?: (event: React.MouseEvent, row: RowT) => void;\n    isLoading: boolean;\n    testSelector?: string;\n    isUsedPrevRows: boolean;\n};\n\nconst DEFAULT_MODS = {\n    hasLeftGreenBorder: false,\n    hasLeftOrangeBorder: false,\n    hasLeftRedBorder: false,\n    hasLeftGreyBorder: false,\n    isHighlighted: false,\n    isSelected: false,\n};\n\nconst CLICK_SHIFT_LIMIT = 10;\n\nconst Table = <RowT, ColumnsExtraDataT>(props: PropsT<RowT, ColumnsExtraDataT>) => {\n    const {\n        columns,\n        rows,\n        className,\n        onSelectRow,\n        selectedRowsSet,\n        getRowMods,\n        columnsExtraData,\n        isLoading,\n        testSelector,\n        isUsedPrevRows,\n    } = props;\n\n    const mouseDownPositionRef = useRef<number>(0);\n\n    const [hoveredRow, onHoverRow] = React.useState<RowT | null>(null);\n\n    const filteredColumns = React.useMemo(() => {\n        return columns.filter(isNonNil);\n    }, [columns]);\n\n    const fullTestSelector = `${testSelector}_table`;\n\n    const isShowTable = !!rows.length;\n    const isShowTableLoader = isLoading && !isShowTable;\n    const isShowLineLoader = isLoading && isShowTable && !isUsedPrevRows;\n    const isShowOverlayLoader = isUsedPrevRows;\n\n    if (!isLoading && !isShowTable) {\n        return null;\n    }\n\n    return (\n        <div className={cs(cx('table'), className)}>\n            {isShowTable && (\n                <table data-test-selector={fullTestSelector}>\n                    <thead>\n                        <tr>\n                            {filteredColumns.map((column, columnIndex) => (\n                                <th\n                                    key={columnIndex}\n                                    className={column.headerClassName}\n                                    data-test-selector={`${fullTestSelector}_header_${column.testSelector}`}\n                                >\n                                    {column.renderHeader(columnsExtraData)}\n                                </th>\n                            ))}\n                        </tr>\n                        <tr>\n                            <td colSpan={filteredColumns.length}>\n                                <LineLoader isShow={isShowLineLoader} />\n                            </td>\n                        </tr>\n                    </thead>\n                    <tbody>\n                        {rows.map((row, rowIndex) => {\n                            const meta: TableRowMetaT = {\n                                isSelected: !!selectedRowsSet?.has(row),\n                                isHovered: hoveredRow === row,\n                            };\n\n                            const rowMods = getRowMods ? getRowMods(meta, row) : DEFAULT_MODS;\n\n                            return (\n                                <tr\n                                    key={rowIndex}\n                                    className={cx('row', {\n                                        'row--isSelectable': !!onSelectRow,\n                                        'row--hasLeftGreenBorder': rowMods.hasLeftGreenBorder,\n                                        'row--hasLeftRedBorder': rowMods.hasLeftRedBorder,\n                                        'row--hasLeftGreyBorder': rowMods.hasLeftGreyBorder,\n                                        'row--hasLeftOrangeBorder': rowMods.hasLeftOrangeBorder,\n                                        'row--isHighlighted': rowMods.isHighlighted,\n                                        'row--isSelected': rowMods.isSelected,\n                                    })}\n                                    onClick={(event): void => {\n                                        const isClick =\n                                            Math.abs(mouseDownPositionRef.current - event.clientX) < CLICK_SHIFT_LIMIT;\n                                        if (!isClick) {\n                                            return;\n                                        }\n\n                                        if (onSelectRow) {\n                                            onSelectRow(event, row);\n                                        }\n                                    }}\n                                    onMouseDown={(event) => {\n                                        mouseDownPositionRef.current = event.clientX;\n                                    }}\n                                    onMouseMove={() => {\n                                        if (row !== hoveredRow) {\n                                            onHoverRow(row);\n                                        }\n                                    }}\n                                    data-test-selector={`${fullTestSelector}_row_${rowIndex}`}\n                                >\n                                    {filteredColumns.map((column, columnIndex) => (\n                                        <td\n                                            key={columnIndex}\n                                            className={column.className}\n                                            data-test-selector={`${fullTestSelector}_cell_${column.testSelector}`}\n                                        >\n                                            {column.render(row, meta, rowIndex)}\n                                        </td>\n                                    ))}\n                                </tr>\n                            );\n                        })}\n                    </tbody>\n                </table>\n            )}\n            {isShowTableLoader && <TableSkeleton />}\n            {isShowOverlayLoader && <LoaderOverlay />}\n        </div>\n    );\n};\n\nexport default React.memo(Table) as typeof Table;\n","import classNames from 'classnames/bind';\nimport styles from './MapTooltip.scss';\nimport cs from 'classnames';\nimport * as React from 'react';\nimport isNil from 'lodash/isNil';\nimport MapPin, { MapPinThemeEnum } from 'common/components/maps/MapPin/MapPin';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    lat: number | undefined;\n    lng: number | undefined;\n    className?: string;\n    contentClassName?: string;\n    hasPaddings?: boolean;\n    theme?: MapPinThemeEnum;\n    children: () => React.ReactElement;\n    onClick?: (event: React.MouseEvent<HTMLDivElement>) => void;\n    isHover?: boolean;\n    onHover?: (isHover: boolean) => void;\n    footerNode?: React.ReactNode;\n    mapLayers?: {\n        regular: number;\n        hovered: number;\n    };\n};\n\nconst MapTooltip: React.FC<PropsT> = React.memo((props) => {\n    const { isHover, onHover, hasPaddings, lat, lng, theme, footerNode, className, mapLayers } = props;\n\n    if (isNil(lat) || isNil(lng)) {\n        return null;\n    }\n\n    return (\n        <div\n            data-map-layer={isHover ? mapLayers?.hovered : mapLayers?.regular}\n            className={cs(cx('map-tooltip-wrap'), className)}\n            onMouseMove={() => {\n                if (!isHover && onHover) {\n                    onHover(true);\n                }\n            }}\n            onMouseLeave={() => {\n                if (isHover && onHover) {\n                    onHover(false);\n                }\n            }}\n            onClick={props.onClick}\n        >\n            <MapPin className={props.contentClassName} hasPaddings={hasPaddings} theme={theme}>\n                {props.children()}\n            </MapPin>\n            {!!footerNode && <div className={cx('footer-wrap')}>{footerNode}</div>}\n        </div>\n    );\n});\n\nexport default MapTooltip;\n","import { FetchInvoicesPageQueryT, BrokerInvoiceT, DepreactedPagingStateT } from './models';\nimport { PageResponseT, PaginationStateT } from 'common/utils/pagination/models';\n\nexport const FETCH_INVOICES_PAGE_REQUEST = 'broker-admin/invoices/FETCH_INVOICES_PAGE_REQUEST';\nexport const FETCH_INVOICES_PAGE_REQUEST_BEGIN = 'broker-admin/invoices/FETCH_INVOICES_PAGE_REQUEST_BEGIN';\nexport const FETCH_INVOICES_PAGE_REQUEST_ERROR = 'broker-admin/invoices/FETCH_INVOICES_PAGE_REQUEST_ERROR';\nexport const FETCH_INVOICES_PAGE_REQUEST_SUCCESS = 'broker-admin/invoices/FETCH_INVOICES_PAGE_REQUEST_SUCCESS';\nexport const RESET_INVOICES = 'broker-admin/invoices/RESET_INVOICES';\n\nexport type InvoicesStateT = PaginationStateT<BrokerInvoiceT, FetchInvoicesPageQueryT> & {\n    pagingState: DepreactedPagingStateT | null;\n};\n\nexport type FetchInvoicesPageActionT = {\n    type: typeof FETCH_INVOICES_PAGE_REQUEST;\n    pageNumber: PageNumberT;\n    query: FetchInvoicesPageQueryT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchInvoicesPageBeginActionT = {\n    type: typeof FETCH_INVOICES_PAGE_REQUEST_BEGIN;\n    query: FetchInvoicesPageQueryT;\n    pageNumber: PageNumberT;\n};\n\nexport type FetchInvoicesPageSuccessActionT = {\n    type: typeof FETCH_INVOICES_PAGE_REQUEST_SUCCESS;\n    query: FetchInvoicesPageQueryT;\n    pageResponse: PageResponseT<BrokerInvoiceT> | null;\n    pageNumber: PageNumberT;\n    pagingState: DepreactedPagingStateT | null;\n};\n\nexport type FetchInvoicesPageErrorActionT = {\n    type: typeof FETCH_INVOICES_PAGE_REQUEST_ERROR;\n    query: FetchInvoicesPageQueryT;\n    pageNumber: PageNumberT;\n    error: Error;\n};\n\nexport type ResetInvoicesActionT = {\n    type: typeof RESET_INVOICES;\n    mutationListOptions: MutationListOptionsT;\n};\n\nexport type InvoicesActionT =\n    | FetchInvoicesPageActionT\n    | FetchInvoicesPageBeginActionT\n    | FetchInvoicesPageSuccessActionT\n    | FetchInvoicesPageErrorActionT\n    | ResetInvoicesActionT;\n","// extracted by mini-css-extract-plugin\nexport default {\"overlay\":\"WarningFilterOptionsDropdown__overlay___zjzBF\"};","import React from 'react';\n\ntype PropsT = {\n    className?: string;\n    isDisabled?: boolean;\n    onOutsideClick: (event: MouseEvent) => void;\n    shouldHandleOutsidePress?: (event: MouseEvent) => boolean;\n};\n\nclass OutsideClickHandler extends React.PureComponent<PropsT> {\n    wrapperRef: React.RefObject<HTMLDivElement>;\n\n    constructor(props: any) {\n        super(props);\n\n        this.wrapperRef = React.createRef();\n    }\n\n    componentDidMount() {\n        document.addEventListener('mousedown', this.handleClickOutside);\n    }\n\n    componentWillUnmount() {\n        document.removeEventListener('mousedown', this.handleClickOutside);\n    }\n\n    handleClickOutside = (event: any) => {\n        const wrapperNode = this.wrapperRef?.current;\n        if (!wrapperNode) {\n            return;\n        }\n\n        if (!wrapperNode.contains(event.target)) {\n            if (this.props.isDisabled) {\n                return;\n            }\n\n            const { shouldHandleOutsidePress } = this.props;\n            if (shouldHandleOutsidePress && !shouldHandleOutsidePress(event)) {\n                return;\n            }\n\n            if (this.props.onOutsideClick) {\n                this.props.onOutsideClick(event);\n            }\n        }\n    };\n\n    render() {\n        const { className } = this.props;\n\n        return (\n            <div className={className} ref={this.wrapperRef}>\n                {this.props.children}\n            </div>\n        );\n    }\n}\n\nexport default OutsideClickHandler;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst CommentIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, strokeColor, ...rest } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" {...rest}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={fillColor}\n                    d=\"M16 13.877V4H4v9h11.123l.877.877zM14.5 11.5h-9V10h9v1.5zm0-2.25h-9v-1.5h9v1.5zm0-2.25h-9V5.5h9V7z\"\n                />\n                <path\n                    fill={strokeColor}\n                    d=\"M4 14.5h10.5l3 3L17.492 4c0-.825-.667-1.5-1.492-1.5H4c-.825 0-1.5.675-1.5 1.5v9c0 .825.675 1.5 1.5 1.5zM4 4h12v9.877L15.123 13H4V4zm1.5 6h9v1.5h-9V10zm0-2.25h9v1.5h-9v-1.5zm0-2.25h9V7h-9V5.5z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nCommentIcon.displayName = 'CommentIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.light,\n    strokeColor: StyleGuideColorsEnum.gray,\n};\n\nexport { storyProps };\nexport default CommentIcon;\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const trailersRefreshChannel = new ViewEventChannel<{}>();\n\nexport const trailerDetailsRefreshChannel = new ViewEventChannel<{}>();\n\nexport const trailersPaginationChannel = new ViewEventChannel<{\n    pageNumber: number;\n}>();\n","import * as React from 'react';\nimport { ErrorInfo } from 'react';\nimport { generateTraceId, logErrorWithTraceId } from 'common/utils/logger';\n\ntype PropsT = {};\n\ntype StateT = {\n    error: Error | null;\n    errorInfo: ErrorInfo | null;\n    traceId: TraceIdT | null;\n};\n\nclass ErrorBoundary extends React.Component<PropsT, StateT> {\n    constructor(props: PropsT) {\n        super(props);\n        this.state = { error: null, errorInfo: null, traceId: null };\n    }\n\n    static getDerivedStateFromError() {\n        return {\n            error: new Error('syntetic getDerivedStateFromError'),\n            errorInfo: null,\n            traceId: null,\n        };\n    }\n\n    componentDidCatch(error: Error, errorInfo: ErrorInfo): void {\n        const traceId = generateTraceId();\n\n        logErrorWithTraceId('ErrorBoundary componentDidCatch', traceId, error, errorInfo);\n\n        this.setState({\n            error,\n            errorInfo,\n            traceId,\n        });\n    }\n\n    render(): React.ReactNode {\n        const { children } = this.props;\n        const { error, errorInfo, traceId } = this.state;\n\n        if (error) {\n            return (\n                <div style={{ padding: 40 }}>\n                    <div>\n                        <h1>Something went wrong...</h1>\n                    </div>\n                    <br />\n                    <div>\n                        <div>\n                            <b>Trace ID:</b> {traceId}\n                        </div>\n                        <br />\n                        <div>\n                            <b>Error message:</b> {error.message}\n                        </div>\n                        <div>\n                            <b>Error info:</b> {errorInfo?.componentStack}\n                        </div>\n                    </div>\n                </div>\n            );\n        }\n\n        return children;\n    }\n}\n\nexport default ErrorBoundary;\n","export enum FieldsEnum {\n    truckId = 'truckId',\n    trailerId = 'trailerId',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.truckId]: TruckIdT | null;\n    [FieldsEnum.trailerId]: TrailerIdT | null;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import { FetchSpotRequestsPageQueryT, SpotRequestT } from './models';\n\nimport { PageResponseT, PaginationStateT } from 'common/utils/pagination/models';\n\nexport const FETCH_SPOT_REQUESTS_PAGE_REQUEST = 'broker-admin/spot-requests/FETCH_SPOT_REQUESTS_PAGE_REQUEST';\nexport const FETCH_SPOT_REQUESTS_PAGE_REQUEST_BEGIN =\n    'broker-admin/spot-requests/FETCH_SPOT_REQUESTS_PAGE_REQUEST_BEGIN';\nexport const FETCH_SPOT_REQUESTS_PAGE_REQUEST_ERROR =\n    'broker-admin/spot-requests/FETCH_SPOT_REQUESTS_PAGE_REQUEST_ERROR';\nexport const FETCH_SPOT_REQUESTS_PAGE_REQUEST_SUCCESS =\n    'broker-admin/spot-requests/FETCH_SPOT_REQUESTS_PAGE_REQUEST_SUCCESS';\n\nexport const RESET_SPOT_REQUESTS = 'broker-admin/spot-requests/RESET_SPOT_REQUESTS';\n\nexport type SpotRequestsStateT = PaginationStateT<SpotRequestT, FetchSpotRequestsPageQueryT>;\n\nexport type FetchSpotRequestsPageActionT = {\n    type: typeof FETCH_SPOT_REQUESTS_PAGE_REQUEST;\n    pageNumber: PageNumberT;\n    query: FetchSpotRequestsPageQueryT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchSpotRequestsPageBeginActionT = {\n    type: typeof FETCH_SPOT_REQUESTS_PAGE_REQUEST_BEGIN;\n    pageNumber: PageNumberT;\n    query: FetchSpotRequestsPageQueryT;\n};\n\nexport type FetchSpotRequestsPageSuccessActionT = {\n    type: typeof FETCH_SPOT_REQUESTS_PAGE_REQUEST_SUCCESS;\n    pageNumber: PageNumberT;\n    pageResponse: PageResponseT<SpotRequestT> | null;\n    query: FetchSpotRequestsPageQueryT;\n};\n\nexport type FetchSpotRequestsPageErrorActionT = {\n    type: typeof FETCH_SPOT_REQUESTS_PAGE_REQUEST_ERROR;\n    query: FetchSpotRequestsPageQueryT;\n    pageNumber: PageNumberT;\n    error: Error;\n};\n\nexport type ResetSpotRequestsActionT = {\n    type: typeof RESET_SPOT_REQUESTS;\n    mutationListOptions: MutationListOptionsT;\n};\n\nexport type SpotRequestsActionT =\n    | FetchSpotRequestsPageActionT\n    | FetchSpotRequestsPageBeginActionT\n    | FetchSpotRequestsPageSuccessActionT\n    | FetchSpotRequestsPageErrorActionT\n    | ResetSpotRequestsActionT;\n","import * as React from 'react';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { ApiRuleOperatorT, ApiRuleTargetT, ApiRuleValueT } from 'common/utils/api/models';\nimport PriceRuleTargetLabel from 'broker-admin/components/PriceRuleTargetLabel/PriceRuleTargetLabel';\nimport isNumber from 'lodash/isNumber';\n\ntype PropsT = {\n    ruleTarget: ApiRuleTargetT | null | undefined;\n    ruleOperator: ApiRuleOperatorT | null | undefined;\n    ruleValue: ApiRuleValueT | null | undefined;\n};\n\nconst PriceRuleTargetPill: React.FC<PropsT> = React.memo((props) => {\n    const { ruleTarget, ruleOperator, ruleValue } = props;\n\n    let theme = PillLabelThemeEnum.slate;\n    if (ruleOperator === 'PERCENTS') {\n        theme = isNumber(ruleValue) && ruleValue > 0 ? PillLabelThemeEnum.orange : PillLabelThemeEnum.brandAccent;\n    }\n\n    return (\n        <PillLabel theme={theme} testSelector=\"rule-target-pill\" isSymmetrical>\n            <PriceRuleTargetLabel ruleTarget={ruleTarget} ruleOperator={ruleOperator} ruleValue={ruleValue} />\n        </PillLabel>\n    );\n});\n\nexport default PriceRuleTargetPill;\n","import * as React from 'react';\nimport { useEffect } from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './NotificationsBarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport NotificationLayout from 'common/components/notifications/NotificationsBarContent/NotificationLayout/NotificationLayout';\nimport { AnyNotificationT } from 'common/store/notifications/models';\nimport { NotificationLinkFactoryT, NotificationRendererT, NotificationViewT } from './models';\nimport {\n    fetchNotificationsPage,\n    fetchUnreadNotifications,\n    markAsRead,\n    resetNotificationPages,\n} from 'common/store/notifications/actions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectCurrentPageNumber,\n    selectMarkAsReadRequest,\n    selectNotificationsById,\n    selectNotificationsPages,\n    selectNotificationsTotal,\n} from 'common/store/notifications/selectors';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { useIsScrollable } from './useIsScrollable';\nimport InfiniteScroll from 'react-infinite-scroll-component';\nimport flatten from 'lodash/flatten';\nimport groupBy from 'lodash/groupBy';\nimport { isNonNil } from 'common/utils';\nimport { formatHumanReadableDate, getDateFromISO } from 'common/utils/time';\nimport SideBarMessage, {\n    SideBarMessageEnum,\n} from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarMessage/SideBarMessage';\nimport { renderCommonNotification, renderUnknownNotification, renderUnknownNotificationText } from './utils';\nimport history from 'common/utils/history';\nimport ControlLoaderWithShadow from 'common/components/ControlLoaderWithShadow/ControlLoaderWithShadow';\nimport SideBarLayoutContext from 'common/layouts/LeftMenuLayout/SideBarLayout/contexts/side-bar-layout-context';\nimport getScrollbarWidth from 'common/utils/get-scroll-bar-width';\nimport { NotificationTextRendererT } from 'common/components/toasts/NotificationToastsManager/models';\nimport NotificationCardHead from './NotificationCardHead/NotificationCardHead';\nimport NotificationCardFooter from './NotificationCardFooter/NotificationCardFooter';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    renderNotificationText: NotificationTextRendererT | null;\n    renderNotification: NotificationRendererT | null;\n    getNotificationLink: NotificationLinkFactoryT | null;\n};\n\ntype NotificationDataT = [AnyNotificationT, NotificationViewT, React.ReactNode];\n\nconst NotificationsBarContent: React.FC<PropsT> = React.memo((props) => {\n    const { renderNotificationText, renderNotification, getNotificationLink } = props;\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchNotificationsPage(0, {}, { isForceUpdate: true }));\n        dispatch(fetchUnreadNotifications());\n\n        return () => {\n            dispatch(resetNotificationPages());\n        };\n    }, [dispatch]);\n\n    const pages = useSelector(selectNotificationsPages);\n    const markAsReadRequest = useSelector(selectMarkAsReadRequest);\n\n    const notificationsById = useSelector(selectNotificationsById);\n\n    const currentPageNumber = useSelector(selectCurrentPageNumber);\n    const currentPage = pages[currentPageNumber];\n\n    const total = useSelector(selectNotificationsTotal);\n    const hasNextPage = total?.pageCount ? total.pageCount - 1 > currentPageNumber : false;\n\n    const isLoading =\n        (!currentPage?.requestStatus?.ok && !currentPage?.requestStatus?.error) || markAsReadRequest.loading;\n\n    const fetchNextPage = async () => {\n        if (!hasNextPage) {\n            return;\n        }\n\n        dispatch(fetchNotificationsPage(currentPageNumber + 1, {}, { isForceUpdate: true }));\n    };\n\n    const [isScrollable, ref, node] = useIsScrollable([pages]);\n\n    useEffect(() => {\n        if (!node || isLoading) return;\n\n        if (!isScrollable) {\n            fetchNextPage();\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isLoading, isScrollable, node, currentPage]);\n\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const pageNotificationIds = pages.map((page, pageIndex) => {\n        return page.ids;\n    });\n\n    const allNotificationsIds = flatten(pageNotificationIds).filter(isNonNil);\n\n    const isEmpty = total?.pageCount === 0 && total?.elementCount === 0;\n\n    const context = React.useContext(SideBarLayoutContext);\n\n    React.useEffect(() => {\n        const scrollBarWidth = getScrollbarWidth(node);\n\n        if (context.scrollBarWidth) {\n            context.scrollBarWidth.setValue(scrollBarWidth);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [node, allNotificationsIds]);\n\n    const notificationData: Array<NotificationDataT> = React.useMemo(() => {\n        return allNotificationsIds\n            .map((id) => {\n                const notification = notificationsById[id];\n                if (!notification) {\n                    return null;\n                }\n\n                const notificationView: NotificationViewT =\n                    renderCommonNotification(notification) ||\n                    renderNotification?.(notification) ||\n                    renderUnknownNotification(notification);\n\n                const notificationText: React.ReactNode =\n                    renderNotificationText?.(notification) || renderUnknownNotificationText(notification);\n\n                const data: NotificationDataT = [notification, notificationView, notificationText];\n\n                return data;\n            })\n            .filter(isNonNil);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [allNotificationsIds, notificationsById]);\n\n    const groupedNotifications = React.useMemo(() => {\n        const byDate = groupBy(notificationData, ([notification]) => getDateFromISO(notification.timestamp));\n        return Object.entries(byDate).map(([date, items]) => ({ date, items }));\n    }, [notificationData]);\n\n    return (\n        <div id=\"scrollableDiv\" className={cx('inner')} ref={ref}>\n            {isEmpty && (\n                <div className={cx('message-wrap')}>\n                    <SideBarMessage\n                        iconType={SideBarMessageEnum.empty}\n                        title={t('common:notification-side-bar.empty-message.title')}\n                    />\n                </div>\n            )}\n            <InfiniteScroll\n                dataLength={allNotificationsIds.length}\n                next={() => {\n                    fetchNextPage();\n                }}\n                className={cx('notifications')}\n                hasMore={hasNextPage}\n                loader={null}\n                scrollableTarget=\"scrollableDiv\"\n            >\n                {groupedNotifications.map(({ date, items }) => (\n                    <div key={date} className={cx('date-group')}>\n                        <div className={cx('date-group__title')}>{formatHumanReadableDate(t, date)}</div>\n                        <div className={cx('date-group__container')}>\n                            {items.map(([notification, notificationView, notificationText]) => (\n                                <NotificationLayout\n                                    className={cx('date-group__item')}\n                                    key={notification.id}\n                                    {...notificationView.body}\n                                    headerNode={\n                                        notificationView.header ? (\n                                            <NotificationCardHead {...notificationView.header} />\n                                        ) : null\n                                    }\n                                    footerNode={\n                                        notificationView.footer ? (\n                                            <NotificationCardFooter {...notificationView.footer} />\n                                        ) : null\n                                    }\n                                    notification={notification}\n                                    onClick={() => {\n                                        const link: ReturnType<NotificationLinkFactoryT> =\n                                            getNotificationLink?.(notification) || null;\n                                        if (link) {\n                                            history.push(link);\n                                        }\n\n                                        if (!notification.readAlready && notification.id) {\n                                            dispatch(markAsRead([notification.id]));\n                                        }\n                                    }}\n                                    onMarkAsRead={() => {\n                                        if (!notification.readAlready && notification.id) {\n                                            dispatch(markAsRead([notification.id]));\n                                        }\n                                    }}\n                                >\n                                    {notificationText}\n                                </NotificationLayout>\n                            ))}\n                        </div>\n                    </div>\n                ))}\n            </InfiniteScroll>\n            {isLoading && (\n                <div className={cx('loader')}>\n                    <ControlLoaderWithShadow fillColor={StyleGuideColorsEnum.light} />\n                </div>\n            )}\n            {!hasNextPage && currentPageNumber > 0 && currentPage?.requestStatus?.ok && (\n                <SideBarMessage\n                    className={cx('message')}\n                    iconType={SideBarMessageEnum.done}\n                    title={t('common:notification-side-bar.done-message.title')}\n                    description={t('common:notification-side-bar.done-message.description')}\n                />\n            )}\n        </div>\n    );\n});\n\nexport default NotificationsBarContent;\n","import * as React from 'react';\nimport { useMemo } from 'react';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\n\nimport styles from './TabTourDetails.scss';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport CarrierIcon from 'common/icons/CarrierIcon';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport TruckIcon from 'common/icons/TruckIcon';\nimport AssetLinkFormatter from 'design-system/components/InfoTable/formatters/AssetLinkFormatter/AssetLinkFormatter';\nimport AssetLabelFormatter from 'design-system/components/InfoTable/formatters/AssetLabelFormatter/AssetLabelFormatter';\nimport TrailerIcon from 'common/icons/TrailerIcon';\nimport { BrokerOrderDetailsT } from 'broker-admin/store/broker-order-details/models';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport {\n    ApiBrokerOrderWaypointT,\n    ApiStopTypeT,\n    ApiTransportationOrderFullT,\n    PartnerTypeEnum,\n    StopTypeEnum,\n} from 'common/utils/api/models';\nimport { logWarning } from 'common/utils/logger';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport DriverIcon from 'common/icons/DriverIcon';\nimport TeamDrive2Icon from 'common/icons/TeamDrive2Icon';\nimport RadarIcon from 'common/icons/RadarIcon';\nimport WarningTextFormatter from 'design-system/components/InfoTable/formatters/WarningTextFormatter/WarningTextFormatter';\nimport { checkIsInDateRange, formatDate, formatTimeInterval } from 'common/utils/time';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport NumberIcon from 'common/icons/NumberIcon';\nimport LocationLabel, { LocationLabelAddressFormatT } from 'common/components/LocationLabel/LocationLabel';\nimport SimpleDriverFormatter from 'design-system/components/InfoTable/formatters/SimpleDriverFormatter/SimpleDriverFormatter';\nimport AsyncSpotRequestDetailsLinkFormatter from 'broker-admin/components/InfoTable/formatters/AsyncSpotRequestDetailsLinkFormatter/AsyncSpotRequestDetailsLinkFormatter';\nimport { BrokerSidebarsTypeEnum } from 'broker-admin/layouts/SideBars/constants';\nimport AsyncSpotRequestDetailsStatusFormatter from 'broker-admin/components/InfoTable/formatters/AsyncSpotRequestDetailsStatusFormatter/AsyncSpotRequestDetailsStatusFormatter';\nimport DriverWrongCheckPointPill from 'common/components/pills/DriverWrongCheckPointPill/DriverWrongCheckPointPill';\nimport TrailerPickUpIcon from 'common/icons/TrailerPickUpIcon';\nimport LinkDropOffIcon from 'common/icons/LinkDropOffIcon';\nimport TruckPickUpIcon from 'common/icons/TruckPickUpIcon';\nimport TruckDropOffIcon from 'common/icons/TruckDropOffIcon';\nimport TrailerDropOffIcon from 'common/icons/TrailerDropOffIcon';\nimport { TFunction } from 'i18next';\nimport LinkPickUpIcon from 'common/icons/LinkPickUpIcon';\nimport { findTourActualTransportOrders } from 'broker-admin/store/broker-order-details/utils/find-actual-transport-order';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport TimeWindowIcon from 'common/icons/TimeWindowIcon';\nimport AttentionTextFormatter from 'design-system/components/InfoTable/formatters/AttentionTextFormatter/AttentionTextFormatter';\nimport { checkBrokerAppointmentStatus } from 'common/utils/broker-appointment';\nimport BoatIcon from 'common/icons/BoatIcon';\nimport ContactBadgeIcon from 'common/icons/ContactBadgeIcon';\nimport TransparentTriggerWithTooltip from 'design-system/components/ExpandTrigger/TransparentTriggerWithTooltip';\n\nexport type PropsT = {\n    tour: BrokerOrderDetailsT['tours'][number] | null | undefined;\n    transportationOrders: Array<ApiTransportationOrderFullT> | null | undefined;\n    className?: string;\n    onStartEditStopContact?: (waypoint: ApiBrokerOrderWaypointT) => void;\n};\n\nconst cx = classNames.bind(styles);\n\nconst detailedWaypointStopTypeSet = new Set<ApiStopTypeT>([StopTypeEnum.pickupDeliveryShipment]);\n\nconst renderWaypointName = (t: TFunction, waypoint: ApiBrokerOrderWaypointT | null | undefined) => {\n    if (!waypoint) {\n        return null;\n    }\n\n    switch (waypoint.type) {\n        case StopTypeEnum.pickupTrailer: {\n            return t('common:waypoint-details.by-type.hook-trailer');\n        }\n        case StopTypeEnum.pickupTruck: {\n            return t('common:waypoint-details.by-type.initial-truck');\n        }\n        case StopTypeEnum.pickupRoadTrain: {\n            return t('common:waypoint-details.by-type.initial-truck-and-trailer');\n        }\n        case StopTypeEnum.dropTrailer: {\n            return t('common:waypoint-details.by-type.drop-trailer');\n        }\n        case StopTypeEnum.dropTruck: {\n            return t('common:waypoint-details.by-type.drop-truck');\n        }\n        case StopTypeEnum.dropRoadTrain: {\n            return t('common:waypoint-details.by-type.drop-truck-and-trailer');\n        }\n        case StopTypeEnum.ferryOnboard: {\n            return t('common:waypoint-details.columns.ferry-onboard');\n        }\n        case StopTypeEnum.ferryDisembark: {\n            return t('common:waypoint-details.columns.ferry-disembark');\n        }\n        case StopTypeEnum.driveThrough: {\n            return t('common:waypoint-details.by-type.drive-through', {\n                number: (waypoint?.index || 0) + 1,\n            });\n        }\n        case StopTypeEnum.dropAndHook:\n        case StopTypeEnum.pickupDeliveryShipment:\n        default: {\n            return t('common:waypoint-details.by-type.pickup-delivery', {\n                number: (waypoint?.index || 0) + 1,\n            });\n        }\n    }\n};\n\nconst renderWaypointStopIcon = (waypoint: ApiBrokerOrderWaypointT | null | undefined) => {\n    if (!waypoint) {\n        return null;\n    }\n\n    switch (waypoint.type) {\n        case StopTypeEnum.pickupTrailer: {\n            return (\n                <TrailerPickUpIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                    fillColor={StyleGuideColorsEnum.light}\n                />\n            );\n        }\n        case StopTypeEnum.pickupTruck: {\n            return (\n                <TruckPickUpIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                    fillColor={StyleGuideColorsEnum.light}\n                />\n            );\n        }\n        case StopTypeEnum.pickupRoadTrain: {\n            return <LinkPickUpIcon strokeColor={StyleGuideColorsEnum.gray} />;\n        }\n        case StopTypeEnum.dropTrailer: {\n            return (\n                <TrailerDropOffIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                    fillColor={StyleGuideColorsEnum.light}\n                />\n            );\n        }\n        case StopTypeEnum.dropTruck: {\n            return (\n                <TruckDropOffIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                    fillColor={StyleGuideColorsEnum.light}\n                />\n            );\n        }\n        case StopTypeEnum.dropRoadTrain: {\n            return <LinkDropOffIcon strokeColor={StyleGuideColorsEnum.gray} />;\n        }\n        case StopTypeEnum.ferryOnboard:\n        case StopTypeEnum.ferryDisembark: {\n            return (\n                <BoatIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                    fillColor={StyleGuideColorsEnum.light}\n                />\n            );\n        }\n        case StopTypeEnum.driveThrough: {\n            return <NumberIcon number={(waypoint?.index || 0) + 1} fillColor={StyleGuideColorsEnum.gray} />;\n        }\n        case StopTypeEnum.dropAndHook: {\n            return <NumberIcon number={(waypoint?.index || 0) + 1} fillColor={StyleGuideColorsEnum.gray} />;\n        }\n        case StopTypeEnum.pickupDeliveryShipment:\n        default: {\n            return <NumberIcon number={(waypoint?.index || 0) + 1} fillColor={StyleGuideColorsEnum.charcoal} />;\n        }\n    }\n};\n\nconst renderWaypointLocationAddressFormat = (\n    waypoint: ApiBrokerOrderWaypointT | null | undefined,\n): LocationLabelAddressFormatT => {\n    if (!waypoint) {\n        return 's1_s2_zip_city_country';\n    }\n\n    switch (waypoint.type) {\n        case StopTypeEnum.pickupTrailer:\n        case StopTypeEnum.pickupTruck:\n        case StopTypeEnum.pickupRoadTrain: {\n            return 'pickup_asset_s1_s2_zip_city_country';\n        }\n        case StopTypeEnum.dropTrailer:\n        case StopTypeEnum.dropTruck:\n        case StopTypeEnum.dropRoadTrain: {\n            return 'dropoff_asset_s1_s2_zip_city_country';\n        }\n        default: {\n            return 's1_s2_zip_city_country';\n        }\n    }\n};\n\nconst TabTourDetails: React.FC<PropsT> = React.memo((props) => {\n    const { tour, transportationOrders, className, onStartEditStopContact } = props;\n\n    const { t } = useTranslation();\n\n    const tourId = tour?.id || null;\n\n    const { truckTransportOrder, trailerTransportOrder, carrierTransportOrder } = findTourActualTransportOrders(\n        transportationOrders,\n        tourId,\n    );\n\n    const truck = truckTransportOrder?.truck || null;\n    const trailer = trailerTransportOrder?.trailer || null;\n    const carrier = carrierTransportOrder?.carrier || null;\n    const truckCarrier = truckTransportOrder?.carrier || null;\n    const trailerCarrier = trailerTransportOrder?.carrier || null;\n    const waypoints = tour?.waypoints || [];\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const handleOpenTrailerDetails = () => {\n        if (!trailer?.id || !trailerCarrier?.id) {\n            logWarning('failed to open trailer details, empty firstTrailer');\n            return;\n        }\n\n        openLeftSidebar(\n            {\n                type: CommonSidebarsTypeEnum.trailerDetails,\n                trailerId: trailer.id,\n                partnerId: trailerCarrier.id,\n            },\n            {\n                isForceShowBackAction: true,\n            },\n        );\n    };\n\n    const handleOpenSpotRequestDetails = (spotRequestId: SpotRequestIdT | null) => {\n        if (!spotRequestId) {\n            logWarning('failed to open spot details, empty spotRequestId');\n            return;\n        }\n\n        openLeftSidebar(\n            {\n                type: BrokerSidebarsTypeEnum.spotRequestDetails,\n                id: spotRequestId,\n            },\n            {\n                isForceShowBackAction: true,\n            },\n        );\n    };\n\n    const handleOpenTruckDetails = () => {\n        if (!truck?.id || !truckCarrier?.id) {\n            logWarning('failed to open trailer details, empty firstTruck');\n            return;\n        }\n\n        openLeftSidebar(\n            {\n                type: CommonSidebarsTypeEnum.truckDetails,\n                truckId: truck.id,\n                partnerId: truckCarrier.id,\n            },\n            {\n                isForceShowBackAction: true,\n            },\n        );\n    };\n\n    const spotDetails: Array<InfoTableRowT | null> = [\n        tour?.spotId\n            ? {\n                  icon: <RadarIcon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.slate} />,\n                  name: t('broker-order-details.tour-details.columns.spot-request'),\n                  value: (\n                      <AsyncSpotRequestDetailsLinkFormatter\n                          spotRequestId={tour?.spotId || null}\n                          onOpenSpotRequestDetails={handleOpenSpotRequestDetails}\n                      />\n                  ),\n                  rightNode: <AsyncSpotRequestDetailsStatusFormatter spotRequestId={tour?.spotId || null} />,\n                  valueMods: {\n                      emptyPlaceholder: t('common:info-table.placeholders.carrier-not-assigned'),\n                      isBold: true,\n                  },\n              }\n            : null,\n    ];\n\n    const brokerWindowAppointmentWarning = (\n        <Tooltip\n            position={TooltipPositionEnum.topLeft}\n            theme={TooltipThemeEnum.black}\n            tooltipNode={\n                <TooltipContent theme={TooltipContentThemeEnum.black} width={150}>\n                    {t('broker-orders.details.broke-window-appointment-warning')}\n                </TooltipContent>\n            }\n        >\n            {(isShow, childrenClassName) => (\n                <TimeWindowIcon\n                    className={childrenClassName}\n                    fillColor={StyleGuideColorsEnum.transparent}\n                    strokeColor={StyleGuideColorsEnum.orange}\n                />\n            )}\n        </Tooltip>\n    );\n\n    const getWaypointDetailRows = (waypoint: ApiBrokerOrderWaypointT): Array<InfoTableRowT | null> => {\n        const driverRows: Array<InfoTableRowT> = [\n            {\n                icon: null,\n                name: t('common:waypoint-details.columns.driver-arriver-at'),\n                value: waypoint?.driverArrivedTimeStamp ? (\n                    <WarningTextFormatter\n                        isActive={checkIsInDateRange(\n                            waypoint?.correctedDateTimeFrom || waypoint?.originalDateTimeFrom,\n                            waypoint?.correctedDateTimeTo || waypoint?.originalDateTimeTo,\n                            waypoint?.driverArrivedTimeStamp,\n                        )}\n                    >\n                        {formatDate('DD MMM YYYY, HH:mm', waypoint?.driverArrivedTimeStamp)}\n                    </WarningTextFormatter>\n                ) : null,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.driver-not-arrived'), isBold: true },\n                testSelector: 'contact-company-name',\n                hasBottomBorder: true,\n                rightNode: waypoint?.driverArrivedFalse ? <DriverWrongCheckPointPill /> : null,\n            },\n            {\n                icon: null,\n                name: t('common:waypoint-details.columns.driver-left-at'),\n                value: waypoint?.driverLeftTimeStamp ? (\n                    <WarningTextFormatter\n                        isActive={checkIsInDateRange(\n                            waypoint?.correctedDateTimeFrom || waypoint?.originalDateTimeFrom,\n                            waypoint?.correctedDateTimeTo || waypoint?.originalDateTimeTo,\n                            waypoint?.driverLeftTimeStamp,\n                        )}\n                    >\n                        {formatDate('DD MMM YYYY, HH:mm', waypoint?.driverLeftTimeStamp)}\n                    </WarningTextFormatter>\n                ) : null,\n                valueMods: {\n                    emptyPlaceholder: waypoint?.driverArrivedTimeStamp\n                        ? t('common:info-table.placeholders.driver-not-leave')\n                        : t('common:info-table.placeholders.driver-not-arrived'),\n                    isBold: true,\n                },\n                testSelector: 'contact-company-name',\n                rightNode: waypoint?.driverLeftFalse ? <DriverWrongCheckPointPill /> : null,\n            },\n        ];\n\n        const isDetailedWaypoint = detailedWaypointStopTypeSet.has(waypoint?.type);\n        if (!isDetailedWaypoint) {\n            return [\n                {\n                    icon: renderWaypointStopIcon(waypoint),\n                    name: renderWaypointName(t, waypoint),\n                    value: (\n                        <LocationLabel\n                            format={renderWaypointLocationAddressFormat(waypoint)}\n                            location={waypoint?.address}\n                        />\n                    ),\n                    valueMods: {\n                        emptyPlaceholder: t('common:info-table.placeholders.carrier-not-assigned'),\n                        isBold: true,\n                    },\n                    rows: [\n                        {\n                            icon: null,\n                            name: t('common:waypoint-details.columns.time-slot'),\n                            value: formatTimeInterval(\n                                waypoint?.correctedDateTimeFrom || waypoint?.originalDateTimeFrom,\n                                waypoint?.correctedDateTimeTo || waypoint?.originalDateTimeTo,\n                            ),\n                            valueMods: {\n                                emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                isBold: true,\n                            },\n                            hasBottomBorder: true,\n                        },\n                        ...driverRows,\n                    ],\n                },\n            ];\n        }\n\n        const brokerAppointmentStatus = checkBrokerAppointmentStatus({\n            shouldBrokerWindowAppointment: waypoint?.appointmentByBroker,\n            originalDateTimeFrom: waypoint?.originalDateTimeFrom,\n            originalDateTimeTo: waypoint?.originalDateTimeTo,\n            correctedDateTimeFrom: waypoint?.correctedDateTimeFrom,\n            correctedDateTimeTo: waypoint?.correctedDateTimeTo,\n        });\n\n        return [\n            {\n                icon: renderWaypointStopIcon(waypoint),\n                name: renderWaypointName(t, waypoint),\n                value: (\n                    <LocationLabel\n                        format={renderWaypointLocationAddressFormat(waypoint)}\n                        location={waypoint?.address}\n                    />\n                ),\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.carrier-not-assigned'), isBold: true },\n                rightNode: onStartEditStopContact ? (\n                    <TransparentTriggerWithTooltip\n                        tooltipContent={t('broker-order-details.tooltips.edit-contacts')}\n                        onClick={() => onStartEditStopContact(waypoint)}\n                        transparentTriggerProps={{\n                            spaces: 'xs',\n                            leftIcon: (\n                                <ContactBadgeIcon\n                                    fillColor={StyleGuideColorsEnum.light}\n                                    strokeColor={StyleGuideColorsEnum.slate}\n                                />\n                            ),\n                        }}\n                    />\n                ) : null,\n                rightNodeMods: { withoutPadding: true },\n                rows: [\n                    ...(brokerAppointmentStatus.shouldShowCorrectedDateTime\n                        ? [\n                              {\n                                  icon: null,\n                                  name: t('common:waypoint-details.columns.original-time-slot'),\n                                  value: formatTimeInterval(\n                                      waypoint?.originalDateTimeFrom,\n                                      waypoint?.originalDateTimeTo,\n                                  ),\n                                  valueMods: {\n                                      emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                      isBold: true,\n                                  },\n                                  hasBottomBorder: true,\n                              },\n                              {\n                                  icon: brokerAppointmentStatus.shouldBrokerWindowAppointment\n                                      ? brokerWindowAppointmentWarning\n                                      : null,\n                                  name: (\n                                      <AttentionTextFormatter\n                                          isActive={brokerAppointmentStatus.shouldBrokerWindowAppointment}\n                                      >\n                                          {t('common:waypoint-details.columns.corrected-time-slot')}\n                                      </AttentionTextFormatter>\n                                  ),\n                                  value: (\n                                      <AttentionTextFormatter\n                                          isActive={brokerAppointmentStatus.shouldBrokerWindowAppointment}\n                                      >\n                                          {formatTimeInterval(\n                                              waypoint?.correctedDateTimeFrom,\n                                              waypoint?.correctedDateTimeTo,\n                                          )}\n                                      </AttentionTextFormatter>\n                                  ),\n                                  valueMods: {\n                                      emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                      isBold: true,\n                                  },\n                                  hasBottomBorder: true,\n                              },\n                          ]\n                        : [\n                              {\n                                  icon: brokerAppointmentStatus.shouldBrokerWindowAppointment\n                                      ? brokerWindowAppointmentWarning\n                                      : null,\n                                  name: (\n                                      <AttentionTextFormatter\n                                          isActive={brokerAppointmentStatus.shouldBrokerWindowAppointment}\n                                      >\n                                          {t('common:waypoint-details.columns.time-slot')}\n                                      </AttentionTextFormatter>\n                                  ),\n                                  value: (\n                                      <AttentionTextFormatter\n                                          isActive={brokerAppointmentStatus.shouldBrokerWindowAppointment}\n                                      >\n                                          {formatTimeInterval(\n                                              waypoint?.correctedDateTimeFrom || waypoint?.originalDateTimeFrom,\n                                              waypoint?.correctedDateTimeTo || waypoint?.originalDateTimeTo,\n                                          )}\n                                      </AttentionTextFormatter>\n                                  ),\n                                  valueMods: {\n                                      emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                      isBold: true,\n                                  },\n                                  hasBottomBorder: true,\n                              },\n                          ]),\n                    ...driverRows,\n                    {\n                        icon: null,\n                        name: t('common:waypoint-details.columns.company-name'),\n                        value: waypoint?.contact?.companyName,\n                        valueMods: {\n                            emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                            isBold: true,\n                        },\n                        testSelector: 'contact-company-name',\n                        hasBottomBorder: true,\n                    },\n                    {\n                        icon: null,\n                        name: t('common:waypoint-details.columns.contact-name'),\n                        value: waypoint?.contact?.fullName,\n                        valueMods: {\n                            emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                            isBold: true,\n                        },\n                        hasBottomBorder: true,\n                    },\n                    {\n                        icon: null,\n                        name: t('common:waypoint-details.columns.contact-phone'),\n                        value: waypoint?.contact?.phone,\n                        valueMods: {\n                            emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                            isBold: true,\n                        },\n                        hasBottomBorder: true,\n                    },\n                    {\n                        icon: null,\n                        name: t('common:waypoint-details.columns.contact-email'),\n                        value: waypoint?.contact?.email,\n                        valueMods: {\n                            emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                            isBold: true,\n                        },\n                        hasBottomBorder: true,\n                    },\n                    {\n                        icon: null,\n                        name: t('common:waypoint-details.columns.comments'),\n                        value: waypoint?.contact?.comment,\n                        valueMods: {\n                            emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                            isBold: true,\n                        },\n                    },\n                ],\n            },\n        ];\n    };\n\n    const teamDrivers = useMemo(() => {\n        const shouldShowTeamDrivers = !!tour?.teamDrive;\n        if (!shouldShowTeamDrivers) {\n            return [];\n        }\n\n        const drivers = carrierTransportOrder?.drivers?.slice(1) || [];\n        return drivers?.length ? drivers : [null];\n    }, [tour, carrierTransportOrder]);\n\n    const carrierDetails: Array<InfoTableRowT | null> = [\n        {\n            icon: <CarrierIcon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.gray} />,\n            name: t('broker-order-details.tour-details.columns.carrier'),\n            value: carrier?.id ? (\n                <Link\n                    to={urlFactory.partnerDetails(PartnerTypeEnum.carrier, carrier.id)}\n                    className={cx('link')}\n                    theme={LinkThemeEnum.boldBrandDark}\n                >\n                    {carrier?.name}\n                </Link>\n            ) : null,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.carrier-not-assigned'), isBold: true },\n            rows: [\n                {\n                    icon: (\n                        <TruckIcon\n                            size={DEFAULT_ICON_SIZE}\n                            strokeColor={StyleGuideColorsEnum.gray}\n                            fillColor={StyleGuideColorsEnum.light}\n                        />\n                    ),\n                    name: t('broker-order-details.tour-details.columns.truck'),\n                    value: truck ? (\n                        <AssetLinkFormatter assetId={truck?.id} onOpenAssetDetails={handleOpenTruckDetails}>\n                            <AssetLabelFormatter model={truck?.dictTruckInfo?.model} plateNumber={truck?.plateNumber} />\n                        </AssetLinkFormatter>\n                    ) : null,\n                    valueMods: {\n                        emptyPlaceholder: t('common:info-table.placeholders.truck-not-assigned'),\n                        isBold: true,\n                    },\n                },\n                {\n                    icon: (\n                        <TrailerIcon\n                            size={DEFAULT_ICON_SIZE}\n                            strokeColor={StyleGuideColorsEnum.gray}\n                            fillColor={StyleGuideColorsEnum.light}\n                        />\n                    ),\n                    name: t('broker-order-details.tour-details.columns.trailer'),\n                    value: trailer ? (\n                        <AssetLinkFormatter assetId={trailer?.id} onOpenAssetDetails={handleOpenTrailerDetails}>\n                            <AssetLabelFormatter\n                                model={trailer?.dictTrailerInfo?.model}\n                                plateNumber={trailer?.plateNumber}\n                            />\n                        </AssetLinkFormatter>\n                    ) : null,\n                    valueMods: {\n                        emptyPlaceholder: t('common:info-table.placeholders.trailer-not-assigned'),\n                        isBold: true,\n                    },\n                },\n                {\n                    icon: <DriverIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.gray} />,\n                    name: t('broker-order-details.tour-details.columns.driver'),\n                    value: carrierTransportOrder?.drivers?.[0] ? (\n                        <SimpleDriverFormatter driver={carrierTransportOrder?.drivers?.[0]} />\n                    ) : null,\n                    valueMods: {\n                        emptyPlaceholder: t('common:info-table.placeholders.driver-not-assigned'),\n                        isBold: true,\n                    },\n                },\n                ...teamDrivers.map((driver) => {\n                    return {\n                        icon: <TeamDrive2Icon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.gray} />,\n                        name: t('broker-order-details.tour-details.columns.team-driver'),\n                        value: driver ? <SimpleDriverFormatter driver={driver} /> : null,\n                        valueMods: {\n                            emptyPlaceholder: t('common:info-table.placeholders.driver-not-assigned'),\n                            isBold: true,\n                        },\n                    };\n                }),\n            ],\n        },\n    ];\n\n    return (\n        <div className={cs(cx('content'), className)}>\n            <InfoTable shouldRenderIcons rows={carrierDetails} className={cx('table', 'table--carrier')} />\n            <InfoTable shouldRenderIcons rows={spotDetails} className={cx('table', 'table--spot')} />\n            {waypoints.map((waypoint, index) => {\n                return (\n                    <InfoTable\n                        key={`${index}-${waypoint.id}`}\n                        shouldRenderIcons\n                        rows={getWaypointDetailRows(waypoint)}\n                        className={cx('table', 'table--waypoint')}\n                    />\n                );\n            })}\n        </div>\n    );\n});\n\nexport default TabTourDetails;\n","// extracted by mini-css-extract-plugin\nexport default {\"status\":\"EditShipperContractLaneSidebarContent__status___Q3oNh\",\"fadeIn\":\"EditShipperContractLaneSidebarContent__fadeIn___DaMb3\",\"blinking\":\"EditShipperContractLaneSidebarContent__blinking___oTBvb\"};","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"PartnerSelectList__inner___eNNTv\",\"checkbox\":\"PartnerSelectList__checkbox___RJAYG\",\"checkbox-label\":\"PartnerSelectList__checkbox-label___vct18\",\"row\":\"PartnerSelectList__row___Fj1yh\",\"row--half-opacity\":\"PartnerSelectList__row--half-opacity___Cq4iP\",\"row__avatar\":\"PartnerSelectList__row__avatar___lvAFI\",\"row__text\":\"PartnerSelectList__row__text___nSH0m\",\"row__pills\":\"PartnerSelectList__row__pills___FRasI\",\"fadeIn\":\"PartnerSelectList__fadeIn___nMKnG\",\"blinking\":\"PartnerSelectList__blinking___qDRns\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './TypeCell.scss';\nimport { PartnerT } from 'broker-admin/store/partners/models';\nimport PartnerTypePill from 'common/components/pills/PartnerTypePill/PartnerTypePill';\n\ntype PropsT = {\n    partner: PartnerT;\n};\n\nconst cx = classNames.bind(styles);\n\nconst TypeCell: React.FC<PropsT> = React.memo((props) => {\n    const { partner } = props;\n\n    const { type } = partner;\n\n    return (\n        <div className={cx('type')}>\n            <PartnerTypePill type={type} />\n        </div>\n    );\n});\n\nexport default TypeCell;\n","// extracted by mini-css-extract-plugin\nexport default {\"tabs\":\"TabGroupWithDivider__tabs___mu6NU\",\"tabs--size-normal\":\"TabGroupWithDivider__tabs--size-normal___T_GDD\",\"tabs--size-small\":\"TabGroupWithDivider__tabs--size-small___E4hht\",\"fadeIn\":\"TabGroupWithDivider__fadeIn___VSjIF\",\"blinking\":\"TabGroupWithDivider__blinking___phwan\"};","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"FiltersSidebarContent__form___Knny6\",\"field--order-type\":\"FiltersSidebarContent__field--order-type___YMzCL\",\"field--dates\":\"FiltersSidebarContent__field--dates___ALgFQ\",\"field--trailer-type\":\"FiltersSidebarContent__field--trailer-type___g2vFt\",\"field--plate-number\":\"FiltersSidebarContent__field--plate-number___yuMj9\",\"field--driver\":\"FiltersSidebarContent__field--driver___SrB4S\",\"field--price\":\"FiltersSidebarContent__field--price___wc7_K\",\"field--min-price\":\"FiltersSidebarContent__field--min-price___KlYUK\",\"field--max-price\":\"FiltersSidebarContent__field--max-price___FFnLp\",\"time-picker\":\"FiltersSidebarContent__time-picker___gu2ob\",\"selected-filters\":\"FiltersSidebarContent__selected-filters___yWovP\",\"fadeIn\":\"FiltersSidebarContent__fadeIn___KVuBi\",\"blinking\":\"FiltersSidebarContent__blinking___w6GLe\"};","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst UpdateUserIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={fillColor}\n                    d=\"M8.53 12.25l.03.008A4.8 4.8 0 008.5 13c0 .525.075 1.027.218 1.5H4v-.488c0-.262.12-.502.308-.607A8.167 8.167 0 018.5 12.25c.023 0 .037 0 .06.008zM8.5 5.5a1.5 1.5 0 110 3 1.5 1.5 0 010-3z\"\n                />\n                <path\n                    fill={strokeColor}\n                    d=\"M14.5 9.25l.225 1.117c.3.113.57.27.81.473l1.088-.367.75 1.312-.856.75c.023.158.046.307.046.473 0 .165-.023.315-.046.472l.856.75-.75 1.297-1.088-.367c-.24.203-.51.36-.81.473L14.5 16.75H13l-.225-1.133c-.3-.112-.57-.27-.81-.472l-1.088.367-.75-1.297.855-.75c-.022-.158-.044-.307-.044-.473 0-.165.022-.315.044-.472l-.854-.75.75-1.297 1.087.367c.24-.203.51-.36.81-.473L13 9.25h1.5zm-6 1.5c.172 0 .338.008.503.023-.218.457-.368.96-.443 1.485-.023-.008-.037-.008-.06-.008a8.167 8.167 0 00-4.192 1.155c-.188.113-.308.353-.308.607v.488h4.718c.165.54.412 1.05.727 1.5H2.5v-1.988c0-.772.382-1.507 1.042-1.897A9.657 9.657 0 018.5 10.75zm5.25.75c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5 1.5-.675 1.5-1.5-.675-1.5-1.5-1.5zM8.5 4a3 3 0 110 6 3 3 0 110-6zm0 1.5C7.675 5.5 7 6.175 7 7s.675 1.5 1.5 1.5S10 7.825 10 7s-.675-1.5-1.5-1.5z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nUpdateUserIcon.displayName = 'UpdateUserIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default UpdateUserIcon;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Button, { ButtonPropsT } from 'common/components/Button/Button';\nimport { MS_IN_SEC } from 'common/utils/time';\nimport { copyToClipboard } from 'common/utils/clipboard';\n\nexport type PropsT = Omit<ButtonPropsT, 'children' | 'onClick'> & {\n    textForClipboard: string;\n    timeoutMs?: number;\n};\n\nconst defaultTimeoutMs = 2 * MS_IN_SEC;\n\nconst CopyTextButton: React.FC<PropsT> = React.memo((props) => {\n    const { textForClipboard, timeoutMs, ...restProps } = props;\n\n    const copyTimeoutIdRef = React.useRef<NodeJS.Timeout | null>(null);\n\n    const [isCopied, setIsCopied] = React.useState<boolean>(false);\n\n    const { t } = useTranslation();\n\n    return (\n        <Button\n            {...restProps}\n            onClick={() => {\n                if (copyTimeoutIdRef.current) {\n                    clearTimeout(copyTimeoutIdRef.current);\n                    copyTimeoutIdRef.current = null;\n                }\n\n                copyTimeoutIdRef.current = setTimeout(() => {\n                    setIsCopied(false);\n                }, timeoutMs || defaultTimeoutMs);\n\n                setIsCopied(true);\n\n                copyToClipboard(textForClipboard);\n            }}\n        >\n            {isCopied ? t('common:actions.copied') : t('common:actions.copy')}\n        </Button>\n    );\n});\n\nexport default CopyTextButton;\n","import { FieldsEnum, FormValuesT } from './constants';\n\nexport type FormDataT = {\n    reason: string;\n};\n\nconst prepareData = (formValues: FormValuesT): FormDataT => {\n    return {\n        reason: formValues[FieldsEnum.reason],\n    };\n};\n\nexport { prepareData };\n","import {\n    CLOSE_RFQ,\n    CHANGE_RFQ_REQUEST_BEGIN,\n    CHANGE_RFQ_REQUEST_ERROR,\n    CHANGE_RFQ_REQUEST_SUCCESS,\n    CloseRFQActionT,\n    ChangeRFQBeginActionT,\n    ChangeRFQErrorActionT,\n    ChangeRFQSuccessActionT,\n} from './types';\n\nexport const closeRFQ = (id: RFQIdT): CloseRFQActionT => ({\n    type: CLOSE_RFQ,\n    id,\n});\n\nexport const changeRFQBegin = (id: RFQIdT): ChangeRFQBeginActionT => ({\n    type: CHANGE_RFQ_REQUEST_BEGIN,\n    id,\n});\n\nexport const changeRFQSuccess = (id: RFQIdT): ChangeRFQSuccessActionT => ({\n    type: CHANGE_RFQ_REQUEST_SUCCESS,\n    id,\n});\n\nexport const changeRFQError = (id: RFQIdT, error: Error): ChangeRFQErrorActionT => ({\n    type: CHANGE_RFQ_REQUEST_ERROR,\n    error,\n    id,\n});\n","import { FieldsEnum, FormValuesT, RoutePointFieldsEnum, RoutePointFormValuesT } from './constants';\nimport { ApiActualOrderRequestT, OrderCreationReservePointTypeEnum } from 'common/utils/api/models';\nimport { ReserveQueryChangesT, ReserveQueryRoutePointChangesT, ReserveT } from 'common/store/order-creation/models';\nimport { prepareLocation } from 'common/utils/prepare-location';\nimport { AvailableChangesT } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/models';\n\nconst prepareApiActualOrderRequest = (values: FormValuesT, reserve: ReserveT): ApiActualOrderRequestT | null => {\n    const timeWindows: ApiActualOrderRequestT['timeWindows'] = [];\n\n    reserve.points.forEach((point, index) => {\n        const routePointFormValue = values[FieldsEnum.route]?.[index];\n\n        const timeWindow = routePointFormValue?.[RoutePointFieldsEnum.timeWindow];\n        if (timeWindow && point.type === OrderCreationReservePointTypeEnum.shipment) {\n            timeWindows.push({\n                id: point.id,\n                brokerWindow: routePointFormValue?.[RoutePointFieldsEnum.isBrokerTimeWindow],\n                from: timeWindow.start,\n                to: timeWindow.end,\n            });\n        }\n    });\n\n    return {\n        timeWindows,\n    };\n};\n\nconst prepareApiReserveRoutePointChanges = (\n    changes: Partial<RoutePointFormValuesT>,\n): ReserveQueryRoutePointChangesT => {\n    const apiRoutePointChanges: ReserveQueryRoutePointChangesT = {};\n\n    if (RoutePointFieldsEnum.isBrokerTimeWindow in changes) {\n        apiRoutePointChanges.isBrokerTimeWindow = changes[RoutePointFieldsEnum.isBrokerTimeWindow];\n    }\n\n    if (RoutePointFieldsEnum.timeWindow in changes) {\n        const timeWindow = changes[RoutePointFieldsEnum.timeWindow];\n\n        apiRoutePointChanges.timeWindowFrom = timeWindow?.start || null;\n        apiRoutePointChanges.timeWindowTo = timeWindow?.end || null;\n    }\n\n    if (RoutePointFieldsEnum.type in changes) {\n        apiRoutePointChanges.type = changes[RoutePointFieldsEnum.type];\n    }\n\n    if (RoutePointFieldsEnum.location in changes) {\n        apiRoutePointChanges.address = prepareLocation(changes[RoutePointFieldsEnum.location] || null);\n    }\n\n    if (RoutePointFieldsEnum.fakeId in changes) {\n        apiRoutePointChanges.addressAlias = changes[RoutePointFieldsEnum.fakeId];\n    }\n\n    return apiRoutePointChanges;\n};\n\nconst prepareApiReserveChangesAddRoutePoint = (\n    beforeFakeId: string,\n    routePointValues: Partial<RoutePointFormValuesT>,\n): ReserveQueryChangesT => {\n    return {\n        addRoutePoint: {\n            beforeAddressAlias: beforeFakeId,\n            changes: prepareApiReserveRoutePointChanges(routePointValues),\n        },\n    };\n};\n\nconst prepareApiReserveChangesDeleteRoutePoint = (fakeId: string): ReserveQueryChangesT => {\n    return {\n        deleteRoutePoint: {\n            addressAlias: fakeId,\n        },\n    };\n};\n\nconst prepareApiReserveChangesChangeRoutePoint = (\n    fakeId: string,\n    routePointValues: Partial<RoutePointFormValuesT>,\n): ReserveQueryChangesT => {\n    return {\n        routePointChange: {\n            addressAlias: fakeId,\n            changes: prepareApiReserveRoutePointChanges(routePointValues),\n        },\n    };\n};\n\nconst prepareApiReserveChanges = (changes: AvailableChangesT): ReserveQueryChangesT => {\n    let apiChanges: ReserveQueryChangesT = {};\n\n    if (FieldsEnum.shipper in changes) {\n        apiChanges = {\n            ...apiChanges,\n            shipper: changes[FieldsEnum.shipper],\n        };\n    }\n\n    if (FieldsEnum.trailerDictId in changes) {\n        apiChanges = {\n            ...apiChanges,\n            trailerDictId: changes[FieldsEnum.trailerDictId],\n        };\n    }\n\n    if (FieldsEnum.laneId in changes) {\n        apiChanges = {\n            ...apiChanges,\n            laneId: changes[FieldsEnum.laneId],\n        };\n    }\n\n    if (FieldsEnum.excludedCountries in changes) {\n        apiChanges = {\n            ...apiChanges,\n            excludedCountries: changes[FieldsEnum.excludedCountries],\n        };\n    }\n\n    if (FieldsEnum.route in changes) {\n        apiChanges = {\n            ...apiChanges,\n            // usage for only initialization!\n            fullRouteChange: changes[FieldsEnum.route]?.map((routePointChanges) => {\n                return prepareApiReserveRoutePointChanges(routePointChanges);\n            }),\n        };\n    }\n\n    return apiChanges;\n};\n\nexport {\n    prepareApiActualOrderRequest,\n    prepareApiReserveChanges,\n    prepareApiReserveChangesAddRoutePoint,\n    prepareApiReserveChangesDeleteRoutePoint,\n    prepareApiReserveChangesChangeRoutePoint,\n};\n","import React, { MouseEvent } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './DropdownMultipleInput.scss';\nimport Checkbox, { CheckboxPropsT } from 'design-system/components/Checkbox/Checkbox';\nimport { isNonNil } from 'common/utils';\nimport { DropdownOverlayPositionEnum } from '../constants';\nimport DropdownBaseLayout from '../base/DropdownBaseLayout/DropdownBaseLayout';\nimport DropdownBaseButtonTrigger from '../base/DropdownBaseButtonTrigger/DropdownBaseButtonTrigger';\nimport cs from 'classnames';\nimport {\n    checkIsSpecialOption,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\n\nconst cx = classNames.bind(styles);\n\nexport type RenderTriggerPropsT = {\n    isEmpty: boolean;\n    isPressed: boolean;\n    isDisabled: boolean;\n    hasChanges: boolean;\n    hasWarning: boolean;\n    hasError: boolean;\n    onClick: () => void;\n    onReset?: (event: MouseEvent<HTMLElement>) => void;\n    isShowClearControl: boolean;\n};\n\nexport type PropsT<OptionT, ValueT> = {\n    selectedValues: Array<ValueT>;\n    placeholder?: string;\n    isDisabled?: boolean;\n    isLoading?: boolean;\n    isInline?: boolean;\n    hasWarning?: boolean;\n    hasError?: boolean;\n    options: Array<OptionT | SpecialOptionEnum>;\n    onSelect: (values: Array<ValueT>) => void;\n    onBlur?: () => void;\n    onFocus?: () => void;\n    overlayPosition: DropdownOverlayPositionEnum;\n    renderTrigger?: (\n        props: RenderTriggerPropsT,\n        options: Array<OptionT>,\n        placeholder: string | undefined,\n    ) => React.ReactNode;\n    renderTriggerContent?: (options: Array<OptionT>, placeholder: string | undefined) => React.ReactNode;\n    renderOption: (option: OptionT) => React.ReactNode;\n    getOptionValue: (option: OptionT) => ValueT;\n    getCheckboxProps?: (option: OptionT, inex: number) => Partial<CheckboxPropsT>;\n    className?: string;\n    hasChanges?: boolean;\n    triggerClassName?: string;\n    overlayClassName?: string;\n    testSelector?: string;\n    onReset?: (event: MouseEvent<HTMLElement>) => void;\n    isNoWrapTrigger?: boolean;\n};\n\nconst DropdownMultipleInput = <OptionT, ValueT>(props: PropsT<OptionT, ValueT>): React.ReactElement => {\n    const {\n        selectedValues,\n        onSelect,\n        options,\n        renderTrigger,\n        renderTriggerContent,\n        renderOption,\n        getOptionValue,\n        isDisabled,\n        isLoading,\n        isInline,\n        hasWarning,\n        hasError,\n        isNoWrapTrigger,\n        overlayPosition,\n        className,\n        hasChanges,\n        triggerClassName,\n        overlayClassName,\n        onFocus,\n        onBlur,\n        testSelector,\n        onReset,\n        getCheckboxProps,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const placeholder = props.placeholder || t('common:common-components.any-select-input.placeholder');\n\n    const [isOpen, toggleOpen] = React.useState(false);\n\n    const handleOpen = (): void => {\n        if (isDisabled) {\n            return;\n        }\n        if (onFocus) {\n            onFocus();\n        }\n        toggleOpen(!isOpen);\n    };\n\n    const handleClose = (): void => {\n        if (onBlur) {\n            onBlur();\n        }\n        toggleOpen(false);\n    };\n\n    const handleOuterEvent = (): void => {\n        if (onBlur) {\n            onBlur();\n        }\n        handleClose();\n    };\n\n    const optionByValue = new Map<ValueT, OptionT>();\n    options.forEach((option) => {\n        if (checkIsSpecialOption(option)) {\n            return;\n        }\n\n        const value = getOptionValue(option);\n\n        optionByValue.set(value, option);\n    });\n\n    const selectedValuesSet = new Set<ValueT>(selectedValues);\n    const selectedOptions: Array<OptionT> = selectedValues.map((value) => optionByValue.get(value)).filter(isNonNil);\n\n    const handleChange = (value: ValueT): void => {\n        if (isDisabled) {\n            return;\n        }\n\n        const newSelectedValuesSet = new Set(selectedValuesSet);\n        const isAlreadySelected = newSelectedValuesSet.has(value);\n        if (isAlreadySelected) {\n            newSelectedValuesSet.delete(value);\n        } else {\n            newSelectedValuesSet.add(value);\n        }\n        onSelect([...newSelectedValuesSet]);\n    };\n\n    const hasValue = !!selectedValues?.length;\n\n    return (\n        <DropdownBaseLayout\n            isInline={isInline}\n            isOpen={isOpen}\n            className={className}\n            onClose={handleOuterEvent}\n            triggerNode={\n                renderTrigger ? (\n                    renderTrigger(\n                        {\n                            isEmpty: !selectedOptions.length,\n                            isPressed: isOpen,\n                            isDisabled: !!isDisabled,\n                            hasChanges: !!hasChanges,\n                            hasWarning: !!hasWarning,\n                            hasError: !!hasError,\n                            onClick: handleOpen,\n                            isShowClearControl: !!onReset && hasValue,\n                            onReset,\n                        },\n                        selectedOptions,\n                        placeholder,\n                    )\n                ) : (\n                    <DropdownBaseButtonTrigger\n                        isEmpty={!selectedOptions.length}\n                        isPressed={isOpen}\n                        isDisabled={isDisabled}\n                        hasChanges={hasChanges}\n                        hasWarning={hasWarning}\n                        hasError={hasError}\n                        isNoWrap={isNoWrapTrigger}\n                        renderRightIcon={() =>\n                            isLoading ? (\n                                <ControlLoaderIcon\n                                    fillColor={StyleGuideColorsEnum.brandAccent}\n                                    size={DEFAULT_ICON_SIZE}\n                                />\n                            ) : null\n                        }\n                        className={triggerClassName}\n                        testSelector={testSelector}\n                        onClick={handleOpen}\n                        isShowClearControl={!!onReset && hasValue}\n                        onReset={onReset}\n                    >\n                        {renderTriggerContent?.(selectedOptions, placeholder)}\n                    </DropdownBaseButtonTrigger>\n                )\n            }\n            overlayPosition={overlayPosition}\n            overlayClassName={cs(cx('overlay'), overlayClassName)}\n            overlayNode={\n                <>\n                    {options.map((option, index): React.ReactElement => {\n                        if (checkIsSpecialOption(option)) {\n                            return <div key={index} className={cx('separator')} />;\n                        }\n\n                        const value = getOptionValue(option);\n\n                        const isSelected = selectedValuesSet.has(value);\n\n                        return (\n                            <div key={index} className={cx('option')}>\n                                <Checkbox\n                                    isFullWidth\n                                    checked={isSelected}\n                                    className={cx('option__checkbox')}\n                                    testSelector={`${testSelector}_option_${index}`}\n                                    {...getCheckboxProps?.(option, index)}\n                                    label={<div className={cx('option__label')}>{renderOption(option)}</div>}\n                                    onChange={() => {\n                                        handleChange(value);\n                                    }}\n                                />\n                            </div>\n                        );\n                    })}\n                </>\n            }\n        />\n    );\n};\n\nexport default DropdownMultipleInput;\n","import * as React from 'react';\nimport { TransportOrderStatusEnum, ApiTransportOrderStatusT } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    status: ApiTransportOrderStatusT | null | undefined;\n};\n\nexport const TRANSPORT_ORDER_STATUS_T_MAP: Record<ApiTransportOrderStatusT, string> = {\n    [TransportOrderStatusEnum.assetsUnassigned]: 'transport-order-status.ASSETS_UNASSIGNED',\n    [TransportOrderStatusEnum.driverUnassigned]: 'transport-order-status.DRIVER_UNASSIGNED',\n    [TransportOrderStatusEnum.assigned]: 'transport-order-status.ASSIGNED',\n    [TransportOrderStatusEnum.inTransit]: 'transport-order-status.IN_TRANSIT',\n    [TransportOrderStatusEnum.done]: 'transport-order-status.DONE',\n    [TransportOrderStatusEnum.canceled]: 'transport-order-status.CANCELED',\n    [TransportOrderStatusEnum.declined]: 'transport-order-status.DECLINED',\n    [TransportOrderStatusEnum.unknown]: 'transport-order-status.UNKNOWN',\n};\n\nconst TransportOrderStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return null;\n    }\n\n    return t(TRANSPORT_ORDER_STATUS_T_MAP[status]);\n});\n\nexport default TransportOrderStatus;\n","import * as React from 'react';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport { useTranslation } from 'react-i18next';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\n\nexport enum TransportOrderTypeEnum {\n    all = 'all',\n    spot = 'spot',\n    contracted = 'contracted',\n}\n\ntype OptionT = {\n    id: TransportOrderTypeEnum;\n    label: React.ReactNode;\n};\n\nexport type PropsT = {\n    className?: string;\n    value: TransportOrderTypeEnum;\n    onSelect: (value: TransportOrderTypeEnum) => void;\n    testSelector?: string;\n};\n\nconst i18nTMap: Record<TransportOrderTypeEnum, string> = {\n    [TransportOrderTypeEnum.spot]: 'broker-orders.list.filters.transport-order-type-filter.spot',\n    [TransportOrderTypeEnum.contracted]: 'broker-orders.list.filters.transport-order-type-filter.contracted',\n    [TransportOrderTypeEnum.all]: 'broker-orders.list.filters.transport-order-type-filter.all',\n};\n\nconst TransportOrderTypeDropdown = (props: PropsT) => {\n    const { className, value, onSelect, testSelector } = props;\n\n    const { t } = useTranslation();\n\n    const options = React.useMemo((): Array<OptionT> => {\n        return [\n            {\n                id: TransportOrderTypeEnum.spot,\n                label: t(i18nTMap[TransportOrderTypeEnum.spot]),\n            },\n            {\n                id: TransportOrderTypeEnum.contracted,\n                label: t(i18nTMap[TransportOrderTypeEnum.contracted]),\n            },\n        ];\n    }, [t]);\n\n    return (\n        <DropdownInput<OptionT, TransportOrderTypeEnum>\n            className={className}\n            selectedValue={value}\n            options={options}\n            onSelect={onSelect}\n            testSelector={testSelector}\n            renderOption={(option) => {\n                if (!option) {\n                    return null;\n                }\n\n                return <DropdownControlOptionLabel withoutPaddings label={option.label} />;\n            }}\n            renderTriggerContent={(selectedOption, placeholder) => {\n                if (!selectedOption) {\n                    return placeholder;\n                }\n\n                return t(i18nTMap[selectedOption.id]);\n            }}\n            placeholder={t(i18nTMap[TransportOrderTypeEnum.all])}\n            hasClearControl\n            onReset={() => {\n                onSelect(TransportOrderTypeEnum.all);\n            }}\n            getOptionValue={(option) => option?.id}\n            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n        />\n    );\n};\n\nexport default TransportOrderTypeDropdown;\n","// extracted by mini-css-extract-plugin\nexport default {\"route-point-pin\":\"MultiPointOrderRouteMap__route-point-pin____ovnS\",\"fadeIn\":\"MultiPointOrderRouteMap__fadeIn___JgHwG\",\"blinking\":\"MultiPointOrderRouteMap__blinking___TH9oO\"};","import * as React from 'react';\nimport { BrokerOrderShortT } from 'broker-admin/store/broker-orders/models';\nimport { formatTimeInterval } from 'common/utils/time';\nimport LocationCell from 'common/components/Table/cell-renderers/LocationCell/LocationCell';\nimport LocationLabel from 'common/components/LocationLabel/LocationLabel';\nimport { CountryCodeT } from 'common/utils/api/models';\n\ntype PropsT = {\n    brokerOrderShort: BrokerOrderShortT;\n};\n\nconst PickUpCell: React.FC<PropsT> = React.memo((props) => {\n    const { brokerOrderShort } = props;\n\n    const timeWindow = formatTimeInterval(brokerOrderShort.pickUpDateFrom, brokerOrderShort.pickUpDateTo);\n\n    return (\n        <LocationCell\n            address={\n                <LocationLabel\n                    location={{\n                        zipCode: brokerOrderShort.zipCodeFrom,\n                        city: brokerOrderShort.cityFrom,\n                        country: brokerOrderShort.countryCodeFrom as CountryCodeT,\n                    }}\n                    format=\"zip_city_country\"\n                    allowShowCountryCode\n                />\n            }\n            time={timeWindow}\n        />\n    );\n});\n\nexport default PickUpCell;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { selectOrderCreationMs } from 'common/store/settings/selectors';\nimport { useSelector } from 'react-redux';\nimport { getMinutes } from 'common/utils/time';\n\ntype PropsT = {};\n\nconst ExpirationRFQAlertContent: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n\n    const orderCreationMs = useSelector(selectOrderCreationMs);\n\n    let formattedMinutes;\n    if (orderCreationMs) {\n        const minutes = getMinutes(orderCreationMs);\n\n        formattedMinutes = minutes\n            ? `${minutes} ${t('common:minutes', {\n                  postProcess: 'interval',\n                  count: minutes,\n              })}`\n            : null;\n    }\n\n    return (\n        <span>\n            {t('common:new-order-details.expiration.rfq', {\n                formattedContextLifetime: formattedMinutes,\n            })}\n        </span>\n    );\n});\n\nexport default ExpirationRFQAlertContent;\n","import { BrokerOrderStateT } from './slice';\nimport { StateT } from '../models';\n\nexport const selectBrokerOrdersPages = (state: StateT): BrokerOrderStateT['pages'] => state.brokerOrders.pages;\n\nexport const selectBrokerOrdersQuery = (state: StateT): BrokerOrderStateT['query'] => state.brokerOrders.query;\n\nexport const selectBrokerOrdersTotal = (state: StateT): BrokerOrderStateT['total'] => state.brokerOrders.total;\n\nexport const selectBrokerOrdersByIds = (state: StateT): BrokerOrderStateT['byId'] => state.brokerOrders.byId;\n","import React from 'react';\nimport { SyncFormValuesT } from 'common/utils/hooks/useSyncFormValues';\n\nconst createSyncFormValuesContext = <V extends FieldValues>() => {\n    return React.createContext<SyncFormValuesT<V>>({\n        formValues: null,\n        syncFormValues: () => {\n            // nothing\n        },\n        setFieldValueCallback: null,\n        syncSetFieldValueCallback: () => {\n            // nothing\n        },\n    });\n};\n\nexport { createSyncFormValuesContext };\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"SetUnavailableFooterContent__content___sMlC0\",\"close-button\":\"SetUnavailableFooterContent__close-button___T7oG4\",\"fadeIn\":\"SetUnavailableFooterContent__fadeIn___uUun0\",\"blinking\":\"SetUnavailableFooterContent__blinking___vr5Qe\"};","import { AnyAlert, AnyAlertPayloadT } from 'common/store/alerts/models';\nimport React from 'react';\nimport { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport { TFunction } from 'i18next';\nimport { ApiOrderContextNoteT, UserRoleT } from 'common/utils/api/models';\n\nexport type AlertToastViewT = {\n    id: AlertIdT;\n    theme: AlertThemeEnum;\n    icon: React.ReactNode | null;\n    text: React.ReactNode | null;\n    size?: AlertSizeEnum;\n    footer?: React.ReactNode | null;\n    customTTLMs?: number;\n};\n\nexport type AlertToastRendererT<A = AnyAlert<AnyAlertPayloadT>> = (t: TFunction, alert: A) => AlertToastViewT | null;\n\nexport enum CommonAlertTypeEnum {\n    networkError = 'network-error',\n\n    userRestored = 'user-restored',\n    inviteCanceled = 'invite-canceled',\n    contactAdded = 'contact-added',\n    emailInvited = 'email-invited',\n    userRolesChanged = 'user-roles-changed',\n    userDeactivated = 'user-deactivated',\n    contactDeleted = 'contact-deleted',\n    mainContactChanged = 'main-contact-changed',\n    contactEdited = 'contact-edited',\n    userEdited = 'user-edited',\n\n    contractUploaded = 'contract-uploaded',\n\n    documentUploaded = 'document-uploaded',\n    documentUpdated = 'document-updated',\n    documentApproved = 'document-approved',\n    documentRejected = 'document-rejected',\n    documentRevoked = 'document-revoked',\n\n    orderContextNote = 'order-context-note',\n\n    trailerAdded = 'trailer-added',\n    trailerSuccessfullyActivated = 'trailer-successfully-activated',\n    trailersSuccessfullyActivated = 'trailers-successfully-activated',\n    trailerFailedActivate = 'trailer-failed-activate',\n    trailersFailedActivate = 'trailers-failed-activate',\n    trailerSuccessfullyArchived = 'trailer-successfully-archived',\n    trailersSuccessfullyArchived = 'trailers-successfully-archived',\n    trailerFailedArchived = 'trailer-failed-archived',\n    trailersFailedArchived = 'trailers-failed-archived',\n    trailerFailedArchivedHasFutureAssignment = 'trailer-failed-archived-has-future-assignment',\n    trailerSuccessfullyUpdatedContract = 'trailer-updated-contract-activated',\n    trailersSuccessfullyUpdatedContract = 'trailers-updated-contract-activated',\n    trailerFailedUpdateContract = 'trailer-update-contract-activate',\n    trailersFailedUpdateContract = 'trailers-update-contract-activate',\n    trailerSuccessfullyUpdatedRate = 'trailer-updated-rate-activated',\n    trailersSuccessfullyUpdatedRate = 'trailers-updated-rate-activated',\n    trailerFailedUpdateRate = 'trailer-update-rate-activate',\n    trailersFailedUpdateRate = 'trailers-update-rate-activate',\n    trailerSuccessfullyEdited = 'trailer-successfully-edited',\n    trailerSuccessfullySetUnavailable = 'trailer-successfully-set-unavailable',\n    trailerSuccessfullyXLSImport = 'trailer-successfully-XLS-import',\n\n    truckAdded = 'truck-added',\n    truckSuccessfullyActivated = 'truck-successfully-activated',\n    trucksSuccessfullyActivated = 'trucks-successfully-activated',\n    truckFailedActivate = 'truck-failed-activate',\n    trucksFailedActivate = 'trucks-failed-activate',\n    truckSuccessfullyArchived = 'truck-successfully-archived',\n    trucksSuccessfullyArchived = 'trucks-successfully-archived',\n    trucksFailedArchived = 'trucks-failed-archived',\n    truckFailedArchived = 'truck-failed-archived',\n    truckFailedArchivedHasFutureAssignment = 'truck-failed-archived-has-future-assignment',\n    truckSuccessfullyUpdatedContract = 'truck-updated-contract-activated',\n    trucksSuccessfullyUpdatedContract = 'trucks-updated-contract-activated',\n    truckFailedUpdateContract = 'truck-update-contract-activate',\n    trucksFailedUpdateContract = 'trucks-update-contract-activate',\n    truckSuccessfullyUpdatedRate = 'truck-updated-rate-activated',\n    trucksSuccessfullyUpdatedRate = 'trucks-updated-rate-activated',\n    truckFailedUpdateRate = 'truck-update-rate-activate',\n    trucksFailedUpdateRate = 'trucks-update-rate-activate',\n    truckSuccessfullyEdited = 'truck-successfully-edited',\n    truckSuccessfullySetUnavailable = 'truck-successfully-set-unavailable',\n    truckSuccessfullyXLSImport = 'truck-successfully-XLS-import',\n    truckCantBeOnTimeForNextTour = 'truck-cant-be-on-time-for-next-tour',\n    trailerCantBeOnTimeForNextTour = 'trailer-cant-be-on-time-for-next-tour',\n\n    driverAssigned = 'driver-assigned',\n    driverUnassigned = 'driver-unassigned',\n\n    rfqSuccessfulClosed = 'rfq-successful-closed',\n\n    spotAssetsAssigned = 'spot-assets-assigned',\n    spotAssetsUnassigned = 'spot-assets-unassigned',\n\n    carrierSpotLanesUpdateSuccess = 'carrier-spot-lanes-update-success',\n    carrierSpotLanesDeleteSuccess = 'carrier-spot-lanes-delete-success',\n\n    shipperContractUploaded = 'shipper-contract-uploaded',\n    shipperContractRevoked = 'shipper-contract-revoked',\n    shipperContractUpdated = 'shipper-contract-updated',\n\n    shipperContractLaneAdded = 'shipper-contract-lane-added',\n    shipperContractLaneRevoked = 'shipper-contract-lane-revoked',\n    shipperContractLaneUpdated = 'shipper-contract-lane-updated',\n\n    paperAttached = 'paper-attached',\n    paperDeleted = 'paper-deleted',\n    paperDownloadFailed = 'paper-download-failed',\n\n    profileUpdated = 'profile-updated',\n    orderPlaced = 'order-placed',\n    orderCancelled = 'order-cancelled',\n    shipmentUpdated = 'shipment-updated',\n    waypointContactUpdated = 'waypoint-contact-updated',\n}\n\ntype CommonAnyAlertPayloadT =\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.userRestored,\n          {\n              fullName: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.inviteCanceled,\n          {\n              email: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.contactAdded,\n          {\n              fullName: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.emailInvited,\n          {\n              email: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.userRolesChanged,\n          {\n              fullName: string;\n              roles: UserRoleT[];\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.userDeactivated,\n          {\n              fullName: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.contactDeleted,\n          {\n              fullName: string;\n          }\n      >\n    | AnyAlertPayloadT<CommonAlertTypeEnum.mainContactChanged, {}>\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.contactEdited,\n          {\n              fullName: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.userEdited,\n          {\n              fullName: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trailerAdded,\n          {\n              plateNumber: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trailerSuccessfullyActivated,\n          {\n              plateNumber: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trailersSuccessfullyActivated,\n          {\n              count: number;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trailerSuccessfullyEdited,\n          {\n              plateNumber: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trailerSuccessfullySetUnavailable,\n          {\n              plateNumber: string;\n              fromDate: string;\n              toDate: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trailerSuccessfullyArchived,\n          {\n              plateNumber: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trailersSuccessfullyArchived,\n          {\n              count: number;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trailersFailedActivate,\n          {\n              successfulCount: number;\n              allCount: number;\n              plateNumbers: Array<string>;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trailerFailedActivate,\n          {\n              plateNumber: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trailersFailedArchived,\n          {\n              successfulCount: number;\n              allCount: number;\n              plateNumbers: Array<string>;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trailerFailedArchived,\n          {\n              plateNumber: string;\n          }\n      >\n    | AnyAlertPayloadT<CommonAlertTypeEnum.trailerFailedArchivedHasFutureAssignment, {}>\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trailerSuccessfullyUpdatedContract,\n          {\n              plateNumber: string;\n              contractName: string | null;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trailersSuccessfullyUpdatedContract,\n          {\n              count: number;\n              contractName: string | null;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trailerFailedUpdateContract,\n          {\n              contractName: string | null;\n              plateNumber: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trailersFailedUpdateContract,\n          {\n              successfulCount: number;\n              allCount: number;\n              contractName: string | null;\n              plateNumbers: Array<string>;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trailerSuccessfullyUpdatedRate,\n          {\n              plateNumber: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trailersSuccessfullyUpdatedRate,\n          {\n              count: number;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trailerFailedUpdateRate,\n          {\n              plateNumber: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trailersFailedUpdateRate,\n          {\n              successfulCount: number;\n              allCount: number;\n              plateNumbers: Array<string>;\n          }\n      >\n    | AnyAlertPayloadT<CommonAlertTypeEnum.trailerSuccessfullyXLSImport, {}>\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.truckAdded,\n          {\n              plateNumber: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.truckSuccessfullyActivated,\n          {\n              plateNumber: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trucksSuccessfullyActivated,\n          {\n              count: number;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.truckSuccessfullyEdited,\n          {\n              plateNumber: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.truckSuccessfullySetUnavailable,\n          {\n              plateNumber: string;\n              fromDate: string;\n              toDate: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.truckSuccessfullyArchived,\n          {\n              plateNumber: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trucksSuccessfullyArchived,\n          {\n              count: number;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trucksFailedActivate,\n          {\n              successfulCount: number;\n              allCount: number;\n              plateNumbers: Array<string>;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.truckFailedActivate,\n          {\n              plateNumber: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trucksFailedArchived,\n          {\n              successfulCount: number;\n              allCount: number;\n              plateNumbers: Array<string>;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.truckFailedArchived,\n          {\n              plateNumber: string;\n          }\n      >\n    | AnyAlertPayloadT<CommonAlertTypeEnum.truckFailedArchivedHasFutureAssignment, {}>\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.truckSuccessfullyUpdatedContract,\n          {\n              plateNumber: string;\n              contractName: string | null;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trucksSuccessfullyUpdatedContract,\n          {\n              count: number;\n              contractName: string | null;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.truckFailedUpdateContract,\n          {\n              contractName: string | null;\n              plateNumber: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trucksFailedUpdateContract,\n          {\n              successfulCount: number;\n              allCount: number;\n              contractName: string | null;\n              plateNumbers: Array<string>;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.truckSuccessfullyUpdatedRate,\n          {\n              plateNumber: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trucksSuccessfullyUpdatedRate,\n          {\n              count: number;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.truckFailedUpdateRate,\n          {\n              plateNumber: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trucksFailedUpdateRate,\n          {\n              successfulCount: number;\n              allCount: number;\n              plateNumbers: Array<string>;\n          }\n      >\n    | AnyAlertPayloadT<CommonAlertTypeEnum.truckSuccessfullyXLSImport, {}>\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.paperDownloadFailed,\n          {\n              errorMessage: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.driverAssigned,\n          {\n              driversCount: number;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.driverUnassigned,\n          {\n              driversCount: number;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.documentUploaded,\n          {\n              dictDocumentName: string;\n          }\n      >\n    | AnyAlertPayloadT<CommonAlertTypeEnum.documentUpdated, {}>\n    | AnyAlertPayloadT<CommonAlertTypeEnum.contractUploaded, {}>\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.documentApproved,\n          {\n              dictDocumentName: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.documentRejected,\n          {\n              dictDocumentName: string;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.documentRevoked,\n          {\n              dictDocumentName: string;\n          }\n      >\n    | AnyAlertPayloadT<CommonAlertTypeEnum.rfqSuccessfulClosed, {}>\n    | AnyAlertPayloadT<CommonAlertTypeEnum.spotAssetsAssigned, {}>\n    | AnyAlertPayloadT<CommonAlertTypeEnum.spotAssetsUnassigned, {}>\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.carrierSpotLanesDeleteSuccess,\n          {\n              count: number;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.carrierSpotLanesUpdateSuccess,\n          {\n              count: number;\n          }\n      >\n    | AnyAlertPayloadT<CommonAlertTypeEnum.shipperContractUploaded, {}>\n    | AnyAlertPayloadT<CommonAlertTypeEnum.shipperContractUpdated, {}>\n    | AnyAlertPayloadT<CommonAlertTypeEnum.shipperContractRevoked, {}>\n    | AnyAlertPayloadT<CommonAlertTypeEnum.shipperContractLaneAdded, {}>\n    | AnyAlertPayloadT<CommonAlertTypeEnum.shipperContractLaneUpdated, {}>\n    | AnyAlertPayloadT<CommonAlertTypeEnum.shipperContractLaneRevoked, {}>\n    | AnyAlertPayloadT<CommonAlertTypeEnum.paperAttached, {}>\n    | AnyAlertPayloadT<CommonAlertTypeEnum.paperDeleted, {}>\n    | AnyAlertPayloadT<CommonAlertTypeEnum.profileUpdated, {}>\n    | AnyAlertPayloadT<CommonAlertTypeEnum.orderPlaced, {}>\n    | AnyAlertPayloadT<CommonAlertTypeEnum.orderCancelled, {}>\n    | AnyAlertPayloadT<CommonAlertTypeEnum.shipmentUpdated, {}>\n    | AnyAlertPayloadT<CommonAlertTypeEnum.waypointContactUpdated, {}>\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.orderContextNote,\n          {\n              note: ApiOrderContextNoteT;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.truckCantBeOnTimeForNextTour,\n          {\n              nextTransportOrderId: TransportOrderIdT;\n              nextTransportOrderNumber: string;\n              status: string;\n              entityType: string;\n              carrierId?: CarrierIdT;\n          }\n      >\n    | AnyAlertPayloadT<\n          CommonAlertTypeEnum.trailerCantBeOnTimeForNextTour,\n          {\n              nextTransportOrderId: TransportOrderIdT;\n              nextTransportOrderNumber: string;\n              status: string;\n              entityType: string;\n              carrierId?: CarrierIdT;\n          }\n      >\n    | AnyAlertPayloadT<CommonAlertTypeEnum.networkError, {}>;\n\nexport class CommonAnyAlert extends AnyAlert<CommonAnyAlertPayloadT> {}\n","import * as React from 'react';\nimport type { DocumentRowT } from 'common/layouts/BaseDocumentsLayout/BaseDocumentsTable/BaseDocumentsTable';\nimport DateCell from 'common/components/Table/cell-renderers/DateCell/DateCell';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames/bind';\nimport styles from './ExpireDateCell.scss';\nimport { DocumentStatusEnum } from 'common/utils/api/models';\nimport { useSelector } from 'react-redux';\nimport ClickInterceptorLabel from 'common/components/ClickInterceptorLabel/ClickInterceptorLabel';\nimport { DEFAULT_ICON_SIZE, documentsWithoutExpirySet, StyleGuideColorsEnum } from 'common/constants';\nimport {\n    selectUploadingDictDocumentId,\n    selectUploadCompanyDocumentsRequest,\n    selectUpdatingDocumentId,\n    selectUpdateCompanyDocumentsRequest,\n} from 'common/store/documents/selectors';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport ControlLoaderWithShadow from 'common/components/ControlLoaderWithShadow/ControlLoaderWithShadow';\nimport usePartnerPermissionsContext from 'common/utils/hooks/usePartnerPermissionsContext';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    row: DocumentRowT;\n    className?: string;\n    onUploadDocument: (id: DocumentIdT) => void;\n    onSelectRow?: (row: DocumentRowT) => void;\n};\n\nconst ExpireDateCell: React.FC<PropsT> = React.memo((props) => {\n    const { row, onUploadDocument, onSelectRow } = props;\n\n    const { t } = useTranslation();\n\n    const { partnerId } = usePartnerContext();\n\n    const uploadingDictDocumentId = useSelector(selectUploadingDictDocumentId(partnerId));\n    const uploadRequest = useSelector(selectUploadCompanyDocumentsRequest(partnerId));\n\n    const updatingDocumentId = useSelector(selectUpdatingDocumentId(partnerId));\n    const updateRequest = useSelector(selectUpdateCompanyDocumentsRequest(partnerId));\n\n    const partnerPermissions = usePartnerPermissionsContext();\n\n    if (\n        (row.dictDocument.id === uploadingDictDocumentId && uploadRequest.loading) ||\n        (row.actualVersion?.id === updatingDocumentId && updateRequest.loading)\n    ) {\n        return <ControlLoaderWithShadow fillColor={StyleGuideColorsEnum.light} size={DEFAULT_ICON_SIZE} />;\n    }\n\n    if (partnerPermissions.canUploadDocuments && !row.actualVersion) {\n        return (\n            <ClickInterceptorLabel>\n                <Button\n                    className={cx('action')}\n                    theme={ButtonThemeEnum.secondary}\n                    onClick={() => {\n                        if (onUploadDocument) {\n                            onUploadDocument(row.dictDocument.id);\n                        }\n                    }}\n                >\n                    {t('common:documents.table.actions.upload')}\n                </Button>\n            </ClickInterceptorLabel>\n        );\n    }\n\n    if (\n        partnerPermissions.canUploadDocuments &&\n        (row.actualVersion?.status === DocumentStatusEnum.rejected ||\n            row.actualVersion?.status === DocumentStatusEnum.revoked)\n    ) {\n        return (\n            <ClickInterceptorLabel>\n                <Button\n                    className={cx('action')}\n                    theme={ButtonThemeEnum.secondary}\n                    onClick={() => {\n                        if (onUploadDocument) {\n                            onUploadDocument(row.dictDocument.id);\n                        }\n                    }}\n                >\n                    {t('common:documents.table.actions.upload-new')}\n                </Button>\n            </ClickInterceptorLabel>\n        );\n    }\n\n    if (partnerPermissions.canReviewDocuments && row.actualVersion?.status === DocumentStatusEnum.waitingForApprove) {\n        return (\n            <ClickInterceptorLabel>\n                <Button\n                    className={cx('action')}\n                    theme={ButtonThemeEnum.secondary}\n                    onClick={() => {\n                        if (onSelectRow) {\n                            onSelectRow(row);\n                        }\n                    }}\n                >\n                    {t('common:documents.table.actions.review')}\n                </Button>\n            </ClickInterceptorLabel>\n        );\n    }\n\n    if (documentsWithoutExpirySet.has(row.dictDocument.type)) {\n        return <div className={cx('without-expiry')}>{t('common:documents.table.without-expiry')}</div>;\n    }\n\n    return <DateCell className={cx('date')} date={row.actualVersion?.validTill} />;\n});\n\nexport default ExpireDateCell;\n","// extracted by mini-css-extract-plugin\nexport default {\"checkbox\":\"ContinueSignUpForm__checkbox___KF_9f\",\"checkbox__error\":\"ContinueSignUpForm__checkbox__error___Vh3v5\",\"terms\":\"ContinueSignUpForm__terms___DGF4L\",\"submit\":\"ContinueSignUpForm__submit___Heu2m\",\"footer-links\":\"ContinueSignUpForm__footer-links___GWMyI\",\"footer-links__link\":\"ContinueSignUpForm__footer-links__link___bh_PX\",\"fadeIn\":\"ContinueSignUpForm__fadeIn___h9QGe\",\"blinking\":\"ContinueSignUpForm__blinking___evb_v\"};","import { ApiBrokerTourTypeT } from 'broker-admin/utils/api/broker-tranziit/models';\n\nexport enum FieldsEnum {\n    carrierIds = 'carrierIds',\n    carrierNames = 'carrierNames',\n    originAddress = 'originAddress',\n    destinationAddress = 'destinationAddress',\n    originDates = 'originDates',\n    destinationDates = 'destinationDates',\n    creationDates = 'creationDates',\n    tourTypes = 'tourTypes',\n    plateNumber = 'plateNumber',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.carrierIds]: Array<CarrierIdT>;\n    [FieldsEnum.carrierNames]: Array<string>;\n    [FieldsEnum.originAddress]: string;\n    [FieldsEnum.destinationAddress]: string;\n    [FieldsEnum.originDates]: DateRangeT | null;\n    [FieldsEnum.destinationDates]: DateRangeT | null;\n    [FieldsEnum.creationDates]: DateRangeT | null;\n    [FieldsEnum.tourTypes]: Array<ApiBrokerTourTypeT>;\n    [FieldsEnum.plateNumber]: string;\n};\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './BidMessage.scss';\n\ntype PropsT = {\n    icon?: React.ReactNode;\n    title?: React.ReactNode;\n    description?: React.ReactNode;\n};\n\nconst cx = classNames.bind(styles);\n\nconst BidMessage: React.FC<PropsT> = React.memo((props) => {\n    const { icon, title, description } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <div className={cx('icon')}>{icon}</div>\n            <div className={cx('title')}>{title}</div>\n            <div className={cx('description')}>{description}</div>\n        </div>\n    );\n});\n\nexport default BidMessage;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './CreditLimit.scss';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport Money from 'common/components/Money/Money';\nimport { CurrencyEnum } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    creditLimit: number | undefined;\n};\n\nconst CreditLimit: React.FC<PropsT> = React.memo(({ creditLimit }) => {\n    return (\n        <PillLabel className={cx('credit-limit-pill')} isSymmetrical theme={PillLabelThemeEnum.brandDark}>\n            <Money amount={creditLimit} currency={CurrencyEnum.EUR} />\n        </PillLabel>\n    );\n});\n\nexport default CreditLimit;\n","const getDatesHash = (pickUpDate: string | null | undefined, dropOffDate: string | null | undefined): string =>\n    `${pickUpDate || ''}-${dropOffDate || ''}`;\n\nexport default getDatesHash;\n","import {\n    FETCH_ADDITIONAL_SERVICES_REQUEST,\n    FETCH_ADDITIONAL_SERVICES_REQUEST_BEGIN,\n    FETCH_ADDITIONAL_SERVICES_REQUEST_ERROR,\n    FETCH_ADDITIONAL_SERVICES_REQUEST_SUCCESS,\n    FetchAdditionalServicesActionT,\n    FetchAdditionalServicesBeginActionT,\n    FetchAdditionalServicesErrorActionT,\n    FetchAdditionalServicesSuccessActionT,\n    UPDATE_ADDITIONAL_SERVICE_REQUEST,\n    UPDATE_ADDITIONAL_SERVICE_REQUEST_BEGIN,\n    UPDATE_ADDITIONAL_SERVICE_REQUEST_ERROR,\n    UPDATE_ADDITIONAL_SERVICE_REQUEST_SUCCESS,\n    UpdateAdditionalServiceActionT,\n    UpdateAdditionalServiceBeginActionT,\n    UpdateAdditionalServiceErrorActionT,\n    UpdateAdditionalServiceSuccessActionT,\n} from './types';\nimport { DictCarrierAdditionalServiceGroupT } from './models';\nimport { ApiCarrierAdditionalServiceChangesT } from 'broker-admin/utils/api/broker-tranziit/models';\n\nexport const fetchAdditionalServices = (options: FetchOptionsT): FetchAdditionalServicesActionT => ({\n    type: FETCH_ADDITIONAL_SERVICES_REQUEST,\n    options,\n});\n\nexport const fetchAdditionalServicesBegin = (): FetchAdditionalServicesBeginActionT => ({\n    type: FETCH_ADDITIONAL_SERVICES_REQUEST_BEGIN,\n});\n\nexport const fetchAdditionalServicesSuccess = (\n    list: DictCarrierAdditionalServiceGroupT[] | null,\n): FetchAdditionalServicesSuccessActionT => ({\n    type: FETCH_ADDITIONAL_SERVICES_REQUEST_SUCCESS,\n    list,\n});\n\nexport const fetchAdditionalServicesError = (error: Error): FetchAdditionalServicesErrorActionT => ({\n    type: FETCH_ADDITIONAL_SERVICES_REQUEST_ERROR,\n    error,\n});\n\nexport const updateAdditionalService = (\n    changes: ApiCarrierAdditionalServiceChangesT[],\n): UpdateAdditionalServiceActionT => ({\n    type: UPDATE_ADDITIONAL_SERVICE_REQUEST,\n    changes,\n});\n\nexport const updateAdditionalServiceBegin = (): UpdateAdditionalServiceBeginActionT => ({\n    type: UPDATE_ADDITIONAL_SERVICE_REQUEST_BEGIN,\n});\n\nexport const updateAdditionalServiceSuccess = (\n    changes: ApiCarrierAdditionalServiceChangesT[],\n): UpdateAdditionalServiceSuccessActionT => ({\n    type: UPDATE_ADDITIONAL_SERVICE_REQUEST_SUCCESS,\n    changes,\n});\n\nexport const updateAdditionalServiceError = (error: Error): UpdateAdditionalServiceErrorActionT => ({\n    type: UPDATE_ADDITIONAL_SERVICE_REQUEST_ERROR,\n    error,\n});\n","export const getDriverLabel = (\n    params: {\n        name?: string;\n        surname?: string;\n    } | null,\n): string => {\n    return [params?.name, params?.surname].filter(Boolean).join(' ');\n};\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { FetchBrokerToursPageActionT } from './types';\nimport { BrokerTourShortT } from './models';\nimport {\n    fetchBrokerToursPage,\n    fetchBrokerToursPageBegin,\n    fetchBrokerToursPageError,\n    fetchBrokerToursPageSuccess,\n    resetBrokerTours,\n} from './slice';\nimport { selectBrokerToursPages, selectBrokerToursQuery } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { checkIsSameQuery, checkShouldEmitChangePage } from 'common/utils/pagination/utils';\nimport { brokerToursPaginationChannel } from 'broker-admin/store/broker-tours/channels';\n\nfunction* fetchBrokerToursSaga(action: FetchBrokerToursPageActionT): WrapGeneratorT<void> {\n    const { pageNumber, query, options } = action.payload;\n\n    const prevQuery: ReturnType<typeof selectBrokerToursQuery> = yield select(selectBrokerToursQuery);\n    const pages: ReturnType<typeof selectBrokerToursPages> = yield select(selectBrokerToursPages);\n    const isSameQuery = checkIsSameQuery(query, prevQuery);\n    const isNeedRequest = checkNeedRequest(pages[pageNumber]?.requestStatus, options);\n    if (isSameQuery && !isNeedRequest) {\n        return;\n    }\n    if (!isSameQuery) {\n        yield put(resetBrokerTours({ mutationListOptions: { savingPageNumber: pageNumber } }));\n    }\n\n    yield put(fetchBrokerToursPageBegin({ query, pageNumber }));\n\n    const [error, response]: ReturnApiT<typeof brokerTranziitApi.getBrokerToursFilter> =\n        yield brokerTranziitApi.getBrokerToursFilter({\n            ...query,\n            page: pageNumber,\n        });\n\n    if (error) {\n        yield put(fetchBrokerToursPageError({ query, pageNumber, error }));\n        return;\n    }\n\n    const pageResponse = response\n        ? {\n              content: response.content?.map(\n                  (item): BrokerTourShortT => ({\n                      ...item,\n                      // WTF?!?! tourId is optional\n                      id: item.tourId || '-',\n                  }),\n              ),\n              totalElements: response.totalElements,\n              totalPages: response.totalPages,\n              page: pageNumber,\n          }\n        : null;\n\n    yield put(fetchBrokerToursPageSuccess({ query, pageNumber, pageResponse }));\n\n    checkShouldEmitChangePage(pageNumber, response, brokerToursPaginationChannel);\n}\n\nfunction* brokerToursSaga(): WrapGeneratorT<void> {\n    yield takeEvery(fetchBrokerToursPage.type, fetchBrokerToursSaga);\n}\n\nexport default brokerToursSaga;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"SpotRequestDetailsTabs__container___Yv2EU\",\"action--start\":\"SpotRequestDetailsTabs__action--start___PEsYD\",\"button-group\":\"SpotRequestDetailsTabs__button-group___K2_O4\",\"count\":\"SpotRequestDetailsTabs__count___Pv1qE\",\"status\":\"SpotRequestDetailsTabs__status___YWDsr\",\"status--is-warning\":\"SpotRequestDetailsTabs__status--is-warning___YYcSb\",\"time\":\"SpotRequestDetailsTabs__time___SfWjj\",\"message\":\"SpotRequestDetailsTabs__message___aW4nt\",\"fadeIn\":\"SpotRequestDetailsTabs__fadeIn___LMVql\",\"blinking\":\"SpotRequestDetailsTabs__blinking___TrYyu\"};","import * as React from 'react';\nimport { useMemo } from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './BrokerOrderDetailsPage.scss';\n\nimport { useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport history, { goBackIfHasRePath } from 'common/utils/history';\nimport { BrokerOrdersRoutesEnum, routesEnum } from 'broker-admin/constants';\nimport GoogleMapContextProvider from 'common/components/maps/GoogleMapContextProvider/GoogleMapContextProvider';\nimport HorizontalColumnsLayout from 'common/layouts/HorizontalColumnsLayout/HorizontalColumnsLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport {\n    selectBrokerOrderDetails,\n    selectBrokerOrderDetailsRequestStatus,\n} from 'broker-admin/store/broker-order-details/selectors';\nimport { fetchBrokerOrderDetails } from 'broker-admin/store/broker-order-details/slice';\nimport BrokerOrderDetails from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderDetails/BrokerOrderDetails';\nimport {\n    ApiBrokerOrderDetailsT,\n    ApiBrokerOrderStatusT,\n    ApiBrokerOrderWaypointT,\n    ApiRouteEditBlockReasonT,\n    BrokerOrderStatusEnum,\n    PartnerTypeEnum,\n} from 'common/utils/api/models';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport { formatQuery } from 'common/utils/query';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport ParanjaSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/ParanjaSideBarLayout/ParanjaSideBarLayout';\nimport useQuery from 'common/utils/hooks/useQuery';\nimport TabGroupWithDivider from 'common/components/tabs/TabGroupWithDivider/TabGroupWithDivider';\nimport TabLabel from 'common/components/tabs/TabLabel/TabLabel';\nimport { TabsThemesEnum } from 'common/components/tabs/TabLabel/constants';\nimport EditTimeWindowsFooterContent from './footers/EditTimeWindowsFooterContent/EditTimeWindowsFooterContent';\nimport EditStopContactFooterContent from './footers/EditStopContactFooterContent/EditStopContactFooterContent';\nimport { selectBrokerOrderEditUpdateRequestStatus } from '../../../store/broker-order-edit/selectors';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport CancelBrokerOrderConfirmation, {\n    CancelingBrokerOrderConfirmationDataT,\n} from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/dialogs/CancelBrokerOrderConfirmation/CancelBrokerOrderConfirmation';\nimport BrokerOrderStatusPill from 'common/components/status-pill/BrokerOrderStatusPill/BrokerOrderStatusPill';\nimport SideBarLayoutContextWrap from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayoutContextWrap/SideBarLayoutContextWrap';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport SideBarHeaderRequestStatus from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarHeaderRequestStatus/SideBarHeaderRequestStatus';\nimport EntitySidebarSkeleton from 'common/components/entity-details/EntitySidebarSkeleton/EntitySidebarSkeleton';\nimport SideBarRequestStatus from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarRequestStatus/SideBarRequestStatus';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport SendingToSpotFooterContent from './footers/SendingToSpotFooterContent/SendingToSpotFooterContent';\nimport { selectSpotUpdateRequestStatus } from 'broker-admin/store/spot/selectors';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\n\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport { useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { logWarning } from 'common/utils/logger';\nimport SideBars from 'broker-admin/layouts/SideBars/SideBars';\nimport BrokerOrderRouteMap from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderRouteMap/BrokerOrderRouteMap';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { stateMachineRefreshChannel } from 'common/store/state-machine/channels';\nimport { StateMachineEntityDescriptorT } from 'common/store/state-machine/models';\nimport { updateEntityStatus } from 'common/store/state-machine/slice';\nimport { useStateMachine } from 'common/utils/hooks/useStateMachine';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport { SpecialOptionEnum } from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport RouteIcon from 'common/icons/RouteIcon';\nimport { QueryKeysEnum, QueryT } from './query-models';\nimport { ExtractRouterRouteParamsT } from 'common/utils/extract-router-route-params-t';\nimport { consistentStateMachineRefreshChannel } from 'common/store/consistent-state-machine/channels';\nimport { papersEditRefreshChannel } from 'common/store/papers-edit/channels';\nimport DropdownControlOptionLabelWithTooltip from 'design-system/components/dropdowns/option/DropdownControlOptionLabelWithTooltip/DropdownControlOptionLabelWithTooltip';\nimport { updateSpotRefreshChannel } from 'broker-admin/store/spot/channels';\nimport { HighlightedEntityContextProvider } from 'common/components/status-machine/contexts/HighlightedEntityContext';\nimport { brokerOrderDetailsRefreshChannel } from 'broker-admin/store/broker-order-details/channels';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { updateShipment } from 'broker-admin/store/broker-order-edit/actions';\nimport { UpdateShipmentRequestT } from 'broker-admin/store/broker-order-edit/types';\nimport { SwitchableView } from 'common/components/SwitchableView/SwitchableView';\n\nimport { SubjectLogs } from 'common/layouts/SubjectLogs/SubjectLogs';\nimport { LogsSwitchableViewLayout } from 'common/layouts/switchable-views/LogsSwitchableViewLayout/LogsSwitchableViewLayout';\nimport { CommonAlertTypeEnum, CommonAnyAlert } from 'common/components/toasts/AlertToastsManager/models';\n\nconst cx = classNames.bind(styles);\n\nconst cancelUnavailableReasonI18nMap: Record<NonNullable<ApiBrokerOrderDetailsT['cancelUnavailableReason']>, string> = {\n    ORDER_NOT_IN_PLACED_STATUS: 'broker-order-details.cancel-unavailable-reason.ORDER_NOT_IN_PLACED_STATUS',\n    DISPATCHER_CANT_CANCEL_ORDER: 'broker-order-details.cancel-unavailable-reason.DISPATCHER_CANT_CANCEL_ORDER',\n    ORDER_IS_NOT_ASSOCIATED_WITH_KAM: 'broker-order-details.cancel-unavailable-reason.ORDER_IS_NOT_ASSOCIATED_WITH_KAM',\n};\n\nconst editBlockReasonI18nMap: Record<ApiRouteEditBlockReasonT, string> = {\n    KAM_IS_NOT_ALLOWED_TO_EDIT_ORDER: 'broker-order-route-edit.edit-block-reason.KAM_IS_NOT_ALLOWED_TO_EDIT_ORDER',\n    AT_LEAST_ONE_TOUR_NOT_IN_STATUS_CARRIER_UNASSIGNED:\n        'broker-order-route-edit.edit-block-reason.AT_LEAST_ONE_TOUR_NOT_IN_STATUS_CARRIER_UNASSIGNED',\n    AT_LEAST_ONE_TOUR_HAS_ACTIVE_TRANSPORTATION_ORDER:\n        'broker-order-route-edit.edit-block-reason.AT_LEAST_ONE_TOUR_HAS_ACTIVE_TRANSPORTATION_ORDER',\n    AT_LEAST_ONE_TOUR_IS_ON_SPOT: 'broker-order-route-edit.edit-block-reason.AT_LEAST_ONE_TOUR_IS_ON_SPOT',\n    ORDER_IS_LOCKED_FOR_EDITING_BY_ANOTHER_USER:\n        'broker-order-route-edit.edit-block-reason.ORDER_IS_LOCKED_FOR_EDITING_BY_ANOTHER_USER',\n    NEED_TO_FINISH_BROKER_APPOINTMENT_FIRST:\n        'broker-order-route-edit.edit-block-reason.NEED_TO_FINISH_BROKER_APPOINTMENT_FIRST',\n    DISPATCHER_IS_NOT_ASSOCIATED_TO_SHIPPER:\n        'broker-order-route-edit.edit-block-reason.DISPATCHER_IS_NOT_ASSOCIATED_TO_SHIPPER',\n};\n\ntype PropsT = {};\n\nconst BrokerOrderDetailsPageContent: React.FC<PropsT> = React.memo(() => {\n    const query = useQuery<QueryT>();\n\n    const params = useParams<ExtractRouterRouteParamsT<BrokerOrdersRoutesEnum.brokerOrderDetails>>();\n    const { brokerOrderId } = params;\n\n    const { t } = useTranslation();\n\n    const brokerOrderDetails = useSelector(selectBrokerOrderDetails(brokerOrderId));\n    const brokerOrderDetailsRequestStatus = useSelector(selectBrokerOrderDetailsRequestStatus(brokerOrderId));\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchBrokerOrderDetails({ id: brokerOrderId }));\n    }, [dispatch, brokerOrderId]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        dispatch(fetchBrokerOrderDetails({ id: brokerOrderId, options: { isForceUpdate: false } }));\n    }, [dispatch, brokerOrderId]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        dispatch(fetchBrokerOrderDetails({ id: brokerOrderId, options: { isForceUpdate: true } }));\n    }, [dispatch, brokerOrderId]);\n\n    const refreshPageHandler = React.useCallback(() => {\n        dispatch(fetchBrokerOrderDetails({ id: brokerOrderId, options: { isForceUpdate: true } }));\n    }, [dispatch, brokerOrderId]);\n    useChannelSubscribe(stateMachineRefreshChannel, refreshPageHandler);\n    useChannelSubscribe(updateSpotRefreshChannel, refreshPageHandler);\n    useChannelSubscribe(consistentStateMachineRefreshChannel, refreshPageHandler);\n    useChannelSubscribe(papersEditRefreshChannel, refreshPageHandler);\n\n    const refreshBrokerOrderDetailsPageHandler = React.useCallback(\n        (event: InferChannelEventT<typeof brokerOrderDetailsRefreshChannel>) => {\n            if (event.brokerOrderId === brokerOrderId) {\n                dispatch(fetchBrokerOrderDetails({ id: brokerOrderId, options: { isForceUpdate: true } }));\n            }\n        },\n        [dispatch, brokerOrderId],\n    );\n    useChannelSubscribe(brokerOrderDetailsRefreshChannel, refreshBrokerOrderDetailsPageHandler);\n\n    const closeOrderDetails = () => {\n        goBackIfHasRePath(() => {\n            history.push(routesEnum.brokerOrders + history.location.search);\n        });\n    };\n\n    const [editingStopContact, setEditingStopContact] = React.useState<ApiBrokerOrderWaypointT | null>(null);\n\n    const handleStartEditWaypointContact = React.useCallback((waypoint: ApiBrokerOrderWaypointT) => {\n        setEditingStopContact(waypoint);\n    }, []);\n\n    const handleCloseEditStopContact = React.useCallback(() => {\n        setEditingStopContact(null);\n    }, []);\n\n    const sendingToSpotTourId = query[QueryKeysEnum.sendingToSpotTourId] || null;\n    const isActiveSendingToSpot = !!sendingToSpotTourId;\n    const editingTimeWindowTourId = query[QueryKeysEnum.editingTimeWindowTourId] || null;\n    const isActiveTimeWindowEdit = !!editingTimeWindowTourId;\n\n    const handleStartEditTimeWindows = (tourId: TourIdT) => {\n        history.push({\n            search: formatQuery({\n                ...query,\n                [QueryKeysEnum.editingTimeWindowTourId]: tourId,\n            }),\n        });\n    };\n    const handleStartAssignment = (tourId: TourIdT) => {\n        if (!brokerOrderId) {\n            logWarning('Empty brokerOrderId');\n            return;\n        }\n\n        history.push(urlFactory.brokerOrderDetailsAssignments(brokerOrderId, tourId));\n    };\n\n    const handleStartSendToSpot = (tourId: TourIdT) => {\n        history.push({\n            search: formatQuery({\n                ...query,\n                [QueryKeysEnum.sendingToSpotTourId]: tourId,\n            }),\n        });\n    };\n\n    const handleCloseSendingToSpot = () => {\n        history.push({\n            search: formatQuery({\n                ...query,\n                [QueryKeysEnum.sendingToSpotTourId]: undefined,\n            }),\n        });\n    };\n\n    const closeEditTimeWindows = () => {\n        history.push({\n            search: formatQuery({\n                ...query,\n                [QueryKeysEnum.editingTimeWindowTourId]: undefined, // remove\n            }),\n        });\n    };\n\n    const handleUpdateShipment = React.useCallback(\n        (shipmentId: ShipmentIdT, data: UpdateShipmentRequestT) => {\n            dispatch(\n                updateShipment({\n                    brokerOrderId,\n                    shipmentId,\n                    data,\n                }),\n            );\n        },\n        [brokerOrderId, dispatch],\n    );\n\n    const editTimeWindowsRequestStatus = useSelector(selectBrokerOrderEditUpdateRequestStatus(brokerOrderId));\n    React.useEffect(() => {\n        if (editTimeWindowsRequestStatus.ok) {\n            closeEditTimeWindows();\n            handleCloseEditStopContact();\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [editTimeWindowsRequestStatus.ok]);\n\n    const spotRequestStatus = useSelector(selectSpotUpdateRequestStatus);\n    React.useEffect(() => {\n        if (spotRequestStatus.ok) {\n            handleCloseSendingToSpot();\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [spotRequestStatus.ok]);\n\n    const [activeIndexTab, setActiveIndexTab] = React.useState<number>(0);\n\n    const tabs = [\n        {\n            label: t('broker-order-details.tabs.map'),\n            node: (\n                <SwitchableView.Container>\n                    <SwitchableView.Tab title={t('common:views.map')}>\n                        <BrokerOrderRouteMap key={brokerOrderId} brokerOrderDetails={brokerOrderDetails} />\n                    </SwitchableView.Tab>\n                    <SwitchableView.Tab title={t('common:views.logs')}>\n                        <SubjectLogs subjectType=\"ORDER\" subjectId={brokerOrderId}>\n                            {({ logs, requestStatus }) => (\n                                <LogsSwitchableViewLayout logs={logs} requestStatus={requestStatus} />\n                            )}\n                        </SubjectLogs>\n                    </SwitchableView.Tab>\n                </SwitchableView.Container>\n            ),\n        },\n        // {\n        //     label: t('broker-order-details.tabs.activity'),\n        //     node: <div>activity</div>,\n        // },\n    ];\n\n    const renderFooterNode = (): React.ReactNode => {\n        if (editingStopContact) {\n            return (\n                <FooterSideBarLayout isTransparent hasShadow>\n                    <EditStopContactFooterContent\n                        brokerOrderId={brokerOrderId}\n                        waypoint={editingStopContact}\n                        onCancel={handleCloseEditStopContact}\n                    />\n                </FooterSideBarLayout>\n            );\n        }\n\n        if (isActiveTimeWindowEdit) {\n            return (\n                <FooterSideBarLayout isTransparent hasShadow>\n                    <EditTimeWindowsFooterContent\n                        brokerOrderId={brokerOrderId}\n                        brokerOrderDetails={brokerOrderDetails}\n                        tourId={editingTimeWindowTourId}\n                        onCancel={closeEditTimeWindows}\n                    />\n                </FooterSideBarLayout>\n            );\n        }\n\n        if (isActiveSendingToSpot) {\n            return (\n                <>\n                    <ParanjaSideBarLayout />\n                    <FooterSideBarLayout isTransparent hasShadow>\n                        <SendingToSpotFooterContent\n                            brokerOrderDetails={brokerOrderDetails}\n                            tourId={sendingToSpotTourId}\n                            onCancel={handleCloseSendingToSpot}\n                        />\n                    </FooterSideBarLayout>\n                </>\n            );\n        }\n\n        return null;\n    };\n\n    const descriptor = useMemo((): StateMachineEntityDescriptorT | null => {\n        if (!brokerOrderDetails?.id) {\n            return null;\n        }\n\n        return {\n            entityType: 'ORDER',\n            entityId: brokerOrderDetails.id,\n        };\n    }, [brokerOrderDetails]);\n\n    const { updateRequest } = useStateMachine<ApiBrokerOrderStatusT>(descriptor, {\n        isAllowFetch: false,\n    });\n\n    const cancelingBrokerOrderConfirmation = useModalDialog<CancelingBrokerOrderConfirmationDataT>();\n    const handleCancelBrokerOrder = React.useCallback(\n        (data: CancelingBrokerOrderConfirmationDataT) => {\n            if (!descriptor) {\n                return;\n            }\n\n            dispatch(\n                updateEntityStatus({\n                    descriptor,\n                    update: {\n                        entityType: 'ORDER',\n                        entityId: data.brokerOrderId,\n                        status: BrokerOrderStatusEnum.canceled,\n                    },\n                    successAlert: new CommonAnyAlert({\n                        type: CommonAlertTypeEnum.orderCancelled,\n                        data: {},\n                    }),\n                }),\n            );\n        },\n        [descriptor, dispatch],\n    );\n\n    useCloseModalDialogAfterRequest(updateRequest, [cancelingBrokerOrderConfirmation]);\n\n    const cancelUnavailableReason = brokerOrderDetails?.cancelUnavailableReason || null;\n    const isAvailableCanceled = brokerOrderDetails?.canBeCanceled || !!cancelUnavailableReason;\n\n    const editBlockReason = brokerOrderDetails?.editBlockReason || null;\n    const isDisabledRouteEditing = !brokerOrderDetails?.allowToEdit || !!editBlockReason;\n\n    const headerDropdownOptions = React.useMemo(() => {\n        return [\n            {\n                label: (\n                    <DropdownControlOptionLabelWithTooltip\n                        tooltipContent={editBlockReason ? t(editBlockReasonI18nMap[editBlockReason]) : null}\n                        icon={<RouteIcon fillColor={StyleGuideColorsEnum.slate} />}\n                        isDisabled={isDisabledRouteEditing}\n                        label={t('broker-order-details.header-actions.edit-route')}\n                    />\n                ),\n                isDisabled: isDisabledRouteEditing,\n                onSelect: (): void => {\n                    history.push(urlFactory.brokerOrderRouteEdit(brokerOrderId));\n                },\n            },\n            isAvailableCanceled ? SpecialOptionEnum.separator : null,\n            isAvailableCanceled\n                ? {\n                      label: (\n                          <DropdownControlOptionLabelWithTooltip\n                              tooltipContent={\n                                  cancelUnavailableReason\n                                      ? t(cancelUnavailableReasonI18nMap[cancelUnavailableReason])\n                                      : null\n                              }\n                              icon={<CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                              label={t('broker-order-details.header-actions.cancel')}\n                              isDisabled={!!cancelUnavailableReason}\n                          />\n                      ),\n                      isDisabled: !!cancelUnavailableReason,\n                      onSelect: (): void => {\n                          cancelingBrokerOrderConfirmation.setData({\n                              brokerOrderId,\n                          });\n                      },\n                  }\n                : null,\n        ];\n    }, [\n        isAvailableCanceled,\n        cancelUnavailableReason,\n        brokerOrderId,\n        isDisabledRouteEditing,\n        editBlockReason,\n        cancelingBrokerOrderConfirmation,\n        t,\n    ]);\n\n    const openLeftSidebar = useOpenLeftSidebar();\n    const handleOpenUserDetails = (params: {\n        partnerType?: PartnerTypeEnum;\n        partnerId?: PartnerIdT;\n        userId: UserIdT | null;\n    }) => {\n        const { partnerId, partnerType, userId } = params;\n        if (!userId) {\n            logWarning('failed to open user details in broker order details, empty user id');\n            return;\n        }\n\n        openLeftSidebar(\n            {\n                type: CommonSidebarsTypeEnum.contact,\n                partnerId,\n                partnerType,\n                userId,\n            },\n            {\n                isForceShowBackAction: true,\n            },\n        );\n    };\n\n    return (\n        <>\n            <GoogleMapContextProvider>\n                <PageTitle\n                    title={t('page-titles.broker-order-details', {\n                        number: brokerOrderDetails?.number || '',\n                    })}\n                />\n                <HorizontalColumnsLayout\n                    testSelector=\"broker-order-details\"\n                    className={cx('wrap')}\n                    leftColumnTitle={t('broker-order-details.main-tabs.details')}\n                    leftColumnNode={\n                        <SideBarLayoutContextWrap>\n                            <HeaderSideBarLayout>\n                                <HeaderSideBarContent\n                                    title={\n                                        brokerOrderDetails\n                                            ? t('broker-order-details.title', {\n                                                  number: brokerOrderDetails?.number || '',\n                                              })\n                                            : null\n                                    }\n                                    afterTitleNode={\n                                        <BrokerOrderStatusPill\n                                            isSymmetrical\n                                            status={brokerOrderDetails?.status}\n                                            isArchived={brokerOrderDetails?.archived}\n                                        />\n                                    }\n                                    onClose={closeOrderDetails}\n                                    dropdownOptions={headerDropdownOptions}\n                                />\n                                <SideBarHeaderRequestStatus\n                                    requestStatus={brokerOrderDetailsRequestStatus}\n                                    hasCachedData={Boolean(brokerOrderDetails)}\n                                    isForceShowLoader={\n                                        updateRequest.loading ||\n                                        spotRequestStatus.loading ||\n                                        editTimeWindowsRequestStatus.loading\n                                    }\n                                />\n                            </HeaderSideBarLayout>\n                            <SideBarLayout>\n                                <SideBarRequestStatus\n                                    requestStatus={brokerOrderDetailsRequestStatus}\n                                    hasCachedData={Boolean(brokerOrderDetails)}\n                                    onRetry={handleRefreshOnError}\n                                    SkeletonComponent={EntitySidebarSkeleton}\n                                >\n                                    {brokerOrderDetails ? (\n                                        <BrokerOrderDetails\n                                            isDisableAnyActions={brokerOrderDetailsRequestStatus.loading}\n                                            onOpenUserDetails={handleOpenUserDetails}\n                                            onStartAssignment={handleStartAssignment}\n                                            onStartSendToSpot={handleStartSendToSpot}\n                                            onStartEditTimeWindows={handleStartEditTimeWindows}\n                                            onStartEditStopContact={handleStartEditWaypointContact}\n                                            brokerOrderDetails={brokerOrderDetails}\n                                            onUpdateShipment={handleUpdateShipment}\n                                        />\n                                    ) : null}\n                                </SideBarRequestStatus>\n                            </SideBarLayout>\n                            {renderFooterNode()}\n                        </SideBarLayoutContextWrap>\n                    }\n                    rightColumnTitle={t('broker-order-details.main-tabs.info')}\n                    rightColumnNode={\n                        <div className={cx('tabs-wrap')}>\n                            <TabGroupWithDivider>\n                                {tabs.map((tab, tabIndex) => (\n                                    <TabLabel\n                                        key={tabIndex}\n                                        theme={TabsThemesEnum.light}\n                                        onClick={() => {\n                                            setActiveIndexTab(tabIndex);\n                                        }}\n                                        isActive={tabIndex === activeIndexTab}\n                                    >\n                                        {tab.label}\n                                    </TabLabel>\n                                ))}\n                            </TabGroupWithDivider>\n                            <div className={cx('tab')}>{tabs[activeIndexTab].node}</div>\n                        </div>\n                    }\n                />\n            </GoogleMapContextProvider>\n            <CancelBrokerOrderConfirmation\n                requestStatus={updateRequest}\n                data={cancelingBrokerOrderConfirmation.data}\n                onConfirm={handleCancelBrokerOrder}\n                onCancel={cancelingBrokerOrderConfirmation.onCancel}\n                onClose={cancelingBrokerOrderConfirmation.onClose}\n            />\n            <SideBars />\n        </>\n    );\n});\n\nconst BrokerOrderDetailsPage: React.FC<PropsT> = React.memo((props) => {\n    return (\n        <HighlightedEntityContextProvider>\n            <BrokerOrderDetailsPageContent {...props} />\n        </HighlightedEntityContextProvider>\n    );\n});\n\nexport default BrokerOrderDetailsPage;\n","import * as React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './TimelineSidebar.scss';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport moment from 'moment';\nimport Timeline from 'common/components/Timeline/Timeline';\nimport { FlagT, TimelineLevelT, TimeWindowT } from 'common/components/Timeline/models';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport { VehicleScheduleEventT } from 'common/store/vehicle-schedules/models';\nimport scrollIntoView from 'scroll-into-view';\nimport { useTranslation } from 'react-i18next';\nimport TimelineAutoSizer from '../TimelineAutoSizer/TimelineAutoSizer';\nimport { DATA_TIMELINE_ITEM_SELECTOR, LEFT_PADDING } from 'common/components/Timeline/constants';\nimport isNumber from 'lodash/isNumber';\nimport PlusSignIcon from 'common/icons/PlusSignIcon';\nimport MinusSignIcon from 'common/icons/MinusSignIcon';\nimport { DEFAULT_VIEW_MS, MAX_VIEW_MS, MIN_VIEW_MS, TARGET_TICKS_VIEW_COUNT, ZOOM_STEP_MS } from './constants';\nimport { MS_IN_DAY } from 'common/utils/time';\nimport { chooseDelimeterMultipleMs } from './utils';\n\nconst cx = classNames.bind(styles);\n\ntype TimelineSidebarLevelT<T> = TimelineLevelT<T> & {\n    icon?: React.ReactNode;\n};\n\ntype PropsT<T> = {\n    className?: string;\n    onClose?: () => void;\n    utcOffset?: number | null;\n    selectedTimeWindowId: string | null;\n    onTimeWindowClick?: (eventId: string) => void;\n    onTimeWindowBlur?: (eventId: string) => void;\n    onTimeWindowFocus?: (eventId: string) => void;\n    isLoading?: boolean;\n    levels: Array<TimelineSidebarLevelT<T>>;\n    flags?: Array<FlagT<T>>;\n};\n\nconst TimelineSidebar = <T = VehicleScheduleEventT,>(props: PropsT<T>) => {\n    const {\n        className,\n        onClose,\n        selectedTimeWindowId,\n        onTimeWindowClick,\n        onTimeWindowBlur,\n        onTimeWindowFocus,\n        isLoading,\n        levels,\n        utcOffset,\n        flags,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const innerRef = React.useRef<HTMLDivElement>(null);\n\n    const allTimeWindows = React.useMemo(() => {\n        return levels.reduce<Array<TimeWindowT<T>>>((result, level) => {\n            return [...result, ...level.timeWindows];\n        }, []);\n    }, [levels]);\n\n    const defaultStart = React.useMemo(() => {\n        return Date.now() - DEFAULT_VIEW_MS / 2;\n    }, []);\n\n    const start = React.useMemo(() => {\n        return Math.min(defaultStart, ...allTimeWindows.map((timeWindow) => timeWindow.start));\n    }, [allTimeWindows, defaultStart]);\n\n    const finish = React.useMemo(() => {\n        const result = allTimeWindows.map((timeWindow) => timeWindow.end);\n        if (start) {\n            result.push(start + DEFAULT_VIEW_MS);\n        }\n\n        return Math.max(...result);\n    }, [allTimeWindows, start]);\n\n    const scrollToTimeWindow = React.useCallback((timeWindowId: string) => {\n        setTimeout(() => {\n            const node = innerRef.current?.querySelector(`[${DATA_TIMELINE_ITEM_SELECTOR}=\"${timeWindowId}\"]`);\n            if (!node || !(node instanceof HTMLElement)) {\n                return;\n            }\n            scrollIntoView(node, {\n                time: 0,\n                align: {\n                    top: 0,\n                },\n            });\n        }, 0);\n    }, []);\n\n    const handleTimeWindowClick = React.useCallback(\n        (timeWindow: TimeWindowT<T>) => {\n            if (onTimeWindowClick) {\n                onTimeWindowClick(timeWindow.id);\n            }\n\n            setViewMs(Math.max(timeWindow.end - timeWindow.start, MIN_VIEW_MS));\n\n            scrollToTimeWindow(timeWindow.id);\n        },\n        [onTimeWindowClick, scrollToTimeWindow],\n    );\n\n    React.useEffect(() => {\n        if (selectedTimeWindowId) {\n            scrollToTimeWindow(selectedTimeWindowId);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [selectedTimeWindowId]);\n\n    const handleTimeWindowBlur = React.useCallback(\n        (timeWindow: TimeWindowT<T>) => {\n            if (onTimeWindowBlur) {\n                onTimeWindowBlur(timeWindow.id);\n            }\n        },\n        [onTimeWindowBlur],\n    );\n\n    const handleTimeWindowFocus = React.useCallback(\n        (timeWindow: TimeWindowT<T>) => {\n            if (onTimeWindowFocus) {\n                onTimeWindowFocus(timeWindow.id);\n            }\n        },\n        [onTimeWindowFocus],\n    );\n\n    const hasIcons = React.useMemo(() => {\n        return levels?.some((level) => !!level.icon);\n    }, [levels]);\n\n    const [viewMs, setViewMs] = React.useState<number>(DEFAULT_VIEW_MS);\n\n    const handlePlusZoom = React.useCallback(() => {\n        setViewMs((prevViewMs) => Math.max(prevViewMs - ZOOM_STEP_MS, MIN_VIEW_MS));\n    }, []);\n\n    const handleMinusZoom = React.useCallback(() => {\n        setViewMs((prevViewMs) => Math.min(prevViewMs + ZOOM_STEP_MS, MAX_VIEW_MS));\n    }, []);\n\n    const delimeterMultipleMs = React.useMemo(() => {\n        return chooseDelimeterMultipleMs({\n            viewMs,\n            targetTicks: TARGET_TICKS_VIEW_COUNT,\n        });\n    }, [viewMs]);\n\n    const formatter = React.useCallback(\n        (timestamp: number, utcOffset: number | null): string => {\n            const momentObj = moment(timestamp);\n\n            if (isNumber(utcOffset)) {\n                momentObj.utcOffset(utcOffset);\n            }\n\n            const isDateOnly = delimeterMultipleMs >= MS_IN_DAY;\n            return momentObj.format(isDateOnly ? 'ddd, D MMM' : 'ddd, D MMM HH:mm');\n        },\n        [delimeterMultipleMs],\n    );\n\n    return (\n        <div className={cs(cx('wrap'), className)}>\n            {isLoading && <LoaderOverlay />}\n            <div className={cx('header')}>\n                {onClose && (\n                    <TransparentTrigger\n                        onClick={onClose}\n                        leftIcon={<CloseIcon fillColor={StyleGuideColorsEnum.white} />}\n                        reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                    />\n                )}\n            </div>\n            {hasIcons && (\n                <div\n                    className={cx('icons')}\n                    style={{\n                        paddingLeft: `${LEFT_PADDING}px`,\n                    }}\n                >\n                    <div className={cx('icons__inner')}>\n                        {levels.map((level, levelIndex) => {\n                            return (\n                                <div key={levelIndex} className={cx('icons__item')}>\n                                    {level.icon}\n                                </div>\n                            );\n                        })}\n                    </div>\n                </div>\n            )}\n            <div className={cx('inner')} ref={innerRef}>\n                <TimelineAutoSizer>\n                    {(height) => (\n                        <>\n                            {isNumber(start) && isNumber(finish) && (\n                                <Timeline<T>\n                                    start={start}\n                                    finish={finish}\n                                    viewMs={viewMs}\n                                    viewHeight={height}\n                                    delimeterMultipleMs={delimeterMultipleMs}\n                                    utcOffset={utcOffset}\n                                    formatter={formatter}\n                                    timeWindowLevels={levels}\n                                    onTimeWindowClick={handleTimeWindowClick}\n                                    onTimeWindowBlur={handleTimeWindowBlur}\n                                    onTimeWindowFocus={handleTimeWindowFocus}\n                                    nowLabel={t('common:now')}\n                                    flags={flags}\n                                />\n                            )}\n                            <div className={cx('zoom')}>\n                                <div\n                                    className={cx('zoom-trigger', 'zoom-trigger--plus', {\n                                        'zoom-trigger--isClickable': viewMs > MIN_VIEW_MS,\n                                    })}\n                                    onClick={handlePlusZoom}\n                                >\n                                    <PlusSignIcon\n                                        size={DEFAULT_ICON_SIZE}\n                                        strokeColor={StyleGuideColorsEnum.charcoal}\n                                    />\n                                </div>\n                                <div\n                                    className={cx('zoom-trigger', 'zoom-trigger--minus', {\n                                        'zoom-trigger--isClickable': viewMs < MAX_VIEW_MS,\n                                    })}\n                                    onClick={handleMinusZoom}\n                                >\n                                    <MinusSignIcon\n                                        size={DEFAULT_ICON_SIZE}\n                                        strokeColor={StyleGuideColorsEnum.charcoal}\n                                    />\n                                </div>\n                            </div>\n                        </>\n                    )}\n                </TimelineAutoSizer>\n            </div>\n        </div>\n    );\n};\n\nexport default React.memo(TimelineSidebar) as typeof TimelineSidebar;\n","type ParamsT = {\n    shouldBrokerWindowAppointment: boolean | null | undefined;\n    originalDateTimeFrom: string | null | undefined;\n    originalDateTimeTo: string | null | undefined;\n    correctedDateTimeFrom: string | null | undefined;\n    correctedDateTimeTo: string | null | undefined;\n};\n\nexport const checkBrokerAppointmentStatus = (params: ParamsT) => {\n    const {\n        shouldBrokerWindowAppointment,\n        originalDateTimeFrom,\n        originalDateTimeTo,\n        correctedDateTimeTo,\n        correctedDateTimeFrom,\n    } = params;\n\n    const isCorrectedDateTime =\n        originalDateTimeFrom !== correctedDateTimeFrom || originalDateTimeTo !== correctedDateTimeTo;\n\n    return {\n        shouldBrokerWindowAppointment: !!shouldBrokerWindowAppointment,\n        shouldShowCorrectedDateTime: isCorrectedDateTime,\n    };\n};\n","import * as React from 'react';\nimport FilterPills, { FilterPillsConfigT } from 'common/components/FilterPills/FilterPills';\nimport { CurrencyEnum } from 'common/constants';\nimport { Trans, useTranslation } from 'react-i18next';\nimport TrailerDictIdFilterPill from 'common/components/filter-pills/TrailerDictIdFilterPill/TrailerDictIdFilterPill';\nimport Money from 'common/components/Money/Money';\nimport { FilterPillThemeEnum } from 'common/components/FilterPills/FilterPill/FilterPill';\nimport { formatDateRangeFilterValue, pillIconRendererMap } from 'common/components/FilterPills/pill-renderers';\nimport { QueryFiltersT, QueryFiltersKeysEnum } from '../query-models';\n\ntype PropsT = {\n    isCompact?: boolean;\n    className?: string;\n    queryFilters: QueryFiltersT;\n    setQueryFilters: (queryFilters: QueryFiltersT) => void;\n};\n\n// @ts-expect-error\nconst empty: React.ReactElement = null;\n\nconst SelectedFilters: React.FC<PropsT> = React.memo((props) => {\n    const { isCompact, queryFilters, setQueryFilters } = props;\n\n    const { t } = useTranslation();\n\n    const filterPillsConfig = React.useMemo(\n        (): FilterPillsConfigT<QueryFiltersT> => [\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: (queryFilters) => {\n                    const orderType = queryFilters[QueryFiltersKeysEnum.orderType];\n\n                    return t('common:transport-orders-page.filters.pills.order-type', {\n                        value: t(`common:transport-orders-page.filters.transport-order-type.${orderType}`),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.orderType],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('common:transport-orders-page.filters.pills.search', {\n                        value: queryFilters[QueryFiltersKeysEnum.searchText],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.searchText],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('common:transport-orders-page.filters.pills.plate-number', {\n                        value: queryFilters[QueryFiltersKeysEnum.plateNumber],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.plateNumber],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('common:transport-orders-page.filters.pills.origin-address', {\n                        value: queryFilters[QueryFiltersKeysEnum.originAddress],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.originAddress],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('common:transport-orders-page.filters.pills.destination-address', {\n                        value: queryFilters[QueryFiltersKeysEnum.destinationAddress],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.destinationAddress],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                renderIcon: (queryFilters, isCompact) => {\n                    return pillIconRendererMap.avatar(queryFilters[QueryFiltersKeysEnum.driverName], isCompact);\n                },\n                render: (queryFilters) => {\n                    return t('common:transport-orders-page.filters.pills.driver', {\n                        value: queryFilters[QueryFiltersKeysEnum.driverName],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.driverId, QueryFiltersKeysEnum.driverName],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: (queryFilters) => {\n                    const selectedTrailerId = queryFilters[QueryFiltersKeysEnum.dictTrailerId];\n\n                    return (\n                        <Trans\n                            i18nKey=\"common:transport-orders-page.filters.pills.trailer\"\n                            components={{\n                                value: <TrailerDictIdFilterPill trailerDictId={selectedTrailerId} />,\n                            }}\n                        />\n                    );\n                },\n                clearKeys: [QueryFiltersKeysEnum.dictTrailerId],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    const minPrice = queryFilters[QueryFiltersKeysEnum.minPrice];\n\n                    return (\n                        <Trans\n                            i18nKey=\"common:transport-orders-page.filters.pills.min-price\"\n                            components={{\n                                value: minPrice ? <Money amount={+minPrice} currency={CurrencyEnum.EUR} /> : empty,\n                            }}\n                        />\n                    );\n                },\n                clearKeys: [QueryFiltersKeysEnum.minPrice],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    const maxPrice = queryFilters[QueryFiltersKeysEnum.maxPrice];\n\n                    return (\n                        <Trans\n                            i18nKey=\"common:transport-orders-page.filters.pills.max-price\"\n                            components={{\n                                value: maxPrice ? <Money amount={+maxPrice} currency={CurrencyEnum.EUR} /> : empty,\n                            }}\n                        />\n                    );\n                },\n                clearKeys: [QueryFiltersKeysEnum.maxPrice],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const pickupDateFrom = queryFilters[QueryFiltersKeysEnum.pickupDateFrom];\n                    const pickupDateTo = queryFilters[QueryFiltersKeysEnum.pickupDateTo];\n\n                    return t('common:transport-orders-page.filters.pills.pickup', {\n                        value: formatDateRangeFilterValue(pickupDateFrom, pickupDateTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.pickupDateFrom, QueryFiltersKeysEnum.pickupDateTo],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const dropOffDateFrom = queryFilters[QueryFiltersKeysEnum.dropOffDateFrom];\n                    const dropOffDateTo = queryFilters[QueryFiltersKeysEnum.dropOffDateTo];\n\n                    return t('common:transport-orders-page.filters.pills.drop-off', {\n                        value: formatDateRangeFilterValue(dropOffDateFrom, dropOffDateTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.dropOffDateFrom, QueryFiltersKeysEnum.dropOffDateTo],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const createdDateFrom = queryFilters[QueryFiltersKeysEnum.receiveDatesFrom];\n                    const createdDateTo = queryFilters[QueryFiltersKeysEnum.receiveDatesTo];\n\n                    return t('common:transport-orders-page.filters.pills.received', {\n                        value: formatDateRangeFilterValue(createdDateFrom, createdDateTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.receiveDatesFrom, QueryFiltersKeysEnum.receiveDatesTo],\n            },\n            {\n                theme: FilterPillThemeEnum.tomatoRed,\n                render: () => {\n                    return t('common:transport-orders-page.filters.pills.spot');\n                },\n                clearKeys: [QueryFiltersKeysEnum.spot],\n            },\n            {\n                theme: FilterPillThemeEnum.tomatoRed,\n                render: () => {\n                    return t('common:transport-orders-page.filters.pills.dedicated');\n                },\n                clearKeys: [QueryFiltersKeysEnum.dedicated],\n            },\n            {\n                theme: FilterPillThemeEnum.attention,\n                render: () => {\n                    return t('common:transport-orders-page.warning-filters.running-out-of-time-to-assign-driver');\n                },\n                clearKeys: [QueryFiltersKeysEnum.runningOutOfTimeToAssignDriver],\n            },\n            {\n                theme: FilterPillThemeEnum.tomatoRed,\n                render: () => {\n                    return t('common:transport-orders-page.warning-filters.ran-out-of-time-to-assign-driver');\n                },\n                clearKeys: [QueryFiltersKeysEnum.ranOutOfTimeToAssignDriver],\n            },\n            {\n                theme: FilterPillThemeEnum.attention,\n                render: () => {\n                    return t('common:transport-orders-page.warning-filters.running-out-of-time-to-assign-assets');\n                },\n                clearKeys: [QueryFiltersKeysEnum.runningOutOfTimeToAssignAssets],\n            },\n            {\n                theme: FilterPillThemeEnum.tomatoRed,\n                render: () => {\n                    return t('common:transport-orders-page.warning-filters.ran-out-of-time-to-assign-assets');\n                },\n                clearKeys: [QueryFiltersKeysEnum.ranOutOfTimeToAssignAssets],\n            },\n            {\n                theme: FilterPillThemeEnum.tomatoRed,\n                render: () => {\n                    return t('common:transport-orders-page.warning-filters.expired');\n                },\n                clearKeys: [QueryFiltersKeysEnum.expired],\n            },\n            {\n                theme: FilterPillThemeEnum.tomatoRed,\n                render: () => {\n                    return t('common:transport-orders-page.warning-filters.shipment-missed');\n                },\n                clearKeys: [QueryFiltersKeysEnum.missed],\n            },\n            {\n                theme: FilterPillThemeEnum.attention,\n                render: () => {\n                    return t('common:transport-orders-page.warning-filters.tour-delaying');\n                },\n                clearKeys: [QueryFiltersKeysEnum.delaying],\n            },\n        ],\n        [t],\n    );\n\n    return (\n        <FilterPills<QueryFiltersT>\n            isCompact={isCompact}\n            queryFilters={queryFilters}\n            setQueryFilters={setQueryFilters}\n            config={filterPillsConfig}\n        />\n    );\n});\n\nexport default SelectedFilters;\n","// extracted by mini-css-extract-plugin\nexport default {\"text\":\"TimePillLabel__text___QrGDV\",\"fadeIn\":\"TimePillLabel__fadeIn___LAhbp\",\"blinking\":\"TimePillLabel__blinking___OV8Ro\"};","import * as React from 'react';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { ApiEmissionClassT } from 'common/constants';\nimport EmissionClassLabel from 'common/components/EmissionClassLabel/EmissionClassLabel';\n\ntype PropsT = {\n    className?: string;\n    emissionClass: ApiEmissionClassT | null | undefined;\n};\n\nconst EmissionClassCell: React.FC<PropsT> = React.memo((props) => {\n    const { emissionClass, className } = props;\n\n    return (\n        <PillLabel className={className} theme={PillLabelThemeEnum.slate} isSymmetrical>\n            <EmissionClassLabel isCompact emissionClass={emissionClass} />\n        </PillLabel>\n    );\n});\n\nexport default EmissionClassCell;\n","import * as React from 'react';\nimport { useSelector } from 'react-redux';\nimport PartnerPermissionContext from 'common/contexts/partner-permission-context';\nimport { selectPartnerPermissions } from 'broker-admin/store/partner/details/selectors';\n\ntype PropsT = {\n    partnerId: PartnerIdT;\n    children?: React.ReactNode;\n};\n\nconst PartnerPermissionsContextProvider: React.FC<PropsT> = React.memo((props) => {\n    const { partnerId, children } = props;\n\n    const partnerPermissions = useSelector(selectPartnerPermissions(partnerId));\n\n    return <PartnerPermissionContext.Provider value={partnerPermissions}>{children}</PartnerPermissionContext.Provider>;\n});\n\nexport default PartnerPermissionsContextProvider;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"ActionOverlay__wrap___P_sOA\",\"overlay\":\"ActionOverlay__overlay___5UYza\",\"fadeIn\":\"ActionOverlay__fadeIn___mIyPf\",\"blinking\":\"ActionOverlay__blinking___qUzlo\"};","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"PartnerTrucksPage__fadeIn___wQkVN\",\"blinking\":\"PartnerTrucksPage__blinking___ElLJC\"};","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst ExtraPointIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, strokeColor, ...restProps } = props;\n\n    return (\n        <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" {...restProps}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    d=\"M14.875 8.65c0 1.928-1.575 4.342-4.62 7.133l-.255.225-.255-.233c-3.045-2.783-4.62-5.197-4.62-7.125 0-2.88 2.115-5.025 4.875-5.025s4.875 2.138 4.875 5.025z\"\n                    fill={fillColor}\n                />\n                <path\n                    d=\"M10.75 5.5v2.25H13v1.5h-2.25v2.25h-1.5V9.25H7v-1.5h2.25V5.5h1.5zm3.75 3.15C14.5 5.927 12.512 4 10 4 7.487 4 5.5 5.928 5.5 8.65c0 1.755 1.463 4.08 4.5 6.855 3.037-2.775 4.5-5.1 4.5-6.855zM10 2.5c3.15 0 6 2.415 6 6.15 0 2.49-2.002 5.438-6 8.85-3.997-3.412-6-6.36-6-8.85C4 4.915 6.85 2.5 10 2.5z\"\n                    fill={strokeColor}\n                />\n            </g>\n        </svg>\n    );\n};\n\nExtraPointIcon.displayName = 'ExtraPointIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default ExtraPointIcon;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './TelematicUpdateDateCell.scss';\n\nimport isNil from 'lodash/isNil';\nimport HumanReadableFullDateCell from '../HumanReadableFullDateCell/HumanReadableFullDateCell';\n\ntype PropsT = {\n    telematicUpdatedDate: string | null | undefined;\n    placeholder: string;\n};\n\nconst cx = classNames.bind(styles);\n\nconst TelematicUpdateDateCell: React.FC<PropsT> = React.memo((props) => {\n    const { telematicUpdatedDate, placeholder } = props;\n\n    if (isNil(telematicUpdatedDate)) {\n        return <div className={cx('placeholder')}>{placeholder}</div>;\n    }\n\n    return <HumanReadableFullDateCell isBold date={telematicUpdatedDate} />;\n});\n\nexport default TelematicUpdateDateCell;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './WarningIndicatorCell.scss';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport WarningIcon from 'common/icons/WarningIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\n\ntype PropsT = {\n    isShow: boolean;\n    tooltipText?: React.ReactNode | null;\n};\n\nconst cx = classNames.bind(styles);\n\nconst WarningIndicatorCell: React.FC<PropsT> = React.memo((props) => {\n    const { tooltipText, isShow } = props;\n    if (!tooltipText || !isShow) {\n        return null;\n    }\n\n    return (\n        <Tooltip\n            className={cx('tooltip')}\n            position={TooltipPositionEnum.topCenter}\n            theme={TooltipThemeEnum.black}\n            tooltipNode={\n                <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                    {tooltipText}\n                </TooltipContent>\n            }\n        >\n            {() => <WarningIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n        </Tooltip>\n    );\n});\n\nexport default WarningIndicatorCell;\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT, RoutePointFieldsEnum } from './constants';\nimport { checkNotEmpty } from 'common/utils/form-validators';\nimport { checkIsAvailableCountryForShip } from 'common/store/country-settings-dict/utils/check-location';\n\nimport { CountrySettingsByCodeT } from 'common/store/country-settings-dict/models';\nimport { OrderCreationReservePointTypeEnum } from 'common/utils/api/models';\nimport { editablePointTypeSet } from 'common/store/order-creation/constants';\nimport { getOperationUnavailableReasonTranslation } from 'common/components/OperationUnavailableReasonsAlert/utils';\n\nconst verifyLocation = (t: TFunction, location: LocationT | undefined | null): string | null => {\n    if (!location) {\n        return null;\n    }\n\n    if (Number.isNaN(location.utcOffsetMinutes)) {\n        return t('common:new-order-form.errors.wrong-utc-offset');\n    }\n\n    if (\n        !location.addressComponents?.zipCode &&\n        !location.addressComponents?.city &&\n        !location.addressComponents?.countryCode &&\n        !location.addressComponents?.street1 &&\n        !location.addressComponents?.street2\n    ) {\n        return t('common:new-order-form.errors.unsupported-area');\n    }\n\n    if (!location.addressComponents?.countryCode) {\n        return t('common:new-order-form.errors.need-address-details.country-code');\n    }\n\n    if (!location.addressComponents?.city) {\n        return t('common:new-order-form.errors.need-address-details.locality');\n    }\n\n    return null;\n};\n\nconst REQUIRED_FIELDS = [\n    FieldsEnum.trailerDictId,\n    // FieldsEnum.clientDropOffTimeWindow,\n    // FieldsEnum.clientPickUpTimeWindow,\n] as const;\n\nconst BROKER_REQUIRED_FIELDS = [...REQUIRED_FIELDS, FieldsEnum.shipper] as const;\n\nconst convertCountryCode = (dictCountryCode: string) => dictCountryCode.toUpperCase();\n\ntype DataT = {\n    isBroker: boolean;\n    countriesSettingsByCode: CountrySettingsByCodeT;\n};\n\nconst validate = (t: TFunction, values: FormValuesT, data: DataT): FormErrorsT => {\n    const { isBroker, countriesSettingsByCode } = data;\n\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, isBroker ? BROKER_REQUIRED_FIELDS : REQUIRED_FIELDS, values),\n    };\n\n    const excludedCountries = values[FieldsEnum.excludedCountries] || [];\n    const excludedCountriesSet = new Set(excludedCountries.map(convertCountryCode));\n\n    const routeFormValue = values[FieldsEnum.route];\n    routeFormValue.forEach((routePointFormValue, routePointIndex) => {\n        if (routePointFormValue.type && !editablePointTypeSet.has(routePointFormValue.type)) {\n            return;\n        }\n\n        const isFirstRoutePointIndex = routePointIndex === 0;\n        const isLastRoutePointIndex = routePointIndex === routeFormValue.length - 1;\n\n        const addRoutePointError = (fieldName: RoutePointFieldsEnum, message: string) => {\n            if (!errors[FieldsEnum.route]) {\n                errors[FieldsEnum.route] = [];\n            }\n\n            if (!errors[FieldsEnum.route][routePointIndex]) {\n                errors[FieldsEnum.route][routePointIndex] = {};\n            }\n\n            errors[FieldsEnum.route][routePointIndex][fieldName] = message;\n        };\n\n        const routePointLocation = routeFormValue[routePointIndex][RoutePointFieldsEnum.location];\n        if (!routePointLocation) {\n            addRoutePointError(RoutePointFieldsEnum.location, t('common:new-order-form.errors.required-select-item'));\n        }\n\n        const routePointLocationError = verifyLocation(t, routePointLocation);\n        if (routePointLocation && routePointLocationError) {\n            addRoutePointError(RoutePointFieldsEnum.location, routePointLocationError);\n        }\n\n        if (!checkIsAvailableCountryForShip(routePointLocation, countriesSettingsByCode)) {\n            addRoutePointError(RoutePointFieldsEnum.location, t('common:new-order-form.errors.unsupported-country'));\n        }\n\n        if (excludedCountriesSet.has(routePointLocation?.addressComponents?.countryCode || '')) {\n            let excludeLocationErrorMessage;\n\n            if (routePointFormValue?.[RoutePointFieldsEnum.type] === OrderCreationReservePointTypeEnum.driveThrough) {\n                excludeLocationErrorMessage = t('common:new-order-form.errors.excluded-drive-thru-country');\n            }\n\n            if (routePointFormValue?.[RoutePointFieldsEnum.type] === OrderCreationReservePointTypeEnum.shipment) {\n                if (isFirstRoutePointIndex) {\n                    excludeLocationErrorMessage = t('common:new-order-form.errors.excluded-origin-country');\n                } else if (isLastRoutePointIndex) {\n                    excludeLocationErrorMessage = t('common:new-order-form.errors.excluded-destination-country');\n                } else {\n                    excludeLocationErrorMessage = t('common:new-order-form.errors.excluded-pickup-delivery-country');\n                }\n            }\n\n            if (excludeLocationErrorMessage) {\n                addRoutePointError(RoutePointFieldsEnum.location, excludeLocationErrorMessage);\n            }\n        }\n    });\n\n    const shipper = values[FieldsEnum.shipper];\n    if (isBroker && shipper !== null) {\n        const firstsOperationUnavailableReason = shipper?.orderCreationUnavailableReasons?.[0];\n        if (firstsOperationUnavailableReason) {\n            errors[FieldsEnum.shipper] = getOperationUnavailableReasonTranslation(\n                t,\n                firstsOperationUnavailableReason,\n                {},\n            );\n        }\n    }\n\n    return errors;\n};\n\nexport default validate;\n","import { FieldsEnum, RoutePointFieldsEnum, RoutePointFormValuesT } from './constants';\n\nexport const getRoutePointFieldName = <T extends RoutePointFieldsEnum>(\n    pointIndex: number,\n    routePointField: T,\n): `${FieldsEnum.route}.${number}.${T}` => {\n    return `${FieldsEnum.route}.${pointIndex}.${routePointField}`;\n};\n\nexport const checkIsAvailableRoutePoint = (routePointValues: RoutePointFormValuesT) => {\n    return !!routePointValues[RoutePointFieldsEnum.location];\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"name\":\"ContractNameCell__name___UFZoj\",\"fadeIn\":\"ContractNameCell__fadeIn___NxZKK\",\"blinking\":\"ContractNameCell__blinking___FWqXw\"};","import { disableCompaniesDataSourceSet, FieldsEnum, FormValuesT } from './constants';\nimport { QueryFiltersT, QueryFiltersKeysEnum } from 'broker-admin/layouts/StatisticsPage/query-models';\nimport { DEFAULT_DATA_SOURCE } from 'broker-admin/layouts/StatisticsPage/constants';\nimport { simpleStringFormatter } from 'common/utils/form-formatters';\n\nconst getQueryFilters = (values: FormValuesT): QueryFiltersT => {\n    const dataSource = values[FieldsEnum.dataSource] || undefined;\n\n    let companiesQueryFilters: QueryFiltersT = {\n        [QueryFiltersKeysEnum.shipperId]: values[FieldsEnum.shipperId] || undefined,\n        [QueryFiltersKeysEnum.shipperName]: values[FieldsEnum.shipperName] || undefined,\n        [QueryFiltersKeysEnum.carrierId]: values[FieldsEnum.carrierId] || undefined,\n        [QueryFiltersKeysEnum.carrierName]: values[FieldsEnum.carrierName] || undefined,\n    };\n\n    if (disableCompaniesDataSourceSet.has(dataSource)) {\n        companiesQueryFilters = {};\n    }\n\n    const queryFilters: QueryFiltersT = {\n        [QueryFiltersKeysEnum.dataSource]: dataSource === DEFAULT_DATA_SOURCE ? undefined : dataSource,\n        [QueryFiltersKeysEnum.fromCountryCode]: values[FieldsEnum.fromCountryCode] || undefined,\n        [QueryFiltersKeysEnum.fromZipCode]: simpleStringFormatter(values[FieldsEnum.fromZipCode]) || undefined,\n        [QueryFiltersKeysEnum.toCountryCode]: values[FieldsEnum.toCountryCode] || undefined,\n        [QueryFiltersKeysEnum.toZipCode]: simpleStringFormatter(values[FieldsEnum.toZipCode]) || undefined,\n        ...companiesQueryFilters,\n    };\n\n    return queryFilters;\n};\n\nexport default getQueryFilters;\n","import * as React from 'react';\n\ntype PropsT = {\n    model: string | null | undefined;\n    plateNumber: string | null | undefined;\n};\n\nconst AssetLabelFormatter: React.FC<PropsT> = React.memo((props) => {\n    const { model, plateNumber } = props;\n\n    return <span>{[plateNumber, model].filter(Boolean).join(' / ')}</span>;\n});\n\nexport default AssetLabelFormatter;\n","import isArray from 'lodash/isArray';\n\n// eslint-disable-next-line import/no-unresolved\nimport { FormikValues } from 'formik/dist/types';\nimport get from 'lodash/get';\n\nconst MAX_PERCENT = 100;\nconst MIN_PERCENT = 0;\n\nconst getterFormFillPercent = (progressSteps: Array<string | string[]>) => (values: FormikValues) => {\n    const percentStep = (MAX_PERCENT - MIN_PERCENT) / progressSteps.length;\n\n    const percent = progressSteps.reduce<number>((progress, progressStep) => {\n        let isFill: boolean;\n        if (isArray(progressStep)) {\n            isFill = progressStep.some((field) => !!get(values, field));\n        } else {\n            isFill = get(values, progressStep);\n        }\n\n        return progress + (isFill ? percentStep : 0);\n    }, 0);\n\n    return percent;\n};\n\nexport default getterFormFillPercent;\n","import * as React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './SideBarMessage.scss';\nimport BigDoneIcon from 'common/icons/BigDoneIcon';\nimport BigEmptyIcon from 'common/icons/BigEmptyIcon';\nimport BigWarningIcon from 'common/icons/BigWarningIcon';\nimport BigSearchIcon from 'common/icons/BigSearchIcon';\nimport Button, { ButtonPropsT } from 'common/components/Button/Button';\nimport FeaturesContext from 'common/contexts/features';\nimport { ClientFeatureEnum } from 'common/utils/features/client-features-config';\nimport { TraceIdLabel } from 'common/components/TraceIdLabel/TraceIdLabel';\n\nconst cx = classNames.bind(styles);\n\nexport enum SideBarMessageEnum {\n    done = 'done',\n    empty = 'empty',\n    search = 'search',\n    warning = 'warning',\n}\n\nexport type SideBarMessagePropsT = {\n    title: React.ReactNode;\n    description?: string;\n    traceId?: TraceIdT | null;\n    iconType: SideBarMessageEnum;\n    className?: string;\n    actionsProps?: Array<ButtonPropsT | null>;\n};\n\nconst SideBarMessage: React.FC<SideBarMessagePropsT> = React.memo((props) => {\n    const { className, title, description, traceId, iconType, actionsProps } = props;\n\n    const featuresContext = React.useContext(FeaturesContext);\n    const isShowTraceId = featuresContext?.checkActiveClientFeature?.(ClientFeatureEnum.showTraceId);\n\n    return (\n        <div className={cs(cx('message'), className)}>\n            <div className={cx('icon')}>\n                {iconType === SideBarMessageEnum.done && <BigDoneIcon />}\n                {iconType === SideBarMessageEnum.empty && <BigEmptyIcon />}\n                {iconType === SideBarMessageEnum.search && <BigSearchIcon />}\n                {iconType === SideBarMessageEnum.warning && <BigWarningIcon />}\n            </div>\n            <div className={cx('title')}>{title}</div>\n            {!!description && <div className={cx('description')}>{description}</div>}\n            {isShowTraceId && traceId && (\n                <div className={cx('trace-id')}>\n                    <TraceIdLabel traceId={traceId} />\n                </div>\n            )}\n            {Boolean(actionsProps?.length) && (\n                <div className={cx('actions')}>\n                    {actionsProps?.map((actionProps, index) => (\n                        <Button key={index} type=\"button\" {...actionProps} />\n                    ))}\n                </div>\n            )}\n        </div>\n    );\n});\n\nexport default SideBarMessage;\n","// extracted by mini-css-extract-plugin\nexport default {\"additional-services-group__block\":\"AdditionalServicesGroup__additional-services-group__block___vDNtE\",\"additional-services-group__trigger\":\"AdditionalServicesGroup__additional-services-group__trigger___h0pxr\",\"additional-services-group__head\":\"AdditionalServicesGroup__additional-services-group__head___ASg8a\",\"additional-services-group__expand-icon\":\"AdditionalServicesGroup__additional-services-group__expand-icon___hPy0k\",\"additional-services-group__title\":\"AdditionalServicesGroup__additional-services-group__title___HvHSG\",\"additional-services-group__count\":\"AdditionalServicesGroup__additional-services-group__count___Hcz9t\",\"additional-service\":\"AdditionalServicesGroup__additional-service___P74DL\",\"additional-service__label\":\"AdditionalServicesGroup__additional-service__label___fF7sb\",\"additional-service__cost\":\"AdditionalServicesGroup__additional-service__cost___kKifq\",\"additional-service__cost--isActive\":\"AdditionalServicesGroup__additional-service__cost--isActive___tXhmN\",\"fadeIn\":\"AdditionalServicesGroup__fadeIn___Pw7X5\",\"blinking\":\"AdditionalServicesGroup__blinking___zEgcj\"};","import { FormValuesT, FieldsEnum } from './constants';\nimport { QueryFiltersT } from 'broker-admin/layouts/SpotRequestsPage/SpotRequestListPage/query-models';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst getInitialValues = (queryFilters: QueryFiltersT): FormValuesT => {\n    const values: FormValuesT = {\n        [FieldsEnum.createdByUserId]: null,\n        [FieldsEnum.createdByUserName]: null,\n        [FieldsEnum.createdByShipperId]: null,\n        [FieldsEnum.createdByShipperName]: null,\n        [FieldsEnum.dictTrailerTypeId]: null,\n        [FieldsEnum.createDates]: null,\n        [FieldsEnum.pickupAddress]: null,\n        [FieldsEnum.pickupDates]: null,\n        [FieldsEnum.dropoffAddress]: null,\n        [FieldsEnum.dropoffDates]: null,\n    };\n\n    return values;\n};\n\nexport default getInitialValues;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './InviteUserForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport { AsyncFormErrorsT, FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { ApiInviteUserRoleT, PartnerTypeEnum, RolesEnum, UserRoleT, UserStatusEnum } from 'common/utils/api/models';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport Input from 'common/components/Input/Input';\nimport { CompanyContactT, InviteUserRequestT } from 'common/store/members/models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport useAsyncFormErrors from 'common/utils/hooks/useAsyncFormErrors';\nimport asyncValidate from './async-validations';\nimport { TranziitApiRequestErrorSubTypeEnum } from 'common/utils/api/tranziit/errors/tranziit-api-errors';\nimport UserRolesDropdown, {\n    getAvailableRolesByPartnerType,\n} from 'common/components/dropdowns/UserRolesDropdown/UserRolesDropdown';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { logWarning } from 'common/utils/logger';\n\nimport BrokerTeamsSuggest from 'common/components/dropdowns/BrokerTeamsSuggest/BrokerTeamsSuggest';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    contacts: CompanyContactT[];\n    addMemberRequestStatus: RequestStatusT;\n    onInviteUser: (newUser: InviteUserRequestT) => void;\n    initialEmail: string | null | undefined;\n    allowSelectTeam: boolean;\n    partnerType: PartnerTypeEnum;\n};\n\nexport const INITIAL_VALUES: FormValuesT = {\n    [FieldsEnum.email]: '',\n    [FieldsEnum.roles]: [],\n    [FieldsEnum.teamIds]: [],\n};\n\nconst INITIAL_TOUCHED: Record<FieldsEnum, boolean> = {\n    [FieldsEnum.roles]: true,\n    [FieldsEnum.email]: false,\n    [FieldsEnum.teamIds]: false,\n};\n\nconst AVAILABLE_PERMISSIONS_ROLES_SET: Record<string, Set<UserRoleT>> = {\n    addUsers: new Set([RolesEnum.companyAdmin]),\n};\n\nconst InviteUserForm: React.FC<PropsT> = (props) => {\n    const { contacts, onInviteUser, initialEmail, addMemberRequestStatus, allowSelectTeam, partnerType } = props;\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const availableRoles = React.useMemo((): Array<RolesEnum> => {\n        if (!partnerType) {\n            logWarning('Empty partnerType in InviteUserForm availableRoles');\n            return [];\n        }\n        return getAvailableRolesByPartnerType(partnerType);\n    }, [partnerType]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = {\n            ...INITIAL_VALUES,\n        };\n\n        if (initialEmail) {\n            values[FieldsEnum.email] = initialEmail;\n        }\n\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [initialEmail]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        initialTouched: INITIAL_TOUCHED,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const teamIds = values[FieldsEnum.teamIds];\n\n            const roles = values[FieldsEnum.roles];\n            if (!roles?.length) {\n                return;\n            }\n\n            onInviteUser({\n                email: values[FieldsEnum.email],\n                roles: roles as ApiInviteUserRoleT[],\n                teamsIds: teamIds,\n            });\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const selectedRoles = formik.values[FieldsEnum.roles];\n    const warnings = React.useMemo(() => {\n        const hasUserCanAddUser = contacts.find((contact) => {\n            return (\n                contact.userStatus !== UserStatusEnum.archived &&\n                contact.roles.some((role) => {\n                    return role && AVAILABLE_PERMISSIONS_ROLES_SET.addUsers.has(role);\n                })\n            );\n        });\n\n        const hasAvailableAddUsersRole = selectedRoles.some((role) => {\n            return AVAILABLE_PERMISSIONS_ROLES_SET.addUsers.has(role);\n        });\n\n        if (selectedRoles && !hasAvailableAddUsersRole && !hasUserCanAddUser) {\n            return {\n                [FieldsEnum.roles]: t('common:team-members.warnings.wrong-role-for-add-users', {\n                    role: t(`common:team-members.roles.${selectedRoles}`),\n                }),\n            };\n        }\n\n        return {\n            [FieldsEnum.roles]: null,\n        };\n    }, [contacts, selectedRoles, t]);\n\n    const renderEmailError = (asyncError: AsyncFormErrorsT[FieldsEnum.email]): string | null => {\n        if (asyncError === TranziitApiRequestErrorSubTypeEnum.emailAlreadyExist) {\n            const sameEmailContact = contacts.find((contact) => {\n                return contact.email === formik.values[FieldsEnum.email];\n            });\n\n            if (sameEmailContact?.userStatus === UserStatusEnum.pending) {\n                return t('common:team-members.invite-form.errors.email-already-exist-pending');\n            }\n\n            if (sameEmailContact?.userStatus === UserStatusEnum.archived) {\n                return t('common:team-members.invite-form.errors.email-already-exist-archived');\n            }\n\n            return t('common:team-members.invite-form.errors.email-already-exist');\n        }\n\n        return asyncError || null;\n    };\n\n    const asyncErrors = React.useMemo(() => {\n        return asyncValidate(addMemberRequestStatus);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [addMemberRequestStatus.error]);\n\n    const { asyncFormErrors, resetAsyncFormErrors } = useAsyncFormErrors(asyncErrors);\n\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <div className={cx('form')}>\n                <FormikField\n                    name={FieldsEnum.email}\n                    error={formik.errors[FieldsEnum.email]}\n                    meta={formik.getFieldMeta(FieldsEnum.email)}\n                    asyncError={renderEmailError(asyncFormErrors[FieldsEnum.email])}\n                    resetAsyncError={resetAsyncFormErrors}\n                    label={t('common:team-members.invite-form.fields.email.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <Input\n                            name={FieldsEnum.email}\n                            value={formik.values[FieldsEnum.email]}\n                            placeholder=\"\"\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    name={FieldsEnum.roles}\n                    error={formik.errors[FieldsEnum.roles]}\n                    meta={formik.getFieldMeta(FieldsEnum.roles)}\n                    warning={warnings[FieldsEnum.roles]}\n                    label={t('common:team-members.invite-form.fields.position.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <UserRolesDropdown\n                            value={formik.values[FieldsEnum.roles]}\n                            onChange={props.onChange}\n                            placeholder={t('common:team-members.invite-form.fields.position.placeholder')}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            availableRoles={availableRoles}\n                            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                        />\n                    )}\n                </FormikField>\n                {allowSelectTeam && (\n                    <FormikField\n                        name={FieldsEnum.teamIds}\n                        error={formik.errors[FieldsEnum.teamIds]}\n                        meta={formik.getFieldMeta(FieldsEnum.teamIds)}\n                        label={t('common:team-members.invite-form.fields.teams.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <BrokerTeamsSuggest\n                                values={formik.values[FieldsEnum.teamIds]}\n                                onSelect={props.onChange}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                allowedQueryMinLength={0}\n                                overlayPosition={DropdownOverlayPositionEnum.topLeft}\n                                placeholder={t('common:team-members.invite-form.fields.teams.placeholder')}\n                            />\n                        )}\n                    </FormikField>\n                )}\n            </div>\n            <Button\n                theme={ButtonThemeEnum.primary}\n                isLoading={addMemberRequestStatus.loading}\n                isFullWidth\n                isCenterContent\n                type=\"submit\"\n            >\n                {t('common:team-members.submit.ready')}\n            </Button>\n        </form>\n    );\n};\n\nexport default InviteUserForm;\n","import { ApiDocumentT, DocumentStatusEnum, DocumentTypeEnum } from 'common/utils/api/models';\nimport { logWarning } from 'common/utils/logger';\nimport { DocumentT } from '../models';\n\nconst prepareDocument = (apiDocument: ApiDocumentT): DocumentT | null => {\n    const { id, status } = apiDocument;\n\n    if (!id) {\n        logWarning('document without id!');\n        return null;\n    }\n\n    if (!status) {\n        logWarning('document without status!');\n    }\n\n    return {\n        ...apiDocument,\n        id,\n        dictDocumentId: String(apiDocument.dictDocumentId),\n        documentType: apiDocument.documentType as DocumentTypeEnum,\n        status: status as DocumentStatusEnum,\n    };\n};\n\nexport default prepareDocument;\n","export enum FieldsEnum {\n    dictTrailerId = 'dictTrailerId',\n\n    address = 'address',\n\n    validFromDates = 'validFromDates',\n    validTillDates = 'validTillDates',\n\n    createdDates = 'createdDates',\n\n    createdById = 'createdById',\n    createdByName = 'createdByName',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.dictTrailerId]: string | null;\n\n    [FieldsEnum.address]: string | null;\n\n    [FieldsEnum.validTillDates]: DateRangeT | null;\n    [FieldsEnum.validFromDates]: DateRangeT | null;\n\n    [FieldsEnum.createdDates]: DateRangeT | null;\n\n    [FieldsEnum.createdById]: string | null;\n    [FieldsEnum.createdByName]: string | null;\n};\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './HumanReadableFullDateCell.scss';\n\nimport isNil from 'lodash/isNil';\nimport { formatHumanReadableFullDate } from 'common/utils/time';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    date: string | null | undefined;\n    className?: string;\n    isBold?: boolean;\n    isBigFont?: boolean;\n    isAllowNever?: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nconst HumanReadableFullDateCell: React.FC<PropsT> = React.memo((props) => {\n    const { date, isBold, isBigFont, className, isAllowNever } = props;\n\n    const { t } = useTranslation();\n\n    if (isNil(date)) {\n        return null;\n    }\n\n    return (\n        <div className={cs(cx('date', { 'date--isBold': isBold, 'date--isBigFont': isBigFont }), className)}>\n            {formatHumanReadableFullDate(t, date, { isAllowNever })}\n        </div>\n    );\n});\n\nexport default HumanReadableFullDateCell;\n","// extracted by mini-css-extract-plugin\nexport default {\"submit\":\"CompanySignUpForm__submit___uOcP0\",\"field--zip\":\"CompanySignUpForm__field--zip___Kp8iQ\",\"field--city\":\"CompanySignUpForm__field--city___S1oki\",\"error\":\"CompanySignUpForm__error___G5FCs\",\"fadeIn\":\"CompanySignUpForm__fadeIn___Z1xVW\",\"blinking\":\"CompanySignUpForm__blinking___Y7woI\"};","import { generatePath } from 'react-router';\n\nimport { OMSRoutesEnum, ProfileRoutesEnum, ProfileDocumentsRoutesEnum, CommonRoutesEnum } from 'common/constants';\nimport { RFQRoutesEnum } from 'shipper/constants';\nimport { ApiDocumentTypeT } from 'common/utils/api/models';\nimport qs from 'qs';\nimport { CommonSidebarsTypeEnum, SidebarQueryKeysEnum } from 'common/layouts/SideBars/models';\nimport { JSONArrayParam } from 'common/utils/query';\nimport { DocumentDetailsSidebarDataT } from 'common/layouts/SideBars/contents/DocumentDetailsSidebarContent/models';\nimport { getRePath, RePathOptionsT } from 'common/utils/urls';\n\nexport const urlFactory = {\n    orderList: () => {\n        return CommonRoutesEnum.orders;\n    },\n    orderDetails: (orderId: OrderIdT, options?: RePathOptionsT) => {\n        return {\n            pathname: generatePath(OMSRoutesEnum.orderDetails, {\n                orderId,\n            }),\n            state: {\n                rePath: options?.rePath ?? getRePath(),\n            },\n        };\n    },\n    rfqDetails: (rfqId: RFQIdT) => {\n        return {\n            pathname: generatePath(RFQRoutesEnum.details, {\n                rfqId,\n            }),\n            state: {\n                rePath: getRePath(),\n            },\n        };\n    },\n    rfqList: () => {\n        return RFQRoutesEnum.list;\n    },\n    profileBasic: () => {\n        return ProfileRoutesEnum.basic;\n    },\n    profileDocuments: () => {\n        return ProfileRoutesEnum.documents;\n    },\n    optionalDocuments: () => {\n        return ProfileDocumentsRoutesEnum.optionalDocuments;\n    },\n    shipperContracts: () => {\n        return ProfileDocumentsRoutesEnum.shipperContracts;\n    },\n    documentDetails: (documentType: ApiDocumentTypeT) => {\n        return `${ProfileDocumentsRoutesEnum.requiredDocuments}?${qs.stringify({\n            [SidebarQueryKeysEnum.leftSidebar]: JSONArrayParam.encode<DocumentDetailsSidebarDataT>([\n                {\n                    type: CommonSidebarsTypeEnum.document,\n                    documentType,\n                    initIsEditing: false,\n                },\n            ]),\n        })}`;\n    },\n};\n","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport { PageResponseT, PaginationStateT } from 'common/utils/pagination/models';\nimport {\n    pageBeginReducer,\n    pageErrorReducer,\n    pageSuccessReducer,\n    resetPagesCacheReducer,\n} from 'common/utils/pagination/reducers';\nimport { BrokerTeamShortT, FetchBrokerTeamsPageQueryT } from './models';\n\nexport type BrokerTeamStateT = PaginationStateT<BrokerTeamShortT, FetchBrokerTeamsPageQueryT>;\n\nconst initialState: BrokerTeamStateT = {\n    pages: [],\n    query: null,\n    total: null,\n    byId: {},\n};\n\nexport const brokerTeamsSlice = createSlice({\n    name: 'brokerTeams',\n    initialState,\n    reducers: {\n        fetchBrokerTeamsPage: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                pageNumber: PageNumberT;\n                query: FetchBrokerTeamsPageQueryT;\n                options?: FetchOptionsT;\n            }>,\n        ) => {\n            // nothing\n        },\n        fetchBrokerTeamsPageBegin: (\n            state,\n            action: PayloadAction<{\n                query: FetchBrokerTeamsPageQueryT;\n                pageNumber: PageNumberT;\n            }>,\n        ) => {\n            const { pageNumber, query } = action.payload;\n\n            Object.assign(state, pageBeginReducer(state, pageNumber, query));\n        },\n        fetchBrokerTeamsPageSuccess: (\n            state,\n            action: PayloadAction<{\n                query: FetchBrokerTeamsPageQueryT;\n                pageNumber: PageNumberT;\n                pageResponse: PageResponseT<BrokerTeamShortT> | null;\n            }>,\n        ) => {\n            const { query, pageNumber, pageResponse } = action.payload;\n\n            Object.assign(state, pageSuccessReducer(state, pageNumber, query, pageResponse));\n        },\n        fetchBrokerTeamsPageError: (\n            state,\n            action: PayloadAction<{\n                query: FetchBrokerTeamsPageQueryT;\n                pageNumber: PageNumberT;\n                error: Error;\n            }>,\n        ) => {\n            const { query, error, pageNumber } = action.payload;\n\n            Object.assign(state, pageErrorReducer(state, pageNumber, query, error));\n        },\n        resetBrokerTeams: (\n            state,\n            action: PayloadAction<{\n                mutationListOptions: MutationListOptionsT;\n            }>,\n        ) => {\n            const { mutationListOptions } = action.payload;\n\n            Object.assign(state, initialState, resetPagesCacheReducer(initialState, state, mutationListOptions));\n        },\n    },\n    extraReducers: (builder) => {\n        builder.addCase('auth/destroySession', () => {\n            return initialState;\n        });\n    },\n});\n\nexport const {\n    fetchBrokerTeamsPage,\n    fetchBrokerTeamsPageBegin,\n    fetchBrokerTeamsPageSuccess,\n    fetchBrokerTeamsPageError,\n    resetBrokerTeams,\n} = brokerTeamsSlice.actions;\n\nexport default brokerTeamsSlice.reducer;\n","import { BrokerOrdersQuickFilterEnum } from 'common/utils/api/models';\n\nexport enum QueryFiltersKeysEnum {\n    originAddress = 'originAddress',\n    dropoffAddress = 'dropoffAddress',\n\n    pickupDateFrom = 'pickupDateFrom',\n    pickupDateTo = 'pickupDateTo',\n    dropOffDateFrom = 'dropOffDateFrom',\n    dropOffDateTo = 'dropOffDateTo',\n\n    createdDateFrom = 'createdDateFrom',\n    createdDateTo = 'createdDateTo',\n\n    hasUnpaidOrders = 'hasUnpaidOrders',\n\n    dictTrailerId = 'dictTrailerId',\n\n    shipperId = 'shipperId',\n    shipperName = 'shipperName',\n    carrierId = 'carrierId',\n    carrierName = 'carrierName',\n\n    spotTransportOrder = 'spotTransportOrder',\n    contractedTransportOrder = 'contractedTransportOrder',\n\n    spotOrder = 'spotOrder',\n    contractedOrder = 'contractedOrder',\n\n    dispatcherId = 'dispatcherId',\n    dispatcherName = 'dispatcherName',\n\n    keyAccountManagerId = 'keyAccountManagerId',\n    keyAccountManagerName = 'keyAccountManagerName',\n\n    quickFilter = 'quickFilter',\n\n    searchText = 'searchText',\n\n    runningOutOfTimeToAssignCarrier = 'running-out-of-time-to-assign-carrier',\n    runOutOfTimeToAssignCarrier = 'run-out-of-time-to-assign-carrier',\n    runningOutOfTimeToAssignAssets = 'running-out-of-time-to-assign-assets',\n    runOutOfTimeToAssignAssets = 'run-out-of-time-to-assign-assets',\n    runningOutOfTimeToAssignDriver = 'running-out-of-time-to-assign-driver',\n    runOutOfTimeToAssignDriver = 'run-out-of-time-to-assign-driver',\n    tourDelaying = 'tour-delaying',\n    noShow = 'no-show',\n    shipmentMissed = 'shipment-missed',\n}\n\nexport type QueryFiltersT = Partial<{\n    [QueryFiltersKeysEnum.dropoffAddress]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.originAddress]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.dispatcherId]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.dispatcherName]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.keyAccountManagerId]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.keyAccountManagerName]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.shipperId]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.shipperName]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.carrierId]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.carrierName]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.dictTrailerId]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.pickupDateFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.pickupDateTo]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.dropOffDateFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.dropOffDateTo]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdDateFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdDateTo]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.hasUnpaidOrders]: QueryParam.BooleanT;\n\n    [QueryFiltersKeysEnum.spotTransportOrder]: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.contractedTransportOrder]: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.spotOrder]: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.contractedOrder]: QueryParam.BooleanT;\n\n    [QueryFiltersKeysEnum.searchText]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.quickFilter]: BrokerOrdersQuickFilterEnum;\n\n    [QueryFiltersKeysEnum.runningOutOfTimeToAssignCarrier]: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.runOutOfTimeToAssignCarrier]: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.runningOutOfTimeToAssignAssets]: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.runOutOfTimeToAssignAssets]: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.runningOutOfTimeToAssignDriver]: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.runOutOfTimeToAssignDriver]: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.tourDelaying]: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.noShow]: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.shipmentMissed]: QueryParam.BooleanT;\n}>;\n\nexport enum QueryKeysEnum {\n    brokerOrdersPage = 'broker-orders-page',\n    brokerOrdersSort = 'broker-orders-sort',\n    brokerOrdersFilters = 'broker-orders-filters',\n}\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './InvoicesTable.scss';\nimport { useTranslation } from 'react-i18next';\nimport Table, { TableColumnT, TableRowMetaT } from 'common/components/Table/Table';\nimport MemoizedTable from 'common/components/Table/MemoizedTable/MemoizedTable';\nimport DateCell from 'common/components/Table/cell-renderers/DateCell/DateCell';\nimport { BrokerInvoiceT } from 'broker-admin/store/invoices/models';\nimport IdCell from 'common/components/Table/cell-renderers/IdCell/IdCell';\nimport ActionsCell from './cell-renderers/ActionsCell/ActionsCell';\nimport CustomerCell from './cell-renderers/CustomerCell/CustomerCell';\nimport CostCell from 'common/components/Table/cell-renderers/CostCell/CostCell';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { LinkToT } from 'common/components/Link/Link';\nimport InvoiceStatusPill from 'common/components/status-pill/InvoiceStatusPill/InvoiceStatusPill';\n\nconst cx = classNames.bind(styles);\n\nconst DUE_DATE_FORMAT = 'DD MMM YYYY';\nconst CREATED_DATE_FORMAT = 'DD MMM YYYY, HH:mm';\n\ntype PropsT = {\n    invoices: Array<BrokerInvoiceT>;\n    className: string;\n    isLoading: boolean;\n    getPartnerLink: (partnerType: PartnerTypeEnum, partnerId: CompanyIdT) => LinkToT;\n};\n\nconst InvoicesTable: React.FC<PropsT> = React.memo((props) => {\n    const { invoices, className, getPartnerLink, isLoading } = props;\n\n    const { t } = useTranslation();\n\n    const columns: Array<TableColumnT<BrokerInvoiceT, void>> = [\n        {\n            renderHeader: () => <span>{t('invoices.list.table.columns.number')}</span>,\n            headerClassName: cx('table__header', 'table__header--number'),\n            render: (invoice: BrokerInvoiceT) => <IdCell id={invoice?.invoiceNumber} />,\n            className: cx('table__column', 'table__column--number'),\n            testSelector: 'number',\n        },\n        {\n            renderHeader: () => <span>{t('invoices.list.table.columns.customer')}</span>,\n            headerClassName: cx('table__header', 'table__header--customer'),\n            render: (invoice: BrokerInvoiceT) => <CustomerCell invoice={invoice} getPartnerLink={getPartnerLink} />,\n            className: cx('table__column', 'table__column--customer'),\n            testSelector: 'customer',\n        },\n        {\n            renderHeader: () => <span>{t('invoices.list.table.columns.amount')}</span>,\n            headerClassName: cx('table__header'),\n            render: (invoice: BrokerInvoiceT) => <CostCell cost={invoice?.amount} />,\n            className: cx('table__column', 'table__column--amount'),\n            testSelector: 'amount',\n        },\n        {\n            renderHeader: () => <span>{t('invoices.list.table.columns.created')}</span>,\n            headerClassName: cx('table__header'),\n            render: (invoice: BrokerInvoiceT) => (\n                <DateCell date={invoice?.createDate} dateFormat={CREATED_DATE_FORMAT} isBigFont isBold />\n            ),\n            className: cx('table__column', 'table__column--created'),\n            testSelector: 'created',\n        },\n        {\n            renderHeader: () => <span>{t('invoices.list.table.columns.due')}</span>,\n            headerClassName: cx('table__header'),\n            render: (invoice: BrokerInvoiceT) => (\n                <DateCell date={invoice?.dueDate} dateFormat={DUE_DATE_FORMAT} isBigFont isBold />\n            ),\n            className: cx('table__column', 'table__column--due'),\n            testSelector: 'due',\n        },\n        {\n            renderHeader: () => <span>{t('invoices.list.table.columns.status')}</span>,\n            headerClassName: cx('table__header'),\n            render: (invoice: BrokerInvoiceT) => <InvoiceStatusPill isSymmetrical status={invoice?.status} />,\n            className: cx('table__column', 'table__column--status'),\n            testSelector: 'status',\n        },\n        {\n            renderHeader: () => <span>{t('invoices.list.table.columns.actions')}</span>,\n            headerClassName: cx('table__header', 'table__header--actions'),\n            render: (invoice: BrokerInvoiceT) => <ActionsCell invoice={invoice} />,\n            className: cx('table__column', 'table__column--actions'),\n            testSelector: 'actions',\n        },\n    ];\n\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const getRowMods = (meta: TableRowMetaT, invoice: BrokerInvoiceT) => {\n        return {};\n    };\n\n    return (\n        <div className={cx('table')}>\n            <MemoizedTable<BrokerInvoiceT> tableName=\"invoices\" isLoading={isLoading} rows={invoices}>\n                {(rows, isUsedPrevRows) => (\n                    <Table<BrokerInvoiceT, void>\n                        testSelector=\"invoices\"\n                        className={className}\n                        columns={columns}\n                        rows={rows}\n                        getRowMods={getRowMods}\n                        isLoading={isLoading}\n                        isUsedPrevRows={isUsedPrevRows}\n                    />\n                )}\n            </MemoizedTable>\n        </div>\n    );\n});\n\nexport default InvoicesTable;\n","import * as React from 'react';\n\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport AttachIcon from 'common/icons/AttachIcon';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    onClick: (event: React.MouseEvent<HTMLElement>) => void;\n    isDisabled?: boolean;\n    tooltipMessage?: React.ReactNode;\n};\n\nconst CompactAttachPaperTrigger: React.FC<PropsT> = React.memo((props) => {\n    const { onClick, isDisabled, tooltipMessage } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <Tooltip\n            position={TooltipPositionEnum.topCenter}\n            theme={TooltipThemeEnum.black}\n            tooltipNode={\n                tooltipMessage ? (\n                    <TooltipContent isCenter width={200} theme={TooltipContentThemeEnum.black}>\n                        {tooltipMessage}\n                    </TooltipContent>\n                ) : (\n                    <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                        {t('common:tooltips.attach-paper')}\n                    </TooltipContent>\n                )\n            }\n        >\n            {() => (\n                <TransparentTrigger\n                    onClick={onClick}\n                    isDisabled={isDisabled}\n                    reflectionTheme={ReflectionThemeEnum.light}\n                    leftIcon={<AttachIcon strokeColor={StyleGuideColorsEnum.charcoal} />}\n                    testSelector=\"attach\"\n                    spaces=\"xs\"\n                />\n            )}\n        </Tooltip>\n    );\n});\n\nexport { CompactAttachPaperTrigger };\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const partnerDetailsRefreshChannel = new ViewEventChannel<{}>();\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './ContinueRFQ.scss';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\nimport { urlFactory } from 'common/utils/urls';\nimport history from 'common/utils/history';\nimport { RFQPriceOfferT } from 'common/store/rfq-details/models';\nimport { getDateFromISO } from 'common/utils/time';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    id: RFQIdT;\n    suggestedPriceOffer: RFQPriceOfferT | null;\n    isDisabled?: boolean;\n};\n\nconst ContinueRFQ: React.FC<PropsT> = React.memo((props) => {\n    const { id, suggestedPriceOffer, isDisabled } = props;\n    const { t } = useTranslation();\n\n    const goToCompleteRFQ = () => {\n        const points = suggestedPriceOffer?.points || [];\n        const pickUpDate = points[0]?.from || null;\n        const dropOffDate = points[points.length - 1]?.from || null;\n\n        const url = urlFactory.completeRFQ({\n            id,\n            offerId: suggestedPriceOffer?.id || null,\n            pickupDate: getDateFromISO(pickUpDate),\n            dropoffDate: getDateFromISO(dropOffDate),\n        });\n        history.push(url);\n    };\n\n    return (\n        <Button\n            theme={ButtonThemeEnum.primary}\n            className={cx('action')}\n            onClick={goToCompleteRFQ}\n            testSelector=\"continue\"\n            isDisabled={isDisabled}\n        >\n            {t('common:rfq-details.actions.complete')}\n        </Button>\n    );\n});\n\nexport default ContinueRFQ;\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"SpotRequestsFiltersSidebarContent__form___nhVGm\",\"field--user\":\"SpotRequestsFiltersSidebarContent__field--user___ciH8m\",\"field--dates\":\"SpotRequestsFiltersSidebarContent__field--dates___g7Kuv\",\"selected-filters\":\"SpotRequestsFiltersSidebarContent__selected-filters___eQJ0y\",\"fadeIn\":\"SpotRequestsFiltersSidebarContent__fadeIn___wUcMI\",\"blinking\":\"SpotRequestsFiltersSidebarContent__blinking___MW0MA\"};","import React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport BigTrashIcon from 'common/icons/BigTrashIcon';\n\nexport type CancelDriverInviteConfirmationDataT = {\n    companyId: CompanyIdT;\n    driverUserId: DriverIdT;\n    driverPhoneNumber: string | undefined;\n};\n\ntype PropsT = {\n    data: CancelDriverInviteConfirmationDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onConfirm: (data: CancelDriverInviteConfirmationDataT) => void;\n    requestStatus: RequestStatusT;\n};\n\nconst TEST_SELECTOR = 'cancel-driver-invite';\n\nconst CancelDriverInviteModal: React.FC<PropsT> = React.memo((props) => {\n    const { data, onCancel, onClose, requestStatus, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.keep'),\n                            theme: ButtonThemeEnum.secondary,\n                            isDisabled: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            onClick: () => {\n                                onCancel();\n                            },\n                        },\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.danger,\n                            isDisabled: requestStatus.loading,\n                            isLoading: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigTrashIcon />}\n                    title={t('common:drivers-page.cancel-invite-confirmation.title', {\n                        phoneNumber: data.driverPhoneNumber,\n                    })}\n                    message={t('common:drivers-page.cancel-invite-confirmation.description')}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default CancelDriverInviteModal;\n","import { CarriersUtilizationStateT } from './types';\nimport { SharableStateT } from '../models';\nimport { CarrierUtilizationT } from './models';\nimport { getHash } from './utils';\n\nexport const selectFetchRequestStatus = (state: SharableStateT): CarriersUtilizationStateT['fetchRequest'] =>\n    state.carriersUtilization.fetchRequest;\n\nexport const selectCarrierUtilization =\n    (id: CarrierIdT, date: string) =>\n    (state: SharableStateT): CarrierUtilizationT | null => {\n        const hash = getHash(id, date);\n\n        return state.carriersUtilization.byHash[hash] || null;\n    };\n\nexport const selectCarriersUtilizationByHash = (state: SharableStateT): CarriersUtilizationStateT['byHash'] => {\n    return state.carriersUtilization.byHash || {};\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"CreateExternalPartnerSidebarContent__form___ivPJq\",\"alert\":\"CreateExternalPartnerSidebarContent__alert___pB0x2\",\"button--add\":\"CreateExternalPartnerSidebarContent__button--add___lAK4R\",\"section__block\":\"CreateExternalPartnerSidebarContent__section__block___n7VnE\",\"field--partner\":\"CreateExternalPartnerSidebarContent__field--partner___uX8FZ\",\"field--type\":\"CreateExternalPartnerSidebarContent__field--type___fnF4N\",\"field--zip\":\"CreateExternalPartnerSidebarContent__field--zip___Bo9wX\",\"field--city\":\"CreateExternalPartnerSidebarContent__field--city___slcqW\",\"fadeIn\":\"CreateExternalPartnerSidebarContent__fadeIn___xAVYP\",\"blinking\":\"CreateExternalPartnerSidebarContent__blinking___K1lgA\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport { useDispatch, useSelector } from 'react-redux';\nimport moment from 'moment';\n\nimport styles from './SendingToSpotFooterContent.scss';\nimport { BrokerTourDetailsT } from 'broker-admin/store/broker-tour-details/models';\nimport SendingToSpotForm from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/SendingToSpotForm/SendingToSpotForm';\nimport { selectSpotRequestLimitMs } from 'broker-admin/store/settings/selectors';\nimport { roundTimestamp, MS_IN_HOUR } from 'common/utils/time';\nimport { sendToSpotByTour } from 'broker-admin/store/spot/actions';\nimport { logWarning } from 'common/utils/logger';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    brokerTourDetails: BrokerTourDetailsT | null | undefined;\n    tourId: TourIdT | null;\n    onCancel: () => void;\n};\n\nconst SendingToSpotFooterContent: React.FC<PropsT> = React.memo((props) => {\n    const { brokerTourDetails, tourId, onCancel } = props;\n\n    const dispatch = useDispatch();\n\n    const spotRequestLimitMs = useSelector(selectSpotRequestLimitMs);\n\n    const startValidTillTimeWindow = React.useMemo(() => {\n        return roundTimestamp(Date.now(), MS_IN_HOUR);\n    }, []);\n\n    const allowedRangeValidTill = React.useMemo((): TimeWindowT | null => {\n        if (!brokerTourDetails) {\n            return null;\n        }\n\n        const firstWaypoint = brokerTourDetails?.waypoints?.[0] || null;\n        const pickupDockingHoursFrom =\n            firstWaypoint?.correctedDateTimeFrom || firstWaypoint?.originalDateTimeFrom || null;\n        const pickupDockingHoursFromTimestamp = moment(pickupDockingHoursFrom).valueOf();\n\n        return [startValidTillTimeWindow, pickupDockingHoursFromTimestamp - spotRequestLimitMs];\n    }, [startValidTillTimeWindow, brokerTourDetails, spotRequestLimitMs]);\n\n    const handleSubmit = React.useCallback(\n        (deadline: string, comment: string) => {\n            if (!tourId) {\n                logWarning('failed to send to spot, empty tourId');\n                return;\n            }\n\n            dispatch(sendToSpotByTour(tourId, deadline, comment));\n        },\n        [dispatch, tourId],\n    );\n\n    if (!brokerTourDetails) {\n        return null;\n    }\n\n    return (\n        <div className={cx('content')}>\n            <SendingToSpotForm\n                allowedRangeValidTill={allowedRangeValidTill}\n                onCancel={onCancel}\n                onSubmit={handleSubmit}\n            />\n        </div>\n    );\n});\n\nexport default SendingToSpotFooterContent;\n","import { RequestStatusT } from 'common/utils/request-status';\n\nimport { DriverT, SearchDriverQueryT } from './models';\n\nexport const FETCH_DRIVERS_REQUEST = 'common/driver-search/FETCH_DRIVERS_REQUEST';\nexport const FETCH_DRIVERS_REQUEST_BEGIN = 'common/driver-search/FETCH_DRIVERS_REQUEST_BEGIN';\nexport const FETCH_DRIVERS_REQUEST_ERROR = 'common/driver-search/FETCH_DRIVERS_REQUEST_ERROR';\nexport const FETCH_DRIVERS_REQUEST_SUCCESS = 'common/driver-search/FETCH_DRIVERS_REQUEST_SUCCESS';\n\nexport type DriverSearchStateT = {\n    request: RequestStatusT;\n    query: SearchDriverQueryT;\n    allIds: Array<DriverIdT>;\n    byId: Record<DriverIdT, DriverT>;\n};\n\nexport type FetchDriversActionT = {\n    type: typeof FETCH_DRIVERS_REQUEST;\n    query: SearchDriverQueryT;\n};\n\nexport type FetchDriversBeginActionT = {\n    type: typeof FETCH_DRIVERS_REQUEST_BEGIN;\n    query: SearchDriverQueryT;\n};\n\nexport type FetchDriversSuccessActionT = {\n    type: typeof FETCH_DRIVERS_REQUEST_SUCCESS;\n    drivers: DriverT[];\n    query: SearchDriverQueryT;\n};\n\nexport type FetchDriversErrorActionT = {\n    type: typeof FETCH_DRIVERS_REQUEST_ERROR;\n    error: Error;\n    query: SearchDriverQueryT;\n};\n\nexport type DriverSearchActionT =\n    | FetchDriversActionT\n    | FetchDriversBeginActionT\n    | FetchDriversSuccessActionT\n    | FetchDriversErrorActionT;\n","export class NotImplementedError extends Error {\n    constructor() {\n        super('not implemented error');\n    }\n}\n","import React from 'react';\nimport { LocationDescriptor } from 'history';\n\nexport type CommonUrlFactoryContextT = {\n    trailerDetails: (partnerId: PartnerIdT, trailerId: TrailerIdT) => LocationDescriptor<HistoryStateT>;\n    truckDetails: (partnerId: PartnerIdT, truckId: TruckIdT) => LocationDescriptor<HistoryStateT>;\n    transportOrderDetails: (\n        partnerId: PartnerIdT | undefined,\n        transportOrderId: TransportOrderIdT,\n    ) => LocationDescriptor<HistoryStateT> | null;\n};\n\nconst CommonUrlFactoryContext = React.createContext<CommonUrlFactoryContextT>({\n    // NB: the values will always be defined because context is used in the App root!\n    trailerDetails: () => {\n        return {};\n    },\n    truckDetails: () => {\n        return {};\n    },\n    transportOrderDetails: () => {\n        return null;\n    },\n});\n\nexport default CommonUrlFactoryContext;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './BrokerOrderListPage.scss';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectBrokerOrdersByIds,\n    selectBrokerOrdersPages,\n    selectBrokerOrdersTotal,\n} from 'broker-admin/store/broker-orders/selectors';\nimport { CompanyTypeEnum } from 'common/constants';\nimport { QueryFiltersKeysEnum, QueryKeysEnum, QueryFiltersT } from './query-models';\nimport BrokerOrderTable from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/BrokerOrderTable/BrokerOrderTable';\nimport { useTranslation } from 'react-i18next';\nimport TopBar from 'common/layouts/LeftMenuLayout/TopBar/TopBar';\nimport history from 'common/utils/history';\nimport omit from 'lodash/omit';\nimport FiltersTrigger from 'common/components/Table/FiltersTrigger/FiltersTrigger';\nimport SortDropdown, {\n    SortDropdownOptionT,\n    SortDropdownOverlayPositionEnum,\n} from 'common/components/Table/SortDropdown/SortDropdown';\nimport { BrokerOrdersQuickFilterEnum, BrokerOrdersSortEnum } from 'common/utils/api/models';\nimport Pagination from 'common/components/Table/Pagination/Pagination';\nimport TableMessage, { TableMessageIconsEnum } from 'common/components/Table/TableMessage/TableMessage';\nimport { fetchBrokerOrdersPage } from 'broker-admin/store/broker-orders/slice';\nimport { BrokerOrderShortT } from 'broker-admin/store/broker-orders/models';\nimport FiltersSidebarContent from './FiltersSidebarContent/FiltersSidebarContent';\nimport SideBar from 'common/layouts/LeftMenuLayout/SideBar/SideBar';\nimport {\n    createJsonParams,\n    createPageNumberParam,\n    createSortParams,\n    PageSortT,\n    SortDirectionEnum,\n} from 'common/utils/query';\nimport ScrollableContent from 'common/layouts/LeftMenuLayout/ScrollableContent/ScrollableContent';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport StickyFooter from 'common/layouts/LeftMenuLayout/StickyFooter/StickyFooter';\nimport { QuickFiltersOptionT } from 'common/components/Table/QuickFilters/QuickFilters';\nimport { colorCodingNotificationLabelTheme } from 'common/components/notifications/NotificationLabel/NotificationLabel';\nimport SearchControl from 'common/components/Table/SearchControl/SearchControl';\nimport { fetchTrailersDict } from 'common/store/trailers-dict/actions';\nimport { selectBrokerOrderStats } from 'broker-admin/store/broker-order-stats/selectors';\nimport NotificationsBarTrigger from 'common/components/notifications/NotificationsBarTrigger/NotificationsBarTrigger';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport TableError from 'common/components/Table/TableError/TableError';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport { prepareFetchPageQuery } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderListPage/prepare-fetch-page-query';\nimport TopBarContent from 'common/layouts/LeftMenuLayout/TopBarContent/TopBarContent';\nimport ListPageHeaderLayout from 'common/layouts/ListPage/ListPageHeaderLayout/ListPageHeaderLayout';\nimport ListPageHeaderTabsLayout from 'common/layouts/ListPage/ListPageHeaderTabsLayout/ListPageHeaderTabsLayout';\nimport ListPageLayout from 'common/layouts/ListPage/ListPageLayout/ListPageLayout';\nimport { selectGroupedNotificationCounts } from 'common/store/grouped-notification-counts/selectors';\nimport { fetchGroupedNotificationCounts } from 'common/store/grouped-notification-counts/actions';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport SelectedFilters from './SelectedFilters/SelectedFilters';\nimport { useHistoryPush } from 'common/utils/hooks/useHistoryPush';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { brokerOrdersPaginationChannel, brokerOrdersRefreshChannel } from 'broker-admin/store/broker-orders/channels';\nimport SideBars from 'broker-admin/layouts/SideBars/SideBars';\nimport { useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { useQueryParams } from 'use-query-params';\nimport { checkNeedRenderEmptyState } from 'common/components/Table/utils/check-need-render-empty-state';\nimport { checkFilters } from 'common/components/Table/utils/check-filters';\nimport QuickFiltersButtonGroups from 'common/components/Table/QuickFiltersButtonGroups/QuickFiltersButtonGroups';\nimport WarningsFilter from './WarningsFilter/WarningsFilter';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst BrokerOrderListPage: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n\n    const { historyPush } = useHistoryPush();\n    const total = useSelector(selectBrokerOrdersTotal);\n    const brokerOrdersPages = useSelector(selectBrokerOrdersPages);\n    const brokerOrderById = useSelector(selectBrokerOrdersByIds);\n\n    const brokerOrderStat = useSelector(selectBrokerOrderStats);\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const unReadNotificationsGroupedCounts = useSelector(selectGroupedNotificationCounts);\n\n    React.useEffect(() => {\n        dispatch(fetchTrailersDict());\n    }, [dispatch]);\n\n    const [isShowFilters, triggerFilters] = React.useState<boolean>(false);\n    const showFilters = (): void => {\n        triggerFilters(true);\n    };\n    const hideFilters = (): void => {\n        triggerFilters(false);\n    };\n\n    const [query, changeQuery] = useQueryParams({\n        [QueryKeysEnum.brokerOrdersFilters]: createJsonParams<QueryFiltersT>({}),\n        [QueryKeysEnum.brokerOrdersPage]: createPageNumberParam(),\n        [QueryKeysEnum.brokerOrdersSort]: createSortParams<BrokerOrdersSortEnum>({\n            value: BrokerOrdersSortEnum.createdDate,\n            direction: SortDirectionEnum.DESC,\n        }),\n    });\n\n    const pageNumber = query[QueryKeysEnum.brokerOrdersPage];\n    const selectedSort = query[QueryKeysEnum.brokerOrdersSort];\n    const queryFilters = query[QueryKeysEnum.brokerOrdersFilters];\n\n    const page = brokerOrdersPages[pageNumber];\n    const { ids, requestStatus } = page || {};\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchBrokerOrdersPage({ pageNumber, query, options: { isForceUpdate: false } }));\n\n        dispatch(fetchGroupedNotificationCounts({ isForceUpdate: false }));\n    }, [pageNumber, selectedSort, queryFilters, dispatch]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const refreshPageHandler = React.useCallback(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchBrokerOrdersPage({ pageNumber, query, options: { isForceUpdate: true } }));\n\n        dispatch(fetchGroupedNotificationCounts({ isForceUpdate: false }));\n    }, [pageNumber, selectedSort, queryFilters, dispatch]);\n    useChannelSubscribe(brokerOrdersRefreshChannel, refreshPageHandler);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchBrokerOrdersPage({ pageNumber, query, options: { isForceUpdate: true } }));\n    }, [pageNumber, selectedSort, queryFilters, dispatch]);\n\n    React.useEffect(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchBrokerOrdersPage({ pageNumber, query }));\n\n        dispatch(fetchGroupedNotificationCounts({ isForceUpdate: false }));\n\n        return (): void => {\n            // TODO reset\n        };\n    }, [page, pageNumber, selectedSort, queryFilters, dispatch]);\n\n    const brokerOrders = React.useMemo(() => {\n        return (ids || []).map((id): BrokerOrderShortT => brokerOrderById[id]);\n    }, [ids, brokerOrderById]);\n\n    const goToPage = React.useCallback(\n        (pageNumber: PageNumberT) => {\n            changeQuery({\n                [QueryKeysEnum.brokerOrdersPage]: pageNumber,\n            });\n        },\n        [changeQuery],\n    );\n\n    const setPageHandler = React.useCallback(\n        ({ pageNumber }: InferChannelEventT<typeof brokerOrdersPaginationChannel>) => {\n            goToPage(pageNumber);\n        },\n        [goToPage],\n    );\n    useChannelSubscribe(brokerOrdersPaginationChannel, setPageHandler);\n\n    const goToBrokerOrderDetails = (event: React.MouseEvent, brokerOrderId: BrokerOrderIdT) => {\n        const url = urlFactory.brokerOrderDetails(brokerOrderId);\n        historyPush(event, url);\n    };\n\n    const goToPartnerDetails = (companyId: PartnerIdT, companyType: CompanyTypeEnum) => {\n        const url = urlFactory.partnerDetails(companyType, companyId);\n        history.push(url);\n    };\n\n    const goToTrailerDetails = (companyId: CarrierIdT, trailerId: TrailerIdT) => {\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.trailerDetails,\n            partnerId: companyId,\n            trailerId,\n        });\n    };\n\n    const brokerOrderQuickFilterOptions: Array<QuickFiltersOptionT<BrokerOrdersQuickFilterEnum>> = [\n        {\n            id: undefined,\n            showPriority: 0,\n            hidePriority: 0,\n            label: t('broker-orders.list.status-filter.all-broker-orders'),\n            testSelector: 'all',\n        },\n        {\n            id: BrokerOrdersQuickFilterEnum.new,\n            showPriority: 1,\n            hidePriority: 1,\n            label: t('broker-orders.list.status-filter.new'),\n            testSelector: BrokerOrdersQuickFilterEnum.new,\n            notificationProps: {\n                count: brokerOrderStat?.newOrders,\n                theme: colorCodingNotificationLabelTheme.attention,\n            },\n        },\n        {\n            id: BrokerOrdersQuickFilterEnum.carrierUnassigned,\n            showPriority: 2,\n            hidePriority: 2,\n            label: t('broker-orders.list.status-filter.carrier-unassigned'),\n            testSelector: BrokerOrdersQuickFilterEnum.carrierUnassigned,\n            notificationProps: {\n                count: brokerOrderStat?.carrierUnassign,\n                theme: colorCodingNotificationLabelTheme.attention,\n            },\n        },\n        {\n            id: BrokerOrdersQuickFilterEnum.carrierAssigned,\n            showPriority: 3,\n            hidePriority: 3,\n            label: t('broker-orders.list.status-filter.carrier-assigned'),\n            testSelector: BrokerOrdersQuickFilterEnum.carrierAssigned,\n            notificationProps: {\n                count: brokerOrderStat?.assigned,\n                theme: colorCodingNotificationLabelTheme.normal,\n            },\n        },\n        {\n            id: BrokerOrdersQuickFilterEnum.inTransit,\n            showPriority: 4,\n            hidePriority: 4,\n            label: t('broker-orders.list.status-filter.in-transit'),\n            testSelector: BrokerOrdersQuickFilterEnum.inTransit,\n            notificationProps: {\n                count: brokerOrderStat?.inTransit,\n                theme: colorCodingNotificationLabelTheme.normal,\n            },\n        },\n        {\n            id: BrokerOrdersQuickFilterEnum.canceled,\n            showPriority: 5,\n            hidePriority: 5,\n            label: t('broker-orders.list.status-filter.canceled'),\n            testSelector: BrokerOrdersQuickFilterEnum.canceled,\n            notificationProps: {\n                count: unReadNotificationsGroupedCounts?.DISPATCH_STATUS_CHANGED?.CANCELED,\n                theme: colorCodingNotificationLabelTheme.normal,\n                isShowPlusSign: true,\n            },\n        },\n        {\n            id: BrokerOrdersQuickFilterEnum.delivered,\n            showPriority: 6,\n            hidePriority: 6,\n            label: t('broker-orders.list.status-filter.delivered'),\n            testSelector: BrokerOrdersQuickFilterEnum.delivered,\n            notificationProps: {\n                count: unReadNotificationsGroupedCounts?.DISPATCH_STATUS_CHANGED?.DELIVERED,\n                theme: colorCodingNotificationLabelTheme.success,\n                isShowPlusSign: true,\n            },\n        },\n    ];\n\n    const sortOptions: Array<SortDropdownOptionT<BrokerOrdersSortEnum>> = React.useMemo(\n        () => [\n            {\n                label: t('broker-orders.list.table.sorts.triggers.pickupDate'),\n                value: BrokerOrdersSortEnum.pickupDate,\n            },\n            {\n                label: t('broker-orders.list.table.sorts.triggers.dropOffDate'),\n                value: BrokerOrdersSortEnum.dropOffDate,\n            },\n            {\n                label: t('broker-orders.list.table.sorts.triggers.createdDate'),\n                value: BrokerOrdersSortEnum.createdDate,\n            },\n        ],\n        [t],\n    );\n\n    const handleSelectSort = (sort: PageSortT<BrokerOrdersSortEnum>) => {\n        changeQuery({\n            [QueryKeysEnum.brokerOrdersPage]: 0,\n            [QueryKeysEnum.brokerOrdersSort]: sort,\n        });\n    };\n\n    const handleSetStatusFilter = (quickFilterId: BrokerOrdersQuickFilterEnum | undefined) => {\n        const prevQueryFilters = query[QueryKeysEnum.brokerOrdersFilters] || {};\n\n        const queryFilters: QueryFiltersT = {\n            ...prevQueryFilters,\n            [QueryFiltersKeysEnum.quickFilter]: quickFilterId,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.brokerOrdersPage]: 0,\n            [QueryKeysEnum.brokerOrdersFilters]: queryFilters,\n        });\n    };\n\n    const updateQueryFilters = (queryFiltersChanges: QueryFiltersT) => {\n        const prevQueryFilters = query[QueryKeysEnum.brokerOrdersFilters] || {};\n\n        const queryFilters = {\n            ...prevQueryFilters,\n            ...queryFiltersChanges,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.brokerOrdersPage]: 0,\n            [QueryKeysEnum.brokerOrdersFilters]: queryFilters,\n        });\n    };\n\n    const handleSetQueryFilters = (selectedQueryFilters: QueryFiltersT) => {\n        const prevQueryFilters = query[QueryKeysEnum.brokerOrdersFilters] || {};\n\n        const queryFilters = {\n            [QueryFiltersKeysEnum.quickFilter]: prevQueryFilters[QueryFiltersKeysEnum.quickFilter],\n            ...selectedQueryFilters,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.brokerOrdersPage]: 0,\n            [QueryKeysEnum.brokerOrdersFilters]: queryFilters,\n        });\n\n        hideFilters();\n    };\n\n    const handleSearch = (searchText: string) => {\n        updateQueryFilters({\n            [QueryFiltersKeysEnum.searchText]: searchText || undefined,\n        });\n    };\n\n    const renderTableMessage = () => {\n        if (!checkNeedRenderEmptyState(brokerOrders, requestStatus)) {\n            return null;\n        }\n\n        if (requestStatus?.error) {\n            return <TableError error={requestStatus?.error} onRetry={handleRefreshOnError} />;\n        }\n\n        const { hasPrimaryQueryFilters, hasSecondaryQueryFilters } = checkFilters(\n            [queryFilters[QueryFiltersKeysEnum.quickFilter]],\n            [omit(queryFilters, [QueryFiltersKeysEnum.quickFilter])],\n        );\n\n        if (requestStatus?.ok && hasSecondaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.notFound}\n                    title={t('broker-orders.list.table.messages.not-found.title')}\n                    description={t('broker-orders.list.table.messages.not-found.description')}\n                    isShowAction\n                    actionTitle={t('broker-orders.list.table.messages.not-found.action')}\n                    actionTheme={ButtonThemeEnum.secondary}\n                    onActionClick={() => handleSetQueryFilters({})}\n                    testSelector=\"empty-state-has-secondary-filters\"\n                />\n            );\n        }\n\n        if (requestStatus?.ok && hasPrimaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.empty}\n                    title={t('broker-orders.list.table.messages.empty-quick-filters.title')}\n                    testSelector=\"empty-state-has-primary-filters\"\n                    isShowAction={false}\n                />\n            );\n        }\n\n        return (\n            <TableMessage\n                iconType={TableMessageIconsEnum.empty}\n                title={t('broker-orders.list.table.messages.empty.title')}\n                testSelector=\"empty\"\n                isShowAction={false}\n            />\n        );\n    };\n\n    return (\n        <ScrollableContent>\n            <PageTitle title={t('page-titles.broker-orders')} />\n            <ContentMargins>\n                <TopBar>\n                    <TopBarContent title={t('broker-orders.list.title')} rightNode={<NotificationsBarTrigger />} />\n                </TopBar>\n                <ListPageLayout>\n                    <ListPageHeaderTabsLayout>\n                        <QuickFiltersButtonGroups\n                            options={brokerOrderQuickFilterOptions}\n                            selectedId={queryFilters[QueryFiltersKeysEnum.quickFilter]}\n                            onSelect={handleSetStatusFilter}\n                            moreStatusesLabel={t('broker-orders.list.status-filter.more-statuses')}\n                        />\n                    </ListPageHeaderTabsLayout>\n                    <ListPageHeaderLayout\n                        withTopPadding\n                        leftToolsNode={\n                            <>\n                                <FiltersTrigger\n                                    title={t('broker-orders.list.filters.trigger')}\n                                    isActive={isShowFilters}\n                                    onClick={showFilters}\n                                />\n                                <WarningsFilter\n                                    stat={brokerOrderStat}\n                                    queryFilters={queryFilters}\n                                    onQueryFiltersChange={updateQueryFilters}\n                                />\n                                <SortDropdown\n                                    overlayPosition={SortDropdownOverlayPositionEnum.left}\n                                    selectedValue={selectedSort}\n                                    options={sortOptions}\n                                    onSelect={handleSelectSort}\n                                />\n                                <SearchControl\n                                    placeholder={t('broker-orders.list.search-placeholder')}\n                                    searchText={queryFilters[QueryFiltersKeysEnum.searchText]}\n                                    onChangeSearchText={handleSearch}\n                                />\n                            </>\n                        }\n                        filterTagsNode={\n                            <SelectedFilters\n                                isCompact\n                                queryFilters={queryFilters}\n                                setQueryFilters={handleSetQueryFilters}\n                            />\n                        }\n                    />\n                    {renderTableMessage()}\n                    <BrokerOrderTable\n                        brokerOrders={brokerOrders}\n                        className={cx('table')}\n                        goToBrokerOrderDetails={goToBrokerOrderDetails}\n                        goToPartnerDetails={goToPartnerDetails}\n                        goToTrailerDetails={goToTrailerDetails}\n                        isLoading={requestStatus?.loading}\n                    />\n                </ListPageLayout>\n                <StickyFooter>\n                    <Pagination current={pageNumber} count={total?.pageCount} goToPage={goToPage} />\n                </StickyFooter>\n                <SideBar isShow={isShowFilters} onClose={hideFilters}>\n                    {(onClose) => (\n                        <FiltersSidebarContent\n                            onClose={onClose}\n                            queryFilters={queryFilters}\n                            setQueryFilters={handleSetQueryFilters}\n                        />\n                    )}\n                </SideBar>\n            </ContentMargins>\n            <SideBars />\n        </ScrollableContent>\n    );\n});\n\nexport default BrokerOrderListPage;\n","import { ApiOrderCreationReservePointTypeT, OrderCreationReservePointTypeEnum } from 'common/utils/api/models';\n\nexport const WAIT_RFQ_ID = 'wait-rfq-id';\n\nexport const editablePointTypeSet = new Set<ApiOrderCreationReservePointTypeT>([\n    OrderCreationReservePointTypeEnum.shipment,\n    OrderCreationReservePointTypeEnum.driveThrough,\n]);\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './AdditionalServices.scss';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { ApiDictCarrierAdditionalServiceTypeT, ApiTrailerDictTypeT } from 'common/utils/api/models';\nimport { useSelector } from 'react-redux';\nimport { PriceOfferT } from 'common/store/order-creation/models';\nimport AdditionalServicesGroup from 'common/layouts/NewOrderPage/OffersForm/AdditionalServicesGroup/AdditionalServicesGroup';\nimport {\n    selectAdditionalServicesDictStatus,\n    selectAdditionalServicesGroupsByTrailerType,\n} from 'common/store/additional-services-dict/selectors';\nimport ControlLoaderWithShadow from 'common/components/ControlLoaderWithShadow/ControlLoaderWithShadow';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    selectedServiceTypes: ApiDictCarrierAdditionalServiceTypeT[];\n    setSelectedServices: (selectedServiceEnums: ApiDictCarrierAdditionalServiceTypeT[]) => void;\n    selectedOffer?: PriceOfferT;\n    setAdditionalServicesTopRef: (node: HTMLDivElement | null) => void;\n    dictTrailerInfo: ApiTrailerDictTypeT | null;\n};\n\nconst AdditionalServices: React.FC<PropsT> = React.memo((props) => {\n    const { selectedServiceTypes, setSelectedServices, selectedOffer, setAdditionalServicesTopRef, dictTrailerInfo } =\n        props;\n\n    const selectedServiceTypeSet = new Set(selectedServiceTypes || []);\n\n    const trailerType = dictTrailerInfo?.trailerType || null;\n    const additionalServiceGroups = useSelector(selectAdditionalServicesGroupsByTrailerType(trailerType));\n\n    const additionalServicesRequestStatus = useSelector(selectAdditionalServicesDictStatus);\n\n    const removeServices = (selectedServiceType: ApiDictCarrierAdditionalServiceTypeT): void => {\n        setSelectedServices(selectedServiceTypes.filter((serviceEnum) => serviceEnum !== selectedServiceType));\n    };\n\n    const addServices = (selectedServiceType: ApiDictCarrierAdditionalServiceTypeT): void => {\n        setSelectedServices([...selectedServiceTypes, selectedServiceType]);\n    };\n\n    const isLoading = additionalServicesRequestStatus.loading || !selectedOffer || !trailerType;\n\n    return (\n        <div className={cx('additional-services')}>\n            {isLoading && (\n                <div className={cx('loader')}>\n                    <ControlLoaderWithShadow fillColor={StyleGuideColorsEnum.light} />\n                </div>\n            )}\n            {additionalServicesRequestStatus.error && (\n                <div>{JSON.stringify(additionalServicesRequestStatus.error)}</div>\n            )}\n            <div ref={setAdditionalServicesTopRef} />\n            {additionalServicesRequestStatus.ok &&\n                additionalServiceGroups?.map((additionalServiceGroup) => {\n                    return (\n                        <AdditionalServicesGroup\n                            key={additionalServiceGroup.category}\n                            group={additionalServiceGroup}\n                            dictTrailerInfo={dictTrailerInfo}\n                            selectedServiceTypeSet={selectedServiceTypeSet}\n                            onAddServices={addServices}\n                            onRemoveServices={removeServices}\n                        />\n                    );\n                })}\n        </div>\n    );\n});\n\nexport default AdditionalServices;\n","import { call, race, take } from 'redux-saga/effects';\nimport { createVisibilityChangeChannel } from 'common/utils/watch-document-visibility-change-saga';\nimport { createIntervalChannel } from 'common/utils/interval-saga';\n\nfunction* watchDocumentVisibilityChangeOrIntervalSaga(jobSaga: any, intervalMs: number): WrapGeneratorT<void> {\n    const visibilityChangeChannel = yield call(createVisibilityChangeChannel);\n    const intervalChannel = yield call(createIntervalChannel, intervalMs);\n\n    let lastCallTime = 0;\n    let lastIsHidden = false;\n    while (true) {\n        const summaryEvent = yield race({\n            visibility: take(visibilityChangeChannel),\n            interval: take(intervalChannel),\n        });\n\n        if (typeof summaryEvent.visibility === 'boolean') {\n            lastIsHidden = summaryEvent.visibility;\n        }\n\n        const now = Date.now();\n        const diffMs = now - lastCallTime;\n\n        if (diffMs > intervalMs && !lastIsHidden) {\n            yield call(jobSaga);\n            lastCallTime = now;\n        }\n    }\n}\n\nexport default watchDocumentVisibilityChangeOrIntervalSaga;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './InvitedToTeamCard.scss';\nimport { Trans } from 'react-i18next';\nimport TeamName from 'broker-admin/components/notification-cards/entities/TeamName/TeamName';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    teamName: string;\n};\n\nconst InvitedToTeamCard: React.FC<PropsT> = React.memo((props) => {\n    const { teamName } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"notifications.team-invited\"\n                components={{\n                    teamName: <TeamName name={teamName} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default InvitedToTeamCard;\n","import { ContextRouteStopFakeIdT, DeadheadPreviewContextResponseT } from '../models';\n\nexport const getAddedStopFakeIds = (\n    previewContext: DeadheadPreviewContextResponseT | null,\n    previewContextAfterModify: DeadheadPreviewContextResponseT | null,\n): Array<ContextRouteStopFakeIdT> => {\n    const prevStopsIds = previewContext?.stops?.slice(1)?.map((stop) => stop.fakeId) || [];\n\n    const stopsIdsAfterModify = previewContextAfterModify?.stops?.slice(1)?.map((stop) => stop.fakeId) || [];\n\n    return stopsIdsAfterModify.filter((id) => !prevStopsIds.includes(id));\n};\n","import requestStatus from 'common/utils/request-status';\n\nimport {\n    CarrierContractsActionT,\n    CarrierContractsStateT,\n    CarrierContractStateT,\n    DOWNLOAD_CARRIER_CONTRACT_REQUEST_BEGIN,\n    DOWNLOAD_CARRIER_CONTRACT_REQUEST_ERROR,\n    DOWNLOAD_CARRIER_CONTRACT_REQUEST_SUCCESS,\n    FETCH_CARRIER_CONTRACTS_REQUEST_BEGIN,\n    FETCH_CARRIER_CONTRACTS_REQUEST_ERROR,\n    FETCH_CARRIER_CONTRACTS_REQUEST_SUCCESS,\n    UPDATE_CARRIER_CONTRACT_REQUEST_BEGIN,\n    UPDATE_CARRIER_CONTRACT_REQUEST_ERROR,\n    UPDATE_CARRIER_CONTRACT_REQUEST_SUCCESS,\n    UPLOAD_CARRIER_CONTRACT_REQUEST_BEGIN,\n    UPLOAD_CARRIER_CONTRACT_REQUEST_ERROR,\n    UPLOAD_CARRIER_CONTRACT_REQUEST_SUCCESS,\n} from './types';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nexport const initialCarrierContractState: CarrierContractStateT = {\n    contracts: [],\n    fetchContractsRequest: requestStatus.initial,\n    updateContractRequest: requestStatus.initial,\n    uploadContractRequest: requestStatus.initial,\n    downloadContractRequest: requestStatus.initial,\n    updatingContractId: null,\n};\n\nconst initialState: CarrierContractsStateT = {};\n\nexport default (\n    state = initialState,\n    action: CarrierContractsActionT | DestroySessionActionT,\n): CarrierContractsStateT => {\n    switch (action.type) {\n        case FETCH_CARRIER_CONTRACTS_REQUEST_BEGIN: {\n            const { partnerId } = action;\n\n            const carrierContractState = state[partnerId] || initialCarrierContractState;\n\n            return {\n                ...state,\n                [partnerId]: {\n                    ...carrierContractState,\n                    fetchContractsRequest: requestStatus.loading,\n                },\n            };\n        }\n        case FETCH_CARRIER_CONTRACTS_REQUEST_SUCCESS: {\n            const { partnerId, partnerContracts } = action;\n\n            const carrierContractState = state[partnerId] || initialCarrierContractState;\n\n            return {\n                ...state,\n                [partnerId]: {\n                    ...carrierContractState,\n                    contracts: partnerContracts,\n                    fetchContractsRequest: requestStatus.ok,\n                },\n            };\n        }\n        case FETCH_CARRIER_CONTRACTS_REQUEST_ERROR: {\n            const { error, partnerId } = action;\n\n            const carrierContractState = state[partnerId] || initialCarrierContractState;\n\n            return {\n                ...state,\n                [partnerId]: {\n                    ...carrierContractState,\n                    fetchContractsRequest: requestStatus.setError(error),\n                },\n            };\n        }\n        case UPDATE_CARRIER_CONTRACT_REQUEST_BEGIN: {\n            const { partnerId, updatingContractId } = action;\n\n            const carrierContractState = state[partnerId] || initialCarrierContractState;\n\n            return {\n                ...state,\n                [partnerId]: {\n                    ...carrierContractState,\n                    updatingContractId,\n                    updateContractRequest: requestStatus.loading,\n                },\n            };\n        }\n        case UPDATE_CARRIER_CONTRACT_REQUEST_SUCCESS: {\n            const { partnerId } = action;\n\n            const carrierContractState = state[partnerId] || initialCarrierContractState;\n\n            return {\n                ...state,\n                [partnerId]: {\n                    ...carrierContractState,\n                    updateContractRequest: requestStatus.ok,\n                },\n            };\n        }\n        case UPDATE_CARRIER_CONTRACT_REQUEST_ERROR: {\n            const { error, partnerId } = action;\n\n            const carrierContractState = state[partnerId] || initialCarrierContractState;\n\n            return {\n                ...state,\n                [partnerId]: {\n                    ...carrierContractState,\n                    updateContractRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case UPLOAD_CARRIER_CONTRACT_REQUEST_BEGIN: {\n            const { partnerId } = action;\n\n            const carrierContractState = state[partnerId] || initialCarrierContractState;\n\n            return {\n                ...state,\n                [partnerId]: {\n                    ...carrierContractState,\n                    uploadContractRequest: requestStatus.loading,\n                },\n            };\n        }\n        case UPLOAD_CARRIER_CONTRACT_REQUEST_SUCCESS: {\n            const { partnerId } = action;\n\n            const carrierContractState = state[partnerId] || initialCarrierContractState;\n\n            return {\n                ...state,\n                [partnerId]: {\n                    ...carrierContractState,\n                    uploadContractRequest: requestStatus.ok,\n                },\n            };\n        }\n        case UPLOAD_CARRIER_CONTRACT_REQUEST_ERROR: {\n            const { error, partnerId } = action;\n\n            const carrierContractState = state[partnerId] || initialCarrierContractState;\n\n            return {\n                ...state,\n                [partnerId]: {\n                    ...carrierContractState,\n                    uploadContractRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case DOWNLOAD_CARRIER_CONTRACT_REQUEST_BEGIN: {\n            const { partnerId } = action;\n\n            const carrierContractState = state[partnerId] || initialCarrierContractState;\n\n            return {\n                ...state,\n                [partnerId]: {\n                    ...carrierContractState,\n                    downloadContractRequest: requestStatus.loading,\n                },\n            };\n        }\n        case DOWNLOAD_CARRIER_CONTRACT_REQUEST_SUCCESS: {\n            const { partnerId } = action;\n\n            const carrierContractState = state[partnerId] || initialCarrierContractState;\n\n            return {\n                ...state,\n                [partnerId]: {\n                    ...carrierContractState,\n                    downloadContractRequest: requestStatus.ok,\n                },\n            };\n        }\n        case DOWNLOAD_CARRIER_CONTRACT_REQUEST_ERROR: {\n            const { error, partnerId } = action;\n\n            const carrierContractState = state[partnerId] || initialCarrierContractState;\n\n            return {\n                ...state,\n                [partnerId]: {\n                    ...carrierContractState,\n                    downloadContractRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default:\n            return state;\n    }\n};\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillOpacity?: number;\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst PadIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, fillOpacity, strokeColor, ...rest } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} viewBox=\"0 0 18 18\" {...rest}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path\n                    fillOpacity={fillOpacity || 1}\n                    fill={fillColor}\n                    d=\"M3.75 3.75v10.5h10.5V3.75H3.75zm6.75 9H5.25v-1.5h5.25v1.5zm2.25-3h-7.5v-1.5h7.5v1.5zm0-3h-7.5v-1.5h7.5v1.5z\"\n                />\n                <path\n                    fill={strokeColor}\n                    d=\"M5.25 11.25h5.25v1.5H5.25v-1.5zm0-3h7.5v1.5h-7.5v-1.5zm0-3h7.5v1.5h-7.5v-1.5zm9-3h-3.135A2.258 2.258 0 009 .75c-.975 0-1.8.63-2.115 1.5H3.75c-.105 0-.203.007-.3.03a1.509 1.509 0 00-1.08.893 1.47 1.47 0 00-.12.577v10.5c0 .203.045.405.12.585a1.5 1.5 0 001.08.892c.097.015.195.023.3.023h10.5c.825 0 1.5-.675 1.5-1.5V3.75c0-.825-.675-1.5-1.5-1.5zM9 2.062c.307 0 .563.256.563.563A.567.567 0 019 3.188a.568.568 0 01-.563-.563c0-.308.256-.563.563-.563zm5.25 12.188H3.75V3.75h10.5v10.5z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nPadIcon.displayName = 'PadIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default PadIcon;\n","import * as React from 'react';\n\nimport noop from 'lodash/noop';\nimport TransparentTrigger, { ReflectionThemeEnum } from '../TransparentTrigger/TransparentTrigger';\nimport LeftArrowIcon from 'common/icons/LeftArrowIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\nexport type PropsT = {\n    className?: string;\n    onClick: () => void;\n    isDisabled: boolean;\n};\n\nconst BackButton: React.FC<PropsT> = (props) => {\n    const { className, onClick, isDisabled } = props;\n\n    return (\n        <TransparentTrigger\n            className={className}\n            isDisabled={isDisabled}\n            onClick={isDisabled ? noop : onClick}\n            reflectionTheme={ReflectionThemeEnum.light}\n            leftIcon={\n                <LeftArrowIcon fillColor={isDisabled ? StyleGuideColorsEnum.light : StyleGuideColorsEnum.charcoal} />\n            }\n        />\n    );\n};\n\nexport default BackButton;\n","export const getShipmentAnchor = (shipmentId: ShipmentIdT | null) => {\n    return `shipment-${shipmentId}`;\n};\n","import BaseTranziitApi, { throwNotImplementedError, TranziitApiResultT } from './base-tranziit-api';\nimport { authApi } from 'common/utils/api/auth/factory';\nimport { DocumentTypeEnum, FixPageableCommonQueryT } from 'common/utils/api/models';\nimport { MS_IN_MIN } from 'common/utils/time';\n\nclass CommonTranziitApi extends BaseTranziitApi {\n    private static instance: CommonTranziitApi;\n\n    private constructor() {\n        super(authApi, {\n            basepath: '',\n            timeout: MS_IN_MIN,\n        });\n    }\n\n    public static getInstance(): CommonTranziitApi {\n        if (!CommonTranziitApi.instance) {\n            CommonTranziitApi.instance = new CommonTranziitApi();\n        }\n\n        return CommonTranziitApi.instance;\n    }\n\n    getCountries = async (): Promise<TranziitApiResultT<Api2Paths.ApiV1Countries.Get.Responses.$200>> => {\n        return this.doFetchWithRetry<Api2Paths.ApiV1Countries.Get.Responses.$200>({\n            method: 'GET',\n            path: `/api/v1/countries`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    getCountrySettingsDict = async (): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2CountriesInternal.Get.Responses.$200>\n    > => {\n        return this.doFetchWithRetry<Api2Paths.ApiV2CountriesInternal.Get.Responses.$200>({\n            method: 'GET',\n            path: `/api/v2/countries/internal`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    createUser = async (newUser: TODO): Promise<TODO> => {\n        return throwNotImplementedError();\n    };\n\n    fetchCurrentUser = async (): Promise<TranziitApiResultT<ApiPaths.ApiV1User.Get.Responses.$200>> => {\n        return this.doFetchWithRetry<ApiPaths.ApiV1User.Get.Responses.$200>({\n            method: 'GET',\n            path: '/api/v1/user',\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    patchUser = async (\n        userChanges: ApiPaths.ApiV1User.Put.RequestBody,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1User.Put.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1User.Put.Responses.$200>({\n            data: userChanges,\n            method: 'PUT',\n            path: '/api/v1/user',\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchCurrentCompany = async (): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2CommonCompanyCurrent.Get.Responses.$200>\n    > => {\n        return this.doFetchWithRetry<Api2Paths.ApiV2CommonCompanyCurrent.Get.Responses.$200>({\n            method: 'GET',\n            path: '/api/v2/common/company/current',\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    patchCompany = async (\n        companyChanges: Api2Paths.ApiV2CommonCompanyUpdate.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CommonCompanyUpdate.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2CommonCompanyUpdate.Put.Responses.$200>({\n            data: companyChanges,\n            method: 'PUT',\n            path: '/api/v2/common/company/update',\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    getTrailersDict = async (): Promise<TranziitApiResultT<ApiPaths.ApiV1Dicttrailers.Get.Responses.$200>> => {\n        return this.doFetchWithRetry<ApiPaths.ApiV1Dicttrailers.Get.Responses.$200>({\n            method: 'GET',\n            path: '/api/v1/dicttrailers',\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchTransportOrdersStatistics = async (): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2CarrierTransportationOrdersStatistic.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2CarrierTransportationOrdersStatistic.Get.Responses.$200>({\n            method: 'GET',\n            path: `/api/v2/carrier/transportation-orders/statistic`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchOrdersStatistics = async (): Promise<TranziitApiResultT<Api2Paths.ApiV2OrderStatistic.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2OrderStatistic.Get.Responses.$200>({\n            method: 'GET',\n            path: '/api/v2/order/statistic',\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchAdditionalServices = async (): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2DictCarrierAddservicesByType.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2DictCarrierAddservicesByType.Get.Responses.$200>({\n            method: 'GET',\n            path: `/api/v2/dict-carrier-addservices/by-type`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    getTrucksDict = async (): Promise<TranziitApiResultT<ApiPaths.ApiV1Dicttrucks.Get.Responses.$200>> => {\n        return this.doFetchWithRetry<ApiPaths.ApiV1Dicttrucks.Get.Responses.$200>({\n            method: 'GET',\n            path: `/api/v1/dicttrucks`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchCarriersUtilization = async (\n        carrierIds: ApiPaths.ApiV1UtilizationGetForCarriers.Get.Parameters.CarrierIds,\n        date: ApiPaths.ApiV1UtilizationGetForCarriers.Get.Parameters.Period,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1UtilizationGetForCarriers.Get.Responses.$200>> => {\n        const query: ApiPaths.ApiV1UtilizationGetForCarriers.Get.QueryParameters = {\n            carrierIds,\n            period: date,\n        };\n\n        return this.doFetch<ApiPaths.ApiV1UtilizationGetForCarriers.Get.Responses.$200>({\n            method: 'GET',\n            path: '/api/v1/utilization/getForCarriers',\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    forgotPassword = async (\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        email: TODO,\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        origin: string,\n    ): Promise<TODO> => {\n        return throwNotImplementedError();\n    };\n\n    addUserToCurrentCompany = async (\n        data: Api2Paths.ApiV2RegistrationInvite.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2RegistrationInvite.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2RegistrationInvite.Post.Responses.$200>({\n            method: 'POST',\n            path: `/api/v2/registration/invite`,\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    addContactToCurrentCompany = async (\n        newContact: ApiPaths.ApiV1Contact.Post.RequestBody,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1Contact.Post.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1Contact.Post.Responses.$200>({\n            method: 'POST',\n            path: `/api/v1/contact`,\n            data: newContact,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    fetchDocumentsDict = async (): Promise<TranziitApiResultT<ApiPaths.ApiV1Dictdocuments.Get.Responses.$200>> => {\n        return this.doFetchWithRetry<ApiPaths.ApiV1Dictdocuments.Get.Responses.$200>({\n            method: 'GET',\n            path: `/api/v1/dictdocuments`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchNotificationsPage = async (\n        query: FixPageableCommonQueryT,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1Notifications.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1Notifications.Get.Responses.$200>({\n            method: 'GET',\n            path: `/api/v1/notifications`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchUnReadNotifications = async (): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1NotificationsUnread.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1NotificationsUnread.Get.Responses.$200>({\n            method: 'GET',\n            path: '/api/v1/notifications/unread',\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchUnreadGroupedNotificationCounts = async (): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1NotificationsUnreadCountByActionByStatus.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1NotificationsUnreadCountByActionByStatus.Get.Responses.$200>({\n            method: 'GET',\n            path: '/api/v1/notifications/unread/count-by-action-by-status',\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    markAsRead = async (\n        ids: Api2Paths.ApiV1NotificationsMarkAsRead.Put.Parameters.Ids,\n        isAll?: boolean,\n    ): Promise<\n        TranziitApiResultT<\n            | Api2Paths.ApiV1NotificationsMarkAsRead.Put.Responses.$200\n            | Api2Paths.ApiV1NotificationsMarkAsReadAll.Put.Responses.$200\n        >\n    > => {\n        const path = isAll ? '/api/v1/notifications/mark-as-read/all' : '/api/v1/notifications/mark-as-read';\n        const query: Api2Paths.ApiV1NotificationsMarkAsRead.Put.QueryParameters | {} = isAll ? {} : { ids };\n\n        return this.doFetch<\n            | Api2Paths.ApiV1NotificationsMarkAsRead.Put.Responses.$200\n            | Api2Paths.ApiV1NotificationsMarkAsReadAll.Put.Responses.$200\n        >({\n            method: 'PUT',\n            path,\n            query,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    sendTestNotification = async (data: object): Promise<TranziitApiResultT<null>> => {\n        return this.doFetch<null>({\n            method: 'POST',\n            path: `/api/v1/test/notification`,\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    fetchDocuments = async (): Promise<TranziitApiResultT<ApiPaths.ApiV1DocumentsV2.Get.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1DocumentsV2.Get.Responses.$200>({\n            method: 'GET',\n            path: `/api/v1/documents/v2`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchDocument = async (\n        documentId: ApiPaths.ApiV1Document$DocumentIdGetFile.Get.Parameters.DocumentId,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1Document$DocumentIdGetFile.Get.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1Document$DocumentIdGetFile.Get.Responses.$200>({\n            method: 'GET',\n            path: `/api/v1/document/${documentId}/getFile`,\n            expectedResponseContentType: 'blob',\n        });\n    };\n\n    uploadDocument = async (\n        documentType: DocumentTypeEnum,\n        file: File,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1DocumentV2.Post.Responses.$200>> => {\n        const formData = new FormData();\n        formData.append('file', file);\n\n        const query: ApiPaths.ApiV1DocumentV2.Post.QueryParameters = {\n            documentType,\n        };\n\n        return this.doFetch<ApiPaths.ApiV1DocumentV2.Post.Responses.$200>({\n            headers: {\n                'Content-Type': 'multipart/form-data',\n            },\n            data: formData,\n            method: 'POST',\n            path: `/api/v1/document/v2`,\n            query,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    deleteUser = async (\n        userId: ApiPaths.ApiV1User$Id.Delete.Parameters.Id,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1User$Id.Delete.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1User$Id.Delete.Responses.$200>({\n            method: 'DELETE',\n            path: `/api/v1/user/${userId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    cancelUserInvite = async (\n        userId: ApiPaths.ApiV1User$UserIdCancelInvite.Delete.Parameters.UserId,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1User$UserIdCancelInvite.Delete.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1User$UserIdCancelInvite.Delete.Responses.$200>({\n            method: 'DELETE',\n            path: `/api/v1/user/${userId}/cancel-invite`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    restoreUser = async (\n        userId: ApiPaths.ApiV1User$IdRestore.Put.Parameters.Id,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1User$IdRestore.Put.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1User$IdRestore.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/api/v1/user/${userId}/restore`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    fetchCompanyContacts = async (): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2CommonCompanyContacts.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2CommonCompanyContacts.Get.Responses.$200>({\n            method: 'GET',\n            path: '/api/v2/common/company/contacts',\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    findCompanyUsersByName = async (\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        query: string,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CommonCompanyContacts.Get.Responses.$200>> => {\n        // TODO wait backend, there is no such endpoint\n        return this.doFetch<Api2Paths.ApiV2CommonCompanyContacts.Get.Responses.$200>({\n            method: 'GET',\n            path: '/api/v2/common/company/contacts',\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    deleteContact = async (\n        contactId: ApiPaths.ApiV1Contact$Id.Delete.Parameters.Id,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1Contact$Id.Delete.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1Contact$Id.Delete.Responses.$200>({\n            method: 'DELETE',\n            path: `/api/v1/contact/${contactId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    updateContact = async (\n        contactId: ApiPaths.ApiV1Contact$ContactId.Put.Parameters.ContactId,\n        contactChanges: ApiPaths.ApiV1Contact$ContactId.Put.RequestBody,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1Contact$ContactId.Put.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1Contact$ContactId.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/api/v1/contact/${contactId}`,\n            data: contactChanges,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    assignUserRole = async (\n        userId: ApiPaths.ApiV2User$IdAssignRoles.Put.Parameters.Id,\n        roles: ApiPaths.ApiV2User$IdAssignRoles.Put.Parameters.Roles,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV2User$IdAssignRoles.Put.Responses.$200>> => {\n        const query: ApiPaths.ApiV2User$IdAssignRoles.Put.QueryParameters = {\n            roles,\n        };\n\n        return this.doFetch<ApiPaths.ApiV2User$IdAssignRoles.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/api/v2/user/${userId}/assignRoles`,\n            expectedResponseContentType: 'unknown',\n            query,\n        });\n    };\n\n    fetchContactDetails = async (\n        contactId: ApiPaths.ApiV1Contact$Id.Get.Parameters.Id,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1Contact$Id.Get.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1Contact$Id.Get.Responses.$200>({\n            method: 'GET',\n            path: `/api/v1/contact/${contactId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchContactDetailsByUserId = async (\n        userId: ApiPaths.ApiV1User$IdContact.Put.Parameters.Id,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1User$IdContact.Put.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1User$IdContact.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/api/v1/user/${userId}/contact`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchSettings = async (\n        groups: Api2Paths.ApiV2Settings.Get.QueryParameters['groups'],\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2Settings.Get.Responses.$200>> => {\n        const query: Api2Paths.ApiV2Settings.Get.QueryParameters = {\n            groups,\n        };\n\n        return this.doFetch<Api2Paths.ApiV2Settings.Get.Responses.$200>({\n            method: 'GET',\n            path: `/api/v2/settings`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchRouteGeometryGoogle = async (\n        id: Api2Paths.RoutingApiV1Geometry$IdGoogle.Get.PathParameters['id'],\n    ): Promise<TranziitApiResultT<Api2Paths.RoutingApiV1Geometry$IdGoogle.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.RoutingApiV1Geometry$IdGoogle.Get.Responses.$200>({\n            method: 'GET',\n            path: `/routing/api/v1/geometry/${id}/google`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchImage = async (src: string): Promise<TranziitApiResultT<string[]>> => {\n        return this.doFetch<string[]>({\n            method: 'GET',\n            path: src,\n            expectedResponseContentType: 'blob',\n        });\n    };\n\n    fetchStateMachineEntityStatus = async (\n        subjectType: Api2Paths.ApiV2Statemachine$SubjectIdStatus.Parameters.SubjectType,\n        subjectId: Api2Paths.ApiV2Statemachine$SubjectIdStatus.Parameters.SubjectId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2Statemachine$SubjectIdStatus.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2Statemachine$SubjectIdStatus.Get.Responses.$200>({\n            method: 'GET',\n            path: `/api/v2/statemachine/${subjectId}/status`,\n            expectedResponseContentType: 'json',\n            query: {\n                subjectType,\n            },\n        });\n    };\n\n    updateStateMachineEntityStatus = async (\n        subjectType: Api2Paths.ApiV2Statemachine$SubjectIdStatus.Parameters.SubjectType,\n        subjectId: Api2Paths.ApiV2Statemachine$SubjectIdStatus.Parameters.SubjectId,\n        data: Api2.Definitions.UpdateSubjectStatusRequest,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2Statemachine$SubjectIdStatus.Put.Responses.$204>> => {\n        return this.doFetch<Api2Paths.ApiV2Statemachine$SubjectIdStatus.Put.Responses.$204>({\n            method: 'PUT',\n            path: `/api/v2/statemachine/${subjectId}/status`,\n            expectedResponseContentType: 'unknown',\n            query: {\n                subjectType,\n            },\n            data,\n        });\n    };\n\n    fetchStateMachineToursAvailableSteps = async (\n        tourId: Api2Paths.ApiV2StatemachineTours$TourIdAvailableSteps.Get.Parameters.TourId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2StatemachineTours$TourIdAvailableSteps.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2StatemachineTours$TourIdAvailableSteps.Get.Responses.$200>({\n            method: 'GET',\n            path: `/api/v2/statemachine/tours/${tourId}/available-steps`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    stateMachineToursWaypointsArrived = async (\n        tourId: Api2Paths.ApiV2StatemachineTours$TourIdWaypoints$WaypointIdArrived.Put.Parameters.TourId,\n        waypointId: Api2Paths.ApiV2StatemachineTours$TourIdWaypoints$WaypointIdArrived.Put.Parameters.WaypointId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2StatemachineTours$TourIdWaypoints$WaypointIdArrived.Put.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2StatemachineTours$TourIdWaypoints$WaypointIdArrived.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/api/v2/statemachine/tours/${tourId}/waypoints/${waypointId}/arrived`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    stateMachineToursWaypointsLeft = async (\n        tourId: Api2Paths.ApiV2StatemachineTours$TourIdWaypoints$WaypointIdLeft.Put.Parameters.TourId,\n        waypointId: Api2Paths.ApiV2StatemachineTours$TourIdWaypoints$WaypointIdLeft.Put.Parameters.WaypointId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2StatemachineTours$TourIdWaypoints$WaypointIdLeft.Put.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2StatemachineTours$TourIdWaypoints$WaypointIdLeft.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/api/v2/statemachine/tours/${tourId}/waypoints/${waypointId}/left`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    stateMachineToursWaypointsUndoArrived = async (\n        tourId: Api2Paths.ApiV2StatemachineTours$TourIdWaypoints$WaypointIdUndoArrived.Put.Parameters.TourId,\n        waypointId: Api2Paths.ApiV2StatemachineTours$TourIdWaypoints$WaypointIdUndoArrived.Put.Parameters.WaypointId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2StatemachineTours$TourIdWaypoints$WaypointIdUndoArrived.Put.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2StatemachineTours$TourIdWaypoints$WaypointIdUndoArrived.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/api/v2/statemachine/tours/${tourId}/waypoints/${waypointId}/undoArrived`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    stateMachineToursWaypointsUndoLeft = async (\n        tourId: Api2Paths.ApiV2StatemachineTours$TourIdWaypoints$WaypointIdUndoLeft.Put.Parameters.TourId,\n        waypointId: Api2Paths.ApiV2StatemachineTours$TourIdWaypoints$WaypointIdUndoLeft.Put.Parameters.WaypointId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2StatemachineTours$TourIdWaypoints$WaypointIdUndoLeft.Put.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2StatemachineTours$TourIdWaypoints$WaypointIdUndoLeft.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/api/v2/statemachine/tours/${tourId}/waypoints/${waypointId}/undoLeft`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    createCompany = async (\n        data: Api2Paths.ApiV1RegistrationSignUp.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1RegistrationSignUp.Post.Responses.$201>> => {\n        return this.doFetch<Api2Paths.ApiV1RegistrationSignUp.Post.Responses.$201>({\n            method: 'POST',\n            path: `/api/v1/registration/sign-up`,\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    completeUserRegistration = async (\n        data: Api2Paths.ApiV2RegistrationCompleteUserRegistration.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2RegistrationCompleteUserRegistration.Post.Responses.$201>> => {\n        return this.doFetch<Api2Paths.ApiV2RegistrationCompleteUserRegistration.Post.Responses.$201>({\n            method: 'POST',\n            path: `/api/v2/registration/complete-user-registration`,\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    createMultipointOrderReservation = async (\n        data: Api2Paths.ApiV2OrderReserves.Post.RequestBody,\n        shipperId?: Api2Paths.ApiV2OrderReserves.Post.Parameters.ShipperId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2OrderReserves.Post.Responses.$200>> => {\n        const query: Api2Paths.ApiV2OrderReserves.Post.QueryParameters = {\n            shipperId,\n        };\n        return this.doFetch<Api2Paths.ApiV2OrderReserves.Post.Responses.$200>({\n            method: 'POST',\n            path: `/api/v2/order-reserves`,\n            expectedResponseContentType: 'json',\n            data,\n            query,\n        });\n    };\n\n    previewReserve = async (\n        reserveId: Api2Paths.ApiV2OrderReserves$ReserveIdPreview.Put.Parameters.ReserveId,\n        data: Api2Paths.ApiV2OrderReserves$ReserveIdPreview.Put.RequestBody,\n        laneId?: Api2Paths.ApiV2OrderReserves$ReserveIdPreview.Put.Parameters.LaneId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2OrderReserves$ReserveIdPreview.Put.Responses.$200>> => {\n        const query: Api2Paths.ApiV2OrderReserves$ReserveIdPreview.Put.QueryParameters = {\n            laneId,\n        };\n\n        return this.doFetch<Api2Paths.ApiV2OrderReserves$ReserveIdPreview.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/api/v2/order-reserves/${reserveId}/preview`,\n            expectedResponseContentType: 'json',\n            data,\n            query,\n        });\n    };\n\n    fetchOrderReservesShippers = async (\n        query: Api2Paths.ApiV2OrderReservesShippers.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2OrderReservesShippers.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2OrderReservesShippers.Get.Responses.$200>({\n            method: 'GET',\n            path: `/api/v2/order-reserves/shippers`,\n            expectedResponseContentType: 'json',\n            query,\n        });\n    };\n\n    createMultipointOrderQuotation = async (\n        reserveId: Api2Paths.ApiV2OrderReserves$ReserveIdRequestQuotationsSync.Post.Parameters.ReserveId,\n        data: Api2Paths.ApiV2OrderReserves$ReserveIdRequestQuotationsSync.Post.RequestBody,\n        laneId?: Api2Paths.ApiV2OrderReserves$ReserveIdRequestQuotationsSync.Post.Parameters.LaneId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2OrderReserves$ReserveIdRequestQuotationsSync.Post.Responses.$200>> => {\n        const query: Api2Paths.ApiV2OrderReserves$ReserveIdRequestQuotationsSync.Post.QueryParameters = {\n            laneId,\n        };\n\n        return this.doFetch<Api2Paths.ApiV2OrderReserves$ReserveIdRequestQuotationsSync.Post.Responses.$200>({\n            method: 'POST',\n            path: `/api/v2/order-reserves/${reserveId}/request-quotations-sync`,\n            expectedResponseContentType: 'json',\n            data,\n            query,\n        });\n    };\n\n    getPriceOffers = async (\n        rfqId: Api2Paths.ApiV2Rfqs$RfqIdOffers.Get.Parameters.RfqId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2Rfqs$RfqIdOffers.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2Rfqs$RfqIdOffers.Get.Responses.$200>({\n            method: 'GET',\n            path: `/api/v2/rfqs/${rfqId}/offers`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    completeRFQ = async (\n        rfqId: Api2Paths.ApiV2Rfqs$RfqIdStatusCompleted.Post.Parameters.RfqId,\n        data: Api2Paths.ApiV2Rfqs$RfqIdStatusCompleted.Post.RequestBody,\n    ): Promise<\n        TranziitApiResultT<\n            Api2Paths.ApiV2Rfqs$RfqIdStatusCompleted.Post.Responses.$200,\n            Api2Paths.ApiV2Rfqs$RfqIdStatusCompleted.Post.Responses.$400\n        >\n    > => {\n        return this.doFetch<Api2Paths.ApiV2Rfqs$RfqIdStatusCompleted.Post.Responses.$200>({\n            method: 'POST',\n            path: `/api/v2/rfqs/${rfqId}/status/completed`,\n            expectedResponseContentType: 'json',\n            data,\n        });\n    };\n\n    getTimeZones = async (): Promise<TranziitApiResultT<Api2Paths.ApiV1TimeZones.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1TimeZones.Get.Responses.$200>({\n            method: 'GET',\n            path: '/api/v1/time-zones',\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    closeRFQ = async (\n        rfqId: Api2Paths.ApiV2Rfqs$RfqIdStatusClosed.Put.Parameters.RfqId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2Rfqs$RfqIdStatusClosed.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2Rfqs$RfqIdStatusClosed.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/api/v2/rfqs/${rfqId}/status/closed`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    getSubjectLogs = async (\n        subjectType: Api2Paths.ApiV1Logs$SubjectType$SubjectId.Get.Parameters.SubjectType,\n        subjectId: Api2Paths.ApiV1Logs$SubjectType$SubjectId.Get.Parameters.SubjectId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1Logs$SubjectType$SubjectId.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1Logs$SubjectType$SubjectId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/api/v1/logs/${subjectType}/${subjectId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    setMainContactForPartner = async (\n        companyId: Api2Paths.ApiV2CommonCompanySetMainContact$CompanyId.Post.Parameters.CompanyId,\n        userContactId: Api2Paths.ApiV2CommonCompanySetMainContact$CompanyId.Post.Parameters.UserContactId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CommonCompanySetMainContact$CompanyId.Post.Responses.$200>> => {\n        const query: Api2Paths.ApiV2CommonCompanySetMainContact$CompanyId.Post.QueryParameters = {\n            userContactId,\n        };\n\n        return this.doFetch<Api2Paths.ApiV2CommonCompanySetMainContact$CompanyId.Post.Responses.$200>({\n            method: 'POST',\n            path: `/api/v2/common/company/set-main-contact/${companyId}`,\n            query,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n}\n\nconst commonTranziitApi = CommonTranziitApi.getInstance();\n\nexport default commonTranziitApi;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"SpotRequestDetailsPage__fadeIn___HIY9y\",\"blinking\":\"SpotRequestDetailsPage__blinking___rjSBp\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './TrailerCell.scss';\nimport { useTranslation } from 'react-i18next';\nimport { BrokerOrderShortT } from 'broker-admin/store/broker-orders/models';\nimport TableCellLink from 'common/components/Table/cell-renderers/TableCellLink/TableCellLink';\nimport { LinkSizeEnum, LinkThemeEnum } from 'common/components/Link/Link';\n\ntype PropsT = {\n    brokerOrderShort: BrokerOrderShortT;\n    onOpenTrailerDetails: (companyId: CarrierIdT, trailerId: TrailerIdT) => void;\n};\n\nconst cx = classNames.bind(styles);\n\nconst TrailerCell: React.FC<PropsT> = React.memo((props) => {\n    const { brokerOrderShort, onOpenTrailerDetails } = props;\n\n    const { t } = useTranslation();\n\n    const { trailerModel, trailerId, trailerPlateNumber } = brokerOrderShort;\n\n    return (\n        <div>\n            {trailerModel && <div className={cx('model')}>{trailerModel}</div>}\n            {trailerId ? (\n                <TableCellLink\n                    className={cx('trailer-link')}\n                    onClick={() => {\n                        if (!brokerOrderShort.trailerCarrierId || !brokerOrderShort.trailerId) {\n                            return;\n                        }\n\n                        onOpenTrailerDetails(brokerOrderShort.trailerCarrierId, brokerOrderShort.trailerId);\n                    }}\n                    size={LinkSizeEnum.medium}\n                    theme={LinkThemeEnum.boldBrandDark}\n                >\n                    {trailerPlateNumber}\n                </TableCellLink>\n            ) : (\n                <div className={cx('not-assigned')}>{t('broker-orders.list.table.not-assigned')}</div>\n            )}\n        </div>\n    );\n});\n\nexport default TrailerCell;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './CompanyLogo.scss';\n\nexport enum CompanyLogoSizeEnum {\n    small = 'small',\n    medium = 'medium',\n    large = 'large',\n    extraLarge = 'extra-large',\n}\n\ntype PropsT = {\n    className?: string;\n    size?: CompanyLogoSizeEnum;\n};\n\nconst cx = classNames.bind(styles);\n\nconst CompanyLogo: React.FC<PropsT> = React.memo((props) => {\n    const { className, size = CompanyLogoSizeEnum.small } = props;\n\n    return <div className={cs(cx('company-logo', `company-logo--size-${size}`), className)} />;\n});\n\nexport default CompanyLogo;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport type UnassignDriversConfirmationDataT = {};\n\ntype PropsT = {\n    data: UnassignDriversConfirmationDataT | null;\n    onConfirm: (data: UnassignDriversConfirmationDataT) => void;\n    onCancel: () => void;\n    onClose: () => void;\n    requestStatus: RequestStatusT;\n};\n\nconst TEST_SELECTOR = 'unassign-drivers-confirmation';\n\nconst UnassignDriversConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, onConfirm, onCancel, onClose, requestStatus } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: requestStatus.loading,\n                            onClick: onCancel,\n                        },\n                        {\n                            children: t('common:error-modal.actions.clear'),\n                            theme: ButtonThemeEnum.danger,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            isDisabled: requestStatus.loading,\n                            isLoading: requestStatus.loading,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                    title={t('common:transport-order-details.dialogs.unassign-drivers.title')}\n                    message={t('common:transport-order-details.dialogs.unassign-drivers.description')}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default UnassignDriversConfirmation;\n","import * as React from 'react';\nimport WarningIcon from 'common/icons/WarningIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\n\nexport type PropsT = {\n    className?: string;\n    children?: React.ReactNode;\n    qa?: string;\n};\n\nconst EntityCriticalWarningAlert: React.FC<PropsT> = React.memo(({ className, children }) => {\n    return (\n        <Alert\n            className={className}\n            icon={<WarningIcon fillColor={StyleGuideColorsEnum.white} />}\n            size={AlertSizeEnum.small}\n            theme={AlertThemeEnum.tomatoRed}\n        >\n            {children}\n        </Alert>\n    );\n});\n\nexport default EntityCriticalWarningAlert;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst UnLockIcon: React.FC<PropsT> = (props) => {\n    const { size, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M10 10.75c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5 1.5-.675 1.5-1.5-.675-1.5-1.5-1.5zM14.5 7h-.75V5.5c0-2.07-1.68-3.75-3.75-3.75a3.747 3.747 0 00-3.63 2.813.747.747 0 00.54.915.75.75 0 00.915-.54A2.247 2.247 0 0110 3.25a2.257 2.257 0 012.25 2.25V7H5.5C4.675 7 4 7.675 4 8.5V16c0 .825.675 1.5 1.5 1.5h9c.825 0 1.5-.675 1.5-1.5V8.5c0-.825-.675-1.5-1.5-1.5zm0 8.25c0 .412-.338.75-.75.75h-7.5a.752.752 0 01-.75-.75v-6c0-.412.338-.75.75-.75h7.5c.412 0 .75.338.75.75v6z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nUnLockIcon.displayName = 'UnLockIcon';\n\nconst storyProps: PropsT = {\n    strokeColor: StyleGuideColorsEnum.charcoal,\n    size: DEFAULT_ICON_SIZE,\n};\n\nexport { storyProps };\nexport default UnLockIcon;\n","import { ApiDocumentTypeT, ApiLogRecordT } from 'common/utils/api/models';\nimport { CompanyTypeEnum } from 'common/constants';\n\ntype StringFieldKeyT<T> = {\n    [K in keyof T]-?: T[K] extends string ? K : never;\n}[keyof T];\n\nexport type PatchStringFieldLogRecordDataT<\n    TLogRecord extends { data: {} },\n    TPatchData extends Record<keyof TPatchData, string> &\n        Record<Exclude<keyof TPatchData, StringFieldKeyT<TLogRecord['data']>>, never>,\n> = OverwriteT<\n    TLogRecord,\n    {\n        data: OverwriteT<TLogRecord['data'], TPatchData>;\n    }\n>;\n\ntype DocumentUploadedLogRecordT = PatchStringFieldLogRecordDataT<\n    Api2.Definitions.DocumentUploadedLogRecordDto,\n    { documentType: ApiDocumentTypeT }\n>;\n\ntype DocumentExpiredSoonLogRecordT = PatchStringFieldLogRecordDataT<\n    Api2.Definitions.DocumentExpiredSoonLogRecordDto,\n    { documentType: ApiDocumentTypeT }\n>;\n\ntype DocumentExpiredLogRecordT = PatchStringFieldLogRecordDataT<\n    Api2.Definitions.DocumentExpiredLogRecordDto,\n    { documentType: ApiDocumentTypeT }\n>;\n\ntype DocumentApprovedLogRecordT = PatchStringFieldLogRecordDataT<\n    Api2.Definitions.DocumentApprovedLogRecordDto,\n    { documentType: ApiDocumentTypeT }\n>;\n\ntype DocumentRejectedLogRecordT = PatchStringFieldLogRecordDataT<\n    Api2.Definitions.DocumentRejectedLogRecordDto,\n    { documentType: ApiDocumentTypeT }\n>;\n\ntype DocumentRevokedLogRecordT = PatchStringFieldLogRecordDataT<\n    Api2.Definitions.DocumentRevokedLogRecordDto,\n    { documentType: ApiDocumentTypeT }\n>;\n\ntype DocumentUpdatedLogRecordT = PatchStringFieldLogRecordDataT<\n    Api2.Definitions.DocumentUpdatedLogRecordDto,\n    { documentType: ApiDocumentTypeT }\n>;\n\nexport enum LogRecordActionEnum {\n    ORDER_STATUS_CHANGED = 'ORDER_STATUS_CHANGED',\n    ORDER_PLACED = 'ORDER_PLACED',\n    ORDER_CANCELED = 'ORDER_CANCELED',\n    TOUR_STATUS_CHANGED = 'TOUR_STATUS_CHANGED',\n    ORDER_ROUTE_UPDATED = 'ORDER_ROUTE_UPDATED',\n    TOUR_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER = 'TOUR_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER',\n    TOUR_DELAYING = 'TOUR_DELAYING',\n    TRANSPORTATION_ORDER_STATUS_CHANGED = 'TRANSPORTATION_ORDER_STATUS_CHANGED',\n    TRANSPORTATION_ORDER_DECLINED = 'TRANSPORTATION_ORDER_DECLINED',\n    TRANSPORTATION_ORDER_CANCELED = 'TRANSPORTATION_ORDER_CANCELED',\n    TRANSPORTATION_ORDER_UPDATED = 'TRANSPORTATION_ORDER_UPDATED',\n    TRANSPORTATION_ORDER_ASSETS_ASSIGNED = 'TRANSPORTATION_ORDER_ASSETS_ASSIGNED',\n    TRANSPORTATION_ORDER_ASSETS_UNASSIGNED = 'TRANSPORTATION_ORDER_ASSETS_UNASSIGNED',\n    TRANSPORTATION_ORDER_DRIVER_ASSIGNED = 'TRANSPORTATION_ORDER_DRIVER_ASSIGNED',\n    TRANSPORTATION_ORDER_DRIVER_UNASSIGNED = 'TRANSPORTATION_ORDER_DRIVER_UNASSIGNED',\n    TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_ASSETS = 'TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_ASSETS',\n    TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_DRIVER = 'TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_DRIVER',\n    TRANSPORTATION_ORDER_PLACED = 'TRANSPORTATION_ORDER_PLACED',\n    SHIPMENT_STATUS_CHANGED = 'SHIPMENT_STATUS_CHANGED',\n    SHIPMENT_CANCELED = 'SHIPMENT_CANCELED',\n    SHIPMENT_NO_SHOW = 'SHIPMENT_NO_SHOW',\n    SHIPMENT_MISSED = 'SHIPMENT_MISSED',\n    SHIPMENT_UPDATED = 'SHIPMENT_UPDATED',\n    TOUR_SPOT_PLACED = 'TOUR_SPOT_PLACED',\n    TOUR_SPOT_CANCELLED = 'TOUR_SPOT_CANCELLED',\n    TOUR_SPOT_EXPIRED = 'TOUR_SPOT_EXPIRED',\n    WAYPOINT_UPDATED = 'WAYPOINT_UPDATED',\n    DOCUMENT_UPLOAD = 'DOCUMENT_UPLOAD',\n    DOCUMENT_APPROVED = 'DOCUMENT_APPROVED',\n    DOCUMENT_REJECTED = 'DOCUMENT_REJECTED',\n    DOCUMENT_REVOKED = 'DOCUMENT_REVOKED',\n    DOCUMENT_UPDATED = 'DOCUMENT_UPDATED',\n    DOCUMENT_EXPIRATION_SOON = 'DOCUMENT_EXPIRATION_SOON',\n    DOCUMENT_EXPIRED = 'DOCUMENT_EXPIRED',\n    UNKNOWN_ACTION = 'unknown',\n}\n\ntype LogRecordT<T extends LogRecordActionEnum> = OverwriteT<\n    LogRecordDescriptorT[T],\n    {\n        action: T;\n    }\n>;\n\nexport type AnyLogRecordT =\n    | LogRecordT<LogRecordActionEnum.ORDER_STATUS_CHANGED>\n    | LogRecordT<LogRecordActionEnum.ORDER_PLACED>\n    | LogRecordT<LogRecordActionEnum.ORDER_CANCELED>\n    | LogRecordT<LogRecordActionEnum.TOUR_STATUS_CHANGED>\n    | LogRecordT<LogRecordActionEnum.ORDER_ROUTE_UPDATED>\n    | LogRecordT<LogRecordActionEnum.TOUR_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER>\n    | LogRecordT<LogRecordActionEnum.TOUR_DELAYING>\n    | LogRecordT<LogRecordActionEnum.TRANSPORTATION_ORDER_STATUS_CHANGED>\n    | LogRecordT<LogRecordActionEnum.TRANSPORTATION_ORDER_DECLINED>\n    | LogRecordT<LogRecordActionEnum.TRANSPORTATION_ORDER_CANCELED>\n    | LogRecordT<LogRecordActionEnum.TRANSPORTATION_ORDER_UPDATED>\n    | LogRecordT<LogRecordActionEnum.TRANSPORTATION_ORDER_ASSETS_ASSIGNED>\n    | LogRecordT<LogRecordActionEnum.TRANSPORTATION_ORDER_ASSETS_UNASSIGNED>\n    | LogRecordT<LogRecordActionEnum.TRANSPORTATION_ORDER_DRIVER_ASSIGNED>\n    | LogRecordT<LogRecordActionEnum.TRANSPORTATION_ORDER_DRIVER_UNASSIGNED>\n    | LogRecordT<LogRecordActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_ASSETS>\n    | LogRecordT<LogRecordActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_DRIVER>\n    | LogRecordT<LogRecordActionEnum.TRANSPORTATION_ORDER_PLACED>\n    | LogRecordT<LogRecordActionEnum.SHIPMENT_STATUS_CHANGED>\n    | LogRecordT<LogRecordActionEnum.SHIPMENT_CANCELED>\n    | LogRecordT<LogRecordActionEnum.SHIPMENT_NO_SHOW>\n    | LogRecordT<LogRecordActionEnum.SHIPMENT_MISSED>\n    | LogRecordT<LogRecordActionEnum.SHIPMENT_UPDATED>\n    | LogRecordT<LogRecordActionEnum.TOUR_SPOT_PLACED>\n    | LogRecordT<LogRecordActionEnum.TOUR_SPOT_CANCELLED>\n    | LogRecordT<LogRecordActionEnum.TOUR_SPOT_EXPIRED>\n    | LogRecordT<LogRecordActionEnum.WAYPOINT_UPDATED>\n    | LogRecordT<LogRecordActionEnum.DOCUMENT_UPLOAD>\n    | LogRecordT<LogRecordActionEnum.DOCUMENT_APPROVED>\n    | LogRecordT<LogRecordActionEnum.DOCUMENT_REJECTED>\n    | LogRecordT<LogRecordActionEnum.DOCUMENT_REVOKED>\n    | LogRecordT<LogRecordActionEnum.DOCUMENT_UPDATED>\n    | LogRecordT<LogRecordActionEnum.DOCUMENT_EXPIRATION_SOON>\n    | LogRecordT<LogRecordActionEnum.DOCUMENT_EXPIRED>\n    | LogRecordT<LogRecordActionEnum.UNKNOWN_ACTION>;\n\nexport type LogRecordConverterOptionsT = {\n    companyType: CompanyTypeEnum;\n};\n\nexport type LogRecordConverterT = (apiLog: ApiLogRecordT, options: LogRecordConverterOptionsT) => AnyLogRecordT;\n\nexport type LogRecordDescriptorT = {\n    [LogRecordActionEnum.ORDER_STATUS_CHANGED]: Api2.Definitions.OrderStatusChangedLogRecordDto;\n    [LogRecordActionEnum.ORDER_PLACED]: Api2.Definitions.OrderPlacedLogRecordDto;\n    [LogRecordActionEnum.ORDER_CANCELED]: Api2.Definitions.OrderCanceledLogRecordDto;\n    [LogRecordActionEnum.TOUR_STATUS_CHANGED]: Api2.Definitions.TourStatusChangedLogRecordDto;\n    [LogRecordActionEnum.ORDER_ROUTE_UPDATED]: Api2.Definitions.OrderRouteUpdatedLogRecordDto;\n    [LogRecordActionEnum.TOUR_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER]: Api2.Definitions.TourRunOrRunningOutOfTimeToAssignCarrierLogRecordDto;\n    [LogRecordActionEnum.TOUR_DELAYING]: Api2.Definitions.TourDelayingLogRecordDto;\n    [LogRecordActionEnum.TRANSPORTATION_ORDER_STATUS_CHANGED]: Api2.Definitions.TransportationOrderStatusChangedLogRecordDto;\n    [LogRecordActionEnum.TRANSPORTATION_ORDER_DECLINED]: Api2.Definitions.TransportationOrderDeclinedLogRecordDto;\n    [LogRecordActionEnum.TRANSPORTATION_ORDER_CANCELED]: Api2.Definitions.TransportationOrderCanceledLogRecordDto;\n    [LogRecordActionEnum.TRANSPORTATION_ORDER_UPDATED]: Api2.Definitions.TransportationOrderUpdatedLogRecordDto;\n    [LogRecordActionEnum.TRANSPORTATION_ORDER_ASSETS_ASSIGNED]: Api2.Definitions.TransportationOrderAssetsAssignedLogRecordDto;\n    [LogRecordActionEnum.TRANSPORTATION_ORDER_ASSETS_UNASSIGNED]: Api2.Definitions.TransportationOrderAssetsUnassignedLogRecordDto;\n    [LogRecordActionEnum.TRANSPORTATION_ORDER_DRIVER_ASSIGNED]: Api2.Definitions.TransportationOrderDriverAssignedLogRecordDto;\n    [LogRecordActionEnum.TRANSPORTATION_ORDER_DRIVER_UNASSIGNED]: Api2.Definitions.TransportationOrderDriverUnassignedLogRecordDto;\n    [LogRecordActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_ASSETS]: Api2.Definitions.TransportationOrderRunOrRunningOutOfTimeToAssignAssetsLogRecordDto;\n    [LogRecordActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_DRIVER]: Api2.Definitions.TransportationOrderRunOrRunningOutOfTimeToAssignDriverLogRecordDto;\n    [LogRecordActionEnum.TRANSPORTATION_ORDER_PLACED]: Api2.Definitions.TransportationOrderPlacedLogRecordDto;\n    [LogRecordActionEnum.SHIPMENT_STATUS_CHANGED]: Api2.Definitions.ShipmentStatusChangedLogRecordDto;\n    [LogRecordActionEnum.SHIPMENT_CANCELED]: Api2.Definitions.ShipmentCanceledLogRecordDto;\n    [LogRecordActionEnum.SHIPMENT_NO_SHOW]: Api2.Definitions.ShipmentNoShowLogRecordDto;\n    [LogRecordActionEnum.SHIPMENT_MISSED]: Api2.Definitions.ShipmentMissedLogRecordDto;\n    [LogRecordActionEnum.SHIPMENT_UPDATED]: Api2.Definitions.ShipmentUpdatedLogRecordDto;\n    [LogRecordActionEnum.TOUR_SPOT_PLACED]: Api2.Definitions.TourSpotPlacedLogRecordDto;\n    [LogRecordActionEnum.TOUR_SPOT_CANCELLED]: Api2.Definitions.TourSpotCancelledLogRecordDto;\n    [LogRecordActionEnum.TOUR_SPOT_EXPIRED]: Api2.Definitions.TourSpotExpiredLogRecordDto;\n    [LogRecordActionEnum.WAYPOINT_UPDATED]: Api2.Definitions.WaypointUpdatedLogRecordDto;\n    [LogRecordActionEnum.DOCUMENT_UPLOAD]: DocumentUploadedLogRecordT;\n    [LogRecordActionEnum.DOCUMENT_APPROVED]: DocumentApprovedLogRecordT;\n    [LogRecordActionEnum.DOCUMENT_REJECTED]: DocumentRejectedLogRecordT;\n    [LogRecordActionEnum.DOCUMENT_REVOKED]: DocumentRevokedLogRecordT;\n    [LogRecordActionEnum.DOCUMENT_UPDATED]: DocumentUpdatedLogRecordT;\n    [LogRecordActionEnum.DOCUMENT_EXPIRATION_SOON]: DocumentExpiredSoonLogRecordT;\n    [LogRecordActionEnum.DOCUMENT_EXPIRED]: DocumentExpiredLogRecordT;\n    [LogRecordActionEnum.UNKNOWN_ACTION]: Api2.Definitions.LogRecordDto & { data: any };\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { LinkProfileConfirmationDataT } from './models';\n\ntype PropsT = {\n    data: LinkProfileConfirmationDataT | null;\n    requestStatus: RequestStatusT;\n    onClose: () => void;\n    onCancel: () => void;\n    onConfirm: (data: LinkProfileConfirmationDataT) => void;\n};\n\nconst TEST_SELECTOR = 'link-profile-confirmation';\n\nconst LinkProfileConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, requestStatus, onClose, onCancel, onConfirm } = props;\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: requestStatus.loading,\n                            onClick: onCancel,\n                        },\n                        {\n                            children: t('partner.details-tab.dialogs.link-profile.action'),\n                            theme: ButtonThemeEnum.danger,\n                            isDisabled: requestStatus.loading,\n                            isLoading: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                    title={t('partner.details-tab.dialogs.link-profile.title')}\n                    message={t('partner.details-tab.dialogs.link-profile.description', {\n                        profileName: data.externalBusinessPartner.name,\n                        number: data.externalBusinessPartner.number,\n                    })}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default LinkProfileConfirmation;\n","import { put, takeEvery, select } from 'redux-saga/effects';\nimport {\n    downloadTenderXLSFile,\n    downloadTenderXLSFileBegin,\n    downloadTenderXLSFileSuccess,\n    downloadTenderXLSFileError,\n    importTenderXLSFile,\n    importTenderXLSFileBegin,\n    importTenderXLSFileSuccess,\n    importTenderXLSFileError,\n    fetchTenderStatus,\n    fetchTenderStatusBegin,\n    fetchTenderStatusSuccess,\n    fetchTenderStatusError,\n    deleteTender,\n    deleteTenderBegin,\n    deleteTenderSuccess,\n    deleteTenderError,\n} from './slice';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport downloadFile from 'common/utils/download-file';\nimport { selectTendersFetchStatusRequestStatus, selectTendersLastStatus } from './selectors';\n\nfunction* downloadTenderXLSFileSaga(): WrapGeneratorT<void> {\n    yield put(downloadTenderXLSFileBegin());\n\n    const lastStatus: ReturnType<typeof selectTendersLastStatus> = yield select(selectTendersLastStatus);\n\n    const [error, data]: ReturnApiT<typeof brokerTranziitApi.downloadTenderXLSFile> =\n        yield brokerTranziitApi.downloadTenderXLSFile();\n\n    if (error) {\n        yield put(downloadTenderXLSFileError({ error }));\n        return;\n    }\n\n    if (data) {\n        let fileName: string;\n        if (lastStatus?.timestamp) {\n            fileName = `tender-${lastStatus.timestamp}.xlsx`;\n        } else if (lastStatus?.fileName) {\n            fileName = `${lastStatus.fileName.replace(/\\.[^/.]+$/, '')}-result.xlsx`;\n        } else {\n            fileName = `tender-${Date.now()}.xlsx`;\n        }\n\n        downloadFile({\n            name: fileName,\n            data,\n            type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n        });\n    }\n\n    yield put(downloadTenderXLSFileSuccess());\n}\n\nfunction* importTenderXLSFileSaga(action: ReturnType<typeof importTenderXLSFile>): WrapGeneratorT<void> {\n    const { file } = action.payload;\n\n    yield put(importTenderXLSFileBegin());\n\n    const [error, status]: ReturnApiT<typeof brokerTranziitApi.importTenderXLSFile> =\n        yield brokerTranziitApi.importTenderXLSFile(file);\n\n    if (error) {\n        yield put(importTenderXLSFileError({ error }));\n        return;\n    }\n\n    if (status) {\n        yield put(importTenderXLSFileSuccess({ status }));\n    }\n}\n\nfunction* fetchTenderStatusSaga(): WrapGeneratorT<void> {\n    const fetchStatusRequestStatus: ReturnType<typeof selectTendersFetchStatusRequestStatus> = yield select(\n        selectTendersFetchStatusRequestStatus,\n    );\n    if (fetchStatusRequestStatus.loading) {\n        return;\n    }\n\n    yield put(fetchTenderStatusBegin());\n\n    const [error, status]: ReturnApiT<typeof brokerTranziitApi.getTenderStatus> =\n        yield brokerTranziitApi.getTenderStatus();\n\n    if (error) {\n        yield put(fetchTenderStatusError({ error }));\n        return;\n    }\n\n    yield put(fetchTenderStatusSuccess({ status }));\n}\n\nfunction* deleteTenderSaga(): WrapGeneratorT<void> {\n    yield put(deleteTenderBegin());\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.deleteTender> = yield brokerTranziitApi.deleteTender();\n\n    if (error) {\n        yield put(deleteTenderError({ error }));\n        return;\n    }\n\n    yield put(deleteTenderSuccess());\n}\n\nfunction* tendersSaga(): WrapGeneratorT<void> {\n    yield takeEvery(downloadTenderXLSFile.type, downloadTenderXLSFileSaga);\n    yield takeEvery(importTenderXLSFile.type, importTenderXLSFileSaga);\n    yield takeEvery(fetchTenderStatus.type, fetchTenderStatusSaga);\n    yield takeEvery(deleteTender.type, deleteTenderSaga);\n}\n\nexport default tendersSaga;\n","import { AsyncFormErrorsT, FieldsEnum } from './constants';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { AuthErrorTypeEnum } from 'common/utils/api/auth/errors/auth-api-error';\nimport {\n    checkIsTranziitApiRequestError,\n    TranziitApiRequestErrorSubTypeEnum,\n} from 'common/utils/api/tranziit/errors/tranziit-api-errors';\n\nconst asyncValidate = (requestError: RequestStatusT): AsyncFormErrorsT => {\n    if (!requestError.error) {\n        return {};\n    }\n\n    if (\n        checkIsTranziitApiRequestError(requestError.error) &&\n        requestError?.error?.subType === TranziitApiRequestErrorSubTypeEnum.notFoundUser\n    ) {\n        return {\n            [FieldsEnum.email]: AuthErrorTypeEnum.userNotFound,\n        };\n    }\n\n    if (requestError?.error) {\n        return {\n            [FieldsEnum.email]: AuthErrorTypeEnum.unknown,\n        };\n    }\n\n    return {};\n};\n\nexport default asyncValidate;\n","import React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './CustomZoneTextWrap.scss';\nimport { RangeSelectorRangeT } from '../models';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    values: number[] | null;\n    currentRanges: RangeSelectorRangeT[] | null;\n    renderZoneTextNode: (currentRanges: RangeSelectorRangeT[] | null, values: number[] | null) => React.ReactNode;\n};\n\nconst CustomZoneTextWrap: React.FC<PropsT> = React.memo((props) => {\n    const { values, currentRanges, renderZoneTextNode } = props;\n\n    return (\n        <div className={cx('zone-title')} data-test-selector=\"custom-range-selector-zone-text\">\n            {renderZoneTextNode(currentRanges, values)}\n        </div>\n    );\n});\n\nexport default CustomZoneTextWrap;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    fillOpacity?: number;\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n    size: number;\n};\n\nconst TruckIcon: React.FC<PropsT> = (props) => {\n    const { size, className, fillColor, fillOpacity, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\" className={className}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path fill={fillColor} fillOpacity={fillOpacity || 1} d=\"M5 5h10v8l1 1v2H4v-2l1-1z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M17.237 12.937c0-.597-.506-1.08-1.13-1.08h-.295V1.723a.267.267 0 00-.126-.225l-.717-.453c-.188-.118-.438.01-.438.225v3.255l-.213-.551c-.288-.741-1.027-1.233-1.853-1.233H7.531c-.832 0-1.574.498-1.858 1.245l-.204.539V1.27c0-.215-.25-.343-.438-.225l-.717.453a.268.268 0 00-.127.225v10.134h-.295c-.623 0-1.129.483-1.129 1.08v2.775h-.48a.276.276 0 00-.283.27v1.493c0 .149.126.27.282.27H3.5v.715c0 .298.253.54.565.54H5.56a.553.553 0 00.565-.54v-.715h7.75v.715c0 .298.253.54.565.54h1.495a.553.553 0 00.565-.54v-.715h1.218a.276.276 0 00.282-.27v-1.493a.276.276 0 00-.282-.27h-.481v-2.775zM5.843 6.029h8.314v2.66H5.843v-2.66zm-.194 8.928h-.964a.522.522 0 01-.533-.51v-.013c0-.282.238-.51.533-.51h.964c.295 0 .534.228.534.51v.013c0 .281-.239.51-.534.51zm6.27.15H8.08a.552.552 0 01-.564-.54v-3.42c0-.299.252-.54.564-.54h3.838c.312 0 .564.241.564.54v3.42c0 .299-.252.54-.564.54zm3.396-.15h-.964a.523.523 0 01-.534-.51v-.013c0-.282.239-.51.534-.51h.964c.294 0 .533.228.533.51v.013c0 .281-.239.51-.533.51z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nTruckIcon.displayName = 'TruckIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport const TruckIconProps = {\n    getControlProps: ({\n        isDisabled,\n        isFocused,\n        isPressed,\n        hasError,\n        hasWarning,\n        hasSuccess,\n        hasValue,\n    }: {\n        isDisabled?: boolean;\n        isFocused?: boolean;\n        isPressed?: boolean;\n        hasError?: boolean;\n        hasWarning?: boolean;\n        hasSuccess?: boolean;\n        hasValue?: boolean;\n    }): PropsT => {\n        if (hasError) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.tomatoRed,\n            };\n        }\n\n        if (hasWarning) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.orange,\n            };\n        }\n\n        if (hasSuccess) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n\n        if (isDisabled) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.slate,\n            };\n        }\n\n        return {\n            size: DEFAULT_ICON_SIZE,\n            fillColor:\n                hasValue || isFocused || isPressed\n                    ? StyleGuideColorsEnum.brandAccent\n                    : StyleGuideColorsEnum.transparent,\n            strokeColor:\n                hasValue || isFocused || isPressed ? StyleGuideColorsEnum.brandDark : StyleGuideColorsEnum.light,\n        };\n    },\n};\n\n/**\n *  @deprecated create/use ...Props class\n * */\nexport const getTruckIconProps = (\n    preset:\n        | 'default'\n        | 'assignment-events'\n        | 'assignment-normal'\n        | 'assignment-selected'\n        | 'assignment-not-in-time-normal'\n        | 'assignment-not-in-time-selected',\n): PropsT => {\n    switch (preset) {\n        case 'assignment-normal': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.white,\n            };\n        }\n        case 'assignment-events': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.white,\n            };\n        }\n        case 'assignment-selected': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.brandAccent,\n            };\n        }\n        case 'assignment-not-in-time-normal': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.slate,\n            };\n        }\n        case 'assignment-not-in-time-selected': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        case 'default':\n        default: {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.brandAccent,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n    }\n};\n\nexport { storyProps };\nexport default TruckIcon;\n","import { diffImpactStrategySet, FieldsEnum, FormValuesT, RepeatTypeEnum } from './constants';\nimport { RuleDetailsT } from 'broker-admin/store/price-settings/rules/models';\nimport { WEEK_DAYS_ORDER, ZIP_CODES_SEPARATOR } from 'common/constants';\nimport { clearDateTimezone } from 'common/utils/time';\nimport { RuleImpactStrategyEnum, RepeatStrategyTypeEnum } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { CountryCodeT } from 'common/store/countries-dict/models';\nimport { PriceRuleTypeEnum } from 'common/utils/api/models';\n\nconst prepareZipCodes = (zipCodes?: string[]): string => {\n    return (zipCodes || []).join(ZIP_CODES_SEPARATOR);\n};\n\nconst prepareCodes = (codes: string[]): CountryCodeT[] => {\n    return codes.map((code) => code.toUpperCase() as CountryCodeT);\n};\n\nconst prepareValidDate = (validDate?: string): Date | null => {\n    const clearedDate = clearDateTimezone(validDate);\n    return clearedDate ? new Date(clearedDate) : null;\n};\n\nexport const DEFAULT_IMPACT_VALUE = '';\nexport const DEFAULT_IMPACT_DIFF_VALUE = '+';\n\nconst getInitialValues = (\n    editableRuleDetails: RuleDetailsT | null,\n    allTrailerDictTypeIds: Array<TrailerDictIdT>,\n): FormValuesT => {\n    const isNewRule = !editableRuleDetails;\n    const loadedTrailerDict = !!allTrailerDictTypeIds?.length;\n\n    const ruleTrailerTypeIds = (editableRuleDetails?.trailerTypeIds || []).map((value) => String(value));\n\n    const impactStrategy = editableRuleDetails?.operator || RuleImpactStrategyEnum.percent;\n    const isDiffImpactStrategy = diffImpactStrategySet.has(impactStrategy);\n\n    const values: FormValuesT = {\n        [FieldsEnum.id]: editableRuleDetails?.id || null,\n\n        [FieldsEnum.name]: editableRuleDetails?.name || '',\n        [FieldsEnum.type]: editableRuleDetails?.ruleType || null,\n\n        [FieldsEnum.fromCountryCodes]: prepareCodes(editableRuleDetails?.countriesFrom || []),\n        [FieldsEnum.fromCountryZipCodes]: prepareZipCodes(editableRuleDetails?.zipsFrom),\n\n        [FieldsEnum.toCountryCodes]: prepareCodes(editableRuleDetails?.countriesTo || []),\n        [FieldsEnum.toCountryZipCodes]: prepareZipCodes(editableRuleDetails?.zipsTo),\n\n        [FieldsEnum.dates]: {\n            from: null,\n            to: null,\n        },\n        [FieldsEnum.days]: [],\n        [FieldsEnum.repeatType]: RepeatTypeEnum.dates,\n        [FieldsEnum.repeatStrategy]: RepeatStrategyTypeEnum.none,\n\n        [FieldsEnum.validFrom]: new Date(),\n        [FieldsEnum.validTill]: null,\n\n        [FieldsEnum.impactPriceComponent]: editableRuleDetails?.target || null,\n        [FieldsEnum.impactValue]: DEFAULT_IMPACT_VALUE,\n        [FieldsEnum.impactDiffValue]: DEFAULT_IMPACT_DIFF_VALUE,\n\n        [FieldsEnum.impactStrategy]: impactStrategy,\n\n        [FieldsEnum.shipperIds]:\n            editableRuleDetails?.ruleType === PriceRuleTypeEnum.shipper ? editableRuleDetails?.companyIds || [] : [],\n        [FieldsEnum.carrierIds]:\n            editableRuleDetails?.ruleType === PriceRuleTypeEnum.carrier ? editableRuleDetails?.companyIds || [] : [],\n\n        [FieldsEnum.trailerTypeIds]: isNewRule && loadedTrailerDict ? allTrailerDictTypeIds : ruleTrailerTypeIds,\n    };\n\n    if (editableRuleDetails?.validFrom) {\n        values[FieldsEnum.validFrom] = prepareValidDate(editableRuleDetails.validFrom);\n    }\n\n    if (editableRuleDetails?.validTill) {\n        values[FieldsEnum.validTill] = prepareValidDate(editableRuleDetails.validTill);\n    }\n\n    if (editableRuleDetails?.value) {\n        if (isDiffImpactStrategy) {\n            const valueSign = editableRuleDetails.value > 0 ? '+' : '-';\n            values[FieldsEnum.impactDiffValue] = `${valueSign}${Math.abs(editableRuleDetails.value)}`;\n        } else {\n            values[FieldsEnum.impactValue] = `${editableRuleDetails.value}`;\n        }\n    }\n\n    if (!editableRuleDetails) {\n        return values;\n    }\n\n    values[FieldsEnum.repeatStrategy] =\n        editableRuleDetails.repeatMode === RepeatStrategyTypeEnum.weekly\n            ? RepeatStrategyTypeEnum.none\n            : editableRuleDetails.repeatMode || RepeatStrategyTypeEnum.none;\n\n    const repeatDays = editableRuleDetails.repeatDays || [];\n    const isDaysRange = repeatDays.every((value) => value < 10);\n    if (isDaysRange) {\n        values[FieldsEnum.repeatType] = RepeatTypeEnum.weekdays;\n        values[FieldsEnum.days] = repeatDays.map((dayNumber) => WEEK_DAYS_ORDER[dayNumber - 1]);\n    }\n\n    const isDatesRange = repeatDays.every((value) => value > 10);\n    if (isDatesRange) {\n        values[FieldsEnum.repeatType] = RepeatTypeEnum.dates;\n        const minValue = repeatDays[0];\n        const startDate = new Date(minValue);\n\n        const maxValue = repeatDays[repeatDays.length - 1];\n        const endDate = new Date(maxValue);\n\n        if (minValue && !maxValue) {\n            values[FieldsEnum.dates] = {\n                from: startDate,\n                to: null,\n            };\n        }\n\n        if (!minValue && maxValue) {\n            values[FieldsEnum.dates] = {\n                from: endDate,\n                to: null,\n            };\n        }\n\n        if (minValue && maxValue) {\n            values[FieldsEnum.dates] = {\n                from: startDate,\n                to: endDate,\n            };\n        }\n    }\n\n    return values;\n};\n\nexport default getInitialValues;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport DropdownControl, {\n    DropdownControlPropsT,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { MS_IN_SEC } from 'common/utils/time';\nimport { DividerTrigger } from 'design-system/components/DividerWithDropdownControl/DividerTrigger/DividerTrigger';\n\nexport type DividerWithDropdownControlPropsT = Omit<DropdownControlPropsT, 'renderTrigger'> & {\n    className?: string;\n    triggerClassName?: string;\n    tooltipNode: React.ReactNode;\n};\n\nconst DividerWithDropdownControl: React.FC<DividerWithDropdownControlPropsT> = React.memo((props) => {\n    const { className, triggerClassName, tooltipNode, ...restProps } = props;\n\n    const renderTrigger: DropdownControlPropsT['renderTrigger'] = (isActive, onClick) => {\n        return (\n            <Tooltip\n                position={TooltipPositionEnum.topCenter}\n                theme={TooltipThemeEnum.black}\n                delay={MS_IN_SEC}\n                className={className}\n                tooltipNode={\n                    <TooltipContent isNoWrap isCenter theme={TooltipContentThemeEnum.black}>\n                        {tooltipNode}\n                    </TooltipContent>\n                }\n            >\n                {(isShow, childrenClassName) => (\n                    <DividerTrigger\n                        className={cs(childrenClassName, triggerClassName)}\n                        isActive={isActive}\n                        onClick={onClick}\n                    />\n                )}\n            </Tooltip>\n        );\n    };\n\n    return <DropdownControl {...restProps} renderTrigger={renderTrigger} />;\n});\n\nexport { DividerWithDropdownControl };\n","import { ScheduleEventT } from './models';\nimport { parseDateString } from 'common/utils/time';\nimport { ApiLocationT } from 'common/utils/api/models';\nimport { ApiCoordinateT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport isNumber from 'lodash/isNumber';\n\nexport const getCurrentScheduleEvent = (assetId: AssetIdT, schedule: ScheduleEventT[]): ScheduleEventT | null => {\n    const now = Date.now();\n\n    const currentEvents = schedule.filter((event) => {\n        const dateFrom = event.truckId === assetId ? event.truckDateFrom : event.trailerDateFrom;\n        const start = parseDateString(dateFrom);\n\n        const dateTo = event.truckId === assetId ? event.truckDateTo : event.trailerDateTo;\n        const end = parseDateString(dateTo);\n\n        return !!start && !!end && start < now && now < end;\n    });\n\n    return currentEvents[0] || null;\n};\n\nexport const convertToCoordinate = (location: ApiLocationT | null): ApiCoordinateT | null => {\n    if (!location) {\n        return null;\n    }\n\n    const { latitude, longitude } = location;\n    if (isNumber(latitude) && isNumber(longitude)) {\n        return {\n            latitude,\n            longitude,\n        };\n    }\n\n    return null;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"SaveFooterContent__content___S2ISk\",\"action\":\"SaveFooterContent__action___IGOWj\",\"fadeIn\":\"SaveFooterContent__fadeIn___EBv8a\",\"blinking\":\"SaveFooterContent__blinking___pA60l\"};","import isNumber from 'lodash/isNumber';\n\nexport type PlaceResultT = OverwriteT<\n    google.maps.places.PlaceResult,\n    {\n        address_components: NonNullable<google.maps.places.PlaceResult['address_components']>;\n        geometry: NonNullable<google.maps.places.PlaceResult['geometry']>;\n        utc_offset_minutes: NonNullable<google.maps.places.PlaceResult['utc_offset_minutes']>;\n    }\n>;\n\nconst checkIsValidPlacesResult = (\n    placesResult: google.maps.places.PlaceResult | null | undefined,\n): placesResult is PlaceResultT => {\n    return !!placesResult?.address_components && !!placesResult?.geometry && isNumber(placesResult?.utc_offset_minutes);\n};\n\nclass GoogleMapsPlacesApi {\n    private map: MapT | null;\n\n    private maps: MapsT | null;\n\n    constructor(map: MapT | null | undefined, maps: MapsT | null | undefined) {\n        this.map = map || null;\n        this.maps = maps || null;\n    }\n\n    getPlaceDetails = async (placeId: string | null): Promise<PlaceResultT | null> => {\n        const { maps, map } = this;\n\n        if (!maps || !map || !placeId) {\n            return Promise.resolve(null);\n        }\n\n        return new Promise((resolve) => {\n            const placesService = new maps.places.PlacesService(map);\n            placesService.getDetails(\n                {\n                    placeId,\n                    fields: ['ALL'],\n                },\n                (result: google.maps.places.PlaceResult, status: google.maps.places.PlacesServiceStatus): void => {\n                    if (status !== 'OK') {\n                        resolve(null);\n                        return;\n                    }\n\n                    const isValidResult = checkIsValidPlacesResult(result);\n                    if (!isValidResult) {\n                        resolve(null);\n                        return;\n                    }\n\n                    resolve(result || null);\n                },\n            );\n        });\n    };\n}\n\nexport { GoogleMapsPlacesApi };\n","import {\n    FetchTrailersDictActionT,\n    FetchTrailersDictBeginActionT,\n    FetchTrailersDictErrorActionT,\n    FetchTrailersDictSuccessActionT,\n    TRAILERS_DICT_REQUEST,\n    TRAILERS_DICT_REQUEST_BEGIN,\n    TRAILERS_DICT_REQUEST_ERROR,\n    TRAILERS_DICT_REQUEST_SUCCESS,\n} from './types';\nimport { TrailersDictT } from './models';\n\nexport const fetchTrailersDict = (): FetchTrailersDictActionT => ({\n    type: TRAILERS_DICT_REQUEST,\n});\n\nexport const fetchTrailersDictBegin = (): FetchTrailersDictBeginActionT => ({\n    type: TRAILERS_DICT_REQUEST_BEGIN,\n});\n\nexport const fetchTrailersDictSuccess = (trailersDict: TrailersDictT): FetchTrailersDictSuccessActionT => ({\n    type: TRAILERS_DICT_REQUEST_SUCCESS,\n    trailersDict,\n});\n\nexport const fetchTrailersDictError = (error: Error): FetchTrailersDictErrorActionT => ({\n    type: TRAILERS_DICT_REQUEST_ERROR,\n    error,\n});\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport { AddressTypeEnum } from 'common/utils/api/models';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { UnVerifyPartnerAdressConfirmationDataT } from './models';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { RequestStatusT } from 'common/utils/request-status';\n\ntype PropsT = {\n    data: UnVerifyPartnerAdressConfirmationDataT | null;\n    onClose: () => void;\n    onCancel: () => void;\n    onConfirm: (data: UnVerifyPartnerAdressConfirmationDataT | null) => void;\n    requestStatus: RequestStatusT;\n};\n\nconst TEST_SELECTOR = 'unverify-partner-address-confirmation';\n\nconst I18N_LABELS_MAP: Record<AddressTypeEnum, { title: string; message: string }> = {\n    [AddressTypeEnum.postal]: {\n        title: 'partner.details-tab.dialogs.unverify-postal-address.title',\n        message: 'partner.details-tab.dialogs.unverify-postal-address.description',\n    },\n    [AddressTypeEnum.legal]: {\n        title: 'partner.details-tab.dialogs.unverify-legal-address.title',\n        message: 'partner.details-tab.dialogs.unverify-legal-address.description',\n    },\n    [AddressTypeEnum.billing]: {\n        title: 'partner.details-tab.dialogs.unverify-billing-address.title',\n        message: 'partner.details-tab.dialogs.unverify-billing-address.description',\n    },\n};\n\nconst UnVerifyPartnerAdressConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, onClose, onCancel, onConfirm, requestStatus } = props;\n\n    const { t } = useTranslation();\n\n    const i18nLabelsMap = I18N_LABELS_MAP[data?.addressType as AddressTypeEnum];\n\n    if (!data) {\n        return null;\n    }\n\n    const labels = {\n        title: t(i18nLabelsMap.title),\n        message: t(i18nLabelsMap.message),\n    };\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            onClick: onCancel,\n                            isDisabled: requestStatus.loading,\n                        },\n                        {\n                            children: t('common:error-modal.actions.unverify'),\n                            theme: ButtonThemeEnum.danger,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            isDisabled: requestStatus.loading,\n                            isLoading: requestStatus.loading,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                    {...labels}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default UnVerifyPartnerAdressConfirmation;\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const brokerTeamsRefreshChannel = new ViewEventChannel<{}>();\n\nexport const brokerTeamsPaginationChannel = new ViewEventChannel<{\n    pageNumber: number;\n}>();\n","import { logWarning } from 'common/utils/logger';\n\nconst pickFile = (accept: string, onPick: (file: File) => void) => {\n    const fileInput = document.createElement('input');\n    fileInput.type = 'file';\n    fileInput.accept = accept;\n    fileInput.click();\n    fileInput.onchange = () => {\n        const file = fileInput.files?.[0];\n        if (!file) {\n            logWarning('empty file!');\n            return;\n        }\n\n        onPick(file);\n    };\n};\n\nexport { pickFile };\n","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { BrokerTourDetailsT } from './models';\nimport isEqual from 'lodash/isEqual';\n\nexport type BrokerTourDetailsStateT = {\n    details: BrokerTourDetailsT | null;\n    requestStatus: RequestStatusT;\n};\n\nexport type BrokerTourDetailsByIdStateT = Record<BrokerTourIdT, BrokerTourDetailsStateT>;\n\nexport const initialBrokerTourDetailsState: BrokerTourDetailsStateT = {\n    details: null,\n    requestStatus: requestStatus.initial,\n};\n\nconst initialState: BrokerTourDetailsByIdStateT = {};\n\nexport const brokerTourDetailsSlice = createSlice({\n    name: 'brokerTourDetails',\n    initialState,\n    reducers: {\n        fetchBrokerTourDetails: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                id: BrokerTourIdT;\n                options?: FetchOptionsT;\n            }>,\n        ) => {\n            // nothing - handled by saga\n        },\n        fetchBrokerTourDetailsBegin: (\n            state,\n            action: PayloadAction<{\n                id: BrokerTourIdT;\n            }>,\n        ) => {\n            const { id } = action.payload;\n            const brokerTourDetailsState = state[id] || initialBrokerTourDetailsState;\n\n            state[id] = {\n                ...brokerTourDetailsState,\n                requestStatus: requestStatus.loading,\n            };\n        },\n        fetchBrokerTourDetailsSuccess: (\n            state,\n            action: PayloadAction<{\n                id: BrokerTourIdT;\n                details: BrokerTourDetailsT | null;\n            }>,\n        ) => {\n            const { details, id } = action.payload;\n            const brokerTourDetailsState = state[id] || initialBrokerTourDetailsState;\n\n            state[id] = {\n                ...brokerTourDetailsState,\n                requestStatus: requestStatus.ok,\n                details: isEqual(details, brokerTourDetailsState.details) ? brokerTourDetailsState.details : details,\n            };\n        },\n        fetchBrokerTourDetailsError: (\n            state,\n            action: PayloadAction<{\n                id: BrokerTourIdT;\n                error: Error;\n            }>,\n        ) => {\n            const { error, id } = action.payload;\n            const brokerTourDetailsState = state[id] || initialBrokerTourDetailsState;\n\n            state[id] = {\n                ...brokerTourDetailsState,\n                requestStatus: requestStatus.setError(error),\n            };\n        },\n        resetBrokerTourDetails: () => {\n            return {};\n        },\n    },\n    extraReducers: (builder) => {\n        builder.addCase('auth/destroySession', () => {\n            return initialState;\n        });\n    },\n});\n\nexport const {\n    fetchBrokerTourDetails,\n    fetchBrokerTourDetailsBegin,\n    fetchBrokerTourDetailsSuccess,\n    fetchBrokerTourDetailsError,\n    resetBrokerTourDetails,\n} = brokerTourDetailsSlice.actions;\n\nexport default brokerTourDetailsSlice.reducer;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"ControlLoaderWithShadow__wrap___cJBPd\",\"fadeIn\":\"ControlLoaderWithShadow__fadeIn___YQXCQ\",\"blinking\":\"ControlLoaderWithShadow__blinking___Dwafa\"};","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport {\n    ShipperContractDetailsT,\n    UpdateShipperContractChangesT,\n    UploadShipperContractDetailsT,\n} from 'common/store/shipper-contract-details/models';\n\nexport type ShipperContractDetailsItemStateT = {\n    fetchRequest: RequestStatusT;\n    data: ShipperContractDetailsT | null;\n};\n\nexport const initialShipperContractDetailsItemState: ShipperContractDetailsItemStateT = {\n    fetchRequest: requestStatus.initial,\n    data: null,\n};\n\nexport type ShipperContractDetailsStateT = {\n    updateRequest: RequestStatusT;\n    detailsById: Record<ShipperContractIdT, ShipperContractDetailsItemStateT>;\n    downloadRequest: RequestStatusT;\n};\n\nconst initialState: ShipperContractDetailsStateT = {\n    updateRequest: requestStatus.initial,\n    detailsById: {},\n    downloadRequest: requestStatus.initial,\n};\n\nexport const shipperContractDetailsSlice = createSlice({\n    name: 'shipperContractDetails',\n    initialState,\n    reducers: {\n        fetchShipperContractDetails: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                partnerId: PartnerIdT;\n                shipperContractId: ShipperContractIdT;\n                options?: FetchOptionsT;\n            }>,\n        ) => {\n            // nothing\n        },\n        fetchShipperContractDetailsBegin: (\n            state,\n            action: PayloadAction<{\n                shipperContractId: ShipperContractIdT;\n                options?: FetchOptionsT;\n            }>,\n        ) => {\n            const { shipperContractId } = action.payload;\n            const detailsItem = state.detailsById[shipperContractId] || initialShipperContractDetailsItemState;\n\n            state.detailsById[shipperContractId] = {\n                ...detailsItem,\n                fetchRequest: requestStatus.loading,\n            };\n        },\n        fetchShipperContractDetailsSuccess: (\n            state,\n            action: PayloadAction<{\n                shipperContractId: ShipperContractIdT;\n                data: ShipperContractDetailsT | null;\n            }>,\n        ) => {\n            const { shipperContractId, data } = action.payload;\n            const detailsItem = state.detailsById[shipperContractId] || initialShipperContractDetailsItemState;\n\n            state.detailsById[shipperContractId] = {\n                ...detailsItem,\n                fetchRequest: requestStatus.ok,\n                data,\n            };\n        },\n        fetchShipperContractDetailsError: (\n            state,\n            action: PayloadAction<{\n                shipperContractId: ShipperContractIdT;\n                error: Error;\n            }>,\n        ) => {\n            const { shipperContractId, error } = action.payload;\n            const detailsItem = state.detailsById[shipperContractId] || initialShipperContractDetailsItemState;\n\n            state.detailsById[shipperContractId] = {\n                ...detailsItem,\n                fetchRequest: requestStatus.setError(error),\n            };\n        },\n        uploadShipperContract: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                partnerId: PartnerIdT;\n                file: File;\n                details: UploadShipperContractDetailsT;\n            }>,\n        ) => {\n            // nothing\n        },\n        revokeShipperContract: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                partnerId: PartnerIdT;\n                shipperContractId: ShipperContractIdT;\n                reason: string;\n            }>,\n        ) => {\n            // nothing\n        },\n        updateShipperContract: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                partnerId: PartnerIdT;\n                shipperContractId: ShipperContractIdT;\n                detailsChanges: UpdateShipperContractChangesT;\n                file: File | null;\n            }>,\n        ) => {\n            // nothing\n        },\n        updateShipperContractDetailsBegin: (\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{}>,\n        ) => {\n            state.updateRequest = requestStatus.loading;\n        },\n        updateShipperContractDetailsSuccess: (\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{}>,\n        ) => {\n            state.updateRequest = requestStatus.ok;\n        },\n        updateShipperContractDetailsError: (\n            state,\n            action: PayloadAction<{\n                error: Error;\n            }>,\n        ) => {\n            const { error } = action.payload;\n            state.updateRequest = requestStatus.setError(error);\n        },\n        downloadShipperContract: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                partnerId: PartnerIdT;\n                shipperContractId: ShipperContractIdT;\n                fileName: string | null;\n            }>,\n        ) => {\n            // nothing\n        },\n        downloadShipperContractDetailsBegin: (\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{}>,\n        ) => {\n            state.downloadRequest = requestStatus.loading;\n        },\n        downloadShipperContractDetailsSuccess: (\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{}>,\n        ) => {\n            state.downloadRequest = requestStatus.ok;\n        },\n        downloadShipperContractDetailsError: (\n            state,\n            action: PayloadAction<{\n                error: Error;\n            }>,\n        ) => {\n            const { error } = action.payload;\n\n            state.downloadRequest = requestStatus.setError(error);\n        },\n    },\n});\n\nexport const {\n    fetchShipperContractDetails,\n    fetchShipperContractDetailsBegin,\n    fetchShipperContractDetailsSuccess,\n    fetchShipperContractDetailsError,\n    revokeShipperContract,\n    uploadShipperContract,\n    updateShipperContract,\n    updateShipperContractDetailsBegin,\n    updateShipperContractDetailsError,\n    updateShipperContractDetailsSuccess,\n    downloadShipperContract,\n    downloadShipperContractDetailsBegin,\n    downloadShipperContractDetailsSuccess,\n    downloadShipperContractDetailsError,\n} = shipperContractDetailsSlice.actions;\n\nexport default shipperContractDetailsSlice.reducer;\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"RouteEditForm__form___vJz58\",\"alert\":\"RouteEditForm__alert___ouX2b\",\"footer-content\":\"RouteEditForm__footer-content___LoNmG\",\"actions\":\"RouteEditForm__actions___seuda\",\"action--cancel\":\"RouteEditForm__action--cancel___rQx_s\",\"action--assign\":\"RouteEditForm__action--assign___yPpYu\",\"carrier-prices\":\"RouteEditForm__carrier-prices___Rqh3Z\",\"shipper-prices\":\"RouteEditForm__shipper-prices___oAM66\",\"checkboxes\":\"RouteEditForm__checkboxes___Do1Qc\",\"checkbox\":\"RouteEditForm__checkbox___dq1_U\",\"route-point-fields\":\"RouteEditForm__route-point-fields___zaWlx\",\"route-points-divider\":\"RouteEditForm__route-points-divider___TuY3A\",\"tooltip\":\"RouteEditForm__tooltip___WFj6E\",\"fadeIn\":\"RouteEditForm__fadeIn___PmPdI\",\"blinking\":\"RouteEditForm__blinking___TtYvl\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"PickupOrDeliveryRoutePointPicker__wrap___FlG34\",\"field--location\":\"PickupOrDeliveryRoutePointPicker__field--location___Ot886\",\"geo-suggest\":\"PickupOrDeliveryRoutePointPicker__geo-suggest___pgUoZ\",\"time-picker\":\"PickupOrDeliveryRoutePointPicker__time-picker___sISzc\",\"right-node\":\"PickupOrDeliveryRoutePointPicker__right-node____eWA8\",\"time-interval\":\"PickupOrDeliveryRoutePointPicker__time-interval___VAetn\",\"time-interval--isHalfOpacity\":\"PickupOrDeliveryRoutePointPicker__time-interval--isHalfOpacity___ZwH0Y\",\"original-zone-tooltip-content\":\"PickupOrDeliveryRoutePointPicker__original-zone-tooltip-content___ulZi6\",\"fadeIn\":\"PickupOrDeliveryRoutePointPicker__fadeIn___azU5_\",\"blinking\":\"PickupOrDeliveryRoutePointPicker__blinking___Vb9fh\"};","import * as React from 'react';\nimport { useCallback } from 'react';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\nimport styles from './PartnerSelectList.scss';\nimport { useTranslation } from 'react-i18next';\nimport Checkbox, { CheckboxThemeEnum } from 'design-system/components/Checkbox/Checkbox';\nimport {\n    AsyncRequestFactoryResultT,\n    AsyncRequestFactoryT,\n    useAsyncOptionsRequest,\n} from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-options-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { ApiBrokerTeamCompanyT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport uniqBy from 'lodash/uniqBy';\nimport differenceBy from 'lodash/differenceBy';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport PartnerTypePill from 'common/components/pills/PartnerTypePill/PartnerTypePill';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport ClickInterceptorLabel from 'common/components/ClickInterceptorLabel/ClickInterceptorLabel';\nimport AsyncSearchScrollableList from 'design-system/components/AsyncSearchScrollableList/AsyncSearchScrollableList';\nimport { ListMessagePropsT } from 'design-system/components/AsyncSearchScrollableList/ListMessage/ListMessage';\n\nconst cx = classNames.bind(styles);\n\ntype ListOptionT = ApiBrokerTeamCompanyT;\n\ntype PropsT = {\n    className?: string;\n    initialSelectedPartners?: Array<ListOptionT>;\n    selectedPartners: Array<ListOptionT>;\n    onChangePartners: (options: Array<ListOptionT>) => void;\n    highlightedPartnerIdsSet?: Set<PartnerIdT>;\n    isReadOnly?: boolean;\n    isViewOnly?: boolean;\n};\n\nconst PartnerSelectList: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        initialSelectedPartners,\n        selectedPartners,\n        onChangePartners,\n        highlightedPartnerIdsSet,\n        isReadOnly,\n        isViewOnly,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const [searchText, setSearchText] = React.useState('');\n\n    const selectedPartnerIdsSet = React.useMemo(() => {\n        return new Set<PartnerIdT>(selectedPartners.map((item) => item.id));\n    }, [selectedPartners]);\n\n    const requestFactory: AsyncRequestFactoryT<ListOptionT> = useCallback((query) => {\n        return brokerTranziitApi\n            .findPartnersByName(query, ['SHIPPER', 'CARRIER'])\n            .then((response): AsyncRequestFactoryResultT<ListOptionT> => {\n                const [error, result] = response;\n                if (error) {\n                    return [error, null];\n                }\n\n                const items: Array<ListOptionT> =\n                    result?.content?.reduce<Array<ListOptionT>>((acc, item) => {\n                        if (item.legalAddress?.country && item.name && item.type) {\n                            acc.push({\n                                id: item.id,\n                                country: item.legalAddress?.country,\n                                name: item.name,\n                                role: item.type,\n                            });\n                        }\n\n                        return acc;\n                    }, []) || [];\n\n                return [null, items];\n            });\n    }, []);\n\n    const asyncOptionsRequest = useAsyncOptionsRequest<ListOptionT>({\n        initialOptions: initialSelectedPartners,\n        requestFactory,\n        settings: {\n            allowedQueryMinLength: 0,\n        },\n    });\n\n    const { options, optionsQuery, requestStatus, onChangeQuery } = asyncOptionsRequest;\n\n    const shownOptions = React.useMemo((): Array<ListOptionT> => {\n        if (!isViewOnly) {\n            return options;\n        }\n\n        return options.filter((option) => selectedPartnerIdsSet.has(option.id));\n    }, [options, isViewOnly, selectedPartnerIdsSet]);\n\n    const onAddOption = React.useCallback(\n        (option: ListOptionT) => {\n            const newValue: Array<ListOptionT> = uniqBy([...selectedPartners, option], 'id');\n            onChangePartners(newValue);\n        },\n        [selectedPartners, onChangePartners],\n    );\n\n    const onDeleteOption = React.useCallback(\n        (option: ListOptionT) => {\n            const newValue: Array<ListOptionT> = differenceBy(selectedPartners, [option], 'id');\n            onChangePartners(newValue);\n        },\n        [selectedPartners, onChangePartners],\n    );\n\n    const meta = React.useMemo(() => {\n        return {\n            selectedPartnerIdsSet,\n            onAddOption,\n            onDeleteOption,\n            highlightedPartnerIdsSet,\n        };\n    }, [selectedPartnerIdsSet, onAddOption, onDeleteOption, highlightedPartnerIdsSet]);\n\n    const emptyMessage = React.useMemo((): ListMessagePropsT => {\n        return {\n            title: t('edit-broker-team.form.fields.partners.empty-message.title'),\n            description: t('edit-broker-team.form.fields.partners.empty-message.description'),\n        };\n    }, [t]);\n\n    const getOptionKey = React.useCallback((option: ListOptionT) => {\n        return option.id;\n    }, []);\n\n    return (\n        <AsyncSearchScrollableList\n            className={cs(cx('inner'), className)}\n            minHeightPx={300}\n            inputValue={searchText}\n            onChangeInputValue={(searchText) => {\n                setSearchText(searchText);\n                onChangeQuery(searchText);\n            }}\n            inputPlaceholder={t('edit-broker-team.form.fields.users.search-placeholder')}\n            options={shownOptions}\n            optionsQuery={optionsQuery}\n            initialOptions={initialSelectedPartners}\n            getOptionKey={getOptionKey}\n            meta={meta}\n            requestStatus={requestStatus}\n            emptyMessage={emptyMessage}\n            renderOption={(\n                option,\n                index,\n                { selectedPartnerIdsSet, highlightedPartnerIdsSet, onDeleteOption, onAddOption },\n            ) => {\n                return (\n                    <Checkbox\n                        key={option.id}\n                        className={cx('checkbox')}\n                        checked={selectedPartnerIdsSet.has(option.id)}\n                        labelClassName={cx('checkbox-label')}\n                        label={\n                            <div\n                                className={cx('row', {\n                                    'row--half-opacity': false,\n                                })}\n                            >\n                                <div className={cx('row__avatar')}>\n                                    <FlagIcon countryCode={option.country} />\n                                </div>\n                                <div className={cx('row__text')}>\n                                    <ClickInterceptorLabel>\n                                        <Link\n                                            target=\"_blank\"\n                                            to={urlFactory.partnerDetails(option.role, option.id)}\n                                            theme={LinkThemeEnum.boldBrandDark}\n                                        >\n                                            {option.name}\n                                        </Link>\n                                    </ClickInterceptorLabel>\n                                </div>\n                                <div className={cx('row__pills')}>\n                                    <PartnerTypePill type={option.role} />\n                                </div>\n                            </div>\n                        }\n                        theme={\n                            highlightedPartnerIdsSet?.has(option.id)\n                                ? CheckboxThemeEnum.orange\n                                : CheckboxThemeEnum.green\n                        }\n                        isFullWidth\n                        onChange={(checked) => {\n                            if (checked) {\n                                onAddOption(option);\n                            } else {\n                                onDeleteOption(option);\n                            }\n                        }}\n                        isReadOnly={isReadOnly || isViewOnly}\n                        isBoxHidden={isViewOnly}\n                    />\n                );\n            }}\n        />\n    );\n});\n\nexport default PartnerSelectList;\n","// extracted by mini-css-extract-plugin\nexport default {\"id\":\"IdCell__id___bBXKh\",\"fadeIn\":\"IdCell__fadeIn___dFZ6l\",\"blinking\":\"IdCell__blinking___obZMS\"};","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"CarriersSuggest__option___jAdPQ\",\"fadeIn\":\"CarriersSuggest__fadeIn___nawTg\",\"blinking\":\"CarriersSuggest__blinking___XhvcP\"};","import { ApiShipperContractBrokerT } from 'common/utils/api/models';\nimport { ShipperContractT } from 'common/store/shipper-contracts/models';\n\nexport const checkIsApiBrokerShipperContract = (\n    details: ShipperContractT | null,\n): details is ApiShipperContractBrokerT => {\n    return !!details;\n};\n","import {\n    AsyncRequestFactoryT,\n    useAsyncInitOptionsRequest,\n} from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-init-options-request';\nimport { useCallback } from 'react';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { TranziitApiResultT } from 'common/utils/api/tranziit/base-tranziit-api';\nimport {\n    BrokerUserSuggestOptionT,\n    BrokerUserSuggestValueT,\n} from 'broker-admin/components/dropdowns/BrokerUserSuggest/BrokerUserSuggest';\nimport keyBy from 'lodash/keyBy';\n\nexport const useInitBrokerUsersSuggestOptions = (\n    companyId: CompanyIdT | null,\n    userIds: Array<BrokerUserSuggestValueT> | null,\n) => {\n    const initRequestFactory: AsyncRequestFactoryT<BrokerUserSuggestOptionT> = useCallback(async () => {\n        if (!userIds?.length || !companyId) {\n            return [null, null];\n        }\n\n        const results = await brokerTranziitApi.findPartnerUsersByName(companyId, {});\n\n        const [, data] = results;\n        const userById = keyBy(data, 'id');\n\n        const resultOptions =\n            userIds?.reduce<Array<BrokerUserSuggestOptionT>>((acc, userId) => {\n                if (!userId) {\n                    return acc;\n                }\n\n                const user = userById[userId];\n                if (!user) {\n                    return acc;\n                }\n\n                // convert entity\n                acc.push({\n                    id: user.id,\n                    fullName: user.fullName,\n                });\n\n                return acc;\n            }, []) || [];\n\n        const result: TranziitApiResultT<Array<BrokerUserSuggestOptionT>> = [null, resultOptions];\n\n        return result;\n    }, [companyId, userIds]);\n\n    const { initOptions, initRequestStatus, onUpdateInitOptions } =\n        useAsyncInitOptionsRequest<BrokerUserSuggestOptionT>({\n            initRequestFactory,\n        });\n\n    return {\n        initOptions,\n        initRequestStatus,\n        onUpdateInitOptions,\n    };\n};\n","import React, { useCallback } from 'react';\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport ShipperIcon, { ShipperIconProps } from 'common/icons/ShipperIcon';\nimport DropdownSearchInput from 'design-system/components/dropdowns/DropdownSearchInput/DropdownSearchInput';\nimport {\n    AsyncRequestFactoryResultT,\n    AsyncRequestFactoryT,\n    useAsyncOptionsRequest,\n} from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-options-request';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport { ApiOrderCreationShipperInfoT } from 'common/utils/api/models';\n\ntype OptionT = ApiOrderCreationShipperInfoT;\ntype ValueT = OptionT['id'] | null;\n\nexport type PropsT = {\n    className?: string;\n    initialOptions: Array<OptionT>;\n    onSelect: (value: ValueT, option: OptionT | null) => void;\n    value: ValueT;\n    overlayPosition: DropdownOverlayPositionEnum;\n    hasClearControl?: InputPropsT['hasClearControl'];\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    placeholder: InputPropsT['placeholder'];\n    onBlur: InputPropsT['onBlur'];\n    onFocus: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasChanges?: boolean;\n};\n\nconst OrderReservesShipperSuggest: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        initialOptions,\n        value,\n        onSelect,\n        hasWarning,\n        hasError,\n        hasClearControl,\n        overlayPosition,\n        isDisabled,\n        placeholder,\n        onBlur,\n        onFocus,\n        hasChanges,\n    } = props;\n\n    const handleReset = () => {\n        onSelect(null, null);\n    };\n\n    const handleFocus: InputPropsT['onFocus'] = () => {\n        if (onFocus) {\n            onFocus();\n        }\n    };\n\n    const renderOption = (option: OptionT | undefined, placeholder?: string): React.ReactNode => {\n        if (!option) {\n            return placeholder;\n        }\n\n        return (\n            <DropdownControlOptionLabel\n                withoutPaddings\n                icon={option.country ? <FlagIcon countryCode={option.country} /> : null}\n                label={option.name || ''}\n                description={option.number || ''}\n            />\n        );\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option.id;\n\n    const requestFactory: AsyncRequestFactoryT<OptionT> = useCallback((query) => {\n        return commonTranziitApi\n            .fetchOrderReservesShippers({\n                textSearch: query,\n            })\n            .then((response): AsyncRequestFactoryResultT<OptionT> => {\n                const [error, result] = response;\n                if (error) {\n                    return [error, null];\n                }\n\n                return [null, result?.content || []];\n            });\n    }, []);\n\n    const asyncOptionsRequest = useAsyncOptionsRequest<OptionT>({\n        initialOptions,\n        requestFactory,\n        settings: {},\n    });\n\n    const handleSelect = (value: ValueT) => {\n        const option = asyncOptionsRequest.options.find((option) => {\n            return getOptionValue(option) === value;\n        });\n\n        onSelect(value || null, option || null);\n    };\n\n    return (\n        <DropdownSearchInput<OptionT, ValueT>\n            className={className}\n            selectedValue={value}\n            placeholder={placeholder}\n            options={asyncOptionsRequest.options}\n            isDisabled={isDisabled}\n            onSelect={handleSelect}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            onChangeQuery={asyncOptionsRequest.onChangeQuery}\n            isLoading={asyncOptionsRequest.requestStatus.loading}\n            renderOption={renderOption}\n            renderTrigger={renderOption}\n            getOptionValue={getOptionValue}\n            hasChanges={hasChanges}\n            renderLeftIcon={(iconMeta) => <ShipperIcon {...ShipperIconProps.getControlProps(iconMeta)} />}\n            onBlur={onBlur}\n            onFocus={handleFocus}\n            overlayPosition={overlayPosition}\n            onReset={hasClearControl ? handleReset : undefined}\n        />\n    );\n};\n\nexport default OrderReservesShipperSuggest;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"ChartTooltip__wrap___qjgvx\",\"content\":\"ChartTooltip__content___Ool1m\",\"row\":\"ChartTooltip__row___xwX2D\",\"row__icon\":\"ChartTooltip__row__icon___Dv6hN\",\"row__text\":\"ChartTooltip__row__text___fkHZj\",\"fadeIn\":\"ChartTooltip__fadeIn___zVQAD\",\"blinking\":\"ChartTooltip__blinking___CZ5fm\"};","import React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './CheckboxOptionsList.scss';\nimport DoneIcon from 'common/icons/DoneIcon';\nimport { useTranslation } from 'react-i18next';\nimport Checkbox from 'design-system/components/Checkbox/Checkbox';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport ControlLoaderWithShadow from 'common/components/ControlLoaderWithShadow/ControlLoaderWithShadow';\nimport CloseIcon from 'common/icons/CloseIcon';\n\nconst cx = classNames.bind(styles);\n\nexport type CheckboxOptionsListPropsT<OptionT, ValueT> = {\n    selectedValues: Array<ValueT>;\n    isLoading?: boolean;\n    isDisabled?: boolean;\n    hasWarning?: boolean;\n    hasError?: boolean;\n    options: Array<OptionT>;\n    onSelect: (values: Array<ValueT>) => void;\n    renderOption: (option: OptionT) => React.ReactElement;\n    getOptionTestSelector: (option: OptionT) => string;\n    getOptionValue: (option: OptionT) => ValueT;\n    className?: string;\n    isShowSelectAllTrigger?: boolean;\n    isShowDeselectAllTrigger?: boolean;\n};\n\nconst CheckboxOptionsList = <OptionT, ValueT>(\n    props: CheckboxOptionsListPropsT<OptionT, ValueT>,\n): React.ReactElement => {\n    const {\n        selectedValues,\n        onSelect,\n        options,\n        renderOption,\n        getOptionValue,\n        getOptionTestSelector,\n        isLoading,\n        isDisabled,\n        hasWarning,\n        hasError,\n        className,\n        isShowSelectAllTrigger,\n        isShowDeselectAllTrigger,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const optionByValue = new Map<ValueT, OptionT>();\n    options.forEach((option) => {\n        const value = getOptionValue(option);\n\n        optionByValue.set(value, option);\n    });\n\n    const selectedValuesSet = new Set<ValueT>(selectedValues);\n\n    const handleChange = (value: ValueT): void => {\n        if (isDisabled) {\n            return;\n        }\n\n        const newSelectedValuesSet = new Set(selectedValuesSet);\n        const isAlreadySelected = newSelectedValuesSet.has(value);\n        if (isAlreadySelected) {\n            newSelectedValuesSet.delete(value);\n        } else {\n            newSelectedValuesSet.add(value);\n        }\n        onSelect([...newSelectedValuesSet]);\n    };\n\n    const handleSelectAll = (): void => {\n        const values = options.map(getOptionValue);\n\n        const isSelectAll = values.length !== selectedValues?.length;\n        if (isSelectAll) {\n            onSelect(values);\n        } else {\n            onSelect([]);\n        }\n    };\n\n    const handleDeselectAll = (): void => {\n        const isNoSelect = !selectedValues?.length;\n        if (isNoSelect) {\n            const allValues = options.map(getOptionValue);\n            onSelect(allValues);\n        } else {\n            onSelect([]);\n        }\n    };\n\n    return (\n        <>\n            {(isShowSelectAllTrigger || isShowDeselectAllTrigger) && (\n                <div className={cx('links')}>\n                    {isShowSelectAllTrigger && (\n                        <div className={cx('link')} onClick={handleSelectAll}>\n                            <DoneIcon\n                                className={cx('link__icon')}\n                                size={14}\n                                fillColor={StyleGuideColorsEnum.brandDark}\n                            />\n                            <span className={cx('link__text')}>{t('common:select-all')}</span>\n                        </div>\n                    )}\n                    {isShowDeselectAllTrigger && (\n                        <div className={cx('link')} onClick={handleDeselectAll}>\n                            <CloseIcon\n                                className={cx('link__icon')}\n                                size={14}\n                                fillColor={StyleGuideColorsEnum.brandDark}\n                            />\n                            <span className={cx('link__text')}>{t('common:deselect-all')}</span>\n                        </div>\n                    )}\n                </div>\n            )}\n            <div\n                className={cs(\n                    cx('list', {\n                        'list--hasWarning': hasWarning,\n                        'list--hasError': hasError,\n                    }),\n                    className,\n                )}\n            >\n                {options.map((option, index): React.ReactElement => {\n                    const value = getOptionValue(option);\n\n                    const isSelected = selectedValuesSet.has(value);\n\n                    return (\n                        <div key={index} className={cx('option')}>\n                            <Checkbox\n                                isFullWidth\n                                checked={isSelected}\n                                className={cx('option__checkbox')}\n                                testSelector={getOptionTestSelector ? getOptionTestSelector(option) : ''}\n                                label={\n                                    <div\n                                        className={cx('option__label')}\n                                        onClick={() => {\n                                            handleChange(value);\n                                        }}\n                                    >\n                                        {renderOption(option)}\n                                    </div>\n                                }\n                                onChange={() => {\n                                    handleChange(value);\n                                }}\n                            />\n                        </div>\n                    );\n                })}\n                {isLoading && (\n                    <div className={cx('loader__container')}>\n                        <ControlLoaderWithShadow className={cx('loader')} fillColor={StyleGuideColorsEnum.light} />\n                    </div>\n                )}\n            </div>\n        </>\n    );\n};\n\nexport default React.memo(CheckboxOptionsList) as typeof CheckboxOptionsList;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames/bind';\nimport styles from './FerryDisembarkPointPicker.scss';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport BoatIcon from 'common/icons/BoatIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { formatTimeInterval } from 'common/utils/time';\nimport { useFormikContext } from 'formik';\nimport { FieldsEnum, RouteFormValuesT, RoutePointFieldsEnum } from '../constants';\nimport { getFieldFormValue } from 'common/utils/form-values';\n\ntype PropsT = {\n    className?: string;\n    routePointIndex: number;\n};\n\nconst cx = classNames.bind(styles);\n\nconst FerryDisembarkPointPicker: React.FC<PropsT> = React.memo((props) => {\n    const { routePointIndex } = props;\n\n    const { t } = useTranslation();\n\n    const formik = useFormikContext<RouteFormValuesT>();\n\n    const locationFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.location}` as const;\n    const timeWindowFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.timeWindow}` as const;\n\n    const location = getFieldFormValue(formik.values, locationFieldName);\n    const timeWindow = getFieldFormValue(formik.values, timeWindowFieldName);\n\n    return (\n        <ReadOnlyField\n            icon={\n                <BoatIcon\n                    size={DEFAULT_ICON_SIZE}\n                    fillColor={StyleGuideColorsEnum.brandAccent}\n                    strokeColor={StyleGuideColorsEnum.brandDark}\n                />\n            }\n            label={t('broker-order-route-edit.fields.ferry-disembark.label')}\n            subLabel={\n                <PillLabel className={cx('time-interval')} isSymmetrical theme={PillLabelThemeEnum.charcoal}>\n                    {formatTimeInterval(timeWindow?.start, timeWindow?.end)}\n                </PillLabel>\n            }\n            value={location?.address}\n        />\n    );\n});\n\nexport default FerryDisembarkPointPicker;\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\nimport { DeadheadCreationContextQueryModifyChannelEventT } from './models';\n\nexport const deadheadCreationQueryModifyChannel =\n    new ViewEventChannel<DeadheadCreationContextQueryModifyChannelEventT>();\n","// extracted by mini-css-extract-plugin\nexport default {\"alert\":\"BaseShipperContractLanesLayout__alert___qCdsW\",\"fadeIn\":\"BaseShipperContractLanesLayout__fadeIn___DAm37\",\"blinking\":\"BaseShipperContractLanesLayout__blinking___r1Koh\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\n\nimport styles from './SpotAssetsAssignmentFooterContent.scss';\nimport { TransportOrderDetailsT } from 'common/store/transport-order-details/models';\nimport SpotAssetsAssignmentForm from '../../SpotAssetsAssignmentForm/SpotAssetsAssignmentForm';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    transportOrderId: TransportOrderIdT;\n    transportOrderDetails: TransportOrderDetailsT | null | undefined;\n    onCancel: () => void;\n    assignmentRequestStatus: RequestStatusT;\n    onAssignAssets: (params: { transportOrderId: TransportOrderIdT; truckId: AssetIdT; trailerId: AssetIdT }) => void;\n    onClearAssets: (params: { transportOrderId: TransportOrderIdT }) => void;\n    unassignAssetsUnavailableTooltipContent?: React.ReactNode | null;\n};\n\nconst SpotAssetsAssignmentFooterContent: React.FC<PropsT> = React.memo((props) => {\n    const {\n        onCancel,\n        transportOrderId,\n        transportOrderDetails,\n        className,\n        assignmentRequestStatus,\n        onAssignAssets,\n        onClearAssets,\n        unassignAssetsUnavailableTooltipContent,\n    } = props;\n\n    if (!transportOrderDetails || !transportOrderDetails?.spotInfo?.id) {\n        return null;\n    }\n\n    return (\n        <div className={cs(cx('content'), className)}>\n            <SpotAssetsAssignmentForm\n                transportOrderId={transportOrderId}\n                transportOrderDetails={transportOrderDetails}\n                onCancel={onCancel}\n                assignmentRequestStatus={assignmentRequestStatus}\n                onAssignAssets={onAssignAssets}\n                onClearAssets={onClearAssets}\n                unassignAssetsUnavailableTooltipContent={unassignAssetsUnavailableTooltipContent}\n            />\n        </div>\n    );\n});\n\nexport default SpotAssetsAssignmentFooterContent;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { ApiRevokePartnerContractInfoT, RevokeContractActionEnum } from 'common/utils/api/models';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\n\nconst prepareRevokeInfo = (formValues: FormValuesT): ApiRevokePartnerContractInfoT | null => {\n    const revokeInfo: ApiRevokePartnerContractInfoT = {\n        action: formValues[FieldsEnum.action],\n    };\n\n    switch (formValues[FieldsEnum.action]) {\n        case RevokeContractActionEnum.setNewContract: {\n            revokeInfo.newContractId = formValues[FieldsEnum.nextContractId] || undefined;\n            break;\n        }\n        case RevokeContractActionEnum.setNewRate: {\n            revokeInfo.boxRateKm = parseSimpleNumber(formValues[FieldsEnum.boxesRatePerKm]);\n            revokeInfo.tiltRateKm = parseSimpleNumber(formValues[FieldsEnum.tiltsRatePerKm]);\n            revokeInfo.truckRateKm = parseSimpleNumber(formValues[FieldsEnum.trucksRatePerKm]);\n            break;\n        }\n        case RevokeContractActionEnum.keepOldRate:\n        default: {\n            // nothing\n            break;\n        }\n    }\n\n    return revokeInfo;\n};\n\nexport { prepareRevokeInfo };\n","import React from 'react';\nimport { MenuVisibilityT } from 'common/utils/hooks/useMenuVisibility';\n\ntype UiContextT = {\n    menu: MenuVisibilityT | null;\n};\n\nconst UiContext = React.createContext<UiContextT>({ menu: null });\n\nexport default UiContext;\n","import React, { useMemo } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './LaneDropdownInput.scss';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport ControlLoaderIcon, { ControlLoaderIconProps } from 'common/icons/ControlLoaderIcon';\nimport { ApiContractLaneT } from 'common/utils/api/models';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport keyBy from 'lodash/keyBy';\nimport { useTranslation } from 'react-i18next';\nimport LaneDropdownInputOptionLabel from 'common/layouts/NewOrderPage/ShipmentDetailsForm/LaneDropdownInput/LaneDropdownInputOptionLabel/LaneDropdownInputOptionLabel';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype ValueT = ApiContractLaneT['tztLaneId'] | null;\ntype OptionT = ApiContractLaneT;\n\ntype PropsT = {\n    options?: Array<OptionT>;\n    isLoading?: boolean;\n\n    selectedValue: ValueT;\n    placeholder: string;\n    isDisabled?: boolean;\n    onSelect: (value: ValueT, label: string) => void;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    className?: string;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    hasChanges?: boolean;\n    onBlur: () => void;\n    onFocus: () => void;\n    onReset?: () => void;\n};\n\nconst EMPTY_OPTIONS: Array<OptionT> = [];\n\nconst LaneDropdownInput: React.FC<PropsT> = React.memo((props) => {\n    const {\n        isLoading,\n\n        selectedValue,\n        placeholder,\n        isDisabled,\n        onSelect,\n        overlayPosition,\n        className,\n        hasError,\n        hasWarning,\n        hasChanges,\n        onBlur,\n        onFocus,\n        onReset,\n    } = props;\n\n    const options = props.options || EMPTY_OPTIONS;\n\n    const { t } = useTranslation();\n\n    const getOptionLabel = (option: OptionT | null | undefined): string => {\n        if (!option) {\n            return '';\n        }\n\n        return t('common:new-order-form.lane-option-template', {\n            contractName: option.contractName || '',\n            tztLaneId: option.tztLaneId || '',\n            externalLaneId: option.externalLaneId || '',\n        });\n    };\n\n    const optionsById = useMemo(() => {\n        return keyBy(options, 'id');\n    }, [options]);\n\n    const renderTrigger = (option?: OptionT, placeholder?: string): React.ReactNode => {\n        if (!option) {\n            return placeholder;\n        }\n\n        return getOptionLabel(option);\n    };\n\n    const renderOption = (option?: OptionT, placeholder?: string): React.ReactNode => {\n        if (!option) {\n            return placeholder;\n        }\n\n        return <LaneDropdownInputOptionLabel lane={option} />;\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option.id;\n\n    const handleSelect = (value: ValueT) => {\n        const selectedOption = optionsById[value as string];\n        const selectedOptionLabel = getOptionLabel(selectedOption);\n        onSelect(value, selectedOptionLabel);\n    };\n\n    return (\n        <DropdownInput<OptionT, ValueT>\n            className={className}\n            selectedValue={selectedValue}\n            placeholder={placeholder}\n            options={options}\n            isDisabled={isLoading || isDisabled}\n            onSelect={handleSelect}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            renderRightIcon={() =>\n                isLoading ? <ControlLoaderIcon {...ControlLoaderIconProps.getFetchDataProps()} /> : null\n            }\n            renderOption={renderOption}\n            renderTriggerContent={renderTrigger}\n            getOptionValue={getOptionValue}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            hasClearControl={!!onReset}\n            onReset={onReset}\n        />\n    );\n});\n\nexport default LaneDropdownInput;\n","/* eslint-disable max-len */\nimport React from 'react';\nimport { useLocation, Link as RRDLink, LinkProps as RRDLinkProps } from 'react-router-dom';\nimport { matchPath } from 'react-router';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport { useTranslation } from 'react-i18next';\n\nimport Logo from './Logo/Logo';\nimport Avatar, { AvatarSizeEnum } from 'common/components/Avatar/Avatar';\n\nimport styles from './Navigation.scss';\nimport UiContext from 'common/contexts/ui-context';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport useWindowSize from 'common/utils/hooks/useWindowSize';\nimport { getCurrentYear } from 'common/utils/time';\nimport HelpIcon from 'common/icons/HelpIcon';\nimport CompanyLogo, { CompanyLogoSizeEnum } from 'common/components/CompanyLogo/CompanyLogo';\n\nconst cx = classNames.bind(styles);\n\nconst BREAKING_POINT_WIDTH = 1470 * window.devicePixelRatio; // px\nconst TOOLTIP_DELAY = 500;\n\ntype LinkPropsT = RRDLinkProps<unknown> & {\n    testSelector?: string;\n};\n\nconst Link: React.FC<LinkPropsT> = React.memo((props) => {\n    const { testSelector, ...rest } = props;\n\n    return <RRDLink {...rest} data-test-selector={`${testSelector}_link`} />;\n});\n\ntype MenuAvatarPropsT = {\n    className?: string;\n    accountLink: string;\n    isExpanded: boolean;\n    userEmail: string;\n    userName: string;\n    companyName: string | null;\n    location: ReturnType<typeof useLocation>;\n};\n\nconst MenuAvatar: React.FC<MenuAvatarPropsT> = React.memo((props) => {\n    const { className, accountLink, isExpanded, userEmail, userName, companyName, location } = props;\n\n    const [isHovered, setHover] = React.useState<boolean>(false);\n    const handleFocus = () => {\n        if (isHovered) {\n            return;\n        }\n\n        setHover(true);\n    };\n    const handleBlur = () => {\n        if (!isHovered) {\n            return;\n        }\n\n        setHover(false);\n    };\n    const hasAccountLinkMatch = matchPath(location?.pathname, {\n        path: accountLink,\n        exact: false,\n        strict: false,\n    })?.url;\n\n    const avatarNode = (\n        <Avatar\n            className={cx('menu-avatar__icon', {\n                'menu-avatar__icon--isHovered': isHovered,\n                'menu-avatar__icon--hasLinkMatch': hasAccountLinkMatch,\n            })}\n            hash={userEmail}\n            size={AvatarSizeEnum.large}\n        />\n    );\n\n    return (\n        <Link\n            className={cs(\n                cx('menu-avatar', {\n                    'menu-avatar--isExpanded': isExpanded,\n                }),\n                className,\n            )}\n            to={accountLink}\n            testSelector=\"avatar-menu\"\n            onMouseMove={handleFocus}\n            onMouseLeave={handleBlur}\n        >\n            {isExpanded ? (\n                <>\n                    {avatarNode}\n                    <div className={cx('menu-avatar__inner')}>\n                        <div className={cx('menu-avatar__user')}>{userName}</div>\n                        {!!companyName && <div className={cx('menu-avatar__company')}>{companyName}</div>}\n                    </div>\n                </>\n            ) : (\n                <Tooltip\n                    position={TooltipPositionEnum.centerRight}\n                    theme={TooltipThemeEnum.black}\n                    delay={TOOLTIP_DELAY}\n                    tooltipNode={\n                        <div className={cx('tooltip', 'tooltip--isAvatar')}>\n                            <div className={cx('menu-avatar__inner')}>\n                                <div\n                                    className={cx(\n                                        'menu-avatar__user',\n                                        'menu-avatar__user--isInTooltip',\n                                        'tooltip__text',\n                                    )}\n                                >\n                                    {userName}\n                                </div>\n                                {!!companyName && (\n                                    <div className={cx('menu-avatar__company', 'tooltip__text')}>{companyName}</div>\n                                )}\n                            </div>\n                        </div>\n                    }\n                >\n                    {() => avatarNode}\n                </Tooltip>\n            )}\n        </Link>\n    );\n});\n\ntype MenuCompanyLogoPropsT = {\n    className?: string;\n    profileLink: string;\n    isExpanded: boolean;\n    companyName: string;\n    location: ReturnType<typeof useLocation>;\n};\n\nconst MenuCompanyLogo: React.FC<MenuCompanyLogoPropsT> = React.memo((props) => {\n    const { className, profileLink, isExpanded, companyName, location } = props;\n\n    const [isHovered, setHover] = React.useState<boolean>(false);\n    const handleFocus = () => {\n        if (isHovered) {\n            return;\n        }\n\n        setHover(true);\n    };\n    const handleBlur = () => {\n        if (!isHovered) {\n            return;\n        }\n\n        setHover(false);\n    };\n\n    const hasCompanyLinkMatch = matchPath(location?.pathname, {\n        path: profileLink,\n        exact: false,\n        strict: false,\n    })?.url;\n\n    const companyLogoNode = (\n        <CompanyLogo\n            className={cx('menu-company__icon', {\n                'menu-company__icon--isHovered': isHovered,\n                'menu-company__icon--hasLinkMatch': hasCompanyLinkMatch,\n            })}\n            size={CompanyLogoSizeEnum.large}\n        />\n    );\n\n    return (\n        <Link\n            className={cs(\n                cx('menu-company', {\n                    'menu-company--isExpanded': isExpanded,\n                }),\n                className,\n            )}\n            to={profileLink}\n            testSelector=\"company-menu\"\n            onMouseMove={handleFocus}\n            onMouseLeave={handleBlur}\n        >\n            {isExpanded ? (\n                <>\n                    {companyLogoNode}\n                    <div className={cx('menu-company__inner')}>\n                        <div className={cx('menu-company__company')}>{companyName}</div>\n                    </div>\n                </>\n            ) : (\n                <Tooltip\n                    position={TooltipPositionEnum.centerRight}\n                    theme={TooltipThemeEnum.black}\n                    delay={TOOLTIP_DELAY}\n                    tooltipNode={\n                        <div className={cx('tooltip', 'tooltip--isAvatar')}>\n                            <div className={cx('menu-company__inner')}>\n                                <div className={cx('menu-company__company', 'tooltip__text')}>{companyName}</div>\n                            </div>\n                        </div>\n                    }\n                >\n                    {() => companyLogoNode}\n                </Tooltip>\n            )}\n        </Link>\n    );\n});\n\nexport type MenuLinkT = {\n    renderIcon: (isActive: boolean) => React.ReactElement;\n    text: string;\n    to: string;\n    matchPathname: string | null;\n    excludeMatchPathname?: string | null;\n    exact?: boolean;\n    strict?: boolean;\n    testSelector: string;\n};\n\nexport enum BadgeTypeEnum {\n    info = 'info',\n}\n\nexport type BadgeT = {\n    type: BadgeTypeEnum;\n    text: string | number | null;\n};\n\ntype PropsT = {\n    className?: string;\n    userName: string;\n    userEmail: string;\n    companyId: string | null;\n    companyName: string;\n    menuLinks: Array<MenuLinkT | null>;\n    badges: Record<string, BadgeT[]>;\n    logoLink: string;\n    accountLink: string;\n    isAllowHelpButton?: boolean;\n    isShowCompanyLogo?: boolean;\n};\n\nconst Navigation: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        logoLink,\n        userName,\n        userEmail,\n        companyId,\n        companyName,\n        menuLinks,\n        accountLink,\n        badges,\n        isAllowHelpButton,\n        isShowCompanyLogo,\n    } = props;\n    const { t } = useTranslation();\n\n    const uiContext = React.useContext(UiContext);\n    const size = useWindowSize();\n\n    const [isExpanded, setExpanded] = React.useState<boolean>(() => {\n        return size.width > BREAKING_POINT_WIDTH;\n    });\n\n    React.useEffect(() => {\n        const shouldExpand = size.width > BREAKING_POINT_WIDTH;\n        setExpanded(shouldExpand);\n    }, [size.width]);\n\n    const isActiveCompactMenu = !!uiContext.menu?.isVisible;\n    React.useEffect(() => {\n        if (isActiveCompactMenu) {\n            setExpanded(true);\n        }\n    }, [isActiveCompactMenu]);\n\n    const location = useLocation();\n\n    const helpIcon = <HelpIcon />;\n    const helpContent = t('common:help');\n    const handleHelp = (): void => {\n        if (window.openZendeskWidget) {\n            window.openZendeskWidget();\n        }\n    };\n\n    let helpNode: React.ReactNode = null;\n    if (isAllowHelpButton) {\n        helpNode = isExpanded ? (\n            <span className={cx('menu-item', 'menu-item--isClickable')} onClick={handleHelp} data-test-selector=\"help\">\n                <div className={cx('menu-item__icon')}>{helpIcon}</div>\n                <div className={cx('menu-item__text')}>{helpContent}</div>\n            </span>\n        ) : (\n            <div className={cx('light-menu-item__wrap')}>\n                <Tooltip\n                    position={TooltipPositionEnum.centerRight}\n                    theme={TooltipThemeEnum.black}\n                    delay={TOOLTIP_DELAY}\n                    tooltipNode={<div className={cx('tooltip', 'tooltip--isMenuItem')}>{helpContent}</div>}\n                >\n                    {() => (\n                        <span\n                            className={cx('light-menu-item', 'light-menu-item--isClickable')}\n                            data-test-selector=\"help\"\n                            onClick={handleHelp}\n                        >\n                            {helpIcon}\n                        </span>\n                    )}\n                </Tooltip>\n            </div>\n        );\n    }\n\n    return (\n        <div\n            data-dismiss=\"navigation\"\n            className={cs(\n                cx('navigation', {\n                    'navigation--isExpanded': isExpanded,\n                }),\n                className,\n            )}\n        >\n            <div className={cx('inner')}>\n                <div className={cx('logo')}>\n                    <Link className={cx('logo__link')} to={logoLink} testSelector=\"logo\">\n                        <Logo isSmall={!isExpanded} />\n                    </Link>\n                </div>\n                <div\n                    className={cx('profile', {\n                        'profile--isExpanded': isExpanded,\n                    })}\n                >\n                    <MenuAvatar\n                        className={cx('profile-item')}\n                        accountLink={accountLink}\n                        isExpanded={isExpanded}\n                        userEmail={userEmail}\n                        userName={userName}\n                        companyName={isShowCompanyLogo ? null : companyName}\n                        location={location}\n                    />\n                    {isShowCompanyLogo && companyId && (\n                        <MenuCompanyLogo\n                            className={cx('profile-item')}\n                            // TODO remove temp experiment\n                            profileLink={`/partners/broker/${companyId}/partner/details`}\n                            isExpanded={isExpanded}\n                            companyName={companyName}\n                            location={location}\n                        />\n                    )}\n                </div>\n                <div className={cx('menu')}>\n                    {menuLinks.map((menuLink) => {\n                        if (!menuLink) {\n                            return null;\n                        }\n\n                        const {\n                            matchPathname,\n                            excludeMatchPathname,\n                            to,\n                            renderIcon,\n                            text,\n                            exact,\n                            strict,\n                            testSelector,\n                        } = menuLink;\n\n                        let isActive = false;\n                        if (matchPathname) {\n                            isActive = !!matchPath(location?.pathname, {\n                                path: matchPathname,\n                                exact,\n                                strict,\n                            });\n                        }\n                        if (isActive && excludeMatchPathname) {\n                            isActive = !matchPath(location?.pathname, {\n                                path: excludeMatchPathname,\n                                exact: false,\n                                strict: false,\n                            });\n                        }\n\n                        const fullTestSelector = `menu_${testSelector}`;\n\n                        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n                        const badgesNode = (badges[to] || []).map((badge) => {\n                            const { type, text: badgeText } = badge;\n\n                            return (\n                                <span\n                                    key={type}\n                                    className={cx('count', {\n                                        [`count--${type}`]: true,\n                                    })}\n                                >\n                                    {badgeText}\n                                </span>\n                            );\n                        });\n\n                        if (!isExpanded) {\n                            return (\n                                <div className={cx('light-menu-item__wrap')} key={to}>\n                                    <Tooltip\n                                        position={TooltipPositionEnum.centerRight}\n                                        theme={TooltipThemeEnum.black}\n                                        delay={TOOLTIP_DELAY}\n                                        tooltipNode={<div className={cx('tooltip', 'tooltip--isMenuItem')}>{text}</div>}\n                                    >\n                                        {() => (\n                                            <Link\n                                                to={to}\n                                                className={cx('light-menu-item', {\n                                                    'light-menu-item--isActive': isActive,\n                                                })}\n                                                testSelector={fullTestSelector}\n                                            >\n                                                {renderIcon(isActive)}\n                                            </Link>\n                                        )}\n                                    </Tooltip>\n                                </div>\n                            );\n                        }\n\n                        return (\n                            <Link\n                                key={to}\n                                className={cx('menu-item', {\n                                    'menu-item--isActive': isActive,\n                                })}\n                                to={to}\n                                testSelector={fullTestSelector}\n                            >\n                                <div className={cx('menu-item__icon')}>{renderIcon(isActive)}</div>\n                                <div\n                                    className={cx('menu-item__text', {\n                                        'menu-item__text--isActive': isActive,\n                                    })}\n                                >\n                                    {text}\n                                </div>\n                            </Link>\n                        );\n                    })}\n                </div>\n                {helpNode}\n                {isExpanded && (\n                    <div className={cx('about')}>\n                        <div className={cx('about__inner')}>\n                            <div className={cx('about__copyright')}>\n                                {t('common:about.copyright', {\n                                    year: getCurrentYear(),\n                                })}\n                            </div>\n                            <div className={cx('about__disclaimer')}>{t('common:about.disclaimer')}</div>\n                        </div>\n                    </div>\n                )}\n            </div>\n        </div>\n    );\n});\n\nexport default Navigation;\n","export type ApiSpotInboxRequestT = Api2.Definitions.CarrierSpotInboxDto;\nexport type ApiSpotLoadBoardRequestT = Api2.Definitions.CarrierSpotLoadBoardDto;\n\nexport type ApiBidStatusT = Api2.Definitions.BidStatus;\nexport enum BidStatusEnum {\n    new = 'NEW',\n    open = 'OPEN',\n    accepted = 'ACCEPTED',\n    rejected = 'REJECTED',\n    expired = 'EXPIRED',\n    won = 'WON',\n    lost = 'LOST',\n    missed = 'MISSED',\n    canceled = 'CANCELED',\n}\n\nexport type ApiInboxRequestsStatsT = Array<Api2.Definitions.BidStatusesDto>;\n\nexport enum SpotRequestsSortEnum {\n    expirationTime = 'deadline',\n    placedTime = 'createdDate',\n    originTime = 'originTimeSlotFrom',\n    destinationTime = 'destinationTimeSlotFrom',\n}\n\nexport type ApiSpotRequestDetailsT = Api2.Definitions.CarrierSpotFullDetails;\n\nexport type ApiSpotStopT = Api2.Definitions.SpotStop;\n\nexport type ApiSpotCarrierLaneT = SpotApi.Definitions.CarrierLaneDto;\nexport type ApiSpotCarrierLanesRequestT = SpotApiPaths.SpotApiV1CarrierLane.Get.QueryParameters;\nexport type ApiSpotCarrierLanesChangesT = Array<SpotApi.Definitions.CreateOrUpdateLaneDto>;\nexport type ApiSpotCarrierLanesTrailerVariantT = SpotApi.Definitions.CreateOrUpdateLaneDto['trailerType'];\n","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\n\ntype PropsT = {\n    transportationOrderNumber: React.ReactNode;\n    isRunOut: boolean;\n};\n\nconst TransportationOrderOutOfTimeToAssignDriverCard: React.FC<PropsT> = React.memo((props) => {\n    const { transportationOrderNumber, isRunOut } = props;\n\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey={\n                    isRunOut\n                        ? 'common:notifications.transportation-order-run-out-of-time-to-assign-driver'\n                        : 'common:notifications.transportation-order-running-out-of-time-to-assign-driver'\n                }\n                components={{\n                    transportationOrderNumber: (\n                        <NotificationEntityLabel isBold isUnderline text={transportationOrderNumber} />\n                    ),\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default TransportationOrderOutOfTimeToAssignDriverCard;\n","import React from 'react';\n\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\n\nimport classNames from 'classnames/bind';\nimport styles from './PriceRuleOperationMultipleDropdown.scss';\nimport { useTranslation } from 'react-i18next';\nimport {\n    ApiPriceSettingsRuleOperationT,\n    PriceSettingsRuleOperationEnum,\n} from 'broker-admin/utils/api/broker-tranziit/models';\nimport DropdownMultipleInput from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInput';\nimport DropdownMultipleInputCountLabel from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInputCountLabel/DropdownMultipleInputCountLabel';\nimport { PRICE_RULE_OPERATION_I18N_MAP } from 'broker-admin/components/filter-pills/PriceRuleOperationFilterPill/PriceRuleOperationFilterPill';\n\nconst cx = classNames.bind(styles);\n\ntype OptionT = {\n    value: ApiPriceSettingsRuleOperationT;\n    label: React.ReactNode;\n};\n\ntype ValueT = OptionT['value'];\n\nexport type PropsT = {\n    className?: string;\n    values: Array<ValueT>;\n    onSelect: (values: Array<ValueT>) => void;\n    overlayPosition: DropdownOverlayPositionEnum;\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    placeholder?: InputPropsT['placeholder'];\n    onBlur: InputPropsT['onBlur'];\n    onFocus: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasChanges?: boolean;\n};\n\nconst PriceRuleOperationMultipleDropdown: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        values,\n        onSelect,\n        hasWarning,\n        hasError,\n        overlayPosition,\n        isDisabled,\n        placeholder,\n        onBlur,\n        onFocus,\n        hasChanges,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const options = React.useMemo((): Array<OptionT> => {\n        return [\n            {\n                label: t(PRICE_RULE_OPERATION_I18N_MAP[PriceSettingsRuleOperationEnum.surcharge]),\n                value: PriceSettingsRuleOperationEnum.surcharge,\n            },\n            {\n                label: t(PRICE_RULE_OPERATION_I18N_MAP[PriceSettingsRuleOperationEnum.discount]),\n                value: PriceSettingsRuleOperationEnum.discount,\n            },\n            {\n                label: t(PRICE_RULE_OPERATION_I18N_MAP[PriceSettingsRuleOperationEnum.value]),\n                value: PriceSettingsRuleOperationEnum.value,\n            },\n        ];\n    }, [t]);\n\n    const renderTriggerContent = (options: Array<OptionT>, placeholder: string | undefined) => {\n        if (!options?.length) {\n            return placeholder;\n        }\n\n        if (options.length === 1) {\n            const option = options[0];\n            return option?.label || null;\n        }\n\n        return <DropdownMultipleInputCountLabel count={options?.length} />;\n    };\n\n    const renderOption = (option: OptionT | null | undefined): React.ReactNode => {\n        if (!option) {\n            return null;\n        }\n\n        return option?.label || '';\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option.value;\n\n    return (\n        <DropdownMultipleInput<OptionT, ValueT>\n            className={className}\n            options={options}\n            selectedValues={values}\n            getOptionValue={getOptionValue}\n            placeholder={placeholder}\n            isDisabled={isDisabled}\n            onSelect={onSelect}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            renderOption={renderOption}\n            renderTriggerContent={renderTriggerContent}\n            overlayPosition={overlayPosition}\n            overlayClassName={cx('overlay')}\n        />\n    );\n};\n\nexport default PriceRuleOperationMultipleDropdown;\n","import * as React from 'react';\nimport { BrokerInvoiceT } from 'broker-admin/store/invoices/models';\nimport { LinkSizeEnum, LinkThemeEnum, LinkToT } from 'common/components/Link/Link';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport TableCellLink from 'common/components/Table/cell-renderers/TableCellLink/TableCellLink';\n\ntype PropsT = {\n    invoice: BrokerInvoiceT | null;\n    getPartnerLink: (partnerType: PartnerTypeEnum, partnerId: CompanyIdT) => LinkToT;\n};\n\nconst CustomerCell: React.FC<PropsT> = React.memo((props) => {\n    const { getPartnerLink, invoice } = props;\n\n    if (!invoice?.customerId) {\n        return null;\n    }\n\n    return (\n        <TableCellLink\n            to={getPartnerLink(PartnerTypeEnum.shipper, invoice.customerId)}\n            theme={LinkThemeEnum.boldBrandDark}\n            size={LinkSizeEnum.medium}\n        >\n            {invoice.customerName || '-'}\n        </TableCellLink>\n    );\n});\n\nexport default CustomerCell;\n","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport {\n    AvailableSubjectStatusesResponseT,\n    StateMachineEntityDescriptorT,\n    StateMachineEntityHashT,\n    StateMachineUpdateT,\n    TypedAvailableSubjectStatusesResponseT,\n} from 'common/store/state-machine/models';\nimport { AnyAlert } from 'common/store/alerts/models';\n\nexport type StateMachineItemStateT<T = string> = {\n    fetchRequest: RequestStatusT;\n    availableSubjectStatuses: TypedAvailableSubjectStatusesResponseT<T> | null;\n    updateRequest: RequestStatusT;\n};\n\nexport const initialStateMachineItemState: StateMachineItemStateT = {\n    fetchRequest: requestStatus.initial,\n    availableSubjectStatuses: null,\n    updateRequest: requestStatus.initial,\n};\n\nexport type StateMachineStateT = Record<StateMachineEntityHashT, StateMachineItemStateT>;\n\nconst initialState: StateMachineStateT = {};\n\nexport const stateMachineSlice = createSlice({\n    name: 'state-machine',\n    initialState,\n    reducers: {\n        fetchStateMachineSteps: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                descriptor: StateMachineEntityDescriptorT;\n                options?: FetchOptionsT;\n            }>,\n        ) => {\n            // nothing\n        },\n        fetchStateMachineStepsBegin: (\n            state,\n            action: PayloadAction<{\n                hash: StateMachineEntityHashT;\n            }>,\n        ) => {\n            const { hash } = action.payload;\n\n            const itemState = state[hash] || initialStateMachineItemState;\n\n            state[hash] = {\n                ...itemState,\n                fetchRequest: requestStatus.loading,\n            };\n        },\n        fetchStateMachineStepsSuccess: (\n            state,\n            action: PayloadAction<{\n                hash: StateMachineEntityHashT;\n                data: AvailableSubjectStatusesResponseT | null;\n            }>,\n        ) => {\n            const { hash, data } = action.payload;\n\n            const itemState = state[hash] || initialStateMachineItemState;\n\n            state[hash] = {\n                ...itemState,\n                fetchRequest: requestStatus.ok,\n                availableSubjectStatuses: data,\n            };\n        },\n        fetchStateMachineStepsError: (\n            state,\n            action: PayloadAction<{\n                hash: StateMachineEntityHashT;\n                error: Error;\n            }>,\n        ) => {\n            const { hash, error } = action.payload;\n\n            const itemState = state[hash] || initialStateMachineItemState;\n\n            state[hash] = {\n                ...itemState,\n                fetchRequest: requestStatus.setError(error),\n            };\n        },\n        updateEntityStatus: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                update: StateMachineUpdateT;\n                descriptor: StateMachineEntityDescriptorT;\n                successAlert?: AnyAlert;\n            }>,\n        ) => {\n            // nothing\n        },\n        updateEntityStatusBegin: (\n            state,\n            action: PayloadAction<{\n                hash: StateMachineEntityHashT;\n            }>,\n        ) => {\n            const { hash } = action.payload;\n\n            const itemState = state[hash] || initialStateMachineItemState;\n\n            state[hash] = {\n                ...itemState,\n                updateRequest: requestStatus.loading,\n            };\n        },\n        updateEntityStatusSuccess: (\n            state,\n            action: PayloadAction<{\n                hash: StateMachineEntityHashT;\n            }>,\n        ) => {\n            const { hash } = action.payload;\n\n            const itemState = state[hash] || initialStateMachineItemState;\n\n            state[hash] = {\n                ...itemState,\n                updateRequest: requestStatus.ok,\n            };\n        },\n        updateEntityStatusError: (\n            state,\n            action: PayloadAction<{\n                hash: StateMachineEntityHashT;\n                error: Error;\n                shouldIgnoreErrorModal?: boolean;\n            }>,\n        ) => {\n            const { hash, error } = action.payload;\n\n            const itemState = state[hash] || initialStateMachineItemState;\n\n            state[hash] = {\n                ...itemState,\n                updateRequest: requestStatus.setError(error),\n            };\n        },\n    },\n});\n\nexport const {\n    fetchStateMachineSteps,\n    fetchStateMachineStepsBegin,\n    fetchStateMachineStepsSuccess,\n    fetchStateMachineStepsError,\n    updateEntityStatus,\n    updateEntityStatusBegin,\n    updateEntityStatusSuccess,\n    updateEntityStatusError,\n} = stateMachineSlice.actions;\n\nexport default stateMachineSlice.reducer;\n","import { CompanyT } from 'common/store/company/models';\n\nexport const checkHasOperationUnavailableReasons = (company: CompanyT | null | undefined): boolean =>\n    Boolean(company?.operationUnavailableReasons?.length);\n","import { AsyncFormErrorsT, FieldsEnum } from './constants';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { checkIsAuthApiError } from 'common/utils/api/auth/errors/auth-api-error';\n\nconst asyncValidate = (requestStatus: RequestStatusT): AsyncFormErrorsT => {\n    const asyncErrors: AsyncFormErrorsT = {};\n\n    if (checkIsAuthApiError(requestStatus.error)) {\n        asyncErrors[FieldsEnum.password] = requestStatus.error.type;\n    }\n\n    return asyncErrors;\n};\n\nexport default asyncValidate;\n","// extracted by mini-css-extract-plugin\nexport default {\"number\":\"ExternalNumberCell__number___wNFpQ\",\"source\":\"ExternalNumberCell__source___iyhXs\",\"fadeIn\":\"ExternalNumberCell__fadeIn___bt4O2\",\"blinking\":\"ExternalNumberCell__blinking___xf9Ys\"};","export type QueryT = {\n    [QueryKeysEnum.fromBrokerTour]?: boolean;\n};\n\nexport enum QueryKeysEnum {\n    fromBrokerTour = 'from-broker-tour',\n}\n","import { useCallback, useLayoutEffect, useState } from 'react';\n\nexport const useIsScrollable = (dependencies: any[]): any => {\n    const [node, setNode] = useState<HTMLDivElement>();\n    const ref = useCallback((node: HTMLDivElement) => {\n        setNode(node);\n    }, []);\n\n    const [isScrollable, setIsScrollable] = useState<boolean>(false);\n\n    useLayoutEffect(() => {\n        if (!node) return;\n\n        setIsScrollable(node.scrollHeight > node.clientHeight);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [...dependencies, node]);\n\n    useLayoutEffect(() => {\n        if (!node) {\n            return (): void => {\n                // nothing\n            };\n        }\n\n        const handleWindowResize = () => {\n            setIsScrollable(node.scrollHeight > node.clientHeight);\n        };\n\n        window.addEventListener('resize', handleWindowResize);\n\n        return (): void => {\n            window.removeEventListener('resize', handleWindowResize);\n        };\n    }, [node]);\n\n    return [isScrollable, ref, node] as const;\n};\n","import { useEffect, useRef } from 'react';\n\ntype HandlerT = () => void;\n\nconst useDocumentVisibilityChange = (handler: HandlerT) => {\n    const visibilitychangeHandler = useRef<HandlerT>();\n\n    useEffect(() => {\n        visibilitychangeHandler.current = handler;\n    }, [handler]);\n\n    useEffect(() => {\n        const onVisibilityChange = (): void => {\n            if (document.visibilityState === 'visible') {\n                if (visibilitychangeHandler.current) {\n                    visibilitychangeHandler.current();\n                }\n            }\n        };\n\n        document.addEventListener('visibilitychange', onVisibilityChange);\n\n        return (): void => {\n            document.removeEventListener('visibilitychange', onVisibilityChange);\n        };\n    }, []);\n};\n\nexport default useDocumentVisibilityChange;\n","import { RequestStatusT } from 'common/utils/request-status';\nimport useOnlyChangesEffect from 'common/utils/hooks/useOnlyChangesEffect';\n\ntype DialogT = {\n    isShow: boolean;\n    onClose: () => void;\n};\n\ntype OptionsT = {\n    shouldCloseOnError?: boolean;\n};\n\nconst useCloseModalDialogAfterRequest = (\n    requestStatus: RequestStatusT,\n    dialogs: Array<DialogT>,\n    options?: OptionsT,\n) => {\n    useOnlyChangesEffect(() => {\n        const isShow = dialogs.some((dialog) => dialog.isShow);\n        if (!isShow) {\n            return;\n        }\n\n        if (requestStatus.error && options?.shouldCloseOnError) {\n            dialogs.forEach((dialog) => {\n                dialog.onClose();\n            });\n        }\n\n        if (requestStatus.ok) {\n            dialogs.forEach((dialog) => {\n                dialog.onClose();\n            });\n        }\n    }, [requestStatus]);\n};\n\nexport default useCloseModalDialogAfterRequest;\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { getZipCodeExample, hasZipCodeValidation, isValid } from 'common/utils/postal-codes';\nimport { checkMaxLength, checkMinLength, checkNotEmpty } from 'common/utils/form-validators';\n\nconst REQUIRED_FIELDS = [FieldsEnum.companyName, FieldsEnum.zipCode, FieldsEnum.city, FieldsEnum.street] as const;\n\nconst validateForm = (t: TFunction, values: FormValuesT): Partial<Record<FieldsEnum, string>> => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n\n        ...checkMinLength(t, [FieldsEnum.companyName], values, 2),\n        ...checkMaxLength(t, [FieldsEnum.companyName], values, 255),\n    };\n\n    const countryCode = values[FieldsEnum.countryCode];\n    const zipCode = values[FieldsEnum.zipCode];\n    if (hasZipCodeValidation(countryCode) && !isValid(countryCode, zipCode)) {\n        errors[FieldsEnum.zipCode] = t('common:form-errors.zip-code', {\n            example: getZipCodeExample(countryCode),\n        });\n    }\n\n    const isAcceptTerms = values[FieldsEnum.acceptTerms];\n    if (!isAcceptTerms) {\n        errors[FieldsEnum.acceptTerms] = t('common:form-errors.accept-terms');\n    }\n\n    return errors;\n};\n\nexport default validateForm;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"BrokerTourDetailsPage__wrap___jtRnR\",\"tabs-wrap\":\"BrokerTourDetailsPage__tabs-wrap___V9K1Q\",\"tab\":\"BrokerTourDetailsPage__tab___xX8pe\",\"status\":\"BrokerTourDetailsPage__status___qb5hq\",\"fadeIn\":\"BrokerTourDetailsPage__fadeIn___F9iGl\",\"blinking\":\"BrokerTourDetailsPage__blinking___yoXlm\"};","import { FieldsEnum, FormValuesT } from './constants';\n\nconst getInitialValues = (): FormValuesT => {\n    const values: FormValuesT = {\n        [FieldsEnum.shipperIds]: [],\n        [FieldsEnum.shipperNames]: [],\n\n        [FieldsEnum.dictTrailerId]: null,\n\n        [FieldsEnum.pickupAddress]: null,\n        [FieldsEnum.dropoffAddress]: null,\n\n        [FieldsEnum.pickupDates]: null,\n        [FieldsEnum.dropoffDates]: null,\n\n        [FieldsEnum.createDates]: null,\n        [FieldsEnum.createdByName]: null,\n        [FieldsEnum.createdById]: null,\n\n        [FieldsEnum.source]: null,\n        [FieldsEnum.extendedSource]: [],\n    };\n\n    return values;\n};\n\nexport default getInitialValues;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"PriceMatrix__inner___SgOGA\",\"matrix\":\"PriceMatrix__matrix___axeJz\",\"row\":\"PriceMatrix__row___qubhn\",\"row--isHorizontalHeader\":\"PriceMatrix__row--isHorizontalHeader___e8GFG\",\"header\":\"PriceMatrix__header___gVV3o\",\"header--isHorizontal\":\"PriceMatrix__header--isHorizontal___Wr5Ia\",\"header--isVertical\":\"PriceMatrix__header--isVertical___XipmD\",\"column\":\"PriceMatrix__column___e0LZG\",\"column--isHeader\":\"PriceMatrix__column--isHeader___L46in\",\"column--isActive\":\"PriceMatrix__column--isActive___tFCHk\",\"column--isShowTooltip\":\"PriceMatrix__column--isShowTooltip___wvvRI\",\"column--isSelected\":\"PriceMatrix__column--isSelected___THs0E\",\"column--isSelectedCell\":\"PriceMatrix__column--isSelectedCell___NRL2N\",\"tooltip\":\"PriceMatrix__tooltip___bBtAH\",\"tooltip--isTopCenter\":\"PriceMatrix__tooltip--isTopCenter___VzQAk\",\"tooltip--isTopLeft\":\"PriceMatrix__tooltip--isTopLeft___FYSuq\",\"tooltip--isTopRight\":\"PriceMatrix__tooltip--isTopRight___Xa5z3\",\"tooltip__inner\":\"PriceMatrix__tooltip__inner___U35bV\",\"tooltip__text\":\"PriceMatrix__tooltip__text___tAVAZ\",\"offer\":\"PriceMatrix__offer___KT3H0\",\"offer--clickable\":\"PriceMatrix__offer--clickable___D8AEE\",\"offer__icons\":\"PriceMatrix__offer__icons___sZK75\",\"offer__price\":\"PriceMatrix__offer__price___Kxjj8\",\"offer__price--green\":\"PriceMatrix__offer__price--green___YYYSl\",\"offer__price--secondary\":\"PriceMatrix__offer__price--secondary___fS_x1\",\"offer__price--expired\":\"PriceMatrix__offer__price--expired___onn4N\",\"offer__credit-limit-warning\":\"PriceMatrix__offer__credit-limit-warning___P0Lui\",\"cell\":\"PriceMatrix__cell___esNEG\",\"cell__spacer--2\":\"PriceMatrix__cell__spacer--2___sx5ZX\",\"cell__spacer--3\":\"PriceMatrix__cell__spacer--3___rq6vE\",\"loader\":\"PriceMatrix__loader___UguWc\",\"fadeIn\":\"PriceMatrix__fadeIn___wpQ75\",\"blinking\":\"PriceMatrix__blinking___D8QGM\"};","import { ApiRFQBrokerSourceT, RFQShipperSourceEnum } from 'common/utils/api/models';\n\nexport enum FieldsEnum {\n    shipperIds = 'shipperIds',\n    shipperNames = 'shipperNames',\n\n    dictTrailerId = 'dictTrailerId',\n\n    pickupAddress = 'pickupAddress',\n    dropoffAddress = 'dropoffAddress',\n\n    pickupDates = 'pickupDates',\n    dropoffDates = 'dropoffDates',\n\n    createDates = 'createDates',\n    createdById = 'createdById',\n    createdByName = 'createdByName',\n\n    source = 'source',\n    extendedSource = 'extendedSource',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.shipperIds]: Array<ShipperIdT>;\n    [FieldsEnum.shipperNames]: Array<string>;\n\n    [FieldsEnum.dictTrailerId]: TrailerDictIdT | null;\n\n    [FieldsEnum.pickupAddress]: string | null;\n    [FieldsEnum.dropoffAddress]: string | null;\n\n    [FieldsEnum.pickupDates]: DateRangeT | null;\n    [FieldsEnum.dropoffDates]: DateRangeT | null;\n\n    [FieldsEnum.createDates]: DateRangeT | null;\n    [FieldsEnum.createdById]: DriverIdT | null;\n    [FieldsEnum.createdByName]: string | null;\n\n    [FieldsEnum.source]: RFQShipperSourceEnum | null;\n    [FieldsEnum.extendedSource]: Array<ApiRFQBrokerSourceT>;\n};\n","import * as React from 'react';\nimport { memo } from 'react';\nimport RenderLogContext from 'common/contexts/render-log-context';\nimport { LogTextRendererT, LogViewRendererT } from 'common/components/logs/models';\n\nexport type PropsT = {\n    children?: React.ReactNode;\n    renderLog: LogViewRendererT | null;\n    renderLogText: LogTextRendererT | null;\n};\n\nconst RenderLogContextProvider: React.FC<PropsT> = memo((props) => {\n    const { children, renderLog, renderLogText } = props;\n\n    const value = React.useMemo(() => {\n        return {\n            renderLog,\n            renderLogText,\n        };\n    }, [renderLog, renderLogText]);\n\n    return <RenderLogContext.Provider value={value}>{children}</RenderLogContext.Provider>;\n});\n\nexport default RenderLogContextProvider;\n","import { RequestStatusT } from 'common/utils/request-status';\n\nimport { ManagerT } from './models';\n\nexport const FETCH_MANAGERS_REQUEST = 'broker-admin/managers/FETCH_MANAGERS_REQUEST';\nexport const FETCH_MANAGERS_REQUEST_BEGIN = 'broker-admin/managers/FETCH_MANAGERS_REQUEST_BEGIN';\nexport const FETCH_MANAGERS_REQUEST_ERROR = 'broker-admin/managers/FETCH_MANAGERS_REQUEST_ERROR';\nexport const FETCH_MANAGERS_REQUEST_SUCCESS = 'broker-admin/managers/FETCH_MANAGERS_REQUEST_SUCCESS';\n\ntype ManagerIdT = string;\n\nexport type ManagersStateT = {\n    request: RequestStatusT;\n    byId: Record<ManagerIdT, ManagerT>;\n    allIds: Array<ManagerIdT>;\n};\n\nexport type FetchManagersActionT = {\n    type: typeof FETCH_MANAGERS_REQUEST;\n};\n\nexport type FetchManagersBeginActionT = {\n    type: typeof FETCH_MANAGERS_REQUEST_BEGIN;\n};\n\nexport type FetchManagersSuccessActionT = {\n    type: typeof FETCH_MANAGERS_REQUEST_SUCCESS;\n    managers: ManagerT[];\n};\n\nexport type FetchManagersErrorActionT = {\n    type: typeof FETCH_MANAGERS_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type ManagersActionT =\n    | FetchManagersActionT\n    | FetchManagersBeginActionT\n    | FetchManagersSuccessActionT\n    | FetchManagersErrorActionT;\n","import { FieldsEnum, FormValuesT, WaypointsFieldEnum } from './constants';\nimport { ApiUpdateDockingHoursQueryT } from 'common/utils/api/models';\nimport { BrokerOrderDetailsT, BrokerOrderWaypointT } from 'broker-admin/store/broker-order-details/models';\nimport moment from 'moment/moment';\n\ntype ModsT = {\n    needAppointmentWaypoints: Array<BrokerOrderWaypointT>;\n};\n\nexport const prepareQuery = (\n    formValues: FormValuesT,\n    brokerOrderDetails: BrokerOrderDetailsT,\n    mods: ModsT,\n): ApiUpdateDockingHoursQueryT | null => {\n    const { needAppointmentWaypoints } = mods;\n\n    const query: ApiUpdateDockingHoursQueryT = [];\n\n    const waypointsFormValues = formValues[FieldsEnum.waypoints] || [];\n    waypointsFormValues.forEach((waypointFormValues, index) => {\n        const selectedTimeWindows = waypointFormValues[WaypointsFieldEnum.timeWindow];\n        if (!selectedTimeWindows) {\n            return;\n        }\n\n        const [formHoursFrom, formHoursTo] = selectedTimeWindows;\n\n        const needAppointmentWaypoint = needAppointmentWaypoints[index];\n        const { id, originalDateTimeFrom, correctedDateTimeFrom } = needAppointmentWaypoint;\n\n        const start = moment.parseZone(correctedDateTimeFrom || originalDateTimeFrom).startOf('day');\n\n        query.push({\n            from: moment(start).add(formHoursFrom, 'milliseconds').format(),\n            to: moment(start).add(formHoursTo, 'milliseconds').format(),\n            id,\n        });\n    });\n\n    return query;\n};\n","import React from 'react';\nimport { createPortal } from 'react-dom';\nimport classNames from 'classnames/bind';\nimport styles from './StickyFooter.scss';\nimport ContentRootContext from 'common/layouts/LeftMenuLayout/contexts/content-root-context';\nimport ContentLimiter from 'common/layouts/LeftMenuLayout/ContentLimiter/ContentLimiter';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    children: React.ReactNode;\n};\n\nconst StickyFooter: React.FC<PropsT> = React.memo((props) => {\n    const { children } = props;\n\n    const contentRootNode = React.useContext(ContentRootContext);\n    if (!contentRootNode) {\n        return null;\n    }\n\n    return createPortal(\n        <div className={cx('footer')}>\n            <ContentLimiter>\n                <ContentMargins>\n                    <div className={cx('container')}>\n                        <div className={cx('content')}>{children}</div>\n                    </div>\n                </ContentMargins>\n            </ContentLimiter>\n        </div>,\n        contentRootNode,\n    );\n});\n\nexport default StickyFooter;\n","import { LangEnum } from 'common/locales/i18n';\nimport { AuthErrorTypeEnum } from 'common/utils/api/auth/errors/auth-api-error';\n\nexport enum FieldsEnum {\n    firstName = 'firstName',\n    lastName = 'lastName',\n    phoneNumber = 'phoneNumber',\n    currentPassword = 'currentPassword',\n    newPassword = 'newPassword',\n    language = 'language',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.firstName]: string;\n    [FieldsEnum.lastName]: string;\n    [FieldsEnum.phoneNumber]: string;\n    [FieldsEnum.currentPassword]: string;\n    [FieldsEnum.newPassword]: string;\n    [FieldsEnum.language]: LangEnum | null;\n};\n\nexport type FormErrorsT = Partial<Record<keyof FormValuesT, string>>;\n\nexport type AsyncFormErrorsT = Partial<{\n    [FieldsEnum.currentPassword]:\n        | AuthErrorTypeEnum.wrongPassword\n        | AuthErrorTypeEnum.failUpdatePassword\n        | AuthErrorTypeEnum.failReauthenticateWithCredential;\n}>;\n","import * as React from 'react';\nimport { fetchRoutesPlainGeometry, resetRouteGeometry } from 'common/store/routing-geometry/slice';\nimport { useDispatch } from 'react-redux';\n\nexport const useRouteGeometry = (polylineIds: Array<PolylineIdT | null>) => {\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(\n            fetchRoutesPlainGeometry({\n                polylineIds,\n            }),\n        );\n\n        return () => {\n            dispatch(\n                resetRouteGeometry({\n                    polylineIds,\n                }),\n            );\n        };\n    }, [dispatch, polylineIds]);\n};\n","import keyBy from 'lodash/keyBy';\nimport requestStatus from 'common/utils/request-status';\nimport { PagedEntityT, PageResponseT, PageStateT, PaginationStateT } from './models';\nimport { checkIsSameQuery } from './utils';\nimport { isNonNil } from 'common/utils';\nimport omit from 'lodash/omit';\nimport isEqual from 'lodash/isEqual';\nimport isEmpty from 'lodash/isEmpty';\n\nconst getPages = (prevPages: PageStateT[], pageNumber: number): PageStateT[] => {\n    const pages = [];\n\n    const count = Math.max(pageNumber + 1, prevPages.length);\n    // eslint-disable-next-line no-plusplus\n    for (let index = 0; index < count; index++) {\n        if (prevPages[index]) {\n            pages[index] = prevPages[index];\n        } else {\n            pages[index] = {\n                requestStatus: requestStatus.initial,\n                ids: [],\n            };\n        }\n    }\n\n    return pages;\n};\n\nconst followingPageSuccessReducer = <E extends PagedEntityT, Q>(\n    prevPaginationState: PaginationStateT<E, Q>,\n    pageNumber: number,\n    query: Q,\n    pageResponse: PageResponseT<E>,\n): PaginationStateT<E, Q> => {\n    const { content, totalPages, totalElements } = pageResponse;\n\n    const entities = content || [];\n\n    const ids = entities.map((entity) => entity.id).filter(isNonNil);\n\n    const pages = getPages(prevPaginationState.pages, Math.max((totalPages || 0) - 1, 0));\n\n    const byId = keyBy(entities, 'id');\n\n    const newById: typeof prevPaginationState.byId = {};\n    ids.forEach((id) => {\n        if (!isEqual(byId[id], prevPaginationState.byId[id])) {\n            newById[id] = byId[id];\n        }\n    });\n    const hasDetailChanges = !isEmpty(newById);\n\n    const prevIds = prevPaginationState.pages[pageNumber]?.ids;\n    const hasIdsChanges = !isEqual(prevIds, ids);\n\n    pages.splice(pageNumber, 1, {\n        ...prevPaginationState.pages[pageNumber],\n        requestStatus: requestStatus.ok,\n        ids: hasIdsChanges || hasDetailChanges ? ids : prevIds,\n    });\n\n    return {\n        query,\n        total: {\n            pageCount: totalPages || 0,\n            elementCount: totalElements || 0,\n        },\n        pages,\n        byId: hasDetailChanges\n            ? {\n                  ...prevPaginationState.byId,\n                  ...newById,\n              }\n            : prevPaginationState.byId,\n    };\n};\n\nconst pageSuccessReducer = <T extends PagedEntityT, Q>(\n    prevPaginationState: PaginationStateT<T, Q>,\n    pageNumber: number,\n    query: Q,\n    pageResponse: PageResponseT<T> | null,\n): PaginationStateT<T, Q> => {\n    if (!pageResponse) {\n        return prevPaginationState;\n    }\n\n    if (!checkIsSameQuery(query, prevPaginationState.query)) {\n        return prevPaginationState;\n    }\n\n    return followingPageSuccessReducer<T, Q>(prevPaginationState, pageNumber, query, pageResponse);\n};\n\nconst pageErrorReducer = <T extends PagedEntityT, Q>(\n    prevPaginationState: PaginationStateT<T, Q>,\n    pageNumber: number,\n    query: Q,\n    error: Error,\n): PaginationStateT<T, Q> => {\n    if (!checkIsSameQuery(query, prevPaginationState.query)) {\n        return prevPaginationState;\n    }\n\n    const pages = getPages(prevPaginationState.pages, pageNumber);\n\n    pages.splice(pageNumber, 1, {\n        ...pages[pageNumber],\n        requestStatus: requestStatus.setError(error),\n    });\n\n    return {\n        ...prevPaginationState,\n        pages,\n    };\n};\n\nconst pageBeginReducer = <E extends PagedEntityT, Q>(\n    prevPaginationState: PaginationStateT<E, Q>,\n    pageNumber: number,\n    query: Q,\n): PaginationStateT<E, Q> => {\n    const pages = getPages(prevPaginationState.pages, pageNumber);\n\n    pages.splice(pageNumber, 1, {\n        ...pages[pageNumber],\n        requestStatus: requestStatus.loading,\n    });\n\n    return {\n        ...prevPaginationState,\n        query,\n        pages,\n    };\n};\n\nconst resetPagesCacheReducer = <E extends PagedEntityT, Q>(\n    initialPaginationState: PaginationStateT<E, Q>,\n    prevPaginationState: PaginationStateT<E, Q>,\n    mutationListOptions: MutationListOptionsT,\n): PaginationStateT<E, Q> => {\n    const initialPages = [];\n\n    const { savingPageNumber } = mutationListOptions;\n\n    if (typeof savingPageNumber === 'number') {\n        initialPages[savingPageNumber] = prevPaginationState.pages[savingPageNumber];\n    }\n\n    return {\n        ...omit(prevPaginationState, ['total', 'pages', 'byId', 'query']),\n        total: initialPaginationState.total,\n        pages: initialPages,\n        byId: prevPaginationState.byId,\n        query: prevPaginationState.query,\n    };\n};\n\nexport { pageBeginReducer, pageSuccessReducer, pageErrorReducer, resetPagesCacheReducer };\n","import moment from 'moment';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport { ApiContactFormalEnum, ContactPositionsEnum, CountryCodeT } from 'common/utils/api/models';\nimport { CompanyContactDetailsT } from 'common/store/members/models';\nimport { PHONE_NUMBER_PREFIX, SocialMediaEnum } from 'common/constants';\n\nconst DEFAULT_VALUES: FormValuesT = {\n    [FieldsEnum.id]: null,\n    [FieldsEnum.formal]: ApiContactFormalEnum.mr,\n    [FieldsEnum.firstName]: '',\n    [FieldsEnum.lastName]: '',\n\n    [FieldsEnum.position]: ContactPositionsEnum.operator,\n    [FieldsEnum.isDefault]: false,\n\n    [FieldsEnum.desktopPhone]: PHONE_NUMBER_PREFIX,\n    [FieldsEnum.mobilePhone]: PHONE_NUMBER_PREFIX,\n    [FieldsEnum.faxNumber]: '',\n    [FieldsEnum.email]: '',\n\n    [FieldsEnum.webpageLink]: '',\n\n    [FieldsEnum.birthday]: null,\n    [FieldsEnum.countryCode]: null,\n    [FieldsEnum.language]: null,\n};\n\nconst getInitialValues = (memberDetails?: CompanyContactDetailsT | null): FormValuesT => {\n    const values = { ...DEFAULT_VALUES };\n\n    if (memberDetails?.id) {\n        values[FieldsEnum.id] = memberDetails.id;\n    }\n\n    if (memberDetails?.formal) {\n        values[FieldsEnum.formal] = memberDetails.formal as ApiContactFormalEnum;\n    }\n\n    if (memberDetails?.name) {\n        values[FieldsEnum.firstName] = memberDetails.name;\n    }\n\n    if (memberDetails?.surname) {\n        values[FieldsEnum.lastName] = memberDetails.surname;\n    }\n\n    if (memberDetails?.position) {\n        values[FieldsEnum.position] = memberDetails.position as ContactPositionsEnum;\n    }\n\n    if (memberDetails?.main) {\n        values[FieldsEnum.isDefault] = memberDetails.main;\n    }\n\n    if (memberDetails?.deskPhone) {\n        values[FieldsEnum.desktopPhone] = memberDetails.deskPhone;\n    }\n\n    if (memberDetails?.mobilePhone) {\n        values[FieldsEnum.mobilePhone] = memberDetails.mobilePhone;\n    }\n\n    if (memberDetails?.fax) {\n        values[FieldsEnum.faxNumber] = memberDetails.fax;\n    }\n\n    if (memberDetails?.email) {\n        values[FieldsEnum.email] = memberDetails.email;\n    }\n\n    memberDetails?.medias.forEach((media) => {\n        const { login, type } = media;\n\n        values[type as SocialMediaEnum] = login;\n    });\n\n    if (memberDetails?.birthday) {\n        values[FieldsEnum.birthday] = moment(memberDetails.birthday, 'YYYY-MM-DD').toDate();\n    }\n\n    if (memberDetails?.residence) {\n        values[FieldsEnum.countryCode] = (memberDetails.residence as CountryCodeT) || null;\n    }\n\n    if (memberDetails?.language) {\n        values[FieldsEnum.language] = memberDetails.language;\n    }\n\n    return values;\n};\n\nexport default getInitialValues;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"PriceRuleImpactPill__wrap___MrBfk\",\"type\":\"PriceRuleImpactPill__type___lKpGZ\",\"rule\":\"PriceRuleImpactPill__rule___ECGf5\",\"fadeIn\":\"PriceRuleImpactPill__fadeIn___QFjar\",\"blinking\":\"PriceRuleImpactPill__blinking___AWg5r\"};","export enum RangeSelectorZoneThemeEnum {\n    green = 'green',\n    darkGreen = 'dark-green',\n    orange = 'orange',\n    light = 'light',\n    charcoal = 'charcoal',\n}\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames/bind';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport AuthLayout from '../AuthLayout/AuthLayout';\n\nimport styles from './ConfirmEmailPage.scss';\n\nimport { QueryKeysEnum } from '../../constants';\nimport { selectEmailVerificationRequestStatus } from 'common/store/auth/selectors';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport history from 'common/utils/history';\nimport { emailVerification } from 'common/store/auth/actions';\nimport useQuery from 'common/utils/hooks/useQuery';\nimport { logWarning } from 'common/utils/logger';\nimport RedirectSignedUser from 'common/components/RedirectSignedUser/RedirectSignedUser';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport { authApi } from 'common/utils/api/auth/factory';\n\nconst cx = classNames.bind(styles);\n\ntype QueryT = {\n    [QueryKeysEnum.oobCode]: string;\n    continueUrl: string;\n    [QueryKeysEnum.returnUrl]: string;\n};\n\ntype PropsT = {};\n\nconst ConfirmEmailPage: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n    const requestStatus = useSelector(selectEmailVerificationRequestStatus);\n    const query = useQuery<QueryT>();\n\n    React.useEffect(() => {\n        const oobCode = query[QueryKeysEnum.oobCode];\n        if (!oobCode) {\n            logWarning('empty oobCode');\n            return;\n        }\n\n        dispatch(emailVerification(oobCode));\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [query, t]);\n\n    if (requestStatus.error) {\n        return (\n            <AuthLayout title={t('common:email-verification.error.title')} testSelector=\"confirm-email-page\">\n                <div className={cx('content')}>{t('common:email-verification.error.text')}</div>\n                <br />\n                <br />\n                <div className={cx('error')}>{requestStatus.error?.message}</div>\n            </AuthLayout>\n        );\n    }\n\n    if (requestStatus.ok) {\n        return (\n            <AuthLayout title={t('common:email-verification.success.title')} testSelector=\"confirm-email-page\">\n                <div className={cx('content')}>\n                    <div>{t('common:email-verification.success.text')}</div>\n                    <br />\n                    <Button\n                        theme={ButtonThemeEnum.primary}\n                        onClick={() => {\n                            const continueLocation = query.continueUrl\n                                ? {\n                                      pathname: query.continueUrl,\n                                  }\n                                : authApi.createSignInUrl();\n\n                            history.push(continueLocation);\n                        }}\n                    >\n                        {t('common:email-verification.success.action')}\n                    </Button>\n                </div>\n            </AuthLayout>\n        );\n    }\n\n    return (\n        <>\n            <RedirectSignedUser />\n            <AuthLayout testSelector=\"confirm-email-page\">\n                <PageTitle title={t('common:page-titles.confirm-email')} />\n                <div className={cx('content')}>{t('common:email-verification.loading')}</div>\n            </AuthLayout>\n        </>\n    );\n});\n\nexport default ConfirmEmailPage;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    ASSIGN,\n    AssignActionT,\n    FIND_TRAILER_REQUEST,\n    FIND_TRUCK_REQUEST,\n    FindTrailerActionT,\n    FindTruckActionT,\n    UNASSIGN,\n    UnAssignActionT,\n} from './types';\nimport {\n    assignBegin,\n    assignError,\n    assignSuccess,\n    findTrailerBegin,\n    findTrailerError,\n    findTrailerSuccess,\n    findTruckBegin,\n    findTruckError,\n    findTruckSuccess,\n} from './actions';\nimport { selectAssignmentRequestStatus, selectTrailerSuggestQuery, selectTruckSuggestQuery } from './selectors';\nimport isEqual from 'lodash/isEqual';\nimport carrierTranziitApi from 'carrier/utils/api/carrier-tranziit/api';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAlertTypeEnum, CommonAnyAlert } from 'common/components/toasts/AlertToastsManager/models';\nimport { transportOrdersRefreshChannel } from 'common/store/transport-orders/channels';\nimport { transportOrderRefreshChannel } from 'common/store/transport-order-details/channels';\nimport { stateMachineRefreshChannel } from 'common/store/state-machine/channels';\n\nfunction* findTruckSaga(action: FindTruckActionT): WrapGeneratorT<void> {\n    const { query } = action;\n\n    const prevQuery: ReturnType<typeof selectTruckSuggestQuery> = yield select(selectTruckSuggestQuery);\n    const isSameQuery = isEqual(query, prevQuery);\n    if (isSameQuery) {\n        return;\n    }\n\n    yield put(findTruckBegin(query));\n\n    const [error, apiTrucksSuggestItems]: ReturnApiT<typeof carrierTranziitApi.findTrucksForTourByPlateNumber> =\n        yield carrierTranziitApi.findTrucksForTourByPlateNumber(query.transportOrderId, {\n            plateNumber: query.plateNumber,\n        });\n\n    if (error) {\n        yield put(findTruckError(query, error));\n        return;\n    }\n\n    const limitedTrucksSuggestItems = (apiTrucksSuggestItems || []).slice(0, 10);\n\n    yield put(findTruckSuccess(query, limitedTrucksSuggestItems));\n}\n\nfunction* findTrailerSaga(action: FindTrailerActionT): WrapGeneratorT<void> {\n    const { query } = action;\n\n    const prevQuery: ReturnType<typeof selectTrailerSuggestQuery> = yield select(selectTrailerSuggestQuery);\n    const isSameQuery = isEqual(query, prevQuery);\n    if (isSameQuery) {\n        return;\n    }\n\n    yield put(findTrailerBegin(query));\n\n    const [error, apiTrailersSuggestItems]: ReturnApiT<typeof carrierTranziitApi.findTrailersForTourByPlateNumber> =\n        yield carrierTranziitApi.findTrailersForTourByPlateNumber(query.transportOrderId, {\n            plateNumber: query.plateNumber,\n        });\n\n    if (error) {\n        yield put(findTrailerError(query, error));\n        return;\n    }\n\n    const limitedTrailersSuggestItems = (apiTrailersSuggestItems || []).slice(0, 10);\n\n    yield put(findTrailerSuccess(query, limitedTrailersSuggestItems));\n}\n\nfunction* assignSaga(action: AssignActionT): WrapGeneratorT<void> {\n    const { transportOrderId, truckId, trailerId, prohibitedCountries } = action;\n\n    const requestStatus: ReturnType<typeof selectAssignmentRequestStatus> = yield select(selectAssignmentRequestStatus);\n    if (requestStatus.loading) {\n        return;\n    }\n\n    yield put(assignBegin());\n\n    const [error]: ReturnApiT<typeof carrierTranziitApi.assignVehiclesToTransportOrder> =\n        yield carrierTranziitApi.assignVehiclesToTransportOrder(transportOrderId, {\n            truckId,\n            trailerId,\n            prohibitedCountries,\n        });\n    if (error) {\n        yield put(assignError(error));\n    } else {\n        yield put(assignSuccess());\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.spotAssetsAssigned,\n                    data: {},\n                }),\n            ),\n        );\n    }\n\n    transportOrderRefreshChannel.emit({});\n    transportOrdersRefreshChannel.emit({});\n    stateMachineRefreshChannel.emit({});\n}\n\nfunction* unassignSaga(action: UnAssignActionT): WrapGeneratorT<void> {\n    const { transportOrderId } = action;\n\n    const requestStatus: ReturnType<typeof selectAssignmentRequestStatus> = yield select(selectAssignmentRequestStatus);\n    if (requestStatus.loading) {\n        return;\n    }\n\n    yield put(assignBegin());\n\n    const [error]: ReturnApiT<typeof carrierTranziitApi.unAssignVehicles> = yield carrierTranziitApi.unAssignVehicles(\n        transportOrderId,\n    );\n    if (error) {\n        yield put(assignError(error));\n    } else {\n        yield put(assignSuccess());\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.spotAssetsUnassigned,\n                    data: {},\n                }),\n            ),\n        );\n    }\n\n    transportOrderRefreshChannel.emit({});\n    transportOrdersRefreshChannel.emit({});\n    stateMachineRefreshChannel.emit({});\n}\n\nfunction* spotAssetsAssigmentSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FIND_TRUCK_REQUEST, findTruckSaga);\n    yield takeEvery(FIND_TRAILER_REQUEST, findTrailerSaga);\n    yield takeEvery(ASSIGN, assignSaga);\n    yield takeEvery(UNASSIGN, unassignSaga);\n}\n\nexport default spotAssetsAssigmentSaga;\n","// extracted by mini-css-extract-plugin\nexport default {\"name\":\"NameCell__name___zU6re\",\"group\":\"NameCell__group___jYcTG\",\"fadeIn\":\"NameCell__fadeIn___Q8fwi\",\"blinking\":\"NameCell__blinking___gnJET\"};","// extracted by mini-css-extract-plugin\nexport default {\"widget\":\"PartnerDetailsForm__widget___hEGN0\",\"widget__inner\":\"PartnerDetailsForm__widget__inner___NZFUn\",\"widget-group\":\"PartnerDetailsForm__widget-group___CJVne\",\"widget-group__widget\":\"PartnerDetailsForm__widget-group__widget___c2ie5\",\"stats-widget-group\":\"PartnerDetailsForm__stats-widget-group___LWEp5\",\"stats-widget-group__widget\":\"PartnerDetailsForm__stats-widget-group__widget___i6RLh\",\"wrap\":\"PartnerDetailsForm__wrap___W39zm\",\"field__label\":\"PartnerDetailsForm__field__label___J1kmK\",\"field--name\":\"PartnerDetailsForm__field--name___BrL1z\",\"field--teams\":\"PartnerDetailsForm__field--teams___tV3rR\",\"field--main-contact\":\"PartnerDetailsForm__field--main-contact___vav6x\",\"field--country\":\"PartnerDetailsForm__field--country___CGkOp\",\"field--zip\":\"PartnerDetailsForm__field--zip___QifJc\",\"field--city\":\"PartnerDetailsForm__field--city___VfYiC\",\"field--basic-segment-placeholder\":\"PartnerDetailsForm__field--basic-segment-placeholder___KLsaQ\",\"fadeIn\":\"PartnerDetailsForm__fadeIn___grtAc\",\"blinking\":\"PartnerDetailsForm__blinking___MURu3\"};","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './LogCardFooter.scss';\nimport { formatDate } from 'common/utils/time';\nimport { ApiLogInitiatorTypeT } from 'common/utils/api/models';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport FilledCircleIcon from 'common/icons/FilledCircleIcon';\nimport Link, { LinkSizeEnum, LinkThemeEnum } from 'common/components/Link/Link';\nimport { useOpenLeftSidebar } from 'common/layouts/SideBars/hooks';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\n\nconst cx = classNames.bind(styles);\n\nconst DATE_FORMAT = 'DD MMM YYYY, HH:mm';\n\nexport type LogCardFooterPropsT = {\n    className?: string;\n    initiatorType?: ApiLogInitiatorTypeT;\n    userFullName?: React.ReactNode;\n    userId?: UserIdT | null;\n    timestamp: string;\n};\n\nconst LogCardFooter: React.FC<LogCardFooterPropsT> = React.memo((props) => {\n    const { className, initiatorType, userFullName, timestamp, userId } = props;\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const formattedDate = formatDate(DATE_FORMAT, timestamp);\n\n    return (\n        <div className={cs(cx('footer'), className)}>\n            {initiatorType === 'USER' && (\n                <>\n                    {userId ? (\n                        <Link\n                            onClick={(event) => {\n                                event.stopPropagation();\n\n                                openLeftSidebar({\n                                    type: CommonSidebarsTypeEnum.contact,\n                                    userId,\n                                });\n                            }}\n                            theme={LinkThemeEnum.boldBrandDark}\n                            size={LinkSizeEnum.small}\n                        >\n                            {userFullName}\n                        </Link>\n                    ) : (\n                        <span>{userFullName}</span>\n                    )}\n                    <FilledCircleIcon size={10} fillColor={StyleGuideColorsEnum.light} />\n                </>\n            )}\n            <span className={cx('date')}>{formattedDate}</span>\n        </div>\n    );\n});\n\nexport default LogCardFooter;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { FETCH_USER_REQUEST_SUCCESS } from 'common/store/user/types';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport { FETCH_SETTINGS, FetchSettingsActionT } from './types';\nimport { fetchSettingsBegin, fetchSettingsError, fetchSettingsSuccess } from './actions';\nimport { selectSettingsStatus } from './selectors';\nimport { SettingsT } from './models';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { CompanyTypeEnum } from 'common/constants';\nimport { SettingGroupT } from 'common/utils/api/models';\n\nfunction getFetchSettingsSaga(companyType: CompanyTypeEnum) {\n    return function* (action: FetchSettingsActionT): WrapGeneratorT<void> {\n        const { options } = action;\n\n        const requestStatus: ReturnType<typeof selectSettingsStatus> = yield select(selectSettingsStatus);\n        if (!checkNeedRequest(requestStatus, options)) {\n            return;\n        }\n\n        yield put(fetchSettingsBegin());\n\n        const groups: SettingGroupT[] =\n            companyType === CompanyTypeEnum.broker\n                ? ['NEW_ORDER', 'ASSIGNMENT', 'SPOT', 'INTEGRATIONS']\n                : ['NEW_ORDER', 'ASSIGNMENT', 'SPOT'];\n\n        const [error, apiSettings]: ReturnApiT<typeof commonTranziitApi.fetchSettings> =\n            yield commonTranziitApi.fetchSettings(groups);\n\n        if (error) {\n            yield put(fetchSettingsError(error));\n            return;\n        }\n\n        const settings = (apiSettings || []).reduce<SettingsT>((acc, apiSetting) => {\n            if (apiSetting.name) {\n                acc[apiSetting.name] = apiSetting;\n            }\n\n            return acc;\n        }, {});\n\n        yield put(fetchSettingsSuccess(settings));\n    };\n}\n\nfunction* settingsSaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery([FETCH_USER_REQUEST_SUCCESS, FETCH_SETTINGS], getFetchSettingsSaga(companyType));\n}\n\nexport default settingsSaga;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"SpotBidStatusPill__fadeIn___nIIV1\",\"blinking\":\"SpotBidStatusPill__blinking___ZuiOn\"};","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"ExpiredPartnerCarrierContractCard__inner___NgRyc\",\"fadeIn\":\"ExpiredPartnerCarrierContractCard__fadeIn___zP8UC\",\"blinking\":\"ExpiredPartnerCarrierContractCard__blinking___x5slf\"};","import { CreateReserveQueryT, ReserveT } from 'common/store/order-creation/models';\n\nexport const getReserveQueryCorrection = (\n    reserveQuery: CreateReserveQueryT | null,\n    reserve: ReserveT | null,\n): CreateReserveQueryT | null => {\n    if (!reserve || !reserveQuery) {\n        return null;\n    }\n\n    const hasCorrection = reserve?.points?.some((point) => {\n        return !!point?.replacedCoordinate;\n    });\n    if (!hasCorrection) {\n        return null;\n    }\n\n    const changeQuery: CreateReserveQueryT = {\n        ...reserveQuery,\n    };\n\n    changeQuery.addresses = reserve.points.map((point) => {\n        return {\n            addressAlias: point.addressAlias || null,\n            type: point.type,\n            address: {\n                ...point.address,\n                latitude: point?.replacedCoordinate?.latitude || point?.address?.latitude,\n                longitude: point?.replacedCoordinate?.longitude || point?.address?.longitude,\n            },\n        };\n    });\n\n    return changeQuery;\n};\n","import React, { useCallback } from 'react';\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport { useTranslation } from 'react-i18next';\nimport {\n    AsyncRequestFactoryResultT,\n    AsyncRequestFactoryT,\n    useAsyncOptionsRequest,\n} from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-options-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { ApiPartnerT } from 'common/utils/api/models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport DropdownSearchMultipleInput from 'design-system/components/dropdowns/DropdownSearchMultipleInput/DropdownSearchMultipleInput';\nimport classNames from 'classnames/bind';\nimport styles from './CarriersSuggest.scss';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport CarrierIcon, { CarrierIconProps } from 'common/icons/CarrierIcon';\n\nconst cx = classNames.bind(styles);\n\ntype ValueT = ApiPartnerT['id'] | null;\n\nexport type OptionT = {\n    id: ApiPartnerT['id'];\n    name: ApiPartnerT['name'];\n    number: ApiPartnerT['number'];\n    countryCode: NonNullable<ApiPartnerT['legalAddress']>['country'] | null;\n};\n\nexport type PropsT = {\n    className?: string;\n    initialOptions: Array<OptionT>;\n    initialRequestStatus: RequestStatusT;\n    onSelect: (values: Array<ValueT>, options: Array<OptionT>) => void;\n    values: Array<ValueT>;\n    overlayPosition: DropdownOverlayPositionEnum;\n    hasClearControl?: InputPropsT['hasClearControl'];\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    placeholder: InputPropsT['placeholder'];\n    onBlur: InputPropsT['onBlur'];\n    onFocus: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasChanges?: boolean;\n};\n\nconst CarriersSuggest: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        initialOptions,\n        values,\n        onSelect,\n        hasWarning,\n        hasError,\n        hasClearControl,\n        overlayPosition,\n        isDisabled,\n        placeholder,\n        onBlur,\n        onFocus,\n        hasChanges,\n        initialRequestStatus,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const requestFactory: AsyncRequestFactoryT<OptionT> = useCallback((query) => {\n        return brokerTranziitApi.findCarriersByName(query).then((response): AsyncRequestFactoryResultT<OptionT> => {\n            const [error, result] = response;\n            if (error) {\n                return [error, null];\n            }\n\n            const items: Array<OptionT> =\n                result?.content?.map((item) => {\n                    return {\n                        id: item.id,\n                        name: item.name,\n                        number: item.number,\n                        countryCode: item.legalAddress?.country,\n                    };\n                }) || [];\n\n            return [null, items];\n        });\n    }, []);\n\n    const asyncOptionsRequest = useAsyncOptionsRequest<OptionT>({\n        initialOptions,\n        requestFactory,\n        settings: {},\n    });\n\n    const handleReset = () => {\n        onSelect([], []);\n    };\n\n    const handleFocus: InputPropsT['onFocus'] = () => {\n        if (onFocus) {\n            onFocus();\n        }\n    };\n\n    const renderOption = (option: OptionT | undefined, placeholder?: string): React.ReactNode => {\n        if (!option) {\n            return placeholder;\n        }\n\n        return (\n            <DropdownControlOptionLabel\n                className={cx('option')}\n                withoutPaddings\n                icon={option.countryCode ? <FlagIcon countryCode={option.countryCode} /> : null}\n                label={option.name || ''}\n                description={option.number || ''}\n            />\n        );\n    };\n\n    const renderTrigger = (options: Array<OptionT> | undefined, placeholder?: string): React.ReactNode => {\n        if (!options?.length) {\n            return placeholder;\n        }\n\n        if (options?.length === 1) {\n            const firstOption = options?.[0] || null;\n\n            return (\n                <DropdownControlOptionLabel\n                    withoutPaddings\n                    icon={firstOption?.countryCode ? <FlagIcon countryCode={firstOption.countryCode} /> : null}\n                    label={firstOption?.name || ''}\n                    description={firstOption?.number || ''}\n                />\n            );\n        }\n\n        return (\n            <DropdownControlOptionLabel\n                withoutPaddings\n                label={t('common:common-components.carriers-suggest.selected')}\n                description={\n                    <PillLabel isSymmetrical theme={PillLabelThemeEnum.charcoal}>\n                        {options?.length || 0}\n                    </PillLabel>\n                }\n            />\n        );\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option.id;\n\n    return (\n        <DropdownSearchMultipleInput<OptionT, ValueT>\n            className={className}\n            selectedValues={values}\n            placeholder={placeholder}\n            options={asyncOptionsRequest.options}\n            isDisabled={isDisabled}\n            onSelect={onSelect}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            onChangeQuery={asyncOptionsRequest.onChangeQuery}\n            renderOption={renderOption}\n            renderTriggerContent={renderTrigger}\n            getOptionValue={getOptionValue}\n            hasChanges={hasChanges}\n            renderLeftIcon={(iconMeta) => <CarrierIcon {...CarrierIconProps.getControlProps(iconMeta)} />}\n            onBlur={onBlur}\n            onFocus={handleFocus}\n            overlayPosition={overlayPosition}\n            isLoading={asyncOptionsRequest.requestStatus.loading || initialRequestStatus.loading}\n            onReset={hasClearControl ? handleReset : undefined}\n        />\n    );\n};\n\nexport default CarriersSuggest;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n    size: number;\n};\n\nconst HourglassHalfIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, strokeColor, size, ...rest } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\" {...rest}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <g>\n                    <g>\n                        <g>\n                            <g>\n                                <g>\n                                    <g>\n                                        <path\n                                            d=\"M0 0H18V18H0z\"\n                                            transform=\"translate(-450.000000, -405.000000) translate(80.000000, 0.000000) translate(0.000000, 70.000000) translate(30.000000, 300.000000) translate(340.000000, 35.000000) translate(1.000000, 1.000000)\"\n                                        />\n                                        <g>\n                                            <path\n                                                fill={fillColor}\n                                                d=\"M6.3 10.931v1H.9v-1h5.4zm0-9.031v1.331l-2.7 2.7-2.7-2.7V1.9h5.4z\"\n                                                transform=\"translate(-450.000000, -405.000000) translate(80.000000, 0.000000) translate(0.000000, 70.000000) translate(30.000000, 300.000000) translate(340.000000, 35.000000) translate(1.000000, 1.000000) translate(5.400000, 2.700000)\"\n                                            />\n                                            <path\n                                                fill={strokeColor}\n                                                d=\"M7.2 0H0v3.6l2.7 2.7L0 9v3.6h7.2V9L4.5 6.3l2.7-2.7V0zm-.9 9.369V11.7H.9V9.369l2.7-2.7 2.7 2.7zm0-6.138l-2.7 2.7-2.7-2.7V.9h5.4v2.331z\"\n                                                transform=\"translate(-450.000000, -405.000000) translate(80.000000, 0.000000) translate(0.000000, 70.000000) translate(30.000000, 300.000000) translate(340.000000, 35.000000) translate(1.000000, 1.000000) translate(5.400000, 2.700000)\"\n                                            />\n                                        </g>\n                                    </g>\n                                </g>\n                            </g>\n                        </g>\n                    </g>\n                </g>\n            </g>\n        </svg>\n    );\n};\n\nHourglassHalfIcon.displayName = 'HourglassHalfIcon';\n\nconst storyProps: PropsT = {\n    size: 20,\n    fillColor: StyleGuideColorsEnum.orange,\n    strokeColor: StyleGuideColorsEnum.charcoal,\n};\n\nexport { storyProps };\n\nexport default HourglassHalfIcon;\n\nexport const HourglassHalfIconProps = {\n    getCreateOrder: (): PropsT => {\n        return {\n            size: 20,\n            fillColor: StyleGuideColorsEnum.orange,\n            strokeColor: StyleGuideColorsEnum.charcoal,\n        };\n    },\n};\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { checkRequestBegin, checkRequestError, checkRequestSuccess, reset } from './actions';\n\nimport { CHECK_GPS_STATUS_REQUEST, CheckGPSStatusRequestActionT } from './types';\nimport { selectGPSCheckQuery, selectGPSCheckStatus } from 'common/store/gps-tracking-status/selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { checkIsSameQuery } from 'common/utils/pagination/utils';\nimport { DEFAULT_CARRIER_COMPANY_ID, AssetTypeEnum } from 'common/constants';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport carrierTranziitApi from 'carrier/utils/api/carrier-tranziit/api';\nimport { GPSStatusT } from 'common/store/gps-tracking-status/models';\n\nfunction* checkGPSStatusSaga(action: CheckGPSStatusRequestActionT): WrapGeneratorT<void> {\n    const { query } = action;\n\n    if (!query) {\n        yield put(reset());\n        return;\n    }\n\n    const prevQuery: ReturnType<typeof selectGPSCheckQuery> = yield select(selectGPSCheckQuery);\n    const isSameRequest = checkIsSameQuery(prevQuery, query);\n    const requestStatus: ReturnType<typeof selectGPSCheckStatus> = yield select(selectGPSCheckStatus);\n    const isNeedRequest = checkNeedRequest(requestStatus);\n\n    if (isSameRequest && !isNeedRequest) {\n        return;\n    }\n\n    if (!query?.plateNumber) {\n        return;\n    }\n\n    yield put(checkRequestBegin(query));\n\n    let error: Error | null = null;\n    let data: GPSStatusT | null = null;\n\n    if (query?.companyId === DEFAULT_CARRIER_COMPANY_ID && query?.assetType === AssetTypeEnum.trailer) {\n        const result: ReturnApiT<typeof carrierTranziitApi.checkTrailerGPSStatus> =\n            yield carrierTranziitApi.checkTrailerGPSStatus(query.plateNumber);\n\n        if (result?.[1]) {\n            data = result?.[1];\n        } else {\n            error = result?.[0] || new Error(`gps status response: ${result?.[1]}`);\n        }\n    }\n\n    if (query?.companyId === DEFAULT_CARRIER_COMPANY_ID && query?.assetType === AssetTypeEnum.truck) {\n        const result: ReturnApiT<typeof carrierTranziitApi.checkTruckGPSStatus> =\n            yield carrierTranziitApi.checkTruckGPSStatus(query.plateNumber);\n\n        if (result?.[1]) {\n            data = result?.[1];\n        } else {\n            error = result?.[0] || new Error(`gps status response: ${result?.[1]}`);\n        }\n    }\n\n    if (query?.companyId !== DEFAULT_CARRIER_COMPANY_ID && query?.assetType === AssetTypeEnum.trailer) {\n        const result: ReturnApiT<typeof brokerTranziitApi.checkPartnerTrailerGPSStatus> =\n            yield brokerTranziitApi.checkPartnerTrailerGPSStatus(query.plateNumber);\n\n        if (result?.[1]) {\n            data = result?.[1];\n        } else {\n            error = result?.[0] || new Error(`gps status response: ${result?.[1]}`);\n        }\n    }\n\n    if (query?.companyId !== DEFAULT_CARRIER_COMPANY_ID && query?.assetType === AssetTypeEnum.truck) {\n        const result: ReturnApiT<typeof brokerTranziitApi.checkPartnerTruckGPSStatus> =\n            yield brokerTranziitApi.checkPartnerTruckGPSStatus(query.plateNumber);\n\n        if (result?.[1]) {\n            data = result?.[1];\n        } else {\n            error = result?.[0] || new Error(`gps status response: ${result?.[1]}`);\n        }\n    }\n\n    if (error) {\n        yield put(checkRequestError(query, error));\n        return;\n    }\n\n    if (data) {\n        yield put(checkRequestSuccess(query, data));\n    }\n}\n\nfunction* gpsTrackingStatusSaga(): WrapGeneratorT<void> {\n    yield takeEvery(CHECK_GPS_STATUS_REQUEST, checkGPSStatusSaga);\n}\n\nexport default gpsTrackingStatusSaga;\n","// extracted by mini-css-extract-plugin\nexport default {\"name\":\"NameCell__name___CNM5k\",\"id\":\"NameCell__id___N2mtg\",\"cell\":\"NameCell__cell___UySri\",\"notification\":\"NameCell__notification___xdodl\",\"fadeIn\":\"NameCell__fadeIn___m5vng\",\"blinking\":\"NameCell__blinking___R_z00\"};","import * as React from 'react';\nimport { useEffect } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './TrucksPageLayout.scss';\nimport FiltersTrigger from 'common/components/Table/FiltersTrigger/FiltersTrigger';\nimport SortDropdown, {\n    SortDropdownOptionT,\n    SortDropdownOverlayPositionEnum,\n} from 'common/components/Table/SortDropdown/SortDropdown';\nimport Pagination from 'common/components/Table/Pagination/Pagination';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\nimport { AssetTypeEnum, DEFAULT_CARRIER_COMPANY_ID, DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { ApiChangeContractVehiclesRequestT, ApiChangeRateVehiclesRequestT } from 'common/utils/api/models';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectAddTruckRequestStatus,\n    selectTrucksByIds,\n    selectTrucksExportXLSRequest,\n    selectTrucksImportXLSRequest,\n    selectTrucksPages,\n    selectTrucksStats,\n    selectTrucksTotal,\n    selectUpdateTruckRequestStatus,\n} from 'common/store/trucks/selectors';\nimport {\n    activationTrucksRequest,\n    archiveTrucksRequest,\n    assignToContractRequest,\n    changeRateTrucksRequest,\n    exportXLSTrucks,\n    fetchTrucksPage,\n    fetchTrucksStats,\n    importXLSTrucks,\n} from 'common/store/trucks/actions';\nimport { ActivateTrucksRequestT, ApiTruckT } from 'common/store/trucks/models';\nimport TrucksTable from './TrucksTable/TrucksTable';\nimport TableMessage, { TableMessageIconsEnum } from 'common/components/Table/TableMessage/TableMessage';\nimport TableActions, { TableActionOptionT } from 'common/components/Table/TableActions/TableActions';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport DeleteIcon from 'common/icons/DeleteIcon';\nimport { isNonNil } from 'common/utils';\nimport {\n    createJsonParams,\n    createPageNumberParam,\n    createSortParams,\n    PageSortT,\n    SortDirectionEnum,\n} from 'common/utils/query';\nimport StickyFooter from 'common/layouts/LeftMenuLayout/StickyFooter/StickyFooter';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport { fetchCarrierContracts } from 'common/store/carrier-contracts/actions';\nimport TableError from 'common/components/Table/TableError/TableError';\nimport { prepareFetchPageQuery } from './prepare-fetch-page-query';\nimport ListPageLayout from 'common/layouts/ListPage/ListPageLayout/ListPageLayout';\nimport ListPageHeaderLayout from 'common/layouts/ListPage/ListPageHeaderLayout/ListPageHeaderLayout';\nimport { TabEnum } from './constants';\nimport map from 'lodash/map';\nimport { QueryFiltersT, QueryKeysEnum, TrucksSortEnum } from './query-models';\nimport SelectedFilters from './SelectedFilters/SelectedFilters';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport { selectSetUnavailableVehicleRequestStatus } from 'common/store/vehicle-schedules/selectors';\nimport ArchiveAssetConfirmationModal, {\n    ArchiveAssetConfirmationDataT,\n} from 'common/layouts/dialogs/ArchiveAssetConfirmationModal/ArchiveAssetConfirmationModal';\nimport ActivateAssetDialogModal, {\n    ActivateAssetConfirmationDataT,\n} from 'common/layouts/dialogs/ActivateAssetDialogModal/ActivateAssetDialogModal';\nimport HollowCircleIcon from 'common/icons/HollowCircleIcon';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { trucksPaginationChannel, trucksRefreshChannel } from 'common/store/trucks/channels';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport ActiveFleetCount from './ActiveFleetCount/ActiveFleetCount';\nimport { useQueryParams, withDefault } from 'use-query-params';\nimport { createEnumParam } from 'serialize-query-params/src/params';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { useCheckOpenedSidebar, useOpenLeftSidebar } from 'common/layouts/SideBars/hooks';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { checkNeedRenderEmptyState } from 'common/components/Table/utils/check-need-render-empty-state';\nimport { checkFilters } from 'common/components/Table/utils/check-filters';\nimport ButtonGroup from 'design-system/components/ButtonGroup/ButtonGroup';\nimport AssetsXLSDropdownControl from 'common/components/controls/AssetsXLSDropdownControl/AssetsXLSDropdownControl';\nimport { useImportXLSAssetsModalDialog } from 'common/layouts/dialogs/ImportXLSAssetsDialogModal/hooks/useImportXLSAssetsModalDialog';\nimport ImportXLSAssetsDialogModal, {\n    ImportXLSAssetsDialogModalDataT,\n} from '../dialogs/ImportXLSAssetsDialogModal/ImportXLSAssetsDialogModal';\nimport ChangeRateOrContractAssetDialogModal, {\n    ChangeRateOrContractAssetDialogModalDataT,\n} from 'common/layouts/dialogs/ChangeRateOrContractAssetDialogModal/ChangeRateOrContractAssetDialogModal';\nimport { SpecialOptionEnum } from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport PaperIcon from 'common/icons/PaperIcon';\nimport usePartnerPermissionsContext from 'common/utils/hooks/usePartnerPermissionsContext';\nimport { logWarning } from 'common/utils/logger';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    onOpenUserDetails: (userId: UserIdT | null, isBrokerUser?: boolean) => void;\n};\n\nconst getTruckIds = (selectedTrucksSet: Set<ApiTruckT>): Array<string> => {\n    return [...selectedTrucksSet].map((truck) => truck.id).filter(isNonNil);\n};\n\nconst TAB_LABEL_T: Record<TabEnum, string> = {\n    [TabEnum.active]: 'common:trucks-page.tabs.active',\n    [TabEnum.archive]: 'common:trucks-page.tabs.archive',\n};\n\nconst TrucksPageLayout: React.FC<PropsT> = React.memo((props) => {\n    const { onOpenUserDetails } = props;\n\n    const partnerPermissions = usePartnerPermissionsContext();\n\n    const { partnerId } = usePartnerContext();\n\n    const importXLSRequestStatus = useSelector(selectTrucksImportXLSRequest(partnerId));\n\n    const handleImportXLS = (data: ImportXLSAssetsDialogModalDataT) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleImportXLS');\n            return;\n        }\n        dispatch(importXLSTrucks(partnerId, data.file));\n    };\n\n    const exportXLSRequestStatus = useSelector(selectTrucksExportXLSRequest(partnerId));\n\n    const handleExportXLS = () => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleExportXLS');\n            return;\n        }\n        dispatch(exportXLSTrucks(partnerId, {}));\n    };\n\n    const handleFilteredExportXLS = () => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleFilteredExportXLS');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort, activeTab);\n        dispatch(exportXLSTrucks(partnerId, query));\n    };\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in TrucksPageLayout useEffect');\n            return;\n        }\n        dispatch(fetchCarrierContracts(partnerId));\n    }, [dispatch, partnerId]);\n\n    const [query, changeQuery] = useQueryParams({\n        [QueryKeysEnum.trucksPage]: createPageNumberParam(),\n        [QueryKeysEnum.trucksSort]: createSortParams<TrucksSortEnum>({\n            value: TrucksSortEnum.createdDate,\n            direction: SortDirectionEnum.DESC,\n        }),\n        [QueryKeysEnum.trucksFilters]: createJsonParams<QueryFiltersT>({}),\n        [QueryKeysEnum.trucksTab]: withDefault(createEnumParam<TabEnum>(Object.values(TabEnum)), TabEnum.active),\n    });\n\n    const [selectedTrucksSet, setSelectedTrucksSet] = React.useState<Set<ApiTruckT>>(new Set());\n\n    const total = useSelector(selectTrucksTotal(partnerId));\n    const trucksPages = useSelector(selectTrucksPages(partnerId));\n    const truckById = useSelector(selectTrucksByIds(partnerId));\n\n    const isOpenedFilters = useCheckOpenedSidebar(CommonSidebarsTypeEnum.truckFilters);\n    const openFilters = React.useCallback(() => {\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.truckFilters,\n        });\n    }, [openLeftSidebar]);\n\n    const showAddSidebar = (): void => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in showAddSidebar');\n            return;\n        }\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.addTruck,\n            partnerId,\n        });\n    };\n\n    const selectedSort = query[QueryKeysEnum.trucksSort];\n    const pageNumber = query[QueryKeysEnum.trucksPage];\n    const queryFilters = query[QueryKeysEnum.trucksFilters];\n\n    const activeTab = query[QueryKeysEnum.trucksTab] || TabEnum.active;\n    const page = trucksPages[pageNumber];\n    const { ids, requestStatus } = page || {};\n\n    React.useEffect(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in TrucksPageLayout useEffect');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort, activeTab);\n        dispatch(fetchTrucksPage(pageNumber, query, partnerId));\n\n        dispatch(fetchTrucksStats(partnerId));\n    }, [dispatch, pageNumber, selectedSort, queryFilters, activeTab, partnerId]);\n\n    const refreshPageHandler = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in refreshPageHandler');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort, activeTab);\n        dispatch(fetchTrucksPage(pageNumber, query, partnerId, { isForceUpdate: true }));\n\n        dispatch(fetchTrucksStats(partnerId, { isForceUpdate: true }));\n    }, [dispatch, pageNumber, queryFilters, selectedSort, activeTab, partnerId]);\n\n    useChannelSubscribe(trucksRefreshChannel, refreshPageHandler);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleRefreshOnError');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort, activeTab);\n        dispatch(fetchTrucksPage(pageNumber, query, partnerId, { isForceUpdate: true }));\n    }, [dispatch, pageNumber, queryFilters, selectedSort, activeTab, partnerId]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in documentVisibilityChangeHandler');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort, activeTab);\n        dispatch(fetchTrucksPage(pageNumber, query, partnerId, { isForceUpdate: false }));\n\n        dispatch(fetchTrucksStats(partnerId, { isForceUpdate: false }));\n    }, [dispatch, pageNumber, queryFilters, selectedSort, activeTab, partnerId]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const trucks = React.useMemo(() => {\n        return (ids || []).map((id): ApiTruckT => truckById[id]);\n    }, [ids, truckById]);\n\n    React.useEffect(() => {\n        setSelectedTrucksSet(new Set());\n    }, [ids]);\n\n    const goToPage = React.useCallback(\n        (pageNumber: PageNumberT) => {\n            setSelectedTrucksSet(new Set());\n\n            changeQuery({\n                [QueryKeysEnum.trucksPage]: pageNumber,\n            });\n        },\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        [setSelectedTrucksSet, query],\n    );\n\n    const setPageHandler = React.useCallback(\n        ({ pageNumber }: InferChannelEventT<typeof trucksPaginationChannel>) => {\n            goToPage(pageNumber);\n        },\n        [goToPage],\n    );\n    useChannelSubscribe(trucksPaginationChannel, setPageHandler);\n\n    const sortOptions: Array<SortDropdownOptionT<TrucksSortEnum>> = React.useMemo(\n        () =>\n            [\n                {\n                    label: t('common:trucks-page.sorts.triggers.creation-date'),\n                    value: TrucksSortEnum.createdDate,\n                },\n                activeTab === TabEnum.archive\n                    ? {\n                          label: t('common:trucks-page.sorts.triggers.archive-date'),\n                          value: TrucksSortEnum.archiveDate,\n                      }\n                    : null,\n            ].filter(isNonNil),\n        [t, activeTab],\n    );\n\n    const handleSelectSort = (sort: PageSortT<TrucksSortEnum>) => {\n        changeQuery({\n            [QueryKeysEnum.trucksPage]: 0,\n            [QueryKeysEnum.trucksSort]: sort,\n        });\n    };\n\n    const handleSetQueryFilters = (selectedQueryFilters: QueryFiltersT) => {\n        changeQuery({\n            [QueryKeysEnum.trucksPage]: 0,\n            [QueryKeysEnum.trucksFilters]: selectedQueryFilters,\n        });\n    };\n\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const resetQueryFilters = () => {\n        changeQuery({\n            [QueryKeysEnum.trucksFilters]: undefined,\n        });\n    };\n\n    const addRequestStatus = useSelector(selectAddTruckRequestStatus(partnerId));\n    React.useEffect(() => {\n        if (addRequestStatus.ok) {\n            changeQuery({\n                [QueryKeysEnum.trucksFilters]: undefined,\n                [QueryKeysEnum.trucksPage]: 0,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [addRequestStatus.ok]);\n\n    const archiveAssetConfirmation = useModalDialog<ArchiveAssetConfirmationDataT>();\n    const activateAssetConfirmation = useModalDialog<ActivateAssetConfirmationDataT>();\n    const changeRateOrContractConfirmation = useModalDialog<ChangeRateOrContractAssetDialogModalDataT>();\n\n    const trucksStats = useSelector(selectTrucksStats(partnerId));\n\n    const tableActionOptions: Array<TableActionOptionT | SpecialOptionEnum | null> = [\n        ...(activeTab === TabEnum.active\n            ? [\n                  {\n                      label: (\n                          <DropdownControlOptionLabel\n                              icon={\n                                  <PaperIcon\n                                      size={DEFAULT_ICON_SIZE}\n                                      strokeColor={StyleGuideColorsEnum.charcoal}\n                                      fillColor={StyleGuideColorsEnum.transparent}\n                                  />\n                              }\n                              label={t('common:trucks-page.actions.change-rate-or-contract')}\n                          />\n                      ),\n                      onSelect: () => {\n                          if (!partnerId) {\n                              logWarning('Empty partnerId in changeRateOrContract onSelect');\n                              return;\n                          }\n                          const ids = getTruckIds(selectedTrucksSet);\n\n                          changeRateOrContractConfirmation.setData({\n                              assets: ids.map((id) => {\n                                  return {\n                                      id,\n                                  };\n                              }),\n                              companyId: partnerId,\n                          });\n                      },\n                  },\n                  SpecialOptionEnum.separator,\n                  {\n                      label: (\n                          <DropdownControlOptionLabel\n                              icon={<DeleteIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                              label={t('common:trucks-page.actions.archive')}\n                          />\n                      ),\n                      onSelect: () => {\n                          if (!partnerId) {\n                              logWarning('Empty partnerId in archiveAsset onSelect');\n                              return;\n                          }\n                          const ids = getTruckIds(selectedTrucksSet);\n\n                          archiveAssetConfirmation.setData({\n                              assets: ids.map((id) => {\n                                  return {\n                                      id,\n                                      plateNumber: truckById[id]?.plateNumber || '',\n                                  };\n                              }),\n                              companyId: partnerId,\n                          });\n                      },\n                  },\n              ]\n            : []),\n        activeTab === TabEnum.archive\n            ? {\n                  label: (\n                      <DropdownControlOptionLabel\n                          icon={<HollowCircleIcon borderColor={StyleGuideColorsEnum.brandAccent} />}\n                          label={t('common:trucks-page.actions.activate')}\n                      />\n                  ),\n                  onSelect: () => {\n                      if (!partnerId) {\n                          logWarning('Empty partnerId in activateAsset onSelect');\n                          return;\n                      }\n                      const ids = getTruckIds(selectedTrucksSet);\n\n                      activateAssetConfirmation.setData({\n                          assets: ids.map((id) => {\n                              const truck = truckById[id];\n\n                              return {\n                                  id,\n                                  plateNumber: truck?.plateNumber || '',\n                                  ratePerKm: null,\n                                  contractId: null, // archived assets always have no contract\n                              };\n                          }),\n                          companyId: partnerId,\n                      });\n                  },\n              }\n            : null,\n    ];\n\n    const setUnavailableStatus = useSelector(selectSetUnavailableVehicleRequestStatus);\n\n    const updateRequestStatus = useSelector(selectUpdateTruckRequestStatus(partnerId));\n\n    const handleConfirmArchive = (data: ArchiveAssetConfirmationDataT, reason: string): void => {\n        const ids = data.assets.map((asset) => asset.id);\n        dispatch(archiveTrucksRequest(ids, data.companyId, reason));\n    };\n\n    const handleConfirmChangeContract = (\n        changeContractRequest: ApiChangeContractVehiclesRequestT,\n        contractName: string,\n    ) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleConfirmChangeContract');\n            return;\n        }\n        dispatch(\n            assignToContractRequest({\n                companyId: partnerId,\n                changeContractRequest,\n                contractName,\n            }),\n        );\n    };\n\n    const handleConfirmChangeRate = (changeRateRequest: ApiChangeRateVehiclesRequestT) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleConfirmChangeRate');\n            return;\n        }\n        dispatch(\n            changeRateTrucksRequest({\n                companyId: partnerId,\n                changeRateVehiclesRequest: changeRateRequest,\n            }),\n        );\n    };\n\n    const handleConfirmActivate = (\n        _: ActivateAssetConfirmationDataT,\n        activateTrucksRequest: ActivateTrucksRequestT,\n    ): void => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleConfirmActivate');\n            return;\n        }\n        dispatch(activationTrucksRequest(partnerId, activateTrucksRequest));\n    };\n\n    useEffect(() => {\n        setSelectedTrucksSet(new Set());\n    }, [setUnavailableStatus, updateRequestStatus]);\n\n    const handleSelectRow = (event: React.MouseEvent, truck: ApiTruckT) => {\n        if (!truck.id) {\n            return;\n        }\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleSelectRow');\n            return;\n        }\n\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.truckDetails,\n            truckId: truck.id,\n            partnerId,\n        });\n    };\n\n    const isPartner = partnerId !== DEFAULT_CARRIER_COMPANY_ID;\n\n    const handleSelectTab = (tab: TabEnum): void => {\n        changeQuery({\n            [QueryKeysEnum.trucksPage]: 0,\n            [QueryKeysEnum.trucksTab]: tab,\n            [QueryKeysEnum.trucksSort]: undefined,\n        });\n    };\n\n    const tabsNode = (\n        <ButtonGroup\n            className={cx('tabs', {\n                'tabs--isPartner': isPartner,\n            })}\n        >\n            {map(TabEnum, (tab) => (\n                <Button\n                    noPaddings\n                    rowClassName={cx('tabs__tab-content')}\n                    key={tab}\n                    className={cx('tabs__tab')}\n                    leftIcon={tab === TabEnum.active && !!trucksStats?.actualTotalCount ? <ActiveFleetCount /> : null}\n                    theme={ButtonThemeEnum.transparent}\n                    onClick={() => {\n                        handleSelectTab(tab);\n                    }}\n                    isToggled={tab === activeTab}\n                >\n                    {t(TAB_LABEL_T[tab])}\n                </Button>\n            ))}\n        </ButtonGroup>\n    );\n\n    useCloseModalDialogAfterRequest(updateRequestStatus, [\n        activateAssetConfirmation,\n        archiveAssetConfirmation,\n        changeRateOrContractConfirmation,\n    ]);\n\n    const importXLSAssetsModalDialog = useImportXLSAssetsModalDialog();\n    useCloseModalDialogAfterRequest(importXLSRequestStatus, [importXLSAssetsModalDialog]);\n\n    const renderTableMessage = () => {\n        if (!checkNeedRenderEmptyState(trucks, requestStatus)) {\n            return null;\n        }\n\n        if (requestStatus?.error) {\n            return <TableError error={requestStatus?.error} onRetry={handleRefreshOnError} />;\n        }\n\n        const { hasPrimaryQueryFilters, hasSecondaryQueryFilters } = checkFilters(\n            [query[QueryKeysEnum.trucksTab] !== TabEnum.active ? query[QueryKeysEnum.trucksTab] : null],\n            [query[QueryKeysEnum.trucksFilters]],\n        );\n\n        if (requestStatus?.ok && hasSecondaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.notFound}\n                    title={t('common:trucks-page.table.messages.not-found.title')}\n                    description={t('common:trucks-page.table.messages.not-found.description')}\n                    isShowAction={!!partnerPermissions?.canEditTrucks}\n                    actionTitle={t('common:trucks-page.table.messages.not-found.action')}\n                    actionTheme={ButtonThemeEnum.secondary}\n                    onActionClick={() => handleSetQueryFilters({})}\n                    testSelector=\"empty-state-has-secondary-filters\"\n                />\n            );\n        }\n\n        if (requestStatus?.ok && hasPrimaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.empty}\n                    title={t('common:trucks-page.table.messages.empty-quick-filters.title')}\n                    description=\"\"\n                    testSelector=\"empty-state-has-primary-filters\"\n                    isShowAction={false}\n                />\n            );\n        }\n\n        return (\n            <TableMessage\n                iconType={TableMessageIconsEnum.empty}\n                title={t('common:trucks-page.table.messages.empty.title')}\n                description={t('common:trucks-page.table.messages.empty.description')}\n                isShowAction\n                actionTitle={t('common:trucks-page.table.messages.empty.action')}\n                onActionClick={showAddSidebar}\n                testSelector=\"empty\"\n            />\n        );\n    };\n\n    return (\n        <>\n            <ContentMargins>\n                {!isPartner && tabsNode}\n                <ListPageLayout>\n                    <ListPageHeaderLayout\n                        withTopPadding\n                        leftToolsNode={\n                            <>\n                                {isPartner && tabsNode}\n                                <FiltersTrigger\n                                    title={t('common:trucks-page.filters.title')}\n                                    isActive={isOpenedFilters}\n                                    onClick={openFilters}\n                                />\n                                <SortDropdown\n                                    overlayPosition={SortDropdownOverlayPositionEnum.left}\n                                    selectedValue={selectedSort}\n                                    options={sortOptions}\n                                    onSelect={handleSelectSort}\n                                />\n                            </>\n                        }\n                        rightToolsNode={\n                            <>\n                                {!!selectedTrucksSet.size && (\n                                    <TableActions\n                                        options={tableActionOptions}\n                                        trigger={t('common:trucks-page.actions-trigger')}\n                                        isDisabled={false}\n                                    />\n                                )}\n                                <AssetsXLSDropdownControl\n                                    isAllowExport\n                                    isAllowImport={!!partnerPermissions.canImportTrucks}\n                                    isLoading={exportXLSRequestStatus.loading}\n                                    onExportFilteredAssets={handleFilteredExportXLS}\n                                    onExportAssets={handleExportXLS}\n                                    onImportAssets={importXLSAssetsModalDialog.onStartImportXLS}\n                                />\n                                {partnerPermissions?.canEditTrucks ? (\n                                    <Button theme={ButtonThemeEnum.primary} type=\"submit\" onClick={showAddSidebar}>\n                                        {t('common:trucks-page.add-truck.trigger')}\n                                    </Button>\n                                ) : null}\n                            </>\n                        }\n                        filterTagsNode={\n                            <SelectedFilters\n                                isCompact\n                                queryFilters={queryFilters}\n                                setQueryFilters={handleSetQueryFilters}\n                            />\n                        }\n                    />\n                    {renderTableMessage()}\n                    <TrucksTable\n                        trucks={trucks}\n                        onSelectRow={handleSelectRow}\n                        selectedTrucksSet={selectedTrucksSet}\n                        onSelectTrucks={setSelectedTrucksSet}\n                        isLoading={requestStatus?.loading}\n                        canEditTrucks={!!partnerPermissions?.canEditTrucks}\n                        onOpenUserDetails={onOpenUserDetails}\n                        activeTab={activeTab}\n                    />\n                </ListPageLayout>\n            </ContentMargins>\n            <StickyFooter>\n                <Pagination current={pageNumber} count={total?.pageCount} goToPage={goToPage} />\n            </StickyFooter>\n            <ArchiveAssetConfirmationModal\n                assetType={AssetTypeEnum.truck}\n                data={archiveAssetConfirmation.data}\n                onConfirm={handleConfirmArchive}\n                onCancel={archiveAssetConfirmation.onCancel}\n                onClose={archiveAssetConfirmation.onClose}\n                requestStatus={updateRequestStatus}\n            />\n            <ActivateAssetDialogModal\n                companyId={partnerId}\n                assetType={AssetTypeEnum.truck}\n                data={activateAssetConfirmation.data}\n                onConfirm={handleConfirmActivate}\n                onCancel={activateAssetConfirmation.onCancel}\n                onClose={activateAssetConfirmation.onClose}\n                requestStatus={updateRequestStatus}\n            />\n            <ImportXLSAssetsDialogModal\n                assetType={AssetTypeEnum.truck}\n                requestStatus={importXLSRequestStatus}\n                data={importXLSAssetsModalDialog.data}\n                onClose={importXLSAssetsModalDialog.onClose}\n                onCancel={importXLSAssetsModalDialog.onCancel}\n                onImportXLS={handleImportXLS}\n            />\n            <ChangeRateOrContractAssetDialogModal\n                companyId={partnerId}\n                assetType={AssetTypeEnum.truck}\n                data={changeRateOrContractConfirmation.data}\n                onChangeContract={handleConfirmChangeContract}\n                onChangeRate={handleConfirmChangeRate}\n                onCancel={changeRateOrContractConfirmation.onCancel}\n                onClose={changeRateOrContractConfirmation.onClose}\n                requestStatus={updateRequestStatus}\n            />\n        </>\n    );\n});\n\nexport default TrucksPageLayout;\n","import { actionChannel, fork, put, select, take, takeEvery } from 'redux-saga/effects';\nimport {\n    applyOrderEditContextRequest,\n    applyOrderEditContextRequestBegin,\n    applyOrderEditContextRequestError,\n    applyOrderEditContextRequestSuccess,\n    changeContext,\n    changeContextError,\n    changeContextSuccess,\n    createOrderEditContextRequest,\n    createOrderEditContextRequestBegin,\n    createOrderEditContextRequestError,\n    createOrderEditContextRequestSuccess,\n    deleteOrderEditContextRequest,\n    deleteOrderEditContextRequestBegin,\n    deleteOrderEditContextRequestError,\n    deleteOrderEditContextRequestSuccess,\n    finishOrderEdit,\n    initOrderEdit,\n    reCreateOrderEditContextRequest,\n    refreshOrderEditContextRequest,\n    resetOrderEdit,\n    setIsApplyingContextChanges,\n} from './slice';\nimport { CompanyTypeEnum } from 'common/constants';\nimport {\n    AnyOrderEditRequestErrorActionT,\n    ApplyOrderEditContextRequestActionT,\n    ChangeOrderEditContextRequestActionT,\n    CreateOrderEditContextRequestActionT,\n    DeleteOrderEditContextRequestActionT,\n    FinishOrderEditActionT,\n    InitOrderEditActionT,\n    ReCreateOrderEditContextRequestActionT,\n    RefreshOrderEditContextRequestActionT,\n} from './types';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport {\n    selectOrderEditApplyContextRequest,\n    selectOrderEditContext,\n    selectOrderEditCreateContextRequest,\n    selectOrderEditDeleteContextRequest,\n    selectOrderEditBrokerOrderDetails,\n} from './selectors';\nimport { buffers } from 'redux-saga';\nimport { EditOrderQueryModifyChannelEventT } from './models';\nimport { orderEditContextQueryModifyChannel } from './channels';\nimport { getOrderId } from './utils/get-order-id';\nimport { ApiEditOrderContextT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { convertToPointLocation } from './utils/prepare-address-point';\nimport { convertRoutePointType } from './utils/convert-route-point-type';\nimport { logWarning } from 'common/utils/logger';\nimport { getCorrectedStops } from './utils/get-corrected-stops';\nimport { getAddedStopAliases } from './utils/get-added-stop-aliases';\nimport { getDeletedStopAliases } from './utils/get-deleted-stop-aliases';\nimport { getOrderStopAliases } from './utils/get-order-stop-aliases';\nimport { findFirstBeforeStop } from './utils/find-first-before-stop';\nimport { findContextStopByAlias } from './utils/find-context-stop-by-alias';\nimport { v4 as uuidv4 } from 'uuid';\nimport { checkIsAvailableCountryForShipByCode } from 'common/store/country-settings-dict/utils/check-location';\nimport { selectCountrySettingsByCountryCode } from 'common/store/country-settings-dict/selectors';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAlertTypeEnum, CommonAnyAlert } from 'common/components/toasts/AlertToastsManager/models';\nimport { resetBrokerOrderDetails } from 'broker-admin/store/broker-order-details/slice';\nimport isNumber from 'lodash/isNumber';\nimport { BrokerAlertTypeEnum, BrokerAnyAlert } from 'broker-admin/components/toasts/models';\n\nfunction* waitCreatingFinishIfNeedOrderContextSaga(): WrapGeneratorT<void> {\n    const createContextRequest: ReturnType<typeof selectOrderEditCreateContextRequest> = yield select(\n        selectOrderEditCreateContextRequest,\n    );\n    if (createContextRequest.loading) {\n        yield take([createOrderEditContextRequestError.type, createOrderEditContextRequestSuccess.type]);\n    }\n}\n\nfunction* waitApplyingFinishIfNeedOrderContextSaga(): WrapGeneratorT<void> {\n    const applyContextRequest: ReturnType<typeof selectOrderEditApplyContextRequest> = yield select(\n        selectOrderEditApplyContextRequest,\n    );\n\n    if (applyContextRequest.loading) {\n        yield take([applyOrderEditContextRequestError.type, applyOrderEditContextRequestSuccess.type]);\n    }\n}\n\nfunction* waitDeletingFinishIfNeedOrderContextSaga(): WrapGeneratorT<void> {\n    const deleteContextRequest: ReturnType<typeof selectOrderEditDeleteContextRequest> = yield select(\n        selectOrderEditDeleteContextRequest,\n    );\n    if (deleteContextRequest.loading) {\n        yield take([deleteOrderEditContextRequestError.type, deleteOrderEditContextRequestSuccess.type]);\n    }\n}\n\nfunction* waitFinishAllActionIfNeedOrderContextSaga(): WrapGeneratorT<void> {\n    yield waitCreatingFinishIfNeedOrderContextSaga();\n    yield waitApplyingFinishIfNeedOrderContextSaga();\n    yield waitDeletingFinishIfNeedOrderContextSaga();\n}\n\nfunction reCreateOrderEditContextSaga() {\n    return function* (action: ReCreateOrderEditContextRequestActionT): WrapGeneratorT<void> {\n        const { brokerOrderId } = action.payload;\n        if (!brokerOrderId) {\n            return;\n        }\n\n        // yield put(resetOrderEdit({}));\n        yield put(createOrderEditContextRequest({ brokerOrderId, fakeSessionId: uuidv4() }));\n    };\n}\n\nfunction refreshOrderEditContextSaga() {\n    return function* (action: RefreshOrderEditContextRequestActionT): WrapGeneratorT<void> {\n        const { brokerOrderId } = action.payload;\n        if (!brokerOrderId) {\n            return;\n        }\n\n        yield put(createOrderEditContextRequest({ brokerOrderId }));\n\n        const orderEditContext: ReturnType<typeof selectOrderEditContext> = yield select(selectOrderEditContext);\n        if (orderEditContext) {\n            const queryModifyEvent: EditOrderQueryModifyChannelEventT = {};\n            queryModifyEvent.correctedStops = getCorrectedStops(orderEditContext);\n        }\n    };\n}\n\nfunction createOrderEditContextSaga() {\n    return function* (action: CreateOrderEditContextRequestActionT): WrapGeneratorT<void> {\n        const { brokerOrderId, fakeSessionId } = action.payload;\n        if (!brokerOrderId) {\n            return;\n        }\n\n        yield waitFinishAllActionIfNeedOrderContextSaga();\n\n        yield put(createOrderEditContextRequestBegin({}));\n\n        const [fetchBrokerOrderError, fetchBrokerOrderResult]: ReturnApiT<\n            typeof brokerTranziitApi.getBrokerOrderDetails\n        > = yield brokerTranziitApi.getBrokerOrderDetails(brokerOrderId);\n        if (fetchBrokerOrderError) {\n            yield put(\n                createOrderEditContextRequestError({\n                    error: fetchBrokerOrderError,\n                }),\n            );\n            return;\n        }\n\n        const orderId = getOrderId(fetchBrokerOrderResult);\n        if (!orderId) {\n            yield put(\n                createOrderEditContextRequestError({\n                    error: new Error('Empty orderId in broker order details'),\n                }),\n            );\n            return;\n        }\n\n        const [error, result]: ReturnApiT<typeof brokerTranziitApi.editOrderCreateOrGetContext> =\n            yield brokerTranziitApi.editOrderCreateOrGetContext(orderId);\n        if (error) {\n            yield put(createOrderEditContextRequestError({ error }));\n            return;\n        }\n\n        yield put(\n            createOrderEditContextRequestSuccess({\n                context: result,\n                brokerOrderDetails: fetchBrokerOrderResult,\n                fakeSessionId,\n            }),\n        );\n\n        const notes = result?.notes || [];\n        for (const note of notes) {\n            yield put(\n                addAlert(\n                    new CommonAnyAlert({\n                        type: CommonAlertTypeEnum.orderContextNote,\n                        data: {\n                            note,\n                        },\n                    }),\n                ),\n            );\n        }\n    };\n}\n\nfunction initOrderEditSaga() {\n    return function* (action: InitOrderEditActionT): WrapGeneratorT<void> {\n        const brokerOrderId = action?.payload?.brokerOrderId || null;\n\n        yield put(createOrderEditContextRequest({ brokerOrderId }));\n    };\n}\n\nfunction finishOrderEditSaga() {\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    return function* (action: FinishOrderEditActionT): WrapGeneratorT<void> {\n        const applyContextRequest: ReturnType<typeof selectOrderEditApplyContextRequest> = yield select(\n            selectOrderEditApplyContextRequest,\n        );\n        if (!applyContextRequest.ok) {\n            yield put(deleteOrderEditContextRequest({}));\n        }\n\n        // after finish\n        yield put(resetOrderEdit({}));\n    };\n}\n\nfunction deleteOrderEditContextSaga() {\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    return function* (action: DeleteOrderEditContextRequestActionT): WrapGeneratorT<void> {\n        yield waitFinishAllActionIfNeedOrderContextSaga();\n\n        // if not created\n        const orderEditBrokerOrderDetails: ReturnType<typeof selectOrderEditBrokerOrderDetails> = yield select(\n            selectOrderEditBrokerOrderDetails,\n        );\n        const brokerOrderId = getOrderId(orderEditBrokerOrderDetails);\n        if (!brokerOrderId) {\n            return;\n        }\n\n        yield put(deleteOrderEditContextRequestBegin({}));\n\n        const [error]: ReturnApiT<typeof brokerTranziitApi.editOrderDeleteContext> =\n            yield brokerTranziitApi.editOrderDeleteContext(brokerOrderId);\n        if (error) {\n            yield put(deleteOrderEditContextRequestError({ error }));\n            return;\n        }\n\n        yield put(deleteOrderEditContextRequestSuccess({}));\n    };\n}\n\nfunction catchAnyOrderEditContextError() {\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    return function* (action: AnyOrderEditRequestErrorActionT): WrapGeneratorT<void> {\n        const orderEditBrokerOrderDetails: ReturnType<typeof selectOrderEditBrokerOrderDetails> = yield select(\n            selectOrderEditBrokerOrderDetails,\n        );\n        const brokerOrderId = getOrderId(orderEditBrokerOrderDetails);\n\n        yield put(\n            reCreateOrderEditContextRequest({\n                brokerOrderId,\n            }),\n        );\n    };\n}\n\nfunction applyOrderEditContextSaga() {\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    return function* (action: ApplyOrderEditContextRequestActionT): WrapGeneratorT<void> {\n        yield waitFinishAllActionIfNeedOrderContextSaga();\n\n        // reset broker order details, will be created new tours\n        yield put(resetBrokerOrderDetails());\n\n        // if not created\n        const orderEditBrokerOrderDetails: ReturnType<typeof selectOrderEditBrokerOrderDetails> = yield select(\n            selectOrderEditBrokerOrderDetails,\n        );\n        const brokerOrderId = getOrderId(orderEditBrokerOrderDetails);\n        if (!brokerOrderId) {\n            return;\n        }\n\n        yield put(applyOrderEditContextRequestBegin({}));\n\n        const [error]: ReturnApiT<typeof brokerTranziitApi.editOrderApplyContext> =\n            yield brokerTranziitApi.editOrderApplyContext(brokerOrderId, action.payload);\n        if (error) {\n            yield put(applyOrderEditContextRequestError({ error }));\n            return;\n        }\n\n        yield put(applyOrderEditContextRequestSuccess({}));\n        yield put(\n            addAlert(\n                new BrokerAnyAlert({\n                    type: BrokerAlertTypeEnum.orderRouteUpdated,\n                    data: {},\n                }),\n            ),\n        );\n    };\n}\n\n// eslint-disable-next-line require-yield\nfunction* changeReserveQuerySaga(\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    companyType: CompanyTypeEnum,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    action: ChangeOrderEditContextRequestActionT,\n): WrapGeneratorT<EditOrderQueryModifyChannelEventT> {\n    const queryModifyEvent: EditOrderQueryModifyChannelEventT = {};\n\n    // if not created\n    const sourceOrderEditContext: ReturnType<typeof selectOrderEditContext> = yield select(selectOrderEditContext);\n    if (!sourceOrderEditContext) {\n        logWarning('order-edit queue, empty orderEditContext', action);\n        return queryModifyEvent;\n    }\n    let contextAfterModify: ApiEditOrderContextT | null = sourceOrderEditContext;\n\n    const orderEditBrokerOrderDetails: ReturnType<typeof selectOrderEditBrokerOrderDetails> = yield select(\n        selectOrderEditBrokerOrderDetails,\n    );\n    const brokerOrderId = getOrderId(orderEditBrokerOrderDetails);\n    if (!brokerOrderId) {\n        logWarning('order-edit queue, empty brokerOrderId', action);\n        return queryModifyEvent;\n    }\n\n    const { payload } = action;\n\n    const isShouldAddPoint =\n        (payload.type === 'change-route-point-location' || payload.type === 'change-route-point-time-window') &&\n        !findContextStopByAlias(sourceOrderEditContext, payload.contextRoutePointAlias);\n\n    if (payload.type === 'change-route-point-location' && isShouldAddPoint) {\n        const pointLocation = convertToPointLocation(payload.address);\n        if (!pointLocation) {\n            logWarning('order-edit queue, empty pointLocation', action);\n            return queryModifyEvent;\n        }\n\n        const pointType = convertRoutePointType(payload.routePointType);\n        if (!pointType) {\n            logWarning('order-edit queue, empty pointType', action);\n            return queryModifyEvent;\n        }\n\n        const countrySettingsByCountryCode: ReturnType<typeof selectCountrySettingsByCountryCode> = yield select(\n            selectCountrySettingsByCountryCode,\n        );\n        const isAvailableCountry = checkIsAvailableCountryForShipByCode(\n            payload.address?.country || null,\n            countrySettingsByCountryCode,\n        );\n        if (!isAvailableCountry) {\n            logWarning(`Is not available country with code ${payload.address?.country}`);\n            return queryModifyEvent;\n        }\n\n        const beforeContextStop = findFirstBeforeStop(sourceOrderEditContext, payload.beforeContextRoutePointAliases);\n        const beforeContextStopIndex = beforeContextStop?.index;\n        if (!isNumber(beforeContextStopIndex)) {\n            logWarning(`Not found target stop`, payload);\n            return queryModifyEvent;\n        }\n\n        const [errorAfterAddStop, contextAfterAddStop]: ReturnApiT<typeof brokerTranziitApi.editOrderContextAddStop> =\n            yield brokerTranziitApi.editOrderContextAddStop(brokerOrderId, {\n                index: beforeContextStopIndex + 1,\n                alias: payload.contextRoutePointAlias,\n                address: pointLocation,\n                type: pointType,\n            });\n\n        if (errorAfterAddStop) {\n            yield put(changeContextError({ error: errorAfterAddStop }));\n        }\n\n        contextAfterModify = contextAfterAddStop;\n\n        queryModifyEvent.correctedStops = getCorrectedStops(contextAfterModify);\n        queryModifyEvent.addedStopAliases = getAddedStopAliases(sourceOrderEditContext, contextAfterModify);\n        queryModifyEvent.deletedStopAliases = getDeletedStopAliases(sourceOrderEditContext, contextAfterModify);\n        queryModifyEvent.orderStopAliases = getOrderStopAliases(contextAfterModify);\n    }\n\n    if (payload.type === 'change-route-point-location' && !isShouldAddPoint) {\n        const pointLocation = convertToPointLocation(payload.address);\n        if (!pointLocation) {\n            logWarning('order-edit queue, empty pointLocation', action);\n            return queryModifyEvent;\n        }\n\n        const countrySettingsByCountryCode: ReturnType<typeof selectCountrySettingsByCountryCode> = yield select(\n            selectCountrySettingsByCountryCode,\n        );\n        const isAvailableCountry = checkIsAvailableCountryForShipByCode(\n            payload.address?.country || null,\n            countrySettingsByCountryCode,\n        );\n        if (!isAvailableCountry) {\n            logWarning(`Is not available country with code ${payload.address?.country}`);\n            return queryModifyEvent;\n        }\n\n        const targetContextStop = findContextStopByAlias(sourceOrderEditContext, payload.contextRoutePointAlias);\n        if (!targetContextStop?.alias) {\n            logWarning(`Not found target stop`, payload);\n            return queryModifyEvent;\n        }\n\n        const [error, result]: ReturnApiT<typeof brokerTranziitApi.editOrderContextUpdateStop> =\n            yield brokerTranziitApi.editOrderContextUpdateStop(brokerOrderId, targetContextStop.alias, {\n                address: pointLocation,\n            });\n\n        if (error) {\n            yield put(changeContextError({ error }));\n        }\n\n        contextAfterModify = result;\n\n        queryModifyEvent.correctedStops = getCorrectedStops(contextAfterModify);\n        queryModifyEvent.addedStopAliases = getAddedStopAliases(sourceOrderEditContext, contextAfterModify);\n        queryModifyEvent.deletedStopAliases = getDeletedStopAliases(sourceOrderEditContext, contextAfterModify);\n        queryModifyEvent.orderStopAliases = getOrderStopAliases(contextAfterModify);\n    }\n\n    if (payload.type === 'change-route-point-time-window' && !isShouldAddPoint) {\n        const pointLocation = convertToPointLocation(payload.address);\n        if (!pointLocation) {\n            logWarning('order-edit queue, empty pointLocation', action);\n            return queryModifyEvent;\n        }\n\n        const targetContextStop = findContextStopByAlias(sourceOrderEditContext, payload.contextRoutePointAlias);\n        if (!targetContextStop?.alias) {\n            logWarning(`Not found target stop`, payload);\n            return queryModifyEvent;\n        }\n\n        const [error, result]: ReturnApiT<typeof brokerTranziitApi.editOrderContextUpdateStop> =\n            yield brokerTranziitApi.editOrderContextUpdateStop(brokerOrderId, targetContextStop.alias, {\n                dateTimeFrom: payload.timeWindow.start,\n                dateTimeTo: payload.timeWindow.end,\n                address: pointLocation,\n            });\n\n        if (error) {\n            yield put(changeContextError({ error }));\n        }\n\n        contextAfterModify = result;\n\n        queryModifyEvent.correctedStops = getCorrectedStops(contextAfterModify);\n        queryModifyEvent.addedStopAliases = getAddedStopAliases(sourceOrderEditContext, contextAfterModify);\n        queryModifyEvent.deletedStopAliases = getDeletedStopAliases(sourceOrderEditContext, contextAfterModify);\n        queryModifyEvent.orderStopAliases = getOrderStopAliases(contextAfterModify);\n    }\n\n    if (payload.type === 'delete-route-point') {\n        const targetContextStop = findContextStopByAlias(sourceOrderEditContext, payload.contextRoutePointAlias);\n        if (!targetContextStop?.alias) {\n            logWarning(`Not found target stop`, payload);\n            return queryModifyEvent;\n        }\n\n        const [error, result]: ReturnApiT<typeof brokerTranziitApi.editOrderContextDeleteStop> =\n            yield brokerTranziitApi.editOrderContextDeleteStop(brokerOrderId, targetContextStop.alias);\n\n        if (error) {\n            yield put(changeContextError({ error }));\n        }\n\n        contextAfterModify = result;\n\n        queryModifyEvent.correctedStops = getCorrectedStops(contextAfterModify);\n        queryModifyEvent.addedStopAliases = getAddedStopAliases(sourceOrderEditContext, contextAfterModify);\n        queryModifyEvent.deletedStopAliases = getDeletedStopAliases(sourceOrderEditContext, contextAfterModify);\n        queryModifyEvent.orderStopAliases = getOrderStopAliases(contextAfterModify);\n    }\n\n    yield put(\n        changeContextSuccess({\n            context: contextAfterModify,\n        }),\n    );\n\n    return queryModifyEvent;\n}\n\ntype BufferActionT = ChangeOrderEditContextRequestActionT;\n\nfunction* watchSyncChangeContextQuerySaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    const buffer = buffers.fixed<BufferActionT>(100);\n    const channel = yield actionChannel(changeContext.type, buffer);\n\n    let sourceOrderEditContext: ReturnType<typeof selectOrderEditContext> = yield select(selectOrderEditContext);\n    while (true) {\n        const action: BufferActionT = yield take(channel);\n\n        yield put(setIsApplyingContextChanges(true));\n\n        // experiment, for logic, TODO delete return changeReserveQuerySaga\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        const queryModifyEvent = yield* changeReserveQuerySaga(companyType, action);\n        // orderEditQueryModifyChannel.emit(queryModifyEvent);\n\n        if (buffer.isEmpty()) {\n            const contextAfterModify: ReturnType<typeof selectOrderEditContext> = yield select(selectOrderEditContext);\n\n            orderEditContextQueryModifyChannel.emit({\n                correctedStops: getCorrectedStops(contextAfterModify),\n                addedStopAliases: getAddedStopAliases(sourceOrderEditContext, contextAfterModify),\n                deletedStopAliases: getDeletedStopAliases(sourceOrderEditContext, contextAfterModify),\n                orderStopAliases: getOrderStopAliases(contextAfterModify),\n            });\n\n            sourceOrderEditContext = contextAfterModify;\n\n            yield put(setIsApplyingContextChanges(false));\n        }\n    }\n}\n\nfunction* orderEditContextSaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery(initOrderEdit.type, initOrderEditSaga());\n    yield takeEvery(finishOrderEdit.type, finishOrderEditSaga());\n    yield takeEvery(reCreateOrderEditContextRequest.type, reCreateOrderEditContextSaga());\n    yield takeEvery(refreshOrderEditContextRequest.type, refreshOrderEditContextSaga());\n    yield takeEvery(createOrderEditContextRequest.type, createOrderEditContextSaga());\n    yield takeEvery(deleteOrderEditContextRequest.type, deleteOrderEditContextSaga());\n    yield takeEvery(applyOrderEditContextRequest.type, applyOrderEditContextSaga());\n    yield takeEvery([changeContextError.type, applyOrderEditContextRequestError.type], catchAnyOrderEditContextError());\n    yield fork(watchSyncChangeContextQuerySaga, companyType);\n}\n\nexport { orderEditContextSaga };\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"ExpireSoonPartnerCarrierContractCard__inner___ZEXR2\",\"fadeIn\":\"ExpireSoonPartnerCarrierContractCard__fadeIn___Yl4vu\",\"blinking\":\"ExpireSoonPartnerCarrierContractCard__blinking___PmjO1\"};","import { RequestStatusT } from 'common/utils/request-status';\n\nimport {\n    FetchRulePageQueryT,\n    RuleDetailsT,\n    RuleDraftT,\n    RulePreviewRequestT,\n    RulePreviewResponseT,\n    RuleT,\n} from './models';\nimport { PageResponseT, PaginationStateT } from 'common/utils/pagination/models';\n\nexport const FETCH_RULE_DETAILS_REQUEST = 'broker-admin/price-settings/rules/FETCH_RULE_DETAILS_REQUEST';\nexport const FETCH_RULE_DETAILS_REQUEST_BEGIN = 'broker-admin/price-settings/rules/FETCH_RULE_DETAILS_REQUEST_BEGIN';\nexport const FETCH_RULE_DETAILS_REQUEST_ERROR = 'broker-admin/price-settings/rules/FETCH_RULE_DETAILS_REQUEST_ERROR';\nexport const FETCH_RULE_DETAILS_REQUEST_SUCCESS =\n    'broker-admin/price-settings/rules/FETCH_RULE_DETAILS_REQUEST_SUCCESS';\n\nexport const FETCH_RULES_PAGE_REQUEST = 'broker-admin/price-settings/rules/FETCH_RULES_PAGE_REQUEST';\nexport const FETCH_RULES_PAGE_REQUEST_BEGIN = 'broker-admin/price-settings/rules/FETCH_RULES_PAGE_REQUEST_BEGIN';\nexport const FETCH_RULES_PAGE_REQUEST_ERROR = 'broker-admin/price-settings/rules/FETCH_RULES_PAGE_REQUEST_ERROR';\nexport const FETCH_RULES_PAGE_REQUEST_SUCCESS = 'broker-admin/price-settings/rules/FETCH_RULES_PAGE_REQUEST_SUCCESS';\n\nexport const RESET_RULE_PAGES = 'broker-admin/price-settings/rules/RESET_RULE_PAGES';\n\nexport const ACTIVATE_RULES_REQUEST = 'broker-admin/price-settings/rules/ACTIVATE_RULES_REQUEST';\nexport const DEACTIVATE_RULES_REQUEST = 'broker-admin/price-settings/rules/DEACTIVATE_RULES_REQUEST';\n\nexport const UPDATE_RULE_REQUEST = 'broker-admin/price-settings/rules/UPDATE_RULE_REQUEST';\nexport const UPDATE_RULE_REQUEST_BEGIN = 'broker-admin/price-settings/rules/UPDATE_RULE_REQUEST_BEGIN';\nexport const UPDATE_RULE_REQUEST_ERROR = 'broker-admin/price-settings/rules/UPDATE_RULE_REQUEST_ERROR';\nexport const UPDATE_RULE_REQUEST_SUCCESS = 'broker-admin/price-settings/rules/UPDATE_RULE_REQUEST_SUCCESS';\nexport const UPDATE_RULE_REQUEST_RESET = 'broker-admin/price-settings/rules/UPDATE_RULE_REQUEST_RESET';\n\nexport const CREATE_RULE_REQUEST = 'broker-admin/price-settings/rules/CREATE_RULE_REQUEST';\nexport const CREATE_RULE_REQUEST_BEGIN = 'broker-admin/price-settings/rules/CREATE_RULE_REQUEST_BEGIN';\nexport const CREATE_RULE_REQUEST_ERROR = 'broker-admin/price-settings/rules/CREATE_RULE_REQUEST_ERROR';\nexport const CREATE_RULE_REQUEST_SUCCESS = 'broker-admin/price-settings/rules/CREATE_RULE_REQUEST_SUCCESS';\nexport const CREATE_RULE_REQUEST_RESET = 'broker-admin/price-settings/rules/CREATE_RULE_REQUEST_RESET';\n\nexport const DELETE_RULES_REQUEST = 'broker-admin/price-settings/rules/DELETE_RULES_REQUEST';\nexport const DELETE_RULES_REQUEST_BEGIN = 'broker-admin/price-settings/rules/DELETE_RULES_REQUEST_BEGIN';\nexport const DELETE_RULES_REQUEST_ERROR = 'broker-admin/price-settings/rules/DELETE_RULES_REQUEST_ERROR';\nexport const DELETE_RULES_REQUEST_SUCCESS = 'broker-admin/price-settings/rules/DELETE_RULES_REQUEST_SUCCESS';\n\nexport const PREVIEW_RULE_REQUEST = 'broker-admin/price-settings/rules/PREVIEW_RULE_REQUEST';\nexport const PREVIEW_RULE_REQUEST_BEGIN = 'broker-admin/price-settings/rules/PREVIEW_RULE_REQUEST_BEGIN';\nexport const PREVIEW_RULE_REQUEST_ERROR = 'broker-admin/price-settings/rules/PREVIEW_RULE_REQUEST_ERROR';\nexport const PREVIEW_RULE_REQUEST_SUCCESS = 'broker-admin/price-settings/rules/PREVIEW_RULE_REQUEST_SUCCESS';\nexport const PREVIEW_RULE_REQUEST_RESET = 'broker-admin/price-settings/rules/PREVIEW_RULE_REQUEST_RESET';\n\nexport type RulesStateT = PaginationStateT<RuleT, FetchRulePageQueryT> & {\n    detailsById: Record<string, RuleDetailsT | null>;\n    fetchDetailsRequest: RequestStatusT;\n    updateRequest: RequestStatusT;\n    creationRequest: RequestStatusT;\n    deleteRequest: RequestStatusT;\n    previewRequest: RequestStatusT;\n    preview: RulePreviewResponseT | null;\n};\n\nexport type FetchRuleDetailsActionT = {\n    type: typeof FETCH_RULE_DETAILS_REQUEST;\n    ruleId: RuleIdT;\n};\n\nexport type FetchRuleDetailsBeginActionT = {\n    type: typeof FETCH_RULE_DETAILS_REQUEST_BEGIN;\n    ruleId: RuleIdT;\n};\n\nexport type FetchRuleDetailsSuccessActionT = {\n    type: typeof FETCH_RULE_DETAILS_REQUEST_SUCCESS;\n    ruleId: RuleIdT;\n    ruleDetails: RuleDetailsT | null;\n};\n\nexport type FetchRuleDetailsErrorActionT = {\n    type: typeof FETCH_RULE_DETAILS_REQUEST_ERROR;\n    ruleId: RuleIdT;\n    error: Error;\n};\n\nexport type FetchRulesPageActionT = {\n    type: typeof FETCH_RULES_PAGE_REQUEST;\n    pageNumber: PageNumberT;\n    query: FetchRulePageQueryT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchRulesPageBeginActionT = {\n    type: typeof FETCH_RULES_PAGE_REQUEST_BEGIN;\n    pageNumber: PageNumberT;\n    query: FetchRulePageQueryT;\n};\n\nexport type FetchRulesPageSuccessActionT = {\n    type: typeof FETCH_RULES_PAGE_REQUEST_SUCCESS;\n    pageNumber: PageNumberT;\n    query: FetchRulePageQueryT;\n    pageResponse: PageResponseT<RuleT> | null;\n};\n\nexport type FetchRulesPageErrorActionT = {\n    type: typeof FETCH_RULES_PAGE_REQUEST_ERROR;\n    pageNumber: PageNumberT;\n    error: Error;\n    query: FetchRulePageQueryT;\n};\n\nexport type ResetRulePagesActionT = {\n    type: typeof RESET_RULE_PAGES;\n    mutationListOptions: MutationListOptionsT;\n};\n\nexport type UpdateRuleActionT = {\n    type: typeof UPDATE_RULE_REQUEST;\n    ruleId: RuleIdT;\n    ruleDraft: RuleDraftT;\n};\n\nexport type UpdateRuleBeginActionT = {\n    type: typeof UPDATE_RULE_REQUEST_BEGIN;\n};\n\nexport type UpdateRuleSuccessActionT = {\n    type: typeof UPDATE_RULE_REQUEST_SUCCESS;\n};\n\nexport type UpdateRuleErrorActionT = {\n    type: typeof UPDATE_RULE_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type UpdateRuleResetActionT = {\n    type: typeof UPDATE_RULE_REQUEST_RESET;\n};\n\nexport type ActivationRulesActionT = {\n    type: typeof ACTIVATE_RULES_REQUEST;\n    ids: Array<RuleIdT>;\n};\n\nexport type DeactivationRulesActionT = {\n    type: typeof DEACTIVATE_RULES_REQUEST;\n    ids: Array<RuleIdT>;\n};\n\nexport type CreateRuleActionT = {\n    type: typeof CREATE_RULE_REQUEST;\n    ruleDraft: RuleDraftT;\n};\n\nexport type CreateRuleBeginActionT = {\n    type: typeof CREATE_RULE_REQUEST_BEGIN;\n};\n\nexport type CreateRuleSuccessActionT = {\n    type: typeof CREATE_RULE_REQUEST_SUCCESS;\n};\n\nexport type CreateRuleErrorActionT = {\n    type: typeof CREATE_RULE_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type CreateRuleResetActionT = {\n    type: typeof CREATE_RULE_REQUEST_RESET;\n};\n\nexport type DeleteRulesActionT = {\n    type: typeof DELETE_RULES_REQUEST;\n    ids: Array<RuleIdT>;\n};\n\nexport type DeleteRulesBeginActionT = {\n    type: typeof DELETE_RULES_REQUEST_BEGIN;\n};\n\nexport type DeleteRulesSuccessActionT = {\n    type: typeof DELETE_RULES_REQUEST_SUCCESS;\n};\n\nexport type DeleteRulesErrorActionT = {\n    type: typeof DELETE_RULES_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type PreviewRuleActionT = {\n    type: typeof PREVIEW_RULE_REQUEST;\n    data: RulePreviewRequestT;\n};\n\nexport type PreviewRuleBeginActionT = {\n    type: typeof PREVIEW_RULE_REQUEST_BEGIN;\n};\n\nexport type PreviewRuleSuccessActionT = {\n    type: typeof PREVIEW_RULE_REQUEST_SUCCESS;\n    data: RulePreviewResponseT | null;\n};\n\nexport type PreviewRuleErrorActionT = {\n    type: typeof PREVIEW_RULE_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type PreviewRuleResetActionT = {\n    type: typeof PREVIEW_RULE_REQUEST_RESET;\n};\n\nexport type RulesActionT =\n    | FetchRulesPageActionT\n    | FetchRulesPageBeginActionT\n    | FetchRulesPageSuccessActionT\n    | FetchRulesPageErrorActionT\n    | UpdateRuleActionT\n    | UpdateRuleBeginActionT\n    | UpdateRuleSuccessActionT\n    | UpdateRuleErrorActionT\n    | UpdateRuleResetActionT\n    | ResetRulePagesActionT\n    | ActivationRulesActionT\n    | DeactivationRulesActionT\n    | CreateRuleActionT\n    | CreateRuleBeginActionT\n    | CreateRuleSuccessActionT\n    | CreateRuleErrorActionT\n    | CreateRuleResetActionT\n    | PreviewRuleActionT\n    | PreviewRuleBeginActionT\n    | PreviewRuleSuccessActionT\n    | PreviewRuleErrorActionT\n    | PreviewRuleResetActionT\n    | DeleteRulesActionT\n    | DeleteRulesBeginActionT\n    | DeleteRulesSuccessActionT\n    | DeleteRulesErrorActionT\n    | FetchRuleDetailsActionT\n    | FetchRuleDetailsBeginActionT\n    | FetchRuleDetailsSuccessActionT\n    | FetchRuleDetailsErrorActionT;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"BidsCountCell__wrap___w9nD6\",\"tooltip-content\":\"BidsCountCell__tooltip-content___ChrUv\",\"tooltip\":\"BidsCountCell__tooltip___gZr2v\",\"fadeIn\":\"BidsCountCell__fadeIn___bWaCZ\",\"blinking\":\"BidsCountCell__blinking___IZRbz\"};","import React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport Modal from 'common/components/Modal/Modal';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { ApplyContextParamsT } from 'broker-admin/store/order-edit-context/models';\n\nexport type UpdateTourConfirmationDataT = ApplyContextParamsT;\n\ntype PropsT = {\n    data: UpdateTourConfirmationDataT | null;\n    isLoading: boolean;\n    onCancel: () => void;\n    onClose: () => void;\n    onConfirm: (data: UpdateTourConfirmationDataT) => void;\n};\n\nconst TEST_SELECTOR = 'update-tour-confirmation';\n\nconst UpdateTourConfirmationModal: React.FC<PropsT> = React.memo((props) => {\n    const { data, isLoading, onCancel, onClose, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            isDisabled: isLoading,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            onClick: onCancel,\n                        },\n                        {\n                            children: t('common:error-modal.actions.update'),\n                            theme: ButtonThemeEnum.danger,\n                            isDisabled: isLoading,\n                            isLoading,\n                            testSelector: `${TEST_SELECTOR}_confirm`,\n                            onClick: () => onConfirm(data),\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                    title={t('broker-order-route-edit.update-tour-confirmation.title')}\n                    message={t('broker-order-route-edit.update-tour-confirmation.message')}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default UpdateTourConfirmationModal;\n","import requestStatus from 'common/utils/request-status';\nimport {\n    ASSIGNMENT_REQUEST_BEGIN,\n    ASSIGNMENT_REQUEST_ERROR,\n    ASSIGNMENT_REQUEST_SUCCESS,\n    DriverAssigmentActionT,\n    DriverAssigmentStateT,\n    RESET,\n    RE_ASSIGNMENT_REQUEST_BEGIN,\n    RE_ASSIGNMENT_REQUEST_SUCCESS,\n    RE_ASSIGNMENT_REQUEST_ERROR,\n} from './types';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: DriverAssigmentStateT = {\n    tourId: null,\n    assigmentStatus: requestStatus.initial,\n    reAssigmentStatus: requestStatus.initial,\n};\n\nexport default (\n    state = initialState,\n    action: DriverAssigmentActionT | DestroySessionActionT,\n): DriverAssigmentStateT => {\n    switch (action.type) {\n        case ASSIGNMENT_REQUEST_BEGIN: {\n            return {\n                ...state,\n                assigmentStatus: requestStatus.loading,\n            };\n        }\n\n        case ASSIGNMENT_REQUEST_SUCCESS: {\n            return {\n                ...state,\n                assigmentStatus: requestStatus.ok,\n            };\n        }\n\n        case ASSIGNMENT_REQUEST_ERROR: {\n            const { error } = action;\n            return {\n                ...state,\n                assigmentStatus: requestStatus.setError(error),\n            };\n        }\n\n        case RE_ASSIGNMENT_REQUEST_BEGIN: {\n            return {\n                ...state,\n                reAssigmentStatus: requestStatus.loading,\n            };\n        }\n\n        case RE_ASSIGNMENT_REQUEST_SUCCESS: {\n            return {\n                ...state,\n                reAssigmentStatus: requestStatus.ok,\n            };\n        }\n\n        case RE_ASSIGNMENT_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                reAssigmentStatus: requestStatus.setError(error),\n            };\n        }\n\n        case DESTROY_SESSION:\n        case RESET: {\n            return {\n                ...initialState,\n            };\n        }\n\n        default:\n            return state;\n    }\n};\n","import {\n    FETCH_RFQ_STATS_REQUEST,\n    FETCH_RFQ_STATS_REQUEST_BEGIN,\n    FETCH_RFQ_STATS_REQUEST_ERROR,\n    FETCH_RFQ_STATS_REQUEST_SUCCESS,\n    FetchRFQStatsActionT,\n    FetchRFQStatsBeginActionT,\n    FetchRFQStatsErrorActionT,\n    FetchRFQStatsSuccessActionT,\n    RESET,\n    ResetRFQStatsActionT,\n} from './types';\nimport { ApiRFQStatsT, RFQStatsQueryT } from './models';\n\nexport const fetchRFQStats = (query: RFQStatsQueryT): FetchRFQStatsActionT => ({\n    type: FETCH_RFQ_STATS_REQUEST,\n    query,\n});\n\nexport const fetchRFQStatsBegin = (query: RFQStatsQueryT): FetchRFQStatsBeginActionT => ({\n    type: FETCH_RFQ_STATS_REQUEST_BEGIN,\n    query,\n});\n\nexport const fetchRFQStatsSuccess = (query: RFQStatsQueryT, stats: ApiRFQStatsT): FetchRFQStatsSuccessActionT => ({\n    type: FETCH_RFQ_STATS_REQUEST_SUCCESS,\n    query,\n    stats,\n});\n\nexport const fetchRFQStatsError = (query: RFQStatsQueryT, error: Error): FetchRFQStatsErrorActionT => ({\n    type: FETCH_RFQ_STATS_REQUEST_ERROR,\n    error,\n    query,\n});\n\nexport const resetRFQStats = (): ResetRFQStatsActionT => ({\n    type: RESET,\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"TableError__inner___RZ0rk\",\"fadeIn\":\"TableError__fadeIn___TSBRK\",\"blinking\":\"TableError__blinking___VVECG\"};","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"NotificationCardInnerLayout__inner___QwfXb\",\"fadeIn\":\"NotificationCardInnerLayout__fadeIn___JFmdB\",\"blinking\":\"NotificationCardInnerLayout__blinking___Pggwj\"};","import {\n    FIND_SHIPPERS_REQUEST_BY_QUERY,\n    FIND_SHIPPERS_REQUEST_BEGIN,\n    FIND_SHIPPERS_REQUEST_ERROR,\n    FIND_SHIPPERS_REQUEST_SUCCESS,\n    FindShippersByQueryActionT,\n    FindShippersBeginActionT,\n    FindShippersErrorActionT,\n    FindShippersSuccessActionT,\n    RESET,\n    ResetActionT,\n    FindShippersByIdActionT,\n    FIND_SHIPPERS_REQUEST_BY_ID,\n} from './types';\n\nimport { FindShippersQueryT, PartnerT } from './models';\n\nexport const findShippersByQuery = (query: FindShippersQueryT): FindShippersByQueryActionT => ({\n    type: FIND_SHIPPERS_REQUEST_BY_QUERY,\n    query,\n});\n\nexport const findShippersById = (partnerId: PartnerIdT, query: FindShippersQueryT): FindShippersByIdActionT => ({\n    type: FIND_SHIPPERS_REQUEST_BY_ID,\n    partnerId,\n    query,\n});\n\nexport const findShippersBegin = (query: FindShippersQueryT): FindShippersBeginActionT => ({\n    type: FIND_SHIPPERS_REQUEST_BEGIN,\n    query,\n});\n\nexport const findShippersSuccess = (partners: PartnerT[]): FindShippersSuccessActionT => ({\n    type: FIND_SHIPPERS_REQUEST_SUCCESS,\n    partners,\n});\n\nexport const findShippersError = (error: Error): FindShippersErrorActionT => ({\n    type: FIND_SHIPPERS_REQUEST_ERROR,\n    error,\n});\n\nexport const reset = (): ResetActionT => ({\n    type: RESET,\n});\n","import { SpotRequestDetailsT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport const FETCH_SPOT_REQUEST_DETAILS_REQUEST =\n    'broker-admin/spot-request-details/FETCH_SPOT_REQUEST_DETAILS_REQUEST';\nexport const FETCH_SPOT_REQUEST_DETAILS_REQUEST_BEGIN =\n    'broker-admin/spot-request-details/FETCH_SPOT_REQUEST_DETAILS_REQUEST_BEGIN';\nexport const FETCH_SPOT_REQUEST_DETAILS_REQUEST_ERROR =\n    'broker-admin/spot-request-details/FETCH_SPOT_REQUEST_DETAILS_REQUEST_ERROR';\nexport const FETCH_SPOT_REQUEST_DETAILS_REQUEST_SUCCESS =\n    'broker-admin/spot-request-details/FETCH_SPOT_REQUEST_DETAILS_REQUEST_SUCCESS';\n\nexport const ASSIGN_BID_TO_SPOT_REQUEST = 'broker-admin/spot-request-details/ASSIGN_BID_TO_SPOT_REQUEST';\n\nexport const UPDATE_SPOT_REQUEST_REQUEST_BEGIN = 'broker-admin/spot-request-details/UPDATE_SPOT_REQUEST_REQUEST_BEGIN';\nexport const UPDATE_SPOT_REQUEST_REQUEST_ERROR = 'broker-admin/spot-request-details/UPDATE_SPOT_REQUEST_REQUEST_ERROR';\nexport const UPDATE_SPOT_REQUEST_REQUEST_SUCCESS =\n    'broker-admin/spot-request-details/UPDATE_SPOT_REQUEST_REQUEST_SUCCESS';\n\nexport type SpotRequestDetailsStateT = {\n    details: SpotRequestDetailsT | null;\n    fetchDetailsRequestStatus: RequestStatusT;\n    updateRequestStatus: RequestStatusT;\n};\n\nexport type SpotRequestDetailsByIdStateT = Record<SpotRequestIdT, SpotRequestDetailsStateT>;\n\nexport type FetchSpotRequestDetailsRequestActionT = {\n    type: typeof FETCH_SPOT_REQUEST_DETAILS_REQUEST;\n    id: SpotRequestIdT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchSpotRequestDetailsRequestBeginActionT = {\n    type: typeof FETCH_SPOT_REQUEST_DETAILS_REQUEST_BEGIN;\n    id: SpotRequestIdT;\n};\n\nexport type FetchSpotRequestDetailsRequestErrorActionT = {\n    type: typeof FETCH_SPOT_REQUEST_DETAILS_REQUEST_ERROR;\n    error: Error;\n    id: SpotRequestIdT;\n};\n\nexport type FetchSpotRequestDetailsRequestSuccessActionT = {\n    type: typeof FETCH_SPOT_REQUEST_DETAILS_REQUEST_SUCCESS;\n    details: SpotRequestDetailsT | null;\n    id: SpotRequestIdT;\n};\n\nexport type AssignBidToSpotRequestActionT = {\n    type: typeof ASSIGN_BID_TO_SPOT_REQUEST;\n    id: SpotRequestIdT;\n    bidId: BidIdT;\n};\n\nexport type UpdateSpotRequestRequestBeginActionT = {\n    type: typeof UPDATE_SPOT_REQUEST_REQUEST_BEGIN;\n    id: SpotRequestIdT;\n};\n\nexport type UpdateSpotRequestRequestErrorActionT = {\n    type: typeof UPDATE_SPOT_REQUEST_REQUEST_ERROR;\n    error: Error;\n    id: SpotRequestIdT;\n};\n\nexport type UpdateSpotRequestRequestSuccessActionT = {\n    type: typeof UPDATE_SPOT_REQUEST_REQUEST_SUCCESS;\n    id: SpotRequestIdT;\n};\n\nexport type SpotRequestDetailsActionT =\n    | FetchSpotRequestDetailsRequestActionT\n    | FetchSpotRequestDetailsRequestBeginActionT\n    | FetchSpotRequestDetailsRequestErrorActionT\n    | FetchSpotRequestDetailsRequestSuccessActionT\n    | UpdateSpotRequestRequestBeginActionT\n    | UpdateSpotRequestRequestErrorActionT\n    | UpdateSpotRequestRequestSuccessActionT;\n","// extracted by mini-css-extract-plugin\nexport default {\"zone-title\":\"TimeWindowZoneText__zone-title___WK2dG\",\"content\":\"TimeWindowZoneText__content___WSUGa\",\"content__content\":\"TimeWindowZoneText__content__content___mfJiw\",\"text\":\"TimeWindowZoneText__text___k2zQm\",\"fadeIn\":\"TimeWindowZoneText__fadeIn___RIw51\",\"blinking\":\"TimeWindowZoneText__blinking___sivrK\"};","import React from 'react';\n\nimport { FieldMetaProps } from 'formik';\nimport FieldLabel from 'design-system/components/form-field/FieldLabel/FieldLabel';\nimport { TooltipPositionEnum } from 'design-system/components/Tooltip/Tooltip';\nimport isEqual from 'lodash/isEqual';\nimport isNumber from 'lodash/isNumber';\nimport FieldNotes from 'design-system/components/form-field/FieldNotes/FieldNotes';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './FormikField.scss';\n\nconst cx = classNames.bind(styles);\n\nexport type FormikFieldChildrenPropsT<ValueT> = {\n    hasError: boolean;\n    hasWarning: boolean;\n    hasSuccess: boolean;\n    onChange: (value: ValueT) => void;\n    onBlur: () => void;\n    onFocus: () => void;\n    hasChanges: boolean;\n};\n\nexport type FormikFieldPropsT<ValueT> = {\n    name: string;\n    label?: React.ReactNode;\n    subLabel?: React.ReactNode;\n    labelRightNode?: React.ReactNode;\n    error?: any;\n    warning?: string | null;\n    success?: string | null;\n    asyncError?: React.ReactNode;\n    resetAsyncError?: (name: string) => void;\n    meta: FieldMetaProps<ValueT>;\n    isShowFocusError?: boolean;\n    isAlwaysShowError?: boolean;\n    isForceShowWarning?: boolean;\n    className?: string;\n    fieldLabelClassName?: string;\n    withoutLabel?: boolean;\n    withoutLabelAndNotes?: boolean;\n    submitCount?: number;\n    children: (props: FormikFieldChildrenPropsT<ValueT>) => React.ReactElement | null;\n    setFieldValue: (name: string, value: ValueT) => void;\n    setFieldTouched: (name: string, value: boolean) => void;\n    tooltipNode?: React.ReactNode;\n    tooltipPosition?: TooltipPositionEnum;\n    isCheckbox?: boolean;\n};\n\nconst FormikField = <ValueT,>(props: FormikFieldPropsT<ValueT>) => {\n    const {\n        name,\n        label,\n        subLabel,\n        labelRightNode,\n        error,\n        warning,\n        success,\n        meta,\n        isShowFocusError,\n        isAlwaysShowError,\n        isForceShowWarning,\n        submitCount,\n        asyncError,\n        resetAsyncError,\n        className,\n        fieldLabelClassName,\n        children,\n        setFieldValue,\n        setFieldTouched,\n        withoutLabelAndNotes,\n        withoutLabel,\n        tooltipNode,\n        tooltipPosition,\n        isCheckbox,\n    } = props;\n\n    const [isFocused, setFocused] = React.useState<boolean>(false);\n\n    const isShowFormikError =\n        meta.touched ||\n        (isNumber(submitCount) && submitCount > 0) ||\n        (isShowFocusError && isFocused) ||\n        isAlwaysShowError;\n    const hasError = !!(error && isShowFormikError) || !!asyncError;\n\n    const hasWarning = !!warning && (meta.touched || !!isForceShowWarning);\n\n    const hasSuccess = !!success && !hasWarning && !hasError;\n\n    const hasChanges = !isEqual(meta.value, meta.initialValue) && (meta.touched || isFocused);\n\n    const onChange = React.useCallback(\n        (value: ValueT) => {\n            setFieldValue(name, value);\n\n            if (asyncError && resetAsyncError) {\n                resetAsyncError(name);\n            }\n        },\n        [setFieldValue, name, resetAsyncError, asyncError],\n    );\n\n    const onFocus = React.useCallback(() => {\n        setFocused(true);\n    }, [setFocused]);\n\n    const onBlur = React.useCallback(() => {\n        setFocused(false);\n\n        if (setFieldTouched) {\n            setFieldTouched(name, true);\n        }\n    }, [setFocused, setFieldTouched, name]);\n\n    const childrenProps: FormikFieldChildrenPropsT<ValueT> = React.useMemo(() => {\n        return {\n            hasError,\n            hasWarning,\n            hasSuccess,\n            onChange,\n            onBlur,\n            onFocus,\n            hasChanges,\n        };\n    }, [hasError, hasWarning, hasSuccess, onChange, onBlur, onFocus, hasChanges]);\n\n    if (withoutLabelAndNotes) {\n        return children(childrenProps);\n    }\n\n    return (\n        <div className={cs(cx('field'), className)}>\n            {!withoutLabel ? (\n                <FieldLabel\n                    label={label}\n                    className={fieldLabelClassName}\n                    subLabel={subLabel}\n                    tooltipNode={tooltipNode}\n                    tooltipPosition={tooltipPosition}\n                    rightNode={labelRightNode}\n                />\n            ) : null}\n            {children(childrenProps)}\n            <FieldNotes\n                className={cx('notes', {\n                    'notes--checkbox': isCheckbox,\n                })}\n                hasError={hasError}\n                hasWarning={hasWarning}\n                hasSuccess={hasSuccess}\n                error={asyncError || error}\n                success={success}\n                warning={warning}\n            />\n        </div>\n    );\n};\n\nexport default React.memo(FormikField) as typeof FormikField;\n","import * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport GoogleMapReact, { ClickEventValue } from 'google-map-react';\nimport { BOOTSTRAP_URL_KEYS, DEFAULT_CENTER, DEFAULT_ZOOM, MAP_OPTIONS } from 'common/store/constants';\nimport useGoogleMapsApiLoader from 'common/utils/hooks/maps/useGoogleMapsApiLoader';\nimport { useGoogleMapContext } from 'common/utils/hooks/maps/useGoogleMapContext';\nimport isNumber from 'lodash/isNumber';\nimport { useGoogleMapGeocoding } from 'common/utils/hooks/maps/useGoogleMapGeocoding';\nimport { isNonNil } from 'common/utils';\nimport { useRouteGeometry } from 'common/utils/hooks/useRouteGeometry';\nimport {\n    MapRoutePointT,\n    OnSetMapBoundingBoxCallbackT,\n    SyncRouteEditFormMapStateContext,\n} from '../contexts/sync-map-state';\nimport MapLoader from 'common/components/maps/MapLoader/MapLoader';\nimport MapRoute, { MapRouteThemeEnum } from 'common/components/maps/MapRoute/MapRoute';\nimport { useSelector } from 'react-redux';\nimport { selectRoutingGeometryStates } from 'common/store/routing-geometry/selectors';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport NumberPinIcon from 'common/icons/NumberPinIcon';\nimport classNames from 'classnames/bind';\nimport {\n    selectDeadheadContextRequest,\n    selectIsApplyingContextChanges,\n} from 'broker-admin/store/deadhead-creation/selectors';\nimport keyBy from 'lodash/keyBy';\nimport FerryLocationPin from 'common/components/maps/pins/FerryLocationPin/FerryLocationPin';\nimport { MapPinThemeEnum } from 'common/components/maps/MapPin/MapPin';\nimport ExcludeCountries from './ExcludeCountries/ExcludeCountries';\nimport {\n    DeadheadRouteStopTypeEnum,\n    DeadheadPreviewContextResponseT,\n} from 'broker-admin/store/deadhead-creation/models';\n\nimport styles from './RouteEditMap.scss';\n\nconst KEY_SPREADER = '/';\nconst KEY_PREFIX = 'route-point';\n\nconst formatKey = (routePointId: string): string => {\n    return [KEY_PREFIX, routePointId].join(KEY_SPREADER);\n};\n\nconst parseKey = (key: string): string => {\n    const [, routePointId] = key.split(KEY_SPREADER);\n    return routePointId;\n};\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    isShowExcludeCountriesControl: boolean;\n    deadheadPreviewResponse: DeadheadPreviewContextResponseT | null;\n};\n\nconst RouteEditMap: React.FC<PropsT> = React.memo((props) => {\n    const { isShowExcludeCountriesControl, deadheadPreviewResponse } = props;\n\n    const { googleMaps } = useGoogleMapContext();\n    const { onGoogleApiLoaded } = useGoogleMapsApiLoader({});\n    const { tryGeocodeByPoint } = useGoogleMapGeocoding();\n\n    const createContextRequest = useSelector(selectDeadheadContextRequest);\n    const isApplyingContextChanges = useSelector(selectIsApplyingContextChanges);\n\n    const isLoading = isApplyingContextChanges || createContextRequest?.loading;\n\n    const syncMapStateContext = useContext(SyncRouteEditFormMapStateContext);\n    const { mapRoutePoints, excludedCountries, setExcludedCountries } = syncMapStateContext;\n\n    const mapRoutePointsById = React.useMemo(() => {\n        return keyBy(mapRoutePoints, 'id');\n    }, [mapRoutePoints]);\n\n    const draggablePinRef = React.useRef<string | null>(null);\n    const [activeLocation, setActiveLocation] = React.useState<LocationT | null>(null);\n    const [draggable, setDraggable] = React.useState(true);\n\n    const handleDragMove = (childKey: string, childProps: any, mouse: GeoPointT) => {\n        const routePointId = parseKey(childKey);\n        const mapRoutePoint = mapRoutePointsById[routePointId] || null;\n        if (!mapRoutePoint?.isDraggable) {\n            return;\n        }\n\n        setDraggable(false);\n\n        draggablePinRef.current = childKey;\n\n        setActiveLocation({\n            point: {\n                lat: mouse.lat,\n                lng: mouse.lng,\n            },\n            address: null,\n            addressComponents: null,\n            utcOffsetMinutes: null,\n        });\n    };\n\n    React.useEffect(() => {\n        setActiveLocation(null);\n        draggablePinRef.current = null;\n    }, [mapRoutePoints]);\n\n    const handleDragEnd = async (childKey: string, childProps: any, mouse: GeoPointT) => {\n        if (draggablePinRef.current !== childKey) {\n            return;\n        }\n\n        setDraggable(true);\n\n        const location = await tryGeocodeByPoint(mouse);\n\n        const routePointId = parseKey(childKey);\n\n        syncMapStateContext.onDragEndDnDCallback?.callback?.(routePointId, location);\n    };\n\n    const handleMapClick = async (event: ClickEventValue) => {\n        const location = await tryGeocodeByPoint(event);\n        syncMapStateContext.onMapClickCallback?.callback?.(location);\n    };\n\n    const prevBoundingBoxHashRef = React.useRef<string>('');\n    const onSetMapBoundingBoxCallback: OnSetMapBoundingBoxCallbackT = React.useCallback(\n        (boundPoints) => {\n            if (!boundPoints) {\n                return;\n            }\n\n            const boundingBoxHashRef = JSON.stringify(boundPoints);\n            if (prevBoundingBoxHashRef.current === boundingBoxHashRef) {\n                return;\n            }\n\n            prevBoundingBoxHashRef.current = boundingBoxHashRef;\n\n            if (!googleMaps.map || !googleMaps.maps) {\n                return;\n            }\n            const { map, maps } = googleMaps;\n\n            const bounds = new maps.LatLngBounds();\n\n            boundPoints.forEach((boundPoint) => {\n                const [latitude, longitude] = boundPoint;\n                if (isNumber(latitude) && isNumber(longitude)) {\n                    const latLng = new maps.LatLng(latitude, longitude);\n                    bounds.extend(latLng);\n                }\n            });\n\n            map.fitBounds(bounds);\n        },\n        [googleMaps, prevBoundingBoxHashRef],\n    );\n\n    React.useEffect(() => {\n        syncMapStateContext.setOnSetMapBoundingBox({\n            callback: onSetMapBoundingBoxCallback,\n        });\n\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [onSetMapBoundingBoxCallback, syncMapStateContext.setOnSetMapBoundingBox]);\n\n    const polylineIds = useMemo(() => {\n        return [\n            deadheadPreviewResponse?.truckToTrailerPolylineId,\n            deadheadPreviewResponse?.trailerToPickupPolylineId,\n            deadheadPreviewResponse?.payloadPolylineId,\n            deadheadPreviewResponse?.dropTrailerPolylineId,\n            deadheadPreviewResponse?.dropTruckPolylineId,\n        ].filter(isNonNil);\n    }, [deadheadPreviewResponse]);\n\n    const payloadGeometryStates = useSelector(selectRoutingGeometryStates(polylineIds));\n\n    useRouteGeometry(polylineIds);\n\n    const renderRoutePointPin = (mapRoutePoint: MapRoutePointT): React.ReactNode => {\n        const key = formatKey(mapRoutePoint.id);\n\n        let latLngProps = {};\n        if (draggablePinRef.current === key) {\n            if (!activeLocation?.point) {\n                return null;\n            }\n\n            latLngProps = {\n                lat: activeLocation.point.lat,\n                lng: activeLocation.point.lng,\n            };\n        } else {\n            if (!mapRoutePoint?.location?.point) {\n                return null;\n            }\n\n            latLngProps = {\n                lat: mapRoutePoint.location.point?.lat,\n                lng: mapRoutePoint.location.point?.lng,\n            };\n        }\n\n        if (\n            mapRoutePoint.type === DeadheadRouteStopTypeEnum.ferryDisembark ||\n            mapRoutePoint.type === DeadheadRouteStopTypeEnum.ferryOnboard\n        ) {\n            let theme = MapPinThemeEnum.charcoal;\n            if (mapRoutePoint.hasError) {\n                theme = MapPinThemeEnum.tomatoRed;\n            }\n\n            return (\n                <FerryLocationPin\n                    key={key}\n                    className={cx('route-point-pin', 'route-point-pin--ferry')}\n                    {...latLngProps}\n                    theme={theme}\n                />\n            );\n        }\n\n        let fillColor = StyleGuideColorsEnum.charcoal;\n        if (mapRoutePoint.type === DeadheadRouteStopTypeEnum.driveThrough) {\n            fillColor = StyleGuideColorsEnum.gray;\n        }\n\n        if (mapRoutePoint.hasError) {\n            fillColor = StyleGuideColorsEnum.tomatoRed;\n        }\n\n        return (\n            <NumberPinIcon\n                number={mapRoutePoint.number}\n                key={key}\n                className={cx('route-point-pin', 'route-point-pin--number')}\n                fillColor={fillColor}\n                {...latLngProps}\n            />\n        );\n    };\n\n    const fixReRenderRouteKey = `${mapRoutePoints?.length || 0}`;\n\n    return (\n        <>\n            {isLoading && <MapLoader />}\n            <GoogleMapReact\n                key=\"broker-deadhead-creation\"\n                onGoogleApiLoaded={onGoogleApiLoaded}\n                yesIWantToUseGoogleMapApiInternals\n                draggable={draggable}\n                center={undefined}\n                zoom={undefined}\n                defaultCenter={DEFAULT_CENTER}\n                defaultZoom={DEFAULT_ZOOM}\n                bootstrapURLKeys={BOOTSTRAP_URL_KEYS}\n                onClick={handleMapClick}\n                options={MAP_OPTIONS}\n                onChildMouseDown={handleDragMove}\n                onChildMouseUp={handleDragEnd}\n                onChildMouseMove={handleDragMove}\n            >\n                {mapRoutePoints.map((mapRoutePoint) => {\n                    return renderRoutePointPin(mapRoutePoint);\n                })}\n            </GoogleMapReact>\n            {payloadGeometryStates.map((payloadGeometryState, index) => {\n                return (\n                    <MapRoute\n                        key={`tour-deadhead-route-${index}-${fixReRenderRouteKey}`}\n                        map={googleMaps?.map}\n                        maps={googleMaps?.maps}\n                        geometryLibrary={googleMaps?.libraries?.geometry}\n                        polylines={payloadGeometryState.data}\n                        theme={MapRouteThemeEnum.tourDeadhead}\n                        zIndex={0}\n                    />\n                );\n            })}\n            {isShowExcludeCountriesControl && (\n                <ExcludeCountries\n                    className={cx('exclude-countries')}\n                    excludedCountries={excludedCountries}\n                    onChangeExcludedCountries={setExcludedCountries}\n                />\n            )}\n        </>\n    );\n});\n\nexport default RouteEditMap;\n","import React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './ContentMargins.scss';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    children: React.ReactNode;\n    className?: string;\n};\n\nconst ContentMargins: React.FC<PropsT> = React.memo((props) => {\n    const { children, className } = props;\n\n    return <div className={cs(cx('content'), className)}>{children}</div>;\n});\n\nexport default ContentMargins;\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"LastAssetTrackPointPin__content___C26CG\",\"last-track-point-updated\":\"LastAssetTrackPointPin__last-track-point-updated___xaZJM\",\"inner--has-paddings\":\"LastAssetTrackPointPin__inner--has-paddings___tFsXN\",\"fadeIn\":\"LastAssetTrackPointPin__fadeIn___ZrarZ\",\"blinking\":\"LastAssetTrackPointPin__blinking___T2_Yo\"};","import {\n    PartnerTypeEnum,\n    RFQShipperSourceEnum,\n    RFQsQuickFilterEnum,\n    RFQsSortEnum,\n    RFQStatusEnum,\n} from 'common/utils/api/models';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from './query-models';\nimport {\n    AnyFetchRFQsPageQueryT,\n    ApiRfqFilterSourceT,\n    FetchBrokerRFQsPageQueryT,\n    FetchShipperRFQsPageQueryT,\n} from 'common/store/rfqs/models';\nimport { PageSortT, SortDirectionEnum } from 'common/utils/query';\n\nconst getQueryFromQuickFilters = (quickFilter?: RFQsQuickFilterEnum): AnyFetchRFQsPageQueryT => {\n    switch (quickFilter) {\n        case RFQsQuickFilterEnum.closed: {\n            return {\n                status: RFQStatusEnum.closed,\n            };\n        }\n        case RFQsQuickFilterEnum.completed: {\n            return {\n                status: RFQStatusEnum.completed,\n            };\n        }\n        case RFQsQuickFilterEnum.preExpire: {\n            return {\n                status: RFQStatusEnum.expireSoon,\n            };\n        }\n        case RFQsQuickFilterEnum.expired: {\n            return {\n                status: RFQStatusEnum.expired,\n            };\n        }\n        case RFQsQuickFilterEnum.open: {\n            return {\n                status: RFQStatusEnum.open,\n            };\n        }\n        default:\n            return {};\n    }\n};\n\nconst formatSort = (sort: PageSortT<RFQsSortEnum> | null): AnyFetchRFQsPageQueryT['sorting'] | null => {\n    switch (sort?.value) {\n        case RFQsSortEnum.creationDate: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'CREATED_ASC';\n            }\n            return 'CREATED_DESC';\n        }\n        case RFQsSortEnum.deadline: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'DEADLINE_ASC';\n            }\n            return 'DEADLINE_DESC';\n        }\n        default: {\n            return null;\n        }\n    }\n};\n\nconst prepareCommonFetchPageQuery = (queryFilters: QueryFiltersT, sort: PageSortT<RFQsSortEnum> | null) => {\n    const dictTrailerId = queryFilters[QueryFiltersKeysEnum.dictTrailerId];\n\n    return {\n        trailerType: typeof dictTrailerId === 'string' ? +dictTrailerId : undefined,\n        origin: queryFilters[QueryFiltersKeysEnum.pickupAddress] || undefined,\n        destination: queryFilters[QueryFiltersKeysEnum.dropoffAddress] || undefined,\n\n        textSearch: queryFilters[QueryFiltersKeysEnum.searchText] || undefined,\n\n        pickupFrom: queryFilters[QueryFiltersKeysEnum.pickupDateFrom] || undefined,\n        pickupTo: queryFilters[QueryFiltersKeysEnum.pickupDateTo] || undefined,\n\n        dropOffFrom: queryFilters[QueryFiltersKeysEnum.dropOffDateFrom] || undefined,\n        dropOffTo: queryFilters[QueryFiltersKeysEnum.dropOffDateTo] || undefined,\n\n        createdFrom: queryFilters[QueryFiltersKeysEnum.createdDateFrom] || undefined,\n        createdTo: queryFilters[QueryFiltersKeysEnum.createdDateTo] || undefined,\n\n        createdBy: queryFilters[QueryFiltersKeysEnum.createdById] || undefined,\n\n        ...getQueryFromQuickFilters(queryFilters[QueryFiltersKeysEnum.quickFilter]),\n\n        ...(sort?.value\n            ? {\n                  sorting: formatSort(sort) || undefined,\n              }\n            : {}),\n    };\n};\n\nconst prepareShipperFetchPageQuery = (\n    queryFilters: QueryFiltersT,\n    sort: PageSortT<RFQsSortEnum> | null,\n): FetchShipperRFQsPageQueryT => {\n    const source = queryFilters[QueryFiltersKeysEnum.source];\n\n    return {\n        ...prepareCommonFetchPageQuery(queryFilters, sort),\n        imported: source ? source === RFQShipperSourceEnum.imported : undefined,\n    };\n};\n\nconst prepareBrokerFetchPageQuery = (\n    queryFilters: QueryFiltersT,\n    sort: PageSortT<RFQsSortEnum> | null,\n): FetchBrokerRFQsPageQueryT => {\n    return {\n        ...prepareCommonFetchPageQuery(queryFilters, sort),\n        shipperId: queryFilters[QueryFiltersKeysEnum.shipperIds] || undefined,\n        source: (queryFilters[QueryFiltersKeysEnum.extendedSource] as ApiRfqFilterSourceT[]) || undefined,\n    };\n};\n\nconst prepareFetchPageQuery = (\n    partnerType: PartnerTypeEnum | null,\n    queryFilters: QueryFiltersT,\n    sort: PageSortT<RFQsSortEnum> | null,\n) => {\n    if (partnerType === PartnerTypeEnum.broker) {\n        return prepareBrokerFetchPageQuery(queryFilters, sort);\n    }\n\n    return prepareShipperFetchPageQuery(queryFilters, sort);\n};\n\nexport { prepareFetchPageQuery };\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './DriverFiltersSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport getQueryFilters from './get-query-filters';\nimport getInitialValues from './get-initial-values';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport Input from 'common/components/Input/Input';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { isDeepEqual } from 'common/utils/deep-equal';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport { CommonSidebarDataT, SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { DriverFiltersSidebarDataT } from './models';\nimport { useQueryParams } from 'use-query-params';\nimport { createJsonParams, createPageNumberParam, mergeQueryFilters } from 'common/utils/query';\nimport { QueryFiltersT, QueryKeysEnum } from 'common/layouts/DriversPageLayout/query-models';\nimport SelectedFilters from 'common/layouts/DriversPageLayout/SelectedFilters/SelectedFilters';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = SidebarContentPropsT<DriverFiltersSidebarDataT, CommonSidebarDataT>;\n\nconst DriverFiltersSidebarContent: React.FC<PropsT> = (props) => {\n    const { onClose } = props;\n\n    const { t } = useTranslation();\n\n    const [query, changeQuery] = useQueryParams({\n        [QueryKeysEnum.driversPage]: createPageNumberParam(),\n        [QueryKeysEnum.driversFilters]: createJsonParams<QueryFiltersT>({}),\n    });\n    const queryFilters = query[QueryKeysEnum.driversFilters];\n\n    const [initialQueryFilters, setInitialQueryFilters] = React.useState<QueryFiltersT>(queryFilters);\n\n    React.useEffect(() => {\n        setInitialQueryFilters(queryFilters);\n    }, [queryFilters]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues(queryFilters);\n        return [values, {}];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [queryFilters]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialValues,\n        initialErrors,\n        onSubmit: (values, formikHelpers): void => {\n            const newQueryFilters = getQueryFilters(values);\n            const mergedQueryFilters = {\n                ...mergeQueryFilters(initialQueryFilters, newQueryFilters),\n                ...newQueryFilters,\n            };\n\n            changeQuery({\n                [QueryKeysEnum.driversPage]: 0,\n                [QueryKeysEnum.driversFilters]: mergedQueryFilters,\n            });\n\n            formikHelpers.setTouched({});\n\n            if (onClose) {\n                onClose();\n            }\n        },\n    });\n\n    const isSameValues = React.useMemo(() => {\n        return isDeepEqual(initialValues, formik.values) && isDeepEqual(initialQueryFilters, queryFilters);\n    }, [initialValues, formik.values, initialQueryFilters, queryFilters]);\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('form')}>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent title={t('common:drivers-page.filters.title')} onClose={onClose} />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <div className={cx('block')}>\n                    <FormikField\n                        name={FieldsEnum.name}\n                        label={t('common:drivers-page.filters.fields.name.label')}\n                        error={formik.errors[FieldsEnum.name]}\n                        meta={formik.getFieldMeta(FieldsEnum.name)}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <Input\n                                name={FieldsEnum.name}\n                                value={formik.values[FieldsEnum.name]}\n                                placeholder={t('common:drivers-page.filters.fields.name.placeholder')}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                </div>\n            </SideBarLayout>\n            <FooterSideBarLayout hasPaddings>\n                <div className={cx('selected-filters')}>\n                    <SelectedFilters queryFilters={initialQueryFilters} setQueryFilters={setInitialQueryFilters} />\n                </div>\n                <Button\n                    theme={ButtonThemeEnum.primary}\n                    isDisabled={isSameValues}\n                    isFullWidth\n                    isCenterContent\n                    type=\"submit\"\n                >\n                    {t('common:drivers-page.filters.submit')}\n                </Button>\n            </FooterSideBarLayout>\n        </form>\n    );\n};\n\nexport default DriverFiltersSidebarContent;\n","export type ApiRepeatStrategyTypeTypeT = NonNullable<Api2.Definitions.UpdateManualRateRuleDto['repeatMode']>;\nexport enum RepeatStrategyTypeEnum {\n    none = 'NONE',\n    weekly = 'WEEKLY',\n    monthly = 'MONTHLY',\n    yearly = 'YEARLY',\n}\n\nexport type ApiRuleImpactStrategyTypeT = NonNullable<Api2.Definitions.UpdateManualRateRuleDto['operator']>;\nexport enum RuleImpactStrategyEnum {\n    value = 'VALUE',\n    percent = 'PERCENTS',\n}\n\nexport type ApiPriceComponentTypeT = Api2.Definitions.Target;\nexport enum PriceComponentTypeEnum {\n    lineHaul = 'LINE_HAUL',\n    fuel = 'FUEL',\n    roadTaxes = 'ROAD_TAXES',\n    roadTaxesGeneral = 'ROAD_TAXES_GENERAL',\n    roadTaxesCity = 'ROAD_TAXES_CITY',\n    roadTaxesBridge = 'ROAD_TAXES_BRIDGE',\n    roadTaxesTunnel = 'ROAD_TAXES_TUNNEL',\n    roadTaxesFerry = 'ROAD_TAXES_FERRY',\n    roadTaxesMountainPass = 'ROAD_TAXES_MOUNTAIN_PASS',\n    serviceFee = 'SERVICE_FEE',\n}\n\nexport enum PriceSettingsRuleOperationEnum {\n    surcharge = 'SURCHARGE',\n    discount = 'DISCOUNT',\n    value = 'VALUE',\n}\nexport type ApiPriceSettingsRuleOperationT = Api2.Definitions.FilterOperator;\n\nexport enum StatisticGranularityEnum {\n    day = 'DAY',\n    week = 'WEEK',\n    month = 'MONTH',\n}\n\nexport enum StatisticSourceEnum {\n    native = 'NATIVE',\n    import = 'IMPORT',\n}\n\nexport type ApiDoneStatisticT = Api.Definitions.SeriesAndAggregateMarginRateStatisticsDto;\nexport type ApiDoneFiltersStatisticT = ApiPaths.ApiV1BrokerStatisticsRatesDone.Get.QueryParameters;\n\nexport type ApiRejectStatisticT = Api.Definitions.SeriesAndAggregateRateStatisticsDto;\nexport type ApiRejectFiltersStatisticT = ApiPaths.ApiV1BrokerStatisticsRatesReject.Get.QueryParameters;\n\nexport type ApiBrokerInvoiceT = Api.Definitions.BrokerInvoiceDto;\nexport enum BrokerInvoicesSortEnum {\n    createDate = 'create-date',\n}\n\nexport type ApiCoordinateT = Api2.Definitions.Coordinate;\n\nexport type ApiEditOrderContextT = Api2.Definitions.OrderEditContext;\nexport type ApiTourEditNewStopT = Api2.Definitions.TourEditNewStop;\nexport type ApiTourUpdateStopDataT = Api2.Definitions.TourUpdateStopData;\n\nexport type ApiCancelByBrokerUnavailableReasonT = Api2.Definitions.TOCancelByBrokerUnavailableReason;\nexport type ApiAssignAssetsUnavailableReasonT = Api2.Definitions.AssignAssetsUnavailableReason;\nexport type ApiSendToSpotUnavailableReasonT = Api2.Definitions.SendToSpotUnavailableReason;\n\nexport type ApiBrokerTourTypeT = Api2.Definitions.TourType;\n\nexport enum ApiBrokerTourEnum {\n    deadhead = 'DEADHEAD',\n    shipment = 'SHIPMENT',\n}\n\nexport type ApiDeadheadInitContextQueryT = Api2.Definitions.InitContextRequest;\nexport type ApiDeadheadInitContextResponseT = Api2.Definitions.TourDeadheadInitContextResponse;\n\nexport type ApiDeadheadPreviewContextQueryT = Api2.Definitions.ChooseArrivalDateTimeRequest;\nexport type ApiDeadheadPreviewContextResponseT = Api2.Definitions.TourDeadheadChooseOriginResponse;\n\nexport type ApiDeadheadApplyContextQueryT = Api2.Definitions.BrokerApplyDeadheadContextRequest;\nexport type ApiDeadheadApplyContextResponseT = Api2.Definitions.ApplyContextResponse;\n\nexport type ApiContactT = Api2.Definitions.Contact;\n\nexport type ApiTruckAssetT = Api2.Definitions.TruckAsset;\nexport type ApiTruckAssetInvalidReasonT = NonNullable<Api2.Definitions.TruckAsset['invalidReason']>;\n\nexport type ApiFetchBrokerTeamsPageQueryT = Api2Paths.ApiV1BrokerTeamsFilter.Get.QueryParameters;\nexport type ApiBrokerTeamT = Api2.Definitions.FilterTeamDto;\n\nexport type ApiBrokerTeamDetailsT = Api2.Definitions.TeamDto;\n\nexport type ApiBrokerTeamUserT = Api2.Definitions.TeamUser;\nexport type ApiBrokerTeamCompanyT = Api2.Definitions.TeamCompany;\n\nexport type ApiCreateUpdateTeamRequestT = Api2.Definitions.CreateUpdateTeamRequest;\n\nexport type ApiCarrierAdditionalServiceChangesT = Api2.Definitions.DictCarrierAdditionalServiceCostDto;\n\nexport type ApiShipmentAttachedPaperTypeT = Api2.Definitions.ShipmentAttachedPaperType;\nexport type ApiTourAttachedPaperTypeT = Api2.Definitions.TourAttachedPaperType;\n\nexport type ApiTenderInfoT = Api2.Definitions.SimpleTenderInfo;\n\nexport type ApiAllowedCompanyTypeT = Api2.Definitions.AllowedCompanyType;\nexport type ApiLinkableBusinessPartnerInfoT = Api2.Definitions.LinkableBusinessPartnerInfo;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"ShipperContractLaneCreationConfirmForm__wrap___j8afZ\",\"head\":\"ShipperContractLaneCreationConfirmForm__head___nTRcz\",\"body\":\"ShipperContractLaneCreationConfirmForm__body___hSC4v\",\"receipt\":\"ShipperContractLaneCreationConfirmForm__receipt___kD63L\",\"actions\":\"ShipperContractLaneCreationConfirmForm__actions___jU_mk\",\"action\":\"ShipperContractLaneCreationConfirmForm__action___z9aj2\",\"mini-actions\":\"ShipperContractLaneCreationConfirmForm__mini-actions___y7ECd\",\"total-price-skeleton\":\"ShipperContractLaneCreationConfirmForm__total-price-skeleton____TDHH\",\"total-price\":\"ShipperContractLaneCreationConfirmForm__total-price___uZsPE\",\"loader\":\"ShipperContractLaneCreationConfirmForm__loader___M3Yzl\",\"loader__paranja\":\"ShipperContractLaneCreationConfirmForm__loader__paranja___mfTby\",\"loader__container\":\"ShipperContractLaneCreationConfirmForm__loader__container___nGUGy\",\"fadeIn\":\"ShipperContractLaneCreationConfirmForm__fadeIn___o0pzb\",\"blinking\":\"ShipperContractLaneCreationConfirmForm__blinking___hsUte\"};","// extracted by mini-css-extract-plugin\nexport default {\"tabs\":\"BrokerUsersTab__tabs___XbrVV\",\"fadeIn\":\"BrokerUsersTab__fadeIn___Vpgxj\",\"blinking\":\"BrokerUsersTab__blinking___GVaOl\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"NotificationVerticalRowsLayout__wrap___Z5Dvj\",\"fadeIn\":\"NotificationVerticalRowsLayout__fadeIn___IJhLA\",\"blinking\":\"NotificationVerticalRowsLayout__blinking___M7na6\"};","// extracted by mini-css-extract-plugin\nexport default {\"date\":\"HumanReadableDateCell__date___AJKZs\",\"date--isBold\":\"HumanReadableDateCell__date--isBold___buOBW\",\"date--isBigFont\":\"HumanReadableDateCell__date--isBigFont___yPc3B\",\"fadeIn\":\"HumanReadableDateCell__fadeIn___vSUNL\",\"blinking\":\"HumanReadableDateCell__blinking___SOpv5\"};","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { DictDocumentByIdT } from 'common/store/documents-dict/models';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport type ConfirmUploadDocumentModalDataT = {\n    dictDocumentId: DictDocumentFakeIdT;\n};\n\ntype PropsT = {\n    data: ConfirmUploadDocumentModalDataT | null;\n    requestStatus: RequestStatusT;\n    documentsDictById: DictDocumentByIdT;\n    onClose: () => void;\n    onCancel: () => void;\n    onConfirm: (data: ConfirmUploadDocumentModalDataT) => void;\n};\n\nconst TEST_SELECTOR = 'upload-document-confirmation';\n\nconst UploadDocumentConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { documentsDictById, requestStatus, data, onConfirm, onClose, onCancel } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    const dictDocument = documentsDictById[data.dictDocumentId];\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: requestStatus.loading,\n                            onClick: () => {\n                                onCancel();\n                            },\n                        },\n                        {\n                            children: t('common:error-modal.actions.update'),\n                            theme: ButtonThemeEnum.danger,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            isLoading: requestStatus.loading,\n                            isDisabled: requestStatus.loading,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                    title={t('common:profile-page.document-change-confirmation.title')}\n                    message={t('common:profile-page.document-change-confirmation.description', {\n                        documentName: (dictDocument?.name || '').toLocaleLowerCase(),\n                    })}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default UploadDocumentConfirmation;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './LocationCell.scss';\nimport { PartnerT } from 'broker-admin/store/partners/models';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\n\ntype PropsT = {\n    partner: PartnerT;\n};\n\nconst cx = classNames.bind(styles);\n\nconst LocationCell: React.FC<PropsT> = React.memo((props) => {\n    const { partner } = props;\n\n    const address = [partner.legalAddress?.city, partner.legalAddress?.zipCode].filter(Boolean).join(', ');\n\n    return (\n        <div>\n            <div className={cx('wrap')}>\n                {!!partner.legalAddress?.country && (\n                    <FlagIcon className={cx('flag')} countryCode={partner.legalAddress?.country} />\n                )}\n                <span className={cx('country')}>{partner.legalAddress?.country}</span>\n            </div>\n            <div className={cx('address')}>{address}</div>\n        </div>\n    );\n});\n\nexport default LocationCell;\n","// extracted by mini-css-extract-plugin\nexport default {\"pill\":\"FilterPill__pill___Z9LCU\",\"pill--has-icon\":\"FilterPill__pill--has-icon___wH210\",\"pill--is-compact\":\"FilterPill__pill--is-compact___eVOVF\",\"pill--is-full-clickable\":\"FilterPill__pill--is-full-clickable___M4zy4\",\"pill--theme-brandDark\":\"FilterPill__pill--theme-brandDark___BQGxe\",\"pill--theme-charcoal\":\"FilterPill__pill--theme-charcoal___wYHT7\",\"pill--theme-brandAccent\":\"FilterPill__pill--theme-brandAccent___ISfZl\",\"pill--theme-blazeOrange\":\"FilterPill__pill--theme-blazeOrange___x6QjO\",\"pill--theme-tomatoRed\":\"FilterPill__pill--theme-tomatoRed___f194v\",\"pill--theme-attention\":\"FilterPill__pill--theme-attention___XDKGK\",\"icon\":\"FilterPill__icon___BcFB1\",\"icon--is-compact\":\"FilterPill__icon--is-compact___htB17\",\"icon-placeholder\":\"FilterPill__icon-placeholder___vcR3g\",\"icon-placeholder--is-compact\":\"FilterPill__icon-placeholder--is-compact___mZtUp\",\"label\":\"FilterPill__label___y5djo\",\"label--is-compact\":\"FilterPill__label--is-compact___IwIeI\",\"closer\":\"FilterPill__closer___WtNO8\",\"closer--is-compact\":\"FilterPill__closer--is-compact___SA7sP\",\"fadeIn\":\"FilterPill__fadeIn___kH19Z\",\"blinking\":\"FilterPill__blinking___NCc2T\"};","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    APPROVE_CARRIER_CONTRACT_REQUEST,\n    ApproveCarrierContractActionT,\n    DOWNLOAD_CARRIER_CONTRACT_REQUEST,\n    DownloadCarrierContractActionT,\n    FETCH_CARRIER_CONTRACTS_REQUEST,\n    FetchCarrierContractsActionT,\n    REJECT_CARRIER_CONTRACT_REQUEST,\n    RejectCarrierContractActionT,\n    REVOKE_CARRIER_CONTRACT_REQUEST,\n    RevokeCarrierContractActionT,\n    UPDATE_CARRIER_CONTRACT_REQUEST,\n    UpdateCarrierContractActionT,\n    UPLOAD_CARRIER_CONTRACT_REQUEST,\n    UploadCarrierContractActionT,\n} from './types';\nimport {\n    downloadCarrierContractBegin,\n    downloadCarrierContractError,\n    downloadCarrierContractSuccess,\n    fetchCarrierContractsBegin,\n    fetchCarrierContractsError,\n    fetchCarrierContractsSuccess,\n    updateCarrierContractBegin,\n    updateCarrierContractError,\n    updateCarrierContractSuccess,\n    uploadCarrierContractBegin,\n    uploadCarrierContractError,\n    uploadCarrierContractSuccess,\n} from './actions';\n\nimport carrierTranziitApi from 'carrier/utils/api/carrier-tranziit/api';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\n\nimport { checkIsDefaultCompanyId } from 'common/utils';\nimport { selectFetchCarrierContractsRequest } from 'common/store/carrier-contracts/selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport isNil from 'lodash/isNil';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAlertTypeEnum, CommonAnyAlert } from 'common/components/toasts/AlertToastsManager/models';\nimport downloadFile from 'common/utils/download-file';\nimport { ContractDetailsChangesT } from 'common/store/carrier-contracts/models';\nimport { carrierContractsRefreshChannel } from 'common/store/carrier-contracts/channels';\nimport { carrierContractDetailsRefreshChannel } from 'common/store/carrier-contract-details/channels';\nimport { logWarning } from 'common/utils/logger';\nimport { HEADERS, parseContentDispositionFilename } from 'common/utils/download-headers';\n\nfunction* fetchCarrierContractsSaga(action: FetchCarrierContractsActionT): WrapGeneratorT<void> {\n    const { partnerId, options } = action;\n\n    const requestStatus: ReReturnT<typeof selectFetchCarrierContractsRequest> = yield select(\n        selectFetchCarrierContractsRequest(partnerId),\n    );\n    if (!checkNeedRequest(requestStatus, options)) {\n        return;\n    }\n\n    yield put(fetchCarrierContractsBegin(partnerId));\n\n    let result: ReturnApiT<\n        typeof carrierTranziitApi.fetchCarrierContracts | typeof brokerTranziitApi.fetchCarrierContracts\n    >;\n\n    if (checkIsDefaultCompanyId(partnerId)) {\n        result = yield carrierTranziitApi.fetchCarrierContracts();\n    } else {\n        result = yield brokerTranziitApi.fetchCarrierContracts(partnerId);\n    }\n\n    const [error, partnerContracts] = result;\n\n    if (error) {\n        yield put(fetchCarrierContractsError(partnerId, error));\n        return;\n    }\n\n    yield put(fetchCarrierContractsSuccess(partnerId, partnerContracts || []));\n}\n\nfunction* updateCarrierContractSaga(action: UpdateCarrierContractActionT): WrapGeneratorT<void> {\n    const { partnerId, contractId, contractChanges } = action;\n\n    const [fetchDetailsError, contractDetails]: ReturnApiT<typeof brokerTranziitApi.fetchCarrierContractDetails> =\n        yield brokerTranziitApi.fetchCarrierContractDetails(partnerId, contractId);\n\n    if (fetchDetailsError) {\n        yield put(updateCarrierContractError(partnerId, fetchDetailsError));\n        return;\n    }\n\n    if (!contractDetails) {\n        return;\n    }\n\n    const patchedPartnerContract: ContractDetailsChangesT = {\n        ...contractDetails,\n        ...contractChanges,\n    };\n\n    yield put(updateCarrierContractBegin(partnerId, contractId));\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.updateCarrierContract> =\n        yield brokerTranziitApi.updateCarrierContract(partnerId, contractId, patchedPartnerContract);\n\n    if (error) {\n        yield put(updateCarrierContractError(partnerId, error));\n        return;\n    }\n\n    carrierContractDetailsRefreshChannel.emit({\n        contractId,\n    });\n    carrierContractsRefreshChannel.emit({});\n\n    yield put(updateCarrierContractSuccess(partnerId));\n}\n\nfunction* revokeCarrierContractSaga(action: RevokeCarrierContractActionT): WrapGeneratorT<void> {\n    const { partnerId, contractId, revokeInfo } = action;\n\n    if (isNil(contractId)) {\n        return;\n    }\n\n    yield put(updateCarrierContractBegin(partnerId, contractId));\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.revokeCarrierContract> =\n        yield brokerTranziitApi.revokeCarrierContract(partnerId, contractId, revokeInfo);\n\n    if (error) {\n        yield put(updateCarrierContractError(partnerId, error));\n        return;\n    }\n\n    carrierContractDetailsRefreshChannel.emit({\n        contractId,\n    });\n    carrierContractsRefreshChannel.emit({});\n\n    yield put(updateCarrierContractSuccess(partnerId));\n}\n\nfunction* rejectCarrierContractSaga(action: RejectCarrierContractActionT): WrapGeneratorT<void> {\n    const { partnerId, contractId, reason } = action;\n\n    yield put(updateCarrierContractBegin(partnerId, contractId));\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.rejectCarrierContract> =\n        yield brokerTranziitApi.rejectCarrierContract(partnerId, contractId, {\n            reason,\n        });\n\n    if (error) {\n        yield put(updateCarrierContractError(partnerId, error));\n        return;\n    }\n\n    carrierContractDetailsRefreshChannel.emit({\n        contractId,\n    });\n    carrierContractsRefreshChannel.emit({});\n\n    yield put(updateCarrierContractSuccess(partnerId));\n}\n\nfunction* approveCarrierContractSaga(action: ApproveCarrierContractActionT): WrapGeneratorT<void> {\n    const { partnerId, contractId, contractChanges } = action;\n\n    if (isNil(contractId)) {\n        return;\n    }\n\n    yield put(updateCarrierContractBegin(partnerId, contractId));\n\n    const [fetchDetailsError, contractDetails]: ReturnApiT<typeof brokerTranziitApi.fetchCarrierContractDetails> =\n        yield brokerTranziitApi.fetchCarrierContractDetails(partnerId, contractId);\n\n    if (fetchDetailsError) {\n        yield put(updateCarrierContractError(partnerId, fetchDetailsError));\n        return;\n    }\n\n    if (!contractDetails) {\n        return;\n    }\n\n    const patchedPartnerContract: ContractDetailsChangesT = {\n        ...contractDetails,\n        ...contractChanges,\n    };\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.approveCarrierContract> =\n        yield brokerTranziitApi.approveCarrierContract(partnerId, contractId, patchedPartnerContract);\n\n    if (error) {\n        yield put(updateCarrierContractError(partnerId, error));\n        return;\n    }\n\n    carrierContractDetailsRefreshChannel.emit({\n        contractId,\n    });\n    carrierContractsRefreshChannel.emit({});\n\n    yield put(updateCarrierContractSuccess(partnerId));\n}\n\nfunction* uploadCarrierContractSaga(action: UploadCarrierContractActionT): WrapGeneratorT<void> {\n    const { partnerId, file } = action;\n\n    yield put(uploadCarrierContractBegin(partnerId));\n\n    let response: ReturnApiT<\n        typeof carrierTranziitApi.uploadCarrierContract | typeof brokerTranziitApi.uploadCarrierContract\n    >;\n    if (checkIsDefaultCompanyId(partnerId)) {\n        response = yield carrierTranziitApi.uploadCarrierContract(file);\n    } else {\n        response = yield brokerTranziitApi.uploadCarrierContract(file, partnerId);\n    }\n    const [error] = response;\n\n    if (error) {\n        yield put(uploadCarrierContractError(error, partnerId));\n        return;\n    }\n\n    yield put(uploadCarrierContractSuccess(partnerId));\n\n    carrierContractsRefreshChannel.emit({});\n\n    yield put(\n        addAlert(\n            new CommonAnyAlert({\n                type: CommonAlertTypeEnum.contractUploaded,\n                data: {},\n            }),\n        ),\n    );\n}\n\nfunction* downloadCarrierContractSaga(action: DownloadCarrierContractActionT): WrapGeneratorT<void> {\n    const { partnerId, contractId } = action;\n\n    yield put(downloadCarrierContractBegin(partnerId));\n\n    let response: ReturnApiT<\n        typeof carrierTranziitApi.fetchCarrierContract | typeof brokerTranziitApi.fetchCarrierContract\n    >;\n    if (checkIsDefaultCompanyId(partnerId)) {\n        response = yield carrierTranziitApi.fetchCarrierContract(contractId);\n    } else {\n        response = yield brokerTranziitApi.fetchCarrierContract(partnerId, contractId);\n    }\n    const [error, result, rawResponse] = response;\n\n    if (error) {\n        yield put(downloadCarrierContractError(error, partnerId));\n        return;\n    }\n\n    if (!rawResponse) {\n        logWarning('empty rawResponse for carrier contract download', { partnerId, contractId });\n    }\n\n    const contentDispositionHeader = rawResponse?.headers.get(HEADERS.CONTENT_DISPOSITION);\n    const filename = parseContentDispositionFilename(contentDispositionHeader || '');\n    if (!filename) {\n        logWarning('empty filename for carrier contract download', { partnerId, contractId, contentDispositionHeader });\n    }\n\n    const fileTypeHeader = rawResponse?.headers.get(HEADERS.CONTENT_TYPE);\n    if (!fileTypeHeader) {\n        logWarning('empty file type for carrier contract download', { partnerId, contractId, fileTypeHeader });\n    }\n\n    if (result && filename && fileTypeHeader) {\n        downloadFile({\n            name: filename,\n            data: result,\n            type: fileTypeHeader,\n        });\n    }\n\n    yield put(downloadCarrierContractSuccess(partnerId));\n}\n\nfunction* carrierContractsSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_CARRIER_CONTRACTS_REQUEST, fetchCarrierContractsSaga);\n    yield takeEvery(UPDATE_CARRIER_CONTRACT_REQUEST, updateCarrierContractSaga);\n    yield takeEvery(REVOKE_CARRIER_CONTRACT_REQUEST, revokeCarrierContractSaga);\n    yield takeEvery(REJECT_CARRIER_CONTRACT_REQUEST, rejectCarrierContractSaga);\n    yield takeEvery(APPROVE_CARRIER_CONTRACT_REQUEST, approveCarrierContractSaga);\n    yield takeEvery(UPLOAD_CARRIER_CONTRACT_REQUEST, uploadCarrierContractSaga);\n    yield takeEvery(DOWNLOAD_CARRIER_CONTRACT_REQUEST, downloadCarrierContractSaga);\n}\n\nexport default carrierContractsSaga;\n","import {\n    ApiAppliedRuleT,\n    ApiBrokerAdditionalServiceT,\n    ApiCarrierAdditionalServiceT,\n    ApiLocationT,\n    ApiMultiPointPriceOfferT,\n    ApiOrderCreationReservePointTypeT,\n    ApiOrderCreationShipperInfoT,\n    ApiRFQDetailsT,\n} from 'common/utils/api/models';\nimport { CountryCodeT } from '../countries-dict/models';\nimport { ApiEmissionClassT, ApiFuelOptionTypeT } from 'common/constants';\n\nexport type ReserveQueryRoutePointChangesT = Partial<{\n    address: ApiLocationT | null;\n    addressAlias: RoutePointAddressAliasT;\n    type: ApiOrderCreationReservePointTypeT;\n    isBrokerTimeWindow: boolean;\n    timeWindowFrom: string | null;\n    timeWindowTo: string | null;\n}>;\n\nexport type ReserveQueryChangesT = Partial<{\n    fullRouteChange?: Array<ReserveQueryRoutePointChangesT>;\n    routePointChange?: {\n        addressAlias: RoutePointAddressAliasT;\n        changes: ReserveQueryRoutePointChangesT;\n    };\n    addRoutePoint?: {\n        beforeAddressAlias: RoutePointAddressAliasT;\n        changes: ReserveQueryRoutePointChangesT;\n    };\n    deleteRoutePoint?: {\n        addressAlias: RoutePointAddressAliasT;\n    };\n    trailerDictId: TrailerDictIdT | null;\n    excludedCountries: CountryCodeT[];\n    shipper: ApiOrderCreationShipperInfoT | null;\n    laneId: ShipperContractLaneIdT | null;\n}>;\n\nexport enum OrderCreationStepEnum {\n    shipmentDetails = 'shipment-details',\n    price = 'price',\n    cargoDetails = 'cargo-details',\n}\n\nexport type RFQDetailsT = OverwriteT<\n    ApiRFQDetailsT,\n    {\n        expireTime: number | null;\n        points: Array<\n            ApiRFQDetailsT['points'][number] & {\n                fromDate: string | null;\n                toDate: string | null;\n            }\n        >;\n    }\n>;\n\nexport type AppliedRuleT = ApiAppliedRuleT;\n\nexport type PriceOfferT = {\n    id: string;\n    dropOffDockingHoursFrom: string;\n    dropOffDockingHoursTo: string;\n    pickupDockingHoursFrom: string;\n    pickupDockingHoursTo: string;\n    dropOffDate: string | null;\n    pickUpDate: string | null;\n    isUrgentShipment: boolean;\n    isBestPrice?: boolean;\n    isTeamDrive: boolean;\n    isGreenTruck: boolean;\n    hasLayover: boolean;\n    layoverSeconds: number;\n    layoverPaidHours: number;\n    distanceKm: number;\n    co2: number;\n    travelSeconds: number;\n    price?: number;\n    expiration: string | null;\n    expirationMs: number | null;\n    isExpired: boolean;\n    emissionClass: ApiEmissionClassT | null | undefined;\n    brokerInfo: ApiMultiPointPriceOfferT['brokerInfo'];\n    teamDriveHours: number | null | undefined;\n    fuelOptionType: ApiFuelOptionTypeT | null | undefined;\n    priceComponents: Partial<{\n        toll: number | null;\n        fuel: number | null;\n        fuelByCountry: NonNullable<ApiMultiPointPriceOfferT['fuel']>['byCountry'];\n        lineHaul: number | null;\n        additionalServicesItems: Array<ApiCarrierAdditionalServiceT | ApiBrokerAdditionalServiceT> | null;\n        tranziitServiceFee: number | null;\n        layover: number | null;\n        totalRate: number | null;\n        costOfOperation: number | null;\n        teamDriveCost: number | null;\n        tollByRoadType: ApiMultiPointPriceOfferT['toll']['byRoadType'] | null;\n    }>;\n};\n\nexport type ReserveTimeWindowT = {\n    start: ISODateTimeT;\n    end: ISODateTimeT;\n};\n\nexport type ReserveOpenTimeWindowT = {\n    start: ISODateTimeT;\n    end: ISODateTimeT | null;\n};\n\nexport type BestOffersT = {\n    bestPrice: PriceOfferT | null;\n    urgent: PriceOfferT | null;\n};\n\nexport type ApiCreateReserveQueryT = Api2.Definitions.ReserveOrderRequest & { shipperId: ShipperIdT | null };\nexport type CreateReserveQueryT = {\n    shipperId: ShipperIdT | null;\n    addresses: Array<{\n        addressAlias: RoutePointAddressAliasT | null;\n        address: ApiLocationT | null;\n        type: ApiOrderCreationReservePointTypeT | null;\n    }>;\n    trailerDictId: number | null;\n    prohibitedCountries: CountryCodeT[];\n    routeStart?: string; // date-time\n};\nexport type CreateReserveQueryChangesT = Partial<CreateReserveQueryT>;\n\nexport type ApiReserveT = Api2.Definitions.ReservedOrderDto;\nexport type ApiReservePointT = ApiReserveT['points'][number];\n\nexport type ReserveT = Omit<ApiReserveT, 'points'> & {\n    expireTime: number;\n    points: Array<\n        Omit<ApiReservePointT, 'defaultFrom' | 'defaultTo'> & {\n            defaultTimeWindow: ReserveTimeWindowT | null;\n        }\n    >;\n};\n\nexport type ApiReservePreviewQueryT = Api2.Definitions.RfqRequest & {\n    reserveId: ReserveIdT;\n};\n\nexport type ReservePreviewQueryT = {\n    timeWindows: Array<\n        Partial<{\n            id: string;\n            addressAlias: string;\n            isBrokerTimeWindow: boolean;\n            timeWindowFrom: string | null;\n            timeWindowTo: string | null;\n        }>\n    >;\n    reserveId: ReserveIdT | null;\n    laneId: ShipperContractLaneIdT | null;\n};\nexport type ReservePreviewQueryChangesT = Partial<ReservePreviewQueryT>;\n\nexport type ApiReservePreviewT = Api2.Definitions.PriceOfferPreviewDto;\n\nexport type ReservePreviewT = {\n    isTeamDrive: boolean;\n    layoverHours?: number;\n    secondsToExpire: number; // int64\n    travelSeconds?: number;\n    timeWindows: Array<{\n        id: string; // uuid\n        correctedTimeWindow: ReserveTimeWindowT | null;\n        correctedBrokerWindow: boolean | null;\n        urgentTimeWindow: ReserveTimeWindowT | null;\n        regularTimeWindow: ReserveOpenTimeWindowT | null;\n        layoverTimeWindow: ReserveOpenTimeWindowT | null;\n        brokerAppointmentTimeWindow: ReserveOpenTimeWindowT | null;\n    }>;\n};\n\nexport type ReserveQueryModifyEventT = {\n    correctedPoints?: ReserveT['points'];\n    correctedLaneId?: ShipperContractLaneIdT | null;\n\n    correctedTimeWindowsByPointId?: Record<RoutePointIdT, ReserveTimeWindowT | null>;\n    correctedBrokerWindowByPointId?: Record<RoutePointIdT, boolean | null>;\n};\n\nexport type ReserveLockEventT = {\n    isLocked: boolean;\n};\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PlateNumberCell.scss';\n\ntype PropsT = {\n    plateNumber: string | undefined;\n};\n\nconst cx = classNames.bind(styles);\n\nconst PlateNumberCell: React.FC<PropsT> = React.memo((props) => {\n    const { plateNumber } = props;\n\n    return <div className={cx('plate-number')}>{plateNumber}</div>;\n});\n\nexport default PlateNumberCell;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"RevokedPartnerShipperLaneContractCard__inner___fkNrb\",\"fadeIn\":\"RevokedPartnerShipperLaneContractCard__fadeIn___QLWEL\",\"blinking\":\"RevokedPartnerShipperLaneContractCard__blinking___fti_C\"};","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './EditDriverFormContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport { FieldsEnum, FormValuesT, MEDIA_FIELDS_NAME } from './constants';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { uppercaseFirstCharacterFormatter } from 'common/utils/form-formatters';\nimport CountryDropdown from 'common/components/dropdowns/CountryDropdown/CountryDropdown';\nimport Input from 'common/components/Input/Input';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport FieldGroup, { FieldGroupEmptyItem } from 'common/components/FieldGroup/FieldGroup';\nimport LanguageSelector from 'common/components/LanguageSelector/LanguageSelector';\nimport DatePicker, {\n    DatePickerOverlayPositionEnum,\n    datePicketRangePresets,\n} from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport { AUTO_COMPLETE_OFF_FIX, SocialMediaEnum, StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport PhoneNumberIcon from 'common/components/PhoneNumberIcon/PhoneNumberIcon';\nimport NumberInput from 'common/components/NumberInput/NumberInput';\nimport PhoneNumberInput from 'common/components/PhoneNumberInput/PhoneNumberInput';\nimport UserFormalDropdown from 'common/components/dropdowns/UserFormalDropdown/UserFormalDropdown';\nimport AddOtherMessengerDropdown from 'common/layouts/SideBars/contents/EditContactDetailsSidebarContent/AddOtherMessengerDropdown/AddOtherMessengerDropdown';\nimport { useFormikContext } from 'formik';\nimport { CompanyDriverDetailsT } from 'common/store/drivers/models';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    driverDetails: CompanyDriverDetailsT | null;\n    isHideMobilePhoneField?: boolean;\n    allowShowChanges?: boolean;\n};\n\nconst EditDriverFormContent: React.FC<PropsT> = (props) => {\n    const { driverDetails, isHideMobilePhoneField, allowShowChanges } = props;\n\n    const formik = useFormikContext<FormValuesT>();\n\n    const { t } = useTranslation();\n\n    const [lastAddedMediaField, setLastAddedMediaField] = React.useState<SocialMediaEnum | null>(null);\n\n    const handleSelectLanguage = (langCode: string | null | undefined): void => {\n        if (!langCode) {\n            return;\n        }\n\n        formik.setFieldValue(FieldsEnum.language, langCode);\n    };\n\n    return (\n        <>\n            <div className={cx('section')}>\n                <div className={cx('section__title')}>{t('common:driver-details.sections.name')}</div>\n                <div className={cx('section__block')}>\n                    <FieldGroup>\n                        <FormikField\n                            className={cx('field--formal')}\n                            name={FieldsEnum.formal}\n                            error={formik.errors[FieldsEnum.formal]}\n                            meta={formik.getFieldMeta(FieldsEnum.formal)}\n                            label={t('common:driver-details.fields.formal.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <UserFormalDropdown\n                                    value={formik.values[FieldsEnum.formal]}\n                                    onChange={props.onChange}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                    hasChanges={allowShowChanges && props.hasChanges}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    placeholder={t('common:driver-details.fields.formal.placeholder')}\n                                />\n                            )}\n                        </FormikField>\n                        <FormikField\n                            className={cx('field--first-name')}\n                            name={FieldsEnum.firstName}\n                            error={formik.errors[FieldsEnum.firstName]}\n                            meta={formik.getFieldMeta(FieldsEnum.firstName)}\n                            label={t('common:driver-details.fields.first-name.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <Input\n                                    name={FieldsEnum.firstName}\n                                    value={formik.values[FieldsEnum.firstName]}\n                                    formatter={uppercaseFirstCharacterFormatter}\n                                    onChange={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                    hasChanges={allowShowChanges && props.hasChanges}\n                                />\n                            )}\n                        </FormikField>\n                        <FormikField\n                            className={cx('field--last-name')}\n                            name={FieldsEnum.lastName}\n                            error={formik.errors[FieldsEnum.lastName]}\n                            meta={formik.getFieldMeta(FieldsEnum.lastName)}\n                            label={t('common:driver-details.fields.last-name.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <Input\n                                    name={FieldsEnum.lastName}\n                                    value={formik.values[FieldsEnum.lastName]}\n                                    formatter={uppercaseFirstCharacterFormatter}\n                                    onChange={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                    hasChanges={allowShowChanges && props.hasChanges}\n                                />\n                            )}\n                        </FormikField>\n                    </FieldGroup>\n                </div>\n            </div>\n            <div className={cx('section')}>\n                <div className={cx('section__title')}>{t('common:driver-details.sections.contacts')}</div>\n                <div className={cx('section__block')}>\n                    <FieldGroup>\n                        <FormikField\n                            className={cx('field--desktop-phone')}\n                            name={FieldsEnum.desktopPhone}\n                            error={formik.errors[FieldsEnum.desktopPhone]}\n                            meta={formik.getFieldMeta(FieldsEnum.desktopPhone)}\n                            label={t('common:driver-details.fields.desktop-phone.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <PhoneNumberInput\n                                    name={FieldsEnum.desktopPhone}\n                                    value={formik.values[FieldsEnum.desktopPhone]}\n                                    onChange={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                    hasChanges={allowShowChanges && props.hasChanges}\n                                />\n                            )}\n                        </FormikField>\n                        {isHideMobilePhoneField ? (\n                            <FieldGroupEmptyItem className={cx('field--mobile-phone')} />\n                        ) : (\n                            <ReadOnlyField\n                                key=\"mobile-phone\"\n                                icon={<PhoneNumberIcon phoneNumber={driverDetails?.contact?.mobilePhone} />}\n                                className={cx('field--mobile-phone')}\n                                label={t('common:driver-details.fields.mobile-phone.label')}\n                                placeholder={t('common:driver-details.fields.mobile-phone.placeholder')}\n                                value={driverDetails?.contact?.mobilePhone || ''}\n                            />\n                        )}\n                    </FieldGroup>\n                    {MEDIA_FIELDS_NAME.map((media) => {\n                        const mediaValue = formik.values[media];\n\n                        if (typeof mediaValue !== 'string') {\n                            return null;\n                        }\n\n                        return (\n                            <FormikField\n                                key={media}\n                                name={media}\n                                error={formik.errors[media]}\n                                meta={formik.getFieldMeta(media)}\n                                label={t(`common:driver-details.fields.${media}.label`)}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <div className={cx('media')}>\n                                        <Input\n                                            name={media}\n                                            className={cx('media__input')}\n                                            value={mediaValue}\n                                            onChange={props.onChange}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                            hasError={props.hasError}\n                                            hasWarning={props.hasWarning}\n                                            hasChanges={allowShowChanges && props.hasChanges}\n                                            autoFocus={lastAddedMediaField === media}\n                                        />\n                                        <TransparentTrigger\n                                            className={cx('media__icon')}\n                                            onClick={() => {\n                                                formik.setFieldValue(media, undefined);\n                                            }}\n                                            reflectionTheme={ReflectionThemeEnum.light}\n                                            leftIcon={<CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                                        />\n                                    </div>\n                                )}\n                            </FormikField>\n                        );\n                    })}\n                    <AddOtherMessengerDropdown\n                        formValues={formik.values}\n                        onCreateField={(socialMedia) => {\n                            setLastAddedMediaField(socialMedia);\n                            formik.setFieldValue(socialMedia, '');\n                        }}\n                    />\n                </div>\n            </div>\n            <div className={cx('section')}>\n                <div className={cx('section__title')}>{t('common:driver-details.sections.personals')}</div>\n                <div className={cx('section__block')}>\n                    <FormikField\n                        name={FieldsEnum.address}\n                        error={formik.errors[FieldsEnum.address]}\n                        meta={formik.getFieldMeta(FieldsEnum.address)}\n                        label={t('common:driver-details.fields.address.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <Input\n                                name={FieldsEnum.address}\n                                value={formik.values[FieldsEnum.address]}\n                                formatter={uppercaseFirstCharacterFormatter}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                hasChanges={allowShowChanges && props.hasChanges}\n                            />\n                        )}\n                    </FormikField>\n                    <FieldGroup>\n                        <FormikField\n                            className={cx('field--birthday')}\n                            name={FieldsEnum.birthday}\n                            error={formik.errors[FieldsEnum.birthday]}\n                            meta={formik.getFieldMeta(FieldsEnum.birthday)}\n                            label={t('common:driver-details.fields.birthday.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <DatePicker\n                                    hasYearMonthForm\n                                    {...datePicketRangePresets.birthday}\n                                    name={FieldsEnum.birthday}\n                                    value={formik.values[FieldsEnum.birthday]}\n                                    initialValue={formik.initialValues[FieldsEnum.birthday]}\n                                    placeholder={t('common:driver-details.fields.birthday.placeholder')}\n                                    onChange={props.onChange}\n                                    overlayPosition={DatePickerOverlayPositionEnum.topLeft}\n                                    hasWarning={props.hasWarning}\n                                    hasError={props.hasError}\n                                    hasChanges={allowShowChanges && props.hasChanges}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    autoComplete={AUTO_COMPLETE_OFF_FIX}\n                                    hasClearControl\n                                />\n                            )}\n                        </FormikField>\n                        <FormikField\n                            className={cx('field--country')}\n                            name={FieldsEnum.countryCode}\n                            error={formik.errors[FieldsEnum.countryCode]}\n                            label={t('common:driver-details.fields.residence.label')}\n                            meta={formik.getFieldMeta(FieldsEnum.countryCode)}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <CountryDropdown\n                                    value={formik.values[FieldsEnum.countryCode]}\n                                    onChange={(countryCode) => {\n                                        props.onChange(countryCode);\n                                    }}\n                                    overlayPosition={DropdownOverlayPositionEnum.topLeft}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasChanges={allowShowChanges && props.hasChanges}\n                                />\n                            )}\n                        </FormikField>\n                    </FieldGroup>\n                    <FieldGroup>\n                        <FormikField\n                            className={cx('field--language')}\n                            name={FieldsEnum.language}\n                            error={formik.errors[FieldsEnum.language]}\n                            label={t('common:driver-details.fields.language.label')}\n                            meta={formik.getFieldMeta(FieldsEnum.language)}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <LanguageSelector\n                                    value={formik.values[FieldsEnum.language]}\n                                    onChange={handleSelectLanguage}\n                                    overlayPosition={DropdownOverlayPositionEnum.topLeft}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasChanges={allowShowChanges && props.hasChanges}\n                                />\n                            )}\n                        </FormikField>\n                        <FormikField\n                            className={cx('field--rate')}\n                            name={FieldsEnum.ratePerKm}\n                            error={formik.errors[FieldsEnum.ratePerKm]}\n                            meta={formik.getFieldMeta(FieldsEnum.ratePerKm)}\n                            label={t('common:driver-details.fields.rate-per-hour.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <NumberInput\n                                    name={FieldsEnum.ratePerKm}\n                                    unitType={UnitTypeEnum.euroAbbreviation}\n                                    placeholder={t('common:driver-details.fields.rate-per-hour.placeholder')}\n                                    value={formik.values[FieldsEnum.ratePerKm]}\n                                    onChange={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasError={props.hasError}\n                                    hasChanges={allowShowChanges && props.hasChanges}\n                                    step={1}\n                                />\n                            )}\n                        </FormikField>\n                    </FieldGroup>\n                </div>\n            </div>\n        </>\n    );\n};\n\nexport default EditDriverFormContent;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    fetchStateMachineSteps,\n    fetchStateMachineStepsBegin,\n    fetchStateMachineStepsError,\n    fetchStateMachineStepsSuccess,\n    updateEntityStatus,\n    updateEntityStatusBegin,\n    updateEntityStatusError,\n    updateEntityStatusSuccess,\n} from './slice';\nimport { FetchStateMachineStepsActionT, UpdateEntityStatusActionT } from './types';\nimport { CompanyTypeEnum } from 'common/constants';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { getStateMachineEntityHash } from 'common/store/state-machine/utils';\nimport { selectStateMachineItemState } from 'common/store/state-machine/selectors';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport { stateMachineRefreshChannel } from 'common/store/state-machine/channels';\nimport {\n    checkIsTrailerCantBeOnTimeForNextTourError,\n    checkIsTruckCantBeOnTimeForNextTourError,\n} from 'common/utils/api/errors/api-request-error-type-guard';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAnyAlert, CommonAlertTypeEnum } from 'common/components/toasts/AlertToastsManager/models';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getFetchStateMachineStepsSaga(companyType: CompanyTypeEnum) {\n    return function* (action: FetchStateMachineStepsActionT): WrapGeneratorT<void> {\n        const { descriptor, options } = action.payload;\n\n        const { fetchRequest }: ReReturnT<typeof selectStateMachineItemState> = yield select(\n            selectStateMachineItemState(descriptor),\n        );\n        if (!checkNeedRequest(fetchRequest, options)) {\n            return;\n        }\n\n        const hash = getStateMachineEntityHash(descriptor);\n\n        yield put(fetchStateMachineStepsBegin({ hash }));\n\n        const [error, data]: ReturnApiT<typeof commonTranziitApi.fetchStateMachineEntityStatus> =\n            yield commonTranziitApi.fetchStateMachineEntityStatus(descriptor.entityType, descriptor.entityId);\n\n        if (error) {\n            yield put(fetchStateMachineStepsError({ hash, error }));\n        } else {\n            yield put(fetchStateMachineStepsSuccess({ hash, data }));\n        }\n    };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getUpdateStateMachineStepsSaga(companyType: CompanyTypeEnum) {\n    return function* (action: UpdateEntityStatusActionT): WrapGeneratorT<void> {\n        const { descriptor, update, successAlert } = action.payload;\n\n        const { updateRequest }: ReReturnT<typeof selectStateMachineItemState> = yield select(\n            selectStateMachineItemState(descriptor),\n        );\n        if (updateRequest.loading) {\n            return;\n        }\n\n        const hash = getStateMachineEntityHash(descriptor);\n\n        yield put(updateEntityStatusBegin({ hash }));\n\n        const result: ReturnApiT<typeof commonTranziitApi.updateStateMachineEntityStatus> =\n            yield commonTranziitApi.updateStateMachineEntityStatus(update.entityType, update.entityId, {\n                status: update.status,\n            });\n\n        const [error] = result;\n\n        let shouldIgnoreErrorModal = false;\n        if (error) {\n            if (checkIsTruckCantBeOnTimeForNextTourError(error)) {\n                shouldIgnoreErrorModal = true;\n                yield put(\n                    addAlert(\n                        new CommonAnyAlert({\n                            type: CommonAlertTypeEnum.truckCantBeOnTimeForNextTour,\n                            data: {\n                                nextTransportOrderId: error.response.nextToId,\n                                nextTransportOrderNumber: error.response.nextToNumber,\n                                status: update.status,\n                                entityType: update.entityType,\n                                carrierId: error.response.carrierId,\n                            },\n                        }),\n                    ),\n                );\n            } else if (checkIsTrailerCantBeOnTimeForNextTourError(error)) {\n                shouldIgnoreErrorModal = true;\n                yield put(\n                    addAlert(\n                        new CommonAnyAlert({\n                            type: CommonAlertTypeEnum.trailerCantBeOnTimeForNextTour,\n                            data: {\n                                nextTransportOrderId: error.response.nextToId,\n                                nextTransportOrderNumber: error.response.nextToNumber,\n                                status: update.status,\n                                entityType: update.entityType,\n                                carrierId: error.response.carrierId,\n                            },\n                        }),\n                    ),\n                );\n            }\n\n            yield put(\n                updateEntityStatusError({\n                    hash,\n                    error,\n                    shouldIgnoreErrorModal,\n                }),\n            );\n        } else {\n            yield put(updateEntityStatusSuccess({ hash }));\n            if (successAlert) {\n                yield put(addAlert(successAlert));\n            }\n        }\n\n        stateMachineRefreshChannel.emit({});\n    };\n}\n\nfunction* stateMachineSaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery(fetchStateMachineSteps.type, getFetchStateMachineStepsSaga(companyType));\n    yield takeEvery(updateEntityStatus.type, getUpdateStateMachineStepsSaga(companyType));\n}\n\nexport { stateMachineSaga };\n","import React from 'react';\nimport { logError } from '../logger';\n\nexport type OnKeyPressCallbackT = (key: string, isPressedMetaKey: boolean) => void;\n\nexport const useKeyboardShortcut = (onKeyPress: OnKeyPressCallbackT) => {\n    const handleKeyPress = React.useCallback(\n        (event: any) => {\n            try {\n                const target = event.target as HTMLElement;\n                if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n                    return;\n                }\n\n                const isPressedMetaKey = (event as KeyboardEvent).altKey || (event as KeyboardEvent).metaKey;\n\n                onKeyPress((event as KeyboardEvent).key, isPressedMetaKey);\n            } catch (error) {\n                logError('useKeyboardShortcut', error);\n            }\n        },\n        [onKeyPress],\n    );\n\n    React.useEffect(() => {\n        document.addEventListener('keydown', handleKeyPress);\n\n        return () => {\n            document.removeEventListener('keydown', handleKeyPress);\n        };\n    }, [handleKeyPress]);\n};\n","import { StateT } from 'broker-admin/store/models';\nimport { SpotRequestDetailsStateT } from './types';\nimport { initialSpotRequestDetailsState } from './reducer';\n\nexport const selectSpotRequestDetails =\n    (id: SpotRequestIdT | null) =>\n    (state: StateT): SpotRequestDetailsStateT =>\n        state.spotRequestDetails[id as string] || initialSpotRequestDetailsState;\n","import * as React from 'react';\nimport FilterPills, { FilterPillsConfigT } from 'common/components/FilterPills/FilterPills';\nimport { Trans, useTranslation } from 'react-i18next';\nimport TrailerDictIdFilterPill from 'common/components/filter-pills/TrailerDictIdFilterPill/TrailerDictIdFilterPill';\nimport { FilterPillThemeEnum } from 'common/components/FilterPills/FilterPill/FilterPill';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from '../query-models';\nimport { formatDateRangeFilterValue, pillIconRendererMap } from 'common/components/FilterPills/pill-renderers';\n\ntype PropsT = {\n    isCompact?: boolean;\n    className?: string;\n    queryFilters: QueryFiltersT;\n    setQueryFilters: (queryFilters: QueryFiltersT) => void;\n};\n\nconst SelectedFilters: React.FC<PropsT> = React.memo((props) => {\n    const { isCompact, queryFilters, setQueryFilters } = props;\n\n    const { t } = useTranslation();\n\n    const filterPillsConfig = React.useMemo(\n        (): FilterPillsConfigT<QueryFiltersT> => [\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('spot-requests.list.filters.pills.search', {\n                        value: queryFilters[QueryFiltersKeysEnum.searchText],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.searchText],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('spot-requests.list.filters.pills.pickup-address', {\n                        value: queryFilters[QueryFiltersKeysEnum.pickupAddress],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.pickupAddress],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('spot-requests.list.filters.pills.drop-off-address', {\n                        value: queryFilters[QueryFiltersKeysEnum.dropOffAddress],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.dropOffAddress],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    return t('spot-requests.list.filters.pills.created-by-shipper', {\n                        value: queryFilters[QueryFiltersKeysEnum.createdByShipperName],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.createdByShipperId, QueryFiltersKeysEnum.createdByShipperName],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                renderIcon: (queryFilters, isCompact) => {\n                    const name = queryFilters[QueryFiltersKeysEnum.createdByUserName] || '';\n\n                    return pillIconRendererMap.avatar(name, isCompact);\n                },\n                render: (queryFilters) => {\n                    return t('spot-requests.list.filters.pills.created-by', {\n                        value: queryFilters[QueryFiltersKeysEnum.createdByUserName],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.createdByUserId, QueryFiltersKeysEnum.createdByUserName],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const createdDateFrom = queryFilters[QueryFiltersKeysEnum.createdDateFrom];\n                    const createdDateTo = queryFilters[QueryFiltersKeysEnum.createdDateTo];\n\n                    return t('spot-requests.list.filters.pills.created-date', {\n                        value: formatDateRangeFilterValue(createdDateFrom, createdDateTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.createdDateFrom, QueryFiltersKeysEnum.createdDateTo],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: (queryFilters) => {\n                    const selectedTrailerTypeId = queryFilters[QueryFiltersKeysEnum.dictTrailerTypeId];\n\n                    return (\n                        <Trans\n                            i18nKey=\"spot-requests.list.filters.pills.trailer\"\n                            components={{\n                                value: <TrailerDictIdFilterPill trailerDictId={selectedTrailerTypeId} />,\n                            }}\n                        />\n                    );\n                },\n                clearKeys: [QueryFiltersKeysEnum.dictTrailerTypeId],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const pickupDateFrom = queryFilters[QueryFiltersKeysEnum.pickupDateFrom];\n                    const pickupDateTo = queryFilters[QueryFiltersKeysEnum.pickupDateTo];\n\n                    return t('spot-requests.list.filters.pills.pickup', {\n                        value: formatDateRangeFilterValue(pickupDateFrom, pickupDateTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.pickupDateFrom, QueryFiltersKeysEnum.pickupDateTo],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const dropOffDateFrom = queryFilters[QueryFiltersKeysEnum.dropOffDateFrom];\n                    const dropOffDateTo = queryFilters[QueryFiltersKeysEnum.dropOffDateTo];\n\n                    return t('spot-requests.list.filters.pills.drop-off', {\n                        value: formatDateRangeFilterValue(dropOffDateFrom, dropOffDateTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.dropOffDateFrom, QueryFiltersKeysEnum.dropOffDateTo],\n            },\n        ],\n        [t],\n    );\n\n    return (\n        <FilterPills<QueryFiltersT>\n            isCompact={isCompact}\n            queryFilters={queryFilters}\n            setQueryFilters={setQueryFilters}\n            config={filterPillsConfig}\n        />\n    );\n});\n\nexport default SelectedFilters;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"QuickTimeWindowLink__fadeIn___sBDCR\",\"blinking\":\"QuickTimeWindowLink__blinking___XjjGO\"};","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ChangeRoleUserForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { PartnerTypeEnum, RolesEnum, UserRoleT } from 'common/utils/api/models';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { logWarning } from 'common/utils/logger';\nimport UserRolesDropdown, {\n    getAvailableRolesByPartnerType,\n} from 'common/components/dropdowns/UserRolesDropdown/UserRolesDropdown';\nimport { CommonChangeUserRoleFormPropsT } from 'common/layouts/Members/dialogs/ChangeUserRoleModal/models';\nimport ModalDialogActions from 'common/components/Modal/ModalDialogActions/ModalDialogActions';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { isNonNil } from 'common/utils';\nimport isEqual from 'lodash/isEqual';\n\nconst cx = classNames.bind(styles);\n\nexport type ChangeUserRoleDataT = {\n    userId: UserIdT;\n    roles: UserRoleT[];\n};\n\ntype PropsT = CommonChangeUserRoleFormPropsT & {\n    onChangeUserRole: (data: ChangeUserRoleDataT) => void;\n    partnerType: PartnerTypeEnum;\n};\n\nexport const INITIAL_VALUES: FormValuesT = {\n    [FieldsEnum.roles]: [],\n};\n\nconst TEST_SELECTOR = 'change-role-user-form';\n\nconst ChangeRoleUserForm: React.FC<PropsT> = (props) => {\n    const { contact, onChangeUserRole, onCancel, updateMemberRequest, partnerType } = props;\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const availableRoles = React.useMemo((): Array<RolesEnum> => {\n        if (!partnerType) {\n            logWarning('Empty partnerType in ChangeRoleUserForm availableRoles');\n            return [];\n        }\n        return getAvailableRolesByPartnerType(partnerType);\n    }, [partnerType]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const contactRoles = contact.roles.filter(isNonNil);\n        if (!contactRoles?.length) {\n            logWarning('empty contact.roles!');\n        }\n\n        const values: FormValuesT = {\n            ...INITIAL_VALUES,\n            [FieldsEnum.roles]: contactRoles,\n        };\n\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [contact]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const roles = values[FieldsEnum.roles];\n            if (!roles?.length) {\n                logWarning('empty role');\n                return;\n            }\n\n            if (!contact?.userId) {\n                logWarning('empty contact?.userId');\n                return;\n            }\n\n            onChangeUserRole({ userId: contact.userId, roles });\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <div className={cx('form')}>\n                <FormikField\n                    name={FieldsEnum.roles}\n                    error={formik.errors[FieldsEnum.roles]}\n                    meta={formik.getFieldMeta(FieldsEnum.roles)}\n                    label={t('common:team-members.dialogs.change-user-role.fields.role.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <UserRolesDropdown\n                            value={formik.values[FieldsEnum.roles]}\n                            initialValue={initialValues[FieldsEnum.roles]}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasWarning={props.hasWarning}\n                            hasError={props.hasError}\n                            availableRoles={availableRoles}\n                            overlayPosition={DropdownOverlayPositionEnum.topLeft}\n                        />\n                    )}\n                </FormikField>\n            </div>\n            <ModalDialogActions\n                actions={[\n                    {\n                        children: t('common:error-modal.actions.cancel'),\n                        theme: ButtonThemeEnum.secondary,\n                        testSelector: `${TEST_SELECTOR}_cancel`,\n                        onClick: onCancel,\n                        isDisabled: updateMemberRequest.loading,\n                    },\n                    {\n                        children: t('common:error-modal.actions.change'),\n                        theme: ButtonThemeEnum.danger,\n                        testSelector: `${TEST_SELECTOR}_change`,\n                        type: 'submit',\n                        isDisabled: isEqual(formik.values[FieldsEnum.roles], initialValues[FieldsEnum.roles]),\n                        isLoading: updateMemberRequest.loading,\n                    },\n                ]}\n            />\n        </form>\n    );\n};\n\nexport default ChangeRoleUserForm;\n","import * as React from 'react';\nimport { useContext, useMemo, useState } from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './AssignmentMap.scss';\nimport GoogleMapReact, { ClickEventValue } from 'google-map-react';\nimport { BOOTSTRAP_URL_KEYS, DEFAULT_CENTER, DEFAULT_ZOOM, MAP_OPTIONS } from 'common/store/constants';\nimport useGoogleMapsApiLoader from 'common/utils/hooks/maps/useGoogleMapsApiLoader';\nimport { useGoogleMapContext } from 'common/utils/hooks/maps/useGoogleMapContext';\nimport { useGoogleMapConfig } from 'common/utils/hooks/maps/useGoogleMapConfig';\nimport { ApiStopTypeT, StopTypeEnum } from 'common/utils/api/models';\nimport { AssetTypeEnum, StyleGuideColorsEnum } from 'common/constants';\nimport Supercluster from 'supercluster';\nimport AssetPin from './AssetPin/AssetPin';\nimport AssetClusterPin from './AssetClusterPin/AssetClusterPin';\nimport SearchForm from './SearchForm/SearchForm';\nimport {\n    selectAvailableCarriersById,\n    selectAvailableVehicles,\n    selectAvailableVehiclesQuery,\n    selectAvailableVehiclesRequest,\n    selectFetchAssignDetailsRequest,\n    selectScheduleAssetById,\n    selectSelectedScheduleEventId,\n    selectSelfCostPrediction,\n    selectSelfCostPredictionRequestStatus,\n    selectTrailerAssignmentInfoById,\n    selectTruckAssignmentInfoById,\n    selectUserSelection,\n    selectVehicleLinks,\n} from 'broker-admin/store/broker-order-assigment/selectors';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { createVehiclesGeoJson } from './utils/geo-json-factory';\nimport { useTranslation } from 'react-i18next';\nimport { selectCarriersUtilizationByHash } from 'common/store/carriers-utilization/selectors';\nimport { BrokerOrderDetailsT } from 'broker-admin/store/broker-order-details/models';\nimport { changeUserSelection } from 'broker-admin/store/broker-order-assigment/actions';\nimport {\n    PointToDropT,\n    ScheduleEventIdT,\n    ScheduleEventT,\n    UserSelectionT,\n} from 'broker-admin/store/broker-order-assigment/models';\nimport MapArea, { MapAreaThemeEnum } from 'common/components/maps/MapArea/MapArea';\nimport MapRoute, { MapRouteThemeEnum } from 'common/components/maps/MapRoute/MapRoute';\nimport CurrentAssetPositionPin from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/CurrentAssetPositionPin/CurrentAssetPositionPin';\nimport { CURRENT_ASSIGNMENT_EVENT_ID } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/constants';\nimport AssetSchedulePin from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/AssetSchedulePin/AssetSchedulePin';\nimport isNumber from 'lodash/isNumber';\nimport { M_IN_KM } from 'common/utils/distance';\nimport isEmpty from 'lodash/isEmpty';\nimport isEqual from 'lodash/isEqual';\nimport ControlLoaderLabel from 'common/components/ControlLoaderLabel/ControlLoaderLabel';\nimport { useGoogleMapGeocoding } from 'common/utils/hooks/maps/useGoogleMapGeocoding';\nimport TimeZoneContext from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/contexts/timezone-context';\nimport { getHash } from 'common/store/carriers-utilization/utils';\nimport { isNonNil } from 'common/utils';\nimport { useRouteGeometry } from 'common/utils/hooks/useRouteGeometry';\nimport { selectRoutingGeometryState } from 'common/store/routing-geometry/selectors';\nimport NumberPinIcon from 'common/icons/NumberPinIcon';\nimport AssetDropOffLocationPin from 'common/components/maps/pins/AssetDropOffLocationPin/AssetDropOffLocationPin';\nimport { BoundPointT } from 'common/components/maps/MapBound/MapBound';\nimport { findTourById } from 'broker-admin/store/broker-order-details/utils/find-tour-by-id';\n\nimport { createInitPayloadDropPoint } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/hooks/createInitPayloadDropPoint';\nimport AssetsSelectionContext from '../contexts/assets-selection-context';\nimport { SyncAssignmentFormMapStateContext } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/contexts/sync-map-state';\nimport { findFirstPickupDeliveryWaypointDate } from 'broker-admin/store/broker-order-assigment/utils/find-first-pickup-delivery-waypoint-date';\nimport { MapPinThemeEnum } from 'common/components/maps/MapPin/MapPin';\n\nconst cx = classNames.bind(styles);\n\ntype LoaderPropsT = {\n    title: string;\n};\n\nconst Loader: React.FC<LoaderPropsT> = (props) => {\n    const { title } = props;\n\n    return <ControlLoaderLabel isInvert>{title}</ControlLoaderLabel>;\n};\n\ntype PropsT = {\n    brokerOrderId: BrokerOrderIdT;\n    brokerOrderDetails: BrokerOrderDetailsT | null;\n    tourId: TourIdT | null;\n};\n\nconst FEATURES_LIMIT = 99999;\nconst DEFAULT_OFFSET = 0;\n\ntype AssetIdsT = {\n    trailerId: TrailerIdT | null;\n    truckId: TruckIdT | null;\n};\n\nconst SUPERCLUSTER_SETTINGS = {\n    radius: 100,\n    maxZoom: 22,\n};\n\ntype RenderMapClusterParamsT = {\n    cluster: TODO;\n    clusterFeatures: Array<Supercluster.PointFeature<TODO>>;\n    selectedTruckId: TruckIdT | null;\n    selectedTrailerId: TrailerIdT | null;\n    firstPickupDeliveryWaypointDate: string | null;\n    onClusterClick: (clusterId: number) => void;\n    onSelectAssets: (truckId: TruckIdT | null | undefined, trailerId: TrailerIdT | null | undefined) => void;\n    onHoverAssets: (truckId: TruckIdT | null | undefined, trailerId: TrailerIdT | null | undefined) => void;\n    canInTime: boolean;\n};\n\nconst MAP_PIN_KEY = {\n    pointToDropLink: 'point-to-drop-link',\n    pointToDropTrailer: 'point-to-drop-trailer',\n    pointToDropTruck: 'point-to-drop-truck',\n};\n\nconst AVAILABLE_STOP_SET = new Set<ApiStopTypeT>([\n    StopTypeEnum.pickupDeliveryShipment,\n    StopTypeEnum.driveThrough,\n    StopTypeEnum.dropAndHook,\n]);\n\nconst AssignmentMap: React.FC<PropsT> = React.memo((props) => {\n    const { brokerOrderId, tourId, brokerOrderDetails } = props;\n\n    const { t } = useTranslation();\n\n    const syncMapStateContext = useContext(SyncAssignmentFormMapStateContext);\n\n    const [hoveredAssets, setHoveredAssets] = useState<AssetIdsT>({\n        trailerId: null,\n        truckId: null,\n    });\n    const hoveredTrailerId = hoveredAssets.trailerId;\n    const hoveredTruckId = hoveredAssets.truckId;\n\n    const isSkipFocusRef = React.useRef<boolean>(false);\n\n    const assetsSelectionContext = useContext(AssetsSelectionContext);\n    const timeZoneContext = useContext(TimeZoneContext);\n    const userSelection = useSelector(selectUserSelection);\n    const selectedTrailerId = userSelection?.trailerId || null;\n    const selectedTruckId = userSelection?.truckId || null;\n    const selectedPointToDropTrailer = userSelection?.pointToDropTrailer || null;\n    const selectedPointToDropTruck = userSelection?.pointToDropTruck || null;\n\n    const isBlockedSelectTrailer = !!assetsSelectionContext?.value?.isBlockedSelectTrailer;\n    const isBlockedSelectTruck = !!assetsSelectionContext?.value?.isBlockedSelectTruck;\n\n    const tour = React.useMemo(() => {\n        return findTourById(brokerOrderDetails, tourId);\n    }, [brokerOrderDetails, tourId]);\n\n    const waypoints = React.useMemo(() => {\n        return tour?.waypoints || [];\n    }, [tour]);\n\n    const dispatch = useDispatch();\n\n    const firstPayloadWaypoint = React.useMemo(() => {\n        if (!waypoints) {\n            return null;\n        }\n\n        return (\n            waypoints.find((waypoint) => {\n                return (\n                    waypoint?.type === StopTypeEnum.pickupDeliveryShipment ||\n                    waypoint?.type === StopTypeEnum.driveThrough ||\n                    waypoint?.type === StopTypeEnum.dropAndHook\n                );\n            }) || null\n        );\n    }, [waypoints]);\n\n    const firstPickupDeliveryWaypointDate = React.useMemo(() => {\n        return findFirstPickupDeliveryWaypointDate(brokerOrderDetails, tourId);\n    }, [brokerOrderDetails, tourId]);\n\n    const handleSelectAssets = (\n        truckId: TruckIdT | null | undefined,\n        trailerId: TrailerIdT | null | undefined,\n    ): void => {\n        isSkipFocusRef.current = true;\n\n        const userSelection: Partial<UserSelectionT> = {};\n        if (truckId) {\n            userSelection.truckId = truckId;\n        }\n        if (trailerId) {\n            userSelection.trailerId = trailerId;\n        }\n        dispatch(changeUserSelection(brokerOrderId, tourId, userSelection));\n    };\n\n    const handleHoverAssets = (\n        truckId: TruckIdT | null | undefined,\n        trailerId: TrailerIdT | null | undefined,\n    ): void => {\n        setHoveredAssets({\n            truckId: truckId || null,\n            trailerId: trailerId || null,\n        });\n    };\n\n    const { googleMaps } = useGoogleMapContext();\n    const { onGoogleApiLoaded } = useGoogleMapsApiLoader({});\n    const { config, onZoomAnimationEnd, onDragEnd } = useGoogleMapConfig();\n    const { tryGeocodeByPoint } = useGoogleMapGeocoding();\n\n    const selectedScheduleEventId = useSelector(selectSelectedScheduleEventId);\n\n    const vehicles = useSelector(selectAvailableVehicles);\n    const carriersById = useSelector(selectAvailableCarriersById);\n\n    const carriersUtilizationByHash = useSelector(selectCarriersUtilizationByHash);\n    const trailerAssignmentInfoById = useSelector(selectTrailerAssignmentInfoById);\n    const truckAssignmentInfoById = useSelector(selectTruckAssignmentInfoById);\n    const scheduleAssetById = useSelector(selectScheduleAssetById);\n\n    const vehicleLinks = useSelector(selectVehicleLinks);\n    const isSelectedLink = vehicleLinks.byTruckId[selectedTruckId as TruckIdT] === selectedTrailerId;\n\n    const query = useSelector(selectAvailableVehiclesQuery);\n    const availableVehiclesRequestStatus = useSelector(selectAvailableVehiclesRequest);\n\n    const selfCostPrediction = useSelector(selectSelfCostPrediction);\n    const selfCostPredictionRequestStatus = useSelector(selectSelfCostPredictionRequestStatus);\n\n    const fetchAssignDetailsRequest = useSelector(selectFetchAssignDetailsRequest);\n\n    const polylineIds = useMemo(() => {\n        return [\n            tour?.polylineId,\n            selfCostPrediction?.trailerToPickupPolylineId,\n            selfCostPrediction?.truckToTrailerPolylineId,\n            selfCostPrediction?.payloadPolylineId,\n            selfCostPrediction?.dropTrailerPolylineId,\n            selfCostPrediction?.dropTruckPolylineId,\n        ].filter(isNonNil);\n    }, [\n        tour?.polylineId,\n        selfCostPrediction?.trailerToPickupPolylineId,\n        selfCostPrediction?.truckToTrailerPolylineId,\n        selfCostPrediction?.payloadPolylineId,\n        selfCostPrediction?.dropTrailerPolylineId,\n        selfCostPrediction?.dropTruckPolylineId,\n    ]);\n\n    useRouteGeometry(polylineIds);\n\n    const payloadGeometryState = useSelector(selectRoutingGeometryState(tour?.polylineId));\n\n    const deadheadRoutingGeometryState = useSelector(\n        selectRoutingGeometryState(selfCostPrediction?.trailerToPickupPolylineId),\n    );\n    const truckToTrailerRoutingGeometryState = useSelector(\n        selectRoutingGeometryState(selfCostPrediction?.truckToTrailerPolylineId),\n    );\n\n    const dropTrailerRoutingGeometryState = useSelector(\n        selectRoutingGeometryState(selfCostPrediction?.dropTrailerPolylineId),\n    );\n\n    const dropTruckRoutingGeometryState = useSelector(\n        selectRoutingGeometryState(selfCostPrediction?.dropTruckPolylineId),\n    );\n\n    const selectedTrailer = selectedTrailerId ? trailerAssignmentInfoById[selectedTrailerId] : null;\n    const selectedTruck = selectedTruckId ? truckAssignmentInfoById[selectedTruckId] : null;\n\n    const defaultBoundPoints = useMemo((): Array<BoundPointT> => {\n        const boundPoints: Array<BoundPointT> = [];\n\n        waypoints?.forEach((payloadWaypoint) => {\n            boundPoints.push([payloadWaypoint?.address?.latitude, payloadWaypoint?.address?.longitude]);\n        });\n\n        const assets = [selectedTruck, selectedTrailer];\n        assets.forEach((asset) => {\n            if (userSelection?.isShowActualPlace && asset?.currentLatitude && asset?.currentLongitude) {\n                boundPoints.push([asset.currentLatitude, asset.currentLongitude]);\n            }\n\n            if (asset?.expectedLatitude && asset?.expectedLongitude) {\n                boundPoints.push([asset.expectedLatitude, asset.expectedLongitude]);\n            }\n        });\n\n        return boundPoints;\n    }, [waypoints, selectedTrailer, selectedTruck, userSelection?.isShowActualPlace]);\n\n    const defaultBoundPointsHash = useMemo(() => {\n        return JSON.stringify(defaultBoundPoints);\n    }, [defaultBoundPoints]);\n\n    React.useEffect(() => {\n        if (!googleMaps.map || !googleMaps.maps) {\n            return;\n        }\n\n        if (isSkipFocusRef.current) {\n            isSkipFocusRef.current = false;\n            return;\n        }\n\n        if (!defaultBoundPoints?.length) {\n            return;\n        }\n\n        const { map, maps } = googleMaps;\n\n        const bounds = new maps.LatLngBounds();\n\n        defaultBoundPoints.forEach((boundPoints) => {\n            const [latitude, longitude] = boundPoints;\n            if (isNumber(latitude) && isNumber(longitude)) {\n                const latLng = new maps.LatLng(latitude, longitude);\n                bounds.extend(latLng);\n            }\n        });\n\n        map.fitBounds(bounds);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [googleMaps, defaultBoundPointsHash]);\n\n    const sourceNotInTimeVehiclesGeoJSONs = React.useMemo(() => {\n        return createVehiclesGeoJson({\n            vehicles,\n            trailerById: trailerAssignmentInfoById,\n            truckById: truckAssignmentInfoById,\n            options: {\n                showSelectedNotCanBeInTime: true,\n                showNotCanBeInTime: userSelection?.isShowUnavailableAssets,\n                showCanBeInTime: false,\n                blockSelectTruck: isBlockedSelectTruck,\n                blockSelectTrailer: isBlockedSelectTrailer,\n            },\n            selectedTrailerId,\n            selectedTruckId,\n            vehicleLinks,\n        });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [\n        vehicles,\n        trailerAssignmentInfoById,\n        selectedTrailerId,\n        selectedTruckId,\n        hoveredTrailerId,\n        hoveredTruckId,\n        truckAssignmentInfoById,\n        vehicleLinks,\n        userSelection?.isShowUnavailableAssets,\n        isBlockedSelectTrailer,\n        isBlockedSelectTruck,\n    ]);\n\n    const sourceInTimeVehiclesGeoJSONs = React.useMemo(() => {\n        return createVehiclesGeoJson({\n            vehicles,\n            trailerById: trailerAssignmentInfoById,\n            truckById: truckAssignmentInfoById,\n            options: {\n                showSelectedNotCanBeInTime: false,\n                showNotCanBeInTime: false,\n                showCanBeInTime: true,\n                blockSelectTruck: isBlockedSelectTruck,\n                blockSelectTrailer: isBlockedSelectTrailer,\n            },\n            selectedTrailerId,\n            selectedTruckId,\n            vehicleLinks,\n        });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [\n        vehicles,\n        trailerAssignmentInfoById,\n        selectedTrailerId,\n        selectedTruckId,\n        hoveredTrailerId,\n        hoveredTruckId,\n        truckAssignmentInfoById,\n        vehicleLinks,\n        isBlockedSelectTrailer,\n        isBlockedSelectTruck,\n    ]);\n\n    const {\n        inTimeVehiclesGeoJSONs,\n        notInTimeVehiclesGeoJSONs,\n        selectedTruckCurrentPosition,\n        selectedTrailerCurrentPosition,\n    } = React.useMemo(() => {\n        const PROXIMITY = 0.0002;\n        const getPositionHash = (lot: number, lat: number) => {\n            return [lot, lat].map((coordinate) => (coordinate % PROXIMITY) * PROXIMITY).join('|');\n        };\n\n        const positionsHashSet = new Set<string>([]);\n\n        let hash = '';\n\n        let selectedTruckCurrentPosition = null;\n        if (selectedTruck?.currentLongitude && selectedTruck?.currentLatitude) {\n            selectedTruckCurrentPosition = {\n                lng: selectedTruck.currentLongitude,\n                lat: selectedTruck.currentLatitude,\n            };\n\n            hash = getPositionHash(selectedTruckCurrentPosition.lng, selectedTruckCurrentPosition.lat);\n            while (positionsHashSet.has(hash)) {\n                selectedTruckCurrentPosition = {\n                    ...selectedTruckCurrentPosition,\n                    lng: selectedTruckCurrentPosition.lng + PROXIMITY,\n                };\n                hash = getPositionHash(selectedTruckCurrentPosition.lng, selectedTruckCurrentPosition.lat);\n            }\n\n            positionsHashSet.add(hash);\n        }\n\n        let selectedTrailerCurrentPosition = null;\n        if (selectedTrailer?.currentLongitude && selectedTrailer?.currentLatitude) {\n            selectedTrailerCurrentPosition = {\n                lng: selectedTrailer.currentLongitude,\n                lat: selectedTrailer.currentLatitude,\n            };\n\n            hash = getPositionHash(selectedTrailerCurrentPosition.lng, selectedTrailerCurrentPosition.lat);\n            while (positionsHashSet.has(hash)) {\n                selectedTrailerCurrentPosition = {\n                    ...selectedTrailerCurrentPosition,\n                    lng: selectedTrailerCurrentPosition.lng + PROXIMITY,\n                };\n                hash = getPositionHash(selectedTrailerCurrentPosition.lng, selectedTrailerCurrentPosition.lat);\n            }\n\n            positionsHashSet.add(hash);\n        }\n\n        const notInTimeVehiclesGeoJSONs = sourceNotInTimeVehiclesGeoJSONs.map((sourceGeoJSON) => {\n            let geoJSON = { ...sourceGeoJSON };\n\n            hash = getPositionHash(geoJSON.geometry.coordinates[0], geoJSON.geometry.coordinates[1]);\n            while (positionsHashSet.has(hash)) {\n                geoJSON = {\n                    ...geoJSON,\n                    geometry: {\n                        ...geoJSON.geometry,\n                        coordinates: [geoJSON.geometry.coordinates[0] + PROXIMITY, geoJSON.geometry.coordinates[1]],\n                    },\n                };\n                hash = getPositionHash(geoJSON.geometry.coordinates[0], geoJSON.geometry.coordinates[1]);\n            }\n\n            positionsHashSet.add(hash);\n            return geoJSON;\n        });\n\n        const inTimeVehiclesGeoJSONs = sourceInTimeVehiclesGeoJSONs.map((sourceGeoJSON) => {\n            let geoJSON = { ...sourceGeoJSON };\n\n            hash = getPositionHash(geoJSON.geometry.coordinates[0], geoJSON.geometry.coordinates[1]);\n            while (positionsHashSet.has(hash)) {\n                geoJSON = {\n                    ...geoJSON,\n                    geometry: {\n                        ...geoJSON.geometry,\n                        coordinates: [geoJSON.geometry.coordinates[0] + PROXIMITY, geoJSON.geometry.coordinates[1]],\n                    },\n                };\n                hash = getPositionHash(geoJSON.geometry.coordinates[0], geoJSON.geometry.coordinates[1]);\n            }\n\n            positionsHashSet.add(hash);\n            return geoJSON;\n        });\n\n        return {\n            inTimeVehiclesGeoJSONs,\n            notInTimeVehiclesGeoJSONs,\n            selectedTruckCurrentPosition,\n            selectedTrailerCurrentPosition,\n        };\n    }, [sourceNotInTimeVehiclesGeoJSONs, sourceInTimeVehiclesGeoJSONs, selectedTruck, selectedTrailer]);\n\n    const notInTimeClusterator = React.useMemo(() => {\n        const clusterator = new Supercluster(SUPERCLUSTER_SETTINGS);\n        clusterator.load(notInTimeVehiclesGeoJSONs);\n        return clusterator;\n    }, [notInTimeVehiclesGeoJSONs]);\n\n    const notInTimeClusters = React.useMemo(() => {\n        if (config) {\n            const clusters = notInTimeClusterator.getClusters(config.bounds, config.zoom);\n            return clusters;\n        }\n\n        return [];\n    }, [config, notInTimeClusterator]);\n\n    const inTimeClusterator = React.useMemo(() => {\n        const clusterator = new Supercluster(SUPERCLUSTER_SETTINGS);\n        clusterator.load(inTimeVehiclesGeoJSONs);\n        return clusterator;\n    }, [inTimeVehiclesGeoJSONs]);\n\n    const inTimeClusters = React.useMemo(() => {\n        if (config) {\n            const clusters = inTimeClusterator.getClusters(config.bounds, config.zoom);\n            return clusters;\n        }\n\n        return [];\n    }, [config, inTimeClusterator]);\n\n    const handleImTimeClusterClick = React.useCallback(\n        (clusterId: number) => {\n            const { map, maps } = googleMaps;\n\n            if (!maps || !map) {\n                return;\n            }\n\n            const clusterFeatures = inTimeClusterator.getLeaves(clusterId, FEATURES_LIMIT, DEFAULT_OFFSET);\n\n            const bounds = new maps.LatLngBounds();\n\n            clusterFeatures.forEach((feature: Supercluster.PointFeature<{}>) => {\n                const point = new maps.LatLng(feature.geometry.coordinates[1], feature.geometry.coordinates[0]);\n\n                bounds.extend(point);\n            });\n\n            map.fitBounds(bounds);\n        },\n        [googleMaps, inTimeClusterator],\n    );\n\n    const handleNotImTimeClusterClick = React.useCallback(\n        (clusterId: number) => {\n            const { map, maps } = googleMaps;\n\n            if (!maps || !map) {\n                return;\n            }\n\n            const clusterFeatures = notInTimeClusterator.getLeaves(clusterId, FEATURES_LIMIT, DEFAULT_OFFSET);\n\n            const bounds = new maps.LatLngBounds();\n\n            clusterFeatures.forEach((feature: Supercluster.PointFeature<{}>) => {\n                const point = new maps.LatLng(feature.geometry.coordinates[1], feature.geometry.coordinates[0]);\n\n                bounds.extend(point);\n            });\n\n            map.fitBounds(bounds);\n        },\n        [googleMaps, notInTimeClusterator],\n    );\n\n    const isShowCalcCostPredictionLoader =\n        selfCostPredictionRequestStatus.loading ||\n        deadheadRoutingGeometryState.requestStatus?.loading ||\n        truckToTrailerRoutingGeometryState.requestStatus?.loading ||\n        dropTrailerRoutingGeometryState.requestStatus?.loading ||\n        dropTruckRoutingGeometryState.requestStatus?.loading;\n\n    const isShowFindVehiclesLoader = availableVehiclesRequestStatus.loading;\n\n    const isShowFetchTrailerScheduleLoader = !!scheduleAssetById[selectedTrailerId as string]?.requestStatus?.loading;\n    const isShowFetchTruckScheduleLoader = !!scheduleAssetById[selectedTruckId as string]?.requestStatus?.loading;\n    const isShowFetchAssetScheduleLoader = isShowFetchTrailerScheduleLoader || isShowFetchTruckScheduleLoader;\n    const isShowFetchAssignDetailsLoader = fetchAssignDetailsRequest?.loading;\n\n    const trailerSchedule = scheduleAssetById[selectedTrailerId as TrailerIdT] || null;\n    const truckSchedule = scheduleAssetById[selectedTruckId as TruckIdT] || null;\n\n    const renderMapCluster = (params: RenderMapClusterParamsT): React.ReactNode => {\n        const {\n            cluster,\n            clusterFeatures,\n            selectedTruckId,\n            selectedTrailerId,\n            firstPickupDeliveryWaypointDate,\n            onClusterClick,\n            onSelectAssets,\n            onHoverAssets,\n            canInTime,\n        } = params;\n\n        const isCluster = cluster.properties?.cluster;\n        if (isCluster) {\n            const { cluster_id: clusterId } = cluster.properties || {};\n\n            let trailersCount = 0;\n            let hasSelectedTrailer = false;\n            let truckCount = 0;\n            let hasSelectedTruck = false;\n            let linksCount = 0;\n            let hasSelectedLink = false;\n\n            clusterFeatures.forEach((clusterFeature) => {\n                const { truckId, trailerId } = clusterFeature.properties;\n\n                const isTruck = truckId && !trailerId;\n                if (isTruck) {\n                    truckCount += 1;\n                }\n                const isSelectedTruck = selectedTruckId && truckId === selectedTruckId;\n                if (isTruck && isSelectedTruck) {\n                    hasSelectedTruck = true;\n                }\n\n                const isTrailer = !truckId && trailerId;\n                if (isTrailer) {\n                    trailersCount += 1;\n                }\n                const isSelectedTrailer = selectedTrailerId && trailerId === selectedTrailerId;\n                if (isTrailer && isSelectedTrailer) {\n                    hasSelectedTrailer = true;\n                }\n\n                const isLink = truckId && trailerId;\n                if (isLink) {\n                    linksCount += 1;\n                }\n\n                if (isLink && (isSelectedTruck || isSelectedTrailer)) {\n                    hasSelectedLink = true;\n                }\n            });\n\n            return (\n                <AssetClusterPin\n                    key={clusterId}\n                    clusterId={clusterId}\n                    trucksCount={truckCount}\n                    hasSelectedTruck={hasSelectedTruck}\n                    trailersCount={trailersCount}\n                    hasSelectedTrailer={hasSelectedTrailer}\n                    linksCount={linksCount}\n                    hasSelectedLink={hasSelectedLink}\n                    lng={cluster.geometry.coordinates[0]}\n                    lat={cluster.geometry.coordinates[1]}\n                    onClick={onClusterClick}\n                    canInTime={canInTime}\n                />\n            );\n        }\n\n        const truckId = cluster.properties?.truckId;\n        const trailerId = cluster.properties?.trailerId;\n        const isSelectedTruck = truckId && truckId === selectedTruckId;\n        const isSelectedTrailer = trailerId && trailerId === selectedTrailerId;\n\n        const trailerAssignmentInfo = trailerAssignmentInfoById[trailerId] || null;\n        const truckAssignmentInfo = truckAssignmentInfoById[truckId] || null;\n        const anyAssignmentInfo = truckAssignmentInfo || trailerAssignmentInfo;\n\n        const truckCarrier = carriersById[truckAssignmentInfo?.carrierId as string] || null;\n        const truckHash =\n            truckAssignmentInfo?.carrierId && firstPickupDeliveryWaypointDate\n                ? getHash(truckAssignmentInfo.carrierId, firstPickupDeliveryWaypointDate)\n                : null;\n        const truckCarrierUtilization = truckHash ? carriersUtilizationByHash[truckHash] : null;\n        const truckCarrierUtilizationPercent = truckCarrierUtilization\n            ? truckCarrierUtilization.utilizationPercents\n            : null;\n\n        const trailerCarrier = carriersById[trailerAssignmentInfo?.carrierId as string] || null;\n        const trailerHash =\n            trailerAssignmentInfo?.carrierId && firstPickupDeliveryWaypointDate\n                ? getHash(trailerAssignmentInfo.carrierId, firstPickupDeliveryWaypointDate)\n                : null;\n        const trailerCarrierUtilization = trailerHash ? carriersUtilizationByHash[trailerHash] : null;\n        const trailerCarrierUtilizationPercent = trailerCarrierUtilization\n            ? trailerCarrierUtilization.utilizationPercents\n            : null;\n\n        return (\n            <AssetPin\n                key={cluster.properties?.id}\n                lng={cluster.geometry.coordinates[0]}\n                lat={cluster.geometry.coordinates[1]}\n                utcOffset={timeZoneContext?.value?.utcOffsetMin}\n                arrivalDate={anyAssignmentInfo?.expectedArrivalDate}\n                plateNumber={anyAssignmentInfo?.plateNumber}\n                truckCarrierUtilizationPercent={truckCarrierUtilizationPercent}\n                isLoadingTruckCarrierUtilization={!isNumber(truckCarrierUtilization?.utilizationPercents)}\n                truckCarrier={truckCarrier}\n                truckId={truckId}\n                isLoadingTruckUtilization={false}\n                truckUtilization={truckAssignmentInfo?.utilization}\n                truckRatePerKm={truckAssignmentInfo?.ratePerKm}\n                truckRateMode={truckAssignmentInfo?.rateMode}\n                truckInvalidReason={truckAssignmentInfo?.invalidReason}\n                isSelectedTruck={isSelectedTruck}\n                trailerId={trailerId}\n                isLoadingTrailerUtilization={false}\n                trailerUtilization={trailerAssignmentInfo?.utilization}\n                trailerRatePerKm={trailerAssignmentInfo?.ratePerKm}\n                trailerRateMode={trailerAssignmentInfo?.rateMode}\n                trailerInvalidReason={trailerAssignmentInfo?.invalidReason}\n                trailerCarrierUtilizationPercent={trailerCarrierUtilizationPercent}\n                isLoadingTrailerCarrierUtilization={!isNumber(trailerCarrierUtilization?.utilizationPercents)}\n                trailerCarrier={trailerCarrier}\n                isSelectedTrailer={isSelectedTrailer}\n                onClick={onSelectAssets}\n                onHover={onHoverAssets}\n                canInTime={canInTime}\n                isBlockedSelectTrailer={assetsSelectionContext?.value?.isBlockedSelectTrailer}\n                isBlockedSelectTruck={assetsSelectionContext?.value?.isBlockedSelectTruck}\n            />\n        );\n    };\n\n    const renderCurrentPosition = (): React.ReactNode[] => {\n        const currentAssetPositions: React.ReactNode[] = [];\n\n        if (!userSelection?.isShowActualPlace) {\n            return currentAssetPositions;\n        }\n\n        if (isSelectedLink) {\n            const currentLinkPosition = selectedTruckCurrentPosition;\n            if (currentLinkPosition) {\n                currentAssetPositions.push(\n                    <CurrentAssetPositionPin isLink lat={currentLinkPosition.lat} lng={currentLinkPosition.lng} />,\n                );\n            }\n        } else {\n            const currentTruckPosition = selectedTruckCurrentPosition;\n            if (currentTruckPosition) {\n                currentAssetPositions.push(\n                    <CurrentAssetPositionPin isTruck lat={currentTruckPosition.lat} lng={currentTruckPosition.lng} />,\n                );\n            }\n\n            const currentTrailerPosition = selectedTrailerCurrentPosition;\n            if (currentTrailerPosition) {\n                currentAssetPositions.push(\n                    <CurrentAssetPositionPin\n                        isTrailer\n                        lat={currentTrailerPosition.lat}\n                        lng={currentTrailerPosition.lng}\n                    />,\n                );\n            }\n        }\n\n        return currentAssetPositions;\n    };\n\n    const renderScheduleEvents = (\n        assetType: AssetTypeEnum,\n        scheduleEvents: Array<ScheduleEventT> | null,\n    ): Array<React.ReactNode> => {\n        const result: Array<React.ReactNode> = [];\n\n        if (!userSelection?.isShowAssetSchedule) {\n            return result;\n        }\n\n        scheduleEvents?.forEach((scheduleEvent, scheduleEventIndex) => {\n            const origin = assetType === AssetTypeEnum.truck ? scheduleEvent.truckOrigin : scheduleEvent.trailerOrigin;\n            if (origin && isNumber(origin.latitude) && isNumber(origin.longitude)) {\n                result.push(\n                    <AssetSchedulePin\n                        assetType={assetType}\n                        isSelected={scheduleEvent?.id === selectedScheduleEventId}\n                        lat={origin.latitude}\n                        lng={origin.longitude}\n                        number={2 * scheduleEventIndex + 1}\n                    />,\n                );\n            }\n\n            const destination =\n                assetType === AssetTypeEnum.truck ? scheduleEvent.truckDestination : scheduleEvent.trailerDestination;\n            if (destination && isNumber(destination.latitude) && isNumber(destination.longitude)) {\n                result.push(\n                    <AssetSchedulePin\n                        assetType={assetType}\n                        isSelected={scheduleEvent?.id === selectedScheduleEventId}\n                        lat={destination.latitude}\n                        lng={destination.longitude}\n                        number={2 * scheduleEventIndex + 2}\n                    />,\n                );\n            }\n        });\n\n        return result;\n    };\n\n    const [draggablePin, setDraggablePin] = useState<{\n        point: GeoPointT;\n        childKey: string;\n    } | null>(null);\n\n    const handleDragMove = (childKey: string, childProps: any, mouse: GeoPointT) => {\n        if (\n            childKey !== MAP_PIN_KEY.pointToDropTrailer &&\n            childKey !== MAP_PIN_KEY.pointToDropTruck &&\n            childKey !== MAP_PIN_KEY.pointToDropLink\n        ) {\n            return;\n        }\n\n        setDraggablePin({\n            childKey,\n            point: {\n                lat: mouse.lat,\n                lng: mouse.lng,\n            },\n        });\n    };\n\n    const handleDragEnd = async (childKey: string, childProps: any, mouse: GeoPointT) => {\n        const location = await tryGeocodeByPoint(mouse);\n        const pointToDrop: PointToDropT = {\n            address: location.address || `${mouse.lat}, ${mouse.lng}`,\n            point: location.point,\n            addressComponents: location.addressComponents,\n        };\n\n        const changes: Partial<UserSelectionT> = {};\n\n        if (childKey === MAP_PIN_KEY.pointToDropTrailer) {\n            changes.pointToDropTrailer = pointToDrop;\n        } else if (childKey === MAP_PIN_KEY.pointToDropTruck) {\n            changes.pointToDropTruck = pointToDrop;\n        } else if (childKey === MAP_PIN_KEY.pointToDropLink) {\n            changes.pointToDropTrailer = pointToDrop;\n            changes.pointToDropTruck = pointToDrop;\n        }\n\n        if (!isEmpty(changes)) {\n            dispatch(changeUserSelection(brokerOrderId, tourId, changes));\n        }\n\n        setDraggablePin(null);\n    };\n\n    const handleMapClick = async (event: ClickEventValue) => {\n        // TODO improve detect click on map, not pin!\n        const isClickOnMap =\n            !event?.event?.target?.className &&\n            event?.event?.target?.style?.['z-index'] &&\n            event?.event?.target?.tagName === 'DIV';\n        if (!isClickOnMap) {\n            return;\n        }\n\n        const location = await tryGeocodeByPoint(event);\n        const pointToDrop: PointToDropT = {\n            address: location.address || `${event.lat}, ${event.lng}`,\n            point: location.point,\n            addressComponents: location.addressComponents,\n        };\n\n        syncMapStateContext.onMapClickCallback?.callback?.(pointToDrop);\n    };\n\n    const initPayloadDropPoint = useMemo(() => {\n        return createInitPayloadDropPoint(brokerOrderDetails, tourId);\n    }, [brokerOrderDetails, tourId]);\n\n    const shouldShowDropTrailerPoint = useMemo(() => {\n        return !isEqual(selectedPointToDropTrailer?.point, initPayloadDropPoint?.location?.point);\n    }, [selectedPointToDropTrailer, initPayloadDropPoint]);\n\n    const viewToDropTrailerPoint =\n        draggablePin?.childKey === MAP_PIN_KEY.pointToDropTrailer\n            ? draggablePin?.point\n            : selectedPointToDropTrailer?.point;\n\n    const viewToDropLinkPoint =\n        draggablePin?.childKey === MAP_PIN_KEY.pointToDropLink\n            ? draggablePin?.point\n            : selectedPointToDropTrailer?.point;\n\n    const shouldShowDropTruckPoint = useMemo(() => {\n        return !isEqual(selectedPointToDropTruck?.point, initPayloadDropPoint?.location?.point);\n    }, [selectedPointToDropTruck, initPayloadDropPoint]);\n\n    const viewToDropTruckPoint =\n        draggablePin?.childKey === MAP_PIN_KEY.pointToDropTruck ? draggablePin?.point : selectedPointToDropTruck?.point;\n\n    const isSelectedSameDropOffPoints = useMemo(() => {\n        return isEqual(viewToDropTrailerPoint, viewToDropTruckPoint);\n    }, [viewToDropTrailerPoint, viewToDropTruckPoint]);\n\n    return (\n        <>\n            <GoogleMapReact\n                key=\"assignment\"\n                draggable={!draggablePin}\n                defaultCenter={DEFAULT_CENTER}\n                defaultZoom={DEFAULT_ZOOM}\n                bootstrapURLKeys={BOOTSTRAP_URL_KEYS}\n                options={MAP_OPTIONS}\n                onGoogleApiLoaded={onGoogleApiLoaded}\n                onDragEnd={onDragEnd}\n                onZoomAnimationEnd={onZoomAnimationEnd}\n                yesIWantToUseGoogleMapApiInternals\n                onChildMouseDown={handleDragMove}\n                onChildMouseUp={handleDragEnd}\n                onChildMouseMove={handleDragMove}\n                onClick={handleMapClick}\n            >\n                {waypoints.map((waypoint, index) => {\n                    if (!waypoint) {\n                        return null;\n                    }\n\n                    if (!AVAILABLE_STOP_SET.has(waypoint.type)) {\n                        return null;\n                    }\n\n                    let fillColor = StyleGuideColorsEnum.charcoal;\n                    if (waypoint.type === StopTypeEnum.driveThrough) {\n                        fillColor = StyleGuideColorsEnum.gray;\n                    }\n\n                    return (\n                        <NumberPinIcon\n                            number={(waypoint.index || 0) + 1}\n                            key={`route-point-${waypoint.index}-${index}`}\n                            className={cx('route-point-pin')}\n                            fillColor={fillColor}\n                            lng={waypoint?.address?.longitude}\n                            lat={waypoint?.address?.latitude}\n                        />\n                    );\n                })}\n                {viewToDropLinkPoint &&\n                    shouldShowDropTruckPoint &&\n                    shouldShowDropTrailerPoint &&\n                    isSelectedSameDropOffPoints && (\n                        <AssetDropOffLocationPin\n                            assetType={null}\n                            key={MAP_PIN_KEY.pointToDropLink}\n                            className={cx('location')}\n                            lat={viewToDropLinkPoint.lat}\n                            lng={viewToDropLinkPoint.lng}\n                            theme={\n                                !!syncMapStateContext?.hasDropTrailerPointError ||\n                                !!syncMapStateContext?.hasDropTruckPointError\n                                    ? MapPinThemeEnum.tomatoRed\n                                    : MapPinThemeEnum.charcoal\n                            }\n                        />\n                    )}\n                {viewToDropTrailerPoint && shouldShowDropTrailerPoint && !isSelectedSameDropOffPoints && (\n                    <AssetDropOffLocationPin\n                        assetType={AssetTypeEnum.trailer}\n                        key={MAP_PIN_KEY.pointToDropTrailer}\n                        className={cx('location')}\n                        lat={viewToDropTrailerPoint.lat}\n                        lng={viewToDropTrailerPoint.lng}\n                        theme={\n                            syncMapStateContext?.hasDropTrailerPointError\n                                ? MapPinThemeEnum.tomatoRed\n                                : MapPinThemeEnum.charcoal\n                        }\n                    />\n                )}\n                {viewToDropTruckPoint && shouldShowDropTruckPoint && !isSelectedSameDropOffPoints && (\n                    <AssetDropOffLocationPin\n                        assetType={AssetTypeEnum.truck}\n                        key={MAP_PIN_KEY.pointToDropTruck}\n                        className={cx('location')}\n                        lat={viewToDropTruckPoint.lat}\n                        lng={viewToDropTruckPoint.lng}\n                        theme={\n                            syncMapStateContext?.hasDropTruckPointError\n                                ? MapPinThemeEnum.tomatoRed\n                                : MapPinThemeEnum.charcoal\n                        }\n                    />\n                )}\n                {...renderCurrentPosition()}\n                {notInTimeClusters.map((cluster) => {\n                    const { cluster_id: clusterId } = cluster.properties || {};\n\n                    const isCluster = cluster.properties?.cluster;\n\n                    const clusterFeatures = isCluster\n                        ? notInTimeClusterator.getLeaves(clusterId, FEATURES_LIMIT, DEFAULT_OFFSET)\n                        : [];\n\n                    return renderMapCluster({\n                        cluster,\n                        clusterFeatures,\n                        selectedTruckId,\n                        selectedTrailerId,\n                        firstPickupDeliveryWaypointDate,\n                        onClusterClick: handleNotImTimeClusterClick,\n                        onSelectAssets: handleSelectAssets,\n                        onHoverAssets: handleHoverAssets,\n                        canInTime: false,\n                    });\n                })}\n                {inTimeClusters.map((cluster) => {\n                    const { cluster_id: clusterId } = cluster.properties || {};\n\n                    const isCluster = cluster.properties?.cluster;\n\n                    const clusterFeatures = isCluster\n                        ? inTimeClusterator.getLeaves(clusterId, FEATURES_LIMIT, DEFAULT_OFFSET)\n                        : [];\n\n                    return renderMapCluster({\n                        cluster,\n                        clusterFeatures,\n                        selectedTruckId,\n                        selectedTrailerId,\n                        firstPickupDeliveryWaypointDate,\n                        onClusterClick: handleImTimeClusterClick,\n                        onSelectAssets: handleSelectAssets,\n                        onHoverAssets: handleHoverAssets,\n                        canInTime: true,\n                    });\n                })}\n                {...renderScheduleEvents(AssetTypeEnum.trailer, trailerSchedule?.events)}\n                {...renderScheduleEvents(AssetTypeEnum.truck, truckSchedule?.events)}\n            </GoogleMapReact>\n            <MapArea\n                map={googleMaps?.map}\n                maps={googleMaps?.maps}\n                theme={MapAreaThemeEnum.assignmentFindArea}\n                centerLat={firstPayloadWaypoint?.address?.latitude}\n                centerLon={firstPayloadWaypoint?.address?.longitude}\n                radiusM={query?.radiusKm ? query.radiusKm * M_IN_KM : null}\n            />\n            {!!selfCostPrediction?.trailerToPickupPolylineId && (\n                <MapRoute\n                    key=\"deadheadCoordinates\"\n                    map={googleMaps?.map}\n                    maps={googleMaps?.maps}\n                    geometryLibrary={googleMaps?.libraries?.geometry}\n                    polylines={deadheadRoutingGeometryState.data}\n                    theme={MapRouteThemeEnum.assignmentAttention}\n                    zIndex={1}\n                />\n            )}\n            {!!selfCostPrediction?.truckToTrailerPolylineId && (\n                <MapRoute\n                    key=\"truckToTrailerCoordinates\"\n                    map={googleMaps?.map}\n                    maps={googleMaps?.maps}\n                    geometryLibrary={googleMaps?.libraries?.geometry}\n                    polylines={truckToTrailerRoutingGeometryState.data}\n                    theme={MapRouteThemeEnum.assignmentAttention}\n                    zIndex={2}\n                />\n            )}\n            {!!selfCostPrediction?.dropTrailerPolylineId && (\n                <MapRoute\n                    key=\"dropTrailersCoordinates\"\n                    map={googleMaps?.map}\n                    maps={googleMaps?.maps}\n                    geometryLibrary={googleMaps?.libraries?.geometry}\n                    polylines={dropTrailerRoutingGeometryState.data}\n                    theme={MapRouteThemeEnum.assignmentAttention}\n                    zIndex={3}\n                />\n            )}\n            {!!selfCostPrediction?.dropTruckPolylineId && (\n                <MapRoute\n                    key=\"dropTruckCoordinates\"\n                    map={googleMaps?.map}\n                    maps={googleMaps?.maps}\n                    geometryLibrary={googleMaps?.libraries?.geometry}\n                    polylines={dropTruckRoutingGeometryState.data}\n                    theme={MapRouteThemeEnum.assignmentAttention}\n                    zIndex={4}\n                />\n            )}\n            <MapRoute\n                map={googleMaps?.map}\n                maps={googleMaps?.maps}\n                geometryLibrary={googleMaps?.libraries?.geometry}\n                polylines={payloadGeometryState.data}\n                key=\"route\"\n                theme={\n                    selectedScheduleEventId === CURRENT_ASSIGNMENT_EVENT_ID\n                        ? MapRouteThemeEnum.assignmentSelected\n                        : MapRouteThemeEnum.assignmentRoute\n                }\n                zIndex={5}\n            />\n            {userSelection?.isShowAssetSchedule &&\n                trailerSchedule?.events?.map((scheduleEvent) => {\n                    const route = trailerSchedule?.routeById[scheduleEvent?.id as ScheduleEventIdT] || [];\n\n                    return (\n                        <MapRoute\n                            key={`trailer-route-${scheduleEvent?.id}`}\n                            map={googleMaps?.map}\n                            maps={googleMaps?.maps}\n                            geometryLibrary={googleMaps?.libraries?.geometry}\n                            polylines={route}\n                            theme={\n                                selectedScheduleEventId === scheduleEvent?.id\n                                    ? MapRouteThemeEnum.assignmentSelected\n                                    : MapRouteThemeEnum.assignmentRoute\n                            }\n                            zIndex={6}\n                        />\n                    );\n                })}\n            {userSelection?.isShowAssetSchedule &&\n                truckSchedule?.events?.map((scheduleEvent) => {\n                    const route = truckSchedule?.routeById[scheduleEvent?.id as ScheduleEventIdT] || [];\n\n                    return (\n                        <MapRoute\n                            key={`truck-route-${scheduleEvent?.id}`}\n                            map={googleMaps?.map}\n                            maps={googleMaps?.maps}\n                            geometryLibrary={googleMaps?.libraries?.geometry}\n                            polylines={route}\n                            theme={\n                                selectedScheduleEventId === scheduleEvent?.id\n                                    ? MapRouteThemeEnum.assignmentSelected\n                                    : MapRouteThemeEnum.assignmentRoute\n                            }\n                            zIndex={7}\n                        />\n                    );\n                })}\n            <div className={cx('control')}>\n                <SearchForm brokerOrderId={brokerOrderId} brokerOrderDetails={brokerOrderDetails} tourId={tourId} />\n                {(isShowCalcCostPredictionLoader || isShowFindVehiclesLoader || isShowFetchAssetScheduleLoader) && (\n                    <div className={cx('loader__container')}>\n                        {isShowCalcCostPredictionLoader && (\n                            <div className={cx('loader')}>\n                                <Loader title={t('assignment.wait-deadhead')} />\n                            </div>\n                        )}\n                        {isShowFindVehiclesLoader && (\n                            <div className={cx('loader')}>\n                                <Loader title={t('assignment.wait-available-assets')} />\n                            </div>\n                        )}\n                        {isShowFetchAssetScheduleLoader && (\n                            <div className={cx('loader')}>\n                                <Loader title={t('assignment.wait-asset-schedule')} />\n                            </div>\n                        )}\n                        {isShowFetchAssignDetailsLoader && (\n                            <div className={cx('loader')}>\n                                <Loader title={t('assignment.wait-fetch-assign-details')} />\n                            </div>\n                        )}\n                    </div>\n                )}\n            </div>\n        </>\n    );\n});\n\nexport default AssignmentMap;\n","// extracted by mini-css-extract-plugin\nexport default {\"type\":\"DocumentTypeCell__type___D64eF\",\"type--is-empty\":\"DocumentTypeCell__type--is-empty___XAIA5\",\"fadeIn\":\"DocumentTypeCell__fadeIn____evzw\",\"blinking\":\"DocumentTypeCell__blinking___phKpq\"};","import { CarrierContractStateT } from './types';\nimport { SharableStateT } from '../models';\nimport { initialCarrierContractState } from 'common/store/carrier-contracts/reducer';\nimport { PartnerContractT } from 'common/store/carrier-contracts/models';\nimport keyBy from 'lodash/keyBy';\n\nconst selectCarrierContractState = (state: SharableStateT, partnerId: PartnerIdT | null): CarrierContractStateT => {\n    if (!partnerId) {\n        return initialCarrierContractState;\n    }\n\n    return state.carrierContracts[partnerId] || initialCarrierContractState;\n};\n\nexport const selectFetchCarrierContractsRequest = (partnerId: PartnerIdT | null) => {\n    return (state: SharableStateT): CarrierContractStateT['fetchContractsRequest'] => {\n        return selectCarrierContractState(state, partnerId).fetchContractsRequest;\n    };\n};\n\nexport const selectUpdateCarrierContractRequest = (partnerId: PartnerIdT | null) => {\n    return (state: SharableStateT): CarrierContractStateT['updateContractRequest'] => {\n        return selectCarrierContractState(state, partnerId).updateContractRequest;\n    };\n};\n\nexport const selectUploadCarrierContractRequest = (partnerId: PartnerIdT | null) => {\n    return (state: SharableStateT): CarrierContractStateT['uploadContractRequest'] => {\n        return selectCarrierContractState(state, partnerId).uploadContractRequest;\n    };\n};\n\nexport const selectDownloadCarrierContractRequest = (partnerId: PartnerIdT | null) => {\n    return (state: SharableStateT): CarrierContractStateT['downloadContractRequest'] => {\n        return selectCarrierContractState(state, partnerId).downloadContractRequest;\n    };\n};\n\nexport const selectUpdatingCarrierContractId = (partnerId: PartnerIdT | null) => {\n    return (state: SharableStateT): CarrierContractStateT['updatingContractId'] => {\n        return selectCarrierContractState(state, partnerId).updatingContractId;\n    };\n};\n\nexport const selectCarrierContracts = (partnerId: PartnerIdT | null) => {\n    return (state: SharableStateT): CarrierContractStateT['contracts'] => {\n        return selectCarrierContractState(state, partnerId).contracts;\n    };\n};\n\nexport const selectCarrierMainContract = (partnerId: PartnerIdT | null) => {\n    return (state: SharableStateT): CarrierContractStateT['contracts']['0'] => {\n        return selectCarrierContractState(state, partnerId).contracts[0];\n    };\n};\n\nexport const selectCarrierContractById = (partnerId: PartnerIdT | null) => {\n    return (state: SharableStateT): Record<CarrierContractIdT, PartnerContractT> => {\n        const { contracts } = selectCarrierContractState(state, partnerId);\n\n        return keyBy(contracts, 'id');\n    };\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"warning\":\"AttentionTextFormatter__warning___FJJQr\",\"fadeIn\":\"AttentionTextFormatter__fadeIn___EmWiu\",\"blinking\":\"AttentionTextFormatter__blinking___aJN99\"};","// extracted by mini-css-extract-plugin\nexport default {\"subject-link\":\"SubjectLink__subject-link___elujf\",\"fadeIn\":\"SubjectLink__fadeIn___JSQW9\",\"blinking\":\"SubjectLink__blinking___Bjh0v\"};","import * as React from 'react';\nimport { ApiTruckStatusT, TruckStatusEnum } from 'common/utils/api/models';\nimport { PropsT as ColoredStatusLabelPropsT } from 'common/components/ColoredStatusLabel/ColoredStatusLabel';\nimport TruckStatus from 'common/components/status/TruckStatus/TruckStatus';\nimport PillLabel, { colorCodingPillLabelTheme, PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\n\ntype PropsT = Omit<ColoredStatusLabelPropsT, 'label' | 'color'> & {\n    status: ApiTruckStatusT | null | undefined;\n    isSymmetrical?: boolean;\n};\n\nexport const PILL_THEME_BY_TRUCK_STATUS: Record<ApiTruckStatusT, PillLabelThemeEnum> = {\n    [TruckStatusEnum.free]: colorCodingPillLabelTheme.positive,\n    [TruckStatusEnum.inTransit]: colorCodingPillLabelTheme.normal,\n    [TruckStatusEnum.unavailable]: colorCodingPillLabelTheme.attention,\n    [TruckStatusEnum.archived]: colorCodingPillLabelTheme.warning,\n};\n\nconst TruckStatusPill: React.FC<PropsT> = React.memo((props) => {\n    const { status, ...restProps } = props;\n\n    if (!status) {\n        return null;\n    }\n\n    return (\n        <PillLabel isNoWrap {...restProps} theme={PILL_THEME_BY_TRUCK_STATUS[status]}>\n            <TruckStatus status={status} />\n        </PillLabel>\n    );\n});\n\nexport default TruckStatusPill;\n","import { put, takeEvery } from 'redux-saga/effects';\nimport {\n    createCompanyRequest,\n    createCompanyRequestBegin,\n    createCompanyRequestError,\n    createCompanyRequestSuccess,\n} from './slice';\nimport { CreateCompanyRequestActionT } from './types';\nimport { CompanyTypeEnum } from 'common/constants';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport i18n from 'i18next';\nimport history from 'common/utils/history';\nimport { parseAuthReturnUrl } from 'common/utils/auth-return-url';\nimport { authApi } from 'common/utils/api/auth/factory';\n\nfunction getCreateCompanySaga(companyType: CompanyTypeEnum) {\n    return function* (action: CreateCompanyRequestActionT): WrapGeneratorT<void> {\n        const { registrationCompanyRequestDraft, returnUrl } = action.payload;\n\n        yield put(createCompanyRequestBegin({}));\n\n        const [error] = yield commonTranziitApi.createCompany({\n            ...registrationCompanyRequestDraft,\n            companyType,\n            language: i18n.language,\n        });\n\n        if (error) {\n            yield put(createCompanyRequestError({ error }));\n            return;\n        }\n\n        const [forceRefreshTokenError] = yield authApi.forceRefreshToken();\n\n        yield put(\n            createCompanyRequestSuccess({\n                isLocked: !!forceRefreshTokenError,\n            }),\n        );\n\n        if (!forceRefreshTokenError) {\n            history.push(parseAuthReturnUrl(returnUrl));\n        }\n    };\n}\n\nfunction* createCompanySaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery(createCompanyRequest.type, getCreateCompanySaga(companyType));\n}\n\nexport { createCompanySaga };\n","import * as React from 'react';\nimport ControlsCell from 'common/components/Table/cell-renderers/ControlsCell/ControlsCell';\nimport type { DocumentRowT } from 'common/layouts/BaseDocumentsLayout/BaseDocumentsTable/BaseDocumentsTable';\nimport { useDocumentsActionOptions } from 'common/layouts/BaseDocumentsLayout/hooks/use-documents-action-options';\nimport { useSelector } from 'react-redux';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport { DocumentActionsT } from '../../../models';\nimport usePartnerPermissionsContext from 'common/utils/hooks/usePartnerPermissionsContext';\n\ntype PropsT = {\n    row: DocumentRowT;\n    className?: string;\n} & DocumentActionsT;\n\nconst ActionsCell: React.FC<PropsT> = React.memo((props) => {\n    const { className, row, onDownloadDocument, onUploadDocument, onRevokeDocument, onEditDocumentInfo } = props;\n\n    const permissions = useSelector(selectPermissions);\n    const partnerPermissions = usePartnerPermissionsContext();\n\n    const actualVersion = row?.actualVersion || null;\n    const dictDocument = row?.dictDocument || null;\n\n    const options = useDocumentsActionOptions({\n        actualDocumentVersion: actualVersion,\n        dictDocument,\n        permissions,\n        partnerPermissions,\n        callbacks: {\n            onDownloadDocument,\n            onUploadDocument,\n            onRevokeDocument,\n            onEditDocumentInfo,\n        },\n    });\n\n    return <ControlsCell className={className} options={options} />;\n});\n\nexport default ActionsCell;\n","import { BrokerOrderDetailsT } from 'broker-admin/store/broker-order-details/models';\nimport { findTourById } from 'broker-admin/store/broker-order-details/utils/find-tour-by-id';\nimport { getDateFromISO } from 'common/utils/time';\nimport { StopTypeEnum } from 'common/utils/api/models';\n\nexport const findFirstPickupDeliveryWaypointDate = (\n    brokerOrderDetails: BrokerOrderDetailsT | null,\n    tourId: TourIdT | null,\n): string | null => {\n    const tour = findTourById(brokerOrderDetails, tourId);\n    const waypoints = tour?.waypoints || [];\n\n    const firstPickupDeliveryWaypoint =\n        waypoints.find((waypoint) => {\n            return (\n                waypoint?.type === StopTypeEnum.pickupDeliveryShipment || waypoint?.type === StopTypeEnum.dropAndHook\n            );\n        }) || null;\n\n    const dateTimeFrom =\n        firstPickupDeliveryWaypoint?.correctedDateTimeFrom || firstPickupDeliveryWaypoint?.originalDateTimeFrom || null;\n    if (!dateTimeFrom) {\n        return null;\n    }\n\n    return getDateFromISO(dateTimeFrom);\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"ReviewFooterContent__content___o61rK\",\"action--reject\":\"ReviewFooterContent__action--reject___gRQfx\",\"action--approve\":\"ReviewFooterContent__action--approve___vcdrD\",\"actions\":\"ReviewFooterContent__actions___oRkGs\",\"fadeIn\":\"ReviewFooterContent__fadeIn___TRUUb\",\"blinking\":\"ReviewFooterContent__blinking___gV217\"};","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"UpdatedDocumentCard__inner___ogPtM\"};","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkEmail, checkNotEmpty } from 'common/utils/form-validators';\n\nconst ALL_FIELDS = [FieldsEnum.email] as const;\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, ALL_FIELDS, values),\n        ...checkEmail(t, ALL_FIELDS, values),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","import { TFunction } from 'i18next';\nimport { FieldsEnum, FormErrorsT, FormValuesT, MIN_VALID_FROM_VALID_TILL_DAYS } from './constants';\nimport { checkMaxLength, checkNotEmpty } from 'common/utils/form-validators';\nimport { getDayDiff } from 'common/utils/time';\n\nconst REQUIRED_FIELDS = [FieldsEnum.name, FieldsEnum.activateDate, FieldsEnum.validTillDate, FieldsEnum.file];\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n        ...checkMaxLength(t, [FieldsEnum.name, FieldsEnum.number], values, 250),\n    };\n\n    const activateDate = values[FieldsEnum.activateDate];\n    const validTillDate = values[FieldsEnum.validTillDate];\n\n    if (activateDate && validTillDate && getDayDiff(activateDate, validTillDate) < MIN_VALID_FROM_VALID_TILL_DAYS) {\n        errors[FieldsEnum.validTillDate] = t('sidebars.upload-shipper-contract.errors.valid-till-inteval-valid-from', {\n            count: MIN_VALID_FROM_VALID_TILL_DAYS,\n        });\n    }\n\n    if (activateDate && validTillDate && activateDate >= validTillDate) {\n        errors[FieldsEnum.validTillDate] = t('sidebars.upload-shipper-contract.errors.valid-till-earlier-valid-from');\n    }\n\n    return errors;\n};\n\nexport default validate;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './AddressWidgetHeaderActions.scss';\nimport ColoredStatusLabel from 'common/components/ColoredStatusLabel/ColoredStatusLabel';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport MoreIcon from 'common/icons/MoreIcon';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControl, {\n    checkIsSpecialOption,\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\nimport { AddressTypeEnum } from 'common/utils/api/models';\nimport DoneIcon from 'common/icons/DoneIcon';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport MapIcon from 'common/icons/MapIcon';\nimport { VerifyPartnerAddressConfirmationDataT } from '../dialogs/VerifyPartnerAdressConfirmation/models';\nimport { UnVerifyPartnerAdressConfirmationDataT } from '../dialogs/UnVerifyPartnerAdressConfirmation/models';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport IconTrigger from 'design-system/components/IconTrigger/IconTrigger';\nimport CopyIcon from 'common/icons/CopyIcon';\nimport { useMemo } from 'react';\nimport LockActionOnChangeForm from '../LockActionOnChangeForm/LockActionOnChangeForm';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport LockStatusOnChangeForm from '../LockStatusOnChangeForm/LockStatusOnChangeForm';\nimport { createMapLink } from 'common/utils/links';\n\ntype PropsT = {\n    isShowStatus?: boolean;\n    isAllowShowVerifyAction?: boolean;\n    addressType: AddressTypeEnum;\n    fullAddress: string;\n    needApproved: boolean;\n    companyId: string | undefined;\n    onCopy?: () => void;\n    onVerify?: (data: VerifyPartnerAddressConfirmationDataT | null) => void;\n    onUnVerify?: (data: UnVerifyPartnerAdressConfirmationDataT | null) => void;\n};\n\nconst cx = classNames.bind(styles);\n\ntype ActionT = {\n    icon: React.ReactNode;\n    label: React.ReactNode;\n    onSelect: () => void;\n};\nconst AddressWidgetHeaderActions: React.FC<PropsT> = React.memo((props) => {\n    const {\n        isShowStatus,\n        isAllowShowVerifyAction,\n        needApproved,\n        companyId,\n        addressType,\n        fullAddress,\n        onVerify,\n        onUnVerify,\n        onCopy,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n\n    const onOpenGoogleMaps = React.useCallback((): void => {\n        window.open(createMapLink(fullAddress));\n    }, [fullAddress]);\n\n    const actions = React.useMemo((): Array<ActionT | SpecialOptionEnum> => {\n        const isShowUnVerifyAction = isAllowShowVerifyAction && !needApproved;\n\n        const hasAddress = !!fullAddress?.trim();\n\n        return [\n            ...(hasAddress\n                ? [\n                      {\n                          label: t('partner.actions.open-map'),\n                          icon: (\n                              <MapIcon\n                                  size={DEFAULT_ICON_SIZE}\n                                  fillColor={StyleGuideColorsEnum.brandAccent}\n                                  strokeColor={StyleGuideColorsEnum.brandDark}\n                              />\n                          ),\n                          onSelect: onOpenGoogleMaps,\n                      },\n                  ]\n                : []),\n            ...(isShowUnVerifyAction && onUnVerify\n                ? [\n                      SpecialOptionEnum.separator,\n                      {\n                          icon: <CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />,\n                          label: t('partner.actions.un-verify'),\n                          onSelect: () => {\n                              if (!companyId) {\n                                  return;\n                              }\n\n                              if (remoteFormActionsContext.remoteFormState?.hasErrors) {\n                                  remoteFormActionsContext.remoteFormCallbacks?.touchAllFields?.();\n                                  return;\n                              }\n\n                              const data: VerifyPartnerAddressConfirmationDataT = {\n                                  partnerId: companyId,\n                                  addressType,\n                              };\n\n                              onUnVerify(data);\n                          },\n                      },\n                  ]\n                : []),\n        ];\n    }, [\n        onOpenGoogleMaps,\n        t,\n        needApproved,\n        onUnVerify,\n        isAllowShowVerifyAction,\n        fullAddress,\n        companyId,\n        addressType,\n        remoteFormActionsContext,\n    ]);\n\n    const dropdownOptions = useMemo((): Array<DropdownControlOptionT | SpecialOptionEnum> => {\n        return actions.map((action) => {\n            if (checkIsSpecialOption(action)) {\n                return action;\n            }\n\n            return {\n                label: <DropdownControlOptionLabel label={action.label} icon={action.icon} />,\n                onSelect: action.onSelect,\n            };\n        });\n    }, [actions]);\n\n    const renderSingleAction = (action: ActionT | SpecialOptionEnum | undefined): React.ReactNode => {\n        if (checkIsSpecialOption(action) || !action) {\n            return null;\n        }\n\n        return (\n            <Tooltip\n                position={TooltipPositionEnum.topCenter}\n                theme={TooltipThemeEnum.black}\n                tooltipNode={\n                    <TooltipContent isCenter width={115} theme={TooltipContentThemeEnum.black}>\n                        {action.label}\n                    </TooltipContent>\n                }\n            >\n                {(isShow) => (\n                    <TransparentTrigger\n                        isPressed={isShow}\n                        onClick={action.onSelect}\n                        reflectionTheme={ReflectionThemeEnum.light}\n                        leftIcon={action.icon}\n                    />\n                )}\n            </Tooltip>\n        );\n    };\n\n    return (\n        <>\n            {isShowStatus && (\n                <LockStatusOnChangeForm className={cx('status')}>\n                    <ColoredStatusLabel\n                        label={needApproved ? t('partner.status.not-verified') : t('partner.status.verified')}\n                        color={needApproved ? StyleGuideColorsEnum.orange : StyleGuideColorsEnum.mediumGreen}\n                    />\n                </LockStatusOnChangeForm>\n            )}\n            {needApproved && isAllowShowVerifyAction && onVerify && (\n                <LockActionOnChangeForm>\n                    <TransparentTrigger\n                        onClick={() => {\n                            if (!companyId) {\n                                return;\n                            }\n\n                            if (remoteFormActionsContext.remoteFormState?.hasErrors) {\n                                remoteFormActionsContext.remoteFormCallbacks?.touchAllFields?.();\n                                return;\n                            }\n\n                            const data: VerifyPartnerAddressConfirmationDataT = {\n                                partnerId: companyId,\n                                addressType,\n                            };\n\n                            onVerify(data);\n                        }}\n                        label={t('partner.actions.verify')}\n                        className={cx('timeline-trigger')}\n                        leftIcon={<DoneIcon fillColor={StyleGuideColorsEnum.brandDark} size={DEFAULT_ICON_SIZE} />}\n                        reflectionTheme={ReflectionThemeEnum.light}\n                    />\n                </LockActionOnChangeForm>\n            )}\n            {onCopy && (\n                <Tooltip\n                    position={TooltipPositionEnum.topCenter}\n                    theme={TooltipThemeEnum.black}\n                    tooltipNode={\n                        <TooltipContent isCenter width={115} theme={TooltipContentThemeEnum.black}>\n                            {t('common:profile-page.basic-information.tooltips.copy-from-legal-address')}\n                        </TooltipContent>\n                    }\n                >\n                    {(isShow) => (\n                        <IconTrigger isFocused={isShow} onClick={onCopy}>\n                            {() => <CopyIcon className={cx('copy')} strokeColor={StyleGuideColorsEnum.light} />}\n                        </IconTrigger>\n                    )}\n                </Tooltip>\n            )}\n            <LockActionOnChangeForm>\n                {actions.length === 1 ? (\n                    renderSingleAction(actions[0])\n                ) : (\n                    <DropdownControl\n                        options={dropdownOptions}\n                        renderTrigger={(isActive, onClick) => (\n                            <TransparentTrigger\n                                isPressed={isActive}\n                                onClick={onClick}\n                                reflectionTheme={ReflectionThemeEnum.light}\n                                leftIcon={<MoreIcon />}\n                                testSelector=\"more-actions\"\n                            />\n                        )}\n                        overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                    />\n                )}\n            </LockActionOnChangeForm>\n        </>\n    );\n});\n\nexport default AddressWidgetHeaderActions;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './LogCardHead.scss';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport ArrowForwardIcon from 'common/icons/ArrowForwardIcon';\nimport FilledCircleIcon from 'common/icons/FilledCircleIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\nexport type LogCardHeadPropsT = {\n    className?: string;\n    subjectTypeLabel: React.ReactNode;\n    subjectNumber: React.ReactNode;\n    originCity?: React.ReactNode;\n    originCountryCode?: string | null;\n    destinationCity?: React.ReactNode;\n    destinationCountryCode?: string | null;\n};\n\nconst LogCardHead: React.FC<LogCardHeadPropsT> = React.memo((props) => {\n    const {\n        className,\n        subjectTypeLabel,\n        subjectNumber,\n        originCity,\n        originCountryCode,\n        destinationCity,\n        destinationCountryCode,\n    } = props;\n\n    return (\n        <div className={cs(cx('head'), className)}>\n            <div className={cx('subject')}>\n                {subjectTypeLabel} <span className={cx('subject__number')}>#{subjectNumber}</span>\n            </div>\n            {originCity && destinationCity && (\n                <>\n                    <FilledCircleIcon size={10} fillColor={StyleGuideColorsEnum.light} />\n                    <span className={cx('city')}>{originCity}</span>\n                    <FlagIcon className={cx('flag')} countryCode={originCountryCode} />\n                    <ArrowForwardIcon />\n                    <span className={cx('city')}>{destinationCity}</span>\n                    <FlagIcon className={cx('flag')} countryCode={destinationCountryCode} />\n                </>\n            )}\n        </div>\n    );\n});\n\nexport default LogCardHead;\n","import React from 'react';\n\ntype LibrariesT = {\n    geometry?: GeometryLibraryT | null;\n};\n\nexport type GoogleMapsContextValueT = {\n    map: MapT | null;\n    maps: MapsT | null;\n    libraries: LibrariesT;\n    set: (maps: MapsT, map: MapT, libraryNames: Array<keyof LibrariesT>) => Promise<void>;\n};\n\nconst useGoogleMapsContextValue = (): GoogleMapsContextValueT => {\n    const [api, setApi] = React.useState<{\n        map: MapT | null;\n        maps: MapsT | null;\n    }>({\n        map: null,\n        maps: null,\n    });\n\n    const [libraries, setLibraries] = React.useState<LibrariesT>({\n        geometry: null,\n    });\n\n    const handleSet: GoogleMapsContextValueT['set'] = React.useCallback(\n        async <T extends keyof LibrariesT>(maps: MapsT, map: MapT, libraryNames: Array<T>): Promise<void> => {\n            setApi({\n                map,\n                maps,\n            });\n\n            for (const libraryName of libraryNames) {\n                // @ts-expect-error wrong types\n                const library: LibrariesT[T] = await maps?.importLibrary(libraryName);\n\n                setLibraries((libraries) => {\n                    return {\n                        ...libraries,\n                        [libraryName]: library,\n                    };\n                });\n            }\n        },\n        [],\n    );\n\n    return React.useMemo(() => {\n        return {\n            map: api.map,\n            maps: api.maps,\n            libraries,\n            set: handleSet,\n        };\n    }, [api, libraries, handleSet]);\n};\n\nexport default useGoogleMapsContextValue;\n","// extracted by mini-css-extract-plugin\nexport default {\"input\":\"LinkDatePicker__input___VW4vD\",\"trigger\":\"LinkDatePicker__trigger___ZCzVz\",\"fadeIn\":\"LinkDatePicker__fadeIn___rV0Md\",\"blinking\":\"LinkDatePicker__blinking___t7Vkn\"};","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size?: number;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst CarrierIcon: React.FC<PropsT> = (props) => {\n    const { size, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M14.187 5.5L17.4 10l-3.213 4.5h-2.898l3.222-4.5-3.222-4.5h2.898zm-4.5 0L12.9 10l-3.213 4.5H6.789l3.222-4.5-3.222-4.5h2.898zM5 8a2 2 0 110 4 2 2 0 010-4z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nCarrierIcon.displayName = 'CarrierIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    strokeColor: StyleGuideColorsEnum.gray,\n};\n\nexport { storyProps };\nexport default CarrierIcon;\n\nexport const CarrierIconProps = {\n    getControlProps: ({\n        isDisabled,\n        isFocused,\n        hasError,\n        hasWarning,\n        hasSuccess,\n        hasValue,\n        isPressed,\n    }: {\n        isDisabled?: boolean;\n        isFocused?: boolean;\n        isPressed?: boolean;\n        hasError?: boolean;\n        hasWarning?: boolean;\n        hasSuccess?: boolean;\n        hasValue?: boolean;\n    }): PropsT => {\n        if (hasError) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                strokeColor: StyleGuideColorsEnum.tomatoRed,\n            };\n        }\n\n        if (hasWarning) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                strokeColor: StyleGuideColorsEnum.orange,\n            };\n        }\n\n        if (hasSuccess) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n\n        if (isDisabled) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                strokeColor: StyleGuideColorsEnum.slate,\n            };\n        }\n\n        return {\n            size: DEFAULT_ICON_SIZE,\n            strokeColor:\n                hasValue || isFocused || isPressed ? StyleGuideColorsEnum.brandDark : StyleGuideColorsEnum.gray,\n        };\n    },\n};\n","import * as React from 'react';\n\nimport isNumber from 'lodash/isNumber';\n\nimport NotificationLabel, {\n    NotificationLabelThemeEnum,\n} from 'common/components/notifications/NotificationLabel/NotificationLabel';\nimport { getTotalWithOptimisticPapersCount } from '../utils/getTotalWithOptimisticPapersCount';\n\ntype EntityPaperShapeT = {\n    id?: PaperIdT | null | undefined;\n};\n\ntype OptimisticPaperShapeT = {\n    afterAttachId: PaperIdT | null;\n};\n\ntype ParamsT<T extends EntityPaperShapeT, O extends OptimisticPaperShapeT> = {\n    optimisticPapers: Array<O> | null | undefined;\n    entityPapers: Array<T> | null | undefined;\n};\n\nconst useRenderPapersTabCount = <T extends EntityPaperShapeT, O extends OptimisticPaperShapeT>(\n    params: ParamsT<T, O>,\n) => {\n    const { optimisticPapers, entityPapers } = params;\n\n    const papersCount = React.useMemo(() => {\n        return getTotalWithOptimisticPapersCount({\n            optimisticPapers,\n            entityPapers,\n        });\n    }, [optimisticPapers, entityPapers]);\n\n    if (!isNumber(papersCount) || papersCount <= 0) {\n        return null;\n    }\n\n    return <NotificationLabel count={papersCount} theme={NotificationLabelThemeEnum.slate} />;\n};\n\nexport { useRenderPapersTabCount };\n","// extracted by mini-css-extract-plugin\nexport default {\"error-container\":\"SideBarRequestStatus__error-container___qbYaG\",\"fadeIn\":\"SideBarRequestStatus__fadeIn___qpZLc\",\"blinking\":\"SideBarRequestStatus__blinking___udpDc\"};","// extracted by mini-css-extract-plugin\nexport default {\"section\":\"ContactDetailsSidebarContent__section___X0GM3\",\"section--isLast\":\"ContactDetailsSidebarContent__section--isLast___uh1RW\",\"section__title\":\"ContactDetailsSidebarContent__section__title___cbkV9\",\"section__block\":\"ContactDetailsSidebarContent__section__block___OWtBv\",\"field--formal\":\"ContactDetailsSidebarContent__field--formal___Sxj52\",\"field--first-name\":\"ContactDetailsSidebarContent__field--first-name___diCE6\",\"field--contact\":\"ContactDetailsSidebarContent__field--contact___rhfnE\",\"field--last-name\":\"ContactDetailsSidebarContent__field--last-name___jT6hs\",\"field--link\":\"ContactDetailsSidebarContent__field--link___uIy_M\",\"field--birthday\":\"ContactDetailsSidebarContent__field--birthday___sg7ej\",\"field--country\":\"ContactDetailsSidebarContent__field--country___SN2Lo\",\"field--language\":\"ContactDetailsSidebarContent__field--language___J6fF2\",\"fadeIn\":\"ContactDetailsSidebarContent__fadeIn___GaPUz\",\"blinking\":\"ContactDetailsSidebarContent__blinking___y1D6e\"};","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n    fillOpacity?: number;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst SettingsIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, fillOpacity, strokeColor } = props;\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 18 18\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M.9.9h16.2v16.2H.9z\" />\n                <path\n                    fill={fillColor}\n                    fillOpacity={fillOpacity || 0.3}\n                    d=\"M13.914 6.705l-.473-.817-.857.344-.715.29-.614-.472a3.48 3.48 0 00-.83-.479l-.716-.29-.108-.763-.129-.918h-.944l-.129.911-.108.763-.715.297a3.955 3.955 0 00-.844.493l-.607.459-.71-.284-.856-.35-.473.816.729.567.6.473-.094.762c-.02.203-.034.358-.034.493s.014.29.034.493l.095.762-.601.473-.729.567.473.817.857-.345.715-.29.615.473c.263.202.54.364.83.479l.715.29.108.763.129.918h.938l.128-.911.108-.763.716-.29c.276-.115.553-.277.843-.493l.608-.459.702.284.857.344.473-.817-.73-.567-.6-.473.094-.762A3.62 3.62 0 0012.699 9c0-.142-.013-.29-.034-.493l-.094-.763.6-.472.743-.567zM9 11.7A2.699 2.699 0 016.3 9c0-1.492 1.208-2.7 2.7-2.7 1.492 0 2.7 1.208 2.7 2.7 0 1.492-1.208 2.7-2.7 2.7z\"\n                />\n                <path\n                    fill={strokeColor}\n                    d=\"M14.015 9.661c.027-.215.047-.431.047-.661 0-.23-.02-.446-.047-.661l1.425-1.114a.34.34 0 00.08-.432l-1.35-2.336a.335.335 0 00-.296-.168.302.302 0 00-.115.02l-1.681.675a4.953 4.953 0 00-1.14-.662l-.258-1.789a.33.33 0 00-.331-.283h-2.7a.328.328 0 00-.33.283l-.257 1.79c-.412.168-.79.397-1.141.66l-1.68-.674a.376.376 0 00-.122-.02c-.115 0-.23.06-.29.168L2.48 6.793a.333.333 0 00.08.432l1.425 1.114A5.328 5.328 0 003.938 9c0 .223.02.446.047.662L2.56 10.774a.34.34 0 00-.082.432l1.35 2.336a.338.338 0 00.298.168c.04 0 .08-.006.114-.02l1.681-.675c.351.27.729.493 1.14.662l.257 1.788a.33.33 0 00.331.284h2.7c.169 0 .31-.121.33-.284l.257-1.788c.412-.169.79-.399 1.141-.662l1.68.675c.041.014.082.02.122.02.115 0 .23-.06.29-.168l1.35-2.336a.34.34 0 00-.08-.432L14.014 9.66zM12.68 8.507c.027.21.034.351.034.493 0 .142-.014.29-.034.493l-.095.762.601.473.729.567-.473.817-.857-.345-.702-.283-.607.459c-.29.216-.567.378-.844.493l-.716.29-.107.763-.136.911h-.944l-.129-.911-.108-.763-.715-.29a3.838 3.838 0 01-.83-.48l-.615-.472-.715.29-.857.345-.473-.817.729-.567.6-.473-.094-.762c-.02-.21-.034-.365-.034-.5s.014-.29.034-.493l.095-.763-.601-.472-.729-.567.473-.817.857.344.702.284.607-.459c.29-.216.567-.378.844-.493l.716-.29.107-.763.136-.911h.938l.128.911.108.763.716.29c.29.122.56.277.83.48l.614.472.716-.29.857-.345.472.817-.722.574-.6.473.094.762zM9 6.3A2.699 2.699 0 006.3 9c0 1.492 1.208 2.7 2.7 2.7 1.492 0 2.7-1.208 2.7-2.7 0-1.492-1.208-2.7-2.7-2.7zm0 4.05c-.742 0-1.35-.607-1.35-1.35 0-.742.607-1.35 1.35-1.35.742 0 1.35.607 1.35 1.35 0 .742-.607 1.35-1.35 1.35z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nSettingsIcon.displayName = 'SettingsIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default SettingsIcon;\n","import get from 'lodash/get';\n\nexport const getFieldFormValue = <TFieldValues extends FieldValues, TFieldPath extends FieldPath<TFieldValues>>(\n    values: TFieldValues,\n    fieldValue: TFieldPath,\n): FieldPathValue<TFieldValues, TFieldPath> => {\n    return get(values, fieldValue);\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"header__controls\":\"AccountPage__header__controls___Msd4n\",\"form\":\"AccountPage__form___zb_6j\",\"widget\":\"AccountPage__widget___DUVGw\",\"widget__inner\":\"AccountPage__widget__inner___avrzA\",\"control__save\":\"AccountPage__control__save___vmgeQ\",\"field\":\"AccountPage__field___pacDy\",\"field--language-switcher\":\"AccountPage__field--language-switcher___z0z12\",\"account-link\":\"AccountPage__account-link___yh52C\",\"account-link__wrap\":\"AccountPage__account-link__wrap___HUqbA\",\"fadeIn\":\"AccountPage__fadeIn___ig56b\",\"blinking\":\"AccountPage__blinking___Hr75e\"};","import { QueryFiltersKeysEnum, QueryFiltersT, TrailersSortEnum } from './query-models';\nimport { TabEnum } from './constants';\nimport { FetchTrailersPageQueryT } from 'common/store/trailers/models';\nimport { TrailerStatusEnum } from 'common/utils/api/models';\nimport { PageSortT, SortDirectionEnum } from 'common/utils/query';\nimport { ALL_BROKER_USERS_VALUE } from 'common/components/dropdowns/UserMultipleDropdown/constants';\n\nconst formatSort = (sort: PageSortT<TrailersSortEnum> | null): FetchTrailersPageQueryT['sorts'] | undefined => {\n    switch (sort?.value) {\n        case TrailersSortEnum.createdDate: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'CREATED_DATE_ASC';\n            }\n            return 'CREATED_DATE_DESC';\n        }\n        case TrailersSortEnum.archiveDate: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'ARCHIVED_DATE_ASC';\n            }\n            return 'ARCHIVED_DATE_DESC';\n        }\n        default: {\n            return undefined;\n        }\n    }\n};\n\nconst prepareFetchPageQuery = (\n    queryFilters: QueryFiltersT,\n    sort: PageSortT<TrailersSortEnum> | null,\n    activeTab: TabEnum,\n): FetchTrailersPageQueryT => {\n    const statuses: TrailerStatusEnum[] = [];\n    const status = queryFilters[QueryFiltersKeysEnum.status] as Array<TrailerStatusEnum>;\n    if (status?.length) {\n        statuses.push(...status);\n    }\n\n    const parsedTrailerType = queryFilters?.[QueryFiltersKeysEnum.dictTrailerTypeId]?.map((typeId) => {\n        return parseInt(typeId, 10);\n    });\n\n    const lastModifiedByUsers = queryFilters[QueryFiltersKeysEnum.lastModifyByUserId]?.filter((userId) => {\n        return userId !== ALL_BROKER_USERS_VALUE;\n    });\n\n    const lastModifiedByBroker = !!queryFilters[QueryFiltersKeysEnum.lastModifyByUserId]?.some((userId) => {\n        return userId === ALL_BROKER_USERS_VALUE;\n    });\n\n    const addedByUsers = queryFilters[QueryFiltersKeysEnum.createdByUserId]?.filter((userId) => {\n        return userId !== ALL_BROKER_USERS_VALUE;\n    });\n\n    const addedByBroker = !!queryFilters[QueryFiltersKeysEnum.createdByUserId]?.some((userId) => {\n        return userId === ALL_BROKER_USERS_VALUE;\n    });\n\n    return {\n        statuses,\n        archived: activeTab === TabEnum.archive,\n\n        trailerType: parsedTrailerType?.length ? parsedTrailerType : undefined,\n        plateNumber: queryFilters[QueryFiltersKeysEnum.plateNumber] || undefined,\n\n        countriesOfRegistration: queryFilters?.[QueryFiltersKeysEnum.country] || undefined,\n\n        telematicUpdatedDateFrom: queryFilters[QueryFiltersKeysEnum.lastTelematicUpdateDateFrom] || undefined,\n        telematicUpdatedDateTo: queryFilters[QueryFiltersKeysEnum.lastTelematicUpdateDateTo] || undefined,\n\n        contractIds: queryFilters?.[QueryFiltersKeysEnum.contractId] || undefined,\n\n        addedByBroker: addedByBroker || undefined,\n        addedByUsers: addedByUsers?.length ? addedByUsers : undefined,\n\n        createdDateFrom: queryFilters[QueryFiltersKeysEnum.createdDateFrom] || undefined,\n        createdDateTo: queryFilters[QueryFiltersKeysEnum.createdDateTo] || undefined,\n\n        lastModifiedByBroker: lastModifiedByBroker || undefined,\n        lastModifiedByUsers: lastModifiedByUsers?.length ? lastModifiedByUsers : undefined,\n\n        updatedDateFrom: queryFilters[QueryFiltersKeysEnum.lastModifyDateFrom] || undefined,\n        updatedDateTo: queryFilters[QueryFiltersKeysEnum.lastModifyDateTo] || undefined,\n\n        sorts: formatSort(sort),\n    };\n};\n\nexport { prepareFetchPageQuery };\n","import { TFunction } from 'i18next';\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport {\n    checkIsPositiveNumberValue,\n    checkMaxValue,\n    checkMinValue,\n    checkStrictMaxValue,\n    checkNotEmpty,\n} from 'common/utils/form-validators';\nimport values from 'lodash/values';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport isNumber from 'lodash/isNumber';\nimport { SystemSettingsT } from 'broker-admin/store/price-settings/system-settings/models';\nimport { MIN_IN_HOUR } from 'common/utils/time';\n\nconst REQUIRED_FIELDS = values<FieldsEnum>(FieldsEnum);\n\nexport const MIN_MAP_PRECISION_DELTA_METERS = 0;\nexport const MAX_MAP_PRECISION_DELTA_METERS = 500;\n\ntype MetaT = {\n    systemSettings: SystemSettingsT | null | undefined;\n};\n\nconst validate = (t: TFunction, values: FormValuesT, meta: MetaT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n\n        ...checkIsPositiveNumberValue(t, [FieldsEnum.urgentOrderProcessingDelay], values),\n        ...checkStrictMaxValue(t, [FieldsEnum.urgentOrderProcessingDelay], values, 24),\n\n        ...checkMinValue(t, [FieldsEnum.regularOrderProcessingDelay], values, 1),\n        ...checkMaxValue(t, [FieldsEnum.regularOrderProcessingDelay], values, 48),\n\n        ...checkMinValue(t, [FieldsEnum.minWindowSize], values, 30),\n        ...checkMaxValue(t, [FieldsEnum.minWindowSize], values, 120),\n\n        ...checkMaxValue(t, [FieldsEnum.maxWindowSize], values, 480),\n\n        ...checkMinValue(t, [FieldsEnum.orderCreationSeconds], values, 1),\n        ...checkMaxValue(t, [FieldsEnum.orderCreationSeconds], values, 600),\n\n        ...checkMinValue(t, [FieldsEnum.mapPrecisionDelta], values, MIN_MAP_PRECISION_DELTA_METERS),\n        ...checkMaxValue(t, [FieldsEnum.mapPrecisionDelta], values, MAX_MAP_PRECISION_DELTA_METERS),\n\n        ...checkMinValue(t, [FieldsEnum.hvoEmissionPercent], values, 0),\n        ...checkStrictMaxValue(t, [FieldsEnum.hvoEmissionPercent], values, 100),\n    };\n\n    const minWindowSize = parseSimpleNumber(values[FieldsEnum.minWindowSize]);\n    const maxWindowSize = parseSimpleNumber(values[FieldsEnum.maxWindowSize]);\n    if (isNumber(minWindowSize) && isNumber(maxWindowSize) && maxWindowSize <= minWindowSize) {\n        errors[FieldsEnum.maxWindowSize] = t(\n            'price-settings.new-order-parameters-form.errors.less-than-minimum-time-window',\n        );\n    }\n\n    const urgentOrderProcessingDelay = parseSimpleNumber(values[FieldsEnum.urgentOrderProcessingDelay]);\n    const regularOrderProcessingDelay = parseSimpleNumber(values[FieldsEnum.regularOrderProcessingDelay]);\n    if (\n        isNumber(urgentOrderProcessingDelay) &&\n        isNumber(regularOrderProcessingDelay) &&\n        regularOrderProcessingDelay < urgentOrderProcessingDelay\n    ) {\n        errors[FieldsEnum.regularOrderProcessingDelay] = t(\n            'price-settings.new-order-parameters-form.errors.less-than-urgent',\n        );\n    }\n\n    const MIN_DIFF_HOURS = 1;\n    const runOutOfTimeToAssignAssetsLimitMin = parseSimpleNumber(\n        meta?.systemSettings?.RUN_OUT_OF_TIME_TO_ASSIGN_ASSETS_LIMIT,\n    );\n    const runOutOfTimeToAssignAssetsLimitHours = isNumber(runOutOfTimeToAssignAssetsLimitMin)\n        ? runOutOfTimeToAssignAssetsLimitMin / MIN_IN_HOUR\n        : null;\n    if (\n        isNumber(urgentOrderProcessingDelay) &&\n        isNumber(runOutOfTimeToAssignAssetsLimitHours) &&\n        urgentOrderProcessingDelay < runOutOfTimeToAssignAssetsLimitHours + MIN_DIFF_HOURS\n    ) {\n        errors[FieldsEnum.urgentOrderProcessingDelay] = t(\n            'price-settings.new-order-parameters-form.errors.less-than-run-out-of-time-to-assign-assets',\n            {\n                hours: `${MIN_DIFF_HOURS} ${t('common:hours', {\n                    postProcess: 'interval',\n                    count: MIN_DIFF_HOURS,\n                })}`,\n            },\n        );\n    }\n\n    return errors;\n};\n\nexport default validate;\n","// extracted by mini-css-extract-plugin\nexport default {\"field--units\":\"ShipmentPicker__field--units___izbn_\",\"field--cargo-weight\":\"ShipmentPicker__field--cargo-weight___jkRXY\",\"field--puck-up-ref-number\":\"ShipmentPicker__field--puck-up-ref-number___Xbh49\",\"field--drop-off-ref-number\":\"ShipmentPicker__field--drop-off-ref-number___tSH3E\",\"combined-field\":\"ShipmentPicker__combined-field___tUp8d\",\"combined-field__full-width\":\"ShipmentPicker__combined-field__full-width___zWdAL\",\"combined-field__input--unit-value\":\"ShipmentPicker__combined-field__input--unit-value___qL86E\",\"combined-field__input--unit-type\":\"ShipmentPicker__combined-field__input--unit-type___V4aCq\",\"fadeIn\":\"ShipmentPicker__fadeIn___FOaBq\",\"blinking\":\"ShipmentPicker__blinking___Xlr_E\"};","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"TypeCell__fadeIn___P23aT\",\"blinking\":\"TypeCell__blinking___RHcep\"};","import React, { MouseEvent, useEffect, useMemo } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './DropdownSearchMultipleInput.scss';\nimport SearchIcon from 'common/icons/SearchIcon';\nimport Checkbox from 'design-system/components/Checkbox/Checkbox';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { DropdownOverlayPositionEnum } from '../constants';\nimport DropdownBaseLayout from '../base/DropdownBaseLayout/DropdownBaseLayout';\nimport DropdownBaseButtonTrigger from '../base/DropdownBaseButtonTrigger/DropdownBaseButtonTrigger';\nimport cs from 'classnames';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport useDebouncedEffect from 'common/utils/hooks/useDebouncedEffect';\nimport {\n    checkIsSpecialOption,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { useTranslation } from 'react-i18next';\n\nconst cx = classNames.bind(styles);\n\nexport type IconMetaT = {\n    isDisabled: boolean;\n    isLoading: boolean;\n    hasChanges: boolean;\n    hasWarning: boolean;\n    hasSuccess: boolean;\n    hasError: boolean;\n    hasValue: boolean;\n};\n\nexport type RenderTriggerPropsT = {\n    isEmpty: boolean;\n    isPressed: boolean;\n    isDisabled: boolean;\n    hasChanges: boolean;\n    hasWarning: boolean;\n    hasError: boolean;\n    onClick: () => void;\n    onReset?: (event: MouseEvent<HTMLElement>) => void;\n    isShowClearControl: boolean;\n};\n\nexport type PropsT<OptionT, ValueT> = {\n    className?: string;\n    selectedValues: Array<ValueT>;\n    placeholder?: string;\n    inputPlaceholder?: string;\n    isInline?: boolean;\n    isDisabled?: boolean;\n    isLoading?: boolean;\n    hasWarning?: boolean;\n    hasError?: boolean;\n    hasSuccess?: boolean;\n    hasChanges?: boolean;\n    options: Array<OptionT | SpecialOptionEnum>;\n    onSelect: (values: Array<ValueT>, options: Array<OptionT>) => void;\n    overlayPosition: DropdownOverlayPositionEnum;\n    triggerClassName?: string;\n    overlayClassName?: string;\n    renderTrigger?: (\n        props: RenderTriggerPropsT,\n        options: Array<OptionT>,\n        placeholder: string | undefined,\n    ) => React.ReactNode;\n    renderTriggerContent?: (options: Array<OptionT>, placeholder: string | undefined) => React.ReactNode;\n    renderOption: (option: OptionT) => React.ReactNode;\n    getOptionValue: (option: OptionT) => ValueT;\n    onFocus?: () => void;\n    onBlur?: () => void;\n    testSelector?: string;\n    renderLeftIcon?: (meta: IconMetaT) => React.ReactNode;\n    renderRightIcon?: (meta: IconMetaT) => React.ReactNode;\n    renderRightInputIcon?: (meta: IconMetaT) => React.ReactNode;\n    onChangeQuery: (query: string) => void;\n    onReset?: () => void;\n};\n\nconst COLD_TIME_MS = 300;\n\nconst DropdownSearchMultipleInput = <OptionT, ValueT extends string | number | null | undefined>(\n    props: PropsT<OptionT, ValueT>,\n) => {\n    const {\n        className,\n        selectedValues,\n        onSelect,\n        options,\n        isInline,\n        renderOption,\n        getOptionValue,\n        isDisabled,\n        overlayPosition,\n        triggerClassName,\n        overlayClassName,\n        renderTrigger,\n        renderTriggerContent,\n        onFocus,\n        onBlur,\n        testSelector,\n        isLoading,\n        hasWarning,\n        hasError,\n        hasSuccess,\n        hasChanges,\n        onChangeQuery,\n        onReset,\n        renderRightInputIcon,\n        renderLeftIcon,\n        renderRightIcon,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const placeholder = props.placeholder || t('common:common-components.any-select-input.placeholder');\n    const inputPlaceholder = props.inputPlaceholder || t('common:common-components.any-select-input.input-placeholder');\n\n    const [inputValue, setInputValue] = React.useState<string>('');\n\n    useDebouncedEffect(\n        (): void => {\n            onChangeQuery(inputValue);\n        },\n        COLD_TIME_MS,\n        [inputValue],\n    );\n\n    const [isOpen, toggleOpen] = React.useState<boolean>(false);\n\n    useEffect(() => {\n        if (isDisabled) {\n            toggleOpen(false);\n        }\n    }, [isDisabled]);\n\n    const handleOpen = (): void => {\n        if (isDisabled) {\n            return;\n        }\n\n        toggleOpen(true);\n\n        if (onFocus) {\n            onFocus();\n        }\n    };\n\n    const handleClose = (): void => {\n        toggleOpen(false);\n\n        if (onBlur) {\n            onBlur();\n        }\n    };\n\n    const handleOuterEvent = (): void => {\n        handleClose();\n    };\n\n    const selectedValuesSet = useMemo(() => {\n        return new Set<ValueT>(selectedValues);\n    }, [selectedValues]);\n\n    const inputProps = {\n        onChange: (event: TODO) => setInputValue(event.target.value),\n        value: inputValue || '',\n        type: 'text',\n        className: cx('search-input', {\n            'search-input--isEmpty': !inputValue,\n            'search-input--isFocus': isOpen,\n        }),\n        placeholder: inputPlaceholder,\n        disabled: isDisabled,\n    };\n\n    const optionsAccumulatorMapRef = React.useRef<Record<string, OptionT>>({});\n\n    React.useEffect(() => {\n        const optionsByValue: Record<string, OptionT> = {};\n\n        options?.forEach((option) => {\n            if (checkIsSpecialOption(option)) {\n                return;\n            }\n\n            const value = getOptionValue(option);\n            if (value) {\n                optionsByValue[`${value}`] = option;\n            }\n        });\n\n        optionsAccumulatorMapRef.current = {\n            ...optionsAccumulatorMapRef.current,\n            ...optionsByValue,\n        };\n    }, [options, getOptionValue]);\n\n    const handleChange = (value: ValueT): void => {\n        if (isDisabled) {\n            return;\n        }\n\n        const newSelectedValuesSet = new Set(selectedValuesSet);\n        const isAlreadySelected = newSelectedValuesSet.has(value);\n        if (isAlreadySelected) {\n            newSelectedValuesSet.delete(value);\n        } else {\n            newSelectedValuesSet.add(value);\n        }\n\n        const selectedValues = [...newSelectedValuesSet];\n\n        const selectedOptions = selectedValues.map((selectedValue) => {\n            return optionsAccumulatorMapRef.current[`${selectedValue}`];\n        });\n\n        onSelect(selectedValues, selectedOptions);\n    };\n\n    const selectedOptions = React.useMemo(() => {\n        return selectedValues.reduce<Array<OptionT>>((acc, selectedValue) => {\n            if (!selectedValue) {\n                return acc;\n            }\n\n            const accumulatedOption = optionsAccumulatorMapRef.current[`${selectedValue}`];\n            if (!accumulatedOption) {\n                return acc;\n            }\n\n            acc.push(accumulatedOption);\n            return acc;\n        }, []);\n    }, [selectedValues]);\n\n    const allOptions = React.useMemo(() => {\n        const optionValueSet = new Set<ValueT>([]);\n\n        options.forEach((option) => {\n            if (checkIsSpecialOption(option)) {\n                return;\n            }\n\n            optionValueSet.add(getOptionValue(option));\n        });\n\n        const restSelectedOptions = selectedOptions.filter((option) => {\n            if (checkIsSpecialOption(option)) {\n                return false;\n            }\n\n            return !optionValueSet.has(getOptionValue(option));\n        });\n\n        if (restSelectedOptions?.length) {\n            return [...options, SpecialOptionEnum.separator, ...restSelectedOptions];\n        }\n\n        return [...options];\n    }, [options, selectedOptions, getOptionValue]);\n\n    const hasValue = !!selectedValues?.length;\n\n    return (\n        <DropdownBaseLayout\n            isInline={isInline}\n            isOpen={isOpen}\n            className={className}\n            onClose={handleOuterEvent}\n            triggerNode={\n                renderTrigger ? (\n                    renderTrigger(\n                        {\n                            isEmpty: !selectedOptions.length,\n                            isPressed: isOpen,\n                            isDisabled: !!isDisabled,\n                            hasChanges: !!hasChanges,\n                            hasWarning: !!hasWarning,\n                            hasError: !!hasError,\n                            onClick: handleOpen,\n                            isShowClearControl: !!onReset && hasValue,\n                            onReset,\n                        },\n                        selectedOptions,\n                        placeholder,\n                    )\n                ) : (\n                    <DropdownBaseButtonTrigger\n                        isEmpty={!selectedOptions.length}\n                        isPressed={isOpen}\n                        isDisabled={isDisabled}\n                        renderLeftIcon={\n                            renderLeftIcon\n                                ? (iconMeta) =>\n                                      renderLeftIcon({\n                                          ...iconMeta,\n                                          isLoading: !!isLoading,\n                                          hasValue,\n                                      })\n                                : undefined\n                        }\n                        renderRightIcon={\n                            renderRightIcon\n                                ? (iconMeta) =>\n                                      renderRightIcon({\n                                          ...iconMeta,\n                                          isLoading: !!isLoading,\n                                          hasValue,\n                                      })\n                                : undefined\n                        }\n                        className={triggerClassName}\n                        testSelector={testSelector}\n                        onClick={handleOpen}\n                        hasChanges={hasChanges}\n                        hasWarning={hasWarning}\n                        hasError={hasError}\n                        hasSuccess={hasSuccess}\n                        isShowClearControl={!!onReset && hasValue}\n                        onReset={() => {\n                            if (onReset) {\n                                onReset();\n                            }\n                        }}\n                    >\n                        {renderTriggerContent?.(selectedOptions, placeholder)}\n                    </DropdownBaseButtonTrigger>\n                )\n            }\n            overlayPosition={overlayPosition}\n            overlayClassName={cs(cx('overlay'), overlayClassName)}\n            overlayNode={\n                <>\n                    <div className={cx('search-input-wrap')}>\n                        <input ref={(node) => node?.focus()} {...inputProps} />\n                        {renderRightInputIcon && (\n                            <div className={cx('icon', 'icon--right-icon')}>\n                                {renderRightInputIcon({\n                                    isDisabled: !!isDisabled,\n                                    hasChanges: !!hasChanges,\n                                    hasWarning: !!hasWarning,\n                                    hasSuccess: !!hasSuccess,\n                                    hasError: !!hasError,\n                                    isLoading: !!isLoading,\n                                    hasValue,\n                                })}\n                            </div>\n                        )}\n                        <div className={cx('icon', 'icon--search')}>\n                            {isLoading ? (\n                                <ControlLoaderIcon\n                                    fillColor={StyleGuideColorsEnum.brandDark}\n                                    size={DEFAULT_ICON_SIZE}\n                                />\n                            ) : (\n                                <SearchIcon fillColor={StyleGuideColorsEnum.charcoal} />\n                            )}\n                        </div>\n                    </div>\n                    <div className={cx('options')}>\n                        {allOptions.map((option, index): React.ReactElement | null => {\n                            if (checkIsSpecialOption(option)) {\n                                const isLastOption = index === allOptions.length - 1;\n                                if (isLastOption) {\n                                    return null;\n                                }\n\n                                return <div key={index} className={cx('separator')} />;\n                            }\n\n                            const value = getOptionValue(option);\n\n                            const isSelected = selectedValuesSet.has(value);\n\n                            return (\n                                <div key={index} className={cx('option')}>\n                                    <Checkbox\n                                        checked={isSelected}\n                                        className={cx('option__checkbox')}\n                                        label={null}\n                                        onChange={() => {\n                                            handleChange(value);\n                                        }}\n                                    />\n                                    <div\n                                        className={cx('option__label')}\n                                        onClick={() => {\n                                            handleChange(value);\n                                        }}\n                                    >\n                                        {renderOption(option)}\n                                    </div>\n                                </div>\n                            );\n                        })}\n                    </div>\n                </>\n            }\n        />\n    );\n};\n\nexport default DropdownSearchMultipleInput;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './DocumentTypeCell.scss';\n\ntype PropsT = {\n    name: string;\n    isEmpty: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nconst DocumentTypeCell: React.FC<PropsT> = React.memo((props) => {\n    const { name, isEmpty } = props;\n\n    return (\n        <div\n            className={cx('type', {\n                'type--is-empty': isEmpty,\n            })}\n        >\n            {name}\n        </div>\n    );\n});\n\nexport default DocumentTypeCell;\n","import { CLOSE_ERROR_MODAL, ErrorsStateT, OPEN_ERROR_MODAL, RESET_LOGS } from './types';\nimport { checkError, checkIgnoreError, checkIsIgnoreErrorModal } from './utils';\nimport { AnyAction } from 'redux';\nimport { ErrorActionT } from 'common/store/errors/models';\nimport { generateTraceId, logWarningWithTraceId } from 'common/utils/logger';\nimport { extractApiRequestErrorTraceId } from 'common/utils/api/tranziit/errors/tranziit-api-errors';\n\nconst initialState: ErrorsStateT = {\n    logs: [],\n    isShowErrorModal: false,\n};\n\nconst MAX_LOGS_COUNT = 10;\n\nexport default (state = initialState, action: AnyAction): ErrorsStateT => {\n    if (action.type === OPEN_ERROR_MODAL) {\n        return {\n            ...state,\n            isShowErrorModal: true,\n        };\n    }\n\n    if (action.type === RESET_LOGS) {\n        return {\n            ...state,\n            logs: [],\n            isShowErrorModal: false,\n        };\n    }\n\n    if (action.type === CLOSE_ERROR_MODAL) {\n        return {\n            ...state,\n            logs: state.logs.map((log) => {\n                return {\n                    ...log,\n                    isNew: false,\n                };\n            }),\n            isShowErrorModal: false,\n        };\n    }\n\n    const isError = checkError(action.type);\n    const isIgnoreError = checkIgnoreError(action) || checkIsIgnoreErrorModal(action);\n    if (isError && !isIgnoreError) {\n        const actionError = action.error || action.payload.error;\n\n        let traceId = extractApiRequestErrorTraceId(actionError);\n        if (!traceId) {\n            traceId = generateTraceId();\n        }\n\n        const log: ErrorActionT = {\n            type: action.type,\n            error: actionError,\n            timestamp: Date.now(),\n            traceId,\n            isNew: true,\n        };\n\n        logWarningWithTraceId('Show error modal with log', traceId, log);\n\n        const logs = [log, ...state.logs].slice(0, MAX_LOGS_COUNT);\n\n        return {\n            ...state,\n            logs,\n            isShowErrorModal: true,\n        };\n    }\n\n    return state;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"zone-title\":\"CustomZoneTextWrap__zone-title___OlJ_5\",\"fadeIn\":\"CustomZoneTextWrap__fadeIn___XAEQf\",\"blinking\":\"CustomZoneTextWrap__blinking___y1bQX\"};","import * as React from 'react';\nimport { formatDiff, getTimeLeft, MS_IN_SEC, parseDiff } from 'common/utils/time';\nimport { useTranslation } from 'react-i18next';\n\ntype ResultT = {\n    diff: number | null;\n    formattedDiff: string | null;\n};\n\nconst useTimeMark = ({ timeMark }: { timeMark: string | null | undefined }): ResultT => {\n    const { t } = useTranslation();\n\n    const [timeLeft, setTimeLeft] = React.useState<number | null>(getTimeLeft(timeMark));\n\n    React.useEffect(() => {\n        const handler = () => {\n            setTimeLeft(getTimeLeft(timeMark));\n        };\n        handler();\n\n        const intervalId = setInterval(handler, MS_IN_SEC);\n\n        return () => {\n            clearInterval(intervalId);\n        };\n    }, [timeMark]);\n\n    return React.useMemo((): ResultT => {\n        const diff = timeLeft !== null ? timeLeft : null;\n        if (diff === null) {\n            return {\n                diff: null,\n                formattedDiff: null,\n            };\n        }\n\n        const parsedDiff = parseDiff(diff);\n        const formattedDiff = formatDiff(t, parsedDiff);\n\n        return {\n            diff,\n            formattedDiff,\n        };\n    }, [t, timeLeft]);\n};\n\nexport { useTimeMark };\n","import React, { useCallback } from 'react';\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport { useTranslation } from 'react-i18next';\nimport ShipperIcon, { ShipperIconProps } from 'common/icons/ShipperIcon';\nimport classNames from 'classnames/bind';\nimport styles from './ShippersSuggest.scss';\nimport {\n    AsyncRequestFactoryResultT,\n    AsyncRequestFactoryT,\n    useAsyncOptionsRequest,\n} from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-options-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { ApiPartnerT } from 'common/utils/api/models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport DropdownSearchMultipleInput, {\n    IconMetaT,\n} from 'design-system/components/dropdowns/DropdownSearchMultipleInput/DropdownSearchMultipleInput';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\n\nconst cx = classNames.bind(styles);\n\ntype ValueT = ApiPartnerT['id'] | null;\n\nexport type OptionT = {\n    id: ApiPartnerT['id'];\n    name: ApiPartnerT['name'];\n    number: ApiPartnerT['number'];\n    countryCode: NonNullable<ApiPartnerT['legalAddress']>['country'] | null;\n};\n\ntype RenderLeftIconT = (meta: IconMetaT) => React.ReactNode;\n\nconst defaultRenderLeftIcon: RenderLeftIconT = (iconMeta) => (\n    <ShipperIcon {...ShipperIconProps.getControlProps(iconMeta)} />\n);\n\nexport type PropsT = {\n    className?: string;\n    initialOptions?: Array<OptionT>;\n    initialRequestStatus?: RequestStatusT;\n    onSelect: (values: Array<ValueT>, options: Array<OptionT>) => void;\n    values: Array<ValueT>;\n    overlayPosition: DropdownOverlayPositionEnum;\n    hasClearControl?: InputPropsT['hasClearControl'];\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    placeholder: InputPropsT['placeholder'];\n    onBlur: InputPropsT['onBlur'];\n    onFocus: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasChanges?: boolean;\n    renderLeftIcon?: RenderLeftIconT;\n};\n\nconst ShippersSuggest: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        initialOptions,\n        values,\n        onSelect,\n        hasWarning,\n        hasError,\n        hasClearControl,\n        overlayPosition,\n        isDisabled,\n        placeholder,\n        onBlur,\n        onFocus,\n        hasChanges,\n        initialRequestStatus,\n        renderLeftIcon,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const requestFactory: AsyncRequestFactoryT<OptionT> = useCallback((query) => {\n        return brokerTranziitApi.findShippersByName(query).then((response): AsyncRequestFactoryResultT<OptionT> => {\n            const [error, result] = response;\n            if (error) {\n                return [error, null];\n            }\n\n            const items: Array<OptionT> =\n                result?.content?.map((item) => {\n                    return {\n                        id: item.id,\n                        name: item.name,\n                        number: item.number,\n                        countryCode: item.legalAddress?.country,\n                    };\n                }) || [];\n\n            return [null, items];\n        });\n    }, []);\n\n    const asyncOptionsRequest = useAsyncOptionsRequest<OptionT>({\n        initialOptions,\n        requestFactory,\n        settings: {},\n    });\n\n    const handleReset = () => {\n        onSelect([], []);\n    };\n\n    const handleFocus: InputPropsT['onFocus'] = () => {\n        if (onFocus) {\n            onFocus();\n        }\n    };\n\n    const renderOption = (option: OptionT | undefined, placeholder?: string): React.ReactNode => {\n        if (!option) {\n            return placeholder;\n        }\n\n        return (\n            <DropdownControlOptionLabel\n                className={cx('option')}\n                withoutPaddings\n                icon={option.countryCode ? <FlagIcon countryCode={option.countryCode} /> : null}\n                label={option.name || ''}\n                description={option.number || ''}\n            />\n        );\n    };\n\n    const renderTrigger = (options: Array<OptionT> | undefined, placeholder?: string): React.ReactNode => {\n        if (!options?.length) {\n            return placeholder;\n        }\n\n        if (options?.length === 1) {\n            const firstOption = options?.[0] || null;\n\n            return (\n                <DropdownControlOptionLabel\n                    withoutPaddings\n                    icon={firstOption?.countryCode ? <FlagIcon countryCode={firstOption.countryCode} /> : null}\n                    label={firstOption?.name || ''}\n                    description={firstOption?.number || ''}\n                />\n            );\n        }\n\n        return (\n            <DropdownControlOptionLabel\n                withoutPaddings\n                label={t('common:common-components.shippers-suggest.selected')}\n                description={\n                    <PillLabel isSymmetrical theme={PillLabelThemeEnum.charcoal}>\n                        {options?.length || 0}\n                    </PillLabel>\n                }\n            />\n        );\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option.id;\n\n    return (\n        <DropdownSearchMultipleInput<OptionT, ValueT>\n            className={className}\n            selectedValues={values}\n            placeholder={placeholder}\n            options={asyncOptionsRequest.options}\n            isDisabled={isDisabled}\n            onSelect={onSelect}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            onChangeQuery={asyncOptionsRequest.onChangeQuery}\n            renderOption={renderOption}\n            renderTriggerContent={renderTrigger}\n            getOptionValue={getOptionValue}\n            hasChanges={hasChanges}\n            renderLeftIcon={renderLeftIcon ?? defaultRenderLeftIcon}\n            onBlur={onBlur}\n            onFocus={handleFocus}\n            overlayPosition={overlayPosition}\n            isLoading={asyncOptionsRequest.requestStatus.loading || initialRequestStatus?.loading}\n            onReset={hasClearControl ? handleReset : undefined}\n        />\n    );\n};\n\nexport default ShippersSuggest;\n","import min from 'lodash/fp/min';\nimport max from 'lodash/fp/max';\nimport isNil from 'lodash/isNil';\nimport { isNonNil } from 'common/utils/index';\nimport isNumber from 'lodash/isNumber';\n\nexport type MinBoundingBoxT = [number, number];\n\nexport const createGeoPoint = (\n    latitude: number | null | undefined,\n    longitude: number | null | undefined,\n): GeoPointT | null => {\n    if (isNumber(latitude) && isNumber(longitude)) {\n        return {\n            lat: latitude,\n            lng: longitude,\n        };\n    }\n\n    return null;\n};\n\nconst getBoundingBox = (\n    points: Array<Partial<GeoPointT> | null>,\n    minSize: MinBoundingBoxT = [0.02, 0.02],\n): BoundingBoxT | null => {\n    const lats = points.filter(isNonNil).map((point) => point.lat);\n    const lngs = points.filter(isNonNil).map((point) => point.lng);\n\n    let lat0 = min(lats);\n    let lng0 = min(lngs);\n    let lat1 = max(lats);\n    let lng1 = max(lngs);\n\n    if (isNil(lat0) || isNil(lng0) || isNil(lat1) || isNil(lng1)) {\n        return null;\n    }\n\n    const dlat = lat1 - lat0;\n    const dlng = lng1 - lng0;\n\n    if (dlat < minSize[0]) {\n        const latAdj = (minSize[0] - dlat) / 2;\n        lat0 -= latAdj;\n        lat1 += latAdj;\n    }\n\n    if (dlng < minSize[1]) {\n        const lngAdj = (minSize[1] - dlng) / 2;\n        lng0 -= lngAdj;\n        lng1 += lngAdj;\n    }\n    return [\n        [lat0, lng0],\n        [lat1, lng1],\n    ];\n};\n\nexport default getBoundingBox;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { EditBrokerTeamSidebarDataT } from './models';\nimport { BrokerTeamDetailsT } from 'broker-admin/store/broker-team-details/models';\n\nconst getInitialValues = (\n    sidebarData: EditBrokerTeamSidebarDataT,\n    teamDetails: BrokerTeamDetailsT | null,\n): FormValuesT => {\n    return {\n        [FieldsEnum.name]: teamDetails?.name || '',\n        [FieldsEnum.timeZone]: teamDetails?.timezone || null,\n        [FieldsEnum.users]: teamDetails?.users || [],\n        [FieldsEnum.partners]: teamDetails?.companies || [],\n    };\n};\n\nexport default getInitialValues;\n","export const getShipmentAnchor = (shipmentId: ShipmentIdT | null) => {\n    return `shipment-${shipmentId}`;\n};\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { simpleStringFormatter } from 'common/utils/form-formatters';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from 'common/layouts/DriversPageLayout/query-models';\n\nconst getQueryFilters = (values: FormValuesT): QueryFiltersT => {\n    const queryFilters: QueryFiltersT = {};\n\n    const parsedName = simpleStringFormatter(values[FieldsEnum.name]);\n    if (parsedName) {\n        queryFilters[QueryFiltersKeysEnum.searchText] = undefined;\n        queryFilters[QueryFiltersKeysEnum.name] = parsedName;\n    }\n\n    return queryFilters;\n};\n\nexport default getQueryFilters;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"CompletedPartnerDocumentCard__inner___mThtp\",\"document-name\":\"CompletedPartnerDocumentCard__document-name___DOZOC\",\"fadeIn\":\"CompletedPartnerDocumentCard__fadeIn___SMMOS\",\"blinking\":\"CompletedPartnerDocumentCard__blinking___BJoBl\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"Widget__wrap___pV3Zt\",\"title\":\"Widget__title___SBbEG\",\"header\":\"Widget__header___mmjW6\",\"right-node\":\"Widget__right-node___HT7OT\",\"left-node\":\"Widget__left-node___f2xI7\",\"tooltip\":\"Widget__tooltip___qtYEn\",\"fadeIn\":\"Widget__fadeIn___tgPDM\",\"blinking\":\"Widget__blinking___Nk14H\"};","// extracted by mini-css-extract-plugin\nexport default {\"asset-tooltip\":\"FerryLocationPin__asset-tooltip___HZBmz\",\"fadeIn\":\"FerryLocationPin__fadeIn___E0YUd\",\"blinking\":\"FerryLocationPin__blinking___Zk0Fr\"};","import * as React from 'react';\nimport WarningIcon from 'common/icons/WarningIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\n\nexport type PropsT = {\n    className?: string;\n    children?: React.ReactNode;\n};\n\nconst EntityWarningAlert: React.FC<PropsT> = React.memo(({ className, children }) => {\n    return (\n        <Alert\n            className={className}\n            icon={<WarningIcon fillColor={StyleGuideColorsEnum.white} />}\n            size={AlertSizeEnum.small}\n            theme={AlertThemeEnum.orange}\n        >\n            {children}\n        </Alert>\n    );\n});\n\nexport default EntityWarningAlert;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './TransportationOrderMileagAndPaymentChangedCard.scss';\nimport { Trans } from 'react-i18next';\nimport CityName from 'common/components/notification-cards/entities/CityName/CityName';\nimport BrokerOrderNumber from 'broker-admin/components/notification-cards/entities/BrokerOrderNumber/BrokerOrderNumber';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    number: string;\n    cityA: string;\n    cityB: string;\n};\n\nconst TransportationOrderMileagAndPaymentChangedCard: React.FC<PropsT> = React.memo((props) => {\n    const { number, cityA, cityB } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"notifications.transportation-order-mileage-and-payment-changed\"\n                components={{\n                    id: <BrokerOrderNumber number={number} />,\n                    cityA: <CityName cityName={cityA} />,\n                    cityB: <CityName cityName={cityB} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default TransportationOrderMileagAndPaymentChangedCard;\n","import React from 'react';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport {\n    ShipperContractLaneDetailsT,\n    UpdateShipperContractLaneChangesT,\n} from 'common/store/shipper-contract-lane-details/models';\nimport TeamDrivePill from 'common/components/status-pill/TeamDrivePill/TeamDrivePill';\nimport ShipperContractLaneEditForm from './ShipperContractLaneEditForm/ShipperContractLaneEditForm';\nimport ShipperContractLaneOtherDetails from '../ShipperContractLaneOtherDetails/ShipperContractLaneOtherDetails';\nimport ShipperContractLaneStatusPill from 'common/components/status-pill/ShipperContractLaneStatusPill/ShipperContractLaneStatusPill';\nimport classNames from 'classnames/bind';\nimport styles from './EditShipperContractLaneSidebarContent.scss';\nimport { useSelector } from 'react-redux';\nimport { selectUpdateShipperContractLaneRequest } from 'common/store/shipper-contract-lane-details/selectors';\nimport { ShipperContractDetailsT } from 'common/store/shipper-contract-details/models';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    data: ShipperContractLaneDetailsT | null;\n    onGoBack?: () => void;\n    onClose?: () => void;\n    onCancel: () => void;\n    setNeedCloseConfirmation?: (needCloseConfirmation: boolean) => void;\n\n    onOpenUserDetails?: (userId: UserIdT) => void;\n\n    onChangeOriginRadiusKm?: (radiusKm: number) => void;\n    onChangeDestinationRadiusKm?: (radiusKm: number) => void;\n\n    onEditShipperContractLane: (detailsChanges: UpdateShipperContractLaneChangesT) => void;\n\n    contractDetails: ShipperContractDetailsT | null;\n};\n\nconst EditShipperContractLaneSidebarContent: React.FC<PropsT> = (props) => {\n    const {\n        data,\n        onGoBack,\n        onClose,\n        onCancel,\n        setNeedCloseConfirmation,\n\n        onOpenUserDetails,\n\n        onChangeOriginRadiusKm,\n        onChangeDestinationRadiusKm,\n\n        onEditShipperContractLane,\n\n        contractDetails,\n    } = props;\n\n    const updateRequestStatus = useSelector(selectUpdateShipperContractLaneRequest);\n\n    return (\n        <>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent\n                    title={data?.tztLaneId || ''}\n                    afterTitleNode={\n                        <>\n                            <ShipperContractLaneStatusPill className={cx('status')} status={data?.status} />\n                            {data?.teamDrive && <TeamDrivePill />}\n                        </>\n                    }\n                    onClose={() => {\n                        if (onClose) {\n                            onClose();\n                        }\n                    }}\n                    onGoBack={onGoBack}\n                />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <ShipperContractLaneEditForm\n                    data={data}\n                    onCancel={onCancel}\n                    setNeedCloseConfirmation={setNeedCloseConfirmation}\n                    onChangeOriginRadiusKm={onChangeOriginRadiusKm}\n                    onChangeDestinationRadiusKm={onChangeDestinationRadiusKm}\n                    onSubmit={onEditShipperContractLane}\n                    updateRequestStatus={updateRequestStatus}\n                    contractDetails={contractDetails}\n                />\n                <ShipperContractLaneOtherDetails data={data} onOpenUserDetails={onOpenUserDetails} />\n            </SideBarLayout>\n        </>\n    );\n};\n\nexport default EditShipperContractLaneSidebarContent;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './ParanjaSideBarLayout.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n};\n\nconst ParanjaSideBarLayout: React.FC<PropsT> = React.memo(() => {\n    return <div className={cx('paranja')} />;\n});\n\nexport default ParanjaSideBarLayout;\n","// extracted by mini-css-extract-plugin\nexport default {\"content-wrap\":\"SubmitButtonContent__content-wrap___Q2hwb\",\"loader\":\"SubmitButtonContent__loader___bOGGR\",\"fadeIn\":\"SubmitButtonContent__fadeIn___z1rm9\",\"blinking\":\"SubmitButtonContent__blinking___HUI1T\"};","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const brokerToursRefreshChannel = new ViewEventChannel<{}>();\n\nexport const brokerToursPaginationChannel = new ViewEventChannel<{\n    pageNumber: number;\n}>();\n","// extracted by mini-css-extract-plugin\nexport default {\"widget\":\"FerrySettingsForm__widget___VDU16\",\"widget__inner\":\"FerrySettingsForm__widget__inner___w_V_A\",\"field\":\"FerrySettingsForm__field___xfbHv\",\"fadeIn\":\"FerrySettingsForm__fadeIn___DFcgA\",\"blinking\":\"FerrySettingsForm__blinking___JzE8j\"};","import { authRoutesEnum, CommonRoutesEnum } from 'common/constants';\n\nexport const routesEnum = {\n    home: authRoutesEnum.home,\n    signIn: authRoutesEnum.signIn,\n    signUp: authRoutesEnum.signUp,\n    deprecateSignUp: authRoutesEnum.deprecateSignUp,\n    continueSignUp: authRoutesEnum.continueSignUp,\n    forgotPassword: authRoutesEnum.forgotPassword,\n    changePassword: authRoutesEnum.changePassword,\n    confirmEmail: authRoutesEnum.confirmEmail,\n    selfCreateCompany: authRoutesEnum.selfCreateCompany,\n\n    notFound: CommonRoutesEnum.notFound,\n    account: CommonRoutesEnum.account,\n    accessDenied: CommonRoutesEnum.accessDenied,\n\n    spotRequests: '/spot',\n    brokerTours: '/broker-tours',\n    brokerRFQs: '/broker-rfqs',\n    brokerOrders: '/broker-orders',\n    orders: '/orders',\n    settings: '/settings',\n    statistics: '/statistics',\n    partners: '/partners',\n    invoices: '/invoices',\n    partner: '/partners/:partnerType/:partnerId/partner',\n    assetDetails: '/partners/:partnerType/:partnerId/asset',\n    shipperContractDetails: '/partners/:partnerType/:partnerId/shipper-contracts/:contractId',\n    shipperLaneDetails: '/partners/:partnerType/:partnerId/shipper-contract-lanes/:contractId',\n    brokerUsers: '/users',\n} as const;\n\nexport enum ShipperContractDetailsEnum {\n    details = '/partners/:partnerType/:partnerId/shipper-contracts/:contractId/details',\n    lanes = '/partners/:partnerType/:partnerId/shipper-contracts/:contractId/lanes',\n}\n\nexport enum BrokerUsersRoutesEnum {\n    brokerTeams = '/users/teams',\n}\n\nexport enum BrokerRFQRoutesEnum {\n    list = '/broker-rfqs',\n    details = '/broker-rfqs/:rfqId/details',\n}\n\nexport enum PartnersRoutesEnum {\n    partnerDetails = '/partners/:partnerType/:partnerId/partner/details',\n    partnerDocuments = '/partners/:partnerType/:partnerId/partner/documents',\n    partnerMembers = '/partners/:partnerType/:partnerId/partner/members',\n    partnerInvoices = '/partners/:partnerType/:partnerId/partner/invoices',\n    partnerTrailers = '/partners/:partnerType/:partnerId/partner/trailers',\n    partnerTrucks = '/partners/:partnerType/:partnerId/partner/trucks',\n    partnerDrivers = '/partners/:partnerType/:partnerId/partner/drivers',\n    partnerTransportOrders = '/partners/:partnerType/:partnerId/partner/transport-orders',\n    partnerTransportOrderDetails = '/partners/:partnerType/:partnerId/partner/transport-order/:transportOrderId',\n}\n\nexport enum PartnersDocumentsRoutesEnum {\n    requiredPartnerDocuments = '/partners/:partnerType/:partnerId/partner/documents/required',\n    optionalPartnerDocuments = '/partners/:partnerType/:partnerId/partner/documents/optional',\n    partnerCarrierContracts = '/partners/:partnerType/:partnerId/partner/documents/carrier-contracts',\n    partnerShipperContracts = '/partners/:partnerType/:partnerId/partner/documents/shipper-contracts',\n}\n\nexport enum OMSRoutesEnum {\n    newOrder = '/orders/new',\n}\n\nexport enum ShipperContractLaneRoutesEnum {\n    newLane = '/partners/:partnerType/:partnerId/shipper-contract-lanes/:contractId/new',\n    laneDetails = '/partners/:partnerType/:partnerId/shipper-contract-lanes/:contractId/lane/:laneId',\n}\n\nexport enum SpotRoutesEnum {\n    list = '/spot',\n    spotRequestDetails = '/spot/:spotRequestId',\n}\n\nexport enum BrokerOrdersRoutesEnum {\n    brokerOrderRouteEdit = '/broker-orders/:brokerOrderId/route-edit',\n    brokerOrderAssignment = '/broker-orders/:brokerOrderId/tours/:tourId/assignment',\n    brokerOrderDetails = '/broker-orders/:brokerOrderId',\n}\n\nexport enum BrokerToursRoutesEnum {\n    brokerTourDeadheadCreation = '/broker-tours/deadhead-create',\n    brokerTourDetails = '/broker-tours/:brokerTourId',\n}\n\nexport enum SettingsRuleRoutesEnum {\n    newRule = '/settings/rules/new',\n    ruleDetails = '/settings/rules/:ruleId',\n}\n\nexport enum SettingsRoutesEnum {\n    rateMatrix = '/settings/rate-matrix',\n    rules = '/settings/rules',\n    systemSettings = '/settings/system',\n    additionalServices = '/settings/additional-services',\n    tenderCalculator = '/settings/tender-calculator',\n}\n\nexport enum AssetRoutesEnum {\n    truckDetails = '/partners/:partnerType/:partnerId/asset/truck/:truckId',\n    trailerDetails = '/partners/:partnerType/:partnerId/asset/trailer/:trailerId',\n}\n\nexport default {};\n","import { useContext } from 'react';\nimport NotificationSidebarContext, { NotificationSidebarContextT } from 'common/contexts/notification-sidebar-context';\n\nconst useNotificationSideBarContext = (): NotificationSidebarContextT => {\n    return useContext(NotificationSidebarContext);\n};\n\nexport default useNotificationSideBarContext;\n","import { CompanyContactDetailsT } from 'common/store/members/models';\nimport { ApiCompanyContactDetailsT } from 'common/utils/api/models';\n\nexport const prepareCompanyContactDetails = (\n    contactDetails: ApiCompanyContactDetailsT | null,\n): CompanyContactDetailsT | null => {\n    if (!contactDetails) {\n        return null;\n    }\n\n    return {\n        ...contactDetails,\n        fullName: [contactDetails.name, contactDetails.surname].filter(Boolean).join(' '),\n    };\n};\n","import * as React from 'react';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport isNil from 'lodash/isNil';\n\ntype PropsT = {\n    driverId: DriverIdT | null | undefined;\n    onOpenDriverDetails?: (driverId: DriverIdT) => void;\n};\n\nconst DriverLinkFormatter: React.FC<PropsT> = React.memo((props) => {\n    const { children, driverId, onOpenDriverDetails } = props;\n\n    if (isNil(driverId) || !onOpenDriverDetails) {\n        return <span>{children}</span>;\n    }\n\n    return (\n        <Link onClick={() => onOpenDriverDetails(driverId)} theme={LinkThemeEnum.boldBrandDark}>\n            {children}\n        </Link>\n    );\n});\n\nexport default DriverLinkFormatter;\n","import {\n    CHANGE_RESERVE_QUERY,\n    ChangeReserveQueryActionT,\n    CLEAR_OFFERS_TASKS,\n    ClearOffersTasksActionT,\n    CORRECT_PREVIEW_RESERVE_QUERY,\n    CorrectPreviewReserveQueryActionT,\n    CREATE_ORDER_REQUEST,\n    CREATE_ORDER_REQUEST_BEGIN,\n    CREATE_ORDER_REQUEST_ERROR,\n    CREATE_ORDER_REQUEST_SUCCESS,\n    CREATE_PRICE_OFFER_WITH_LANE_REQUEST,\n    CREATE_PRICE_OFFER_WITH_LANE_REQUEST_BEGIN,\n    CREATE_PRICE_OFFER_WITH_LANE_REQUEST_ERROR,\n    CREATE_PRICE_OFFER_WITH_LANE_REQUEST_SUCCESS,\n    CREATE_RESERVE_BEGIN,\n    CREATE_RESERVE_ERROR,\n    CREATE_RESERVE_SUCCESS,\n    CREATE_RFQ_REQUEST,\n    CREATE_RFQ_REQUEST_BEGIN,\n    CREATE_RFQ_REQUEST_ERROR,\n    CREATE_RFQ_REQUEST_SUCCESS,\n    CreateOrderActionT,\n    CreateOrderBeginActionT,\n    CreateOrderErrorActionT,\n    CreateOrderSuccessActionT,\n    CreatePriceOfferWithLaneRequestActionT,\n    CreatePriceOfferWithLaneRequestBeginActionT,\n    CreatePriceOfferWithLaneRequestErrorActionT,\n    CreatePriceOfferWithLaneRequestSuccessActionT,\n    CreateReserveBeginActionT,\n    CreateReserveErrorActionT,\n    CreateReserveSuccessActionT,\n    CreateRFQActionT,\n    CreateRFQBeginActionT,\n    CreateRFQErrorActionT,\n    CreateRFQSuccessActionT,\n    ENSURE_CREATED_RFQ,\n    EnsureCreatedRFQActionT,\n    FETCH_OFFERS,\n    FETCH_OFFERS_ERROR,\n    FETCH_ROUTE,\n    FETCH_ROUTE_ERROR,\n    FETCH_ROUTE_SUCCESS,\n    FETCH_TASK_OFFER,\n    FETCH_TASK_OFFER_ERROR,\n    FetchOffersActionT,\n    FetchOffersErrorActionT,\n    FetchRouteActionT,\n    FetchRouteErrorActionT,\n    FetchRouteSuccessActionT,\n    FetchTaskOfferActionT,\n    FetchTaskOfferErrorActionT,\n    FETCH_SHIPPER_INFO,\n    FETCH_SHIPPER_INFO_BEGIN,\n    FETCH_SHIPPER_INFO_ERROR,\n    FETCH_SHIPPER_INFO_SUCCESS,\n    FetchShipperInfoActionT,\n    FetchShipperInfoBeginActionT,\n    FetchShipperInfoErrorActionT,\n    FetchShipperInfoSuccessActionT,\n    MARK_OFFERS_EXPIRED,\n    MarkOffersExpiredActionT,\n    PREVIEW_RESERVE_BEGIN,\n    PREVIEW_RESERVE_ERROR,\n    PREVIEW_RESERVE_SUCCESS,\n    PreviewReserveBeginActionT,\n    PreviewReserveErrorActionT,\n    PreviewReserveSuccessActionT,\n    RESET,\n    RESET_CREATE_RESERVE_WITH_QUERY,\n    RESET_RESERVE_AND_RESERVE_PREVIEW,\n    ResetActionT,\n    ResetCreateReserveWithQueryActionT,\n    ResetReserveAndReservePreviewT,\n    SELECT_OFFER,\n    SelectOfferActionT,\n    SET_ALLOW_CREATE_RFQ,\n    SET_CREATE_RESERVE_QUERY,\n    SET_EXPECTED_OFFERS_COUNT,\n    SET_PREVIEW_RESERVE_QUERY,\n    SetAllowCreateRFQT,\n    SetCreateReserveQueryActionT,\n    SetExpectedOffersCountT,\n    SetPreviewReserveQueryActionT,\n    CORRECT_RESERVE_QUERY,\n    CorrectReserveQueryActionT,\n} from './types';\nimport {\n    CreateReserveQueryT,\n    PriceOfferT,\n    ReservePreviewQueryT,\n    ReservePreviewT,\n    ReserveQueryChangesT,\n    ReserveT,\n    RFQDetailsT,\n} from './models';\nimport { ApiActualOrderRequestT, ApiCreateOrderRequestT, ApiOrderCreationShipperInfoT } from 'common/utils/api/models';\n\nexport const fetchShipperInfo = (shipperId: ShipperIdT, options?: FetchOptionsT): FetchShipperInfoActionT => ({\n    type: FETCH_SHIPPER_INFO,\n    shipperId,\n    options,\n});\n\nexport const fetchShipperInfoBegin = (): FetchShipperInfoBeginActionT => ({\n    type: FETCH_SHIPPER_INFO_BEGIN,\n});\n\nexport const fetchShipperInfoSuccess = (shipperInfo: ApiOrderCreationShipperInfoT): FetchShipperInfoSuccessActionT => ({\n    type: FETCH_SHIPPER_INFO_SUCCESS,\n    shipperInfo,\n});\n\nexport const fetchShipperInfoError = (error: Error): FetchShipperInfoErrorActionT => ({\n    type: FETCH_SHIPPER_INFO_ERROR,\n    error,\n});\n\nexport const changeReserveQuery = (changes: ReserveQueryChangesT): ChangeReserveQueryActionT => ({\n    type: CHANGE_RESERVE_QUERY,\n    changes,\n});\n\nexport const setAllowCreateRFQ = (isAllowCreateRFQ: boolean): SetAllowCreateRFQT => ({\n    type: SET_ALLOW_CREATE_RFQ,\n    isAllowCreateRFQ,\n});\n\nexport const createRFQ = (\n    actualOrderRequest: ApiActualOrderRequestT,\n    reserve: ReserveT,\n    shipperId: ShipperIdT | null,\n): CreateRFQActionT => ({\n    type: CREATE_RFQ_REQUEST,\n    actualOrderRequest,\n    reserve,\n    shipperId,\n});\n\nexport const createPriceOfferWithLaneRequest = (\n    actualOrderRequest: ApiActualOrderRequestT,\n    reserve: ReserveT,\n    shipperId: ShipperIdT | null,\n    laneId: ShipperContractLaneIdT,\n): CreatePriceOfferWithLaneRequestActionT => ({\n    type: CREATE_PRICE_OFFER_WITH_LANE_REQUEST,\n    actualOrderRequest,\n    reserve,\n    shipperId,\n    laneId,\n});\n\nexport const createPriceOfferWithLaneRequestBegin = (): CreatePriceOfferWithLaneRequestBeginActionT => ({\n    type: CREATE_PRICE_OFFER_WITH_LANE_REQUEST_BEGIN,\n});\n\nexport const createPriceOfferWithLaneRequestSuccess = (\n    rfq: RFQDetailsT,\n    lanePriceOffer: PriceOfferT | null,\n): CreatePriceOfferWithLaneRequestSuccessActionT => ({\n    type: CREATE_PRICE_OFFER_WITH_LANE_REQUEST_SUCCESS,\n    rfq,\n    lanePriceOffer,\n});\n\nexport const createPriceOfferWithLaneRequestError = (error: Error): CreatePriceOfferWithLaneRequestErrorActionT => ({\n    type: CREATE_PRICE_OFFER_WITH_LANE_REQUEST_ERROR,\n    error,\n});\n\nexport const createRFQBegin = (): CreateRFQBeginActionT => ({\n    type: CREATE_RFQ_REQUEST_BEGIN,\n});\n\nexport const ensureCreatedRFQ = (rfqId: RFQIdT): EnsureCreatedRFQActionT => ({\n    type: ENSURE_CREATED_RFQ,\n    rfqId,\n});\n\nexport const createRFQSuccess = (rfq: RFQDetailsT): CreateRFQSuccessActionT => ({\n    type: CREATE_RFQ_REQUEST_SUCCESS,\n    rfq,\n});\n\nexport const fetchRoute = (polylineId: PolylineIdT | null): FetchRouteActionT => ({\n    type: FETCH_ROUTE,\n    polylineId,\n});\n\nexport const fetchRouteSuccess = (polylines: Array<GooglePolylineT>): FetchRouteSuccessActionT => ({\n    type: FETCH_ROUTE_SUCCESS,\n    polylines,\n});\n\nexport const fetchRouteError = (error: Error): FetchRouteErrorActionT => ({\n    type: FETCH_ROUTE_ERROR,\n    error,\n});\n\nexport const createRFQError = (error: Error): CreateRFQErrorActionT => ({\n    type: CREATE_RFQ_REQUEST_ERROR,\n    error,\n});\n\nexport const createOrder = (\n    rfqId: RFQIdT,\n    createOrderRequest: ApiCreateOrderRequestT,\n    isCreateNextOrder: boolean,\n): CreateOrderActionT => ({\n    type: CREATE_ORDER_REQUEST,\n    rfqId,\n    createOrderRequest,\n    isCreateNextOrder,\n});\n\nexport const createOrderBegin = (): CreateOrderBeginActionT => ({\n    type: CREATE_ORDER_REQUEST_BEGIN,\n});\n\nexport const createOrderSuccess = (): CreateOrderSuccessActionT => ({\n    type: CREATE_ORDER_REQUEST_SUCCESS,\n});\n\nexport const createOrderError = (error: Error): CreateOrderErrorActionT => ({\n    type: CREATE_ORDER_REQUEST_ERROR,\n    error,\n});\n\nexport const selectOffer = (rfqId: RFQIdT, offer: PriceOfferT): SelectOfferActionT => ({\n    type: SELECT_OFFER,\n    rfqId,\n    offer,\n});\n\nexport const fetchOffersError = (error: Error): FetchOffersErrorActionT => ({\n    type: FETCH_OFFERS_ERROR,\n    error,\n});\n\nexport const setExpectedOffersCount = (expectedOffersCount: number | null): SetExpectedOffersCountT => ({\n    type: SET_EXPECTED_OFFERS_COUNT,\n    expectedOffersCount,\n});\n\nexport const fetchOffers = (priceOffers: Array<PriceOfferT>): FetchOffersActionT => ({\n    type: FETCH_OFFERS,\n    priceOffers,\n});\n\nexport const markOffersExpired = (ids: Array<PriceOfferIdT>): MarkOffersExpiredActionT => ({\n    type: MARK_OFFERS_EXPIRED,\n    ids,\n});\n\nexport const fetchTaskOffer = (offer: PriceOfferT, tasksCount: number): FetchTaskOfferActionT => ({\n    type: FETCH_TASK_OFFER,\n    offer,\n    tasksCount,\n});\n\nexport const fetchTaskOfferError = (error: Error): FetchTaskOfferErrorActionT => ({\n    type: FETCH_TASK_OFFER_ERROR,\n    error,\n});\n\nexport const clearOffersTasks = (): ClearOffersTasksActionT => ({\n    type: CLEAR_OFFERS_TASKS,\n});\n\nexport const resetOrderCreation = (): ResetActionT => ({\n    type: RESET,\n});\n\nexport const setCreateReserveQuery = (query: CreateReserveQueryT | null): SetCreateReserveQueryActionT => ({\n    type: SET_CREATE_RESERVE_QUERY,\n    query,\n});\n\nexport const createReserveBegin = (query: CreateReserveQueryT | null): CreateReserveBeginActionT => ({\n    type: CREATE_RESERVE_BEGIN,\n    query,\n});\n\nexport const createReserveSuccess = (\n    reserve: ReserveT,\n    query: CreateReserveQueryT | null,\n): CreateReserveSuccessActionT => ({\n    type: CREATE_RESERVE_SUCCESS,\n    reserve,\n    query,\n});\n\nexport const createReserveError = (error: Error, query: CreateReserveQueryT | null): CreateReserveErrorActionT => ({\n    type: CREATE_RESERVE_ERROR,\n    error,\n    query,\n});\n\nexport const resetCreateReserveWithQuery = (query: CreateReserveQueryT | null): ResetCreateReserveWithQueryActionT => ({\n    type: RESET_CREATE_RESERVE_WITH_QUERY,\n    query,\n});\n\nexport const previewReserveBegin = (query: ReservePreviewQueryT | null): PreviewReserveBeginActionT => ({\n    type: PREVIEW_RESERVE_BEGIN,\n    query,\n});\n\nexport const setPreviewReserveQuery = (query: ReservePreviewQueryT | null): SetPreviewReserveQueryActionT => ({\n    type: SET_PREVIEW_RESERVE_QUERY,\n    query,\n});\n\nexport const correctPreviewReserveQuery = (query: ReservePreviewQueryT | null): CorrectPreviewReserveQueryActionT => ({\n    type: CORRECT_PREVIEW_RESERVE_QUERY,\n    query,\n});\n\nexport const correctReserveQuery = (query: CreateReserveQueryT | null): CorrectReserveQueryActionT => ({\n    type: CORRECT_RESERVE_QUERY,\n    query,\n});\n\nexport const previewReserveSuccess = (\n    preview: ReservePreviewT,\n    query: ReservePreviewQueryT | null,\n): PreviewReserveSuccessActionT => ({\n    type: PREVIEW_RESERVE_SUCCESS,\n    preview,\n    query,\n});\n\nexport const previewReserveError = (error: Error, query: ReservePreviewQueryT | null): PreviewReserveErrorActionT => ({\n    type: PREVIEW_RESERVE_ERROR,\n    error,\n    query,\n});\n\nexport const resetReserveAndPreviewReserve = (): ResetReserveAndReservePreviewT => ({\n    type: RESET_RESERVE_AND_RESERVE_PREVIEW,\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"HorizontalColumnsLayout__content___WXjrb\",\"inner\":\"HorizontalColumnsLayout__inner___ff1Ys\",\"tab-item\":\"HorizontalColumnsLayout__tab-item___SDANr\",\"tab-item--isActive\":\"HorizontalColumnsLayout__tab-item--isActive___r_3_e\",\"tabs\":\"HorizontalColumnsLayout__tabs____4sJz\",\"tabs__container\":\"HorizontalColumnsLayout__tabs__container___jIwGT\",\"tabs__tab\":\"HorizontalColumnsLayout__tabs__tab___AzlgT\",\"tabs__tab--isLeftTab\":\"HorizontalColumnsLayout__tabs__tab--isLeftTab___tDlFI\",\"tabs__tab--isNarrow\":\"HorizontalColumnsLayout__tabs__tab--isNarrow___Wd9Qn\",\"tabs__tab--isRightTab\":\"HorizontalColumnsLayout__tabs__tab--isRightTab___OTQOD\",\"tabs__tab--isActiveRightTab\":\"HorizontalColumnsLayout__tabs__tab--isActiveRightTab___MCJ4A\",\"tab\":\"HorizontalColumnsLayout__tab___qnNKS\",\"fadeIn\":\"HorizontalColumnsLayout__fadeIn___YCdP0\",\"blinking\":\"HorizontalColumnsLayout__blinking___cgMty\"};","import * as React from 'react';\nimport { formatTimeInterval } from 'common/utils/time';\nimport { TransportOrderT } from 'common/store/transport-orders/models';\nimport LocationCellLayout from 'common/components/Table/cell-renderers/LocationCell/LocationCell';\nimport { DirectionEnum } from 'common/constants';\nimport LocationLabel from 'common/components/LocationLabel/LocationLabel';\n\ntype PropsT = {\n    order: TransportOrderT;\n    type: DirectionEnum;\n};\n\nconst LocationCell: React.FC<PropsT> = React.memo((props) => {\n    const { order, type } = props;\n\n    let time = null;\n    let address = null;\n\n    if (type === DirectionEnum.destination) {\n        address = order.destination;\n        time = formatTimeInterval(order.destinationDateFrom, order.destinationDateTo);\n    }\n    if (type === DirectionEnum.origin) {\n        address = order.origin;\n        time = formatTimeInterval(order.originDateFrom, order.originDateTo);\n    }\n\n    return (\n        <LocationCellLayout\n            address={<LocationLabel format=\"zip_city_country\" location={address} allowShowCountryCode />}\n            time={time}\n        />\n    );\n});\n\nexport default LocationCell;\n","// extracted by mini-css-extract-plugin\nexport default {\"table__header\":\"TransportOrdersTable__table__header___c2rNM\",\"table__header--id\":\"TransportOrdersTable__table__header--id___oWuSQ\",\"table__header--type\":\"TransportOrdersTable__table__header--type___VspsQ\",\"table__column\":\"TransportOrdersTable__table__column___SYyBW\",\"table__column--id\":\"TransportOrdersTable__table__column--id___WlUDs\",\"table__column--partners\":\"TransportOrdersTable__table__column--partners___cMwTf\",\"table__column--create\":\"TransportOrdersTable__table__column--create___oUT8_\",\"table__column--locations\":\"TransportOrdersTable__table__column--locations___nG52p\",\"table__column--type\":\"TransportOrdersTable__table__column--type___vkKSq\",\"table__column--has-warnings\":\"TransportOrdersTable__table__column--has-warnings___SDFbu\",\"table__column--status\":\"TransportOrdersTable__table__column--status___SCAaa\",\"fadeIn\":\"TransportOrdersTable__fadeIn___WljHq\",\"blinking\":\"TransportOrdersTable__blinking___GfJnK\"};","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport ChangedFieldLabel from 'common/components/notification-cards/shared/ChangedFieldLabel/ChangedFieldLabel';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\nimport NotificationVerticalRow from 'common/components/notification-cards/shared/NotificationVerticalRow/NotificationVerticalRow';\nimport NotificationVerticalRowsLayout from 'common/components/notification-cards/shared/NotificationVerticalRowsLayout/NotificationVerticalRowsLayout';\n\ntype PropsT = {\n    shipmentNumber: React.ReactNode;\n    updatedFields?: Api2.Definitions.FieldChangeDto[];\n};\n\nconst ShipmentWasUpdatedCard: React.FC<PropsT> = React.memo((props) => {\n    const { shipmentNumber, updatedFields = [] } = props;\n\n    return (\n        <NotificationCardInnerLayout>\n            <NotificationVerticalRowsLayout>\n                {[\n                    <NotificationVerticalRow key=\"summary\">\n                        <Trans\n                            i18nKey=\"common:notifications.shipment-was-updated\"\n                            components={{\n                                shipmentNumber: <NotificationEntityLabel isBold isUnderline text={shipmentNumber} />,\n                            }}\n                        />\n                    </NotificationVerticalRow>,\n                    ...updatedFields.map((field, index) => (\n                        <NotificationVerticalRow key={`${field.fieldCode}-${index}`}>\n                            <ChangedFieldLabel\n                                code={field.fieldCode}\n                                oldValue={field.oldValue}\n                                newValue={field.newValue}\n                            />\n                        </NotificationVerticalRow>\n                    )),\n                ]}\n            </NotificationVerticalRowsLayout>\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default ShipmentWasUpdatedCard;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ActivateAssetForm.scss';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport { FieldsEnum, FormValuesT, RateSourceEnum, rateSourceSet } from './constants';\nimport validateForm from './validate-form';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport ModalDialogActions from 'common/components/Modal/ModalDialogActions/ModalDialogActions';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport NumberInput from 'common/components/NumberInput/NumberInput';\nimport { CurrencyEnum, UnitTypeEnum } from 'common/constants';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport { prepareActivateVehiclesRequest } from './prepare-activate-vehicles-request';\nimport { AssetDataT } from 'common/layouts/dialogs/ActivateAssetDialogModal/models';\nimport Money from 'common/components/Money/Money';\nimport { checkIsDefaultCompanyId } from 'common/utils';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport carrierTranziitApi from 'carrier/utils/api/carrier-tranziit/api';\nimport ControlLoaderIcon, { ControlLoaderIconProps } from 'common/icons/ControlLoaderIcon';\n\nimport RateSourceOption from 'common/layouts/dialogs/ActivateAssetDialogModal/ActivateAssetForm/RateSourceOption/RateSourceOption';\nimport DropdownSearchInput from 'design-system/components/dropdowns/DropdownSearchInput/DropdownSearchInput';\nimport { logWarning } from 'common/utils/logger';\nimport { ApiActivateVehiclesRequestT } from 'common/utils/api/models';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    assets: Array<AssetDataT>;\n    companyId: CompanyIdT;\n    onCancel: () => void;\n    onSubmit: (activateVehiclesRequest: ApiActivateVehiclesRequestT) => void;\n    requestStatus: RequestStatusT;\n};\n\nexport const INITIAL_VALUES: FormValuesT = {\n    [FieldsEnum.source]: RateSourceEnum.current,\n    [FieldsEnum.rate]: '',\n};\n\nconst TEST_SELECTOR = 'activate-asset-form';\n\ntype RateSourceOptionT = {\n    text: string;\n    label: React.ReactNode;\n    labelFallback?: React.ReactNode;\n    value: RateSourceEnum | CarrierContractIdT;\n};\n\nconst T_MAP = {\n    oneRatesOptionLabel: 'common:assets.activation.rates.one-current-rate',\n    manyRatesOptionLabel: 'common:assets.activation.rates.many-current-rates',\n    newRateOptionLabel: 'common:assets.activation.rates.new-rate',\n};\n\nconst ActivateAssetForm: React.FC<PropsT> = (props) => {\n    const { onCancel, onSubmit, requestStatus, assets, companyId } = props;\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [isLoadingContract, setIsLoadingContract] = React.useState(false);\n    const [contractOptions, setContractOptions] = React.useState<Array<RateSourceOptionT>>([]);\n\n    React.useEffect(() => {\n        (async () => {\n            if (!companyId) {\n                return;\n            }\n\n            setIsLoadingContract(true);\n            const isPartner = !checkIsDefaultCompanyId(companyId);\n            if (isPartner) {\n                const brokerResponse = await brokerTranziitApi.fetchCarrierApprovedContracts(companyId);\n\n                setContractOptions(\n                    brokerResponse?.[1]?.map((apiContract) => {\n                        return {\n                            label: apiContract.name,\n                            labelFallback: apiContract.id,\n                            value: apiContract.id,\n                            text: apiContract.name || apiContract.id,\n                        };\n                    }) || [],\n                );\n            } else {\n                const carrierResponse = await carrierTranziitApi.fetchCarrierApprovedContracts();\n\n                setContractOptions(\n                    carrierResponse?.[1]?.map((apiContract) => {\n                        return {\n                            label: apiContract.name,\n                            labelFallback: apiContract.id,\n                            value: apiContract.id,\n                            text: apiContract.name || apiContract.id,\n                        };\n                    }) || [],\n                );\n            }\n\n            setIsLoadingContract(false);\n        })();\n    }, [companyId]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values: FormValuesT = {\n            ...INITIAL_VALUES,\n        };\n\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [assets]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const activateVehiclesRequest = prepareActivateVehiclesRequest(assets, values);\n            if (activateVehiclesRequest) {\n                onSubmit(activateVehiclesRequest);\n            } else {\n                logWarning('Empty activateVehiclesRequest!');\n            }\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const rateSourceOptions = React.useMemo(() => {\n        let currentRatesOptionLabel;\n        if (assets.length === 1) {\n            currentRatesOptionLabel = (\n                <Trans\n                    i18nKey={T_MAP.oneRatesOptionLabel}\n                    components={{\n                        rate: <Money amount={assets[0]?.ratePerKm} currency={CurrencyEnum.EUR} />,\n                    }}\n                />\n            );\n        } else {\n            currentRatesOptionLabel = t(T_MAP.manyRatesOptionLabel);\n        }\n\n        return [\n            {\n                label: currentRatesOptionLabel,\n                text: '*',\n                value: RateSourceEnum.current,\n            },\n            {\n                label: t(T_MAP.newRateOptionLabel),\n                text: '*',\n                value: RateSourceEnum.new,\n            },\n            ...contractOptions,\n        ];\n    }, [assets, contractOptions, t]);\n\n    const selectedSource = formik.values[FieldsEnum.source];\n\n    const [query, setQuery] = React.useState<string>('');\n\n    const renderOption = (option: RateSourceOptionT | undefined, placeholder?: string): React.ReactNode => {\n        if (!option) {\n            return placeholder;\n        }\n\n        return (\n            <RateSourceOption\n                isCurrentContract={initialValues[FieldsEnum.source] === option.value}\n                isContract={!!option.value && !rateSourceSet.has(option.value)}\n                label={option.label}\n                labelFallback={option.labelFallback}\n            />\n        );\n    };\n\n    const filteredOptions = React.useMemo(() => {\n        const preparedQuery = query.toLowerCase().trim();\n        if (!preparedQuery) {\n            return rateSourceOptions;\n        }\n\n        return rateSourceOptions.filter((option) => {\n            if (option.text === '*') {\n                return true;\n            }\n\n            return option.text.toLowerCase().includes(preparedQuery);\n        });\n    }, [rateSourceOptions, query]);\n\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <div className={cx('form')}>\n                <FieldGroup spaces={1}>\n                    <FormikField\n                        name={FieldsEnum.source}\n                        className={cx('field', 'field--source')}\n                        label={t('common:assets.activation.fields.source.label')}\n                        error={formik.errors[FieldsEnum.source]}\n                        meta={formik.getFieldMeta(FieldsEnum.source)}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DropdownSearchInput<RateSourceOptionT, RateSourceOptionT['value']>\n                                selectedValue={formik.values[FieldsEnum.source]}\n                                options={filteredOptions}\n                                onSelect={props.onChange}\n                                renderOption={renderOption}\n                                renderTrigger={renderOption}\n                                getOptionValue={(option) => option.value}\n                                overlayClassName={cx('overlay')}\n                                overlayPosition={DropdownOverlayPositionEnum.topLeft}\n                                onChangeQuery={setQuery}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                isDisabled={isLoadingContract}\n                                isLoading={isLoadingContract}\n                                renderRightIcon={({ isLoading }) => {\n                                    return isLoading ? (\n                                        <ControlLoaderIcon {...ControlLoaderIconProps.getFetchDataProps()} />\n                                    ) : null;\n                                }}\n                            />\n                        )}\n                    </FormikField>\n                    {selectedSource === RateSourceEnum.new && (\n                        <FormikField\n                            className={cx('field', 'field--rate')}\n                            name={FieldsEnum.rate}\n                            error={formik.errors[FieldsEnum.rate]}\n                            meta={formik.getFieldMeta(FieldsEnum.rate)}\n                            label={t('common:assets.activation.fields.rate.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <NumberInput\n                                    name={FieldsEnum.rate}\n                                    unitType={UnitTypeEnum.euroAbbreviation}\n                                    value={formik.values[FieldsEnum.rate]}\n                                    placeholder={t('common:assets.activation.fields.rate.placeholder')}\n                                    step={1}\n                                    onChange={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                />\n                            )}\n                        </FormikField>\n                    )}\n                </FieldGroup>\n            </div>\n            <ModalDialogActions\n                actions={[\n                    {\n                        children: t('common:error-modal.actions.cancel'),\n                        theme: ButtonThemeEnum.secondary,\n                        isDisabled: requestStatus.loading,\n                        testSelector: `${TEST_SELECTOR}_cancel`,\n                        onClick: () => {\n                            onCancel();\n                        },\n                    },\n                    {\n                        children: t('common:error-modal.actions.activate'),\n                        theme: ButtonThemeEnum.primary,\n                        isDisabled: requestStatus.loading,\n                        isLoading: requestStatus.loading,\n                        testSelector: `${TEST_SELECTOR}_ok`,\n                        type: 'submit',\n                    },\n                ]}\n            />\n        </form>\n    );\n};\n\nexport default ActivateAssetForm;\n","// extracted by mini-css-extract-plugin\nexport default {\"city\":\"CityName__city___bR8_l\",\"fadeIn\":\"CityName__fadeIn___qItOY\",\"blinking\":\"CityName__blinking___IMkS6\"};","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ContactSidebarHeader.scss';\nimport ColoredStatusLabel from 'common/components/ColoredStatusLabel/ColoredStatusLabel';\nimport { CompanyContactDetailsT } from 'common/store/members/models';\nimport { useTranslation } from 'react-i18next';\nimport { UserStatusEnum } from 'common/utils/api/models';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { isNonNil } from 'common/utils';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    contactDetails: CompanyContactDetailsT | null;\n};\n\nconst colorsMap: Record<UserStatusEnum, StyleGuideColorsEnum> = {\n    [UserStatusEnum.archived]: StyleGuideColorsEnum.tomatoRed,\n    [UserStatusEnum.active]: StyleGuideColorsEnum.mediumGreen,\n    [UserStatusEnum.pending]: StyleGuideColorsEnum.orange,\n};\n\nconst ContactSidebarHeader: React.FC<PropsT> = (props) => {\n    const { contactDetails } = props;\n\n    const { t } = useTranslation();\n\n    const fullName = [contactDetails?.name, contactDetails?.surname].filter(isNonNil).join(' ') || '—';\n\n    if (!contactDetails) {\n        return null;\n    }\n\n    return (\n        <div>\n            <div className={cx('full-name')}>{fullName}</div>\n            {contactDetails?.position && (\n                <ColoredStatusLabel\n                    className={cx('position')}\n                    label={t(`common:team-members.edit-contact.fields.position.labels.${contactDetails?.position}`)}\n                    color={colorsMap[contactDetails?.userStatus as UserStatusEnum] || StyleGuideColorsEnum.light}\n                />\n            )}\n        </div>\n    );\n};\n\nexport default ContactSidebarHeader;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst DeleteUserIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M2 1h18v18H2z\" />\n                <path\n                    fill={fillColor}\n                    d=\"M9.2 8.65c.747 0 1.35-.603 1.35-1.35 0-.747-.603-1.35-1.35-1.35-.747 0-1.35.603-1.35 1.35 0 .747.603 1.35 1.35 1.35zm3.852 4.644A7.64 7.64 0 009.2 12.25a7.64 7.64 0 00-3.852 1.044c-.126.072-.198.225-.198.378v.369h8.1v-.369a.456.456 0 00-.198-.378z\"\n                />\n                <path\n                    fill={strokeColor}\n                    d=\"M9.2 10.9a8.86 8.86 0 014.527 1.233c.549.315.873.918.873 1.548V15.4H3.8v-1.719c0-.63.324-1.233.873-1.548A8.86 8.86 0 019.2 10.9zm0 1.35c-1.35 0-2.682.36-3.852 1.053a.444.444 0 00-.198.378v.369h8.1v-.378c0-.153-.072-.306-.198-.378A7.64 7.64 0 009.2 12.25zm0-7.65c1.494 0 2.7 1.206 2.7 2.7 0 1.494-1.206 2.7-2.7 2.7a2.696 2.696 0 01-2.7-2.7c0-1.494 1.206-2.7 2.7-2.7zm9 3.375v1.35h-4.5v-1.35h4.5zm-9-2.025c-.747 0-1.35.603-1.35 1.35 0 .747.603 1.35 1.35 1.35.747 0 1.35-.603 1.35-1.35 0-.747-.603-1.35-1.35-1.35z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nDeleteUserIcon.displayName = 'DeleteUserIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default DeleteUserIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"widget\":\"TenderCalculator__widget___LVDNR\",\"widget__inner\":\"TenderCalculator__widget__inner___BXn_z\",\"widget__loader\":\"TenderCalculator__widget__loader___uXyaB\",\"row\":\"TenderCalculator__row___N8HBV\",\"row__column--action\":\"TenderCalculator__row__column--action___IcnK1\",\"row__column--status\":\"TenderCalculator__row__column--status___HPWtb\",\"message-inner\":\"TenderCalculator__message-inner___kGTMc\",\"message-column__text\":\"TenderCalculator__message-column__text___h7IVB\",\"message-column__action\":\"TenderCalculator__message-column__action___rqisO\",\"alert__inner-limited-text\":\"TenderCalculator__alert__inner-limited-text___vX1nF\",\"alert__control\":\"TenderCalculator__alert__control____3UMq\",\"alert__control-inner\":\"TenderCalculator__alert__control-inner___nA4E3\",\"fadeIn\":\"TenderCalculator__fadeIn___fx05V\",\"blinking\":\"TenderCalculator__blinking___nBgY2\"};","import * as React from 'react';\nimport NotificationLabel, {\n    NotificationLabelThemeEnum,\n} from 'common/components/notifications/NotificationLabel/NotificationLabel';\nimport { selectTrucksStats } from 'common/store/trucks/selectors';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport { useSelector } from 'react-redux';\n\ntype PropsT = {\n    className?: string;\n};\n\nconst ActiveFleetCount: React.FC<PropsT> = React.memo((props) => {\n    const { className } = props;\n\n    const { partnerId } = usePartnerContext();\n\n    const trucksStats = useSelector(selectTrucksStats(partnerId));\n\n    if (!trucksStats || !trucksStats?.actualTotalCount) {\n        return null;\n    }\n    return (\n        <NotificationLabel\n            className={className}\n            count={trucksStats?.actualTotalCount}\n            theme={NotificationLabelThemeEnum.charcoal}\n        />\n    );\n});\n\nexport default ActiveFleetCount;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './BrokerTourDetailsPage.scss';\n\nimport { useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport history, { goBackIfHasRePath } from 'common/utils/history';\nimport { BrokerToursRoutesEnum, routesEnum } from 'broker-admin/constants';\nimport GoogleMapContextProvider from 'common/components/maps/GoogleMapContextProvider/GoogleMapContextProvider';\nimport HorizontalColumnsLayout from 'common/layouts/HorizontalColumnsLayout/HorizontalColumnsLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport {\n    ApiCanBeCanceledUnavailableReasonT,\n    ApiTourStatusT,\n    PartnerTypeEnum,\n    TourStatusEnum,\n    ApiBrokerTourWaypointT,\n} from 'common/utils/api/models';\nimport TabGroupWithDivider from 'common/components/tabs/TabGroupWithDivider/TabGroupWithDivider';\nimport TabLabel from 'common/components/tabs/TabLabel/TabLabel';\nimport { TabsThemesEnum } from 'common/components/tabs/TabLabel/constants';\nimport SideBarLayoutContextWrap from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayoutContextWrap/SideBarLayoutContextWrap';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport SideBarHeaderRequestStatus from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarHeaderRequestStatus/SideBarHeaderRequestStatus';\nimport EntitySidebarSkeleton from 'common/components/entity-details/EntitySidebarSkeleton/EntitySidebarSkeleton';\nimport SideBarRequestStatus from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarRequestStatus/SideBarRequestStatus';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport { useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { logWarning } from 'common/utils/logger';\nimport SideBars from 'broker-admin/layouts/SideBars/SideBars';\nimport BrokerTourRouteMap from 'broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/BrokerTourRouteMap/BrokerTourRouteMap';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { stateMachineRefreshChannel } from 'common/store/state-machine/channels';\nimport { ExtractRouterRouteParamsT } from 'common/utils/extract-router-route-params-t';\nimport { consistentStateMachineRefreshChannel } from 'common/store/consistent-state-machine/channels';\nimport { BrokerStopChangesSourceEnum } from 'broker-admin/store/broker-tour-edit/types';\nimport {\n    selectBrokerTourDetails,\n    selectBrokerTourDetailsRequestStatus,\n} from 'broker-admin/store/broker-tour-details/selectors';\nimport { fetchBrokerTourDetails } from 'broker-admin/store/broker-tour-details/actions';\nimport TourStatusPill from 'common/components/status-pill/TourStatusPill/TourStatusPill';\nimport BrokerTourTypePill from 'broker-admin/components/status-pill/BrokerTourTypePill/BrokerTourTypePill';\nimport BrokerTourDetails from 'broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/BrokerTourDetails/BrokerTourDetails';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\n\nimport { updateEntityStatus } from 'common/store/state-machine/slice';\nimport CancelBrokerTourConfirmation, {\n    CancelingBrokerTourConfirmationDataT,\n} from 'broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/dialogs/CancelBrokerTourConfirmation/CancelBrokerTourConfirmation';\nimport { useMemo } from 'react';\nimport { StateMachineEntityDescriptorT } from 'common/store/state-machine/models';\nimport { useStateMachine } from 'common/utils/hooks/useStateMachine';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport { papersEditRefreshChannel } from 'common/store/papers-edit/channels';\nimport DropdownControlOptionLabelWithTooltip from 'design-system/components/dropdowns/option/DropdownControlOptionLabelWithTooltip/DropdownControlOptionLabelWithTooltip';\nimport { updateSpotRefreshChannel } from 'broker-admin/store/spot/channels';\nimport { brokerTourDetailsRefreshChannel } from 'broker-admin/store/broker-tour-details/channels';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { selectBrokerTourEditUpdateRequestStatus } from 'broker-admin/store/broker-tour-edit/selectors';\nimport EditTourStopContactFooterContent from 'broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/footers/EditTourStopContactFooterContent/EditTourStopContactFooterContent';\nimport HighlightedEntityContext, {\n    HighlightedEntityContextProvider,\n} from 'common/components/status-machine/contexts/HighlightedEntityContext';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport ParanjaSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/ParanjaSideBarLayout/ParanjaSideBarLayout';\nimport SendingToSpotFooterContent from 'broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/footers/SendingToSpotFooterContent/SendingToSpotFooterContent';\nimport StatusFooterContent from 'broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/footers/StatusFooterContent/StatusFooterContent';\nimport { selectSpotUpdateRequestStatus } from 'broker-admin/store/spot/selectors';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport { getShipmentAnchor } from 'broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/BrokerTourDetails/ShipmentDetailsCard/utils';\nimport scrollIntoView from 'scroll-into-view';\nimport { ApiBrokerTourEnum } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { SwitchableView } from 'common/components/SwitchableView/SwitchableView';\nimport { SubjectLogs } from 'common/layouts/SubjectLogs/SubjectLogs';\nimport { LogsSwitchableViewLayout } from 'common/layouts/switchable-views/LogsSwitchableViewLayout/LogsSwitchableViewLayout';\nimport { BrokerAlertTypeEnum, BrokerAnyAlert } from 'broker-admin/components/toasts/models';\n\nconst canceledUnavailableReasonI18n: Record<ApiCanBeCanceledUnavailableReasonT, string> = {\n    ONLY_BROKER_CAN_CANCEL_TOUR: 'broker-tour-details.can-be-canceled-unavailable-reason.ONLY_BROKER_CAN_CANCEL_TOUR',\n    PAYLOAD_TOUR_CANT_BE_CANCELED:\n        'broker-tour-details.can-be-canceled-unavailable-reason.PAYLOAD_TOUR_CANT_BE_CANCELED',\n    NOT_IN_ASSIGNED_STATUS: 'broker-tour-details.can-be-canceled-unavailable-reason.NOT_IN_ASSIGNED_STATUS',\n    HAS_TO_IN_TRANSIT_IN_PROGRESS_OR_DONE:\n        'broker-tour-details.can-be-canceled-unavailable-reason.HAS_TO_IN_TRANSIT_IN_PROGRESS_OR_DONE',\n    ALREADY_CANCELED: 'broker-tour-details.can-be-canceled-unavailable-reason.ALREADY_CANCELED',\n};\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst BrokerTourDetailsPageContent: React.FC<PropsT> = React.memo(() => {\n    const params = useParams<ExtractRouterRouteParamsT<BrokerToursRoutesEnum.brokerTourDetails>>();\n    const { brokerTourId } = params;\n\n    const { t } = useTranslation();\n\n    const brokerTourDetails = useSelector(selectBrokerTourDetails(brokerTourId));\n    const brokerTourDetailsRequestStatus = useSelector(selectBrokerTourDetailsRequestStatus(brokerTourId));\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchBrokerTourDetails({ id: brokerTourId }));\n    }, [dispatch, brokerTourId]);\n\n    const [editingStopContact, setEditingStopContact] = React.useState<ApiBrokerTourWaypointT | null>(null);\n    const [editingStopContactSource, setEditingStopContactSource] = React.useState<BrokerStopChangesSourceEnum>(\n        BrokerStopChangesSourceEnum.waypoint,\n    );\n\n    const handleStartEditStopContact = React.useCallback(\n        (waypoint: ApiBrokerTourWaypointT, source: BrokerStopChangesSourceEnum) => {\n            setEditingStopContact(waypoint);\n            setEditingStopContactSource(source);\n        },\n        [],\n    );\n\n    const handleCloseEditStopContact = React.useCallback(() => {\n        setEditingStopContact(null);\n    }, []);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        dispatch(fetchBrokerTourDetails({ id: brokerTourId, options: { isForceUpdate: false } }));\n    }, [dispatch, brokerTourId]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const refreshPageHandler = React.useCallback(() => {\n        dispatch(fetchBrokerTourDetails({ id: brokerTourId, options: { isForceUpdate: true } }));\n    }, [dispatch, brokerTourId]);\n    useChannelSubscribe(stateMachineRefreshChannel, refreshPageHandler);\n    useChannelSubscribe(updateSpotRefreshChannel, refreshPageHandler);\n    useChannelSubscribe(consistentStateMachineRefreshChannel, refreshPageHandler);\n    useChannelSubscribe(papersEditRefreshChannel, refreshPageHandler);\n\n    const refreshBrokerTourDetailsPageHandler = React.useCallback(\n        (event: InferChannelEventT<typeof brokerTourDetailsRefreshChannel>) => {\n            if (event.brokerTourId === brokerTourId) {\n                dispatch(fetchBrokerTourDetails({ id: brokerTourId, options: { isForceUpdate: true } }));\n            }\n        },\n        [dispatch, brokerTourId],\n    );\n    useChannelSubscribe(brokerTourDetailsRefreshChannel, refreshBrokerTourDetailsPageHandler);\n\n    const editStopContactRequestStatus = useSelector(selectBrokerTourEditUpdateRequestStatus(brokerTourId));\n    React.useEffect(() => {\n        if (editStopContactRequestStatus.ok) {\n            handleCloseEditStopContact();\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [editStopContactRequestStatus.ok]);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        dispatch(fetchBrokerTourDetails({ id: brokerTourId, options: { isForceUpdate: true } }));\n    }, [dispatch, brokerTourId]);\n\n    const closeTourDetails = () => {\n        goBackIfHasRePath(() => {\n            history.push(routesEnum.brokerTours + history.location.search);\n        });\n    };\n\n    const [activeIndexTab, setActiveIndexTab] = React.useState<number>(0);\n\n    const tabs = [\n        {\n            label: t('broker-tour-details.tabs.map'),\n            node: (\n                <SwitchableView.Container>\n                    <SwitchableView.Tab title={t('common:views.map')}>\n                        <BrokerTourRouteMap key={brokerTourId} brokerTourDetails={brokerTourDetails} />\n                    </SwitchableView.Tab>\n                    <SwitchableView.Tab title={t('common:views.logs')}>\n                        <SubjectLogs subjectType=\"TOUR\" subjectId={brokerTourId}>\n                            {({ logs, requestStatus }) => (\n                                <LogsSwitchableViewLayout logs={logs} requestStatus={requestStatus} />\n                            )}\n                        </SubjectLogs>\n                    </SwitchableView.Tab>\n                </SwitchableView.Container>\n            ),\n        },\n        // {\n        //     label: t('broker-tour-details.tabs.activity'),\n        //     node: <div>activity</div>,\n        // },\n    ];\n\n    const [isActiveSendingToSpot, setIsActiveSendingToSpot] = React.useState(false);\n\n    const ref = React.useRef<HTMLDivElement>(null);\n    const { setHighlightedEntityId: setHighlightedShipmentId } = React.useContext(HighlightedEntityContext);\n    const [managedShipmentId, setManagedShipmentId] = React.useState<ShipmentIdT | null>(null);\n\n    const scrollToShipment = React.useCallback(\n        (shipmentId: ShipmentIdT) => {\n            const anchor = getShipmentAnchor(shipmentId);\n            const targetNode = ref.current?.querySelector(`[data-anchor=\"${anchor}\"]`);\n            if (!targetNode) {\n                return false;\n            }\n\n            setHighlightedShipmentId(shipmentId);\n            scrollIntoView(targetNode as HTMLElement, {\n                align: {\n                    top: 0.2,\n                },\n            });\n\n            return true;\n        },\n        [setHighlightedShipmentId],\n    );\n\n    const handleManagedShipmentRendered = React.useCallback(\n        (shipmentId: ShipmentIdT) => {\n            if (scrollToShipment(shipmentId)) {\n                setManagedShipmentId(null);\n            }\n        },\n        [scrollToShipment],\n    );\n\n    const spotRequestStatus = useSelector(selectSpotUpdateRequestStatus);\n    React.useEffect(() => {\n        if (spotRequestStatus.ok) {\n            setIsActiveSendingToSpot(false);\n        }\n    }, [spotRequestStatus.ok]);\n\n    const handleStartAssignment = React.useCallback(() => {\n        const brokerOrderId = brokerTourDetails?.order?.id;\n        if (!brokerOrderId || !brokerTourId) {\n            logWarning('failed to start assignment, empty brokerOrderId or brokerTourId');\n            return;\n        }\n\n        history.push(urlFactory.brokerOrderDetailsAssignments(brokerOrderId, brokerTourId, { fromBrokerTour: true }));\n    }, [brokerTourDetails?.order?.id, brokerTourId]);\n\n    const handleStartSendToSpot = React.useCallback(() => {\n        setIsActiveSendingToSpot(true);\n    }, []);\n\n    const handleCloseSendingToSpot = React.useCallback(() => {\n        setIsActiveSendingToSpot(false);\n    }, []);\n\n    const renderFooterNode = (): React.ReactNode => {\n        if (editingStopContact) {\n            return (\n                <FooterSideBarLayout isTransparent hasShadow>\n                    <EditTourStopContactFooterContent\n                        brokerTourId={brokerTourId}\n                        waypoint={editingStopContact}\n                        source={editingStopContactSource}\n                        onCancel={handleCloseEditStopContact}\n                    />\n                </FooterSideBarLayout>\n            );\n        }\n\n        if (isActiveSendingToSpot) {\n            return (\n                <>\n                    <ParanjaSideBarLayout />\n                    <FooterSideBarLayout isTransparent hasShadow>\n                        <SendingToSpotFooterContent\n                            brokerTourDetails={brokerTourDetails}\n                            tourId={brokerTourId}\n                            onCancel={handleCloseSendingToSpot}\n                        />\n                    </FooterSideBarLayout>\n                </>\n            );\n        }\n\n        const isPayloadTour =\n            Boolean(brokerTourDetails?.order?.id) && brokerTourDetails?.type === ApiBrokerTourEnum.shipment;\n\n        return (\n            <FooterSideBarLayout hasPaddings>\n                <StatusFooterContent\n                    brokerTourDetails={brokerTourDetails}\n                    isAvailableAssignment={isPayloadTour}\n                    onStartAssignment={handleStartAssignment}\n                    onStartSendToSpot={handleStartSendToSpot}\n                    isDisableAnyActions={brokerTourDetailsRequestStatus.loading}\n                    onManageShipment={(shipmentId) => {\n                        if (!scrollToShipment(shipmentId)) {\n                            setManagedShipmentId(shipmentId);\n                        }\n                    }}\n                />\n            </FooterSideBarLayout>\n        );\n    };\n\n    const descriptor = useMemo((): StateMachineEntityDescriptorT | null => {\n        if (!brokerTourId) {\n            return null;\n        }\n\n        return {\n            entityType: 'TOUR',\n            entityId: brokerTourId,\n        };\n    }, [brokerTourId]);\n\n    const { updateRequest } = useStateMachine<ApiTourStatusT>(descriptor, { isAllowFetch: false });\n\n    const cancelingBrokerTourConfirmation = useModalDialog<CancelingBrokerTourConfirmationDataT>();\n    const handleCancelBrokerTour = React.useCallback(\n        (data: CancelingBrokerTourConfirmationDataT) => {\n            if (!descriptor) {\n                return;\n            }\n\n            dispatch(\n                updateEntityStatus({\n                    descriptor,\n                    update: {\n                        entityType: 'TOUR',\n                        entityId: data.brokerTourId,\n                        status: TourStatusEnum.canceled,\n                    },\n                    successAlert: new BrokerAnyAlert({\n                        type: BrokerAlertTypeEnum.transportOrderCancelled,\n                        data: {},\n                    }),\n                }),\n            );\n        },\n        [descriptor, dispatch],\n    );\n\n    useCloseModalDialogAfterRequest(updateRequest, [cancelingBrokerTourConfirmation]);\n\n    const headerDropdownOptions = React.useMemo(() => {\n        const canBeCanceledUnavailableReason = brokerTourDetails?.canBeCanceledUnavailableReason || null;\n\n        const isDisabledTourCancel = !!canBeCanceledUnavailableReason;\n\n        return [\n            {\n                label: (\n                    <DropdownControlOptionLabelWithTooltip\n                        tooltipContent={\n                            canBeCanceledUnavailableReason\n                                ? t(canceledUnavailableReasonI18n[canBeCanceledUnavailableReason])\n                                : null\n                        }\n                        icon={<CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                        isDisabled={isDisabledTourCancel}\n                        label={t('broker-tour-details.header-actions.cancel')}\n                    />\n                ),\n                isDisabled: isDisabledTourCancel,\n                onSelect: (): void => {\n                    cancelingBrokerTourConfirmation.setData({\n                        brokerTourId,\n                    });\n                },\n            },\n        ];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [brokerTourDetails, brokerTourId, cancelingBrokerTourConfirmation?.setData, t]);\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const handleOpenUserDetails = (params: {\n        partnerType?: PartnerTypeEnum;\n        partnerId?: PartnerIdT;\n        userId: UserIdT | null;\n    }) => {\n        const { partnerId, partnerType, userId } = params;\n        if (!userId) {\n            logWarning('failed to open user details in broker tour details, empty user id');\n            return;\n        }\n\n        openLeftSidebar(\n            {\n                type: CommonSidebarsTypeEnum.contact,\n                partnerId,\n                partnerType,\n                userId,\n            },\n            {\n                isForceShowBackAction: true,\n            },\n        );\n    };\n\n    return (\n        <>\n            <GoogleMapContextProvider>\n                <PageTitle\n                    title={t('page-titles.broker-tour-details', {\n                        number: brokerTourDetails?.number || '',\n                    })}\n                />\n                <HorizontalColumnsLayout\n                    testSelector=\"broker-tour-details\"\n                    className={cx('wrap')}\n                    leftColumnTitle={t('broker-tour-details.main-tabs.details')}\n                    leftColumnNode={\n                        <SideBarLayoutContextWrap>\n                            <HeaderSideBarLayout>\n                                <HeaderSideBarContent\n                                    title={\n                                        brokerTourDetails\n                                            ? t('broker-tour-details.title', {\n                                                  number: brokerTourDetails?.number || '',\n                                              })\n                                            : null\n                                    }\n                                    afterTitleNode={\n                                        <>\n                                            <TourStatusPill\n                                                status={brokerTourDetails?.calculatedStatus}\n                                                isSymmetrical\n                                                className={cx('status')}\n                                            />\n                                            <BrokerTourTypePill type={brokerTourDetails?.type} isSymmetrical />\n                                        </>\n                                    }\n                                    onClose={closeTourDetails}\n                                    dropdownOptions={headerDropdownOptions}\n                                />\n                                <SideBarHeaderRequestStatus\n                                    requestStatus={brokerTourDetailsRequestStatus}\n                                    hasCachedData={Boolean(brokerTourDetails)}\n                                    isForceShowLoader={updateRequest.loading}\n                                />\n                            </HeaderSideBarLayout>\n                            <SideBarLayout>\n                                <div ref={ref}>\n                                    <SideBarRequestStatus\n                                        requestStatus={brokerTourDetailsRequestStatus}\n                                        hasCachedData={Boolean(brokerTourDetails)}\n                                        onRetry={handleRefreshOnError}\n                                        SkeletonComponent={EntitySidebarSkeleton}\n                                    >\n                                        {brokerTourDetails ? (\n                                            <BrokerTourDetails\n                                                brokerTourId={brokerTourId}\n                                                brokerTourDetails={brokerTourDetails}\n                                                managedShipmentId={managedShipmentId}\n                                                onManagedShipmentRendered={handleManagedShipmentRendered}\n                                                onOpenUserDetails={handleOpenUserDetails}\n                                                onStartEditStopContact={handleStartEditStopContact}\n                                            />\n                                        ) : null}\n                                    </SideBarRequestStatus>\n                                </div>\n                            </SideBarLayout>\n                            {renderFooterNode()}\n                        </SideBarLayoutContextWrap>\n                    }\n                    rightColumnTitle={t('broker-tour-details.main-tabs.info')}\n                    rightColumnNode={\n                        <div className={cx('tabs-wrap')}>\n                            <TabGroupWithDivider>\n                                {tabs.map((tab, tabIndex) => (\n                                    <TabLabel\n                                        key={tabIndex}\n                                        theme={TabsThemesEnum.light}\n                                        onClick={() => {\n                                            setActiveIndexTab(tabIndex);\n                                        }}\n                                        isActive={tabIndex === activeIndexTab}\n                                    >\n                                        {tab.label}\n                                    </TabLabel>\n                                ))}\n                            </TabGroupWithDivider>\n                            <div className={cx('tab')}>{tabs[activeIndexTab].node}</div>\n                        </div>\n                    }\n                />\n            </GoogleMapContextProvider>\n            <CancelBrokerTourConfirmation\n                requestStatus={updateRequest}\n                data={cancelingBrokerTourConfirmation.data}\n                onConfirm={handleCancelBrokerTour}\n                onCancel={cancelingBrokerTourConfirmation.onCancel}\n                onClose={cancelingBrokerTourConfirmation.onClose}\n            />\n            <SideBars />\n        </>\n    );\n});\n\nconst BrokerTourDetailsPage: React.FC<PropsT> = React.memo((props) => {\n    return (\n        <HighlightedEntityContextProvider>\n            <BrokerTourDetailsPageContent {...props} />\n        </HighlightedEntityContextProvider>\n    );\n});\n\nexport default BrokerTourDetailsPage;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    strokeColor: StyleGuideColorsEnum;\n    fillColor: StyleGuideColorsEnum;\n};\n\nconst LayoverIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path fill={fillColor} d=\"M12.7 14.631v1H7.3v-1h5.4zm0-9.031v1.331l-2.7 2.7-2.7-2.7V5.6h5.4z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M13.6 3.7H6.4v3.6L9.1 10l-2.7 2.7v3.6h7.2v-3.6L10.9 10l2.7-2.7V3.7zm-.9 9.369V15.4H7.3v-2.331l2.7-2.7 2.7 2.7zm0-6.138l-2.7 2.7-2.7-2.7V4.6h5.4v2.331z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nLayoverIcon.displayName = 'LayoverIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default LayoverIcon;\n\n/**\n *  @deprecated create/use ...Props class\n * */\nexport const getLayoverIconProps = (preset: 'regular'): Pick<PropsT, 'strokeColor' | 'fillColor'> => {\n    switch (preset) {\n        case 'regular':\n        default: {\n            return {\n                fillColor: StyleGuideColorsEnum.light,\n                strokeColor: StyleGuideColorsEnum.slate,\n            };\n        }\n    }\n};\n","import { RequestStatusT } from 'common/utils/request-status';\nimport { PartnerContractDetailsT } from './models';\n\nexport const FETCH_CARRIER_CONTRACT_DETAILS_REQUEST =\n    'common/carrier-contract-details/FETCH_CARRIER_CONTRACT_DETAILS_REQUEST';\nexport const FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_BEGIN =\n    'common/carrier-contract-details/FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_BEGIN';\nexport const FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_ERROR =\n    'common/carrier-contract-details/FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_ERROR';\nexport const FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_SUCCESS =\n    'common/carrier-contract-details/FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_SUCCESS';\n\nexport type CarrierContractStateT = {\n    data: PartnerContractDetailsT | null;\n    fetchRequest: RequestStatusT;\n};\n\nexport type CarrierContractsDetailStateT = Record<CarrierContractIdT, CarrierContractStateT>;\n\nexport type FetchCarrierContractDetailsActionT = {\n    type: typeof FETCH_CARRIER_CONTRACT_DETAILS_REQUEST;\n    contractId: CarrierContractIdT;\n    partnerId: PartnerIdT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchCarrierContractDetailsBeginActionT = {\n    type: typeof FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_BEGIN;\n    contractId: CarrierContractIdT;\n};\n\nexport type FetchCarrierContractDetailsSuccessActionT = {\n    type: typeof FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_SUCCESS;\n    contractId: CarrierContractIdT;\n    contractDetails: PartnerContractDetailsT | null;\n};\n\nexport type FetchCarrierContractDetailsErrorActionT = {\n    type: typeof FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_ERROR;\n    error: Error;\n    contractId: CarrierContractIdT;\n};\n\nexport type CarrierContractDetailsActionT =\n    | FetchCarrierContractDetailsActionT\n    | FetchCarrierContractDetailsBeginActionT\n    | FetchCarrierContractDetailsSuccessActionT\n    | FetchCarrierContractDetailsErrorActionT;\n","// extracted by mini-css-extract-plugin\nexport default {\"notification\":\"NotificationToastsManager__notification___xui_O\",\"fadeIn\":\"NotificationToastsManager__fadeIn___wblog\",\"blinking\":\"NotificationToastsManager__blinking___yNUMt\"};","import { FAKE_EXTERNAL_BUSINESS_PARTNER_ID, FieldsEnum, FormValuesT } from './constants';\nimport { PartnerDetailsT } from 'broker-admin/store/partner/details/models';\nimport { isNonNil } from 'common/utils';\n\nconst getInitialValues = (partnerDetails: PartnerDetailsT | null): FormValuesT => {\n    return {\n        [FieldsEnum.name]: partnerDetails?.name || '',\n        [FieldsEnum.externalBusinessPartnerId]: FAKE_EXTERNAL_BUSINESS_PARTNER_ID,\n        [FieldsEnum.teamIds]: partnerDetails?.teams?.map((team) => team.id) || [],\n        [FieldsEnum.mainContactId]: partnerDetails?.mainContactInfo?.id || null,\n        [FieldsEnum.mainContactFullName]:\n            (partnerDetails?.mainContactInfo &&\n                [partnerDetails?.mainContactInfo?.name, partnerDetails?.mainContactInfo?.surname]\n                    .filter(isNonNil)\n                    .join(' ')) ||\n            null,\n\n        [FieldsEnum.legalAddressCountryCode]: partnerDetails?.legalAddress?.country || null,\n        [FieldsEnum.legalAddressZipCode]: partnerDetails?.legalAddress?.zipCode || '',\n        [FieldsEnum.legalAddressCity]: partnerDetails?.legalAddress?.city || '',\n        [FieldsEnum.legalAddressStreet1]: partnerDetails?.legalAddress?.street1 || '',\n        [FieldsEnum.legalAddressStreet2]: partnerDetails?.legalAddress?.street2 || '',\n\n        [FieldsEnum.postalAddressCountryCode]: partnerDetails?.postalAddress?.country || null,\n        [FieldsEnum.postalAddressZipCode]: partnerDetails?.postalAddress?.zipCode || '',\n        [FieldsEnum.postalAddressCity]: partnerDetails?.postalAddress?.city || '',\n        [FieldsEnum.postalAddressStreet1]: partnerDetails?.postalAddress?.street1 || '',\n        [FieldsEnum.postalAddressStreet2]: partnerDetails?.postalAddress?.street2 || '',\n\n        [FieldsEnum.billingAddressCountryCode]: partnerDetails?.billingAddress?.country || null,\n        [FieldsEnum.billingAddressZipCode]: partnerDetails?.billingAddress?.zipCode || '',\n        [FieldsEnum.billingAddressCity]: partnerDetails?.billingAddress?.city || '',\n        [FieldsEnum.billingAddressStreet1]: partnerDetails?.billingAddress?.street1 || '',\n        [FieldsEnum.billingAddressStreet2]: partnerDetails?.billingAddress?.street2 || '',\n        [FieldsEnum.billingEmail]: partnerDetails?.billingEmail || '',\n    };\n};\n\nexport default getInitialValues;\n","import { StatisticSourceEnum } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { CountryCodeT } from 'common/utils/api/models';\n\nexport enum FieldsEnum {\n    dataSource = 'data-source',\n    fromCountryCode = 'from-country-code',\n    fromZipCode = 'from-zip-code',\n    toCountryCode = 'to-country-code',\n    toZipCode = 'to-zip-code',\n    shipperId = 'shipper-id',\n    shipperName = 'shipper-name',\n    carrierId = 'carrier-id',\n    carrierName = 'carrier-name',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.dataSource]: StatisticSourceEnum;\n    [FieldsEnum.fromCountryCode]: CountryCodeT | null;\n    [FieldsEnum.fromZipCode]: string;\n    [FieldsEnum.toCountryCode]: CountryCodeT | null;\n    [FieldsEnum.toZipCode]: string;\n    [FieldsEnum.shipperId]: CompanyIdT | null;\n    [FieldsEnum.shipperName]: string | null;\n    [FieldsEnum.carrierId]: CompanyIdT | null;\n    [FieldsEnum.carrierName]: string | null;\n};\n\nexport const disableCompaniesDataSourceSet = new Set([StatisticSourceEnum.import]);\n","import * as React from 'react';\nimport isNumber from 'lodash/isNumber';\n\ntype PropsT = {\n    map: MapT | null | undefined;\n    maps: MapsT | null | undefined;\n    zoom: number | null | undefined;\n};\n\nconst MapZoom: React.FC<PropsT> = React.memo((props) => {\n    const { map, maps, zoom } = props;\n\n    React.useEffect(() => {\n        if (!maps || !map || !isNumber(zoom)) {\n            return;\n        }\n\n        map.setZoom(zoom);\n    }, [map, maps, zoom]);\n\n    return null;\n});\n\nexport default MapZoom;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './CheckboxTree.scss';\nimport cs from 'classnames';\nimport difference from 'lodash/difference';\nimport uniq from 'lodash/uniq';\nimport Checkbox from '../Checkbox/Checkbox';\n\nconst cx = classNames.bind(styles);\n\nexport type TreeNodeT<T> = {\n    label: React.ReactNode;\n    value?: T;\n    children: Array<TreeNodeT<T>>;\n};\n\ntype ExtendedTreeNodeT<T> = TreeNodeT<T> & {\n    allSubValues: Array<T>;\n};\n\nexport type PropsT<T> = {\n    className?: string;\n    trees: Array<TreeNodeT<T>>;\n    values: Array<T>;\n    isFullWidth?: boolean;\n    onChange: (values: Array<T>, event: React.MouseEvent<HTMLDivElement>) => void;\n    isGroup?: boolean;\n};\n\nexport const getAllSubValues = <T,>(treeNodes: Array<TreeNodeT<T>>): Array<T> => {\n    return treeNodes.reduce<Array<T>>((result, treeNode) => {\n        const allSubValues = getAllSubValues(treeNode.children);\n\n        const currentValue: T[] = [];\n        if (treeNode.value !== undefined) {\n            currentValue.push(treeNode.value);\n        }\n\n        return [...result, ...currentValue, ...allSubValues];\n    }, []);\n};\n\nconst addAllSubValuesForTreeNode = <T,>(treeNode: TreeNodeT<T>): ExtendedTreeNodeT<T> => {\n    return {\n        ...treeNode,\n        allSubValues: getAllSubValues<T>([treeNode]),\n        children: treeNode.children.map(addAllSubValuesForTreeNode),\n    };\n};\n\nconst addAllSubValues = <T,>(trees: Array<TreeNodeT<T>>): Array<ExtendedTreeNodeT<T>> => {\n    return trees.map(addAllSubValuesForTreeNode);\n};\n\nconst CheckboxTree = <ValueT,>(props: PropsT<ValueT>): React.ReactElement => {\n    const { trees, values, onChange, isFullWidth, isGroup, className } = props;\n\n    const preparedValues = React.useMemo(() => {\n        return addAllSubValues(trees);\n    }, [trees]);\n\n    return (\n        <div className={cs(cx('wrap'), className)} data-test-selector=\"checkbox-list\">\n            {preparedValues.map((treeNode, treeIndex) => {\n                const valuesSet = new Set(values);\n\n                const isChecked = treeNode.allSubValues.every((subValue) => valuesSet.has(subValue));\n                const isIndeterminated =\n                    !isChecked && treeNode.allSubValues.some((subValue) => valuesSet.has(subValue));\n\n                return (\n                    <div\n                        className={cx('group', {\n                            'group--isGroup': !!isGroup,\n                        })}\n                        key={treeIndex}\n                    >\n                        <Checkbox\n                            className={cx('checkbox')}\n                            checked={isChecked}\n                            indeterminated={isIndeterminated}\n                            label={treeNode.label}\n                            isFullWidth={isFullWidth}\n                            onChange={(checked, event) => {\n                                let newValue = [...values];\n                                if (checked) {\n                                    newValue = uniq([...values, ...treeNode.allSubValues]);\n                                } else {\n                                    newValue = difference(values, treeNode.allSubValues);\n                                }\n                                onChange(newValue, event);\n                            }}\n                        />\n                        <CheckboxTree\n                            isGroup\n                            trees={treeNode.children}\n                            values={values}\n                            onChange={onChange}\n                            isFullWidth={isFullWidth}\n                        />\n                    </div>\n                );\n            })}\n        </div>\n    );\n};\n\nexport default React.memo(CheckboxTree) as typeof CheckboxTree;\n","export enum BidsSortEnum {\n    date = 'date',\n    price = 'price',\n}\n\nexport enum BidsQuickFilterEnum {\n    accepted = 'accepted',\n    match = 'match',\n    inactive = 'inactive',\n}\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    CREATE_PARTNER_REQUEST,\n    CreatePartnerRequestActionT,\n    CREATE_FROM_EXTERNAL_PLATFORM_PARTNER_REQUEST,\n    CreateFromExternalPlatformPartnerActionT,\n    FETCH_PARTNERS_PAGE_REQUEST,\n    FetchPartnersPageActionT,\n    INVITE_PARTNER_REQUEST,\n    InvitePartnerRequestActionT,\n} from './types';\nimport {\n    createPartnerRequestBegin,\n    createPartnerRequestError,\n    createPartnerRequestSuccess,\n    fetchPartnersPageBegin,\n    fetchPartnersPageError,\n    fetchPartnersPageSuccess,\n    resetPartners,\n} from './actions';\nimport { selectPartnersPages, selectPartnersQuery } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { checkIsSameQuery, checkShouldEmitChangePage } from 'common/utils/pagination/utils';\nimport { partnersPaginationChannel, partnersRefreshChannel } from 'broker-admin/store/partners/channels';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { BrokerAlertTypeEnum, BrokerAnyAlert } from 'broker-admin/components/toasts/models';\n\nfunction* fetchPartnersSaga(action: FetchPartnersPageActionT): WrapGeneratorT<void> {\n    const { pageNumber, query, options } = action;\n\n    const prevQuery: ReturnType<typeof selectPartnersQuery> = yield select(selectPartnersQuery);\n    const pages: ReturnType<typeof selectPartnersPages> = yield select(selectPartnersPages);\n    const isSameQuery = checkIsSameQuery(query, prevQuery);\n    const isNeedRequest = checkNeedRequest(pages[pageNumber]?.requestStatus, options);\n    if (isSameQuery && !isNeedRequest) {\n        return;\n    }\n    if (!isSameQuery) {\n        yield put(resetPartners({ savingPageNumber: pageNumber }));\n    }\n\n    yield put(fetchPartnersPageBegin(query, pageNumber));\n\n    const [error, response]: ReturnApiT<typeof brokerTranziitApi.fetchPartnersPage> =\n        yield brokerTranziitApi.fetchPartnersPage({\n            ...query,\n            page: pageNumber,\n        });\n\n    if (error) {\n        yield put(fetchPartnersPageError(query, pageNumber, error));\n        return;\n    }\n\n    yield put(fetchPartnersPageSuccess(query, pageNumber, response));\n\n    checkShouldEmitChangePage(pageNumber, response, partnersPaginationChannel);\n}\n\nfunction* invitePartnerSaga(action: InvitePartnerRequestActionT): WrapGeneratorT<void> {\n    const { data } = action;\n\n    yield put(createPartnerRequestBegin());\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.invitePartner> = yield brokerTranziitApi.invitePartner(data);\n    if (error) {\n        yield put(createPartnerRequestError(error));\n        return;\n    }\n\n    yield put(createPartnerRequestSuccess());\n    yield put(\n        addAlert(\n            new BrokerAnyAlert({\n                type: BrokerAlertTypeEnum.businessPartnerInvited,\n                data: {},\n            }),\n        ),\n    );\n\n    partnersRefreshChannel.emit({});\n}\n\nfunction* createPartnerSaga(action: CreatePartnerRequestActionT): WrapGeneratorT<void> {\n    const { data } = action;\n\n    yield put(createPartnerRequestBegin());\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.createPartner> = yield brokerTranziitApi.createPartner(data);\n    if (error) {\n        yield put(createPartnerRequestError(error));\n        return;\n    }\n\n    yield put(createPartnerRequestSuccess());\n\n    partnersRefreshChannel.emit({});\n}\n\nfunction* createFromExternalPlatformPartnerSaga(\n    action: CreateFromExternalPlatformPartnerActionT,\n): WrapGeneratorT<void> {\n    const { businessPartnerId } = action;\n\n    yield put(createPartnerRequestBegin());\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.createFromExternalPlatformPartner> =\n        yield brokerTranziitApi.createFromExternalPlatformPartner(businessPartnerId);\n    if (error) {\n        yield put(createPartnerRequestError(error));\n        return;\n    }\n\n    yield put(createPartnerRequestSuccess());\n\n    partnersRefreshChannel.emit({});\n}\n\nfunction* partnersSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_PARTNERS_PAGE_REQUEST, fetchPartnersSaga);\n    yield takeEvery(INVITE_PARTNER_REQUEST, invitePartnerSaga);\n    yield takeEvery(CREATE_PARTNER_REQUEST, createPartnerSaga);\n    yield takeEvery(CREATE_FROM_EXTERNAL_PLATFORM_PARTNER_REQUEST, createFromExternalPlatformPartnerSaga);\n}\n\nexport default partnersSaga;\n","import {\n    CarrierUtilizationResetActionT,\n    FETCH_UTILIZATION_REQUEST,\n    FETCH_UTILIZATION_REQUEST_BEGIN,\n    FETCH_UTILIZATION_REQUEST_ERROR,\n    FETCH_UTILIZATION_REQUEST_SUCCESS,\n    FetchCarrierUtilizationActionT,\n    FetchCarrierUtilizationBeginActionT,\n    FetchCarrierUtilizationErrorActionT,\n    FetchCarrierUtilizationSuccessActionT,\n    RESET,\n} from './types';\nimport { CarrierUtilizationT } from './models';\n\nexport const fetchCarrierUtilization = (ids: CarrierIdT[], date: string): FetchCarrierUtilizationActionT => ({\n    type: FETCH_UTILIZATION_REQUEST,\n    ids,\n    date,\n});\n\nexport const fetchCarrierUtilizationBegin = (): FetchCarrierUtilizationBeginActionT => ({\n    type: FETCH_UTILIZATION_REQUEST_BEGIN,\n});\n\nexport const fetchCarrierUtilizationError = (error: Error): FetchCarrierUtilizationErrorActionT => ({\n    type: FETCH_UTILIZATION_REQUEST_ERROR,\n    error,\n});\n\nexport const fetchCarrierUtilizationSuccess = (\n    ids: CarrierIdT[],\n    date: string,\n    utilizations: Array<CarrierUtilizationT>,\n): FetchCarrierUtilizationSuccessActionT => ({\n    type: FETCH_UTILIZATION_REQUEST_SUCCESS,\n    ids,\n    date,\n    utilizations,\n});\n\nexport const resetCarrierUtilization = (): CarrierUtilizationResetActionT => ({\n    type: RESET,\n});\n","import { CountryCodeT } from 'common/utils/api/models';\n\nexport enum FieldsEnum {\n    keyAccountManagerId = 'keyAccountManagerId',\n    keyAccountManagerName = 'keyAccountManagerName',\n    dispatcherId = 'dispatcherId',\n    dispatcherName = 'dispatcherName',\n    countryCode = 'countryCode',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.keyAccountManagerId]: string | null;\n    [FieldsEnum.keyAccountManagerName]: string | null;\n    [FieldsEnum.dispatcherId]: string | null;\n    [FieldsEnum.dispatcherName]: string | null;\n    [FieldsEnum.countryCode]: CountryCodeT | null;\n};\n","import React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './ListPageHeaderTabsLayout.scss';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    className?: string;\n};\n\nconst ListPageHeaderTabsLayout: React.FC<PropsT> = React.memo((props) => {\n    const { children, className } = props;\n\n    return <div className={cs(cx('content'), className)}>{children}</div>;\n});\n\nexport default ListPageHeaderTabsLayout;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './LocationCell.scss';\n\ntype PropsT = {\n    address: React.ReactNode;\n    time: React.ReactNode;\n    isSmallTimeFont?: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nconst LocationCell: React.FC<PropsT> = React.memo((props) => {\n    const { address, time, isSmallTimeFont } = props;\n\n    return (\n        <div>\n            <div className={cx('address')}>{address}</div>\n            <div className={cx('time', { 'time--isSmallFont': isSmallTimeFont })}>{time}</div>\n        </div>\n    );\n});\n\nexport default LocationCell;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"StatusCell__fadeIn___qbVYj\",\"blinking\":\"StatusCell__blinking___WkBIT\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ButtonGroupItem.scss';\nimport cs from 'classnames';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT<T> = {\n    className?: string;\n    isActive?: boolean;\n    testSelector?: string;\n    value: T;\n    onClick: (value: T) => void;\n    children?: React.ReactNode;\n};\n\nconst ButtonGroupItem = <T,>(props: PropsT<T>): React.ReactElement | null => {\n    const { testSelector, isActive, className, children, onClick, value } = props;\n\n    const [isHovered, setHovered] = React.useState<boolean>(false);\n\n    return (\n        <div\n            className={cs(\n                cx('button-group-item', {\n                    'button-group-item--isHovered': isHovered,\n                    'button-group-item--isActive': isActive,\n                }),\n                className,\n            )}\n            data-test-selector={`button-group-item-${testSelector || ''}`}\n            onMouseMove={() => {\n                if (!isHovered) {\n                    setHovered(true);\n                }\n            }}\n            onMouseLeave={() => {\n                if (isHovered) {\n                    setHovered(false);\n                }\n            }}\n            onClick={() => {\n                onClick(value);\n            }}\n        >\n            {children}\n        </div>\n    );\n};\n\nexport default React.memo(ButtonGroupItem) as typeof ButtonGroupItem;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { FETCH_RFQ_DETAILS_REQUEST, FetchRFQDetailsRequestActionT } from './types';\nimport { fetchRFQDetailsBegin, fetchRFQDetailsError, fetchRFQDetailsSuccess } from './actions';\nimport { selectRFQDetailsRequestStatus } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { CompanyTypeEnum } from 'common/constants';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport shipperTranziitApi from 'shipper/utils/api/shipper-tranziit/api';\n\nconst getFetchRFQDetailsSaga = (companyType: CompanyTypeEnum) => {\n    return function* fetchRFQDetailsSaga(action: FetchRFQDetailsRequestActionT): WrapGeneratorT<void> {\n        const { id, options } = action;\n\n        const requestStatus: ReReturnT<typeof selectRFQDetailsRequestStatus> = yield select(\n            selectRFQDetailsRequestStatus(id),\n        );\n        if (!checkNeedRequest(requestStatus, options)) {\n            return;\n        }\n\n        yield put(fetchRFQDetailsBegin(id));\n\n        let detailsResponse: ReturnApiT<\n            typeof brokerTranziitApi.fetchRFQDetails | typeof shipperTranziitApi.fetchRFQDetails\n        >;\n        if (companyType === CompanyTypeEnum.broker) {\n            detailsResponse = yield brokerTranziitApi.fetchRFQDetails(id);\n        } else {\n            detailsResponse = yield shipperTranziitApi.fetchRFQDetails(id);\n        }\n        const [rfqDetailsError, rfqDetailsData] = detailsResponse;\n        if (rfqDetailsError) {\n            yield put(fetchRFQDetailsError(id, rfqDetailsError));\n            return;\n        }\n\n        let suggestedOfferResponse: ReturnApiT<\n            typeof brokerTranziitApi.getRFQSuggestedOffer | typeof shipperTranziitApi.getRFQSuggestedOffer\n        >;\n        if (companyType === CompanyTypeEnum.broker) {\n            suggestedOfferResponse = yield brokerTranziitApi.getRFQSuggestedOffer(id);\n        } else {\n            suggestedOfferResponse = yield shipperTranziitApi.getRFQSuggestedOffer(id);\n        }\n        const [suggestedOfferError, suggestedOfferData] = suggestedOfferResponse;\n        if (suggestedOfferError) {\n            yield put(fetchRFQDetailsError(id, suggestedOfferError));\n            return;\n        }\n\n        yield put(fetchRFQDetailsSuccess(id, rfqDetailsData, suggestedOfferData));\n    };\n};\n\nfunction* rfqDetailsSaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_RFQ_DETAILS_REQUEST, getFetchRFQDetailsSaga(companyType));\n}\n\nexport default rfqDetailsSaga;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"AssetTypeTabs__wrap___HB6BF\",\"fadeIn\":\"AssetTypeTabs__fadeIn___Ou_pw\",\"blinking\":\"AssetTypeTabs__blinking___TdQOh\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './NameCell.scss';\nimport { RuleT } from 'broker-admin/store/price-settings/rules/models';\nimport ColoredPriceRuleStatusLabel from 'broker-admin/components/status/ColoredPriceRuleStatusLabel/ColoredPriceRuleStatusLabel';\n\ntype PropsT = {\n    rule: RuleT;\n};\n\nconst cx = classNames.bind(styles);\n\nconst NameCell: React.FC<PropsT> = React.memo((props) => {\n    const { rule } = props;\n\n    return (\n        <div>\n            <div className={cx('name')}>{rule.name}</div>\n            <div className={cx('status')}>\n                <ColoredPriceRuleStatusLabel isActive={rule?.active} />\n            </div>\n        </div>\n    );\n});\n\nexport default NameCell;\n","import { RequestStatusT } from './request-status';\nimport { MS_IN_SEC } from './time';\nimport isNumber from 'lodash/isNumber';\nimport { checkIsUnauthorizedError } from 'common/utils/api/errors/api-request-error';\n\nconst DEFAULT_REQUEST_TTL = MS_IN_SEC;\nconst DEFAULT_ERROR_TTL = MS_IN_SEC;\n\nexport const checkIsExpiredRequest = (time: number, ttl = DEFAULT_REQUEST_TTL, now = Date.now()): boolean => {\n    return time + ttl < now;\n};\n\nexport const checkIsExpiredError = (time: number, ttl = DEFAULT_ERROR_TTL, now = Date.now()): boolean => {\n    return time + ttl < now;\n};\n\nconst checkNeedRequest = (\n    request: RequestStatusT | null | undefined,\n    options?: FetchOptionsT,\n    requestOkTTL?: number,\n    requestErrorTTL?: number,\n): boolean => {\n    if (!request) {\n        return true;\n    }\n\n    if (options?.isForceUpdate) {\n        return true;\n    }\n\n    const isUnauthorizedError = checkIsUnauthorizedError(request.error);\n    const errorTTL = isNumber(requestErrorTTL) ? requestErrorTTL : DEFAULT_ERROR_TTL;\n    if (request.error && !checkIsExpiredError(request.time, errorTTL) && !isUnauthorizedError) {\n        return false;\n    }\n\n    if (request.loading) {\n        return false;\n    }\n\n    const okTTL = isNumber(requestOkTTL) ? requestOkTTL : DEFAULT_REQUEST_TTL;\n    if (request.ok && !checkIsExpiredRequest(request.time, okTTL)) {\n        return false;\n    }\n\n    return true;\n};\n\nexport default checkNeedRequest;\n","import React from 'react';\nimport { GoogleMapsContextValueT } from '../utils/hooks/maps/useGoogleMapsContextValue';\n\nexport type GoogleMapContextT = {\n    googleMaps: GoogleMapsContextValueT;\n};\n\nconst defaultValue: GoogleMapContextT = {\n    googleMaps: {\n        map: null,\n        maps: null,\n        libraries: {},\n        set: async () => {},\n    },\n};\nconst GoogleMapContext = React.createContext<GoogleMapContextT>(defaultValue);\n\nexport default GoogleMapContext;\n","// extracted by mini-css-extract-plugin\nexport default {\"cluster\":\"MapCluster__cluster___or80r\",\"cluster--theme-charcoal\":\"MapCluster__cluster--theme-charcoal___M1t_L\",\"cluster--theme-slate\":\"MapCluster__cluster--theme-slate___NMtsS\",\"cluster--theme-light\":\"MapCluster__cluster--theme-light___WJW6C\",\"cluster--theme-brand-dark\":\"MapCluster__cluster--theme-brand-dark___Okqou\",\"fadeIn\":\"MapCluster__fadeIn___bJXe3\",\"blinking\":\"MapCluster__blinking___vYADa\"};","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './RuleImpact.scss';\nimport { UnitTypeEnum } from 'common/constants';\nimport UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\nimport { ApiRuleImpactStrategyTypeT, RuleImpactStrategyEnum } from 'broker-admin/utils/api/broker-tranziit/models';\n\ntype PropsT = {\n    className?: string;\n    value?: number;\n    impactStrategy?: ApiRuleImpactStrategyTypeT | 'EXACT';\n};\n\nconst cx = classNames.bind(styles);\n\nconst UNIT_BY_IMPACT_STRATEGY: Record<NonNullable<PropsT['impactStrategy']>, UnitTypeEnum> = {\n    [RuleImpactStrategyEnum.percent]: UnitTypeEnum.percentsAbbreviation,\n    [RuleImpactStrategyEnum.value]: UnitTypeEnum.euroAbbreviation,\n    EXACT: UnitTypeEnum.euroAbbreviation, // TODO remove deprecated\n};\n\nconst signedUnitTypesSet = new Set<NonNullable<PropsT['impactStrategy']>>([RuleImpactStrategyEnum.percent]);\n\nconst RuleImpact: React.FC<PropsT> = React.memo((props) => {\n    const { className, value, impactStrategy } = props;\n\n    if (value === undefined || impactStrategy === undefined) {\n        return null;\n    }\n\n    const sign = value > 0 ? '+ ' : '- ';\n    const absValue = Math.abs(value);\n    const isShowSign = signedUnitTypesSet.has(impactStrategy);\n\n    return (\n        <span className={cs(cx('rule'), className)}>\n            {isShowSign ? sign : null}\n            <UnitTypeCount count={absValue} type={UNIT_BY_IMPACT_STRATEGY[impactStrategy]} />\n        </span>\n    );\n});\n\nexport default RuleImpact;\n","import { TFunction } from 'i18next';\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkMaxValue, checkMinValue, checkNotEmpty, checkStrictMaxValue } from 'common/utils/form-validators';\nimport { PricingTypeEnum } from 'broker-admin/store/price-settings/system-settings/models';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport isNumber from 'lodash/isNumber';\n\nconst REQUIRED_FIELDS = [\n    FieldsEnum.minimalShipmentCost,\n    FieldsEnum.driverSalaryPerHour,\n    FieldsEnum.minimalCostForTruck,\n    FieldsEnum.minimalCostForTrailer,\n    FieldsEnum.layoverCostPerHour,\n    FieldsEnum.layoverCostPerDay,\n    FieldsEnum.layoverFreeHours,\n    FieldsEnum.urgentOverPrice,\n    FieldsEnum.overPriceForEveryAdditionalStop,\n    FieldsEnum.timeSlotAppointmentCost,\n    FieldsEnum.costPerGreenShipment,\n    FieldsEnum.tranziitServiceFeeFixedMode,\n    FieldsEnum.tranziitServiceFeePercent,\n    FieldsEnum.tranziitServiceFeeFixed,\n    FieldsEnum.pricingStrategy,\n    FieldsEnum.truckConsumption,\n    FieldsEnum.reeferConsumption,\n    FieldsEnum.rateMatrixSpread,\n] as const;\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n\n        ...checkMinValue(t, [FieldsEnum.minimalShipmentCost], values, 0),\n        ...checkMaxValue(t, [FieldsEnum.minimalShipmentCost], values, 2000),\n\n        ...checkMinValue(t, [FieldsEnum.driverSalaryPerHour], values, 0),\n        ...checkMaxValue(t, [FieldsEnum.driverSalaryPerHour], values, 100),\n\n        ...checkMinValue(t, [FieldsEnum.layoverCostPerHour], values, 0),\n        ...checkMaxValue(t, [FieldsEnum.layoverCostPerHour], values, 1000),\n\n        ...checkMinValue(t, [FieldsEnum.minimalCostForTruck, FieldsEnum.minimalCostForTrailer], values, 0),\n        ...checkMaxValue(t, [FieldsEnum.minimalCostForTruck, FieldsEnum.minimalCostForTrailer], values, 2000),\n\n        ...checkMinValue(t, [FieldsEnum.layoverCostPerDay], values, 0),\n        ...checkMaxValue(t, [FieldsEnum.layoverCostPerDay], values, 10000),\n\n        ...checkMinValue(t, [FieldsEnum.layoverFreeHours], values, 1),\n        ...checkMaxValue(t, [FieldsEnum.layoverFreeHours], values, 72),\n\n        ...checkMinValue(t, [FieldsEnum.urgentOverPrice], values, 0),\n        ...checkMaxValue(t, [FieldsEnum.urgentOverPrice], values, 1000),\n\n        ...checkMinValue(t, [FieldsEnum.overPriceForEveryAdditionalStop], values, 0),\n        ...checkMaxValue(t, [FieldsEnum.overPriceForEveryAdditionalStop], values, 1000),\n\n        ...checkMinValue(t, [FieldsEnum.timeSlotAppointmentCost], values, 0),\n        ...checkMaxValue(t, [FieldsEnum.timeSlotAppointmentCost], values, 500),\n\n        ...checkMinValue(t, [FieldsEnum.costPerGreenShipment], values, 0),\n        ...checkMaxValue(t, [FieldsEnum.costPerGreenShipment], values, 500),\n\n        ...checkMinValue(t, [FieldsEnum.tranziitServiceFeeFixed], values, 0),\n        ...checkMaxValue(t, [FieldsEnum.tranziitServiceFeeFixed], values, 200),\n\n        ...checkMinValue(t, [FieldsEnum.tranziitServiceFeePercent], values, 0),\n        ...checkMaxValue(t, [FieldsEnum.tranziitServiceFeePercent], values, 20),\n\n        ...checkMinValue(t, [FieldsEnum.truckConsumption], values, 20),\n        ...checkMaxValue(t, [FieldsEnum.truckConsumption], values, 40),\n\n        ...checkMinValue(t, [FieldsEnum.reeferConsumption], values, 0),\n        ...checkMaxValue(t, [FieldsEnum.reeferConsumption], values, 10),\n\n        ...checkMinValue(t, [FieldsEnum.rateMatrixSpread], values, 0),\n        ...checkStrictMaxValue(t, [FieldsEnum.rateMatrixSpread], values, 100),\n\n        ...checkMinValue(t, [FieldsEnum.hvoPricePercent], values, 0),\n    };\n\n    const isDisabledPeriodicRulesForMonths = values[FieldsEnum.pricingStrategy] !== PricingTypeEnum.rateMatrix;\n    if (isDisabledPeriodicRulesForMonths && values[FieldsEnum.usePeriodicRulesForMonths]) {\n        errors[FieldsEnum.usePeriodicRulesForMonths] = t(\n            'price-settings.pricing-form.errors.auto-rules-for-months-only-for-price-matrix',\n        );\n    }\n\n    const layoverCostPerHour = parseSimpleNumber(values[FieldsEnum.layoverCostPerHour]);\n    const layoverCostPerDay = parseSimpleNumber(values[FieldsEnum.layoverCostPerDay]);\n    if (isNumber(layoverCostPerHour) && isNumber(layoverCostPerDay) && layoverCostPerHour >= layoverCostPerDay) {\n        errors[FieldsEnum.layoverCostPerDay] = t(\n            'price-settings.pricing-form.errors.layover-per-day-less-layover-per-hours',\n        );\n    }\n\n    return errors;\n};\n\nexport default validate;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    fillColor: StyleGuideColorsEnum;\n    className?: string;\n};\n\nconst FileIcon: React.FC<PropsT> = (props) => {\n    const { size, fillColor, className } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\" className={className}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <g fill={fillColor}>\n                    <g>\n                        <g>\n                            <path\n                                d=\"M13.979 2L4 2 2 2 2 18 4 18 4 4 12 4 12 8 16 8 16 18 18 18 18 6z\"\n                                transform=\"translate(-1110 -200) translate(1100 190) translate(10 10)\"\n                            />\n                        </g>\n                    </g>\n                </g>\n            </g>\n        </svg>\n    );\n};\n\nFileIcon.displayName = 'FileIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n};\n\nexport { storyProps };\nexport default FileIcon;\n","import { ContextRouteStopFakeIdT, ContextRouteStopHashT, RawDeadheadInitContextQueryT } from '../models';\nimport { getContextRouteStopAddressHash } from './get-context-route-stop-hash';\n\nexport const collectFakeIdByHashFromInitContextQuery = (\n    query: RawDeadheadInitContextQueryT,\n): Record<ContextRouteStopHashT, ContextRouteStopFakeIdT> => {\n    return (\n        query.stops?.reduce<Record<ContextRouteStopHashT, ContextRouteStopFakeIdT>>((acc, stop) => {\n            if (!stop.fakeId) {\n                return acc;\n            }\n\n            const hash: ContextRouteStopHashT = getContextRouteStopAddressHash({\n                latitude: stop.latitude,\n                longitude: stop.longitude,\n            });\n            acc[hash] = stop.fakeId;\n            return acc;\n        }, {}) || {}\n    );\n};\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ApiSpotBidStatusT, SpotBidStatusEnum } from 'common/utils/api/models';\n\ntype PropsT = {\n    className?: string;\n    status: ApiSpotBidStatusT | null | undefined;\n};\n\nexport const SPOT_BID_STATUS_T_MAP: Record<ApiSpotBidStatusT, string> = {\n    [SpotBidStatusEnum.new]: 'spot-bid-status.NEW',\n    [SpotBidStatusEnum.open]: 'spot-bid-status.OPEN',\n    [SpotBidStatusEnum.accepted]: 'spot-bid-status.ACCEPTED',\n    [SpotBidStatusEnum.rejected]: 'spot-bid-status.REJECTED',\n    [SpotBidStatusEnum.expired]: 'spot-bid-status.EXPIRED',\n    [SpotBidStatusEnum.won]: 'spot-bid-status.WON',\n    [SpotBidStatusEnum.lost]: 'spot-bid-status.LOST',\n    [SpotBidStatusEnum.missed]: 'spot-bid-status.MISSED',\n    [SpotBidStatusEnum.canceled]: 'spot-bid-status.CANCELED',\n};\n\nconst SpotBidStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return null;\n    }\n\n    return t(SPOT_BID_STATUS_T_MAP[status]);\n});\n\nexport default SpotBidStatus;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './ShipmentPicker.scss';\nimport { FieldsEnum, FormValuesT, RoutePointT, ShipmentFieldsEnum } from '../constants';\nimport { useTranslation } from 'react-i18next';\nimport Input from 'common/components/Input/Input';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport FormikConnectContextField from 'common/components/forms/FormikConnectContextField/FormikConnectContextField';\nimport TemperatureRangePicker from 'common/layouts/NewOrderPage/CargoDetailsForm/TemperatureRangePicker/TemperatureRangePicker';\nimport NumberInput from 'common/components/NumberInput/NumberInput';\nimport CargoUnitIcon, { CargoUnitIconProps } from 'common/icons/CargoUnitIcon';\nimport { StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport WeightIcon, { WeightIconProps } from 'common/icons/WeightIcon';\nimport { getWeightMask } from 'common/utils/input-masks';\nimport UnitType from 'common/components/units/UnitType/UnitType';\nimport { ApiTrailerDictTypeT, OrderCreationReservePointTypeEnum } from 'common/utils/api/models';\nimport { useMemo } from 'react';\nimport { formatAddressComponents } from 'common/utils/google-places';\nimport NumberIcon from 'common/icons/NumberIcon';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport noop from 'lodash/noop';\nimport { getFieldFormValue } from 'common/utils/form-values';\nimport { useFormikContext } from 'formik';\nimport keyBy from 'lodash/keyBy';\nimport isNumber from 'lodash/isNumber';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    shipmentIndex: number;\n    trailerType: ApiTrailerDictTypeT | null;\n    routePoints: Array<RoutePointT>;\n    closeOverloadingValidationAlertCallback: (() => void) | null;\n    closeNotUsedPointValidationAlertCallback: (() => void) | null;\n    closeTemperatureRangesValidationAlertCallback: (() => void) | null;\n};\n\ntype RoutePointOptionT = {\n    icon: React.ReactNode;\n    label: React.ReactNode;\n    value: RoutePointIdT | null;\n};\n\ntype UnitTypeOptionT = {\n    label: React.ReactNode;\n    value: UnitTypeEnum;\n};\n\nconst AVAILABLE_UNIT_TYPES = [\n    UnitTypeEnum.eur1Pallets,\n    UnitTypeEnum.eur2Pallets,\n    UnitTypeEnum.eur6Pallets,\n    UnitTypeEnum.other,\n] as const;\n\nconst DEFAULT_MIN_VALUE_TEMPERATURE_RANGE = 2;\n\nconst ShipmentPicker: React.FC<PropsT> = React.memo((props) => {\n    const { shipmentIndex, className, trailerType, routePoints } = props;\n\n    const closeOverloadingValidationAlertCallback = props.closeOverloadingValidationAlertCallback || noop;\n\n    const closeNotUsedPointValidationAlertCallback = props.closeNotUsedPointValidationAlertCallback || noop;\n\n    const closeTemperatureRangesValidationAlertCallback = props.closeTemperatureRangesValidationAlertCallback || noop;\n\n    const { t } = useTranslation();\n\n    const isReefer = !!trailerType?.reefer;\n\n    const cargoUnitsCountFieldName =\n        `${FieldsEnum.shipments}.${shipmentIndex}.${ShipmentFieldsEnum.cargoUnitsCount}` as const;\n    const cargoUnitTypeFieldName =\n        `${FieldsEnum.shipments}.${shipmentIndex}.${ShipmentFieldsEnum.cargoUnitType}` as const;\n    const cargoWeightFieldName = `${FieldsEnum.shipments}.${shipmentIndex}.${ShipmentFieldsEnum.cargoWeight}` as const;\n    const cargoTemperatureRangeFieldName =\n        `${FieldsEnum.shipments}.${shipmentIndex}.${ShipmentFieldsEnum.cargoTemperatureRange}` as const;\n    const cargoDescriptionFieldName =\n        `${FieldsEnum.shipments}.${shipmentIndex}.${ShipmentFieldsEnum.cargoDescription}` as const;\n\n    const pickUpReferenceNumberFieldName =\n        `${FieldsEnum.shipments}.${shipmentIndex}.${ShipmentFieldsEnum.pickUpReferenceNumber}` as const;\n    const dropOffReferenceNumberFieldName =\n        `${FieldsEnum.shipments}.${shipmentIndex}.${ShipmentFieldsEnum.dropOffReferenceNumber}` as const;\n    const poNumberFieldName = `${FieldsEnum.shipments}.${shipmentIndex}.${ShipmentFieldsEnum.poNumber}` as const;\n\n    const weightMask = React.useMemo(() => getWeightMask(), []);\n\n    const unitOptions: UnitTypeOptionT[] = React.useMemo(\n        () =>\n            AVAILABLE_UNIT_TYPES.map((type) => {\n                return {\n                    value: type,\n                    label: <UnitType type={type} />,\n                };\n            }),\n        [],\n    );\n\n    const pickUpPointIdFieldName =\n        `${FieldsEnum.shipments}.${shipmentIndex}.${ShipmentFieldsEnum.pickUpPointId}` as const;\n\n    const dropOffPointIdFieldName =\n        `${FieldsEnum.shipments}.${shipmentIndex}.${ShipmentFieldsEnum.dropOffPointId}` as const;\n\n    const formik = useFormikContext<FormValuesT>();\n\n    const selectedPickUpId = getFieldFormValue(formik.values, pickUpPointIdFieldName);\n    const selectedDropOffId = getFieldFormValue(formik.values, dropOffPointIdFieldName);\n\n    const routePointsById = useMemo(() => {\n        return keyBy(routePoints, 'id');\n    }, [routePoints]);\n\n    const selectedPickUpRoutePoint = selectedPickUpId ? routePointsById[selectedPickUpId] : null;\n    const selectedDropOffRoutePoint = selectedDropOffId ? routePointsById[selectedDropOffId] : null;\n\n    const pickUpPointOptions = useMemo((): Array<RoutePointOptionT> => {\n        return routePoints\n            .filter((routePoint, index) => {\n                const isLastIndex = index === routePoints.length - 1;\n                if (isLastIndex) {\n                    return false;\n                }\n\n                const selectedDropOffIndex = selectedDropOffRoutePoint?.index;\n                if (isNumber(routePoint.index) && isNumber(selectedDropOffIndex)) {\n                    const isAllowed = routePoint.index < selectedDropOffIndex;\n                    if (!isAllowed) {\n                        return false;\n                    }\n                }\n\n                return routePoint.type === OrderCreationReservePointTypeEnum.shipment;\n            })\n            .map((routePoint): RoutePointOptionT => {\n                return {\n                    icon: <NumberIcon number={(routePoint.index || 0) + 1} fillColor={StyleGuideColorsEnum.charcoal} />,\n                    label: formatAddressComponents(routePoint.address),\n                    value: routePoint.id,\n                };\n            });\n    }, [routePoints, selectedDropOffRoutePoint]);\n\n    const dropOffPointOptions = useMemo((): Array<RoutePointOptionT> => {\n        return routePoints\n            .filter((routePoint, index) => {\n                const isFirstIndex = index === 0;\n                if (isFirstIndex) {\n                    return false;\n                }\n\n                const selectedPickUpIndex = selectedPickUpRoutePoint?.index;\n                if (isNumber(routePoint.index) && isNumber(selectedPickUpIndex)) {\n                    const isAllowed = selectedPickUpIndex < routePoint.index;\n                    if (!isAllowed) {\n                        return false;\n                    }\n                }\n\n                return routePoint.type === OrderCreationReservePointTypeEnum.shipment;\n            })\n            .map((routePoint): RoutePointOptionT => {\n                return {\n                    icon: <NumberIcon number={(routePoint.index || 0) + 1} fillColor={StyleGuideColorsEnum.charcoal} />,\n                    label: formatAddressComponents(routePoint.address),\n                    value: routePoint.id,\n                };\n            });\n    }, [routePoints, selectedPickUpRoutePoint]);\n\n    return (\n        <div className={className}>\n            <FieldGroup>\n                <FieldGroup isFullWidth className={cx('field', 'field--units')}>\n                    <FormikConnectContextField<FormValuesT, typeof cargoUnitsCountFieldName>\n                        name={cargoUnitsCountFieldName}\n                        label={t('common:new-order-form.fields.units.label')}\n                    >\n                        {(props, extendsProps) => (\n                            <div className={cx('combined-field')}>\n                                <NumberInput\n                                    className={cx('combined-field__full-width')}\n                                    inputClassName={cx('combined-field__input', {\n                                        'combined-field__input--unit-value': true,\n                                    })}\n                                    placeholder={t('common:new-order-form.fields.units.input.placeholder')}\n                                    name={extendsProps.name}\n                                    value={extendsProps.value}\n                                    onChange={(value) => {\n                                        closeOverloadingValidationAlertCallback();\n                                        props.onChange(value);\n                                    }}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                    renderLeftIcon={(iconMeta) => (\n                                        <CargoUnitIcon {...CargoUnitIconProps.getControlProps(iconMeta)} />\n                                    )}\n                                />\n                                <FormikConnectContextField<FormValuesT, typeof cargoUnitTypeFieldName>\n                                    name={cargoUnitTypeFieldName}\n                                    withoutLabelAndNotes\n                                >\n                                    {(props, extendsProps) => (\n                                        <DropdownInput<UnitTypeOptionT, UnitTypeOptionT['value']>\n                                            triggerClassName={cx('combined-field__input', {\n                                                'combined-field__input--unit-type': true,\n                                            })}\n                                            selectedValue={extendsProps.value}\n                                            options={unitOptions}\n                                            onSelect={(value) => {\n                                                closeOverloadingValidationAlertCallback();\n                                                props.onChange(value);\n                                            }}\n                                            renderOption={(option) =>\n                                                option ? (\n                                                    <DropdownControlOptionLabel withoutPaddings label={option.label} />\n                                                ) : null\n                                            }\n                                            getOptionValue={(option) => option.value}\n                                            overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                                            placeholder={t('common:new-order-form.fields.units.dropdown.placeholder')}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                            hasError={props.hasError}\n                                            hasWarning={props.hasWarning}\n                                            isInline\n                                        />\n                                    )}\n                                </FormikConnectContextField>\n                            </div>\n                        )}\n                    </FormikConnectContextField>\n                </FieldGroup>\n                <FormikConnectContextField<FormValuesT, typeof cargoWeightFieldName>\n                    name={cargoWeightFieldName}\n                    label={t('common:new-order-form.fields.cargo-weight.label')}\n                    className={cx('field', 'field--cargo-weight')}\n                >\n                    {(props, extendsProps) => (\n                        <NumberInput\n                            name={extendsProps.name}\n                            placeholder={t('common:new-order-form.fields.cargo-weight.placeholder')}\n                            unitType={UnitTypeEnum.kilogramsAbbreviation}\n                            renderLeftIcon={(iconMeta) => <WeightIcon {...WeightIconProps.getControlProps(iconMeta)} />}\n                            value={extendsProps.value}\n                            onChange={(value) => {\n                                closeOverloadingValidationAlertCallback();\n                                props.onChange(value);\n                            }}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            mask={weightMask}\n                            step={1}\n                        />\n                    )}\n                </FormikConnectContextField>\n            </FieldGroup>\n            {isReefer && (\n                <FormikConnectContextField<FormValuesT, typeof cargoTemperatureRangeFieldName>\n                    name={cargoTemperatureRangeFieldName}\n                    withoutLabel\n                    className={cx('field')}\n                >\n                    {(props, extendsProps) => (\n                        <TemperatureRangePicker\n                            className={cx('temperature')}\n                            minValueRange={DEFAULT_MIN_VALUE_TEMPERATURE_RANGE}\n                            name={extendsProps.name}\n                            value={extendsProps.value}\n                            onChange={(value) => {\n                                closeTemperatureRangesValidationAlertCallback();\n                                props.onChange(value);\n                            }}\n                            label={t('common:new-order-form.fields.temperature-range.label')}\n                        />\n                    )}\n                </FormikConnectContextField>\n            )}\n            <FormikConnectContextField<FormValuesT, typeof pickUpPointIdFieldName>\n                name={pickUpPointIdFieldName}\n                label={t('common:new-order-form.fields.pickup-point.label')}\n                className={cx('field', 'field--pickup-point')}\n            >\n                {(props, extendsProps) => (\n                    <DropdownInput<RoutePointOptionT, RoutePointOptionT['value']>\n                        selectedValue={extendsProps.value}\n                        options={pickUpPointOptions}\n                        onSelect={(value) => {\n                            closeOverloadingValidationAlertCallback();\n                            closeNotUsedPointValidationAlertCallback();\n                            props.onChange(value);\n                        }}\n                        renderOption={(option) =>\n                            option ? (\n                                <DropdownControlOptionLabel withoutPaddings icon={option.icon} label={option.label} />\n                            ) : null\n                        }\n                        getOptionValue={(option) => option.value}\n                        overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                        placeholder={t('common:new-order-form.fields.pickup-point.placeholder')}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                    />\n                )}\n            </FormikConnectContextField>\n            <FormikConnectContextField<FormValuesT, typeof dropOffPointIdFieldName>\n                name={dropOffPointIdFieldName}\n                label={t('common:new-order-form.fields.dropoff-point.label')}\n                className={cx('field', 'field--dropoff-point')}\n            >\n                {(props, extendsProps) => (\n                    <DropdownInput<RoutePointOptionT, RoutePointOptionT['value']>\n                        selectedValue={extendsProps.value}\n                        options={dropOffPointOptions}\n                        onSelect={(value) => {\n                            closeOverloadingValidationAlertCallback();\n                            closeNotUsedPointValidationAlertCallback();\n                            props.onChange(value);\n                        }}\n                        renderOption={(option) =>\n                            option ? (\n                                <DropdownControlOptionLabel withoutPaddings icon={option.icon} label={option.label} />\n                            ) : null\n                        }\n                        getOptionValue={(option) => option.value}\n                        overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                        placeholder={t('common:new-order-form.fields.dropoff-point.placeholder')}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                    />\n                )}\n            </FormikConnectContextField>\n            <FormikConnectContextField<FormValuesT, typeof cargoDescriptionFieldName>\n                name={cargoDescriptionFieldName}\n                label={t('common:new-order-form.fields.cargo-description.label')}\n                className={cx('field', 'field--cargo-description')}\n            >\n                {(props, extendsProps) => (\n                    <Input\n                        name={extendsProps.name}\n                        value={extendsProps.value}\n                        placeholder={t('common:new-order-form.fields.cargo-description.placeholder')}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                    />\n                )}\n            </FormikConnectContextField>\n            <FormikConnectContextField<FormValuesT, typeof poNumberFieldName>\n                name={poNumberFieldName}\n                label={t('common:new-order-form.fields.po-number.label')}\n                className={cx('field', 'field--po-number')}\n            >\n                {(props, extendsProps) => (\n                    <Input\n                        name={extendsProps.name}\n                        value={extendsProps.value}\n                        placeholder={t('common:new-order-form.fields.po-number.placeholder')}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                    />\n                )}\n            </FormikConnectContextField>\n            <FieldGroup spaces={1}>\n                <FormikConnectContextField<FormValuesT, typeof pickUpReferenceNumberFieldName>\n                    name={pickUpReferenceNumberFieldName}\n                    label={t('common:new-order-form.fields.puck-up-ref-number.label')}\n                    className={cx('field', 'field--puck-up-ref-number')}\n                >\n                    {(props, extendsProps) => (\n                        <Input\n                            name={extendsProps.name}\n                            value={extendsProps.value}\n                            placeholder={t('common:new-order-form.fields.puck-up-ref-number.placeholder')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikConnectContextField>\n                <FormikConnectContextField<FormValuesT, typeof dropOffReferenceNumberFieldName>\n                    name={dropOffReferenceNumberFieldName}\n                    label={t('common:new-order-form.fields.drop-off-ref-number.label')}\n                    className={cx('field', 'field--drop-off-ref-number')}\n                >\n                    {(props, extendsProps) => (\n                        <Input\n                            name={extendsProps.name}\n                            value={extendsProps.value}\n                            placeholder={t('common:new-order-form.fields.drop-off-ref-number.placeholder')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikConnectContextField>\n            </FieldGroup>\n        </div>\n    );\n});\n\nexport default ShipmentPicker;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './ErrorDetails.scss';\n\nimport { useTranslation } from 'react-i18next';\nimport { formatDate } from 'common/utils/time';\n\nimport { ErrorActionT } from 'common/store/errors/models';\nimport { checkIsFetchError } from 'common/utils/api/errors/fetch-error';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    errorLog: ErrorActionT;\n};\n\nconst ErrorDetails: React.FC<PropsT> = React.memo((props) => {\n    const { errorLog } = props;\n    const { t } = useTranslation();\n\n    return (\n        <div className={cx('content')}>\n            <div className={cx('time')}>{formatDate('HH:mm:ss - D MMMM YYYY', errorLog.timestamp)}</div>\n            <div>\n                <b>{t('common:error-modal.details.message')}:</b> {errorLog.error?.message}\n            </div>\n            {checkIsFetchError(errorLog.error) && (\n                <>\n                    <div className={cx('method')}>\n                        <b>{t('common:error-modal.details.method')}</b>: [{errorLog.error?.requestConfig.method}]{' '}\n                        {errorLog.error?.requestConfig.path}\n                    </div>\n                    <div>\n                        <b>{t('common:error-modal.details.request')}</b>:{' '}\n                        {JSON.stringify(errorLog.error?.requestConfig || '', null, 4)}\n                    </div>\n                    <div>\n                        <b>{t('common:error-modal.details.http-status-code')}</b>: {errorLog.error?.httpStatusCode}\n                    </div>\n                    <div className={cx('response')}>\n                        <b>{t('common:error-modal.details.response')}</b>:{' '}\n                        {JSON.stringify(errorLog.error?.response || '', null, 4)}\n                    </div>\n                </>\n            )}\n        </div>\n    );\n});\n\nexport default ErrorDetails;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"TeamDrivePill__fadeIn___t1tDr\",\"blinking\":\"TeamDrivePill__blinking___zm7Sq\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\nimport styles from './ProgressBar.scss';\nimport { useSelector } from 'react-redux';\nimport { selectOffersTasks } from 'common/store/order-creation/selectors';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n};\n\nconst ProgressBar: React.FC<PropsT> = (props) => {\n    const { className } = props;\n\n    const offersTasks = useSelector(selectOffersTasks);\n\n    const isShow = offersTasks?.total !== null && offersTasks?.count !== offersTasks?.total;\n    const percent = ((offersTasks?.count || 0) / (offersTasks?.total || 0)) * 100;\n    const limitedPercent = Math.min(percent, 100);\n\n    return (\n        <div className={cs(cx('wrap'), className)}>\n            {isShow && (\n                <>\n                    <div className={cx('line', 'line--isBackground')} />\n                    <div style={{ width: `${limitedPercent}%` }} className={cx('line', 'line--isProgress')} />\n                </>\n            )}\n        </div>\n    );\n};\n\nexport default ProgressBar;\n","import { CompanyTrucksStateT } from './types';\nimport { SharableTrucksStateT, SharableStateT } from '../models';\nimport { initialCompanyTrucksState } from './reducer';\n\nconst EMPTY_QUERY = {};\n\nconst selectCompanyState = (state: SharableTrucksStateT, companyId: CompanyIdT | null): CompanyTrucksStateT => {\n    if (!companyId) {\n        return initialCompanyTrucksState;\n    }\n\n    return state.trucks[companyId] || initialCompanyTrucksState;\n};\n\nexport const selectTrucksPages =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrucksStateT['pages'] =>\n        selectCompanyState(state, companyId).pages;\n\nexport const selectTrucksQuery =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrucksStateT['query'] =>\n        selectCompanyState(state, companyId).query || EMPTY_QUERY;\n\nexport const selectTrucksTotal =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrucksStateT['total'] =>\n        selectCompanyState(state, companyId).total;\n\nexport const selectTrucksByIds =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrucksStateT['byId'] =>\n        selectCompanyState(state, companyId).byId;\n\nexport const selectTrucksDetailsByIds =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrucksStateT['detailsById'] =>\n        selectCompanyState(state, companyId).detailsById;\n\nexport const selectDeleteTrucksRequestStatus =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrucksStateT['deleteRequest'] =>\n        selectCompanyState(state, companyId).deleteRequest;\n\nexport const selectAddTruckRequestStatus =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrucksStateT['addRequest'] =>\n        selectCompanyState(state, companyId).addRequest;\n\nexport const selectFetchTruckDetailsRequestStatus =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrucksStateT['fetchDetailsRequest'] =>\n        selectCompanyState(state, companyId).fetchDetailsRequest;\n\nexport const selectUpdateTruckRequestStatus =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrucksStateT['updateRequest'] =>\n        selectCompanyState(state, companyId).updateRequest;\n\nexport const selectFetchTrucksStatsRequestStatus =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrucksStateT['fetchStatsRequest'] =>\n        selectCompanyState(state, companyId).fetchStatsRequest;\n\nexport const selectTrucksStats =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrucksStateT['stats'] =>\n        selectCompanyState(state, companyId).stats;\n\nexport const selectTrucksExportXLSRequest =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrucksStateT['exportXLSRequest'] =>\n        selectCompanyState(state, companyId).exportXLSRequest;\n\nexport const selectTrucksImportXLSRequest =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrucksStateT['importXLSRequest'] =>\n        selectCompanyState(state, companyId).importXLSRequest;\n","// extracted by mini-css-extract-plugin\nexport default {\"id\":\"ShipperContractLaneId__id___A_StZ\",\"fadeIn\":\"ShipperContractLaneId__fadeIn___vjWTY\",\"blinking\":\"ShipperContractLaneId__blinking___H72ky\"};","import qs from 'qs';\nimport { CompanyTypeEnum } from 'common/constants';\nimport {\n    AssetRoutesEnum,\n    BrokerOrdersRoutesEnum,\n    PartnersDocumentsRoutesEnum,\n    PartnersRoutesEnum,\n    SettingsRoutesEnum,\n    SettingsRuleRoutesEnum,\n    ShipperContractDetailsEnum,\n    ShipperContractLaneRoutesEnum,\n    SpotRoutesEnum,\n    BrokerToursRoutesEnum,\n    routesEnum,\n    BrokerUsersRoutesEnum,\n    BrokerRFQRoutesEnum,\n} from 'broker-admin/constants';\nimport { generatePath } from 'react-router';\nimport { ApiDocumentTypeT, PartnerTypeEnum, ApiPartnerTypeT } from 'common/utils/api/models';\nimport { getRePath, RePathOptionsT } from 'common/utils/urls';\nimport { CommonSidebarsTypeEnum, SidebarQueryKeysEnum } from 'common/layouts/SideBars/models';\nimport { JSONArrayParam } from 'common/utils/query';\nimport { BrokerSidebarDataT } from 'broker-admin/layouts/SideBars/models';\nimport { BrokerSidebarsTypeEnum } from 'broker-admin/layouts/SideBars/constants';\nimport { DocumentDetailsSidebarDataT } from 'common/layouts/SideBars/contents/DocumentDetailsSidebarContent/models';\nimport { ContractDetailsSidebarDataT } from 'common/layouts/SideBars/contents/ContractDetailsSidebarContent/models';\nimport { formatPartnerTypeParam } from 'broker-admin/utils/urls-params';\nimport {\n    QueryKeysEnum as BrokerOrderAssignmentQueryKeysEnum,\n    QueryT as BrokerOrderAssignmentQueryT,\n} from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/query-models';\n\nexport const urlFactory = {\n    brokerOrderDetails: (brokerOrderId: BrokerOrderIdT, options?: RePathOptionsT) => {\n        return {\n            state: {\n                rePath: options?.rePath ?? getRePath(),\n            },\n            pathname: generatePath(BrokerOrdersRoutesEnum.brokerOrderDetails, {\n                brokerOrderId,\n            }),\n        };\n    },\n    brokerOrderRouteEdit: (brokerOrderId: BrokerOrderIdT) => {\n        return {\n            state: {\n                rePath: getRePath(),\n            },\n            pathname: generatePath(BrokerOrdersRoutesEnum.brokerOrderRouteEdit, {\n                brokerOrderId,\n            }),\n        };\n    },\n    brokerOrderDetailsAssignments: (\n        brokerOrderId: BrokerOrderIdT,\n        tourId: TourIdT,\n        options?: { fromBrokerTour?: boolean },\n    ) => {\n        const query: BrokerOrderAssignmentQueryT = {\n            [BrokerOrderAssignmentQueryKeysEnum.fromBrokerTour]: options?.fromBrokerTour,\n        };\n        return {\n            state: {\n                rePath: getRePath(),\n            },\n            pathname: generatePath(BrokerOrdersRoutesEnum.brokerOrderAssignment, {\n                brokerOrderId,\n                tourId,\n            }),\n            search: qs.stringify(query),\n        };\n    },\n    partnerDetails: (partnerType: ApiPartnerTypeT | `${CompanyTypeEnum}`, partnerId: CompanyIdT) => {\n        return {\n            pathname: generatePath(PartnersRoutesEnum.partnerDetails, {\n                partnerType: formatPartnerTypeParam(partnerType),\n                partnerId,\n            }),\n            state: {\n                rePath: getRePath(),\n            },\n        };\n    },\n    partners: () => {\n        return {\n            pathname: routesEnum.partners,\n        };\n    },\n    partnerTrucks: (partnerType: PartnerTypeEnum | CompanyTypeEnum, partnerId: CompanyIdT) => {\n        return {\n            pathname: generatePath(PartnersRoutesEnum.partnerTrucks, {\n                partnerType: formatPartnerTypeParam(partnerType),\n                partnerId,\n            }),\n        };\n    },\n    partnerTrailers: (partnerType: PartnerTypeEnum | CompanyTypeEnum, partnerId: CompanyIdT) => {\n        return {\n            pathname: generatePath(PartnersRoutesEnum.partnerTrailers, {\n                partnerType: formatPartnerTypeParam(partnerType),\n                partnerId,\n            }),\n        };\n    },\n    truckDetails: (partnerId: CompanyIdT, truckId: TruckIdT) => {\n        return {\n            pathname: generatePath(AssetRoutesEnum.truckDetails, {\n                partnerType: formatPartnerTypeParam(PartnerTypeEnum.carrier),\n                partnerId,\n                truckId,\n            }),\n            state: {\n                rePath: getRePath(),\n            },\n        };\n    },\n    trailerDetails: (partnerId: CompanyIdT, trailerId: TrailerIdT) => {\n        return {\n            pathname: generatePath(AssetRoutesEnum.trailerDetails, {\n                partnerType: formatPartnerTypeParam(PartnerTypeEnum.carrier),\n                partnerId,\n                trailerId,\n            }),\n            state: {\n                rePath: getRePath(),\n            },\n        };\n    },\n    partnerTransportOrderDetails: (\n        partnerType: PartnerTypeEnum | CompanyTypeEnum,\n        partnerId: CompanyIdT,\n        transportOrderId: TransportOrderIdT,\n    ) => {\n        return {\n            pathname: generatePath(PartnersRoutesEnum.partnerTransportOrderDetails, {\n                partnerType: formatPartnerTypeParam(partnerType),\n                partnerId,\n                transportOrderId,\n            }),\n            state: {\n                rePath: getRePath(),\n            },\n        };\n    },\n    partnerTransportOrders: (partnerType: PartnerTypeEnum | CompanyTypeEnum, partnerId: CompanyIdT) => {\n        return {\n            pathname: generatePath(PartnersRoutesEnum.partnerTransportOrders, {\n                partnerType: formatPartnerTypeParam(partnerType),\n                partnerId,\n            }),\n            state: {\n                rePath: getRePath(),\n            },\n        };\n    },\n    spotRequestDetails: (spotRequestId: SpotRequestIdT) => {\n        return {\n            pathname: generatePath(SpotRoutesEnum.spotRequestDetails, {\n                spotRequestId,\n            }),\n            state: {\n                rePath: getRePath(),\n            },\n        };\n    },\n    spotRequestsListWithDetails: (spotRequestId: SpotRequestIdT) => {\n        return `${SpotRoutesEnum.list}?${qs.stringify({\n            [SidebarQueryKeysEnum.leftSidebar]: JSONArrayParam.encode<BrokerSidebarDataT>([\n                {\n                    type: BrokerSidebarsTypeEnum.spotRequestDetails,\n                    id: spotRequestId,\n                },\n            ]),\n        })}`;\n\n        return {\n            pathname: generatePath(SpotRoutesEnum.spotRequestDetails, {\n                spotRequestId,\n            }),\n            state: {\n                rePath: getRePath(),\n            },\n        };\n    },\n    requiredPartnerDocuments: (partnerId: PartnerIdT, partnerType: PartnerTypeEnum) => {\n        return generatePath(PartnersDocumentsRoutesEnum.requiredPartnerDocuments, {\n            partnerType: formatPartnerTypeParam(partnerType),\n            partnerId,\n        });\n    },\n    optionalPartnerDocuments: (partnerId: PartnerIdT, partnerType: PartnerTypeEnum) => {\n        return generatePath(PartnersDocumentsRoutesEnum.optionalPartnerDocuments, {\n            partnerType: formatPartnerTypeParam(partnerType),\n            partnerId,\n        });\n    },\n    settingsRuleDetails: (ruleId: RuleIdT) => {\n        const pathname = generatePath(SettingsRuleRoutesEnum.ruleDetails, {\n            ruleId,\n        });\n\n        return {\n            pathname,\n            state: {\n                rePath: getRePath(),\n            },\n        };\n    },\n    settingsRuleCreation: () => {\n        const pathname = generatePath(SettingsRuleRoutesEnum.newRule);\n\n        return {\n            pathname,\n            state: {\n                rePath: getRePath(),\n            },\n        };\n    },\n    settingsRules: () => {\n        return generatePath(SettingsRoutesEnum.rules);\n    },\n    partnerDocumentDetails: (partnerId: PartnerIdT, partnerType: PartnerTypeEnum, documentType: ApiDocumentTypeT) => {\n        const partnerDocuments = generatePath(PartnersDocumentsRoutesEnum.requiredPartnerDocuments, {\n            partnerType: formatPartnerTypeParam(partnerType),\n            partnerId,\n        });\n\n        return `${partnerDocuments}?${qs.stringify({\n            [SidebarQueryKeysEnum.leftSidebar]: JSONArrayParam.encode<DocumentDetailsSidebarDataT>([\n                {\n                    type: CommonSidebarsTypeEnum.document,\n                    documentType,\n                    partnerId,\n                    partnerType,\n                    initIsEditing: false,\n                },\n            ]),\n        })}`;\n    },\n    partnerCarrierContacts: (partnerId: PartnerIdT, partnerType: PartnerTypeEnum) => {\n        return generatePath(PartnersDocumentsRoutesEnum.partnerCarrierContracts, {\n            partnerType: formatPartnerTypeParam(partnerType),\n            partnerId,\n        });\n    },\n    partnerShipperContacts: (partnerId: PartnerIdT, partnerType: PartnerTypeEnum) => {\n        return generatePath(PartnersDocumentsRoutesEnum.partnerShipperContracts, {\n            partnerType: formatPartnerTypeParam(partnerType),\n            partnerId,\n        });\n    },\n    partnerCarrierContactDetails: (\n        partnerId: PartnerIdT,\n        partnerType: PartnerTypeEnum,\n        contractId: CarrierContractIdT,\n    ) => {\n        const partnerContracts = generatePath(PartnersDocumentsRoutesEnum.partnerCarrierContracts, {\n            partnerType: formatPartnerTypeParam(partnerType),\n            partnerId,\n        });\n\n        return `${partnerContracts}?${qs.stringify({\n            [SidebarQueryKeysEnum.leftSidebar]: JSONArrayParam.encode<ContractDetailsSidebarDataT>([\n                {\n                    type: CommonSidebarsTypeEnum.carrierContract,\n                    contractId,\n                    initIsEditing: false,\n                },\n            ]),\n        })}`;\n    },\n    partnerShipperContactDetails: ({\n        partnerId,\n        partnerType,\n        shipperContractId,\n    }: {\n        partnerId: PartnerIdT;\n        partnerType: PartnerTypeEnum;\n        shipperContractId: ShipperContractIdT;\n    }) => {\n        const pathname = generatePath(ShipperContractDetailsEnum.details, {\n            partnerType: formatPartnerTypeParam(partnerType),\n            partnerId,\n            contractId: shipperContractId,\n        });\n\n        return {\n            pathname,\n            state: {\n                rePath: getRePath(),\n            },\n        };\n    },\n    partnerShipperContactLanes: ({\n        partnerId,\n        partnerType,\n        contractId,\n    }: {\n        partnerId: PartnerIdT;\n        partnerType: PartnerTypeEnum;\n        contractId: ShipperContractIdT;\n    }) => {\n        const pathname = generatePath(ShipperContractDetailsEnum.lanes, {\n            partnerType: formatPartnerTypeParam(partnerType),\n            partnerId,\n            contractId,\n        });\n\n        return {\n            pathname,\n            state: {\n                rePath: getRePath(),\n            },\n        };\n    },\n    newPartnerShipperContractLane: ({\n        partnerId,\n        partnerType,\n        contractId,\n    }: {\n        partnerId: PartnerIdT;\n        partnerType: PartnerTypeEnum;\n        contractId: ShipperContractIdT;\n    }) => {\n        const pathname = generatePath(ShipperContractLaneRoutesEnum.newLane, {\n            partnerId,\n            partnerType: formatPartnerTypeParam(partnerType),\n            contractId,\n        });\n\n        return {\n            pathname,\n            state: {\n                rePath: getRePath(),\n            },\n        };\n    },\n    partnerShipperContractLane: ({\n        partnerId,\n        partnerType,\n        contractId,\n        laneId,\n    }: {\n        partnerId: PartnerIdT;\n        partnerType: PartnerTypeEnum;\n        contractId: ShipperContractIdT;\n        laneId: ShipperContractLaneIdT;\n    }) => {\n        const pathname = generatePath(ShipperContractLaneRoutesEnum.laneDetails, {\n            partnerId,\n            partnerType: formatPartnerTypeParam(partnerType),\n            contractId,\n            laneId,\n        });\n\n        return {\n            pathname,\n            state: {\n                rePath: getRePath(),\n            },\n        };\n    },\n    brokerTourDeadheadCreation: () => {\n        return generatePath(BrokerToursRoutesEnum.brokerTourDeadheadCreation);\n    },\n    brokerTours: () => {\n        return generatePath(routesEnum.brokerTours);\n    },\n    brokerTourDetails: (brokerTourId: BrokerTourIdT, options?: RePathOptionsT) => {\n        return {\n            pathname: generatePath(BrokerToursRoutesEnum.brokerTourDetails, {\n                brokerTourId,\n            }),\n            state: {\n                rePath: options?.rePath ?? getRePath(),\n            },\n        };\n    },\n    brokerUsersTeams: () => {\n        return generatePath(BrokerUsersRoutesEnum.brokerTeams);\n    },\n    brokerUsersTeam: (teamId: TeamIdT) => {\n        return `${BrokerUsersRoutesEnum.brokerTeams}?${qs.stringify({\n            [SidebarQueryKeysEnum.leftSidebar]: JSONArrayParam.encode<BrokerSidebarDataT>([\n                {\n                    type: BrokerSidebarsTypeEnum.editBrokerTeamDetails,\n                    teamId,\n                },\n            ]),\n        })}`;\n    },\n    brokerUsers: () => {\n        return generatePath(routesEnum.brokerUsers);\n    },\n    brokerRFQDetails: (rfqId: RFQIdT) => {\n        return {\n            pathname: generatePath(BrokerRFQRoutesEnum.details, {\n                rfqId,\n            }),\n            state: {\n                rePath: getRePath(),\n            },\n        };\n    },\n    brokerRFQList: () => {\n        return BrokerRFQRoutesEnum.list;\n    },\n};\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from '../EditDriverSidebarContent/EditDriverFormContent/constants';\nimport {\n    checkBirthday,\n    checkNotEmpty,\n    checkDate,\n    checkPhoneNumber,\n    checkNotEmptyString,\n    checkIsPositiveNumberValue,\n} from 'common/utils/form-validators';\n\nconst REQUIRED_FIELDS = [FieldsEnum.firstName, FieldsEnum.lastName, FieldsEnum.ratePerKm, FieldsEnum.language] as const;\nconst BIRTHDAY_FIELDS = [FieldsEnum.birthday] as const;\nconst DATE_FIELDS = [FieldsEnum.birthday] as const;\nconst PHONE_FIELDS = [FieldsEnum.desktopPhone] as const;\nconst MEDIA_FIELDS = [FieldsEnum.whatsapp, FieldsEnum.viber, FieldsEnum.telegram, FieldsEnum.msTeams] as const;\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n        ...checkBirthday(t, BIRTHDAY_FIELDS, values),\n        ...checkDate(t, DATE_FIELDS, values),\n        ...checkPhoneNumber(t, PHONE_FIELDS, values),\n        ...checkNotEmptyString(t, MEDIA_FIELDS, values),\n        ...checkIsPositiveNumberValue(t, [FieldsEnum.ratePerKm], values),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { QueryFiltersT } from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/query-models';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst getInitialValues = (queryFilters: QueryFiltersT): FormValuesT => {\n    const values: FormValuesT = {\n        [FieldsEnum.name]: '',\n        [FieldsEnum.types]: [],\n\n        [FieldsEnum.trailerTypeIds]: [],\n\n        [FieldsEnum.partnerIds]: [],\n\n        [FieldsEnum.fromCountryCodes]: [],\n\n        [FieldsEnum.toCountryCodes]: [],\n\n        [FieldsEnum.createDates]: null,\n        [FieldsEnum.createdByUserId]: [],\n        [FieldsEnum.createdByUserName]: [],\n\n        [FieldsEnum.lastModifyDates]: null,\n        [FieldsEnum.lastModifyByUserId]: [],\n        [FieldsEnum.lastModifyByUserName]: [],\n\n        [FieldsEnum.priceComponent]: [],\n        [FieldsEnum.priceOperation]: [],\n\n        [FieldsEnum.validFrom]: null,\n        [FieldsEnum.validTill]: null,\n    };\n\n    return values;\n};\n\nexport default getInitialValues;\n","// extracted by mini-css-extract-plugin\nexport default {\"id\":\"NotificationLayout__id___WRuxd\",\"header\":\"NotificationLayout__header___OPGcb\",\"footer\":\"NotificationLayout__footer___G_NFU\",\"fadeIn\":\"NotificationLayout__fadeIn___SuQxU\",\"blinking\":\"NotificationLayout__blinking___GW0CI\"};","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport type AssignCarrierConfirmationDataT = {\n    spotRequestId: SpotRequestIdT;\n    selectedBidId: BidIdT;\n    carrierName: string;\n};\n\ntype PropsT = {\n    data: AssignCarrierConfirmationDataT | null;\n    onConfirmation: (data: AssignCarrierConfirmationDataT) => void;\n    requestStatus: RequestStatusT;\n    onCancel: () => void;\n    onClose: () => void;\n};\n\nconst TEST_SELECTOR = 'assign-carrier-confirmation';\n\nconst AssignCarrierConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, onConfirmation, onCancel, onClose, requestStatus } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: requestStatus.loading,\n                            onClick: () => {\n                                onCancel();\n                            },\n                        },\n                        {\n                            children: t('common:error-modal.actions.assign'),\n                            theme: ButtonThemeEnum.primary,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            isLoading: requestStatus.loading,\n                            isDisabled: requestStatus.loading,\n                            onClick: () => {\n                                onConfirmation(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.brandAccent} />}\n                    title={t('spot-request-details.dialogs.assign-carrier-confirmation.title', {\n                        carrierName: data?.carrierName,\n                    })}\n                    message={t('spot-request-details.dialogs.assign-carrier-confirmation.description')}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default AssignCarrierConfirmation;\n","import { BROKER_ADDITIONAL_SERVICES_TYPE, StyleGuideColorsEnum } from 'common/constants';\nimport * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport TimeWindowIcon from 'common/icons/TimeWindowIcon';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { ApiBrokerAdditionalServiceT, ApiCarrierAdditionalServiceT } from 'common/utils/api/models';\nimport { PriceDetailT } from 'design-system/components/PriceDetails/PriceDetails';\nimport AdditionalServiceFormatter from 'design-system/components/InfoTable/formatters/AdditionalServiceFormatter/AdditionalServiceFormatter';\nimport { checkIsBrokerAdditionalService, checkIsCarrierAdditionalService } from 'common/utils/additional-services';\nimport ExtraPointIcon from 'common/icons/ExtraPointIcon';\nimport { useCommonPriceDetails } from './common';\nimport { isNonNil } from 'common/utils';\n\nexport const useAdditionalServicesList = ({\n    additionalServiceItems,\n    isAllowBrokerServices,\n    isAllowCarrierServices,\n    leadingItems,\n    trailingItems,\n}: {\n    additionalServiceItems: Array<ApiBrokerAdditionalServiceT | ApiCarrierAdditionalServiceT> | null | undefined;\n    isAllowBrokerServices: boolean;\n    isAllowCarrierServices: boolean;\n    leadingItems?: Array<PriceDetailT | null>;\n    trailingItems?: Array<PriceDetailT | null>;\n}) => {\n    const { t } = useTranslation();\n\n    const commonPriceDetails = useCommonPriceDetails();\n\n    return React.useMemo(() => {\n        const items =\n            additionalServiceItems?.reduce<Array<PriceDetailT>>((acc, additionalService) => {\n                if (!isAllowBrokerServices && checkIsBrokerAdditionalService(additionalService)) {\n                    return acc;\n                }\n\n                if (!isAllowCarrierServices && checkIsCarrierAdditionalService(additionalService)) {\n                    return acc;\n                }\n\n                if (additionalService?.type === BROKER_ADDITIONAL_SERVICES_TYPE.URGENT_PICKUP) {\n                    acc.push({\n                        ...commonPriceDetails.urgentOverprice,\n                        price: additionalService.itemCost,\n                        quantity: additionalService.quantity,\n                    });\n                } else if (additionalService?.type === BROKER_ADDITIONAL_SERVICES_TYPE.LOW_EMISSIONS) {\n                    acc.push({\n                        ...commonPriceDetails.greenSurcharge,\n                        price: additionalService.itemCost,\n                        quantity: additionalService.quantity,\n                    });\n                } else if (\n                    additionalService?.type === BROKER_ADDITIONAL_SERVICES_TYPE.TIME_SLOTS_APPOINTMENT_BY_BROKER\n                ) {\n                    acc.push({\n                        iconNode: (\n                            <TimeWindowIcon\n                                strokeColor={StyleGuideColorsEnum.gray}\n                                fillColor={StyleGuideColorsEnum.light}\n                            />\n                        ),\n                        title: t('common:price-details.broker-appointment.title'),\n                        tooltipNode: (\n                            <TooltipContent theme={TooltipContentThemeEnum.black} width={150}>\n                                {t('common:price-details.broker-appointment.tooltip')}\n                            </TooltipContent>\n                        ),\n                        price: additionalService.itemCost,\n                        quantity: additionalService.quantity,\n                    });\n                } else if (additionalService?.type === BROKER_ADDITIONAL_SERVICES_TYPE.EXTRA_POINTS) {\n                    acc.push({\n                        iconNode: (\n                            <ExtraPointIcon\n                                strokeColor={StyleGuideColorsEnum.gray}\n                                fillColor={StyleGuideColorsEnum.light}\n                            />\n                        ),\n                        title: t('common:price-details.extra-points.title'),\n                        tooltipNode: (\n                            <TooltipContent theme={TooltipContentThemeEnum.black} width={150}>\n                                {t('common:price-details.extra-points.tooltip')}\n                            </TooltipContent>\n                        ),\n                        price: additionalService.itemCost,\n                        quantity: additionalService.quantity,\n                    });\n                } else {\n                    acc.push({\n                        iconNode: null,\n                        title: <AdditionalServiceFormatter type={additionalService.type} />,\n                        price: additionalService.itemCost,\n                        quantity: additionalService.quantity,\n                    });\n                }\n\n                return acc;\n            }, []) || [];\n\n        const preparedLeadingItems = leadingItems?.filter(isNonNil) || [];\n        if (preparedLeadingItems?.length) {\n            items.unshift(...preparedLeadingItems);\n        }\n\n        const preparedTrailingItems = trailingItems?.filter(isNonNil) || [];\n        if (preparedTrailingItems?.length) {\n            items.push(...preparedTrailingItems);\n        }\n\n        return items;\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [additionalServiceItems, leadingItems, trailingItems, commonPriceDetails]);\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"SpotRequestRoute__fadeIn___o5Lds\",\"blinking\":\"SpotRequestRoute__blinking___INPe5\"};","import { PartnerDetailsT } from 'broker-admin/store/partner/details/models';\n\nexport const normalizePartnerDetails = (partnerDetails: PartnerDetailsT | null): PartnerDetailsT | null => {\n    if (!partnerDetails) {\n        return null;\n    }\n\n    const teams = [...(partnerDetails.teams || [])];\n\n    teams.sort((teamA, teamB) => {\n        return teamA.id.localeCompare(teamB.id);\n    });\n\n    return {\n        ...partnerDetails,\n        // the backend can change the order without update\n        teams,\n    };\n};\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './FooterSideBarAlertsLayout.scss';\nimport FooterSideBarAlert from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarAlertsLayout/FooterSideBarAlert/FooterSideBarAlert';\nimport { useContext } from 'react';\nimport SideBarFooterAlertsContext from 'common/layouts/LeftMenuLayout/SideBarLayout/contexts/side-bar-footer-alerts-context';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst FooterSideBarAlertsLayout: React.FC<PropsT> = React.memo(() => {\n    const sideBarFooterAlertsContext = useContext(SideBarFooterAlertsContext);\n\n    if (!sideBarFooterAlertsContext?.alerts?.length) {\n        return null;\n    }\n\n    return (\n        <>\n            {sideBarFooterAlertsContext?.alerts?.map((alert) => (\n                <FooterSideBarAlert\n                    key={alert.id}\n                    className={cx('alert')}\n                    id={alert.id}\n                    theme={alert.theme}\n                    onCloseAlert={sideBarFooterAlertsContext?.onCloseAlert}\n                >\n                    {alert.content}\n                </FooterSideBarAlert>\n            ))}\n        </>\n    );\n});\n\nexport default FooterSideBarAlertsLayout;\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const transportOrdersRefreshChannel = new ViewEventChannel<{}>();\n\nexport const transportOrdersPaginationChannel = new ViewEventChannel<{\n    pageNumber: number;\n}>();\n","import { ApiCarrierTrailerDetailsT, ApiTrailerDetailsT } from 'common/store/trailers/models';\n\nexport const checkIsApiCarrierTrailerDetails = (\n    details: ApiTrailerDetailsT | null,\n): details is ApiCarrierTrailerDetailsT => {\n    return !!details;\n};\n","import * as React from 'react';\nimport { useMemo } from 'react';\nimport { FieldsEnum, RouteFormValuesT, RoutePointFieldsEnum } from '../constants';\nimport { useSelector } from 'react-redux';\nimport { ALL_DAY_RANGE, DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { RangeSelectorMarkT, RangeSelectorRangeT } from 'common/components/RangeSelector/RangeSelector';\nimport {\n    clearDateTimezone,\n    convertISODateToTimezone,\n    getDatesBetweenDates,\n    parseDateStringWithoutTimezone,\n} from 'common/utils/time';\nimport { selectTimeWindowQuantumMs } from 'common/store/settings/selectors';\nimport { useTranslation } from 'react-i18next';\nimport FormikConnectContextField from 'common/components/forms/FormikConnectContextField/FormikConnectContextField';\nimport GeoSuggest from 'common/components/GeoSuggest/GeoSuggest';\nimport TimeIntervalDurationPillLabel from '../TimeIntervalDurationPillLabel/TimeIntervalDurationPillLabel';\nimport { useFormikContext } from 'formik';\nimport { getFieldFormValue } from 'common/utils/form-values';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './DropPointPicker.scss';\nimport TimeWindowPicker from 'common/components/range-selectors/TimeWindowPicker/TimeWindowPicker';\nimport LinkDatePicker, {\n    DatePickerOverlayPositionEnum,\n} from 'design-system/components/date-pickers/LinkDatePicker/LinkDatePicker';\nimport { CalendarDateValueT } from 'design-system/components/Calendar/Calendar';\nimport moment from 'moment';\nimport isEqual from 'lodash/isEqual';\nimport CalendarAltIcon from 'common/icons/CalendarAltIcon';\n\nimport TimeIntervalLimitPillLabel from '../TimeIntervalLimitPillLabel/TimeIntervalLimitPillLabel';\nimport TimeWindowZoneText from '../TimeWindowZoneText/TimeWindowZoneText';\nimport {\n    convertReserveTimeWindowToRelativeTimeWindow,\n    setDateForReserveTimeWindow,\n    setTimeWindowForReserveTimeWindow,\n    suggestLastTimeWindowOfDay,\n} from 'common/layouts/NewOrderPage/ShipmentDetailsForm/utils';\nimport { OnChangeRouteStopAddressT, OnChangeRouteStopTimeWindowT } from '../models';\nimport { prepareLocation } from 'common/utils/prepare-location';\nimport {\n    DeadheadContextRangeT,\n    DeadheadRouteStopT,\n    DeadheadRouteStopTypeEnum,\n} from 'broker-admin/store/deadhead-creation/models';\nimport TruckDropOffIcon from 'common/icons/TruckDropOffIcon';\nimport LinkDropOffIcon from 'common/icons/LinkDropOffIcon';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    routePointIndex: number;\n    routeStop: DeadheadRouteStopT | null;\n\n    currentRange: DeadheadContextRangeT | null;\n    ranges: Array<DeadheadContextRangeT> | null;\n\n    onManualSelectLocation: (location: LocationT | null, routePointIndex: number) => void;\n    onChangeRoutePointAddress: OnChangeRouteStopAddressT;\n    onChangeRoutePointTimeWindow: OnChangeRouteStopTimeWindowT;\n};\n\nexport enum RangeIdSetEnum {\n    original = 'original',\n    urgentPickUp = 'urgent-pick-up',\n    regularPickUp = 'regular-pick-up',\n    teamDriveDropOff = 'team-drive-drop-off',\n    regularDropOff = 'regular-drop-off',\n    layoverDropOff = 'layover-drop-off',\n}\n\nconst surchargeRangeTypeSet = new Set<string>([\n    RangeIdSetEnum.urgentPickUp,\n    RangeIdSetEnum.teamDriveDropOff,\n    RangeIdSetEnum.layoverDropOff,\n]);\n\nexport type TimeWindowPickerSettingsT = {\n    availableValues: TimeWindowT;\n    timeWindowRanges: RangeSelectorRangeT[];\n    marks?: Array<RangeSelectorMarkT>;\n};\n\nexport const DEFAULT_TIME_WINDOW_PICKER_SETTINGS: TimeWindowPickerSettingsT = {\n    availableValues: ALL_DAY_RANGE,\n    timeWindowRanges: [],\n};\n\nconst DropPointPicker: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        routePointIndex,\n        currentRange,\n        ranges,\n        onManualSelectLocation,\n        onChangeRoutePointAddress,\n        onChangeRoutePointTimeWindow,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const formik = useFormikContext<RouteFormValuesT>();\n\n    const fakePointIdFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.fakePointId}` as const;\n    const locationFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.location}` as const;\n    const timeWindowFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.timeWindow}` as const;\n    const typeFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.type}` as const;\n\n    const selectedTimeWindow = getFieldFormValue(formik.values, timeWindowFieldName);\n    const type = getFieldFormValue(formik.values, typeFieldName);\n    const location = getFieldFormValue(formik.values, locationFieldName);\n    const fakePointId = getFieldFormValue(formik.values, fakePointIdFieldName);\n\n    const timeWindowQuantumMs = useSelector(selectTimeWindowQuantumMs);\n\n    const renderZoneTextNode = React.useCallback((currentRanges: RangeSelectorRangeT[] | null) => {\n        const surchargeCurrentRanges = currentRanges?.filter((range) => {\n            return range && surchargeRangeTypeSet.has(range.id);\n        });\n\n        if (!surchargeCurrentRanges?.length) {\n            return null;\n        }\n\n        return <TimeWindowZoneText currentRanges={surchargeCurrentRanges} />;\n    }, []);\n\n    const settings = React.useMemo<TimeWindowPickerSettingsT>(() => {\n        if (!selectedTimeWindow) {\n            return DEFAULT_TIME_WINDOW_PICKER_SETTINGS;\n        }\n\n        const baseDate = selectedTimeWindow.start;\n\n        const availableValuesStart = currentRange?.from || null;\n        if (!availableValuesStart) {\n            return DEFAULT_TIME_WINDOW_PICKER_SETTINGS;\n        }\n\n        const availableValuesEnd = currentRange?.toWithDropTruckTime || null;\n\n        const availableValues = suggestLastTimeWindowOfDay(\n            {\n                start: availableValuesStart,\n                end: availableValuesEnd,\n            },\n            baseDate,\n        );\n\n        const settings: TimeWindowPickerSettingsT = {\n            availableValues: convertReserveTimeWindowToRelativeTimeWindow(availableValues) || ALL_DAY_RANGE,\n            timeWindowRanges: [],\n            marks: [],\n        };\n\n        return settings;\n    }, [currentRange, selectedTimeWindow]);\n\n    const relativeTimeWindow = useMemo((): TimeWindowT | null => {\n        return convertReserveTimeWindowToRelativeTimeWindow(selectedTimeWindow);\n    }, [selectedTimeWindow]);\n\n    const handleChangeTimeWindow = (value: TimeWindowT) => {\n        const newTimeWindow = setTimeWindowForReserveTimeWindow(value, selectedTimeWindow);\n        const start = newTimeWindow?.start || null;\n        const end = newTimeWindow?.end || null;\n        if (!start || !end) {\n            return;\n        }\n\n        const preparedLocation = prepareLocation(location);\n        if (!preparedLocation) {\n            return;\n        }\n\n        formik.setFieldValue(timeWindowFieldName, newTimeWindow);\n\n        onChangeRoutePointTimeWindow(routePointIndex, fakePointId, {\n            timeWindow: {\n                start,\n                end,\n            },\n            address: preparedLocation,\n            routeStopType: type,\n        });\n    };\n\n    const selectedDate = React.useMemo(() => {\n        if (!selectedTimeWindow) {\n            return null;\n        }\n\n        return moment(clearDateTimezone(selectedTimeWindow.start)).toDate();\n    }, [selectedTimeWindow]);\n\n    const allowedDatesStartDate = React.useMemo(() => {\n        const fromDates =\n            ranges\n                ?.filter((range) => {\n                    return range?.from && !range?.toWithDropTruckTime;\n                })\n                .map((range) => {\n                    return range?.from;\n                }) || [];\n\n        fromDates.sort();\n\n        return fromDates?.[0] || null;\n    }, [ranges]);\n\n    const allowedDates = React.useMemo(() => {\n        return (\n            ranges?.flatMap((range) => {\n                if (!range?.from || !range?.toWithDropTruckTime) {\n                    return [];\n                }\n\n                return getDatesBetweenDates([range.from, range.toWithDropTruckTime]);\n            }) || []\n        );\n    }, [ranges]);\n\n    const handleChangeDate = (date: CalendarDateValueT): void => {\n        if (!date) {\n            formik.setFieldValue(timeWindowFieldName, null);\n            return;\n        }\n\n        const selectedRange = ranges?.find((range) => {\n            const parsedRangeFrom = parseDateStringWithoutTimezone(range.from);\n            const parsedRangeTo = parseDateStringWithoutTimezone(range.toWithDropTruckTime);\n\n            const selectedTimestamp = date.valueOf();\n\n            if (parsedRangeFrom && parsedRangeTo) {\n                return selectedTimestamp >= parsedRangeFrom && selectedTimestamp <= parsedRangeTo;\n            }\n\n            if (!parsedRangeTo && parsedRangeFrom) {\n                return selectedTimestamp >= parsedRangeFrom;\n            }\n\n            return false;\n        });\n\n        const timezoneDate = selectedRange?.from;\n\n        const newTimeWindow = setDateForReserveTimeWindow(date, selectedTimeWindow);\n        const isSameValue = isEqual(newTimeWindow, selectedTimeWindow);\n        if (isSameValue) {\n            return;\n        }\n\n        let start = newTimeWindow?.start || null;\n        if (start && timezoneDate) {\n            start = convertISODateToTimezone(start, timezoneDate);\n        }\n\n        let end = newTimeWindow?.end || null;\n        if (end && timezoneDate) {\n            end = convertISODateToTimezone(end, timezoneDate);\n        }\n\n        if (!start || !end) {\n            return;\n        }\n\n        const preparedLocation = prepareLocation(location);\n        if (!preparedLocation) {\n            return;\n        }\n\n        formik.setFieldValue(timeWindowFieldName, {\n            start,\n            end,\n        });\n\n        onChangeRoutePointTimeWindow(routePointIndex, fakePointId, {\n            timeWindow: {\n                start,\n                end,\n            },\n            address: preparedLocation,\n            routeStopType: type,\n        });\n    };\n\n    return (\n        <div className={cs(cx('time-picker'), className)}>\n            <FormikConnectContextField<RouteFormValuesT, typeof locationFieldName>\n                name={locationFieldName}\n                label={t('deadhead-creation.route-form.fields.drop-point.label')}\n                fieldLabelClassName={cx('field', 'field--location')}\n                subLabel={\n                    <>\n                        <TimeIntervalDurationPillLabel\n                            className={cx('time-interval', {\n                                'time-interval--isHalfOpacity': false,\n                            })}\n                            i18nKey={null}\n                            isDayRelative\n                            timeWindow={relativeTimeWindow}\n                        />\n                        <TimeIntervalLimitPillLabel\n                            className={cx('time-interval', {\n                                'time-interval--isHalfOpacity': false,\n                            })}\n                            timeWindow={relativeTimeWindow}\n                        />\n                    </>\n                }\n                labelRightNode={\n                    <div className={cx('right-node')}>\n                        {selectedDate && (\n                            <LinkDatePicker\n                                leftIcon={\n                                    <CalendarAltIcon\n                                        size={DEFAULT_ICON_SIZE}\n                                        strokeColor={StyleGuideColorsEnum.brandDark}\n                                    />\n                                }\n                                allowedDates={allowedDates}\n                                allowedDatesStartDate={allowedDatesStartDate}\n                                value={selectedDate}\n                                onChange={handleChangeDate}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomRight}\n                            />\n                        )}\n                    </div>\n                }\n            >\n                {(props, extendsProps) => (\n                    <div className={cx('wrap')} data-point-id={fakePointId}>\n                        <GeoSuggest\n                            className={cx('geo-suggest')}\n                            name={extendsProps.name}\n                            value={extendsProps.value}\n                            placeholder={t('deadhead-creation.route-form.fields.drop-point.placeholder')}\n                            renderLeftIcon={({ hasValue, hasError, hasWarning, isDisabled }) => {\n                                if (type === DeadheadRouteStopTypeEnum.dropTruck) {\n                                    let iconProps = {\n                                        strokeColor: StyleGuideColorsEnum.gray,\n                                        fillColor: StyleGuideColorsEnum.light,\n                                    };\n                                    if (hasValue) {\n                                        iconProps = {\n                                            strokeColor: StyleGuideColorsEnum.brandDark,\n                                            fillColor: StyleGuideColorsEnum.brandAccent,\n                                        };\n                                    }\n                                    if (hasError) {\n                                        iconProps = {\n                                            strokeColor: StyleGuideColorsEnum.tomatoRed,\n                                            fillColor: StyleGuideColorsEnum.light,\n                                        };\n                                    }\n                                    if (hasWarning) {\n                                        iconProps = {\n                                            strokeColor: StyleGuideColorsEnum.orange,\n                                            fillColor: StyleGuideColorsEnum.light,\n                                        };\n                                    }\n                                    if (isDisabled) {\n                                        iconProps = {\n                                            strokeColor: StyleGuideColorsEnum.slate,\n                                            fillColor: StyleGuideColorsEnum.light,\n                                        };\n                                    }\n\n                                    return <TruckDropOffIcon size={DEFAULT_ICON_SIZE} {...iconProps} />;\n                                }\n\n                                if (type === DeadheadRouteStopTypeEnum.dropRoadTrain) {\n                                    let iconProps = {\n                                        strokeColor: StyleGuideColorsEnum.gray,\n                                    };\n                                    if (hasValue) {\n                                        iconProps = {\n                                            strokeColor: StyleGuideColorsEnum.brandDark,\n                                        };\n                                    }\n                                    if (hasError) {\n                                        iconProps = {\n                                            strokeColor: StyleGuideColorsEnum.tomatoRed,\n                                        };\n                                    }\n                                    if (hasWarning) {\n                                        iconProps = {\n                                            strokeColor: StyleGuideColorsEnum.orange,\n                                        };\n                                    }\n                                    if (isDisabled) {\n                                        iconProps = {\n                                            strokeColor: StyleGuideColorsEnum.slate,\n                                        };\n                                    }\n                                    return <LinkDropOffIcon {...iconProps} />;\n                                }\n\n                                return null;\n                            }}\n                            onChange={(value) => {\n                                const location = prepareLocation(value);\n\n                                props.onChange(value);\n\n                                onManualSelectLocation(value, routePointIndex);\n\n                                onChangeRoutePointAddress(routePointIndex, fakePointId, {\n                                    routeStopType: type,\n                                    address: location,\n                                });\n                            }}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            onFocus={props.onFocus}\n                            onBlur={props.onBlur}\n                            testSelector={`pickup-or-delivery-location-${routePointIndex}`}\n                            showClearControl={!!extendsProps.value}\n                        />\n                    </div>\n                )}\n            </FormikConnectContextField>\n            <TimeWindowPicker\n                range={ALL_DAY_RANGE}\n                availableValues={settings?.availableValues}\n                ranges={settings?.timeWindowRanges || []}\n                marks={settings?.marks}\n                values={relativeTimeWindow}\n                step={timeWindowQuantumMs}\n                isAllowOnlyDragRange\n                isLockedLeftRangeControl\n                isLockedRightRangeControl\n                renderZoneTextNode={renderZoneTextNode}\n                onChange={handleChangeTimeWindow}\n            />\n        </div>\n    );\n});\n\nexport default DropPointPicker;\n","import {\n    CreateReserveQueryT,\n    PriceOfferT,\n    ReservePreviewQueryT,\n    ReservePreviewT,\n    ReserveQueryChangesT,\n    ReserveT,\n    RFQDetailsT,\n} from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nimport { ApiActualOrderRequestT, ApiCreateOrderRequestT, ApiOrderCreationShipperInfoT } from 'common/utils/api/models';\n\nexport const FETCH_SHIPPER_INFO = 'common/order-creation/FETCH_SHIPPER_INFO';\nexport const FETCH_SHIPPER_INFO_BEGIN = 'common/order-creation/FETCH_SHIPPER_INFO_BEGIN';\nexport const FETCH_SHIPPER_INFO_SUCCESS = 'common/order-creation/FETCH_SHIPPER_INFO_SUCCESS';\nexport const FETCH_SHIPPER_INFO_ERROR = 'common/order-creation/FETCH_SHIPPER_INFO_ERROR';\n\nexport const CHANGE_RESERVE_QUERY = 'common/order-creation/CHANGE_RESERVE_QUERY';\nexport const SET_ALLOW_CREATE_RFQ = 'common/order-creation/SET_ALLOW_CREATE_RFQ';\n\nexport const CREATE_PRICE_OFFER_WITH_LANE_REQUEST = 'common/order-creation/CREATE_PRICE_OFFER_WITH_LANE_REQUEST';\nexport const CREATE_PRICE_OFFER_WITH_LANE_REQUEST_BEGIN =\n    'common/order-creation/CREATE_PRICE_OFFER_WITH_LANE_REQUEST_BEGIN';\nexport const CREATE_PRICE_OFFER_WITH_LANE_REQUEST_SUCCESS =\n    'common/order-creation/CREATE_PRICE_OFFER_WITH_LANE_REQUEST_SUCCESS';\nexport const CREATE_PRICE_OFFER_WITH_LANE_REQUEST_ERROR =\n    'common/order-creation/CREATE_PRICE_OFFER_WITH_LANE_REQUEST_ERROR';\n\nexport const CREATE_RFQ_REQUEST = 'common/order-creation/CREATE_RFQ_REQUEST';\nexport const CREATE_RFQ_REQUEST_BEGIN = 'common/order-creation/CREATE_RFQ_REQUEST_BEGIN';\nexport const CREATE_RFQ_REQUEST_SUCCESS = 'common/order-creation/CREATE_RFQ_REQUEST_SUCCESS';\nexport const CREATE_RFQ_REQUEST_ERROR = 'common/order-creation/CREATE_RFQ_REQUEST_ERROR';\n\nexport const ENSURE_CREATED_RFQ = 'common/order-creation/ENSURE_CREATED_RFQ';\n\nexport const CREATE_ORDER_REQUEST = 'common/order-creation/CREATE_ORDER_REQUEST';\nexport const CREATE_ORDER_REQUEST_BEGIN = 'common/order-creation/CREATE_ORDER_REQUEST_BEGIN';\nexport const CREATE_ORDER_REQUEST_SUCCESS = 'common/order-creation/CREATE_ORDER_REQUEST_SUCCESS';\nexport const CREATE_ORDER_REQUEST_ERROR = 'common/order-creation/CREATE_ORDER_REQUEST_ERROR';\n\nexport const FETCH_ROUTE = 'common/order-creation/FETCH_ROUTE';\nexport const FETCH_ROUTE_ERROR = 'common/order-creation/FETCH_ROUTE_ERROR';\nexport const FETCH_ROUTE_SUCCESS = 'common/order-creation/FETCH_ROUTE_SUCCESS';\n\nexport const FETCH_OFFERS_ERROR = 'common/order-creation/FETCH_OFFERS_ERROR';\nexport const SELECT_OFFER = 'common/order-creation/SELECT_OFFER';\nexport const FETCH_TASK_OFFER = 'common/order-creation/FETCH_TASK_OFFER';\nexport const FETCH_TASK_OFFER_ERROR = 'common/order-creation/FETCH_TASK_OFFER_ERROR';\nexport const FETCH_OFFERS = 'common/order-creation/FETCH_OFFERS';\nexport const MARK_OFFERS_EXPIRED = 'common/order-creation/MARK_OFFERS_EXPIRED';\nexport const SET_EXPECTED_OFFERS_COUNT = 'common/order-creation/SET_EXPECTED_OFFERS_COUNT';\nexport const CLEAR_OFFERS_TASKS = 'common/order-creation/CLEAR_OFFERS_TASKS';\nexport const RESET = 'common/order-creation/RESET';\n\nexport const SET_CREATE_RESERVE_QUERY = 'common/order-creation/SET_CREATE_RESERVE_QUERY';\nexport const CREATE_RESERVE_BEGIN = 'common/order-creation/CREATE_RESERVE_BEGIN';\nexport const CREATE_RESERVE_SUCCESS = 'common/order-creation/CREATE_RESERVE_SUCCESS';\nexport const CREATE_RESERVE_ERROR = 'common/order-creation/CREATE_RESERVE_ERROR';\nexport const RESET_CREATE_RESERVE_WITH_QUERY = 'common/order-creation/RESET_CREATE_RESERVE_WITH_QUERY';\n\nexport const CORRECT_RESERVE_QUERY = 'common/order-creation/CORRECT_RESERVE_QUERY';\nexport const CORRECT_PREVIEW_RESERVE_QUERY = 'common/order-creation/CORRECT_PREVIEW_RESERVE_QUERY';\nexport const SET_PREVIEW_RESERVE_QUERY = 'common/order-creation/SET_PREVIEW_RESERVE_QUERY';\nexport const PREVIEW_RESERVE_BEGIN = 'common/order-creation/PREVIEW_RESERVE_BEGIN';\nexport const PREVIEW_RESERVE_SUCCESS = 'common/order-creation/PREVIEW_RESERVE_SUCCESS';\nexport const PREVIEW_RESERVE_ERROR = 'common/order-creation/PREVIEW_RESERVE_ERROR';\n\nexport const RESET_RESERVE_AND_RESERVE_PREVIEW = 'common/order-creation/RESET_RESERVE_AND_RESERVE_PREVIEW';\n\nexport type ChangeReserveQueryActionT = {\n    type: typeof CHANGE_RESERVE_QUERY;\n    changes: ReserveQueryChangesT;\n};\n\nexport type SetAllowCreateRFQT = {\n    type: typeof SET_ALLOW_CREATE_RFQ;\n    isAllowCreateRFQ: boolean;\n};\n\nexport type CreatePriceOfferWithLaneRequestActionT = {\n    type: typeof CREATE_PRICE_OFFER_WITH_LANE_REQUEST;\n    actualOrderRequest: ApiActualOrderRequestT;\n    reserve: ReserveT;\n    shipperId: ShipperIdT | null;\n    laneId: ShipperContractLaneIdT;\n};\n\nexport type CreatePriceOfferWithLaneRequestBeginActionT = {\n    type: typeof CREATE_PRICE_OFFER_WITH_LANE_REQUEST_BEGIN;\n};\n\nexport type CreatePriceOfferWithLaneRequestSuccessActionT = {\n    type: typeof CREATE_PRICE_OFFER_WITH_LANE_REQUEST_SUCCESS;\n    rfq: RFQDetailsT;\n    lanePriceOffer: PriceOfferT | null;\n};\n\nexport type CreatePriceOfferWithLaneRequestErrorActionT = {\n    type: typeof CREATE_PRICE_OFFER_WITH_LANE_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type CreateRFQActionT = {\n    type: typeof CREATE_RFQ_REQUEST;\n    actualOrderRequest: ApiActualOrderRequestT;\n    reserve: ReserveT;\n    shipperId: ShipperIdT | null;\n};\n\nexport type CreateRFQBeginActionT = {\n    type: typeof CREATE_RFQ_REQUEST_BEGIN;\n};\n\nexport type CreateRFQSuccessActionT = {\n    type: typeof CREATE_RFQ_REQUEST_SUCCESS;\n    rfq: RFQDetailsT;\n};\n\nexport type CreateRFQErrorActionT = {\n    type: typeof CREATE_RFQ_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type FetchRouteActionT = {\n    type: typeof FETCH_ROUTE;\n    polylineId: PolylineIdT | null;\n};\n\nexport type FetchRouteSuccessActionT = {\n    type: typeof FETCH_ROUTE_SUCCESS;\n    polylines: Array<GooglePolylineT>;\n};\n\nexport type FetchRouteErrorActionT = {\n    type: typeof FETCH_ROUTE_ERROR;\n    error: Error;\n};\n\nexport type CreateOrderActionT = {\n    type: typeof CREATE_ORDER_REQUEST;\n    rfqId: RFQIdT;\n    createOrderRequest: ApiCreateOrderRequestT;\n    isCreateNextOrder: boolean;\n};\n\nexport type CreateOrderBeginActionT = {\n    type: typeof CREATE_ORDER_REQUEST_BEGIN;\n};\n\nexport type CreateOrderSuccessActionT = {\n    type: typeof CREATE_ORDER_REQUEST_SUCCESS;\n};\n\nexport type CreateOrderErrorActionT = {\n    type: typeof CREATE_ORDER_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type EnsureCreatedRFQActionT = {\n    type: typeof ENSURE_CREATED_RFQ;\n    rfqId: RFQIdT;\n};\n\nexport type SelectOfferActionT = {\n    type: typeof SELECT_OFFER;\n    offer: PriceOfferT;\n    rfqId: RFQIdT;\n};\n\nexport type FetchTaskOfferActionT = {\n    type: typeof FETCH_TASK_OFFER;\n    offer: PriceOfferT;\n    tasksCount: number;\n};\n\nexport type FetchTaskOfferErrorActionT = {\n    type: typeof FETCH_TASK_OFFER_ERROR;\n    error: Error;\n};\n\nexport type FetchOffersActionT = {\n    type: typeof FETCH_OFFERS;\n    priceOffers: Array<PriceOfferT>;\n};\n\nexport type MarkOffersExpiredActionT = {\n    type: typeof MARK_OFFERS_EXPIRED;\n    ids: Array<PriceOfferIdT>;\n};\n\nexport type SetExpectedOffersCountT = {\n    type: typeof SET_EXPECTED_OFFERS_COUNT;\n    expectedOffersCount: number | null;\n};\n\nexport type ClearOffersTasksActionT = {\n    type: typeof CLEAR_OFFERS_TASKS;\n};\n\nexport type FetchOffersErrorActionT = {\n    type: typeof FETCH_OFFERS_ERROR;\n    error: Error;\n};\n\nexport type ResetActionT = {\n    type: typeof RESET;\n};\n\nexport type SetCreateReserveQueryActionT = {\n    type: typeof SET_CREATE_RESERVE_QUERY;\n    query: CreateReserveQueryT | null;\n};\n\nexport type ResetCreateReserveWithQueryActionT = {\n    type: typeof RESET_CREATE_RESERVE_WITH_QUERY;\n    query: CreateReserveQueryT | null;\n};\n\nexport type CreateReserveBeginActionT = {\n    type: typeof CREATE_RESERVE_BEGIN;\n    query: CreateReserveQueryT | null;\n};\n\nexport type CreateReserveSuccessActionT = {\n    type: typeof CREATE_RESERVE_SUCCESS;\n    reserve: ReserveT;\n    query: CreateReserveQueryT | null;\n};\n\nexport type CreateReserveErrorActionT = {\n    type: typeof CREATE_RESERVE_ERROR;\n    error: Error;\n    query: CreateReserveQueryT | null;\n};\n\nexport type SetPreviewReserveQueryActionT = {\n    type: typeof SET_PREVIEW_RESERVE_QUERY;\n    query: ReservePreviewQueryT | null;\n};\n\nexport type CorrectPreviewReserveQueryActionT = {\n    type: typeof CORRECT_PREVIEW_RESERVE_QUERY;\n    query: ReservePreviewQueryT | null;\n};\n\nexport type CorrectReserveQueryActionT = {\n    type: typeof CORRECT_RESERVE_QUERY;\n    query: CreateReserveQueryT | null;\n};\n\nexport type PreviewReserveBeginActionT = {\n    type: typeof PREVIEW_RESERVE_BEGIN;\n    query: ReservePreviewQueryT | null;\n};\n\nexport type PreviewReserveSuccessActionT = {\n    type: typeof PREVIEW_RESERVE_SUCCESS;\n    preview: ReservePreviewT;\n    query: ReservePreviewQueryT | null;\n};\n\nexport type PreviewReserveErrorActionT = {\n    type: typeof PREVIEW_RESERVE_ERROR;\n    error: Error;\n    query: ReservePreviewQueryT | null;\n};\n\nexport type ResetReserveAndReservePreviewT = {\n    type: typeof RESET_RESERVE_AND_RESERVE_PREVIEW;\n};\n\nexport type FetchShipperInfoActionT = {\n    type: typeof FETCH_SHIPPER_INFO;\n    shipperId: ShipperIdT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchShipperInfoBeginActionT = {\n    type: typeof FETCH_SHIPPER_INFO_BEGIN;\n};\n\nexport type FetchShipperInfoSuccessActionT = {\n    type: typeof FETCH_SHIPPER_INFO_SUCCESS;\n    shipperInfo: ApiOrderCreationShipperInfoT;\n};\n\nexport type FetchShipperInfoErrorActionT = {\n    type: typeof FETCH_SHIPPER_INFO_ERROR;\n    error: Error;\n};\n\nexport type OrderCreationActionT =\n    | FetchShipperInfoActionT\n    | FetchShipperInfoBeginActionT\n    | FetchShipperInfoSuccessActionT\n    | FetchShipperInfoErrorActionT\n    | SetAllowCreateRFQT\n    | CreateRFQActionT\n    | EnsureCreatedRFQActionT\n    | CreatePriceOfferWithLaneRequestActionT\n    | CreatePriceOfferWithLaneRequestBeginActionT\n    | CreatePriceOfferWithLaneRequestSuccessActionT\n    | CreatePriceOfferWithLaneRequestErrorActionT\n    | CreateRFQBeginActionT\n    | CreateRFQSuccessActionT\n    | CreateRFQErrorActionT\n    | CreateOrderActionT\n    | CreateOrderBeginActionT\n    | CreateOrderSuccessActionT\n    | CreateOrderErrorActionT\n    | SelectOfferActionT\n    | SetExpectedOffersCountT\n    | FetchOffersActionT\n    | MarkOffersExpiredActionT\n    | FetchTaskOfferActionT\n    | FetchTaskOfferErrorActionT\n    | ClearOffersTasksActionT\n    | FetchOffersErrorActionT\n    | FetchRouteErrorActionT\n    | FetchRouteSuccessActionT\n    | SetCreateReserveQueryActionT\n    | ResetCreateReserveWithQueryActionT\n    | CreateReserveBeginActionT\n    | CreateReserveSuccessActionT\n    | CreateReserveErrorActionT\n    | SetPreviewReserveQueryActionT\n    | CorrectPreviewReserveQueryActionT\n    | CorrectReserveQueryActionT\n    | PreviewReserveBeginActionT\n    | PreviewReserveSuccessActionT\n    | PreviewReserveErrorActionT\n    | ResetReserveAndReservePreviewT\n    | ResetActionT;\n\nexport type OrderCreationStateT = {\n    shipperInfoById: Record<ShipperIdT, ApiOrderCreationShipperInfoT>;\n    shipperInfoRequestStatus: RequestStatusT;\n\n    previewReserveQuery: ReservePreviewQueryT | null;\n    previewReserveRequest: RequestStatusT;\n    previewReserve: ReservePreviewT | null;\n\n    reserveQuery: CreateReserveQueryT | null;\n    reserveRequest: RequestStatusT;\n    reserve: ReserveT | null;\n\n    isAllowCreateRFQ: boolean;\n\n    polylines: Array<GooglePolylineT> | null;\n    createRFQRequest: RequestStatusT;\n    createPriceOfferWithLaneRequest: RequestStatusT;\n\n    rfq: RFQDetailsT | null;\n    priceOffers: {\n        byHash: Record<string, Array<PriceOfferIdT>>;\n        byId: Record<PriceOfferIdT, PriceOfferT>;\n        list: Array<PriceOfferIdT>;\n    } | null;\n    offersTasks: {\n        count: number;\n        total: number | null;\n    };\n\n    lanePriceOffer: PriceOfferT | null;\n\n    createOrderRequest: RequestStatusT;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"NotificationToastContent__inner___rN8KO\",\"inner__content\":\"NotificationToastContent__inner__content___gUAsp\",\"inner__close\":\"NotificationToastContent__inner__close___OJbkO\",\"header\":\"NotificationToastContent__header___x1oMT\",\"footer\":\"NotificationToastContent__footer___Yy9Q5\",\"fadeIn\":\"NotificationToastContent__fadeIn___DXtIp\",\"blinking\":\"NotificationToastContent__blinking___pdKDo\"};","import requestStatus, { type RequestStatusT } from 'common/utils/request-status';\n\nexport type HashT = TruckIdT | TrailerIdT;\n\nexport type AssetItemStateT = {\n    validateTeleportStatus: RequestStatusT;\n    validateTeleport: Api2.Definitions.TeleportAsset | null;\n    executeTeleportStatus: RequestStatusT;\n};\n\nexport type AssetsStateT = Record<HashT, AssetItemStateT>;\n\nexport const initialAssetTeleportItemState: AssetItemStateT = {\n    validateTeleportStatus: requestStatus.initial,\n    validateTeleport: null,\n    executeTeleportStatus: requestStatus.initial,\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"stepper\":\"Stepper__stepper___h_Kb6\",\"back-button\":\"Stepper__back-button___a70gX\",\"step\":\"Stepper__step___wrgsW\",\"step--isSelectable\":\"Stepper__step--isSelectable___CrL4z\",\"step__number\":\"Stepper__step__number____cpIX\",\"step__number--isActive\":\"Stepper__step__number--isActive___zw77_\",\"step__number--isPrevStep\":\"Stepper__step__number--isPrevStep___nWw_X\",\"step__label\":\"Stepper__step__label___VnMHu\",\"step__label--isActive\":\"Stepper__step__label--isActive___oe51l\",\"fadeIn\":\"Stepper__fadeIn___jssg9\",\"blinking\":\"Stepper__blinking___m88Nz\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './RevokedPartnerShipperContractCard.scss';\nimport { Trans } from 'react-i18next';\nimport ContractName from 'broker-admin/components/notification-cards/entities/ContractName/ContractName';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    contractName: string;\n};\n\nconst UpdatedPartnerShipperContractCard: React.FC<PropsT> = React.memo((props) => {\n    const { contractName } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"notifications.partner-shipper-contract-revoked\"\n                components={{\n                    contractName: <ContractName contractName={contractName} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default UpdatedPartnerShipperContractCard;\n","import { BrokerOrderStatsStateT } from './slice';\nimport { StateT } from '../models';\n\nexport const selectBrokerOrderStatsRequest = (state: StateT): BrokerOrderStatsStateT['fetchRequest'] =>\n    state.brokerOrderStats.fetchRequest;\n\nexport const selectBrokerOrderStats = (state: StateT): BrokerOrderStatsStateT['stats'] => state.brokerOrderStats.stats;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ModelCell.scss';\n\nimport { ApiTruckT } from 'common/store/trucks/models';\n\ntype PropsT = {\n    truck: ApiTruckT;\n};\n\nconst cx = classNames.bind(styles);\n\nconst ModelCell: React.FC<PropsT> = React.memo((props) => {\n    const { truck } = props;\n\n    return (\n        <div>\n            <div className={cx('model')}>{truck.manufacturer}</div>\n            <div className={cx('cabin-color')}>{truck.cabinColor}</div>\n        </div>\n    );\n});\n\nexport default ModelCell;\n","import Keycloak, { KeycloakError, KeycloakInstance, KeycloakProfile } from 'keycloak-js';\nimport {\n    AuthAccountUrlsT,\n    AuthStateChangedCallbackT,\n    AuthUnsubscribeCallbackT,\n    AuthUserClaimsT,\n    AuthUserT,\n    BaseAuthService,\n} from './base-auth-service';\nimport { AuthApiError, AuthErrorTypeEnum } from 'common/utils/api/auth/errors/auth-api-error';\nimport { AuthIdTokenT } from 'common/utils/api/auth/base-security-auth-api';\nimport { logError, logWarning } from 'common/utils/logger';\nimport { createSelfExternalUrl } from 'common/utils/history';\n\ntype KeycloakConfigT = {\n    url: string;\n    realm: string;\n    clientId: string;\n};\n\nconst INIT_REDIRECT_MODE_QUERY_KEY = 'init-auth-redirect-mode';\n\ntype KeycloakInitRedirectModeT = string | null;\nenum KeycloakInitRedirectModeEnum {\n    signUp = 'sign-up',\n    signIn = 'sign-in',\n}\n\nconst DELAY = 300;\n\nconst TOKEN_KEY = 'kc_token';\nconst REFRESH_TOKEN_KEY = 'kc_refreshToken';\n\nexport class KeycloakAuthService extends BaseAuthService {\n    private keycloak: KeycloakInstance;\n\n    private isInitialized = false;\n\n    private authStateChangedCallback: AuthStateChangedCallbackT | null = null;\n\n    private isRedirectingToSignIn = false;\n\n    constructor(config: KeycloakConfigT, initRedirectMode: KeycloakInitRedirectModeT) {\n        super();\n\n        this.keycloak = new Keycloak({\n            ...config,\n        });\n        this.keycloak.onAuthError = this.onAuthError;\n        this.keycloak.onAuthRefreshError = this.onAuthRefreshError;\n        this.keycloak.onAuthSuccess = this.onAuthSuccess;\n        this.keycloak.onReady = this.onReady;\n\n        const token = localStorage.getItem(TOKEN_KEY);\n        const refreshToken = localStorage.getItem(REFRESH_TOKEN_KEY);\n\n        this.keycloak.init({\n            onLoad: !initRedirectMode ? 'check-sso' : undefined,\n            token: token || undefined,\n            refreshToken: refreshToken || undefined,\n            checkLoginIframe: false,\n        });\n\n        if (initRedirectMode === KeycloakInitRedirectModeEnum.signUp) {\n            this.keycloak.register({\n                redirectUri: window.location.href.replace(\n                    INIT_REDIRECT_MODE_QUERY_KEY,\n                    `deleted-${INIT_REDIRECT_MODE_QUERY_KEY}`,\n                ),\n            });\n        }\n\n        if (initRedirectMode === KeycloakInitRedirectModeEnum.signIn) {\n            this.keycloak.login({\n                redirectUri: window.location.href.replace(\n                    INIT_REDIRECT_MODE_QUERY_KEY,\n                    `deleted-${INIT_REDIRECT_MODE_QUERY_KEY}`,\n                ),\n            });\n        }\n    }\n\n    checkAllowedAnonymouslyUserCreation = (): boolean => {\n        return false;\n    };\n\n    private waitInitialization = async (): Promise<void> => {\n        while (!this.isInitialized) {\n            await new Promise((resolve) => {\n                setTimeout(resolve, DELAY);\n            });\n        }\n    };\n\n    getAuthToken = async (): Promise<AuthIdTokenT | null> => {\n        await this.waitInitialization();\n\n        if (!this.keycloak.token) {\n            return null;\n        }\n\n        if (this.keycloak.isTokenExpired()) {\n            try {\n                await this.keycloak.updateToken(5); // 5 - is default minValidity\n            } catch (error) {\n                logWarning('failed to updateToken', error);\n                this.redirectToSignIn();\n                return null;\n            }\n        }\n\n        return this.keycloak.token || null;\n    };\n\n    getAuthHeaders = async (): Promise<Record<string, AuthIdTokenT> | null> => {\n        const token = await this.getAuthToken();\n\n        if (!token) {\n            return null;\n        }\n\n        return {\n            Authorization: `Bearer ${token}`,\n        };\n    };\n\n    doSignOut = async (): Promise<[AuthApiError | null, null]> => {\n        try {\n            await this.keycloak.logout({\n                redirectUri: window.location.href,\n            });\n\n            return [null, null];\n        } catch (error) {\n            // TODO parse\n            return [new AuthApiError(AuthErrorTypeEnum.unknown, error.message), null];\n        }\n    };\n\n    signInWithEmailAndPassword = async (): Promise<[AuthApiError | null, AuthUserT | null]> => {\n        return [new AuthApiError(AuthErrorTypeEnum.unknown, 'not implement'), null];\n    };\n\n    getAuthUserClaims = async (): Promise<[AuthApiError | null, AuthUserClaimsT | null]> => {\n        await this.waitInitialization();\n\n        if (!this.keycloak.tokenParsed?.roles) {\n            return [null, null];\n        }\n\n        const authUserClaims: AuthUserClaimsT = {\n            roles: this.keycloak.tokenParsed?.roles,\n        };\n\n        return [null, authUserClaims];\n    };\n\n    getAccountUrls = async (): Promise<[AuthApiError | null, AuthAccountUrlsT | null]> => {\n        await this.waitInitialization();\n\n        return [\n            null,\n            {\n                changeCreds: `${this.keycloak.tokenParsed?.iss}/protocol/openid-connect/auth?client_id=${this.keycloak.clientId}&redirect_uri=${window.location.href}&response_type=code&scope=openid&kc_action=UPDATE_PASSWORD`,\n            },\n        ];\n    };\n\n    verificationEmail = async (): Promise<[AuthApiError | null, null]> => {\n        return [new AuthApiError(AuthErrorTypeEnum.unknown, 'not implement'), null];\n    };\n\n    private onReady = () => {\n        this.isInitialized = true;\n\n        if (this.keycloak.authenticated) {\n            const userInfo = this.keycloak?.userInfo as KeycloakProfile;\n            this.emitStateChange({\n                email: userInfo?.email || '',\n                displayName: `${userInfo?.lastName || ''} ${userInfo?.firstName || ''}`,\n                isAnonymous: false,\n            });\n        } else {\n            this.emitStateChange(null);\n        }\n    };\n\n    private onAuthError = (errorData: KeycloakError) => {\n        logWarning(`keycloak.onAuthError ${JSON.stringify(errorData)}`);\n        // nothing\n\n        this.emitStateChange(null);\n    };\n\n    private onAuthRefreshError = () => {\n        logWarning('keycloak.onAuthRefreshError');\n        this.redirectToSignIn();\n    };\n\n    private redirectToSignIn = async () => {\n        if (this.isRedirectingToSignIn) {\n            return;\n        }\n\n        this.isRedirectingToSignIn = true;\n        this.destroySession();\n\n        try {\n            await this.keycloak.logout({\n                redirectUri: window.location.href,\n            });\n        } catch (error) {\n            logWarning('failed to logout after token refresh error', error);\n\n            window.location.href = this.keycloak.createLoginUrl({\n                redirectUri: window.location.href,\n            });\n        }\n    };\n\n    private onAuthSuccess = async () => {\n        localStorage.setItem(TOKEN_KEY, this.keycloak.token || '');\n        localStorage.setItem(REFRESH_TOKEN_KEY, this.keycloak.refreshToken || '');\n\n        // TODO check need ???\n        try {\n            const userInfo = (await this.keycloak.loadUserProfile()) as KeycloakProfile;\n            this.emitStateChange({\n                email: userInfo.email || '',\n                displayName: `${userInfo.lastName || ''} ${userInfo.firstName || ''}`,\n                isAnonymous: false,\n            });\n        } catch (error) {\n            // error may be empty, WTF?!?!\n            if (error) {\n                logError('KeycloakAuthService onAuthSuccess error', error);\n            }\n        }\n    };\n\n    destroySession = () => {\n        localStorage.removeItem(TOKEN_KEY);\n        localStorage.removeItem(REFRESH_TOKEN_KEY);\n    };\n\n    private emitStateChange: AuthStateChangedCallbackT = (user) => {\n        if (!this.authStateChangedCallback) {\n            setTimeout(() => {\n                this.emitStateChange(user);\n            }, DELAY);\n        } else {\n            this.authStateChangedCallback(user);\n        }\n    };\n\n    onAuthStateChanged = (authStateChangedCallback: AuthStateChangedCallbackT): AuthUnsubscribeCallbackT => {\n        this.authStateChangedCallback = authStateChangedCallback;\n\n        return () => {\n            this.authStateChangedCallback = null;\n        };\n    };\n\n    createAnonymouslyUser = async (): Promise<[AuthApiError | null, AuthUserT | null]> => {\n        return [null, null];\n    };\n\n    updatePassword = async (): Promise<[AuthApiError | null, null]> => {\n        return [new AuthApiError(AuthErrorTypeEnum.unknown, 'not implement in keycloak'), null];\n    };\n\n    reauthenticateWithCredential = async (): Promise<[AuthApiError | null, AuthUserT | null]> => {\n        return [new AuthApiError(AuthErrorTypeEnum.unknown, 'not implement in keycloak'), null];\n    };\n\n    changePassword = async (): Promise<[AuthApiError | null, null]> => {\n        return [new AuthApiError(AuthErrorTypeEnum.unknown, 'not implement in keycloak'), null];\n    };\n\n    updateProfile = async (): Promise<[AuthApiError | null, null]> => {\n        // nothing\n        return [null, null];\n    };\n\n    checkIsContinueSignInRedirect = () => {\n        return !!window.location.search?.includes('session_state=');\n    };\n\n    createSignInUrl = (returnUrl?: string): string => {\n        return this.keycloak.createLoginUrl({\n            redirectUri: returnUrl ? createSelfExternalUrl(returnUrl) : undefined,\n        });\n    };\n\n    createSignInUrlAfterChangePassword = (): string => {\n        return this.keycloak.createLoginUrl();\n    };\n\n    forceRefreshToken = async (): Promise<[AuthApiError | null, boolean | null]> => {\n        try {\n            await this.waitInitialization();\n\n            // force refresh - Infinity minValidity\n            const refreshed = await this.keycloak.updateToken(Infinity);\n            if (refreshed) {\n                localStorage.setItem(TOKEN_KEY, this.keycloak.token || '');\n                localStorage.setItem(REFRESH_TOKEN_KEY, this.keycloak.refreshToken || '');\n            }\n\n            return [null, refreshed];\n        } catch (error) {\n            // TODO parse\n            return [new AuthApiError(AuthErrorTypeEnum.unknown, error?.message), null];\n        }\n    };\n\n    createAccountUrl = (): string => {\n        return this.keycloak.createAccountUrl({\n            redirectUri: window.location.href,\n        });\n    };\n\n    createSignUpUrl = (): string => {\n        return this.keycloak.createRegisterUrl({\n            redirectUri: window.location.href,\n        });\n    };\n\n    createForgotPasswordUrl = (): string => {\n        throw new Error('not implement in keycloak');\n    };\n\n    createChangePasswordUrl = (): string => {\n        throw new Error('not implement in keycloak');\n    };\n}\n\nexport const tryParseKeycloakConfig = (): KeycloakConfigT => {\n    try {\n        return JSON.parse(window.STRINGIFIED_KEYCLOAK_CONFIG);\n    } catch (error) {\n        logError('KeycloakAuthService Parse keycloak config error!!', error);\n\n        return {} as KeycloakConfigT;\n    }\n};\n\nexport const tryParseInitRedirectMode = (): KeycloakInitRedirectModeT => {\n    const url = new URL(window.location.href);\n\n    return url.searchParams.get(INIT_REDIRECT_MODE_QUERY_KEY);\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"widget\":\"StatisticsPage__widget___WmXKM\",\"widget__inner\":\"StatisticsPage__widget__inner___BvVU2\",\"widget__aggregates\":\"StatisticsPage__widget__aggregates___jW0Fx\",\"actions\":\"StatisticsPage__actions___XsdrE\",\"filter-tags\":\"StatisticsPage__filter-tags___g99o1\",\"aggregate\":\"StatisticsPage__aggregate___jC81L\",\"aggregate__checkbox\":\"StatisticsPage__aggregate__checkbox___jJawn\",\"aggregate__price\":\"StatisticsPage__aggregate__price___PSFCl\",\"aggregate__label\":\"StatisticsPage__aggregate__label___MOpwQ\",\"aggregate__text\":\"StatisticsPage__aggregate__text___J0f_A\",\"aggregate__circle\":\"StatisticsPage__aggregate__circle___ubNwt\",\"unit\":\"StatisticsPage__unit___Hvvc0\",\"dates\":\"StatisticsPage__dates___SmOIb\",\"option\":\"StatisticsPage__option___C0aDY\",\"not-number\":\"StatisticsPage__not-number___kHHmL\",\"message\":\"StatisticsPage__message___PszX8\",\"fadeIn\":\"StatisticsPage__fadeIn___nEllC\",\"blinking\":\"StatisticsPage__blinking___prkWs\"};","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './TruckActionHistory.scss';\nimport { useTranslation } from 'react-i18next';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport DateFormatter from 'design-system/components/InfoTable/formatters/DateFormatter/DateFormatter';\nimport UserLinkFormatter from 'common/components/InfoTable/formatters/UserLinkFormatter/UserLinkFormatter';\nimport { isNonNil } from 'common/utils';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    createdDate?: string;\n    createdByName?: string;\n    createdById?: UserIdT;\n    createdByBroker?: boolean;\n\n    modifiedDate?: string;\n    modifiedByName?: string;\n    modifiedById?: UserIdT;\n    modifiedByBroker?: boolean;\n\n    onOpenUserDetails: (userId: UserIdT, isBrokerUser?: boolean) => void;\n};\n\nconst TruckActionHistory: React.FC<PropsT> = (props) => {\n    const {\n        createdDate,\n        createdByName,\n        createdById,\n        createdByBroker,\n        modifiedDate,\n        modifiedByName,\n        modifiedById,\n        modifiedByBroker,\n        onOpenUserDetails,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const creationDetailRows: Array<InfoTableRowT> = [\n        createdDate\n            ? {\n                  icon: null,\n                  name: t('common:trucks-page.columns.create-date'),\n                  rightNode: createdDate ? <DateFormatter date={createdDate} format=\"DD MMM YYYY, HH:mm\" /> : null,\n                  valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                  testSelector: 'create-date',\n                  hasBottomBorder: true,\n              }\n            : null,\n        createdDate\n            ? {\n                  icon: null,\n                  name: t('common:trucks-page.columns.created-by'),\n                  rightNode: (\n                      <UserLinkFormatter\n                          fullName={createdByName}\n                          userId={createdById}\n                          byBroker={createdByBroker}\n                          onOpenUserDetails={onOpenUserDetails}\n                      />\n                  ),\n                  valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                  testSelector: 'created-by',\n              }\n            : null,\n    ].filter(isNonNil);\n\n    const modifyDetailRows: Array<InfoTableRowT> = [\n        modifiedDate\n            ? {\n                  icon: null,\n                  name: t('common:trucks-page.columns.last-modify-date'),\n                  rightNode: modifiedDate ? <DateFormatter date={modifiedDate} format=\"DD MMM YYYY, HH:mm\" /> : null,\n                  valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                  testSelector: 'modify-date',\n                  hasBottomBorder: true,\n              }\n            : null,\n        modifiedDate\n            ? {\n                  icon: null,\n                  name: t('common:trucks-page.columns.last-modify-by'),\n                  rightNode: (\n                      <UserLinkFormatter\n                          fullName={modifiedByName}\n                          userId={modifiedById}\n                          byBroker={modifiedByBroker}\n                          onOpenUserDetails={onOpenUserDetails}\n                      />\n                  ),\n                  valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                  testSelector: 'modified-by',\n              }\n            : null,\n    ].filter(isNonNil);\n\n    return (\n        <>\n            <InfoTable className={cx('table')} rows={creationDetailRows} testSelector=\"creation-details\" />\n            <InfoTable className={cx('table')} rows={modifyDetailRows} testSelector=\"modify-details\" />\n        </>\n    );\n};\n\nexport default TruckActionHistory;\n","import { SharableStateT } from '../models';\n\nexport const selectGroupedNotificationCounts = (state: SharableStateT) => {\n    return state.groupedNotificationCounts.counts;\n};\n\nexport const selectGroupedNotificationCountsRequest = (state: SharableStateT) => {\n    return state.groupedNotificationCounts.fetchRequest;\n};\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './StatisticFiltersSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { fetchTrailersDict } from 'common/store/trailers-dict/actions';\nimport { useDispatch } from 'react-redux';\nimport getQueryFilters from './get-query-filters';\nimport getInitialValues from './get-initial-values';\nimport { disableCompaniesDataSourceSet, FieldsEnum, FormValuesT } from './constants';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport Input from 'common/components/Input/Input';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { isDeepEqual } from 'common/utils/deep-equal';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport ShipperSuggest from 'broker-admin/components/dropdowns/ShipperSuggest/ShipperSuggest';\nimport CarrierDropdown from 'broker-admin/components/dropdowns/CarrierDropdown/CarrierDropdown';\nimport CountryDropdown from 'common/components/dropdowns/CountryDropdown/CountryDropdown';\nimport DataSourceDropdown from 'broker-admin/layouts/StatisticsPage/DataSourceDropdown/DataSourceDropdown';\nimport { StatisticsFilterSidebarDataT } from './models';\nimport { SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { BrokerSidebarDataT } from 'broker-admin/layouts/SideBars/models';\nimport { useQueryParam } from 'use-query-params';\nimport { createJsonParams, mergeQueryFilters } from 'common/utils/query';\nimport { QueryFiltersT, QueryKeysEnum } from 'broker-admin/layouts/StatisticsPage/query-models';\nimport SelectedFilters from 'broker-admin/layouts/StatisticsPage/SelectedFilters/SelectedFilters';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = SidebarContentPropsT<StatisticsFilterSidebarDataT, BrokerSidebarDataT>;\n\nconst StatisticFiltersSidebarContent: React.FC<PropsT> = (props) => {\n    const { onClose } = props;\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const [queryFilters, setQueryFilters] = useQueryParam<QueryFiltersT>(\n        QueryKeysEnum.statsFilters,\n        createJsonParams<QueryFiltersT>({}),\n    );\n\n    React.useEffect(() => {\n        dispatch(fetchTrailersDict());\n    }, [dispatch]);\n\n    const [initialQueryFilters, setInitialQueryFilters] = React.useState<QueryFiltersT>(queryFilters);\n    React.useEffect(() => {\n        setInitialQueryFilters(queryFilters);\n    }, [queryFilters]);\n\n    const initialValues = React.useMemo(() => getInitialValues(queryFilters), [queryFilters]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialValues,\n        onSubmit: (values, formikHelpers): void => {\n            const newQueryFilters = getQueryFilters(values);\n            const mergedQueryFilters = mergeQueryFilters(initialQueryFilters, newQueryFilters);\n\n            setQueryFilters(mergedQueryFilters);\n\n            formikHelpers.setTouched({});\n\n            if (onClose) {\n                onClose();\n            }\n        },\n    });\n\n    const isSameValues = React.useMemo(() => {\n        return isDeepEqual(initialValues, formik.values) && isDeepEqual(initialQueryFilters, queryFilters);\n    }, [initialValues, formik.values, initialQueryFilters, queryFilters]);\n\n    const selectedDataSource = formik.values[FieldsEnum.dataSource];\n    const isDisableSelectCompanies = disableCompaniesDataSourceSet.has(selectedDataSource);\n    React.useEffect(() => {\n        if (disableCompaniesDataSourceSet.has(selectedDataSource)) {\n            formik.setValues({\n                ...formik.values,\n                [FieldsEnum.carrierId]: null,\n                [FieldsEnum.carrierName]: null,\n                [FieldsEnum.shipperId]: null,\n                [FieldsEnum.shipperName]: null,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [selectedDataSource]);\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('form')}>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent title={t('statistics.filters.trigger')} onClose={onClose} />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <FormikField\n                    className={cx('field')}\n                    name={FieldsEnum.dataSource}\n                    error={formik.errors[FieldsEnum.dataSource]}\n                    label={t('statistics.filters.fields.data-source.label')}\n                    meta={formik.getFieldMeta(FieldsEnum.dataSource)}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <DataSourceDropdown\n                            selectedValue={formik.values[FieldsEnum.dataSource]}\n                            placeholder={t('statistics.filters.fields.data-source.placeholder')}\n                            onSelect={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikField>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--from-country-code')}\n                        name={FieldsEnum.fromCountryCode}\n                        error={formik.errors[FieldsEnum.fromCountryCode]}\n                        label={t('statistics.filters.fields.from-country-code.label')}\n                        meta={formik.getFieldMeta(FieldsEnum.fromCountryCode)}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <CountryDropdown\n                                placeholder={t('statistics.filters.fields.from-country-code.placeholder')}\n                                value={formik.values[FieldsEnum.fromCountryCode]}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                onReset={() => {\n                                    props.onChange(null);\n                                }}\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--to-country-code')}\n                        name={FieldsEnum.toCountryCode}\n                        error={formik.errors[FieldsEnum.toCountryCode]}\n                        label={t('statistics.filters.fields.to-country-code.label')}\n                        meta={formik.getFieldMeta(FieldsEnum.toCountryCode)}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <CountryDropdown\n                                placeholder={t('statistics.filters.fields.to-country-code.placeholder')}\n                                value={formik.values[FieldsEnum.toCountryCode]}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                onReset={() => {\n                                    props.onChange(null);\n                                }}\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--from-zip-code')}\n                        name={FieldsEnum.fromZipCode}\n                        label={t('statistics.filters.fields.from-zip-code.label')}\n                        error={formik.errors[FieldsEnum.fromZipCode]}\n                        meta={formik.getFieldMeta(FieldsEnum.fromZipCode)}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <Input\n                                name={FieldsEnum.fromZipCode}\n                                value={formik.values[FieldsEnum.fromZipCode]}\n                                placeholder={t('statistics.filters.fields.from-zip-code.placeholder')}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--to-zip-code')}\n                        name={FieldsEnum.toZipCode}\n                        label={t('statistics.filters.fields.to-zip-code.label')}\n                        error={formik.errors[FieldsEnum.toZipCode]}\n                        meta={formik.getFieldMeta(FieldsEnum.toZipCode)}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <Input\n                                name={FieldsEnum.toZipCode}\n                                value={formik.values[FieldsEnum.toZipCode]}\n                                placeholder={t('statistics.filters.fields.to-zip-code.placeholder')}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--shipper')}\n                        name={FieldsEnum.shipperId}\n                        error={formik.errors[FieldsEnum.shipperId]}\n                        meta={formik.getFieldMeta(FieldsEnum.shipperId)}\n                        label={t('statistics.filters.fields.shipper.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <ShipperSuggest\n                                value={formik.values[FieldsEnum.shipperId]}\n                                initialValue={initialValues[FieldsEnum.shipperId]}\n                                initialLabel={initialValues[FieldsEnum.shipperName] || ''}\n                                hasClearControl\n                                isDisabled={isDisableSelectCompanies}\n                                onSelect={(shipperId, shipperName) => {\n                                    formik.setFieldValue(FieldsEnum.shipperId, shipperId);\n                                    formik.setFieldValue(FieldsEnum.shipperName, shipperName);\n                                }}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                placeholder={t('statistics.filters.fields.shipper.placeholder')}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--carrier')}\n                        name={FieldsEnum.carrierId}\n                        error={formik.errors[FieldsEnum.carrierId]}\n                        meta={formik.getFieldMeta(FieldsEnum.carrierId)}\n                        label={t('statistics.filters.fields.carrier.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <CarrierDropdown\n                                value={formik.values[FieldsEnum.carrierId]}\n                                initialValue={initialValues[FieldsEnum.carrierId]}\n                                initialLabel={initialValues[FieldsEnum.carrierName] || ''}\n                                hasClearControl\n                                isDisabled={isDisableSelectCompanies}\n                                onSelect={(carrierId, carrierName) => {\n                                    formik.setFieldValue(FieldsEnum.carrierId, carrierId);\n                                    formik.setFieldValue(FieldsEnum.carrierName, carrierName);\n                                }}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                                placeholder={t('statistics.filters.fields.carrier.placeholder')}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n            </SideBarLayout>\n            <FooterSideBarLayout hasPaddings>\n                <div className={cx('selected-filters')}>\n                    <SelectedFilters queryFilters={initialQueryFilters} setQueryFilters={setInitialQueryFilters} />\n                </div>\n                <Button\n                    theme={ButtonThemeEnum.primary}\n                    isDisabled={isSameValues}\n                    isFullWidth\n                    isCenterContent\n                    type=\"submit\"\n                >\n                    {t('statistics.filters.submit')}\n                </Button>\n            </FooterSideBarLayout>\n        </form>\n    );\n};\n\nexport default StatisticFiltersSidebarContent;\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"AssignmentForm__form___yLEd6\",\"receipt\":\"AssignmentForm__receipt___w2atu\",\"actions\":\"AssignmentForm__actions___Gj0g1\",\"action\":\"AssignmentForm__action___C26G2\",\"action--cancel\":\"AssignmentForm__action--cancel___mmCuW\",\"action--assign\":\"AssignmentForm__action--assign____hFkA\",\"tout-type-tabs\":\"AssignmentForm__tout-type-tabs___p1fJG\",\"asset-type-tabs\":\"AssignmentForm__asset-type-tabs___F3RLW\",\"table--utilization\":\"AssignmentForm__table--utilization___RsQoG\",\"self-cost-prediction\":\"AssignmentForm__self-cost-prediction___VF0qh\",\"self-cost-prediction__overlay\":\"AssignmentForm__self-cost-prediction__overlay___zhji4\",\"self-cost-prediction__loader\":\"AssignmentForm__self-cost-prediction__loader___QiCKF\",\"option\":\"AssignmentForm__option___p6yZy\",\"fadeIn\":\"AssignmentForm__fadeIn___IT_F1\",\"blinking\":\"AssignmentForm__blinking___ZjFw9\"};","// extracted by mini-css-extract-plugin\nexport default {\"time-interval\":\"FerryOnboardPointPicker__time-interval___fWyJs\",\"fadeIn\":\"FerryOnboardPointPicker__fadeIn___Qw6FC\",\"blinking\":\"FerryOnboardPointPicker__blinking___Q_PDF\"};","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    fillColor: StyleGuideColorsEnum;\n};\n\nconst UrgentIcon: React.FC<PropsT> = (props) => {\n    const { size, fillColor, ...rest } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\" {...rest}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path fill={fillColor} d=\"M6.25 2.5v8.25H8.5v6.75l5.25-9h-3l3-6z\" />\n            </g>\n        </svg>\n    );\n};\n\nUrgentIcon.displayName = 'UrgentIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.squash,\n};\n\nexport { storyProps };\nexport default UrgentIcon;\n\nexport const UrgentIconProps = {\n    getCreateOrder: (): PropsT => {\n        return {\n            size: DEFAULT_ICON_SIZE,\n            fillColor: StyleGuideColorsEnum.orange,\n        };\n    },\n};\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './TrailerActionHistory.scss';\nimport { useTranslation } from 'react-i18next';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport DateFormatter from 'design-system/components/InfoTable/formatters/DateFormatter/DateFormatter';\nimport UserLinkFormatter from 'common/components/InfoTable/formatters/UserLinkFormatter/UserLinkFormatter';\nimport { isNonNil } from 'common/utils';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    createdDate?: string;\n    createdByName?: string;\n    createdById?: UserIdT;\n    createdByBroker?: boolean;\n\n    modifiedDate?: string;\n    modifiedByName?: string;\n    modifiedById?: UserIdT;\n    modifiedByBroker?: boolean;\n\n    onOpenUserDetails: (userId: UserIdT, isBrokerUser?: boolean) => void;\n};\n\nconst TrailerActionHistory: React.FC<PropsT> = (props) => {\n    const {\n        createdDate,\n        createdByName,\n        createdById,\n        createdByBroker,\n        modifiedDate,\n        modifiedByName,\n        modifiedById,\n        modifiedByBroker,\n        onOpenUserDetails,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const creationDetailRows: Array<InfoTableRowT> = [\n        createdDate\n            ? {\n                  icon: null,\n                  name: t('common:trailers-page.columns.create-date'),\n                  rightNode: createdDate ? <DateFormatter date={createdDate} format=\"DD MMM YYYY, HH:mm\" /> : null,\n                  valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                  testSelector: 'create-date',\n                  hasBottomBorder: true,\n              }\n            : null,\n        createdDate\n            ? {\n                  icon: null,\n                  name: t('common:trailers-page.columns.created-by'),\n                  rightNode: (\n                      <UserLinkFormatter\n                          fullName={createdByName}\n                          userId={createdById}\n                          byBroker={createdByBroker}\n                          onOpenUserDetails={onOpenUserDetails}\n                      />\n                  ),\n                  valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                  testSelector: 'created-by',\n              }\n            : null,\n    ].filter(isNonNil);\n\n    const modifyDetailRows: Array<InfoTableRowT> = [\n        modifiedDate\n            ? {\n                  icon: null,\n                  name: t('common:trailers-page.columns.last-modify-date'),\n                  rightNode: modifiedDate ? <DateFormatter date={modifiedDate} format=\"DD MMM YYYY, HH:mm\" /> : null,\n                  valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                  testSelector: 'modify-date',\n                  hasBottomBorder: true,\n              }\n            : null,\n        modifiedDate\n            ? {\n                  icon: null,\n                  name: t('common:trailers-page.columns.last-modify-by'),\n                  rightNode: (\n                      <UserLinkFormatter\n                          fullName={modifiedByName}\n                          userId={modifiedById}\n                          byBroker={modifiedByBroker}\n                          onOpenUserDetails={onOpenUserDetails}\n                      />\n                  ),\n                  valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                  testSelector: 'modified-by',\n              }\n            : null,\n    ].filter(isNonNil);\n\n    return (\n        <>\n            <InfoTable className={cx('table')} rows={creationDetailRows} testSelector=\"creation-details\" />\n            <InfoTable className={cx('table')} rows={modifyDetailRows} testSelector=\"modify-details\" />\n        </>\n    );\n};\n\nexport default TrailerActionHistory;\n","import React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './TimeWindowZoneText.scss';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { RangeSelectorRangeT } from 'common/components/RangeSelector/models';\nimport { useTranslation } from 'react-i18next';\nimport StopWarningIcon from 'common/icons/StopWarningIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    currentRanges: RangeSelectorRangeT[];\n};\n\nconst TimeWindowZoneText: React.FC<PropsT> = React.memo((props) => {\n    const { currentRanges } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <Tooltip\n            position={TooltipPositionEnum.topLeft}\n            theme={TooltipThemeEnum.black}\n            tooltipNode={\n                <TooltipContent theme={TooltipContentThemeEnum.black}>\n                    <div className={cx('content')}>\n                        <div className={cx('content__left-icon')}>\n                            <StopWarningIcon opacity={0.7} fillColor={StyleGuideColorsEnum.orange} />\n                        </div>\n                        <div className={cx('content__content')}>\n                            {currentRanges?.map((range, rangeIndex) => {\n                                return (\n                                    <div key={rangeIndex} className={cx('text')}>\n                                        {range.label}\n                                    </div>\n                                );\n                            })}\n                        </div>\n                    </div>\n                </TooltipContent>\n            }\n        >\n            {() => (\n                <span className={cx('zone-title')} data-test-selector=\"zone-text\">\n                    {t('broker-order-route-edit.time-window-ranges.surcharge')}\n                </span>\n            )}\n        </Tooltip>\n    );\n});\n\nexport default TimeWindowZoneText;\n","// extracted by mini-css-extract-plugin\nexport default {\"action--start\":\"StartSelectBidFooterContent__action--start___VTXwR\",\"fadeIn\":\"StartSelectBidFooterContent__fadeIn___WPh4d\",\"blinking\":\"StartSelectBidFooterContent__blinking___DnVUw\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ShipmentDetailsCard.scss';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport Card from 'design-system/components/Card/Card';\nimport { useTranslation } from 'react-i18next';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport { formatTimeInterval } from 'common/utils/time';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport NumberIcon from 'common/icons/NumberIcon';\nimport ShipmentStatusPill from 'common/components/status-pill/ShipmentStatusPill/ShipmentStatusPill';\nimport CargoUnitIcon from 'common/icons/CargoUnitIcon';\nimport UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\nimport { getLoadUnitType } from 'common/utils/units';\nimport WeightIcon from 'common/icons/WeightIcon';\nimport SnowflakeIcon from 'common/icons/SnowflakeIcon';\nimport TemperatureModeFormatter from 'design-system/components/InfoTable/formatters/TemperatureModeFormatter/TemperatureModeFormatter';\nimport CommentIcon from 'common/icons/CommentIcon';\nimport LocationLabel from 'common/components/LocationLabel/LocationLabel';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport ChangeShipmentStatusFooter from 'broker-admin/components/status-machine/footers/ChangeShipmentStatusFooter/ChangeShipmentStatusFooter';\nimport { hideLoaderStatusSet } from 'broker-admin/components/status-machine/footers/ChangeShipmentStatusFooter/constants';\nimport {\n    ApiBrokerTourWaypointT,\n    ApiShipmentDetailsT,\n    ApiShipmentAttachedPaperTypeT,\n    PartnerTypeEnum,\n    ApiTourShipmentEventT,\n} from 'common/utils/api/models';\nimport AttentionTextFormatter from 'design-system/components/InfoTable/formatters/AttentionTextFormatter/AttentionTextFormatter';\nimport TimeWindowIcon from 'common/icons/TimeWindowIcon';\nimport { checkBrokerAppointmentStatus } from 'common/utils/broker-appointment';\nimport ShipmentWarningPill from 'common/components/status-pill/ShipmentWarningPill/ShipmentWarningPill';\nimport { getShipmentAnchor } from './utils';\nimport DetailsOrPapersTabs from 'common/components/entity-details/DetailsOrPapersTabs/DetailsOrPapersTabs';\nimport { ShipmentPapersTabContent } from 'common/components/entity-details/ShipmentPapersTabContent/ShipmentPapersTabContent';\nimport { ShipmentPaperAttachPapersDropdownControl } from 'common/components/papers/ShipmentPaperAttachPapersDropdownControl/ShipmentPaperAttachPapersDropdownControl';\nimport { useSelector } from 'react-redux';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport { selectShipmentChangesById } from 'common/store/papers-edit/selectors';\nimport { useRenderPapersTabCount } from 'common/components/papers/hooks/use-render-papers-tab-count';\nimport HighlightedEntityContext from 'common/components/status-machine/contexts/HighlightedEntityContext';\nimport { useAttachPaperForPaperTabRenderTrigger } from 'common/components/papers/ShipmentPaperAttachPapersDropdownControl/hooks';\nimport ContactBadgeIcon from 'common/icons/ContactBadgeIcon';\nimport TransparentTriggerWithTooltip from 'design-system/components/ExpandTrigger/TransparentTriggerWithTooltip';\nimport EditableStringValueFormatter from 'design-system/components/InfoTable/formatters/EditableStringValueFormatter/EditableStringValueFormatter';\nimport PlaceholderFormatter from 'design-system/components/InfoTable/formatters/PlaceholderFormatter/PlaceholderFormatter';\nimport ShipmentEditUnavailableReason from 'common/components/reason-labels/ShipmentEditUnavailableReason/ShipmentEditUnavailableReason';\nimport { UpdateTourShipmentRequestT } from 'broker-admin/store/broker-tour-edit/types';\nimport { logWarning } from 'common/utils/logger';\n\nexport type PropsT = {\n    shipmentNumber: number;\n    waypointById: Record<WaypointIdT, ApiBrokerTourWaypointT>;\n    shipment: ApiShipmentDetailsT | null | undefined;\n    keyboardShortcut?: string;\n    className?: string;\n    isReeferTrailer?: boolean;\n    shouldConfirmForCancelLastShipment: boolean;\n    onStartEditStopContact?: (waypoint: ApiBrokerTourWaypointT) => void;\n    onUpdateShipment?: (shipmentId: ShipmentIdT, data: UpdateTourShipmentRequestT) => void;\n    onAttachShipmentPaper: (\n        shipmentId: ShipmentIdT,\n        paperType: ApiShipmentAttachedPaperTypeT,\n        comment?: string,\n    ) => void;\n    getShipmentPaperThumbnailUrl: (shipmentId: ShipmentIdT | null, paperId: PaperIdT | null) => string | null;\n    onOpenGalleryShipmentPaper: (shipmentId: ShipmentIdT, paperId: PaperIdT) => void;\n    onDownloadShipmentPaper: (shipmentId: ShipmentIdT, paperId: PaperIdT) => void;\n    onDeleteShipmentPaper: (shipmentId: ShipmentIdT, paperId: PaperIdT) => void;\n    onOpenUserDetails: (params: {\n        userId: UserIdT | null;\n        partnerType?: PartnerTypeEnum;\n        partnerId?: PartnerIdT;\n    }) => void;\n    tourShipmentActions: ApiTourShipmentEventT[] | null;\n};\n\nconst cx = classNames.bind(styles);\n\nconst ShipmentDetailsCard: React.FC<PropsT> = React.memo((props) => {\n    const {\n        shipmentNumber,\n        isReeferTrailer,\n        waypointById,\n        shipment,\n        className,\n        keyboardShortcut,\n        shouldConfirmForCancelLastShipment,\n        onAttachShipmentPaper,\n        getShipmentPaperThumbnailUrl,\n        onOpenGalleryShipmentPaper,\n        onDownloadShipmentPaper,\n        onDeleteShipmentPaper,\n        onOpenUserDetails,\n        tourShipmentActions,\n        onStartEditStopContact,\n        onUpdateShipment,\n    } = props;\n\n    const { t } = useTranslation();\n    const { highlightedEntityId } = React.useContext(HighlightedEntityContext);\n\n    const permissions = useSelector(selectPermissions);\n\n    const shipmentId = shipment?.id || null;\n    const description = shipment?.description || null;\n    const poNumber = shipment?.purchaseOrderNumber || null;\n    const shipmentChanges = useSelector(selectShipmentChangesById(shipmentId));\n\n    const idDetails: Array<InfoTableRowT> = [\n        {\n            icon: null,\n            name: t('broker-order-details.shipment-details.columns.tour-number'),\n            value: shipment?.number,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n        },\n    ];\n\n    const poDetails: Array<InfoTableRowT> = [\n        {\n            icon: null,\n            name: t('common:order-details.columns.po-number'),\n            value: onUpdateShipment ? (\n                <EditableStringValueFormatter\n                    key={`${shipment?.id}-po-number`}\n                    value={poNumber}\n                    disableReasonTooltipNode={\n                        shipment?.shipmentEditUnavailableReason && (\n                            <ShipmentEditUnavailableReason reason={shipment?.shipmentEditUnavailableReason} />\n                        )\n                    }\n                    onUpdate={(value) => {\n                        if (!shipmentId) {\n                            logWarning('Failed to update poNumber, empty shipmentId');\n                            return;\n                        }\n                        onUpdateShipment(shipmentId, { poNumber: value || '', description: description || '' });\n                    }}\n                >\n                    {(value) =>\n                        value || (\n                            <PlaceholderFormatter>\n                                {t('common:info-table.placeholders.not-specified')}\n                            </PlaceholderFormatter>\n                        )\n                    }\n                </EditableStringValueFormatter>\n            ) : (\n                poNumber || t('common:info-table.placeholders.not-specified')\n            ),\n            valueMods: { isBold: true, withoutPadding: true },\n            testSelector: 'po-number',\n        },\n    ];\n\n    const brokerWindowAppointmentWarning = (\n        <Tooltip\n            position={TooltipPositionEnum.topLeft}\n            theme={TooltipThemeEnum.black}\n            tooltipNode={\n                <TooltipContent theme={TooltipContentThemeEnum.black} width={150}>\n                    {t('broker-orders.details.broke-window-appointment-warning')}\n                </TooltipContent>\n            }\n        >\n            {(isShow, childrenClassName) => (\n                <TimeWindowIcon\n                    className={childrenClassName}\n                    fillColor={StyleGuideColorsEnum.transparent}\n                    strokeColor={StyleGuideColorsEnum.orange}\n                />\n            )}\n        </Tooltip>\n    );\n\n    const pickupWaypoint = waypointById?.[shipment?.pickupPointId as RoutePointIdT] || null;\n\n    const pickupBrokerAppointmentStatus = checkBrokerAppointmentStatus({\n        shouldBrokerWindowAppointment: pickupWaypoint?.appointmentByBroker,\n        originalDateTimeFrom: pickupWaypoint?.originalDateTimeFrom,\n        originalDateTimeTo: pickupWaypoint?.originalDateTimeTo,\n        correctedDateTimeFrom: pickupWaypoint?.correctedDateTimeFrom,\n        correctedDateTimeTo: pickupWaypoint?.correctedDateTimeTo,\n    });\n\n    const originPointDetails: Array<InfoTableRowT> = [\n        {\n            icon: <NumberIcon number={(pickupWaypoint?.index || 0) + 1} fillColor={StyleGuideColorsEnum.charcoal} />,\n            name: t('broker-order-details.point-details.by-type.pickup'),\n            value: <LocationLabel format=\"s1_s2_zip_city_country\" location={pickupWaypoint?.address} />,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n            rightNode:\n                pickupWaypoint && onStartEditStopContact ? (\n                    <TransparentTriggerWithTooltip\n                        tooltipContent={t('broker-order-details.tooltips.edit-contacts')}\n                        onClick={() => onStartEditStopContact(pickupWaypoint)}\n                        transparentTriggerProps={{\n                            spaces: 'xs',\n                            leftIcon: (\n                                <ContactBadgeIcon\n                                    fillColor={StyleGuideColorsEnum.light}\n                                    strokeColor={StyleGuideColorsEnum.slate}\n                                />\n                            ),\n                        }}\n                    />\n                ) : null,\n            rightNodeMods: { withoutPadding: true },\n            rows: [\n                ...(pickupBrokerAppointmentStatus?.shouldShowCorrectedDateTime\n                    ? [\n                          {\n                              icon: null,\n                              name: t('broker-order-details.point-details.columns.original-time-slot'),\n                              value: formatTimeInterval(\n                                  pickupWaypoint?.originalDateTimeFrom,\n                                  pickupWaypoint?.originalDateTimeTo,\n                              ),\n                              valueMods: {\n                                  emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                  isBold: true,\n                              },\n                              hasBottomBorder: true,\n                          },\n                          {\n                              icon: pickupBrokerAppointmentStatus?.shouldBrokerWindowAppointment\n                                  ? brokerWindowAppointmentWarning\n                                  : null,\n                              name: (\n                                  <AttentionTextFormatter\n                                      isActive={pickupBrokerAppointmentStatus?.shouldBrokerWindowAppointment}\n                                  >\n                                      {t('broker-order-details.point-details.columns.corrected-time-slot')}\n                                  </AttentionTextFormatter>\n                              ),\n                              value: (\n                                  <AttentionTextFormatter\n                                      isActive={pickupBrokerAppointmentStatus?.shouldBrokerWindowAppointment}\n                                  >\n                                      {formatTimeInterval(\n                                          pickupWaypoint?.correctedDateTimeFrom,\n                                          pickupWaypoint?.correctedDateTimeTo,\n                                      )}\n                                  </AttentionTextFormatter>\n                              ),\n                              valueMods: {\n                                  emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                  isBold: true,\n                              },\n                              hasBottomBorder: true,\n                          },\n                      ]\n                    : [\n                          {\n                              icon: pickupBrokerAppointmentStatus?.shouldBrokerWindowAppointment\n                                  ? brokerWindowAppointmentWarning\n                                  : null,\n                              name: (\n                                  <AttentionTextFormatter\n                                      isActive={pickupBrokerAppointmentStatus?.shouldBrokerWindowAppointment}\n                                  >\n                                      {t('broker-order-details.point-details.columns.time-slot')}\n                                  </AttentionTextFormatter>\n                              ),\n                              value: (\n                                  <AttentionTextFormatter\n                                      isActive={pickupBrokerAppointmentStatus?.shouldBrokerWindowAppointment}\n                                  >\n                                      {formatTimeInterval(\n                                          pickupWaypoint?.correctedDateTimeFrom || pickupWaypoint?.originalDateTimeFrom,\n                                          pickupWaypoint?.correctedDateTimeTo || pickupWaypoint?.originalDateTimeTo,\n                                      )}\n                                  </AttentionTextFormatter>\n                              ),\n                              valueMods: {\n                                  emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                  isBold: true,\n                              },\n                              hasBottomBorder: true,\n                          },\n                      ]),\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.company-name'),\n                    value: pickupWaypoint?.contact?.companyName,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'contact-company-name',\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.contact-name'),\n                    value: pickupWaypoint?.contact?.fullName,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.contact-phone'),\n                    value: pickupWaypoint?.contact?.phone,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.contact-email'),\n                    value: pickupWaypoint?.contact?.email,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.reference-number'),\n                    value: shipment?.pickupReferenceNumber,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.comments'),\n                    value: pickupWaypoint?.contact?.comment,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                },\n            ],\n        },\n    ];\n\n    const dropOffWaypoint = waypointById?.[shipment?.dropOffPointId as RoutePointIdT] || null;\n\n    const dropOffBrokerAppointmentStatus = checkBrokerAppointmentStatus({\n        shouldBrokerWindowAppointment: dropOffWaypoint?.appointmentByBroker,\n        originalDateTimeFrom: dropOffWaypoint?.originalDateTimeFrom,\n        originalDateTimeTo: dropOffWaypoint?.originalDateTimeTo,\n        correctedDateTimeFrom: dropOffWaypoint?.correctedDateTimeFrom,\n        correctedDateTimeTo: dropOffWaypoint?.correctedDateTimeTo,\n    });\n\n    const destinationPointDetails: Array<InfoTableRowT> = [\n        {\n            icon: <NumberIcon number={(dropOffWaypoint?.index || 0) + 1} fillColor={StyleGuideColorsEnum.charcoal} />,\n            name: t('broker-order-details.point-details.by-type.delivery'),\n            value: <LocationLabel format=\"s1_s2_zip_city_country\" location={dropOffWaypoint?.address} />,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n            rightNode:\n                dropOffWaypoint && onStartEditStopContact ? (\n                    <TransparentTriggerWithTooltip\n                        tooltipContent={t('broker-order-details.tooltips.edit-contacts')}\n                        onClick={() => onStartEditStopContact(dropOffWaypoint)}\n                        transparentTriggerProps={{\n                            spaces: 'xs',\n                            leftIcon: (\n                                <ContactBadgeIcon\n                                    fillColor={StyleGuideColorsEnum.light}\n                                    strokeColor={StyleGuideColorsEnum.slate}\n                                />\n                            ),\n                        }}\n                    />\n                ) : null,\n            rightNodeMods: { withoutPadding: true },\n            rows: [\n                ...(dropOffBrokerAppointmentStatus.shouldShowCorrectedDateTime\n                    ? [\n                          {\n                              icon: null,\n                              name: t('broker-order-details.point-details.columns.original-time-slot'),\n                              value: formatTimeInterval(\n                                  dropOffWaypoint?.originalDateTimeFrom,\n                                  dropOffWaypoint?.originalDateTimeTo,\n                              ),\n                              valueMods: {\n                                  emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                  isBold: true,\n                              },\n                              hasBottomBorder: true,\n                          },\n                          {\n                              icon: dropOffBrokerAppointmentStatus?.shouldBrokerWindowAppointment\n                                  ? brokerWindowAppointmentWarning\n                                  : null,\n                              name: (\n                                  <AttentionTextFormatter\n                                      isActive={dropOffBrokerAppointmentStatus?.shouldBrokerWindowAppointment}\n                                  >\n                                      {t('broker-order-details.point-details.columns.corrected-time-slot')}\n                                  </AttentionTextFormatter>\n                              ),\n                              value: (\n                                  <AttentionTextFormatter\n                                      isActive={dropOffBrokerAppointmentStatus?.shouldBrokerWindowAppointment}\n                                  >\n                                      {formatTimeInterval(\n                                          dropOffWaypoint?.correctedDateTimeFrom,\n                                          dropOffWaypoint?.correctedDateTimeTo,\n                                      )}\n                                  </AttentionTextFormatter>\n                              ),\n                              valueMods: {\n                                  emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                  isBold: true,\n                              },\n                              hasBottomBorder: true,\n                          },\n                      ]\n                    : [\n                          {\n                              icon: dropOffBrokerAppointmentStatus?.shouldBrokerWindowAppointment\n                                  ? brokerWindowAppointmentWarning\n                                  : null,\n                              name: (\n                                  <AttentionTextFormatter\n                                      isActive={dropOffBrokerAppointmentStatus?.shouldBrokerWindowAppointment}\n                                  >\n                                      {t('broker-order-details.point-details.columns.time-slot')}\n                                  </AttentionTextFormatter>\n                              ),\n                              value: (\n                                  <AttentionTextFormatter\n                                      isActive={dropOffBrokerAppointmentStatus?.shouldBrokerWindowAppointment}\n                                  >\n                                      {formatTimeInterval(\n                                          dropOffWaypoint?.correctedDateTimeFrom ||\n                                              dropOffWaypoint?.originalDateTimeFrom,\n                                          dropOffWaypoint?.correctedDateTimeTo || dropOffWaypoint?.originalDateTimeTo,\n                                      )}\n                                  </AttentionTextFormatter>\n                              ),\n                              valueMods: {\n                                  emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                  isBold: true,\n                              },\n                              hasBottomBorder: true,\n                          },\n                      ]),\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.company-name'),\n                    value: dropOffWaypoint?.contact?.companyName,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'contact-company-name',\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.contact-name'),\n                    value: dropOffWaypoint?.contact?.fullName,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.contact-phone'),\n                    value: dropOffWaypoint?.contact?.phone,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.contact-email'),\n                    value: dropOffWaypoint?.contact?.email,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.reference-number'),\n                    value: shipment?.dropOffReferenceNumber,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.comments'),\n                    value: dropOffWaypoint?.contact?.comment,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                },\n            ],\n        },\n    ];\n\n    const shipmentDetails: Array<InfoTableRowT | null> = [\n        {\n            icon: (\n                <CargoUnitIcon\n                    size={DEFAULT_ICON_SIZE}\n                    fillColor={StyleGuideColorsEnum.light}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                />\n            ),\n            name: t('common:order-details.columns.load-units'),\n            value: <UnitTypeCount type={getLoadUnitType(shipment?.unitsType)} count={shipment?.maxNumberOfUnits} />,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n        },\n        {\n            icon: <WeightIcon fillColor={StyleGuideColorsEnum.gray} />,\n            name: t('common:order-details.columns.cargo-weight'),\n            value: <UnitTypeCount count={shipment?.weight} type={UnitTypeEnum.kilogramsAbbreviation} />,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n        },\n        isReeferTrailer\n            ? {\n                  icon: <SnowflakeIcon fillColor={StyleGuideColorsEnum.gray} />,\n                  name: t('common:order-details.columns.temperature'),\n                  value: (\n                      <TemperatureModeFormatter\n                          lowestTemperature={shipment?.lowestTemperature}\n                          highestTemperature={shipment?.highestTemperature}\n                      />\n                  ),\n                  valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n              }\n            : null,\n        {\n            icon: <CommentIcon fillColor={StyleGuideColorsEnum.light} strokeColor={StyleGuideColorsEnum.gray} />,\n            name: t('common:order-details.columns.description'),\n            value: onUpdateShipment ? (\n                <EditableStringValueFormatter\n                    key={`${shipment?.id}-description`}\n                    value={description}\n                    disableReasonTooltipNode={\n                        shipment?.shipmentEditUnavailableReason && (\n                            <ShipmentEditUnavailableReason reason={shipment?.shipmentEditUnavailableReason} />\n                        )\n                    }\n                    onUpdate={(value) => {\n                        if (!shipmentId) {\n                            logWarning('Failed to update description, empty shipmentId');\n                            return;\n                        }\n                        onUpdateShipment(shipmentId, { description: value || '', poNumber: poNumber || '' });\n                    }}\n                >\n                    {(value) =>\n                        value || (\n                            <PlaceholderFormatter>\n                                {t('common:info-table.placeholders.not-specified')}\n                            </PlaceholderFormatter>\n                        )\n                    }\n                </EditableStringValueFormatter>\n            ) : (\n                description || t('common:info-table.placeholders.not-specified')\n            ),\n            valueMods: { isBold: true, withoutPadding: true },\n        },\n    ];\n\n    const papersBadge = useRenderPapersTabCount({\n        optimisticPapers: shipmentChanges?.optimisticPapers,\n        entityPapers: shipment?.attachedPapers,\n    });\n\n    const takeShotsOfPapersEvent = React.useMemo(() => {\n        return (\n            tourShipmentActions?.find((action) => {\n                return action?.actions?.some((shipmentAction) => {\n                    return shipmentAction?.type === 'TAKE_SHOTS_OF_PAPERS';\n                });\n            }) || null\n        );\n    }, [tourShipmentActions]);\n\n    const { attachPaperRenderTrigger } = useAttachPaperForPaperTabRenderTrigger({\n        triggerText: t('common:papers-card.attach-new'),\n        hasPlusIcon: true,\n    });\n\n    return (\n        <>\n            <Card\n                keyboardShortcut={keyboardShortcut}\n                titleNode={t('broker-order-details.shipment-details.title', {\n                    number: shipmentNumber,\n                })}\n                rightNode={\n                    <>\n                        <ShipmentWarningPill isSymmetrical warning={shipment?.warning} />\n                        <ShipmentStatusPill isSymmetrical status={shipment?.status} />\n                    </>\n                }\n                className={className}\n                hasHeaderBottomBorder\n                footerNode={\n                    permissions?.canChangeShipmentStatusOnBrokerTour || permissions?.canCancelShipmentOnBrokerTour ? (\n                        <ChangeShipmentStatusFooter\n                            isChangeStatusAllowed={permissions.canChangeShipmentStatusOnBrokerTour}\n                            isCancelAllowed={permissions.canCancelShipmentOnBrokerTour}\n                            isShowLoading={!!shipment && !hideLoaderStatusSet.has(shipment?.status)}\n                            shipmentId={shipment?.id || null}\n                            takeShotsOfPapersTourShipmentEvent={takeShotsOfPapersEvent}\n                            shipment={shipment}\n                            onAttachShipmentPaper={onAttachShipmentPaper}\n                            shouldConfirmForCancelLastShipment={shouldConfirmForCancelLastShipment}\n                        />\n                    ) : null\n                }\n                anchor={getShipmentAnchor(shipment?.id || null)}\n                isHighlighted={highlightedEntityId === shipment?.id}\n            >\n                <div>\n                    <DetailsOrPapersTabs\n                        papersBadge={papersBadge}\n                        papersTabRightNode={\n                            <ShipmentPaperAttachPapersDropdownControl\n                                shipmentId={shipmentId}\n                                onAttachShipmentPaper={onAttachShipmentPaper}\n                                renderTrigger={attachPaperRenderTrigger}\n                            />\n                        }\n                    >\n                        <div className={cx('content')}>\n                            <InfoTable shouldRenderIcons rows={idDetails} className={cx('table', 'table--id')} />\n                            <InfoTable shouldRenderIcons rows={poDetails} className={cx('table', 'table--po')} />\n                            <InfoTable\n                                shouldRenderIcons\n                                rows={originPointDetails}\n                                className={cx('table', 'table--point')}\n                            />\n                            <InfoTable\n                                shouldRenderIcons\n                                rows={destinationPointDetails}\n                                className={cx('table', 'table--point')}\n                            />\n                            <InfoTable\n                                shouldRenderIcons\n                                rows={shipmentDetails}\n                                className={cx('table', 'table--shipment')}\n                            />\n                        </div>\n                        <ShipmentPapersTabContent\n                            attachedPapers={shipment?.attachedPapers || null}\n                            shipmentId={shipmentId}\n                            onOpenUserDetails={onOpenUserDetails}\n                            getShipmentPaperThumbnailUrl={getShipmentPaperThumbnailUrl}\n                            onOpenGalleryShipmentPaper={onOpenGalleryShipmentPaper}\n                            onDownloadShipmentPaper={onDownloadShipmentPaper}\n                            onDeleteShipmentPaper={onDeleteShipmentPaper}\n                            onAttachShipmentPaper={onAttachShipmentPaper}\n                        />\n                    </DetailsOrPapersTabs>\n                </div>\n            </Card>\n        </>\n    );\n});\n\nexport default ShipmentDetailsCard;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './EditTrailerSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport TrailerDetailsForm from './TrailerDetailsForm/TrailerDetailsForm';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectAddTrailerRequestStatus,\n    selectTrailersDetailsByIds,\n    selectUpdateTrailersRequestStatus,\n} from 'common/store/trailers/selectors';\nimport { addTrailerRequest, updateTrailer } from 'common/store/trailers/actions';\nimport { FormValuesT as DetailsFormValuesT } from './TrailerDetailsForm/constants';\nimport { prepareApiCreateTrailer, prepareApiModifyTrailer } from './prepare-api-trailer';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport { logWarning } from 'common/utils/logger';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    partnerId: PartnerIdT;\n    trailerId: TrailerIdT | null;\n    onGoBack?: () => void;\n    onClose?: () => void;\n    onCancel: () => void;\n    setNeedCloseConfirmation?: (needCloseConfirmation: boolean) => void;\n    onOpenTruckDetails: (truckId: TruckIdT) => void;\n    onOpenTrailerDetails: (trailerId: TrailerIdT) => void;\n    onOpenUserDetails: (userId: UserIdT, isBrokerUser?: boolean) => void;\n};\n\nconst EditTrailerSidebarContent: React.FC<PropsT> = (props) => {\n    const {\n        onGoBack,\n        partnerId,\n        trailerId,\n        onClose,\n        onCancel,\n        setNeedCloseConfirmation,\n        onOpenTruckDetails,\n        onOpenTrailerDetails,\n        onOpenUserDetails,\n    } = props;\n\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n\n    const updateRequestStatus = useSelector(selectUpdateTrailersRequestStatus(partnerId));\n    const addRequestStatus = useSelector(selectAddTrailerRequestStatus(partnerId));\n\n    const detailsById = useSelector(selectTrailersDetailsByIds(partnerId));\n    const trailerDetails = detailsById[trailerId as string];\n\n    const isNewTrailer = !trailerId;\n\n    const handleSubmit = (detailsFormValues: DetailsFormValuesT) => {\n        if (isNewTrailer) {\n            const request = prepareApiCreateTrailer(detailsFormValues);\n            if (!request) {\n                logWarning('failed to create trailer, empty request');\n                return;\n            }\n\n            dispatch(addTrailerRequest(request, partnerId));\n        } else if (trailerId) {\n            const request = prepareApiModifyTrailer(trailerId, detailsFormValues);\n            dispatch(updateTrailer(trailerId, request, partnerId));\n        }\n    };\n\n    const title = isNewTrailer\n        ? t('common:trailers-page.add-trailer.title')\n        : t('common:trailers-page.edit-trailer.title', {\n              plateNumber: trailerDetails?.plateNumber || '',\n          });\n\n    return (\n        <>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent onGoBack={onGoBack} title={title} onClose={onClose} />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <TrailerDetailsForm\n                    partnerId={partnerId}\n                    isLoading={updateRequestStatus.loading || addRequestStatus.loading}\n                    isNewTrailer={isNewTrailer}\n                    trailerDetails={trailerDetails}\n                    onSubmit={handleSubmit}\n                    onCancel={onCancel}\n                    setNeedCloseConfirmation={setNeedCloseConfirmation}\n                    onOpenTruckDetails={onOpenTruckDetails}\n                    onOpenTrailerDetails={onOpenTrailerDetails}\n                    onOpenUserDetails={onOpenUserDetails}\n                />\n            </SideBarLayout>\n        </>\n    );\n};\n\nexport default EditTrailerSidebarContent;\n","import { SharableStateT } from 'common/store/models';\nimport { DictCarrierAdditionalServiceTrailerTypeT } from 'common/store/additional-services-dict/models';\nimport { ANY_TRAILER_TYPE } from 'common/store/additional-services-dict/constants';\n\nexport const selectAdditionalServicesGroupsByTrailerType =\n    (trailerType: DictCarrierAdditionalServiceTrailerTypeT | null) => (state: SharableStateT) => {\n        if (!trailerType || !state.additionalServicesDict.byTrailerType) {\n            return null;\n        }\n\n        return (\n            state.additionalServicesDict.byTrailerType[trailerType] ||\n            state.additionalServicesDict.byTrailerType[ANY_TRAILER_TYPE] ||\n            null\n        );\n    };\n\nexport const selectAdditionalServicesMap =\n    (trailerType: DictCarrierAdditionalServiceTrailerTypeT | null) => (state: SharableStateT) => {\n        if (!trailerType || !state.additionalServicesDict.mapByTrailerType) {\n            return null;\n        }\n\n        return (\n            state.additionalServicesDict.mapByTrailerType[trailerType] ||\n            state.additionalServicesDict.mapByTrailerType[ANY_TRAILER_TYPE] ||\n            null\n        );\n    };\n\nexport const selectAdditionalServicesDictStatus = (state: SharableStateT) => {\n    return state.additionalServicesDict.fetchRequest;\n};\n","import { RequestStatusT } from 'common/utils/request-status';\n\nimport { PartnersStatsT } from './models';\n\nexport const FETCH_PARTNERS_STATS_REQUEST = 'broker-admin/partners-stats/FETCH_PARTNERS_STATS_REQUEST';\nexport const FETCH_PARTNERS_STATS_REQUEST_BEGIN = 'broker-admin/partners-stats/FETCH_PARTNERS_STATS_REQUEST_BEGIN';\nexport const FETCH_PARTNERS_STATS_REQUEST_ERROR = 'broker-admin/partners-stats/FETCH_PARTNERS_STATS_REQUEST_ERROR';\nexport const FETCH_PARTNERS_STATS_REQUEST_SUCCESS = 'broker-admin/partners-stats/FETCH_PARTNERS_STATS_REQUEST_SUCCESS';\n\nexport type PartnersStatsStateT = {\n    stats: PartnersStatsT | null;\n    fetchRequest: RequestStatusT;\n};\n\nexport type FetchPartnersStatsActionT = {\n    type: typeof FETCH_PARTNERS_STATS_REQUEST;\n    options?: FetchOptionsT;\n};\n\nexport type FetchPartnersStatsBeginActionT = {\n    type: typeof FETCH_PARTNERS_STATS_REQUEST_BEGIN;\n};\n\nexport type FetchPartnersStatsSuccessActionT = {\n    type: typeof FETCH_PARTNERS_STATS_REQUEST_SUCCESS;\n    stats: PartnersStatsT;\n};\n\nexport type FetchPartnersStatsErrorActionT = {\n    type: typeof FETCH_PARTNERS_STATS_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type PartnersStatsActionT =\n    | FetchPartnersStatsActionT\n    | FetchPartnersStatsBeginActionT\n    | FetchPartnersStatsSuccessActionT\n    | FetchPartnersStatsErrorActionT;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './NameCell.scss';\nimport AdditionalServiceLabel from 'common/components/AdditionalServiceLabel/AdditionalServiceLabel';\nimport { ServiceTableRowT } from 'broker-admin/layouts/SettingsPage/AdditionalServicesSettings/ServicesTable/models';\nimport AdditionalServiceGroupLabel from 'broker-admin/components/AdditionalServiceGroupLabel/AdditionalServiceGroupLabel';\n\ntype PropsT = {\n    row: ServiceTableRowT;\n};\n\nconst cx = classNames.bind(styles);\n\nconst NameCell: React.FC<PropsT> = React.memo((props) => {\n    const { row } = props;\n\n    return (\n        <div className={cx('cell')}>\n            <div className={cx('name')}>\n                <AdditionalServiceLabel type={row.service.service} />\n            </div>\n            <div className={cx('group')}>\n                <AdditionalServiceGroupLabel category={row.category} trailerType={row.trailerType || null} />\n            </div>\n        </div>\n    );\n});\n\nexport default NameCell;\n","import isNumber from 'lodash/isNumber';\n\nexport type AssignmentVehiclesSuggestItemT = Api2.Definitions.CarrierAssetForAssignment;\n\nexport type LinksT = {\n    byTruckId: Record<TruckIdT, TrailerIdT>;\n    byTrailerId: Record<TrailerIdT, TruckIdT>;\n};\n\nexport type TrailerAssignmentInfoT = Omit<\n    NonNullable<Api2.Definitions.CarrierAssetForAssignment['trailer']>,\n    'latitude' | 'longitude'\n> & {\n    arrivalDate?: string;\n    currentPoint: {\n        latitude: number;\n        longitude: number;\n    } | null;\n    futurePoint: {\n        latitude: number;\n        longitude: number;\n    } | null;\n};\n\nexport type TruckAssignmentInfoT = Omit<\n    NonNullable<Api2.Definitions.CarrierAssetForAssignment['truck']>,\n    'latitude' | 'longitude'\n> & {\n    arrivalDate?: string;\n    currentPoint: {\n        latitude: number;\n        longitude: number;\n    } | null;\n    futurePoint: {\n        latitude: number;\n        longitude: number;\n    } | null;\n};\n\nexport const getAssignmentVehicleLinks = (vehicles: AssignmentVehiclesSuggestItemT[]): LinksT => {\n    return vehicles.reduce<LinksT>(\n        (acc, vehicle) => {\n            const truckId = vehicle?.truck?.id;\n            const trailerId = vehicle?.trailer?.id;\n            if (!truckId || !trailerId) {\n                return acc;\n            }\n\n            return {\n                byTruckId: {\n                    ...acc.byTruckId,\n                    [truckId]: trailerId,\n                },\n                byTrailerId: {\n                    ...acc.byTrailerId,\n                    [trailerId]: truckId,\n                },\n            };\n        },\n        {\n            byTruckId: {},\n            byTrailerId: {},\n        },\n    );\n};\n\nexport const getTrailerById = (\n    vehicles: AssignmentVehiclesSuggestItemT[],\n): Record<TrailerIdT, TrailerAssignmentInfoT> => {\n    return vehicles.reduce<Record<TrailerIdT, TrailerAssignmentInfoT>>((acc, vehicle) => {\n        const { trailer, expectedLatitude, expectedLongitude, expectedArrivalDate } = vehicle;\n\n        if (!trailer?.id) {\n            return acc;\n        }\n\n        const { currentLatitude, currentLongitude, ...restTrailer } = trailer;\n\n        const futurePoint =\n            isNumber(expectedLatitude) && isNumber(expectedLongitude)\n                ? {\n                      latitude: expectedLatitude,\n                      longitude: expectedLongitude,\n                  }\n                : null;\n\n        const currentPoint =\n            isNumber(currentLatitude) && isNumber(currentLongitude)\n                ? {\n                      latitude: currentLatitude,\n                      longitude: currentLongitude,\n                  }\n                : null;\n\n        return {\n            ...acc,\n            [trailer.id]: {\n                ...restTrailer,\n                arrivalDate: expectedArrivalDate,\n                currentPoint,\n                futurePoint,\n            },\n        };\n    }, {});\n};\n\nexport const getTruckById = (vehicles: AssignmentVehiclesSuggestItemT[]): Record<TruckIdT, TruckAssignmentInfoT> => {\n    return vehicles.reduce<Record<TruckIdT, TruckAssignmentInfoT>>((acc, vehicle) => {\n        const { truck, expectedLatitude, expectedLongitude, expectedArrivalDate } = vehicle;\n\n        if (!truck?.id) {\n            return acc;\n        }\n\n        const { currentLatitude, currentLongitude, ...restTruck } = truck;\n\n        const futurePoint =\n            isNumber(expectedLatitude) && isNumber(expectedLongitude)\n                ? {\n                      latitude: expectedLatitude,\n                      longitude: expectedLongitude,\n                  }\n                : null;\n\n        const currentPoint =\n            isNumber(currentLatitude) && isNumber(currentLongitude)\n                ? {\n                      latitude: currentLatitude,\n                      longitude: currentLongitude,\n                  }\n                : null;\n\n        return {\n            ...acc,\n            [truck.id]: {\n                ...restTruck,\n                arrivalDate: expectedArrivalDate,\n                currentPoint,\n                futurePoint,\n            },\n        };\n    }, {});\n};\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './AlertsSettingsForm.scss';\n\nimport { useFormik } from 'formik';\nimport { useTranslation } from 'react-i18next';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport prepareApiSystemSettings from './prepare-system-settings';\nimport NumberInput from 'common/components/NumberInput/NumberInput';\nimport withWidgetChangesDetector from 'common/components/SaveChangesNotification/withWidgetChangesDetector';\nimport { UnitTypeEnum } from 'common/constants';\nimport Widget from 'common/components/Widget/Widget';\nimport values from 'lodash/values';\nimport { getMaskByType } from '../utils';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport HiddenSubmitButtonForKeyboardEnter from 'common/components/HiddenEnterSubmitButton/HiddenSubmitButtonForKeyboardEnter';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport { SystemSettingsFormCommonPropsT } from 'broker-admin/layouts/SettingsPage/SystemSettings/models';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport { useWatchFormAnyErrors } from 'common/utils/hooks/useWatchFormFormHasErrors';\n\nconst cx = classNames.bind(styles);\n\ntype NumberFieldsT =\n    | FieldsEnum.transportationOrderHasNoDriverAlertTime\n    | FieldsEnum.assignDriverLimitAlert\n    | FieldsEnum.assignAssetLimitAlert\n    | FieldsEnum.transportationOrderHasNoAssetsAlertTime\n    | FieldsEnum.allowedGAPToBeDelayed\n    | FieldsEnum.deleteNotificationsOlderDays\n    | FieldsEnum.docExpiresSoonAlert\n    | FieldsEnum.radiusAroundWaypointM\n    | FieldsEnum.timeLimitToCancelOrderHours\n    | FieldsEnum.timeLimitToCancelTransportationOrderHours;\n\nconst UNIT_TYPE_MAP: Record<NumberFieldsT, UnitTypeEnum> = {\n    [FieldsEnum.transportationOrderHasNoDriverAlertTime]: UnitTypeEnum.minutesAbbreviation,\n    [FieldsEnum.assignDriverLimitAlert]: UnitTypeEnum.minutesAbbreviation,\n    [FieldsEnum.assignAssetLimitAlert]: UnitTypeEnum.minutesAbbreviation,\n    [FieldsEnum.transportationOrderHasNoAssetsAlertTime]: UnitTypeEnum.minutesAbbreviation,\n    [FieldsEnum.allowedGAPToBeDelayed]: UnitTypeEnum.minutesAbbreviation,\n    [FieldsEnum.deleteNotificationsOlderDays]: UnitTypeEnum.days,\n    [FieldsEnum.docExpiresSoonAlert]: UnitTypeEnum.days,\n    [FieldsEnum.radiusAroundWaypointM]: UnitTypeEnum.metersAbbreviation,\n    [FieldsEnum.timeLimitToCancelOrderHours]: UnitTypeEnum.hoursAbbreviation,\n    [FieldsEnum.timeLimitToCancelTransportationOrderHours]: UnitTypeEnum.hoursAbbreviation,\n};\n\nconst STEP_MAP: Record<NumberFieldsT, number> = {\n    [FieldsEnum.transportationOrderHasNoDriverAlertTime]: 10,\n    [FieldsEnum.assignDriverLimitAlert]: 10,\n    [FieldsEnum.assignAssetLimitAlert]: 10,\n    [FieldsEnum.transportationOrderHasNoAssetsAlertTime]: 10,\n    [FieldsEnum.allowedGAPToBeDelayed]: 10,\n    [FieldsEnum.deleteNotificationsOlderDays]: 1,\n    [FieldsEnum.docExpiresSoonAlert]: 1,\n    [FieldsEnum.radiusAroundWaypointM]: 100,\n    [FieldsEnum.timeLimitToCancelOrderHours]: 1,\n    [FieldsEnum.timeLimitToCancelTransportationOrderHours]: 1,\n};\n\nconst FIELD_LABEL_T_MAP: Record<FieldsEnum, string> = {\n    [FieldsEnum.transportationOrderHasNoDriverAlertTime]: 'price-settings.alerts-form.fields.noDriverAlert.label',\n    [FieldsEnum.assignDriverLimitAlert]: 'price-settings.alerts-form.fields.assignDriverLimitAlert.label',\n    [FieldsEnum.assignAssetLimitAlert]: 'price-settings.alerts-form.fields.assignAssetLimitAlert.label',\n    [FieldsEnum.transportationOrderHasNoAssetsAlertTime]: 'price-settings.alerts-form.fields.noAssetAlert.label',\n    [FieldsEnum.allowedGAPToBeDelayed]: 'price-settings.alerts-form.fields.allowedGAPToBeDelayed.label',\n    [FieldsEnum.deleteNotificationsOlderDays]: 'price-settings.alerts-form.fields.deleteNotificationsOlderDays.label',\n    [FieldsEnum.docExpiresSoonAlert]: 'price-settings.alerts-form.fields.docExpiresSoonAlert.label',\n    [FieldsEnum.radiusAroundWaypointM]: 'price-settings.alerts-form.fields.radiusAroundWaypointM.label',\n    [FieldsEnum.timeLimitToCancelOrderHours]: 'price-settings.alerts-form.fields.timeLimitToCancelOrderHours.label',\n    [FieldsEnum.timeLimitToCancelTransportationOrderHours]:\n        'price-settings.alerts-form.fields.timeLimitToCancelTransportationOrderHours.label',\n};\n\nconst FIELD_DESCRIPTION_T_MAP: Record<FieldsEnum, string> = {\n    [FieldsEnum.transportationOrderHasNoDriverAlertTime]: 'price-settings.alerts-form.fields.noDriverAlert.description',\n    [FieldsEnum.assignDriverLimitAlert]: 'price-settings.alerts-form.fields.assignDriverLimitAlert.description',\n    [FieldsEnum.assignAssetLimitAlert]: 'price-settings.alerts-form.fields.assignAssetLimitAlert.description',\n    [FieldsEnum.transportationOrderHasNoAssetsAlertTime]: 'price-settings.alerts-form.fields.noAssetAlert.description',\n    [FieldsEnum.allowedGAPToBeDelayed]: 'price-settings.alerts-form.fields.allowedGAPToBeDelayed.description',\n    [FieldsEnum.deleteNotificationsOlderDays]:\n        'price-settings.alerts-form.fields.deleteNotificationsOlderDays.description',\n    [FieldsEnum.docExpiresSoonAlert]: 'price-settings.alerts-form.fields.docExpiresSoonAlert.description',\n    [FieldsEnum.radiusAroundWaypointM]: 'price-settings.alerts-form.fields.radiusAroundWaypointM.description',\n    [FieldsEnum.timeLimitToCancelOrderHours]:\n        'price-settings.alerts-form.fields.timeLimitToCancelOrderHours.description',\n    [FieldsEnum.timeLimitToCancelTransportationOrderHours]:\n        'price-settings.alerts-form.fields.timeLimitToCancelTransportationOrderHours.description',\n};\n\ntype PropsT = SystemSettingsFormCommonPropsT;\n\nconst ALL_FIELDS = values(FieldsEnum);\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(ALL_FIELDS);\n\nconst AlertsSettingsForm: React.FC<PropsT> = (props) => {\n    const { systemSettings, isLoading, title, onUpdate } = props;\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values, { systemSettings });\n    }, [t, systemSettings]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues(systemSettings);\n        const errors = validateForm(t, values, { systemSettings });\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [systemSettings]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const apiSystemSettings = prepareApiSystemSettings(values);\n            onUpdate(apiSystemSettings);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormCallbacks) {\n            remoteFormActionsContext.setRemoteFormCallbacks({\n                submit: formik.submitForm,\n                reset: formik.resetForm,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.submitForm, formik.resetForm]);\n\n    const hasFormAnyErros = useWatchFormAnyErrors(formik.errors);\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormState) {\n            remoteFormActionsContext.setRemoteFormState({\n                hasChanges: hasAnyFieldValueChanges,\n                hasErrors: hasFormAnyErros,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasFormAnyErros, hasAnyFieldValueChanges]);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormRequest) {\n            remoteFormActionsContext.setRemoteFormRequest({\n                isLoading,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isLoading]);\n\n    const WidgetChangesDetector = withWidgetChangesDetector(formik.values, initialValues);\n\n    const renderNumberField = (name: NumberFieldsT): React.ReactNode => {\n        return (\n            <FormikField\n                className={cx('field')}\n                name={name}\n                error={formik.errors[name]}\n                meta={formik.getFieldMeta(name)}\n                label={t(FIELD_LABEL_T_MAP[name])}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n                tooltipNode={\n                    <TooltipContent theme={TooltipContentThemeEnum.black} width={250}>\n                        {t(FIELD_DESCRIPTION_T_MAP[name])}\n                    </TooltipContent>\n                }\n            >\n                {(props) => (\n                    <NumberInput\n                        name={name}\n                        unitType={UNIT_TYPE_MAP[name]}\n                        mask={getMaskByType(UNIT_TYPE_MAP[name])}\n                        step={STEP_MAP[name]}\n                        value={formik.values[name]}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                        hasChanges={props.hasChanges}\n                    />\n                )}\n            </FormikField>\n        );\n    };\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <Widget className={cx('widget')} title={title} rightNode={<WidgetChangesDetector fields={ALL_FIELDS} />}>\n                <div className={cx('widget__inner')}>\n                    <FieldGroup>\n                        {renderNumberField(FieldsEnum.transportationOrderHasNoDriverAlertTime)}\n                        {renderNumberField(FieldsEnum.assignDriverLimitAlert)}\n                    </FieldGroup>\n                    <FieldGroup>\n                        {renderNumberField(FieldsEnum.transportationOrderHasNoAssetsAlertTime)}\n                        {renderNumberField(FieldsEnum.assignAssetLimitAlert)}\n                    </FieldGroup>\n                    <FieldGroup>\n                        {renderNumberField(FieldsEnum.allowedGAPToBeDelayed)}\n                        {renderNumberField(FieldsEnum.deleteNotificationsOlderDays)}\n                    </FieldGroup>\n                    <FieldGroup>\n                        {renderNumberField(FieldsEnum.docExpiresSoonAlert)}\n                        {renderNumberField(FieldsEnum.radiusAroundWaypointM)}\n                    </FieldGroup>\n                    <FieldGroup>\n                        {renderNumberField(FieldsEnum.timeLimitToCancelOrderHours)}\n                        {renderNumberField(FieldsEnum.timeLimitToCancelTransportationOrderHours)}\n                    </FieldGroup>\n                    <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n                    <HiddenSubmitButtonForKeyboardEnter />\n                </div>\n            </Widget>\n        </form>\n    );\n};\n\nexport default React.memo(AlertsSettingsForm) as typeof AlertsSettingsForm;\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"ReviewFooterContent__content___yuS8L\",\"action--reject\":\"ReviewFooterContent__action--reject___P4IIA\",\"action--approve\":\"ReviewFooterContent__action--approve___qBgiM\",\"actions\":\"ReviewFooterContent__actions___emvjc\",\"fadeIn\":\"ReviewFooterContent__fadeIn___Reg9V\",\"blinking\":\"ReviewFooterContent__blinking___Z17lY\"};","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkEmail, checkNotEmpty } from 'common/utils/form-validators';\n\nconst REQUIRED_FIELDS = [FieldsEnum.email, FieldsEnum.partnerType];\n\nconst EMAIL_FIELDS = [FieldsEnum.email];\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n        ...checkEmail(t, EMAIL_FIELDS, values),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"PartnerDriversPage__fadeIn___mA4XW\",\"blinking\":\"PartnerDriversPage__blinking___TuaSi\"};","import { SharableStateT } from '../models';\nimport {\n    initialShipperContractLaneDetailsItemState,\n    ShipperContractLaneDetailsItemStateT,\n    ShipperContractLaneDetailsStateT,\n} from './slice';\n\nexport const selectShipperContractLaneDetailsState = (shipperContractLaneId: ShipperContractLaneIdT) => {\n    return (state: SharableStateT): ShipperContractLaneDetailsItemStateT => {\n        return (\n            state.shipperContractLaneDetails.detailsById[shipperContractLaneId] ||\n            initialShipperContractLaneDetailsItemState\n        );\n    };\n};\n\nexport const selectUpdateShipperContractLaneRequest = (\n    state: SharableStateT,\n): ShipperContractLaneDetailsStateT['updateRequest'] => {\n    return state.shipperContractLaneDetails.updateRequest;\n};\n","import * as React from 'react';\n\ntype PropsT = {\n    map: MapT | null | undefined;\n    maps: MapsT | null | undefined;\n    center: GeoPointT | null | undefined;\n};\n\nconst MapCenter: React.FC<PropsT> = React.memo((props) => {\n    const { map, maps, center } = props;\n\n    React.useEffect(() => {\n        if (!maps || !map || !center) {\n            return;\n        }\n\n        const centerLatLng = new maps.LatLng(center.lat, center.lng);\n        map.setCenter(centerLatLng);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [map, maps, center?.lat, center?.lng]);\n\n    return null;\n});\n\nexport default MapCenter;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"TourTypeMultipleDropdown__fadeIn___QRGhB\",\"blinking\":\"TourTypeMultipleDropdown__blinking___P3RVC\"};","import { LocationDescriptor } from 'history';\nimport { authRoutesEnum } from 'common/constants';\nimport { getCurrentRelativePath } from 'common/utils/history';\n\nconst parseAuthReturnUrl = (returnUrl: string | null | undefined): LocationDescriptor<TODO> => {\n    if (!returnUrl) {\n        return {\n            pathname: authRoutesEnum.home,\n        };\n    }\n\n    const [pathname, search] = returnUrl.split('?');\n\n    return {\n        pathname,\n        search: search ? `?${search}` : '',\n    };\n};\n\nconst getAuthReturnUrl = (): string => getCurrentRelativePath(window.location.href);\n\nexport { getAuthReturnUrl, parseAuthReturnUrl };\n","import React from 'react';\n\nimport cs from 'classnames';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './OpenedDatePicker.scss';\n\nimport Calendar, {\n    CalendarDateRangeValuePropsT,\n    CalendarDateValuePropsT,\n} from 'design-system/components/Calendar/Calendar';\nimport DateInputTrigger, {\n    InputDateValuePropsT,\n    InputRangeValuePropsT,\n} from 'design-system/components/date-pickers/internals/DateInputTrigger/DateInputTrigger';\nimport CalendarIcon, { CalendarIconProps } from 'common/icons/CalendarIcon';\nimport useTestSelector from 'common/utils/hooks/useTestSelector';\n\nconst cx = classNames.bind(styles);\n\ntype BasePropsT = {\n    name?: string;\n    placeholder?: string;\n    isDisabled?: boolean;\n    minDate?: string | null;\n    maxDate?: string | null;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    hasYearMonthForm?: boolean;\n    autoComplete?: string;\n    testSelectorPrefix?: string;\n    hasChanges?: boolean;\n    onBlur?: () => void;\n    onFocus?: () => void;\n    inputClassName?: string;\n    disabledDates?: string[];\n    hasClearControl?: boolean;\n};\n\nexport type OpenedDatePickerPropsT =\n    | (BasePropsT & CalendarDateValuePropsT)\n    | (BasePropsT & CalendarDateRangeValuePropsT);\n\n/* eslint-disable react/destructuring-assignment */\nconst OpenedDatePicker: React.FC<OpenedDatePickerPropsT> = (props) => {\n    const {\n        name,\n        placeholder,\n        onFocus,\n        onBlur,\n        isDisabled,\n        minDate,\n        maxDate,\n        hasError,\n        hasWarning,\n        hasYearMonthForm,\n        hasChanges,\n        autoComplete,\n        testSelectorPrefix,\n        inputClassName,\n        disabledDates,\n        hasClearControl,\n    } = props;\n\n    const handleCalendarRangeChange: CalendarDateRangeValuePropsT['onChange'] = (value, selectedDate) => {\n        if (props.isRange) {\n            props.onChange(value, selectedDate);\n        }\n    };\n\n    const handleCalendarDateChange: CalendarDateValuePropsT['onChange'] = (value, selectedDate) => {\n        if (!props.isRange) {\n            props.onChange(value, selectedDate);\n        }\n    };\n\n    const testSelector = useTestSelector(testSelectorPrefix, 'opened-date-picker');\n\n    let calendarValueProps: CalendarDateValuePropsT | CalendarDateRangeValuePropsT;\n    if (props.isRange) {\n        calendarValueProps = {\n            isRange: true,\n            value: props.value,\n            initialValue: props.initialValue,\n            onChange: handleCalendarRangeChange,\n            focusInitialDate: props.value?.from,\n        };\n    } else {\n        calendarValueProps = {\n            isRange: false,\n            value: props.value,\n            initialValue: props.initialValue,\n            onChange: handleCalendarDateChange,\n            focusInitialDate: props.value,\n        };\n    }\n\n    let inputDateValueProps: InputDateValuePropsT | InputRangeValuePropsT;\n    if (props.isRange) {\n        inputDateValueProps = {\n            isRange: true,\n            value: props.value,\n            onChange: handleCalendarRangeChange,\n        };\n    } else {\n        inputDateValueProps = {\n            isRange: false,\n            value: props.value,\n            onChange: handleCalendarDateChange,\n        };\n    }\n\n    return (\n        <div className={cx('wrap')} data-test-selector={testSelector}>\n            <Calendar\n                className={cx('calendar')}\n                minDate={minDate}\n                maxDate={maxDate}\n                hasYearMonthForm={hasYearMonthForm}\n                disabledDates={disabledDates}\n                {...calendarValueProps}\n            />\n            <DateInputTrigger\n                {...inputDateValueProps}\n                className={cs(cx('input'), inputClassName)}\n                name={name || 'datepicker'}\n                placeholder={placeholder}\n                hasError={hasError}\n                onFocus={onFocus}\n                onBlur={onBlur}\n                minDate={minDate}\n                maxDate={maxDate}\n                hasWarning={hasWarning}\n                isDisabled={isDisabled}\n                hasChanges={hasChanges}\n                autoComplete={autoComplete}\n                hasClearControl={hasClearControl}\n                renderLeftIcon={(iconMeta) => <CalendarIcon {...CalendarIconProps.getControlProps(iconMeta)} />}\n            />\n        </div>\n    );\n};\n\nexport default OpenedDatePicker;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useFormikContext } from 'formik';\n\nimport { FieldsEnum, FormValuesT } from '../constants';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport isEmpty from 'lodash/isEmpty';\n\ntype PropsT = {\n    className?: string;\n    fieldNamesPrefix: FieldsEnum.shipments;\n    index: number;\n};\n\nconst ErrorIndicatorLabel: React.FC<PropsT> = React.memo((props) => {\n    const { className, fieldNamesPrefix, index } = props;\n\n    const { t } = useTranslation();\n\n    const formik = useFormikContext<FormValuesT>();\n\n    const errors = formik.errors?.[fieldNamesPrefix]?.[index];\n    const hasErrors = !isEmpty(errors);\n\n    return (\n        <PillLabel\n            className={className}\n            theme={hasErrors ? PillLabelThemeEnum.orange : PillLabelThemeEnum.brandAccent}\n            isSymmetrical\n        >\n            {t(\n                hasErrors\n                    ? 'common:new-order-details.error-indicator.unfilled'\n                    : 'common:new-order-details.error-indicator.filled',\n            )}\n        </PillLabel>\n    );\n});\n\nexport default ErrorIndicatorLabel;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"EditTrailerSidebarContent__fadeIn___SXIgV\",\"blinking\":\"EditTrailerSidebarContent__blinking___guOm6\"};","// extracted by mini-css-extract-plugin\nexport default {\"status\":\"ColoredPriceRuleStatusLabel__status___OATAn\",\"status--active\":\"ColoredPriceRuleStatusLabel__status--active___IDlU_\",\"fadeIn\":\"ColoredPriceRuleStatusLabel__fadeIn___CmaT4\",\"blinking\":\"ColoredPriceRuleStatusLabel__blinking___Y2HFN\"};","import { TFunction } from 'i18next';\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkMaxValue, checkMinValue, checkNotEmpty } from 'common/utils/form-validators';\nimport values from 'lodash/values';\n\nconst REQUIRED_FIELDS = values<FieldsEnum>(FieldsEnum);\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n        ...checkMinValue(t, [FieldsEnum.spotRequestLimit, FieldsEnum.expiresSoonAlert], values, 1),\n        ...checkMaxValue(t, [FieldsEnum.spotRequestLimit, FieldsEnum.expiresSoonAlert], values, 24),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","// extracted by mini-css-extract-plugin\nexport default {\"timeline\":\"Timeline__timeline___Hedj0\",\"now\":\"Timeline__now___XTOnL\",\"now__text\":\"Timeline__now__text___i5xBX\",\"level\":\"Timeline__level___kFrRn\",\"fadeIn\":\"Timeline__fadeIn___Lh02a\",\"blinking\":\"Timeline__blinking___QYIYB\"};","// extracted by mini-css-extract-plugin\nexport default {\"time-interval\":\"FerryDisembarkPointPicker__time-interval___H2dos\",\"fadeIn\":\"FerryDisembarkPointPicker__fadeIn___nHwWJ\",\"blinking\":\"FerryDisembarkPointPicker__blinking___f7KoD\"};","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const shipperContractsRefreshChannel = new ViewEventChannel<{}>();\n\nexport const shipperContractsPaginationChannel = new ViewEventChannel<{\n    pageNumber: number;\n}>();\n","import moment from 'moment/moment';\n\nexport const getDateStringToTimeWindow = (timeWindow: TimeWindowT | null): string | null => {\n    const endTimeWindow = timeWindow?.[1];\n    if (!endTimeWindow) {\n        return null;\n    }\n\n    const isMidnight = moment(endTimeWindow).format('HH:mm') === '00:00';\n    return moment(endTimeWindow - (isMidnight ? 1 : 0)).format('YYYY-MM-DD');\n};\n\nexport const mergeWithRelativeTimeWindow = (\n    absoluteTimeWindow: TimeWindowT | null,\n    relativeTimeWindow: TimeWindowT | null,\n): TimeWindowT | null => {\n    if (!absoluteTimeWindow || !relativeTimeWindow) {\n        return absoluteTimeWindow;\n    }\n\n    const isMidnight = moment(absoluteTimeWindow[1]).format('HH:mm') === '00:00';\n\n    return [\n        absoluteTimeWindow[0],\n        moment(absoluteTimeWindow[1] - (isMidnight ? 1 : 0))\n            .startOf('day')\n            .valueOf() + relativeTimeWindow[1],\n    ];\n};\n","import React from 'react';\nimport { SyncAssignmentFormMapStateContextValueT } from '../hooks/useSyncMapState';\n\nconst SyncAssignmentFormMapStateContext = React.createContext<SyncAssignmentFormMapStateContextValueT>({\n    hasDropTrailerPointError: false,\n    setHasDropTrailerPointError: () => {\n        // nothing\n    },\n    hasDropTruckPointError: false,\n    setHasDropTruckPointError: () => {\n        // nothing\n    },\n    onMapClickCallback: null,\n    setOnMapClickCallback: () => {\n        // nothing\n    },\n});\n\nexport { SyncAssignmentFormMapStateContext };\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkEmail, checkNotEmpty } from 'common/utils/form-validators';\n\nconst REQUIRED_FIELDS = [\n    FieldsEnum.name,\n    FieldsEnum.legalAddressCountryCode,\n    FieldsEnum.legalAddressZipCode,\n    FieldsEnum.legalAddressCity,\n    FieldsEnum.legalAddressStreet1,\n] as const;\n\ntype MetaT = {\n    shouldShowBillingInfo: boolean;\n};\n\nconst validate = (t: TFunction, values: FormValuesT, { shouldShowBillingInfo }: MetaT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n        ...checkEmail(t, [FieldsEnum.billingEmail], values),\n        ...(shouldShowBillingInfo\n            ? checkNotEmpty(\n                  t,\n                  [\n                      FieldsEnum.billingAddressCountryCode,\n                      FieldsEnum.billingAddressZipCode,\n                      FieldsEnum.billingAddressCity,\n                      FieldsEnum.billingAddressStreet1,\n                      FieldsEnum.billingEmail,\n                  ],\n                  values,\n              )\n            : {}),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","import { ApiShipmentStatusT, ShipmentStatusEnum } from 'common/utils/api/models';\n\nexport const hideLoaderStatusSet = new Set<ApiShipmentStatusT | null | undefined>([\n    ShipmentStatusEnum.delivered,\n    ShipmentStatusEnum.canceled,\n]);\n\nexport const finallyStatusSet = new Set<ApiShipmentStatusT | null | undefined>([\n    ShipmentStatusEnum.delivered,\n    ShipmentStatusEnum.canceled,\n]);\n","import * as React from 'react';\nimport { ApiMainContactUnavailableReasonT } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    reason: ApiMainContactUnavailableReasonT | null;\n};\n\nexport const MAIN_CONTACT_UNAVAILABLE_REASON_MAP_T: Record<ApiMainContactUnavailableReasonT, string> = {\n    NO_ANY_PHONE_NUMBER: 'common:papers-card.main-contact-unavailable-reason.NO_ANY_PHONE_NUMBER',\n};\n\nconst MainContactUnavailableReasonLabel: React.FC<PropsT> = React.memo((props) => {\n    const { reason } = props;\n    const { t } = useTranslation();\n\n    if (!reason) {\n        return null;\n    }\n\n    return <span>{t(MAIN_CONTACT_UNAVAILABLE_REASON_MAP_T[reason])}</span>;\n});\n\nexport default MainContactUnavailableReasonLabel;\n","import * as React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectTrailersByIds,\n    selectTrailersDetailsByIds,\n    selectUpdateTrailersRequestStatus,\n} from 'common/store/trailers/selectors';\nimport EditTrailerSidebarContent from './EditTrailerSidebarContent/EditTrailerSidebarContent';\nimport TrailerDetailsSidebarContent from './TrailerDetailsSidebarContent/TrailerDetailsSidebarContent';\nimport { SetUnavailableVehicleQueryT } from 'common/utils/api/models';\nimport SetUnavailableAssetConfirmationModal, {\n    SetUnavailableAssetConfirmationDataT,\n} from 'common/layouts/dialogs/SetUnavailableAssetConfirmationModal/SetUnavailableAssetConfirmationModal';\nimport { AssetTypeEnum } from 'common/constants';\nimport ArchiveAssetConfirmationModal, {\n    ArchiveAssetConfirmationDataT,\n} from 'common/layouts/dialogs/ArchiveAssetConfirmationModal/ArchiveAssetConfirmationModal';\nimport ActivateAssetDialogModal, {\n    ActivateAssetConfirmationDataT,\n} from 'common/layouts/dialogs/ActivateAssetDialogModal/ActivateAssetDialogModal';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport { selectSetUnavailableVehicleRequestStatus } from 'common/store/vehicle-schedules/selectors';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport { activationTrailersRequest, archiveTrailersRequest } from 'common/store/trailers/actions';\nimport { setUnavailableVehicleRequest } from 'common/store/vehicle-schedules/actions';\nimport { ActivateTrailersRequestT } from 'common/store/trailers/models';\nimport { logWarning } from 'common/utils/logger';\n\ntype PropsT = {\n    trailerId: TrailerIdT;\n    partnerId: PartnerIdT | null;\n    onGoBack?: () => void;\n    onClose?: () => void;\n    isShowMap: boolean;\n    onToggleShowMap: () => void;\n    setNeedCloseConfirmation?: (needCloseConfirmation: boolean) => void;\n    isReadOnly?: boolean;\n    isDisableShowOnMap?: boolean;\n    onOpenTruckDetails: (truckId: TruckIdT) => void;\n    onOpenTrailerDetails: (trailerId: TrailerIdT) => void;\n    onOpenContactDetails: (contractId: CarrierContractIdT) => void;\n    onOpenUserDetails: (userId: UserIdT, isBrokerUser?: boolean) => void;\n};\n\nconst CommonEditableTrailerDetailsLayout: React.FC<PropsT> = (props) => {\n    const {\n        isReadOnly,\n        isDisableShowOnMap,\n        onGoBack,\n        trailerId,\n        partnerId,\n        onClose,\n        isShowMap,\n        onToggleShowMap,\n        setNeedCloseConfirmation,\n        onOpenTruckDetails,\n        onOpenTrailerDetails,\n        onOpenContactDetails,\n        onOpenUserDetails,\n    } = props;\n\n    const trailerById = useSelector(selectTrailersByIds(partnerId));\n\n    const [isActiveEditing, setActiveEditing] = React.useState<boolean>(false);\n\n    const trailerDetailsById = useSelector(selectTrailersDetailsByIds(partnerId));\n\n    const updateRequestStatus = useSelector(selectUpdateTrailersRequestStatus(partnerId));\n\n    React.useEffect(() => {\n        if (updateRequestStatus.ok) {\n            setActiveEditing(false);\n        }\n    }, [updateRequestStatus.ok]);\n\n    const dispatch = useDispatch();\n\n    const handleEdit = () => {\n        setActiveEditing(true);\n    };\n\n    const activateAssetConfirmation = useModalDialog<ActivateAssetConfirmationDataT>();\n    const handleActivate = (trailerId: TrailerIdT | null): void => {\n        if (!trailerId || !partnerId) {\n            logWarning('Empty trailerId or partnerId in handleActivate');\n            return;\n        }\n\n        const trailerDetails = trailerDetailsById[trailerId];\n\n        activateAssetConfirmation.setData({\n            companyId: partnerId,\n            assets: [\n                {\n                    id: trailerId,\n                    contractId: trailerDetails?.contractId || null,\n                    plateNumber: trailerDetails?.plateNumber || '',\n                    ratePerKm: trailerDetails?.ratePerKm || null,\n                },\n            ],\n        });\n    };\n\n    const archiveAssetConfirmation = useModalDialog<ArchiveAssetConfirmationDataT>();\n    const handleArchive = (trailerId: TrailerIdT | null): void => {\n        if (!trailerId || !partnerId) {\n            logWarning('Empty trailerId or partnerId in handleArchive');\n            return;\n        }\n\n        const trailer = trailerById[trailerId];\n\n        archiveAssetConfirmation.setData({\n            companyId: partnerId,\n            assets: [\n                {\n                    id: trailerId,\n                    plateNumber: trailer?.plateNumber || '',\n                },\n            ],\n        });\n    };\n\n    useCloseModalDialogAfterRequest(updateRequestStatus, [activateAssetConfirmation, archiveAssetConfirmation]);\n\n    const setUnavailableStatus = useSelector(selectSetUnavailableVehicleRequestStatus);\n\n    const setUnavailableModalConfirmation = useModalDialog<SetUnavailableAssetConfirmationDataT>();\n    const handleSetUnavailable = (trailerId: TrailerIdT, query: SetUnavailableVehicleQueryT): void => {\n        const trailer = trailerById[trailerId];\n\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleSetUnavailable');\n            return;\n        }\n\n        setUnavailableModalConfirmation.setData({\n            companyId: partnerId,\n            query: {\n                ...query,\n                trailerId,\n            },\n            assets: [\n                {\n                    plateNumber: trailer?.plateNumber || '',\n                },\n            ],\n        });\n    };\n\n    useCloseModalDialogAfterRequest(setUnavailableStatus, [setUnavailableModalConfirmation]);\n\n    const handleConfirmActivate = (\n        _: ActivateAssetConfirmationDataT,\n        activateVehicleRequest: ActivateTrailersRequestT,\n    ): void => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleConfirmActivate');\n            return;\n        }\n        dispatch(activationTrailersRequest(partnerId, activateVehicleRequest));\n    };\n\n    const handleConfirmArchive = (data: ArchiveAssetConfirmationDataT, reason: string): void => {\n        const ids = data.assets.map((asset) => asset.id);\n        dispatch(archiveTrailersRequest(ids, data.companyId, reason));\n    };\n\n    const handleSetUnavailableConfirmation = (data: SetUnavailableAssetConfirmationDataT): void => {\n        const { companyId, query } = data;\n\n        dispatch(setUnavailableVehicleRequest(query, companyId));\n    };\n\n    if (!partnerId) {\n        return null;\n    }\n\n    return (\n        <>\n            {isActiveEditing ? (\n                <EditTrailerSidebarContent\n                    onGoBack={onGoBack}\n                    partnerId={partnerId}\n                    trailerId={trailerId}\n                    onClose={onClose}\n                    onCancel={() => {\n                        setActiveEditing(false);\n                    }}\n                    setNeedCloseConfirmation={setNeedCloseConfirmation}\n                    onOpenTruckDetails={onOpenTruckDetails}\n                    onOpenTrailerDetails={onOpenTrailerDetails}\n                    onOpenUserDetails={onOpenUserDetails}\n                />\n            ) : (\n                <TrailerDetailsSidebarContent\n                    onGoBack={onGoBack}\n                    partnerId={partnerId}\n                    trailerId={trailerId}\n                    isShowMap={isShowMap}\n                    onToggleShowMap={onToggleShowMap}\n                    onClose={onClose}\n                    onActivate={handleActivate}\n                    onArchive={handleArchive}\n                    onEdit={handleEdit}\n                    onSetUnavailable={handleSetUnavailable}\n                    isReadOnly={isReadOnly}\n                    isDisableShowOnMap={isDisableShowOnMap}\n                    onOpenTruckDetails={onOpenTruckDetails}\n                    onOpenContactDetails={onOpenContactDetails}\n                    onOpenUserDetails={onOpenUserDetails}\n                />\n            )}\n            <SetUnavailableAssetConfirmationModal\n                assetType={AssetTypeEnum.trailer}\n                data={setUnavailableModalConfirmation.data}\n                onConfirm={handleSetUnavailableConfirmation}\n                onCancel={setUnavailableModalConfirmation.onCancel}\n                onClose={setUnavailableModalConfirmation.onClose}\n                requestStatus={setUnavailableStatus}\n            />\n            <ArchiveAssetConfirmationModal\n                assetType={AssetTypeEnum.trailer}\n                data={archiveAssetConfirmation.data}\n                onConfirm={handleConfirmArchive}\n                onCancel={archiveAssetConfirmation.onCancel}\n                onClose={archiveAssetConfirmation.onClose}\n                requestStatus={updateRequestStatus}\n            />\n            <ActivateAssetDialogModal\n                companyId={partnerId}\n                assetType={AssetTypeEnum.trailer}\n                data={activateAssetConfirmation.data}\n                onConfirm={handleConfirmActivate}\n                onCancel={activateAssetConfirmation.onCancel}\n                onClose={activateAssetConfirmation.onClose}\n                requestStatus={updateRequestStatus}\n            />\n        </>\n    );\n};\n\nexport default CommonEditableTrailerDetailsLayout;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"ErrorPlaceholder__wrap___r3Fgz\",\"content\":\"ErrorPlaceholder__content___Hct7c\",\"icon\":\"ErrorPlaceholder__icon___ROIvq\",\"title\":\"ErrorPlaceholder__title___pQDui\",\"message\":\"ErrorPlaceholder__message___hzq8r\",\"actions\":\"ErrorPlaceholder__actions___Zq2IB\",\"trace-id\":\"ErrorPlaceholder__trace-id___WzqYC\",\"fadeIn\":\"ErrorPlaceholder__fadeIn___mhVAZ\",\"blinking\":\"ErrorPlaceholder__blinking___QNoWI\"};","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames/bind';\n\nimport styles from './TrailerTypeSwitcher.scss';\nimport { TrailerTypeEnum } from '../../constants';\nimport Radio from '../Radio/Radio';\nimport { ApiTrailerTypeT } from 'common/utils/api/models';\n\nconst cx = classNames.bind(styles);\n\ntype OptionT = {\n    title: string;\n    icon: 'tilt' | 'box' | 'reef';\n    testSelector: string;\n};\n\ntype TrailerTypePropsT = {\n    type: TrailerTypeEnum;\n    option: OptionT;\n    selectedType: ApiTrailerTypeT | null;\n    onChange: (type: TrailerTypeEnum) => void;\n};\n\nconst TrailerType: React.FC<TrailerTypePropsT> = (props) => {\n    const { type, option, selectedType, onChange } = props;\n    const [isHover, setHover] = React.useState(false);\n\n    const handleMouseEnter = () => {\n        setHover(true);\n    };\n\n    const handleMouseLeave = () => {\n        setHover(false);\n    };\n\n    const handleClick = () => {\n        onChange(type);\n    };\n\n    const isSelected = selectedType === type;\n\n    return (\n        <div\n            className={cx('option')}\n            onMouseEnter={handleMouseEnter}\n            onMouseLeave={handleMouseLeave}\n            onClick={handleClick}\n        >\n            <div\n                className={cx('option__image', `option__image--${option.icon}`, {\n                    'option__image--isActive': isHover || isSelected,\n                })}\n            />\n            <div className={cx('option__title')}>\n                <Radio<ApiTrailerTypeT | null>\n                    testSelector={option.testSelector}\n                    className={cx('radio')}\n                    selectedValue={selectedType}\n                    value={type}\n                    label={option.title}\n                />\n            </div>\n        </div>\n    );\n};\n\ntype PropsT = {\n    name: string;\n    value: ApiTrailerTypeT | null;\n    availableTypes: Array<TrailerTypeEnum>;\n    setFieldValue: (name: string, value: ApiTrailerTypeT) => void;\n};\n\nconst TrailerTypeSwitcher: React.FC<PropsT> = (props) => {\n    const { name, value, setFieldValue, availableTypes } = props;\n\n    const testSelector = 'trailer-type-switcher';\n\n    const { t } = useTranslation();\n\n    const optionByType: Record<string, OptionT> = {\n        [TrailerTypeEnum.tilt]: {\n            title: t('common:trailer-type-switcher.tilt'),\n            icon: 'tilt',\n            testSelector: `${testSelector}_tilt`,\n        },\n        [TrailerTypeEnum.box]: {\n            title: t('common:trailer-type-switcher.box'),\n            icon: 'box',\n            testSelector: `${testSelector}_box`,\n        },\n    };\n\n    const handleChange = (trailerType: TrailerTypeEnum) => {\n        setFieldValue(name, trailerType);\n    };\n\n    return (\n        <div className={cx('select')} data-test-selector={testSelector}>\n            {availableTypes.map((type) => (\n                <TrailerType\n                    key={type}\n                    type={type}\n                    selectedType={value}\n                    option={optionByType[type]}\n                    onChange={handleChange}\n                />\n            ))}\n        </div>\n    );\n};\n\nexport default TrailerTypeSwitcher;\n","import { CountriesListT, CountryLanguageT, CountryT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport const COUNTRIES_DICT_REQUEST = 'common/countries-dict/COUNTRIES_DICT_REQUEST';\nexport const COUNTRIES_DICT_REQUEST_BEGIN = 'common/countries-dict/COUNTRIES_DICT_REQUEST_BEGIN';\nexport const COUNTRIES_DICT_REQUEST_SUCCESS = 'common/countries-dict/COUNTRIES_DICT_REQUEST_SUCCESS';\nexport const COUNTRIES_DICT_REQUEST_ERROR = 'common/countries-dict/COUNTRIES_DICT_REQUEST_ERROR';\n\nexport type FetchCountriesDictActionT = {\n    type: typeof COUNTRIES_DICT_REQUEST;\n};\n\nexport type FetchCountriesDictBeginActionT = {\n    type: typeof COUNTRIES_DICT_REQUEST_BEGIN;\n};\n\nexport type FetchCountriesDictSuccessActionT = {\n    type: typeof COUNTRIES_DICT_REQUEST_SUCCESS;\n    countriesList: CountriesListT;\n};\n\nexport type FetchCountriesDictErrorActionT = {\n    type: typeof COUNTRIES_DICT_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type CountriesDictActionT =\n    | FetchCountriesDictActionT\n    | FetchCountriesDictBeginActionT\n    | FetchCountriesDictSuccessActionT\n    | FetchCountriesDictErrorActionT;\n\nexport type CountriesDictStateT = {\n    list: CountriesListT | [];\n    allLangCodes: Array<CountryT['langCode']>;\n    byLangCode: Record<CountryT['langCode'], CountryLanguageT>;\n    allCodes: Array<CountryT['code']>;\n    byCode: Partial<Record<CountryT['code'], CountryT>>;\n    request: RequestStatusT;\n};\n","import { TruckStatusEnum } from 'common/utils/api/models';\nimport { EmissionClassEnum } from 'common/constants';\nimport { CountryCodeT } from 'common/store/countries-dict/models';\n\nexport enum FieldsEnum {\n    model = 'model',\n    plateNumber = 'plateNumber',\n    country = 'country',\n    emissionClass = 'emissionClass',\n    status = 'status',\n    lastTelematicUpdateDates = 'last-telematic-update-dates',\n    contractId = 'contractId',\n    contractName = 'contractName',\n    createDates = 'create-dates',\n    createdByUserId = 'create-dated-by-user-id',\n    createdByUserName = 'create-dated-by-user-name',\n    lastModifyDates = 'last-modify-dates',\n    lastModifyByUserId = 'last-modify-by-user-id',\n    lastModifyByUserName = 'last-createdByUserIdmodify-by-user-name',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.model]: Array<TruckModelIdT>;\n    [FieldsEnum.plateNumber]: string;\n    [FieldsEnum.country]: Array<CountryCodeT>;\n    [FieldsEnum.emissionClass]: Array<EmissionClassEnum>;\n    [FieldsEnum.status]: Array<TruckStatusEnum>;\n    [FieldsEnum.lastTelematicUpdateDates]: DateRangeT | null;\n    [FieldsEnum.contractId]: Array<CarrierContractIdT>;\n    [FieldsEnum.contractName]: Array<string>;\n    [FieldsEnum.createDates]: DateRangeT | null;\n    [FieldsEnum.createdByUserId]: Array<UserIdT>;\n    [FieldsEnum.createdByUserName]: Array<string>;\n    [FieldsEnum.lastModifyDates]: DateRangeT | null;\n    [FieldsEnum.lastModifyByUserId]: Array<UserIdT>;\n    [FieldsEnum.lastModifyByUserName]: Array<string>;\n};\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n    ApiPriceSettingsRuleOperationT,\n    PriceSettingsRuleOperationEnum,\n} from 'broker-admin/utils/api/broker-tranziit/models';\n\nexport const PRICE_RULE_OPERATION_I18N_MAP: Record<ApiPriceSettingsRuleOperationT, string> = {\n    [PriceSettingsRuleOperationEnum.value]: 'common-components.price-rule-operation-select.value',\n    [PriceSettingsRuleOperationEnum.discount]: 'common-components.price-rule-operation-select.discount',\n    [PriceSettingsRuleOperationEnum.surcharge]: 'common-components.price-rule-operation-select.surcharge',\n};\n\ntype PropsT = {\n    operation: ApiPriceSettingsRuleOperationT | null | undefined;\n};\n\nconst PriceRuleOperationFilterPill: React.FC<PropsT> = React.memo((props) => {\n    const { operation } = props;\n\n    const { t } = useTranslation();\n\n    if (!operation) {\n        return null;\n    }\n\n    return <span>{t(PRICE_RULE_OPERATION_I18N_MAP[operation])}</span>;\n});\n\nexport default PriceRuleOperationFilterPill;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './FerrySettingsForm.scss';\n\nimport { useFormik } from 'formik';\nimport { useTranslation } from 'react-i18next';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport prepareApiSystemSettings from './prepare-system-settings';\nimport NumberInput from 'common/components/NumberInput/NumberInput';\nimport withWidgetChangesDetector from 'common/components/SaveChangesNotification/withWidgetChangesDetector';\nimport { UnitTypeEnum } from 'common/constants';\nimport Widget from 'common/components/Widget/Widget';\nimport values from 'lodash/values';\nimport { getMaskByType } from '../utils';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport HiddenSubmitButtonForKeyboardEnter from 'common/components/HiddenEnterSubmitButton/HiddenSubmitButtonForKeyboardEnter';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport { SystemSettingsFormCommonPropsT } from 'broker-admin/layouts/SettingsPage/SystemSettings/models';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport { useWatchFormAnyErrors } from 'common/utils/hooks/useWatchFormFormHasErrors';\n\nconst cx = classNames.bind(styles);\n\nconst UNIT_TYPE_MAP = {\n    [FieldsEnum.timeSlotToBoardFerry]: UnitTypeEnum.minutesAbbreviation,\n    [FieldsEnum.timeSlotDisembarkFerry]: UnitTypeEnum.minutesAbbreviation,\n};\n\nconst STEP_MAP = {\n    [FieldsEnum.timeSlotToBoardFerry]: 10,\n    [FieldsEnum.timeSlotDisembarkFerry]: 10,\n};\n\nconst FIELD_LABEL_T_MAP = {\n    [FieldsEnum.timeSlotToBoardFerry]: 'price-settings.ferry-form.fields.time-slot-to-board-ferry.label',\n    [FieldsEnum.timeSlotDisembarkFerry]: 'price-settings.ferry-form.fields.time-slot-disembark-ferry.label',\n};\n\nconst FIELD_DESCRIPTION_T_MAP = {\n    [FieldsEnum.timeSlotToBoardFerry]: 'price-settings.ferry-form.fields.time-slot-to-board-ferry.description',\n    [FieldsEnum.timeSlotDisembarkFerry]: 'price-settings.ferry-form.fields.time-slot-disembark-ferry.description',\n};\n\ntype PropsT = SystemSettingsFormCommonPropsT;\n\nconst ALL_FIELDS = values(FieldsEnum);\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(ALL_FIELDS);\n\ntype NumberFieldsT = FieldsEnum.timeSlotToBoardFerry | FieldsEnum.timeSlotDisembarkFerry;\n\nconst FerrySettingsForm: React.FC<PropsT> = (props) => {\n    const { systemSettings, title, onUpdate, isLoading } = props;\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues(systemSettings);\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [systemSettings]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const apiSystemSettings = prepareApiSystemSettings(values);\n            onUpdate(apiSystemSettings);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormCallbacks) {\n            remoteFormActionsContext.setRemoteFormCallbacks({\n                submit: formik.submitForm,\n                reset: formik.resetForm,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.submitForm, formik.resetForm]);\n\n    const hasFormAnyErros = useWatchFormAnyErrors(formik.errors);\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormState) {\n            remoteFormActionsContext.setRemoteFormState({\n                hasChanges: hasAnyFieldValueChanges,\n                hasErrors: hasFormAnyErros,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasFormAnyErros, hasAnyFieldValueChanges]);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormRequest) {\n            remoteFormActionsContext.setRemoteFormRequest({\n                isLoading,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isLoading]);\n\n    const WidgetChangesDetector = withWidgetChangesDetector(formik.values, initialValues);\n\n    const renderNumberField = (name: NumberFieldsT): React.ReactNode => {\n        return (\n            <FormikField\n                className={cx('field')}\n                name={name}\n                error={formik.errors[name]}\n                meta={formik.getFieldMeta(name)}\n                label={t(FIELD_LABEL_T_MAP[name])}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n                tooltipNode={\n                    <TooltipContent theme={TooltipContentThemeEnum.black} width={150}>\n                        {t(FIELD_DESCRIPTION_T_MAP[name])}\n                    </TooltipContent>\n                }\n            >\n                {(props) => (\n                    <NumberInput\n                        name={name}\n                        unitType={UNIT_TYPE_MAP[name]}\n                        mask={getMaskByType(UNIT_TYPE_MAP[name])}\n                        step={STEP_MAP[name]}\n                        value={formik.values[name]}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                        hasChanges={props.hasChanges}\n                    />\n                )}\n            </FormikField>\n        );\n    };\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <Widget className={cx('widget')} title={title} rightNode={<WidgetChangesDetector fields={ALL_FIELDS} />}>\n                <div className={cx('widget__inner')}>\n                    <FieldGroup>\n                        {renderNumberField(FieldsEnum.timeSlotToBoardFerry)}\n                        {renderNumberField(FieldsEnum.timeSlotDisembarkFerry)}\n                        {/* <FieldGroupEmptyItem className={cx('field')} /> */}\n                    </FieldGroup>\n                    <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n                    <HiddenSubmitButtonForKeyboardEnter />\n                </div>\n            </Widget>\n        </form>\n    );\n};\n\nexport default React.memo(FerrySettingsForm) as typeof FerrySettingsForm;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './LocationsCell.scss';\nimport { CountryCodeT, CountryT } from 'common/store/countries-dict/models';\nimport { ZIP_CODES_SEPARATOR } from 'common/constants';\nimport { isNonNil } from 'common/utils';\nimport CountyFlagsLabel from 'common/components/CountyFlagsLabel/CountyFlagsLabel';\n\ntype PropsT = {\n    countryCodes: Array<CountryCodeT>;\n    zipCodes: Array<string>;\n    countryByCode: Partial<Record<CountryT['code'], CountryT>>;\n};\n\nconst cx = classNames.bind(styles);\n\nconst LocationsCell: React.FC<PropsT> = React.memo((props) => {\n    const { countryCodes, zipCodes, countryByCode } = props;\n\n    const countries = countryCodes.map((countryCode) => countryByCode[countryCode]).filter(isNonNil);\n\n    return (\n        <div>\n            <CountyFlagsLabel countries={countries} />\n            <div className={cx('zip-codes')}>{zipCodes.join(ZIP_CODES_SEPARATOR)}</div>\n        </div>\n    );\n});\n\nexport default LocationsCell;\n","// extracted by mini-css-extract-plugin\nexport default {\"header__controls\":\"PartnerPage__header__controls___Z2p26\",\"controls\":\"PartnerPage__controls___dKynt\",\"operation-unavailable-reasons-alert\":\"PartnerPage__operation-unavailable-reasons-alert___jR5Nd\",\"fadeIn\":\"PartnerPage__fadeIn___NY58a\",\"blinking\":\"PartnerPage__blinking___oMS5V\"};","import { CompanyTypeEnum } from 'common/constants';\nimport {\n    ApiNotificationT,\n    ApiOrderStatusT,\n    ApiTourStatusT,\n    ApiDocumentTypeT,\n    FixPageableCommonQueryT,\n} from 'common/utils/api/models';\n\nimport * as React from 'react';\n\nexport enum NotificationActionEnum {\n    SHIPMENT_STATUS_CHANGED = 'SHIPMENT_STATUS_CHANGED',\n    SHIPMENT_CANCELED = 'SHIPMENT_CANCELED',\n    SHIPMENT_MISSED = 'SHIPMENT_MISSED',\n    SHIPMENT_NO_SHOW = 'SHIPMENT_NO_SHOW',\n    SHIPMENT_UPDATED = 'SHIPMENT_UPDATED',\n    ORDER_STATUS_CHANGED = 'ORDER_STATUS_CHANGED',\n    ORDER_EDITED = 'ORDER_EDITED',\n    ORDER_PLACED = 'ORDER_PLACED',\n    ORDER_CANCELED = 'ORDER_CANCELED',\n    TOUR_STATUS_CHANGED = 'TOUR_STATUS_CHANGED',\n    ORDER_ROUTE_UPDATED = 'ORDER_ROUTE_UPDATED',\n    TRANSPORTATION_ORDER_STATUS_CHANGED = 'TRANSPORTATION_ORDER_STATUS_CHANGED',\n    TRANSPORTATION_ORDER_DECLINED = 'TRANSPORTATION_ORDER_DECLINED',\n    TRANSPORTATION_ORDER_CANCELED = 'TRANSPORTATION_ORDER_CANCELED',\n    TRANSPORTATION_ORDER_UPDATED = 'TRANSPORTATION_ORDER_UPDATED',\n    TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_ASSETS = 'TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_ASSETS',\n    TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_DRIVER = 'TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_DRIVER',\n    TRANSPORTATION_ORDER_MILEAGE_AND_PAYMENT_CHANGED = 'TRANSPORTATION_ORDER_MILEAGE_AND_PAYMENT_CHANGED',\n    TRANSPORTATION_ORDER_PLACED = 'TRANSPORTATION_ORDER_PLACED',\n    RFQ_ALERT = 'RFQ_ALERT',\n    SPOT_PLACED = 'SPOT_PLACED',\n    SPOT_CANCELLED = 'SPOT_CANCELLED',\n    SPOT_ASSIGNED = 'SPOT_ASSIGNED',\n    SPOT_EXPIRED = 'SPOT_EXPIRED',\n    TOUR_SPOT_EXPIRED = 'TOUR_SPOT_EXPIRED',\n    SPOT_BID_ACCEPTED = 'SPOT_BID_ACCEPTED',\n    SPOT_BID_EXPIRED = 'SPOT_BID_EXPIRED',\n    SPOT_BID_MISSED = 'SPOT_BID_MISSED',\n    SPOT_BID_PLACED = 'SPOT_BID_PLACED',\n    DOCUMENT_COMPLETED = 'DOCUMENT_COMPLETED',\n    DOCUMENT_EXPIRED = 'DOCUMENT_EXPIRED',\n    DOCUMENT_REVOKED = 'DOCUMENT_REVOKED',\n    DOCUMENT_UPDATED = 'DOCUMENT_UPDATED',\n    DOCUMENT_UPLOAD = 'DOCUMENT_UPLOAD',\n    DOCUMENT_APPROVED = 'DOCUMENT_APPROVED',\n    DOCUMENT_REJECTED = 'DOCUMENT_REJECTED',\n    DOCUMENT_EXPIRATION_SOON = 'DOCUMENT_EXPIRATION_SOON',\n    SHIPPER_CONTRACT_EXPIRED = 'SHIPPER_CONTRACT_EXPIRED',\n    SHIPPER_CONTRACT_REVOKED = 'SHIPPER_CONTRACT_REVOKED',\n    SHIPPER_CONTRACT_UPLOADED = 'SHIPPER_CONTRACT_UPLOADED',\n    SHIPPER_CONTRACT_UPDATED = 'SHIPPER_CONTRACT_UPDATED',\n    SHIPPER_CONTRACT_EXPIRATION_SOON = 'SHIPPER_CONTRACT_EXPIRATION_SOON',\n    SHIPPER_CONTRACT_COMPLETED = 'SHIPPER_CONTRACT_COMPLETED',\n    CARRIER_CONTRACT_EXPIRED = 'CARRIER_CONTRACT_EXPIRED',\n    CARRIER_CONTRACT_REVOKED = 'CARRIER_CONTRACT_REVOKED',\n    CARRIER_CONTRACT_UPDATED = 'CARRIER_CONTRACT_UPDATED',\n    CARRIER_CONTRACT_EXPIRATION_SOON = 'CARRIER_CONTRACT_EXPIRATION_SOON',\n    CARRIER_CONTRACT_COMPLETED = 'CARRIER_CONTRACT_COMPLETED',\n    SHIPPER_CONTRACT_LANE_EXPIRED = 'SHIPPER_CONTRACT_LANE_EXPIRED',\n    SHIPPER_CONTRACT_LANE_REVOKED = 'SHIPPER_CONTRACT_LANE_REVOKED',\n    SHIPPER_CONTRACT_LANE_UPDATED = 'SHIPPER_CONTRACT_LANE_UPDATED',\n    SHIPPER_CONTRACT_LANE_UPLOAD = 'SHIPPER_CONTRACT_LANE_UPLOAD',\n    SHIPPER_CONTRACT_LANE_EXPIRATION_SOON = 'SHIPPER_CONTRACT_LANE_EXPIRATION_SOON',\n    SHIPPER_CONTRACT_LANE_COMPLETED = 'SHIPPER_CONTRACT_LANE_COMPLETED',\n    TOUR_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER = 'TOUR_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER',\n    TOUR_RUN_OUT_OF_TIME_TO_ASSIGN_CARRIER = 'TOUR_RUN_OUT_OF_TIME_TO_ASSIGN_CARRIER',\n    TOUR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER = 'TOUR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER',\n    TOUR_DELAYING = 'TOUR_DELAYING',\n    ERROR_WHEN_CREATE_INVOICE = 'ERROR_WHEN_CREATE_INVOICE',\n    ASSET_ADDED = 'ASSET_ADDED',\n    ASSET_UPDATED = 'ASSET_UPDATED',\n    TEAM_USER_ADDED = 'TEAM_USER_ADDED',\n    TEAM_USER_REMOVED = 'TEAM_USER_REMOVED',\n    TEAM_REMOVED = 'TEAM_REMOVED',\n    BUSINESS_PARTNER_ADDRESS_VERIFICATION = 'BUSINESS_PARTNER_ADDRESS_VERIFICATION',\n    BROKER_BUSINESS_PARTNER_UPDATED = 'BROKER_BUSINESS_PARTNER_UPDATED',\n    UNKNOWN_ACTION = 'unknown',\n}\n\nexport type NotificationToastViewT = {\n    icon: React.ReactNode | null;\n};\n\nexport enum NotificationEmotionEnum {\n    neutral = 'neutral',\n    positive = 'positive',\n    negative = 'negative',\n    attention = 'attention',\n}\n\ntype NotificationT<T extends NotificationActionEnum> = OverwriteT<\n    NotificationDescriptorT[T],\n    {\n        action: T;\n        relatedIds: string[];\n    }\n>;\n\nexport type AnyNotificationT =\n    | NotificationT<NotificationActionEnum.SHIPMENT_STATUS_CHANGED>\n    | NotificationT<NotificationActionEnum.SHIPMENT_CANCELED>\n    | NotificationT<NotificationActionEnum.SHIPMENT_MISSED>\n    | NotificationT<NotificationActionEnum.SHIPMENT_NO_SHOW>\n    | NotificationT<NotificationActionEnum.SHIPMENT_UPDATED>\n    | NotificationT<NotificationActionEnum.ORDER_STATUS_CHANGED>\n    | NotificationT<NotificationActionEnum.ORDER_EDITED>\n    | NotificationT<NotificationActionEnum.ORDER_PLACED>\n    | NotificationT<NotificationActionEnum.ORDER_CANCELED>\n    | NotificationT<NotificationActionEnum.TOUR_STATUS_CHANGED>\n    | NotificationT<NotificationActionEnum.ORDER_ROUTE_UPDATED>\n    | NotificationT<NotificationActionEnum.TOUR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER>\n    | NotificationT<NotificationActionEnum.TOUR_RUN_OUT_OF_TIME_TO_ASSIGN_CARRIER>\n    | NotificationT<NotificationActionEnum.TOUR_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER>\n    | NotificationT<NotificationActionEnum.TOUR_DELAYING>\n    | NotificationT<NotificationActionEnum.TRANSPORTATION_ORDER_STATUS_CHANGED>\n    | NotificationT<NotificationActionEnum.TRANSPORTATION_ORDER_DECLINED>\n    | NotificationT<NotificationActionEnum.TRANSPORTATION_ORDER_CANCELED>\n    | NotificationT<NotificationActionEnum.TRANSPORTATION_ORDER_UPDATED>\n    | NotificationT<NotificationActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_ASSETS>\n    | NotificationT<NotificationActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_DRIVER>\n    | NotificationT<NotificationActionEnum.TRANSPORTATION_ORDER_MILEAGE_AND_PAYMENT_CHANGED>\n    | NotificationT<NotificationActionEnum.TRANSPORTATION_ORDER_PLACED>\n    | NotificationT<NotificationActionEnum.RFQ_ALERT>\n    | NotificationT<NotificationActionEnum.SPOT_PLACED>\n    | NotificationT<NotificationActionEnum.SPOT_CANCELLED>\n    | NotificationT<NotificationActionEnum.SPOT_ASSIGNED>\n    | NotificationT<NotificationActionEnum.SPOT_EXPIRED>\n    | NotificationT<NotificationActionEnum.TOUR_SPOT_EXPIRED>\n    | NotificationT<NotificationActionEnum.SPOT_BID_ACCEPTED>\n    | NotificationT<NotificationActionEnum.SPOT_BID_EXPIRED>\n    | NotificationT<NotificationActionEnum.SPOT_BID_MISSED>\n    | NotificationT<NotificationActionEnum.SPOT_BID_PLACED>\n    | NotificationT<NotificationActionEnum.DOCUMENT_EXPIRED>\n    | NotificationT<NotificationActionEnum.DOCUMENT_REVOKED>\n    | NotificationT<NotificationActionEnum.DOCUMENT_UPDATED>\n    | NotificationT<NotificationActionEnum.DOCUMENT_UPLOAD>\n    | NotificationT<NotificationActionEnum.DOCUMENT_APPROVED>\n    | NotificationT<NotificationActionEnum.DOCUMENT_REJECTED>\n    | NotificationT<NotificationActionEnum.DOCUMENT_COMPLETED>\n    | NotificationT<NotificationActionEnum.DOCUMENT_EXPIRATION_SOON>\n    | NotificationT<NotificationActionEnum.SHIPPER_CONTRACT_EXPIRED>\n    | NotificationT<NotificationActionEnum.SHIPPER_CONTRACT_REVOKED>\n    | NotificationT<NotificationActionEnum.SHIPPER_CONTRACT_UPLOADED>\n    | NotificationT<NotificationActionEnum.SHIPPER_CONTRACT_UPDATED>\n    | NotificationT<NotificationActionEnum.SHIPPER_CONTRACT_EXPIRATION_SOON>\n    | NotificationT<NotificationActionEnum.SHIPPER_CONTRACT_COMPLETED>\n    | NotificationT<NotificationActionEnum.CARRIER_CONTRACT_EXPIRED>\n    | NotificationT<NotificationActionEnum.CARRIER_CONTRACT_REVOKED>\n    | NotificationT<NotificationActionEnum.CARRIER_CONTRACT_UPDATED>\n    | NotificationT<NotificationActionEnum.CARRIER_CONTRACT_EXPIRATION_SOON>\n    | NotificationT<NotificationActionEnum.CARRIER_CONTRACT_COMPLETED>\n    | NotificationT<NotificationActionEnum.SHIPPER_CONTRACT_LANE_EXPIRED>\n    | NotificationT<NotificationActionEnum.SHIPPER_CONTRACT_LANE_REVOKED>\n    | NotificationT<NotificationActionEnum.SHIPPER_CONTRACT_LANE_UPDATED>\n    | NotificationT<NotificationActionEnum.SHIPPER_CONTRACT_LANE_UPLOAD>\n    | NotificationT<NotificationActionEnum.SHIPPER_CONTRACT_LANE_EXPIRATION_SOON>\n    | NotificationT<NotificationActionEnum.SHIPPER_CONTRACT_LANE_COMPLETED>\n    | NotificationT<NotificationActionEnum.ERROR_WHEN_CREATE_INVOICE>\n    | NotificationT<NotificationActionEnum.ASSET_ADDED>\n    | NotificationT<NotificationActionEnum.ASSET_UPDATED>\n    | NotificationT<NotificationActionEnum.TEAM_USER_ADDED>\n    | NotificationT<NotificationActionEnum.TEAM_USER_REMOVED>\n    | NotificationT<NotificationActionEnum.TEAM_REMOVED>\n    | NotificationT<NotificationActionEnum.BUSINESS_PARTNER_ADDRESS_VERIFICATION>\n    | NotificationT<NotificationActionEnum.BROKER_BUSINESS_PARTNER_UPDATED>\n    | NotificationT<NotificationActionEnum.UNKNOWN_ACTION>;\n\nexport type NotificationConverterOptionsT = {\n    companyType: CompanyTypeEnum;\n};\n\nexport type NotificationConverterT = (\n    apiNotification: ApiNotificationT,\n    options: NotificationConverterOptionsT,\n) => AnyNotificationT;\n\nexport type PatchNotificationDataT<TNotification extends { data: {} }, TPatchData extends {}> = OverwriteT<\n    TNotification,\n    {\n        data: OverwriteT<TNotification['data'], TPatchData>;\n    }\n>;\n\ntype StringFieldKeyT<T> = {\n    [K in keyof T]-?: T[K] extends string ? K : never;\n}[keyof T];\n\nexport type PatchStringFieldNotificationDataT<\n    TNotification extends { data: {} },\n    TEnums extends Record<keyof TEnums, string> &\n        Record<Exclude<keyof TEnums, StringFieldKeyT<TNotification['data']>>, never>,\n> = OverwriteT<\n    TNotification,\n    {\n        data: OverwriteT<TNotification['data'], TEnums>;\n    }\n>;\n\ntype DocumentNotificationDtoT = PatchStringFieldNotificationDataT<\n    Api2.Definitions.DocumentNotificationDto,\n    {\n        documentType: ApiDocumentTypeT;\n    }\n>;\n\nexport type NotificationDescriptorT = {\n    [NotificationActionEnum.SHIPMENT_STATUS_CHANGED]: Api2.Definitions.ShipmentStatusChangedNotificationDto;\n    [NotificationActionEnum.SHIPMENT_CANCELED]: Api2.Definitions.ShipmentCanceledNotificationDto;\n    [NotificationActionEnum.SHIPMENT_MISSED]: Api2.Definitions.ShipmentMissedNotificationDto;\n    [NotificationActionEnum.SHIPMENT_NO_SHOW]: Api2.Definitions.ShipmentNoShowNotificationDto;\n    [NotificationActionEnum.SHIPMENT_UPDATED]: Api2.Definitions.ShipmentUpdatedNotificationDto;\n    [NotificationActionEnum.ORDER_STATUS_CHANGED]: PatchStringFieldNotificationDataT<\n        Api2.Definitions.OrderStatusChangedNotificationDto,\n        {\n            status: ApiOrderStatusT;\n        }\n    >;\n    [NotificationActionEnum.ORDER_EDITED]: Api2.Definitions.OrderEditedNotificationDto;\n    [NotificationActionEnum.ORDER_PLACED]: Api2.Definitions.OrderPlacedNotificationDto;\n    [NotificationActionEnum.ORDER_CANCELED]: Api2.Definitions.OrderCanceledNotificationDto;\n    [NotificationActionEnum.TOUR_STATUS_CHANGED]: PatchStringFieldNotificationDataT<\n        Api2.Definitions.TourStatusChangedNotificationDto,\n        {\n            status: ApiTourStatusT;\n        }\n    >;\n    [NotificationActionEnum.ORDER_ROUTE_UPDATED]: Api2.Definitions.OrderRouteUpdatedNotificationDto;\n    [NotificationActionEnum.TRANSPORTATION_ORDER_STATUS_CHANGED]: Api2.Definitions.TransportationOrderStatusChangedNotificationDto;\n    [NotificationActionEnum.TRANSPORTATION_ORDER_DECLINED]: Api2.Definitions.TransportationOrderDeclinedNotificationDto;\n    [NotificationActionEnum.TRANSPORTATION_ORDER_CANCELED]: Api2.Definitions.TransportationOrderCanceledNotificationDto;\n    [NotificationActionEnum.TRANSPORTATION_ORDER_UPDATED]: Api2.Definitions.TransportationOrderUpdatedNotificationDto;\n    [NotificationActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_ASSETS]: Api2.Definitions.TransportationOrderRunOrRunningOutOfTimeToAssignAssets;\n    [NotificationActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_DRIVER]: Api2.Definitions.TransportationOrderRunOrRunningOutOfTimeToAssignDriver;\n    [NotificationActionEnum.TRANSPORTATION_ORDER_MILEAGE_AND_PAYMENT_CHANGED]: Api2.Definitions.TransportationOrderMileageAndPaymentChangedNotificationDto;\n    [NotificationActionEnum.TRANSPORTATION_ORDER_PLACED]: Api2.Definitions.TransportationOrderPlacedNotificationDto;\n    [NotificationActionEnum.SPOT_CANCELLED]: Api2.Definitions.SpotCancelledNotificationDto;\n    [NotificationActionEnum.SPOT_ASSIGNED]: Api2.Definitions.SpotAssignedNotificationDto;\n    [NotificationActionEnum.SPOT_EXPIRED]: Api2.Definitions.TourSpotExpiredNotificationDto;\n    [NotificationActionEnum.TOUR_SPOT_EXPIRED]: Api2.Definitions.TourSpotExpiredNotificationDto;\n    [NotificationActionEnum.SPOT_BID_ACCEPTED]: Api2.Definitions.SpotBidAcceptedNotificationDto;\n    [NotificationActionEnum.SPOT_BID_EXPIRED]: Api2.Definitions.SpotBidExpiredNotificationDto;\n    [NotificationActionEnum.SPOT_BID_MISSED]: Api2.Definitions.SpotBidMissedNotificationDto;\n    [NotificationActionEnum.SPOT_BID_PLACED]: Api2.Definitions.SpotBidPlacedNotificationDto;\n    [NotificationActionEnum.SPOT_PLACED]: Api2.Definitions.SpotPlacedNotificationDto;\n    [NotificationActionEnum.RFQ_ALERT]: Api2.Definitions.RFQNotificationDto;\n    [NotificationActionEnum.DOCUMENT_COMPLETED]: PatchStringFieldNotificationDataT<\n        Api2.Definitions.DocumentCompletedNotificationDto,\n        { documentType: ApiDocumentTypeT }\n    >;\n    [NotificationActionEnum.DOCUMENT_EXPIRED]: PatchStringFieldNotificationDataT<\n        Api2.Definitions.DocumentExpiredNotificationDto,\n        { documentType: ApiDocumentTypeT }\n    >;\n    [NotificationActionEnum.DOCUMENT_EXPIRATION_SOON]: PatchStringFieldNotificationDataT<\n        Api2.Definitions.DocumentExpiredSoonNotificationDto,\n        { documentType: ApiDocumentTypeT }\n    >;\n    [NotificationActionEnum.DOCUMENT_REVOKED]: PatchStringFieldNotificationDataT<\n        Api2.Definitions.DocumentRevokedNotificationDto,\n        { documentType: ApiDocumentTypeT }\n    >;\n    [NotificationActionEnum.DOCUMENT_UPDATED]: PatchStringFieldNotificationDataT<\n        Api2.Definitions.DocumentUpdatedNotificationDto,\n        { documentType: ApiDocumentTypeT }\n    >;\n    [NotificationActionEnum.DOCUMENT_UPLOAD]: PatchStringFieldNotificationDataT<\n        Api2.Definitions.DocumentUploadedNotificationDto,\n        { documentType: ApiDocumentTypeT }\n    >;\n    [NotificationActionEnum.DOCUMENT_APPROVED]: PatchStringFieldNotificationDataT<\n        Api2.Definitions.DocumentApprovedNotificationDto,\n        { documentType: ApiDocumentTypeT }\n    >;\n    [NotificationActionEnum.DOCUMENT_REJECTED]: PatchStringFieldNotificationDataT<\n        Api2.Definitions.DocumentRejectedNotificationDto,\n        { documentType: ApiDocumentTypeT }\n    >;\n    [NotificationActionEnum.SHIPPER_CONTRACT_EXPIRED]: DocumentNotificationDtoT;\n    [NotificationActionEnum.SHIPPER_CONTRACT_EXPIRATION_SOON]: DocumentNotificationDtoT;\n    [NotificationActionEnum.SHIPPER_CONTRACT_REVOKED]: DocumentNotificationDtoT;\n    [NotificationActionEnum.SHIPPER_CONTRACT_UPDATED]: DocumentNotificationDtoT;\n    [NotificationActionEnum.SHIPPER_CONTRACT_UPLOADED]: DocumentNotificationDtoT;\n    [NotificationActionEnum.SHIPPER_CONTRACT_COMPLETED]: DocumentNotificationDtoT;\n    [NotificationActionEnum.CARRIER_CONTRACT_EXPIRED]: DocumentNotificationDtoT;\n    [NotificationActionEnum.CARRIER_CONTRACT_EXPIRATION_SOON]: DocumentNotificationDtoT;\n    [NotificationActionEnum.CARRIER_CONTRACT_REVOKED]: DocumentNotificationDtoT;\n    [NotificationActionEnum.CARRIER_CONTRACT_UPDATED]: DocumentNotificationDtoT;\n    [NotificationActionEnum.CARRIER_CONTRACT_COMPLETED]: DocumentNotificationDtoT;\n    [NotificationActionEnum.SHIPPER_CONTRACT_LANE_EXPIRED]: DocumentNotificationDtoT;\n    [NotificationActionEnum.SHIPPER_CONTRACT_LANE_UPDATED]: DocumentNotificationDtoT;\n    [NotificationActionEnum.SHIPPER_CONTRACT_LANE_UPLOAD]: DocumentNotificationDtoT;\n    [NotificationActionEnum.SHIPPER_CONTRACT_LANE_REVOKED]: DocumentNotificationDtoT;\n    [NotificationActionEnum.SHIPPER_CONTRACT_LANE_EXPIRATION_SOON]: DocumentNotificationDtoT;\n    [NotificationActionEnum.SHIPPER_CONTRACT_LANE_COMPLETED]: DocumentNotificationDtoT;\n    [NotificationActionEnum.TOUR_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER]: Api2.Definitions.TourRunOrRunningOutOfTimeToAssignCarrier;\n    [NotificationActionEnum.TOUR_RUN_OUT_OF_TIME_TO_ASSIGN_CARRIER]: Api2.Definitions.TourRunOrRunningOutOfTimeToAssignCarrier;\n    [NotificationActionEnum.TOUR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER]: Api2.Definitions.TourRunOrRunningOutOfTimeToAssignCarrier;\n    [NotificationActionEnum.TOUR_DELAYING]: Api2.Definitions.TourDelayingNotification;\n    [NotificationActionEnum.ERROR_WHEN_CREATE_INVOICE]: Api2.Definitions.InvoiceCreationExceptionNotificationDto;\n    [NotificationActionEnum.ASSET_ADDED]: Api2.Definitions.AssetAddedNotificationDto;\n    [NotificationActionEnum.ASSET_UPDATED]: Api2.Definitions.AssetUpdatedNotificationDto;\n    [NotificationActionEnum.TEAM_USER_ADDED]: Api2.Definitions.TeamUserAddedNotificationDto;\n    [NotificationActionEnum.TEAM_USER_REMOVED]: Api2.Definitions.TeamUserRemovedNotificationDto;\n    [NotificationActionEnum.TEAM_REMOVED]: Api2.Definitions.TeamRemovedNotificationDto;\n    [NotificationActionEnum.BUSINESS_PARTNER_ADDRESS_VERIFICATION]: Api2.Definitions.AddressVerificationNotificationDto;\n    [NotificationActionEnum.BROKER_BUSINESS_PARTNER_UPDATED]: Api2.Definitions.BrokerBusinessPartnerProfileUpdatedNotificationDto;\n    [NotificationActionEnum.UNKNOWN_ACTION]: Api2.Definitions.NotificationDto & { data: any };\n};\n\nexport type FetchNotificationsPageQueryT = FixPageableCommonQueryT;\n","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\n\ntype PropsT = {\n    spotNumber: React.ReactNode;\n    tourNumber: React.ReactNode;\n};\n\nconst TourSpotExpiredCard: React.FC<PropsT> = React.memo((props) => {\n    const { spotNumber, tourNumber } = props;\n\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey=\"common:notifications.spot-expired\"\n                components={{\n                    spotNumber: <NotificationEntityLabel isBold isUnderline text={spotNumber} />,\n                    tourNumber: <NotificationEntityLabel isBold isUnderline text={tourNumber} />,\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default TourSpotExpiredCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"alerts\":\"TrailerDetailsForm__alerts___kf72B\",\"trailer-type\":\"TrailerDetailsForm__trailer-type___pXSzO\",\"field--trailer-type\":\"TrailerDetailsForm__field--trailer-type___kgCOu\",\"field--plate-number\":\"TrailerDetailsForm__field--plate-number___QnWfF\",\"field--vin\":\"TrailerDetailsForm__field--vin___sfUSr\",\"field--contract\":\"TrailerDetailsForm__field--contract___h3GKh\",\"field--rate\":\"TrailerDetailsForm__field--rate___ke4F6\",\"actions\":\"TrailerDetailsForm__actions___eHaEU\",\"actions__action\":\"TrailerDetailsForm__actions__action___FI_pl\",\"actions__action--cancel\":\"TrailerDetailsForm__actions__action--cancel___HnfOE\",\"actions__action--delete\":\"TrailerDetailsForm__actions__action--delete___ZLeS_\",\"fields\":\"TrailerDetailsForm__fields___JoZt_\",\"last-gps-position-alert\":\"TrailerDetailsForm__last-gps-position-alert___rbH8B\",\"gps-tracking-status-alert\":\"TrailerDetailsForm__gps-tracking-status-alert___0jw0F\",\"footer-warning\":\"TrailerDetailsForm__footer-warning___f8H0t\",\"fadeIn\":\"TrailerDetailsForm__fadeIn___wOsAb\",\"blinking\":\"TrailerDetailsForm__blinking___ZoeJZ\"};","import * as React from 'react';\nimport debounce from 'lodash/debounce';\n\nexport type WindowSizeT = {\n    width: number;\n    height: number;\n};\n\nconst COLD_TIME = 300;\n\nconst useWindowSize = (): WindowSizeT => {\n    const [windowSize, setWindowSize] = React.useState<WindowSizeT>({\n        width: window.innerWidth,\n        height: window.innerHeight,\n    });\n\n    React.useEffect(() => {\n        // Handler to call on window resize\n        const handleResize = () => {\n            // Set window width/height to state\n            setWindowSize({\n                width: window.innerWidth,\n                height: window.innerHeight,\n            });\n        };\n\n        // Add event listener\n        window.addEventListener('resize', debounce(handleResize, COLD_TIME));\n\n        // Remove event listener on cleanup\n        return () => window.removeEventListener('resize', debounce(handleResize, COLD_TIME));\n    }, []); // Empty array ensures that effect is only run on mount\n\n    return windowSize;\n};\n\nexport default useWindowSize;\n","import classNames from 'classnames/bind';\nimport styles from './MapCluster.scss';\nimport * as React from 'react';\nimport cs from 'classnames';\nimport isNil from 'lodash/isNil';\n\nconst cx = classNames.bind(styles);\n\nexport enum MapClusterThemeEnum {\n    slate = 'slate',\n    charcoal = 'charcoal',\n    light = 'light',\n    brandDark = 'brand-dark',\n}\n\ntype PropsT = {\n    lat: number | undefined;\n    lng: number | undefined;\n    className?: string;\n    theme?: MapClusterThemeEnum;\n    children: (isHover: boolean) => React.ReactElement;\n    onClick?: (event: React.MouseEvent<HTMLDivElement>) => void;\n    onHover?: (event: React.MouseEvent<HTMLDivElement>) => void;\n};\n\nconst MapCluster: React.FC<PropsT> = React.memo((props) => {\n    const { onHover, onClick, lat, lng, theme } = props;\n\n    const [isHover, setHover] = React.useState<boolean>(false);\n\n    if (isNil(lat) || isNil(lng)) {\n        return null;\n    }\n\n    return (\n        <div\n            className={cs(\n                cx('cluster', {\n                    [`cluster--theme-${theme}`]: !!theme,\n                }),\n                props.className,\n            )}\n            onMouseMove={(event) => {\n                if (!isHover && onHover) {\n                    onHover(event);\n                }\n                if (!isHover) {\n                    setHover(true);\n                }\n            }}\n            onMouseLeave={() => {\n                setHover(false);\n            }}\n            onClick={onClick}\n        >\n            {props.children(isHover)}\n        </div>\n    );\n});\n\nexport default MapCluster;\n","import * as React from 'react';\nimport { ApiInvoiceStatusT, InvoiceStatusEnum } from 'common/utils/api/models';\nimport { PropsT as ColoredStatusLabelPropsT } from 'common/components/ColoredStatusLabel/ColoredStatusLabel';\nimport InvoiceStatus from 'common/components/status/InvoiceStatus/InvoiceStatus';\nimport PillLabel, { colorCodingPillLabelTheme, PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\n\ntype PropsT = Omit<ColoredStatusLabelPropsT, 'label' | 'color'> & {\n    status: ApiInvoiceStatusT | null | undefined;\n    isSymmetrical?: boolean;\n};\n\nconst PILL_THEME_BY_INVOICE_STATUS: Record<ApiInvoiceStatusT, PillLabelThemeEnum> = {\n    [InvoiceStatusEnum.draft]: colorCodingPillLabelTheme.normal,\n    [InvoiceStatusEnum.open]: colorCodingPillLabelTheme.normal,\n    [InvoiceStatusEnum.void]: colorCodingPillLabelTheme.attention,\n    [InvoiceStatusEnum.paid]: colorCodingPillLabelTheme.positive,\n    [InvoiceStatusEnum.uncollectible]: colorCodingPillLabelTheme.warning,\n};\n\nconst InvoiceStatusPill: React.FC<PropsT> = React.memo((props) => {\n    const { status, isSymmetrical } = props;\n\n    if (!status) {\n        return null;\n    }\n\n    return (\n        <PillLabel isNoWrap isSymmetrical={isSymmetrical} theme={PILL_THEME_BY_INVOICE_STATUS[status]}>\n            <InvoiceStatus status={status} />\n        </PillLabel>\n    );\n});\n\nexport default InvoiceStatusPill;\n","import { InvoicesQuickFilterEnum } from './constants';\n\nexport enum QueryKeysEnum {\n    invoicesPage = 'invoices-page',\n    invoicesSort = 'invoices-sort',\n    invoicesFilters = 'invoices-filters',\n    invoicesPagingEndingBefore = 'invoices-paging-ending-before',\n    invoicesPagingStartingAfter = 'invoices-paging-starting-after',\n}\n\nexport enum QueryFiltersKeysEnum {\n    quickFilter = 'quick-filter',\n    searchText = 'search-text',\n}\n\nexport type QueryFiltersT = Partial<{\n    [QueryFiltersKeysEnum.quickFilter]: InvoicesQuickFilterEnum;\n    [QueryFiltersKeysEnum.searchText]: QueryParam.StringT;\n}>;\n","import React from 'react';\n\nexport type MenuVisibilityT = {\n    isVisible: boolean;\n    handleOpen: () => void;\n    handleClose: () => void;\n    handleToggle: () => void;\n};\n\nconst useMenuVisibility = (): MenuVisibilityT => {\n    const [value, setValue] = React.useState(false);\n\n    const handleOpen = () => {\n        setValue(true);\n    };\n\n    const handleClose = () => {\n        setValue(false);\n    };\n\n    const handleToggle = () => {\n        setValue(!value);\n    };\n\n    return {\n        isVisible: value,\n        handleOpen,\n        handleClose,\n        handleToggle,\n    };\n};\n\nexport default useMenuVisibility;\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"EditBrokerTeamSidebarContent__form___Kb8k3\",\"buttons\":\"EditBrokerTeamSidebarContent__buttons___ebBJ1\",\"button--create\":\"EditBrokerTeamSidebarContent__button--create___BaAWx\",\"button--cancel\":\"EditBrokerTeamSidebarContent__button--cancel___p980G\",\"button--save\":\"EditBrokerTeamSidebarContent__button--save___EuDBi\",\"tabs\":\"EditBrokerTeamSidebarContent__tabs___jG5G6\",\"tabs__counter\":\"EditBrokerTeamSidebarContent__tabs__counter___ZOKhD\",\"content\":\"EditBrokerTeamSidebarContent__content___UDcVO\",\"content__full-height-wrap\":\"EditBrokerTeamSidebarContent__content__full-height-wrap___g1kI4\",\"history-table\":\"EditBrokerTeamSidebarContent__history-table___K50aw\",\"fadeIn\":\"EditBrokerTeamSidebarContent__fadeIn___lfm6p\",\"blinking\":\"EditBrokerTeamSidebarContent__blinking___Q8byO\"};","import { FieldsEnum, FormValuesT } from './constants';\nimport { QueryFiltersT } from 'broker-admin/layouts/StatisticsPage/query-models';\nimport { DEFAULT_DATA_SOURCE } from 'broker-admin/layouts/StatisticsPage/constants';\n\nconst getInitialValues = (\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    queryFilters: QueryFiltersT,\n): FormValuesT => {\n    return {\n        [FieldsEnum.dataSource]: DEFAULT_DATA_SOURCE,\n        [FieldsEnum.fromCountryCode]: null,\n        [FieldsEnum.fromZipCode]: '',\n        [FieldsEnum.toCountryCode]: null,\n        [FieldsEnum.toZipCode]: '',\n        [FieldsEnum.shipperId]: null,\n        [FieldsEnum.shipperName]: null,\n        [FieldsEnum.carrierId]: null,\n        [FieldsEnum.carrierName]: null,\n    };\n};\n\nexport default getInitialValues;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from '../query-models';\nimport WarningFilterOptionsDropdown, {\n    WarningFilterOptionT,\n} from 'common/components/Table/WarningFilterOptionsDropdown/WarningFilterOptionsDropdown';\nimport { SpecialOptionEnum } from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { colorCodingNotificationLabelTheme } from 'common/components/notifications/NotificationLabel/NotificationLabel';\nimport { BrokerTourStatsT } from 'broker-admin/store/broker-tour-stats/models';\n\ntype PropsT = {\n    className?: string;\n    stat: BrokerTourStatsT | null;\n    queryFilters: QueryFiltersT;\n    onQueryFiltersChange: (queryFiltersChanges: Partial<QueryFiltersT>) => void;\n};\n\nconst warningsQueryFiltersKeys = [\n    QueryFiltersKeysEnum.transportOrderDeclined,\n    QueryFiltersKeysEnum.runningOutOfTimeToAssignCarrier,\n    QueryFiltersKeysEnum.runOutOfTimeToAssignCarrier,\n    QueryFiltersKeysEnum.runningOutOfTimeToAssignAssets,\n    QueryFiltersKeysEnum.runOutOfTimeToAssignAssets,\n    QueryFiltersKeysEnum.runningOutOfTimeToAssignDriver,\n    QueryFiltersKeysEnum.runOutOfTimeToAssignDriver,\n    QueryFiltersKeysEnum.noShow,\n    QueryFiltersKeysEnum.shipmentMissed,\n    QueryFiltersKeysEnum.tourDelaying,\n] as const;\n\nconst WarningsFilter: React.FC<PropsT> = React.memo((props) => {\n    const { className, stat, queryFilters, onQueryFiltersChange } = props;\n\n    const { t } = useTranslation();\n\n    const options = React.useMemo(\n        (): Array<WarningFilterOptionT<(typeof warningsQueryFiltersKeys)[number]> | SpecialOptionEnum> => [\n            SpecialOptionEnum.separator,\n            {\n                id: QueryFiltersKeysEnum.transportOrderDeclined,\n                label: t('broker-tours.list.filters.warning-filters.transport-order-declined'),\n                notificationProps: {\n                    count: stat?.transportationOrderDeclined,\n                    theme: colorCodingNotificationLabelTheme.attention,\n                },\n            },\n            SpecialOptionEnum.separator,\n            {\n                id: QueryFiltersKeysEnum.runningOutOfTimeToAssignCarrier,\n                label: t('broker-tours.list.filters.warning-filters.running-out-of-time-to-assign-carrier'),\n                notificationProps: {\n                    count: stat?.runningOutOfTimeToAssignCarrier,\n                    theme: colorCodingNotificationLabelTheme.attention,\n                },\n            },\n            {\n                id: QueryFiltersKeysEnum.runOutOfTimeToAssignCarrier,\n                label: t('broker-tours.list.filters.warning-filters.run-out-of-time-to-assign-carrier'),\n                notificationProps: {\n                    count: stat?.runOutOfTimeToAssignCarrier,\n                    theme: colorCodingNotificationLabelTheme.warning,\n                },\n            },\n            SpecialOptionEnum.separator,\n            {\n                id: QueryFiltersKeysEnum.runningOutOfTimeToAssignAssets,\n                label: t('broker-tours.list.filters.warning-filters.running-out-of-time-to-assign-assets'),\n                notificationProps: {\n                    count: stat?.runningOutOfTimeToAssignAssets,\n                    theme: colorCodingNotificationLabelTheme.attention,\n                },\n            },\n            {\n                id: QueryFiltersKeysEnum.runOutOfTimeToAssignAssets,\n                label: t('broker-tours.list.filters.warning-filters.run-out-of-time-to-assign-assets'),\n                notificationProps: {\n                    count: stat?.runOutOfTimeToAssignAssets,\n                    theme: colorCodingNotificationLabelTheme.warning,\n                },\n            },\n            SpecialOptionEnum.separator,\n            {\n                id: QueryFiltersKeysEnum.runningOutOfTimeToAssignDriver,\n                label: t('broker-tours.list.filters.warning-filters.running-out-of-time-to-assign-driver'),\n                notificationProps: {\n                    count: stat?.runningOutOfTimeToAssignDriver,\n                    theme: colorCodingNotificationLabelTheme.attention,\n                },\n            },\n            {\n                id: QueryFiltersKeysEnum.runOutOfTimeToAssignDriver,\n                label: t('broker-tours.list.filters.warning-filters.run-out-of-time-to-assign-driver'),\n                notificationProps: {\n                    count: stat?.runOutOfTimeToAssignDriver,\n                    theme: colorCodingNotificationLabelTheme.warning,\n                },\n            },\n            SpecialOptionEnum.separator,\n            {\n                id: QueryFiltersKeysEnum.noShow,\n                label: t('broker-tours.list.filters.warning-filters.no-show'),\n                notificationProps: {\n                    count: stat?.noShow,\n                    theme: colorCodingNotificationLabelTheme.warning,\n                },\n            },\n            {\n                id: QueryFiltersKeysEnum.shipmentMissed,\n                label: t('broker-tours.list.filters.warning-filters.shipment-missed'),\n                notificationProps: {\n                    count: stat?.missed,\n                    theme: colorCodingNotificationLabelTheme.warning,\n                },\n            },\n            SpecialOptionEnum.separator,\n            {\n                id: QueryFiltersKeysEnum.tourDelaying,\n                label: t('broker-tours.list.filters.warning-filters.tour-delaying'),\n                notificationProps: {\n                    count: stat?.tourDelaying,\n                    theme: colorCodingNotificationLabelTheme.attention,\n                },\n            },\n        ],\n        [t, stat],\n    );\n\n    const value = React.useMemo(() => {\n        return warningsQueryFiltersKeys.filter((queryFiltersKey) => queryFilters[queryFiltersKey]);\n    }, [queryFilters]);\n\n    const handleSelect = (values: Array<(typeof warningsQueryFiltersKeys)[number]>) => {\n        const queryFiltersChanges = warningsQueryFiltersKeys.reduce<Partial<QueryFiltersT>>((acc, queryFiltersKey) => {\n            acc[queryFiltersKey] = values.includes(queryFiltersKey) ? true : undefined;\n\n            return acc;\n        }, {});\n\n        onQueryFiltersChange(queryFiltersChanges);\n    };\n\n    return (\n        <WarningFilterOptionsDropdown<(typeof warningsQueryFiltersKeys)[number]>\n            className={className}\n            value={value}\n            onSelect={handleSelect}\n            options={options}\n            allLabelKey=\"broker-tours.list.filters.all-warnings\"\n        />\n    );\n});\n\nexport default WarningsFilter;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"CarrierDropdown__fadeIn___GuJwD\",\"blinking\":\"CarrierDropdown__blinking___UZ5AR\"};","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { FETCH_ORDERS_PAGE_REQUEST, FetchTransportOrdersPageActionT } from './types';\nimport {\n    fetchTransportOrdersPageBegin,\n    fetchTransportOrdersPageError,\n    fetchTransportOrdersPageSuccess,\n    resetTransportOrders,\n} from './actions';\nimport { selectTransportOrdersPages, selectTransportOrdersQuery } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport carrierTranziitApi from 'carrier/utils/api/carrier-tranziit/api';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { checkIsSameQuery, checkShouldEmitChangePage } from 'common/utils/pagination/utils';\nimport { checkIsDefaultCompanyId } from 'common/utils';\nimport { transportOrdersPaginationChannel } from 'common/store/transport-orders/channels';\n\nfunction* fetchTransportOrdersSaga(action: FetchTransportOrdersPageActionT): WrapGeneratorT<void> {\n    const { pageNumber, query: rawQuery, companyId } = action;\n\n    const query: typeof rawQuery = {\n        ...rawQuery,\n    };\n\n    const prevQuery: ReReturnT<typeof selectTransportOrdersQuery> = yield select(selectTransportOrdersQuery(companyId));\n    const pages: ReReturnT<typeof selectTransportOrdersPages> = yield select(selectTransportOrdersPages(companyId));\n    const isSameQuery = checkIsSameQuery(query, prevQuery);\n    const isNeedRequest = checkNeedRequest(pages[pageNumber]?.requestStatus);\n    if (isSameQuery && !isNeedRequest) {\n        return;\n    }\n    if (!isSameQuery) {\n        yield put(resetTransportOrders(companyId, { savingPageNumber: pageNumber }));\n    }\n\n    yield put(fetchTransportOrdersPageBegin(query, pageNumber, companyId));\n\n    let result: ReturnApiT<\n        typeof carrierTranziitApi.fetchTransportOrdersPage | typeof brokerTranziitApi.fetchTransportOrdersPage\n    >;\n    if (checkIsDefaultCompanyId(companyId)) {\n        result = yield carrierTranziitApi.fetchTransportOrdersPage({\n            ...query,\n            page: pageNumber,\n        });\n    } else {\n        result = yield brokerTranziitApi.fetchTransportOrdersPage(companyId, {\n            ...query,\n            page: pageNumber,\n        });\n    }\n\n    const [error, response] = result;\n\n    if (error) {\n        yield put(fetchTransportOrdersPageError(query, pageNumber, error, companyId));\n        return;\n    }\n\n    yield put(fetchTransportOrdersPageSuccess(query, pageNumber, response, companyId));\n\n    checkShouldEmitChangePage(pageNumber, response, transportOrdersPaginationChannel);\n}\n\nfunction* transportOrdersSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_ORDERS_PAGE_REQUEST, fetchTransportOrdersSaga);\n}\n\nexport default transportOrdersSaga;\n","import * as React from 'react';\nimport { formatDate } from 'common/utils/time';\n\ntype PropsT = {\n    date: Date | number | string | null | undefined;\n    format?: string;\n};\n\nconst DateFormatter: React.FC<PropsT> = React.memo((props) => {\n    const { date, format } = props;\n\n    if (!date) {\n        return null;\n    }\n\n    const label = formatDate(format || 'DD MMM YYYY', date);\n    return <span>{label}</span>;\n});\n\nexport default DateFormatter;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ControlsCell.scss';\nimport DropdownControl, {\n    DropdownControlOptionT,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport MoreIcon from 'common/icons/MoreIcon';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    onDelete: () => void;\n    canDeletePartner: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nconst ControlsCell: React.FC<PropsT> = React.memo((props) => {\n    const { className, onDelete, canDeletePartner } = props;\n\n    const { t } = useTranslation();\n\n    const options: Array<DropdownControlOptionT | null | undefined> = [\n        canDeletePartner\n            ? {\n                  label: (\n                      <div className={cx('option')}>\n                          <div className={cx('option__icon', 'option__icon--delete')} />\n                          <div className={cx('option__label')}>{t('partners-table.actions.delete')}</div>\n                      </div>\n                  ),\n                  onSelect: onDelete,\n              }\n            : null,\n    ];\n\n    return (\n        <div className={cx('wrap')}>\n            <div className={cx('controls')}>\n                <DropdownControl\n                    className={className}\n                    options={options}\n                    renderTrigger={(isActive, onClick) => (\n                        <TransparentTrigger\n                            isPressed={isActive}\n                            onClick={onClick}\n                            leftIcon={<MoreIcon />}\n                            reflectionTheme={ReflectionThemeEnum.light}\n                        />\n                    )}\n                    overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                />\n            </div>\n        </div>\n    );\n});\n\nexport default ControlsCell;\n","import { ApiEditOrderContextT, ApiTourUpdateStopDataT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport uniqBy from 'lodash/uniqBy';\n\nexport const getCorrectedStops = (context: ApiEditOrderContextT | null): Array<ApiTourUpdateStopDataT> => {\n    const stops =\n        context?.tours?.flatMap((tour) => {\n            return tour?.stops || [];\n        }) || [];\n\n    return uniqBy(stops, (stop) => stop.alias);\n};\n","import * as React from 'react';\nimport { ReserveT } from 'common/store/order-creation/models';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames/bind';\nimport styles from './FerryDisembarkPointPicker.scss';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport BoatIcon from 'common/icons/BoatIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { formatTimeInterval } from 'common/utils/time';\nimport { FieldsEnum, RoutePointFieldsEnum } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/constants';\nimport { useFormikContext } from 'formik';\nimport { FormValuesT } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/constants';\nimport { getFieldFormValue } from 'common/utils/form-values';\n\ntype PropsT = {\n    className?: string;\n    routePointIndex: number;\n    reserve: ReserveT | null;\n};\n\nconst cx = classNames.bind(styles);\n\nconst FerryDisembarkPointPicker: React.FC<PropsT> = React.memo((props) => {\n    const { routePointIndex, reserve } = props;\n\n    const { t } = useTranslation();\n\n    const routePoint = reserve?.points?.[routePointIndex] || null;\n\n    const formik = useFormikContext<FormValuesT>();\n\n    const locationFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.location}` as const;\n    const timeWindowFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.timeWindow}` as const;\n\n    const location = getFieldFormValue(formik.values, locationFieldName);\n    const timeWindow = getFieldFormValue(formik.values, timeWindowFieldName);\n\n    const correctedTimeWindow = timeWindow || routePoint?.defaultTimeWindow || null;\n\n    return (\n        <ReadOnlyField\n            icon={\n                <BoatIcon\n                    size={DEFAULT_ICON_SIZE}\n                    fillColor={StyleGuideColorsEnum.brandAccent}\n                    strokeColor={StyleGuideColorsEnum.brandDark}\n                />\n            }\n            label={t('common:new-order-form.fields.ferry-disembark.label')}\n            subLabel={\n                <PillLabel className={cx('time-interval')} isSymmetrical theme={PillLabelThemeEnum.charcoal}>\n                    {formatTimeInterval(correctedTimeWindow?.start, correctedTimeWindow?.end)}\n                </PillLabel>\n            }\n            value={routePoint?.addressStr || location?.address}\n        />\n    );\n});\n\nexport default FerryDisembarkPointPicker;\n","import * as React from 'react';\nimport { useDispatch } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\n\nimport { CountryCodeT } from 'common/store/countries-dict/models';\nimport { changeReserveQuery } from 'common/store/order-creation/actions';\n\nimport ExcludeCountriesMapWidget from 'common/components/ExcludeCountriesMapWidget/ExcludeCountriesMapWidget';\nimport { SyncShipmentDetailsFormValuesContext } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/contexts/sync-form-values';\nimport { FieldsEnum } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/constants';\n\ntype PropsT = {\n    className?: string;\n};\n\nconst ExcludeCountries: React.FC<PropsT> = React.memo((props) => {\n    const { className } = props;\n\n    const { t } = useTranslation();\n\n    const syncShipmentDetailsFormValuesContext = React.useContext(SyncShipmentDetailsFormValuesContext);\n    const excludedCountriesFormValue =\n        syncShipmentDetailsFormValuesContext?.formValues?.[FieldsEnum.excludedCountries] || [];\n\n    const dispatch = useDispatch();\n\n    const handleSetExcludedCountries = (excludedCountries: Array<CountryCodeT>): void => {\n        if (syncShipmentDetailsFormValuesContext?.setFieldValueCallback) {\n            syncShipmentDetailsFormValuesContext.setFieldValueCallback(FieldsEnum.excludedCountries, excludedCountries);\n        }\n\n        dispatch(\n            changeReserveQuery({\n                excludedCountries,\n            }),\n        );\n    };\n\n    return (\n        <ExcludeCountriesMapWidget\n            className={className}\n            excludedCountries={excludedCountriesFormValue}\n            setExcludedCountries={handleSetExcludedCountries}\n            triggerLabel={t('common:new-order-form.excluded-countries.trigger')}\n            inputPlaceholder={t('common:new-order-form.excluded-countries.search-input-placeholder')}\n        />\n    );\n});\n\nexport default ExcludeCountries;\n","// extracted by mini-css-extract-plugin\nexport default {\"icon\":\"TrailerType__icon___Twr6O\",\"icon--BOX\":\"TrailerType__icon--BOX___xXFlG\",\"icon--TILT\":\"TrailerType__icon--TILT___iURVl\",\"icon--REEF\":\"TrailerType__icon--REEF___jFLHP\",\"fadeIn\":\"TrailerType__fadeIn___XUo0p\",\"blinking\":\"TrailerType__blinking___WYKBO\"};","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst PinIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path\n                    fill={fillColor}\n                    d=\"M14.875 8.65c0 1.928-1.575 4.342-4.62 7.133l-.255.225-.255-.233c-3.045-2.783-4.62-5.197-4.62-7.125 0-2.88 2.115-5.025 4.875-5.025s4.875 2.138 4.875 5.025z\"\n                />\n                <path\n                    fill={strokeColor}\n                    d=\"M10 2.5c3.15 0 6 2.415 6 6.15 0 2.49-2.002 5.438-6 8.85-3.997-3.412-6-6.36-6-8.85C4 4.915 6.85 2.5 10 2.5zm4.5 6.15C14.5 5.927 12.512 4 10 4 7.487 4 5.5 5.928 5.5 8.65c0 1.755 1.463 4.08 4.5 6.855 3.037-2.775 4.5-5.1 4.5-6.855zM10 10c-.825 0-1.5-.675-1.5-1.5S9.175 7 10 7s1.5.675 1.5 1.5S10.825 10 10 10z\"\n                />\n                <path d=\"M1 1h18v18H1z\" />\n            </g>\n        </svg>\n    );\n};\n\nPinIcon.displayName = 'PinIcon';\n\nexport const PinIconProps = {\n    getControlProps: ({\n        isDisabled,\n        isFocused,\n        hasError,\n        hasWarning,\n        hasSuccess,\n        hasValue,\n    }: {\n        isDisabled?: boolean;\n        isFocused?: boolean;\n        hasError?: boolean;\n        hasWarning?: boolean;\n        hasSuccess?: boolean;\n        hasValue?: boolean;\n    }): PropsT => {\n        if (hasError) {\n            return {\n                fillColor: StyleGuideColorsEnum.white,\n                strokeColor: StyleGuideColorsEnum.tomatoRed,\n            };\n        }\n\n        if (hasWarning) {\n            return {\n                fillColor: StyleGuideColorsEnum.white,\n                strokeColor: StyleGuideColorsEnum.orange,\n            };\n        }\n\n        if (hasSuccess) {\n            return {\n                fillColor: StyleGuideColorsEnum.white,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n\n        if (isDisabled) {\n            return {\n                fillColor: StyleGuideColorsEnum.white,\n                strokeColor: StyleGuideColorsEnum.slate,\n            };\n        }\n\n        return {\n            fillColor: hasValue || isFocused ? StyleGuideColorsEnum.brandAccent : StyleGuideColorsEnum.white,\n            strokeColor: hasValue || isFocused ? StyleGuideColorsEnum.brandDark : StyleGuideColorsEnum.light,\n        };\n    },\n};\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default PinIcon;\n","export enum FieldsEnum {\n    createdByShipperId = 'createdByShipperId',\n    createdByShipperName = 'createdByShipperName',\n\n    createdByUserId = 'created-by-user-id',\n    createdByUserName = 'created-by-user-name',\n\n    createDates = 'createDates',\n\n    dictTrailerTypeId = 'dictTrailerTypeId',\n\n    pickupAddress = 'pickupAddress',\n    dropoffAddress = 'dropoffAddress',\n\n    pickupDates = 'pickupDates',\n    dropoffDates = 'dropoffDates',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.createdByShipperId]: string | null;\n    [FieldsEnum.createdByShipperName]: string | null;\n\n    [FieldsEnum.createdByUserId]: string | null;\n    [FieldsEnum.createdByUserName]: string | null;\n\n    [FieldsEnum.createDates]: DateRangeT | null;\n\n    [FieldsEnum.dictTrailerTypeId]: TrailerDictIdT | null;\n\n    [FieldsEnum.pickupAddress]: string | null;\n    [FieldsEnum.dropoffAddress]: string | null;\n\n    [FieldsEnum.pickupDates]: DateRangeT | null;\n    [FieldsEnum.dropoffDates]: DateRangeT | null;\n};\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './SaveFooterContent.scss';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport { useSelector } from 'react-redux';\nimport { selectUpdateCarrierContractRequest } from 'common/store/carrier-contracts/selectors';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    partnerId: PartnerIdT | null;\n};\n\nconst SaveFooterContent: React.FC<PropsT> = React.memo((props) => {\n    const { partnerId } = props;\n\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n\n    const updateContractRequest = useSelector(selectUpdateCarrierContractRequest(partnerId));\n\n    const { t } = useTranslation();\n\n    const isLoading = updateContractRequest.loading;\n\n    return (\n        <div className={cx('content')}>\n            <Button\n                theme={ButtonThemeEnum.primary}\n                className={cx('action')}\n                onClick={remoteFormActionsContext.remoteFormCallbacks?.submit}\n                isLoading={isLoading}\n                isDisabled={isLoading}\n            >\n                {t('common:carrier-contracts.actions.save')}\n            </Button>\n        </div>\n    );\n});\n\nexport default SaveFooterContent;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { BooleanSettingValueEnum, SystemSettingsT } from 'broker-admin/store/price-settings/system-settings/models';\n\nconst getInitialValues = (systemSettings: SystemSettingsT | null | undefined): FormValuesT => {\n    return {\n        [FieldsEnum.autoExcludeNonEUCountries]:\n            systemSettings?.AUTO_EXCLUDE_NON_EU_COUNTRIES === BooleanSettingValueEnum.true,\n    };\n};\n\nexport default getInitialValues;\n","// extracted by mini-css-extract-plugin\nexport default {\"not-assigned\":\"CarrierCell__not-assigned___LW2OZ\",\"not-assigned--small\":\"CarrierCell__not-assigned--small___XoWwM\",\"not-assigned--medium\":\"CarrierCell__not-assigned--medium___WNiuX\",\"fadeIn\":\"CarrierCell__fadeIn___IrBX0\",\"blinking\":\"CarrierCell__blinking___SHCYK\"};","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\n\ntype PropsT = {\n    tourNumber: React.ReactNode;\n};\n\nconst TourSpotCancelledCard: React.FC<PropsT> = React.memo((props) => {\n    const { tourNumber } = props;\n\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey=\"common:notifications.spot-cancelled\"\n                components={{\n                    tourNumber: <NotificationEntityLabel isBold isUnderline text={tourNumber} />,\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default TourSpotCancelledCard;\n","import React from 'react';\n\nimport moment from 'moment';\n\nimport Input, { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { getDateMask, getDateRangeMask } from 'common/utils/input-masks';\nimport { formatDate } from 'common/utils/time';\n\nexport type InputDateValueT = Date | null;\nexport type InputDateValuePropsT = {\n    isRange?: false;\n    value: InputDateValueT;\n    onChange: (value: InputDateValueT, selectedDate: InputDateValueT) => void;\n};\n\nexport type InputRangeValueT = DateRangeT | null;\nexport type InputRangeValuePropsT = {\n    isRange: true;\n    value: InputRangeValueT;\n    onChange: (value: InputRangeValueT, selectedDate: InputDateValueT) => void;\n};\n\nexport type IconMetaT = {\n    isLoading: boolean;\n    isDisabled: boolean;\n    isFocused: boolean;\n    hasError: boolean;\n    hasWarning: boolean;\n    hasSuccess: boolean;\n    isHighlighted: boolean;\n    hasValue: boolean;\n};\n\ntype BasePropsT = {\n    name?: InputPropsT['name'];\n    placeholder?: InputPropsT['placeholder'];\n    isDisabled?: InputPropsT['isDisabled'];\n    isForcedFocused?: InputPropsT['isFocused'];\n    minDate?: string | null;\n    maxDate?: string | null;\n    hasError?: InputPropsT['hasError'];\n    hasWarning?: InputPropsT['hasWarning'];\n    autoComplete?: InputPropsT['autoComplete'];\n    hasChanges?: InputPropsT['hasChanges'];\n    onKeyUp?: InputPropsT['onKeyUp'];\n    onBlur?: InputPropsT['onBlur'];\n    onFocus?: InputPropsT['onFocus'];\n    className?: string;\n    renderLeftIcon?: (iconMeta: IconMetaT) => React.ReactNode;\n    renderRightIcon?: (iconMeta: IconMetaT) => React.ReactNode;\n    isTransparent?: InputPropsT['isTransparent'];\n    hasClearControl?: InputPropsT['hasClearControl'];\n};\n\nexport type DateInputPropsT = (BasePropsT & InputDateValuePropsT) | (BasePropsT & InputRangeValuePropsT);\n\nconst EMPTY_RANGE: InputRangeValueT = { from: null, to: null };\n\nconst DATE_FORMAT = 'DD.MM.YYYY';\nconst DATES_SEPARATOR = ' - ';\nconst MASK_SYMBOL = '_';\n\nconst formatDateValue = (value: InputDateValueT): string | null => {\n    return formatDate(DATE_FORMAT, value);\n};\n\nconst formatDateRangeValue = (value: InputRangeValueT): string | null => {\n    const startDate = formatDate(DATE_FORMAT, value?.from);\n    const endDate = formatDate(DATE_FORMAT, value?.to);\n\n    if (!startDate && !endDate) {\n        return '';\n    }\n\n    return [startDate || '', startDate ? DATES_SEPARATOR : '', endDate || ''].join('');\n};\n\nconst checkIsEmptyDateValue = (value: InputDateValueT): boolean => {\n    return !value;\n};\n\nconst checkIsEmptyDateRangeValue = (value: InputRangeValueT): boolean => {\n    return !value?.from && !value?.to;\n};\n\n/* eslint-disable react/destructuring-assignment */\nconst DateInputTrigger: React.FC<DateInputPropsT> = (props) => {\n    const {\n        name,\n        placeholder,\n        onFocus,\n        onBlur,\n        onKeyUp,\n        minDate,\n        maxDate,\n        isDisabled,\n        isForcedFocused,\n        hasError,\n        hasWarning,\n        hasChanges,\n        autoComplete,\n        className,\n        renderLeftIcon,\n        renderRightIcon,\n        hasClearControl,\n        isTransparent,\n    } = props;\n\n    const [isFocusedInput, setFocusedInput] = React.useState(false);\n\n    const [inputValue, setInputValue] = React.useState(() => {\n        if (props.isRange) {\n            return formatDateRangeValue(props.value || null);\n        }\n        return formatDateValue(props.value || null);\n    });\n\n    const dateRangeMask = React.useMemo(() => getDateRangeMask(), []);\n    const dateMask = React.useMemo(() => getDateMask(), []);\n\n    React.useEffect(() => {\n        if (!isFocusedInput) {\n            const initInputValue = props.isRange ? formatDateRangeValue(props.value) : formatDateValue(props.value);\n            setInputValue(initInputValue);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [props.value]);\n\n    const handleChangeInputValue = (value: string) => {\n        setInputValue(value);\n\n        if (!value) {\n            if (props.isRange) {\n                props.onChange(EMPTY_RANGE, null);\n            } else {\n                props.onChange(null, null);\n            }\n            return;\n        }\n\n        if (!props.isRange) {\n            const isValid = !value.includes(MASK_SYMBOL);\n            const date = moment(value, DATE_FORMAT);\n            if (\n                isValid &&\n                date.isValid() &&\n                (minDate ? date.isAfter(minDate) : true) &&\n                (maxDate ? date.isBefore(maxDate) : true)\n            ) {\n                props.onChange(date.toDate(), null);\n            }\n        }\n\n        if (props.isRange) {\n            const [startDateString, endDateString] = value.split(DATES_SEPARATOR);\n\n            let fromDateRange: DateRangeT['from'] = null;\n\n            const isValidStartDate = !startDateString.includes(MASK_SYMBOL);\n            const startDate = moment(startDateString, DATE_FORMAT);\n\n            // fix: for others timezones\n            startDate.add(12, 'hours');\n\n            const checkIsInMinMax = (date: moment.Moment): boolean => {\n                return (minDate ? date.isAfter(minDate) : true) && (maxDate ? date.isBefore(maxDate) : true);\n            };\n\n            if (isValidStartDate && startDate.isValid() && checkIsInMinMax(startDate)) {\n                fromDateRange = startDate.toDate();\n            }\n\n            let toDateRange: DateRangeT['to'] = null;\n\n            const isValidEndDate = !endDateString.includes(MASK_SYMBOL);\n            const endDate = moment(endDateString, DATE_FORMAT);\n\n            // fix: for others timezones\n            endDate.add(12, 'hours');\n\n            if (isValidEndDate && endDate.isValid() && checkIsInMinMax(endDate)) {\n                toDateRange = endDate.toDate();\n            }\n\n            let dateRange: DateRangeT = {\n                from: fromDateRange,\n                to: toDateRange,\n            };\n\n            if (fromDateRange && toDateRange && fromDateRange.valueOf() > toDateRange.valueOf()) {\n                dateRange = {\n                    from: toDateRange,\n                    to: fromDateRange,\n                };\n            }\n\n            props.onChange(dateRange, null);\n        }\n    };\n\n    const isEmpty = props.isRange ? checkIsEmptyDateRangeValue(props.value) : checkIsEmptyDateValue(props.value);\n\n    const handleBlur = () => {\n        setFocusedInput(false);\n\n        const initInputValue = props.isRange ? formatDateRangeValue(props.value) : formatDateValue(props.value);\n        setInputValue(initInputValue);\n\n        if (onBlur) {\n            onBlur();\n        }\n    };\n\n    const handleFocus = () => {\n        setFocusedInput(true);\n\n        if (onFocus) {\n            onFocus();\n        }\n    };\n\n    return (\n        <Input\n            className={className}\n            name={name || 'date-input'}\n            value={inputValue || ''}\n            renderLeftIcon={\n                renderLeftIcon\n                    ? (iconMeta) =>\n                          renderLeftIcon({\n                              ...iconMeta,\n                              isFocused: iconMeta.isFocused || !!isForcedFocused,\n                              hasValue: !isEmpty,\n                          })\n                    : undefined\n            }\n            placeholder={placeholder}\n            onChange={handleChangeInputValue}\n            hasError={hasError}\n            onKeyUp={onKeyUp}\n            onFocus={handleFocus}\n            onBlur={handleBlur}\n            hasWarning={hasWarning}\n            isDisabled={isDisabled}\n            isFocused={isForcedFocused}\n            mask={props.isRange ? dateRangeMask : dateMask}\n            hasChanges={hasChanges}\n            autoComplete={autoComplete}\n            renderRightIcon={\n                renderRightIcon\n                    ? (iconMeta) =>\n                          renderRightIcon({\n                              ...iconMeta,\n                              isFocused: iconMeta.isFocused || !!isForcedFocused,\n                              hasValue: !isEmpty,\n                          })\n                    : undefined\n            }\n            isTransparent={isTransparent}\n            guide\n            hasClearControl={hasClearControl}\n        />\n    );\n};\n\nexport default DateInputTrigger;\n","import * as React from 'react';\nimport { useSyncRouteStopsChannels } from '../hooks/use-sync-route-stops-channels';\nimport { RoutePointFormValuesT } from '../constants';\n\ntype PropsT = {\n    formikArrayHelpers: {\n        insert: (index: number, value: RoutePointFormValuesT) => void;\n        remove: (index: number) => void;\n        move: (from: number, to: number) => void;\n    };\n};\n\nconst SyncPointsWatcher: React.FC<PropsT> = React.memo((props) => {\n    useSyncRouteStopsChannels(props.formikArrayHelpers);\n\n    return null;\n});\n\nexport default SyncPointsWatcher;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './Steps.scss';\nimport { useTranslation } from 'react-i18next';\nimport { generatePath } from 'react-router';\nimport { OrderCreationStepEnum } from 'common/store/order-creation/models';\nimport { matchPath, useLocation } from 'react-router-dom';\nimport { OMSRoutesEnum, QueryKeysEnum } from 'common/constants';\nimport history from 'common/utils/history';\nimport Stepper from 'common/components/Stepper/Stepper';\nimport useQuery from 'common/utils/hooks/useQuery';\nimport { useContext } from 'react';\nimport StepsContext from 'common/layouts/NewOrderPage/contexts/steps-context';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n};\n\nconst STEP_PATH_NAMES = {\n    [OrderCreationStepEnum.shipmentDetails]: OMSRoutesEnum.newOrder,\n    [OrderCreationStepEnum.price]: OMSRoutesEnum.newOrderOffers,\n    [OrderCreationStepEnum.cargoDetails]: OMSRoutesEnum.newOrderDetails,\n};\n\ntype QueryT = {\n    [QueryKeysEnum.orderCreationComplete]: string;\n};\n\nconst STEP_T_MAP: Record<OrderCreationStepEnum, string> = {\n    [OrderCreationStepEnum.shipmentDetails]: 'common:new-order-form.steps.route-and-trailer',\n    [OrderCreationStepEnum.price]: 'common:new-order-form.steps.price',\n    [OrderCreationStepEnum.cargoDetails]: 'common:new-order-form.steps.cargo-details',\n};\n\nconst Steps: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n\n    const stepsContext = useContext(StepsContext);\n    const { hasSelectedContact } = stepsContext;\n\n    const { pathname, search } = useLocation();\n\n    const query = useQuery<QueryT>();\n\n    let params = {};\n    let activeStepIndex = 0;\n    let stepsSequence: Array<OrderCreationStepEnum> = [];\n    const match1 = matchPath(pathname, { path: OMSRoutesEnum.newOrder });\n    if (match1) {\n        params = { ...params, ...match1.params };\n        activeStepIndex = 0;\n        stepsSequence = hasSelectedContact\n            ? [OrderCreationStepEnum.shipmentDetails, OrderCreationStepEnum.cargoDetails]\n            : [OrderCreationStepEnum.shipmentDetails, OrderCreationStepEnum.price, OrderCreationStepEnum.cargoDetails];\n    }\n\n    const match2 = matchPath(pathname, { path: OMSRoutesEnum.newOrderOffers });\n    if (match2) {\n        params = { ...params, ...match2.params };\n        activeStepIndex = 1;\n        stepsSequence = [\n            OrderCreationStepEnum.shipmentDetails,\n            OrderCreationStepEnum.price,\n            OrderCreationStepEnum.cargoDetails,\n        ];\n    }\n\n    const match3 = matchPath(pathname, { path: OMSRoutesEnum.newOrderDetails });\n    if (match3) {\n        params = { ...params, ...match3.params };\n        activeStepIndex = 2;\n        stepsSequence = [\n            OrderCreationStepEnum.shipmentDetails,\n            OrderCreationStepEnum.price,\n            OrderCreationStepEnum.cargoDetails,\n        ];\n    }\n\n    const match3Lane = matchPath(pathname, { path: OMSRoutesEnum.newOrderDetailsWithLane });\n    if (match3Lane) {\n        params = { ...params, ...match3Lane.params };\n        activeStepIndex = 1;\n        stepsSequence = [OrderCreationStepEnum.shipmentDetails, OrderCreationStepEnum.cargoDetails];\n    }\n\n    const steps = stepsSequence.map((step) => ({\n        label: t(STEP_T_MAP[step]),\n        step,\n        pathnameTemplate: STEP_PATH_NAMES[step],\n    }));\n\n    const goTo = (stepIndex: number): void => {\n        const { pathnameTemplate } = steps[stepIndex];\n        const pathname = generatePath(pathnameTemplate, params);\n\n        history.push({\n            pathname,\n            search,\n        });\n    };\n\n    const isContinue = !!query[QueryKeysEnum.orderCreationComplete];\n\n    return (\n        <Stepper\n            className={cx('steps')}\n            activeStepIndex={activeStepIndex}\n            goTo={goTo}\n            steps={steps}\n            testSelector=\"new-order\"\n            isDisabledBack={isContinue}\n            initShowStepIndex={isContinue ? 1 : 0}\n        />\n    );\n});\n\nexport default Steps;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport isNumber from 'lodash/isNumber';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport ColoredStatusLabel from 'common/components/ColoredStatusLabel/ColoredStatusLabel';\n\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport TruckIcon from 'common/icons/TruckIcon';\nimport AssetLabelFormatter from 'design-system/components/InfoTable/formatters/AssetLabelFormatter/AssetLabelFormatter';\nimport TrailerIcon from 'common/icons/TrailerIcon';\n\nconst getUtilizationLabel = (afterValue: number | null | undefined, beforeValue: number | null | undefined) => {\n    if (!isNumber(afterValue)) {\n        return '';\n    }\n\n    if (!isNumber(beforeValue)) {\n        return afterValue;\n    }\n\n    const diff = afterValue - beforeValue;\n    return `${beforeValue}% ${diff < 0 ? '-' : '+'} ${Math.abs(diff)}%`;\n};\n\nconst getAssetUtilizationColor = (percent: number | null | undefined) => {\n    if (isNumber(percent) && percent > 90) {\n        return StyleGuideColorsEnum.brandDark;\n    }\n\n    if (isNumber(percent) && percent > 50) {\n        return StyleGuideColorsEnum.orange;\n    }\n\n    return StyleGuideColorsEnum.tomatoRed;\n};\n\nconst getFleetUtilizationColor = (percent: number | null | undefined) => {\n    if (isNumber(percent) && percent > 90) {\n        return StyleGuideColorsEnum.brandDark;\n    }\n\n    if (isNumber(percent) && percent > 50) {\n        return StyleGuideColorsEnum.orange;\n    }\n\n    return StyleGuideColorsEnum.tomatoRed;\n};\n\nexport const useUtilizationRowsFactory = () => {\n    const { t } = useTranslation();\n\n    return React.useMemo(() => {\n        return {\n            trainCarrier: ({\n                carrierCountryCode,\n                carrierName,\n                utilizationBefore,\n                utilizationAfter,\n            }: {\n                carrierCountryCode: string | null | undefined;\n                carrierName: string;\n                utilizationBefore: number | null | undefined;\n                utilizationAfter: number | null | undefined;\n            }) => ({\n                icon: <FlagIcon countryCode={carrierCountryCode} />,\n                name: t('assignment.utilization-details.train-carrier', {\n                    companyName: carrierName,\n                }),\n                rightNode: isNumber(utilizationBefore) ? (\n                    <ColoredStatusLabel\n                        isWithoutVerticalPaddings\n                        label={t('assignment.utilization-details.fleet-utilization', {\n                            utilization: getUtilizationLabel(utilizationAfter, utilizationBefore),\n                        })}\n                        color={getFleetUtilizationColor(utilizationBefore)}\n                    />\n                ) : null,\n                valueMods: { isBold: true },\n            }),\n            truckCarrier: ({\n                carrierCountryCode,\n                carrierName,\n                utilizationBefore,\n                utilizationAfter,\n            }: {\n                carrierCountryCode: string | null | undefined;\n                carrierName: string;\n                utilizationBefore: number | null | undefined;\n                utilizationAfter: number | null | undefined;\n            }) => ({\n                icon: <FlagIcon countryCode={carrierCountryCode} />,\n                name: t('assignment.utilization-details.truck-carrier', {\n                    companyName: carrierName,\n                }),\n                rightNode: isNumber(utilizationBefore) ? (\n                    <ColoredStatusLabel\n                        isWithoutVerticalPaddings\n                        label={t('assignment.utilization-details.fleet-utilization', {\n                            utilization: getUtilizationLabel(utilizationAfter, utilizationBefore),\n                        })}\n                        color={getFleetUtilizationColor(utilizationBefore)}\n                    />\n                ) : null,\n                valueMods: { isBold: true },\n            }),\n            trailerCarrier: ({\n                carrierCountryCode,\n                carrierName,\n                utilizationBefore,\n                utilizationAfter,\n            }: {\n                carrierCountryCode: string | null | undefined;\n                carrierName: string;\n                utilizationBefore: number | null | undefined;\n                utilizationAfter: number | null | undefined;\n            }) => ({\n                icon: <FlagIcon countryCode={carrierCountryCode} />,\n                name: t('assignment.utilization-details.trailer-carrier', {\n                    companyName: carrierName,\n                }),\n                rightNode: isNumber(utilizationBefore) ? (\n                    <ColoredStatusLabel\n                        isWithoutVerticalPaddings\n                        label={t('assignment.utilization-details.fleet-utilization', {\n                            utilization: getUtilizationLabel(utilizationAfter, utilizationBefore),\n                        })}\n                        color={getFleetUtilizationColor(utilizationBefore)}\n                    />\n                ) : null,\n                valueMods: { isBold: true },\n            }),\n            truck: ({\n                model,\n                plateNumber,\n                utilizationBefore,\n                utilizationAfter,\n            }: {\n                model: string | null | undefined;\n                plateNumber: string | null | undefined;\n                utilizationBefore: number | null | undefined;\n                utilizationAfter: number | null | undefined;\n            }) => ({\n                icon: (\n                    <TruckIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.brandDark}\n                        fillOpacity={0.3}\n                        fillColor={StyleGuideColorsEnum.brandAccent}\n                    />\n                ),\n                name: <AssetLabelFormatter model={model} plateNumber={plateNumber} />,\n                rightNode: isNumber(utilizationBefore) ? (\n                    <ColoredStatusLabel\n                        isWithoutVerticalPaddings\n                        label={t('assignment.utilization-details.asset-utilization', {\n                            utilization: getUtilizationLabel(utilizationAfter, utilizationBefore),\n                        })}\n                        color={getAssetUtilizationColor(utilizationBefore)}\n                    />\n                ) : null,\n                valueMods: { isBold: true },\n            }),\n            trailer: ({\n                model,\n                plateNumber,\n                utilizationBefore,\n                utilizationAfter,\n            }: {\n                model: string | null | undefined;\n                plateNumber: string | null | undefined;\n                utilizationBefore: number | null | undefined;\n                utilizationAfter: number | null | undefined;\n            }) => ({\n                icon: (\n                    <TrailerIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.brandDark}\n                        fillOpacity={0.3}\n                        fillColor={StyleGuideColorsEnum.brandAccent}\n                    />\n                ),\n                name: <AssetLabelFormatter model={model} plateNumber={plateNumber} />,\n                rightNode: isNumber(utilizationBefore) ? (\n                    <ColoredStatusLabel\n                        isWithoutVerticalPaddings\n                        label={t('assignment.utilization-details.asset-utilization', {\n                            utilization: getUtilizationLabel(utilizationAfter, utilizationBefore),\n                        })}\n                        color={getAssetUtilizationColor(utilizationBefore)}\n                    />\n                ) : null,\n                valueMods: { isBold: true },\n            }),\n        };\n    }, [t]);\n};\n","export enum TourTypeTabsEnum {\n    deadhead = 'deadhead',\n    nextTour = 'nextTour',\n}\n\nexport enum AssetTypeTabsEnum {\n    train = 'train',\n    truck = 'truck',\n    trailer = 'trailer',\n}\n","import { SharableStateT } from '../models';\nimport { ShipperSuggestStateT } from './types';\nimport { initialShipperSuggestState } from 'common/store/shipper-suggest/reducer';\n\nexport const selectFindShippersQuery = (state: SharableStateT): ShipperSuggestStateT['query'] => {\n    return state?.shipperSuggest?.query || initialShipperSuggestState.query;\n};\nexport const selectFindShippersRequest = (state: SharableStateT): ShipperSuggestStateT['requestStatus'] => {\n    return state?.shipperSuggest?.requestStatus || initialShipperSuggestState.requestStatus;\n};\n\nexport const selectShippersIds = (state: SharableStateT): ShipperSuggestStateT['ids'] => {\n    return state?.shipperSuggest?.ids || initialShipperSuggestState.ids;\n};\n\nexport const selectShippersById = (state: SharableStateT): ShipperSuggestStateT['byId'] => {\n    return state?.shipperSuggest?.byId || initialShipperSuggestState.byId;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"title\":\"EditTimeWindowsForm__title___MpAgq\",\"actions\":\"EditTimeWindowsForm__actions___QEMhx\",\"time-picker\":\"EditTimeWindowsForm__time-picker___sNDCY\",\"time-picker__icon\":\"EditTimeWindowsForm__time-picker__icon___ZOBTR\",\"action\":\"EditTimeWindowsForm__action___HAfUr\",\"action--cancel\":\"EditTimeWindowsForm__action--cancel___eC8Xx\",\"action--set\":\"EditTimeWindowsForm__action--set___kSH5x\",\"fadeIn\":\"EditTimeWindowsForm__fadeIn___zz_te\",\"blinking\":\"EditTimeWindowsForm__blinking___f7vDF\"};","// extracted by mini-css-extract-plugin\nexport default {\"name\":\"ContractNameCell__name___z_PfV\",\"fadeIn\":\"ContractNameCell__fadeIn___O3Z0V\",\"blinking\":\"ContractNameCell__blinking___OgcVV\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './PreviewMessage.scss';\n\ntype PropsT = {\n    icon?: React.ReactNode;\n    title?: React.ReactNode;\n    description?: React.ReactNode;\n};\n\nconst cx = classNames.bind(styles);\n\nconst PreviewMessage: React.FC<PropsT> = React.memo((props) => {\n    const { icon, title, description } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <div className={cx('icon')}>{icon}</div>\n            <div className={cx('title')}>{title}</div>\n            <div className={cx('description')}>{description}</div>\n        </div>\n    );\n});\n\nexport default PreviewMessage;\n","import { TFunction } from 'i18next';\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkNotEmpty } from 'common/utils/form-validators';\nimport values from 'lodash/values';\n\nconst REQUIRED_FIELDS = values<FieldsEnum>(FieldsEnum);\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './AssetPickUpLocationPin.scss';\nimport { AssetTypeEnum, DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport MapPin, { MapPinThemeEnum } from 'common/components/maps/MapPin/MapPin';\nimport TrailerPickUpIcon from 'common/icons/TrailerPickUpIcon';\nimport TruckPickUpIcon from 'common/icons/TruckPickUpIcon';\nimport LinkPickUpIcon from 'common/icons/LinkPickUpIcon';\nimport isNumber from 'lodash/isNumber';\nimport IconWithNumber from 'common/components/IconWithNumber/IconWithNumber';\n\nconst cx = classNames.bind(styles);\n\nconst getIconColorsByTheme = (theme: MapPinThemeEnum) => {\n    if (theme === MapPinThemeEnum.charcoal) {\n        return {\n            fillColor: StyleGuideColorsEnum.transparent,\n            strokeColor: StyleGuideColorsEnum.white,\n        };\n    }\n\n    if (\n        theme === MapPinThemeEnum.blazeOrange ||\n        theme === MapPinThemeEnum.tomatoRed ||\n        theme === MapPinThemeEnum.brandDark\n    ) {\n        return {\n            fillColor: StyleGuideColorsEnum.transparent,\n            strokeColor: StyleGuideColorsEnum.white,\n        };\n    }\n\n    return {\n        fillColor: StyleGuideColorsEnum.transparent,\n        strokeColor: StyleGuideColorsEnum.brandDark,\n    };\n};\n\nconst getLinkIconColorsByTheme = (theme: MapPinThemeEnum) => {\n    if (theme === MapPinThemeEnum.charcoal) {\n        return {\n            strokeColor: StyleGuideColorsEnum.light,\n        };\n    }\n\n    if (\n        theme === MapPinThemeEnum.blazeOrange ||\n        theme === MapPinThemeEnum.tomatoRed ||\n        theme === MapPinThemeEnum.brandDark\n    ) {\n        return {\n            strokeColor: StyleGuideColorsEnum.white,\n        };\n    }\n\n    return {\n        strokeColor: StyleGuideColorsEnum.brandDark,\n    };\n};\n\ntype PropsT = {\n    className?: string;\n    lat: number | undefined;\n    lng: number | undefined;\n    assetType: AssetTypeEnum | null;\n    number?: number | null;\n    theme?: MapPinThemeEnum;\n};\n\nconst AssetPickUpLocationPin: React.FC<PropsT> = React.memo((props) => {\n    const { className, lat, lng, assetType, number } = props;\n\n    const theme = props.theme || MapPinThemeEnum.charcoal;\n\n    let iconNode: React.ReactNode | undefined;\n\n    if (!iconNode && !assetType) {\n        iconNode = <LinkPickUpIcon {...getLinkIconColorsByTheme(theme)} />;\n    }\n\n    if (!iconNode && assetType === AssetTypeEnum.trailer) {\n        iconNode = <TrailerPickUpIcon {...getIconColorsByTheme(theme)} size={DEFAULT_ICON_SIZE} />;\n    }\n\n    if (!iconNode && assetType === AssetTypeEnum.truck) {\n        iconNode = <TruckPickUpIcon {...getIconColorsByTheme(theme)} size={DEFAULT_ICON_SIZE} />;\n    }\n\n    if (!iconNode) {\n        return null;\n    }\n\n    const isShouldRenderNumber = isNumber(number);\n\n    return (\n        <MapPin\n            hasPaddings={!isShouldRenderNumber}\n            className={cs(cx('asset-tooltip'), className)}\n            lat={lat}\n            lng={lng}\n            theme={theme}\n        >\n            {isShouldRenderNumber ? <IconWithNumber number={number}>{iconNode}</IconWithNumber> : iconNode}\n        </MapPin>\n    );\n});\n\nexport default AssetPickUpLocationPin;\n","import * as React from 'react';\n\ntype PropsT = {};\n\nconst FilterIcon: React.FC<PropsT> = (props) => {\n    return (\n        <svg width={20} height={20} viewBox=\"0 0 20 20\" {...props}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path fill=\"#3E3F42\" d=\"M8.5 14.5h3V13h-3v1.5zm-5.25-9V7h13.5V5.5H3.25zm2.25 5.25h9v-1.5h-9v1.5z\" />\n            </g>\n        </svg>\n    );\n};\n\nFilterIcon.displayName = 'FilterIcon';\n\nconst storyProps: PropsT = {};\n\nexport { storyProps };\nexport default FilterIcon;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './UpdatedPartnerShipperLaneContractCard.scss';\nimport { Trans } from 'react-i18next';\nimport ShipperContractLaneId from 'broker-admin/components/notification-cards/entities/ShipperContractLaneId/ShipperContractLaneId';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    id: string;\n};\n\nconst UpdatedPartnerShipperLaneContractCard: React.FC<PropsT> = React.memo((props) => {\n    const { id } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"notifications.partner-shipper-contract-lane-updated\"\n                components={{\n                    id: <ShipperContractLaneId id={id} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default UpdatedPartnerShipperLaneContractCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"BrokerOrderDetailsPage__wrap___Gq8Lu\",\"tabs-wrap\":\"BrokerOrderDetailsPage__tabs-wrap___vJoW8\",\"tab\":\"BrokerOrderDetailsPage__tab___ahtna\",\"fadeIn\":\"BrokerOrderDetailsPage__fadeIn___MBNh3\",\"blinking\":\"BrokerOrderDetailsPage__blinking___BWzMs\"};","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"PartnerTrailersPage__fadeIn___MXcAd\",\"blinking\":\"PartnerTrailersPage__blinking___hpB8c\"};","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"HeaderSideBarContent__header___A5Nrp\",\"header--left\":\"HeaderSideBarContent__header--left___HT6EF\",\"header--right\":\"HeaderSideBarContent__header--right___b7qWy\",\"title\":\"HeaderSideBarContent__title___IzqiX\",\"spacer\":\"HeaderSideBarContent__spacer___RMXOe\",\"after-title-node\":\"HeaderSideBarContent__after-title-node___QUH51\",\"right-node\":\"HeaderSideBarContent__right-node___QcfJR\",\"control--has-right-padding\":\"HeaderSideBarContent__control--has-right-padding___ZBBl7\",\"control--back-button\":\"HeaderSideBarContent__control--back-button___Q5QLO\",\"after-dropdown-node\":\"HeaderSideBarContent__after-dropdown-node___QnXsz\",\"skeleton\":\"HeaderSideBarContent__skeleton___w96dg\",\"fadeIn\":\"HeaderSideBarContent__fadeIn___nyp5_\",\"blinking\":\"HeaderSideBarContent__blinking___oKgg2\"};","// extracted by mini-css-extract-plugin\nexport default {\"map-tooltip-wrap\":\"MapTooltip__map-tooltip-wrap___QzIr8\",\"footer-wrap\":\"MapTooltip__footer-wrap___LDBqY\",\"fadeIn\":\"MapTooltip__fadeIn___QsgDg\",\"blinking\":\"MapTooltip__blinking___v7BtO\"};","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"PriceComponentTypeCustomMultipleDropdown__option___Ki7xZ\",\"option__right-icon\":\"PriceComponentTypeCustomMultipleDropdown__option__right-icon___TQncA\",\"overlay\":\"PriceComponentTypeCustomMultipleDropdown__overlay___JxIBD\",\"fadeIn\":\"PriceComponentTypeCustomMultipleDropdown__fadeIn___nDFnR\",\"blinking\":\"PriceComponentTypeCustomMultipleDropdown__blinking___y4lj0\"};","import * as React from 'react';\nimport { useContext, useState } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './AssetDetailsMap.scss';\nimport GoogleMapReact from 'google-map-react';\nimport { BOOTSTRAP_URL_KEYS, DEFAULT_CENTER, DEFAULT_ZOOM, MAP_OPTIONS } from 'common/store/constants';\nimport { AssetTypeEnum } from 'common/constants';\nimport LastAssetTrackPointPin from 'common/components/maps/pins/LastAssetTrackPointPin/LastAssetTrackPointPin';\nimport { parseDateString } from 'common/utils/time';\nimport AssetServiceLocationContext from 'common/components/AssetSidebarContent/contexts/asset-service-location-context';\nimport { useGoogleMapGeocoding } from 'common/utils/hooks/maps/useGoogleMapGeocoding';\nimport ServicePinIcon from 'common/icons/ServicePinIcon';\nimport MapLoader from 'common/components/maps/MapLoader/MapLoader';\nimport { SyncSetUnavailableFormMapStateContext } from 'common/components/AssetSidebarContent/SetUnavailableForm/contexts/sync-map-state';\nimport useGoogleMapsApiLoader from 'common/utils/hooks/maps/useGoogleMapsApiLoader';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    type: AssetTypeEnum;\n    isLoading: boolean;\n    currentPosition: GeoPointT | null;\n    telematicUpdatedDate: string | undefined;\n};\n\nconst MAP_PIN_KEY = {\n    serviceLocationPoint: 'service-location-point',\n};\n\nconst AssetDetailsMap: React.FC<PropsT> = React.memo((props) => {\n    const { type, isLoading, currentPosition, telematicUpdatedDate } = props;\n\n    const { hasDropAssetPointError } = useContext(SyncSetUnavailableFormMapStateContext);\n\n    const { location: contextLocations, setLocation: setContextLocation } = useContext(AssetServiceLocationContext);\n\n    const { onGoogleApiLoaded } = useGoogleMapsApiLoader({});\n    const { tryGeocodeByPoint } = useGoogleMapGeocoding();\n\n    const [draggablePin, setDraggablePin] = useState<{\n        point: GeoPointT;\n        childKey: string;\n    } | null>(null);\n\n    const handleDragMove = (childKey: string, childProps: any, mouse: GeoPointT) => {\n        if (childKey !== MAP_PIN_KEY.serviceLocationPoint) {\n            return;\n        }\n\n        setDraggablePin({\n            childKey,\n            point: {\n                lat: mouse.lat,\n                lng: mouse.lng,\n            },\n        });\n    };\n\n    const handleDragEnd = async (childKey: string, childProps: any, mouse: GeoPointT) => {\n        const pointToDrop = await tryGeocodeByPoint(mouse);\n\n        if (childKey === MAP_PIN_KEY.serviceLocationPoint) {\n            setContextLocation(pointToDrop);\n        }\n\n        setDraggablePin(null);\n    };\n\n    const viewServiceLocationPoint =\n        draggablePin?.childKey === MAP_PIN_KEY.serviceLocationPoint ? draggablePin?.point : contextLocations?.point;\n\n    return (\n        <>\n            {isLoading && <MapLoader />}\n            <GoogleMapReact\n                draggable={!draggablePin}\n                defaultCenter={DEFAULT_CENTER}\n                defaultZoom={DEFAULT_ZOOM}\n                bootstrapURLKeys={BOOTSTRAP_URL_KEYS}\n                options={MAP_OPTIONS}\n                onGoogleApiLoaded={onGoogleApiLoaded}\n                onChildMouseDown={handleDragMove}\n                onChildMouseUp={handleDragEnd}\n                onChildMouseMove={handleDragMove}\n            >\n                <LastAssetTrackPointPin\n                    key=\"trailer-last-point\"\n                    iconType={type}\n                    lat={currentPosition?.lat}\n                    lng={currentPosition?.lng}\n                    timestamp={parseDateString(telematicUpdatedDate)}\n                />\n                {viewServiceLocationPoint && (\n                    <ServicePinIcon\n                        key={MAP_PIN_KEY.serviceLocationPoint}\n                        className={cx('location')}\n                        lat={viewServiceLocationPoint?.lat}\n                        lng={viewServiceLocationPoint?.lng}\n                        isWrong={hasDropAssetPointError}\n                    />\n                )}\n            </GoogleMapReact>\n        </>\n    );\n});\n\nexport default AssetDetailsMap;\n","import * as React from 'react';\nimport { memo, useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectDocumentsDictByType, selectDocumentsDictRequest } from 'common/store/documents-dict/selectors';\nimport { fetchDocumentsDict } from 'common/store/documents-dict/actions';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { ApiDocumentTypeT, ApiPartnerTypeT } from 'common/utils/api/models';\n\nexport type PropsT = {\n    className?: string;\n    documentType?: ApiDocumentTypeT;\n    partnerType: ApiPartnerTypeT | null;\n};\n\nconst AsyncDictDocumentNameLabel: React.FC<PropsT> = memo((props) => {\n    const { className, documentType, partnerType } = props;\n    const dispatch = useDispatch();\n\n    const documentsDictRequest = useSelector(selectDocumentsDictRequest(partnerType));\n    const documentsDictByType = useSelector(selectDocumentsDictByType(partnerType));\n\n    useEffect(() => {\n        dispatch(fetchDocumentsDict(partnerType));\n    }, [dispatch, partnerType]);\n\n    const dictDocument = documentsDictByType[documentType as ApiDocumentTypeT] || null;\n\n    if (documentsDictRequest.loading) {\n        return <ControlLoaderIcon fillColor={StyleGuideColorsEnum.gray} size={DEFAULT_ICON_SIZE} />;\n    }\n\n    return <span className={className}>{dictDocument?.name || documentType}</span>;\n});\n\nexport default AsyncDictDocumentNameLabel;\n","// extracted by mini-css-extract-plugin\nexport default {\"note\":\"FieldNotes__note___a_agm\",\"note--error\":\"FieldNotes__note--error___bTgtz\",\"note--warning\":\"FieldNotes__note--warning___jjCMe\",\"note--success\":\"FieldNotes__note--success___ORhmz\",\"fadeIn\":\"FieldNotes__fadeIn___nZmDX\",\"blinking\":\"FieldNotes__blinking___NlwLi\"};","import postalCodesJs from 'postal-codes-js';\nimport formats from 'postal-codes-js/formats-web';\n\nconst prepareCountryCode = (countryCode?: string | null): string => (countryCode ? countryCode.toUpperCase() : '');\n\nexport const isValid = (countryCode: string | null, postalCode: string | number): boolean => {\n    if (!countryCode) {\n        return false;\n    }\n\n    const result = postalCodesJs.validate(countryCode, postalCode);\n\n    return typeof result !== 'string';\n};\n\nexport const hasZipCodeValidation = (countryCode?: string | null): boolean => {\n    const preparedCountryCode = prepareCountryCode(countryCode);\n\n    return !!formats(`${preparedCountryCode}.json`);\n};\n\nexport const DEFAULT_PLACEHOLDER = '';\n\nexport const getZipCodePlaceholder = (countryCode: string | null): string => {\n    if (!countryCode) {\n        return '';\n    }\n\n    const preparedCountryCode = prepareCountryCode(countryCode);\n\n    const formatConfig = formats(`${preparedCountryCode}.json`);\n\n    const description = formatConfig?.Description;\n    const descriptionPlaceholder = (description || '').split(':')[1];\n    if (descriptionPlaceholder) {\n        return descriptionPlaceholder.trim();\n    }\n\n    const firstValidExample = formatConfig?.TestData?.Valid?.[0];\n    if (firstValidExample) {\n        return firstValidExample;\n    }\n\n    return DEFAULT_PLACEHOLDER;\n};\n\nexport const getZipCodeExample = (countryCode: string | null): string => {\n    const preparedCountryCode = prepareCountryCode(countryCode);\n\n    const formatConfig = formats(`${preparedCountryCode}.json`);\n\n    const firstValidExample = formatConfig?.TestData?.Valid?.[0];\n    if (firstValidExample) {\n        return firstValidExample;\n    }\n\n    return DEFAULT_PLACEHOLDER;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"trigger\":\"PhoneNumberDropdownTrigger__trigger___Gw5Gz\",\"trigger__country\":\"PhoneNumberDropdownTrigger__trigger__country___K84LD\",\"country\":\"PhoneNumberDropdownTrigger__country___KcBDg\",\"country--isClickable\":\"PhoneNumberDropdownTrigger__country--isClickable___faDIW\",\"country--isSelected\":\"PhoneNumberDropdownTrigger__country--isSelected___EzSzX\",\"input\":\"PhoneNumberDropdownTrigger__input___uBJJ5\",\"prefix\":\"PhoneNumberDropdownTrigger__prefix___qZzMb\",\"prefix--isDisabled\":\"PhoneNumberDropdownTrigger__prefix--isDisabled___R9aOS\",\"inner-input\":\"PhoneNumberDropdownTrigger__inner-input___L0IkQ\",\"inner-input--isDisabled\":\"PhoneNumberDropdownTrigger__inner-input--isDisabled___IZPG1\",\"fadeIn\":\"PhoneNumberDropdownTrigger__fadeIn___meuob\",\"blinking\":\"PhoneNumberDropdownTrigger__blinking___hm5Fg\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ShipperContractLanesLayout.scss';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport history from 'common/utils/history';\nimport BaseShipperContractLanesLayout from 'common/layouts/BaseShipperContractLanesLayout/BaseShipperContractLanesLayout';\nimport { urlFactory } from 'broker-admin/utils/urls';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    partnerId: PartnerIdT;\n    partnerType: PartnerTypeEnum;\n    contractId: ShipperContractIdT;\n};\n\nconst ShipperContractLanesLayout: React.FC<PropsT> = React.memo((props) => {\n    const { partnerId, partnerType, contractId } = props;\n\n    const goToLaneCreation = () => {\n        history.push(\n            urlFactory.newPartnerShipperContractLane({\n                partnerType,\n                partnerId,\n                contractId,\n            }),\n        );\n    };\n\n    const goToLaneDetails = (laneId: ShipperContractLaneIdT) => {\n        history.push(\n            urlFactory.partnerShipperContractLane({\n                partnerType,\n                partnerId,\n                contractId,\n                laneId,\n            }),\n        );\n    };\n\n    return (\n        <ContentMargins>\n            <BaseShipperContractLanesLayout\n                partnerId={partnerId}\n                contractId={contractId}\n                onCreateShipperContractLane={goToLaneCreation}\n                onOpenShipperContractLaneDetails={goToLaneDetails}\n            />\n        </ContentMargins>\n    );\n});\n\nexport default ShipperContractLanesLayout;\n","// extracted by mini-css-extract-plugin\nexport default {\"map-footer\":\"MapFooter__map-footer___wS56Z\",\"fadeIn\":\"MapFooter__fadeIn___P2Nz4\",\"blinking\":\"MapFooter__blinking___A9vEa\"};","import React from 'react';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport { SidebarCloseConfirmationT } from 'common/layouts/SideBars/models';\nimport { useTranslation } from 'react-i18next';\nimport { TFunction } from 'i18next';\n\ntype PropsT<T> = {\n    isShow: boolean;\n    onClose: () => void;\n    onCancel: () => void;\n    onConfirm: () => void;\n    data: T;\n    getSidebarCloseConfirmation: (t: TFunction, data: T) => SidebarCloseConfirmationT | null;\n};\n\nconst SideBarCloseConfirmation = <T,>(props: PropsT<T>): React.ReactElement | null => {\n    const { isShow, onCancel, onClose, onConfirm, data, getSidebarCloseConfirmation } = props;\n\n    const { t } = useTranslation();\n\n    const modalContentProps = React.useMemo(() => {\n        if (!data) {\n            return null;\n        }\n        return getSidebarCloseConfirmation(t, data);\n    }, [t, data, getSidebarCloseConfirmation]);\n\n    if (!modalContentProps) {\n        return null;\n    }\n\n    const TEST_SELECTOR = 'close-sidebar-confirmation';\n\n    const { confirmAction, cancelAction, icon, title, message } = modalContentProps;\n\n    if (!isShow) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    icon={icon}\n                    title={title}\n                    message={message}\n                    actions={[\n                        {\n                            children: cancelAction,\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            onClick: () => {\n                                onCancel();\n                            },\n                        },\n                        {\n                            children: confirmAction,\n                            theme: ButtonThemeEnum.danger,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            onClick: () => {\n                                onConfirm();\n                            },\n                        },\n                    ]}\n                />\n            </ModalContent>\n        </Modal>\n    );\n};\n\nexport default React.memo(SideBarCloseConfirmation) as typeof SideBarCloseConfirmation;\n","// extracted by mini-css-extract-plugin\nexport default {\"rule\":\"RuleImpact__rule___RPMqF\",\"fadeIn\":\"RuleImpact__fadeIn___LB4LG\",\"blinking\":\"RuleImpact__blinking___ig65Y\"};","import { UserRoleT } from 'common/utils/api/models';\nimport { TranziitApiRequestErrorSubTypeEnum } from 'common/utils/api/tranziit/errors/tranziit-api-errors';\n\nexport enum FieldsEnum {\n    email = 'email',\n    roles = 'roles',\n    teamIds = 'teamIds',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.email]: string;\n    [FieldsEnum.roles]: Array<UserRoleT>;\n    [FieldsEnum.teamIds]: Array<TeamIdT>;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n\nexport type AsyncFormErrorsT = Partial<{\n    [FieldsEnum.email]: TranziitApiRequestErrorSubTypeEnum.emailAlreadyExist;\n}>;\n","import keyBy from 'lodash/keyBy';\n\nimport {\n    CLEAR_OFFERS_TASKS,\n    CORRECT_PREVIEW_RESERVE_QUERY,\n    CORRECT_RESERVE_QUERY,\n    CREATE_ORDER_REQUEST_BEGIN,\n    CREATE_ORDER_REQUEST_ERROR,\n    CREATE_ORDER_REQUEST_SUCCESS,\n    CREATE_PRICE_OFFER_WITH_LANE_REQUEST_BEGIN,\n    CREATE_PRICE_OFFER_WITH_LANE_REQUEST_ERROR,\n    CREATE_PRICE_OFFER_WITH_LANE_REQUEST_SUCCESS,\n    CREATE_RESERVE_BEGIN,\n    CREATE_RESERVE_ERROR,\n    CREATE_RESERVE_SUCCESS,\n    CREATE_RFQ_REQUEST_BEGIN,\n    CREATE_RFQ_REQUEST_ERROR,\n    CREATE_RFQ_REQUEST_SUCCESS,\n    FETCH_OFFERS,\n    FETCH_SHIPPER_INFO_BEGIN,\n    FETCH_SHIPPER_INFO_ERROR,\n    FETCH_SHIPPER_INFO_SUCCESS,\n    FETCH_ROUTE_SUCCESS,\n    MARK_OFFERS_EXPIRED,\n    OrderCreationActionT,\n    OrderCreationStateT,\n    PREVIEW_RESERVE_BEGIN,\n    PREVIEW_RESERVE_ERROR,\n    PREVIEW_RESERVE_SUCCESS,\n    RESET,\n    RESET_CREATE_RESERVE_WITH_QUERY,\n    RESET_RESERVE_AND_RESERVE_PREVIEW,\n    SET_ALLOW_CREATE_RFQ,\n    SET_CREATE_RESERVE_QUERY,\n    SET_EXPECTED_OFFERS_COUNT,\n    SET_PREVIEW_RESERVE_QUERY,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport groupOffersByDatesHash from './utils/group-offers-by-dates-hash';\nimport { byPriceAsc } from 'common/store/order-creation/utils/sort-offers';\nimport { PriceOfferT } from 'common/store/order-creation/models';\nimport uniqBy from 'lodash/uniqBy';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\nimport { checkIsSameQuery } from 'common/utils/pagination/utils';\nimport { isNonNil } from 'common/utils';\n\nconst initialOffersTasks = {\n    count: 0,\n    total: null,\n};\n\nconst initialState: OrderCreationStateT = {\n    shipperInfoById: {},\n    shipperInfoRequestStatus: requestStatus.initial,\n\n    reserve: null,\n    reserveRequest: requestStatus.initial,\n    reserveQuery: null,\n\n    previewReserve: null,\n    previewReserveRequest: requestStatus.initial,\n    previewReserveQuery: null,\n\n    isAllowCreateRFQ: true,\n\n    createRFQRequest: requestStatus.initial,\n    createPriceOfferWithLaneRequest: requestStatus.initial,\n    polylines: null,\n    priceOffers: null,\n    rfq: null,\n\n    lanePriceOffer: null,\n\n    createOrderRequest: requestStatus.initial,\n    offersTasks: {\n        ...initialOffersTasks,\n    },\n};\n\nconst markBestPriceOffers = (priceOffers?: Array<PriceOfferT>): void => {\n    if (!priceOffers) {\n        return;\n    }\n\n    const bestOffer = priceOffers.sort(byPriceAsc)[0];\n    priceOffers.forEach((priceOffer) => {\n        // eslint-disable-next-line no-param-reassign\n        priceOffer.isBestPrice = bestOffer?.price === priceOffer?.price;\n    });\n};\n\nexport default (state = initialState, action: OrderCreationActionT | DestroySessionActionT): OrderCreationStateT => {\n    switch (action.type) {\n        case FETCH_SHIPPER_INFO_BEGIN: {\n            return {\n                ...state,\n                shipperInfoRequestStatus: requestStatus.loading,\n            };\n        }\n\n        case FETCH_SHIPPER_INFO_SUCCESS: {\n            const { shipperInfo } = action;\n\n            return {\n                ...state,\n                shipperInfoById: {\n                    ...state.shipperInfoById,\n                    [shipperInfo.id]: shipperInfo,\n                },\n                shipperInfoRequestStatus: requestStatus.ok,\n            };\n        }\n\n        case FETCH_SHIPPER_INFO_ERROR: {\n            return {\n                ...state,\n                shipperInfoRequestStatus: requestStatus.setError(action.error),\n            };\n        }\n\n        case CREATE_PRICE_OFFER_WITH_LANE_REQUEST_BEGIN: {\n            return {\n                ...state,\n                createPriceOfferWithLaneRequest: requestStatus.loading,\n            };\n        }\n\n        case CREATE_PRICE_OFFER_WITH_LANE_REQUEST_SUCCESS: {\n            return {\n                ...state,\n                rfq: action.rfq,\n                lanePriceOffer: action.lanePriceOffer,\n                createPriceOfferWithLaneRequest: requestStatus.ok,\n            };\n        }\n\n        case CREATE_PRICE_OFFER_WITH_LANE_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                createPriceOfferWithLaneRequest: requestStatus.setError(error),\n            };\n        }\n\n        case CREATE_RFQ_REQUEST_BEGIN: {\n            return {\n                ...state,\n                createRFQRequest: requestStatus.loading,\n            };\n        }\n\n        case CREATE_RFQ_REQUEST_SUCCESS: {\n            const { rfq } = action;\n\n            return {\n                ...state,\n                rfq,\n                createRFQRequest: requestStatus.ok,\n            };\n        }\n\n        case CREATE_RFQ_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                createRFQRequest: requestStatus.setError(error),\n            };\n        }\n\n        case FETCH_ROUTE_SUCCESS: {\n            const { polylines } = action;\n\n            return {\n                ...state,\n                polylines,\n            };\n        }\n\n        case SET_EXPECTED_OFFERS_COUNT: {\n            const { expectedOffersCount } = action;\n\n            return {\n                ...state,\n                offersTasks: {\n                    ...state.offersTasks,\n                    total: expectedOffersCount,\n                },\n            };\n        }\n\n        case FETCH_OFFERS: {\n            const { priceOffers } = action;\n\n            const currentPriceOffers = (state.priceOffers?.list || [])\n                .map((id) => {\n                    return state.priceOffers?.byId[id];\n                })\n                .filter(isNonNil);\n            const fullListPriceOffers = uniqBy([...currentPriceOffers, ...priceOffers], (offer) => {\n                return offer.id;\n            });\n\n            markBestPriceOffers(fullListPriceOffers);\n\n            const priceOffersByHashDates = groupOffersByDatesHash(fullListPriceOffers);\n\n            const newUniqOffersCount = fullListPriceOffers.length - (state.priceOffers?.list?.length || 0);\n\n            return {\n                ...state,\n                priceOffers: {\n                    byHash: {\n                        ...(state.priceOffers?.byHash || {}),\n                        ...priceOffersByHashDates,\n                    },\n                    byId: {\n                        ...(state.priceOffers?.byId || {}),\n                        ...keyBy(fullListPriceOffers, 'id'),\n                    },\n                    list: fullListPriceOffers.map((offer) => offer.id),\n                },\n                offersTasks: {\n                    ...state.offersTasks,\n                    count: state.offersTasks.count + newUniqOffersCount,\n                },\n            };\n        }\n\n        case MARK_OFFERS_EXPIRED: {\n            const { ids } = action;\n\n            if (!state.priceOffers) {\n                return state;\n            }\n\n            const changesById = ids.reduce((acc, id) => {\n                const priceOffer = state.priceOffers?.byId[id];\n\n                if (priceOffer) {\n                    acc[id] = {\n                        ...priceOffer,\n                        isExpired: true,\n                    };\n                }\n\n                return acc;\n            }, {} as Record<PriceOfferIdT, PriceOfferT>);\n\n            return {\n                ...state,\n                priceOffers: {\n                    ...state.priceOffers,\n                    byId: {\n                        ...state.priceOffers.byId,\n                        ...changesById,\n                    },\n                },\n            };\n        }\n\n        case CREATE_ORDER_REQUEST_BEGIN: {\n            return {\n                ...state,\n                createOrderRequest: requestStatus.loading,\n            };\n        }\n\n        case CREATE_ORDER_REQUEST_SUCCESS: {\n            return {\n                ...state,\n                createOrderRequest: requestStatus.ok,\n            };\n        }\n\n        case CREATE_ORDER_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                createOrderRequest: requestStatus.setError(error),\n            };\n        }\n\n        case CLEAR_OFFERS_TASKS: {\n            return {\n                ...state,\n                priceOffers: initialState.priceOffers,\n                offersTasks: {\n                    ...initialState.offersTasks,\n                },\n            };\n        }\n\n        case SET_CREATE_RESERVE_QUERY: {\n            const { query } = action;\n\n            return {\n                ...state,\n                reserveQuery: query,\n                reserveRequest: requestStatus.initial,\n            };\n        }\n\n        case CREATE_RESERVE_BEGIN: {\n            const { query } = action;\n\n            if (!checkIsSameQuery(query, state.reserveQuery)) {\n                return state;\n            }\n\n            return {\n                ...state,\n                reserveRequest: requestStatus.loading,\n            };\n        }\n\n        case CREATE_RESERVE_SUCCESS: {\n            const { reserve, query } = action;\n\n            if (!checkIsSameQuery(query, state.reserveQuery)) {\n                return state;\n            }\n\n            return {\n                ...state,\n                reserve,\n                reserveRequest: requestStatus.ok,\n            };\n        }\n\n        case CREATE_RESERVE_ERROR: {\n            const { error, query } = action;\n\n            if (!checkIsSameQuery(query, state.reserveQuery)) {\n                return state;\n            }\n\n            return {\n                ...state,\n                reserve: null,\n                reserveRequest: requestStatus.setError(error),\n            };\n        }\n\n        case RESET_CREATE_RESERVE_WITH_QUERY: {\n            const { query } = action;\n\n            if (!checkIsSameQuery(query, state.reserveQuery)) {\n                return state;\n            }\n\n            return {\n                ...state,\n                reserve: null,\n                reserveRequest: requestStatus.initial,\n            };\n        }\n\n        case SET_ALLOW_CREATE_RFQ: {\n            const { isAllowCreateRFQ } = action;\n\n            return {\n                ...state,\n                isAllowCreateRFQ,\n            };\n        }\n\n        case SET_PREVIEW_RESERVE_QUERY: {\n            const { query } = action;\n\n            return {\n                ...state,\n                previewReserveQuery: query,\n                previewReserveRequest: requestStatus.initial,\n            };\n        }\n\n        case CORRECT_PREVIEW_RESERVE_QUERY: {\n            const { query } = action;\n\n            return {\n                ...state,\n                previewReserveQuery: query,\n            };\n        }\n\n        case CORRECT_RESERVE_QUERY: {\n            const { query } = action;\n\n            return {\n                ...state,\n                reserveQuery: query,\n            };\n        }\n\n        case PREVIEW_RESERVE_BEGIN: {\n            const { query } = action;\n\n            if (!checkIsSameQuery(query, state.previewReserveQuery)) {\n                return state;\n            }\n\n            return {\n                ...state,\n                previewReserveRequest: requestStatus.loading,\n            };\n        }\n\n        case PREVIEW_RESERVE_SUCCESS: {\n            const { preview, query } = action;\n\n            if (!checkIsSameQuery(query, state.previewReserveQuery)) {\n                return state;\n            }\n\n            return {\n                ...state,\n                previewReserve: preview,\n                previewReserveRequest: requestStatus.ok,\n            };\n        }\n\n        case PREVIEW_RESERVE_ERROR: {\n            const { error, query } = action;\n\n            if (!checkIsSameQuery(query, state.previewReserveQuery)) {\n                return state;\n            }\n\n            return {\n                ...state,\n                previewReserve: null,\n                previewReserveRequest: requestStatus.setError(error),\n            };\n        }\n\n        case RESET_RESERVE_AND_RESERVE_PREVIEW: {\n            return {\n                ...state,\n                reserve: null,\n                reserveRequest: requestStatus.initial,\n                previewReserve: null,\n                previewReserveRequest: requestStatus.initial,\n            };\n        }\n\n        case RESET: {\n            return {\n                ...state,\n                ...initialState,\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default: {\n            return state;\n        }\n    }\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"label--bold\":\"NotificationEntityLabel__label--bold___WezFK\",\"label--underline\":\"NotificationEntityLabel__label--underline___ymGt1\",\"fadeIn\":\"NotificationEntityLabel__fadeIn___kJYsR\",\"blinking\":\"NotificationEntityLabel__blinking___n_2QW\"};","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst BoatIcon: React.FC<PropsT> = (props) => {\n    const { size, fillColor, strokeColor } = props;\n\n    return (\n        <svg width={size} height={size} viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    d=\"M5.867 12.76 7 11.47l1.133 1.29c.255.3.96.99 1.867.99.908 0 1.613-.69 1.867-.99L13 11.47l1.133 1.29c.15.172.45.48.855.705l.84-2.977-1.793-.585L10 8.582 5.965 9.91l-1.8.592.848 2.97c.412-.232.705-.54.854-.712zM9.25 3.25h1.5V4h-1.5v-.75z\"\n                    fill={fillColor}\n                />\n                <path\n                    d=\"M3.962 15.25H4c1.2 0 2.265-.66 3-1.5.735.84 1.8 1.5 3 1.5s2.265-.66 3-1.5c.735.84 1.8 1.5 3 1.5h.038l1.417-5.01a.79.79 0 0 0-.045-.585.747.747 0 0 0-.45-.375L16 8.965V5.5c0-.825-.675-1.5-1.5-1.5h-2.25V1.75h-4.5V4H5.5C4.675 4 4 4.675 4 5.5v3.465l-.967.315a.755.755 0 0 0-.495.96l1.424 5.01zm5.288-12h1.5V4h-1.5v-.75zM5.5 5.5h9v2.977L10 7 5.5 8.477V5.5zm.465 4.402L10 8.582l4.035 1.328 1.793.585-.84 2.978a3.305 3.305 0 0 1-.855-.706L13 11.47l-1.133 1.29c-.255.3-.96.99-1.867.99-.908 0-1.613-.69-1.867-.99L7 11.47l-1.133 1.29c-.15.172-.45.473-.854.697l-.848-2.97 1.8-.585zM7 17.508c.945.48 1.973.727 3 .727s2.055-.24 3-.727a6.526 6.526 0 0 0 3 .742h1.5v-1.5H16c-1.043 0-2.085-.352-3-.99a5.239 5.239 0 0 1-3 .96 5.239 5.239 0 0 1-3-.96c-.915.638-1.957.99-4.5.99v1.5c2.535 0 3.555-.262 4.5-.742z\"\n                    fill={strokeColor}\n                />\n            </g>\n        </svg>\n    );\n};\n\nBoatIcon.displayName = 'BoatIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default BoatIcon;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    baseColor: StyleGuideColorsEnum;\n};\n\nconst BigQuestionReversedIcon: React.FC<PropsT> = (props) => {\n    const { baseColor, ...rest } = props;\n\n    return (\n        <svg width=\"200\" height=\"130\" viewBox=\"0 0 200 130\" xmlns=\"http://www.w3.org/2000/svg\" {...rest}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M0 0h200v130H0z\" />\n                <path\n                    d=\"M103 27a7 7 0 0 1 0 14h64a7 7 0 0 1 0 14h22a7 7 0 0 1 0 14h-19a7 7 0 0 0 0 14h6a7 7 0 0 1 0 14h-52a7.026 7.026 0 0 1-1.5-.161A7.026 7.026 0 0 1 121 97H40a7 7 0 0 1 0-14H7a7 7 0 0 1 0-14h34a7 7 0 0 0 0-14H22a7 7 0 0 1 0-14h34a7 7 0 0 1 0-14h47zm90 56a7 7 0 1 1 0 14 7 7 0 0 1 0-14z\"\n                    fill={baseColor}\n                    opacity=\".1\"\n                />\n                <path\n                    d=\"M138.577 93.075a54.587 54.587 0 0 1-7.933 5.299l.165 14.083a2 2 0 0 1-3.22 1.609l-12.663-9.743A66.553 66.553 0 0 1 100 106c-30.376 0-55-20.147-55-45s24.624-45 55-45 55 20.147 55 45c0 6.879-1.886 13.397-5.259 19.227a42.703 42.703 0 0 1-2.015 3.154m-2.533 3.273a47.462 47.462 0 0 1-2.906 3.122\"\n                    stroke={baseColor}\n                    strokeWidth=\"2.5\"\n                    fill=\"#FFF\"\n                    strokeLinecap=\"round\"\n                />\n                <path\n                    d=\"M98.142 70.135c0-2.149.239-3.94.717-5.376.479-1.436 1.524-3.096 3.135-4.98 1.611-1.885 2.661-3.248 3.15-4.088.488-.84.864-1.728 1.127-2.666.264-.937.396-2.03.396-3.28 0-2.442-.537-4.351-1.611-5.728-1.075-1.377-2.54-2.066-4.395-2.066-1.875 0-3.408.67-4.6 2.007-1.19 1.338-1.806 3.13-1.845 5.376h-3.223c.04-3.203.962-5.767 2.769-7.69 1.806-1.924 4.106-2.886 6.9-2.886 2.89 0 5.155.991 6.796 2.973 1.64 1.983 2.46 4.644 2.46 7.984 0 2.07-.404 4.009-1.215 5.815-.81 1.807-2.358 3.99-4.643 6.548-1.797 1.856-2.696 4.541-2.696 8.057h-3.222zm-.352 9.785c0-.684.186-1.255.557-1.714.37-.459.898-.688 1.582-.688.683 0 1.216.23 1.596.688.381.459.572 1.03.572 1.714 0 .664-.19 1.216-.572 1.655-.38.44-.913.66-1.596.66-.684 0-1.211-.22-1.582-.66-.371-.44-.557-.991-.557-1.655z\"\n                    fill={baseColor}\n                    fillRule=\"nonzero\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nBigQuestionReversedIcon.displayName = 'BigQuestionReversedIcon';\n\nconst storyProps: PropsT = {\n    baseColor: StyleGuideColorsEnum.tomatoRed,\n};\n\nexport { storyProps };\nexport default BigQuestionReversedIcon;\n","import React from 'react';\n\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\n\nimport classNames from 'classnames/bind';\nimport styles from './PriceComponentTypeMultipleDropdown.scss';\nimport { useTranslation } from 'react-i18next';\nimport { ApiPriceComponentTypeT, PriceComponentTypeEnum } from 'broker-admin/utils/api/broker-tranziit/models';\nimport RouteIcon from 'common/icons/RouteIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport FuelIcon from 'common/icons/FuelIcon';\nimport TollIcon from 'common/icons/TollIcon';\nimport DropdownMultipleInput from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInput';\nimport DropdownMultipleInputCountLabel from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInputCountLabel/DropdownMultipleInputCountLabel';\n\nconst cx = classNames.bind(styles);\n\ntype OptionT = {\n    value: ApiPriceComponentTypeT;\n    icon?: React.ReactNode;\n    label: React.ReactNode;\n};\n\ntype ValueT = OptionT['value'];\n\nexport type PropsT = {\n    className?: string;\n    values: Array<ValueT>;\n    onSelect: (values: Array<ValueT>) => void;\n    overlayPosition: DropdownOverlayPositionEnum;\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    placeholder?: InputPropsT['placeholder'];\n    onBlur: InputPropsT['onBlur'];\n    onFocus: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasChanges?: boolean;\n};\n\nexport const PRICE_RULE_COMPONENT_TYPE_I18N_MAP: Record<ApiPriceComponentTypeT, string> = {\n    [PriceComponentTypeEnum.lineHaul]: 'price-settings.rules.form.fields.impact-price-components.options.line-haul',\n    [PriceComponentTypeEnum.fuel]: 'price-settings.rules.form.fields.impact-price-components.options.fuel',\n    [PriceComponentTypeEnum.roadTaxes]: 'price-settings.rules.form.fields.impact-price-components.options.road-taxes',\n    [PriceComponentTypeEnum.roadTaxesGeneral]:\n        'price-settings.rules.form.fields.impact-price-components.options.road-taxes-general',\n    [PriceComponentTypeEnum.roadTaxesCity]:\n        'price-settings.rules.form.fields.impact-price-components.options.road-taxes-city',\n    [PriceComponentTypeEnum.roadTaxesBridge]:\n        'price-settings.rules.form.fields.impact-price-components.options.road-taxes-bridge',\n    [PriceComponentTypeEnum.roadTaxesTunnel]:\n        'price-settings.rules.form.fields.impact-price-components.options.road-taxes-tunnel',\n    [PriceComponentTypeEnum.roadTaxesFerry]:\n        'price-settings.rules.form.fields.impact-price-components.options.road-taxes-ferry',\n    [PriceComponentTypeEnum.roadTaxesMountainPass]:\n        'price-settings.rules.form.fields.impact-price-components.options.road-taxes-mountain-pass',\n    [PriceComponentTypeEnum.serviceFee]: 'price-settings.rules.form.fields.impact-price-components.options.service-fee',\n};\n\nconst PriceComponentTypeMultipleDropdown: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        values,\n        onSelect,\n        hasWarning,\n        hasError,\n        overlayPosition,\n        isDisabled,\n        placeholder,\n        onBlur,\n        onFocus,\n        hasChanges,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const options = React.useMemo((): Array<OptionT> => {\n        return [\n            {\n                icon: <RouteIcon fillColor={StyleGuideColorsEnum.slate} />,\n                label: t(PRICE_RULE_COMPONENT_TYPE_I18N_MAP[PriceComponentTypeEnum.lineHaul]),\n                value: PriceComponentTypeEnum.lineHaul,\n            },\n            {\n                icon: <FuelIcon strokeColor={StyleGuideColorsEnum.slate} fillColor={StyleGuideColorsEnum.light} />,\n                label: t(PRICE_RULE_COMPONENT_TYPE_I18N_MAP[PriceComponentTypeEnum.fuel]),\n                value: PriceComponentTypeEnum.fuel,\n            },\n            {\n                icon: (\n                    <TollIcon\n                        strokeColor={StyleGuideColorsEnum.slate}\n                        fillColor={StyleGuideColorsEnum.light}\n                        size={DEFAULT_ICON_SIZE}\n                    />\n                ),\n                label: t(PRICE_RULE_COMPONENT_TYPE_I18N_MAP[PriceComponentTypeEnum.roadTaxes]),\n                value: PriceComponentTypeEnum.roadTaxes,\n            },\n            {\n                label: t(PRICE_RULE_COMPONENT_TYPE_I18N_MAP[PriceComponentTypeEnum.roadTaxesGeneral]),\n                value: PriceComponentTypeEnum.roadTaxesGeneral,\n            },\n            {\n                label: t(PRICE_RULE_COMPONENT_TYPE_I18N_MAP[PriceComponentTypeEnum.roadTaxesCity]),\n                value: PriceComponentTypeEnum.roadTaxesCity,\n            },\n            {\n                label: t(PRICE_RULE_COMPONENT_TYPE_I18N_MAP[PriceComponentTypeEnum.roadTaxesBridge]),\n                value: PriceComponentTypeEnum.roadTaxesBridge,\n            },\n            {\n                label: t(PRICE_RULE_COMPONENT_TYPE_I18N_MAP[PriceComponentTypeEnum.roadTaxesTunnel]),\n                value: PriceComponentTypeEnum.roadTaxesTunnel,\n            },\n            {\n                label: t(PRICE_RULE_COMPONENT_TYPE_I18N_MAP[PriceComponentTypeEnum.roadTaxesFerry]),\n                value: PriceComponentTypeEnum.roadTaxesFerry,\n            },\n            {\n                label: t(PRICE_RULE_COMPONENT_TYPE_I18N_MAP[PriceComponentTypeEnum.roadTaxesMountainPass]),\n                value: PriceComponentTypeEnum.roadTaxesMountainPass,\n            },\n            {\n                label: t(PRICE_RULE_COMPONENT_TYPE_I18N_MAP[PriceComponentTypeEnum.serviceFee]),\n                value: PriceComponentTypeEnum.serviceFee,\n            },\n        ];\n    }, [t]);\n\n    const renderTriggerContent = (options: Array<OptionT>, placeholder: string | undefined) => {\n        if (!options?.length) {\n            return placeholder;\n        }\n\n        if (options.length === 1) {\n            const option = options[0];\n            return option?.label || null;\n        }\n\n        return <DropdownMultipleInputCountLabel count={options?.length} />;\n    };\n\n    const renderOption = (option: OptionT | null | undefined): React.ReactNode => {\n        if (!option) {\n            return null;\n        }\n\n        return option?.label || '';\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option.value;\n\n    return (\n        <DropdownMultipleInput<OptionT, ValueT>\n            className={className}\n            options={options}\n            selectedValues={values}\n            getOptionValue={getOptionValue}\n            placeholder={placeholder}\n            isDisabled={isDisabled}\n            onSelect={onSelect}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            renderOption={renderOption}\n            renderTriggerContent={renderTriggerContent}\n            overlayPosition={overlayPosition}\n            overlayClassName={cx('overlay')}\n        />\n    );\n};\n\nexport default PriceComponentTypeMultipleDropdown;\n","import { TFunction } from 'i18next';\nimport { OperationUnavailableReasonT } from 'common/utils/api/models';\n\nconst operationUnavailableReasonTranslationKeyMap: Record<\n    Exclude<OperationUnavailableReasonT, 'PROFILE_IS_EXTERNALLY_RESTRICTED'>,\n    string\n> = {\n    PROFILE_IS_LOCKED: 'common:operation-unavailable-alert.reasons.profile-is-locked',\n    LEGAL_ADDRESS_IS_NOT_VERIFIED: 'common:operation-unavailable-alert.reasons.legal-address-is-not-verified',\n    BILLING_ADDRESS_IS_NOT_VERIFIED: 'common:operation-unavailable-alert.reasons.billing-address-is-not-verified',\n    NOT_ALL_REQUIRED_DOCUMENTS_APPROVED:\n        'common:operation-unavailable-alert.reasons.not-all-required-documents-approved',\n    PROFILE_IS_NOT_LINKED_WITH_EXTERNAL_COMPANY:\n        'common:operation-unavailable-alert.reasons.profile-is-not-linked-with-external-company',\n    PROFILE_IS_NOT_APPROVED_BY_BROKER: 'common:operation-unavailable-alert.reasons.profile-is-not-approved-by-broker',\n};\n\nexport const getOperationUnavailableReasonTranslation = (\n    t: TFunction,\n    operationUnavailableReason: OperationUnavailableReasonT,\n    options: {\n        externalRestrictionMessage?: string;\n    },\n): string => {\n    if (operationUnavailableReason === 'PROFILE_IS_EXTERNALLY_RESTRICTED') {\n        return options.externalRestrictionMessage\n            ? t('common:operation-unavailable-alert.reasons.profile-is-externally-restricted-with-message', {\n                  externalRestrictionMessage: options.externalRestrictionMessage,\n              })\n            : t('common:operation-unavailable-alert.reasons.profile-is-externally-restricted');\n    }\n\n    return t(operationUnavailableReasonTranslationKeyMap[operationUnavailableReason]);\n};\n","import React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './TabGroup.scss';\nimport { TabLabelSizeEnum } from 'common/components/tabs/TabLabel/constants';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    className?: string;\n    size?: TabLabelSizeEnum;\n    children: Array<React.ReactNode>;\n};\n\nconst TabGroup: React.FC<PropsT> = (props) => {\n    const { children, className, size } = props;\n\n    if (children?.length < 2) {\n        return null;\n    }\n\n    return (\n        <div\n            className={cs(\n                cx('tabs', {\n                    [`tabs--size-${size || TabLabelSizeEnum.normal}`]: true,\n                }),\n                className,\n            )}\n        >\n            {children}\n        </div>\n    );\n};\n\nexport default TabGroup;\n","import * as React from 'react';\nimport { fetchSubjectLogs } from 'common/store/subject-logs/slice';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport { subjectLogsChannel } from 'common/store/subject-logs/channels';\nimport { selectSubjectLogs, selectSubjectLogsRequestStatus } from 'common/store/subject-logs/selectors';\nimport { ApiSubjectTypeT } from 'common/utils/api/models';\nimport { AnyLogRecordT } from 'common/store/subject-logs/models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\ntype SubjectLogsRenderPropsT = {\n    logs: AnyLogRecordT[];\n    requestStatus: RequestStatusT;\n};\n\ntype PropsT = {\n    subjectType: ApiSubjectTypeT;\n    subjectId: SubjectIdT;\n    children: (props: SubjectLogsRenderPropsT) => React.ReactNode;\n};\n\nconst SubjectLogs: React.FC<PropsT> = React.memo((props) => {\n    const { subjectType, subjectId, children } = props;\n\n    const dispatch = useDispatch();\n\n    const requestStatus = useSelector(selectSubjectLogsRequestStatus(subjectType, subjectId));\n    const logs = useSelector(selectSubjectLogs(subjectType, subjectId));\n\n    React.useEffect(() => {\n        dispatch(fetchSubjectLogs({ subjectType, subjectId }));\n    }, [subjectType, subjectId, dispatch]);\n\n    const refreshVehicleSchedulesHandler = React.useCallback(\n        (event: InferChannelEventT<typeof subjectLogsChannel>) => {\n            if (event.subjectType === subjectType && event.subjectId === subjectId) {\n                dispatch(fetchSubjectLogs({ subjectType, subjectId, options: { isForceUpdate: true } }));\n            }\n        },\n        [dispatch, subjectType, subjectId],\n    );\n    useChannelSubscribe(subjectLogsChannel, refreshVehicleSchedulesHandler);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        dispatch(fetchSubjectLogs({ subjectType, subjectId, options: { isForceUpdate: false } }));\n    }, [dispatch, subjectType, subjectId]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    return <>{children({ logs, requestStatus })}</>;\n});\n\nexport { SubjectLogs, SubjectLogsRenderPropsT };\n","export const MAX_RADIUS_KM = 300;\nexport const MIN_VALID_FROM_VALID_TILL_DAYS = 7;\n\nexport enum FieldsEnum {\n    pickUpLocationRadius = 'pickUpLocationRadius',\n\n    dropOffLocationRadius = 'dropOffLocationRadius',\n\n    validFrom = 'validFrom',\n    validTill = 'validTill',\n\n    layoverLimit = 'layoverLimit',\n\n    externalLaneId = 'externalLaneId',\n}\n\nexport type FormTouchedT = Partial<Record<FieldsEnum, boolean>>;\n\nexport type FormValuesT = {\n    [FieldsEnum.pickUpLocationRadius]: string;\n\n    [FieldsEnum.dropOffLocationRadius]: string;\n\n    [FieldsEnum.validFrom]: Date | null;\n    [FieldsEnum.validTill]: Date | null;\n\n    [FieldsEnum.layoverLimit]: string;\n\n    [FieldsEnum.externalLaneId]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import { authRoutesEnum, CommonRoutesEnum } from 'common/constants';\n\nexport const routesEnum = {\n    home: authRoutesEnum.home,\n    signIn: authRoutesEnum.signIn,\n    signUp: authRoutesEnum.signUp,\n    deprecateSignUp: authRoutesEnum.deprecateSignUp,\n    continueSignUp: authRoutesEnum.continueSignUp,\n    forgotPassword: authRoutesEnum.forgotPassword,\n    changePassword: authRoutesEnum.changePassword,\n    confirmEmail: authRoutesEnum.confirmEmail,\n    selfCreateCompany: authRoutesEnum.selfCreateCompany,\n\n    accessDenied: CommonRoutesEnum.accessDenied,\n    notFound: CommonRoutesEnum.notFound,\n    profile: CommonRoutesEnum.profile,\n    team: CommonRoutesEnum.team,\n    account: CommonRoutesEnum.account,\n\n    rfqs: '/rfqs',\n    archive: '/archive',\n    orders: CommonRoutesEnum.orders,\n    invoices: '/invoices',\n\n    shipperContracts: '/profile/shipper-contracts',\n};\n\nexport enum RFQRoutesEnum {\n    list = '/rfqs',\n    details = '/rfqs/:rfqId/details',\n}\n\nexport default {};\n","import * as React from 'react';\nimport { useMemo } from 'react';\nimport DropdownControl, {\n    DropdownControlOptionT,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch } from 'react-redux';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport {\n    ConsistentStateMachineDescriptorT,\n    ApiStopTypeT,\n    ApiTourWaypointActionTypeT,\n    ApiTourWaypointEventRestrictionT,\n} from 'common/store/consistent-state-machine/models';\nimport { useConsistentStateMachine } from 'common/utils/hooks/useConsistentStateMachine';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport {\n    toursWaypointsArrived,\n    toursWaypointsLeft,\n    toursWaypointsUndoArrived,\n    toursWaypointsUndoLeft,\n} from 'common/store/consistent-state-machine/slice';\nimport { logWarning } from 'common/utils/logger';\nimport MoreIcon from 'common/icons/MoreIcon';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport RestoreIcon from 'common/icons/RestoreIcon';\nimport { isNonNil } from 'common/utils';\nimport classNames from 'classnames/bind';\n\nimport styles from './ChangeTourStatusControls.scss';\nimport { TransportOrderDetailsT } from 'common/store/transport-order-details/models';\nimport keyBy from 'lodash/keyBy';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    transportOrderDetails: TransportOrderDetailsT | null | undefined;\n    onManageShipment: (shipmentId: ShipmentIdT) => void;\n};\n\nconst tourActionI18nMap: Record<ApiStopTypeT, Record<ApiTourWaypointActionTypeT, string>> = {\n    PICKUP_TRAILER: {\n        START_TOUR: 'common:change-tour-status.actions.PICKUP_TRAILER.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.PICKUP_TRAILER.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.PICKUP_TRAILER.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.PICKUP_TRAILER.FINISH_TOUR',\n        TRAILER_HOOKED: 'common:change-tour-status.actions.PICKUP_TRAILER.TRAILER_HOOKED',\n        TRAILER_DROPPED: '',\n    },\n    PICKUP_TRUCK: {\n        START_TOUR: 'common:change-tour-status.actions.PICKUP_TRUCK.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.PICKUP_TRUCK.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.PICKUP_TRUCK.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.PICKUP_TRUCK.FINISH_TOUR',\n        TRAILER_HOOKED: 'common:change-tour-status.actions.PICKUP_TRUCK.TRAILER_HOOKED',\n        TRAILER_DROPPED: '',\n    },\n    PICKUP_ROAD_TRAIN: {\n        START_TOUR: 'common:change-tour-status.actions.PICKUP_ROAD_TRAIN.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.PICKUP_ROAD_TRAIN.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.PICKUP_ROAD_TRAIN.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.PICKUP_ROAD_TRAIN.FINISH_TOUR',\n        TRAILER_HOOKED: 'common:change-tour-status.actions.PICKUP_ROAD_TRAIN.TRAILER_HOOKED',\n        TRAILER_DROPPED: '',\n    },\n    PICKUP_DELIVERY_SHIPMENT: {\n        START_TOUR: 'common:change-tour-status.actions.PICKUP_DELIVERY_SHIPMENT.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.PICKUP_DELIVERY_SHIPMENT.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.PICKUP_DELIVERY_SHIPMENT.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.PICKUP_DELIVERY_SHIPMENT.FINISH_TOUR',\n        TRAILER_DROPPED: '',\n        TRAILER_HOOKED: '',\n    },\n    DRIVE_THROUGH: {\n        START_TOUR: 'common:change-tour-status.actions.DRIVE_THROUGH.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.DRIVE_THROUGH.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.DRIVE_THROUGH.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.DRIVE_THROUGH.FINISH_TOUR',\n        TRAILER_DROPPED: '',\n        TRAILER_HOOKED: '',\n    },\n    DROP_AND_HOOK: {\n        START_TOUR: 'common:change-tour-status.actions.DROP_AND_HOOK.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.DROP_AND_HOOK.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.DROP_AND_HOOK.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.DROP_AND_HOOK.FINISH_TOUR',\n        TRAILER_DROPPED: 'common:change-tour-status.actions.DROP_AND_HOOK.TRAILER_DROPPED',\n        TRAILER_HOOKED: 'common:change-tour-status.actions.DROP_AND_HOOK.TRAILER_HOOKED',\n    },\n    DROP_TRAILER: {\n        START_TOUR: 'common:change-tour-status.actions.DROP_TRAILER.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.DROP_TRAILER.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.DROP_TRAILER.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.DROP_TRAILER.FINISH_TOUR',\n        TRAILER_DROPPED: 'common:change-tour-status.actions.DROP_TRAILER.TRAILER_DROPPED',\n        TRAILER_HOOKED: '',\n    },\n    DROP_TRUCK: {\n        START_TOUR: 'common:change-tour-status.actions.DROP_TRUCK.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.DROP_TRUCK.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.DROP_TRUCK.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.DROP_TRUCK.FINISH_TOUR',\n        TRAILER_DROPPED: 'common:change-tour-status.actions.DROP_TRUCK.TRAILER_DROPPED',\n        TRAILER_HOOKED: '',\n    },\n    DROP_ROAD_TRAIN: {\n        START_TOUR: 'common:change-tour-status.actions.DROP_ROAD_TRAIN.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.DROP_ROAD_TRAIN.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.DROP_ROAD_TRAIN.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.DROP_ROAD_TRAIN.FINISH_TOUR',\n        TRAILER_DROPPED: 'common:change-tour-status.actions.DROP_ROAD_TRAIN.TRAILER_DROPPED',\n        TRAILER_HOOKED: '',\n    },\n    FERRY_ONBOARD: {\n        START_TOUR: 'common:change-tour-status.actions.FERRY_ONBOARD.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.FERRY_ONBOARD.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.FERRY_ONBOARD.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.FERRY_ONBOARD.FINISH_TOUR',\n        TRAILER_DROPPED: '',\n        TRAILER_HOOKED: '',\n    },\n    FERRY_DISEMBARK: {\n        START_TOUR: 'common:change-tour-status.actions.FERRY_DISEMBARK.START_TOUR',\n        ARRIVED_AT_WAYPOINT: 'common:change-tour-status.actions.FERRY_DISEMBARK.ARRIVED_AT_WAYPOINT',\n        LEAVE_WAYPOINT: 'common:change-tour-status.actions.FERRY_DISEMBARK.LEAVE_WAYPOINT',\n        FINISH_TOUR: 'common:change-tour-status.actions.FERRY_DISEMBARK.FINISH_TOUR',\n        TRAILER_DROPPED: '',\n        TRAILER_HOOKED: '',\n    },\n};\n\nconst tourWaypointEventRestrictionI18nMap: Record<ApiTourWaypointEventRestrictionT, string> = {\n    NOT_FULLY_ASSIGN: 'common:change-tour-status.restrictions.NOT_FULLY_ASSIGN',\n    NOT_RESOLVE_SHIPMENT: 'common:change-tour-status.restrictions.NOT_RESOLVE_SHIPMENT',\n    TRAILER_STILL_USE_PREVIOUS_TOUR: 'common:change-tour-status.restrictions.TRAILER_STILL_USE_PREVIOUS_TOUR',\n};\n\nconst ChangeTourStatusControls: React.FC<PropsT> = React.memo((props) => {\n    const { transportOrderDetails, onManageShipment } = props;\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const tourId = transportOrderDetails?.tourInfo?.id || null;\n\n    const waypointById = React.useMemo(() => {\n        return keyBy(transportOrderDetails?.waypoints, 'id');\n    }, [transportOrderDetails]);\n\n    const descriptor = useMemo((): ConsistentStateMachineDescriptorT | null => {\n        if (!tourId) {\n            return null;\n        }\n\n        return {\n            tourId,\n        };\n    }, [tourId]);\n\n    const { updateRequest } = useConsistentStateMachine(descriptor, { isAllowFetch: false });\n\n    const availableSteps = transportOrderDetails?.availableSteps || null;\n\n    const currentWaypointId = availableSteps?.current?.waypointId || null;\n    const currentWaypoint = waypointById[currentWaypointId as string] || null;\n    const currentFirstDoAction =\n        availableSteps?.current?.actions?.find((action) => {\n            return !action?.done;\n        }) || null;\n\n    const currentFirstDoRestriction = availableSteps?.current?.restriction || null;\n\n    const currentNeedManageShipmentEvent =\n        availableSteps?.current?.shipments?.find((event) => {\n            return event?.actions?.some((action) => {\n                return !action?.done;\n            });\n        }) || null;\n\n    const previousWaypointId = availableSteps?.previous?.waypointId || null;\n    const previousWaypoint = waypointById[previousWaypointId as string] || null;\n    const previousFirstDoAction =\n        availableSteps?.previous?.actions?.find((action) => {\n            return action?.done;\n        }) || null;\n    const previousFirstDoRestriction = availableSteps?.previous?.restriction || null;\n\n    const options: Array<DropdownControlOptionT | null | undefined> = [\n        previousWaypoint && previousFirstDoAction\n            ? {\n                  label: (\n                      <Tooltip\n                          position={TooltipPositionEnum.topCenter}\n                          theme={TooltipThemeEnum.black}\n                          tooltipNode={\n                              previousFirstDoRestriction ? (\n                                  <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                      {t(tourWaypointEventRestrictionI18nMap[previousFirstDoRestriction])}\n                                  </TooltipContent>\n                              ) : null\n                          }\n                      >\n                          {() => (\n                              <DropdownControlOptionLabel\n                                  isDisabled={!!previousFirstDoRestriction}\n                                  label={\n                                      previousFirstDoRestriction\n                                          ? t('common:change-tour-status.unable-undo', {\n                                                action: t(\n                                                    tourActionI18nMap?.[previousWaypoint.type]?.[\n                                                        previousFirstDoAction.type\n                                                    ],\n                                                    {\n                                                        number: (previousWaypoint.index || 0) + 1,\n                                                    },\n                                                ),\n                                            })\n                                          : t('common:change-tour-status.undo', {\n                                                action: t(\n                                                    tourActionI18nMap?.[previousWaypoint.type]?.[\n                                                        previousFirstDoAction.type\n                                                    ],\n                                                    {\n                                                        number: (previousWaypoint.index || 0) + 1,\n                                                    },\n                                                ),\n                                            })\n                                  }\n                                  icon={<RestoreIcon strokeColor={StyleGuideColorsEnum.tomatoRed} />}\n                              />\n                          )}\n                      </Tooltip>\n                  ),\n                  isDisabled: !!previousFirstDoRestriction,\n                  onSelect: () => {\n                      if (!tourId || !previousWaypointId || !descriptor) {\n                          logWarning('Empty tour id or waypoint id or descriptor');\n                          return;\n                      }\n\n                      if (previousFirstDoAction?.type === 'ARRIVED_AT_WAYPOINT') {\n                          dispatch(\n                              toursWaypointsUndoArrived({\n                                  tourId,\n                                  waypointId: previousWaypointId,\n                                  descriptor,\n                              }),\n                          );\n                      }\n\n                      if (\n                          previousFirstDoAction?.type === 'LEAVE_WAYPOINT' ||\n                          previousFirstDoAction?.type === 'START_TOUR' ||\n                          previousFirstDoAction?.type === 'TRAILER_DROPPED' ||\n                          previousFirstDoAction?.type === 'TRAILER_HOOKED' ||\n                          previousFirstDoAction?.type === 'FINISH_TOUR'\n                      ) {\n                          dispatch(\n                              toursWaypointsUndoLeft({\n                                  tourId,\n                                  waypointId: previousWaypointId,\n                                  descriptor,\n                              }),\n                          );\n                      }\n                  },\n              }\n            : null,\n    ].filter(isNonNil);\n\n    const handleDoManagementShipmentEvent = () => {\n        const shipmentId = currentNeedManageShipmentEvent?.shipmentId || null;\n        if (!shipmentId) {\n            logWarning('Empty shipmentId');\n            return;\n        }\n\n        onManageShipment(shipmentId);\n    };\n\n    const handleDoCurrentFirstDoAction = () => {\n        if (!tourId || !currentWaypointId || !descriptor) {\n            logWarning('Empty tour id or waypoint id or descriptor');\n            return;\n        }\n\n        if (currentFirstDoAction?.type === 'ARRIVED_AT_WAYPOINT') {\n            dispatch(\n                toursWaypointsArrived({\n                    tourId,\n                    waypointId: currentWaypointId,\n                    descriptor,\n                }),\n            );\n        }\n\n        if (\n            currentFirstDoAction?.type === 'LEAVE_WAYPOINT' ||\n            currentFirstDoAction?.type === 'START_TOUR' ||\n            currentFirstDoAction?.type === 'FINISH_TOUR' ||\n            currentFirstDoAction?.type === 'TRAILER_HOOKED' ||\n            currentFirstDoAction?.type === 'TRAILER_DROPPED'\n        ) {\n            dispatch(\n                toursWaypointsLeft({\n                    tourId,\n                    waypointId: currentWaypointId,\n                    descriptor,\n                }),\n            );\n        }\n    };\n\n    const isLoading = updateRequest?.loading;\n\n    const isShowActionButton = Boolean(currentFirstDoAction || currentNeedManageShipmentEvent);\n\n    if (!isShowActionButton && !options?.length) {\n        return null;\n    }\n\n    return (\n        <>\n            {isShowActionButton && (\n                <Tooltip\n                    position={TooltipPositionEnum.topCenter}\n                    theme={TooltipThemeEnum.black}\n                    className={cx('tooltip')}\n                    tooltipNode={\n                        currentFirstDoRestriction ? (\n                            <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                {t(tourWaypointEventRestrictionI18nMap[currentFirstDoRestriction])}\n                            </TooltipContent>\n                        ) : null\n                    }\n                >\n                    {() => {\n                        if (currentNeedManageShipmentEvent) {\n                            return (\n                                <Button\n                                    className={cx('action', 'action--next')}\n                                    theme={ButtonThemeEnum.primary}\n                                    onClick={handleDoManagementShipmentEvent}\n                                    isLoading={isLoading}\n                                >\n                                    {t('common:change-tour-status.manage-shipment')}\n                                </Button>\n                            );\n                        }\n\n                        if (currentFirstDoAction) {\n                            return (\n                                <Button\n                                    className={cx('action', 'action--next')}\n                                    theme={ButtonThemeEnum.primary}\n                                    onClick={handleDoCurrentFirstDoAction}\n                                    isDisabled={!!currentFirstDoRestriction}\n                                    isLoading={isLoading}\n                                >\n                                    {currentWaypoint\n                                        ? t(tourActionI18nMap?.[currentWaypoint.type]?.[currentFirstDoAction.type], {\n                                              number: (currentWaypoint.index || 0) + 1,\n                                          })\n                                        : null}\n                                </Button>\n                            );\n                        }\n\n                        return null;\n                    }}\n                </Tooltip>\n            )}\n            <DropdownControl\n                options={options}\n                isDisabled={isLoading}\n                isShowTriggerForEmptyOptions={isLoading}\n                renderTrigger={(isActive, onClick) => (\n                    <TransparentTrigger\n                        isPressed={isActive}\n                        onClick={onClick}\n                        leftIcon={<MoreIcon />}\n                        reflectionTheme={ReflectionThemeEnum.light}\n                    />\n                )}\n                overlayPosition={DropdownOverlayPositionEnum.topRight}\n            />\n        </>\n    );\n});\n\nexport default ChangeTourStatusControls;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"SearchForm__wrap___RC1CB\",\"field\":\"SearchForm__field___uBM_O\",\"field--to\":\"SearchForm__field--to___tFbMV\",\"field--from\":\"SearchForm__field--from___kiiD4\",\"option\":\"SearchForm__option___VMfVm\",\"fadeIn\":\"SearchForm__fadeIn___iIit3\",\"blinking\":\"SearchForm__blinking___tZwbv\"};","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"ExpiredDocumentCard__inner___lVAvw\"};","import React from 'react';\nimport { SyncAssetScheduleContextValueT } from 'broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/contexts/sync-asset-schedule';\n\nexport const useSyncAssetScheduleContextValue = (): SyncAssetScheduleContextValueT => {\n    const [truckId, setTruckId] = React.useState<TruckIdT | null>(null);\n\n    return React.useMemo(() => {\n        return {\n            truckId,\n            setTruckId,\n        };\n    }, [truckId, setTruckId]);\n};\n","import React from 'react';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\n\nimport { ApiPriceRuleTypeT, PriceRuleTypeEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\nimport { PRICE_RULE_TYPE_I18N_MAP } from 'broker-admin/components/PriceRuleTypeLabel/PriceRuleTypeLabel';\n\ntype OptionValueT = ApiPriceRuleTypeT | null;\n\ntype PropsT = {\n    placeholder?: string;\n    value: OptionValueT;\n    isDisabled?: boolean;\n    onChange: (value: OptionValueT) => void;\n    hasWarning: boolean;\n    hasError: boolean;\n    hasChanges?: boolean;\n    onBlur: () => void;\n    onFocus: () => void;\n    hasClearControl?: boolean;\n    overlayPosition?: DropdownOverlayPositionEnum;\n};\n\ntype PriceRuleTypeDropdownOptionT = {\n    value: OptionValueT;\n    label: React.ReactNode;\n};\n\nconst PriceRuleTypeDropdown: React.FC<PropsT> = React.memo((props) => {\n    const {\n        value,\n        placeholder,\n        onChange,\n        isDisabled,\n        hasWarning,\n        hasError,\n        hasChanges,\n        onBlur,\n        onFocus,\n        hasClearControl,\n        overlayPosition,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const options = React.useMemo((): PriceRuleTypeDropdownOptionT[] => {\n        return [PriceRuleTypeEnum.basic, PriceRuleTypeEnum.shipper, PriceRuleTypeEnum.carrier].map(\n            (type): PriceRuleTypeDropdownOptionT => {\n                return {\n                    label: t(PRICE_RULE_TYPE_I18N_MAP[type]),\n                    value: type,\n                };\n            },\n        );\n    }, [t]);\n\n    const renderTrigger = (\n        option: PriceRuleTypeDropdownOptionT | null | undefined,\n        placeholder?: string,\n    ): React.ReactNode => {\n        if (!option) {\n            return placeholder || '';\n        }\n\n        return option.label;\n    };\n\n    const renderOption = (option: PriceRuleTypeDropdownOptionT | null | undefined): React.ReactNode => {\n        if (!option) {\n            return null;\n        }\n\n        return option.label;\n    };\n\n    const handleSelect = (value: OptionValueT): void => {\n        onChange(value);\n    };\n\n    const getOptionValue = (option: PriceRuleTypeDropdownOptionT): OptionValueT => option.value;\n\n    return (\n        <DropdownInput<PriceRuleTypeDropdownOptionT, OptionValueT>\n            selectedValue={value}\n            placeholder={placeholder}\n            options={options}\n            onSelect={handleSelect}\n            isDisabled={isDisabled}\n            renderOption={renderOption}\n            renderTriggerContent={renderTrigger}\n            getOptionValue={getOptionValue}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            hasWarning={hasWarning}\n            hasError={hasError}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            testSelector=\"price-rule-type\"\n            hasClearControl={hasClearControl}\n            onReset={() => {\n                onChange(null);\n            }}\n        />\n    );\n});\n\nexport default PriceRuleTypeDropdown;\n","export enum InvoicesQuickFilterEnum {\n    open = 'open',\n    void = 'void',\n    paid = 'paid',\n    uncollectible = 'uncollectible',\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"step\":\"Steps__step___Ab94S\",\"step--isHideStep\":\"Steps__step--isHideStep___gZGLz\",\"step__label\":\"Steps__step__label___umIYd\",\"step__label--isFirst\":\"Steps__step__label--isFirst___csfNM\",\"step__label--isLast\":\"Steps__step__label--isLast___b8rCq\",\"fadeIn\":\"Steps__fadeIn___xQ3gm\",\"blinking\":\"Steps__blinking___fNUPb\"};","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"PartnerTransportOrderDetails__fadeIn___DBxxZ\",\"blinking\":\"PartnerTransportOrderDetails__blinking___LyZFE\"};","import {\n    AsyncRequestFactoryT,\n    useAsyncInitOptionsRequest,\n} from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-init-options-request';\nimport { useCallback } from 'react';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { OptionT } from '../PartnersSuggest';\nimport { TranziitApiResultT } from 'common/utils/api/tranziit/base-tranziit-api';\n\nexport const usePartnerSuggestOptions = (initPartnerIds: Array<PartnerIdT> | null) => {\n    const initRequestFactory: AsyncRequestFactoryT<OptionT> = useCallback(async () => {\n        if (!initPartnerIds?.length) {\n            return [null, null];\n        }\n\n        const promises = initPartnerIds.map((initPartnerId) => {\n            return brokerTranziitApi.fetchPartnerDetails(initPartnerId);\n        });\n\n        const results = await Promise.all(promises);\n\n        const resultOptions =\n            results?.reduce<Array<OptionT>>((acc, [, data]) => {\n                if (!data?.id) {\n                    return acc;\n                }\n\n                acc.push({\n                    id: data?.id,\n                    name: data?.name,\n                    number: data?.number,\n                    countryCode: data?.legalAddress?.country || null,\n                });\n\n                return acc;\n            }, []) || [];\n\n        const result: TranziitApiResultT<Array<OptionT>> = [null, resultOptions];\n\n        return result;\n    }, [initPartnerIds]);\n\n    const { initOptions, initRequestStatus } = useAsyncInitOptionsRequest<OptionT>({\n        initRequestFactory,\n    });\n\n    return {\n        initOptions,\n        initRequestStatus,\n    };\n};\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './CostCell.scss';\nimport Money from 'common/components/Money/Money';\nimport isNumber from 'lodash/isNumber';\nimport { CurrencyEnum } from 'common/constants';\n\ntype PropsT = {\n    cost: number | null | undefined;\n};\n\nconst cx = classNames.bind(styles);\n\nconst CostCell: React.FC<PropsT> = React.memo((props) => {\n    const { cost } = props;\n\n    return <div className={cx('cost')}>{isNumber(cost) && <Money amount={cost} currency={CurrencyEnum.EUR} />}</div>;\n});\n\nexport default CostCell;\n","import * as React from 'react';\nimport FilterPills, { FilterPillsConfigT } from 'common/components/FilterPills/FilterPills';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from '../query-models';\nimport { useTranslation } from 'react-i18next';\nimport { FilterPillThemeEnum } from 'common/components/FilterPills/FilterPill/FilterPill';\nimport TruckStatus from 'common/components/status/TruckStatus/TruckStatus';\nimport TruckModelFilterPill from 'common/components/filter-pills/TruckModelFilterPill/TruckModelFilterPill';\nimport EmissionClassLabel from 'common/components/EmissionClassLabel/EmissionClassLabel';\n\nimport { formatDateRangeFilterValue, pillIconRendererMap } from 'common/components/FilterPills/pill-renderers';\nimport CountriesFilterPill from 'common/components/filter-pills/CountriesFilterPill/CountriesFilterPill';\nimport { ALL_BROKER_USERS_VALUE } from 'common/components/dropdowns/UserMultipleDropdown/constants';\n\ntype PropsT = {\n    isCompact?: boolean;\n    queryFilters: QueryFiltersT;\n    setQueryFilters: (queryFilters: QueryFiltersT) => void;\n};\n\nconst SelectedFilters: React.FC<PropsT> = React.memo((props) => {\n    const { isCompact, queryFilters, setQueryFilters } = props;\n\n    const { t } = useTranslation();\n\n    const filterPillsConfig = React.useMemo(\n        (): FilterPillsConfigT<QueryFiltersT> => [\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                isMultiple: true,\n                render: (queryFilters, index) => {\n                    const selectedTruckModel = queryFilters[QueryFiltersKeysEnum.model]?.[index];\n\n                    return <TruckModelFilterPill truckModel={selectedTruckModel} />;\n                },\n                clearKeys: [QueryFiltersKeysEnum.model],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('common:trucks-page.filters.pills.plate-number', {\n                        value: queryFilters[QueryFiltersKeysEnum.plateNumber],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.plateNumber],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                isMultiple: true,\n                render: (queryFilters, index) => {\n                    const emissionClass = queryFilters[QueryFiltersKeysEnum.emissionClass]?.[index];\n\n                    return <EmissionClassLabel emissionClass={emissionClass} />;\n                },\n                clearKeys: [QueryFiltersKeysEnum.emissionClass],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                isMultiple: true,\n                render: (queryFilters, index) => {\n                    const status = queryFilters[QueryFiltersKeysEnum.status]?.[index];\n\n                    return <TruckStatus status={status} />;\n                },\n                clearKeys: [QueryFiltersKeysEnum.status],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                isMultiple: true,\n                render: (queryFilters, index) => {\n                    const countryCode = queryFilters[QueryFiltersKeysEnum.country]?.[index];\n\n                    return <CountriesFilterPill countryCodes={countryCode ? [countryCode] : null} />;\n                },\n                clearKeys: [QueryFiltersKeysEnum.country],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                isMultiple: true,\n                render: (queryFilters, index) => {\n                    const contractName = queryFilters[QueryFiltersKeysEnum.contractName]?.[index];\n                    return <span>{contractName}</span>;\n                },\n                clearKeys: [QueryFiltersKeysEnum.contractId, QueryFiltersKeysEnum.contractName],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const createdDateFrom = queryFilters[QueryFiltersKeysEnum.createdDateFrom];\n                    const createdDateTo = queryFilters[QueryFiltersKeysEnum.createdDateTo];\n\n                    return t('common:trucks-page.filters.pills.added-dates', {\n                        value: formatDateRangeFilterValue(createdDateFrom, createdDateTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.createdDateFrom, QueryFiltersKeysEnum.createdDateTo],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                isMultiple: true,\n                renderIcon: (queryFilters, index, isCompact) => {\n                    if (queryFilters[QueryFiltersKeysEnum.createdByUserId]?.[index] === ALL_BROKER_USERS_VALUE) {\n                        return pillIconRendererMap.logo();\n                    }\n\n                    return pillIconRendererMap.avatar(\n                        queryFilters[QueryFiltersKeysEnum.createdByUserName]?.[index],\n                        isCompact,\n                    );\n                },\n                render: (queryFilters, index) => {\n                    return t('common:trucks-page.filters.pills.added-by-user', {\n                        value: queryFilters[QueryFiltersKeysEnum.createdByUserName]?.[index],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.createdByUserId, QueryFiltersKeysEnum.createdByUserName],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                isMultiple: true,\n                renderIcon: (queryFilters, index, isCompact) => {\n                    if (queryFilters[QueryFiltersKeysEnum.lastModifyByUserId]?.[index] === ALL_BROKER_USERS_VALUE) {\n                        return pillIconRendererMap.logo();\n                    }\n\n                    return pillIconRendererMap.avatar(\n                        queryFilters[QueryFiltersKeysEnum.lastModifyByUserName]?.[index],\n                        isCompact,\n                    );\n                },\n                render: (queryFilters, index) => {\n                    return t('common:trucks-page.filters.pills.last-modify-by-user', {\n                        value: queryFilters[QueryFiltersKeysEnum.lastModifyByUserName]?.[index],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.lastModifyByUserId, QueryFiltersKeysEnum.lastModifyByUserName],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const lastModifyDateFrom = queryFilters[QueryFiltersKeysEnum.lastModifyDateFrom];\n                    const lastModifyDateTo = queryFilters[QueryFiltersKeysEnum.lastModifyDateTo];\n\n                    return t('common:trucks-page.filters.pills.last-modify-dates', {\n                        value: formatDateRangeFilterValue(lastModifyDateFrom, lastModifyDateTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.lastModifyDateFrom, QueryFiltersKeysEnum.lastModifyDateTo],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const lastTelematicUpdateDateFrom = queryFilters[QueryFiltersKeysEnum.lastTelematicUpdateDateFrom];\n                    const lastTelematicUpdateDateTo = queryFilters[QueryFiltersKeysEnum.lastTelematicUpdateDateTo];\n\n                    return t('common:trucks-page.filters.pills.last-telematic-update-dates', {\n                        value: formatDateRangeFilterValue(lastTelematicUpdateDateFrom, lastTelematicUpdateDateTo),\n                    });\n                },\n                clearKeys: [\n                    QueryFiltersKeysEnum.lastTelematicUpdateDateFrom,\n                    QueryFiltersKeysEnum.lastTelematicUpdateDateTo,\n                ],\n            },\n        ],\n        [t],\n    );\n\n    return (\n        <FilterPills<QueryFiltersT>\n            isCompact={isCompact}\n            queryFilters={queryFilters}\n            setQueryFilters={setQueryFilters}\n            config={filterPillsConfig}\n        />\n    );\n});\n\nexport default SelectedFilters;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './ServicesTable.scss';\nimport { useTranslation } from 'react-i18next';\nimport Table, { TableColumnT, TableRowMetaT } from 'common/components/Table/Table';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport MemoizedTable from 'common/components/Table/MemoizedTable/MemoizedTable';\nimport NameCell from 'broker-admin/layouts/SettingsPage/AdditionalServicesSettings/ServicesTable/cell-renderers/NameCell/NameCell';\nimport EditableCostCell from 'common/components/Table/cell-renderers/EditableCostCell/EditableCostCell';\nimport { ServiceTableRowT } from 'broker-admin/layouts/SettingsPage/AdditionalServicesSettings/ServicesTable/models';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    list: Array<ServiceTableRowT>;\n    isDisabled: boolean;\n    isLoading: boolean;\n    className: string;\n    onUpdateService: (row: ServiceTableRowT, value: number) => void;\n};\n\nconst ServicesTable: React.FC<PropsT> = React.memo((props) => {\n    const { list, className, onUpdateService, isDisabled, isLoading } = props;\n\n    const { t } = useTranslation();\n\n    const columns: Array<TableColumnT<ServiceTableRowT, void>> = [\n        {\n            renderHeader: () => <span>{t('price-settings.additional-services.name-group')}</span>,\n            headerClassName: cx('table__header', 'table__header--name'),\n            render: (row) => <NameCell row={row} />,\n            className: cx('table__column', 'table__column--name'),\n        },\n        {\n            renderHeader: () => <span>{t('price-settings.additional-services.cost')}</span>,\n            headerClassName: cx('table__header', 'table__header--cost'),\n            render: (row, meta) => (\n                <EditableCostCell\n                    key={`${row.category}-${row.service}`}\n                    cost={row.service.itemCost}\n                    isHoveredRow={meta.isHovered}\n                    onUpdate={(cost) => {\n                        onUpdateService(row, cost);\n                    }}\n                />\n            ),\n            className: cx('table__column', 'table__column--cost'),\n        },\n    ];\n\n    const getRowMods = (meta: TableRowMetaT) => ({\n        isSelected: meta.isSelected,\n    });\n\n    return (\n        <div className={cx('table')}>\n            <MemoizedTable<ServiceTableRowT> tableName=\"additional-services\" isLoading={isLoading} rows={list}>\n                {(rows, isUsedPrevRows) => (\n                    <Table<ServiceTableRowT, void>\n                        className={className}\n                        columns={columns}\n                        rows={rows}\n                        getRowMods={getRowMods}\n                        isLoading={isLoading}\n                        isUsedPrevRows={isUsedPrevRows}\n                    />\n                )}\n            </MemoizedTable>\n            {isDisabled && <LoaderOverlay />}\n        </div>\n    );\n});\n\nexport default ServicesTable;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './RFQDetails.scss';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\nimport RouteLocationsOverview from 'common/components/entity-details/RouteLocationsOverview/RouteLocationsOverview';\nimport UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\nimport ExcludedCountries from 'common/components/entity-details/ExcludedCountries/ExcludedCountries';\nimport RouteIcon from 'common/icons/RouteIcon';\nimport TrailerIcon from 'common/icons/TrailerIcon';\nimport { RFQDetailsT, RFQPriceOfferT } from 'common/store/rfq-details/models';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectTrailersDictById, selectTrailersDictRequest } from 'common/store/trailers-dict/selectors';\nimport { fetchTrailersDict } from 'common/store/trailers-dict/actions';\nimport { convertToKm } from 'common/utils/distance';\nimport EuroSymbolIcon from 'common/icons/EuroSymbolIcon';\nimport { isNonNil } from 'common/utils';\nimport { formatTimeInterval } from 'common/utils/time';\nimport SimpleTrailerTypeFormatter from 'common/components/InfoTable/formatters/SimpleTrailerTypeFormatter/SimpleTrailerTypeFormatter';\nimport DateFormatter from 'design-system/components/InfoTable/formatters/DateFormatter/DateFormatter';\nimport UserLinkFormatter from 'common/components/InfoTable/formatters/UserLinkFormatter/UserLinkFormatter';\nimport OrderStatusPill from 'common/components/status-pill/OrderStatusPill/OrderStatusPill';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport CaseIcon from 'common/icons/CaseIcon';\nimport PriceDetails, { PriceDetailT } from 'design-system/components/PriceDetails/PriceDetails';\nimport LocationLabel from 'common/components/LocationLabel/LocationLabel';\nimport { CountryCodeT } from 'common/store/countries-dict/models';\nimport { useCommonPriceDetails } from 'common/components/price-details/hooks/common';\nimport { useAdditionalServicesList } from 'common/components/price-details/hooks/additional-services-list';\nimport FeeIcon from 'common/icons/FeeIcon';\nimport CalendarIcon from 'common/icons/CalendarIcon';\nimport AccountIcon from 'common/icons/AccountIcon';\nimport NumberIcon from 'common/icons/NumberIcon';\nimport StopWarningIcon from 'common/icons/StopWarningIcon';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport WarningTextFormatter from 'design-system/components/InfoTable/formatters/WarningTextFormatter/WarningTextFormatter';\nimport { checkShouldShowLayover } from 'common/components/price-details/utils';\nimport { useDistanceByCountryRows } from 'common/components/entity-details/hooks/distanceByCountry';\nimport {\n    ApiBrokerAdditionalServiceT,\n    ApiCarrierAdditionalServiceT,\n    OrderCreationReservePointTypeEnum,\n    RFQBrokerSourceEnum,\n} from 'common/utils/api/models';\nimport isNumber from 'lodash/isNumber';\nimport { TFunction } from 'i18next';\nimport BoatIcon from 'common/icons/BoatIcon';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport InfoIcon from 'common/icons/InfoIcon';\nimport { logWarning } from 'common/utils/logger';\n\ntype RFQPointT = RFQDetailsT['points'][number];\n\ntype PropsT = {\n    rfqDetails: RFQDetailsT | null;\n    suggestedPriceOffer: RFQPriceOfferT | null;\n    goToUserDetails: (userId: UserIdT | null) => void;\n    onOpenOrderDetails: (orderId: OrderIdT) => void;\n    shouldShowAppliedRules?: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nconst renderPointIcon = (point: RFQPointT | null | undefined, index: number) => {\n    if (!point) {\n        return null;\n    }\n\n    if (\n        point.type === OrderCreationReservePointTypeEnum.ferryDisembark ||\n        point.type === OrderCreationReservePointTypeEnum.ferryOnboard\n    ) {\n        return (\n            <BoatIcon\n                size={DEFAULT_ICON_SIZE}\n                strokeColor={StyleGuideColorsEnum.gray}\n                fillColor={StyleGuideColorsEnum.light}\n            />\n        );\n    }\n\n    return (\n        <NumberIcon\n            number={(index || 0) + 1}\n            fillColor={\n                point.type === OrderCreationReservePointTypeEnum.shipment\n                    ? StyleGuideColorsEnum.charcoal\n                    : StyleGuideColorsEnum.gray\n            }\n        />\n    );\n};\n\nconst renderPointName = (t: TFunction, point: RFQPointT | null | undefined, index: number) => {\n    if (!point) {\n        return null;\n    }\n\n    if (point.type === OrderCreationReservePointTypeEnum.ferryOnboard) {\n        return t('common:rfq-details.columns.ferry-onboard');\n    }\n\n    if (point.type === OrderCreationReservePointTypeEnum.ferryDisembark) {\n        return t('common:rfq-details.columns.ferry-disembark');\n    }\n\n    return t('common:rfq-details.columns.waypoint-number', {\n        number: index + 1,\n    });\n};\n\nconst RFQDetails: React.FC<PropsT> = React.memo((props) => {\n    const { rfqDetails, goToUserDetails, onOpenOrderDetails, suggestedPriceOffer, shouldShowAppliedRules } = props;\n\n    const trailersDictRequest = useSelector(selectTrailersDictRequest);\n    const trailersDictById = useSelector(selectTrailersDictById);\n    const dispatch = useDispatch();\n    React.useEffect(() => {\n        dispatch(fetchTrailersDict());\n    }, [dispatch]);\n\n    const trailerDict = trailersDictById[String(rfqDetails?.trailerTypeId)] || null;\n\n    const { t } = useTranslation();\n\n    const distanceByCountryRows = useDistanceByCountryRows(suggestedPriceOffer?.distances?.byCountry);\n\n    const moveDetails: Array<InfoTableRowT> = [\n        {\n            icon: <RouteIcon fillColor={StyleGuideColorsEnum.gray} />,\n            name: t('common:rfq-details.columns.distance'),\n            value: suggestedPriceOffer?.distances?.totalDistance ? (\n                <UnitTypeCount\n                    count={convertToKm(suggestedPriceOffer.distances.totalDistance)}\n                    type={UnitTypeEnum.kilometersAbbreviation}\n                />\n            ) : null,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty'), isBold: true },\n            hasBottomBorder: false,\n            testSelector: 'distance',\n            rows: distanceByCountryRows,\n        },\n    ];\n\n    const trailerTypeDetails: Array<InfoTableRowT> = [\n        {\n            icon: (\n                <TrailerIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                    fillColor={StyleGuideColorsEnum.light}\n                />\n            ),\n            name: t('common:rfq-details.columns.trailer-type'),\n            value: <SimpleTrailerTypeFormatter trailerDictType={trailerDict} />,\n            isShowValueLoader: trailersDictRequest.loading,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n            testSelector: 'trailer-type',\n        },\n    ];\n\n    const commonPriceDetails = useCommonPriceDetails();\n\n    const getPriceDetails = ({\n        priceOffer,\n        label,\n        additionalServiceItems,\n        carrierAdditionalServicesList,\n        brokerAdditionalServicesList,\n        appliedRules,\n    }: {\n        priceOffer: RFQPriceOfferT | RFQDetailsT['completedPrice'];\n        label: string;\n        additionalServiceItems: Array<ApiBrokerAdditionalServiceT | ApiCarrierAdditionalServiceT> | null | undefined;\n        carrierAdditionalServicesList: PriceDetailT[];\n        brokerAdditionalServicesList: PriceDetailT[];\n        appliedRules?: RFQPriceOfferT['relatedRules'];\n    }) => {\n        const teamDriveCost = priceOffer?.teamDriveCost;\n        const priceDetails: Array<PriceDetailT | null> = [\n            {\n                iconNode: <EuroSymbolIcon strokeColor={StyleGuideColorsEnum.gray} />,\n                title: label,\n                price: priceOffer?.totalPrice,\n                list: [\n                    {\n                        ...commonPriceDetails.lineHaul,\n                        price: priceOffer?.lineHaul,\n                        footerNode: commonPriceDetails.getAppliedRulesFooterNode(['LINE_HAUL'], appliedRules),\n                    },\n                    {\n                        ...commonPriceDetails.getRoadTaxesRow(priceOffer?.co2),\n                        price: priceOffer?.toll?.totalCost,\n                        footerNode: commonPriceDetails.getAppliedRulesFooterNode(['ROAD_TAXES'], appliedRules),\n                        list: commonPriceDetails.getRoadTaxesList(priceOffer?.toll?.byRoadType, appliedRules),\n                    },\n                    {\n                        ...commonPriceDetails.getFuelCostRow(priceOffer?.fuel?.fuelType),\n                        price: priceOffer?.fuel?.totalCost,\n                        footerNode: commonPriceDetails.getAppliedRulesFooterNode(['FUEL'], appliedRules),\n                        list: commonPriceDetails.getFuelCostsByCountryList(priceOffer?.fuel?.byCountry),\n                    },\n                    isNumber(teamDriveCost)\n                        ? {\n                              ...commonPriceDetails.getTeamDrive({\n                                  travelHours: priceOffer?.teamDriveHours,\n                              }),\n                              price: teamDriveCost,\n                          }\n                        : null,\n                    checkShouldShowLayover(priceOffer?.layover?.totalSeconds, priceOffer?.layover?.totalCost)\n                        ? {\n                              ...commonPriceDetails.getLayoverCostRow(\n                                  priceOffer?.layover?.totalSeconds,\n                                  priceOffer?.layover?.paidHours,\n                              ),\n                              price: priceOffer?.layover?.totalCost || 0,\n                          }\n                        : null,\n                    carrierAdditionalServicesList?.length\n                        ? {\n                              ...commonPriceDetails.getCarrierAdditionalServicesRow(additionalServiceItems),\n                              list: [\n                                  {\n                                      list: carrierAdditionalServicesList,\n                                  },\n                              ],\n                          }\n                        : null,\n                    brokerAdditionalServicesList?.length\n                        ? {\n                              ...commonPriceDetails.getBrokerAdditionalServicesRow(additionalServiceItems),\n                              list: [\n                                  {\n                                      list: brokerAdditionalServicesList,\n                                  },\n                              ],\n                          }\n                        : null,\n                    {\n                        iconNode: <FeeIcon strokeColor={StyleGuideColorsEnum.slate} />,\n                        title: t('common:order-details.columns.tranziit-service-fee-cost'),\n                        price: priceOffer?.serviceFee,\n                    },\n                ].filter(isNonNil),\n            },\n        ].filter(isNonNil);\n\n        return priceDetails;\n    };\n\n    const defaultCarrierAdditionalServicesList = useAdditionalServicesList({\n        additionalServiceItems: suggestedPriceOffer?.additionalServices?.items,\n        isAllowBrokerServices: false,\n        isAllowCarrierServices: true,\n    });\n\n    const defaultBrokerAdditionalServicesList = useAdditionalServicesList({\n        additionalServiceItems: suggestedPriceOffer?.additionalServices?.items,\n        isAllowBrokerServices: true,\n        isAllowCarrierServices: false,\n    });\n\n    const isInternalRFQ = rfqDetails?.source === RFQBrokerSourceEnum.internal;\n    const isTenderRFQ = rfqDetails?.source === RFQBrokerSourceEnum.tender;\n    const receiptAppliedRules = isInternalRFQ ? suggestedPriceOffer?.brokerInfo?.appliedRules : undefined;\n\n    const defaultPriceDetailsList = suggestedPriceOffer\n        ? getPriceDetails({\n              priceOffer: suggestedPriceOffer,\n              label: t('common:rfq-details.columns.default-price'),\n              additionalServiceItems: suggestedPriceOffer?.additionalServices?.items,\n              carrierAdditionalServicesList: defaultCarrierAdditionalServicesList,\n              brokerAdditionalServicesList: defaultBrokerAdditionalServicesList,\n              appliedRules: receiptAppliedRules,\n          })\n        : null;\n\n    const isCreditLimitExceeded = !suggestedPriceOffer?.withinCreditLimit;\n    if (defaultPriceDetailsList?.[0] && isCreditLimitExceeded) {\n        defaultPriceDetailsList[0].pillLabelNode = t('common:new-order-details.credit-limit');\n        defaultPriceDetailsList[0].pillLabelTheme = PillLabelThemeEnum.tomatoRed;\n        defaultPriceDetailsList[0].pillLabelTooltipNode = (\n            <TooltipContent width={160} theme={TooltipContentThemeEnum.black}>\n                {t('common:new-order-details.tooltips.credit-limit')}\n            </TooltipContent>\n        );\n    }\n\n    const targetPriceDetailsList = rfqDetails?.targetPrice\n        ? [\n              {\n                  iconNode: <EuroSymbolIcon strokeColor={StyleGuideColorsEnum.gray} />,\n                  title: t('common:rfq-details.columns.target-price'),\n                  price: rfqDetails?.targetPrice,\n              },\n          ]\n        : [];\n\n    const completedCarrierAdditionalServicesList = useAdditionalServicesList({\n        additionalServiceItems: rfqDetails?.completedPrice?.additionalServices?.items,\n        isAllowCarrierServices: true,\n        isAllowBrokerServices: false,\n    });\n\n    const completedBrokerAdditionalServicesList = useAdditionalServicesList({\n        additionalServiceItems: rfqDetails?.completedPrice?.additionalServices?.items,\n        isAllowCarrierServices: false,\n        isAllowBrokerServices: true,\n    });\n\n    const completedPriceDetailsList = rfqDetails?.completedPrice\n        ? getPriceDetails({\n              priceOffer: rfqDetails.completedPrice,\n              label: t('common:rfq-details.columns.selected-price'),\n              additionalServiceItems: rfqDetails?.completedPrice?.additionalServices?.items,\n              carrierAdditionalServicesList: completedCarrierAdditionalServicesList,\n              brokerAdditionalServicesList: completedBrokerAdditionalServicesList,\n          })\n        : null;\n\n    const appliedRules = isTenderRFQ ? suggestedPriceOffer?.relatedRules || [] : [];\n\n    const handleOpenOrderDetails = () => {\n        const orderId = rfqDetails?.orderId;\n\n        if (!orderId) {\n            logWarning('failed to open order details in rfq details, empty orderId');\n            return;\n        }\n\n        onOpenOrderDetails(orderId);\n    };\n\n    const orderDetails: Array<InfoTableRowT | null> = [\n        {\n            icon: (\n                <CaseIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                    fillColor={StyleGuideColorsEnum.light}\n                />\n            ),\n            name: t('common:rfq-details.columns.order'),\n            value: rfqDetails?.orderId ? (\n                <Link onClick={handleOpenOrderDetails} theme={LinkThemeEnum.boldBrandDark}>\n                    {rfqDetails.orderNumber}\n                </Link>\n            ) : null,\n            valueMods: { emptyPlaceholder: t('common:rfq-details.not-placed-order'), isBold: true },\n            testSelector: 'order',\n            rightNode: rfqDetails?.orderId ? <OrderStatusPill status={rfqDetails.orderStatus} /> : null,\n        },\n        rfqDetails?.externalNumber\n            ? {\n                  icon: null,\n                  name: t('common:rfq-details.columns.external-number'),\n                  value: rfqDetails?.externalNumber,\n                  valueMods: { emptyPlaceholder: null, isBold: true },\n                  testSelector: 'external-number',\n              }\n            : null,\n    ].filter(isNonNil);\n\n    const creationDetails: Array<InfoTableRowT> = [\n        {\n            icon: (\n                <CalendarIcon\n                    size={DEFAULT_ICON_SIZE}\n                    fillColor={StyleGuideColorsEnum.light}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                />\n            ),\n            name: t('common:rfq-details.columns.create-date'),\n            value: rfqDetails?.createdDate ? (\n                <DateFormatter date={rfqDetails.createdDate} format=\"DD MMM YYYY, HH:mm\" />\n            ) : null,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n            testSelector: 'create-date',\n            hasBottomBorder: true,\n        },\n        {\n            icon: (\n                <AccountIcon\n                    strokeColor={StyleGuideColorsEnum.gray}\n                    fillColor={StyleGuideColorsEnum.light}\n                    size={DEFAULT_ICON_SIZE}\n                />\n            ),\n            name: t('common:rfq-details.columns.created-by'),\n            value: (\n                <UserLinkFormatter\n                    fullName={rfqDetails?.createdByName}\n                    userId={rfqDetails?.createdById}\n                    byBroker={rfqDetails?.createdByBroker}\n                    onOpenUserDetails={goToUserDetails}\n                />\n            ),\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n            testSelector: 'created-by',\n        },\n    ].filter(isNonNil);\n\n    const expirationDetails: Array<InfoTableRowT> | null = rfqDetails?.expiration\n        ? [\n              {\n                  icon: (\n                      <CalendarIcon\n                          size={DEFAULT_ICON_SIZE}\n                          fillColor={StyleGuideColorsEnum.light}\n                          strokeColor={StyleGuideColorsEnum.gray}\n                      />\n                  ),\n                  name: t('common:rfq-details.columns.expire-on'),\n                  value: <DateFormatter date={rfqDetails.expiration} format=\"DD MMM YYYY, HH:mm\" />,\n                  valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                  testSelector: 'expiration-date',\n                  hasBottomBorder: false,\n              },\n          ]\n        : null;\n\n    const completedDetails: Array<InfoTableRowT> | null = rfqDetails?.completedDate\n        ? [\n              {\n                  icon: (\n                      <CalendarIcon\n                          size={DEFAULT_ICON_SIZE}\n                          fillColor={StyleGuideColorsEnum.light}\n                          strokeColor={StyleGuideColorsEnum.gray}\n                      />\n                  ),\n                  name: t('common:rfq-details.columns.completed-by'),\n                  value: <DateFormatter date={rfqDetails?.completedDate} format=\"DD MMM YYYY, HH:mm\" />,\n                  valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                  testSelector: 'completed-date',\n                  hasBottomBorder: true,\n              },\n              {\n                  icon: (\n                      <AccountIcon\n                          strokeColor={StyleGuideColorsEnum.gray}\n                          fillColor={StyleGuideColorsEnum.light}\n                          size={DEFAULT_ICON_SIZE}\n                      />\n                  ),\n                  name: t('common:rfq-details.columns.completed-by'),\n                  value: (\n                      <UserLinkFormatter\n                          fullName={rfqDetails?.completedByName}\n                          userId={rfqDetails?.completedById}\n                          onOpenUserDetails={goToUserDetails}\n                      />\n                  ),\n                  valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                  testSelector: 'completed-by',\n              },\n          ]\n        : null;\n\n    const excludedCountries = (rfqDetails?.prohibitedCountries as Array<CountryCodeT>) || [];\n\n    const points = rfqDetails?.points || [];\n    const firstPoint = points[0] || null;\n    const lastPoint = points[points.length - 1] || null;\n\n    if (!rfqDetails) {\n        return null;\n    }\n\n    return (\n        <div className={cx('container')}>\n            <RouteLocationsOverview\n                className={cx('route')}\n                origin={firstPoint?.address}\n                pickupDockingHoursFrom={firstPoint?.from}\n                pickupDockingHoursTo={firstPoint?.to}\n                destination={lastPoint?.address}\n                dropOffDockingHoursFrom={lastPoint?.from}\n                dropOffDockingHoursTo={lastPoint?.to}\n            />\n            <ExcludedCountries\n                className={cx('excluded-countries')}\n                titleNode={t('common:entity-details.excluded-countries.title')}\n                countryCodes={excludedCountries}\n                tooltipNode={t('common:entity-details.excluded-countries.tooltip')}\n            />\n            <InfoTable shouldRenderIcons className={cx('table')} rows={orderDetails} testSelector=\"order-details\" />\n            <InfoTable shouldRenderIcons className={cx('table')} rows={moveDetails} testSelector=\"move-details\" />\n            <InfoTable\n                shouldRenderIcons\n                className={cx('table')}\n                rows={trailerTypeDetails}\n                testSelector=\"trailer-details\"\n            />\n            {points.map((point, index) => {\n                const pointDetails: Array<InfoTableRowT | null> = [\n                    {\n                        icon: renderPointIcon(point, index),\n                        name: renderPointName(t, point, index),\n                        value: <LocationLabel format=\"s1_s2_zip_city_country\" location={point?.address} />,\n                        valueMods: {\n                            emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                            isBold: true,\n                        },\n                        rows: [\n                            point?.from || point?.to\n                                ? {\n                                      icon: point?.brokerWindow ? (\n                                          <Tooltip\n                                              position={TooltipPositionEnum.centerRight}\n                                              theme={TooltipThemeEnum.black}\n                                              tooltipNode={\n                                                  <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                                                      {t('common:rfq-details.tooltips.broker-appointment')}\n                                                  </TooltipContent>\n                                              }\n                                          >\n                                              {(isShow, childrenClassName) => (\n                                                  <StopWarningIcon\n                                                      className={childrenClassName}\n                                                      fillColor={StyleGuideColorsEnum.tomatoRed}\n                                                  />\n                                              )}\n                                          </Tooltip>\n                                      ) : null,\n                                      name: t('common:rfq-details.columns.time-slot'),\n                                      value: (\n                                          <WarningTextFormatter isActive={!!point?.brokerWindow}>\n                                              {formatTimeInterval(point?.from, point?.to)}\n                                          </WarningTextFormatter>\n                                      ),\n                                      valueMods: {\n                                          emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                          isBold: true,\n                                      },\n                                  }\n                                : null,\n                        ],\n                    },\n                ];\n\n                return (\n                    <InfoTable\n                        key={`route-point-details-${index}`}\n                        shouldRenderIcons\n                        className={cx('table')}\n                        rows={pointDetails}\n                        testSelector={`route-point-details-${index}`}\n                    />\n                );\n            })}\n            {shouldShowAppliedRules && Boolean(appliedRules.length) && (\n                <div className={cx('applied-rules')} data-test-selector=\"applied-rules\">\n                    <InfoIcon fillColor={StyleGuideColorsEnum.light} className={cx('applied-rules__icon')} />\n                    <div className={cx('applied-rules__name')}>{t('common:rfq-details.columns.applied-rules')}</div>\n                    <div className={cx('applied-rules__value')}>\n                        {appliedRules.map((rule, index) => (\n                            <PillLabel key={`${rule.name}-${index}`} isSymmetrical theme={PillLabelThemeEnum.charcoal}>\n                                {rule.name}\n                            </PillLabel>\n                        ))}\n                    </div>\n                </div>\n            )}\n            {Boolean(targetPriceDetailsList?.length) && (\n                <>\n                    <PriceDetails\n                        className={cx('price-details', {\n                            'price-details--target': true,\n                        })}\n                        list={targetPriceDetailsList}\n                        shouldAlwaysRenderExpandTrigger\n                    />\n                    <div className={cx('separator')} />\n                </>\n            )}\n            {defaultPriceDetailsList && (\n                <PriceDetails\n                    className={cx('price-details', {\n                        'price-details--default': true,\n                    })}\n                    list={defaultPriceDetailsList}\n                />\n            )}\n            {completedPriceDetailsList && (\n                <>\n                    <div className={cx('separator')} />\n                    <PriceDetails\n                        className={cx('price-details', {\n                            'price-details--selected': true,\n                        })}\n                        list={completedPriceDetailsList}\n                    />\n                </>\n            )}\n            <InfoTable\n                shouldRenderIcons\n                className={cx('table')}\n                rows={creationDetails}\n                testSelector=\"creation-details\"\n            />\n            {completedDetails && (\n                <InfoTable\n                    shouldRenderIcons\n                    className={cx('table')}\n                    rows={completedDetails}\n                    testSelector=\"completed-details\"\n                />\n            )}\n            {expirationDetails && (\n                <InfoTable\n                    shouldRenderIcons\n                    className={cx('table')}\n                    rows={expirationDetails}\n                    testSelector=\"expiration-details\"\n                />\n            )}\n        </div>\n    );\n});\n\nexport default RFQDetails;\n","import { ADD_ALERT, AlertsActionT, AlertsStateT, DELETE_ALERT } from './types';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: AlertsStateT = {\n    byId: {},\n    ids: [],\n};\n\nexport default (state = initialState, action: AlertsActionT | DestroySessionActionT): AlertsStateT => {\n    switch (action.type) {\n        case ADD_ALERT: {\n            const { anyAlert } = action;\n\n            const { id } = anyAlert;\n\n            return {\n                ...state,\n                byId: {\n                    ...state.byId,\n                    [id]: anyAlert,\n                },\n                ids: [...state.ids, id],\n            };\n        }\n\n        case DELETE_ALERT: {\n            const { alertId } = action;\n\n            const newById = {\n                ...state.byId,\n            };\n\n            delete newById[alertId];\n\n            const newIds = state.ids.filter((id) => id !== alertId);\n\n            return {\n                ...state,\n                byId: newById,\n                ids: newIds,\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default: {\n            return state;\n        }\n    }\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"DriverSidebarHeader__fadeIn___A098t\",\"blinking\":\"DriverSidebarHeader__blinking___dbbyi\"};","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n    size: number;\n};\n\nconst TruckDropOffIcon: React.FC<PropsT> = (props) => {\n    const { size, className, fillColor, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\" className={className}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path fill={fillColor} fillOpacity=\"0.3\" d=\"M16 5v8l1 1v2h-6V5h5z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M15.97 1.045l.716.453c.079.05.126.135.126.225v10.134h.296c.623 0 1.129.483 1.129 1.08v2.775h.48c.157 0 .283.121.283.27v1.493c0 .149-.126.27-.282.27H17.5v.715c0 .298-.253.54-.565.54H15.44a.553.553 0 01-.565-.54v-.715L11 17.744V8.688h4.157v-2.66H11V2.74l2.465.001c.771 0 1.467.428 1.79 1.088l.063.145.213.55V1.27c0-.215.25-.343.438-.225zm-3.051 9.561c.312 0 .564.242.564.54v3.421c0 .299-.252.54-.564.54h-1.92v-4.5h1.92zm3.396 4.35h-.964a.522.522 0 01-.534-.51v-.012c0-.282.239-.51.534-.51h.964c.294 0 .533.228.533.51v.013c0 .281-.239.51-.533.51zM2.552 12.75h1.192V9c0-.412.338-.75.75-.75h3c.413 0 .75.338.75.75v3.75h1.193c.667 0 1.005.81.532 1.283l-3.442 3.442a.747.747 0 01-1.058 0l-3.442-3.443c-.473-.472-.143-1.282.525-1.282zm4.942-6.056a.752.752 0 00.75-.739V4a.752.752 0 00-.75-.75h-3a.752.752 0 00-.75.75v1.944c0 .413.338.75.75.75h3z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nTruckDropOffIcon.displayName = 'TruckDropOffIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\n/**\n *  @deprecated create/use ...Props class\n * */\nexport const getTruckDropOffIconProps = (\n    preset:\n        | 'default'\n        | 'selected'\n        | 'assignment-events'\n        | 'assignment-error'\n        | 'assignment-normal'\n        | 'assignment-selected'\n        | 'assignment-input-normal'\n        | 'assignment-input-selected',\n): PropsT => {\n    switch (preset) {\n        case 'selected': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.brandAccent,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        case 'assignment-normal': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.white,\n            };\n        }\n        case 'assignment-error': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.white,\n            };\n        }\n        case 'assignment-input-normal': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.white,\n                strokeColor: StyleGuideColorsEnum.light,\n            };\n        }\n        case 'assignment-events': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.white,\n            };\n        }\n        case 'assignment-selected': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.brandAccent,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        case 'assignment-input-selected': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.brandAccent,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        case 'default':\n        default: {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.white,\n                strokeColor: StyleGuideColorsEnum.light,\n            };\n        }\n    }\n};\n\nexport { storyProps };\nexport default TruckDropOffIcon;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ColoredStatusLabel.scss';\nimport cs from 'classnames';\nimport HollowCircleIcon from 'common/icons/HollowCircleIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\n// confluence entity\nexport const colorCodingColoredStatusTheme = {\n    normal: StyleGuideColorsEnum.slate,\n    attention: StyleGuideColorsEnum.orange,\n    warning: StyleGuideColorsEnum.tomatoRed,\n    notImportant: StyleGuideColorsEnum.gray,\n    success: StyleGuideColorsEnum.brandAccent,\n    positive: StyleGuideColorsEnum.brandAccent,\n    focus: StyleGuideColorsEnum.charcoal,\n} as const;\n\nexport type PropsT = {\n    className?: string;\n    label: React.ReactNode;\n    color: StyleGuideColorsEnum;\n    isRightIcon?: boolean;\n    isInline?: boolean;\n    labelClassName?: string;\n    isWithoutVerticalPaddings?: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nconst ColoredStatusLabel: React.FC<PropsT> = React.memo((props) => {\n    const { label, isRightIcon, isInline, color, className, labelClassName, isWithoutVerticalPaddings } = props;\n\n    return (\n        <div\n            className={cs(\n                className,\n                cx('wrap', {\n                    'wrap--isRightIcon': isRightIcon,\n                    'wrap--isInline': isInline,\n                }),\n            )}\n        >\n            <div\n                className={cx('icon', {\n                    'icon--withVerticalPaddings': !isWithoutVerticalPaddings,\n                })}\n            >\n                <HollowCircleIcon borderColor={color} />\n            </div>\n            <div className={cs(cx('label', labelClassName))}>{label}</div>\n        </div>\n    );\n});\n\nexport default ColoredStatusLabel;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './SettingsPage.scss';\nimport { useTranslation } from 'react-i18next';\nimport TopBar from 'common/layouts/LeftMenuLayout/TopBar/TopBar';\nimport history from 'common/utils/history';\nimport { routesEnum, SettingsRoutesEnum } from 'broker-admin/constants';\nimport { Route, Switch, useParams } from 'react-router-dom';\nimport { generatePath } from 'react-router';\nimport NavigationTabs, {\n    NavigationTabConfigT,\n    NavigationTabsPropsT,\n} from 'common/components/tabs/NavigationTabs/NavigationTabs';\nimport RateMatrix from './RateMatrix/RateMatrix';\nimport PriceSettingsRules from './PriceSettingsRules/PriceSettingsRules';\nimport SystemSettings from 'broker-admin/layouts/SettingsPage/SystemSettings/SystemSettings';\nimport ScrollableContent from 'common/layouts/LeftMenuLayout/ScrollableContent/ScrollableContent';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport NotificationsBarTrigger from 'common/components/notifications/NotificationsBarTrigger/NotificationsBarTrigger';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport RemoteFormActions from 'common/components/forms/RemoteFormActions/RemoteFormActions';\nimport useRemoteFormActions from 'common/utils/hooks/useRemoteFormActions';\nimport AdditionalServicesSettings from './AdditionalServicesSettings/AdditionalServicesSettings';\nimport TopBarContent from 'common/layouts/LeftMenuLayout/TopBarContent/TopBarContent';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport SideBars from 'broker-admin/layouts/SideBars/SideBars';\nimport isString from 'lodash/isString';\nimport { ExtractRouterRouteParamsT } from 'common/utils/extract-router-route-params-t';\nimport TenderCalculator from 'broker-admin/layouts/SettingsPage/TenderCalculator/TenderCalculator';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst SettingsPage: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n\n    const params = useParams<ExtractRouterRouteParamsT<typeof routesEnum.settings>>();\n\n    const handleSelectTab: NavigationTabsPropsT['onSelectTab'] = (to): void => {\n        if (isString(to)) {\n            const pathname = generatePath(to, params);\n\n            history.push({\n                pathname,\n            });\n        } else {\n            history.push({\n                ...to,\n            });\n        }\n    };\n\n    const tabsConfig = React.useMemo(\n        (): NavigationTabConfigT[] => [\n            {\n                to: SettingsRoutesEnum.rateMatrix,\n                pathname: SettingsRoutesEnum.rateMatrix,\n                render: () => <span>{t('price-settings.tabs.rate-matrix')}</span>,\n                testSelector: 'rate-matrix',\n            },\n            {\n                to: SettingsRoutesEnum.rules,\n                pathname: SettingsRoutesEnum.rules,\n                render: () => <span>{t('price-settings.tabs.rules')}</span>,\n                testSelector: 'rules',\n            },\n            {\n                to: SettingsRoutesEnum.systemSettings,\n                pathname: SettingsRoutesEnum.systemSettings,\n                render: () => <span>{t('price-settings.tabs.system-settings')}</span>,\n                testSelector: 'system-settings',\n            },\n            {\n                to: SettingsRoutesEnum.additionalServices,\n                pathname: SettingsRoutesEnum.additionalServices,\n                render: () => <span>{t('price-settings.tabs.additional-services')}</span>,\n                testSelector: 'additional-services',\n            },\n            {\n                to: SettingsRoutesEnum.tenderCalculator,\n                pathname: SettingsRoutesEnum.tenderCalculator,\n                render: () => <span>{t('price-settings.tabs.tender-calculator')}</span>,\n                testSelector: 'tender-calculator',\n            },\n        ],\n        [t],\n    );\n\n    const remoteFormActions = useRemoteFormActions();\n\n    const header = (\n        <>\n            <PageTitle title={t('page-titles.settings')} />\n            <ContentMargins>\n                <TopBar>\n                    <TopBarContent\n                        title={t('price-settings.title')}\n                        rightNode={\n                            <>\n                                <RemoteFormActions className={cx('header__controls')} />\n                                <NotificationsBarTrigger />\n                            </>\n                        }\n                    />\n                </TopBar>\n                <div className={cx('controls')}>\n                    <NavigationTabs tabsConfig={tabsConfig} onSelectTab={handleSelectTab} />\n                    {/* <div className={cx('actions')}> */}\n                    {/*    <TransparentTrigger */}\n                    {/*        label={t('common:activity')} */}\n                    {/*        onClick={() => { */}\n                    {/*            // TODO */}\n                    {/*        }} */}\n                    {/*        rightIcon={<ArrowsIcon />} */}\n                    {/*    /> */}\n                    {/* </div> */}\n                </div>\n            </ContentMargins>\n        </>\n    );\n\n    return (\n        <RemoteFormActionsContext.Provider value={remoteFormActions}>\n            <ScrollableContent>\n                {header}\n                <Switch>\n                    <Route path={SettingsRoutesEnum.rateMatrix}>\n                        <RateMatrix />\n                    </Route>\n                    <Route path={SettingsRoutesEnum.rules}>\n                        <PriceSettingsRules />\n                    </Route>\n                    <Route path={SettingsRoutesEnum.systemSettings}>\n                        <SystemSettings />\n                    </Route>\n                    <Route path={SettingsRoutesEnum.additionalServices}>\n                        <AdditionalServicesSettings />\n                    </Route>\n                    <Route path={SettingsRoutesEnum.tenderCalculator}>\n                        <TenderCalculator />\n                    </Route>\n                </Switch>\n                <SideBars />\n            </ScrollableContent>\n        </RemoteFormActionsContext.Provider>\n    );\n});\n\nexport default SettingsPage;\n","import {\n    FETCH_DONE_STATISTICS_REQUEST_BEGIN,\n    FETCH_DONE_STATISTICS_REQUEST_ERROR,\n    FETCH_DONE_STATISTICS_REQUEST_SUCCESS,\n    FETCH_REJECT_STATISTICS_REQUEST_BEGIN,\n    FETCH_REJECT_STATISTICS_REQUEST_ERROR,\n    FETCH_REJECT_STATISTICS_REQUEST_SUCCESS,\n    FETCH_STATISTICS_REQUEST_BEGIN,\n    StatisticsActionT,\n    StatisticsStateT,\n} from './types';\nimport { checkIsSameQuery } from 'common/utils/pagination/utils';\nimport requestStatus from 'common/utils/request-status';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: StatisticsStateT = {\n    fetchQuery: null,\n    rejectData: null,\n    rejectRequestStatus: requestStatus.initial,\n    doneData: null,\n    doneRequestStatus: requestStatus.initial,\n};\n\nexport default (state = initialState, action: StatisticsActionT | DestroySessionActionT): StatisticsStateT => {\n    switch (action.type) {\n        case FETCH_STATISTICS_REQUEST_BEGIN: {\n            const { query } = action;\n\n            return {\n                ...state,\n                fetchQuery: query,\n            };\n        }\n\n        case FETCH_DONE_STATISTICS_REQUEST_BEGIN: {\n            const { query } = action;\n\n            const isSameQuery = checkIsSameQuery(query, state.fetchQuery);\n            if (!isSameQuery) {\n                return state;\n            }\n\n            return {\n                ...state,\n                doneRequestStatus: requestStatus.loading,\n            };\n        }\n\n        case FETCH_DONE_STATISTICS_REQUEST_ERROR: {\n            const { error, query } = action;\n\n            const isSameQuery = checkIsSameQuery(query, state.fetchQuery);\n            if (!isSameQuery) {\n                return state;\n            }\n\n            return {\n                ...state,\n                doneData: null,\n                doneRequestStatus: requestStatus.setError(error),\n            };\n        }\n\n        case FETCH_DONE_STATISTICS_REQUEST_SUCCESS: {\n            const { statistic, query } = action;\n\n            const isSameQuery = checkIsSameQuery(query, state.fetchQuery);\n            if (!isSameQuery) {\n                return state;\n            }\n\n            return {\n                ...state,\n                doneData: statistic,\n                doneRequestStatus: requestStatus.ok,\n            };\n        }\n\n        case FETCH_REJECT_STATISTICS_REQUEST_BEGIN: {\n            const { query } = action;\n\n            const isSameQuery = checkIsSameQuery(query, state.fetchQuery);\n            if (!isSameQuery) {\n                return state;\n            }\n\n            return {\n                ...state,\n                rejectRequestStatus: requestStatus.loading,\n            };\n        }\n\n        case FETCH_REJECT_STATISTICS_REQUEST_ERROR: {\n            const { error, query } = action;\n\n            const isSameQuery = checkIsSameQuery(query, state.fetchQuery);\n            if (!isSameQuery) {\n                return state;\n            }\n\n            return {\n                ...state,\n                rejectData: null,\n                rejectRequestStatus: requestStatus.setError(error),\n            };\n        }\n\n        case FETCH_REJECT_STATISTICS_REQUEST_SUCCESS: {\n            const { statistic, query } = action;\n\n            const isSameQuery = checkIsSameQuery(query, state.fetchQuery);\n            if (!isSameQuery) {\n                return state;\n            }\n\n            return {\n                ...state,\n                rejectData: statistic,\n                rejectRequestStatus: requestStatus.ok,\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default: {\n            return state;\n        }\n    }\n};\n","import * as React from 'react';\nimport { formatTimeInterval } from 'common/utils/time';\nimport LocationCellLayout from 'common/components/Table/cell-renderers/LocationCell/LocationCell';\nimport { DirectionEnum } from 'common/constants';\nimport { RFQT } from 'common/store/rfqs/models';\n\ntype PropsT = {\n    rfq: RFQT;\n    type: DirectionEnum;\n};\n\nconst LocationCell: React.FC<PropsT> = React.memo((props) => {\n    const { rfq, type } = props;\n\n    let time = null;\n    let address = null;\n\n    const points = rfq?.points || [];\n\n    const lastPoint = points[points.length - 1] || null;\n    if (type === DirectionEnum.destination && lastPoint) {\n        address = lastPoint.addressStr;\n        time = formatTimeInterval(lastPoint.from, lastPoint.to);\n    }\n\n    const firstPoint = points[0] || null;\n    if (type === DirectionEnum.origin && firstPoint) {\n        address = firstPoint.addressStr;\n        time = formatTimeInterval(firstPoint.from, firstPoint.to);\n    }\n\n    return <LocationCellLayout address={address} time={time} />;\n});\n\nexport default LocationCell;\n","import {\n    CHECK_GPS_STATUS_REQUEST,\n    CHECK_GPS_STATUS_REQUEST_BEGIN,\n    CHECK_GPS_STATUS_REQUEST_ERROR,\n    CHECK_GPS_STATUS_REQUEST_SUCCESS,\n    CheckGPSStatusRequestActionT,\n    CheckGPSStatusRequestBeginActionT,\n    CheckGPSStatusRequestErrorActionT,\n    CheckGPSStatusRequestSuccessActionT,\n    GPSTrackingStatusQueryT,\n    RESET,\n    ResetActionT,\n} from './types';\nimport { GPSStatusT } from './models';\n\nexport const checkGPSStatusRequest = (query: GPSTrackingStatusQueryT | null): CheckGPSStatusRequestActionT => ({\n    type: CHECK_GPS_STATUS_REQUEST,\n    query,\n});\n\nexport const checkRequestBegin = (query: GPSTrackingStatusQueryT): CheckGPSStatusRequestBeginActionT => ({\n    type: CHECK_GPS_STATUS_REQUEST_BEGIN,\n    query,\n});\n\nexport const checkRequestSuccess = (\n    query: GPSTrackingStatusQueryT,\n    data: GPSStatusT,\n): CheckGPSStatusRequestSuccessActionT => ({\n    type: CHECK_GPS_STATUS_REQUEST_SUCCESS,\n    query,\n    data,\n});\n\nexport const checkRequestError = (query: GPSTrackingStatusQueryT, error: Error): CheckGPSStatusRequestErrorActionT => ({\n    type: CHECK_GPS_STATUS_REQUEST_ERROR,\n    error,\n    query,\n});\n\nexport const reset = (): ResetActionT => ({\n    type: RESET,\n});\n","import React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './ListPageHeaderLayout.scss';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    className?: string;\n    leftToolsNode?: React.ReactNode;\n    leftToolsClassName?: string;\n    rightToolsNode?: React.ReactNode;\n    rightToolsClassName?: string;\n    filterTagsNode?: React.ReactNode;\n    withTopPadding?: boolean;\n};\n\nconst ListPageHeaderLayout: React.FC<PropsT> = React.memo((props) => {\n    const {\n        withTopPadding,\n        leftToolsNode,\n        leftToolsClassName,\n        rightToolsNode,\n        rightToolsClassName,\n        filterTagsNode,\n        className,\n    } = props;\n\n    return (\n        <div\n            className={cs(\n                cx('content', {\n                    'content--with-top-padding': withTopPadding,\n                }),\n                className,\n            )}\n        >\n            {(leftToolsNode || rightToolsNode) && (\n                <div className={cx('tools')}>\n                    <div className={cs(cx('left-tools'), leftToolsClassName)}>{leftToolsNode}</div>\n                    <div className={cs(cx('right-tools'), rightToolsClassName)}>{rightToolsNode}</div>\n                </div>\n            )}\n            {filterTagsNode && <div className={cx('filter-tags')}>{filterTagsNode}</div>}\n        </div>\n    );\n});\n\nexport default ListPageHeaderLayout;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { useSelector } from 'react-redux';\nimport { selectMaxWindowSizeMs, selectMinWindowSizeMs } from 'common/store/settings/selectors';\n\ntype PropsT = {\n    timeWindow: TimeWindowT | null | undefined;\n    className?: string;\n};\n\nconst TimeIntervalLimitPillLabel: React.FC<PropsT> = (props) => {\n    const { timeWindow, className } = props;\n\n    const { t } = useTranslation();\n\n    const minWindowSizeMs = useSelector(selectMinWindowSizeMs);\n    const maxWindowSizeMs = useSelector(selectMaxWindowSizeMs);\n\n    if (!timeWindow) {\n        return null;\n    }\n\n    const diff = timeWindow[1] - timeWindow[0];\n\n    return (\n        <>\n            {false && diff === minWindowSizeMs && (\n                <PillLabel isSymmetrical theme={PillLabelThemeEnum.blazeOrange} className={className}>\n                    {t('common:new-order-form.pills.min-time-slot')}\n                </PillLabel>\n            )}\n            {diff === maxWindowSizeMs && (\n                <PillLabel isSymmetrical theme={PillLabelThemeEnum.blazeOrange} className={className}>\n                    {t('common:new-order-form.pills.max-time-slot')}\n                </PillLabel>\n            )}\n        </>\n    );\n};\n\nexport default TimeIntervalLimitPillLabel;\n","// extracted by mini-css-extract-plugin\nexport default {\"field--trailer-type\":\"ShipperContractLaneDetails__field--trailer-type___AS8JY\",\"field--emission-class\":\"ShipperContractLaneDetails__field--emission-class___n4mnX\",\"field--location\":\"ShipperContractLaneDetails__field--location___utONa\",\"field--radius\":\"ShipperContractLaneDetails__field--radius___rVW6B\",\"field--date\":\"ShipperContractLaneDetails__field--date___BT5Mr\",\"field--limit\":\"ShipperContractLaneDetails__field--limit___pmL1s\",\"field--external-lane-id\":\"ShipperContractLaneDetails__field--external-lane-id___e78gq\",\"fadeIn\":\"ShipperContractLaneDetails__fadeIn___OmujJ\",\"blinking\":\"ShipperContractLaneDetails__blinking___PoMtJ\"};","export enum QueryKeysEnum {\n    brokerUsersTeamsFilters = 'broker-users-teams-filters',\n    brokerUsersTeamsPage = 'broker-users-teams-page',\n    brokerUsersTeamsSort = 'broker-users-teams-sort',\n}\n\nexport enum QueryFiltersKeysEnum {\n    searchText = 'searchText',\n    partnerIds = 'partnerIds',\n    partnerNames = 'partnerNames',\n    userIds = 'userIds',\n    userFullNames = 'userFullNames',\n}\n\nexport type QueryFiltersT = {\n    [QueryFiltersKeysEnum.searchText]?: QueryParam.StringT;\n    [QueryFiltersKeysEnum.partnerIds]?: QueryParam.ArrayT<string>;\n    [QueryFiltersKeysEnum.partnerNames]?: QueryParam.ArrayT<string>;\n    [QueryFiltersKeysEnum.userIds]?: QueryParam.ArrayT<string>;\n    [QueryFiltersKeysEnum.userFullNames]?: QueryParam.ArrayT<string>;\n};\n\nexport enum BrokerUsersTeamsSortEnum {\n    name = 'NAME',\n    createdDate = 'CREATED_DATE',\n}\n","import { FetchError } from './fetch-error';\n\nexport enum ApiRequestErrorTypeEnum {\n    timeoutError = 'timeoutError',\n    networkError = 'networkError',\n    badRequest = 'badRequest',\n}\n\nexport class ApiRequestError<TResponseData = any, TRequestConfig = any> extends FetchError<\n    TResponseData,\n    TRequestConfig\n> {\n    type: ApiRequestErrorTypeEnum;\n\n    constructor(fetchError: FetchError<TResponseData, TRequestConfig>, type: ApiRequestErrorTypeEnum) {\n        super(fetchError);\n\n        this.type = type;\n\n        // fix for instanceof\n        // https://github.com/microsoft/TypeScript/issues/13965\n        // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\n        Object.setPrototypeOf(this, ApiRequestError.prototype);\n    }\n}\n\nexport const checkIsApiRequestError = (error: Error | null | undefined): error is ApiRequestError => {\n    return error instanceof ApiRequestError;\n};\n\nexport const checkIsUnauthorizedError = (error: Error | null | undefined): error is ApiRequestError => {\n    return error instanceof ApiRequestError && error.httpStatusCode === 401;\n};\n\nexport const checkIsForbiddenError = (error: Error | null | undefined): error is ApiRequestError => {\n    return error instanceof ApiRequestError && error.httpStatusCode === 403;\n};\n\nexport const checkIsBadRequestError = (error: Error | null | undefined): boolean => {\n    if (!checkIsApiRequestError(error)) {\n        return false;\n    }\n\n    return error.type === ApiRequestErrorTypeEnum.badRequest;\n};\n\nexport const checkIsNetworkError = (error: Error | null | undefined): boolean => {\n    if (!checkIsApiRequestError(error)) {\n        return false;\n    }\n\n    return error.type === ApiRequestErrorTypeEnum.networkError;\n};\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ExpiredPartnerCarrierContractCard.scss';\nimport { Trans } from 'react-i18next';\nimport ContractName from 'broker-admin/components/notification-cards/entities/ContractName/ContractName';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    contractName: string;\n};\n\nconst ExpiredPartnerCarrierContractCard: React.FC<PropsT> = React.memo((props) => {\n    const { contractName } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"notifications.partner-carrier-contract-expired\"\n                components={{\n                    contractName: <ContractName contractName={contractName} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default ExpiredPartnerCarrierContractCard;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './ChangeRatesForm.scss';\nimport { ChangeCostT } from 'broker-admin/store/price-settings/rates/models';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport Input from 'common/components/Input/Input';\nimport { getMoneyDiffMask, getMoneyMask, getPercentDiffMask } from 'common/utils/input-masks';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport { UpdateRateStrategyEnum } from 'common/utils/api/models';\nimport { CURRENCY_SYMBOLS } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    onSubmit: (changeCost: ChangeCostT) => void;\n};\n\ntype OptionT = {\n    label: string;\n    value: UpdateRateStrategyEnum;\n};\n\nconst getMaskByType = (type: UpdateRateStrategyEnum) => {\n    switch (type) {\n        case UpdateRateStrategyEnum.percent:\n            return getPercentDiffMask();\n        case UpdateRateStrategyEnum.diff:\n            return getMoneyDiffMask();\n        case UpdateRateStrategyEnum.exactValue:\n            return getMoneyMask();\n        default:\n            return null;\n    }\n};\n\nconst UNIT_BY_TYPE = {\n    [UpdateRateStrategyEnum.percent]: '%',\n    [UpdateRateStrategyEnum.diff]: '+/-',\n    [UpdateRateStrategyEnum.exactValue]: CURRENCY_SYMBOLS.EUR,\n};\n\nconst ENTER_KEY = 'Enter';\n\nconst DEFAULT_DIFF_VALUE = '+';\nconst DEFAULT_VALUE = '';\n\nconst ChangeRatesForm: React.FC<PropsT> = (props) => {\n    const { className, onSubmit } = props;\n\n    const { t } = useTranslation();\n\n    const [inputValue, setInputValue] = React.useState<string>(DEFAULT_DIFF_VALUE);\n    const [dropdownValue, setDropdownValue] = React.useState<UpdateRateStrategyEnum>(UpdateRateStrategyEnum.percent);\n\n    const options: OptionT[] = [\n        {\n            label: t('price-settings.rate-matrix.change-cost.type.percent'),\n            value: UpdateRateStrategyEnum.percent,\n        },\n        {\n            label: t('price-settings.rate-matrix.change-cost.type.diff'),\n            value: UpdateRateStrategyEnum.diff,\n        },\n        {\n            label: t('price-settings.rate-matrix.change-cost.type.exact'),\n            value: UpdateRateStrategyEnum.exactValue,\n        },\n    ];\n\n    const renderOption = (option: OptionT | undefined | null) => <span>{option?.label}</span>;\n\n    const getOptionValue = (option: OptionT) => option.value;\n\n    const handleSubmit = () => {\n        const parsedValue = parseSimpleNumber(inputValue) || 0;\n\n        const isValid = parsedValue && !Number.isNaN(parsedValue);\n        if (!isValid) {\n            return;\n        }\n\n        const changeCost: ChangeCostT = {\n            value: parsedValue,\n            strategy: dropdownValue,\n        };\n\n        onSubmit(changeCost);\n    };\n\n    const handleKeyUp = (event: React.KeyboardEvent<HTMLInputElement>) => {\n        if (event.key === ENTER_KEY) {\n            handleSubmit();\n        }\n    };\n\n    const handleSelect = (value: UpdateRateStrategyEnum) => {\n        setDropdownValue(value);\n\n        if (value === UpdateRateStrategyEnum.exactValue) {\n            setInputValue(DEFAULT_VALUE);\n        }\n\n        if (value === UpdateRateStrategyEnum.diff) {\n            setInputValue(DEFAULT_DIFF_VALUE);\n        }\n\n        if (value === UpdateRateStrategyEnum.percent) {\n            setInputValue(DEFAULT_DIFF_VALUE);\n        }\n    };\n\n    return (\n        <div className={cs(cx('wrap'), className)}>\n            <Input\n                name=\"cost\"\n                className={cx('field', 'field--value')}\n                value={inputValue}\n                mask={getMaskByType(dropdownValue)}\n                rightNode={UNIT_BY_TYPE[dropdownValue]}\n                onChange={setInputValue}\n                onKeyUp={handleKeyUp}\n                guide={false}\n            />\n            <DropdownInput<OptionT, UpdateRateStrategyEnum>\n                className={cx('field', 'field--type')}\n                selectedValue={dropdownValue}\n                options={options}\n                onSelect={handleSelect}\n                renderOption={renderOption}\n                getOptionValue={getOptionValue}\n                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n            />\n            <Button theme={ButtonThemeEnum.primary} onClick={handleSubmit}>\n                {t('price-settings.rate-matrix.change-cost.apply')}\n            </Button>\n        </div>\n    );\n};\n\nexport default ChangeRatesForm;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst ShipperIcon: React.FC<PropsT> = (props) => {\n    const { size, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 21\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1.517h18v18H1z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M4 10.517v1.5h12v-1.5H4zm9-3.75L11.943 5.71 10.75 6.895V4.517h-1.5V6.91L8.043 5.725 7 6.767l3 3 3-3zm-9 7.5h12v-1.5H4v1.5zm0 2.25h12v-1.5H4v1.5z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nShipperIcon.displayName = 'ShipperIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    strokeColor: StyleGuideColorsEnum.gray,\n};\n\nexport { storyProps };\nexport default ShipperIcon;\n\nexport const ShipperIconProps = {\n    getControlProps: ({\n        isDisabled,\n        isFocused,\n        isPressed,\n        hasError,\n        hasWarning,\n        hasSuccess,\n        hasValue,\n    }: {\n        isDisabled?: boolean;\n        isFocused?: boolean;\n        isPressed?: boolean;\n        hasError?: boolean;\n        hasWarning?: boolean;\n        hasSuccess?: boolean;\n        hasValue?: boolean;\n    }): PropsT => {\n        if (hasError) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                strokeColor: StyleGuideColorsEnum.tomatoRed,\n            };\n        }\n\n        if (hasWarning) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                strokeColor: StyleGuideColorsEnum.orange,\n            };\n        }\n\n        if (hasSuccess) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n\n        if (isDisabled) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                strokeColor: StyleGuideColorsEnum.slate,\n            };\n        }\n\n        return {\n            size: DEFAULT_ICON_SIZE,\n            strokeColor:\n                hasValue || isFocused || isPressed ? StyleGuideColorsEnum.brandDark : StyleGuideColorsEnum.gray,\n        };\n    },\n};\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor?: StyleGuideColorsEnum;\n    strokeColor?: StyleGuideColorsEnum;\n};\n\nconst ContactBadgeIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={fillColor}\n                    d=\"M10.45 9.1h-.9c-.747 0-1.35-.603-1.35-1.35H4.15v8.1h11.7v-8.1H11.8c0 .747-.603 1.35-1.35 1.35zm-2.7.9a1.125 1.125 0 110 2.25 1.125 1.125 0 010-2.25zM10 14.5H5.5v-.432c0-.45.27-.855.684-1.044A3.963 3.963 0 017.75 12.7c.558 0 1.08.117 1.566.324.414.18.684.585.684 1.044v.432zm4.5-.9h-2.7v-1.35h2.7v1.35zm0-2.25h-2.7V10h2.7v1.35z\"\n                />\n                <path\n                    fill={strokeColor}\n                    d=\"M10.45 2.8c.747 0 1.35.603 1.35 1.35V6.4h4.05c.747 0 1.35.603 1.35 1.35v8.1c0 .747-.603 1.35-1.35 1.35H4.15c-.747 0-1.35-.603-1.35-1.35v-8.1c0-.747.603-1.35 1.35-1.35H8.2V4.15c0-.747.603-1.35 1.35-1.35zM8.2 7.75H4.15v8.1h11.7v-8.1H11.8c0 .747-.603 1.35-1.35 1.35h-.9c-.747 0-1.35-.603-1.35-1.35zm-.45 4.95c.558 0 1.08.117 1.566.324.414.18.684.585.684 1.044v.432H5.5v-.432c0-.459.27-.864.684-1.044A3.963 3.963 0 017.75 12.7zm6.75-.45v1.35h-2.7v-1.35h2.7zM7.75 10a1.125 1.125 0 110 2.25 1.125 1.125 0 010-2.25zm6.75 0v1.35h-2.7V10h2.7zm-4.05-5.85h-.9v3.6h.9v-3.6z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nContactBadgeIcon.displayName = 'ContactBadgeIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.light,\n    strokeColor: StyleGuideColorsEnum.gray,\n};\n\nexport { storyProps };\nexport default ContactBadgeIcon;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './LocationCell.scss';\n\ntype PropsT = {\n    address: React.ReactNode;\n};\n\nconst cx = classNames.bind(styles);\n\nconst LocationCell: React.FC<PropsT> = React.memo((props) => {\n    const { address } = props;\n\n    return <div className={cx('location')}>{address}</div>;\n});\n\nexport default LocationCell;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './MultiPointOrderDraftDetails.scss';\n\nimport TrailerIcon from 'common/icons/TrailerIcon';\nimport RouteIcon from 'common/icons/RouteIcon';\n\nimport { useTranslation } from 'react-i18next';\nimport { PriceOfferT } from 'common/store/order-creation/models';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { ApiLocationAddressT } from 'mobile-app/src/utils/api/carrier-tranziit/models';\nimport {\n    ApiOrderCreationReservePointTypeT,\n    ApiTrailerDictTypeT,\n    OrderCreationReservePointTypeEnum,\n} from 'common/utils/api/models';\nimport LocationLabel from 'common/components/LocationLabel/LocationLabel';\nimport NumberIcon from 'common/icons/NumberIcon';\nimport BoatIcon from 'common/icons/BoatIcon';\n\nconst cx = classNames.bind(styles);\n\nexport type MultiPointOrderDraftDetailsPropsT = {\n    points: Array<{\n        index?: number;\n        type?: ApiOrderCreationReservePointTypeT;\n        address: ApiLocationAddressT | null;\n    } | null> | null;\n    offer: PriceOfferT | null;\n    trailerType: ApiTrailerDictTypeT | null;\n};\n\ntype RowT = {\n    leftColumn: React.ReactNode;\n    leftColumnClassName?: string;\n    rightColumn: React.ReactNode;\n    rightColumnClassName?: string;\n};\n\nconst MultiPointOrderDraftDetails: React.FC<MultiPointOrderDraftDetailsPropsT> = React.memo((props) => {\n    const { offer, trailerType, points } = props;\n\n    const { t } = useTranslation();\n\n    const renderRow = (row: RowT): React.ReactNode => {\n        return (\n            <div className={cx('row')}>\n                <div className={cs(cx('column', 'column--isLeftColumn'), row.leftColumnClassName)}>\n                    {row.leftColumn}\n                </div>\n                <div className={cs(cx('column', 'column--isRightColumn'), row.rightColumnClassName)}>\n                    {row.rightColumn}\n                </div>\n            </div>\n        );\n    };\n\n    const getPlaceholderRow = (width: number, key?: string): RowT => ({\n        leftColumn: <div key={`placeholder-icon-${key}`} className={cx('placeholder', 'placeholder__icon')} />,\n        rightColumn: (\n            <div\n                key={`placeholder-content-${key}`}\n                className={cx('placeholder', 'placeholder__content')}\n                style={{\n                    width: `${width}%`,\n                }}\n            />\n        ),\n    });\n\n    return (\n        <div className={cx('inner')}>\n            {renderRow(\n                offer\n                    ? {\n                          leftColumn: <RouteIcon fillColor={StyleGuideColorsEnum.charcoal} />,\n                          rightColumn: t('common:new-order-details.payload-mileage', {\n                              distance: offer.distanceKm,\n                          }),\n                          rightColumnClassName: cx('column--isWeight'),\n                      }\n                    : getPlaceholderRow(20),\n            )}\n            {renderRow(\n                trailerType\n                    ? {\n                          leftColumn: (\n                              <TrailerIcon\n                                  fillColor={StyleGuideColorsEnum.brandAccent}\n                                  strokeColor={StyleGuideColorsEnum.brandDark}\n                                  size={DEFAULT_ICON_SIZE}\n                              />\n                          ),\n                          rightColumn: t('common:trailer-subtype-template', {\n                              length: trailerType.length,\n                              model: trailerType.model,\n                              eur1Pallets: trailerType.eur1Pallets,\n                              eur2Pallets: trailerType.eur2Pallets,\n                          }),\n                          rightColumnClassName: cx('column--isWeight'),\n                      }\n                    : getPlaceholderRow(45),\n            )}\n            <div className={cx('direction')}>\n                {points?.map((point) => {\n                    if (!point) {\n                        return null;\n                    }\n\n                    let iconNode: React.ReactNode;\n                    if (\n                        point.type === OrderCreationReservePointTypeEnum.ferryDisembark ||\n                        point.type === OrderCreationReservePointTypeEnum.ferryOnboard\n                    ) {\n                        iconNode = (\n                            <BoatIcon\n                                size={DEFAULT_ICON_SIZE}\n                                fillColor={StyleGuideColorsEnum.brandAccent}\n                                strokeColor={StyleGuideColorsEnum.brandDark}\n                            />\n                        );\n                    } else {\n                        let iconFillColor = StyleGuideColorsEnum.gray;\n                        if (point.type === OrderCreationReservePointTypeEnum.shipment) {\n                            iconFillColor = StyleGuideColorsEnum.charcoal;\n                        }\n                        iconNode = <NumberIcon number={(point?.index || 0) + 1} fillColor={iconFillColor} />;\n                    }\n\n                    return renderRow({\n                        leftColumn: iconNode,\n                        rightColumn: (\n                            <LocationLabel format=\"s1_s2_zip_city_country\" location={point.address} separator=\", \" />\n                        ),\n                        rightColumnClassName: cx('column--isDirection'),\n                    });\n                })}\n                {!points?.length && (\n                    <>\n                        {renderRow(getPlaceholderRow(65, '0'))}\n                        {renderRow(getPlaceholderRow(65, '1'))}\n                    </>\n                )}\n            </div>\n        </div>\n    );\n});\n\nexport default MultiPointOrderDraftDetails;\n","import * as React from 'react';\nimport { useMemo } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './StartSelectBidFooterContent.scss';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport AssignCarrierConfirmation, {\n    AssignCarrierConfirmationDataT,\n} from '../../dialogs/AssignCarrierConfirmation/AssignCarrierConfirmation';\nimport { useDispatch } from 'react-redux';\nimport { assignBidToSpotRequest } from 'broker-admin/store/spot-request-details/actions';\nimport keyBy from 'lodash/keyBy';\nimport { SpotRequestDetailsT } from 'broker-admin/store/spot-request-details/models';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    spotRequestId: SpotRequestIdT | null;\n    selectedBidId: BidIdT | null;\n    details: SpotRequestDetailsT | null;\n    updateRequestStatus: RequestStatusT;\n};\n\nconst StartSelectBidFooterContent: React.FC<PropsT> = React.memo((props) => {\n    const { details, spotRequestId, selectedBidId, updateRequestStatus } = props;\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const bidById = useMemo(() => {\n        return keyBy(details?.bids, 'id');\n    }, [details]);\n\n    const assignCarrierConfirmation = useModalDialog<AssignCarrierConfirmationDataT>();\n    const handleCancelSpotRequest = () => {\n        const selectedBid = bidById[selectedBidId as string];\n        if (!selectedBid || !selectedBidId || !spotRequestId) {\n            return;\n        }\n\n        assignCarrierConfirmation.setData({\n            selectedBidId,\n            spotRequestId,\n            carrierName: selectedBid?.carrier?.name || '-',\n        });\n    };\n\n    useCloseModalDialogAfterRequest(updateRequestStatus, [assignCarrierConfirmation]);\n\n    const handleStartSelectBid = (data: AssignCarrierConfirmationDataT) => {\n        dispatch(assignBidToSpotRequest(data.spotRequestId, data.selectedBidId));\n    };\n\n    if (!details) {\n        return null;\n    }\n\n    return (\n        <>\n            {selectedBidId ? (\n                <Button\n                    theme={ButtonThemeEnum.primary}\n                    className={cx('action', 'action--start')}\n                    onClick={handleCancelSpotRequest}\n                    isLoading={updateRequestStatus.loading}\n                >\n                    {t('spot-request-details.start-select-bid.actions.select')}\n                </Button>\n            ) : null}\n            <AssignCarrierConfirmation\n                data={assignCarrierConfirmation.data}\n                onConfirmation={handleStartSelectBid}\n                requestStatus={updateRequestStatus}\n                onCancel={assignCarrierConfirmation.onCancel}\n                onClose={assignCarrierConfirmation.onClose}\n            />\n        </>\n    );\n});\n\nexport default StartSelectBidFooterContent;\n","// extracted by mini-css-extract-plugin\nexport default {\"status--pending\":\"StatusCell__status--pending___KRB_o\",\"fadeIn\":\"StatusCell__fadeIn___CwqLB\",\"blinking\":\"StatusCell__blinking___XNGxh\"};","import {\n    DeadheadInitContextResponseT,\n    DeadheadInitContextQueryT,\n    DeadheadPreviewContextQueryT,\n    RawDeadheadInitContextQueryT,\n    RawDeadheadPreviewQueryT,\n} from '../models';\nimport { DeadheadChangeEventT } from '../slice';\nimport isNumber from 'lodash/isNumber';\nimport cloneDeep from 'lodash/cloneDeep';\n\nexport const validateDeadheadInitContextQuery = (\n    query: RawDeadheadInitContextQueryT | null,\n): query is DeadheadInitContextQueryT => {\n    if (!query) {\n        return false;\n    }\n\n    const excludedCountriesSet = new Set(query.excludedCountries || []);\n\n    return Boolean(\n        query.truckId &&\n            query.stops?.length &&\n            // first stop is always the pickup stop, will be added by the backend so we don't need to validate it\n            query.stops.slice(1).every((stop) => {\n                return stop.latitude && stop.longitude;\n            }) &&\n            query.stops.slice(1).every((stop) => {\n                return stop.country && !excludedCountriesSet.has(stop.country);\n            }),\n    );\n};\n\nexport const modifyDeadheadInitContextQuery = (\n    prevQuery: RawDeadheadInitContextQueryT | null,\n    event: DeadheadChangeEventT,\n): RawDeadheadInitContextQueryT | null => {\n    const newQuery: RawDeadheadInitContextQueryT = cloneDeep(prevQuery || {});\n\n    switch (event.type) {\n        case 'set-truck-id':\n            newQuery.truckId = event.truckId || undefined;\n\n            if (event.resetRoute) {\n                newQuery.stops = event.resetRoute.map((stop) => {\n                    return {\n                        fakeId: stop.contextRouteStopFakeId,\n                        latitude: stop?.address?.latitude,\n                        longitude: stop?.address?.longitude,\n                        city: stop?.address?.city,\n                        country: stop?.address?.country,\n                        street1: stop?.address?.street1,\n                        street2: stop?.address?.street2,\n                        zipCode: stop?.address?.zipCode,\n                    };\n                });\n            }\n            break;\n        case 'set-excluded-countries':\n            newQuery.excludedCountries = event.excludedCountries || undefined;\n            break;\n        case 'init': {\n            newQuery.stops = event.initRoute.map((stop) => {\n                return {\n                    fakeId: stop.contextRouteStopFakeId,\n                    latitude: stop?.address?.latitude,\n                    longitude: stop?.address?.longitude,\n                    city: stop?.address?.city,\n                    country: stop?.address?.country,\n                    street1: stop?.address?.street1,\n                    street2: stop?.address?.street2,\n                    zipCode: stop?.address?.zipCode,\n                };\n            });\n            break;\n        }\n        case 'insert-route-point': {\n            let beforeIndex: number | null = null;\n\n            // Search from the end of the array to the beginning\n            for (let index = event.beforeContextRouteStopFakeIds.length - 1; index >= 0; index -= 1) {\n                const foundIndex = newQuery?.stops?.findIndex((stop) => {\n                    return stop.fakeId === event.beforeContextRouteStopFakeIds[index];\n                });\n                if (isNumber(foundIndex) && foundIndex !== -1) {\n                    beforeIndex = foundIndex;\n                    break;\n                }\n            }\n\n            if (isNumber(beforeIndex) && beforeIndex !== -1 && newQuery.stops) {\n                newQuery.stops.splice(beforeIndex + 1, 0, {\n                    fakeId: event.contextRouteStopFakeId,\n                    latitude: event?.address?.latitude,\n                    longitude: event?.address?.longitude,\n                    city: event?.address?.city,\n                    country: event?.address?.country,\n                    street1: event?.address?.street1,\n                    street2: event?.address?.street2,\n                    zipCode: event?.address?.zipCode,\n                });\n            }\n            break;\n        }\n        case 'change-stop-location': {\n            const targetIndex = newQuery?.stops?.findIndex((stop) => {\n                return stop.fakeId === event.contextRouteStopFakeId;\n            });\n\n            if (isNumber(targetIndex) && targetIndex !== -1 && newQuery.stops) {\n                newQuery.stops[targetIndex] = {\n                    ...newQuery.stops[targetIndex],\n                    latitude: event?.address?.latitude,\n                    longitude: event?.address?.longitude,\n                    city: event?.address?.city,\n                    country: event?.address?.country,\n                    street1: event?.address?.street1,\n                    street2: event?.address?.street2,\n                    zipCode: event?.address?.zipCode,\n                };\n            }\n            break;\n        }\n        case 'delete-route-point': {\n            newQuery.stops =\n                newQuery.stops?.filter((stop) => {\n                    return stop.fakeId !== event.contextRouteStopFakeId;\n                }) || [];\n            break;\n        }\n        default:\n            // nothing to do\n            break;\n    }\n\n    return newQuery;\n};\n\nexport const validateDeadheadPreviewQuery = (\n    query: RawDeadheadPreviewQueryT | null,\n): query is DeadheadPreviewContextQueryT => {\n    if (!query) {\n        return false;\n    }\n\n    return Boolean(query.arrivalDateTime);\n};\n\nexport const modifyDeadheadPreviewQuery = (\n    prevQuery: RawDeadheadPreviewQueryT | null,\n    event: DeadheadChangeEventT,\n    context: DeadheadInitContextResponseT | null,\n): RawDeadheadPreviewQueryT | null => {\n    const newQuery: RawDeadheadPreviewQueryT = cloneDeep(prevQuery || {});\n\n    // TODO delete it later, if everything is working correctly, the dates are adjusted by the backend.\n    // const isValidArrivalDateTime = (() => {\n    //     const { arrivalDateTime } = newQuery;\n    //     if (!arrivalDateTime || !context?.ranges?.length) {\n    //         return false;\n    //     }\n    //\n    //     return context.ranges.some((range) => {\n    //         const { from, to } = range;\n    //\n    //         // If to is not specified, it means the range is open to infinity\n    //         if (!to) {\n    //             return arrivalDateTime >= from;\n    //         }\n    //\n    //         // Check that arrivalDateTime falls within the range [from, to]\n    //         return checkIsInDateRange(from, to, arrivalDateTime);\n    //     });\n    // })();\n    //\n    // const firstRangeArrivalDateTime = context?.ranges?.[0]?.from;\n    // if ((!newQuery.arrivalDateTime || !isValidArrivalDateTime) && firstRangeArrivalDateTime) {\n    //     newQuery.arrivalDateTime = firstRangeArrivalDateTime;\n    // }\n\n    const firstRangeArrivalDateTime = context?.ranges?.[0]?.from;\n    if (!newQuery?.arrivalDateTime && firstRangeArrivalDateTime) {\n        newQuery.arrivalDateTime = firstRangeArrivalDateTime;\n    }\n\n    switch (event.type) {\n        case 'set-arrival-date-time':\n            newQuery.arrivalDateTime = event.arrivalDateTime;\n            break;\n        default:\n            // nothing to do\n            break;\n    }\n\n    return newQuery;\n};\n","import { StateT } from 'broker-admin/store/models';\nimport { ManagersStateT } from './types';\n\nexport const selectFetchManagersRequest = (state: StateT): ManagersStateT['request'] => state.managers.request;\n\nexport const selectManagersAllIds = (state: StateT): ManagersStateT['allIds'] => state.managers.allIds || [];\nexport const selectManagersById = (state: StateT): ManagersStateT['byId'] => state.managers.byId || {};\n","import { ReactNode } from 'react';\nimport {\n    NotificationRendererT,\n    NotificationViewT,\n} from 'common/components/notifications/NotificationsBarContent/models';\nimport { AnyNotificationT, NotificationEmotionEnum } from 'common/store/notifications/models';\n\nexport const renderCommonNotification: NotificationRendererT = (\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    notification,\n) => {\n    return null;\n};\n\nexport const renderUnknownNotification = (notification: AnyNotificationT): NotificationViewT => {\n    return {\n        body: {\n            id: notification.id,\n            emotion: NotificationEmotionEnum.neutral,\n        },\n    };\n};\n\nexport const renderUnknownNotificationText = (notification: AnyNotificationT): ReactNode => {\n    return JSON.stringify(notification) || '';\n};\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { fetchCarrierUtilizationBegin, fetchCarrierUtilizationError, fetchCarrierUtilizationSuccess } from './actions';\nimport { FETCH_UTILIZATION_REQUEST, FetchCarrierUtilizationActionT } from './types';\nimport { selectCarriersUtilizationByHash, selectFetchRequestStatus } from './selectors';\nimport { getHash } from './utils';\nimport isEmpty from 'lodash/isEmpty';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\n\nfunction* fetchCarriersUtilizationSaga(action: FetchCarrierUtilizationActionT): WrapGeneratorT<void> {\n    const { ids, date } = action;\n\n    const requestStatus: ReturnType<typeof selectFetchRequestStatus> = yield select(selectFetchRequestStatus);\n    if (requestStatus.loading) {\n        return;\n    }\n\n    const carriersUtilizationByHash: ReturnType<typeof selectCarriersUtilizationByHash> = yield select(\n        selectCarriersUtilizationByHash,\n    );\n    const needIds = ids.filter((id) => {\n        const hash = getHash(id, date);\n\n        return !carriersUtilizationByHash[hash];\n    });\n\n    if (isEmpty(needIds)) {\n        return;\n    }\n\n    yield put(fetchCarrierUtilizationBegin());\n\n    const [error, utilizations]: ReturnApiT<typeof commonTranziitApi.fetchCarriersUtilization> =\n        yield commonTranziitApi.fetchCarriersUtilization(needIds, date);\n\n    if (error) {\n        yield put(fetchCarrierUtilizationError(error));\n        return;\n    }\n\n    yield put(fetchCarrierUtilizationSuccess(needIds, date, utilizations || []));\n}\n\nfunction* carrierUtilizationSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_UTILIZATION_REQUEST, fetchCarriersUtilizationSaga);\n}\n\nexport default carrierUtilizationSaga;\n","import * as React from 'react';\nimport FilterPills, { FilterPillsConfigT } from 'common/components/FilterPills/FilterPills';\nimport { QueryFiltersT, QueryFiltersKeysEnum } from '../query-models';\nimport { useTranslation } from 'react-i18next';\nimport TrailerDictIdFilterPill from 'common/components/filter-pills/TrailerDictIdFilterPill/TrailerDictIdFilterPill';\nimport { FilterPillThemeEnum } from 'common/components/FilterPills/FilterPill/FilterPill';\nimport { formatDateRangeFilterValue, pillIconRendererMap } from 'common/components/FilterPills/pill-renderers';\nimport TrailerStatus from 'common/components/status/TrailerStatus/TrailerStatus';\nimport CountriesFilterPill from 'common/components/filter-pills/CountriesFilterPill/CountriesFilterPill';\nimport { ALL_BROKER_USERS_VALUE } from 'common/components/dropdowns/UserMultipleDropdown/constants';\n\ntype PropsT = {\n    isCompact?: boolean;\n    queryFilters: QueryFiltersT;\n    setQueryFilters: (queryFilters: QueryFiltersT) => void;\n};\n\nconst SelectedFilters: React.FC<PropsT> = React.memo((props) => {\n    const { isCompact, queryFilters, setQueryFilters } = props;\n\n    const { t } = useTranslation();\n\n    const filterPillsConfig = React.useMemo(\n        (): FilterPillsConfigT<QueryFiltersT> => [\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                isMultiple: true,\n                render: (queryFilters, index) => {\n                    const selectedTrailerId = queryFilters[QueryFiltersKeysEnum.dictTrailerTypeId]?.[index];\n\n                    return <TrailerDictIdFilterPill isShortLabel trailerDictId={selectedTrailerId} />;\n                },\n                clearKeys: [QueryFiltersKeysEnum.dictTrailerTypeId],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('common:trailers-page.filters.pills.plate-number', {\n                        value: queryFilters[QueryFiltersKeysEnum.plateNumber],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.plateNumber],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                isMultiple: true,\n                render: (queryFilters, index) => {\n                    const countryCode = queryFilters[QueryFiltersKeysEnum.country]?.[index];\n\n                    return <CountriesFilterPill countryCodes={countryCode ? [countryCode] : null} />;\n                },\n                clearKeys: [QueryFiltersKeysEnum.country],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                isMultiple: true,\n                render: (queryFilters, index) => {\n                    const status = queryFilters[QueryFiltersKeysEnum.status]?.[index];\n\n                    return <TrailerStatus status={status} />;\n                },\n                clearKeys: [QueryFiltersKeysEnum.status],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                isMultiple: true,\n                renderIcon: (queryFilters, index, isCompact) => {\n                    if (queryFilters[QueryFiltersKeysEnum.createdByUserId]?.[index] === ALL_BROKER_USERS_VALUE) {\n                        return pillIconRendererMap.logo();\n                    }\n\n                    return pillIconRendererMap.avatar(\n                        queryFilters[QueryFiltersKeysEnum.createdByUserName]?.[index],\n                        isCompact,\n                    );\n                },\n                render: (queryFilters, index) => {\n                    return t('common:trailers-page.filters.pills.added-by-user', {\n                        value: queryFilters[QueryFiltersKeysEnum.createdByUserName]?.[index],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.createdByUserId, QueryFiltersKeysEnum.createdByUserName],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const createdDateFrom = queryFilters[QueryFiltersKeysEnum.createdDateFrom];\n                    const createdDateTo = queryFilters[QueryFiltersKeysEnum.createdDateTo];\n\n                    return t('common:trailers-page.filters.pills.added-dates', {\n                        value: formatDateRangeFilterValue(createdDateFrom, createdDateTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.createdDateFrom, QueryFiltersKeysEnum.createdDateTo],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                isMultiple: true,\n                renderIcon: (queryFilters, index, isCompact) => {\n                    if (queryFilters[QueryFiltersKeysEnum.lastModifyByUserId]?.[index] === ALL_BROKER_USERS_VALUE) {\n                        return pillIconRendererMap.logo();\n                    }\n\n                    return pillIconRendererMap.avatar(\n                        queryFilters[QueryFiltersKeysEnum.lastModifyByUserName]?.[index],\n                        isCompact,\n                    );\n                },\n                render: (queryFilters, index) => {\n                    return t('common:trailers-page.filters.pills.last-modify-by-user', {\n                        value: queryFilters[QueryFiltersKeysEnum.lastModifyByUserName]?.[index],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.lastModifyByUserId, QueryFiltersKeysEnum.lastModifyByUserName],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const lastModifyDateFrom = queryFilters[QueryFiltersKeysEnum.lastModifyDateFrom];\n                    const lastModifyDateTo = queryFilters[QueryFiltersKeysEnum.lastModifyDateTo];\n\n                    return t('common:trailers-page.filters.pills.last-modify-dates', {\n                        value: formatDateRangeFilterValue(lastModifyDateFrom, lastModifyDateTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.lastModifyDateFrom, QueryFiltersKeysEnum.lastModifyDateTo],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                isMultiple: true,\n                render: (queryFilters, index) => {\n                    const contractName = queryFilters[QueryFiltersKeysEnum.contractName]?.[index];\n                    return <span>{contractName}</span>;\n                },\n                clearKeys: [QueryFiltersKeysEnum.contractId, QueryFiltersKeysEnum.contractName],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const lastTelematicUpdateDateFrom = queryFilters[QueryFiltersKeysEnum.lastTelematicUpdateDateFrom];\n                    const lastTelematicUpdateDateTo = queryFilters[QueryFiltersKeysEnum.lastTelematicUpdateDateTo];\n\n                    return t('common:trailers-page.filters.pills.last-telematic-update-dates', {\n                        value: formatDateRangeFilterValue(lastTelematicUpdateDateFrom, lastTelematicUpdateDateTo),\n                    });\n                },\n                clearKeys: [\n                    QueryFiltersKeysEnum.lastTelematicUpdateDateFrom,\n                    QueryFiltersKeysEnum.lastTelematicUpdateDateTo,\n                ],\n            },\n        ],\n        [t],\n    );\n\n    return (\n        <FilterPills<QueryFiltersT>\n            isCompact={isCompact}\n            queryFilters={queryFilters}\n            setQueryFilters={setQueryFilters}\n            config={filterPillsConfig}\n        />\n    );\n});\n\nexport default SelectedFilters;\n","import { StateT } from 'broker-admin/store/models';\nimport { BrokerTourDetailsStateT, initialBrokerTourDetailsState } from './slice';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport const selectBrokerTourDetails =\n    (id: BrokerTourIdT | null | undefined) =>\n    (state: StateT): BrokerTourDetailsStateT['details'] =>\n        state.brokerTourDetails[id as string]?.details || initialBrokerTourDetailsState.details;\n\nexport const selectBrokerTourDetailsRequestStatus =\n    (id?: BrokerTourIdT | null | undefined) =>\n    (state: StateT): RequestStatusT =>\n        state.brokerTourDetails[id as string]?.requestStatus || initialBrokerTourDetailsState.requestStatus;\n","import React, { useCallback } from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\n\nimport styles from './ContractMultipleDropdown.scss';\nimport { useTranslation } from 'react-i18next';\nimport {\n    AdditionalOptionFilterT,\n    useAsyncFilterOptions,\n} from 'design-system/components/dropdowns/DropdownSearchInput/hooks/use-async-filter-options';\nimport { AsyncRequestFactoryT } from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-options-request';\nimport { checkIsDefaultCompanyId } from 'common/utils';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport carrierTranziitApi from 'carrier/utils/api/carrier-tranziit/api';\nimport { ApiCarrierContractStatusT, ApiPartnerContractT } from 'common/utils/api/models';\nimport ContractName from 'common/components/ContractName/ContractName';\nimport DropdownSearchMultipleInput from 'design-system/components/dropdowns/DropdownSearchMultipleInput/DropdownSearchMultipleInput';\nimport DropdownMultipleInputCountLabel from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInputCountLabel/DropdownMultipleInputCountLabel';\nimport { logWarning } from 'common/utils/logger';\n\nconst cx = classNames.bind(styles);\n\ntype ValueT = CarrierContractIdT | null;\n\ntype PropsT = {\n    className?: string;\n    placeholder?: string;\n    inputPlaceholder?: string;\n    values: Array<ValueT>;\n    hasNoneOption?: boolean;\n    isDisabled?: boolean;\n    onChange: (values: Array<ValueT>, labels: Array<string>) => void;\n    hasChanges?: boolean;\n    companyId: CompanyIdT | null;\n    onBlur: () => void;\n    onFocus: () => void;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    isOnlyApproved?: boolean;\n    excludedContractIds?: Array<CarrierContractIdT>;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    hasClearControl?: boolean;\n    excludedStatusesSet?: Set<ApiCarrierContractStatusT | undefined>;\n};\n\ntype NoneOptionT = {\n    id: null;\n    name: string;\n};\n\nexport type OptionT = ApiPartnerContractT | NoneOptionT;\n\nconst ContractMultipleDropdown: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        values,\n        placeholder,\n        inputPlaceholder,\n        onChange,\n        hasNoneOption,\n        isDisabled,\n        hasChanges,\n        onBlur,\n        onFocus,\n        hasError,\n        hasWarning,\n        companyId,\n        excludedContractIds,\n        overlayPosition,\n        hasClearControl,\n        isOnlyApproved,\n        excludedStatusesSet,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const requestFactory: AsyncRequestFactoryT<OptionT> = useCallback(async () => {\n        let options: Array<OptionT> = [];\n\n        if (!companyId) {\n            logWarning('Empty companyId in requestFactory');\n            return [null, null];\n        }\n\n        const isPartner = !checkIsDefaultCompanyId(companyId);\n        if (isPartner) {\n            if (isOnlyApproved) {\n                const approvedBrokerContractsResponse = await brokerTranziitApi.fetchCarrierApprovedContracts(\n                    companyId,\n                );\n                const [approvedBrokerContractsError, approvedBrokerContractsResult] = approvedBrokerContractsResponse;\n                if (approvedBrokerContractsError) {\n                    return [approvedBrokerContractsError, null];\n                }\n                if (approvedBrokerContractsResult) {\n                    options = approvedBrokerContractsResult;\n                }\n            } else {\n                const brokerContractsResponse = await brokerTranziitApi.fetchCarrierContracts(companyId);\n                const [brokerContractsError, brokerContractsResult] = brokerContractsResponse;\n                if (brokerContractsError) {\n                    return [brokerContractsError, null];\n                }\n                if (brokerContractsResult) {\n                    options = brokerContractsResult;\n                }\n            }\n        } else if (isOnlyApproved) {\n            const approvedCarrierContractsResponse = await carrierTranziitApi.fetchCarrierApprovedContracts();\n            const [approvedCarrierContractsError, approvedCarrierContractsResult] = approvedCarrierContractsResponse;\n            if (approvedCarrierContractsError) {\n                return [approvedCarrierContractsError, null];\n            }\n            if (approvedCarrierContractsResult) {\n                options = approvedCarrierContractsResult;\n            }\n        } else {\n            const carrierContractsResponse = await carrierTranziitApi.fetchCarrierContracts();\n            const [carrierContractsError, carrierContractsResult] = carrierContractsResponse;\n            if (carrierContractsError) {\n                return [carrierContractsError, null];\n            }\n            if (carrierContractsResult) {\n                options = carrierContractsResult;\n            }\n        }\n\n        if (hasNoneOption) {\n            options.unshift({\n                name: t('common:dedicated.none'),\n                id: null,\n            });\n        }\n        return [null, options];\n    }, [companyId, hasNoneOption, isOnlyApproved, t]);\n\n    const additionalOptionFilter: AdditionalOptionFilterT<OptionT> = useCallback(\n        (option) => {\n            return !!option.id && !excludedContractIds?.includes(option.id) && !excludedStatusesSet?.has(option.status);\n        },\n        [excludedContractIds, excludedStatusesSet],\n    );\n\n    const getOptionText = useCallback((option: OptionT) => option.name || option.id || '', []);\n\n    const asyncFilterOptionsRequest = useAsyncFilterOptions<OptionT>({\n        requestFactory,\n        getOptionText,\n        additionalOptionFilter,\n        settings: {},\n    });\n\n    const renderOption = (option: OptionT | null | undefined, placeholder?: string): React.ReactElement | null => {\n        if (!option && hasNoneOption) {\n            return t('common:dedicated.none');\n        }\n\n        if (!option) {\n            return <div>{placeholder || null}</div>;\n        }\n\n        return (\n            <div className={cx('option')} key={option.id}>\n                <ContractName className={cx('contract-name')} name={option.name} nameFallback={option.id} />\n            </div>\n        );\n    };\n\n    const renderTrigger = (options: Array<OptionT>, placeholder: string | undefined) => {\n        if (!options?.length) {\n            return placeholder;\n        }\n\n        if (options.length === 1) {\n            const firstOption = options?.[0];\n            return <ContractName className={cx('contract-name')} name={firstOption?.name} />;\n        }\n\n        return <DropdownMultipleInputCountLabel count={options?.length} />;\n    };\n\n    const handleSelect = (values: Array<ValueT>, options: Array<OptionT>): void => {\n        const labels = options.map((option) => {\n            return option?.name || '';\n        });\n\n        onChange(values, labels);\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option.id || null;\n\n    const handleFocus = useCallback(() => {\n        if (onFocus) {\n            onFocus();\n        }\n\n        asyncFilterOptionsRequest.onRefresh();\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [onFocus, asyncFilterOptionsRequest.onRefresh]);\n\n    const handleReset = () => {\n        handleSelect([], []);\n    };\n\n    return (\n        <DropdownSearchMultipleInput<OptionT, ValueT>\n            className={className}\n            selectedValues={values}\n            placeholder={placeholder}\n            inputPlaceholder={inputPlaceholder}\n            options={asyncFilterOptionsRequest.options}\n            isDisabled={isDisabled}\n            onSelect={handleSelect}\n            onReset={hasClearControl ? handleReset : undefined}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            onChangeQuery={asyncFilterOptionsRequest.onChangeQuery}\n            renderOption={renderOption}\n            renderTriggerContent={renderTrigger}\n            getOptionValue={getOptionValue}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            isLoading={asyncFilterOptionsRequest.requestStatus.loading}\n            onFocus={handleFocus}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n        />\n    );\n};\n\nexport default ContractMultipleDropdown;\n","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { CalculateCostRequestQueryT, CreateRequestQueryT } from './models';\nimport { checkIsSameQuery } from 'common/utils/pagination/utils';\nimport { ApiPriceOfferT, MapSettingsT } from './types';\n\nexport type ShipperContractLaneCreationStateT = {\n    mapSettings: MapSettingsT | null;\n\n    origin: {\n        location: LocationT | null;\n        radiusKm: number | null;\n    };\n    destination: {\n        location: LocationT | null;\n        radiusKm: number | null;\n    };\n\n    polylines: Array<GooglePolylineT> | null;\n    fetchRouteRequest: RequestStatusT;\n\n    calculateCostRequestQuery: CalculateCostRequestQueryT | null;\n    calculateCostRequest: RequestStatusT;\n    averagePriceOffer: ApiPriceOfferT | null;\n\n    creationRequestQuery: CreateRequestQueryT | null;\n    creationRequest: RequestStatusT;\n};\n\nconst initialState: ShipperContractLaneCreationStateT = {\n    mapSettings: null,\n\n    origin: {\n        location: null,\n        radiusKm: null,\n    },\n    destination: {\n        location: null,\n        radiusKm: null,\n    },\n\n    polylines: null,\n    fetchRouteRequest: requestStatus.initial,\n\n    calculateCostRequestQuery: null,\n    calculateCostRequest: requestStatus.initial,\n    averagePriceOffer: null,\n\n    creationRequestQuery: null,\n    creationRequest: requestStatus.initial,\n};\n\nexport const shipperContractLaneCreationSlice = createSlice({\n    name: 'shipperContractLaneCreation',\n    initialState,\n    reducers: {\n        setMapSettings: (\n            state,\n            action: PayloadAction<{\n                settings: MapSettingsT | null;\n            }>,\n        ) => {\n            state.mapSettings = action.payload.settings;\n        },\n        setOriginLocation: (\n            state,\n            action: PayloadAction<{\n                location: LocationT | null;\n            }>,\n        ) => {\n            state.origin.location = action.payload.location;\n            state.polylines = null;\n        },\n        setOriginLocationRadius: (\n            state,\n            action: PayloadAction<{\n                radiusKm: number | null;\n            }>,\n        ) => {\n            state.origin.radiusKm = action.payload.radiusKm;\n        },\n        setDestinationLocation: (\n            state,\n            action: PayloadAction<{\n                location: LocationT | null;\n            }>,\n        ) => {\n            state.destination.location = action.payload.location;\n            state.polylines = null;\n        },\n        setDestinationLocationRadius: (\n            state,\n            action: PayloadAction<{\n                radiusKm: number | null;\n            }>,\n        ) => {\n            state.destination.radiusKm = action.payload.radiusKm;\n        },\n        resetShipperLaneCreation: () => {\n            return initialState;\n        },\n        calculateCostRequest: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                query: CalculateCostRequestQueryT;\n                partnerId: PartnerIdT;\n                contractId: ShipperContractIdT;\n            }>,\n        ) => {\n            // nothing\n        },\n        calculateCostRequestSuccess: (\n            state,\n            action: PayloadAction<{\n                query: CalculateCostRequestQueryT;\n                averagePriceOffer: ApiPriceOfferT | null;\n            }>,\n        ) => {\n            const { query, averagePriceOffer } = action.payload;\n\n            if (!checkIsSameQuery(query, state.calculateCostRequestQuery)) {\n                return;\n            }\n\n            state.calculateCostRequest = requestStatus.ok;\n            state.averagePriceOffer = averagePriceOffer;\n        },\n        calculateCostRequestSetRoute: (\n            state,\n            action: PayloadAction<{\n                query: CalculateCostRequestQueryT;\n                polylines: Array<GooglePolylineT>;\n            }>,\n        ) => {\n            const { query, polylines } = action.payload;\n\n            if (!checkIsSameQuery(query, state.calculateCostRequestQuery)) {\n                return;\n            }\n\n            state.fetchRouteRequest = requestStatus.ok;\n            state.polylines = polylines;\n        },\n        calculateCostRequestFetchRouteError: (\n            state,\n            action: PayloadAction<{\n                query: CalculateCostRequestQueryT;\n                error: Error;\n            }>,\n        ) => {\n            const { query, error } = action.payload;\n\n            if (!checkIsSameQuery(query, state.calculateCostRequestQuery)) {\n                return;\n            }\n\n            state.fetchRouteRequest = requestStatus.setError(error);\n            state.polylines = null;\n        },\n        calculateCostRequestError: (\n            state,\n            action: PayloadAction<{\n                query: CalculateCostRequestQueryT;\n                error: Error;\n            }>,\n        ) => {\n            const { query, error } = action.payload;\n\n            if (!checkIsSameQuery(query, state.calculateCostRequestQuery)) {\n                return;\n            }\n\n            state.calculateCostRequest = requestStatus.setError(error);\n        },\n        calculateCostRequestBegin: (\n            state,\n            action: PayloadAction<{\n                query: CalculateCostRequestQueryT;\n            }>,\n        ) => {\n            state.calculateCostRequestQuery = action.payload.query;\n            state.fetchRouteRequest = requestStatus.loading;\n            state.calculateCostRequest = requestStatus.loading;\n            state.averagePriceOffer = null;\n        },\n        createLaneRequest: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                query: CreateRequestQueryT;\n                partnerId: PartnerIdT;\n                contractId: ShipperContractIdT;\n            }>,\n        ) => {\n            // nothing\n        },\n        createLaneRequestBegin: (\n            state,\n            action: PayloadAction<{\n                query: CreateRequestQueryT;\n            }>,\n        ) => {\n            state.creationRequestQuery = action.payload.query;\n            state.creationRequest = requestStatus.loading;\n        },\n        createLaneRequestSuccess: (\n            state,\n            action: PayloadAction<{\n                query: CreateRequestQueryT;\n            }>,\n        ) => {\n            const { query } = action.payload;\n\n            if (!checkIsSameQuery(query, state.creationRequestQuery)) {\n                return;\n            }\n\n            state.creationRequest = requestStatus.ok;\n        },\n        createLaneRequestError: (\n            state,\n            action: PayloadAction<{\n                query: CreateRequestQueryT;\n                error: Error;\n            }>,\n        ) => {\n            const { query, error } = action.payload;\n\n            if (!checkIsSameQuery(query, state.creationRequestQuery)) {\n                return;\n            }\n\n            state.creationRequest = requestStatus.setError(error);\n        },\n    },\n});\n\nexport const {\n    setMapSettings,\n\n    resetShipperLaneCreation,\n\n    setDestinationLocation,\n    setDestinationLocationRadius,\n\n    setOriginLocation,\n    setOriginLocationRadius,\n\n    calculateCostRequest,\n    calculateCostRequestBegin,\n    calculateCostRequestError,\n    calculateCostRequestSuccess,\n    calculateCostRequestSetRoute,\n    calculateCostRequestFetchRouteError,\n\n    createLaneRequest,\n    createLaneRequestBegin,\n    createLaneRequestError,\n    createLaneRequestSuccess,\n} = shipperContractLaneCreationSlice.actions;\n\nexport default shipperContractLaneCreationSlice.reducer;\n","import * as React from 'react';\nimport { useState } from 'react';\nimport isEmpty from 'lodash/isEmpty';\n\ntype PropsT<RowT> = {\n    tableName: string;\n    rows: Array<RowT>;\n    isLoading: boolean;\n    children: (rows: Array<RowT>, isUsedPrevRows: boolean) => React.ReactElement | null;\n};\n\nconst MemoizedTable = <RowT extends {}>(props: PropsT<RowT>) => {\n    const { tableName, rows, isLoading, children } = props;\n\n    const [prevRows, setPrevRows] = useState<RowT[]>(rows);\n    React.useEffect(() => {\n        if (!isLoading) {\n            setPrevRows(rows);\n        }\n\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isLoading]);\n\n    React.useEffect(() => {\n        setPrevRows([]);\n    }, [tableName]);\n\n    const isUsedPrevRows = isLoading && isEmpty(rows) && !isEmpty(prevRows);\n    const tableRows = isUsedPrevRows ? prevRows : rows;\n\n    return children(tableRows, isUsedPrevRows);\n};\n\nexport default React.memo(MemoizedTable) as typeof MemoizedTable;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n};\n\nconst UploadFileIcon: React.FC<PropsT> = (props) => {\n    const { fillColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={fillColor}\n                    d=\"M15.557 6.558l-3.622-3.623a1.498 1.498 0 00-1.058-.435H5.5c-.825 0-1.492.675-1.492 1.5L4 16c0 .825.668 1.5 1.492 1.5H14.5c.825 0 1.5-.675 1.5-1.5V7.622c0-.397-.158-.78-.443-1.064zM12.1 12.25h-1.35v2.25c0 .412-.338.75-.75.75a.752.752 0 01-.75-.75v-2.25H7.907a.371.371 0 01-.262-.637l2.1-2.093a.385.385 0 01.533 0l2.092 2.093c.225.232.06.637-.27.637zm-.6-4.5a.752.752 0 01-.75-.75V3.625l4.125 4.125H11.5z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nUploadFileIcon.displayName = 'UploadFileIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.charcoal,\n};\n\nexport { storyProps };\nexport default UploadFileIcon;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor?: StyleGuideColorsEnum;\n};\n\nconst GeoAreaIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, ...restProps } = props;\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" {...restProps}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={fillColor}\n                    d=\"M13.69 14.732l1.065 1.073a7.457 7.457 0 01-3.99 1.658v-1.515a5.96 5.96 0 002.925-1.216zM9.235 2.538v1.514c-2.94.39-5.213 2.91-5.213 5.948 0 3.037 2.273 5.557 5.213 5.947v1.516C5.462 17.065 2.522 13.87 2.522 10s2.94-7.065 6.714-7.463zm8.242 8.212a7.463 7.463 0 01-1.657 3.99l-1.072-1.065a5.958 5.958 0 001.215-2.925zM10 6.25c1.575 0 3 1.207 3 3.075 0 1.245-.998 2.722-3 4.425-2.003-1.703-3-3.18-3-4.425C7 7.457 8.425 6.25 10 6.25zm0 2.145a.803.803 0 100 1.603.803.803 0 000-1.603zm5.82-3.135a7.456 7.456 0 011.657 3.99h-1.514a5.895 5.895 0 00-1.215-2.917zm-5.055-2.722c1.5.15 2.88.75 3.99 1.657L13.69 5.268a5.954 5.954 0 00-2.925-1.215z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nGeoAreaIcon.displayName = 'GeoAreaIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n};\n\nexport { storyProps };\nexport default GeoAreaIcon;\n\n/**\n *  @deprecated create/use ...Props class\n * */\nexport const getGeoAreaIconProps = (preset: 'default' | 'selected'): Pick<PropsT, 'fillColor'> => {\n    switch (preset) {\n        case 'selected': {\n            return {\n                fillColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        default: {\n            return {\n                fillColor: StyleGuideColorsEnum.slate,\n            };\n        }\n    }\n};\n","import { SpotRequestsQuickFilterEnum } from './constants';\n\nexport enum QueryKeysEnum {\n    spotRequestsPage = 'spot-requests-page',\n    spotRequestsSort = 'spot-requests-sort',\n    spotRequestsFilters = 'spot-requests-filters',\n}\n\nexport enum QueryFiltersKeysEnum {\n    quickFilter = 'quick-filter',\n    searchText = 'search-text',\n    createdByShipperId = 'created-by-shipper-id',\n    createdByShipperName = 'created-by-shipper-name',\n    dictTrailerTypeId = 'dict-trailer-type-id',\n    pickupAddress = 'pickup-address',\n    pickupDateFrom = 'pickup-docking-hours-from',\n    pickupDateTo = 'pickup-docking-hours-to',\n    dropOffAddress = 'drop-off-address',\n    dropOffDateFrom = 'drop-off-docking-hours-from',\n    dropOffDateTo = 'drop-off-docking-hours-to',\n    createdDateFrom = 'created-date-from',\n    createdDateTo = 'created-date-to',\n    createdByUserId = 'created-by-user-id',\n    createdByUserName = 'created-by-user-name',\n}\n\nexport type QueryFiltersT = Partial<{\n    [QueryFiltersKeysEnum.quickFilter]: SpotRequestsQuickFilterEnum;\n    [QueryFiltersKeysEnum.searchText]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdByShipperId]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdByShipperName]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.dictTrailerTypeId]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.pickupAddress]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.pickupDateFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.pickupDateTo]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.dropOffAddress]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.dropOffDateFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.dropOffDateTo]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdDateFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdDateTo]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdByUserId]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdByUserName]: QueryParam.StringT;\n}>;\n","import * as React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport { PapersMessagePlaceholder } from 'common/components/papers/message-placeholders/PapersMessagePlaceholder/PapersMessagePlaceholder';\n\ntype PropsT = {\n    className?: string;\n};\n\nconst PapersEmptyPlaceholder: React.FC<PropsT> = React.memo((props) => {\n    const { className } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <PapersMessagePlaceholder className={className}>{t('common:papers-card.no-photos')}</PapersMessagePlaceholder>\n    );\n});\n\nexport { PapersEmptyPlaceholder };\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    strokeColor: StyleGuideColorsEnum;\n    className?: string;\n};\n\nconst CopyIcon: React.FC<PropsT> = (props) => {\n    const { className, strokeColor } = props;\n\n    return (\n        <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" className={className}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path fill={strokeColor} d=\"M7 6.25h8.25v10.5H7z\" />\n                <path\n                    d=\"M13 1.75H4c-.825 0-1.5.675-1.5 1.5v10.5H4V3.25h9v-1.5zm2.25 3H7c-.825 0-1.5.675-1.5 1.5v10.5c0 .825.675 1.5 1.5 1.5h8.25c.825 0 1.5-.675 1.5-1.5V6.25c0-.825-.675-1.5-1.5-1.5zm0 12H7V6.25h8.25v10.5z\"\n                    fill=\"#6B6C6F\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nCopyIcon.displayName = 'CopyIcon';\n\nconst storyProps: PropsT = {\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default CopyIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"SideBarLayout__content___BJXyB\",\"content--without-scrollbar\":\"SideBarLayout__content--without-scrollbar___our60\",\"content--is-wide\":\"SideBarLayout__content--is-wide___OX8ho\",\"fadeIn\":\"SideBarLayout__fadeIn___mlAFo\",\"blinking\":\"SideBarLayout__blinking___JG30t\"};","import * as React from 'react';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { ApiShipperContractStatusT, ShipperContractStatusEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\nimport isNumber from 'lodash/isNumber';\n\ntype PropsT = {\n    ordersLeft: number | null | undefined;\n    maxNumberOfOrders: number | null | undefined;\n    status: ApiShipperContractStatusT | null | undefined;\n    isSymmetrical?: boolean;\n};\n\nconst THEME_BY_STATUS: Record<ApiShipperContractStatusT, PillLabelThemeEnum> = {\n    [ShipperContractStatusEnum.active]: PillLabelThemeEnum.charcoal,\n    [ShipperContractStatusEnum.expired]: PillLabelThemeEnum.grey,\n    [ShipperContractStatusEnum.revoked]: PillLabelThemeEnum.grey,\n};\n\nconst DEFAULT_THEME = PillLabelThemeEnum.grey;\n\nconst ShipperContractLaneOrderCounterPill: React.FC<PropsT> = React.memo((props) => {\n    const { ordersLeft, maxNumberOfOrders, status, isSymmetrical } = props;\n\n    const { t } = useTranslation();\n\n    const isShowNoLanesLabel = ordersLeft === null && status === ShipperContractStatusEnum.active;\n    if (isShowNoLanesLabel) {\n        return (\n            <PillLabel isSymmetrical={isSymmetrical} theme={PillLabelThemeEnum.grey}>\n                {t('common:shipper-contracts.table.no-lanes')}\n            </PillLabel>\n        );\n    }\n\n    const theme = status ? THEME_BY_STATUS[status] : DEFAULT_THEME;\n\n    if (isNumber(ordersLeft) && isNumber(maxNumberOfOrders)) {\n        return (\n            <PillLabel isSymmetrical={isSymmetrical} theme={theme}>{`${ordersLeft}/${maxNumberOfOrders}`}</PillLabel>\n        );\n    }\n\n    return null;\n});\n\nexport default ShipperContractLaneOrderCounterPill;\n","import * as emailValidator from 'email-validator';\nimport { isEmpty, isLessMinLength, isMoreMaxLength, isZeroNumber } from './validators';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport isNumber from 'lodash/isNumber';\nimport moment from 'moment';\nimport { checkIsEmptyPhoneNumber, checkIsPossiblePhoneNumber } from 'common/utils/phone-number';\n\ntype FormErrorsT<KeyT extends string> = Partial<Record<KeyT, string>>;\n\nexport const checkNotZero = <KeyT extends string>(\n    fields: readonly KeyT[],\n    values: Partial<Record<KeyT, string | null | undefined>>,\n    getErrorLabel: () => string,\n): FormErrorsT<KeyT> => {\n    const errors: FormErrorsT<KeyT> = {};\n\n    fields.forEach((field) => {\n        const value = values[field];\n\n        if (isZeroNumber(value)) {\n            errors[field] = getErrorLabel();\n        }\n    });\n\n    return errors;\n};\n\nexport const checkNotEmpty = <KeyT extends string>(\n    fields: readonly KeyT[],\n    values: Partial<Record<KeyT, object | number | string | null | undefined>>,\n    getErrorLabel: () => string,\n): FormErrorsT<KeyT> => {\n    const errors: FormErrorsT<KeyT> = {};\n\n    fields.forEach((field) => {\n        const value = values[field];\n\n        if (isEmpty(value)) {\n            errors[field] = getErrorLabel();\n        }\n    });\n\n    return errors;\n};\n\nexport const checkFullRange = <KeyT extends string>(\n    fields: readonly KeyT[],\n    values: Partial<Record<KeyT, DateRangeT | null | undefined>>,\n    getErrorLabel: () => string,\n): FormErrorsT<KeyT> => {\n    const errors: FormErrorsT<KeyT> = {};\n\n    fields.forEach((field) => {\n        const value = values[field];\n\n        if (value && (!value?.from || !value?.to)) {\n            errors[field] = getErrorLabel();\n        }\n    });\n\n    return errors;\n};\n\nexport const checkDateIsAfterDay = <KeyT extends string>(\n    fields: readonly KeyT[],\n    values: Partial<Record<KeyT, Date | null | undefined>>,\n    limit: string | number | Date | null | undefined,\n    getErrorLabel: () => string,\n): FormErrorsT<KeyT> => {\n    const errors: FormErrorsT<KeyT> = {};\n\n    if (!limit) {\n        return errors;\n    }\n\n    fields.forEach((field) => {\n        const value = values[field];\n        if (!value) {\n            return;\n        }\n\n        const valueDate = moment(value);\n        if (valueDate.isValid() && !valueDate.isSameOrAfter(limit, 'day')) {\n            errors[field] = getErrorLabel();\n        }\n    });\n\n    return errors;\n};\n\nexport const checkDateIsBeforeDay = <KeyT extends string>(\n    fields: readonly KeyT[],\n    values: Partial<Record<KeyT, Date | null | undefined>>,\n    limit: string | number | Date | null | undefined,\n    getErrorLabel: () => string,\n): FormErrorsT<KeyT> => {\n    const errors: FormErrorsT<KeyT> = {};\n\n    if (!limit) {\n        return errors;\n    }\n\n    fields.forEach((field) => {\n        const value = values[field];\n        if (!value) {\n            return;\n        }\n\n        const valueDate = moment(value);\n        if (valueDate.isValid() && !valueDate.isSameOrBefore(limit, 'day')) {\n            errors[field] = getErrorLabel();\n        }\n    });\n\n    return errors;\n};\n\nexport const checkRangeNotIncludeDisabledDates = <KeyT extends string>(\n    fields: readonly KeyT[],\n    values: Partial<Record<KeyT, DateRangeT | null | undefined>>,\n    disabledDates: string[],\n    getErrorLabel: () => string,\n): FormErrorsT<KeyT> => {\n    const errors: FormErrorsT<KeyT> = {};\n\n    fields.forEach((field) => {\n        const value = values[field];\n\n        const isDisableValue =\n            value?.from &&\n            value?.to &&\n            disabledDates.some((disabledDate) => {\n                return moment(disabledDate).isBetween(value.from, value.to);\n            });\n\n        if (value && isDisableValue) {\n            errors[field] = getErrorLabel();\n        }\n    });\n\n    return errors;\n};\n\nexport const checkNotEmptyString = <KeyT extends string>(\n    fields: readonly KeyT[],\n    values: Partial<Record<KeyT, string | null | undefined>>,\n    getErrorLabel: () => string,\n): FormErrorsT<KeyT> => {\n    const errors: FormErrorsT<KeyT> = {};\n\n    fields.forEach((field) => {\n        const value = values[field];\n\n        if (typeof value === 'string' && !value) {\n            errors[field] = getErrorLabel();\n        }\n    });\n\n    return errors;\n};\n\nexport const checkMinLength = <KeyT extends string>(\n    fields: readonly KeyT[],\n    values: Record<KeyT, string | null | undefined>,\n    minLength: number,\n    getErrorLabel: () => string,\n): FormErrorsT<KeyT> => {\n    const errors: FormErrorsT<KeyT> = {};\n\n    fields.forEach((field) => {\n        const value = values[field];\n        if (isLessMinLength(value, minLength)) {\n            errors[field] = getErrorLabel();\n        }\n    });\n\n    return errors;\n};\n\nexport const checkMaxLength = <KeyT extends string>(\n    fields: readonly KeyT[],\n    values: Record<KeyT, string | null | undefined>,\n    maxLength: number,\n    getErrorLabel: () => string,\n): FormErrorsT<KeyT> => {\n    const errors: FormErrorsT<KeyT> = {};\n\n    fields.forEach((field) => {\n        const value = values[field];\n        if (isMoreMaxLength(value, maxLength)) {\n            errors[field] = getErrorLabel();\n        }\n    });\n\n    return errors;\n};\n\nexport const checkMinValue = <KeyT extends string>(\n    fields: readonly KeyT[],\n    values: Record<KeyT, string | null | undefined>,\n    minValue: number,\n    getErrorLabel: (params: { value: number }) => string,\n): FormErrorsT<KeyT> => {\n    const errors: FormErrorsT<KeyT> = {};\n\n    fields.forEach((field) => {\n        const parsedValue = parseSimpleNumber(values[field]);\n\n        if (isNumber(parsedValue) && parsedValue < minValue) {\n            errors[field] = getErrorLabel({\n                value: minValue,\n            });\n        }\n    });\n\n    return errors;\n};\n\nexport const checkStrictMinValue = <KeyT extends string>(\n    fields: readonly KeyT[],\n    values: Record<KeyT, string | null | undefined>,\n    minValue: number,\n    getErrorLabel: (params: { value: number }) => string,\n): FormErrorsT<KeyT> => {\n    const errors: FormErrorsT<KeyT> = {};\n\n    fields.forEach((field) => {\n        const parsedValue = parseSimpleNumber(values[field]);\n\n        if (isNumber(parsedValue) && parsedValue <= minValue) {\n            errors[field] = getErrorLabel({\n                value: minValue,\n            });\n        }\n    });\n\n    return errors;\n};\n\nexport const checkMaxValue = <KeyT extends string>(\n    fields: readonly KeyT[],\n    values: Record<KeyT, string | null | undefined>,\n    maxValue: number,\n    getErrorLabel: (params: { value: number }) => string,\n): FormErrorsT<KeyT> => {\n    const errors: FormErrorsT<KeyT> = {};\n\n    fields.forEach((field) => {\n        const parsedValue = parseSimpleNumber(values[field]);\n\n        if (isNumber(parsedValue) && parsedValue > maxValue) {\n            errors[field] = getErrorLabel({\n                value: maxValue,\n            });\n        }\n    });\n\n    return errors;\n};\n\nexport const checkStrictMaxValue = <KeyT extends string>(\n    fields: readonly KeyT[],\n    values: Record<KeyT, string | null | undefined>,\n    maxValue: number,\n    getErrorLabel: (params: { value: number }) => string,\n): FormErrorsT<KeyT> => {\n    const errors: FormErrorsT<KeyT> = {};\n\n    fields.forEach((field) => {\n        const parsedValue = parseSimpleNumber(values[field]);\n\n        if (isNumber(parsedValue) && parsedValue >= maxValue) {\n            errors[field] = getErrorLabel({\n                value: maxValue,\n            });\n        }\n    });\n\n    return errors;\n};\n\nexport const checkEmail = <KeyT extends string>(\n    fields: readonly KeyT[],\n    values: Partial<Record<KeyT, object | number | string | null | undefined>>,\n    getErrorLabel: () => string,\n): FormErrorsT<KeyT> => {\n    const errors: FormErrorsT<KeyT> = {};\n\n    fields.forEach((field) => {\n        const value = values[field];\n\n        if (value && typeof value === 'string' && !emailValidator.validate(value)) {\n            errors[field] = getErrorLabel();\n        }\n    });\n\n    return errors;\n};\n\nexport const checkDate = <KeyT extends string>(\n    fields: readonly KeyT[],\n    values: Record<KeyT, Date | null | undefined>,\n    getErrorLabel: () => string,\n): FormErrorsT<KeyT> => {\n    const errors: FormErrorsT<KeyT> = {};\n\n    fields.forEach((field) => {\n        const value = values[field];\n\n        const isValidDate = moment(value).isValid();\n        if (value && !isValidDate) {\n            errors[field] = getErrorLabel();\n        }\n    });\n\n    return errors;\n};\n\nexport const checkBirthday = <KeyT extends string>(\n    fields: readonly KeyT[],\n    values: Record<KeyT, Date | null | undefined>,\n    getErrorLabel: () => string,\n): FormErrorsT<KeyT> => {\n    const errors: FormErrorsT<KeyT> = {};\n\n    fields.forEach((field) => {\n        const value = values[field];\n\n        const isValidBirthday = !!value && moment(value).valueOf() < Date.now();\n        if (!isValidBirthday) {\n            errors[field] = getErrorLabel();\n        }\n    });\n\n    return errors;\n};\n\nexport const checkPhoneNumber = <KeyT extends string>(\n    fields: readonly KeyT[],\n    values: Record<KeyT, string | null | undefined>,\n    getErrorLabel: () => string,\n): FormErrorsT<KeyT> => {\n    const errors: FormErrorsT<KeyT> = {};\n\n    fields.forEach((field) => {\n        const value = values[field];\n        const parsedValue = typeof value === 'string' ? value.trim() : '';\n\n        if (checkIsEmptyPhoneNumber(parsedValue)) {\n            return;\n        }\n\n        if (!checkIsPossiblePhoneNumber(parsedValue)) {\n            errors[field] = getErrorLabel();\n        }\n    });\n\n    return errors;\n};\n\nexport const checkRoundValue = <KeyT extends string>(\n    fields: readonly KeyT[],\n    values: Record<KeyT, string | null | undefined>,\n    getErrorLabel: () => string,\n): FormErrorsT<KeyT> => {\n    const errors: FormErrorsT<KeyT> = {};\n\n    fields.forEach((field) => {\n        const parsedValue = parseSimpleNumber(values[field]);\n\n        if (isNumber(parsedValue) && parsedValue % 1 !== 0) {\n            errors[field] = getErrorLabel();\n        }\n    });\n\n    return errors;\n};\n","import React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './NavigationTabs.scss';\nimport { LinkProps, matchPath, useLocation } from 'react-router-dom';\nimport TabLabel from 'common/components/tabs/TabLabel/TabLabel';\nimport { TabsThemesEnum, TabLabelSizeEnum } from 'common/components/tabs/TabLabel/constants';\n\nconst cx = classNames.bind(styles);\n\ntype LinkToObjT = LinkProps<HistoryStateT>['to'];\ntype PathT = string;\n\nexport type NavigationTabConfigT = {\n    to: PathT | LinkToObjT;\n    pathname: PathT;\n    render: () => React.ReactElement;\n    testSelector: string;\n    badge?: React.ReactNode;\n};\n\nexport type NavigationTabsPropsT = {\n    onSelectTab: (to: PathT | LinkToObjT) => void;\n    tabsConfig: Array<NavigationTabConfigT | null>;\n    className?: string;\n};\n\nconst NavigationTabs: React.FC<NavigationTabsPropsT> = (props) => {\n    const { tabsConfig, className, onSelectTab } = props;\n\n    const { pathname } = useLocation();\n\n    return (\n        <div className={cs(cx('tabs'), className)}>\n            {tabsConfig.map((tabConfig, tabIndex) => {\n                if (!tabConfig) {\n                    return null;\n                }\n\n                const isActive = !!matchPath(pathname, { path: tabConfig.pathname, strict: false });\n\n                return (\n                    <TabLabel\n                        key={tabIndex}\n                        isActive={isActive}\n                        isCompact\n                        size={TabLabelSizeEnum.small}\n                        theme={TabsThemesEnum.light}\n                        testSelector={tabConfig.testSelector}\n                        badge={tabConfig.badge}\n                        onClick={() => {\n                            if (isActive) {\n                                return;\n                            }\n\n                            onSelectTab(tabConfig.to);\n                        }}\n                    >\n                        {tabConfig.render()}\n                    </TabLabel>\n                );\n            })}\n        </div>\n    );\n};\n\nexport default NavigationTabs;\n","// extracted by mini-css-extract-plugin\nexport default {\"text\":\"FieldLabel__text___jDXUA\",\"tooltip\":\"FieldLabel__tooltip___A2mvm\",\"tooltip__icon\":\"FieldLabel__tooltip__icon___ipVMI\",\"label\":\"FieldLabel__label___FC9rV\",\"left-node\":\"FieldLabel__left-node___Pwjj7\",\"fadeIn\":\"FieldLabel__fadeIn___bCi6U\",\"blinking\":\"FieldLabel__blinking___HwlxR\"};","import {\n    FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST,\n    FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_BEGIN,\n    FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_ERROR,\n    FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_SUCCESS,\n    FetchGroupedNotificationCountsActionT,\n    FetchGroupedNotificationCountsBeginActionT,\n    FetchGroupedNotificationCountsErrorActionT,\n    FetchGroupedNotificationCountsSuccessActionT,\n} from './types';\nimport { ApiGroupedNotificationCountsT } from 'common/utils/api/models';\n\nexport const fetchGroupedNotificationCounts = (options?: FetchOptionsT): FetchGroupedNotificationCountsActionT => ({\n    type: FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST,\n    options,\n});\n\nexport const fetchGroupedNotificationCountsBegin = (): FetchGroupedNotificationCountsBeginActionT => ({\n    type: FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_BEGIN,\n});\n\nexport const fetchGroupedNotificationCountsSuccess = (\n    counts: ApiGroupedNotificationCountsT | null,\n): FetchGroupedNotificationCountsSuccessActionT => ({\n    type: FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_SUCCESS,\n    counts,\n});\n\nexport const fetchGroupedNotificationCountsError = (error: Error): FetchGroupedNotificationCountsErrorActionT => ({\n    type: FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_ERROR,\n    error,\n});\n","const getAssignmentIconPreset = ({ isSelected, canInTime }: { isSelected: boolean; canInTime: boolean }) => {\n    if (!canInTime) {\n        if (isSelected) {\n            return 'assignment-not-in-time-selected';\n        }\n\n        return 'assignment-not-in-time-normal';\n    }\n\n    if (isSelected) {\n        return 'assignment-selected';\n    }\n\n    return 'assignment-normal';\n};\n\nexport { getAssignmentIconPreset };\n","// extracted by mini-css-extract-plugin\nexport default {\"time-interval\":\"FerryDisembarkPointPicker__time-interval___NXscj\",\"fadeIn\":\"FerryDisembarkPointPicker__fadeIn___cgYOY\",\"blinking\":\"FerryDisembarkPointPicker__blinking___pMLeS\"};","import { PriceOfferT } from 'common/store/order-creation/models';\nimport { moneyOperations } from 'common/utils/money';\nimport { CurrencyEnum } from 'common/constants';\nimport isNumber from 'lodash/isNumber';\n\nexport const getOfferTotalPrice = (offer: PriceOfferT | undefined) => {\n    return offer?.price || 0;\n};\n\nexport const safetyModifyOfferTotalPrice = (\n    totalOfferPrice: number | null | undefined,\n    summaryAdditionalServicesPrice: number | null | undefined,\n    lineHaulDiff: number | null | undefined,\n): number => {\n    if (!totalOfferPrice) {\n        return 0;\n    }\n\n    let totalAmount = totalOfferPrice;\n\n    if (isNumber(summaryAdditionalServicesPrice) && !Number.isNaN(summaryAdditionalServicesPrice)) {\n        totalAmount = moneyOperations.plusWithFormat(totalAmount, summaryAdditionalServicesPrice, CurrencyEnum.EUR);\n    }\n\n    if (isNumber(lineHaulDiff) && !Number.isNaN(lineHaulDiff)) {\n        totalAmount = moneyOperations.plusWithFormat(totalAmount, lineHaulDiff, CurrencyEnum.EUR);\n    }\n\n    return totalAmount;\n};\n","import { call, put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    ACTIVATION_TRAILERS_REQUEST,\n    ActivationTrailersRequestActionT,\n    ADD_TRAILER_REQUEST,\n    AddTrailerRequestActionT,\n    ARCHIVE_TRAILERS_REQUEST,\n    ArchiveTrailersRequestActionT,\n    ASSIGN_TO_CONTRACT_TRAILERS_REQUEST,\n    AssignToContractRequestActionT,\n    DELETE_TRAILERS_REQUEST,\n    DeleteTrailersRequestActionT,\n    EXPORT_XLS_TRAILERS_REQUEST,\n    ExportXLSTrailersActionT,\n    FETCH_TRAILER_DETAILS_REQUEST,\n    FETCH_TRAILERS_PAGE_REQUEST,\n    FETCH_TRAILERS_STATS_REQUEST,\n    FetchTrailerDetailsActionT,\n    FetchTrailersPageActionT,\n    FetchTrailersStatsActionT,\n    IMPORT_XLS_TRAILERS_REQUEST,\n    ImportXLSTrailersActionT,\n    UPDATE_TRAILERS_REQUEST,\n    UpdateTrailerActionT,\n    CHANGE_RATE_TRAILERS_REQUEST,\n    ChangeRateTrailersRequestActionT,\n} from './types';\nimport {\n    addTrailerRequestBegin,\n    addTrailerRequestError,\n    addTrailerRequestSuccess,\n    deleteTrailersRequestBegin,\n    deleteTrailersRequestError,\n    deleteTrailersRequestSuccess,\n    exportXLSTrailersRequestBegin,\n    exportXLSTrailersRequestError,\n    exportXLSTrailersRequestSuccess,\n    fetchTrailerDetails,\n    fetchTrailerDetailsRequestBegin,\n    fetchTrailerDetailsRequestError,\n    fetchTrailerDetailsRequestSuccess,\n    fetchTrailersPageBegin,\n    fetchTrailersPageError,\n    fetchTrailersPageSuccess,\n    fetchTrailersStatsRequestBegin,\n    fetchTrailersStatsRequestError,\n    fetchTrailersStatsRequestSuccess,\n    importXLSTrailersRequestBegin,\n    importXLSTrailersRequestError,\n    importXLSTrailersRequestSuccess,\n    resetTrailers,\n    updateTrailersRequestBegin,\n    updateTrailersRequestError,\n    updateTrailersRequestSuccess,\n} from './actions';\nimport {\n    selectFetchTrailersStatsRequestStatus,\n    selectTrailersByIds,\n    selectTrailersDetailsByIds,\n    selectTrailersPages,\n    selectTrailersQuery,\n} from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { checkIsDefaultCompanyId } from 'common/utils';\nimport carrierTranziitApi from 'carrier/utils/api/carrier-tranziit/api';\nimport { checkIsSameQuery, checkShouldEmitChangePage } from 'common/utils/pagination/utils';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAlertTypeEnum, CommonAnyAlert } from 'common/components/toasts/AlertToastsManager/models';\nimport {\n    trailerDetailsRefreshChannel,\n    trailersPaginationChannel,\n    trailersRefreshChannel,\n} from 'common/store/trailers/channels';\nimport { CompanyTrailersStatsT } from 'common/store/trailers/models';\nimport downloadFile from 'common/utils/download-file';\nimport moment from 'moment';\nimport { ApiArchiveVehiclesRequestT } from 'common/utils/api/models';\nimport keys from 'lodash/keys';\n\nfunction* fetchTrailersSaga(action: FetchTrailersPageActionT): WrapGeneratorT<void> {\n    const { pageNumber, query, options, companyId } = action;\n\n    const prevQuery: ReReturnT<typeof selectTrailersQuery> = yield select(selectTrailersQuery(companyId));\n    const pages: ReReturnT<typeof selectTrailersPages> = yield select(selectTrailersPages(companyId));\n    const isSameQuery = checkIsSameQuery(query, prevQuery);\n    const isNeedRequest = checkNeedRequest(pages[pageNumber]?.requestStatus, options);\n\n    if (isSameQuery && !isNeedRequest) {\n        return;\n    }\n    if (!isSameQuery) {\n        yield put(resetTrailers(companyId, { savingPageNumber: pageNumber }));\n    }\n\n    yield put(fetchTrailersPageBegin(query, pageNumber, companyId));\n\n    let result: ReturnApiT<\n        typeof brokerTranziitApi.fetchTrailersPage | typeof carrierTranziitApi.fetchTrailersPage\n    > | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        result = yield carrierTranziitApi.fetchTrailersPage({\n            ...query,\n            page: pageNumber,\n        });\n    } else {\n        result = yield brokerTranziitApi.fetchTrailersPage(\n            {\n                ...query,\n                page: pageNumber,\n            },\n            companyId,\n        );\n    }\n\n    if (!result) {\n        return;\n    }\n\n    const [error, response] = result;\n    if (error) {\n        yield put(fetchTrailersPageError(query, pageNumber, error, companyId));\n        return;\n    }\n\n    if (!response) {\n        return;\n    }\n\n    yield put(fetchTrailersPageSuccess(query, pageNumber, companyId, response));\n\n    checkShouldEmitChangePage(pageNumber, response, trailersPaginationChannel);\n}\n\nfunction* refreshTrailerDetailsIfNeedSaga(companyId: CompanyIdT, trailerId: TrailerIdT): WrapGeneratorT<void> {\n    const detailsByIds: ReReturnT<typeof selectTrailersDetailsByIds> = yield select(\n        selectTrailersDetailsByIds(companyId),\n    );\n\n    if (detailsByIds[trailerId]) {\n        yield put(fetchTrailerDetails(trailerId, companyId, { isForceUpdate: true }));\n    }\n}\n\nfunction* addTrailerSaga(action: AddTrailerRequestActionT): WrapGeneratorT<void> {\n    const { data, companyId } = action;\n\n    yield put(addTrailerRequestBegin(companyId));\n\n    let result: ReturnApiT<\n        typeof brokerTranziitApi.fetchTrailersPage | typeof carrierTranziitApi.fetchTrailersPage\n    > | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        result = yield carrierTranziitApi.addTrailer(data);\n    } else {\n        result = yield brokerTranziitApi.addPartnerTrailer(data, companyId);\n    }\n\n    if (!result) {\n        return;\n    }\n    const [error] = result;\n    if (error) {\n        yield put(addTrailerRequestError(error, companyId));\n    } else {\n        yield put(addTrailerRequestSuccess(companyId));\n    }\n\n    if (!error) {\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trailerAdded,\n                    data: {\n                        plateNumber: data.plateNumber || '',\n                    },\n                }),\n            ),\n        );\n    }\n\n    trailersRefreshChannel.emit({});\n}\n\nfunction* deleteTrailersSaga(action: DeleteTrailersRequestActionT): WrapGeneratorT<void> {\n    const { trailerIds, companyId } = action;\n\n    yield put(deleteTrailersRequestBegin(companyId));\n\n    let error: ReturnApiT<typeof brokerTranziitApi.deleteTrailer | typeof carrierTranziitApi.deleteTrailer>[0] | null =\n        null;\n\n    for (const trailerId of trailerIds) {\n        let result: ReturnApiT<\n            typeof brokerTranziitApi.deleteTrailer | typeof carrierTranziitApi.deleteTrailer\n        > | null = null;\n        if (checkIsDefaultCompanyId(companyId)) {\n            result = yield carrierTranziitApi.deleteTrailer(trailerId);\n        } else {\n            result = yield brokerTranziitApi.deleteTrailer(companyId, trailerId);\n        }\n\n        error = error || result?.[0] || null;\n    }\n\n    if (error) {\n        yield put(deleteTrailersRequestError(error, companyId));\n    } else {\n        yield put(deleteTrailersRequestSuccess(companyId));\n    }\n\n    trailersRefreshChannel.emit({});\n}\n\nfunction* activateTrailersSaga(action: ActivationTrailersRequestActionT): WrapGeneratorT<void> {\n    const { activateTrailersRequest, companyId } = action;\n\n    yield put(updateTrailersRequestBegin(companyId));\n\n    let response: ReturnApiT<\n        typeof brokerTranziitApi.activateTrailers | typeof carrierTranziitApi.activateTrailers\n    > | null = null;\n\n    if (checkIsDefaultCompanyId(companyId)) {\n        response = yield carrierTranziitApi.activateTrailers(activateTrailersRequest);\n    } else {\n        response = yield brokerTranziitApi.activateTrailers(companyId, activateTrailersRequest);\n    }\n\n    const error = response?.[0];\n    const result = response?.[1];\n\n    if (error) {\n        yield put(updateTrailersRequestError(error, companyId));\n    } else {\n        yield put(updateTrailersRequestSuccess(companyId));\n    }\n\n    const trailerIds = activateTrailersRequest?.ids || [];\n    const allCount = trailerIds.length;\n    const invalidAssetsMap = result?.invalidAssets || {};\n    const failedTrailerIds = keys(invalidAssetsMap);\n    const failedCount = failedTrailerIds.length;\n    const successfulCount = allCount - failedCount;\n\n    const byId: ReReturnT<typeof selectTrailersByIds> = yield select(selectTrailersByIds(companyId));\n\n    if (failedCount > 0 && allCount === 1) {\n        const trailer = byId[failedTrailerIds[0]] || null;\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trailerFailedActivate,\n                    data: {\n                        plateNumber: trailer?.plateNumber || '',\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount > 0 && allCount > 1) {\n        const invalidAssetsPlateNumbers = failedTrailerIds.map((trailerId) => {\n            return byId[trailerId]?.plateNumber || '';\n        });\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trailersFailedActivate,\n                    data: {\n                        successfulCount,\n                        allCount,\n                        plateNumbers: invalidAssetsPlateNumbers,\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount === 0 && successfulCount === 1) {\n        const trailer = byId[trailerIds[0]] || null;\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trailerSuccessfullyActivated,\n                    data: {\n                        plateNumber: trailer?.plateNumber || '',\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount === 0 && successfulCount > 1) {\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trailersSuccessfullyActivated,\n                    data: {\n                        count: successfulCount,\n                    },\n                }),\n            ),\n        );\n    }\n\n    trailersRefreshChannel.emit({});\n\n    for (const trailerId of trailerIds) {\n        yield call(refreshTrailerDetailsIfNeedSaga, companyId, trailerId);\n    }\n\n    trailerDetailsRefreshChannel.emit({});\n}\n\nfunction* assignToContractSaga(action: AssignToContractRequestActionT): WrapGeneratorT<void> {\n    const { contractName, changeContractRequest, companyId } = action;\n\n    yield put(updateTrailersRequestBegin(companyId));\n\n    let response: ReturnApiT<\n        typeof brokerTranziitApi.assignTrailersToContract | typeof carrierTranziitApi.assignTrailersToContract\n    > | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        response = yield carrierTranziitApi.assignTrailersToContract(changeContractRequest);\n    } else {\n        response = yield brokerTranziitApi.assignTrailersToContract(companyId, changeContractRequest);\n    }\n\n    const error = response?.[0];\n    const result = response?.[1];\n\n    if (error) {\n        yield put(updateTrailersRequestError(error, companyId));\n    } else {\n        yield put(updateTrailersRequestSuccess(companyId));\n    }\n\n    const trailerIds = changeContractRequest?.ids || [];\n    const allCount = trailerIds.length;\n    const invalidAssetsMap = result?.invalidAssets || {};\n    const failedTrailerIds = keys(invalidAssetsMap);\n    const failedCount = failedTrailerIds.length;\n    const successfulCount = allCount - failedCount;\n\n    const byId: ReReturnT<typeof selectTrailersByIds> = yield select(selectTrailersByIds(companyId));\n\n    if (failedCount > 0 && allCount === 1) {\n        const trailer = byId[failedTrailerIds[0]] || null;\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trailerFailedUpdateContract,\n                    data: {\n                        plateNumber: trailer?.plateNumber || '',\n                        contractName,\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount > 0 && allCount > 1) {\n        const invalidAssetsPlateNumbers = failedTrailerIds.map((trailerId) => {\n            return byId[trailerId]?.plateNumber || '';\n        });\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trailersFailedUpdateContract,\n                    data: {\n                        allCount,\n                        successfulCount,\n                        plateNumbers: invalidAssetsPlateNumbers,\n                        contractName,\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount === 0 && successfulCount === 1) {\n        const trailer = byId[trailerIds[0]] || null;\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trailerSuccessfullyUpdatedContract,\n                    data: {\n                        plateNumber: trailer?.plateNumber || '',\n                        contractName,\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount === 0 && successfulCount > 1) {\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trailersSuccessfullyUpdatedContract,\n                    data: {\n                        count: successfulCount,\n                        contractName,\n                    },\n                }),\n            ),\n        );\n    }\n\n    trailersRefreshChannel.emit({});\n\n    for (const trailerId of trailerIds) {\n        yield call(refreshTrailerDetailsIfNeedSaga, companyId, trailerId);\n    }\n\n    trailerDetailsRefreshChannel.emit({});\n}\n\nfunction* changeRateTrailersSaga(action: ChangeRateTrailersRequestActionT): WrapGeneratorT<void> {\n    const { changeRateVehiclesRequest, companyId } = action;\n\n    yield put(updateTrailersRequestBegin(companyId));\n\n    let response: ReturnApiT<\n        typeof brokerTranziitApi.changeRateTrailers | typeof carrierTranziitApi.changeRateTrailers\n    > | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        response = yield carrierTranziitApi.changeRateTrailers(changeRateVehiclesRequest);\n    } else {\n        response = yield brokerTranziitApi.changeRateTrailers(companyId, changeRateVehiclesRequest);\n    }\n\n    const error = response?.[0];\n    const result = response?.[1];\n\n    if (error) {\n        yield put(updateTrailersRequestError(error, companyId));\n    } else {\n        yield put(updateTrailersRequestSuccess(companyId));\n    }\n\n    const trailerIds = changeRateVehiclesRequest.ids || [];\n    const allCount = trailerIds.length;\n    const invalidAssetsMap = result?.invalidAssets || {};\n    const failedTrailerIds = keys(invalidAssetsMap);\n    const failedCount = failedTrailerIds.length;\n    const successfulCount = allCount - failedCount;\n\n    const byId: ReReturnT<typeof selectTrailersByIds> = yield select(selectTrailersByIds(companyId));\n\n    if (failedCount > 0 && allCount === 1) {\n        const trailer = byId[failedTrailerIds[0]] || null;\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trailerFailedUpdateRate,\n                    data: {\n                        plateNumber: trailer?.plateNumber || '',\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount > 0 && allCount > 1) {\n        const invalidAssetsPlateNumbers = failedTrailerIds.map((trailerId) => {\n            return byId[trailerId]?.plateNumber || '';\n        });\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trailersFailedUpdateRate,\n                    data: {\n                        allCount,\n                        successfulCount,\n                        plateNumbers: invalidAssetsPlateNumbers,\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount === 0 && successfulCount === 1) {\n        const trailer = byId[trailerIds[0]] || null;\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trailerSuccessfullyUpdatedRate,\n                    data: {\n                        plateNumber: trailer?.plateNumber || '',\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount === 0 && successfulCount > 1) {\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trailersSuccessfullyUpdatedRate,\n                    data: {\n                        count: successfulCount,\n                    },\n                }),\n            ),\n        );\n    }\n\n    trailersRefreshChannel.emit({});\n\n    for (const trailerId of trailerIds) {\n        yield call(refreshTrailerDetailsIfNeedSaga, companyId, trailerId);\n    }\n\n    trailerDetailsRefreshChannel.emit({});\n}\n\nfunction* archiveTrailersSaga(action: ArchiveTrailersRequestActionT): WrapGeneratorT<void> {\n    const { trailerIds, companyId, reason } = action;\n\n    yield put(updateTrailersRequestBegin(companyId));\n\n    const data: ApiArchiveVehiclesRequestT = { ids: trailerIds, comment: reason };\n\n    let response: ReturnApiT<\n        typeof brokerTranziitApi.archiveTrailers | typeof carrierTranziitApi.archiveTrailers\n    > | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        response = yield carrierTranziitApi.archiveTrailers(data);\n    } else {\n        response = yield brokerTranziitApi.archiveTrailers(companyId, data);\n    }\n\n    const error = response?.[0];\n    if (error) {\n        yield put(updateTrailersRequestError(error, companyId));\n    } else {\n        yield put(updateTrailersRequestSuccess(companyId));\n    }\n\n    const result = response?.[1];\n\n    const allCount = trailerIds.length;\n    const invalidAssetsMap = result?.invalidAssets || {};\n    const failedTrailerIds = keys(invalidAssetsMap);\n    const failedCount = failedTrailerIds.length;\n    const successfulCount = allCount - failedCount;\n\n    const byId: ReReturnT<typeof selectTrailersByIds> = yield select(selectTrailersByIds(companyId));\n\n    if (failedCount > 0 && allCount === 1) {\n        const failedTrailerId = failedTrailerIds[0];\n        if (invalidAssetsMap[failedTrailerId] === 'HAS_ASSIGNMENTS') {\n            yield put(\n                addAlert(\n                    new CommonAnyAlert({\n                        type: CommonAlertTypeEnum.trailerFailedArchivedHasFutureAssignment,\n                        data: {},\n                    }),\n                ),\n            );\n        } else {\n            const trailer = byId[failedTrailerId];\n\n            yield put(\n                addAlert(\n                    new CommonAnyAlert({\n                        type: CommonAlertTypeEnum.trailerFailedArchived,\n                        data: {\n                            plateNumber: trailer?.plateNumber || '',\n                        },\n                    }),\n                ),\n            );\n        }\n    } else if (failedCount > 0 && allCount > 1) {\n        const invalidAssetsPlateNumbers = failedTrailerIds.map((trailerId) => {\n            return byId[trailerId]?.plateNumber || '';\n        });\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trailersFailedArchived,\n                    data: {\n                        allCount,\n                        successfulCount,\n                        plateNumbers: invalidAssetsPlateNumbers,\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount === 0 && successfulCount === 1) {\n        const trailer = byId[trailerIds[0]];\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trailerSuccessfullyArchived,\n                    data: {\n                        plateNumber: trailer?.plateNumber || '',\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount === 0 && successfulCount > 1) {\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trailersSuccessfullyArchived,\n                    data: {\n                        count: successfulCount,\n                    },\n                }),\n            ),\n        );\n    }\n\n    trailersRefreshChannel.emit({});\n\n    for (const trailerId of trailerIds) {\n        yield call(refreshTrailerDetailsIfNeedSaga, companyId, trailerId);\n    }\n\n    trailerDetailsRefreshChannel.emit({});\n}\n\nfunction* fetchTrailersStatsSaga(action: FetchTrailersStatsActionT): WrapGeneratorT<void> {\n    const { companyId, options } = action;\n\n    const fetchStatsRequestStatus: ReReturnT<typeof selectFetchTrailersStatsRequestStatus> = yield select(\n        selectFetchTrailersStatsRequestStatus(companyId),\n    );\n\n    const isNeedRequest = checkNeedRequest(fetchStatsRequestStatus, options);\n    if (!isNeedRequest) {\n        return;\n    }\n\n    yield put(fetchTrailersStatsRequestBegin(companyId));\n\n    let error: Error | null = null;\n    let stats: CompanyTrailersStatsT | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        const result: ReturnApiT<typeof carrierTranziitApi.fetchTrailersActiveFleetCount> =\n            yield carrierTranziitApi.fetchTrailersActiveFleetCount();\n        const [resultError, data] = result;\n        if (resultError) {\n            error = resultError;\n        }\n        if (data) {\n            stats = {\n                actualTotalCount: data,\n            };\n        }\n    } else {\n        const result: ReturnApiT<typeof brokerTranziitApi.fetchTrailersActiveFleetCount> =\n            yield brokerTranziitApi.fetchTrailersActiveFleetCount(companyId);\n        const [resultError, data] = result;\n        if (resultError) {\n            error = resultError;\n        }\n        if (data) {\n            stats = {\n                actualTotalCount: data,\n            };\n        }\n    }\n\n    if (error) {\n        yield put(fetchTrailersStatsRequestError(error, companyId));\n        return;\n    }\n\n    yield put(fetchTrailersStatsRequestSuccess(stats, companyId));\n}\n\nfunction* fetchTrailerDetailsSaga(action: FetchTrailerDetailsActionT): WrapGeneratorT<void> {\n    const { trailerId, companyId, options } = action;\n\n    const detailsById: ReReturnT<typeof selectTrailersDetailsByIds> = yield select(\n        selectTrailersDetailsByIds(companyId),\n    );\n    if (detailsById[trailerId] && !options?.isForceUpdate) {\n        return;\n    }\n\n    yield put(fetchTrailerDetailsRequestBegin(companyId));\n\n    let result: ReturnApiT<\n        typeof brokerTranziitApi.fetchTrailerDetails | typeof carrierTranziitApi.fetchTrailerDetails\n    > | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        result = yield carrierTranziitApi.fetchTrailerDetails(trailerId);\n    } else {\n        result = yield brokerTranziitApi.fetchTrailerDetails(companyId, trailerId);\n    }\n    if (!result) {\n        return;\n    }\n\n    const [error, details] = result;\n    if (error) {\n        yield put(fetchTrailerDetailsRequestError(error, companyId));\n        return;\n    }\n\n    yield put(fetchTrailerDetailsRequestSuccess(trailerId, details, companyId));\n}\n\nfunction* updateTrailerSaga(action: UpdateTrailerActionT): WrapGeneratorT<void> {\n    const { companyId, trailerId, updateTrailer } = action;\n\n    yield put(updateTrailersRequestBegin(companyId));\n\n    let result: ReturnApiT<typeof brokerTranziitApi.updateTrailer | typeof carrierTranziitApi.updateTrailer> | null =\n        null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        result = yield carrierTranziitApi.updateTrailer(trailerId, updateTrailer);\n    } else {\n        result = yield brokerTranziitApi.updateTrailer(companyId, trailerId, updateTrailer);\n    }\n    if (!result) {\n        return;\n    }\n    const [error] = result;\n\n    if (error) {\n        yield put(updateTrailersRequestError(error, companyId));\n    } else {\n        yield put(updateTrailersRequestSuccess(companyId));\n    }\n\n    if (!error) {\n        const detailsById: ReReturnT<typeof selectTrailersDetailsByIds> = yield select(\n            selectTrailersDetailsByIds(companyId),\n        );\n        const trailer = detailsById[trailerId];\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trailerSuccessfullyEdited,\n                    data: {\n                        plateNumber: trailer?.plateNumber || '',\n                    },\n                }),\n            ),\n        );\n    }\n\n    trailersRefreshChannel.emit({});\n\n    yield put(fetchTrailerDetails(trailerId, companyId, { isForceUpdate: true }));\n}\n\nfunction* importXLSTrailersSaga(action: ImportXLSTrailersActionT): WrapGeneratorT<void> {\n    const { companyId, file } = action;\n\n    yield put(importXLSTrailersRequestBegin(companyId));\n\n    let result: ReturnApiT<\n        typeof brokerTranziitApi.importPartnerXLSTrucks | typeof carrierTranziitApi.importXLSTrucks\n    > | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        result = yield carrierTranziitApi.importXLSTrailers(file);\n    } else {\n        result = yield brokerTranziitApi.importPartnerXLSTrailers(companyId, file);\n    }\n    if (!result) {\n        return;\n    }\n    const [error] = result;\n\n    if (error) {\n        yield put(importXLSTrailersRequestError(error, companyId));\n    } else {\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trailerSuccessfullyXLSImport,\n                    data: {},\n                }),\n            ),\n        );\n\n        yield put(importXLSTrailersRequestSuccess(companyId));\n    }\n}\n\nfunction* exportXLSTrailersSaga(action: ExportXLSTrailersActionT): WrapGeneratorT<void> {\n    const { companyId, query } = action;\n\n    yield put(exportXLSTrailersRequestBegin(companyId));\n\n    let result: ReturnApiT<\n        typeof brokerTranziitApi.exportPartnerXLSTrailers | typeof carrierTranziitApi.exportXLSTrailers\n    > | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        result = yield carrierTranziitApi.exportXLSTrailers(query);\n    } else {\n        result = yield brokerTranziitApi.exportPartnerXLSTrailers(companyId, query);\n    }\n    if (!result) {\n        return;\n    }\n    const [error, data] = result;\n\n    if (data) {\n        downloadFile({\n            name: `trailers-export-${moment().format('YYYY-MM-DD_HH:mm')}.xlsx`,\n            data,\n            type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n        });\n    }\n\n    if (error) {\n        yield put(exportXLSTrailersRequestError(error, companyId));\n    } else {\n        yield put(exportXLSTrailersRequestSuccess(companyId));\n    }\n}\n\nfunction* trailersSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_TRAILERS_PAGE_REQUEST, fetchTrailersSaga);\n    yield takeEvery(ADD_TRAILER_REQUEST, addTrailerSaga);\n    yield takeEvery(DELETE_TRAILERS_REQUEST, deleteTrailersSaga);\n    yield takeEvery(ACTIVATION_TRAILERS_REQUEST, activateTrailersSaga);\n    yield takeEvery(ARCHIVE_TRAILERS_REQUEST, archiveTrailersSaga);\n    yield takeEvery(ASSIGN_TO_CONTRACT_TRAILERS_REQUEST, assignToContractSaga);\n    yield takeEvery(CHANGE_RATE_TRAILERS_REQUEST, changeRateTrailersSaga);\n    yield takeEvery(FETCH_TRAILER_DETAILS_REQUEST, fetchTrailerDetailsSaga);\n    yield takeEvery(UPDATE_TRAILERS_REQUEST, updateTrailerSaga);\n    yield takeEvery(FETCH_TRAILERS_STATS_REQUEST, fetchTrailersStatsSaga);\n    yield takeEvery(IMPORT_XLS_TRAILERS_REQUEST, importXLSTrailersSaga);\n    yield takeEvery(EXPORT_XLS_TRAILERS_REQUEST, exportXLSTrailersSaga);\n}\n\nexport default trailersSaga;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport isNil from 'lodash/isNil';\nimport { ApiBrokerAdditionalServiceTypeT, ApiCarrierAdditionalServiceTypeT } from 'common/utils/api/models';\n\nexport type PropsT = {\n    type?: ApiCarrierAdditionalServiceTypeT | ApiBrokerAdditionalServiceTypeT;\n};\n\nconst i18nMap: Record<ApiCarrierAdditionalServiceTypeT | ApiBrokerAdditionalServiceTypeT, string> = {\n    A_WARNING_SIGN_WASTE: 'common:additional-service.by-enum.A_WARNING_SIGN_WASTE',\n    ADR_HAZMAT: 'common:additional-service.by-enum.ADR_HAZMAT',\n    ATP_CERTIFICATE_FRC_CATEGORY: 'common:additional-service.by-enum.ATP_CERTIFICATE_FRC_CATEGORY',\n    CATEGORY_III_CERTIFICATE: 'common:additional-service.by-enum.CATEGORY_III_CERTIFICATE',\n    CUSTOMS_SEAL_PROOF_TIR: 'common:additional-service.by-enum.CUSTOMS_SEAL_PROOF_TIR',\n    DROP_TRAILER_REQUIRED: 'common:additional-service.by-enum.DROP_TRAILER_REQUIRED',\n    DUAL_TEMPERATURE: 'common:additional-service.by-enum.DUAL_TEMPERATURE',\n    FLOWER_TROLLEY_WIDE: 'common:additional-service.by-enum.FLOWER_TROLLEY_WIDE',\n    MEAT_HOOKS: 'common:additional-service.by-enum.MEAT_HOOKS',\n    PALLET_EXCHANGE_CATEGORY_A: 'common:additional-service.by-enum.PALLET_EXCHANGE_CATEGORY_A',\n    PALLET_EXCHANGE_CATEGORY_B_AND_C: 'common:additional-service.by-enum.PALLET_EXCHANGE_CATEGORY_B_AND_C',\n    PARTITION_WALL: 'common:additional-service.by-enum.PARTITION_WALL',\n    TAIL_LIFT: 'common:additional-service.by-enum.TAIL_LIFT',\n    COIL_TRANSPORTS: 'common:additional-service.by-enum.COIL_TRANSPORTS',\n    JOLODA_LOADING_SYSTEM: 'common:additional-service.by-enum.JOLODA_LOADING_SYSTEM',\n    LIGHT_VERSION: 'common:additional-service.by-enum.LIGHT_VERSION',\n    WALKING_FLOOR: 'common:additional-service.by-enum.WALKING_FLOOR',\n    XL_CODE_CERTIFIED: 'common:additional-service.by-enum.XL_CODE_CERTIFIED',\n    ANTI_SLIP_MATS: 'common:additional-service.by-enum.ANTI_SLIP_MATS',\n    CARGO_EDGE_PROTECTORS: 'common:additional-service.by-enum.CARGO_EDGE_PROTECTORS',\n    CARGO_LOAD_LOCKS: 'common:additional-service.by-enum.CARGO_LOAD_LOCKS',\n    CARGO_RATCHET_STRAPS: 'common:additional-service.by-enum.CARGO_RATCHET_STRAPS',\n    CARGO_SHORING_BEAMS: 'common:additional-service.by-enum.CARGO_SHORING_BEAMS',\n    TIME_SLOTS_APPOINTMENT_BY_BROKER: 'common:additional-service.by-enum.TIME_SLOTS_APPOINTMENT_BY_BROKER',\n    GDP_PHARMACEUTICAL: 'common:additional-service.by-enum.GDP_PHARMACEUTICAL',\n    IFS_FOOD: 'common:additional-service.by-enum.IFS_FOOD',\n    ISO_14001: 'common:additional-service.by-enum.ISO_14001',\n    ISO_9001: 'common:additional-service.by-enum.ISO_9001',\n    SQAS_CHEMICAL: 'common:additional-service.by-enum.SQAS_CHEMICAL',\n    WASTE_MANAGEMENT_A_SIGN: 'common:additional-service.by-enum.WASTE_MANAGEMENT_A_SIGN',\n    URGENT_PICKUP: 'common:additional-service.by-enum.URGENT_PICKUP',\n    LOW_EMISSIONS: 'common:additional-service.by-enum.LOW_EMISSIONS',\n    EXTRA_POINTS: 'common:additional-service.by-enum.EXTRA_POINTS',\n};\n\nconst AdditionalServiceLabel: React.FC<PropsT> = React.memo((props) => {\n    const { type } = props;\n\n    const { t } = useTranslation();\n\n    if (isNil(type)) {\n        return null;\n    }\n\n    return <span>{i18nMap[type] ? t(i18nMap[type]) : type}</span>;\n});\n\nexport default AdditionalServiceLabel;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { PartnerContractDetailsT } from 'common/store/carrier-contract-details/models';\nimport moment from 'moment/moment';\nimport { simpleNumberFormatter } from 'common/utils/form-formatters';\nimport { TruckRateModeEnum } from 'common/utils/api/models';\n\nconst DEFAULT_VALUES: FormValuesT = {\n    [FieldsEnum.expiration]: null,\n    [FieldsEnum.number]: '',\n    [FieldsEnum.name]: '',\n    [FieldsEnum.truckRateMode]: TruckRateModeEnum.brutto,\n    [FieldsEnum.truckRate]: '',\n    [FieldsEnum.tiltRate]: '',\n    [FieldsEnum.boxRate]: '',\n    [FieldsEnum.boxExpectedMileage]: '',\n    [FieldsEnum.tiltExpectedMileage]: '',\n    [FieldsEnum.truckExpectedMileage]: '',\n};\n\nconst getInitialValues = (contractDetails: PartnerContractDetailsT | null): FormValuesT => {\n    if (!contractDetails) {\n        return { ...DEFAULT_VALUES };\n    }\n\n    return {\n        [FieldsEnum.expiration]: contractDetails.validTill ? moment(contractDetails.validTill).toDate() : null,\n        [FieldsEnum.number]: contractDetails.number || '',\n        [FieldsEnum.name]: contractDetails.name || '',\n        [FieldsEnum.truckRateMode]: contractDetails.truckRateMode || TruckRateModeEnum.brutto,\n        [FieldsEnum.truckRate]: simpleNumberFormatter(contractDetails.truckRateKm),\n        [FieldsEnum.tiltRate]: simpleNumberFormatter(contractDetails.tiltRateKm),\n        [FieldsEnum.boxRate]: simpleNumberFormatter(contractDetails.boxRateKm),\n        [FieldsEnum.boxExpectedMileage]: simpleNumberFormatter(contractDetails.boxExpectedKm) || '',\n        [FieldsEnum.tiltExpectedMileage]: simpleNumberFormatter(contractDetails.tiltExpectedKm) || '',\n        [FieldsEnum.truckExpectedMileage]: simpleNumberFormatter(contractDetails.truckExpectedKm) || '',\n    };\n};\nexport default getInitialValues;\n","// extracted by mini-css-extract-plugin\nexport default {\"preview\":\"PriceSettingsRuleCreationPage__preview___ildMT\",\"fadeIn\":\"PriceSettingsRuleCreationPage__fadeIn____AEcg\",\"blinking\":\"PriceSettingsRuleCreationPage__blinking___rfJku\"};","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"TruckDetailsPage__fadeIn___Jrkzq\",\"blinking\":\"TruckDetailsPage__blinking___mJ_3y\"};","import { AuthErrorTypeEnum } from 'common/utils/api/auth/errors/auth-api-error';\n\nexport enum FieldsEnum {\n    firstName = 'firstName',\n    lastName = 'lastName',\n    phone = 'phone',\n    password = 'password',\n    acceptTerms = 'acceptTerms',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.firstName]: string;\n    [FieldsEnum.lastName]: string;\n    [FieldsEnum.phone]: string;\n    [FieldsEnum.password]: string;\n    [FieldsEnum.acceptTerms]: boolean;\n};\n\nexport type FormErrorsT = Partial<Record<keyof FormValuesT, string>>;\n\nexport type AsyncFormErrorsT = Partial<{\n    [FieldsEnum.password]: AuthErrorTypeEnum;\n}>;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './LaneDropdownInputOptionLabel.scss';\nimport { ApiContractLaneT } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\nimport Money from 'common/components/Money/Money';\nimport { CurrencyEnum, DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport TeamDriveIcon from 'common/icons/TeamDriveIcon';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport isNumber from 'lodash/isNumber';\nimport EmissionClassLabel from 'common/components/EmissionClassLabel/EmissionClassLabel';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    lane: ApiContractLaneT | null | undefined;\n};\n\nconst LaneDropdownInputOptionLabel: React.FC<PropsT> = React.memo((props) => {\n    const { lane } = props;\n\n    const { t } = useTranslation();\n\n    if (!lane) {\n        return null;\n    }\n\n    return (\n        <div className={cx('option')}>\n            <div className={cx('label')}>\n                {t('common:new-order-form.lane-option-template', {\n                    contractName: lane.contractName || '',\n                    tztLaneId: lane.tztLaneId || '',\n                    externalLaneId: lane.externalLaneId || '',\n                })}\n            </div>\n            <div className={cx('description')}>\n                {!!lane.teamDrive && (\n                    <div>\n                        <TeamDriveIcon\n                            size={DEFAULT_ICON_SIZE}\n                            strokeColor={StyleGuideColorsEnum.brandDark}\n                            fillColor={StyleGuideColorsEnum.brandAccent}\n                        />\n                    </div>\n                )}\n                {!!lane.emissionClass && (\n                    <PillLabel isSymmetrical theme={PillLabelThemeEnum.grey}>\n                        <EmissionClassLabel emissionClass={lane.emissionClass} />\n                    </PillLabel>\n                )}\n                {isNumber(lane.maxNumberOfOrders) && isNumber(lane.ordersLeft) && (\n                    <PillLabel isSymmetrical isRounded theme={PillLabelThemeEnum.charcoal}>\n                        {`${lane.ordersLeft}/${lane.maxNumberOfOrders}`}\n                    </PillLabel>\n                )}\n                <div className={cx('spacer')} />\n                {isNumber(lane.totalPrice) && (\n                    <div className={cx('price')}>\n                        <Money amount={lane.totalPrice} currency={CurrencyEnum.EUR} />\n                    </div>\n                )}\n            </div>\n        </div>\n    );\n});\n\nexport default LaneDropdownInputOptionLabel;\n","// extracted by mini-css-extract-plugin\nexport default {\"input\":\"Input__input___zqOuV\",\"input--spaces-xs\":\"Input__input--spaces-xs___j_j_4\",\"input--isTransparent\":\"Input__input--isTransparent___jZw2S\",\"input--isHovered\":\"Input__input--isHovered___RovQ5\",\"input--isFocused\":\"Input__input--isFocused___NRnHY\",\"input--isEmpty\":\"Input__input--isEmpty___ZWUfU\",\"input--hasSuccess\":\"Input__input--hasSuccess___P27xn\",\"input--hasWarning\":\"Input__input--hasWarning___qC_us\",\"input--hasChanges\":\"Input__input--hasChanges___gocFJ\",\"input--isHighlighted\":\"Input__input--isHighlighted___AW5g3\",\"input--hasError\":\"Input__input--hasError___OoENP\",\"input--isDisabled\":\"Input__input--isDisabled____mgbz\",\"input--hasLeftIcon\":\"Input__input--hasLeftIcon___UDf_7\",\"input--hasRightNode\":\"Input__input--hasRightNode___W9ks2\",\"inner-input\":\"Input__inner-input___Zm_xo\",\"inner-input--isEmpty\":\"Input__inner-input--isEmpty___IHwFY\",\"inner-input--isDisabled\":\"Input__inner-input--isDisabled___KA9G3\",\"icon\":\"Input__icon___gAEeV\",\"icon--isLeft\":\"Input__icon--isLeft___R5K4t\",\"right-node\":\"Input__right-node___sGcNm\",\"right-node--isEmpty\":\"Input__right-node--isEmpty____poIX\",\"control\":\"Input__control___uvGwQ\",\"control--isClickable\":\"Input__control--isClickable___OSKH8\",\"fadeIn\":\"Input__fadeIn___mQZ1V\",\"blinking\":\"Input__blinking___VNhqk\"};","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './ModalDialogActions.scss';\nimport Button, { ButtonPropsT } from 'common/components/Button/Button';\nimport isEmpty from 'lodash/isEmpty';\n\nconst cx = classNames.bind(styles);\n\nexport type ModalDialogActionT = ButtonPropsT & { children: React.ReactNode };\n\nexport type ModalDialogActionsPropsT = {\n    actions?: ModalDialogActionT[];\n    className?: string;\n};\n\nconst ModalDialogActions: React.FC<ModalDialogActionsPropsT> = (props) => {\n    const { actions, className } = props;\n\n    if (!actions || isEmpty(actions)) {\n        return null;\n    }\n\n    return (\n        <div className={cs(cx('actions'), className)}>\n            {actions.map((action, actionIndex) => (\n                <Button\n                    key={actionIndex}\n                    type=\"button\"\n                    className={cx('actions__action')}\n                    isFullWidth\n                    isCenterContent\n                    {...action}\n                />\n            ))}\n        </div>\n    );\n};\n\nexport default ModalDialogActions;\n","import * as React from 'react';\nimport { TemperatureModeEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\nimport isNil from 'lodash/isNil';\nimport { parseTemperatureMode } from 'common/utils/parse-temperature-mode';\n\ntype PropsT = {\n    className?: string;\n    lowestTemperature?: number;\n    highestTemperature?: number;\n};\n\nexport const TEMPERATURE_MODE_T: Record<TemperatureModeEnum, string> = {\n    [TemperatureModeEnum.deepFrozen]: 'common:new-order-form.fields.temperature-range.presets.deep-frozen',\n    [TemperatureModeEnum.ultraFresh]: 'common:new-order-form.fields.temperature-range.presets.ultra-fresh',\n    [TemperatureModeEnum.dry]: 'common:new-order-form.fields.temperature-range.presets.dry',\n    [TemperatureModeEnum.chilled]: 'common:new-order-form.fields.temperature-range.presets.chilled',\n    [TemperatureModeEnum.ambient]: 'common:new-order-form.fields.temperature-range.presets.ambient',\n};\n\nconst TemperatureRange: React.FC<PropsT> = React.memo((props) => {\n    const { lowestTemperature, highestTemperature } = props;\n\n    const { t } = useTranslation();\n\n    if (isNil(lowestTemperature) || isNil(highestTemperature)) {\n        return null;\n    }\n\n    const temperatureMode = parseTemperatureMode(lowestTemperature, highestTemperature);\n\n    if (!temperatureMode) {\n        return <span>{`${lowestTemperature}...${highestTemperature}°C`}</span>;\n    }\n\n    return (\n        <span>\n            {t(TEMPERATURE_MODE_T[temperatureMode], {\n                minTemperature: lowestTemperature,\n                maxTemperature: highestTemperature,\n            })}\n        </span>\n    );\n});\n\nexport default TemperatureRange;\n","// extracted by mini-css-extract-plugin\nexport default {\"field\":\"SearchForm__field___WRilD\",\"field--radius\":\"SearchForm__field--radius___BKGjK\",\"field--filters\":\"SearchForm__field--filters___yWAhu\",\"field--carrier\":\"SearchForm__field--carrier___GymbI\",\"field--exclude-countries\":\"SearchForm__field--exclude-countries___SNyvO\",\"field--timezone-switcher\":\"SearchForm__field--timezone-switcher___p29bO\",\"field--timeline-trigger\":\"SearchForm__field--timeline-trigger___jnEVL\",\"warning-pill\":\"SearchForm__warning-pill___B56kQ\",\"fadeIn\":\"SearchForm__fadeIn___l_DsN\",\"blinking\":\"SearchForm__blinking___XWxWh\"};","// extracted by mini-css-extract-plugin\nexport default {\"last-track-point-updated\":\"LastAssetWithNumberTrackPointPin__last-track-point-updated___mecaz\",\"inner--has-paddings\":\"LastAssetWithNumberTrackPointPin__inner--has-paddings___zpErE\",\"fadeIn\":\"LastAssetWithNumberTrackPointPin__fadeIn___ZLlH3\",\"blinking\":\"LastAssetWithNumberTrackPointPin__blinking___kCfYp\"};","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './HeaderSideBarLayout.scss';\nimport SideBarLayoutContext from '../contexts/side-bar-layout-context';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    hasBottomBorder?: boolean;\n};\n\nconst HeaderSideBarLayout: React.FC<PropsT> = React.memo((props) => {\n    const { children, hasBottomBorder, className } = props;\n\n    const ref = React.useRef<HTMLDivElement | null>(null);\n\n    const context = React.useContext(SideBarLayoutContext);\n\n    React.useEffect(() => {\n        const measureContainer = () => {\n            if (!ref.current) {\n                return;\n            }\n\n            context.headerHeight?.setValue(ref.current?.clientHeight);\n        };\n\n        window.addEventListener('resize', measureContainer);\n\n        measureContainer();\n\n        return () => {\n            window.removeEventListener('resize', measureContainer);\n\n            context.headerHeight?.setValue(0);\n        };\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [children, hasBottomBorder]);\n\n    return (\n        <div\n            ref={ref}\n            className={cs(\n                cx('wrap', {\n                    'wrap--hasBottomBorder': hasBottomBorder,\n                }),\n                className,\n            )}\n            style={{ marginRight: `${context.scrollBarWidth?.value || 0}px` }}\n        >\n            {children}\n        </div>\n    );\n});\n\nexport default HeaderSideBarLayout;\n","import { PartnersSortEnum, QueryFiltersKeysEnum, QueryFiltersT } from './query-models';\nimport { formatPageQuerySort } from 'common/utils/page-sort';\nimport { FetchPartnersPageQueryT } from 'broker-admin/store/partners/models';\nimport { ApiCountriesT } from 'common/utils/api/models';\nimport { PageSortT } from 'common/utils/query';\nimport isEmpty from 'lodash/isEmpty';\n\nconst prepareFetchPageQuery = (\n    queryFilters: QueryFiltersT,\n    sort: PageSortT<PartnersSortEnum> | null,\n): FetchPartnersPageQueryT => {\n    const associatedBrokerUsers: Array<string> = [];\n    const keyAccountManagerId = queryFilters[QueryFiltersKeysEnum.keyAccountManagerId];\n    const dispatcherId = queryFilters[QueryFiltersKeysEnum.dispatcherId];\n\n    if (keyAccountManagerId) {\n        associatedBrokerUsers.push(keyAccountManagerId);\n    }\n    if (dispatcherId) {\n        associatedBrokerUsers.push(dispatcherId);\n    }\n\n    return {\n        includeProfileTypes: queryFilters[QueryFiltersKeysEnum.partnerType]\n            ? [queryFilters[QueryFiltersKeysEnum.partnerType]]\n            : undefined,\n        associatedBrokerUsers: !isEmpty(associatedBrokerUsers) ? associatedBrokerUsers : undefined,\n        country: queryFilters[QueryFiltersKeysEnum.countryCode] as ApiCountriesT,\n        textSearch: queryFilters[QueryFiltersKeysEnum.searchText] || undefined,\n        notVerified: !!queryFilters[QueryFiltersKeysEnum.withUpdates],\n        sort: formatPageQuerySort(sort),\n    };\n};\n\nexport { prepareFetchPageQuery };\n","import { ApiTruckDictTypeT, ApiTrucksDictT } from 'common/utils/api/models';\n\nexport const getTruckDictTypeLabel = (truck: ApiTruckDictTypeT | null): string => {\n    return [truck?.model].filter(Boolean).join(', ');\n};\n\nconst EMISSION_CLASS_ORDER: Record<NonNullable<ApiTruckDictTypeT['emissionClass']>, number> = {\n    EURO_5: 0,\n    EURO_6: 1,\n};\n\nexport const sortTrucksDict = (trucksDict: ApiTrucksDictT): ApiTrucksDictT => {\n    return [...trucksDict].sort((aItem, bItem) => {\n        const manufacturerCompare = (aItem.manufacturer ?? '').localeCompare(bItem.manufacturer ?? '');\n        if (manufacturerCompare !== 0) {\n            return manufacturerCompare;\n        }\n\n        const emissionA = aItem.emissionClass ? EMISSION_CLASS_ORDER[aItem.emissionClass] : Number.MAX_SAFE_INTEGER;\n        const emissionB = bItem.emissionClass ? EMISSION_CLASS_ORDER[bItem.emissionClass] : Number.MAX_SAFE_INTEGER;\n\n        return emissionA - emissionB;\n    });\n};\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './SpotBidStatusCard.scss';\nimport { Trans } from 'react-i18next';\n\nconst cx = classNames.bind(styles);\n\nexport type SpotBidStatusCardPropsT = {\n    type: 'new' | 'expired' | 'missed';\n    fromLocation: string | null | undefined;\n    toLocation: string | null | undefined;\n    spotRequestNumber: string | null | undefined;\n};\n\nconst labelMap: Record<SpotBidStatusCardPropsT['type'], string> = {\n    new: 'common:notifications.spot-bid-status.new',\n    missed: 'common:notifications.spot-bid-status.missed',\n    expired: 'common:notifications.spot-bid-status.expired',\n};\n\nconst Accent: React.FC<{ number: React.ReactNode }> = ({ number }) => {\n    return <span className={cx('accent')}>{number}</span>;\n};\n\nconst SpotBidStatusCard: React.FC<SpotBidStatusCardPropsT> = React.memo((props) => {\n    const { type, fromLocation, toLocation, spotRequestNumber } = props;\n\n    return (\n        <div className={cx('wrap')}>\n            <Trans\n                i18nKey={labelMap[type]}\n                components={{\n                    fromLocation: <Accent number={fromLocation} />,\n                    toLocation: <Accent number={toLocation} />,\n                    spotRequestNumber: <Accent number={spotRequestNumber} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default SpotBidStatusCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"ProgressBar__wrap___KXGTi\",\"line\":\"ProgressBar__line___gA4c1\",\"line--isProgress\":\"ProgressBar__line--isProgress___T2v8g\",\"line--isBackground\":\"ProgressBar__line--isBackground___aGeqp\",\"fadeIn\":\"ProgressBar__fadeIn___tkf6V\",\"blinking\":\"ProgressBar__blinking___hrxN5\"};","import { PriceOfferT } from 'common/store/order-creation/models';\nimport isNumber from 'lodash/isNumber';\n\nexport const getPriceOfferLineHaul = (offer: PriceOfferT | undefined) => {\n    const lineHaul = offer?.priceComponents?.lineHaul;\n\n    return isNumber(lineHaul) ? lineHaul : null;\n};\n\nexport const compareLineHaul = (sourceLineHaul: number | null, customLineHaul: number | null | undefined) => {\n    const lineHaul = isNumber(customLineHaul) ? customLineHaul : sourceLineHaul;\n\n    return {\n        lineHaul,\n        hasChangedLineHaul: sourceLineHaul !== lineHaul,\n        lineHaulDiff: isNumber(sourceLineHaul) && isNumber(lineHaul) ? lineHaul - sourceLineHaul : null,\n    };\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"avatar\":\"AvatarCell__avatar___ycNqo\",\"avatar--isHalfOpacity\":\"AvatarCell__avatar--isHalfOpacity___LsnQN\",\"fadeIn\":\"AvatarCell__fadeIn___6PMqi\",\"blinking\":\"AvatarCell__blinking___XovoJ\"};","import React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './DnDIconWrap.scss';\nimport DragIcon from 'common/icons/DragIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    values: number[];\n};\n\nconst PERMISSIBLE_ERROR = 1.5;\n\nconst DnDIconWrap: React.FC<PropsT> = React.memo((props) => {\n    const { values } = props;\n\n    const [isShowIcon, setIsShowIcon] = React.useState<boolean>(true);\n\n    const wrapRef = React.useRef<HTMLDivElement>(null);\n    const iconRef = React.useRef<HTMLDivElement>(null);\n\n    const checkShouldShowIcon = () => {\n        if (!iconRef.current || !wrapRef.current) {\n            return;\n        }\n\n        const iconNodeRect = iconRef.current.getBoundingClientRect();\n        const wrapNodeRect = wrapRef.current.getBoundingClientRect();\n\n        const isShouldShow = wrapNodeRect.width > iconNodeRect.width * PERMISSIBLE_ERROR;\n        if (isShowIcon !== isShouldShow) {\n            setIsShowIcon(isShouldShow);\n        }\n    };\n    React.useEffect((): void => {\n        // wait rerender\n        setTimeout(() => {\n            checkShouldShowIcon();\n        }, 0);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [iconRef.current, wrapRef.current, values]);\n\n    return (\n        <div className={cx('dnd-wrap')} ref={wrapRef}>\n            <div\n                className={cx('icon', {\n                    'icon--is-hide': !isShowIcon,\n                })}\n                ref={iconRef}\n            >\n                <DragIcon fillColor={StyleGuideColorsEnum.white} />\n            </div>\n        </div>\n    );\n});\n\nexport default DnDIconWrap;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"SpotRequestListPage__fadeIn___uKOpG\",\"blinking\":\"SpotRequestListPage__blinking___Tr6Be\"};","import React from 'react';\nimport { LogTextRendererT, LogViewRendererT } from 'common/components/logs/models';\n\nexport type RenderLogContextT = {\n    renderLog: LogViewRendererT | null;\n    renderLogText: LogTextRendererT | null;\n};\n\nconst RenderLogContext = React.createContext<RenderLogContextT>({\n    renderLog: null,\n    renderLogText: null,\n});\n\nexport default RenderLogContext;\n","import { PartnerT } from 'broker-admin/store/partners/models';\nimport { checkNeedShowBillingInfo } from 'broker-admin/store/partner/details/utils/check-need-show-billing-info';\n\nexport const checkAllVerified = (partner: PartnerT) => {\n    if (!partner.legalAddressVerified) {\n        return false;\n    }\n\n    if (!partner.documentsVerified) {\n        return false;\n    }\n\n    if (checkNeedShowBillingInfo(partner.type) && !partner.billingAddressVerified) {\n        return false;\n    }\n\n    return true;\n};\n","import React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport {\n    useFloating,\n    autoUpdate,\n    offset,\n    flip,\n    shift,\n    size,\n    useDismiss,\n    useInteractions,\n    FloatingPortal,\n    type Placement,\n} from '@floating-ui/react';\n\nimport styles from './PhoneNumberDropdownInput.scss';\nimport PhoneNumberDropdownTrigger from '../PhoneNumberDropdownTrigger/PhoneNumberDropdownTrigger';\nimport PhoneNumberDropdownOption from '../PhoneNumberDropdownOption/PhoneNumberDropdownOption';\nimport { CountriesListT } from 'common/store/countries-dict/models';\nimport {\n    clearPhoneNumber,\n    getCountryCode,\n    getCountryPhoneNumberStart,\n    parsePhoneNumber,\n} from 'common/utils/phone-number';\n\nconst cx = classNames.bind(styles);\n\nexport enum OverlayPositionEnum {\n    top = 'top',\n    bottom = 'bottom',\n}\n\nexport type PropsT = {\n    name: string;\n    value: string;\n    onChange: (value: string) => void;\n\n    onBlur?: () => void;\n    onFocus?: () => void;\n    isDisabled?: boolean;\n\n    testSelector?: string;\n\n    hasWarning?: boolean;\n    hasError?: boolean;\n    hasChanges?: boolean;\n\n    overlayPosition?: OverlayPositionEnum;\n    overlayClassName?: string;\n\n    allCountries: CountriesListT | null;\n\n    className?: string;\n};\n\nconst convertCountryCode = (dictCountryCode: string) => dictCountryCode.toUpperCase();\n\nconst POSITION_TO_PLACEMENT: Record<OverlayPositionEnum, Placement> = {\n    [OverlayPositionEnum.top]: 'top-start',\n    [OverlayPositionEnum.bottom]: 'bottom-start',\n};\n\nconst PhoneNumberDropdownInput = (props: PropsT): React.ReactElement => {\n    const {\n        name,\n        allCountries,\n        onFocus,\n        onBlur,\n        isDisabled,\n        hasWarning,\n        hasError,\n        overlayPosition,\n        className,\n        overlayClassName,\n        hasChanges,\n        testSelector,\n        value,\n        onChange,\n    } = props;\n\n    const [isFocused, setFocused] = React.useState(false);\n    const [isHovered, setHovered] = React.useState<boolean>(false);\n\n    const handleMouseMove = (): void => {\n        if (!isHovered) {\n            setHovered(true);\n        }\n    };\n\n    const handleMouseLeave = (): void => {\n        setHovered(false);\n    };\n\n    const handleFocus = () => {\n        if (!isFocused) {\n            setFocused(true);\n        }\n\n        if (onFocus) {\n            onFocus();\n        }\n    };\n\n    const handleBlur = () => {\n        setFocused(false);\n\n        if (onBlur) {\n            onBlur();\n        }\n    };\n\n    const [inputValue, setInputValue] = React.useState<string>((): string => {\n        return clearPhoneNumber(value);\n    });\n    const [countryCode, setCountryCode] = React.useState<string>();\n    const [isOpenCountryList, setOpenCountryList] = React.useState(false);\n\n    const toggleOpenCountryList = (): void => {\n        if (isDisabled) {\n            return;\n        }\n        setOpenCountryList(!isOpenCountryList);\n    };\n\n    const handleChangePhoneNumber = (phoneNumber: string): void => {\n        const clearedPhoneNumber = clearPhoneNumber(phoneNumber);\n        setInputValue(clearedPhoneNumber);\n\n        const parsedPhoneNumber = parsePhoneNumber(phoneNumber);\n        if (value !== parsedPhoneNumber) {\n            onChange(parsedPhoneNumber);\n        }\n    };\n\n    React.useEffect(() => {\n        if (!value) {\n            setCountryCode('');\n            setInputValue('');\n            return;\n        }\n\n        const clearedPhoneNumber = clearPhoneNumber(value);\n        setInputValue(clearedPhoneNumber);\n\n        const parsedCountryCode = getCountryCode(value);\n        setCountryCode(parsedCountryCode || '');\n    }, [value]);\n\n    const fullTestSelector = `${testSelector}_phone-number-input`;\n\n    const { refs, floatingStyles, context } = useFloating({\n        open: isOpenCountryList,\n        onOpenChange: (open) => {\n            if (!open) {\n                setOpenCountryList(false);\n            }\n        },\n        placement: POSITION_TO_PLACEMENT[overlayPosition || OverlayPositionEnum.bottom],\n        middleware: [\n            offset(0),\n            flip({ padding: 8 }),\n            shift({ padding: 8 }),\n            size({\n                padding: 8,\n                apply({ rects, elements }) {\n                    Object.assign(elements.floating.style, {\n                        width: `${rects.reference.width}px`,\n                    });\n                },\n            }),\n        ],\n        strategy: 'fixed',\n        transform: false,\n        whileElementsMounted: autoUpdate,\n    });\n\n    const dismiss = useDismiss(context, {\n        outsidePressEvent: 'mousedown',\n    });\n\n    const { getReferenceProps, getFloatingProps } = useInteractions([dismiss]);\n\n    return (\n        <div className={cs(cx('dropdown'), className)}>\n            <div className={cx('trigger-wrap')}>\n                <div\n                    ref={refs.setReference}\n                    className={cx('trigger', {\n                        'trigger--isFocus': isFocused || isOpenCountryList,\n                        'trigger--isDisabled': isDisabled,\n                        'trigger--hasChanges': hasChanges,\n                        'trigger--hasWarning': hasWarning,\n                        'trigger--hasError': hasError,\n                        'trigger--isHovered': isHovered,\n                    })}\n                    onMouseMove={handleMouseMove}\n                    onMouseLeave={handleMouseLeave}\n                    {...getReferenceProps()}\n                >\n                    <PhoneNumberDropdownTrigger\n                        name={name}\n                        countryCode={countryCode}\n                        onClickCountryCode={toggleOpenCountryList}\n                        phoneNumber={inputValue}\n                        onChangePhoneNumber={handleChangePhoneNumber}\n                        testSelector={fullTestSelector}\n                        onFocus={handleFocus}\n                        onBlur={handleBlur}\n                        isDisabled={isDisabled}\n                    />\n                </div>\n                {isOpenCountryList && (\n                    <FloatingPortal>\n                        <div\n                            ref={refs.setFloating}\n                            style={floatingStyles}\n                            className={cs(cx('overlay'), overlayClassName)}\n                            {...getFloatingProps()}\n                        >\n                            {(allCountries || []).map((country) => {\n                                return (\n                                    <PhoneNumberDropdownOption\n                                        key={country.code}\n                                        testSelector={fullTestSelector}\n                                        countryCode={convertCountryCode(country.code)}\n                                        label={country.userLangDisplayName}\n                                        isSelected={convertCountryCode(country.code) === countryCode}\n                                        onSelect={(selectedCountryCode) => {\n                                            if (selectedCountryCode !== countryCode) {\n                                                const countryPhoneNumberStart =\n                                                    getCountryPhoneNumberStart(selectedCountryCode);\n\n                                                setInputValue(countryPhoneNumberStart);\n                                                setCountryCode(selectedCountryCode);\n                                                onChange(countryPhoneNumberStart);\n                                            }\n\n                                            setOpenCountryList(false);\n                                        }}\n                                    />\n                                );\n                            })}\n                        </div>\n                    </FloatingPortal>\n                )}\n            </div>\n        </div>\n    );\n};\n\nexport default PhoneNumberDropdownInput;\n","export enum BrokerSidebarsTypeEnum {\n    spotRequestDetails = 'spot-request-details',\n    spotRequestsFilter = 'spot-requests-filter',\n    createPartner = 'create-partner',\n    createExternalPartner = 'create-external-partner',\n    partnerFilter = 'partner-filter',\n    editPriceSettingsRuleSidebar = 'edit-price-settings-rule-sidebar',\n    priceSettingsRuleFilter = 'price-settings-rule-filter',\n    statisticsFilter = 'statistics-filter',\n    uploadShipperContract = 'upload-shipper-contract',\n    shipperContractLaneDetails = 'shipper-contract-lane-details',\n    editBrokerTeamDetails = 'edit-broker-team-details',\n    rfqStatistics = 'rfq-statistics',\n}\n","import { AsyncFormErrorsT, FieldsEnum } from './constants';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { AuthErrorTypeEnum, checkIsAuthApiError } from 'common/utils/api/auth/errors/auth-api-error';\n\nconst asyncValidate = (saveRequestStatus: RequestStatusT): AsyncFormErrorsT => {\n    const asyncErrors: AsyncFormErrorsT = {};\n\n    if (!checkIsAuthApiError(saveRequestStatus.error)) {\n        return asyncErrors;\n    }\n\n    if (\n        saveRequestStatus.error?.type === AuthErrorTypeEnum.wrongPassword ||\n        saveRequestStatus.error?.type === AuthErrorTypeEnum.failUpdatePassword ||\n        saveRequestStatus.error?.type === AuthErrorTypeEnum.failReauthenticateWithCredential\n    ) {\n        asyncErrors[FieldsEnum.currentPassword] = saveRequestStatus.error.type;\n    }\n\n    return asyncErrors;\n};\n\nexport default asyncValidate;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"DriveThroughRoutePointPicker__wrap___uU1Ml\",\"geo-suggest\":\"DriveThroughRoutePointPicker__geo-suggest___GOwWB\",\"triangle\":\"DriveThroughRoutePointPicker__triangle___BTTYJ\",\"triangle--has-remove-control\":\"DriveThroughRoutePointPicker__triangle--has-remove-control___eBwZE\",\"fadeIn\":\"DriveThroughRoutePointPicker__fadeIn___iubyg\",\"blinking\":\"DriveThroughRoutePointPicker__blinking___YC6RS\"};","export enum FieldsEnum {\n    reason = 'reason',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.reason]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","// extracted by mini-css-extract-plugin\nexport default {\"model\":\"AssetCell__model___41gL9\",\"not-assigned\":\"AssetCell__not-assigned___DotCG\",\"fadeIn\":\"AssetCell__fadeIn___b5yeL\",\"blinking\":\"AssetCell__blinking___yj1hi\"};","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"DriverFiltersSidebarContent__form___WPPWc\",\"block\":\"DriverFiltersSidebarContent__block___wKIPg\",\"block__title\":\"DriverFiltersSidebarContent__block__title___b97cc\",\"selected-filters\":\"DriverFiltersSidebarContent__selected-filters___gdlnV\",\"time-picker\":\"DriverFiltersSidebarContent__time-picker___mVz0P\",\"trailer-type\":\"DriverFiltersSidebarContent__trailer-type___uQcHg\",\"fadeIn\":\"DriverFiltersSidebarContent__fadeIn___TUqkE\",\"blinking\":\"DriverFiltersSidebarContent__blinking___fx_JP\"};","import { CountryCodeT } from 'common/utils/api/models';\nimport { StatisticSourceEnum } from 'broker-admin/utils/api/broker-tranziit/models';\n\nexport enum QueryFiltersKeysEnum {\n    dataSource = 'data-source',\n    fromCountryCode = 'from-country-code',\n    fromZipCode = 'from-zip-code',\n    toCountryCode = 'to-country-code',\n    toZipCode = 'to-zip-code',\n    shipperId = 'shipper-id',\n    shipperName = 'shipper-name',\n    carrierId = 'carrier-id',\n    carrierName = 'carrier-name',\n}\n\nexport enum QueryKeysEnum {\n    statsFilters = 'stats-filters',\n    statsGranularity = 'stats-granularity',\n    statsFrom = 'stats-from',\n    statsTo = 'stats-to',\n}\n\nexport type QueryFiltersT = Partial<{\n    [QueryFiltersKeysEnum.dataSource]: StatisticSourceEnum;\n    [QueryFiltersKeysEnum.fromCountryCode]: CountryCodeT | null;\n    [QueryFiltersKeysEnum.fromZipCode]: string;\n    [QueryFiltersKeysEnum.toCountryCode]: CountryCodeT | null;\n    [QueryFiltersKeysEnum.toZipCode]: string;\n    [QueryFiltersKeysEnum.shipperId]: CompanyIdT | null;\n    [QueryFiltersKeysEnum.shipperName]: CompanyIdT | null;\n    [QueryFiltersKeysEnum.carrierId]: CompanyIdT | null;\n    [QueryFiltersKeysEnum.carrierName]: CompanyIdT | null;\n}>;\n\nexport type QueryT = Partial<{\n    [QueryKeysEnum.statsFilters]: string;\n    [QueryKeysEnum.statsGranularity]: string;\n    [QueryKeysEnum.statsFrom]: string;\n    [QueryKeysEnum.statsTo]: string;\n}>;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './ColoredDiff.scss';\nimport { CSSProperties } from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport isNumber from 'lodash/isNumber';\n\nexport type ColoredDiffPropsT = {\n    className?: string;\n    diff: number | null;\n    isInverted?: boolean;\n    isNotActual?: boolean;\n    customNotNumberColor?: StyleGuideColorsEnum;\n    customPositiveColor?: StyleGuideColorsEnum;\n    customNegativeColor?: StyleGuideColorsEnum;\n};\n\nconst cx = classNames.bind(styles);\n\nconst ColoredDiff: React.FC<ColoredDiffPropsT> = React.memo((props) => {\n    const {\n        className,\n        diff,\n        isInverted,\n        isNotActual,\n        children,\n        customNotNumberColor,\n        customPositiveColor,\n        customNegativeColor,\n    } = props;\n\n    const style: CSSProperties = {};\n\n    if (!isNumber(diff)) {\n        if (customNotNumberColor) {\n            style.color = customNotNumberColor;\n        }\n\n        return (\n            <span className={cs(cx('not-number'), className)} style={style}>\n                {children}\n            </span>\n        );\n    }\n\n    const isPositive = isInverted ? diff < 0 : diff > 0;\n    const isNegative = isInverted ? diff > 0 : diff < 0;\n\n    if (isPositive && customPositiveColor) {\n        style.color = customPositiveColor;\n    }\n\n    if (isNegative && customNegativeColor) {\n        style.color = customNegativeColor;\n    }\n\n    if (isNotActual && customNotNumberColor) {\n        style.color = customNotNumberColor;\n    }\n\n    return (\n        <span\n            className={cs(\n                cx('margin', {\n                    'margin--positive': isPositive,\n                    'margin--negative': isNegative,\n                    'margin--not-actual': isNotActual,\n                }),\n                className,\n            )}\n            style={style}\n        >\n            {children}\n        </span>\n    );\n});\n\nexport default ColoredDiff;\n","import {\n    CREATE_PARTNER_REQUEST,\n    CREATE_PARTNER_REQUEST_BEGIN,\n    CREATE_PARTNER_REQUEST_ERROR,\n    CREATE_PARTNER_REQUEST_SUCCESS,\n    CreatePartnerRequestActionT,\n    CreatePartnerRequestBeginActionT,\n    CreatePartnerRequestErrorActionT,\n    CreatePartnerRequestSuccessActionT,\n    CREATE_FROM_EXTERNAL_PLATFORM_PARTNER_REQUEST,\n    CreateFromExternalPlatformPartnerActionT,\n    FETCH_PARTNERS_PAGE_REQUEST,\n    FETCH_PARTNERS_PAGE_REQUEST_BEGIN,\n    FETCH_PARTNERS_PAGE_REQUEST_ERROR,\n    FETCH_PARTNERS_PAGE_REQUEST_SUCCESS,\n    FetchPartnersPageActionT,\n    FetchPartnersPageBeginActionT,\n    FetchPartnersPageErrorActionT,\n    FetchPartnersPageSuccessActionT,\n    INVITE_PARTNER_REQUEST,\n    InvitePartnerRequestActionT,\n    RESET_PARTNERS,\n    ResetPartnersActionT,\n} from './types';\nimport { FetchPartnersPageQueryT, PartnerT } from './models';\n\nimport { ApiInvitePartnerRequestT, ApiPartnerCreationRequestT } from 'common/utils/api/models';\nimport { PageResponseT } from 'common/utils/pagination/models';\n\nexport const fetchPartnersPage = (\n    pageNumber: PageNumberT,\n    query: FetchPartnersPageQueryT,\n    options?: FetchOptionsT,\n): FetchPartnersPageActionT => {\n    return {\n        type: FETCH_PARTNERS_PAGE_REQUEST,\n        query,\n        pageNumber,\n        options,\n    };\n};\n\nexport const fetchPartnersPageBegin = (\n    query: FetchPartnersPageQueryT,\n    pageNumber: PageNumberT,\n): FetchPartnersPageBeginActionT => ({\n    type: FETCH_PARTNERS_PAGE_REQUEST_BEGIN,\n    query,\n    pageNumber,\n});\n\nexport const fetchPartnersPageSuccess = (\n    query: FetchPartnersPageQueryT,\n    pageNumber: PageNumberT,\n    pageResponse: PageResponseT<PartnerT> | null,\n): FetchPartnersPageSuccessActionT => ({\n    type: FETCH_PARTNERS_PAGE_REQUEST_SUCCESS,\n    query,\n    pageResponse,\n    pageNumber,\n});\n\nexport const fetchPartnersPageError = (\n    query: FetchPartnersPageQueryT,\n    pageNumber: PageNumberT,\n    error: Error,\n): FetchPartnersPageErrorActionT => ({\n    type: FETCH_PARTNERS_PAGE_REQUEST_ERROR,\n    query,\n    error,\n    pageNumber,\n});\n\nexport const resetPartners = (mutationListOptions: MutationListOptionsT): ResetPartnersActionT => ({\n    type: RESET_PARTNERS,\n    mutationListOptions,\n});\n\nexport const invitePartnerRequest = (data: ApiInvitePartnerRequestT): InvitePartnerRequestActionT => ({\n    type: INVITE_PARTNER_REQUEST,\n    data,\n});\n\nexport const createPartnerRequest = (data: ApiPartnerCreationRequestT): CreatePartnerRequestActionT => ({\n    type: CREATE_PARTNER_REQUEST,\n    data,\n});\n\nexport const createPartnerRequestBegin = (): CreatePartnerRequestBeginActionT => ({\n    type: CREATE_PARTNER_REQUEST_BEGIN,\n});\n\nexport const createPartnerRequestError = (error: Error): CreatePartnerRequestErrorActionT => ({\n    type: CREATE_PARTNER_REQUEST_ERROR,\n    error,\n});\n\nexport const createPartnerRequestSuccess = (): CreatePartnerRequestSuccessActionT => ({\n    type: CREATE_PARTNER_REQUEST_SUCCESS,\n});\n\nexport const createFromExternalPlatformPartner = (\n    businessPartnerId: PartnerIdT,\n): CreateFromExternalPlatformPartnerActionT => ({\n    type: CREATE_FROM_EXTERNAL_PLATFORM_PARTNER_REQUEST,\n    businessPartnerId,\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"AssignTriggerLabel__option___a6ddo\",\"model-and-plate-number\":\"AssignTriggerLabel__model-and-plate-number___ExotY\",\"model-and-plate-number--isDisabled\":\"AssignTriggerLabel__model-and-plate-number--isDisabled___cScWr\",\"trigger-rate-mode\":\"AssignTriggerLabel__trigger-rate-mode___zPaLS\",\"spacer\":\"AssignTriggerLabel__spacer___xmFRK\",\"price\":\"AssignTriggerLabel__price___YWvlI\",\"price--isDisabled\":\"AssignTriggerLabel__price--isDisabled___WCMGw\",\"reset\":\"AssignTriggerLabel__reset___Z9iRi\",\"details\":\"AssignTriggerLabel__details____qw4f\",\"fadeIn\":\"AssignTriggerLabel__fadeIn___lWOH6\",\"blinking\":\"AssignTriggerLabel__blinking___uuemO\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"ModalDialog__wrap___JEA3F\",\"wrap--hasTopPadding\":\"ModalDialog__wrap--hasTopPadding___BJydS\",\"content\":\"ModalDialog__content___WmI6X\",\"icon\":\"ModalDialog__icon____FHt5\",\"title\":\"ModalDialog__title___AyQmt\",\"message\":\"ModalDialog__message___HZBrI\",\"fadeIn\":\"ModalDialog__fadeIn___gEIZT\",\"blinking\":\"ModalDialog__blinking___elgUF\"};","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './TopBarContent.scss';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    className?: string;\n    testSelector?: string;\n    leftNode?: React.ReactNode;\n    title?: React.ReactNode;\n    afterTitle?: React.ReactNode;\n    rightNode?: React.ReactNode;\n};\n\nconst TopBarContent: React.FC<PropsT> = React.memo((props) => {\n    const { title, afterTitle, leftNode, rightNode, className, testSelector } = props;\n\n    return (\n        <div className={cs(cx('content'), className)} data-test-selector={`${testSelector}_top-bar-content`}>\n            <div className={cx('left-content')}>\n                {leftNode && <div className={cx('left-node')}>{leftNode}</div>}\n                {title && <div className={cx('title')}>{title}</div>}\n                {afterTitle && <div className={cx('after-title')}>{afterTitle}</div>}\n            </div>\n            {rightNode && <div className={cx('right-node')}>{rightNode}</div>}\n        </div>\n    );\n});\n\nexport default TopBarContent;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './ValidPeriodCell.scss';\nimport { RuleT } from 'broker-admin/store/price-settings/rules/models';\nimport { clearDateTimezone, formatDate } from 'common/utils/time';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    rule: RuleT;\n};\n\nconst cx = classNames.bind(styles);\n\nconst DATE_FORMAT = 'DD MMM, YYYY';\n\nconst ValidPeriodCell: React.FC<PropsT> = React.memo((props) => {\n    const { rule } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <div>\n            <div className={cx('date')}>{formatDate(DATE_FORMAT, clearDateTimezone(rule.validFrom))}</div>\n            <div className={cx('date')}>\n                {rule.validTill\n                    ? formatDate(DATE_FORMAT, clearDateTimezone(rule.validTill))\n                    : t('price-settings.rules.forever')}\n            </div>\n        </div>\n    );\n});\n\nexport default ValidPeriodCell;\n","import React, { useEffect, useMemo } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './EditContactDetailsSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useFormik } from 'formik';\nimport { FieldsEnum, FormValuesT, MEDIA_FIELDS_NAME } from './constants';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { ContactPositionsEnum } from 'common/utils/api/models';\nimport { uppercaseFirstCharacterFormatter } from 'common/utils/form-formatters';\nimport CountryDropdown from 'common/components/dropdowns/CountryDropdown/CountryDropdown';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport prepareApiContact from './prepare-api-contact';\nimport Input from 'common/components/Input/Input';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport FieldGroup, { FieldGroupEmptyItem } from 'common/components/FieldGroup/FieldGroup';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport LanguageSelector from 'common/components/LanguageSelector/LanguageSelector';\nimport { CompanyContactDetailsT } from 'common/store/members/models';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport DatePicker, {\n    DatePickerOverlayPositionEnum,\n    datePicketRangePresets,\n} from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport Checkbox from 'design-system/components/Checkbox/Checkbox';\nimport { AUTO_COMPLETE_OFF_FIX, SocialMediaEnum, StyleGuideColorsEnum } from 'common/constants';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport PhoneNumberInput from 'common/components/PhoneNumberInput/PhoneNumberInput';\nimport UserFormalDropdown from 'common/components/dropdowns/UserFormalDropdown/UserFormalDropdown';\nimport { logWarning } from 'common/utils/logger';\nimport PositionOption from 'common/layouts/Members/PositionOption/PositionOption';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectAddMemberRequest,\n    selectContactDetailsById,\n    selectFetchContactDetailsRequest,\n    selectUpdateMemberRequest,\n} from 'common/store/members/selectors';\nimport AddOtherMessengerDropdown from './AddOtherMessengerDropdown/AddOtherMessengerDropdown';\nimport { addContact, fetchContactDetails, updateContact } from 'common/store/members/actions';\nimport { CommonSidebarDataT, SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { EditContactDetailsSidebarDataT } from './models';\nimport noop from 'lodash/noop';\nimport ContactSidebarHeader from 'common/layouts/Members/ContactSidebarHeader/ContactSidebarHeader';\nimport useCloseSidebarAfterRequest from 'common/utils/hooks/useCloseSidebarAfterRequest';\nimport values from 'lodash/values';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport FormUnsavedValuesColoredStatus from 'common/components/status-colored/FormUnsavedValuesColoredStatus/FormUnsavedValuesColoredStatus';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport MainContactUnavailableReasonLabel from 'common/components/papers/labels/MainContactUnavailableReasonLabel/MainContactUnavailableReasonLabel';\n\nconst ALL_FIELDS = values(FieldsEnum);\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(ALL_FIELDS);\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = SidebarContentPropsT<EditContactDetailsSidebarDataT, CommonSidebarDataT>;\n\nconst EditContactDetailsSidebarContent: React.FC<PropsT> = (props) => {\n    const { data, onClose, onGoBack, setNeedCloseConfirmation } = props;\n\n    const { partnerId } = data;\n\n    const dispatch = useDispatch();\n\n    const { t } = useTranslation();\n\n    const contactDetailsRequestStatus = useSelector(selectFetchContactDetailsRequest);\n    const isLoading = contactDetailsRequestStatus.loading;\n\n    const contactDetailsById = useSelector(selectContactDetailsById);\n\n    const isNewContact = 'isNewContact' in data && data.isNewContact;\n\n    const contactDetails: CompanyContactDetailsT | null = useMemo(() => {\n        if ('contactId' in data) {\n            return contactDetailsById[data.contactId] || null;\n        }\n\n        if (isNewContact) {\n            return null;\n        }\n\n        return null;\n    }, [data, contactDetailsById, isNewContact]);\n\n    const addMemberRequestStatus = useSelector(selectAddMemberRequest(partnerId));\n    const updateMemberRequestStatus = useSelector(selectUpdateMemberRequest(partnerId));\n\n    const updateRequestStatus = useMemo(() => {\n        if ('contactId' in data) {\n            return updateMemberRequestStatus;\n        }\n\n        if (isNewContact) {\n            return addMemberRequestStatus;\n        }\n\n        return null;\n    }, [data, updateMemberRequestStatus, addMemberRequestStatus, isNewContact]);\n\n    useCloseSidebarAfterRequest(updateRequestStatus, onGoBack || onClose);\n\n    React.useEffect(() => {\n        if ('contactId' in data) {\n            dispatch(fetchContactDetails(data.contactId));\n        }\n    }, [data, dispatch]);\n\n    const hasUser = !!contactDetails?.userId;\n    const isAllowEditEmail = isNewContact || !hasUser;\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues(contactDetails);\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [contactDetails]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const apiContact = prepareApiContact(values);\n\n            if (isNewContact) {\n                dispatch(addContact(apiContact, partnerId));\n            } else if ('contactId' in data) {\n                dispatch(updateContact(data.contactId, apiContact, partnerId));\n            } else {\n                logWarning('failed submit edit contact form, empty contact id or not new contact');\n            }\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const handleSelectPosition = (value: ContactPositionsEnum): void => {\n        formik.setFieldValue(FieldsEnum.position, value);\n    };\n\n    const handleSelectLanguage = (langCode: string | undefined | null): void => {\n        if (!langCode) {\n            return;\n        }\n\n        formik.setFieldValue(FieldsEnum.language, langCode);\n    };\n\n    const [lastAddedMediaField, setLastAddedMediaField] = React.useState<SocialMediaEnum | null>(null);\n\n    const renderRadioButton = (position: ContactPositionsEnum) => {\n        return (\n            <PositionOption\n                className={cx('radio')}\n                value={position}\n                selectedValue={formik.values[FieldsEnum.position]}\n                onChange={handleSelectPosition}\n            />\n        );\n    };\n\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n    useEffect(() => {\n        setNeedCloseConfirmation(hasAnyFieldValueChanges);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasAnyFieldValueChanges]);\n\n    const isDisabledSubmit = (!isNewContact && !hasAnyFieldValueChanges) || updateRequestStatus?.loading;\n\n    const hasChangeHighlight = !isNewContact && formik.values[FieldsEnum.id] === contactDetails?.id;\n\n    const mainContactUnavailableReason = contactDetails?.mainContactUnavailableReason || null;\n    const isMakeDefaultContactCheckboxDisabled = Boolean(mainContactUnavailableReason);\n\n    const isShowNotSaveStatus = !isNewContact && hasAnyFieldValueChanges && hasChangeHighlight;\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('form')}>\n            {isLoading && <LoaderOverlay />}\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent\n                    onGoBack={onGoBack ? () => onGoBack({ needCloseConfirmation: false }) : null}\n                    title={\n                        isNewContact ? (\n                            t('common:team-members.edit-contact.title')\n                        ) : (\n                            <ContactSidebarHeader contactDetails={contactDetails} />\n                        )\n                    }\n                    rightNode={isShowNotSaveStatus && <FormUnsavedValuesColoredStatus />}\n                    onClose={onClose ? () => onClose({ needCloseConfirmation: false }) : null}\n                />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <div className={cx('section')}>\n                    <div className={cx('section__title')}>{t('common:team-members.edit-contact.sections.name')}</div>\n                    <div className={cx('section__block')}>\n                        <FieldGroup>\n                            <FormikField\n                                className={cx('field--formal')}\n                                name={FieldsEnum.formal}\n                                error={formik.errors[FieldsEnum.formal]}\n                                meta={formik.getFieldMeta(FieldsEnum.formal)}\n                                label={t('common:team-members.edit-contact.fields.formal.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <UserFormalDropdown\n                                        value={formik.values[FieldsEnum.formal]}\n                                        onChange={props.onChange}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                        hasChanges={hasChangeHighlight && props.hasChanges}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        placeholder={t('common:team-members.edit-contact.fields.formal.placeholder')}\n                                    />\n                                )}\n                            </FormikField>\n                            <FormikField\n                                className={cx('field--first-name')}\n                                name={FieldsEnum.firstName}\n                                error={formik.errors[FieldsEnum.firstName]}\n                                meta={formik.getFieldMeta(FieldsEnum.firstName)}\n                                label={t('common:team-members.edit-contact.fields.first-name.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <Input\n                                        name={FieldsEnum.firstName}\n                                        value={formik.values[FieldsEnum.firstName]}\n                                        formatter={uppercaseFirstCharacterFormatter}\n                                        onChange={props.onChange}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                        hasChanges={hasChangeHighlight && props.hasChanges}\n                                    />\n                                )}\n                            </FormikField>\n                            <FormikField\n                                className={cx('field--last-name')}\n                                name={FieldsEnum.lastName}\n                                error={formik.errors[FieldsEnum.lastName]}\n                                meta={formik.getFieldMeta(FieldsEnum.lastName)}\n                                label={t('common:team-members.edit-contact.fields.last-name.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <Input\n                                        name={FieldsEnum.lastName}\n                                        value={formik.values[FieldsEnum.lastName]}\n                                        formatter={uppercaseFirstCharacterFormatter}\n                                        onChange={props.onChange}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                        hasChanges={hasChangeHighlight && props.hasChanges}\n                                    />\n                                )}\n                            </FormikField>\n                        </FieldGroup>\n                    </div>\n                </div>\n                <div className={cx('section')}>\n                    <div className={cx('section__title')}>\n                        {t('common:team-members.edit-contact.sections.position')}\n                    </div>\n                    <div className={cx('section__block')}>\n                        <div className={cx('fields-group')}>\n                            <div className={cx('fields-group__field', 'fields-group__field--two')}>\n                                {renderRadioButton(ContactPositionsEnum.operator)}\n                                {renderRadioButton(ContactPositionsEnum.sales)}\n                                {renderRadioButton(ContactPositionsEnum.it)}\n                            </div>\n                            <div className={cx('fields-group__field', 'fields-group__field--two')}>\n                                {renderRadioButton(ContactPositionsEnum.management)}\n                                {renderRadioButton(ContactPositionsEnum.owner)}\n                                <FormikField\n                                    name={FieldsEnum.isDefault}\n                                    error={formik.errors[FieldsEnum.isDefault]}\n                                    meta={formik.getFieldMeta(FieldsEnum.isDefault)}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                    withoutLabel\n                                >\n                                    {(props) => (\n                                        <Tooltip\n                                            position={TooltipPositionEnum.topCenter}\n                                            theme={TooltipThemeEnum.black}\n                                            tooltipNode={\n                                                isMakeDefaultContactCheckboxDisabled ? (\n                                                    <TooltipContent theme={TooltipContentThemeEnum.black} width={200}>\n                                                        <MainContactUnavailableReasonLabel\n                                                            reason={mainContactUnavailableReason}\n                                                        />\n                                                    </TooltipContent>\n                                                ) : null\n                                            }\n                                        >\n                                            {() => (\n                                                <Checkbox\n                                                    isDisabled={isMakeDefaultContactCheckboxDisabled}\n                                                    label={t('common:team-members.edit-contact.fields.default.label')}\n                                                    checked={!!formik.values[FieldsEnum.isDefault]}\n                                                    onChange={() => {\n                                                        props.onChange(!formik.values[FieldsEnum.isDefault]);\n                                                    }}\n                                                />\n                                            )}\n                                        </Tooltip>\n                                    )}\n                                </FormikField>\n                            </div>\n                        </div>\n                    </div>\n                </div>\n                <div className={cx('section')}>\n                    <div className={cx('section__title')}>\n                        {t('common:team-members.edit-contact.sections.contacts')}\n                    </div>\n                    <div className={cx('section__block')}>\n                        <FieldGroup>\n                            {isAllowEditEmail ? (\n                                <FormikField\n                                    className={cx('field--email')}\n                                    name={FieldsEnum.email}\n                                    error={formik.errors[FieldsEnum.email]}\n                                    meta={formik.getFieldMeta(FieldsEnum.email)}\n                                    label={t('common:team-members.edit-contact.fields.email.label')}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                >\n                                    {(props) => (\n                                        <Input\n                                            name={FieldsEnum.email}\n                                            value={formik.values[FieldsEnum.email]}\n                                            onChange={props.onChange}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                            hasError={props.hasError}\n                                            hasWarning={props.hasWarning}\n                                            hasChanges={hasChangeHighlight && props.hasChanges}\n                                        />\n                                    )}\n                                </FormikField>\n                            ) : (\n                                <ReadOnlyField\n                                    className={cx('field--email')}\n                                    label={t('common:team-members.edit-contact.fields.email.label')}\n                                    value={formik.values[FieldsEnum.email]}\n                                />\n                            )}\n                            <FormikField\n                                className={cx('field--mobile-phone')}\n                                name={FieldsEnum.mobilePhone}\n                                error={formik.errors[FieldsEnum.mobilePhone]}\n                                meta={formik.getFieldMeta(FieldsEnum.mobilePhone)}\n                                label={t('common:team-members.edit-contact.fields.mobile-phone.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <PhoneNumberInput\n                                        name={FieldsEnum.mobilePhone}\n                                        value={formik.values[FieldsEnum.mobilePhone]}\n                                        onChange={props.onChange}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                        hasChanges={hasChangeHighlight && props.hasChanges}\n                                    />\n                                )}\n                            </FormikField>\n                        </FieldGroup>\n                        <FieldGroup>\n                            <FormikField\n                                className={cx('field--desktop-phone')}\n                                name={FieldsEnum.desktopPhone}\n                                error={formik.errors[FieldsEnum.desktopPhone]}\n                                meta={formik.getFieldMeta(FieldsEnum.desktopPhone)}\n                                label={t('common:team-members.edit-contact.fields.desktop-phone.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <PhoneNumberInput\n                                        name={FieldsEnum.desktopPhone}\n                                        value={formik.values[FieldsEnum.desktopPhone]}\n                                        onChange={props.onChange}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                        hasChanges={hasChangeHighlight && props.hasChanges}\n                                    />\n                                )}\n                            </FormikField>\n                            <FormikField\n                                className={cx('field--fax-number')}\n                                name={FieldsEnum.faxNumber}\n                                error={formik.errors[FieldsEnum.faxNumber]}\n                                meta={formik.getFieldMeta(FieldsEnum.faxNumber)}\n                                label={t('common:team-members.edit-contact.fields.fax-number.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <Input\n                                        name={FieldsEnum.faxNumber}\n                                        value={formik.values[FieldsEnum.faxNumber]}\n                                        onChange={props.onChange}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                        hasChanges={hasChangeHighlight && props.hasChanges}\n                                    />\n                                )}\n                            </FormikField>\n                        </FieldGroup>\n                        <FormikField\n                            name={FieldsEnum.webpageLink}\n                            error={formik.errors[FieldsEnum.webpageLink]}\n                            meta={formik.getFieldMeta(FieldsEnum.webpageLink)}\n                            label={t('common:team-members.edit-contact.fields.webpage-link.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <Input\n                                    name={FieldsEnum.webpageLink}\n                                    value={formik.values[FieldsEnum.webpageLink]}\n                                    onChange={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                    hasChanges={hasChangeHighlight && props.hasChanges}\n                                />\n                            )}\n                        </FormikField>\n                        {MEDIA_FIELDS_NAME.map((media) => {\n                            const mediaValue = formik.values[media];\n\n                            if (typeof mediaValue !== 'string') {\n                                return null;\n                            }\n\n                            return (\n                                <FormikField\n                                    key={media}\n                                    name={media}\n                                    error={formik.errors[media]}\n                                    meta={formik.getFieldMeta(media)}\n                                    label={t(`common:team-members.edit-contact.fields.${media}.label`)}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                >\n                                    {(props) => (\n                                        <div className={cx('media')}>\n                                            <Input\n                                                name={media}\n                                                className={cx('media__input')}\n                                                value={mediaValue}\n                                                onChange={props.onChange}\n                                                onBlur={props.onBlur}\n                                                onFocus={props.onFocus}\n                                                hasError={props.hasError}\n                                                hasWarning={props.hasWarning}\n                                                hasChanges={hasChangeHighlight && props.hasChanges}\n                                                autoFocus={lastAddedMediaField === media}\n                                            />\n                                            <TransparentTrigger\n                                                className={cx('media__icon')}\n                                                onClick={() => {\n                                                    formik.setFieldValue(media, undefined);\n                                                }}\n                                                leftIcon={<CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                                                reflectionTheme={ReflectionThemeEnum.light}\n                                            />\n                                        </div>\n                                    )}\n                                </FormikField>\n                            );\n                        })}\n                        <AddOtherMessengerDropdown\n                            formValues={formik.values}\n                            onCreateField={(socialMedia) => {\n                                setLastAddedMediaField(socialMedia);\n                                formik.setFieldValue(socialMedia, '');\n                            }}\n                        />\n                    </div>\n                </div>\n                <div className={cx('section')}>\n                    <div className={cx('section__title')}>\n                        {t('common:team-members.edit-contact.sections.personals')}\n                    </div>\n                    <div className={cx('section__block')}>\n                        <FieldGroup>\n                            <FormikField\n                                className={cx('field--birthday')}\n                                name={FieldsEnum.birthday}\n                                error={formik.errors[FieldsEnum.birthday]}\n                                meta={formik.getFieldMeta(FieldsEnum.birthday)}\n                                label={t('common:team-members.edit-contact.fields.birthday.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <DatePicker\n                                        {...datePicketRangePresets.birthday}\n                                        hasYearMonthForm\n                                        name={FieldsEnum.birthday}\n                                        value={formik.values[FieldsEnum.birthday]}\n                                        initialValue={initialValues[FieldsEnum.birthday]}\n                                        placeholder={t('common:team-members.edit-contact.fields.birthday.placeholder')}\n                                        onChange={props.onChange}\n                                        overlayPosition={DatePickerOverlayPositionEnum.topLeft}\n                                        hasWarning={props.hasWarning}\n                                        hasError={props.hasError}\n                                        hasChanges={hasChangeHighlight && props.hasChanges}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        autoComplete={AUTO_COMPLETE_OFF_FIX}\n                                        hasClearControl\n                                    />\n                                )}\n                            </FormikField>\n                            <FormikField\n                                className={cx('field--country')}\n                                name={FieldsEnum.countryCode}\n                                error={formik.errors[FieldsEnum.countryCode]}\n                                label={t('common:team-members.edit-contact.fields.residence.label')}\n                                meta={formik.getFieldMeta(FieldsEnum.countryCode)}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <CountryDropdown\n                                        value={formik.values[FieldsEnum.countryCode]}\n                                        onChange={(countryCode) => {\n                                            props.onChange(countryCode);\n                                        }}\n                                        overlayPosition={DropdownOverlayPositionEnum.topLeft}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasChanges={hasChangeHighlight && props.hasChanges}\n                                    />\n                                )}\n                            </FormikField>\n                        </FieldGroup>\n                        <FieldGroup>\n                            <FormikField\n                                className={cx('field--language')}\n                                name={FieldsEnum.language}\n                                error={formik.errors[FieldsEnum.language]}\n                                label={t('common:team-members.edit-contact.fields.language.label')}\n                                meta={formik.getFieldMeta(FieldsEnum.language)}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <LanguageSelector\n                                        value={formik.values[FieldsEnum.language]}\n                                        onChange={handleSelectLanguage}\n                                        overlayPosition={DropdownOverlayPositionEnum.topLeft}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasChanges={hasChangeHighlight && props.hasChanges}\n                                    />\n                                )}\n                            </FormikField>\n                            <FieldGroupEmptyItem className={cx('field--language')} />\n                        </FieldGroup>\n                    </div>\n                </div>\n            </SideBarLayout>\n            <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n            <FooterSideBarLayout hasPaddings>\n                <div className={cx('actions')}>\n                    {!isNewContact && (\n                        <Button\n                            theme={ButtonThemeEnum.secondary}\n                            onClick={onGoBack ? () => onGoBack({ needCloseConfirmation: false }) : noop}\n                            className={cx('actions__action', 'actions__action--isDiscard')}\n                        >\n                            {t('common:team-members.edit-contact.discard-changes')}\n                        </Button>\n                    )}\n                    <Button\n                        theme={ButtonThemeEnum.primary}\n                        isDisabled={isDisabledSubmit}\n                        isLoading={updateRequestStatus?.loading}\n                        className={cx('actions__action')}\n                        type=\"submit\"\n                    >\n                        {isNewContact\n                            ? t('common:team-members.edit-contact.add-contact')\n                            : t('common:team-members.edit-contact.update-contact')}\n                    </Button>\n                </div>\n            </FooterSideBarLayout>\n        </form>\n    );\n};\n\nexport default EditContactDetailsSidebarContent;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ControlLoaderWithShadow.scss';\nimport cs from 'classnames';\n\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport isNumber from 'lodash/isNumber';\n\nconst DEFAULT_OPACITY = 0.7;\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    opacity?: number;\n    size?: number;\n    className?: string;\n    fillColor: StyleGuideColorsEnum;\n};\n\nconst ControlLoaderWithShadow: React.FC<PropsT> = (props) => {\n    const { className, opacity, fillColor, size } = props;\n\n    return (\n        <div className={cs(cx('wrap'), className)}>\n            <ControlLoaderIcon\n                opacity={isNumber(opacity) ? opacity : DEFAULT_OPACITY}\n                fillColor={fillColor}\n                size={size || DEFAULT_ICON_SIZE}\n            />\n        </div>\n    );\n};\n\nexport default ControlLoaderWithShadow;\n","import {\n    AdditionalServicesActionT,\n    AdditionalServicesStateT,\n    FETCH_ADDITIONAL_SERVICES_REQUEST_BEGIN,\n    FETCH_ADDITIONAL_SERVICES_REQUEST_ERROR,\n    FETCH_ADDITIONAL_SERVICES_REQUEST_SUCCESS,\n    UPDATE_ADDITIONAL_SERVICE_REQUEST_BEGIN,\n    UPDATE_ADDITIONAL_SERVICE_REQUEST_ERROR,\n    UPDATE_ADDITIONAL_SERVICE_REQUEST_SUCCESS,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: AdditionalServicesStateT = {\n    list: [],\n    updateRequest: requestStatus.initial,\n    fetchRequest: requestStatus.initial,\n};\n\nexport default (\n    state = initialState,\n    action: AdditionalServicesActionT | DestroySessionActionT,\n): AdditionalServicesStateT => {\n    switch (action.type) {\n        case FETCH_ADDITIONAL_SERVICES_REQUEST_BEGIN: {\n            return {\n                ...state,\n                fetchRequest: requestStatus.loading,\n            };\n        }\n\n        case FETCH_ADDITIONAL_SERVICES_REQUEST_SUCCESS: {\n            return {\n                ...state,\n                list: action.list,\n                fetchRequest: requestStatus.ok,\n            };\n        }\n\n        case FETCH_ADDITIONAL_SERVICES_REQUEST_ERROR: {\n            return {\n                ...state,\n                fetchRequest: requestStatus.setError(action.error),\n            };\n        }\n\n        case UPDATE_ADDITIONAL_SERVICE_REQUEST_BEGIN: {\n            return {\n                ...state,\n                updateRequest: requestStatus.loading,\n            };\n        }\n\n        case UPDATE_ADDITIONAL_SERVICE_REQUEST_SUCCESS: {\n            const { changes } = action;\n\n            if (!state.list) {\n                return state;\n            }\n\n            const newList = state.list.map((group) => {\n                const isSuitableGroupChanges = changes?.filter((item) => {\n                    return item.trailerType === group.trailerType || (!item.trailerType && !group.trailerType);\n                });\n                if (!isSuitableGroupChanges) {\n                    return group;\n                }\n\n                return {\n                    ...group,\n                    services: group.services.map((serviceItem) => {\n                        const targetChange =\n                            changes?.find((changesItem) => {\n                                return changesItem.service === serviceItem.service;\n                            }) || null;\n\n                        if (!targetChange) {\n                            return serviceItem;\n                        }\n\n                        return {\n                            ...serviceItem,\n                            itemCost: targetChange.itemCost,\n                        };\n                    }),\n                };\n            });\n\n            return {\n                ...state,\n                list: newList,\n                updateRequest: requestStatus.ok,\n            };\n        }\n\n        case UPDATE_ADDITIONAL_SERVICE_REQUEST_ERROR: {\n            return {\n                ...state,\n                updateRequest: requestStatus.setError(action.error),\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default:\n            return state;\n    }\n};\n","import React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './DictTrailerMultipleDropdown.scss';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\n\nimport { ApiTrailerDictTypeT, ApiTrailerTypeT } from 'common/utils/api/models';\nimport TrailerIcon, { TrailerIconProps } from 'common/icons/TrailerIcon';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectTrailersDict, selectTrailersDictRequest } from 'common/store/trailers-dict/selectors';\nimport { useTranslation } from 'react-i18next';\nimport { fetchTrailersDict } from 'common/store/trailers-dict/actions';\nimport flatten from 'lodash/flatten';\nimport DropdownMultipleInput, {\n    RenderTriggerPropsT,\n} from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInput';\nimport DropdownBaseButtonTrigger from 'design-system/components/dropdowns/base/DropdownBaseButtonTrigger/DropdownBaseButtonTrigger';\nimport DropdownMultipleInputCountLabel from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInputCountLabel/DropdownMultipleInputCountLabel';\n\nenum TrailerIconTypesEnum {\n    default = 'default',\n}\n\nconst cx = classNames.bind(styles);\n\ntype OptionValueT = TrailerDictIdT | null;\n\ntype PropsT = {\n    selectedTrailerType?: ApiTrailerTypeT | null;\n    placeholder?: string;\n    values: Array<OptionValueT>;\n    isDisabled?: boolean;\n    onChange: (values: Array<OptionValueT>) => void;\n    hasWarning: boolean;\n    hasError: boolean;\n    hasChanges?: boolean;\n    onBlur: () => void;\n    onFocus: () => void;\n    hasClearControl?: boolean;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    isShortLabel?: boolean;\n};\n\ntype TrailerDropdownOptionT = {\n    value: OptionValueT;\n    label: string;\n    iconType: TrailerIconTypesEnum;\n};\n\nconst DictTrailerMultipleDropdown: React.FC<PropsT> = React.memo((props) => {\n    const {\n        selectedTrailerType,\n        values,\n        placeholder,\n        onChange,\n        isDisabled,\n        hasWarning,\n        hasError,\n        hasChanges,\n        onBlur,\n        onFocus,\n        hasClearControl,\n        overlayPosition,\n        isShortLabel,\n    } = props;\n\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n\n    const trailersDict = useSelector(selectTrailersDict);\n    const fetchRequest = useSelector(selectTrailersDictRequest);\n\n    React.useEffect(() => {\n        dispatch(fetchTrailersDict());\n    }, [dispatch]);\n\n    const rawTrailerOptions = React.useMemo((): ApiTrailerDictTypeT[] => {\n        if (!selectedTrailerType) {\n            return flatten(Object.values(trailersDict || {}));\n        }\n\n        return trailersDict?.[selectedTrailerType as string] || [];\n    }, [trailersDict, selectedTrailerType]);\n\n    const trailerOptions = React.useMemo((): TrailerDropdownOptionT[] => {\n        return rawTrailerOptions.map((trailer) => ({\n            value: String(trailer.id) || null,\n            label: isShortLabel\n                ? trailer.model || ''\n                : t('common:trailer-subtype-template', {\n                      length: trailer.length,\n                      model: trailer.model,\n                      eur1Pallets: trailer.eur1Pallets,\n                      eur2Pallets: trailer.eur2Pallets,\n                  }),\n            iconType: TrailerIconTypesEnum.default,\n        }));\n    }, [rawTrailerOptions, isShortLabel, t]);\n\n    const renderTrigger = (\n        props: RenderTriggerPropsT,\n        options: Array<TrailerDropdownOptionT>,\n        placeholder: string | undefined,\n    ): React.ReactNode => {\n        if (!options?.length) {\n            return (\n                <DropdownBaseButtonTrigger\n                    {...props}\n                    renderLeftIcon={(iconMeta) => {\n                        return <TrailerIcon {...TrailerIconProps.getControlProps(iconMeta)} />;\n                    }}\n                >\n                    {placeholder || ''}\n                </DropdownBaseButtonTrigger>\n            );\n        }\n\n        if (options.length === 1) {\n            const firstOption = options?.[0];\n\n            return (\n                <DropdownBaseButtonTrigger\n                    {...props}\n                    renderLeftIcon={(iconMeta) => {\n                        return <TrailerIcon {...TrailerIconProps.getControlProps(iconMeta)} />;\n                    }}\n                >\n                    {firstOption?.label}\n                </DropdownBaseButtonTrigger>\n            );\n        }\n\n        return (\n            <DropdownBaseButtonTrigger\n                {...props}\n                renderLeftIcon={(iconMeta) => {\n                    return <TrailerIcon {...TrailerIconProps.getControlProps(iconMeta)} />;\n                }}\n            >\n                <DropdownMultipleInputCountLabel count={options.length} />\n            </DropdownBaseButtonTrigger>\n        );\n    };\n\n    const renderOption = (option: TrailerDropdownOptionT | null | undefined): React.ReactElement | null => {\n        if (!option) {\n            return null;\n        }\n\n        return (\n            <div className={cx('option')} key={option.label}>\n                {option.label}\n            </div>\n        );\n    };\n\n    const handleSelect = (values: Array<OptionValueT>): void => {\n        onChange(values);\n    };\n\n    const getOptionValue = (option: TrailerDropdownOptionT): OptionValueT => option.value;\n\n    const handleReset = () => {\n        onChange([]);\n    };\n\n    return (\n        <DropdownMultipleInput<TrailerDropdownOptionT, OptionValueT>\n            selectedValues={values}\n            placeholder={placeholder}\n            options={trailerOptions}\n            onSelect={handleSelect}\n            isDisabled={isDisabled || !trailersDict || fetchRequest.loading}\n            renderOption={renderOption}\n            isLoading={fetchRequest.loading}\n            getOptionValue={getOptionValue}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            hasWarning={hasWarning}\n            hasError={hasError}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            renderTrigger={renderTrigger}\n            testSelector=\"dict-trailer-ids\"\n            onReset={hasClearControl ? handleReset : undefined}\n        />\n    );\n});\n\nexport default DictTrailerMultipleDropdown;\n","import { fork } from 'redux-saga/effects';\n\nimport detailsSaga from './details/sagas';\nimport rfqStatsSaga from './rfq-stats/sagas';\n\nfunction* partnerSaga() {\n    yield fork(rfqStatsSaga);\n    yield fork(detailsSaga);\n}\n\nexport default partnerSaga;\n","// extracted by mini-css-extract-plugin\nexport default {\"tabs\":\"NavigationTabs__tabs___lBmn7\",\"fadeIn\":\"NavigationTabs__fadeIn___lNKj7\",\"blinking\":\"NavigationTabs__blinking___sEpKN\"};","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst FuelIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, strokeColor, ...rest } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" {...rest}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path fill={fillColor} d=\"M5.5 15.25H10V10H5.5z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M10 3.25H5.5c-.825 0-1.5.675-1.5 1.5v12h7.5v-5.625h1.125v3.75a1.876 1.876 0 003.75 0V7.75c0-.518-.21-.99-.547-1.327l.007-.008-2.79-2.79-.795.795 1.582 1.583a1.867 1.867 0 00-1.207 1.747 1.876 1.876 0 002.625 1.717v5.408c0 .412-.338.75-.75.75s-.75-.338-.75-.75V11.5c0-.825-.675-1.5-1.5-1.5h-.75V4.75c0-.825-.675-1.5-1.5-1.5zm0 7.875v4.125H5.5V10H10v1.125zM10 8.5H5.5V4.75H10V8.5zm4.5 0c-.412 0-.75-.338-.75-.75s.338-.75.75-.75.75.338.75.75-.338.75-.75.75z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nFuelIcon.displayName = 'FuelIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default FuelIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"flag\":\"Flag__flag___pVuOb\",\"flag--theme-attention\":\"Flag__flag--theme-attention___i4Kc7\",\"flag__label-wrap\":\"Flag__flag__label-wrap___nltpz\",\"flag__icon\":\"Flag__flag__icon___fXEHq\",\"flag__label\":\"Flag__flag__label___myKUl\",\"flag__label--theme-attention\":\"Flag__flag__label--theme-attention___EwCBP\",\"tooltip\":\"Flag__tooltip___pCacF\",\"tooltip__inner\":\"Flag__tooltip__inner___sfeEV\",\"tooltip__inner--theme-white\":\"Flag__tooltip__inner--theme-white___kKAN_\",\"tooltip__inner--theme-black\":\"Flag__tooltip__inner--theme-black___YADRr\",\"fadeIn\":\"Flag__fadeIn___Xt3h2\",\"blinking\":\"Flag__blinking___NqDj2\"};","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"Alert__inner___Y4KnD\",\"inner--theme-brand-accent\":\"Alert__inner--theme-brand-accent___BqpUz\",\"inner--theme-tomato-red\":\"Alert__inner--theme-tomato-red___QfDub\",\"inner--theme-orange\":\"Alert__inner--theme-orange___PT_W_\",\"inner--theme-gray\":\"Alert__inner--theme-gray___NzDLg\",\"inner--theme-charcoal\":\"Alert__inner--theme-charcoal___rniG6\",\"inner--theme-slate\":\"Alert__inner--theme-slate___IG2cU\",\"inner__size-small\":\"Alert__inner__size-small___B3uCs\",\"inner__size-medium\":\"Alert__inner__size-medium___LiIof\",\"inner__size-medium-large\":\"Alert__inner__size-medium-large___UUJI4\",\"row\":\"Alert__row___BNiNM\",\"row--is-align-items-center\":\"Alert__row--is-align-items-center___O9ais\",\"icon\":\"Alert__icon___VhKHI\",\"text\":\"Alert__text___u_raH\",\"text__size-medium-large\":\"Alert__text__size-medium-large___TkLvU\",\"close\":\"Alert__close___lxfif\",\"close-button-inner\":\"Alert__close-button-inner____VI_J\",\"action\":\"Alert__action___h2S1D\",\"action-text\":\"Alert__action-text___tdXyM\",\"tooltip\":\"Alert__tooltip___nB8VT\",\"fadeIn\":\"Alert__fadeIn___mL6uq\",\"blinking\":\"Alert__blinking____yzwq\"};","import * as React from 'react';\nimport { useCallback, useMemo } from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './BidDetails.scss';\nimport Money from 'common/components/Money/Money';\nimport { CurrencyEnum, DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport Link, { LinkSizeEnum, LinkThemeEnum } from 'common/components/Link/Link';\nimport BigRadioIcon from 'common/icons/BigRadioIcon';\nimport { logWarning } from 'common/utils/logger';\nimport { SpotBidT } from 'broker-admin/utils/api/spot-broker-tranziit/models';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { urlFactory as brokerUrlFactory } from 'broker-admin/utils/urls';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport SpotBidStatusPill from 'common/components/status-pill/SpotBidStatusPill/SpotBidStatusPill';\nimport ExpandIcon from 'common/icons/ExpandIcon';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport AccountIcon from 'common/icons/AccountIcon';\nimport UserLinkFormatter from 'common/components/InfoTable/formatters/UserLinkFormatter/UserLinkFormatter';\nimport TimeWindowIcon from 'common/icons/TimeWindowIcon';\nimport DateIntervalFormatter from 'design-system/components/InfoTable/formatters/DateIntervalFormatter/DateIntervalFormatter';\nimport CommentIcon from 'common/icons/CommentIcon';\nimport CommentFormatter from 'design-system/components/InfoTable/formatters/CommentFormatter/CommentFormatter';\nimport { useTranslation } from 'react-i18next';\nimport ColoredDiff from 'common/components/ColoredDiff/ColoredDiff';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport IconTrigger from 'design-system/components/IconTrigger/IconTrigger';\nimport ClickInterceptorLabel from 'common/components/ClickInterceptorLabel/ClickInterceptorLabel';\nimport scrollIntoView from 'scroll-into-view';\nimport MoneyDiff from 'common/components/MoneyDiff/MoneyDiff';\n\ntype PropsT = {\n    className?: string;\n    isDisabled?: boolean;\n    isSelected?: boolean;\n    bid: SpotBidT | null | undefined;\n    onSelect: (bid: SpotBidT) => void;\n    estimateSpotRequestPrice: number | null;\n    onOpenUserDetails: (params: {\n        partnerType: PartnerTypeEnum;\n        partnerId: PartnerIdT;\n        userId: UserIdT | null;\n    }) => void;\n};\n\nconst cx = classNames.bind(styles);\n\nconst BidDetails: React.FC<PropsT> = React.memo((props) => {\n    const { className, bid, onSelect, isSelected, isDisabled, estimateSpotRequestPrice, onOpenUserDetails } = props;\n\n    const ref = React.createRef<HTMLDivElement>();\n\n    const [isOpenedDetails, setIsOpenedDetails] = React.useState<boolean>(false);\n\n    const { t } = useTranslation();\n\n    const toggleOpenedDetailsClick = () => {\n        setIsOpenedDetails(!isOpenedDetails);\n\n        const shouldScroll = !isOpenedDetails;\n        if (shouldScroll) {\n            if (!ref.current) {\n                return;\n            }\n\n            scrollIntoView(ref.current, {\n                time: 300,\n            });\n        }\n    };\n\n    const handleSelect = () => {\n        if (isDisabled) {\n            toggleOpenedDetailsClick();\n            return;\n        }\n\n        if (!bid) {\n            logWarning('empty bid!');\n            return;\n        }\n\n        if (isSelected) {\n            toggleOpenedDetailsClick();\n            return;\n        }\n\n        onSelect(bid);\n    };\n\n    const isClickable = !isDisabled;\n\n    const carrierId = bid?.carrier?.id;\n\n    const handleOpenUserDetails = useCallback(\n        (userId: UserIdT) => {\n            if (!carrierId) {\n                logWarning('Empty carrierId on handleOpenUserDetails');\n                return;\n            }\n\n            onOpenUserDetails({\n                userId,\n                partnerType: PartnerTypeEnum.carrier,\n                partnerId: carrierId,\n            });\n        },\n        [carrierId, onOpenUserDetails],\n    );\n\n    const bidDetails: Array<InfoTableRowT | null> = useMemo(\n        () => [\n            {\n                icon: (\n                    <AccountIcon\n                        strokeColor={StyleGuideColorsEnum.gray}\n                        fillColor={StyleGuideColorsEnum.light}\n                        size={DEFAULT_ICON_SIZE}\n                    />\n                ),\n                name: t('spot-request-details.bids.details.placed-by'),\n                value: (\n                    <UserLinkFormatter\n                        fullName={bid?.createdBy?.fullName}\n                        userId={bid?.createdBy?.id}\n                        onOpenUserDetails={handleOpenUserDetails}\n                    />\n                ),\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty'), isBold: true },\n                testSelector: 'upload-user',\n            },\n            bid?.bidDate || bid?.lifeTime\n                ? {\n                      icon: (\n                          <TimeWindowIcon\n                              strokeColor={StyleGuideColorsEnum.gray}\n                              fillColor={StyleGuideColorsEnum.light}\n                          />\n                      ),\n                      name: t('spot-request-details.bids.details.valid'),\n                      value: (\n                          <DateIntervalFormatter\n                              startDate={bid?.bidDate}\n                              endDate={bid?.lifeTime}\n                              format=\"D MMM YYYY, HH:mm\"\n                          />\n                      ),\n                      valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty'), isBold: true },\n                      testSelector: 'upload-date',\n                  }\n                : null,\n            bid?.comment\n                ? {\n                      icon: (\n                          <CommentIcon strokeColor={StyleGuideColorsEnum.gray} fillColor={StyleGuideColorsEnum.light} />\n                      ),\n                      name: t('spot-request-details.bids.details.comment'),\n                      value: <CommentFormatter comment={bid.comment} />,\n                      valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty'), isBold: true },\n                      testSelector: 'upload-date',\n                  }\n                : null,\n        ],\n        [bid, handleOpenUserDetails, t],\n    );\n\n    const diffPercentage = React.useMemo((): number => {\n        if (!estimateSpotRequestPrice || !bid || !bid?.bidPrice) {\n            return 0;\n        }\n\n        return Math.round((bid.bidPrice / estimateSpotRequestPrice - 1) * 100);\n    }, [estimateSpotRequestPrice, bid]);\n\n    if (!bid) {\n        return null;\n    }\n\n    return (\n        <div\n            className={cs(\n                cx('inner', {\n                    'inner--isClickable': isClickable,\n                }),\n                className,\n            )}\n            ref={ref}\n        >\n            <div\n                className={cx('row', 'head', {\n                    'head--isOpened': isOpenedDetails,\n                    'head--isClickable': !isDisabled,\n                })}\n                onClick={handleSelect}\n            >\n                <div className={cx('column__icon')}>\n                    <BigRadioIcon isSelected={isSelected} isDisabled={isDisabled} />\n                </div>\n                <div className={cx('column__main')}>\n                    <div className={cx('main')}>\n                        {bid.bidPrice ? (\n                            <>\n                                <MoneyDiff value={bid.bidPrice} baseValue={estimateSpotRequestPrice}>\n                                    {(diff) => (\n                                        <ColoredDiff isInverted diff={diff}>\n                                            <Money\n                                                className={cx('main__money')}\n                                                amount={bid.bidPrice}\n                                                currency={CurrencyEnum.EUR}\n                                            />\n                                        </ColoredDiff>\n                                    )}\n                                </MoneyDiff>\n                                {!!diffPercentage && (\n                                    <PillLabel\n                                        className={cx('main__diff')}\n                                        theme={\n                                            diffPercentage > 0\n                                                ? PillLabelThemeEnum.tomatoRed\n                                                : PillLabelThemeEnum.brandAccent\n                                        }\n                                        isSymmetrical\n                                    >\n                                        {diffPercentage > 0 ? '+' : ''}\n                                        {diffPercentage}%\n                                    </PillLabel>\n                                )}\n                                <ClickInterceptorLabel>\n                                    <Tooltip\n                                        position={TooltipPositionEnum.topCenter}\n                                        theme={TooltipThemeEnum.black}\n                                        tooltipNode={\n                                            <TooltipContent theme={TooltipContentThemeEnum.black}>\n                                                {t('spot-request-details.bids.expand')}\n                                            </TooltipContent>\n                                        }\n                                    >\n                                        {(isShow) => (\n                                            <IconTrigger isFocused={isShow} onClick={toggleOpenedDetailsClick}>\n                                                {() => (\n                                                    <ExpandIcon\n                                                        fillColor={StyleGuideColorsEnum.brandAccent}\n                                                        isInvert={isOpenedDetails}\n                                                    />\n                                                )}\n                                            </IconTrigger>\n                                        )}\n                                    </Tooltip>\n                                </ClickInterceptorLabel>\n                            </>\n                        ) : (\n                            <div className={cx('main__money')}>{t('spot-request-details.bids.details.no-bid')}</div>\n                        )}\n                    </div>\n                    {carrierId && (\n                        <div className={cx('link')}>\n                            <Link\n                                to={brokerUrlFactory.partnerDetails(PartnerTypeEnum.carrier, carrierId)}\n                                theme={LinkThemeEnum.boldBrandDark}\n                                size={LinkSizeEnum.medium}\n                            >\n                                {bid.carrier?.name}\n                            </Link>\n                        </div>\n                    )}\n                </div>\n                <div className={cx('column__status')}>\n                    {!!bid.match && (\n                        <PillLabel\n                            className={cx('match-pill')}\n                            theme={PillLabelThemeEnum.grey}\n                            testSelector=\"spot-bid-match\"\n                            isSymmetrical\n                        >\n                            {t('spot-request-details.bids.match')}\n                        </PillLabel>\n                    )}\n                    <SpotBidStatusPill isSymmetrical status={bid.status} />\n                </div>\n            </div>\n            {isOpenedDetails && (\n                <div className={cx('body')}>\n                    <InfoTable shouldRenderIcons rows={bidDetails} testSelector=\"bid-details\" />\n                </div>\n            )}\n        </div>\n    );\n});\n\nexport default BidDetails;\n","import { ApiAddressPointT, ApiCountriesT, ApiLocationT } from 'common/utils/api/models';\n\nexport const convertToPointLocation = (location: ApiLocationT | null): ApiAddressPointT | null => {\n    if (!location) {\n        return null;\n    }\n\n    const countyCode = location?.country;\n    const latitude = location?.latitude;\n    const longitude = location?.longitude;\n\n    if (!latitude || !longitude || !countyCode) {\n        return null;\n    }\n\n    return {\n        latitude,\n        longitude,\n        country: countyCode as ApiCountriesT,\n        city: location?.city || undefined,\n        street1: location?.street1 || undefined,\n        street2: location?.street2,\n        zipCode: location?.zipCode || undefined,\n    };\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"CostsCell__wrap___nnvEy\",\"money\":\"CostsCell__money___CFEPP\",\"fadeIn\":\"CostsCell__fadeIn___oHbkR\",\"blinking\":\"CostsCell__blinking___Xo2WC\"};","import * as React from 'react';\nimport FilterPills, { FilterPillsConfigT } from 'common/components/FilterPills/FilterPills';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { FilterPillThemeEnum } from 'common/components/FilterPills/FilterPill/FilterPill';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from '../query-models';\nimport ShipperContractLaneStatus from 'common/components/status/ShipperContractLaneStatus/ShipperContractLaneStatus';\nimport { formatDateRangeFilterValue, pillIconRendererMap } from 'common/components/FilterPills/pill-renderers';\nimport TrailerDictIdFilterPill from 'common/components/filter-pills/TrailerDictIdFilterPill/TrailerDictIdFilterPill';\n\ntype PropsT = {\n    isCompact?: boolean;\n    className?: string;\n    queryFilters: QueryFiltersT;\n    setQueryFilters: (queryFilters: QueryFiltersT) => void;\n};\n\nconst SelectedFilters: React.FC<PropsT> = React.memo((props) => {\n    const { isCompact, queryFilters, setQueryFilters } = props;\n\n    const { t } = useTranslation();\n\n    const filterPillsConfig = React.useMemo(\n        (): FilterPillsConfigT<QueryFiltersT> => [\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('common:shipper-contract-lanes.filters.pills.text', {\n                        value: queryFilters[QueryFiltersKeysEnum.text],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.text],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: (queryFilters) => {\n                    const selectedTrailerId = queryFilters[QueryFiltersKeysEnum.dictTrailerId];\n\n                    return (\n                        <Trans\n                            i18nKey=\"common:shipper-contract-lanes.filters.pills.trailer-type\"\n                            components={{\n                                value: <TrailerDictIdFilterPill trailerDictId={selectedTrailerId} />,\n                            }}\n                        />\n                    );\n                },\n                clearKeys: [QueryFiltersKeysEnum.dictTrailerId],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('common:shipper-contract-lanes.filters.pills.address', {\n                        value: queryFilters[QueryFiltersKeysEnum.address],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.address],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: (queryFilters) => {\n                    return (\n                        <Trans\n                            i18nKey=\"common:shipper-contract-lanes.filters.pills.status\"\n                            components={{\n                                value: <ShipperContractLaneStatus status={queryFilters[QueryFiltersKeysEnum.status]} />,\n                            }}\n                        />\n                    );\n                },\n                clearKeys: [QueryFiltersKeysEnum.status],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                renderIcon: (queryFilters, isCompact) => {\n                    const name = queryFilters[QueryFiltersKeysEnum.createdByName] || '';\n\n                    return pillIconRendererMap.avatar(name, isCompact);\n                },\n                render: (queryFilters) => {\n                    return t('common:shipper-contract-lanes.filters.pills.created-by', {\n                        value: queryFilters[QueryFiltersKeysEnum.createdByName],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.createdById, QueryFiltersKeysEnum.createdByName],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const validFromStart = queryFilters[QueryFiltersKeysEnum.validFromStart];\n                    const validFromFinish = queryFilters[QueryFiltersKeysEnum.validFromFinish];\n\n                    return t('common:shipper-contract-lanes.filters.pills.valid-from', {\n                        value: formatDateRangeFilterValue(validFromStart, validFromFinish),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.validFromStart, QueryFiltersKeysEnum.validFromFinish],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const validTillStart = queryFilters[QueryFiltersKeysEnum.validTillStart];\n                    const validTillFinish = queryFilters[QueryFiltersKeysEnum.validTillFinish];\n\n                    return t('common:shipper-contract-lanes.filters.pills.valid-till', {\n                        value: formatDateRangeFilterValue(validTillStart, validTillFinish),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.validTillStart, QueryFiltersKeysEnum.validTillFinish],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const createdDateStart = queryFilters[QueryFiltersKeysEnum.createdDateStart];\n                    const createdDateFinish = queryFilters[QueryFiltersKeysEnum.createdDateFinish];\n\n                    return t('common:shipper-contract-lanes.filters.pills.created-dates', {\n                        value: formatDateRangeFilterValue(createdDateStart, createdDateFinish),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.createdDateStart, QueryFiltersKeysEnum.createdDateFinish],\n            },\n        ],\n        [t],\n    );\n\n    return (\n        <FilterPills<QueryFiltersT>\n            isCompact={isCompact}\n            queryFilters={queryFilters}\n            setQueryFilters={setQueryFilters}\n            config={filterPillsConfig}\n        />\n    );\n});\n\nexport default SelectedFilters;\n","// extracted by mini-css-extract-plugin\nexport default {\"map\":\"RouteEditingMap__map___Eyd8N\",\"map--isEditing\":\"RouteEditingMap__map--isEditing___fRY3F\",\"map--hasRedBorder\":\"RouteEditingMap__map--hasRedBorder___MRLTw\",\"route-point-pin\":\"RouteEditingMap__route-point-pin___Mod79\",\"exclude-countries\":\"RouteEditingMap__exclude-countries___k6uLE\",\"loader\":\"RouteEditingMap__loader___ctJvg\",\"fadeIn\":\"RouteEditingMap__fadeIn___WJaRS\",\"blinking\":\"RouteEditingMap__blinking___FhMiZ\"};","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"FiltersSidebarContent__form___q3_9U\",\"field--shipper\":\"FiltersSidebarContent__field--shipper___qGZ71\",\"field--carrier\":\"FiltersSidebarContent__field--carrier___KFg_p\",\"field--key-account-manager\":\"FiltersSidebarContent__field--key-account-manager___wO5jZ\",\"field--dispatcher\":\"FiltersSidebarContent__field--dispatcher___MOgP7\",\"field--trailer-type\":\"FiltersSidebarContent__field--trailer-type___f48FD\",\"field--order-type\":\"FiltersSidebarContent__field--order-type___PEmzM\",\"field--transport-order-type\":\"FiltersSidebarContent__field--transport-order-type___SrdVr\",\"field--dates\":\"FiltersSidebarContent__field--dates___TrZhG\",\"field--has-unpaid-shipment\":\"FiltersSidebarContent__field--has-unpaid-shipment___IbykK\",\"selected-filters\":\"FiltersSidebarContent__selected-filters___Vp8zl\",\"fadeIn\":\"FiltersSidebarContent__fadeIn___MDyTE\",\"blinking\":\"FiltersSidebarContent__blinking___svb0D\"};","import { OperationUnavailableReasonT } from 'common/utils/api/models';\n\nexport const checkHasExternalRestrictions = (operationUnavailableReasons?: OperationUnavailableReasonT[]): boolean =>\n    operationUnavailableReasons?.includes('PROFILE_IS_EXTERNALLY_RESTRICTED') ?? false;\n","import { ApiContactFormalEnum, ContactPositionsEnum, CountryCodeT } from 'common/utils/api/models';\nimport { SocialMediaEnum } from 'common/constants';\n\nexport enum FieldsEnum {\n    id = 'id',\n\n    formal = 'formal',\n    firstName = 'firstName',\n    lastName = 'lastName',\n\n    position = 'position',\n    isDefault = 'isDefault',\n\n    desktopPhone = 'desktopPhone',\n    mobilePhone = 'mobilePhone',\n    faxNumber = 'faxNumber',\n    email = 'email',\n\n    webpageLink = 'webpageLink',\n\n    whatsapp = 'whatsapp',\n    viber = 'viber',\n    telegram = 'telegram',\n    msTeams = 'msTeams',\n\n    birthday = 'birthday',\n    countryCode = 'countryCode',\n    language = 'language',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.id]: string | null;\n\n    [FieldsEnum.formal]: ApiContactFormalEnum;\n    [FieldsEnum.firstName]: string;\n    [FieldsEnum.lastName]: string;\n\n    [FieldsEnum.position]: ContactPositionsEnum;\n    [FieldsEnum.isDefault]: boolean;\n\n    [FieldsEnum.desktopPhone]: string;\n    [FieldsEnum.mobilePhone]: string;\n    [FieldsEnum.faxNumber]: string;\n    [FieldsEnum.email]: string;\n\n    [FieldsEnum.webpageLink]: string;\n\n    [FieldsEnum.whatsapp]?: string;\n    [FieldsEnum.viber]?: string;\n    [FieldsEnum.telegram]?: string;\n    [FieldsEnum.msTeams]?: string;\n\n    [FieldsEnum.birthday]: Date | null;\n    [FieldsEnum.countryCode]: CountryCodeT | null;\n    [FieldsEnum.language]: string | null;\n};\n\nexport const MEDIA_FIELDS_NAME = [\n    SocialMediaEnum.whatsapp,\n    SocialMediaEnum.viber,\n    SocialMediaEnum.telegram,\n    SocialMediaEnum.msTeams,\n] as const;\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","// extracted by mini-css-extract-plugin\nexport default {\"label\":\"TemperatureRangePicker__label___h0U_j\",\"label__icon\":\"TemperatureRangePicker__label__icon___XtwFp\",\"label__label\":\"TemperatureRangePicker__label__label___SU9Ty\",\"label__value\":\"TemperatureRangePicker__label__value___W3ONc\",\"presets\":\"TemperatureRangePicker__presets___FOO4Y\",\"preset\":\"TemperatureRangePicker__preset___XcPvF\",\"fadeIn\":\"TemperatureRangePicker__fadeIn___lqK58\",\"blinking\":\"TemperatureRangePicker__blinking___L3BUx\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './DevelopmentSettings.scss';\nimport { useTranslation } from 'react-i18next';\nimport Switcher from 'common/components/Switcher/Switcher';\nimport FeaturesContext from 'common/contexts/features';\nimport { ClientFeatureEnum } from 'common/utils/features/client-features-config';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\n\ntype ClientFeatureControlPropsT = {\n    feature: ClientFeatureEnum;\n    children: (props: { checked: boolean; toggle: () => void }) => React.ReactElement;\n};\n\nconst ClientFeatureControl: React.FC<ClientFeatureControlPropsT> = (props) => {\n    const { feature, children } = props;\n\n    const featuresContext = React.useContext(FeaturesContext);\n\n    const value = !!featuresContext?.checkActiveClientFeature?.(feature);\n\n    return children({\n        checked: value,\n        toggle: () => {\n            featuresContext?.setClientFeature?.(feature, !value);\n        },\n    });\n};\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst labelI18nMap: Record<ClientFeatureEnum, string> = {\n    [ClientFeatureEnum.errorDetails]: 'common:development.show-detail-errors',\n    [ClientFeatureEnum.i18nLanguageSwitcher]: 'common:development.show-local-switcher',\n    [ClientFeatureEnum.showNotificationToastTrigger]: 'common:development.show-notification-toast-trigger',\n    [ClientFeatureEnum.partnerDrivers]: 'common:development.show-partner-drivers',\n    [ClientFeatureEnum.partnerInvoices]: 'common:development.show-partner-invoices',\n    [ClientFeatureEnum.assignmentExcludeCountries]: 'common:development.assignment-exclude-countries',\n    [ClientFeatureEnum.showTraceId]: 'common:development.show-trace-id',\n    [ClientFeatureEnum.invoices]: 'common:development.show-invoices',\n    [ClientFeatureEnum.showNotificationId]: 'common:development.show-notification-id',\n    [ClientFeatureEnum.showStatusFiltersAfterPaid]: 'common:development.show-status-filters-after-paid',\n    [ClientFeatureEnum.showRFQStatistics]: 'common:development.show-rfq-statistics',\n    [ClientFeatureEnum.cancelServiceMaintenanceAssetScheduleSidebar]:\n        'common:development.cancel-service-maintenance-asset-schedule-sidebar',\n};\n\nconst DevelopmentSettings: React.FC<PropsT> = () => {\n    const { t } = useTranslation();\n\n    const featuresContext = React.useContext(FeaturesContext);\n\n    return (\n        <div className={cx('inner')}>\n            {(Object.values(ClientFeatureEnum) as ClientFeatureEnum[]).map((clientFeature) => {\n                return (\n                    <ClientFeatureControl key={clientFeature} feature={clientFeature}>\n                        {(props) => (\n                            <Switcher\n                                checked={props.checked}\n                                onToggle={props.toggle}\n                                className={cx('control')}\n                                label={t(labelI18nMap[clientFeature])}\n                            />\n                        )}\n                    </ClientFeatureControl>\n                );\n            })}\n            <div>\n                <Button\n                    theme={ButtonThemeEnum.secondary}\n                    onClick={() => {\n                        featuresContext?.clearClientFeatures?.();\n                    }}\n                >\n                    {t('common:development.reset')}\n                </Button>\n            </div>\n        </div>\n    );\n};\n\nexport default DevelopmentSettings;\n","import { TransportOrderDetailsT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport const FETCH_TRANSPORT_ORDER_DETAILS_REQUEST =\n    'common/transport-order-details/FETCH_TRANSPORT_ORDER_DETAILS_REQUEST';\nexport const FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_BEGIN =\n    'common/transport-order-details/FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_BEGIN';\nexport const FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_ERROR =\n    'common/transport-order-details/FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_ERROR';\nexport const FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_SUCCESS =\n    'common/transport-order-details/FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_SUCCESS';\n\nexport type TransportOrderDetailsStateT = {\n    details: TransportOrderDetailsT | null;\n    requestStatus: RequestStatusT;\n};\n\nexport type TransportOrderDetailsByIdStateT = Record<TransportOrderIdT, TransportOrderDetailsStateT>;\n\nexport type FetchTransportOrderDetailsRequestActionT = {\n    type: typeof FETCH_TRANSPORT_ORDER_DETAILS_REQUEST;\n    id: TransportOrderIdT;\n    companyId: CompanyIdT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchTransportOrderDetailsRequestBeginActionT = {\n    type: typeof FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_BEGIN;\n    id: TransportOrderIdT;\n};\n\nexport type FetchTransportOrderDetailsRequestErrorActionT = {\n    type: typeof FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_ERROR;\n    error: Error;\n    id: TransportOrderIdT;\n};\n\nexport type FetchTransportOrderDetailsRequestSuccessActionT = {\n    type: typeof FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_SUCCESS;\n    transportOrderDetails: TransportOrderDetailsT | null;\n    id: TransportOrderIdT;\n};\n\nexport type TransportOrderDetailsActionT =\n    | FetchTransportOrderDetailsRequestActionT\n    | FetchTransportOrderDetailsRequestBeginActionT\n    | FetchTransportOrderDetailsRequestErrorActionT\n    | FetchTransportOrderDetailsRequestSuccessActionT;\n","import * as React from 'react';\nimport { useCallback, useContext, useEffect } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\nimport classNames from 'classnames/bind';\nimport styles from './ShipmentDetailsForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport { FormikContext, useFormik } from 'formik';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport {\n    DEFAULT_BOX_TRAILER_ID,\n    DEFAULT_TILT_TRAILER_ID,\n    DEFAULT_TRAILER_TYPE,\n    FieldsEnum,\n    FormTouchedT,\n    FormValuesT,\n    RoutePointFieldsEnum,\n    RoutePointFormValuesT,\n    SHIPMENT_DETAIL_FORM_NAME,\n} from './constants';\nimport { StyleGuideColorsEnum, TrailerTypeEnum } from 'common/constants';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectCreatePriceOfferWithLaneRequest,\n    selectCreateRFQRequest,\n    selectIsAllowCreateRFQ,\n    selectReserve,\n    selectReservePreview,\n    selectReservePreviewRequest,\n    selectReserveRequest,\n} from 'common/store/order-creation/selectors';\nimport TrailerTypeSwitcher from 'common/components/TrailerTypeSwitcher/TrailerTypeSwitcher';\nimport DictTrailerDropdown from 'common/components/dropdowns/DictTrailerDropdown/DictTrailerDropdown';\nimport validateForm from 'common/layouts/NewOrderPage/ShipmentDetailsForm/validate-form';\nimport {\n    changeReserveQuery,\n    createPriceOfferWithLaneRequest,\n    createRFQ,\n    resetReserveAndPreviewReserve,\n} from 'common/store/order-creation/actions';\nimport {\n    prepareApiActualOrderRequest,\n    prepareApiReserveChanges,\n    prepareApiReserveChangesAddRoutePoint,\n    prepareApiReserveChangesChangeRoutePoint,\n    prepareApiReserveChangesDeleteRoutePoint,\n} from './prepare-api-requests';\nimport ValuesStorage from 'common/utils/form-values-storage';\nimport getterFormFillPercent from '../getter-form-fill-percent';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport ReplacedLocationsAlertContent from 'common/layouts/NewOrderPage/ShipmentDetailsForm/footer-alert-contents/ReplacedLocationsAlertContent/ReplacedLocationsAlertContent';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { OnChangeRoutePointReserveT } from './models';\nimport { logWarning } from 'common/utils/logger';\nimport keys from 'lodash/keys';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport { MS_IN_SEC } from 'common/utils/time';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport { useSyncReserveChannels } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/hooks/use-sync-reserve-channels';\nimport { useReserveChannelLock } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/hooks/use-reserve-channel-lock';\nimport { useOnlyAvailableLane } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/hooks/use-only-available-lane';\nimport StepsContext from 'common/layouts/NewOrderPage/contexts/steps-context';\nimport OrderCreationPercentContext from 'common/layouts/NewOrderPage/contexts/order-creation-percent-context';\nimport { getRoutePointFieldName } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/utils';\nimport times from 'lodash/times';\nimport { SyncShipmentDetailsFormValuesContext } from './contexts/sync-form-values';\nimport { useTrailersDict } from 'common/utils/hooks/useTrailersDict';\nimport FormikFieldArray from 'common/components/forms/FormikFieldArray/FormikFieldArray';\nimport PickupOrDeliveryRoutePointPicker from './PickupOrDeliveryRoutePointPicker/PickupOrDeliveryRoutePointPicker';\nimport DriveThroughRoutePointPicker from './DriveThroughRoutePointPicker/DriveThroughRoutePointPicker';\nimport { DividerWithDropdownControl } from 'design-system/components/DividerWithDropdownControl/DividerWithDropdownControl';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport HollowCircleIcon from 'common/icons/HollowCircleIcon';\nimport { SyncShipmentDetailsFormMapStateContext } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/contexts/sync-map-state';\nimport get from 'lodash/get';\nimport isEqual from 'lodash/isEqual';\nimport getBoundingBox from 'common/utils/get-bounding-box';\nimport LaneDropdownInput from './LaneDropdownInput/LaneDropdownInput';\nimport { useSelectedLane } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/hooks/use-selected-lane';\nimport { useEditRouteWatcher } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/hooks/use-edit-route-watcher';\nimport SubmitButtonContent from 'common/layouts/NewOrderPage/ShipmentDetailsForm/SubmitButtonContent/SubmitButtonContent';\nimport FooterSideBarAlertsLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarAlertsLayout/FooterSideBarAlertsLayout';\nimport SideBarFooterAlertsContext from 'common/layouts/LeftMenuLayout/SideBarLayout/contexts/side-bar-footer-alerts-context';\nimport { AlertThemeEnum } from 'common/components/Alert/Alert';\nimport asyncValidate from './async-validations';\nimport useAsyncFormErrors from 'common/utils/hooks/useAsyncFormErrors';\nimport FormAsyncErrorsContext from 'common/components/forms/contexts/form-async-errors-context';\nimport {\n    ApiOrderCreationReservePointTypeT,\n    ApiTrailerTypeT,\n    OrderCreationReservePointTypeEnum,\n} from 'common/utils/api/models';\nimport { fetchCountrySettingsDict } from 'common/store/country-settings-dict/actions';\nimport { selectCountrySettingsByCountryCode } from 'common/store/country-settings-dict/selectors';\nimport OrderReservesShipperSuggest from 'common/layouts/NewOrderPage/ShipmentDetailsForm/OrderReservesShipperSuggest/OrderReservesShipperSuggest';\nimport SyncPointsWatcher from './SyncPointsWatcher/SyncPointsWatcher';\nimport findLast from 'lodash/findLast';\nimport FerryOnboardPointPicker from 'common/layouts/NewOrderPage/ShipmentDetailsForm/FerryOnboardPointPicker/FerryOnboardPointPicker';\nimport FerryDisembarkPointPicker from './FerryDisembarkPointPicker/FerryDisembarkPointPicker';\nimport ExpirationRFQAlertContent from 'common/layouts/NewOrderPage/CargoDetailsForm/footer-alert-contents/ExpirationRFQAlertContent/ExpirationRFQAlertContent';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    isBroker: boolean;\n};\n\nconst storage = new ValuesStorage(SHIPMENT_DETAIL_FORM_NAME);\n\nconst DEFAULT_TRAILER_DICT_ID: Record<TrailerTypeEnum, TrailerDictIdT | null> = {\n    [TrailerTypeEnum.box]: DEFAULT_BOX_TRAILER_ID,\n    [TrailerTypeEnum.tilt]: DEFAULT_TILT_TRAILER_ID,\n};\n\nexport const getDefaultRoutePointInitialValues = (): RoutePointFormValuesT => ({\n    [RoutePointFieldsEnum.fakeId]: uuidv4(),\n    [RoutePointFieldsEnum.type]: OrderCreationReservePointTypeEnum.shipment,\n    [RoutePointFieldsEnum.location]: null,\n    [RoutePointFieldsEnum.timeWindow]: null,\n    [RoutePointFieldsEnum.isBrokerTimeWindow]: false,\n});\n\nexport const DEFAULT_INITIAL_VALUES: FormValuesT = {\n    [FieldsEnum.shipper]: null,\n\n    [FieldsEnum.trailerType]: DEFAULT_TRAILER_TYPE,\n    [FieldsEnum.trailerDictId]: DEFAULT_TRAILER_DICT_ID[DEFAULT_TRAILER_TYPE],\n\n    [FieldsEnum.laneId]: null,\n\n    [FieldsEnum.excludedCountries]: [],\n\n    [FieldsEnum.route]: [\n        // init origin point\n        { ...getDefaultRoutePointInitialValues() },\n        // init destination point\n        { ...getDefaultRoutePointInitialValues() },\n    ],\n};\n\nconst restorableRoutePointTypeSet = new Set<ApiOrderCreationReservePointTypeT>([\n    OrderCreationReservePointTypeEnum.shipment,\n    OrderCreationReservePointTypeEnum.driveThrough,\n]);\n\nconst getInitialValues = (): FormValuesT => {\n    const storageValues: Partial<FormValuesT> = storage.getValues() || {};\n\n    const route = storageValues[FieldsEnum.route] || DEFAULT_INITIAL_VALUES[FieldsEnum.route];\n\n    return {\n        [FieldsEnum.shipper]: storageValues[FieldsEnum.shipper] || DEFAULT_INITIAL_VALUES[FieldsEnum.shipper],\n\n        [FieldsEnum.trailerType]:\n            storageValues[FieldsEnum.trailerType] || DEFAULT_INITIAL_VALUES[FieldsEnum.trailerType],\n        [FieldsEnum.trailerDictId]:\n            storageValues[FieldsEnum.trailerDictId] || DEFAULT_INITIAL_VALUES[FieldsEnum.trailerDictId],\n\n        [FieldsEnum.laneId]: storageValues[FieldsEnum.laneId] || DEFAULT_INITIAL_VALUES[FieldsEnum.laneId],\n\n        [FieldsEnum.excludedCountries]:\n            storageValues[FieldsEnum.excludedCountries] || DEFAULT_INITIAL_VALUES[FieldsEnum.excludedCountries],\n\n        [FieldsEnum.route]: route\n            .filter((routePoint) => {\n                return restorableRoutePointTypeSet.has(routePoint.type);\n            })\n            .map((routePoint) => {\n                const defaultRoutePointInitialValues = getDefaultRoutePointInitialValues();\n\n                return {\n                    ...routePoint,\n                    [RoutePointFieldsEnum.timeWindow]: defaultRoutePointInitialValues[RoutePointFieldsEnum.timeWindow],\n                    [RoutePointFieldsEnum.isBrokerTimeWindow]:\n                        defaultRoutePointInitialValues[RoutePointFieldsEnum.isBrokerTimeWindow],\n                };\n            }),\n    };\n};\n\nconst DEFAULT_TRAILERS_DICT = {\n    [TrailerTypeEnum.tilt]: [],\n    [TrailerTypeEnum.box]: [],\n};\n\nconst ShipmentDetailsForm: React.FC<PropsT> = React.memo((props) => {\n    const { isBroker } = props;\n\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n\n    const orderCreationPercentContext = useContext(OrderCreationPercentContext);\n    const syncShipmentDetailsFormValuesContext = React.useContext(SyncShipmentDetailsFormValuesContext);\n\n    const sideBarFooterAlertsContext = useContext(SideBarFooterAlertsContext);\n    const showFooterAlert = sideBarFooterAlertsContext?.showAlert;\n\n    const stepsContext = useContext(StepsContext);\n\n    const { trailersDict } = useTrailersDict();\n\n    const createRFQStatus = useSelector(selectCreateRFQRequest);\n    const createPriceOfferWithLaneStatus = useSelector(selectCreatePriceOfferWithLaneRequest);\n\n    const reserve = useSelector(selectReserve);\n    const reserveRequest = useSelector(selectReserveRequest);\n    const reservePreview = useSelector(selectReservePreview);\n    const reservePreviewRequest = useSelector(selectReservePreviewRequest);\n\n    const countriesSettingsByCode = useSelector(selectCountrySettingsByCountryCode);\n\n    const syncShipmentDetailsFormMapStateContext = React.useContext(SyncShipmentDetailsFormMapStateContext);\n\n    const validate = React.useCallback(\n        (values: FormValuesT) => {\n            return validateForm(t, values, {\n                isBroker,\n                countriesSettingsByCode,\n            });\n        },\n        [t, isBroker, countriesSettingsByCode],\n    );\n\n    const [initialValues, initialTouched, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues();\n\n        const allFields = Object.keys(values) as FieldsEnum[];\n\n        const touched = allFields.reduce<FormTouchedT>((acc, key) => {\n            if (key !== 'route') {\n                acc[key] = DEFAULT_INITIAL_VALUES[key] !== values[key];\n            }\n\n            return acc;\n        }, {});\n\n        if (!isEqual(DEFAULT_INITIAL_VALUES?.route, values?.route)) {\n            values?.route.forEach((routePointValue, index) => {\n                const allRoutePointFields = Object.keys(routePointValue) as RoutePointFieldsEnum[];\n\n                if (!touched.route) {\n                    touched.route = [];\n                }\n\n                const defaultRoutePointInitialValues = getDefaultRoutePointInitialValues();\n                touched.route[index] = allRoutePointFields.reduce<NonNullable<FormTouchedT['route']>[number]>(\n                    (acc, key) => {\n                        acc[key] = defaultRoutePointInitialValues[key] !== routePointValue[key];\n\n                        return acc;\n                    },\n                    {},\n                );\n            });\n        }\n\n        const errors = validateForm(t, values, {\n            isBroker,\n            countriesSettingsByCode,\n        });\n\n        return [values, touched, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const initialShipper = initialValues[FieldsEnum.shipper];\n    const initShipperOptions = React.useMemo(() => {\n        return initialShipper ? [initialShipper] : [];\n    }, [initialShipper]);\n\n    React.useEffect(() => {\n        const currentLocations = initialValues[FieldsEnum.route]?.map(\n            (routePointValues) => routePointValues[RoutePointFieldsEnum.location],\n        );\n\n        const points = currentLocations.map((location) => location?.point || null);\n\n        const boundingBox = getBoundingBox(points);\n\n        if (syncShipmentDetailsFormMapStateContext?.setInitialBoundingBox) {\n            syncShipmentDetailsFormMapStateContext.setInitialBoundingBox(boundingBox);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [initialValues, syncShipmentDetailsFormMapStateContext?.isMapInitialized]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        initialTouched,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            if (!reserve) {\n                logWarning('empty reserve');\n                return;\n            }\n\n            const apiActualOrderRequest = prepareApiActualOrderRequest(values, reserve);\n            if (!apiActualOrderRequest) {\n                logWarning('invalid apiActualOrderRequest', { values });\n                return;\n            }\n\n            const shipperId = values[FieldsEnum.shipper]?.id || null;\n\n            const laneId = values[FieldsEnum.laneId];\n            if (laneId) {\n                dispatch(createPriceOfferWithLaneRequest(apiActualOrderRequest, reserve, shipperId, laneId));\n            } else {\n                dispatch(createRFQ(apiActualOrderRequest, reserve, shipperId));\n            }\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    React.useEffect(() => {\n        syncShipmentDetailsFormValuesContext.syncFormValues(formik.values);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.values]);\n\n    React.useEffect(() => {\n        syncShipmentDetailsFormValuesContext.syncSetFieldValueCallback((name, value) => {\n            formik.setFieldValue(name, value);\n            formik.setFieldTouched(name);\n        });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.setFieldValue, formik.setFieldTouched]);\n\n    React.useEffect(() => {\n        dispatch(changeReserveQuery(prepareApiReserveChanges({ ...formik.values })));\n        dispatch(fetchCountrySettingsDict());\n        return () => {\n            dispatch(resetReserveAndPreviewReserve());\n        };\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    // save values\n    React.useEffect(() => {\n        storage.saveValues(formik.values);\n    }, [formik.values]);\n\n    React.useEffect(() => {\n        const editingRoutePointErrorsIndexes: Array<number> = [];\n\n        formik.values[FieldsEnum.route]?.forEach((_, index) => {\n            const fieldName = getRoutePointFieldName(index, RoutePointFieldsEnum.location);\n\n            const hasError = !!get(formik.errors, fieldName);\n\n            const hasValue = !!get(formik.values, fieldName);\n\n            if (hasValue && hasError) {\n                editingRoutePointErrorsIndexes.push(index);\n            }\n        });\n\n        syncShipmentDetailsFormMapStateContext.setHasEditingRoutePointErrorIndexes(editingRoutePointErrorsIndexes);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.errors, formik.values]);\n\n    React.useEffect(() => {\n        const routeLength = formik.values[FieldsEnum.route]?.length || 0;\n\n        const percent = getterFormFillPercent([\n            FieldsEnum.trailerDictId,\n            ...times(routeLength).flatMap((routeIndex) => {\n                return [\n                    getRoutePointFieldName(routeIndex, RoutePointFieldsEnum.location),\n                    getRoutePointFieldName(routeIndex, RoutePointFieldsEnum.timeWindow),\n                ];\n            }),\n        ])(formik.values);\n\n        orderCreationPercentContext.setPercent(percent);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.values]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        dispatch(changeReserveQuery({}));\n    }, [dispatch]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    useOnlyAvailableLane(formik);\n    useSyncReserveChannels(formik);\n    useEditRouteWatcher(formik);\n\n    const selectedLaneId = formik.values[FieldsEnum.laneId];\n    const hasSelectedLane = !!selectedLaneId;\n\n    const selectedLane = useSelectedLane(selectedLaneId);\n\n    useEffect(() => {\n        stepsContext.setHasSelectedContract(hasSelectedLane);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasSelectedLane]);\n\n    const isLockedByReserve = useReserveChannelLock();\n\n    const availableTrailersTypes = React.useMemo(() => {\n        return keys(trailersDict || DEFAULT_TRAILERS_DICT) as Array<TrailerTypeEnum>;\n    }, [trailersDict]);\n\n    const selectedTrailerType = formik.values[FieldsEnum.trailerType];\n\n    const handleChangeDictTrailerId = React.useCallback(\n        (_: string, trailerDictId: TrailerDictIdT | null): void => {\n            formik.setValues((prevValues) => ({\n                ...prevValues,\n                [FieldsEnum.trailerDictId]: trailerDictId,\n            }));\n\n            dispatch(\n                changeReserveQuery(\n                    prepareApiReserveChanges({\n                        [FieldsEnum.trailerDictId]: trailerDictId,\n                    }),\n                ),\n            );\n        },\n        [dispatch, formik],\n    );\n\n    const handleChangeLaneId = React.useCallback(\n        (_: string, laneId: ShipperContractLaneIdT | null): void => {\n            formik.setValues((prevValues) => ({\n                ...prevValues,\n                [FieldsEnum.laneId]: laneId,\n            }));\n\n            dispatch(\n                changeReserveQuery(\n                    prepareApiReserveChanges({\n                        [FieldsEnum.laneId]: laneId,\n                    }),\n                ),\n            );\n        },\n        [dispatch, formik],\n    );\n\n    // handle change traiiler type\n    const handleChangeTrailerTypeValue = React.useCallback(\n        (field: string, value: ApiTrailerTypeT): void => {\n            const trailerDictId = DEFAULT_TRAILER_DICT_ID[value];\n\n            formik.setValues((prevValues) => ({\n                ...prevValues,\n                [FieldsEnum.trailerType]: value,\n                [FieldsEnum.trailerDictId]: trailerDictId,\n            }));\n\n            dispatch(\n                changeReserveQuery(\n                    prepareApiReserveChanges({\n                        [FieldsEnum.trailerType]: value,\n                        [FieldsEnum.trailerDictId]: trailerDictId,\n                    }),\n                ),\n            );\n        },\n        [dispatch, formik],\n    );\n\n    const handleExpire = useCallback((): void => {\n        showFooterAlert?.({\n            deduplicationKey: 'order-creation-rfq-expiration',\n            theme: AlertThemeEnum.orange,\n            content: <ExpirationRFQAlertContent />,\n        });\n\n        dispatch(changeReserveQuery({}));\n    }, [dispatch, showFooterAlert]);\n\n    const isAllowCreateRFQ = useSelector(selectIsAllowCreateRFQ);\n\n    const [isAllowShowReplacedLocationsAlert, setAllowShowReplacedLocationsAlert] = React.useState<boolean>(true);\n    useEffect(() => {\n        const hasPointsViolation = reserve?.points?.some((point) => point?.violated);\n        if (hasPointsViolation && isAllowShowReplacedLocationsAlert) {\n            showFooterAlert?.({\n                theme: AlertThemeEnum.tomatoRed,\n                content: <ReplacedLocationsAlertContent />,\n            });\n\n            setAllowShowReplacedLocationsAlert(false);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [reserve, isAllowShowReplacedLocationsAlert, showFooterAlert]);\n\n    const isDisabledPreviewReserve =\n        isLockedByReserve || reserveRequest.loading || !!reserveRequest.error || reservePreviewRequest.loading;\n\n    const isShowSuggestLoading = reserveRequest.loading || reservePreviewRequest.loading;\n\n    const isSubmitting = createRFQStatus.loading || createPriceOfferWithLaneStatus.loading;\n    const isLoadingReservePreview = reserveRequest.loading || reservePreviewRequest.loading;\n\n    const handleChangeRoutePointReserve: OnChangeRoutePointReserveT = (fakeId, changes) => {\n        dispatch(changeReserveQuery(prepareApiReserveChangesChangeRoutePoint(fakeId, changes)));\n    };\n\n    const handleManualSelectLocation = (location: LocationT | null, routePointIndex: number) => {\n        if (!location) {\n            return;\n        }\n\n        const currentLocations = formik.values[FieldsEnum.route]?.map(\n            (routePointValues) => routePointValues[RoutePointFieldsEnum.location],\n        );\n        currentLocations.splice(routePointIndex, 1, location);\n\n        const points = currentLocations.map((location) => location?.point || null);\n\n        const boundingBox = getBoundingBox(points);\n\n        if (syncShipmentDetailsFormMapStateContext?.syncMapSettings) {\n            syncShipmentDetailsFormMapStateContext.syncMapSettings({\n                center: null,\n                zoom: null,\n                boundingBox,\n            });\n        }\n    };\n\n    const isShowLaneSelectControl = !!reserve?.contractLanes?.length;\n\n    const delayedFocusOnLocationInput = (pointIndex: number, fakeId: string) => {\n        setTimeout(async () => {\n            const locationName = getRoutePointFieldName(pointIndex, RoutePointFieldsEnum.location);\n            const inputNodeSelector = `div[data-fake-id=\"${fakeId}\"] input[name=\"${locationName}\"]`;\n\n            let inputNode = null;\n            while (!inputNode) {\n                inputNode = document.querySelector(inputNodeSelector);\n\n                // @ts-expect-error\n                if (inputNode?.focus) {\n                    // @ts-expect-error\n                    inputNode?.focus();\n                }\n\n                const DELAY = MS_IN_SEC;\n                await new Promise<void>((resolve) => {\n                    setTimeout(() => {\n                        resolve();\n                    }, DELAY);\n                });\n            }\n        }, 0);\n    };\n\n    const asyncErrors = React.useMemo(() => {\n        return asyncValidate(t, reserveRequest);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [t, reserveRequest.error]);\n\n    const asyncFormErrorsContext = useAsyncFormErrors(asyncErrors);\n    const { asyncFormErrors, resetAsyncFormErrors } = asyncFormErrorsContext;\n\n    const hasSelectedAnyTeamDrive = formik.values[FieldsEnum.route].some((values, index) => {\n        if (index === 0) {\n            // is urgent pickup\n            return false;\n        }\n\n        const previewTimeWindow = reservePreview?.timeWindows?.[index] || null;\n        return (\n            values.timeWindow?.start &&\n            previewTimeWindow?.regularTimeWindow?.start &&\n            values.timeWindow.start < previewTimeWindow.regularTimeWindow.start\n        );\n    });\n\n    const handleDeleteServicePoints = React.useCallback(\n        (routeValues: RoutePointFormValuesT[], remove: (index: number) => void) => {\n            const indexesToRemove: number[] = [];\n\n            routeValues.forEach((routePointValues, valuesPointIndex) => {\n                const type = routePointValues[RoutePointFieldsEnum.type];\n                if (\n                    type === OrderCreationReservePointTypeEnum.ferryDisembark ||\n                    type === OrderCreationReservePointTypeEnum.ferryOnboard\n                ) {\n                    indexesToRemove.push(valuesPointIndex);\n                }\n            });\n\n            indexesToRemove.sort((indexA, indexB) => indexB - indexA).forEach((index) => remove(index));\n        },\n        [],\n    );\n    return (\n        <FormAsyncErrorsContext.Provider value={asyncFormErrorsContext}>\n            <FormikContext.Provider value={formik}>\n                <form onSubmit={formik.handleSubmit}>\n                    <div className={cx('wrap')} data-test-selector=\"new-order-shipment-details\">\n                        {isBroker && (\n                            <div className={cx('block')}>\n                                <div className={cx('block__title')}>\n                                    {t('common:new-order-form.blocks.shipper.title')}\n                                </div>\n                                <div className={cx('block__content')}>\n                                    <FormikField\n                                        name={FieldsEnum.shipper}\n                                        error={formik.errors[FieldsEnum.shipper]}\n                                        meta={formik.getFieldMeta(FieldsEnum.shipper)}\n                                        asyncError={asyncFormErrors[FieldsEnum.shipper]}\n                                        resetAsyncError={resetAsyncFormErrors}\n                                        label={t('common:new-order-form.fields.shipper.label')}\n                                        setFieldValue={formik.setFieldValue}\n                                        setFieldTouched={formik.setFieldTouched}\n                                    >\n                                        {(props) => (\n                                            <OrderReservesShipperSuggest\n                                                value={formik.values[FieldsEnum.shipper]?.id || null}\n                                                initialOptions={initShipperOptions}\n                                                hasClearControl\n                                                onSelect={(_, shipperDetails) => {\n                                                    formik.setValues((prevValues) => ({\n                                                        ...prevValues,\n                                                        [FieldsEnum.shipper]: shipperDetails,\n                                                    }));\n\n                                                    dispatch(\n                                                        changeReserveQuery(\n                                                            prepareApiReserveChanges({\n                                                                [FieldsEnum.shipper]: shipperDetails,\n                                                            }),\n                                                        ),\n                                                    );\n                                                }}\n                                                hasWarning={props.hasWarning}\n                                                hasError={props.hasError}\n                                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                                placeholder={t('common:new-order-form.fields.shipper.placeholder')}\n                                                onBlur={props.onBlur}\n                                                onFocus={props.onFocus}\n                                            />\n                                        )}\n                                    </FormikField>\n                                </div>\n                            </div>\n                        )}\n                        <div className={cx('block')}>\n                            <div className={cx('block__content')}>\n                                <div className={cx('field--trailer-type')}>\n                                    <TrailerTypeSwitcher\n                                        value={formik.values[FieldsEnum.trailerType]}\n                                        name={FieldsEnum.trailerType}\n                                        availableTypes={availableTrailersTypes}\n                                        setFieldValue={handleChangeTrailerTypeValue}\n                                    />\n                                </div>\n                                <div className={cx('field--trailer-mode')}>\n                                    <FormikField\n                                        name={FieldsEnum.trailerDictId}\n                                        error={formik.errors[FieldsEnum.trailerDictId]}\n                                        meta={formik.getFieldMeta(FieldsEnum.trailerDictId)}\n                                        label={t(`common:new-order-form.fields.trailer.${selectedTrailerType}.label`)}\n                                        setFieldValue={handleChangeDictTrailerId}\n                                        setFieldTouched={formik.setFieldTouched}\n                                    >\n                                        {(props) => (\n                                            <DictTrailerDropdown\n                                                placeholder={t(\n                                                    `common:new-order-form.fields.trailer.${selectedTrailerType}.placeholder`,\n                                                )}\n                                                selectedTrailerType={formik.values[FieldsEnum.trailerType]}\n                                                value={formik.values[FieldsEnum.trailerDictId]}\n                                                onChange={props.onChange}\n                                                hasWarning={props.hasWarning}\n                                                hasError={props.hasError}\n                                                onFocus={props.onFocus}\n                                                onBlur={props.onBlur}\n                                            />\n                                        )}\n                                    </FormikField>\n                                </div>\n                            </div>\n                        </div>\n                        <FormikFieldArray<FormValuesT, typeof FieldsEnum.route> name={FieldsEnum.route}>\n                            {(values, formikArrayHelpers) => {\n                                const { remove, insert } = formikArrayHelpers;\n                                return (\n                                    <>\n                                        <SyncPointsWatcher formikArrayHelpers={formikArrayHelpers} />\n                                        {values.map((value, index) => {\n                                            const nextValue = values[index + 1] || null;\n                                            const isFirst = index === 0;\n                                            const isLast = index === values.length - 1;\n\n                                            const isAllowRemove = !isFirst && !isLast;\n                                            const routePointType = value[RoutePointFieldsEnum.type];\n                                            const fakeId = value[RoutePointFieldsEnum.fakeId];\n\n                                            let label = t('common:new-order-form.fields.pickup-delivery-point.label');\n                                            if (isFirst) {\n                                                label = t('common:new-order-form.fields.first-point.label');\n                                            }\n                                            if (isLast) {\n                                                label = t('common:new-order-form.fields.last-point.label');\n                                            }\n\n                                            const isBetweenOneFerryPoints =\n                                                nextValue?.type === OrderCreationReservePointTypeEnum.ferryDisembark &&\n                                                value?.type === OrderCreationReservePointTypeEnum.ferryOnboard;\n\n                                            const isShowAddPointControl = !isLast && !isBetweenOneFerryPoints;\n\n                                            return (\n                                                <>\n                                                    {routePointType ===\n                                                        OrderCreationReservePointTypeEnum.ferryOnboard && (\n                                                        <FerryOnboardPointPicker\n                                                            routePointIndex={index}\n                                                            reserve={reserve}\n                                                        />\n                                                    )}\n                                                    {routePointType ===\n                                                        OrderCreationReservePointTypeEnum.ferryDisembark && (\n                                                        <FerryDisembarkPointPicker\n                                                            routePointIndex={index}\n                                                            reserve={reserve}\n                                                        />\n                                                    )}\n                                                    {routePointType === OrderCreationReservePointTypeEnum.shipment && (\n                                                        <PickupOrDeliveryRoutePointPicker\n                                                            key={`point-${fakeId}`}\n                                                            label={label}\n                                                            routePointIndex={index}\n                                                            reserve={reserve}\n                                                            isShowSuggestLoading={isShowSuggestLoading}\n                                                            isDisabledPreviewReserve={isDisabledPreviewReserve}\n                                                            previewReserve={reservePreview}\n                                                            onChangeRoutePointReserve={handleChangeRoutePointReserve}\n                                                            onResetRoutePointLocation={() => {\n                                                                handleDeleteServicePoints(\n                                                                    formik.values[FieldsEnum.route],\n                                                                    remove,\n                                                                );\n                                                            }}\n                                                            onRemove={(index) => {\n                                                                dispatch(\n                                                                    changeReserveQuery(\n                                                                        prepareApiReserveChangesDeleteRoutePoint(\n                                                                            values[index].fakeId,\n                                                                        ),\n                                                                    ),\n                                                                );\n\n                                                                remove(index);\n                                                            }}\n                                                            isAllowRemove={isAllowRemove}\n                                                            onManualSelectLocation={handleManualSelectLocation}\n                                                            hasSelectedAnyTeamDrive={hasSelectedAnyTeamDrive}\n                                                        />\n                                                    )}\n                                                    {routePointType ===\n                                                        OrderCreationReservePointTypeEnum.driveThrough && (\n                                                        <DriveThroughRoutePointPicker\n                                                            key={`point-${fakeId}`}\n                                                            routePointIndex={index}\n                                                            reserve={reserve}\n                                                            isShowSuggestLoading={isShowSuggestLoading}\n                                                            isDisabledPreviewReserve={isDisabledPreviewReserve}\n                                                            onChangeRoutePointReserve={handleChangeRoutePointReserve}\n                                                            onResetRoutePointLocation={() => {\n                                                                handleDeleteServicePoints(\n                                                                    formik.values[FieldsEnum.route],\n                                                                    remove,\n                                                                );\n                                                            }}\n                                                            onRemove={(index) => {\n                                                                dispatch(\n                                                                    changeReserveQuery(\n                                                                        prepareApiReserveChangesDeleteRoutePoint(\n                                                                            values[index].fakeId,\n                                                                        ),\n                                                                    ),\n                                                                );\n\n                                                                remove(index);\n                                                            }}\n                                                            isAllowRemove={isAllowRemove}\n                                                            onManualSelectLocation={handleManualSelectLocation}\n                                                        />\n                                                    )}\n                                                    {isShowAddPointControl && (\n                                                        <DividerWithDropdownControl\n                                                            key={`divider-with-dropdown-${index}`}\n                                                            className={cx('route-points-divider')}\n                                                            overlayPosition={DropdownOverlayPositionEnum.bottomCenter}\n                                                            tooltipNode={t(\n                                                                'common:new-order-form.route-editor.add-point',\n                                                            )}\n                                                            options={[\n                                                                {\n                                                                    label: (\n                                                                        <DropdownControlOptionLabel\n                                                                            icon={\n                                                                                <HollowCircleIcon\n                                                                                    borderColor={\n                                                                                        StyleGuideColorsEnum.charcoal\n                                                                                    }\n                                                                                />\n                                                                            }\n                                                                            label={t(\n                                                                                'common:new-order-form.route-editor.options.add-pickup-delivery-point',\n                                                                            )}\n                                                                        />\n                                                                    ),\n                                                                    onSelect: () => {\n                                                                        const fakeId = uuidv4();\n\n                                                                        const newRoutePoint: RoutePointFormValuesT = {\n                                                                            [RoutePointFieldsEnum.fakeId]: fakeId,\n                                                                            [RoutePointFieldsEnum.type]:\n                                                                                OrderCreationReservePointTypeEnum.shipment,\n                                                                            [RoutePointFieldsEnum.location]: null,\n                                                                            [RoutePointFieldsEnum.timeWindow]: null,\n                                                                            [RoutePointFieldsEnum.isBrokerTimeWindow]:\n                                                                                false,\n                                                                        };\n\n                                                                        const beforeFakeId = findLast(\n                                                                            values.slice(0, index + 1),\n                                                                            (item) => {\n                                                                                return (\n                                                                                    item.type ===\n                                                                                        OrderCreationReservePointTypeEnum.shipment ||\n                                                                                    item.type ===\n                                                                                        OrderCreationReservePointTypeEnum.driveThrough\n                                                                                );\n                                                                            },\n                                                                        )?.fakeId;\n                                                                        if (!beforeFakeId) {\n                                                                            return;\n                                                                        }\n\n                                                                        insert(index + 1, newRoutePoint);\n\n                                                                        dispatch(\n                                                                            changeReserveQuery(\n                                                                                prepareApiReserveChangesAddRoutePoint(\n                                                                                    beforeFakeId,\n                                                                                    newRoutePoint,\n                                                                                ),\n                                                                            ),\n                                                                        );\n\n                                                                        delayedFocusOnLocationInput(index + 1, fakeId);\n                                                                    },\n                                                                },\n                                                                {\n                                                                    label: (\n                                                                        <DropdownControlOptionLabel\n                                                                            icon={\n                                                                                <HollowCircleIcon\n                                                                                    borderColor={\n                                                                                        StyleGuideColorsEnum.gray\n                                                                                    }\n                                                                                />\n                                                                            }\n                                                                            label={t(\n                                                                                'common:new-order-form.route-editor.options.add-driver-through-point',\n                                                                            )}\n                                                                        />\n                                                                    ),\n                                                                    onSelect: () => {\n                                                                        const fakeId = uuidv4();\n\n                                                                        const newRoutePoint: RoutePointFormValuesT = {\n                                                                            [RoutePointFieldsEnum.fakeId]: fakeId,\n                                                                            [RoutePointFieldsEnum.type]:\n                                                                                OrderCreationReservePointTypeEnum.driveThrough,\n                                                                            [RoutePointFieldsEnum.location]: null,\n                                                                            [RoutePointFieldsEnum.timeWindow]: null,\n                                                                            [RoutePointFieldsEnum.isBrokerTimeWindow]:\n                                                                                false,\n                                                                        };\n\n                                                                        const beforeFakeId = findLast(\n                                                                            values.slice(0, index + 1),\n                                                                            (item) => {\n                                                                                return (\n                                                                                    item.type ===\n                                                                                        OrderCreationReservePointTypeEnum.shipment ||\n                                                                                    item.type ===\n                                                                                        OrderCreationReservePointTypeEnum.driveThrough\n                                                                                );\n                                                                            },\n                                                                        )?.fakeId;\n\n                                                                        if (!beforeFakeId) {\n                                                                            return;\n                                                                        }\n\n                                                                        insert(index + 1, newRoutePoint);\n\n                                                                        dispatch(\n                                                                            changeReserveQuery(\n                                                                                prepareApiReserveChangesAddRoutePoint(\n                                                                                    beforeFakeId,\n                                                                                    newRoutePoint,\n                                                                                ),\n                                                                            ),\n                                                                        );\n\n                                                                        delayedFocusOnLocationInput(index + 1, fakeId);\n                                                                    },\n                                                                },\n                                                            ]}\n                                                        />\n                                                    )}\n                                                </>\n                                            );\n                                        })}\n                                    </>\n                                );\n                            }}\n                        </FormikFieldArray>\n                        {isShowLaneSelectControl && <div className={cx('lane-control-placeholder')} />}\n                    </div>\n                    <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n                    <FooterSideBarLayout isAbsolute hasPaddings topNode={<FooterSideBarAlertsLayout />}>\n                        {isShowLaneSelectControl && (\n                            <FormikField\n                                name={FieldsEnum.laneId}\n                                error={formik.errors[FieldsEnum.laneId]}\n                                meta={formik.getFieldMeta(FieldsEnum.laneId)}\n                                label={t('common:new-order-form.fields.lane.label')}\n                                setFieldValue={handleChangeLaneId}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <LaneDropdownInput\n                                        selectedValue={formik.values[FieldsEnum.laneId]}\n                                        placeholder={t('common:new-order-form.fields.lane.placeholder')}\n                                        onSelect={props.onChange}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                        onFocus={props.onFocus}\n                                        onBlur={props.onBlur}\n                                        isLoading={reserveRequest.loading}\n                                        options={reserve?.contractLanes}\n                                        overlayPosition={DropdownOverlayPositionEnum.topCenter}\n                                        onReset={() => {\n                                            props.onChange(null);\n                                        }}\n                                    />\n                                )}\n                            </FormikField>\n                        )}\n                        <Button.Container>\n                            <Button\n                                isFullWidth\n                                isCenterContent\n                                theme={ButtonThemeEnum.primary}\n                                isDisabled={isSubmitting || isLoadingReservePreview || !isAllowCreateRFQ}\n                                type=\"submit\"\n                                testSelector=\"next-step\"\n                            >\n                                <SubmitButtonContent\n                                    hasReservePreview={!!reserve && !!reservePreview}\n                                    isSubmitting={isSubmitting}\n                                    isLoadingReservePreview={isLoadingReservePreview}\n                                    selectedLane={selectedLane}\n                                />\n                            </Button>\n                            <Button.Timer\n                                isAlwaysShow\n                                expireTime={reserve?.expireTime || null}\n                                tooltipMessage={t('common:new-order-form.reserve-timer.tooltip')}\n                                onExpire={handleExpire}\n                            />\n                        </Button.Container>\n                    </FooterSideBarLayout>\n                </form>\n            </FormikContext.Provider>\n        </FormAsyncErrorsContext.Provider>\n    );\n});\nexport default ShipmentDetailsForm;\n","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport OrderColoredStatus from 'common/components/status-colored/OrderColoredStatus/OrderColoredStatus';\nimport { ApiOrderStatusT } from 'common/utils/api/models';\n\ntype PropsT = {\n    status: ApiOrderStatusT | null | undefined;\n};\n\nconst OrderStatusChangedCard: React.FC<PropsT> = React.memo((props) => {\n    const { status } = props;\n\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey=\"common:notifications.order-status-changed\"\n                components={{\n                    status: <OrderColoredStatus status={status} isInline />,\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default OrderStatusChangedCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"RejectedDocumentCard__inner___QE71p\"};","import { EmissionClassEnum } from 'common/constants';\nimport { CountryCodeT } from 'common/store/countries-dict/models';\nimport { TruckStatusEnum } from 'common/utils/api/models';\n\nexport enum QueryFiltersKeysEnum {\n    model = 'model',\n    plateNumber = 'plateNumber',\n    country = 'country',\n    emissionClass = 'emissionClass',\n    status = 'status',\n\n    contractId = 'contractId',\n    contractName = 'contractName',\n\n    createdDateFrom = 'createdDateFrom',\n    createdDateTo = 'createdDateTo',\n    createdByUserId = 'createdByUserId',\n    createdByUserName = 'createdByUserName',\n\n    lastModifyDateFrom = 'lastModifyDateFrom',\n    lastModifyDateTo = 'lastModifyDateTo',\n    lastModifyByUserId = 'lastModifyByUserId',\n    lastModifyByUserName = 'lastModifyByUserName',\n\n    lastTelematicUpdateDateFrom = 'lastTelematicUpdateDateFrom',\n    lastTelematicUpdateDateTo = 'lastTelematicUpdateDateTo',\n}\n\nexport type QueryFiltersT = Partial<{\n    [QueryFiltersKeysEnum.plateNumber]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.model]: QueryParam.ArrayT<string>;\n    [QueryFiltersKeysEnum.country]: QueryParam.ArrayT<CountryCodeT>;\n    [QueryFiltersKeysEnum.emissionClass]: QueryParam.ArrayT<EmissionClassEnum>;\n    [QueryFiltersKeysEnum.status]: QueryParam.ArrayT<TruckStatusEnum>;\n    [QueryFiltersKeysEnum.contractId]: QueryParam.ArrayT<CarrierContractIdT>;\n    [QueryFiltersKeysEnum.contractName]: QueryParam.ArrayT<string>;\n\n    [QueryFiltersKeysEnum.lastModifyDateFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.lastModifyDateTo]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.lastModifyByUserId]: QueryParam.ArrayT<UserIdT>;\n    [QueryFiltersKeysEnum.lastModifyByUserName]: QueryParam.ArrayT<string>;\n    [QueryFiltersKeysEnum.createdDateFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdDateTo]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdByUserId]: QueryParam.ArrayT<UserIdT>;\n    [QueryFiltersKeysEnum.createdByUserName]: QueryParam.ArrayT<string>;\n\n    [QueryFiltersKeysEnum.lastTelematicUpdateDateFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.lastTelematicUpdateDateTo]: QueryParam.StringT;\n}>;\n\nexport enum QueryKeysEnum {\n    trucksPage = 'trucks-page',\n    trucksSort = 'trucks-sort',\n    trucksFilters = 'trucks-filters',\n    trucksTab = 'trucks-tab',\n}\n\nexport enum TrucksSortEnum {\n    createdDate = 'createdDate',\n    archiveDate = 'archiveData',\n}\n","import React from 'react';\n\nimport { CompanyContactT } from 'common/store/members/models';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport BigTrashIcon from 'common/icons/BigTrashIcon';\nimport Modal from 'common/components/Modal/Modal';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectContactById, selectUpdateMemberRequest } from 'common/store/members/selectors';\nimport { logWarning } from 'common/utils/logger';\nimport { fetchContacts } from 'common/store/members/actions';\n\nexport type CancelInviteConfirmationDataT = {\n    contactId: CompanyContactT['id'];\n    partnerId: CompanyIdT;\n};\n\nexport type CancelInviteConfirmationPropsT = {\n    data: CancelInviteConfirmationDataT | null;\n    onClose: () => void;\n    onCancel: () => void;\n    onConfirm: (partnerId: PartnerIdT, userId: UserIdT) => void;\n};\n\nconst TEST_SELECTOR = 'cancel-user-invite';\n\nconst CancelInviteConfirmation: React.FC<CancelInviteConfirmationPropsT> = React.memo((props) => {\n    const { data, onClose, onCancel, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    const contactById = useSelector(selectContactById(data?.partnerId || null));\n\n    const dispatch = useDispatch();\n    React.useEffect(() => {\n        if (!data?.partnerId) {\n            logWarning('failed fetchContacts, empty data?.partnerId');\n            return;\n        }\n\n        dispatch(fetchContacts(data.partnerId));\n    }, [dispatch, data?.partnerId]);\n\n    const updateMemberRequest = useSelector(selectUpdateMemberRequest(data?.partnerId || null));\n\n    if (!data?.partnerId || !data?.contactId) {\n        return null;\n    }\n\n    const contact = contactById[data.contactId];\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:team-members.dialogs.cancel-user-invite.keep'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: updateMemberRequest.loading,\n                            onClick: () => {\n                                onCancel();\n                            },\n                        },\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.danger,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            isLoading: updateMemberRequest.loading,\n                            onClick: () => {\n                                if (contact?.userId) {\n                                    onConfirm(data.partnerId, contact.userId);\n                                } else {\n                                    logWarning('empty user id');\n                                }\n                            },\n                        },\n                    ]}\n                    icon={<BigTrashIcon />}\n                    title={t('common:team-members.dialogs.cancel-user-invite.title', {\n                        email: contact?.email,\n                    })}\n                    message={t('common:team-members.dialogs.cancel-user-invite.description')}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default CancelInviteConfirmation;\n","// extracted by mini-css-extract-plugin\nexport default {\"widget\":\"NewOrderParametersSettingsForm__widget___Sht6I\",\"widget__inner\":\"NewOrderParametersSettingsForm__widget__inner___GyVWZ\",\"icon\":\"NewOrderParametersSettingsForm__icon____b8Mj\",\"duration\":\"NewOrderParametersSettingsForm__duration___qQUmP\",\"field\":\"NewOrderParametersSettingsForm__field___MwQDC\",\"field--range\":\"NewOrderParametersSettingsForm__field--range___nNHgy\",\"field-group\":\"NewOrderParametersSettingsForm__field-group___IkTaN\",\"fadeIn\":\"NewOrderParametersSettingsForm__fadeIn___qoivw\",\"blinking\":\"NewOrderParametersSettingsForm__blinking___WcvyI\"};","import { ApiLocationT } from 'common/utils/api/models';\nimport { formatLocation } from 'common/utils/formatters';\n\nexport const convertPointToLocation = (address: ApiLocationT | null): LocationT | null => {\n    if (!address) {\n        return null;\n    }\n\n    return {\n        address: formatLocation(address),\n        utcOffsetMinutes: null,\n        addressComponents: {\n            countryCode: address.country,\n            street1: address?.street1,\n            street2: address?.street2,\n            zipCode: address?.zipCode,\n            city: address?.city,\n        },\n        point: {\n            lat: address.latitude || 0,\n            lng: address.longitude || 0,\n        },\n    };\n};\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    strokeColor: StyleGuideColorsEnum;\n    fillColor: StyleGuideColorsEnum;\n    opacity?: number;\n    size: number;\n    className?: string;\n};\n\nconst CargoUnitIcon: React.FC<PropsT> = (props) => {\n    const { strokeColor, fillColor, opacity, size, className } = props;\n\n    return (\n        <svg width={size} height={size} viewBox=\"0 0 20 20\" className={className}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M0 0h20v20H0z\" />\n                <path fillOpacity={opacity || 1} fill={fillColor} d=\"M4.167 15.833h11.666V6.667H4.167z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M17.117 4.358l-1.159-1.4A1.21 1.21 0 0015 2.5H5a1.24 1.24 0 00-.967.458l-1.15 1.4A1.638 1.638 0 002.5 5.417v10.416c0 .917.75 1.667 1.667 1.667h11.666c.917 0 1.667-.75 1.667-1.667V5.417c0-.4-.142-.775-.383-1.059zM5.2 4.167h9.6l.692.833H4.517l.683-.833zm10.633 11.666H4.167V6.667h11.666v9.166z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nCargoUnitIcon.displayName = 'CargoUnitIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default CargoUnitIcon;\n\nexport const CargoUnitIconProps = {\n    getControlProps: ({\n        isDisabled,\n        isFocused,\n        hasError,\n        hasWarning,\n        hasSuccess,\n        hasValue,\n    }: {\n        isDisabled?: boolean;\n        isFocused?: boolean;\n        hasError?: boolean;\n        hasWarning?: boolean;\n        hasSuccess?: boolean;\n        hasValue?: boolean;\n    }): PropsT => {\n        if (hasError) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.light,\n                strokeColor: StyleGuideColorsEnum.tomatoRed,\n            };\n        }\n\n        if (hasWarning) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.light,\n                strokeColor: StyleGuideColorsEnum.orange,\n            };\n        }\n\n        if (hasSuccess) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.light,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n\n        if (isDisabled) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.light,\n                strokeColor: StyleGuideColorsEnum.slate,\n            };\n        }\n\n        return {\n            size: DEFAULT_ICON_SIZE,\n            fillColor: hasValue || isFocused ? StyleGuideColorsEnum.brandAccent5 : StyleGuideColorsEnum.light,\n            strokeColor: hasValue || isFocused ? StyleGuideColorsEnum.brandDark : StyleGuideColorsEnum.gray,\n        };\n    },\n};\n\n/**\n *  @deprecated create/use ...Props class\n * */\nexport const getCargoUnitIconProps = (\n    preset:\n        | 'default'\n        | 'selected'\n        | 'schedule-event-regular'\n        | 'schedule-event-regular'\n        | 'schedule-event-past'\n        | 'schedule-event-future'\n        | 'schedule-event-accent',\n): Pick<PropsT, 'fillColor' | 'strokeColor'> => {\n    switch (preset) {\n        case 'selected': {\n            return {\n                fillColor: StyleGuideColorsEnum.brandAccent5,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        case 'schedule-event-future':\n        case 'schedule-event-regular': {\n            return {\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.white,\n            };\n        }\n        case 'schedule-event-past': {\n            return {\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.gray,\n            };\n        }\n        case 'schedule-event-accent': {\n            return {\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.charcoal,\n            };\n        }\n        default: {\n            return {\n                fillColor: StyleGuideColorsEnum.light,\n                strokeColor: StyleGuideColorsEnum.slate,\n            };\n        }\n    }\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"HeaderSideBarLayout__wrap___aJp7H\",\"wrap--hasBottomBorder\":\"HeaderSideBarLayout__wrap--hasBottomBorder___MVfM0\",\"fadeIn\":\"HeaderSideBarLayout__fadeIn___pI345\",\"blinking\":\"HeaderSideBarLayout__blinking___YbaUs\"};","// extracted by mini-css-extract-plugin\nexport default {\"upload-pseudo-row\":\"BaseCarrierContractsLayout__upload-pseudo-row___jaPR5\",\"upload-text\":\"BaseCarrierContractsLayout__upload-text___tHDY1\",\"navigation-tabs\":\"BaseCarrierContractsLayout__navigation-tabs___apLhv\",\"fadeIn\":\"BaseCarrierContractsLayout__fadeIn___XIK62\",\"blinking\":\"BaseCarrierContractsLayout__blinking___wWspx\"};","import React, { useContext } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './RouteForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { MS_IN_HOUR, MS_IN_SEC } from 'common/utils/time';\n\nimport {\n    EXCLUDE_COUNTRIES_COLD_TIME,\n    FieldsEnum,\n    RouteFormValuesT,\n    RoutePointFieldsEnum,\n    RoutePointFormValuesT,\n} from './constants';\nimport validateForm from './validate-form';\nimport { FormikContext, useFormik } from 'formik';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\n\nimport { fetchCountrySettingsDict } from 'common/store/country-settings-dict/actions';\nimport { selectCountrySettingsByCountryCode } from 'common/store/country-settings-dict/selectors';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport Checkbox, { CheckboxThemeEnum } from 'design-system/components/Checkbox/Checkbox';\nimport DropPointPicker from 'broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/DropPointPicker/DropPointPicker';\nimport DriveThroughRoutePointPicker from './DriveThroughRoutePointPicker/DriveThroughRoutePointPicker';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport FormikFieldArray from 'common/components/forms/FormikFieldArray/FormikFieldArray';\nimport { checkIsAvailableRoutePoint, getRoutePointFieldName } from './utils';\nimport { getInitialRoutePointFormValues, getInitialValues } from './get-initial-values';\nimport keyBy from 'lodash/keyBy';\nimport { OnChangeRouteStopAddressT, OnChangeRouteStopTimeWindowT, OnDeleteRouteStopReserveT } from './models';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport isEmpty from 'lodash/isEmpty';\nimport {\n    MapRoutePointT,\n    OnChangeExcludedCountriesCallbackT,\n    OnDragEndDnDCallbackT,\n    OnMapClickCallbackT,\n    SyncRouteEditFormMapStateContext,\n} from '../contexts/sync-map-state';\nimport { BoundPointT } from 'common/components/maps/MapBound/MapBound';\nimport { prepareLocation } from 'common/utils/prepare-location';\nimport getBoundingBox from 'common/utils/get-bounding-box';\nimport { isNonNil } from 'common/utils';\nimport { TooltipPositionEnum } from 'design-system/components/Tooltip/Tooltip';\n\nimport get from 'lodash/get';\nimport FerryOnboardPointPicker from './FerryOnboardPointPicker/FerryOnboardPointPicker';\nimport FerryDisembarkPointPicker from './FerryDisembarkPointPicker/FerryDisembarkPointPicker';\nimport SyncPointsWatcher from './SyncPointsWatcher/SyncPointsWatcher';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport TrucksSuggest from 'broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/TrucksSuggest/TrucksSuggest';\nimport { DividerTrigger } from 'design-system/components/DividerWithDropdownControl/DividerTrigger/DividerTrigger';\nimport {\n    ContextRouteStopFakeIdT,\n    DeadheadPreviewContextResponseT,\n    DeadheadRouteStopTimeWindowT,\n    DeadheadRouteStopTypeEnum,\n} from 'broker-admin/store/deadhead-creation/models';\nimport {\n    selectDeadheadContext,\n    selectDeadheadContextRequest,\n    selectDeadheadPreviewRequest,\n    selectDeadheadPreviewResponse,\n    selectIsApplyingContextChanges,\n} from 'broker-admin/store/deadhead-creation/selectors';\nimport { logWarning } from 'common/utils/logger';\nimport { changeDeadheadContext, DeadheadChangeEventT } from 'broker-admin/store/deadhead-creation/slice';\nimport { ApiTruckAssetT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport PickupPointPicker from 'broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/PickupPointPicker/PickupPointPicker';\nimport { useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { deadheadCreationQueryModifyChannel } from 'broker-admin/store/deadhead-creation/channels';\nimport { contextSyncRouteStopsModifyChannel } from 'broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/hooks/use-sync-route-stops-channels';\nimport DeadheadCreationReceipt from './DeadheadCreationReceipt/DeadheadCreationReceipt';\nimport BigLaneIcon from 'common/icons/BigLaneIcon';\nimport { SyncAssetScheduleContext } from 'broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/contexts/sync-asset-schedule';\nimport asyncValidations from './async-validations';\nimport useAsyncFormErrors from 'common/utils/hooks/useAsyncFormErrors';\nimport moment from 'moment';\nimport ControlLoaderWithShadow from 'common/components/ControlLoaderWithShadow/ControlLoaderWithShadow';\nimport debounce from 'lodash/debounce';\nimport { getFieldFormValue } from 'common/utils/form-values';\nimport { generatePointFakeId } from 'broker-admin/store/deadhead-creation/utils/generate-point-fake-id';\nimport useOnlyChangesEffect from 'common/utils/hooks/useOnlyChangesEffect';\nimport FooterSideBarAlertsLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarAlertsLayout/FooterSideBarAlertsLayout';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    initialFormValues: RouteFormValuesT | null;\n    onSubmit: (contextId: ContextIdT, formValues: RouteFormValuesT) => void;\n    doNotIncludeCostsInTransportOrder: boolean;\n    setDoNotIncludeCostsInTransportOrder: (doNotIncludeCostsInTransportOrder: boolean) => void;\n\n    onExpireContext: () => void;\n};\n\nconst draggableRouteStopTypeSet = new Set<`${DeadheadRouteStopTypeEnum}`>([\n    DeadheadRouteStopTypeEnum.driveThrough,\n    DeadheadRouteStopTypeEnum.dropRoadTrain,\n    DeadheadRouteStopTypeEnum.dropTruck,\n]);\n\nconst RouteForm: React.FC<PropsT> = (props) => {\n    const {\n        initialFormValues,\n        onSubmit,\n        doNotIncludeCostsInTransportOrder,\n        setDoNotIncludeCostsInTransportOrder,\n        onExpireContext,\n    } = props;\n\n    const syncMapStateContext = useContext(SyncRouteEditFormMapStateContext);\n\n    const context = useSelector(selectDeadheadContext);\n    const contextRequestStatus = useSelector(selectDeadheadContextRequest);\n\n    const contextPreview = useSelector(selectDeadheadPreviewResponse);\n    const contextPreviewRequestStatus = useSelector(selectDeadheadPreviewRequest);\n\n    const isApplyingContextChanges = useSelector(selectIsApplyingContextChanges);\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const countriesSettingsByCode = useSelector(selectCountrySettingsByCountryCode);\n    React.useEffect(() => {\n        dispatch(fetchCountrySettingsDict());\n    }, [dispatch]);\n\n    const { excludedCountries } = syncMapStateContext;\n    const validate = React.useMemo(() => {\n        return (values: RouteFormValuesT) =>\n            validateForm(t, values, {\n                countriesSettingsByCode,\n                excludedCountries,\n            });\n    }, [t, countriesSettingsByCode, excludedCountries]);\n\n    const contextId = contextPreview?.contextId || null;\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = initialFormValues || getInitialValues();\n        const errors = validateForm(t, values, { countriesSettingsByCode, excludedCountries });\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    React.useEffect(() => {\n        dispatch(\n            changeDeadheadContext({\n                type: 'init',\n                initRoute: initialValues[FieldsEnum.route].map((routePoint) => {\n                    return {\n                        address: prepareLocation(routePoint[RoutePointFieldsEnum.location]),\n                        contextRouteStopFakeId: routePoint[RoutePointFieldsEnum.fakePointId],\n                    };\n                }),\n            }),\n        );\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const formik = useFormik<RouteFormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            if (!contextId) {\n                logWarning(`Failed to send form, empty contextId`);\n                return;\n            }\n\n            onSubmit(contextId, values);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    useOnlyChangesEffect(() => {\n        formik.validateForm();\n    }, [excludedCountries]);\n\n    const routeValue = formik.values[FieldsEnum.route];\n\n    React.useEffect(() => {\n        const routePoints = routeValue.map((routePointValues, index): MapRoutePointT => {\n            const id = routePointValues[RoutePointFieldsEnum.fakePointId];\n            const type = routePointValues[RoutePointFieldsEnum.type];\n            const location = routePointValues[RoutePointFieldsEnum.location];\n\n            const locationFieldName = `${FieldsEnum.route}.${index}.${RoutePointFieldsEnum.location}` as const;\n            const hasError = !!get(formik.errors, locationFieldName);\n\n            return {\n                id,\n                type,\n                number: index + 1,\n                location,\n                isDraggable: draggableRouteStopTypeSet.has(type),\n                hasError,\n            };\n        });\n\n        syncMapStateContext.setMapRoutePoints(routePoints);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [contextPreview, routeValue, formik.errors]);\n\n    React.useEffect(() => {\n        const boundPoints: Array<BoundPointT> = [];\n\n        const initialRoute = initialValues[FieldsEnum.route] || [];\n\n        initialRoute?.forEach((mapRoutePoint) => {\n            boundPoints.push([mapRoutePoint?.location?.point?.lat, mapRoutePoint?.location?.point?.lng]);\n        });\n\n        syncMapStateContext?.onSetMapBoundingBox?.callback?.(boundPoints);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [initialValues, syncMapStateContext?.onSetMapBoundingBox]);\n\n    const { setFieldValue, setFieldTouched, values } = formik;\n\n    const handleChangeExcludedCountriesCallback: OnChangeExcludedCountriesCallbackT = React.useCallback(\n        (excludedCountries) => {\n            dispatch(\n                changeDeadheadContext({\n                    type: 'set-excluded-countries',\n                    excludedCountries,\n                }),\n            );\n        },\n        [dispatch],\n    );\n\n    React.useEffect(() => {\n        syncMapStateContext?.setOnChangeExcludedCountriesCallback({\n            callback: debounce(handleChangeExcludedCountriesCallback, EXCLUDE_COUNTRIES_COLD_TIME),\n        });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [handleChangeExcludedCountriesCallback, syncMapStateContext?.setOnChangeExcludedCountriesCallback]);\n\n    const selectedTruck = formik.values[FieldsEnum.truck] || null;\n    const hasSelectedTruck = Boolean(selectedTruck);\n\n    const onMapClickCallback: OnMapClickCallbackT = React.useCallback(\n        (location) => {\n            if (!hasSelectedTruck) {\n                return;\n            }\n\n            const route = values[FieldsEnum.route] || [];\n\n            const firstEmptyLocationRoutePointIndex = route.findIndex((routePoint) => {\n                return !checkIsAvailableRoutePoint(routePoint) && draggableRouteStopTypeSet.has(routePoint.type);\n            });\n\n            if (firstEmptyLocationRoutePointIndex === -1) {\n                return;\n            }\n\n            const locationFieldName =\n                `${FieldsEnum.route}.${firstEmptyLocationRoutePointIndex}.${RoutePointFieldsEnum.location}` as const;\n            setFieldValue(locationFieldName, location);\n            setFieldTouched(locationFieldName, true);\n\n            const preparedLocation = prepareLocation(location);\n            if (!preparedLocation) {\n                return;\n            }\n\n            const fakePointIdFieldName =\n                `${FieldsEnum.route}.${firstEmptyLocationRoutePointIndex}.${RoutePointFieldsEnum.fakePointId}` as const;\n            const fakePointId = getFieldFormValue(values, fakePointIdFieldName);\n\n            dispatch(\n                changeDeadheadContext({\n                    type: 'change-stop-location',\n                    contextRouteStopFakeId: fakePointId,\n                    address: preparedLocation,\n                }),\n            );\n        },\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        [dispatch, values, setFieldValue, hasSelectedTruck],\n    );\n\n    React.useEffect(() => {\n        syncMapStateContext?.setOnMapClickCallback({ callback: onMapClickCallback });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [onMapClickCallback, syncMapStateContext?.setOnMapClickCallback]);\n\n    const onDragEndDnDCallback: OnDragEndDnDCallbackT = React.useCallback(\n        (id, location) => {\n            const routeValue = values[FieldsEnum.route] || [];\n\n            const index = routeValue?.findIndex((routePointValues) => {\n                return id === routePointValues[RoutePointFieldsEnum.fakePointId];\n            });\n\n            const locationFieldName = `${FieldsEnum.route}.${index}.${RoutePointFieldsEnum.location}` as const;\n            setFieldValue(locationFieldName, location);\n            setFieldTouched(locationFieldName, true);\n\n            const preparedLocation = prepareLocation(location);\n            if (!preparedLocation) {\n                return;\n            }\n\n            const fakePointIdFieldName = `${FieldsEnum.route}.${index}.${RoutePointFieldsEnum.fakePointId}` as const;\n            const fakePointId = getFieldFormValue(values, fakePointIdFieldName);\n\n            dispatch(\n                changeDeadheadContext({\n                    type: 'change-stop-location',\n                    contextRouteStopFakeId: fakePointId,\n                    address: preparedLocation,\n                }),\n            );\n        },\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        [dispatch, values, setFieldValue],\n    );\n\n    React.useEffect(() => {\n        syncMapStateContext?.setOnDragEndDnDCallback({ callback: onDragEndDnDCallback });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [onDragEndDnDCallback, syncMapStateContext?.setOnDragEndDnDCallback]);\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const refreshDeadheadCreationModifyHandler = React.useCallback(\n        (event: InferChannelEventT<typeof deadheadCreationQueryModifyChannel>) => {\n            const formValuesChanges: Partial<RouteFormValuesT> = {};\n\n            const oldRouteFormValues = formik.values[FieldsEnum.route];\n            let newRouteFormValues: typeof oldRouteFormValues = [];\n\n            if (!isEmpty(event?.correctedStops)) {\n                const correctedStopByFakeId = keyBy(event?.correctedStops, (stop) => {\n                    return stop.fakeId;\n                });\n\n                newRouteFormValues = oldRouteFormValues.map((routePointFormValues) => {\n                    const fakePointId = routePointFormValues[RoutePointFieldsEnum.fakePointId] || null;\n                    const correctedStop = correctedStopByFakeId[fakePointId as ContextRouteStopFakeIdT] || null;\n\n                    let correctedTimeWindow: DeadheadRouteStopTimeWindowT | null = null;\n\n                    let correctedDateTimeFrom: string | null = null;\n                    let correctedDateTimeTo: string | null = null;\n\n                    if (routePointFormValues.timeWindow) {\n                        correctedDateTimeFrom = correctedStop?.correctedDateTimeFrom || null;\n                        correctedDateTimeTo = correctedStop?.correctedDateTimeTo || null;\n                    } else {\n                        correctedDateTimeFrom =\n                            correctedStop?.correctedDateTimeFrom || correctedStop?.originalDateTimeFrom || null;\n                        correctedDateTimeTo =\n                            correctedStop?.correctedDateTimeTo || correctedStop?.originalDateTimeTo || null;\n                    }\n\n                    if (correctedDateTimeFrom && correctedDateTimeTo) {\n                        correctedTimeWindow = {\n                            start: correctedDateTimeFrom,\n                            end: correctedDateTimeTo,\n                        };\n                    }\n\n                    if (correctedTimeWindow) {\n                        return {\n                            ...routePointFormValues,\n                            [RoutePointFieldsEnum.timeWindow]: correctedTimeWindow,\n                        };\n                    }\n\n                    return routePointFormValues;\n                });\n\n                // first stop - pickup point\n                const firstStop = event?.correctedStops?.[0] || null;\n                if (firstStop) {\n                    newRouteFormValues[0] = {\n                        ...newRouteFormValues[0],\n                        ...getInitialRoutePointFormValues(firstStop),\n                    };\n                }\n\n                // last stop - drop point\n                const lastStop = event?.correctedStops?.[(event?.correctedStops?.length || 0) - 1] || null;\n                if (event?.correctedStops && event?.correctedStops.length > 1 && lastStop) {\n                    newRouteFormValues[newRouteFormValues.length - 1] = {\n                        ...newRouteFormValues[newRouteFormValues.length - 1],\n                        type: getInitialRoutePointFormValues(lastStop)?.type,\n                    };\n                }\n\n                formValuesChanges[FieldsEnum.route] = newRouteFormValues;\n            }\n\n            if (!isEmpty(formValuesChanges)) {\n                formik.setValues((prevValues) => ({\n                    ...prevValues,\n                    ...formValuesChanges,\n                }));\n            }\n\n            const hasPointsCorrection = Boolean(event.correctedStops?.length);\n            if (hasPointsCorrection && event.correctedStops) {\n                contextSyncRouteStopsModifyChannel.emit({\n                    correctedStops: event?.correctedStops,\n                    routeFormValues: newRouteFormValues,\n                    addedStopFakeIds: event?.addedStopFakeIds,\n                    deletedStopFakeIds: event?.deletedStopFakeIds,\n                    orderStopFakeIds: event?.orderStopFakeIds,\n                });\n            }\n        },\n        [formik],\n    );\n    useChannelSubscribe(deadheadCreationQueryModifyChannel, refreshDeadheadCreationModifyHandler);\n\n    const asyncErrors = React.useMemo(() => {\n        return asyncValidations(t, formik.values, {\n            contextRequestStatus,\n            contextPreviewRequestStatus,\n        });\n    }, [t, formik.values, contextRequestStatus, contextPreviewRequestStatus]);\n\n    const { asyncFormErrors, resetAsyncFormErrors } = useAsyncFormErrors(asyncErrors);\n\n    const isLoadingSubmit = contextRequestStatus.loading || contextPreviewRequestStatus.loading;\n    const hasAsyncErrors = !isEmpty(asyncErrors);\n    const isDisabledSubmit = isLoadingSubmit || isApplyingContextChanges || hasAsyncErrors;\n\n    const delayedFocusOnLocationInput = (pointIndex: number, id: string) => {\n        setTimeout(async () => {\n            const locationName = getRoutePointFieldName(pointIndex, RoutePointFieldsEnum.location);\n            const inputNodeSelector = `div[data-point-id=\"${id}\"] input[name=\"${locationName}\"]`;\n\n            let inputNode = null;\n            while (!inputNode) {\n                inputNode = document.querySelector(inputNodeSelector);\n\n                // @ts-expect-error\n                if (inputNode?.focus) {\n                    // @ts-expect-error\n                    inputNode?.focus();\n                }\n\n                const DELAY = MS_IN_SEC;\n                await new Promise<void>((resolve) => {\n                    setTimeout(() => {\n                        resolve();\n                    }, DELAY);\n                });\n            }\n        }, 0);\n    };\n\n    const handleManualSelectLocation = (location: LocationT | null, routePointIndex: number) => {\n        if (!location) {\n            return;\n        }\n\n        const route = formik.values[FieldsEnum.route] || [];\n\n        const currentLocations = route.map((routePointValues) => routePointValues[RoutePointFieldsEnum.location]);\n        currentLocations[routePointIndex] = location;\n\n        const points = currentLocations.map((location) => location?.point).filter(isNonNil);\n\n        const boundingBox = getBoundingBox(points);\n        syncMapStateContext?.onSetMapBoundingBox?.callback?.(boundingBox);\n    };\n\n    const handleChangeRoutePointAddress: OnChangeRouteStopAddressT = (\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        routePointIndex,\n        contextRouteStopFakeId,\n        changes,\n    ) => {\n        dispatch(\n            changeDeadheadContext({\n                type: 'change-stop-location',\n                contextRouteStopFakeId,\n                address: changes?.address,\n            }),\n        );\n    };\n\n    const handleChangeRoutePointTimeWindow: OnChangeRouteStopTimeWindowT = (\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        routePointIndex,\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        contextRouteStopFakeId,\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        changes,\n    ) => {\n        dispatch(\n            changeDeadheadContext({\n                type: 'set-arrival-date-time',\n                arrivalDateTime: changes.timeWindow?.start,\n            }),\n        );\n    };\n\n    const handleRemoveRoutePointReserve: OnDeleteRouteStopReserveT = (routePointIndex, contextRouteStopFakeId) => {\n        dispatch(\n            changeDeadheadContext({\n                type: 'delete-route-point',\n                contextRouteStopFakeId,\n            }),\n        );\n    };\n\n    const handleChangeTruck = (_: string, truck: ApiTruckAssetT | null) => {\n        let valueChanges: Partial<RouteFormValuesT> = {\n            [FieldsEnum.truck]: truck,\n        };\n\n        const truckId = (!truck?.invalidReason && truck?.id) || null;\n        let event: DeadheadChangeEventT = {\n            type: 'set-truck-id',\n            truckId,\n        };\n\n        if (truck) {\n            valueChanges = {\n                ...valueChanges,\n            };\n        } else {\n            valueChanges = {\n                ...valueChanges,\n                [FieldsEnum.route]: initialValues[FieldsEnum.route],\n            };\n            event = {\n                ...event,\n                resetRoute: initialValues[FieldsEnum.route].map((routePoint) => {\n                    return {\n                        address: prepareLocation(routePoint[RoutePointFieldsEnum.location]),\n                        contextRouteStopFakeId: routePoint[RoutePointFieldsEnum.fakePointId],\n                    };\n                }),\n            };\n        }\n\n        formik.setValues((values) => ({\n            ...values,\n            ...valueChanges,\n        }));\n\n        dispatch(changeDeadheadContext(event));\n    };\n\n    const arrivalDate = routeValue[routeValue.length - 1]?.timeWindow?.start || null;\n    const currentRange = React.useMemo(() => {\n        if (!arrivalDate) {\n            return null;\n        }\n\n        const parsedArrivalDate = moment.parseZone(arrivalDate).toDate();\n\n        return (\n            context?.ranges?.find((range) => {\n                const parsedFrom = moment.parseZone(range.from).toDate();\n                if (!range?.to && parsedFrom) {\n                    return parsedFrom <= parsedArrivalDate;\n                }\n\n                if (range?.to && parsedFrom) {\n                    const parsedTo = moment.parseZone(range.to).toDate();\n                    return parsedFrom <= parsedArrivalDate && parsedTo >= parsedArrivalDate;\n                }\n\n                return false;\n            }) || null\n        );\n    }, [context, arrivalDate]);\n\n    const handleOpenTrailerDetails = (partnerId: PartnerIdT, trailerId: TrailerIdT) => {\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.trailerDetails,\n            partnerId,\n            trailerId,\n        });\n    };\n\n    const stopByFakeId = React.useMemo(() => {\n        return keyBy(contextPreview?.stops, (stop) => stop.fakeId);\n    }, [contextPreview]);\n\n    const [prevContextPreview, setPrevContextPreview] = React.useState<DeadheadPreviewContextResponseT | null>(null);\n    React.useEffect(() => {\n        setPrevContextPreview((prevContextPreview) => {\n            return contextPreview || prevContextPreview;\n        });\n    }, [contextPreview]);\n\n    useOnlyChangesEffect(() => {\n        if (!hasSelectedTruck) {\n            // reset route\n            setPrevContextPreview(null);\n            formik.setFieldValue(FieldsEnum.route, initialValues.route);\n        }\n    }, [hasSelectedTruck]);\n\n    const syncAssetScheduleContext = React.useContext(SyncAssetScheduleContext);\n    React.useEffect(() => {\n        syncAssetScheduleContext.setTruckId(selectedTruck?.id || null);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [syncAssetScheduleContext.setTruckId, selectedTruck]);\n\n    const possibleContextPreview = contextPreview || prevContextPreview || null;\n\n    return (\n        <div className={cx('wrap')}>\n            <FormikContext.Provider value={formik}>\n                <form onSubmit={formik.handleSubmit}>\n                    <div className={cx('form')}>\n                        <FormikField\n                            className={cx('field', 'field--truck')}\n                            name={FieldsEnum.truck}\n                            error={formik.errors[FieldsEnum.truck]}\n                            meta={formik.getFieldMeta(FieldsEnum.truck)}\n                            label={t('assignment.fields.truck.label')}\n                            asyncError={asyncFormErrors[FieldsEnum.truck]}\n                            resetAsyncError={resetAsyncFormErrors}\n                            setFieldValue={handleChangeTruck}\n                            setFieldTouched={formik.setFieldTouched}\n                            isForceShowWarning\n                        >\n                            {(props) => (\n                                <TrucksSuggest\n                                    initialValue={formik.initialValues[FieldsEnum.truck]}\n                                    value={formik.values[FieldsEnum.truck]}\n                                    onSelect={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasWarning={props.hasWarning}\n                                    hasError={props.hasError}\n                                    overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                    placeholder={t('assignment.fields.truck.placeholder')}\n                                />\n                            )}\n                        </FormikField>\n                        {hasSelectedTruck ? (\n                            <>\n                                <FormikFieldArray<RouteFormValuesT, typeof FieldsEnum.route> name={FieldsEnum.route}>\n                                    {(values, formikArrayHelpers) => {\n                                        const { remove, insert } = formikArrayHelpers;\n\n                                        return (\n                                            <>\n                                                <SyncPointsWatcher formikArrayHelpers={formikArrayHelpers} />\n                                                {values.map((value, index) => {\n                                                    const nextValue = values[index + 1] || null;\n\n                                                    const isLast = index === values.length - 1;\n\n                                                    const routePointType = value[RoutePointFieldsEnum.type];\n                                                    const fakePointId = value[RoutePointFieldsEnum.fakePointId];\n\n                                                    const routeStop = stopByFakeId[fakePointId] || null;\n\n                                                    const isBetweenOneFerryPoints =\n                                                        nextValue?.type === DeadheadRouteStopTypeEnum.ferryDisembark &&\n                                                        value?.type === DeadheadRouteStopTypeEnum.ferryOnboard;\n\n                                                    const isShowAddPointControl = !isLast && !isBetweenOneFerryPoints;\n\n                                                    return (\n                                                        <>\n                                                            {(routePointType ===\n                                                                DeadheadRouteStopTypeEnum.pickupTruck ||\n                                                                routePointType ===\n                                                                    DeadheadRouteStopTypeEnum.pickupRoadTrain) && (\n                                                                <PickupPointPicker\n                                                                    key={`point-${fakePointId}`}\n                                                                    className={cx('route-point-fields')}\n                                                                    routePointIndex={index}\n                                                                    currentRange={currentRange}\n                                                                    onOpenTrailerDetails={handleOpenTrailerDetails}\n                                                                />\n                                                            )}\n                                                            {(routePointType === DeadheadRouteStopTypeEnum.dropTruck ||\n                                                                routePointType ===\n                                                                    DeadheadRouteStopTypeEnum.dropRoadTrain) && (\n                                                                <DropPointPicker\n                                                                    key={`point-${fakePointId}`}\n                                                                    className={cx('route-point-fields')}\n                                                                    routePointIndex={index}\n                                                                    routeStop={routeStop}\n                                                                    currentRange={currentRange}\n                                                                    ranges={context?.ranges || null}\n                                                                    onChangeRoutePointAddress={\n                                                                        handleChangeRoutePointAddress\n                                                                    }\n                                                                    onChangeRoutePointTimeWindow={\n                                                                        handleChangeRoutePointTimeWindow\n                                                                    }\n                                                                    onManualSelectLocation={handleManualSelectLocation}\n                                                                />\n                                                            )}\n                                                            {routePointType ===\n                                                                DeadheadRouteStopTypeEnum.driveThrough && (\n                                                                <DriveThroughRoutePointPicker\n                                                                    key={`point-${fakePointId}`}\n                                                                    className={cx('route-point-fields')}\n                                                                    routePointIndex={index}\n                                                                    onChangeRoutePointAddress={\n                                                                        handleChangeRoutePointAddress\n                                                                    }\n                                                                    onManualSelectLocation={handleManualSelectLocation}\n                                                                    onRemove={(\n                                                                        routePointIndex,\n                                                                        contextRoutePointHash,\n                                                                    ) => {\n                                                                        handleRemoveRoutePointReserve(\n                                                                            routePointIndex,\n                                                                            contextRoutePointHash,\n                                                                        );\n                                                                        remove(routePointIndex);\n                                                                    }}\n                                                                />\n                                                            )}\n                                                            {routePointType ===\n                                                                DeadheadRouteStopTypeEnum.ferryOnboard && (\n                                                                <FerryOnboardPointPicker\n                                                                    key={`point-${fakePointId}`}\n                                                                    className={cx('route-point-fields')}\n                                                                    routePointIndex={index}\n                                                                />\n                                                            )}\n                                                            {routePointType ===\n                                                                DeadheadRouteStopTypeEnum.ferryDisembark && (\n                                                                <FerryDisembarkPointPicker\n                                                                    key={`point-${fakePointId}`}\n                                                                    className={cx('route-point-fields')}\n                                                                    routePointIndex={index}\n                                                                />\n                                                            )}\n                                                            {isShowAddPointControl && (\n                                                                <DividerTrigger\n                                                                    key={`divider-with-dropdown-${index}`}\n                                                                    className={cx('route-points-divider')}\n                                                                    onClick={() => {\n                                                                        const fakeId =\n                                                                            generatePointFakeId('manual-added');\n\n                                                                        const newRoutePoint: RoutePointFormValuesT = {\n                                                                            [RoutePointFieldsEnum.fakePointId]: fakeId,\n                                                                            [RoutePointFieldsEnum.type]:\n                                                                                DeadheadRouteStopTypeEnum.driveThrough,\n                                                                            [RoutePointFieldsEnum.location]: null,\n                                                                            [RoutePointFieldsEnum.timeWindow]: null,\n                                                                        };\n\n                                                                        insert(index + 1, newRoutePoint);\n\n                                                                        const beforeFakePointIds = [...values]\n                                                                            .slice(0, index + 1)\n                                                                            .map(\n                                                                                (routePoint) =>\n                                                                                    routePoint[\n                                                                                        RoutePointFieldsEnum.fakePointId\n                                                                                    ],\n                                                                            );\n\n                                                                        dispatch(\n                                                                            changeDeadheadContext({\n                                                                                type: 'insert-route-point',\n                                                                                beforeContextRouteStopFakeIds:\n                                                                                    beforeFakePointIds,\n                                                                                contextRouteStopFakeId: fakeId,\n                                                                                address: null,\n                                                                            }),\n                                                                        );\n\n                                                                        delayedFocusOnLocationInput(index + 1, fakeId);\n                                                                    }}\n                                                                />\n                                                            )}\n                                                        </>\n                                                    );\n                                                })}\n                                            </>\n                                        );\n                                    }}\n                                </FormikFieldArray>\n                                <div className={cx('receipt-wrap')}>\n                                    {!possibleContextPreview &&\n                                        (contextPreviewRequestStatus.loading || contextRequestStatus.loading) && (\n                                            <div className={cx('receipt-wrap__loader')}>\n                                                <ControlLoaderWithShadow fillColor={StyleGuideColorsEnum.light} />\n                                            </div>\n                                        )}\n                                    {possibleContextPreview && (\n                                        <DeadheadCreationReceipt\n                                            className={cx('receipt')}\n                                            contextPreview={possibleContextPreview}\n                                            contextPreviewRequestStatus={contextPreviewRequestStatus}\n                                            contextRequestStatus={contextRequestStatus}\n                                        />\n                                    )}\n                                </div>\n                            </>\n                        ) : (\n                            <div className={cx('route-placeholder')}>\n                                <BigLaneIcon className={cx('route-placeholder__icon')} />\n                                <div className={cx('route-placeholder__text')}>\n                                    {t('deadhead-creation.receipt.placeholder.empty-truck')}\n                                </div>\n                            </div>\n                        )}\n                    </div>\n                    <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n                    {Boolean(possibleContextPreview) && (\n                        <FooterSideBarLayout hasPaddings hasShadow topNode={<FooterSideBarAlertsLayout />}>\n                            <div className={cx('footer-content')}>\n                                <Checkbox\n                                    className={cx('not-include-costs')}\n                                    theme={CheckboxThemeEnum.orange}\n                                    checked={doNotIncludeCostsInTransportOrder}\n                                    label={t('deadhead-creation.route-form.fields.not-include-costs.label')}\n                                    onChange={setDoNotIncludeCostsInTransportOrder}\n                                />\n                                <div className={cx('actions')}>\n                                    <Button.Container className={cx('action')}>\n                                        <Button\n                                            isFullWidth\n                                            isCenterContent\n                                            theme={ButtonThemeEnum.primary}\n                                            isDisabled={isDisabledSubmit}\n                                            isLoading={isLoadingSubmit}\n                                            type=\"submit\"\n                                        >\n                                            {t('deadhead-creation.route-form.submit')}\n                                        </Button>\n                                        {context?.expireTime && (\n                                            <Button.Timer\n                                                showTime={MS_IN_HOUR}\n                                                expireTime={context?.expireTime || null}\n                                                tooltipPosition={TooltipPositionEnum.topRight}\n                                                tooltipMessage={t('deadhead-creation.context-expiration.tooltip')}\n                                                onExpire={onExpireContext}\n                                            />\n                                        )}\n                                    </Button.Container>\n                                </div>\n                            </div>\n                        </FooterSideBarLayout>\n                    )}\n                </form>\n            </FormikContext.Provider>\n        </div>\n    );\n};\n\nexport default RouteForm;\n","import { SEC_IN_HOUR } from 'common/utils/time';\nimport isNumber from 'lodash/isNumber';\n\nexport const checkShouldShowLayover = (\n    layoverSeconds: number | null | undefined,\n    layoverCost: number | null | undefined,\n): boolean => {\n    return (isNumber(layoverSeconds) && layoverSeconds > SEC_IN_HOUR) || (isNumber(layoverCost) && layoverCost > 0);\n};\n\nexport const costToString = (cost: number | null | undefined) => {\n    return isNumber(cost) ? String(cost) : '';\n};\n","import { RequestStatusT } from 'common/utils/request-status';\nimport { TrackPointT } from 'common/store/asset-track/models';\n\nexport const FETCH_TRACK_BY_ORDER = 'common/asset-track/FETCH_TRACK_BY_ORDER';\nexport const FETCH_TRACK_BY_TRANSPORT_ORDERS = 'common/asset-track/FETCH_TRACK_BY_TRANSPORT_ORDERS';\nexport const FETCH_TRACK_REQUEST_BEGIN = 'common/asset-track/FETCH_TRACK_REQUEST_BEGIN';\nexport const FETCH_TRACK_REQUEST_ERROR = 'common/asset-track/FETCH_TRACK_REQUEST_ERROR';\nexport const FETCH_TRACK_REQUEST_SUCCESS = 'common/asset-track/FETCH_TRACK_REQUEST_SUCCESS';\n\nexport type FetchTrackByOrderActionT = {\n    type: typeof FETCH_TRACK_BY_ORDER;\n    orderId: OrderIdT;\n};\n\nexport type FetchTrackByTransportOrderActionT = {\n    type: typeof FETCH_TRACK_BY_TRANSPORT_ORDERS;\n    transportOrderIds: Array<TransportOrderIdT>;\n};\n\nexport type FetchTrackRequestBeginActionT = {\n    type: typeof FETCH_TRACK_REQUEST_BEGIN;\n    hash: HashT;\n};\n\nexport type FetchTrackRequestErrorActionT = {\n    type: typeof FETCH_TRACK_REQUEST_ERROR;\n    error: Error;\n    hash: HashT;\n};\n\nexport type FetchTrackRequestSuccessActionT = {\n    type: typeof FETCH_TRACK_REQUEST_SUCCESS;\n    points: Array<TrackPointT> | null;\n    hash: HashT;\n};\n\nexport type AssetTrackActionT =\n    | FetchTrackRequestBeginActionT\n    | FetchTrackRequestErrorActionT\n    | FetchTrackRequestSuccessActionT;\n\nexport type AssetTrackItemStateT = {\n    points: Array<TrackPointT>;\n    requestStatus: RequestStatusT;\n};\n\nexport type AssetTrackStateT = Record<HashT, AssetTrackItemStateT>;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './TruckDetails.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectTrucksDictById } from 'common/store/trucks-dict/selectors';\nimport { fetchTrucksDict } from 'common/store/trucks-dict/actions';\nimport FieldGroup, { FieldGroupEmptyItem } from 'common/components/FieldGroup/FieldGroup';\nimport { AssetTypeEnum, CurrencyEnum, DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { ApiTruckDetailsT } from 'common/store/trucks/models';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport { selectCountriesByCode } from 'common/store/countries-dict/selectors';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport LastGPSPositionAlert from 'common/components/LastGPSPositionAlert/LastGPSPositionAlert';\nimport { fetchCarrierContracts } from 'common/store/carrier-contracts/actions';\nimport {\n    selectCarrierContractById,\n    selectFetchCarrierContractsRequest,\n} from 'common/store/carrier-contracts/selectors';\nimport { getTruckDictTypeLabel } from 'common/store/trucks-dict/utils';\nimport TruckIcon from 'common/icons/TruckIcon';\nimport EmissionIcon from 'common/icons/EmissionIcon';\nimport LinkedTrailerAlert from 'common/layouts/CommonEditableTruckDetailsLayout/LinkedTrailerAlert/LinkedTrailerAlert';\nimport Money from 'common/components/Money/Money';\nimport { CountryCodeT, TruckStatusEnum } from 'common/utils/api/models';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport DetailsIcon from 'common/icons/DetailsIcon';\nimport { TooltipPositionEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport EmissionClassLabel from 'common/components/EmissionClassLabel/EmissionClassLabel';\nimport TruckActionHistory from 'common/layouts/CommonEditableTruckDetailsLayout/TruckActionHistory/TruckActionHistory';\nimport { checkIsApiCarrierTruckDetails } from 'common/store/trucks/type-guards';\nimport ArchiveReasonAlert from 'common/components/ArchiveReasonAlert/ArchiveReasonAlert';\nimport { AlertGroup } from 'common/layouts/AlertGroup/AlertGroup';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    partnerId: PartnerIdT;\n    isLoading: boolean;\n    truckDetails: ApiTruckDetailsT | null;\n    onOpenTrailerDetails: (trailerId: TrailerIdT) => void;\n    onOpenUserDetails: (userId: UserIdT, isBrokerUser?: boolean) => void;\n    onOpenContactDetails: (contractId: CarrierContractIdT) => void;\n};\n\nconst TruckDetails: React.FC<PropsT> = (props) => {\n    const { partnerId, truckDetails, isLoading, onOpenUserDetails, onOpenTrailerDetails, onOpenContactDetails } = props;\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const countryByCode = useSelector(selectCountriesByCode);\n    const trucksDictById = useSelector(selectTrucksDictById);\n\n    React.useEffect(() => {\n        dispatch(fetchCountriesDict());\n        dispatch(fetchTrucksDict());\n    }, [dispatch]);\n\n    React.useEffect(() => {\n        dispatch(fetchCarrierContracts(partnerId));\n    }, [dispatch, partnerId]);\n\n    const fetchContractsRequests = useSelector(selectFetchCarrierContractsRequest(partnerId));\n    const contractById = useSelector(selectCarrierContractById(partnerId));\n    const contract = contractById[truckDetails?.contractId as string] || null;\n\n    const ratePerKm = truckDetails?.contractId ? contract?.truckRateKm : truckDetails?.ratePerKm;\n\n    const truck = trucksDictById?.[truckDetails?.dictTruckInfo?.id as string];\n\n    let contractNode: React.ReactNode = null;\n\n    if (fetchContractsRequests?.loading) {\n        contractNode = <ControlLoaderIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.brandAccent} />;\n    }\n\n    if (!fetchContractsRequests?.loading && truckDetails && truckDetails?.contractId) {\n        contractNode = t('common:dedicated.contract', {\n            number: contract?.name || '',\n        });\n    }\n\n    if (!fetchContractsRequests?.loading && truckDetails && !truckDetails?.contractId) {\n        contractNode = t('common:dedicated.none');\n    }\n\n    let contractRightNode: React.ReactNode = null;\n    if (contract?.id) {\n        contractRightNode = (\n            <TransparentTrigger\n                spaces=\"xs\"\n                onClick={() => {\n                    onOpenContactDetails(contract.id);\n                }}\n                leftIcon={<DetailsIcon strokeColor={StyleGuideColorsEnum.gray} />}\n                reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n            />\n        );\n    }\n\n    return (\n        <div className={cx('wrap')}>\n            <AlertGroup className={cx('alerts')}>\n                {truckDetails?.linkedTrailerId && (\n                    <LinkedTrailerAlert\n                        trailerId={truckDetails?.linkedTrailerId}\n                        plateNumber={truckDetails?.linkedTrailerPlateNumber}\n                        onOpenTrailerDetails={onOpenTrailerDetails}\n                    />\n                )}\n                {truckDetails?.status !== TruckStatusEnum.archived && (\n                    <LastGPSPositionAlert\n                        companyId={partnerId}\n                        assetType={AssetTypeEnum.truck}\n                        plateNumber={truckDetails?.plateNumber || ''}\n                        isDedicated={!!truckDetails?.contractId}\n                    />\n                )}\n                {truckDetails?.status === TruckStatusEnum.archived && !!truckDetails?.archivingReason && (\n                    <ArchiveReasonAlert reason={truckDetails.archivingReason} />\n                )}\n            </AlertGroup>\n            {isLoading && <LoaderOverlay />}\n            <div className={cx('fields')}>\n                <FieldGroup>\n                    <ReadOnlyField\n                        className={cx('field--plate-number')}\n                        label={t('common:trucks-page.add-truck.fields.plate-number.label')}\n                        value={truckDetails?.plateNumber || ''}\n                    />\n                    <FieldGroupEmptyItem className={cx('field', 'field--placeholder')} />\n                </FieldGroup>\n                <FieldGroup>\n                    <ReadOnlyField\n                        className={cx('field--country-code')}\n                        icon={<FlagIcon countryCode={truckDetails?.countryCode} />}\n                        label={t('common:trucks-page.add-truck.fields.country.label')}\n                        value={countryByCode?.[truckDetails?.countryCode as CountryCodeT]?.userLangDisplayName}\n                    />\n                    <ReadOnlyField\n                        className={cx('field--vin')}\n                        label={t('common:trucks-page.add-truck.fields.truck-vin.label')}\n                        value={truckDetails?.vin || ''}\n                    />\n                </FieldGroup>\n                <ReadOnlyField\n                    icon={\n                        <TruckIcon\n                            size={DEFAULT_ICON_SIZE}\n                            strokeColor={StyleGuideColorsEnum.brandDark}\n                            fillColor={StyleGuideColorsEnum.brandAccent}\n                        />\n                    }\n                    label={t('common:trucks-page.add-truck.fields.truck-model.label')}\n                    value={getTruckDictTypeLabel(truck)}\n                />\n                <FieldGroup>\n                    <ReadOnlyField\n                        icon={<EmissionIcon strokeColor={StyleGuideColorsEnum.charcoal} />}\n                        className={cx('field--emission-standard')}\n                        label={t('common:trucks-page.add-truck.fields.emission-standard.label')}\n                        value={<EmissionClassLabel emissionClass={truckDetails?.dictTruckInfo?.emissionClass} />}\n                    />\n                    <ReadOnlyField\n                        className={cx('field--cabin-color')}\n                        label={t('common:trucks-page.add-truck.fields.cabin-color.label')}\n                        value={truckDetails?.cabinColor || ''}\n                    />\n                </FieldGroup>\n                <FieldGroup>\n                    <ReadOnlyField\n                        className={cx('field--contract')}\n                        label={t('common:trucks-page.add-truck.fields.contract.label')}\n                        value={contractNode}\n                        tooltipPosition={TooltipPositionEnum.centerRight}\n                        tooltipNode={\n                            <TooltipContent theme={TooltipContentThemeEnum.black} width={200}>\n                                {t('common:trucks-page.add-truck.fields.contract.tooltip')}\n                            </TooltipContent>\n                        }\n                        rightNode={contractRightNode}\n                    />\n                    <ReadOnlyField\n                        className={cx('field--rate')}\n                        label={t('common:trucks-page.add-truck.fields.rate.label')}\n                        value={<Money amount={ratePerKm} currency={CurrencyEnum.EUR} />}\n                    />\n                </FieldGroup>\n            </div>\n            <TruckActionHistory\n                onOpenUserDetails={onOpenUserDetails}\n                createdDate={truckDetails?.createdDate}\n                createdByBroker={checkIsApiCarrierTruckDetails(truckDetails) && truckDetails?.addedByBroker}\n                createdByName={truckDetails?.createdBy?.fullName}\n                createdById={truckDetails?.createdBy?.id}\n                modifiedDate={truckDetails?.lastModifiedDate}\n                modifiedByBroker={checkIsApiCarrierTruckDetails(truckDetails) && truckDetails?.lastModifiedByBroker}\n                modifiedByName={truckDetails?.lastModifiedBy?.fullName}\n                modifiedById={truckDetails?.lastModifiedBy?.id}\n            />\n        </div>\n    );\n};\n\nexport default TruckDetails;\n","import * as React from 'react';\nimport { FieldsEnum, FormValuesT, RoutePointFieldsEnum } from '../constants';\nimport { useTranslation } from 'react-i18next';\nimport FormikConnectContextField from 'common/components/forms/FormikConnectContextField/FormikConnectContextField';\nimport GeoSuggest from 'common/components/GeoSuggest/GeoSuggest';\nimport classNames from 'classnames/bind';\nimport styles from './DriveThroughRoutePointPicker.scss';\nimport DeleteWaypointTrigger from '../DeleteWaypointTrigger/DeleteWaypointTrigger';\nimport WaypointNumberIcon from '../WaypointNumberIcon/WaypointNumberIcon';\nimport { getFieldFormValue } from 'common/utils/form-values';\nimport { useFormikContext } from 'formik';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport { OnChangeRoutePointAddressT, OnDeleteRoutePointReserveT } from '../models';\nimport { prepareLocation } from 'common/utils/prepare-location';\nimport { ApiTourUpdateStopDataT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { checkIsChangedAddressByCoords } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/utils';\nimport AddressChangesIndicator from '../AddressChangesIndicator/AddressChangesIndicator';\n\ntype PropsT = {\n    className?: string;\n    routePointIndex: number;\n    tourUpdateStop: ApiTourUpdateStopDataT | null;\n    oldTourUpdateStop: ApiTourUpdateStopDataT | null;\n    onRemove: OnDeleteRoutePointReserveT;\n    isAllowRemove: boolean;\n    onManualSelectLocation: (location: LocationT | null, routePointIndex: number) => void;\n    isAllowUpdateAddress: boolean;\n    onChangeRoutePointAddress: OnChangeRoutePointAddressT;\n    isShowSuggestLoading?: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nconst DriveThroughRoutePointPicker: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        routePointIndex,\n        onRemove,\n        isShowSuggestLoading,\n        isAllowRemove,\n        onManualSelectLocation,\n        onChangeRoutePointAddress,\n        isAllowUpdateAddress,\n        tourUpdateStop,\n    } = props;\n\n    const hasAddressChanges = checkIsChangedAddressByCoords(tourUpdateStop?.address, tourUpdateStop?.originalAddress);\n\n    const { t } = useTranslation();\n\n    const formik = useFormikContext<FormValuesT>();\n\n    const locationFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.location}` as const;\n    const fakePointIdFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.fakePointId}` as const;\n    const typeFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.type}` as const;\n    const contextRoutePointIdFieldName =\n        `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.contextRoutePointId}` as const;\n\n    const fakePointId = getFieldFormValue(formik.values, fakePointIdFieldName);\n    const type = getFieldFormValue(formik.values, typeFieldName);\n    const contextRoutePointId = getFieldFormValue(formik.values, contextRoutePointIdFieldName);\n\n    const isNewRoutePoint = !contextRoutePointId;\n\n    return (\n        <>\n            <FormikConnectContextField<FormValuesT, typeof locationFieldName>\n                className={className}\n                name={locationFieldName}\n                label={t('broker-order-route-edit.fields.drive-through-point.label')}\n            >\n                {(props, extendsProps) => (\n                    <div className={cx('wrap')} data-point-id={fakePointId}>\n                        {isAllowUpdateAddress ? (\n                            <GeoSuggest\n                                className={cx('geo-suggest')}\n                                name={extendsProps.name}\n                                value={extendsProps.value}\n                                placeholder={t('broker-order-route-edit.fields.drive-through-point.placeholder')}\n                                renderLeftIcon={({ hasValue, hasError, hasWarning, hasChanges, isDisabled }) => (\n                                    <WaypointNumberIcon\n                                        routePointIndex={routePointIndex}\n                                        hasValue={hasValue}\n                                        hasError={hasError}\n                                        hasWarning={hasWarning}\n                                        hasChanges={hasChanges}\n                                        isDisabled={isDisabled}\n                                        isDriveThroughRoutePointPicker\n                                        isNewRoutePoint={isNewRoutePoint}\n                                    />\n                                )}\n                                onChange={(value) => {\n                                    const location = prepareLocation(value);\n                                    if (!location) {\n                                        return;\n                                    }\n\n                                    props.onChange(value);\n\n                                    onManualSelectLocation(value, routePointIndex);\n\n                                    onChangeRoutePointAddress(routePointIndex, fakePointId, {\n                                        address: location,\n                                        routePointType: type,\n                                    });\n                                }}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onFocus={props.onFocus}\n                                onBlur={props.onBlur}\n                                hasChanges={hasAddressChanges}\n                                isLoading={isShowSuggestLoading}\n                                testSelector={extendsProps.name}\n                                renderRightNode={\n                                    hasAddressChanges\n                                        ? () => (\n                                              <AddressChangesIndicator\n                                                  originalLocation={tourUpdateStop?.originalAddress}\n                                              />\n                                          )\n                                        : undefined\n                                }\n                            />\n                        ) : (\n                            <ReadOnlyField\n                                withoutErrorMessage\n                                icon={\n                                    <WaypointNumberIcon\n                                        routePointIndex={routePointIndex}\n                                        isDriveThroughRoutePointPicker\n                                        isNewRoutePoint={isNewRoutePoint}\n                                        hasValue={!!extendsProps.value}\n                                    />\n                                }\n                                value={extendsProps.value?.address || ''}\n                            />\n                        )}\n                        {isAllowRemove && (\n                            <DeleteWaypointTrigger\n                                onClick={() => {\n                                    onRemove(routePointIndex, fakePointId);\n                                }}\n                            />\n                        )}\n                    </div>\n                )}\n            </FormikConnectContextField>\n        </>\n    );\n});\n\nexport default DriveThroughRoutePointPicker;\n","// extracted by mini-css-extract-plugin\nexport default {\"table__header\":\"TrailersTable__table__header___T39wE\",\"table__header--checkbox\":\"TrailersTable__table__header--checkbox___ZepEF\",\"table__header--linked\":\"TrailersTable__table__header--linked___ZWglF\",\"table__header--dedicated\":\"TrailersTable__table__header--dedicated___WkPC1\",\"table__header--type\":\"TrailersTable__table__header--type___pp_DG\",\"table__column--checkbox\":\"TrailersTable__table__column--checkbox___cL4oa\",\"table__column--type\":\"TrailersTable__table__column--type___R7gIk\",\"table__column--any\":\"TrailersTable__table__column--any___Vm18g\",\"table__column--created\":\"TrailersTable__table__column--created___dUDe8\",\"table__column--plate-number\":\"TrailersTable__table__column--plate-number___vfe1j\",\"table__column--status\":\"TrailersTable__table__column--status___yW6xh\",\"fadeIn\":\"TrailersTable__fadeIn___Bmyfl\",\"blinking\":\"TrailersTable__blinking___npvhA\"};","import * as React from 'react';\n\nimport { pickFile } from 'common/utils/pick-file';\nimport { logWarning } from 'common/utils/logger';\nimport { attachPaperToTour, deleteAttachedPaper } from 'common/store/papers-edit/actions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ApiAttachPaperRequestT, ApiTourAttachedPaperTypeT } from 'common/utils/api/models';\nimport { TourPapersUrlFactoryI } from '../image-url-factories';\nimport { selectDeleteRequestStatus } from 'common/store/papers-edit/selectors';\nimport { downloadImage } from 'common/utils/download-image';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport { DeletePaperConfirmationDataT } from 'common/components/papers/dialogs/DeletePaperConfirmation/DeletePaperConfirmation';\nimport { ImageGalleryModalDataT } from '../modals/ImageGalleryModal/ImageGalleryModal';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAnyAlert, CommonAlertTypeEnum } from 'common/components/toasts/AlertToastsManager/models';\n\nexport const useAttachTourPapers = (tourPapersUrlFactory: TourPapersUrlFactoryI) => {\n    const dispatch = useDispatch();\n\n    const [deletingPaperId, setDeletingPaperId] = React.useState<PaperIdT | null>(null);\n    const deleteRequestStatus = useSelector(selectDeleteRequestStatus(deletingPaperId));\n    const deletePaperConfirmationDialog = useModalDialog<DeletePaperConfirmationDataT>();\n    useCloseModalDialogAfterRequest(deleteRequestStatus, [deletePaperConfirmationDialog]);\n\n    const paperGalleryModal = useModalDialog<ImageGalleryModalDataT>();\n\n    return React.useMemo(() => {\n        return {\n            onAttachTourPaper: (tourId: TourIdT, paperType: ApiTourAttachedPaperTypeT, comment?: string) => {\n                pickFile('image/*,application/pdf', (file) => {\n                    if (!tourId) {\n                        logWarning('failed upload paper, empty tourId');\n                        return;\n                    }\n\n                    const formData = new FormData();\n                    formData.append('file', file);\n\n                    dispatch(\n                        attachPaperToTour({\n                            tourId,\n                            query: {\n                                paperType,\n                                comment,\n                            },\n                            data: formData as unknown as ApiAttachPaperRequestT,\n                        }),\n                    );\n                });\n            },\n            onDeleteTourPaper: (tourId: TourIdT, paperId: PaperIdT) => {\n                deletePaperConfirmationDialog.setData({\n                    tourId,\n                    paperId,\n                });\n            },\n            onConfirmDeleteTourPaper: (data: DeletePaperConfirmationDataT) => {\n                const { paperId } = data;\n\n                if (!paperId) {\n                    logWarning('failed delete paper, empty paperId');\n                    return;\n                }\n\n                setDeletingPaperId(paperId);\n                dispatch(deleteAttachedPaper({ paperId }));\n            },\n            onDownloadTourPaper: (tourId: TourIdT, paperId: PaperIdT) => {\n                const contentUrl = tourPapersUrlFactory.getContentUrl(tourId, paperId);\n                if (!contentUrl) {\n                    logWarning('failed download paper, empty contentUrl');\n                    return;\n                }\n\n                downloadImage(contentUrl).catch((error: Error) => {\n                    dispatch(\n                        addAlert(\n                            new CommonAnyAlert({\n                                type: CommonAlertTypeEnum.paperDownloadFailed,\n                                data: {\n                                    errorMessage: error.message,\n                                },\n                            }),\n                        ),\n                    );\n                });\n            },\n            onOpenGalleryTourPaper: (tourId: TourIdT, paperId: PaperIdT) => {\n                const contentUrl = tourPapersUrlFactory.getContentUrl(tourId, paperId);\n                if (!contentUrl) {\n                    logWarning('failed open gallery paper, empty contentUrl');\n                    return;\n                }\n\n                paperGalleryModal.setData({\n                    src: contentUrl,\n                    alt: null,\n                });\n            },\n            getTourPaperThumbnailUrl: tourPapersUrlFactory.getThumbnailUrl,\n            deleteTourPaperConfirmationDialog: deletePaperConfirmationDialog,\n            tourPaperGalleryModal: paperGalleryModal,\n            deleteTourPaperRequestStatus: deleteRequestStatus,\n        };\n    }, [dispatch, tourPapersUrlFactory, deletePaperConfirmationDialog, paperGalleryModal, deleteRequestStatus]);\n};\n","import * as React from 'react';\n\nimport Money from 'common/components/Money/Money';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\nimport UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\nimport { CurrencyEnum, UnitTypeEnum } from 'common/constants';\nimport { ApiUpdatedFieldCodeT } from 'common/utils/api/models';\n\nimport { formatTimeSlotValue } from './utils/format-time-slot-value';\nimport { safeParseNumber } from './utils/safe-parse-number';\n\ntype PropsT = {\n    code: ApiUpdatedFieldCodeT;\n    value?: string;\n    className?: string;\n};\n\nconst MONEY_FIELD_CODES: ApiUpdatedFieldCodeT[] = [\n    'CARRIER_COST_TOTAL',\n    'ESTIMATED_CARRIER_COST_TOTAL',\n    'SHIPPER_PRICE_TOTAL',\n];\n\nconst UNIT_TYPE_BY_FIELD_CODE: Partial<Record<ApiUpdatedFieldCodeT, UnitTypeEnum>> = {\n    DEADHEAD_MILEAGE_TRUCK: UnitTypeEnum.kilometersAbbreviation,\n    DEADHEAD_MILEAGE_TRAILER: UnitTypeEnum.kilometersAbbreviation,\n    LAYOVER_HOURS: UnitTypeEnum.hoursAbbreviation,\n    ESTIMATED_TRAVEL_TIME_HOURS: UnitTypeEnum.hoursAbbreviation,\n};\n\nconst FieldValue: React.FC<PropsT> = React.memo((props) => {\n    const { code, value, className } = props;\n\n    let formattedValue: React.ReactNode = value ?? \"' '\";\n\n    if (code === 'TIME_SLOT' && value) {\n        formattedValue = formatTimeSlotValue(value);\n    }\n\n    const numericValue = safeParseNumber(value);\n    if (numericValue !== null) {\n        const unitType = UNIT_TYPE_BY_FIELD_CODE[code];\n\n        if (unitType) {\n            formattedValue = <UnitTypeCount count={numericValue} type={unitType} />;\n        } else if (MONEY_FIELD_CODES.includes(code)) {\n            formattedValue = <Money amount={numericValue} currency={CurrencyEnum.EUR} />;\n        }\n    }\n\n    return <NotificationEntityLabel text={formattedValue} isBold className={className} />;\n});\n\nexport default FieldValue;\n","import { StateT } from 'broker-admin/store/models';\nimport { BrokerTeamDetailsStateT, initialBrokerTeamDetailsState } from './slice';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport const selectBrokerTeamDetails =\n    (id: TeamIdT | null | undefined) =>\n    (state: StateT): BrokerTeamDetailsStateT['details'] =>\n        state.brokerTeamDetails[id as string]?.details || initialBrokerTeamDetailsState.details;\n\nexport const selectBrokerTeamDetailsRequestStatus =\n    (id?: TeamIdT | null | undefined) =>\n    (state: StateT): RequestStatusT =>\n        state.brokerTeamDetails[id as string]?.requestStatus || initialBrokerTeamDetailsState.requestStatus;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"RulePreviewPill__wrap___rBlPA\",\"type\":\"RulePreviewPill__type___dD_59\",\"rule\":\"RulePreviewPill__rule___ZrkIG\",\"closer\":\"RulePreviewPill__closer___UJYXR\",\"fadeIn\":\"RulePreviewPill__fadeIn___pGBa9\",\"blinking\":\"RulePreviewPill__blinking___FE00T\"};","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"BaseShipperContractLaneDetailsLayout__fadeIn___Irp07\",\"blinking\":\"BaseShipperContractLaneDetailsLayout__blinking___jgCrN\"};","// extracted by mini-css-extract-plugin\nexport default {\"tabs-wrap\":\"DetailsLayout__tabs-wrap___Qj_yK\",\"tab\":\"DetailsLayout__tab___F3JQi\",\"right-column\":\"DetailsLayout__right-column___RO0OD\",\"timeline-trigger-wrap\":\"DetailsLayout__timeline-trigger-wrap___u24ZW\",\"timeline-trigger\":\"DetailsLayout__timeline-trigger___BeieF\",\"timeline\":\"DetailsLayout__timeline___u_Mxl\",\"fadeIn\":\"DetailsLayout__fadeIn____t0cK\",\"blinking\":\"DetailsLayout__blinking___R8em_\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { ALL_CARRIERS_ID, DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\nimport { changeUserSelection, setShowSelectedAssetSchedule } from 'broker-admin/store/broker-order-assigment/actions';\n\nimport ExcludeCountries from './ExcludeCountries/ExcludeCountries';\nimport CarrierDropdown, { CarrierOptionT } from './CarrierDropdown/CarrierDropdown';\nimport RadiusDropdown, { RadiusOptionT } from './RadiusDropdown/RadiusDropdown';\nimport AssignmentOptionsDropdown, {\n    AssignmentOptionsValueT,\n} from './AssignmentOptionsDropdown/AssignmentOptionsDropdown';\n\nimport styles from './SearchForm.scss';\nimport { selectAssignmentRadiuses } from 'broker-admin/store/settings/selectors';\nimport { BrokerOrderDetailsT } from 'broker-admin/store/broker-order-details/models';\nimport {\n    selectShowSelectedAssetSchedules,\n    selectUserSelection,\n} from 'broker-admin/store/broker-order-assigment/selectors';\nimport CalendarIcon from 'common/icons/CalendarIcon';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport ArrowsIcon from 'common/icons/ArrowsIcon';\nimport { useTranslation } from 'react-i18next';\nimport { ApiCountriesT } from 'common/utils/api/models';\nimport TimeZoneDropdown from './TimeZoneDropdown/TimeZoneDropdown';\nimport FilterPill, { FilterPillThemeEnum } from 'common/components/FilterPills/FilterPill/FilterPill';\nimport FeaturesContext from 'common/contexts/features';\nimport { ClientFeatureEnum } from 'common/utils/features/client-features-config';\nimport { findFirstPickupDeliveryWaypointDate } from 'broker-admin/store/broker-order-assigment/utils/find-first-pickup-delivery-waypoint-date';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    brokerOrderId: BrokerOrderIdT | null;\n    brokerOrderDetails: BrokerOrderDetailsT | null;\n    tourId: TourIdT | null;\n};\n\ntype ExcludedCountriesT = ApiCountriesT[];\n\nconst SearchForm: React.FC<PropsT> = React.memo((props) => {\n    const { brokerOrderId, brokerOrderDetails, tourId } = props;\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const userSelection = useSelector(selectUserSelection);\n\n    const [excludedCountries, setExcludedCountries] = React.useState<ExcludedCountriesT>(\n        userSelection.excludedCountries,\n    );\n\n    React.useEffect(() => {\n        if (userSelection.excludedCountries !== excludedCountries) {\n            setExcludedCountries(userSelection.excludedCountries);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [userSelection.excludedCountries]);\n\n    const handleChangeExcludedCountries = (excludedCountries: ExcludedCountriesT): void => {\n        setExcludedCountries(excludedCountries);\n\n        dispatch(changeUserSelection(brokerOrderId, tourId, { excludedCountries }));\n    };\n\n    const [selectedAssignmentOptions, setAssignmentOptions] = React.useState<AssignmentOptionsValueT>({\n        isShowActualPlace: userSelection.isShowActualPlace,\n        isShowAssetSchedule: userSelection.isShowAssetSchedule,\n        isShowUnavailableAssets: userSelection.isShowUnavailableAssets,\n        isIgnoreEmissionStandard: userSelection.isIgnoreEmissionStandard,\n        isIgnoreCertificates: userSelection.isIgnoreCertificates,\n    });\n\n    React.useEffect(() => {\n        setAssignmentOptions({\n            isShowActualPlace: userSelection.isShowActualPlace,\n            isShowAssetSchedule: userSelection.isShowAssetSchedule,\n            isShowUnavailableAssets: userSelection.isShowUnavailableAssets,\n            isIgnoreEmissionStandard: userSelection.isIgnoreEmissionStandard,\n            isIgnoreCertificates: userSelection.isIgnoreCertificates,\n        });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [userSelection.isShowActualPlace, userSelection.isShowAssetSchedule, userSelection.isShowUnavailableAssets]);\n\n    const handleChangeAssignmentOptions = (value: AssignmentOptionsValueT): void => {\n        setAssignmentOptions(value);\n\n        dispatch(\n            changeUserSelection(brokerOrderId, tourId, {\n                isShowActualPlace: value.isShowActualPlace,\n                isShowAssetSchedule: value.isShowAssetSchedule,\n                isShowUnavailableAssets: value.isShowUnavailableAssets,\n                isIgnoreEmissionStandard: value.isIgnoreEmissionStandard,\n                isIgnoreCertificates: value.isIgnoreCertificates,\n            }),\n        );\n    };\n\n    const assignmentRadiuses = useSelector(selectAssignmentRadiuses);\n    const defaultAssignmentRadius = assignmentRadiuses?.[0] || null;\n\n    const [selectedRadius, setRadius] = React.useState<RadiusOptionT['value']>(userSelection.radiusKm || null);\n\n    React.useEffect(() => {\n        if (userSelection.radiusKm !== selectedRadius) {\n            setRadius(userSelection.radiusKm);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [userSelection.radiusKm]);\n\n    const handleChangeRadius = (radius: RadiusOptionT['value']): void => {\n        setRadius(radius);\n\n        dispatch(changeUserSelection(brokerOrderId, tourId, { radiusKm: radius }));\n    };\n\n    React.useEffect(() => {\n        if (selectedRadius === null && defaultAssignmentRadius) {\n            dispatch(changeUserSelection(brokerOrderId, tourId, { radiusKm: defaultAssignmentRadius }));\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [defaultAssignmentRadius]);\n\n    const [selectedCarrierId, setCarrierId] = React.useState<CarrierOptionT['id']>(\n        userSelection.carrierId || ALL_CARRIERS_ID,\n    );\n\n    React.useEffect(() => {\n        const carrierId = userSelection.carrierId || ALL_CARRIERS_ID;\n        if (selectedCarrierId !== carrierId) {\n            setCarrierId(carrierId);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [userSelection.carrierId]);\n\n    const handleSetCarrierId = (carrierId: CarrierOptionT['id']): void => {\n        setCarrierId(carrierId);\n\n        dispatch(changeUserSelection(brokerOrderId, tourId, { carrierId }));\n    };\n\n    const firstPickupDeliveryWaypointDate = React.useMemo(() => {\n        return findFirstPickupDeliveryWaypointDate(brokerOrderDetails, tourId);\n    }, [brokerOrderDetails, tourId]);\n\n    const isShowSelectedAssetSchedules = useSelector(selectShowSelectedAssetSchedules);\n\n    const openSelectedAssetSchedules = () => {\n        dispatch(setShowSelectedAssetSchedule(true));\n    };\n\n    const featuresContext = React.useContext(FeaturesContext);\n\n    return (\n        <>\n            <RadiusDropdown\n                className={cx('field', 'field--radius')}\n                radius={selectedRadius}\n                setRadius={handleChangeRadius}\n            />\n            <AssignmentOptionsDropdown\n                className={cx('field', 'field--filters')}\n                value={selectedAssignmentOptions}\n                onChange={handleChangeAssignmentOptions}\n            />\n            <CarrierDropdown\n                className={cx('field', 'field--carrier')}\n                dateForUtilizationRequest={firstPickupDeliveryWaypointDate}\n                carrierId={selectedCarrierId}\n                setCarrierId={handleSetCarrierId}\n            />\n            {featuresContext?.checkActiveClientFeature?.(ClientFeatureEnum.assignmentExcludeCountries) && (\n                <ExcludeCountries\n                    className={cx('field', 'field--exclude-countries')}\n                    excludedCountries={excludedCountries}\n                    setExcludedCountries={handleChangeExcludedCountries}\n                    additionalTagsNode={\n                        selectedAssignmentOptions?.isIgnoreCertificates ||\n                        selectedAssignmentOptions?.isIgnoreEmissionStandard ? (\n                            <div>\n                                {selectedAssignmentOptions?.isIgnoreCertificates && (\n                                    <FilterPill\n                                        className={cx('warning-pill')}\n                                        withCloser\n                                        label={t('assignment.search-form.options.ignore-certificates')}\n                                        testSelector=\"ignore-certificates\"\n                                        theme={FilterPillThemeEnum.attention}\n                                        onClick={() => {\n                                            handleChangeAssignmentOptions({\n                                                ...selectedAssignmentOptions,\n                                                isIgnoreCertificates: false,\n                                            });\n                                        }}\n                                    />\n                                )}\n                                {selectedAssignmentOptions?.isIgnoreEmissionStandard && (\n                                    <FilterPill\n                                        withCloser\n                                        className={cx('warning-pill')}\n                                        label={t('assignment.search-form.options.ignore-emission-standard')}\n                                        testSelector=\"ignore-emission-standard\"\n                                        theme={FilterPillThemeEnum.attention}\n                                        onClick={() => {\n                                            handleChangeAssignmentOptions({\n                                                ...selectedAssignmentOptions,\n                                                isIgnoreEmissionStandard: false,\n                                            });\n                                        }}\n                                    />\n                                )}\n                            </div>\n                        ) : null\n                    }\n                />\n            )}\n            <TimeZoneDropdown\n                className={cx('field', 'field--timezone-switcher')}\n                brokerOrderDetails={brokerOrderDetails}\n                tourId={tourId}\n            />\n            <TransparentTrigger\n                className={cx('field', 'field--timeline-trigger')}\n                onClick={openSelectedAssetSchedules}\n                isPressed={isShowSelectedAssetSchedules}\n                label={t('assignment.search-form.open-selected-asset-schedule')}\n                leftIcon={\n                    <CalendarIcon\n                        size={DEFAULT_ICON_SIZE}\n                        fillColor={StyleGuideColorsEnum.gray}\n                        strokeColor={StyleGuideColorsEnum.charcoal}\n                    />\n                }\n                reflectionTheme={ReflectionThemeEnum.light}\n                rightIcon={<ArrowsIcon />}\n            />\n        </>\n    );\n});\n\nexport default SearchForm;\n","import * as React from 'react';\n\nimport Button, { ButtonPropsT, ButtonThemeEnum } from 'common/components/Button/Button';\nimport PlusSignIcon from 'common/icons/PlusSignIcon';\nimport { StyleGuideColorsEnum, DEFAULT_ICON_SIZE } from 'common/constants';\nimport ExpandIcon from 'common/icons/ExpandIcon';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport classNames from 'classnames/bind';\nimport styles from './AttachPapersDropdownControlTrigger.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    isActive?: boolean;\n    onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n    children?: React.ReactNode;\n    hasPlusIcon?: boolean;\n    hasExpandIcon?: boolean;\n    className?: string;\n    isDisabled?: boolean;\n    tooltipMessage?: React.ReactNode;\n    buttonProps?: ButtonPropsT;\n};\n\nconst AttachPapersDropdownControlTrigger: React.FC<PropsT> = React.memo((props) => {\n    const {\n        isActive,\n        onClick,\n        children,\n        className,\n        hasExpandIcon,\n        hasPlusIcon,\n        tooltipMessage,\n        isDisabled,\n        buttonProps,\n    } = props;\n\n    return (\n        <Tooltip\n            position={TooltipPositionEnum.topCenter}\n            theme={TooltipThemeEnum.black}\n            tooltipNode={\n                tooltipMessage ? (\n                    <TooltipContent isCenter width={200} theme={TooltipContentThemeEnum.black}>\n                        {tooltipMessage}\n                    </TooltipContent>\n                ) : null\n            }\n        >\n            {() => (\n                <Button\n                    className={className}\n                    theme={ButtonThemeEnum.transparent}\n                    onClick={onClick}\n                    leftIcon={\n                        hasPlusIcon ? (\n                            <PlusSignIcon\n                                size={DEFAULT_ICON_SIZE}\n                                strokeColor={isDisabled ? StyleGuideColorsEnum.white : StyleGuideColorsEnum.charcoal}\n                            />\n                        ) : undefined\n                    }\n                    rightIcon={hasExpandIcon ? <ExpandIcon fillColor={StyleGuideColorsEnum.charcoal} /> : undefined}\n                    isPressed={isActive}\n                    isDisabled={isDisabled}\n                    {...buttonProps}\n                >\n                    <div className={cx('inner')}>{children}</div>\n                </Button>\n            )}\n        </Tooltip>\n    );\n});\n\nexport { AttachPapersDropdownControlTrigger };\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { FetchBrokerTourDetailsRequestActionT } from './types';\nimport {\n    fetchBrokerTourDetails,\n    fetchBrokerTourDetailsBegin,\n    fetchBrokerTourDetailsError,\n    fetchBrokerTourDetailsSuccess,\n} from './slice';\nimport { selectBrokerTourDetailsRequestStatus } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\n\nfunction* fetchBrokerTourDetailsSaga(action: FetchBrokerTourDetailsRequestActionT): WrapGeneratorT<void> {\n    const { id, options } = action.payload;\n\n    const requestStatus: ReReturnT<typeof selectBrokerTourDetailsRequestStatus> = yield select(\n        selectBrokerTourDetailsRequestStatus(id),\n    );\n    if (!checkNeedRequest(requestStatus, options)) {\n        return;\n    }\n\n    yield put(fetchBrokerTourDetailsBegin({ id }));\n\n    const [error, details]: ReturnApiT<typeof brokerTranziitApi.getBrokerTourDetails> =\n        yield brokerTranziitApi.getBrokerTourDetails(id);\n    if (error) {\n        yield put(fetchBrokerTourDetailsError({ id, error }));\n    } else {\n        yield put(fetchBrokerTourDetailsSuccess({ id, details }));\n    }\n}\n\nfunction* brokerTourDetailsSaga(): WrapGeneratorT<void> {\n    yield takeEvery(fetchBrokerTourDetails.type, fetchBrokerTourDetailsSaga);\n}\n\nexport default brokerTourDetailsSaga;\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const transportOrderRefreshChannel = new ViewEventChannel<{}>();\n","import React, { ReactNode } from 'react';\nimport styles from './DocumentDetailsLayout.scss';\nimport classNames from 'classnames/bind';\nimport map from 'lodash/map';\nimport TabLabel from 'common/components/tabs/TabLabel/TabLabel';\nimport { TabsThemesEnum, TabLabelSizeEnum } from 'common/components/tabs/TabLabel/constants';\nimport { useTranslation } from 'react-i18next';\n\nimport DocumentMessage from './DocumentMessage/DocumentMessage';\nimport BigEmptyIcon from 'common/icons/BigEmptyIcon';\nimport { PermissionsT } from 'common/store/auth/models';\nimport { DocumentVersionT } from 'common/store/documents/models';\nimport DocumentEventsSummary from 'common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentDetailsLayout/DocumentEventsSummary/DocumentEventsSummary';\nimport DocumentSummary from 'common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentDetailsLayout/DocumentSummary/DocumentSummary';\nimport DocumentVersion from './DocumentVersion/DocumentVersion';\nimport { DictDocumentT } from 'common/store/documents-dict/models';\nimport TabGroup from 'common/components/tabs/TabGroup/TabGroup';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    isUploading: boolean;\n    dictDocument: DictDocumentT | null;\n    onDownloadFile: (documentId: DocumentIdT) => void;\n    onOpenUserDetails: (userId: UserIdT) => void;\n    permissions: PermissionsT;\n    actualVersion: DocumentVersionT | null;\n    oldVersions: Array<DocumentVersionT> | null;\n    actualVersionFormNode?: ReactNode;\n};\n\nenum TabEnum {\n    actual = 'actual',\n    history = 'history',\n}\n\nconst TAB_LABEL_T: Record<TabEnum, string> = {\n    [TabEnum.actual]: 'common:document.tabs.actual',\n    [TabEnum.history]: 'common:document.tabs.history',\n};\n\nconst DocumentDetailsLayout: React.FC<PropsT> = (props) => {\n    const {\n        dictDocument,\n        isUploading,\n        permissions,\n        onDownloadFile,\n        onOpenUserDetails,\n        actualVersion,\n        oldVersions,\n        actualVersionFormNode,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const [activeTab, setActiveTab] = React.useState<TabEnum>(TabEnum.actual);\n\n    return (\n        <>\n            <DocumentSummary\n                className={cx('document-summary')}\n                title={dictDocument?.name}\n                tooltipContentNode={t('common:document.actions.download')}\n                canDownload={permissions.canDownloadDocuments}\n                id={actualVersion?.id || null}\n                onDownloadFile={onDownloadFile}\n            />\n            <TabGroup className={cx('tabs')} size={TabLabelSizeEnum.small}>\n                {map(TabEnum, (tab, tabIndex) => (\n                    <TabLabel\n                        isCompact\n                        key={tabIndex}\n                        size={TabLabelSizeEnum.small}\n                        theme={TabsThemesEnum.light}\n                        onClick={() => {\n                            setActiveTab(tab);\n                        }}\n                        isActive={tab === activeTab}\n                    >\n                        {t(TAB_LABEL_T[tab])}\n                    </TabLabel>\n                ))}\n            </TabGroup>\n            <div className={cx('tab-content')}>\n                {activeTab === TabEnum.actual && (\n                    <>\n                        {!!actualVersion && (\n                            <>\n                                <DocumentEventsSummary\n                                    className={cx('actual-version-details')}\n                                    version={actualVersion}\n                                    onOpenUserDetails={onOpenUserDetails}\n                                />\n                                {actualVersionFormNode}\n                            </>\n                        )}\n                        {!actualVersion && !isUploading && (\n                            <DocumentMessage\n                                icon={<BigEmptyIcon />}\n                                title={t('common:document.messages.not-uploaded.title')}\n                            />\n                        )}\n                    </>\n                )}\n                {activeTab === TabEnum.history && (\n                    <>\n                        {oldVersions?.length ? (\n                            <>\n                                {oldVersions.map((version, versionIndex) => (\n                                    <DocumentVersion\n                                        key={versionIndex}\n                                        className={cx('version')}\n                                        version={version}\n                                        dictDocument={dictDocument}\n                                        canDownloadDocuments={permissions.canDownloadDocuments}\n                                        onOpenUserDetails={onOpenUserDetails}\n                                        onDownloadFile={onDownloadFile}\n                                    />\n                                ))}\n                            </>\n                        ) : (\n                            <DocumentMessage\n                                icon={<BigEmptyIcon />}\n                                title={t('common:document.messages.empty-history.title')}\n                            />\n                        )}\n                    </>\n                )}\n            </div>\n        </>\n    );\n};\n\nexport default DocumentDetailsLayout;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './TableCellLink.scss';\nimport Link, { LinkPropsT } from 'common/components/Link/Link';\nimport { useClickInterceptorProps } from 'common/components/ClickInterceptorLabel/hooks/use-click-interceptor-props';\n\ntype PropsT = LinkPropsT & {\n    wrapClassName?: string;\n};\n\nconst cx = classNames.bind(styles);\n\nconst TableCellLink: React.FC<PropsT> = React.memo((props) => {\n    const clickInterceptorProps = useClickInterceptorProps({\n        onClick: props.onClick || null,\n    });\n\n    return (\n        <div className={props.wrapClassName}>\n            <span className={cx('link')}>\n                {/* in react-router-dom links, both onClick and to do not work, so there is an additional span wrapper for interception */}\n                <span {...clickInterceptorProps}>\n                    <Link {...props} />\n                </span>\n            </span>\n        </div>\n    );\n});\n\nexport default TableCellLink;\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkNotEmpty, checkMaxValue, checkIsPositiveNumberOrZeroValue } from 'common/utils/form-validators';\n\nconst CREATION_REQUIRED_FIELDS = [] as const;\n\nconst REQUIRED_FIELDS = [\n    FieldsEnum.trailerType,\n    FieldsEnum.trailerDictId,\n    FieldsEnum.countryCode,\n    FieldsEnum.plateNumber,\n    FieldsEnum.vin,\n] as const;\n\nconst RATE_FIELDS = [FieldsEnum.ratePerKm] as const;\n\nconst MAX_RATE = 10;\n\ntype MetaT = {\n    isCreation: boolean;\n};\n\nconst validate = (t: TFunction, values: FormValuesT, meta: MetaT): FormErrorsT => {\n    let errors: FormErrorsT = {\n        ...checkNotEmpty(t, CREATION_REQUIRED_FIELDS, values),\n    };\n\n    if (meta?.isCreation) {\n        errors = {\n            ...errors,\n            ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n        };\n    }\n\n    if (values[FieldsEnum.contract] === null) {\n        errors = {\n            ...errors,\n            ...checkNotEmpty(t, RATE_FIELDS, values, t('common:trailers-page.add-trailer.errors.required-rate')),\n            ...checkIsPositiveNumberOrZeroValue(t, RATE_FIELDS, values),\n            ...checkMaxValue(t, RATE_FIELDS, values, MAX_RATE),\n        };\n    }\n\n    return errors;\n};\n\nexport default validate;\n","import { ConsistentStateMachineDescriptorT, StateMachineEntityHashT } from './models';\n\nexport const getStateMachineEntityHash = ({ tourId }: ConsistentStateMachineDescriptorT): StateMachineEntityHashT => {\n    return tourId;\n};\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './SaveChangesNotification.scss';\nimport { useTranslation } from 'react-i18next';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    hasChanges?: boolean;\n    className?: string;\n};\n\nconst SaveChangesNotification: React.FC<PropsT> = (props) => {\n    const { hasChanges, className } = props;\n    const { t } = useTranslation();\n\n    const label = hasChanges\n        ? t('common:save-changes-notification.has-changes')\n        : t('common:save-changes-notification.has-not-changes');\n\n    return (\n        <div className={cs(cx('notification'), className)}>\n            <div className={cx('notification__icon')}>\n                <div\n                    className={cx('circle', {\n                        circle__orange: hasChanges,\n                        circle__green: !hasChanges,\n                    })}\n                />\n            </div>\n            <div className={cx('notification__label')}>{label}</div>\n        </div>\n    );\n};\n\nexport default SaveChangesNotification;\n","import React, { useMemo } from 'react';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { TranziitApiResultT } from 'common/utils/api/tranziit/base-tranziit-api';\n\nexport type AsyncRequestFactoryResultT<T extends {}> = TranziitApiResultT<Array<T>>;\nexport type AsyncRequestFactoryT<T extends {}> = () => Promise<AsyncRequestFactoryResultT<T>>;\n\nexport type UseAsyncInitOptionsParamsT<T extends {}> = {\n    initRequestFactory: AsyncRequestFactoryT<T>;\n};\n\nexport type UseAsyncInitOptionsResultT<T extends {}> = {\n    initOptions: Array<T>;\n    initRequestStatus: RequestStatusT;\n    onUpdateInitOptions: (initOptions: Array<T>) => void;\n};\n\nexport const useAsyncInitOptionsRequest = <T extends {}>({\n    initRequestFactory,\n}: UseAsyncInitOptionsParamsT<T>): UseAsyncInitOptionsResultT<T> => {\n    const [currentRequestStatus, setCurrentRequestStatus] = React.useState<RequestStatusT>(requestStatus.initial);\n    const [initOptions, setInitOptions] = React.useState<T[]>([]);\n\n    React.useEffect(() => {\n        setCurrentRequestStatus(requestStatus.loading);\n\n        initRequestFactory()\n            .then(([error, options]) => {\n                if (error) {\n                    setInitOptions([]);\n                    setCurrentRequestStatus(requestStatus.setError(error));\n                    return;\n                }\n\n                setInitOptions(options || []);\n                setCurrentRequestStatus(requestStatus.ok);\n            })\n            .catch((error) => {\n                setInitOptions([]);\n                setCurrentRequestStatus(requestStatus.setError(error));\n            });\n    }, [initRequestFactory]);\n\n    return useMemo(() => {\n        return {\n            initOptions,\n            initRequestStatus: currentRequestStatus,\n            onUpdateInitOptions: setInitOptions,\n        };\n    }, [initOptions, currentRequestStatus]);\n};\n","import { ReservePreviewQueryT, ReservePreviewT, ReserveT } from 'common/store/order-creation/models';\nimport keyBy from 'lodash/keyBy';\nimport isBoolean from 'lodash/isBoolean';\n\nexport const getPreviewReserveQueryCorrection = (\n    query: ReservePreviewQueryT | null,\n    previewReserve: ReservePreviewT | null,\n    reserve: ReserveT | null,\n): ReservePreviewQueryT | null => {\n    if (!reserve || !previewReserve || !query) {\n        return null;\n    }\n\n    const hasAnyCorrection = previewReserve.timeWindows?.some((timeWindow) => {\n        return !!timeWindow.correctedTimeWindow || isBoolean(timeWindow.correctedBrokerWindow);\n    });\n    if (!hasAnyCorrection) {\n        return null;\n    }\n\n    const timeWindows: ReservePreviewQueryT['timeWindows'] = [];\n\n    const timeWindowsById = keyBy(previewReserve?.timeWindows, (timeWindow) => timeWindow?.id);\n    const queryTimeWindowsById = keyBy(query?.timeWindows, (timeWindow) => timeWindow?.id || '');\n\n    reserve?.points?.forEach((point) => {\n        const timeWindow = timeWindowsById[point.id];\n        if (!timeWindow) {\n            return;\n        }\n\n        const queryTimeWindow = queryTimeWindowsById[point.id];\n\n        timeWindows.push({\n            id: point.id,\n            isBrokerTimeWindow: isBoolean(timeWindow?.correctedBrokerWindow)\n                ? timeWindow.correctedBrokerWindow\n                : queryTimeWindow?.isBrokerTimeWindow || false,\n            timeWindowFrom: timeWindow?.correctedTimeWindow?.start || queryTimeWindow?.timeWindowFrom,\n            timeWindowTo: timeWindow?.correctedTimeWindow?.end || queryTimeWindow?.timeWindowTo,\n            addressAlias: point.addressAlias,\n        });\n    });\n\n    return {\n        ...query,\n        timeWindows,\n    };\n};\n","import * as React from 'react';\nimport { BrokerTourShortT } from 'broker-admin/store/broker-tours/models';\nimport { formatTimeInterval } from 'common/utils/time';\nimport LocationCell from 'common/components/Table/cell-renderers/LocationCell/LocationCell';\nimport LocationLabel from 'common/components/LocationLabel/LocationLabel';\nimport { CountryCodeT } from 'common/utils/api/models';\n\ntype PropsT = {\n    brokerTourShort: BrokerTourShortT;\n};\n\nconst OriginCell: React.FC<PropsT> = React.memo((props) => {\n    const { brokerTourShort } = props;\n\n    const timeWindow = formatTimeInterval(brokerTourShort.originFrom, brokerTourShort.originTo);\n\n    return (\n        <LocationCell\n            address={\n                <LocationLabel\n                    location={{\n                        zipCode: brokerTourShort.origin?.zipCode,\n                        city: brokerTourShort.origin?.city,\n                        country: brokerTourShort.origin?.country as CountryCodeT,\n                    }}\n                    format=\"zip_city_country\"\n                    allowShowCountryCode\n                />\n            }\n            time={timeWindow}\n        />\n    );\n});\n\nexport default OriginCell;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './AdditionalServicesGroup.scss';\nimport { CurrencyEnum, StyleGuideColorsEnum } from 'common/constants';\nimport {\n    ApiDictCarrierAdditionalServiceGroupT,\n    ApiDictCarrierAdditionalServiceTypeT,\n    ApiTrailerDictTypeT,\n} from 'common/utils/api/models';\nimport Checkbox from 'design-system/components/Checkbox/Checkbox';\nimport Money from 'common/components/Money/Money';\nimport ExpandIcon from 'common/icons/ExpandIcon';\nimport { DictCarrierAdditionalServiceT } from 'common/store/additional-services-dict/models';\nimport AdditionalServiceLabel from 'common/components/AdditionalServiceLabel/AdditionalServiceLabel';\nimport isNumber from 'lodash/isNumber';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport AdditionalServiceGroupLabel from 'broker-admin/components/AdditionalServiceGroupLabel/AdditionalServiceGroupLabel';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    group: ApiDictCarrierAdditionalServiceGroupT;\n    dictTrailerInfo: ApiTrailerDictTypeT | null;\n    selectedServiceTypeSet: Set<ApiDictCarrierAdditionalServiceTypeT>;\n    onAddServices: (selectedServiceType: ApiDictCarrierAdditionalServiceTypeT) => void;\n    onRemoveServices: (selectedServiceType: ApiDictCarrierAdditionalServiceTypeT) => void;\n};\n\n// TODO remove, after removed from dictionary\n// @ts-expect-error TODO TZT-7871\nconst hideAdditionalServiceType = new Set<DictCarrierAdditionalServiceT['enum']>(['TIME_SLOTS_APPOINTMENT_BY_BROKER']);\n\nconst AdditionalServicesGroup: React.FC<PropsT> = React.memo((props) => {\n    const { group, dictTrailerInfo, selectedServiceTypeSet, onRemoveServices, onAddServices } = props;\n\n    const { category, services } = group;\n\n    const [isExpanded, setIsExpanded] = React.useState(true);\n    const toggle = (): void => {\n        setIsExpanded(!isExpanded);\n    };\n\n    const testSelector = `additional-services_${category}`;\n\n    const selectedServiceCount = React.useMemo(() => {\n        return services.reduce((acc, item) => {\n            return acc + (selectedServiceTypeSet.has(item.service) ? 1 : 0);\n        }, 0);\n    }, [services, selectedServiceTypeSet]);\n\n    return (\n        <div className={cx('additional-services-group__block')} key={category} data-test-selector={testSelector}>\n            <div className={cx('additional-services-group__head')}>\n                <div className={cx('additional-services-group__trigger')} onClick={toggle}>\n                    <div className={cx('additional-services-group__title')}>\n                        <AdditionalServiceGroupLabel\n                            category={category}\n                            trailerType={dictTrailerInfo?.trailerType || null}\n                        />\n                        {!isExpanded && Boolean(selectedServiceCount) && (\n                            <PillLabel\n                                className={cx('additional-services-group__count')}\n                                theme={PillLabelThemeEnum.slate}\n                                isSymmetrical\n                            >\n                                {selectedServiceCount}\n                            </PillLabel>\n                        )}\n                    </div>\n                    <ExpandIcon\n                        className={cx('additional-services-group__expand-icon')}\n                        fillColor={StyleGuideColorsEnum.brandAccent}\n                        isInvert={isExpanded}\n                    />\n                </div>\n            </div>\n            {isExpanded &&\n                services.map((item) => {\n                    const { service, itemCost } = item;\n\n                    const isChecked = selectedServiceTypeSet.has(service);\n\n                    if (hideAdditionalServiceType.has(service)) {\n                        return null;\n                    }\n\n                    return (\n                        <div key={service} className={cx('additional-service')}>\n                            <Checkbox\n                                className={cx('additional-service__label')}\n                                checked={isChecked}\n                                onChange={() => {\n                                    if (isChecked) {\n                                        onRemoveServices(service);\n                                    } else {\n                                        onAddServices(service);\n                                    }\n                                }}\n                                testSelector={`${testSelector}_${service}`}\n                                label={\n                                    <span className={cx('checkbox-label')}>\n                                        <AdditionalServiceLabel type={service} />\n                                    </span>\n                                }\n                            />\n                            {isNumber(itemCost) && (\n                                <Money\n                                    className={cx('additional-service__cost', {\n                                        'additional-service__cost--isActive': isChecked,\n                                    })}\n                                    amount={itemCost}\n                                    currency={CurrencyEnum.EUR}\n                                />\n                            )}\n                        </div>\n                    );\n                })}\n        </div>\n    );\n});\n\nexport default AdditionalServicesGroup;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"ShipperContractDetailsLayout__inner___kb1vG\",\"fadeIn\":\"ShipperContractDetailsLayout__fadeIn___pMF_t\",\"blinking\":\"ShipperContractDetailsLayout__blinking___e6o8S\"};","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"RevokedPartnerCarrierContractCard__inner___QjVi0\",\"fadeIn\":\"RevokedPartnerCarrierContractCard__fadeIn___jLVim\",\"blinking\":\"RevokedPartnerCarrierContractCard__blinking___eUHf8\"};","import * as React from 'react';\nimport { RFQT } from 'common/store/rfqs/models';\nimport EventCell from 'common/components/Table/cell-renderers/EventCell/EventCell';\n\ntype PropsT = {\n    rfq: RFQT;\n    onOpenUser: (userId: UserIdT) => void;\n};\n\nconst CreatedCell: React.FC<PropsT> = React.memo((props) => {\n    const { rfq, onOpenUser } = props;\n\n    return (\n        <EventCell\n            userFullName={rfq.createdByName}\n            userId={rfq.createdById}\n            date={rfq.createdDate}\n            byBroker={rfq.createdByBroker}\n            openUserDetails={onOpenUser}\n        />\n    );\n});\n\nexport default CreatedCell;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { TableColumnModsEnum, TableColumnT, TableRowMetaT } from 'common/components/DocumentsTable/DocumentsTable';\nimport MemoizedTable from 'common/components/Table/MemoizedTable/MemoizedTable';\nimport classNames from 'classnames/bind';\nimport styles from './BaseShipperContractLanesTable.scss';\nimport { ShipperContractLanesTableRowT } from './models';\nimport DateCell from 'common/components/Table/cell-renderers/DateCell/DateCell';\nimport OrdersCountCell from './cell-renderers/OrdersCountCell/OrdersCountCell';\nimport FlagCell from 'common/components/Table/cell-renderers/FlagCell/FlagCell';\nimport EmissionClassCell from 'common/components/Table/cell-renderers/EmissionClassCell/EmissionClassCell';\nimport CostCell from 'common/components/Table/cell-renderers/CostCell/CostCell';\nimport LocationCell from './cell-renderers/LocationCell/LocationCell';\nimport EmissionIcon from 'common/icons/EmissionIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport TeamDriveIcon from 'common/icons/TeamDriveIcon';\nimport ShipperContractLaneStatusPill from 'common/components/status-pill/ShipperContractLaneStatusPill/ShipperContractLaneStatusPill';\nimport Table from 'common/components/Table/Table';\nimport IdCell from './cell-renderers/IdCell/IdCell';\nimport { CountryCodeT } from 'common/utils/api/models';\nimport LocationLabel from 'common/components/LocationLabel/LocationLabel';\n\ntype PropsT = {\n    className?: string;\n    tableName: string;\n    rows: Array<ShipperContractLanesTableRowT>;\n    onSelectRow?: (event: React.MouseEvent, row: ShipperContractLanesTableRowT) => void;\n    isLoading: boolean;\n    testSelector?: string;\n};\n\nconst cx = classNames.bind(styles);\n\nconst VALID_DATE_FORMAT = 'DD MMM YYYY';\n\nconst BaseShipperContractLanesTable: React.FC<PropsT> = React.memo((props) => {\n    const { tableName, rows, isLoading, testSelector, className, onSelectRow } = props;\n\n    const { t } = useTranslation();\n\n    const columns: Array<TableColumnT<ShipperContractLanesTableRowT, void>> = [\n        {\n            renderHeader: () => <span>{t('common:shipper-contract-lanes.table.columns.id')}</span>,\n            headerClassName: cx('table__header', 'table__header--id'),\n            render: (row: ShipperContractLanesTableRowT) => <IdCell id={row.tztLaneId} />,\n            className: cx('table__column', 'table__column--id'),\n            testSelector: 'id',\n        },\n        {\n            renderHeader: () => <span>{t('common:shipper-contract-lanes.table.columns.pickup')}</span>,\n            headerClassName: cx('table__header', 'table__header--pickup'),\n            render: (row: ShipperContractLanesTableRowT) => (\n                <LocationCell\n                    address={\n                        <LocationLabel\n                            location={{\n                                zipCode: row.origin?.zipCode,\n                                city: row.origin?.city,\n                                country: row.origin?.countryCode as CountryCodeT,\n                            }}\n                            format=\"zip_city_country\"\n                            allowShowCountryCode\n                        />\n                    }\n                />\n            ),\n            className: cx('table__column', 'table__column--pickup'),\n            testSelector: 'origin',\n        },\n        {\n            renderHeader: () => <span>{t('common:shipper-contract-lanes.table.columns.dropoff')}</span>,\n            headerClassName: cx('table__header', 'table__header--destination'),\n            render: (row: ShipperContractLanesTableRowT) => (\n                <LocationCell\n                    address={\n                        <LocationLabel\n                            location={{\n                                zipCode: row.destination?.zipCode,\n                                city: row.destination?.city,\n                                country: row.destination?.countryCode as CountryCodeT,\n                            }}\n                            format=\"zip_city_country\"\n                            allowShowCountryCode\n                        />\n                    }\n                />\n            ),\n            className: cx('table__column', 'table__column--destination'),\n            testSelector: 'destination',\n        },\n        {\n            renderHeader: () => <span>{t('common:shipper-contract-lanes.table.columns.orders-counter')}</span>,\n            headerClassName: cx('table__header', 'table__header--orders-counter'),\n            headerMods: {\n                [TableColumnModsEnum.center]: true,\n            },\n            render: (row: ShipperContractLanesTableRowT) => (\n                <OrdersCountCell\n                    status={row.status}\n                    ordersLeft={row.ordersLeft}\n                    maxNumberOfOrders={row.maxNumberOfOrders}\n                />\n            ),\n            className: cx('table__column', 'table__column--orders-counter'),\n            testSelector: 'orders-counter',\n        },\n        {\n            renderHeader: () => <span>{t('common:shipper-contract-lanes.table.columns.price')}</span>,\n            headerClassName: cx('table__header', 'table__header--total-price'),\n            render: (row: ShipperContractLanesTableRowT) => {\n                return <CostCell cost={row.totalPrice} />;\n            },\n            className: cx('table__column', 'table__column--total-price'),\n            testSelector: 'total-price',\n        },\n        {\n            renderHeader: () => <span>{t('common:shipper-contract-lanes.table.columns.valid-till')}</span>,\n            headerClassName: cx('table__header', 'table__header--valid-till'),\n            render: (row: ShipperContractLanesTableRowT) => {\n                return <DateCell date={row.validTill} dateFormat={VALID_DATE_FORMAT} isBigFont isBold />;\n            },\n            className: cx('table__column', 'table__column--valid-till'),\n            testSelector: 'valid-till',\n        },\n        {\n            renderHeader: () => <EmissionIcon strokeColor={StyleGuideColorsEnum.charcoal} />,\n            headerClassName: cx('table__header', 'table__header--emission-class'),\n            headerMods: {\n                [TableColumnModsEnum.center]: true,\n            },\n            render: (row: ShipperContractLanesTableRowT) => {\n                return <EmissionClassCell emissionClass={row?.emissionClass} />;\n            },\n            className: cx('table__column', 'table__column--emission-class'),\n            testSelector: 'emission-class',\n        },\n        {\n            renderHeader: () => (\n                <TeamDriveIcon\n                    size={DEFAULT_ICON_SIZE}\n                    fillColor={StyleGuideColorsEnum.brandAccent}\n                    strokeColor={StyleGuideColorsEnum.brandDark}\n                />\n            ),\n            headerClassName: cx('table__header', 'table__header--team-drive'),\n            headerMods: {\n                [TableColumnModsEnum.center]: true,\n            },\n            render: (row: ShipperContractLanesTableRowT) => {\n                return <FlagCell isShowFlag={!!row?.teamDrive} />;\n            },\n            className: cx('table__column', 'table__column--team-drive'),\n            testSelector: 'team-drive',\n        },\n        {\n            renderHeader: () => <span>{t('common:shipper-contract-lanes.table.columns.status')}</span>,\n            headerClassName: cx('table__header', 'table__header--status'),\n            render: (row: ShipperContractLanesTableRowT) => {\n                return <ShipperContractLaneStatusPill status={row.status} />;\n            },\n            className: cx('table__column', 'table__column--status'),\n            testSelector: 'status',\n        },\n    ];\n\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const getRowMods = (meta: TableRowMetaT, row: ShipperContractLanesTableRowT) => {\n        return {};\n    };\n\n    return (\n        <div className={cx('table')}>\n            <MemoizedTable<ShipperContractLanesTableRowT> tableName={tableName} isLoading={isLoading} rows={rows}>\n                {(rows, isUsedPrevRows) => (\n                    <Table<ShipperContractLanesTableRowT, void>\n                        testSelector={testSelector}\n                        className={className}\n                        columns={columns}\n                        rows={rows}\n                        isLoading={isLoading}\n                        getRowMods={getRowMods}\n                        onSelectRow={onSelectRow}\n                        isUsedPrevRows={isUsedPrevRows}\n                    />\n                )}\n            </MemoizedTable>\n        </div>\n    );\n});\n\nexport default BaseShipperContractLanesTable;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"StatusCell__fadeIn___kStfH\",\"blinking\":\"StatusCell__blinking___gXTXc\"};","import React from 'react';\n\nimport Avatar, { AvatarSizeEnum } from '../Avatar/Avatar';\nimport { DATE_INTERVAL_SPECIAL_SYMBOLS, formatDateInterval } from 'common/utils/formatters';\nimport { DEFAULT_ICON_SIZE } from 'common/constants';\nimport LogoIcon from 'common/icons/LogoIcon';\n\nexport const pillIconRendererMap = {\n    avatar: (hash: string | null | undefined, isCompact: boolean | undefined): React.ReactNode => {\n        return <Avatar size={isCompact ? AvatarSizeEnum.small : AvatarSizeEnum.medium} hash={hash || ''} />;\n    },\n    logo: (): React.ReactNode => {\n        return <LogoIcon size={DEFAULT_ICON_SIZE} />;\n    },\n};\n\nexport const formatDateRangeFilterValue = (\n    from: string | null | undefined,\n    to: string | null | undefined,\n    format = 'DD MMM YYYY',\n) => {\n    return formatDateInterval(from, to || DATE_INTERVAL_SPECIAL_SYMBOLS.FUTURE, format);\n};\n","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\n\ntype PropsT = {\n    tourNumber: React.ReactNode;\n};\n\nconst TourSpotPlacedCard: React.FC<PropsT> = React.memo(({ tourNumber }) => (\n    <NotificationCardInnerLayout>\n        <Trans\n            i18nKey=\"common:notifications.spot-placed\"\n            components={{\n                tourNumber: <NotificationEntityLabel isBold isUnderline text={tourNumber} />,\n            }}\n        />\n    </NotificationCardInnerLayout>\n));\n\nexport default TourSpotPlacedCard;\n","import React from 'react';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\n\nimport { TrailerStatusEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\nimport DropdownMultipleInput, {\n    RenderTriggerPropsT,\n} from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInput';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport DropdownBaseButtonTrigger from 'design-system/components/dropdowns/base/DropdownBaseButtonTrigger/DropdownBaseButtonTrigger';\nimport { TRAILER_STATUS_T_MAP } from 'common/components/status/TrailerStatus/TrailerStatus';\nimport TrailerStatusPill from 'common/components/status-pill/TrailerStatusPill/TrailerStatusPill';\nimport DropdownMultipleInputCountLabel from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInputCountLabel/DropdownMultipleInputCountLabel';\n\ntype OptionValueT = TrailerStatusEnum | null;\n\ntype PropsT = {\n    placeholder?: string;\n    value: Array<OptionValueT>;\n    isDisabled?: boolean;\n    onChange: (value: Array<OptionValueT>) => void;\n    hasWarning: boolean;\n    hasError: boolean;\n    hasChanges?: boolean;\n    onBlur: () => void;\n    onFocus: () => void;\n    hasClearControl?: boolean;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    excludeStatuses?: Array<TrailerStatusEnum>;\n};\n\ntype TrailerStatusDropdownOptionT = {\n    value: OptionValueT;\n    label: React.ReactNode;\n};\n\nconst TrailerStatusMultipleDropdown: React.FC<PropsT> = React.memo((props) => {\n    const {\n        value,\n        placeholder,\n        onChange,\n        isDisabled,\n        hasWarning,\n        hasError,\n        hasChanges,\n        onBlur,\n        onFocus,\n        hasClearControl,\n        overlayPosition,\n        excludeStatuses,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const options = React.useMemo((): TrailerStatusDropdownOptionT[] => {\n        return [\n            TrailerStatusEnum.free,\n            TrailerStatusEnum.inTransit,\n            TrailerStatusEnum.archived,\n            TrailerStatusEnum.unavailable,\n        ]\n            .filter((status) => {\n                if (excludeStatuses) {\n                    return !excludeStatuses.includes(status);\n                }\n\n                return true;\n            })\n            .map((status: TrailerStatusEnum): TrailerStatusDropdownOptionT => {\n                return {\n                    label: t(TRAILER_STATUS_T_MAP[status]),\n                    value: status,\n                };\n            });\n    }, [t, excludeStatuses]);\n\n    const renderTrigger = (\n        props: RenderTriggerPropsT,\n        options: Array<TrailerStatusDropdownOptionT>,\n        placeholder: string | undefined,\n    ): React.ReactNode => {\n        if (!options?.length) {\n            return <DropdownBaseButtonTrigger {...props}>{placeholder || ''}</DropdownBaseButtonTrigger>;\n        }\n\n        if (options.length === 1) {\n            const firstOption = options?.[0];\n\n            return <DropdownBaseButtonTrigger {...props}>{firstOption?.label}</DropdownBaseButtonTrigger>;\n        }\n\n        return (\n            <DropdownBaseButtonTrigger {...props}>\n                <DropdownMultipleInputCountLabel count={options.length} />\n            </DropdownBaseButtonTrigger>\n        );\n    };\n\n    const renderOption = (option: TrailerStatusDropdownOptionT | null | undefined): React.ReactNode => {\n        if (!option) {\n            return null;\n        }\n\n        return (\n            <DropdownControlOptionLabel\n                withoutPaddings\n                label={<TrailerStatusPill status={option.value} isSymmetrical />}\n            />\n        );\n    };\n\n    const handleSelect = (value: Array<OptionValueT>): void => {\n        onChange(value);\n    };\n\n    const getOptionValue = (option: TrailerStatusDropdownOptionT): OptionValueT => option.value;\n\n    return (\n        <DropdownMultipleInput<TrailerStatusDropdownOptionT, OptionValueT>\n            selectedValues={value}\n            placeholder={placeholder}\n            options={options}\n            onSelect={handleSelect}\n            isDisabled={isDisabled}\n            renderOption={renderOption}\n            renderTrigger={renderTrigger}\n            getOptionValue={getOptionValue}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            hasWarning={hasWarning}\n            hasError={hasError}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            testSelector=\"trailer-statuses\"\n            onReset={\n                hasClearControl\n                    ? () => {\n                          onChange([]);\n                      }\n                    : undefined\n            }\n        />\n    );\n});\n\nexport default TrailerStatusMultipleDropdown;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    fetchShipperContractLanesPage,\n    fetchShipperContractLanesPageBegin,\n    fetchShipperContractLanesPageError,\n    fetchShipperContractLanesPageSuccess,\n    resetShipperContractLanes,\n} from './slice';\nimport { FetchShipperContractLanesActionT } from './types';\nimport { CompanyTypeEnum } from 'common/constants';\nimport { checkIsSameQuery, checkShouldEmitChangePage } from 'common/utils/pagination/utils';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport shipperTranziitApi from 'shipper/utils/api/shipper-tranziit/api';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { checkIsDefaultCompanyId } from 'common/utils';\nimport { selectShipperContractLanesPages, selectShipperContractLanesQuery } from './selectors';\nimport { shipperContractLanesPaginationChannel } from './channels';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getFetchCarrierContractLanesSaga(companyType: CompanyTypeEnum) {\n    return function* (action: FetchShipperContractLanesActionT): WrapGeneratorT<void> {\n        const { pageNumber, query: rawQuery, partnerId, contractId } = action.payload;\n\n        const query: typeof rawQuery = {\n            ...rawQuery,\n        };\n\n        const prevQuery: ReReturnT<typeof selectShipperContractLanesQuery> = yield select(\n            selectShipperContractLanesQuery(partnerId, contractId),\n        );\n        const pages: ReReturnT<typeof selectShipperContractLanesPages> = yield select(\n            selectShipperContractLanesPages(partnerId, contractId),\n        );\n        const isSameQuery = checkIsSameQuery(query, prevQuery);\n        const isNeedRequest = checkNeedRequest(pages[pageNumber]?.requestStatus);\n        if (isSameQuery && !isNeedRequest) {\n            return;\n        }\n        if (!isSameQuery) {\n            yield put(\n                resetShipperContractLanes({\n                    partnerId,\n                    contractId,\n                    mutationListOptions: { savingPageNumber: pageNumber },\n                }),\n            );\n        }\n\n        yield put(fetchShipperContractLanesPageBegin({ query, pageNumber, partnerId, contractId }));\n\n        let result: ReturnApiT<\n            | typeof shipperTranziitApi.fetchShipperContractLanes\n            | typeof brokerTranziitApi.fetchPartnerShipperContractLanes\n        >;\n        if (checkIsDefaultCompanyId(partnerId)) {\n            result = yield shipperTranziitApi.fetchShipperContractLanes(contractId, {\n                ...query,\n                page: pageNumber,\n            });\n        } else {\n            result = yield brokerTranziitApi.fetchPartnerShipperContractLanes(partnerId, contractId, {\n                ...query,\n                page: pageNumber,\n            });\n        }\n\n        const [error, response] = result;\n\n        if (error) {\n            yield put(fetchShipperContractLanesPageError({ query, pageNumber, error, partnerId, contractId }));\n            return;\n        }\n\n        yield put(fetchShipperContractLanesPageSuccess({ query, pageNumber, response, partnerId, contractId }));\n\n        checkShouldEmitChangePage(pageNumber, response, shipperContractLanesPaginationChannel);\n    };\n}\n\nfunction* shipperContractLanesSaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery(fetchShipperContractLanesPage.type, getFetchCarrierContractLanesSaga(companyType));\n}\n\nexport { shipperContractLanesSaga };\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst MinusSignIcon: React.FC<PropsT> = (props) => {\n    const { strokeColor, size, ...rest } = props;\n\n    return (\n        <svg width={size} height={size} viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" {...rest}>\n            <rect x=\"0\" y=\"0\" width=\"20\" height=\"20\" fill=\"none\" />\n            <polygon points=\"14.25 9.75 3.75 9.75 3.75 8.25 14.25 8.25\" fill={strokeColor} />\n        </svg>\n    );\n};\n\nMinusSignIcon.displayName = 'MinusSignIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default MinusSignIcon;\n","export enum AuthErrorTypeEnum {\n    networkRequestFailed = 'network-request-failed',\n    aborted = 'aborted',\n    userNotFound = 'user-not-found',\n    userDisabled = 'user-disabled',\n    wrongPassword = 'wrong-password',\n    userIsNotAuthorized = 'userIsNotAuthorized',\n    failSendEmailVerification = 'failSendEmailVerification',\n    failSendPasswordResetEmail = 'failSendPasswordResetEmail',\n    failUpdatePassword = 'fail-update-password',\n    failEmailVerification = 'fail-email-verification',\n    failChangePassword = 'fail-change-password',\n    failUpdateProfile = 'fail-update-profile',\n    failReauthenticateWithCredential = 'fail-reauthenticate-with-credential',\n    failSignIn = 'failSignIn',\n    failSignOut = 'failSignOut',\n    failAnonymouslySignIn = 'failAnonymouslySignIn',\n    wrongRole = 'wrong-role',\n    expiredActionCode = 'expired-action-code',\n    invalidActionCode = 'invalid-action-code',\n    weakPassword = 'weak-password',\n    unknown = 'unknown',\n\n    // keycloak\n    tooMutchRequests = 'too-mutch-requests',\n    invalidCreds = 'invalid-creds',\n    invalidSession = 'invalid-session',\n}\n\nexport class AuthApiError extends Error {\n    type: AuthErrorTypeEnum;\n\n    message: string;\n\n    constructor(type: AuthErrorTypeEnum, message: string) {\n        super(type);\n\n        this.type = type;\n        this.message = message;\n\n        // fix for instanceof\n        // https://github.com/microsoft/TypeScript/issues/13965\n        // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\n        Object.setPrototypeOf(this, AuthApiError.prototype);\n    }\n}\n\nexport const checkIsAuthApiError = (error: AuthApiError | Error | null | undefined): error is AuthApiError => {\n    return error instanceof AuthApiError;\n};\n","import * as React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { ApiRFQBrokerSourceT } from 'common/utils/api/models';\n\ntype PropsT = {\n    source?: ApiRFQBrokerSourceT | null;\n    isSymmetrical?: boolean;\n};\n\nexport const RFQ_SOURCE_T_MAP: Record<ApiRFQBrokerSourceT, string> = {\n    CARLO: 'common:rfq-source.carlo',\n    TENDER: 'common:rfq-source.tender',\n    INTERNAL: 'common:rfq-source.internal',\n    CONTRACT_LANE: 'common:rfq-source.contract-lane',\n};\n\nexport const THEME_MAP: Record<ApiRFQBrokerSourceT, PillLabelThemeEnum> = {\n    CARLO: PillLabelThemeEnum.pewterBlue,\n    TENDER: PillLabelThemeEnum.lightSlateGray,\n    INTERNAL: PillLabelThemeEnum.tumbleweed,\n    CONTRACT_LANE: PillLabelThemeEnum.charcoal,\n};\n\nconst RFQSourcePill: React.FC<PropsT> = React.memo((props) => {\n    const { source, isSymmetrical } = props;\n\n    const { t } = useTranslation();\n\n    const label = source ? t(RFQ_SOURCE_T_MAP[source]) : null;\n    if (!label) {\n        return null;\n    }\n\n    return (\n        <PillLabel\n            isNoWrap\n            isSymmetrical={isSymmetrical}\n            theme={source ? THEME_MAP[source] : PillLabelThemeEnum.charcoal}\n            testSelector=\"rfq-source\"\n        >\n            {label}\n        </PillLabel>\n    );\n});\n\nexport default RFQSourcePill;\n","import type { brokerTourEditSlice } from './slice';\n\nexport enum BrokerStopChangesSourceEnum {\n    shipment = 'shipment',\n    waypoint = 'waypoint',\n}\n\nexport type UpdateTourStopContactRequestT = Api2Paths.ApiV1OrderEditUpdateStopContact$StopId.Post.RequestBody;\nexport type UpdateTourShipmentRequestT = Api2Paths.ApiV1OrderEditUpdateShipment$ShipmentId.Post.RequestBody;\n\nexport type BrokerTourEditActionT =\n    | ReturnType<typeof brokerTourEditSlice.actions.updateTourStopContact>\n    | ReturnType<typeof brokerTourEditSlice.actions.updateBrokerTourBegin>\n    | ReturnType<typeof brokerTourEditSlice.actions.updateBrokerTourSuccess>\n    | ReturnType<typeof brokerTourEditSlice.actions.updateBrokerTourError>\n    | ReturnType<typeof brokerTourEditSlice.actions.resetBrokerTourEdit>;\n","import { DropdownControlRenderTriggerT } from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport * as React from 'react';\nimport { AttachPapersDropdownControlTrigger } from 'common/components/papers/AttachPapersDropdownControlTrigger/AttachPapersDropdownControlTrigger';\nimport { useTranslation } from 'react-i18next';\nimport { ApiShipmentAttachedPaperTypeT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { SHIPMENT_PAPER_TYPE_MAP_T } from 'common/components/papers/labels/ShipmentPaperTypeLabel/ShipmentPaperTypeLabel';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipIconTrigger from 'design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { ButtonPropsT, ButtonThemeEnum } from 'common/components/Button/Button';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { ApiAttachPapersUnavailableReasonT } from 'common/utils/api/models';\nimport AttachPapersUnavailableReasonLabel from 'common/components/papers/labels/AttachPapersUnavailableReasonLabel/AttachPapersUnavailableReasonLabel';\n\nexport const useAttachPaperForStateMachineRenderTrigger = ({\n    requiredDocuments,\n    triggerText,\n    hasPlusIcon,\n    attachPapersUnavailableReason,\n}: {\n    requiredDocuments: ApiShipmentAttachedPaperTypeT[];\n    triggerText: React.ReactNode;\n    hasPlusIcon?: boolean;\n    attachPapersUnavailableReason?: ApiAttachPapersUnavailableReasonT | null;\n}) => {\n    const { t } = useTranslation();\n\n    const requiredDocument = requiredDocuments?.[0] || null;\n\n    const attachPaperRenderTrigger: DropdownControlRenderTriggerT = React.useCallback(\n        (isActive, onClick) => {\n            const tooltipNode = t('common:papers-card.alert-required', {\n                paper: t(SHIPMENT_PAPER_TYPE_MAP_T[requiredDocument]),\n            });\n\n            return (\n                <AttachPapersDropdownControlTrigger\n                    hasExpandIcon\n                    hasPlusIcon={hasPlusIcon}\n                    isActive={isActive}\n                    onClick={onClick}\n                    buttonProps={{\n                        theme: ButtonThemeEnum.secondaryPositive,\n                        isFullWidth: true,\n                        leftIcon: requiredDocument ? (\n                            <Tooltip\n                                position={TooltipPositionEnum.topCenter}\n                                theme={TooltipThemeEnum.black}\n                                tooltipNode={\n                                    <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                                        {tooltipNode}\n                                    </TooltipContent>\n                                }\n                            >\n                                {(isShow) => (\n                                    <TooltipIconTrigger fillColor={StyleGuideColorsEnum.brandDark} isShow={isShow} />\n                                )}\n                            </Tooltip>\n                        ) : null,\n                    }}\n                    isDisabled={Boolean(attachPapersUnavailableReason)}\n                    tooltipMessage={\n                        attachPapersUnavailableReason && (\n                            <AttachPapersUnavailableReasonLabel reason={attachPapersUnavailableReason} />\n                        )\n                    }\n                >\n                    {triggerText}\n                </AttachPapersDropdownControlTrigger>\n            );\n        },\n        [t, requiredDocument, triggerText, hasPlusIcon, attachPapersUnavailableReason],\n    );\n\n    return {\n        attachPaperRenderTrigger,\n    };\n};\n\nexport const useAttachPaperForPaperTabRenderTrigger = ({\n    triggerText,\n    buttonProps,\n    hasPlusIcon,\n    attachPapersUnavailableReason,\n}: {\n    triggerText: React.ReactNode;\n    buttonProps?: ButtonPropsT;\n    hasPlusIcon?: boolean;\n    attachPapersUnavailableReason?: ApiAttachPapersUnavailableReasonT | null;\n}) => {\n    const attachPaperRenderTrigger: DropdownControlRenderTriggerT = React.useCallback(\n        (isActive, onClick) => {\n            return (\n                <AttachPapersDropdownControlTrigger\n                    hasExpandIcon\n                    hasPlusIcon={hasPlusIcon}\n                    isActive={isActive}\n                    onClick={onClick}\n                    buttonProps={buttonProps}\n                    isDisabled={Boolean(attachPapersUnavailableReason)}\n                    tooltipMessage={\n                        attachPapersUnavailableReason && (\n                            <AttachPapersUnavailableReasonLabel reason={attachPapersUnavailableReason} />\n                        )\n                    }\n                >\n                    {triggerText}\n                </AttachPapersDropdownControlTrigger>\n            );\n        },\n        [triggerText, buttonProps, hasPlusIcon, attachPapersUnavailableReason],\n    );\n\n    return {\n        attachPaperRenderTrigger,\n    };\n};\n","export {\n    updateTourShipment,\n    updateTourStopContact,\n    updateBrokerTourBegin,\n    updateBrokerTourSuccess,\n    updateBrokerTourError,\n    resetBrokerTourEdit,\n} from './slice';\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    fillColor: StyleGuideColorsEnum;\n    opacity?: number;\n};\n\nconst WarningIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, opacity, className } = props;\n\n    return (\n        <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" className={className}>\n            <path\n                d=\"M10.333 2A8.336 8.336 0 0 0 2 10.333c0 4.6 3.733 8.334 8.333 8.334s8.334-3.734 8.334-8.334S14.933 2 10.333 2zm0 9.167a.836.836 0 0 1-.833-.834V7c0-.458.375-.833.833-.833.459 0 .834.375.834.833v3.333a.836.836 0 0 1-.834.834zm.834 3.333H9.5v-1.667h1.667V14.5z\"\n                fill={fillColor}\n                opacity={opacity || 1}\n                fillRule=\"evenodd\"\n            />\n        </svg>\n    );\n};\n\nWarningIcon.displayName = 'WarningIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.tomatoRed,\n};\n\nexport { storyProps };\nexport default WarningIcon;\n","import { ApiUnitTypeT } from 'common/utils/api/models';\nimport { UnitTypeEnum } from 'common/constants';\n\nexport const getLoadUnitType = (apiUnit: ApiUnitTypeT | null | undefined): UnitTypeEnum | null => {\n    switch (apiUnit) {\n        case 'EURO_PALLET_1': {\n            return UnitTypeEnum.eur1Pallets;\n        }\n        case 'EURO_PALLET_2': {\n            return UnitTypeEnum.eur2Pallets;\n        }\n        case 'EURO_PALLET_6': {\n            return UnitTypeEnum.eur6Pallets;\n        }\n        case 'OTHER': {\n            return UnitTypeEnum.other;\n        }\n        default: {\n            return null;\n        }\n    }\n};\n\nexport const getApiLoadUnitType = (unit: UnitTypeEnum | null | undefined): ApiUnitTypeT | null => {\n    switch (unit) {\n        case UnitTypeEnum.eur1Pallets: {\n            return 'EURO_PALLET_1';\n        }\n        case UnitTypeEnum.eur2Pallets: {\n            return 'EURO_PALLET_2';\n        }\n        case UnitTypeEnum.eur6Pallets: {\n            return 'EURO_PALLET_6';\n        }\n        case UnitTypeEnum.other: {\n            return 'OTHER';\n        }\n        default: {\n            return null;\n        }\n    }\n};\n","import {\n    CANCEL_SPOT_REQUEST,\n    CANCEL_SPOT_REQUEST_BY_TOUR,\n    CancelSpotRequestActionT,\n    CancelSpotRequestByTourActionT,\n    SEND_TO_SPOT_BY_TOUR,\n    SendToSpotByTourActionT,\n    UPDATE_REQUEST_BEGIN,\n    UPDATE_REQUEST_ERROR,\n    UPDATE_REQUEST_SUCCESS,\n    UpdateBeginActionT,\n    UpdateErrorActionT,\n    UpdateSuccessActionT,\n} from './types';\n\nexport const sendToSpotByTour = (tourId: TourIdT, deadline: string, comment: string): SendToSpotByTourActionT => ({\n    type: SEND_TO_SPOT_BY_TOUR,\n    tourId,\n    deadline,\n    comment,\n});\n\nexport const cancelSpotRequestByTour = (tourId: TourIdT): CancelSpotRequestByTourActionT => ({\n    type: CANCEL_SPOT_REQUEST_BY_TOUR,\n    tourId,\n});\n\nexport const cancelSpotRequest = (spotRequestId: SpotRequestIdT): CancelSpotRequestActionT => ({\n    type: CANCEL_SPOT_REQUEST,\n    spotRequestId,\n});\n\nexport const updateBegin = (): UpdateBeginActionT => ({\n    type: UPDATE_REQUEST_BEGIN,\n});\n\nexport const updateSuccess = (): UpdateSuccessActionT => ({\n    type: UPDATE_REQUEST_SUCCESS,\n});\n\nexport const updateError = (error: Error): UpdateErrorActionT => ({\n    type: UPDATE_REQUEST_ERROR,\n    error,\n});\n","import { FetchSpotRequestsPageQueryT } from 'broker-admin/store/spot-requests/models';\nimport { SpotRequestsQuickFilterEnum } from 'broker-admin/layouts/SpotRequestsPage/SpotRequestListPage/constants';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from './query-models';\nimport { SpotRequestsSortEnum, SpotRequestStatusEnum } from 'broker-admin/utils/api/spot-broker-tranziit/models';\nimport { PageSortT, SortDirectionEnum } from 'common/utils/query';\n\nconst getQueryFromQuickFilters = (\n    quickFilter: SpotRequestsQuickFilterEnum | null | undefined,\n): FetchSpotRequestsPageQueryT => {\n    switch (quickFilter) {\n        case SpotRequestsQuickFilterEnum.open: {\n            return {\n                status: SpotRequestStatusEnum.open,\n            };\n        }\n        case SpotRequestsQuickFilterEnum.accepted: {\n            return {\n                status: SpotRequestStatusEnum.accepted,\n            };\n        }\n        case SpotRequestsQuickFilterEnum.assigned: {\n            return {\n                status: SpotRequestStatusEnum.assigned,\n            };\n        }\n        case SpotRequestsQuickFilterEnum.expired: {\n            return {\n                status: SpotRequestStatusEnum.expired,\n            };\n        }\n        case SpotRequestsQuickFilterEnum.canceled: {\n            return {\n                status: SpotRequestStatusEnum.canceled,\n            };\n        }\n        case SpotRequestsQuickFilterEnum.expireSoon: {\n            return {\n                expireSoon: true,\n            };\n        }\n        case SpotRequestsQuickFilterEnum.newBids: {\n            return {\n                hasUnreadBids: true,\n            };\n        }\n        default: {\n            return {};\n        }\n    }\n};\n\nconst formatSort = (sort: PageSortT<SpotRequestsSortEnum> | null): FetchSpotRequestsPageQueryT['sorting'] | null => {\n    switch (sort?.value) {\n        case SpotRequestsSortEnum.destinationTime: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'DESTINATION_TIME_ASC';\n            }\n            return 'DESTINATION_TIME_DESC';\n        }\n        case SpotRequestsSortEnum.originTime: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'ORIGIN_TIME_ASC';\n            }\n            return 'ORIGIN_TIME_DESC';\n        }\n        case SpotRequestsSortEnum.placedTime: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'PLACED_TIME_ASC';\n            }\n            return 'PLACED_TIME_DESC';\n        }\n        case SpotRequestsSortEnum.expirationTime: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'EXPIRATION_TIME_ASC';\n            }\n            return 'EXPIRATION_TIME_DESC';\n        }\n        default: {\n            return null;\n        }\n    }\n};\n\nconst prepareFetchPageQuery = (\n    queryFilters: QueryFiltersT,\n    sort: PageSortT<SpotRequestsSortEnum> | null,\n): FetchSpotRequestsPageQueryT => {\n    const dictTrailerTypeId = queryFilters[QueryFiltersKeysEnum.dictTrailerTypeId];\n\n    return {\n        shipperId: queryFilters[QueryFiltersKeysEnum.createdByShipperId] || undefined,\n\n        createdBy: queryFilters[QueryFiltersKeysEnum.createdByUserId] || undefined,\n\n        createdDateFrom: queryFilters[QueryFiltersKeysEnum.createdDateFrom] || undefined,\n        createdDateTo: queryFilters[QueryFiltersKeysEnum.createdDateTo] || undefined,\n\n        trailerTypeId: dictTrailerTypeId ? +dictTrailerTypeId : undefined,\n\n        textSearch: queryFilters[QueryFiltersKeysEnum.searchText] || undefined,\n        originAddress: queryFilters[QueryFiltersKeysEnum.pickupAddress] || undefined,\n        destinationAddress: queryFilters[QueryFiltersKeysEnum.dropOffAddress] || undefined,\n\n        originDateFrom: queryFilters[QueryFiltersKeysEnum.pickupDateFrom] || undefined,\n        originDateTo: queryFilters[QueryFiltersKeysEnum.pickupDateTo] || undefined,\n\n        destinationDateFrom: queryFilters[QueryFiltersKeysEnum.dropOffDateFrom] || undefined,\n        destinationDateTo: queryFilters[QueryFiltersKeysEnum.dropOffDateTo] || undefined,\n\n        // TODO use tabs\n        ...getQueryFromQuickFilters(queryFilters[QueryFiltersKeysEnum.quickFilter]),\n\n        sorting: formatSort(sort) || undefined,\n    };\n};\n\nexport { prepareFetchPageQuery };\n","import { AssignmentVehiclesSuggestItemT, LinksT, TrailerAssignmentInfoT, TruckAssignmentInfoT } from './assignment';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nimport { FindTrailerQueryT, FindTruckQueryT, UserSelectionT } from './models';\nimport { CountryCodeT } from 'common/utils/api/models';\n\nexport const CHANGE_USER_SELECTION = 'common/spot-assets-assigment/CHANGE_USER_SELECTION';\n\nexport const FIND_TRAILER_REQUEST = 'common/spot-assets-assigment/FIND_TRAILER_REQUEST';\nexport const FIND_TRAILER_REQUEST_BEGIN = 'common/spot-assets-assigment/FIND_TRAILER_REQUEST_BEGIN';\nexport const FIND_TRAILER_REQUEST_ERROR = 'common/spot-assets-assigment/FIND_TRAILER_REQUEST_ERROR';\nexport const FIND_TRAILER_REQUEST_SUCCESS = 'common/spot-assets-assigment/FIND_TRAILER_REQUEST_SUCCESS';\n\nexport const FIND_TRUCK_REQUEST = 'common/spot-assets-assigment/FIND_TRUCK_REQUEST';\nexport const FIND_TRUCK_REQUEST_BEGIN = 'common/spot-assets-assigment/FIND_TRUCK_REQUEST_BEGIN';\nexport const FIND_TRUCK_REQUEST_ERROR = 'common/spot-assets-assigment/FIND_TRUCK_REQUEST_ERROR';\nexport const FIND_TRUCK_REQUEST_SUCCESS = 'common/spot-assets-assigment/FIND_TRUCK_REQUEST_SUCCESS';\n\nexport const ASSIGN = 'common/spot-assets-assigment/ASSIGN';\nexport const UNASSIGN = 'common/spot-assets-assigment/UNASSIGN';\nexport const ASSIGNMENT_REQUEST_BEGIN = 'common/spot-assets-assigment/ASSIGNMENT_REQUEST_BEGIN';\nexport const ASSIGNMENT_REQUEST_ERROR = 'common/spot-assets-assigment/ASSIGNMENT_REQUEST_ERROR';\nexport const ASSIGNMENT_REQUEST_SUCCESS = 'common/spot-assets-assigment/ASSIGNMENT_REQUEST_SUCCESS';\n\nexport type SpotAssetsAssignmentStateT = {\n    userSelection: UserSelectionT;\n    truckById: Record<TruckIdT, TruckAssignmentInfoT>;\n    truckSuggest: {\n        query: FindTruckQueryT | null;\n        requestStatus: RequestStatusT;\n        ids: Array<TruckIdT>;\n    };\n    trailerById: Record<TrailerIdT, TrailerAssignmentInfoT>;\n    trailerSuggest: {\n        query: FindTrailerQueryT | null;\n        requestStatus: RequestStatusT;\n        ids: Array<TrailerIdT>;\n    };\n    links: LinksT;\n    assigmentStatus: RequestStatusT;\n};\n\nexport type ChangeUserSelectionActionT = {\n    type: typeof CHANGE_USER_SELECTION;\n    changes: Partial<UserSelectionT>;\n    transportOrderId: TransportOrderIdT | null;\n};\n\nexport type FindTrailerActionT = {\n    type: typeof FIND_TRAILER_REQUEST;\n    query: FindTrailerQueryT;\n};\n\nexport type FindTrailerBeginActionT = {\n    type: typeof FIND_TRAILER_REQUEST_BEGIN;\n    query: FindTrailerQueryT;\n};\n\nexport type FindTrailerSuccessActionT = {\n    type: typeof FIND_TRAILER_REQUEST_SUCCESS;\n    trailersSuggestItems: AssignmentVehiclesSuggestItemT[];\n    query: FindTrailerQueryT;\n};\n\nexport type FindTrailerErrorActionT = {\n    type: typeof FIND_TRAILER_REQUEST_ERROR;\n    error: Error;\n    query: FindTrailerQueryT;\n};\n\nexport type FindTruckActionT = {\n    type: typeof FIND_TRUCK_REQUEST;\n    query: FindTruckQueryT;\n};\n\nexport type FindTruckBeginActionT = {\n    type: typeof FIND_TRUCK_REQUEST_BEGIN;\n    query: FindTruckQueryT;\n};\n\nexport type FindTruckSuccessActionT = {\n    type: typeof FIND_TRUCK_REQUEST_SUCCESS;\n    trucksSuggestItems: AssignmentVehiclesSuggestItemT[];\n    query: FindTruckQueryT;\n};\n\nexport type FindTruckErrorActionT = {\n    type: typeof FIND_TRUCK_REQUEST_ERROR;\n    error: Error;\n    query: FindTruckQueryT;\n};\n\nexport type AssignActionT = {\n    type: typeof ASSIGN;\n    trailerId: TrailerIdT;\n    truckId: TruckIdT;\n    prohibitedCountries?: Array<CountryCodeT>;\n    transportOrderId: TransportOrderIdT;\n};\n\nexport type UnAssignActionT = {\n    type: typeof UNASSIGN;\n    transportOrderId: TransportOrderIdT;\n};\n\nexport type AssignBeginActionT = {\n    type: typeof ASSIGNMENT_REQUEST_BEGIN;\n};\n\nexport type AssignSuccessActionT = {\n    type: typeof ASSIGNMENT_REQUEST_SUCCESS;\n};\n\nexport type AssignErrorActionT = {\n    type: typeof ASSIGNMENT_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type SpotAssetsAssignmentActionT =\n    | ChangeUserSelectionActionT\n    | FindTrailerActionT\n    | FindTrailerBeginActionT\n    | FindTrailerSuccessActionT\n    | FindTrailerErrorActionT\n    | FindTruckActionT\n    | FindTruckBeginActionT\n    | FindTruckSuccessActionT\n    | FindTruckErrorActionT\n    | AssignActionT\n    | UnAssignActionT\n    | AssignBeginActionT\n    | AssignSuccessActionT\n    | AssignErrorActionT;\n","import {\n    DOCUMENTS_DICT_REQUEST,\n    DOCUMENTS_DICT_REQUEST_BEGIN,\n    DOCUMENTS_DICT_REQUEST_ERROR,\n    DOCUMENTS_DICT_REQUEST_SUCCESS,\n    FetchDocumentsDictActionT,\n    FetchDocumentsDictBeginActionT,\n    FetchDocumentsDictErrorActionT,\n    FetchDocumentsDictSuccessActionT,\n} from './types';\nimport { DictDocumentT } from './models';\nimport { ApiPartnerTypeT } from 'common/utils/api/models';\n\nexport const fetchDocumentsDict = (partnerType: ApiPartnerTypeT | null): FetchDocumentsDictActionT => ({\n    type: DOCUMENTS_DICT_REQUEST,\n    partnerType,\n});\n\nexport const fetchDocumentsDictBegin = (partnerType: ApiPartnerTypeT): FetchDocumentsDictBeginActionT => ({\n    type: DOCUMENTS_DICT_REQUEST_BEGIN,\n    partnerType,\n});\n\nexport const fetchDocumentsDictSuccess = (\n    partnerType: ApiPartnerTypeT,\n    documentsList: DictDocumentT[],\n): FetchDocumentsDictSuccessActionT => ({\n    type: DOCUMENTS_DICT_REQUEST_SUCCESS,\n    partnerType,\n    documentsList,\n});\n\nexport const fetchDocumentsDictError = (\n    partnerType: ApiPartnerTypeT,\n    error: Error,\n): FetchDocumentsDictErrorActionT => ({\n    type: DOCUMENTS_DICT_REQUEST_ERROR,\n    partnerType,\n    error,\n});\n","import { call, take } from 'redux-saga/effects';\nimport { createVisibilityChangeChannel } from 'common/utils/watch-document-visibility-change-saga';\n\nfunction* watchDocumentVisibleSaga(visibleSaga: any): WrapGeneratorT<void> {\n    const visibilityChangeChannel = yield call(createVisibilityChangeChannel);\n\n    while (true) {\n        const isHidden = yield take(visibilityChangeChannel);\n\n        if (!isHidden) {\n            yield call(visibleSaga);\n        }\n    }\n}\n\nexport default watchDocumentVisibleSaga;\n","import React, { ReactNode } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport DocumentsTable, {\n    TableColumnModsEnum,\n    TableColumnT,\n    TableRowMetaT,\n    TableRowModsEnum,\n    TableRowThemeEnum,\n} from 'common/components/DocumentsTable/DocumentsTable';\nimport MemoizedTable from 'common/components/Table/MemoizedTable/MemoizedTable';\nimport classNames from 'classnames/bind';\nimport styles from './BaseCarrierContractsTable.scss';\nimport EventCell from 'common/components/Table/cell-renderers/EventCell/EventCell';\nimport { ContractsActionsT } from '../models';\nimport { ApiCarrierContractStatusT } from 'common/utils/api/models';\nimport ActionsCell from './cell-renderers/ActionsCell/ActionsCell';\nimport { ContractRowT } from './models';\nimport ExpireDateCell from './cell-renderers/ExpireDateCell/ExpireDateCell';\nimport ContractNameCell from 'common/layouts/BaseCarrierContractsLayout/BaseCarrierContractsTable/cell-renderers/ContractNameCell/ContractNameCell';\nimport CarrierContractStatusPill from 'common/components/status-pill/CarrierContractStatusPill/CarrierContractStatusPill';\n\ntype PropsT = {\n    className?: string;\n    tableName: string;\n    rows: Array<ContractRowT>;\n    onSelectRow?: (row: ContractRowT) => void;\n    isLoading: boolean;\n    testSelector?: string;\n    headerNode?: ReactNode;\n    footerNode?: ReactNode;\n    onOpenUserDetails: (userId: UserIdT) => void;\n    contactStatusesAttentionSet?: Set<ApiCarrierContractStatusT | null>;\n} & ContractsActionsT;\n\nconst cx = classNames.bind(styles);\n\nconst BaseCarrierContractsTable: React.FC<PropsT> = React.memo((props) => {\n    const {\n        tableName,\n        rows,\n        isLoading,\n        onOpenUserDetails,\n        testSelector,\n        className,\n        headerNode,\n        footerNode,\n        onSelectRow,\n        onDownloadContract,\n        onEditContractDetails,\n        onRevokeContract,\n        contactStatusesAttentionSet,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const columns: Array<TableColumnT<ContractRowT, void>> = [\n        {\n            renderHeader: () => <span>{t('common:carrier-contracts.table.columns.name')}</span>,\n            headerClassName: cx('table__header', 'table__header--name'),\n            render: (row: ContractRowT) => <ContractNameCell name={row?.name || ''} />,\n            className: cx('table__column', 'table__column--name'),\n            testSelector: 'name',\n        },\n        {\n            renderHeader: () => <span>{t('common:carrier-contracts.table.columns.uploaded')}</span>,\n            headerClassName: cx('table__header', 'table__header--uploaded'),\n            render: (row: ContractRowT) => {\n                return (\n                    <EventCell\n                        date={row.createdDate}\n                        userId={row.createdById}\n                        userFullName={row.createdByName}\n                        byBroker={row.createdByBroker}\n                        openUserDetails={onOpenUserDetails}\n                    />\n                );\n            },\n            className: cx('table__column', 'table__column--uploaded'),\n            testSelector: 'upload',\n        },\n        {\n            renderHeader: () => <span>{t('common:carrier-contracts.table.columns.reviewed')}</span>,\n            headerClassName: cx('table__header', 'table__header--reviewed'),\n            render: (row: ContractRowT) => {\n                return (\n                    <EventCell\n                        date={row.reviewedDate}\n                        userId={row.reviewedById}\n                        userFullName={row.reviewedByName}\n                        byBroker\n                        openUserDetails={onOpenUserDetails}\n                    />\n                );\n            },\n            className: cx('table__column', 'table__column--reviewed'),\n            testSelector: 'review',\n        },\n        {\n            renderHeader: () => <span>{t('common:carrier-contracts.table.columns.expire-date')}</span>,\n            headerClassName: cx('table__header', 'table__header--expire-date'),\n            headerMods: {\n                [TableColumnModsEnum.center]: true,\n            },\n            render: (row: ContractRowT) => {\n                return <ExpireDateCell row={row} onSelectRow={onSelectRow} />;\n            },\n            className: cx('table__column', 'table__column--expire-date'),\n            testSelector: 'valid-till',\n        },\n        {\n            renderHeader: () => <span>{t('common:carrier-contracts.table.columns.status')}</span>,\n            headerClassName: cx('table__header', 'table__header--status'),\n            render: (row: ContractRowT) => {\n                return <CarrierContractStatusPill isSymmetrical status={row.status || null} />;\n            },\n            className: cx('table__column', 'table__column--status'),\n            testSelector: 'status',\n        },\n        {\n            renderHeader: () => null,\n            headerClassName: cx('table__header', 'table__header--actions'),\n            render: (row: ContractRowT) => {\n                return (\n                    <ActionsCell\n                        row={row}\n                        onEditContractDetails={onEditContractDetails}\n                        onRevokeContract={onRevokeContract}\n                        onDownloadContract={onDownloadContract}\n                    />\n                );\n            },\n            className: cx('table__column', 'table__column--actions'),\n            testSelector: 'actions',\n        },\n    ];\n\n    const getRowMods = (meta: TableRowMetaT, row: ContractRowT) => {\n        return {\n            [TableRowModsEnum.hasLeftOrangeBorder]: row?.status && contactStatusesAttentionSet?.has(row.status),\n        };\n    };\n\n    const getRowTheme = (): TableRowThemeEnum => {\n        return TableRowThemeEnum.normal;\n    };\n\n    return (\n        <div className={cx('table')}>\n            <MemoizedTable<ContractRowT> tableName={tableName} isLoading={isLoading} rows={rows}>\n                {(rows, isUsedPrevRows) => (\n                    <DocumentsTable<ContractRowT, void>\n                        testSelector={testSelector}\n                        className={className}\n                        columns={columns}\n                        rows={rows}\n                        isLoading={isLoading}\n                        getRowMods={getRowMods}\n                        getRowTheme={getRowTheme}\n                        onSelectRow={onSelectRow}\n                        isUsedPrevRows={isUsedPrevRows}\n                        headerNode={headerNode}\n                        footerNode={footerNode}\n                    />\n                )}\n            </MemoizedTable>\n        </div>\n    );\n});\n\nexport default BaseCarrierContractsTable;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './AssetCell.scss';\nimport { useTranslation } from 'react-i18next';\nimport { SpotRequestT } from 'broker-admin/store/spot-requests/models';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { LinkSizeEnum, LinkThemeEnum, LinkToT } from 'common/components/Link/Link';\nimport TableCellLink from 'common/components/Table/cell-renderers/TableCellLink/TableCellLink';\n\ntype PropsT = {\n    spotRequest: SpotRequestT;\n    getPartnerLink: (partnerType: PartnerTypeEnum, partnerId: CompanyIdT) => LinkToT;\n};\n\nconst cx = classNames.bind(styles);\n\nconst AssetCell: React.FC<PropsT> = React.memo((props) => {\n    const { spotRequest, getPartnerLink } = props;\n\n    const { t } = useTranslation();\n\n    const trailerTypeModel = spotRequest.trailerTypeModel || null;\n\n    const carrierId = spotRequest.carrierId || null;\n\n    return (\n        <div>\n            {trailerTypeModel && <div className={cx('model')}>{trailerTypeModel}</div>}\n            {carrierId ? (\n                <TableCellLink\n                    to={getPartnerLink(PartnerTypeEnum.carrier, carrierId)}\n                    theme={LinkThemeEnum.boldBrandDark}\n                    size={LinkSizeEnum.medium}\n                >\n                    {spotRequest.carrierName}\n                </TableCellLink>\n            ) : (\n                <div className={cx('not-assigned')}>{t('spot-requests.list.table.not-assigned')}</div>\n            )}\n        </div>\n    );\n});\n\nexport default AssetCell;\n","import * as React from 'react';\nimport { BOOTSTRAP_URL_KEYS, DEFAULT_CENTER, DEFAULT_ZOOM } from 'common/store/constants';\nimport GoogleMapReact from 'google-map-react';\nimport useGoogleMapsApiLoader from 'common/utils/hooks/maps/useGoogleMapsApiLoader';\n\ntype PropsT = {};\n\nconst GoogleMapsLoaderWithoutMaps: React.FC<PropsT> = React.memo(() => {\n    const { onGoogleApiLoaded } = useGoogleMapsApiLoader({});\n\n    return (\n        <div style={{ height: '1px', width: '1px', visibility: 'hidden' }}>\n            <GoogleMapReact\n                defaultCenter={DEFAULT_CENTER}\n                defaultZoom={DEFAULT_ZOOM}\n                bootstrapURLKeys={BOOTSTRAP_URL_KEYS}\n                onGoogleApiLoaded={onGoogleApiLoaded}\n            />\n        </div>\n    );\n});\n\nexport { GoogleMapsLoaderWithoutMaps };\n","import * as React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { USER_ROLE_T_MAP } from 'common/utils/users';\nimport { RolesEnum } from 'common/utils/api/models';\n\ntype PropsT = {\n    className?: string;\n    role: string;\n};\n\nconst UNKNOWN_LABEL_COLOR = PillLabelThemeEnum.light;\n\nconst getPillLabelByRole = (role: string): PillLabelThemeEnum => {\n    if (role === RolesEnum.companyAdmin) {\n        return PillLabelThemeEnum.brandDark;\n    }\n\n    if (USER_ROLE_T_MAP[role as RolesEnum]) {\n        return PillLabelThemeEnum.charcoal;\n    }\n\n    return UNKNOWN_LABEL_COLOR;\n};\n\nconst UserRolePill: React.FC<PropsT> = React.memo((props) => {\n    const { role, className } = props;\n\n    const { t } = useTranslation();\n\n    const roleKey = USER_ROLE_T_MAP[role as RolesEnum];\n\n    return (\n        <PillLabel className={className} theme={getPillLabelByRole(role)} isSymmetrical>\n            {roleKey ? t(roleKey) : role}\n        </PillLabel>\n    );\n});\n\nexport default UserRolePill;\n","import React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport BigTrashIcon from 'common/icons/BigTrashIcon';\n\nexport type ArchiveDriverConfirmationDataT = {\n    companyId: CompanyIdT;\n    driverId: DriverIdT;\n    driverName: string | undefined;\n    driverSurname: string | undefined;\n};\n\ntype PropsT = {\n    data: ArchiveDriverConfirmationDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onConfirm: (data: ArchiveDriverConfirmationDataT) => void;\n    requestStatus: RequestStatusT;\n};\n\nconst TEST_SELECTOR = 'archive-driver';\n\nconst ArchiveDriverConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, onCancel, onClose, requestStatus, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    const fullName = [data.driverName, data.driverSurname].filter(Boolean).join(' ');\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            isDisabled: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            onClick: () => {\n                                onCancel();\n                            },\n                        },\n                        {\n                            children: t('common:error-modal.actions.archive'),\n                            theme: ButtonThemeEnum.danger,\n                            isDisabled: requestStatus.loading,\n                            isLoading: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigTrashIcon />}\n                    title={t('common:drivers-page.archive-confirmation.title', {\n                        fullName,\n                    })}\n                    message={t('common:drivers-page.archive-confirmation.description', {\n                        fullName,\n                    })}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default ArchiveDriverConfirmation;\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"PartnerFiltersSidebarContent__form___Wn9Mp\",\"selected-filters\":\"PartnerFiltersSidebarContent__selected-filters___qu0pC\",\"fadeIn\":\"PartnerFiltersSidebarContent__fadeIn___sPteZ\",\"blinking\":\"PartnerFiltersSidebarContent__blinking____9iT9\"};","import React from 'react';\n\nexport type ScrollBarWidthContextT = {\n    value: number;\n    setValue: (value: number) => void;\n};\n\nconst useScrollBarWidth = (): ScrollBarWidthContextT => {\n    const [value, setValue] = React.useState<number>(0);\n\n    return {\n        value,\n        setValue,\n    };\n};\n\nexport default useScrollBarWidth;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    attachPaperToShipment,\n    attachPaperToShipmentBegin,\n    attachPaperToShipmentSuccess,\n    attachPaperToShipmentError,\n    attachPaperToTour,\n    attachPaperToTourBegin,\n    attachPaperToTourSuccess,\n    attachPaperToTourError,\n    deleteAttachedPaper,\n    deleteAttachedPaperBegin,\n    deleteAttachedPaperSuccess,\n    deleteAttachedPaperError,\n} from './actions';\nimport { selectDeleteRequestStatus } from './selectors';\nimport { logWarning } from 'common/utils/logger';\nimport { CompanyTypeEnum } from 'common/constants';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport carrierTranziitApi from 'carrier/utils/api/carrier-tranziit/api';\nimport { ShipmentOptimisticAttachPaperT, TourOptimisticAttachPaperT } from './models';\nimport { v4 as uuidv4 } from 'uuid';\nimport { papersEditRefreshChannel } from './channels';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAlertTypeEnum, CommonAnyAlert } from 'common/components/toasts/AlertToastsManager/models';\nimport { parseResponseData } from './utils/parse-response-data';\n\nfunction getAttachPaperToShipmentSaga(companyType: CompanyTypeEnum) {\n    return function* (action: ReturnType<typeof attachPaperToShipment>): WrapGeneratorT<void> {\n        const { shipmentId, query, data } = action.payload;\n\n        if (!shipmentId) {\n            logWarning('empty shipmentId');\n            return;\n        }\n\n        const fakeId = uuidv4();\n        const formData = data as unknown as FormData;\n        const file = formData.get('file') as File | null;\n        const fileName = file?.name || 'unknown';\n        const optimisticPaper: ShipmentOptimisticAttachPaperT = {\n            fakeId,\n            afterAttachId: null,\n            fileName,\n            comment: query.comment,\n            paperType: query.paperType,\n        };\n\n        yield put(attachPaperToShipmentBegin({ shipmentId, optimisticPaper }));\n\n        let result: ReturnApiT<\n            typeof brokerTranziitApi.attachPaperToShipment | typeof carrierTranziitApi.attachPaperToShipment\n        >;\n        if (companyType === CompanyTypeEnum.carrier) {\n            result = yield carrierTranziitApi.attachPaperToShipment(shipmentId, query, data);\n        } else {\n            result = yield brokerTranziitApi.attachPaperToShipment(shipmentId, query, data);\n        }\n\n        const [error, responseData] = result;\n        const afterAttachId = parseResponseData(responseData);\n\n        if (error) {\n            yield put(attachPaperToShipmentError({ shipmentId, fakeId, error }));\n        } else {\n            yield put(attachPaperToShipmentSuccess({ shipmentId, fakeId, afterAttachId }));\n            yield put(\n                addAlert(\n                    new CommonAnyAlert({\n                        type: CommonAlertTypeEnum.paperAttached,\n                        data: {},\n                    }),\n                ),\n            );\n        }\n\n        papersEditRefreshChannel.emit({});\n    };\n}\n\nfunction getAttachPaperToTourSaga(companyType: CompanyTypeEnum) {\n    return function* (action: ReturnType<typeof attachPaperToTour>): WrapGeneratorT<void> {\n        const { tourId, query, data } = action.payload;\n\n        if (!tourId) {\n            logWarning('empty tourId');\n            return;\n        }\n\n        const fakeId = uuidv4();\n        const formData = data as unknown as FormData;\n        const file = formData.get('file') as File | null;\n        const fileName = file?.name || 'unknown';\n        const optimisticPaper: TourOptimisticAttachPaperT = {\n            fakeId,\n            afterAttachId: null,\n            fileName,\n            comment: query.comment,\n            paperType: query.paperType,\n        };\n\n        yield put(attachPaperToTourBegin({ tourId, optimisticPaper }));\n\n        let result: ReturnApiT<\n            typeof brokerTranziitApi.attachPaperToTour | typeof carrierTranziitApi.attachPaperToTour\n        >;\n        if (companyType === CompanyTypeEnum.carrier) {\n            result = yield carrierTranziitApi.attachPaperToTour(tourId, query, data);\n        } else {\n            result = yield brokerTranziitApi.attachPaperToTour(tourId, query, data);\n        }\n\n        const [error, responseData] = result;\n        const afterAttachId = parseResponseData(responseData);\n\n        if (error) {\n            yield put(attachPaperToTourError({ tourId, fakeId, error }));\n        } else {\n            yield put(attachPaperToTourSuccess({ tourId, fakeId, afterAttachId }));\n            yield put(\n                addAlert(\n                    new CommonAnyAlert({\n                        type: CommonAlertTypeEnum.paperAttached,\n                        data: {},\n                    }),\n                ),\n            );\n        }\n\n        papersEditRefreshChannel.emit({});\n    };\n}\n\nfunction getDeleteAttachedPaperSaga(companyType: CompanyTypeEnum) {\n    return function* (action: ReturnType<typeof deleteAttachedPaper>): WrapGeneratorT<void> {\n        const { paperId } = action.payload;\n\n        if (!paperId) {\n            logWarning('empty paperId');\n            return;\n        }\n\n        const requestStatus: ReReturnT<typeof selectDeleteRequestStatus> = yield select(\n            selectDeleteRequestStatus(paperId),\n        );\n        if (requestStatus.loading) {\n            return;\n        }\n\n        yield put(deleteAttachedPaperBegin({ paperId }));\n\n        let result: ReturnApiT<\n            typeof brokerTranziitApi.deleteAttachedPaper | typeof carrierTranziitApi.deleteAttachedPaper\n        >;\n        if (companyType === CompanyTypeEnum.carrier) {\n            result = yield carrierTranziitApi.deleteAttachedPaper(paperId);\n        } else {\n            result = yield brokerTranziitApi.deleteAttachedPaper(paperId);\n        }\n\n        const [error] = result;\n\n        if (error) {\n            yield put(deleteAttachedPaperError({ paperId, error }));\n        } else {\n            yield put(deleteAttachedPaperSuccess({ paperId }));\n            yield put(\n                addAlert(\n                    new CommonAnyAlert({\n                        type: CommonAlertTypeEnum.paperDeleted,\n                        data: {},\n                    }),\n                ),\n            );\n        }\n\n        papersEditRefreshChannel.emit({});\n    };\n}\n\nfunction* papersEditSaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery(attachPaperToShipment.type, getAttachPaperToShipmentSaga(companyType));\n    yield takeEvery(attachPaperToTour.type, getAttachPaperToTourSaga(companyType));\n    yield takeEvery(deleteAttachedPaper.type, getDeleteAttachedPaperSaga(companyType));\n}\n\nexport { papersEditSaga };\n","import { RulesStateT } from './types';\nimport { StateT } from 'broker-admin/store/models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { RuleDetailsT } from './models';\n\nexport const selectRulesPages = (state: StateT): RulesStateT['pages'] => state.priceSettings.rules.pages;\n\nexport const selectRulesQuery = (state: StateT): RulesStateT['query'] => state.priceSettings.rules.query;\n\nexport const selectRulesTotal = (state: StateT): RulesStateT['total'] => state.priceSettings.rules.total;\n\nexport const selectRulesByIds = (state: StateT): RulesStateT['byId'] => state.priceSettings.rules.byId;\n\nexport const selectUpdateRulesRequest = (state: StateT): RequestStatusT => state.priceSettings.rules.updateRequest;\n\nexport const selectCreateRuleRequest = (state: StateT): RequestStatusT => state.priceSettings.rules.creationRequest;\n\nexport const selectDeleteRulesRequest = (state: StateT): RequestStatusT => state.priceSettings.rules.deleteRequest;\n\nexport const selectFetchRuleDetailsRequest = (state: StateT): RequestStatusT =>\n    state.priceSettings.rules.fetchDetailsRequest;\n\nexport const selectPreviewRuleRequest = (state: StateT): RequestStatusT => state.priceSettings.rules.previewRequest;\n\nexport const selectPreviewRule = (state: StateT) => state.priceSettings.rules.preview;\n\nexport const selectRuleDetails =\n    (ruleId: RuleIdT | null) =>\n    (state: StateT): RuleDetailsT | null => {\n        if (ruleId === null) {\n            return null;\n        }\n\n        return state.priceSettings.rules.detailsById[ruleId];\n    };\n","import {\n    FIND_CARRIERS_REQUEST,\n    FIND_CARRIERS_REQUEST_BEGIN,\n    FIND_CARRIERS_REQUEST_ERROR,\n    FIND_CARRIERS_REQUEST_SUCCESS,\n    FindCarriersActionT,\n    FindCarriersBeginActionT,\n    FindCarriersErrorActionT,\n    FindCarriersSuccessActionT,\n    RESET,\n    ResetActionT,\n} from './types';\nimport { FindCarriersQueryT, PartnerT } from './models';\n\nexport const findCarriers = (query: FindCarriersQueryT): FindCarriersActionT => ({\n    type: FIND_CARRIERS_REQUEST,\n    query,\n});\n\nexport const findCarriersBegin = (query: FindCarriersQueryT): FindCarriersBeginActionT => ({\n    type: FIND_CARRIERS_REQUEST_BEGIN,\n    query,\n});\n\nexport const findCarriersSuccess = (partners: PartnerT[]): FindCarriersSuccessActionT => ({\n    type: FIND_CARRIERS_REQUEST_SUCCESS,\n    partners,\n});\n\nexport const findCarriersError = (error: Error): FindCarriersErrorActionT => ({\n    type: FIND_CARRIERS_REQUEST_ERROR,\n    error,\n});\n\nexport const reset = (): ResetActionT => ({\n    type: RESET,\n});\n","import classNames from 'classnames/bind';\nimport styles from './MapPin.scss';\nimport * as React from 'react';\nimport { CSSProperties } from 'react';\nimport cs from 'classnames';\n\nconst cx = classNames.bind(styles);\n\nexport enum MapPinThemeEnum {\n    slate = 'slate',\n    charcoal = 'charcoal',\n    gray = 'gray',\n    light = 'light',\n    brandDark = 'brand-dark',\n    blazeOrange = 'blaze-orange',\n    tomatoRed = 'tomato-red',\n}\n\nexport type MapPointPropsT = {\n    lat?: number | undefined;\n    lng?: number | undefined;\n    className?: string;\n    hasPaddings?: boolean;\n    withoutArrow?: boolean;\n    hasBorder?: boolean;\n    theme?: MapPinThemeEnum;\n    style?: CSSProperties;\n    children?: React.ReactNode;\n};\n\nconst MapPin: React.FC<MapPointPropsT> = React.memo((props) => {\n    const { hasPaddings, withoutArrow, hasBorder, theme, className, style, children } = props;\n\n    return (\n        <div\n            className={cs(\n                cx('map-tooltip', {\n                    'map-tooltip--hasPaddings': hasPaddings,\n                    'map-tooltip--hasArrow': !withoutArrow,\n                    'map-tooltip--hasBorder': hasBorder,\n                    [`map-tooltip--theme-${theme}`]: !!theme,\n                }),\n                className,\n            )}\n            style={style}\n        >\n            {children}\n        </div>\n    );\n});\n\nexport default MapPin;\n","import * as React from 'react';\nimport { ApiReadShipmentAttachedPapersUnavailableReasonT } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    reason: ApiReadShipmentAttachedPapersUnavailableReasonT | null;\n};\n\nexport const READ_SHIPMENT_ATTACHED_PAPERS_UNAVAILABLE_REASON_MAP_T: Record<\n    ApiReadShipmentAttachedPapersUnavailableReasonT,\n    string\n> = {\n    TYPE_IS_TRAILER: 'common:papers-card.read-attached-papers-unavailable-reason.TYPE_IS_TRAILER',\n    TO_CANCELLED: 'common:papers-card.read-attached-papers-unavailable-reason.TO_CANCELLED',\n};\n\nconst ReadShipmentAttachedPapersUnavailableReasonLabel: React.FC<PropsT> = React.memo((props) => {\n    const { reason } = props;\n    const { t } = useTranslation();\n\n    if (!reason) {\n        return null;\n    }\n\n    return <span>{t(READ_SHIPMENT_ATTACHED_PAPERS_UNAVAILABLE_REASON_MAP_T[reason])}</span>;\n});\n\nexport default ReadShipmentAttachedPapersUnavailableReasonLabel;\n","import * as React from 'react';\nimport PillLabel, { PillLabelPropsT, PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { ApiFuelOptionTypeT, FuelOptionTypeEnum } from 'common/constants';\nimport FuelOptionTypeLabel from 'common/components/FuelOptionTypeLabel/FuelOptionTypeLabel';\n\ntype PropsT = Omit<PillLabelPropsT, 'theme'> & {\n    fuelOption: ApiFuelOptionTypeT | null | undefined;\n};\n\nexport const PILL_THEME_BY_FUEL_OPTION_TYPE: Record<ApiFuelOptionTypeT, PillLabelThemeEnum> = {\n    [FuelOptionTypeEnum.hvo]: PillLabelThemeEnum.brandAccent,\n    [FuelOptionTypeEnum.diesel]: PillLabelThemeEnum.charcoal,\n    [FuelOptionTypeEnum.mixed]: PillLabelThemeEnum.slate,\n};\n\nconst FuelOptionTypePill: React.FC<PropsT> = React.memo((props) => {\n    const { fuelOption, ...restProps } = props;\n\n    if (!fuelOption) {\n        return null;\n    }\n\n    return (\n        <PillLabel isSymmetrical isNoWrap {...restProps} theme={PILL_THEME_BY_FUEL_OPTION_TYPE[fuelOption]}>\n            <FuelOptionTypeLabel fuelOption={fuelOption} />\n        </PillLabel>\n    );\n});\n\nexport default FuelOptionTypePill;\n","import { all, put, select, takeEvery } from 'redux-saga/effects';\nimport { FETCH_STATISTICS_REQUEST, FetchStatisticsRequestActionT } from './types';\nimport {\n    fetchDoneStatisticsBegin,\n    fetchDoneStatisticsError,\n    fetchDoneStatisticsSuccess,\n    fetchRejectStatisticsBegin,\n    fetchRejectStatisticsError,\n    fetchRejectStatisticsSuccess,\n    fetchStatisticsBegin,\n} from './actions';\nimport { selectStatisticsFetchQuery } from './selectors';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { checkIsSameQuery } from 'common/utils/pagination/utils';\nimport { FetchStatisticsQueryT } from 'broker-admin/store/statistics/models';\n\nfunction* fetchDoneStatisticsSaga(query: FetchStatisticsQueryT): WrapGeneratorT<void> {\n    yield put(fetchDoneStatisticsBegin(query));\n\n    const [error, statistic]: ReturnApiT<typeof brokerTranziitApi.getDoneStatistics> =\n        yield brokerTranziitApi.getDoneStatistics(query);\n    if (error) {\n        yield put(fetchDoneStatisticsError(query, error));\n    } else {\n        yield put(fetchDoneStatisticsSuccess(query, statistic));\n    }\n}\n\nfunction* fetchRejectStatisticsSaga(query: FetchStatisticsQueryT): WrapGeneratorT<void> {\n    yield put(fetchRejectStatisticsBegin(query));\n\n    const [error, statistic]: ReturnApiT<typeof brokerTranziitApi.getRejectStatistics> =\n        yield brokerTranziitApi.getRejectStatistics(query);\n    if (error) {\n        yield put(fetchRejectStatisticsError(query, error));\n    } else {\n        yield put(fetchRejectStatisticsSuccess(query, statistic));\n    }\n}\n\nfunction* fetchStatisticsSaga(action: FetchStatisticsRequestActionT): WrapGeneratorT<void> {\n    const { query, options } = action;\n\n    if (!query) {\n        return;\n    }\n\n    const prevQuery: ReturnType<typeof selectStatisticsFetchQuery> = yield select(selectStatisticsFetchQuery);\n    const isSameRequest = checkIsSameQuery(prevQuery, query);\n    if (isSameRequest && !options?.isForceUpdate) {\n        return;\n    }\n\n    yield put(fetchStatisticsBegin(query, options));\n\n    yield all([fetchDoneStatisticsSaga(query), fetchRejectStatisticsSaga(query)]);\n}\n\nfunction* statisticsSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_STATISTICS_REQUEST, fetchStatisticsSaga);\n}\n\nexport default statisticsSaga;\n","import * as React from 'react';\n\nimport AuthLayout from 'common/layouts/AuthLayout/AuthLayout';\nimport ContinueSignUpForm from './ContinueSignUpForm/ContinueSignUpForm';\n\nimport { QueryKeysEnum } from '../../constants';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectEmailVerificationRequestStatus } from 'common/store/auth/selectors';\nimport { FieldsEnum, FormValuesT } from './ContinueSignUpForm/constants';\n\nimport classNames from 'classnames/bind';\nimport styles from './ContinueSignUpPage.scss';\nimport { continueSignUp } from 'common/store/auth/actions';\n\nimport useQuery from 'common/utils/hooks/useQuery';\nimport { AuthErrorTypeEnum, checkIsAuthApiError } from 'common/utils/api/auth/errors/auth-api-error';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\n\nconst cx = classNames.bind(styles);\n\ntype QueryT = {\n    [QueryKeysEnum.email]: string;\n    [QueryKeysEnum.oobCode]: string;\n    [QueryKeysEnum.returnUrl]: string;\n};\n\ntype PropsT = {};\n\nconst ContinueSignUpPage: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n\n    const query = useQuery<QueryT>();\n\n    const requestStatus = useSelector(selectEmailVerificationRequestStatus);\n\n    const handleSubmit = (formValue: FormValuesT): void => {\n        const oobCode = query[QueryKeysEnum.oobCode] || null;\n        const email = query[QueryKeysEnum.email] || null;\n        const returnUrl = query[QueryKeysEnum.returnUrl] || null;\n\n        dispatch(\n            continueSignUp(\n                formValue[FieldsEnum.firstName],\n                formValue[FieldsEnum.lastName],\n                formValue[FieldsEnum.phone],\n                formValue[FieldsEnum.password],\n                oobCode,\n                email,\n                returnUrl,\n            ),\n        );\n    };\n\n    if (\n        checkIsAuthApiError(requestStatus.error) &&\n        requestStatus.error.type === AuthErrorTypeEnum.failEmailVerification\n    ) {\n        return (\n            <AuthLayout title={t('common:email-verification.error.title')} testSelector=\"confirm-email-page\">\n                <div className={cx('content')}>{t('common:email-verification.error.text')}</div>\n                <br />\n                <br />\n                <div className={cx('error')}>{requestStatus.error?.message}</div>\n            </AuthLayout>\n        );\n    }\n\n    return (\n        <>\n            <AuthLayout title={t('common:continue-sign-up.title')} testSelector=\"continue-sign-up-page\">\n                <PageTitle title={t('common:page-titles.continue-sign-up')} />\n                <ContinueSignUpForm onSubmit={handleSubmit} requestStatus={requestStatus} />\n            </AuthLayout>\n        </>\n    );\n});\n\nexport default ContinueSignUpPage;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './RulesTable.scss';\nimport { useTranslation } from 'react-i18next';\n// import StatusCell from './cell-renderers/StatusCell/StatusCell';\nimport Table, { TableColumnT, TableRowMetaT } from 'common/components/Table/Table';\nimport { RuleT } from 'broker-admin/store/price-settings/rules/models';\nimport CheckboxHeader from 'common/components/Table/header-renderers/CheckboxHeader/CheckboxHeader';\nimport CheckboxCell from 'common/components/Table/cell-renderers/CheckboxCell/CheckboxCell';\nimport { useSelector } from 'react-redux';\nimport { selectCountriesByCode } from 'common/store/countries-dict/selectors';\n// import UpdateCell from './cell-renderers/UpdateCell/UpdateCell';\nimport ValidPeriodCell from './cell-renderers/ValidPeriodCell/ValidPeriodCell';\nimport ControlsCell, { ActionsPropsT } from './cell-renderers/ControlsCell/ControlsCell';\nimport NameCell from './cell-renderers/NameCell/NameCell';\nimport LocationsCell from './cell-renderers/LocationsCell/LocationsCell';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\n// import RuleCell from './cell-renderers/RuleCell/RuleCell';\nimport MemoizedTable from 'common/components/Table/MemoizedTable/MemoizedTable';\nimport { CountryCodeT } from 'common/store/countries-dict/models';\nimport TypeCell from './cell-renderers/TypeCell/TypeCell';\nimport CreateUpdateCell from './cell-renderers/CreateUpdateCell/CreateUpdateCell';\nimport TargetCell from './cell-renderers/TargetCell/TargetCell';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    rules: Array<RuleT>;\n    isDisabled: boolean;\n    isLoading: boolean;\n    className?: string;\n    selectedRulesSet: Set<RuleT>;\n    onSelectRules: (selectedRulesSet: Set<RuleT>) => void;\n    onClickRow: (event: React.MouseEvent, rule: RuleT) => void;\n    onOpenUserDetails: (userId: UserIdT | null) => void;\n} & ActionsPropsT;\n\nconst RulesTable: React.FC<PropsT> = React.memo((props) => {\n    const {\n        rules,\n        className,\n        selectedRulesSet,\n        onSelectRules,\n        onActiveRule,\n        onDeactiveRule,\n        onDeleteRule,\n        onClickRow,\n        isDisabled,\n        isLoading,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const countryByCode = useSelector(selectCountriesByCode);\n\n    const columns: Array<TableColumnT<RuleT, void>> = [\n        {\n            renderHeader: () => (\n                <CheckboxHeader<RuleT> selectedRowsSet={selectedRulesSet} rows={rules} onChange={onSelectRules} />\n            ),\n            headerClassName: cx('table__header', 'table__header--checkbox'),\n            render: (rule: RuleT) => (\n                <CheckboxCell<RuleT> row={rule} selectedRowsSet={selectedRulesSet} onChange={onSelectRules} />\n            ),\n            className: cx('table__column', 'table__column--checkbox'),\n            testSelector: 'checkbox',\n        },\n        {\n            renderHeader: () => <span>{t('price-settings.rules.table.columns.name')}</span>,\n            headerClassName: cx('table__header', 'table__header--name'),\n            render: (rule: RuleT) => <NameCell rule={rule} />,\n            className: cx('table__column', 'table__column--name'),\n            testSelector: 'name',\n        },\n        {\n            renderHeader: () => <span>{t('price-settings.rules.table.columns.from')}</span>,\n            headerClassName: cx('table__header', 'table__header--locations'),\n            render: (rule: RuleT) => (\n                <LocationsCell\n                    countryCodes={(rule.countriesFrom as Array<CountryCodeT>) || []}\n                    countryByCode={countryByCode}\n                    zipCodes={rule.zipsFrom || []}\n                />\n            ),\n            className: cx('table__column', 'table__column--locations'),\n            testSelector: 'from-locations',\n        },\n        {\n            renderHeader: () => <span>{t('price-settings.rules.table.columns.to')}</span>,\n            headerClassName: cx('table__header', 'table__header--locations'),\n            render: (rule: RuleT) => (\n                <LocationsCell\n                    countryCodes={(rule.countriesTo as Array<CountryCodeT>) || []}\n                    countryByCode={countryByCode}\n                    zipCodes={rule.zipsTo || []}\n                />\n            ),\n            className: cx('table__column', 'table__column--locations'),\n            testSelector: 'to-locations',\n        },\n        // {\n        //     renderHeader: () => <span>{t('price-settings.rules.table.columns.target')}</span>,\n        //     headerClassName: cx('table__header', 'table__header--rule'),\n        //     render: (rule: RuleT) => <RuleCell rule={rule} />,\n        //     className: cx('table__column', 'table__column--rule'),\n        //     testSelector: 'rule',\n        // },\n        // {\n        //     renderHeader: () => <span>{t('price-settings.rules.table.columns.update')}</span>,\n        //     headerClassName: cx('table__header', 'table__header--update'),\n        //     render: (rule: RuleT) => <UpdateCell rule={rule} onOpenUserDetails={onOpenUserDetails} />,\n        //     className: cx('table__column', 'table__column--update'),\n        //     testSelector: 'update',\n        // },\n        // {\n        //     renderHeader: () => <span>{t('price-settings.rules.table.columns.status')}</span>,\n        //     headerClassName: cx('table__header', 'table__header--status'),\n        //     render: (rule: RuleT) => <StatusCell rule={rule} />,\n        //     className: cx('table__column', 'table__column--status'),\n        //     testSelector: 'status',\n        // },\n        {\n            renderHeader: () => <span>{t('price-settings.rules.table.columns.target')}</span>,\n            headerClassName: cx('table__header', 'table__header--target'),\n            render: (rule: RuleT) => <TargetCell rule={rule} />,\n            className: cx('table__column', 'table__column--target'),\n            testSelector: 'target',\n        },\n        {\n            renderHeader: () => <span>{t('price-settings.rules.table.columns.valid')}</span>,\n            headerClassName: cx('table__header', 'table__header--valid-period'),\n            render: (rule: RuleT) => <ValidPeriodCell rule={rule} />,\n            className: cx('table__column', 'table__column--valid-period'),\n            testSelector: 'valid-period',\n        },\n        {\n            renderHeader: () => <span>{t('price-settings.rules.table.columns.create-update-dates')}</span>,\n            headerClassName: cx('table__header', 'table__header--create-update-dates'),\n            render: (rule: RuleT) => <CreateUpdateCell rule={rule} />,\n            className: cx('table__column', 'table__column--create-update-dates'),\n            testSelector: 'create-update-dates',\n        },\n        {\n            renderHeader: () => <span>{t('price-settings.rules.table.columns.type')}</span>,\n            headerClassName: cx('table__header', 'table__header--type'),\n            render: (rule: RuleT) => <TypeCell rule={rule} />,\n            className: cx('table__column', 'table__column--type'),\n            testSelector: 'type',\n        },\n        {\n            renderHeader: () => null,\n            headerClassName: cx('table__header', 'table__header--controls'),\n            render: (rule: RuleT) => (\n                <ControlsCell\n                    id={String(rule.id)}\n                    isActive={!!rule.active}\n                    onActiveRule={onActiveRule}\n                    onDeactiveRule={onDeactiveRule}\n                    onDeleteRule={onDeleteRule}\n                />\n            ),\n            className: cx('table__column', 'table__column--controls'),\n            testSelector: 'controls',\n        },\n    ];\n\n    const getRowMods = (meta: TableRowMetaT) => ({\n        isSelected: meta.isSelected,\n    });\n\n    return (\n        <div className={cx('table')}>\n            <MemoizedTable<RuleT> tableName=\"rules\" isLoading={isLoading} rows={rules}>\n                {(rows, isUsedPrevRows) => (\n                    <Table<RuleT, void>\n                        className={className}\n                        selectedRowsSet={selectedRulesSet}\n                        columns={columns}\n                        rows={rows}\n                        getRowMods={getRowMods}\n                        onSelectRow={onClickRow}\n                        isLoading={isLoading}\n                        testSelector=\"rules\"\n                        isUsedPrevRows={isUsedPrevRows}\n                    />\n                )}\n            </MemoizedTable>\n            {isDisabled && <LoaderOverlay />}\n        </div>\n    );\n});\n\nexport default RulesTable;\n","import * as React from 'react';\nimport { useMemo, useState } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './BrokerTourRouteMap.scss';\nimport GoogleMapReact from 'google-map-react';\nimport { BOOTSTRAP_URL_KEYS, DEFAULT_CENTER, DEFAULT_ZOOM, MAP_OPTIONS } from 'common/store/constants';\nimport useGoogleMapsApiLoader from 'common/utils/hooks/maps/useGoogleMapsApiLoader';\nimport { useGoogleMapContext } from 'common/utils/hooks/maps/useGoogleMapContext';\nimport { useGoogleMapConfig } from 'common/utils/hooks/maps/useGoogleMapConfig';\nimport { StopTypeEnum } from 'common/utils/api/models';\nimport last from 'lodash/last';\nimport { AssetTypeEnum } from 'common/constants';\nimport MapRoute, { MapRouteThemeEnum } from 'common/components/maps/MapRoute/MapRoute';\nimport MapBound, { BoundPointT } from 'common/components/maps/MapBound/MapBound';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectRoutingGeometryStates } from 'common/store/routing-geometry/selectors';\nimport RouteSwitchDropdown, { RouteTypeEnum } from 'broker-admin/components/RouteSwitchDropdown/RouteSwitchDropdown';\nimport { useRouteGeometry } from 'common/utils/hooks/useRouteGeometry';\nimport { isNonNil } from 'common/utils';\nimport MapLoader from 'common/components/maps/MapLoader/MapLoader';\nimport { getAssetTrackHashByTransportOrderId } from 'common/store/asset-track/utils';\nimport { selectAssetTrackSliceState } from 'common/store/asset-track/selectors';\nimport AssetDropOffLocationPin from 'common/components/maps/pins/AssetDropOffLocationPin/AssetDropOffLocationPin';\nimport AssetPickUpLocationPin from 'common/components/maps/pins/AssetPickUpLocationPin/AssetPickUpLocationPin';\nimport { fetchTracksByTransportOrders } from 'common/store/asset-track/actions';\nimport { findTourActualTransportOrders } from 'broker-admin/store/broker-order-details/utils/find-actual-transport-order';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport Supercluster from 'supercluster';\nimport { PointGeoJsonPropertiesT } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderRouteMap/models';\nimport isNumber from 'lodash/isNumber';\nimport PointStackClusterPin from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderRouteMap/PointStackClusterPin/PointStackClusterPin';\nimport WaypointNumberPin from 'common/components/maps/pins/WaypointNumberPin/WaypointNumberPin';\nimport { MapPinThemeEnum } from 'common/components/maps/MapPin/MapPin';\nimport uniq from 'lodash/uniq';\nimport { TrackPointT } from 'common/store/asset-track/models';\nimport LastAssetWithNumberTrackPointPin from 'common/components/maps/pins/LastAssetWithNumberTrackPointPin/LastAssetWithNumberTrackPointPin';\nimport FerryLocationPin from 'common/components/maps/pins/FerryLocationPin/FerryLocationPin';\nimport { BrokerTourDetailsT } from 'broker-admin/store/broker-tour-details/models';\nimport { ApiBrokerTourEnum, ApiBrokerTourTypeT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { SwitchableView } from 'common/components/SwitchableView/SwitchableView';\nimport { MapControlsLayout } from 'common/components/maps/MapControlsLayout/MapControlsLayout';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    brokerTourDetails: BrokerTourDetailsT | null;\n};\n\nconst FEATURES_LIMIT = 99999;\nconst DEFAULT_OFFSET = 0;\n\nconst SUPERCLUSTER_SETTINGS: Supercluster.Options<PointGeoJsonPropertiesT, any> = {\n    radius: 100,\n    maxZoom: 22,\n};\n\ntype LastTruckTrackPointT = {\n    truckId: TruckIdT;\n    truckNumber: number;\n    lastPoint: TrackPointT;\n};\n\ntype LastTrailerTrackPointT = {\n    trailerId: TrailerIdT;\n    trailerNumber: number;\n    lastPoint: TrackPointT;\n};\n\nconst withEstimateCarrierTypeSet = new Set<ApiBrokerTourTypeT>([ApiBrokerTourEnum.shipment]);\n\nconst BrokerTourRouteMap: React.FC<PropsT> = React.memo((props) => {\n    const { brokerTourDetails } = props;\n\n    const dispatch = useDispatch();\n\n    const tourAssets = useMemo(() => {\n        const tourIndex = 0;\n        const { trailerTransportOrder, truckTransportOrder } = findTourActualTransportOrders(\n            brokerTourDetails?.transportationOrders,\n            brokerTourDetails?.id,\n        );\n\n        const trailerTransportOrderId = trailerTransportOrder?.id || null;\n        const truckTransportOrderId = truckTransportOrder?.id || null;\n\n        return [\n            {\n                trailerId: trailerTransportOrder?.trailer?.id || null,\n                trailerTransportOrderId,\n                trailerNumber: tourIndex + 1,\n                trailer: trailerTransportOrder?.trailer || null,\n\n                truckId: truckTransportOrder?.truck?.id || null,\n                truckTransportOrderId,\n                truckNumber: tourIndex + 1,\n                truck: truckTransportOrder?.truck || null,\n\n                isLinked:\n                    !!trailerTransportOrderId &&\n                    !!truckTransportOrderId &&\n                    trailerTransportOrderId === truckTransportOrderId,\n            },\n        ];\n    }, [brokerTourDetails]);\n\n    const trackTransportOrderIds = useMemo(() => {\n        const transportOrderIds: Array<TransportOrderIdT | null> = [];\n\n        tourAssets.forEach((tourAsset) => {\n            transportOrderIds.push(tourAsset.truckTransportOrderId);\n            transportOrderIds.push(tourAsset.trailerTransportOrderId);\n        });\n\n        return uniq(transportOrderIds).filter(isNonNil);\n    }, [tourAssets]);\n\n    React.useEffect(() => {\n        dispatch(fetchTracksByTransportOrders(trackTransportOrderIds));\n    }, [trackTransportOrderIds, dispatch]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        dispatch(fetchTracksByTransportOrders(trackTransportOrderIds));\n    }, [trackTransportOrderIds, dispatch]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const assetTrackSliceState = useSelector(selectAssetTrackSliceState);\n    const tourAssetTracks = useMemo(() => {\n        return tourAssets.map((tourAssets) => {\n            const { truckTransportOrderId, truckId, trailerTransportOrderId, trailerId } = tourAssets;\n\n            const trailerHash = getAssetTrackHashByTransportOrderId(truckTransportOrderId, trailerId);\n            const truckHash = getAssetTrackHashByTransportOrderId(trailerTransportOrderId, truckId);\n\n            return {\n                trailer: assetTrackSliceState[trailerHash] || null,\n                truck: assetTrackSliceState[truckHash] || null,\n            };\n        });\n    }, [tourAssets, assetTrackSliceState]);\n\n    const hasCarrierRoute = React.useMemo(() => {\n        return tourAssets.some((tourAssets) => {\n            return !!tourAssets?.trailerTransportOrderId || !!tourAssets?.truckTransportOrderId;\n        });\n    }, [tourAssets]);\n\n    const availableRouteTypeSet = React.useMemo(() => {\n        const result = new Set<RouteTypeEnum>([]);\n\n        if (brokerTourDetails?.type && withEstimateCarrierTypeSet.has(brokerTourDetails.type)) {\n            result.add(RouteTypeEnum.estimateCarrierRoute);\n        }\n\n        if (\n            (hasCarrierRoute && brokerTourDetails?.type === ApiBrokerTourEnum.shipment) ||\n            brokerTourDetails?.type === ApiBrokerTourEnum.deadhead\n        ) {\n            result.add(RouteTypeEnum.carrierRoute);\n        }\n        return result;\n    }, [brokerTourDetails, hasCarrierRoute]);\n\n    const defaultRouteType = React.useMemo(() => {\n        if (availableRouteTypeSet.has(RouteTypeEnum.carrierRoute)) {\n            return RouteTypeEnum.carrierRoute;\n        }\n        if (availableRouteTypeSet.has(RouteTypeEnum.estimateCarrierRoute)) {\n            return RouteTypeEnum.estimateCarrierRoute;\n        }\n        return null;\n    }, [availableRouteTypeSet]);\n\n    const [selectedRouteType, setSelectedRouteType] = useState<RouteTypeEnum | null>(null);\n    const routeType = selectedRouteType || defaultRouteType;\n\n    React.useEffect(() => {\n        if (selectedRouteType && !availableRouteTypeSet.has(selectedRouteType)) {\n            setSelectedRouteType(null);\n        }\n    }, [selectedRouteType, availableRouteTypeSet]);\n\n    const { googleMaps } = useGoogleMapContext();\n    const { onGoogleApiLoaded } = useGoogleMapsApiLoader({});\n    const { config, onZoomAnimationEnd, onDragEnd } = useGoogleMapConfig();\n\n    const routePolylineIds = useMemo((): Array<PolylineIdT> => {\n        switch (routeType) {\n            case RouteTypeEnum.carrierRoute: {\n                return [\n                    brokerTourDetails?.polylineId,\n                    brokerTourDetails?.trailerToPickUpPolylineId,\n                    brokerTourDetails?.truckToTrailerPolylineId,\n                    brokerTourDetails?.dropTrailerPolylineId,\n                    brokerTourDetails?.dropTruckPolylineId,\n                ].filter(isNonNil);\n            }\n            case RouteTypeEnum.estimateCarrierRoute: {\n                return [brokerTourDetails?.polylineId].filter(isNonNil);\n            }\n            default: {\n                return [];\n            }\n        }\n    }, [brokerTourDetails, routeType]);\n\n    useRouteGeometry(routePolylineIds);\n\n    const geometryStates = useSelector(selectRoutingGeometryStates(routePolylineIds));\n\n    const isLoadingPolylines = useMemo(() => {\n        return geometryStates.some((geometryState) => {\n            return geometryState?.requestStatus && geometryState?.requestStatus?.loading;\n        });\n    }, [geometryStates]);\n\n    const boundMapPoints = React.useMemo((): Array<BoundPointT> => {\n        return (\n            brokerTourDetails?.waypoints?.map((waypoint): BoundPointT => {\n                return [waypoint?.address?.latitude, waypoint?.address?.longitude];\n            }) || []\n        );\n    }, [brokerTourDetails]);\n\n    const isLoadingSomeTrucks = useMemo(() => {\n        return tourAssetTracks?.some((state) => {\n            return state?.truck?.requestStatus?.loading || state?.trailer?.requestStatus?.loading;\n        });\n    }, [tourAssetTracks]);\n    const isLoading = isLoadingPolylines || isLoadingSomeTrucks;\n\n    const lastTruckTrackPoints = useMemo(() => {\n        return tourAssets.reduce<Array<LastTruckTrackPointT>>((acc, tourAssets, index) => {\n            const { truckId, truckNumber } = tourAssets;\n\n            const tracks = tourAssetTracks[index];\n\n            const lastPoint = last(tracks?.truck?.points);\n            if (truckId && lastPoint) {\n                acc.push({\n                    truckId,\n                    truckNumber,\n                    lastPoint,\n                });\n            }\n\n            return acc;\n        }, []);\n    }, [tourAssetTracks, tourAssets]);\n\n    const lastTrailerTrackPoints = useMemo(() => {\n        return tourAssets.reduce<Array<LastTrailerTrackPointT>>((acc, tourAssets, index) => {\n            const { trailerId, trailerNumber, isLinked } = tourAssets;\n\n            // not show last point of linked trailer\n            if (isLinked) {\n                return acc;\n            }\n\n            const tracks = tourAssetTracks[index];\n\n            const lastPoint = last(tracks?.trailer?.points);\n            if (trailerId && lastPoint) {\n                acc.push({\n                    trailerId,\n                    trailerNumber,\n                    lastPoint,\n                });\n            }\n\n            return acc;\n        }, []);\n    }, [tourAssetTracks, tourAssets]);\n\n    const allGeoJSONs = React.useMemo(() => {\n        const geoJSONs: Array<Supercluster.PointFeature<PointGeoJsonPropertiesT>> = [];\n\n        brokerTourDetails?.waypoints?.forEach((waypoint) => {\n            if (\n                (waypoint.type === StopTypeEnum.pickupTruck ||\n                    waypoint.type === StopTypeEnum.pickupTrailer ||\n                    waypoint.type === StopTypeEnum.pickupRoadTrain ||\n                    waypoint.type === StopTypeEnum.dropTruck ||\n                    waypoint.type === StopTypeEnum.dropTrailer ||\n                    waypoint.type === StopTypeEnum.dropRoadTrain) &&\n                routeType !== RouteTypeEnum.carrierRoute\n            ) {\n                return;\n            }\n\n            const longitude = waypoint?.address?.longitude;\n            const latitude = waypoint?.address?.latitude;\n            if (isNumber(latitude) && isNumber(longitude)) {\n                const geoJson: Supercluster.PointFeature<PointGeoJsonPropertiesT> = {\n                    type: 'Feature',\n                    geometry: {\n                        type: 'Point',\n                        coordinates: [longitude, latitude],\n                    },\n                    properties: {\n                        type: 'waypoint-point',\n                        waypoint,\n                        tourNumber: null,\n                    },\n                };\n\n                geoJSONs.push(geoJson);\n            }\n        });\n\n        lastTruckTrackPoints.forEach((lastTruckTrackPoint) => {\n            const { truckId, lastPoint } = lastTruckTrackPoint;\n\n            geoJSONs.push({\n                type: 'Feature',\n                geometry: {\n                    type: 'Point',\n                    coordinates: [lastPoint.lng, lastPoint.lat],\n                },\n                properties: {\n                    type: 'truck-last-point',\n                    point: lastPoint,\n                    truckId,\n                    truckNumber: null,\n                },\n            });\n        });\n\n        lastTrailerTrackPoints.forEach((lastTrailerTrackPoint) => {\n            const { trailerId, lastPoint } = lastTrailerTrackPoint;\n\n            geoJSONs.push({\n                type: 'Feature',\n                geometry: {\n                    type: 'Point',\n                    coordinates: [lastPoint.lng, lastPoint.lat],\n                },\n                properties: {\n                    type: 'trailer-last-point',\n                    point: lastPoint,\n                    trailerId,\n                    trailerNumber: null,\n                },\n            });\n        });\n\n        return geoJSONs;\n    }, [brokerTourDetails, lastTruckTrackPoints, lastTrailerTrackPoints, routeType]);\n\n    const allGeoJSONsClusterator = React.useMemo(() => {\n        const clusterator = new Supercluster<PointGeoJsonPropertiesT>(SUPERCLUSTER_SETTINGS);\n        clusterator.load(allGeoJSONs || []);\n        return clusterator;\n    }, [allGeoJSONs]);\n\n    const allGeoJSONsClusters = React.useMemo(() => {\n        if (config) {\n            const clusters = allGeoJSONsClusterator.getClusters(config.bounds, config.zoom);\n            return clusters;\n        }\n\n        return [];\n    }, [config, allGeoJSONsClusterator]);\n\n    const renderSinglePointFeature = (properties: PointGeoJsonPropertiesT) => {\n        switch (properties.type) {\n            case 'trailer-last-point': {\n                return (\n                    <LastAssetWithNumberTrackPointPin\n                        key={`trailer-last-point-${properties.trailerNumber}`}\n                        iconType={AssetTypeEnum.trailer}\n                        lat={properties.point.lat}\n                        lng={properties.point.lng}\n                        timestamp={properties.point.timestamp}\n                        number={properties.trailerNumber}\n                    />\n                );\n            }\n            case 'truck-last-point': {\n                return (\n                    <LastAssetWithNumberTrackPointPin\n                        key={`truck-last-point-${properties.truckNumber}`}\n                        iconType={AssetTypeEnum.truck}\n                        lat={properties.point.lat}\n                        lng={properties.point.lng}\n                        timestamp={properties.point.timestamp}\n                        number={properties.truckNumber}\n                    />\n                );\n            }\n            case 'waypoint-point': {\n                const { waypoint, tourNumber } = properties;\n\n                switch (waypoint.type) {\n                    case StopTypeEnum.pickupTruck: {\n                        const isVisited = !!waypoint?.driverLeftTimeStamp;\n\n                        return (\n                            <AssetPickUpLocationPin\n                                assetType={AssetTypeEnum.truck}\n                                key={`pickupTruck-${waypoint.id}`}\n                                className={cx('route-point-pin')}\n                                lat={waypoint.address?.latitude}\n                                lng={waypoint.address?.longitude}\n                                number={tourNumber}\n                                theme={isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal}\n                            />\n                        );\n                    }\n                    case StopTypeEnum.pickupTrailer: {\n                        const isVisited = !!waypoint?.driverLeftTimeStamp;\n\n                        return (\n                            <AssetPickUpLocationPin\n                                assetType={AssetTypeEnum.trailer}\n                                key={`pickupTrailer-${waypoint.id}`}\n                                className={cx('route-point-pin')}\n                                lat={waypoint.address?.latitude}\n                                lng={waypoint.address?.longitude}\n                                number={tourNumber}\n                                theme={isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal}\n                            />\n                        );\n                    }\n                    case StopTypeEnum.pickupRoadTrain: {\n                        const isVisited = !!waypoint?.driverLeftTimeStamp;\n\n                        return (\n                            <AssetPickUpLocationPin\n                                assetType={null}\n                                key={`pickupRoadTrain-${waypoint.id}`}\n                                className={cx('route-point-pin')}\n                                lat={waypoint.address?.latitude}\n                                lng={waypoint.address?.longitude}\n                                number={tourNumber}\n                                theme={isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal}\n                            />\n                        );\n                    }\n                    case StopTypeEnum.ferryOnboard:\n                    case StopTypeEnum.ferryDisembark: {\n                        const isVisited = !!waypoint?.driverLeftTimeStamp;\n\n                        return (\n                            <FerryLocationPin\n                                key={`route-point-${waypoint.id}`}\n                                className={cx('route-point-pin')}\n                                lng={waypoint?.address?.longitude}\n                                lat={waypoint?.address?.latitude}\n                                theme={isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal}\n                            />\n                        );\n                    }\n                    case StopTypeEnum.driveThrough:\n                    case StopTypeEnum.dropAndHook:\n                    case StopTypeEnum.pickupDeliveryShipment: {\n                        let theme = MapPinThemeEnum.charcoal;\n                        if (waypoint.type === StopTypeEnum.driveThrough) {\n                            theme = MapPinThemeEnum.gray;\n                        }\n\n                        const isVisited = !!waypoint?.driverLeftTimeStamp;\n                        if (isVisited) {\n                            theme = MapPinThemeEnum.brandDark;\n                        }\n\n                        return (\n                            <WaypointNumberPin\n                                key={`route-point-${waypoint.id}`}\n                                className={cx('route-point-pin')}\n                                theme={theme}\n                                lng={waypoint?.address?.longitude}\n                                lat={waypoint?.address?.latitude}\n                            >\n                                {(waypoint.index || 0) + 1}\n                            </WaypointNumberPin>\n                        );\n                    }\n                    case StopTypeEnum.dropTrailer: {\n                        const isVisited = !!waypoint?.driverLeftTimeStamp;\n\n                        return (\n                            <AssetDropOffLocationPin\n                                assetType={AssetTypeEnum.trailer}\n                                key={`dropTrailer-${waypoint.id}`}\n                                className={cx('route-point-pin')}\n                                lng={waypoint?.address?.longitude}\n                                lat={waypoint?.address?.latitude}\n                                number={tourNumber}\n                                theme={isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal}\n                            />\n                        );\n                    }\n                    case StopTypeEnum.dropTruck: {\n                        const isVisited = !!waypoint?.driverLeftTimeStamp;\n\n                        return (\n                            <AssetDropOffLocationPin\n                                assetType={AssetTypeEnum.truck}\n                                key={`dropTruckStop-${waypoint.id}`}\n                                className={cx('route-point-pin')}\n                                lng={waypoint?.address?.longitude}\n                                lat={waypoint?.address?.latitude}\n                                number={tourNumber}\n                                theme={isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal}\n                            />\n                        );\n                    }\n                    case StopTypeEnum.dropRoadTrain: {\n                        const isVisited = !!waypoint?.driverLeftTimeStamp;\n\n                        return (\n                            <AssetDropOffLocationPin\n                                assetType={null}\n                                key={`link-dropoff-${waypoint.id}`}\n                                className={cx('route-point-pin')}\n                                lng={waypoint?.address?.longitude}\n                                lat={waypoint?.address?.latitude}\n                                number={tourNumber}\n                                theme={isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal}\n                            />\n                        );\n                    }\n                    default: {\n                        return null;\n                    }\n                }\n            }\n            default: {\n                return null;\n            }\n        }\n    };\n\n    const handleClusterClick = React.useCallback(\n        (clusterId: number) => {\n            const { map, maps } = googleMaps;\n\n            if (!maps || !map) {\n                return;\n            }\n\n            const clusterFeatures = allGeoJSONsClusterator.getLeaves(clusterId, FEATURES_LIMIT, DEFAULT_OFFSET);\n\n            const bounds = new maps.LatLngBounds();\n\n            clusterFeatures.forEach((feature: Supercluster.PointFeature<{}>) => {\n                const point = new maps.LatLng(feature.geometry.coordinates[1], feature.geometry.coordinates[0]);\n\n                bounds.extend(point);\n            });\n\n            map.fitBounds(bounds);\n        },\n        [googleMaps, allGeoJSONsClusterator],\n    );\n\n    return (\n        <>\n            <GoogleMapReact\n                defaultCenter={DEFAULT_CENTER}\n                defaultZoom={DEFAULT_ZOOM}\n                bootstrapURLKeys={BOOTSTRAP_URL_KEYS}\n                options={MAP_OPTIONS}\n                onGoogleApiLoaded={onGoogleApiLoaded}\n                onDragEnd={onDragEnd}\n                onZoomAnimationEnd={onZoomAnimationEnd}\n                yesIWantToUseGoogleMapApiInternals\n            >\n                {allGeoJSONsClusters.map((cluster) => {\n                    if ('cluster' in cluster.properties) {\n                        const pointsFeatures = allGeoJSONsClusterator.getLeaves(\n                            cluster.properties.cluster_id,\n                            FEATURES_LIMIT,\n                            DEFAULT_OFFSET,\n                        );\n\n                        const clusterProperties = pointsFeatures.map((pointFeatures) => {\n                            return pointFeatures.properties;\n                        });\n\n                        return (\n                            <PointStackClusterPin\n                                key={`cluster-${cluster.properties.cluster_id}`}\n                                clusterId={cluster.properties.cluster_id}\n                                lng={cluster.geometry.coordinates[0]}\n                                lat={cluster.geometry.coordinates[1]}\n                                clusterProperties={clusterProperties}\n                                onClusterClick={handleClusterClick}\n                                withoutArrow={Boolean(config && config.zoom < 20)}\n                            />\n                        );\n                    }\n\n                    return renderSinglePointFeature(cluster.properties as PointGeoJsonPropertiesT);\n                })}\n            </GoogleMapReact>\n            {geometryStates?.map((geometryState, index) => (\n                <MapRoute\n                    key={`geometry-${index}`}\n                    map={googleMaps?.map}\n                    maps={googleMaps?.maps}\n                    geometryLibrary={googleMaps?.libraries?.geometry}\n                    polylines={geometryState.data}\n                    theme={MapRouteThemeEnum.trackFuture}\n                    zIndex={0}\n                />\n            ))}\n            {tourAssetTracks.map((tourAssetTracks, index) => {\n                const assets = tourAssets[index];\n                const { trailer, truck } = tourAssetTracks;\n\n                return (\n                    <>\n                        {!!truck?.points && (\n                            <MapRoute\n                                map={googleMaps?.map}\n                                maps={googleMaps?.maps}\n                                route={truck.points}\n                                theme={MapRouteThemeEnum.trackPast}\n                                zIndex={1}\n                            />\n                        )}\n                        {!assets?.isLinked && !!trailer?.points && (\n                            <MapRoute\n                                map={googleMaps?.map}\n                                maps={googleMaps?.maps}\n                                route={trailer.points}\n                                theme={MapRouteThemeEnum.trackPast}\n                                zIndex={1}\n                            />\n                        )}\n                    </>\n                );\n            })}\n            <MapBound map={googleMaps?.map} maps={googleMaps?.maps} allMapPoints={boundMapPoints} />\n            <MapControlsLayout.Container gap={2}>\n                <MapControlsLayout.Row gap={2}>\n                    <SwitchableView.MapTrigger />\n                    {!!routePolylineIds?.length && (\n                        <RouteSwitchDropdown\n                            className={cx('route-type-switcher')}\n                            value={routeType}\n                            onChange={setSelectedRouteType}\n                            isDisabledEstimateCarrierRoute={\n                                !availableRouteTypeSet.has(RouteTypeEnum.estimateCarrierRoute)\n                            }\n                            isDisabledShipperRoute={!availableRouteTypeSet.has(RouteTypeEnum.shipperRoute)}\n                            isDisabledCarrierRoute={!availableRouteTypeSet.has(RouteTypeEnum.carrierRoute)}\n                        />\n                    )}\n                </MapControlsLayout.Row>\n                <MapControlsLayout.Row isCenter>{isLoading && <MapLoader isUnWrap />}</MapControlsLayout.Row>\n            </MapControlsLayout.Container>\n        </>\n    );\n});\n\nexport default BrokerTourRouteMap;\n","import { TransportOrderQuickFilterEnum, TransportOrderTypeEnum } from 'common/utils/api/models';\n\nexport enum QueryFiltersKeysEnum {\n    dictTrailerId = 'dictTrailerId',\n    maxPrice = 'maxPrice',\n    minPrice = 'minPrice',\n    orderType = 'orderType',\n    plateNumber = 'plateNumber',\n    destinationAddress = 'destinationAddress',\n    originAddress = 'originAddress',\n    driverId = 'driverId',\n    driverName = 'driverName',\n    receiveDatesFrom = 'receiveDatesFrom',\n    receiveDatesTo = 'receiveDatesTo',\n    pickupDateFrom = 'pickupDateFrom',\n    pickupDateTo = 'pickupDateTo',\n    dropOffDateFrom = 'dropOffDateFrom',\n    dropOffDateTo = 'dropOffDateTo',\n    searchText = 'searchText',\n    quickFilter = 'quickFilter',\n\n    spot = 'spot',\n    dedicated = 'dedicated',\n\n    runningOutOfTimeToAssignDriver = 'running-out-of-time-to-assign-driver',\n    ranOutOfTimeToAssignDriver = 'ran-out-of-time-to-assign-driver',\n    runningOutOfTimeToAssignAssets = 'running-out-of-time-to-assign-assets',\n    ranOutOfTimeToAssignAssets = 'ran-out-of-time-to-assign-assets',\n    expired = 'expired',\n    missed = 'missed',\n    delaying = 'delaying',\n}\n\nexport type QueryFiltersT = Partial<{\n    [QueryFiltersKeysEnum.dictTrailerId]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.maxPrice]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.minPrice]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.orderType]: TransportOrderTypeEnum;\n    [QueryFiltersKeysEnum.plateNumber]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.destinationAddress]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.originAddress]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.driverId]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.driverName]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.receiveDatesFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.receiveDatesTo]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.pickupDateFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.pickupDateTo]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.dropOffDateFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.dropOffDateTo]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.searchText]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.quickFilter]: TransportOrderQuickFilterEnum;\n    [QueryFiltersKeysEnum.spot]: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.dedicated]: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.runningOutOfTimeToAssignAssets]: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.ranOutOfTimeToAssignAssets]: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.runningOutOfTimeToAssignDriver]: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.ranOutOfTimeToAssignDriver]: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.delaying]: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.expired]: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.missed]: QueryParam.BooleanT;\n}>;\n\nexport enum QueryKeysEnum {\n    transportOrdersPage = 'transport-orders-page',\n    transportOrdersSort = 'transport-orders-sort',\n    transportOrdersFilters = 'transport-orders-filters',\n}\n","import * as React from 'react';\nimport { useFormik } from 'formik';\nimport AuthLayout from 'common/layouts/AuthLayout/AuthLayout';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\nimport { StyleGuideColorsEnum } from '../../constants';\n\nimport styles from './ForgotPasswordPage.scss';\nimport classNames from 'classnames/bind';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectResetPasswordRequestStatus } from 'common/store/auth/selectors';\nimport { resetPassword } from 'common/store/auth/actions';\nimport validateForm from './validate-form';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport Input from 'common/components/Input/Input';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport DoneIcon from 'common/icons/DoneIcon';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport useAsyncFormErrors from 'common/utils/hooks/useAsyncFormErrors';\nimport asyncValidate from './async-validations';\nimport useAsyncFormErrorMessage from 'common/utils/hooks/useAsyncFormErrorMessage';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport { simpleStringFormatter } from 'common/utils/form-formatters';\nimport RedirectSignedUser from 'common/components/RedirectSignedUser/RedirectSignedUser';\nimport { authApi } from 'common/utils/api/auth/factory';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst INITIAL_VALUES: FormValuesT = { [FieldsEnum.email]: '' };\n\nconst ForgotPassword: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n    const requestStatus = useSelector(selectResetPasswordRequestStatus);\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const initialErrors = React.useMemo(() => {\n        return validateForm(t, INITIAL_VALUES);\n    }, [t]);\n\n    const formik = useFormik<FormValuesT>({\n        validateOnBlur: false,\n        initialErrors,\n        initialValues: INITIAL_VALUES,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const email = simpleStringFormatter(values[FieldsEnum.email]);\n            dispatch(resetPassword(email));\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const asyncErrors = React.useMemo(() => {\n        return asyncValidate(requestStatus);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [requestStatus.error]);\n\n    const { asyncFormErrors, resetAsyncFormErrors } = useAsyncFormErrors(asyncErrors);\n\n    const emailAsyncError = useAsyncFormErrorMessage(asyncFormErrors[FieldsEnum.email]);\n\n    if (requestStatus.ok) {\n        return (\n            <AuthLayout title={t('common:forgot-password.success')} testSelector=\"forgot-password-page\">\n                <div className={cx('result')}>\n                    <div className={cx('result__done')}>\n                        <DoneIcon fillColor={StyleGuideColorsEnum.white} size={40} />\n                    </div>\n                </div>\n            </AuthLayout>\n        );\n    }\n\n    return (\n        <>\n            <RedirectSignedUser />\n            <AuthLayout title={t('common:forgot-password.title')} testSelector=\"forgot-password-page\">\n                <PageTitle title={t('common:page-titles.forgot-password')} />\n                <form onSubmit={formik.handleSubmit}>\n                    <div className={cx('fields')}>\n                        <div className={cx('input')}>\n                            <FormikField\n                                name={FieldsEnum.email}\n                                error={formik.errors[FieldsEnum.email]}\n                                meta={formik.getFieldMeta(FieldsEnum.email)}\n                                label={t('common:forgot-password.fields.email.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                                asyncError={emailAsyncError}\n                                resetAsyncError={resetAsyncFormErrors}\n                            >\n                                {(props) => (\n                                    <Input\n                                        name={FieldsEnum.email}\n                                        placeholder={t('common:forgot-password.fields.email.placeholder')}\n                                        value={formik.values[FieldsEnum.email]}\n                                        onChange={props.onChange}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                    />\n                                )}\n                            </FormikField>\n                        </div>\n                    </div>\n                    <Button\n                        theme={ButtonThemeEnum.primary}\n                        isLoading={requestStatus.loading}\n                        type=\"submit\"\n                        className={cx('submit')}\n                    >\n                        {t('common:forgot-password.submit')}\n                    </Button>\n                    <div className={cx('footer-links')}>\n                        <Link theme={LinkThemeEnum.boldAzul} testSelector=\"sign-in\" to={authApi.createSignInUrl()}>\n                            {t('common:forgot-password.links.sign-in')}\n                        </Link>\n                    </div>\n                </form>\n            </AuthLayout>\n        </>\n    );\n});\n\nexport default ForgotPassword;\n","import {\n    CREATE_RULE_REQUEST_BEGIN,\n    CREATE_RULE_REQUEST_ERROR,\n    CREATE_RULE_REQUEST_RESET,\n    CREATE_RULE_REQUEST_SUCCESS,\n    DELETE_RULES_REQUEST_BEGIN,\n    DELETE_RULES_REQUEST_ERROR,\n    DELETE_RULES_REQUEST_SUCCESS,\n    PREVIEW_RULE_REQUEST_BEGIN,\n    PREVIEW_RULE_REQUEST_ERROR,\n    PREVIEW_RULE_REQUEST_SUCCESS,\n    FETCH_RULE_DETAILS_REQUEST_BEGIN,\n    FETCH_RULE_DETAILS_REQUEST_ERROR,\n    FETCH_RULE_DETAILS_REQUEST_SUCCESS,\n    FETCH_RULES_PAGE_REQUEST_BEGIN,\n    FETCH_RULES_PAGE_REQUEST_ERROR,\n    FETCH_RULES_PAGE_REQUEST_SUCCESS,\n    RESET_RULE_PAGES,\n    RulesActionT,\n    RulesStateT,\n    UPDATE_RULE_REQUEST_BEGIN,\n    UPDATE_RULE_REQUEST_ERROR,\n    UPDATE_RULE_REQUEST_RESET,\n    UPDATE_RULE_REQUEST_SUCCESS,\n    PREVIEW_RULE_REQUEST_RESET,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport {\n    pageBeginReducer,\n    pageErrorReducer,\n    pageSuccessReducer,\n    resetPagesCacheReducer,\n} from 'common/utils/pagination/reducers';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\nimport isEqual from 'lodash/isEqual';\n\nconst initialState: RulesStateT = {\n    pages: [],\n    query: null,\n    total: null,\n    byId: {},\n    detailsById: {},\n    fetchDetailsRequest: requestStatus.initial,\n    updateRequest: requestStatus.initial,\n    creationRequest: requestStatus.initial,\n    deleteRequest: requestStatus.initial,\n    previewRequest: requestStatus.initial,\n    preview: null,\n};\n\nexport default (state = initialState, action: RulesActionT | DestroySessionActionT): RulesStateT => {\n    switch (action.type) {\n        case FETCH_RULES_PAGE_REQUEST_BEGIN: {\n            const { pageNumber, query } = action;\n\n            return {\n                ...state,\n                ...pageBeginReducer(state, pageNumber, query),\n            };\n        }\n        case FETCH_RULES_PAGE_REQUEST_SUCCESS: {\n            const { query, pageResponse, pageNumber } = action;\n\n            return {\n                ...state,\n                ...pageSuccessReducer(state, pageNumber, query, pageResponse),\n            };\n        }\n        case FETCH_RULES_PAGE_REQUEST_ERROR: {\n            const { error, pageNumber, query } = action;\n\n            return {\n                ...state,\n                ...pageErrorReducer(state, pageNumber, query, error),\n            };\n        }\n        case UPDATE_RULE_REQUEST_BEGIN: {\n            return {\n                ...state,\n                updateRequest: requestStatus.loading,\n            };\n        }\n        case UPDATE_RULE_REQUEST_SUCCESS: {\n            return {\n                ...state,\n                updateRequest: requestStatus.ok,\n            };\n        }\n        case UPDATE_RULE_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                updateRequest: requestStatus.setError(error),\n            };\n        }\n        case UPDATE_RULE_REQUEST_RESET: {\n            return {\n                ...state,\n                updateRequest: requestStatus.initial,\n            };\n        }\n\n        case RESET_RULE_PAGES: {\n            const { mutationListOptions } = action;\n\n            return {\n                ...initialState,\n                ...resetPagesCacheReducer(initialState, state, mutationListOptions),\n            };\n        }\n\n        case CREATE_RULE_REQUEST_BEGIN: {\n            return {\n                ...state,\n                creationRequest: requestStatus.loading,\n            };\n        }\n        case CREATE_RULE_REQUEST_SUCCESS: {\n            return {\n                ...state,\n                creationRequest: requestStatus.ok,\n            };\n        }\n        case CREATE_RULE_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                creationRequest: requestStatus.setError(error),\n            };\n        }\n        case CREATE_RULE_REQUEST_RESET: {\n            return {\n                ...state,\n                creationRequest: requestStatus.initial,\n            };\n        }\n        case DELETE_RULES_REQUEST_BEGIN: {\n            return {\n                ...state,\n                deleteRequest: requestStatus.loading,\n            };\n        }\n        case DELETE_RULES_REQUEST_SUCCESS: {\n            return {\n                ...state,\n                deleteRequest: requestStatus.ok,\n            };\n        }\n        case DELETE_RULES_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                deleteRequest: requestStatus.setError(error),\n            };\n        }\n        case PREVIEW_RULE_REQUEST_BEGIN: {\n            return {\n                ...state,\n                previewRequest: requestStatus.loading,\n            };\n        }\n        case PREVIEW_RULE_REQUEST_SUCCESS: {\n            const { data } = action;\n            return {\n                ...state,\n                previewRequest: requestStatus.ok,\n                preview: data,\n            };\n        }\n        case PREVIEW_RULE_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                previewRequest: requestStatus.setError(error),\n                preview: null,\n            };\n        }\n        case PREVIEW_RULE_REQUEST_RESET: {\n            return {\n                ...state,\n                previewRequest: requestStatus.initial,\n                preview: null,\n            };\n        }\n        case FETCH_RULE_DETAILS_REQUEST_BEGIN: {\n            return {\n                ...state,\n                fetchDetailsRequest: requestStatus.loading,\n            };\n        }\n        case FETCH_RULE_DETAILS_REQUEST_SUCCESS: {\n            const { ruleId, ruleDetails } = action;\n\n            return {\n                ...state,\n                detailsById: {\n                    ...state.detailsById,\n                    [ruleId]: isEqual(state.detailsById[ruleId], ruleDetails) ? state.detailsById[ruleId] : ruleDetails,\n                },\n                fetchDetailsRequest: requestStatus.ok,\n            };\n        }\n        case FETCH_RULE_DETAILS_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                fetchDetailsRequest: requestStatus.setError(error),\n            };\n        }\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default:\n            return state;\n    }\n};\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './FiltersTrigger.scss';\nimport FilterIcon from 'common/icons/FilterIcon';\nimport ArrowsIcon from 'common/icons/ArrowsIcon';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    onClick: () => void;\n    isActive: boolean;\n    title: string;\n    className?: string;\n    testSelector?: string;\n};\n\nconst FiltersTrigger: React.FC<PropsT> = (props) => {\n    const { onClick, isActive, title, className, testSelector } = props;\n\n    return (\n        <TransparentTrigger\n            testSelector={`${testSelector}_filters`}\n            onClick={onClick}\n            isPressed={isActive}\n            label={title}\n            className={className}\n            leftIcon={<FilterIcon />}\n            rightIcon={<ArrowsIcon />}\n            reflectionTheme={ReflectionThemeEnum.light}\n        />\n    );\n};\n\nexport default FiltersTrigger;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    ASSIGN_BID_TO_SPOT_REQUEST,\n    AssignBidToSpotRequestActionT,\n    FETCH_SPOT_REQUEST_DETAILS_REQUEST,\n    FetchSpotRequestDetailsRequestActionT,\n} from './types';\nimport {\n    fetchSpotRequestDetails,\n    fetchSpotRequestDetailsBegin,\n    fetchSpotRequestDetailsError,\n    fetchSpotRequestDetailsSuccess,\n    updateSpotRequestRequestBegin,\n    updateSpotRequestRequestError,\n    updateSpotRequestRequestSuccess,\n} from './actions';\nimport { selectSpotRequestDetails } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport spotBrokerTranziitApi from 'broker-admin/utils/api/spot-broker-tranziit/api';\nimport { BrokerAlertTypeEnum, BrokerAnyAlert } from 'broker-admin/components/toasts/models';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { spotRequestsRefreshChannel } from 'broker-admin/store/spot-requests/channels';\nimport { spotRequestsStatsRefreshChannel } from 'broker-admin/store/spot-requests-stats/channels';\n\nfunction* assignBidToSpotRequestSaga(action: AssignBidToSpotRequestActionT): WrapGeneratorT<void> {\n    const { id, bidId } = action;\n    yield put(updateSpotRequestRequestBegin(id));\n\n    const [error]: ReturnApiT<typeof spotBrokerTranziitApi.assignBidToSpotRequest> =\n        yield spotBrokerTranziitApi.assignBidToSpotRequest(id, { bidId });\n    if (error) {\n        yield put(updateSpotRequestRequestError(id, error));\n    } else {\n        yield put(updateSpotRequestRequestSuccess(id));\n\n        yield put(\n            addAlert(\n                new BrokerAnyAlert({\n                    type: BrokerAlertTypeEnum.transportOrderAssigned,\n                    data: {},\n                }),\n            ),\n        );\n    }\n\n    yield put(fetchSpotRequestDetails(id, { isForceUpdate: true }));\n\n    spotRequestsRefreshChannel.emit({});\n    spotRequestsStatsRefreshChannel.emit({});\n}\n\nfunction* fetchSpotRequestDetailsSaga(action: FetchSpotRequestDetailsRequestActionT): WrapGeneratorT<void> {\n    const { id, options } = action;\n\n    const { fetchDetailsRequestStatus }: ReReturnT<typeof selectSpotRequestDetails> = yield select(\n        selectSpotRequestDetails(id),\n    );\n    if (!checkNeedRequest(fetchDetailsRequestStatus, options)) {\n        return;\n    }\n\n    yield put(fetchSpotRequestDetailsBegin(id));\n\n    const [error, details]: ReturnApiT<typeof spotBrokerTranziitApi.fetchSpotRequestDetails> =\n        yield spotBrokerTranziitApi.fetchSpotRequestDetails(id);\n    if (error) {\n        yield put(fetchSpotRequestDetailsError(id, error));\n    } else {\n        yield put(fetchSpotRequestDetailsSuccess(id, details));\n    }\n}\n\nfunction* spotRequestDetailsSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_SPOT_REQUEST_DETAILS_REQUEST, fetchSpotRequestDetailsSaga);\n    yield takeEvery(ASSIGN_BID_TO_SPOT_REQUEST, assignBidToSpotRequestSaga);\n}\n\nexport default spotRequestDetailsSaga;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './LogCardLayout.scss';\nimport Avatar, { AvatarSizeEnum } from 'common/components/Avatar/Avatar';\nimport CompanyLogo, { CompanyLogoSizeEnum } from 'common/components/CompanyLogo/CompanyLogo';\nimport LogoIcon from 'common/icons/LogoIcon';\nimport { UNIT } from 'common/constants';\nimport { ApiLogInitiatorTypeT } from 'common/utils/api/models';\nimport FeaturesContext from 'common/contexts/features';\nimport { ClientFeatureEnum } from 'common/utils/features/client-features-config';\n\nconst cx = classNames.bind(styles);\n\ntype BodyDataT = {\n    id: LogRecordIdT;\n    initiatorType?: ApiLogInitiatorTypeT;\n    initiatorName?: string | null;\n};\n\nexport type LogCardLayoutPropsT = BodyDataT & {\n    className?: string;\n    children: React.ReactNode;\n    headerNode?: React.ReactNode;\n    footerNode?: React.ReactNode;\n};\n\nconst LOGO_SIZE_PX = 6 * UNIT;\n\nconst LogCardLayout: React.FC<LogCardLayoutPropsT> = React.memo((props) => {\n    const { className, id, initiatorType, initiatorName, children, headerNode, footerNode } = props;\n\n    const featuresContext = React.useContext(FeaturesContext);\n    const isAllowShowId = !!featuresContext?.checkActiveClientFeature?.(ClientFeatureEnum.showNotificationId);\n\n    return (\n        <div className={cs(cx('inner'), className)}>\n            {initiatorType === 'SYSTEM' && <LogoIcon className={cx('icon')} size={LOGO_SIZE_PX} />}\n            {initiatorType === 'COMPANY' && <CompanyLogo className={cx('icon')} size={CompanyLogoSizeEnum.medium} />}\n            {initiatorType === 'USER' && (\n                <Avatar className={cx('icon')} size={AvatarSizeEnum.medium} hash={initiatorName || ''} />\n            )}\n            <div className={cx('content')}>\n                {headerNode && <div className={cx('header')}>{headerNode}</div>}\n                {isAllowShowId && id && (\n                    <div\n                        className={cx('id')}\n                        onClick={(event) => {\n                            event.stopPropagation();\n                        }}\n                    >\n                        ID: {id}\n                    </div>\n                )}\n                {children}\n                {footerNode && <div className={cx('footer')}>{footerNode}</div>}\n            </div>\n        </div>\n    );\n});\n\nexport default LogCardLayout;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"BrokerOrderRouteEditPage__wrap___Liqbt\",\"tabs-wrap\":\"BrokerOrderRouteEditPage__tabs-wrap___haInd\",\"tab\":\"BrokerOrderRouteEditPage__tab___xbPeD\",\"fadeIn\":\"BrokerOrderRouteEditPage__fadeIn___sevJz\",\"blinking\":\"BrokerOrderRouteEditPage__blinking___fi5zb\"};","import React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './TabGroupWithDivider.scss';\nimport { TabLabelSizeEnum } from 'common/components/tabs/TabLabel/constants';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    className?: string;\n    size?: TabLabelSizeEnum;\n    children: Array<React.ReactNode>;\n};\n\nconst TabGroupWithDivider: React.FC<PropsT> = (props) => {\n    const { children, className, size } = props;\n\n    if (children?.length < 2) {\n        return null;\n    }\n\n    return (\n        <div\n            className={cs(\n                cx('tabs', {\n                    [`tabs--size-${size || TabLabelSizeEnum.normal}`]: true,\n                }),\n                className,\n            )}\n        >\n            {children}\n        </div>\n    );\n};\n\nexport default TabGroupWithDivider;\n","import React, { useCallback, useMemo } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\nimport { AlertThemeEnum } from 'common/components/Alert/Alert';\n\nexport type SideBarFooterAlertT = {\n    id: SidebarFooterAlertIdT;\n    deduplicationKey?: string;\n    theme: AlertThemeEnum;\n    content: React.ReactNode;\n};\n\nexport type CloseSideBarFooterAlertCallbackT = () => void;\n\nexport type SideBarFooterAlertsContextValueT = {\n    alerts: Array<SideBarFooterAlertT>;\n    onCloseAlert: (id: SidebarFooterAlertIdT) => void;\n    showAlert: (\n        data: Pick<SideBarFooterAlertT, 'theme' | 'content' | 'deduplicationKey'>,\n    ) => CloseSideBarFooterAlertCallbackT;\n};\n\nconst useSideBarFooterAlertsContextValue = (): SideBarFooterAlertsContextValueT => {\n    const [alerts, setAlerts] = React.useState<Array<SideBarFooterAlertT>>([]);\n\n    const onCloseAlert = useCallback((id: SidebarFooterAlertIdT) => {\n        setAlerts((alerts) => alerts.filter((alert) => alert.id !== id));\n    }, []);\n\n    const showAlert = useCallback(\n        ({\n            theme,\n            content,\n            deduplicationKey,\n        }: Pick<SideBarFooterAlertT, 'theme' | 'content' | 'deduplicationKey'>): CloseSideBarFooterAlertCallbackT => {\n            const alertId = uuidv4();\n\n            setAlerts((alerts) => {\n                const nextAlert = {\n                    id: alertId,\n                    deduplicationKey,\n                    theme,\n                    content,\n                };\n\n                if (!deduplicationKey) {\n                    return [nextAlert, ...alerts];\n                }\n\n                return [nextAlert, ...alerts.filter((alert) => alert.deduplicationKey !== deduplicationKey)];\n            });\n\n            return () => {\n                setAlerts((alerts) => alerts.filter((alert) => alert.id !== alertId));\n            };\n        },\n        [],\n    );\n\n    return useMemo(\n        () => ({\n            alerts,\n            onCloseAlert,\n            showAlert,\n        }),\n        [alerts, onCloseAlert, showAlert],\n    );\n};\n\nexport default useSideBarFooterAlertsContextValue;\n","// eslint-disable-next-line no-restricted-exports\nexport { default } from './slice';\n","import { DeadheadRouteStopTimeWindowT, DeadheadRouteStopTypeEnum } from 'broker-admin/store/deadhead-creation/models';\nimport { ApiTruckAssetT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { MS_IN_SEC } from 'common/utils/time';\n\nexport enum RoutePointFieldsEnum {\n    fakePointId = 'fakePointId',\n    type = 'type',\n    location = 'location',\n    timeWindow = 'timeWindow',\n}\n\nexport type RoutePointFormValuesT = {\n    fakePointId: RoutePointIdT;\n    type: DeadheadRouteStopTypeEnum;\n    location: LocationT | null;\n    timeWindow: DeadheadRouteStopTimeWindowT | null;\n};\n\nexport type RoutePointErrorsT = Partial<{\n    fakePointId: FormErrorMessageT;\n    type: FormErrorMessageT;\n    location: FormErrorMessageT;\n    timeWindow: FormErrorMessageT;\n}>;\n\nexport enum FieldsEnum {\n    truck = 'truck',\n    route = 'route',\n}\n\nexport type RouteFormValuesT = {\n    truck: ApiTruckAssetT | null;\n    route: Array<RoutePointFormValuesT>;\n};\n\nexport type FormErrorsT = Partial<{\n    [FieldsEnum.truck]: FormErrorMessageT;\n    [FieldsEnum.route]: Array<RoutePointErrorsT>;\n}>;\n\nexport type AsyncFormErrorsT = Partial<Record<FieldsEnum, string>>;\n\nexport const EXCLUDE_COUNTRIES_COLD_TIME = 2 * MS_IN_SEC;\n\nexport const editableRouteStopTypeSet = new Set<`${DeadheadRouteStopTypeEnum}`>([\n    DeadheadRouteStopTypeEnum.driveThrough,\n    DeadheadRouteStopTypeEnum.dropRoadTrain,\n    DeadheadRouteStopTypeEnum.dropTruck,\n]);\n","import { ApiPartnerTypeT } from 'common/utils/api/models';\n\nexport enum FieldsEnum {\n    email = 'email',\n    partnerType = 'partnerType',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.email]: string;\n    [FieldsEnum.partnerType]: ApiPartnerTypeT;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import { formatPageQuerySort } from 'common/utils/page-sort';\nimport { FetchShipperContractsPageQueryT } from 'common/store/shipper-contracts/models';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from './query-models';\nimport { PageSortT } from 'common/utils/query';\nimport { ShipperContractsSortEnum } from 'common/utils/api/models';\n\nconst prepareFetchPageQuery = (\n    queryFilters: QueryFiltersT,\n    sort: PageSortT<ShipperContractsSortEnum> | null,\n): FetchShipperContractsPageQueryT => {\n    return {\n        textSearch: queryFilters[QueryFiltersKeysEnum.text] || undefined,\n\n        sort: formatPageQuerySort(sort),\n    };\n};\n\nexport { prepareFetchPageQuery };\n","import { FieldsEnum, RouteFormValuesT, RoutePointFormValuesT } from './constants';\nimport { DeadheadRouteStopT, DeadheadRouteStopTypeEnum } from 'broker-admin/store/deadhead-creation/models';\nimport { convertPointToLocation } from '../utils/convert-point-to-location';\nimport { routePointTypeMap } from 'broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/utils/stop-type';\nimport { generatePointFakeId } from 'broker-admin/store/deadhead-creation/utils/generate-point-fake-id';\n\nexport const getInitialRoutePointFormValues = (stop: DeadheadRouteStopT): RoutePointFormValuesT => {\n    const { type, correctedDateTimeFrom, originalDateTimeFrom, correctedDateTimeTo, originalDateTimeTo } = stop;\n\n    const timeWindowFrom = correctedDateTimeFrom || originalDateTimeFrom || null;\n    const timeWindowTo = correctedDateTimeTo || originalDateTimeTo || null;\n\n    return {\n        fakePointId: stop.fakeId,\n        type: type ? routePointTypeMap[type] : DeadheadRouteStopTypeEnum.unknown,\n        location: convertPointToLocation(stop.address || null) || null,\n        timeWindow:\n            timeWindowFrom && timeWindowTo\n                ? {\n                      start: timeWindowFrom,\n                      end: timeWindowTo,\n                  }\n                : null,\n    };\n};\n\nexport const getInitialValues = (): RouteFormValuesT => {\n    const values: RouteFormValuesT = {\n        [FieldsEnum.truck]: null,\n        [FieldsEnum.route]: [\n            {\n                fakePointId: generatePointFakeId('pickup-truck'),\n                type: DeadheadRouteStopTypeEnum.pickupTruck,\n                timeWindow: null,\n                location: null,\n            },\n            {\n                fakePointId: generatePointFakeId('drop-truck'),\n                type: DeadheadRouteStopTypeEnum.dropTruck,\n                timeWindow: null,\n                location: null,\n            },\n        ],\n    };\n\n    return values;\n};\n","import { RequestStatusT } from 'common/utils/request-status';\n\nimport { ApiRFQStatsT, RFQStatsQueryT, RFQStatsT } from './models';\n\nexport const FETCH_RFQ_STATS_REQUEST = 'broker-admin/partner/rfq-stats/FETCH_RFQ_STATS_REQUEST';\nexport const FETCH_RFQ_STATS_REQUEST_BEGIN = 'broker-admin/partner/rfq-stats/FETCH_RFQ_STATS_REQUEST_BEGIN';\nexport const FETCH_RFQ_STATS_REQUEST_ERROR = 'broker-admin/partner/rfq-stats/FETCH_RFQ_STATS_REQUEST_ERROR';\nexport const FETCH_RFQ_STATS_REQUEST_SUCCESS = 'broker-admin/partner/rfq-stats/FETCH_RFQ_STATS_REQUEST_SUCCESS';\nexport const RESET = 'broker-admin/partner/rfq-stats/RESET';\n\nexport type PartnerRFQStatsStateT = {\n    query: RFQStatsQueryT | null;\n    stats: RFQStatsT | null;\n};\n\nexport type RFQStatsStateT = {\n    fetchRequest: RequestStatusT;\n    byId: Record<PartnerIdT, PartnerRFQStatsStateT>;\n};\n\nexport type FetchRFQStatsActionT = {\n    type: typeof FETCH_RFQ_STATS_REQUEST;\n    query: RFQStatsQueryT;\n};\n\nexport type FetchRFQStatsBeginActionT = {\n    type: typeof FETCH_RFQ_STATS_REQUEST_BEGIN;\n    query: RFQStatsQueryT;\n};\n\nexport type FetchRFQStatsSuccessActionT = {\n    type: typeof FETCH_RFQ_STATS_REQUEST_SUCCESS;\n    query: RFQStatsQueryT;\n    stats: ApiRFQStatsT;\n};\n\nexport type FetchRFQStatsErrorActionT = {\n    type: typeof FETCH_RFQ_STATS_REQUEST_ERROR;\n    query: RFQStatsQueryT;\n    error: Error;\n};\n\nexport type ResetRFQStatsActionT = {\n    type: typeof RESET;\n};\n\nexport type RFQStatsActionT =\n    | FetchRFQStatsActionT\n    | FetchRFQStatsBeginActionT\n    | FetchRFQStatsSuccessActionT\n    | FetchRFQStatsErrorActionT\n    | ResetRFQStatsActionT;\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"FiltersSidebarContent__form___afqtA\",\"field--address\":\"FiltersSidebarContent__field--address___fCB_P\",\"field--dates\":\"FiltersSidebarContent__field--dates___N1LR4\",\"field--carriers\":\"FiltersSidebarContent__field--carriers___V1vOy\",\"field--tour-types\":\"FiltersSidebarContent__field--tour-types___AvbPf\",\"field--plate-number\":\"FiltersSidebarContent__field--plate-number___cU6DP\",\"field--placeholder\":\"FiltersSidebarContent__field--placeholder___FpAGF\",\"selected-filters\":\"FiltersSidebarContent__selected-filters___QxyjR\",\"fadeIn\":\"FiltersSidebarContent__fadeIn___j9prR\",\"blinking\":\"FiltersSidebarContent__blinking___KPwWE\"};","export const clientConfig = {\n    isProduction: PRODUCTION,\n    isBrokerProject: IS_BROKER,\n};\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { simpleStringFormatter } from 'common/utils/form-formatters';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/query-models';\nimport { getDateFromDate, getEndDayFromDateZero, getStartDayFromDateZero } from 'common/utils/time';\n\nconst getQueryFilters = (values: FormValuesT): QueryFiltersT => {\n    const queryFilters: QueryFiltersT = {};\n\n    const name = values[FieldsEnum.name];\n    if (name) {\n        queryFilters[QueryFiltersKeysEnum.rulesName] = simpleStringFormatter(name);\n    }\n\n    const partnerIds = values[FieldsEnum.partnerIds];\n    if (partnerIds?.length) {\n        queryFilters[QueryFiltersKeysEnum.rulesPartnerIds] = partnerIds;\n    }\n\n    const type = values[FieldsEnum.types];\n    if (type?.length) {\n        queryFilters[QueryFiltersKeysEnum.rulesTypes] = type;\n    }\n\n    const trailerTypeIds = values[FieldsEnum.trailerTypeIds];\n    if (trailerTypeIds?.length) {\n        queryFilters[QueryFiltersKeysEnum.rulesTrailerTypeIds] = trailerTypeIds;\n    }\n\n    const fromCountryCodes = values[FieldsEnum.fromCountryCodes];\n    if (fromCountryCodes?.length) {\n        queryFilters[QueryFiltersKeysEnum.rulesFromCountryCodes] = fromCountryCodes;\n    }\n\n    const toCountryCodes = values[FieldsEnum.toCountryCodes];\n    if (toCountryCodes?.length) {\n        queryFilters[QueryFiltersKeysEnum.rulesToCountryCodes] = toCountryCodes;\n    }\n\n    const createDates = values[FieldsEnum.createDates];\n    if (createDates?.from) {\n        queryFilters[QueryFiltersKeysEnum.createdDateFrom] = getStartDayFromDateZero(getDateFromDate(createDates.from));\n    }\n    if (createDates?.to) {\n        queryFilters[QueryFiltersKeysEnum.createdDateTo] = getEndDayFromDateZero(getDateFromDate(createDates.to));\n    }\n\n    const lastModifyDates = values[FieldsEnum.lastModifyDates];\n    if (lastModifyDates?.from) {\n        queryFilters[QueryFiltersKeysEnum.lastModifyDateFrom] = getStartDayFromDateZero(\n            getDateFromDate(lastModifyDates.from),\n        );\n    }\n    if (lastModifyDates?.to) {\n        queryFilters[QueryFiltersKeysEnum.lastModifyDateTo] = getEndDayFromDateZero(\n            getDateFromDate(lastModifyDates.to),\n        );\n    }\n\n    const validFromDates = values[FieldsEnum.validFrom];\n    if (validFromDates?.from) {\n        queryFilters[QueryFiltersKeysEnum.validFromFrom] = getStartDayFromDateZero(\n            getDateFromDate(validFromDates.from),\n        );\n    }\n    if (validFromDates?.to) {\n        queryFilters[QueryFiltersKeysEnum.validFromTo] = getEndDayFromDateZero(getDateFromDate(validFromDates.to));\n    }\n\n    const validTillDates = values[FieldsEnum.validTill];\n    if (validTillDates?.from) {\n        queryFilters[QueryFiltersKeysEnum.validTillFrom] = getStartDayFromDateZero(\n            getDateFromDate(validTillDates.from),\n        );\n    }\n    if (validTillDates?.to) {\n        queryFilters[QueryFiltersKeysEnum.validTillTo] = getEndDayFromDateZero(getDateFromDate(validTillDates.to));\n    }\n\n    const priceComponent = values[FieldsEnum.priceComponent];\n    if (priceComponent?.length) {\n        queryFilters[QueryFiltersKeysEnum.rulesImpactPriceComponent] = priceComponent;\n    }\n\n    const priceOperation = values[FieldsEnum.priceOperation];\n    if (priceOperation?.length) {\n        queryFilters[QueryFiltersKeysEnum.rulesImpactPriceOperation] = priceOperation;\n    }\n\n    const createdByUserId = values[FieldsEnum.createdByUserId];\n    if (createdByUserId?.length) {\n        queryFilters[QueryFiltersKeysEnum.createdByUserId] = createdByUserId;\n        queryFilters[QueryFiltersKeysEnum.createdByUserName] = values[FieldsEnum.createdByUserName] || undefined;\n    }\n\n    const lastModifyByUserId = values[FieldsEnum.lastModifyByUserId];\n    if (lastModifyByUserId?.length) {\n        queryFilters[QueryFiltersKeysEnum.lastModifyByUserId] = lastModifyByUserId;\n        queryFilters[QueryFiltersKeysEnum.lastModifyByUserName] = values[FieldsEnum.lastModifyByUserName] || undefined;\n    }\n\n    return queryFilters;\n};\n\nexport { getQueryFilters };\n","// extracted by mini-css-extract-plugin\nexport default {\"controls\":\"ShipperContractDetailsPage__controls___Pfsgq\",\"header__controls\":\"ShipperContractDetailsPage__header__controls___pDI0V\",\"fadeIn\":\"ShipperContractDetailsPage__fadeIn___epHK9\",\"blinking\":\"ShipperContractDetailsPage__blinking___e3Jgc\"};","import React from 'react';\n\nexport type SyncShipperContractLaneCreationFormMapStateContextValueT = {\n    hasPickUpLocationError: boolean;\n    setHasPickUpLocationError: (hasPickUpLocationError: boolean) => void;\n    hasDropOffLocationError: boolean;\n    setHasDropOffLocationError: (hasDropOffLocationError: boolean) => void;\n};\n\nexport const useSyncMapState = (): SyncShipperContractLaneCreationFormMapStateContextValueT => {\n    const [hasPickUpLocationError, setHasPickUpLocationError] = React.useState<boolean>(false);\n    const [hasDropOffLocationError, setHasDropOffLocationError] = React.useState<boolean>(false);\n\n    return React.useMemo(() => {\n        return {\n            hasPickUpLocationError,\n            setHasPickUpLocationError,\n            hasDropOffLocationError,\n            setHasDropOffLocationError,\n        };\n    }, [hasPickUpLocationError, hasDropOffLocationError]);\n};\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './HorizontalColumnsLayout.scss';\n\nconst cx = classNames.bind(styles);\n\nenum TabsEnum {\n    left = 'left',\n    right = 'right',\n}\n\ntype PropsT = {\n    className?: string;\n    isNarrow?: boolean;\n    leftColumnTitle: React.ReactNode;\n    leftColumnNode: React.ReactNode;\n    rightColumnTitle: React.ReactNode;\n    rightColumnNode: React.ReactNode;\n    overlayNode?: React.ReactNode;\n    testSelector?: string;\n};\n\nconst HorizontalColumnsLayout: React.FC<PropsT> = React.memo((props) => {\n    const {\n        isNarrow,\n        leftColumnTitle,\n        leftColumnNode,\n        rightColumnTitle,\n        rightColumnNode,\n        overlayNode,\n        className,\n        testSelector,\n    } = props;\n\n    const [activeTab, setTab] = React.useState<TabsEnum>(TabsEnum.left);\n\n    return (\n        <div className={cs(cx('content'), className)} data-test-selector={`${testSelector}_horizontal-columns`}>\n            <div className={cx('inner')}>\n                <div className={cx('tabs')}>\n                    <div\n                        className={cx('tab-item', {\n                            'tab-item--isActive': activeTab === TabsEnum.left,\n                        })}\n                        onClick={() => setTab(TabsEnum.left)}\n                    >\n                        {leftColumnTitle}\n                    </div>\n                    <div\n                        className={cx('tab-item', {\n                            'tab-item--isActive': activeTab === TabsEnum.right,\n                        })}\n                        onClick={() => setTab(TabsEnum.right)}\n                    >\n                        {rightColumnTitle}\n                    </div>\n                </div>\n                <div className={cx('tabs__container')}>\n                    <div\n                        className={cx('tabs__tab', 'tabs__tab--isLeftTab', {\n                            'tabs__tab--isNarrow': isNarrow,\n                        })}\n                    >\n                        <div className={cx('tab')}>{leftColumnNode}</div>\n                    </div>\n                    <div\n                        className={cx('tabs__tab', 'tabs__tab--isRightTab', {\n                            'tabs__tab--isActiveRightTab': activeTab === TabsEnum.right,\n                        })}\n                    >\n                        {rightColumnNode}\n                    </div>\n                    {overlayNode}\n                </div>\n            </div>\n        </div>\n    );\n});\n\nexport default HorizontalColumnsLayout;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"DispatcherDropdown__fadeIn___rjsEe\",\"blinking\":\"DispatcherDropdown__blinking___q1Esw\"};","import { findTourById } from 'broker-admin/store/broker-order-details/utils/find-tour-by-id';\nimport { StopTypeEnum } from 'common/utils/api/models';\nimport isNumber from 'lodash/isNumber';\nimport { formatLocation } from 'common/utils/formatters';\nimport { BrokerOrderDetailsT } from 'broker-admin/store/broker-order-details/models';\nimport { InitDropPointT } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/models';\n\nexport const createInitWaypointTrailerDropPoint = (\n    brokerOrderDetails: BrokerOrderDetailsT | null,\n    tourId: TourIdT | null,\n): InitDropPointT | null => {\n    const tour = findTourById(brokerOrderDetails, tourId);\n    const waypoints = tour?.waypoints || [];\n\n    const lastDropWaypoint =\n        waypoints?.find((waypoint) => {\n            return waypoint.type === StopTypeEnum.dropTrailer || waypoint.type === StopTypeEnum.dropRoadTrain;\n        }) || null;\n\n    const waypoint = lastDropWaypoint || null;\n    if (!waypoint) {\n        return null;\n    }\n\n    const waypointAddress = waypoint?.address || null;\n    if (!waypointAddress) {\n        return null;\n    }\n\n    if (!isNumber(waypointAddress?.latitude) || !isNumber(waypointAddress?.longitude)) {\n        return null;\n    }\n\n    return {\n        location: {\n            address: formatLocation(waypointAddress),\n            utcOffsetMinutes: null,\n            addressComponents: {\n                countryCode: waypointAddress.country,\n                street1: waypointAddress?.street1,\n                street2: waypointAddress?.street2,\n                zipCode: waypointAddress?.zipCode,\n                city: waypointAddress?.city,\n            },\n            point: {\n                lat: waypointAddress.latitude || 0,\n                lng: waypointAddress.longitude || 0,\n            },\n        },\n        index: isNumber(waypoint?.index) ? waypoint.index : null,\n    };\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"trigger\":\"Trigger__trigger___DHIaW\",\"trigger--isLeft\":\"Trigger__trigger--isLeft___qG6HL\",\"trigger--isRight\":\"Trigger__trigger--isRight___TJOp4\",\"trigger--isDisabled\":\"Trigger__trigger--isDisabled___HHNai\",\"line\":\"Trigger__line___VbGBv\",\"fadeIn\":\"Trigger__fadeIn___DDPHH\",\"blinking\":\"Trigger__blinking___pYgDB\"};","// extracted by mini-css-extract-plugin\nexport default {\"axis\":\"Chart__axis___b0nMV\",\"axis--line\":\"Chart__axis--line___w4ahm\",\"line-chart\":\"Chart__line-chart___OCRLU\",\"line-chart--accepted\":\"Chart__line-chart--accepted___SZij_\",\"line-chart--rejected\":\"Chart__line-chart--rejected___SYONQ\",\"line-chart--estimated\":\"Chart__line-chart--estimated___C6sG5\",\"line-chart--real\":\"Chart__line-chart--real___YM7Qe\",\"bubbles\":\"Chart__bubbles___lsH6d\",\"bubbles--accepted\":\"Chart__bubbles--accepted___SJiTu\",\"bubbles--rejected\":\"Chart__bubbles--rejected___IKmfc\",\"bubbles--estimated\":\"Chart__bubbles--estimated___RcFIu\",\"bubbles--real\":\"Chart__bubbles--real___rLAD2\",\"fadeIn\":\"Chart__fadeIn___TCwnp\",\"blinking\":\"Chart__blinking___xV1vQ\"};","// extracted by mini-css-extract-plugin\nexport default {\"notification-toasts-manger\":\"OverlaysManager__notification-toasts-manger____2HXq\",\"dev-localization-language-switcher\":\"OverlaysManager__dev-localization-language-switcher___sadyy\",\"alerts-manager\":\"OverlaysManager__alerts-manager___zQ0Pc\",\"fadeIn\":\"OverlaysManager__fadeIn___uwrr5\",\"blinking\":\"OverlaysManager__blinking___F2r9c\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport { Trans } from 'react-i18next';\nimport { ApiDocumentTypeT } from 'common/utils/api/models';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport AsyncDictDocumentNameLabel from 'common/components/AsyncDictDocumentNameLabel/AsyncDictDocumentNameLabel';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\nimport styles from './ApprovedDocumentCard.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    documentType: ApiDocumentTypeT;\n};\n\nconst ApprovedDocumentCard: React.FC<PropsT> = React.memo(({ documentType }) => {\n    const { partnerType } = usePartnerContext();\n\n    return (\n        <NotificationCardInnerLayout className={cx('inner')}>\n            <Trans\n                i18nKey=\"common:notifications.document-approved\"\n                components={{\n                    documentName: (\n                        <NotificationEntityLabel\n                            isBold\n                            text={<AsyncDictDocumentNameLabel partnerType={partnerType} documentType={documentType} />}\n                        />\n                    ),\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default ApprovedDocumentCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"table\":\"ServicesTable__table___NZDlG\",\"table__header\":\"ServicesTable__table__header___MXYBx\",\"table__header--name\":\"ServicesTable__table__header--name___EF5I8\",\"table__header--cost\":\"ServicesTable__table__header--cost___QZgjQ\",\"table__column--name\":\"ServicesTable__table__column--name___u2sE1\",\"table__column--cost\":\"ServicesTable__table__column--cost___T5Qeh\",\"fadeIn\":\"ServicesTable__fadeIn___w3IZa\",\"blinking\":\"ServicesTable__blinking___smICM\"};","import * as React from 'react';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport { useTranslation } from 'react-i18next';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport ArrowsIcon from 'common/icons/ArrowsIcon';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\n\nenum TypeEnum {\n    all = 'all',\n    spot = 'spot',\n    dedicated = 'dedicated',\n}\n\nconst i18nTMap: Record<TypeEnum, string> = {\n    [TypeEnum.spot]: 'common:transport-orders-page.filters.quick-transport-order-type.spot',\n    [TypeEnum.dedicated]: 'common:transport-orders-page.filters.quick-transport-order-type.dedicated',\n    [TypeEnum.all]: 'common:transport-orders-page.filters.quick-transport-order-type.all',\n};\n\ntype OptionT = {\n    id: TypeEnum;\n    label: React.ReactNode;\n};\n\nexport type PropsT = {\n    className?: string;\n    isSelectedSpot?: boolean;\n    isSelectedDedicated?: boolean;\n    onSelect: (value: { isSelectedSpot?: boolean; isSelectedDedicated?: boolean }) => void;\n};\n\nconst TransportOrderTypeDropdown = (props: PropsT) => {\n    const { className, isSelectedSpot, isSelectedDedicated, onSelect } = props;\n\n    const { t } = useTranslation();\n\n    const selectedOptionValue = React.useMemo((): TypeEnum => {\n        if (isSelectedSpot) {\n            return TypeEnum.spot;\n        }\n\n        if (isSelectedDedicated) {\n            return TypeEnum.dedicated;\n        }\n\n        return TypeEnum.all;\n    }, [isSelectedSpot, isSelectedDedicated]);\n\n    const options = React.useMemo((): Array<OptionT> => {\n        return [\n            {\n                id: TypeEnum.all,\n                label: t(i18nTMap[TypeEnum.all]),\n            },\n            {\n                id: TypeEnum.spot,\n                label: t(i18nTMap[TypeEnum.spot]),\n            },\n            {\n                id: TypeEnum.dedicated,\n                label: t(i18nTMap[TypeEnum.dedicated]),\n            },\n        ];\n    }, [t]);\n\n    const handleChange = React.useCallback(\n        (values: TypeEnum) => {\n            onSelect({\n                isSelectedSpot: values === TypeEnum.spot,\n                isSelectedDedicated: values === TypeEnum.dedicated,\n            });\n        },\n        [onSelect],\n    );\n\n    return (\n        <DropdownInput<OptionT, TypeEnum>\n            className={className}\n            selectedValue={selectedOptionValue}\n            options={options}\n            onSelect={handleChange}\n            renderOption={(option) => {\n                if (!option) {\n                    return null;\n                }\n\n                return <DropdownControlOptionLabel withoutPaddings label={option.label} />;\n            }}\n            renderTrigger={(props, selectedOption) => {\n                const label = t(i18nTMap[selectedOption?.id || TypeEnum.all]);\n\n                return (\n                    <TransparentTrigger\n                        testSelector=\"trigger\"\n                        onClick={props.onClick}\n                        isPressed={props.isPressed}\n                        label={label}\n                        rightIcon={<ArrowsIcon />}\n                        reflectionTheme={ReflectionThemeEnum.light}\n                    />\n                );\n            }}\n            getOptionValue={(option) => option?.id}\n            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n        />\n    );\n};\n\nexport default TransportOrderTypeDropdown;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    FETCH_TRACK_BY_ORDER,\n    FETCH_TRACK_BY_TRANSPORT_ORDERS,\n    FetchTrackByOrderActionT,\n    FetchTrackByTransportOrderActionT,\n} from './types';\nimport { fetchTrackBegin, fetchTrackError, fetchTrackSuccess } from './actions';\nimport { selectAssetTrackRequest } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { CompanyTypeEnum } from 'common/constants';\nimport {\n    getAssetsTrackHashByOrderId,\n    getAssetsTrackHashByTransportOrderId,\n    getAssetTrackHashByOrderId,\n    getAssetTrackHashByTransportOrderId,\n} from './utils';\nimport carrierTranziitApi from 'carrier/utils/api/carrier-tranziit/api';\nimport shipperTranziitApi from 'shipper/utils/api/shipper-tranziit/api';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { TrackPointT } from 'common/store/asset-track/models';\nimport { parseDateString } from 'common/utils/time';\nimport isNumber from 'lodash/isNumber';\n\nfunction getFetchTrackByOrderSaga(companyType: CompanyTypeEnum) {\n    return function* fetchTrackByTourSaga(action: FetchTrackByOrderActionT): WrapGeneratorT<void> {\n        const { orderId } = action;\n\n        const orderHash = getAssetsTrackHashByOrderId(orderId);\n\n        const requestStatus: ReReturnT<typeof selectAssetTrackRequest> = yield select(\n            selectAssetTrackRequest(orderHash),\n        );\n        if (!checkNeedRequest(requestStatus)) {\n            return;\n        }\n\n        yield put(fetchTrackBegin(orderHash));\n\n        let result: ReturnApiT<\n            | typeof shipperTranziitApi.fetchAssetTracksByOrder\n            | typeof brokerTranziitApi.fetchAssetTracksByTransportOrder\n        > | null = null;\n\n        if (companyType === CompanyTypeEnum.shipper) {\n            result = yield shipperTranziitApi.fetchAssetTracksByOrder(orderId);\n        }\n\n        if (!result) {\n            return;\n        }\n\n        const [error, apiAssetsCoordinates] = result;\n\n        if (apiAssetsCoordinates) {\n            for (const apiAssetCoordinates of apiAssetsCoordinates) {\n                const assetId = apiAssetCoordinates?.assetId || null;\n                if (assetId) {\n                    const hash = getAssetTrackHashByOrderId(orderId, assetId);\n\n                    const tracks = apiAssetCoordinates?.coordinates?.reduce<Array<TrackPointT>>((acc, coordinate) => {\n                        const timestamp = parseDateString(coordinate.receivedDate);\n                        if (!isNumber(timestamp)) {\n                            return acc;\n                        }\n\n                        acc.push({\n                            lat: coordinate.latitude,\n                            lng: coordinate.longitude,\n                            timestamp,\n                        });\n\n                        return acc;\n                    }, []);\n\n                    yield put(fetchTrackSuccess(hash, tracks));\n                }\n            }\n        }\n\n        if (error) {\n            yield put(fetchTrackError(orderHash, error));\n        } else {\n            yield put(fetchTrackSuccess(orderHash, null));\n        }\n    };\n}\n\nfunction getFetchTrackByTransportOrdersSaga(companyType: CompanyTypeEnum) {\n    return function* fetchTrackByTourSaga(action: FetchTrackByTransportOrderActionT): WrapGeneratorT<void> {\n        const { transportOrderIds } = action;\n\n        for (const transportOrderId of transportOrderIds) {\n            const transportOrderHash = getAssetsTrackHashByTransportOrderId(transportOrderId);\n\n            const requestStatus: ReReturnT<typeof selectAssetTrackRequest> = yield select(\n                selectAssetTrackRequest(transportOrderHash),\n            );\n            if (!checkNeedRequest(requestStatus)) {\n                return;\n            }\n\n            yield put(fetchTrackBegin(transportOrderHash));\n\n            let result: ReturnApiT<typeof carrierTranziitApi.fetchAssetTracksByTransportOrder> | null = null;\n\n            if (companyType === CompanyTypeEnum.carrier) {\n                result = yield carrierTranziitApi.fetchAssetTracksByTransportOrder(transportOrderId);\n            }\n\n            if (companyType === CompanyTypeEnum.broker) {\n                result = yield brokerTranziitApi.fetchAssetTracksByTransportOrder(transportOrderId);\n            }\n\n            if (!result) {\n                return;\n            }\n\n            const [error, apiAssetsCoordinates] = result;\n\n            if (apiAssetsCoordinates) {\n                for (const apiAssetCoordinates of apiAssetsCoordinates) {\n                    const assetId = apiAssetCoordinates?.assetId || null;\n                    if (assetId) {\n                        const hash = getAssetTrackHashByTransportOrderId(transportOrderId, assetId);\n\n                        const tracks = apiAssetCoordinates?.coordinates?.reduce<Array<TrackPointT>>(\n                            (acc, coordinate) => {\n                                const timestamp = parseDateString(coordinate.receivedDate);\n                                if (!isNumber(timestamp)) {\n                                    return acc;\n                                }\n\n                                acc.push({\n                                    lat: coordinate.latitude,\n                                    lng: coordinate.longitude,\n                                    timestamp,\n                                });\n\n                                return acc;\n                            },\n                            [],\n                        );\n\n                        yield put(fetchTrackSuccess(hash, tracks));\n                    }\n                }\n            }\n\n            if (error) {\n                yield put(fetchTrackError(transportOrderHash, error));\n            } else {\n                yield put(fetchTrackSuccess(transportOrderHash, null));\n            }\n        }\n    };\n}\n\nfunction* assetTrackSaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_TRACK_BY_ORDER, getFetchTrackByOrderSaga(companyType));\n    yield takeEvery(FETCH_TRACK_BY_TRANSPORT_ORDERS, getFetchTrackByTransportOrdersSaga(companyType));\n}\n\nexport default assetTrackSaga;\n","// extracted by mini-css-extract-plugin\nexport default {\"divider\":\"ContractDetailsForm__divider___yUMOt\",\"fadeIn\":\"ContractDetailsForm__fadeIn___Dk99w\",\"blinking\":\"ContractDetailsForm__blinking___V8eDj\"};","import * as React from 'react';\n\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum, AssetTypeEnum } from 'common/constants';\nimport InfoIcon from 'common/icons/InfoIcon';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectGPSIsChecking, selectGPSStatus } from 'common/store/gps-tracking-status/selectors';\nimport { checkGPSStatusRequest, reset } from 'common/store/gps-tracking-status/actions';\nimport { GPStatusEnum } from 'common/store/gps-tracking-status/constants';\n\ntype PropsT = {\n    className?: string;\n    plateNumber: string;\n    assetType: AssetTypeEnum;\n    companyId: CompanyIdT;\n};\n\nconst GPSTrackingStatusAlert: React.FC<PropsT> = React.memo((props) => {\n    const { className, plateNumber, assetType, companyId } = props;\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        return () => {\n            dispatch(reset());\n        };\n    }, [dispatch]);\n\n    React.useEffect(() => {\n        dispatch(checkGPSStatusRequest({ companyId, assetType, plateNumber }));\n    }, [dispatch, companyId, assetType, plateNumber]);\n\n    const isChecking = useSelector(selectGPSIsChecking);\n    const gpsStatus = useSelector(selectGPSStatus);\n\n    const infoIconNode = <InfoIcon fillColor={StyleGuideColorsEnum.white} />;\n    const loaderIconNode = <ControlLoaderIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />;\n\n    let theme: AlertThemeEnum | null = null;\n    let text = '';\n\n    if (gpsStatus === GPStatusEnum.unable) {\n        theme = AlertThemeEnum.orange;\n        text = t('common:trucks-page.add-truck.gps-tracking-status.dedicated-unable');\n    }\n\n    if (gpsStatus === GPStatusEnum.enabled) {\n        theme = AlertThemeEnum.brandAccent;\n        text = t('common:trucks-page.add-truck.gps-tracking-status.dedicated-enabled');\n    }\n\n    if (!gpsStatus) {\n        theme = AlertThemeEnum.gray;\n        text = plateNumber\n            ? t('common:trucks-page.add-truck.gps-tracking-status.loading')\n            : t('common:trucks-page.add-truck.gps-tracking-status.empty');\n    }\n\n    return (\n        <Alert\n            className={className}\n            icon={isChecking ? loaderIconNode : infoIconNode}\n            size={AlertSizeEnum.small}\n            theme={theme || AlertThemeEnum.gray}\n        >\n            {text}\n        </Alert>\n    );\n});\n\nexport default GPSTrackingStatusAlert;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './EvidenceOfTaxDetails.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport { fetchEvidenceOfTaxDetails } from 'common/store/documents/actions';\nimport {\n    selectFetchEvidenceOfTaxDetails,\n    selectFetchEvidenceOfTaxDetailsRequest,\n} from 'common/store/documents/selectors';\nimport SideBarLoader from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLoader/SideBarLoader';\nimport { DocumentVersionT } from 'common/store/documents/models';\nimport { logWarning } from 'common/utils/logger';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    // eslint-disable-next-line react/no-unused-prop-types\n    actualVersion: DocumentVersionT | null;\n    partnerId: PartnerIdT | null;\n};\n\nconst EvidenceOfTaxDetails: React.FC<PropsT> = (props) => {\n    const { partnerId } = props;\n\n    const dispatch = useDispatch();\n\n    const { t } = useTranslation();\n\n    React.useEffect(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in EvidenceOfTaxDetails useEffect');\n            return;\n        }\n        dispatch(fetchEvidenceOfTaxDetails(partnerId));\n    }, [partnerId, dispatch]);\n\n    const evidenceOfTaxDetails = useSelector(selectFetchEvidenceOfTaxDetails(partnerId));\n\n    const fetchEvidenceOfTaxDetailsRequest = useSelector(selectFetchEvidenceOfTaxDetailsRequest(partnerId));\n    if (fetchEvidenceOfTaxDetailsRequest.loading && !evidenceOfTaxDetails) {\n        return <SideBarLoader isRelative />;\n    }\n\n    return (\n        <>\n            <ReadOnlyField\n                label={t('common:document.evidence-of-tax-details.tax-id')}\n                value={evidenceOfTaxDetails?.taxId || ''}\n                placeholder={t('common:fields.placeholder.empty')}\n            />\n            <ReadOnlyField\n                label={t('common:document.evidence-of-tax-details.vat-number')}\n                value={evidenceOfTaxDetails?.vat || ''}\n                placeholder={t('common:fields.placeholder.empty')}\n            />\n            <ReadOnlyField\n                label={t('common:document.evidence-of-tax-details.iban')}\n                value={evidenceOfTaxDetails?.iban || ''}\n                placeholder={t('common:fields.placeholder.empty')}\n            />\n            <ReadOnlyField\n                label={t('common:document.evidence-of-tax-details.bic')}\n                value={evidenceOfTaxDetails?.bic || ''}\n                placeholder={t('common:fields.placeholder.empty')}\n            />\n        </>\n    );\n};\n\nexport default EvidenceOfTaxDetails;\n","import app from 'firebase/app';\nimport 'firebase/auth';\n\nimport i18n from 'i18next';\nimport { authRoutesEnum, QueryKeysEnum } from '../../../constants';\nimport { AuthApiError, AuthErrorTypeEnum } from './errors/auth-api-error';\nimport {\n    AuthAccountUrlsT,\n    AuthStateChangedCallbackT,\n    AuthUnsubscribeCallbackT,\n    AuthUserClaimsT,\n    AuthUserT,\n    BaseAuthService,\n} from './base-auth-service';\nimport ActionCodeSettings = firebase.auth.ActionCodeSettings;\nimport { formatQuery } from 'common/utils/query';\nimport { createSelfExternalUrl } from 'common/utils/history';\nimport { logError } from 'common/utils/logger';\n\ntype FirebaseConfigT = {\n    apiKey?: string;\n    authDomain?: string;\n    databaseURL?: string;\n    projectId?: string;\n    storageBucket?: string;\n    messagingSenderId?: string;\n    appId?: string;\n};\n\nenum AuthApiTypeEnum {\n    userDisabled = 'auth/user-disabled',\n    userNotFound = 'auth/user-not-found',\n    wrongPassword = 'auth/wrong-password',\n    networkRequestFailed = 'auth/network-request-failed',\n    expiredActionCode = 'auth/expired-action-code',\n    invalidActionCode = 'auth/invalid-action-code',\n    weakPassword = 'auth/weak-password',\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ninterface AuthStateChangedCallbackI {\n    (user: firebase.User | null): void;\n}\n\nexport class FirebaseAuthService extends BaseAuthService {\n    private auth: firebase.auth.Auth;\n\n    constructor(config: FirebaseConfigT) {\n        super();\n\n        app.initializeApp(config);\n\n        this.auth = app.auth();\n\n        if (window.FIREBASE_TENANT_ID) {\n            this.auth.tenantId = window.FIREBASE_TENANT_ID;\n        }\n    }\n\n    checkAllowedAnonymouslyUserCreation = (): boolean => {\n        return true;\n    };\n\n    private syncLanguage = (): void => {\n        this.auth.languageCode = i18n.language;\n    };\n\n    onAuthStateChanged = (resolver: AuthStateChangedCallbackT): AuthUnsubscribeCallbackT => {\n        return this.auth.onAuthStateChanged(resolver);\n    };\n\n    private parseCommonErrors(error: firebase.auth.Error | null): AuthApiError | null {\n        const errorMapper: Record<string, AuthErrorTypeEnum> = {\n            [AuthApiTypeEnum.networkRequestFailed]: AuthErrorTypeEnum.networkRequestFailed,\n            [AuthApiTypeEnum.expiredActionCode]: AuthErrorTypeEnum.expiredActionCode,\n            [AuthApiTypeEnum.invalidActionCode]: AuthErrorTypeEnum.invalidActionCode,\n            [AuthApiTypeEnum.weakPassword]: AuthErrorTypeEnum.weakPassword,\n            [AuthApiTypeEnum.wrongPassword]: AuthErrorTypeEnum.wrongPassword,\n            [AuthApiTypeEnum.userDisabled]: AuthErrorTypeEnum.userDisabled,\n            [AuthApiTypeEnum.userNotFound]: AuthErrorTypeEnum.userNotFound,\n        };\n\n        const authErrorType = error?.code ? errorMapper[error.code] : null;\n        if (error?.code && authErrorType) {\n            return new AuthApiError(authErrorType, error.message);\n        }\n\n        return null;\n    }\n\n    destroySession = () => {\n        // nothing\n    };\n\n    async getAuthToken(): Promise<string | null> {\n        const { auth } = this;\n\n        if (!auth.currentUser) {\n            return null;\n        }\n\n        const idToken = auth.currentUser.getIdToken();\n\n        return idToken;\n    }\n\n    async getAuthHeaders(): Promise<Record<string, string> | null> {\n        const token = await this.getAuthToken();\n\n        return {\n            Authorization: `Bearer ${token}`,\n        };\n    }\n\n    getAuthUserClaims = async (): Promise<[AuthApiError | null, AuthUserClaimsT | null]> => {\n        const { auth } = this;\n\n        if (!auth.currentUser) {\n            return [null, null];\n        }\n\n        const response = await auth.currentUser.getIdTokenResult();\n\n        const authUserClaims: AuthUserClaimsT = {\n            roles: response.claims.roles,\n        };\n\n        return [null, authUserClaims];\n    };\n\n    createAnonymouslyUser = async (): Promise<[AuthApiError | null, AuthUserT | null]> => {\n        const { auth } = this;\n\n        try {\n            const userCredential = await auth.signInAnonymously();\n\n            return [null, userCredential.user];\n        } catch (error) {\n            const parsedCommonError = this.parseCommonErrors(error);\n            if (parsedCommonError) {\n                return [parsedCommonError, null];\n            }\n\n            const authError = new AuthApiError(AuthErrorTypeEnum.failAnonymouslySignIn, error.message);\n\n            return [authError, null];\n        }\n    };\n\n    signInWithEmailAndPassword = async (\n        email: string,\n        password: string,\n    ): Promise<[AuthApiError | null, firebase.User | null]> => {\n        const { auth } = this;\n\n        try {\n            const userCredential = await auth.signInWithEmailAndPassword(email, password);\n\n            return [null, userCredential.user];\n        } catch (error) {\n            const parsedCommonError = this.parseCommonErrors(error);\n            if (parsedCommonError) {\n                return [parsedCommonError, null];\n            }\n\n            const authError = new AuthApiError(AuthErrorTypeEnum.failSignIn, error.message);\n            return [authError, null];\n        }\n    };\n\n    doSignOut = async (): Promise<[AuthApiError | null, null]> => {\n        try {\n            await this.auth.signOut();\n            return [null, null];\n        } catch (error) {\n            const parsedCommonError = this.parseCommonErrors(error);\n            if (parsedCommonError) {\n                return [parsedCommonError, null];\n            }\n\n            const authError = new AuthApiError(AuthErrorTypeEnum.failSignOut, error.message);\n            return [authError, null];\n        }\n    };\n\n    sendVerificationEmail = async (user: firebase.User | null): Promise<[AuthApiError | null, null]> => {\n        const ACTION_CODE_SETTINGS: ActionCodeSettings = {\n            url: createSelfExternalUrl(authRoutesEnum.signIn),\n        };\n\n        if (!user) {\n            const authError = new AuthApiError(AuthErrorTypeEnum.userIsNotAuthorized, 'empty currentUserCredential');\n\n            return [authError, null];\n        }\n\n        try {\n            await user.sendEmailVerification(ACTION_CODE_SETTINGS);\n\n            return [null, null];\n        } catch (error) {\n            const parsedCommonError = this.parseCommonErrors(error);\n            if (parsedCommonError) {\n                return [parsedCommonError, null];\n            }\n\n            const authError = new AuthApiError(AuthErrorTypeEnum.failSendEmailVerification, error.message);\n\n            return [authError, null];\n        }\n    };\n\n    sendPasswordResetEmail = async (email: string): Promise<[AuthApiError | null, null]> => {\n        this.syncLanguage();\n\n        const { auth } = this;\n        try {\n            await auth.sendPasswordResetEmail(email, {\n                url: window.location.origin,\n            });\n\n            return [null, null];\n        } catch (error) {\n            const parsedCommonError = this.parseCommonErrors(error);\n            if (parsedCommonError) {\n                return [parsedCommonError, null];\n            }\n\n            if (error.code === AuthApiTypeEnum.userNotFound) {\n                const authError = new AuthApiError(AuthErrorTypeEnum.userNotFound, error.message);\n                return [authError, null];\n            }\n\n            const authError = new AuthApiError(AuthErrorTypeEnum.failSendPasswordResetEmail, error.message);\n            return [authError, null];\n        }\n    };\n\n    updatePassword = async (code: string, password: string): Promise<[AuthApiError | null, null]> => {\n        const { auth } = this;\n\n        try {\n            await auth.confirmPasswordReset(code, password);\n\n            return [null, null];\n        } catch (error) {\n            const parsedCommonError = this.parseCommonErrors(error);\n            if (parsedCommonError) {\n                return [parsedCommonError, null];\n            }\n\n            const authError = new AuthApiError(AuthErrorTypeEnum.failUpdatePassword, error.message);\n\n            return [authError, null];\n        }\n    };\n\n    signUp = async (email: string, password: string): Promise<[AuthApiError | null, firebase.User | null]> => {\n        const { auth } = this;\n\n        try {\n            const credential = app.auth.EmailAuthProvider.credential(email, password);\n            const usercred = await auth.currentUser?.linkWithCredential(credential);\n\n            return [null, usercred?.user || null];\n        } catch (error) {\n            const parsedCommonError = this.parseCommonErrors(error);\n            if (parsedCommonError) {\n                return [parsedCommonError, null];\n            }\n\n            const authError = new AuthApiError(AuthErrorTypeEnum.failUpdatePassword, error.message);\n\n            return [authError, null];\n        }\n    };\n\n    verificationEmail = async (code: string): Promise<[AuthApiError | null, null]> => {\n        const { auth } = this;\n\n        try {\n            await auth.applyActionCode(code);\n            return [null, null];\n        } catch (error) {\n            const parsedCommonError = this.parseCommonErrors(error);\n            if (parsedCommonError) {\n                return [parsedCommonError, null];\n            }\n\n            const authError = new AuthApiError(AuthErrorTypeEnum.failEmailVerification, error.message);\n\n            return [authError, null];\n        }\n    };\n\n    reauthenticateWithCredential = async (\n        email: string,\n        password: string,\n    ): Promise<[AuthApiError | null, AuthUserT | null]> => {\n        const { auth } = this;\n        const { currentUser } = auth || {};\n\n        try {\n            const credential = app.auth.EmailAuthProvider.credential(email, password);\n            const userCredential = await currentUser?.reauthenticateWithCredential(credential);\n\n            return [null, userCredential?.user || null];\n        } catch (error) {\n            const parsedCommonError = this.parseCommonErrors(error);\n            if (parsedCommonError) {\n                return [parsedCommonError, null];\n            }\n\n            const authError = new AuthApiError(AuthErrorTypeEnum.failReauthenticateWithCredential, error.message);\n\n            return [authError, null];\n        }\n    };\n\n    changePassword = async (newPassword: string): Promise<[AuthApiError | null, null]> => {\n        const { auth } = this;\n        const { currentUser } = auth || {};\n\n        try {\n            await currentUser?.updatePassword(newPassword);\n            return [null, null];\n        } catch (error) {\n            const parsedCommonError = this.parseCommonErrors(error);\n            if (parsedCommonError) {\n                return [parsedCommonError, null];\n            }\n\n            const authError = new AuthApiError(AuthErrorTypeEnum.failChangePassword, error.message);\n\n            return [authError, null];\n        }\n    };\n\n    updateProfile = async (displayName: string, photoURL?: string): Promise<[AuthApiError | null, null]> => {\n        const { auth } = this;\n        const { currentUser } = auth || {};\n\n        try {\n            await currentUser?.updateProfile({\n                displayName,\n                photoURL,\n            });\n            return [null, null];\n        } catch (error) {\n            const parsedCommonError = this.parseCommonErrors(error);\n            if (parsedCommonError) {\n                return [parsedCommonError, null];\n            }\n\n            const authError = new AuthApiError(AuthErrorTypeEnum.failUpdateProfile, error.message);\n\n            return [authError, null];\n        }\n    };\n\n    createSignInUrlAfterChangePassword = (): {\n        pathname: string;\n        search: string;\n    } => {\n        return {\n            pathname: authRoutesEnum.signIn,\n            search: formatQuery({\n                [QueryKeysEnum.successChangePassword]: true,\n            }),\n        };\n    };\n\n    checkIsContinueSignInRedirect = () => {\n        return false;\n    };\n\n    createSignInUrl = (\n        returnUrl?: string,\n    ): {\n        pathname: string;\n        search: string;\n    } => {\n        return {\n            pathname: authRoutesEnum.signIn,\n            search: formatQuery({\n                [QueryKeysEnum.returnUrl]: returnUrl,\n            }),\n        };\n    };\n\n    createSignUpUrl = (): string => {\n        return authRoutesEnum.signUp;\n    };\n\n    createForgotPasswordUrl = (): string => {\n        return authRoutesEnum.forgotPassword;\n    };\n\n    createChangePasswordUrl = (): string => {\n        return authRoutesEnum.changePassword;\n    };\n\n    createAccountUrl = (): string => {\n        throw new Error('not implement in firebase');\n    };\n\n    forceRefreshToken = async (): Promise<[AuthApiError | null, boolean | null]> => {\n        throw new Error('not implement in firebase');\n    };\n\n    getAccountUrls = async (): Promise<[AuthApiError | null, AuthAccountUrlsT | null]> => {\n        return [null, null];\n    };\n}\n\nexport const tryParseFirebaseConfig = (): FirebaseConfigT => {\n    try {\n        return JSON.parse(window.STRINGIFIED_FIREBASE_CONFIG);\n    } catch (error) {\n        logError('Parse firebase config error!!', error);\n\n        return {};\n    }\n};\n","import React from 'react';\n\nexport type StepContextT = {\n    hasSelectedContact: boolean;\n    setHasSelectedContract: (hasSelectedContact: boolean) => void;\n};\n\nconst StepsContext = React.createContext<StepContextT>({\n    hasSelectedContact: false,\n    setHasSelectedContract: () => {\n        // nothing\n    },\n});\n\nexport default StepsContext;\n","import * as React from 'react';\nimport PillLabel, { colorCodingPillLabelTheme, PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    isPaid: boolean;\n    isSymmetrical?: boolean;\n};\n\nconst InvoiceBinaryStatusPill: React.FC<PropsT> = React.memo((props) => {\n    const { className, isPaid, isSymmetrical } = props;\n\n    const { t } = useTranslation();\n\n    let label = t('common:invoice-binary-status.not-paid');\n    let theme: PillLabelThemeEnum = colorCodingPillLabelTheme.attention;\n\n    if (isPaid) {\n        label = t('common:invoice-binary-status.paid');\n        theme = colorCodingPillLabelTheme.positive;\n    }\n\n    return (\n        <PillLabel isNoWrap className={className} theme={theme} isSymmetrical={isSymmetrical}>\n            {label}\n        </PillLabel>\n    );\n});\n\nexport default InvoiceBinaryStatusPill;\n","import * as React from 'react';\n\nimport { Route, Switch } from 'react-router-dom';\n\nimport SpotRequestListPage from 'broker-admin/layouts/SpotRequestsPage/SpotRequestListPage/SpotRequestListPage';\nimport SpotRequestDetailsPage from 'broker-admin/layouts/SpotRequestsPage/SpotRequestDetailsPage/SpotRequestDetailsPage';\nimport { SpotRoutesEnum } from 'broker-admin/constants';\n\ntype PropsT = {};\n\nconst SpotRequestsPage: React.FC<PropsT> = React.memo(() => {\n    return (\n        <Switch>\n            <Route path={SpotRoutesEnum.spotRequestDetails}>\n                <SpotRequestDetailsPage />\n            </Route>\n            <Route path=\"*\">\n                <SpotRequestListPage />\n            </Route>\n        </Switch>\n    );\n});\n\nexport default SpotRequestsPage;\n","// extracted by mini-css-extract-plugin\nexport default {\"top-bar--isSticky\":\"TopBar__top-bar--isSticky___K8VG4\",\"inner\":\"TopBar__inner___cQm0R\",\"inner--isWhite\":\"TopBar__inner--isWhite___geaxP\",\"inner--isSticky\":\"TopBar__inner--isSticky___atRQJ\",\"menu-trigger\":\"TopBar__menu-trigger___NzXjL\",\"fadeIn\":\"TopBar__fadeIn___o8vBF\",\"blinking\":\"TopBar__blinking___wPw8D\"};","import * as React from 'react';\nimport { CommonSidebarDataT, CommonSidebarsTypeEnum, SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport useCloseSidebarAfterRequest from 'common/utils/hooks/useCloseSidebarAfterRequest';\nimport { useSelector } from 'react-redux';\nimport { AddTruckSidebarDataT } from 'common/layouts/SideBars/contents/AddTruckSidebarContent/models';\nimport { selectAddTruckRequestStatus } from 'common/store/trucks/selectors';\nimport EditTruckSidebarContent from 'common/layouts/CommonEditableTruckDetailsLayout/EditTruckSidebarContent/EditTruckSidebarContent';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\n\ntype PropsT = SidebarContentPropsT<AddTruckSidebarDataT, CommonSidebarDataT>;\n\nconst AddTruckSidebarContent: React.FC<PropsT> = (props) => {\n    const { data, onGoBack, onClose, setNeedCloseConfirmation, onOpenNextSidebar } = props;\n\n    const addTruckRequestStatus = useSelector(selectAddTruckRequestStatus(data.partnerId));\n    useCloseSidebarAfterRequest(addTruckRequestStatus, onGoBack || onClose);\n\n    if (!onClose) {\n        return null;\n    }\n\n    const handleOpenTruckDetails = (truckId: TruckIdT) => {\n        onOpenNextSidebar({\n            type: CommonSidebarsTypeEnum.truckDetails,\n            partnerId: data.partnerId,\n            truckId,\n        });\n    };\n\n    const handleOpenTrailerDetails = (trailerId: TrailerIdT) => {\n        onOpenNextSidebar({\n            type: CommonSidebarsTypeEnum.trailerDetails,\n            partnerId: data.partnerId,\n            trailerId,\n        });\n    };\n\n    const handleOpenUserDetails = (userId: UserIdT, isBrokerUser?: boolean) => {\n        onOpenNextSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId: data.partnerId,\n            partnerType: isBrokerUser ? PartnerTypeEnum.broker : PartnerTypeEnum.carrier,\n            userId,\n        });\n    };\n\n    return (\n        <EditTruckSidebarContent\n            partnerId={data.partnerId}\n            truckId={null}\n            onClose={onClose}\n            onCancel={onClose}\n            setNeedCloseConfirmation={setNeedCloseConfirmation}\n            onOpenTrailerDetails={handleOpenTrailerDetails}\n            onOpenTruckDetails={handleOpenTruckDetails}\n            onOpenUserDetails={handleOpenUserDetails}\n        />\n    );\n};\n\nexport default AddTruckSidebarContent;\n","import * as React from 'react';\nimport { ApiTransportationOrderTypeT, TransportationOrderTypeEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    transportOrderType?: ApiTransportationOrderTypeT | null;\n};\n\nconst i18nMap: Record<ApiTransportationOrderTypeT, string> = {\n    [TransportationOrderTypeEnum.train]: 'common:asset-type.truck-and-trailer',\n    [TransportationOrderTypeEnum.trailer]: 'common:asset-type.trailer',\n    [TransportationOrderTypeEnum.truck]: 'common:asset-type.truck',\n};\n\nconst TransportOrderTypeFormatter: React.FC<PropsT> = React.memo((props) => {\n    const { transportOrderType } = props;\n\n    const { t } = useTranslation();\n\n    if (!transportOrderType) {\n        return null;\n    }\n\n    return <span>{t(i18nMap[transportOrderType])}</span>;\n});\n\nexport default TransportOrderTypeFormatter;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\n\nimport styles from './PapersGrid.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    children?: React.ReactNode;\n    className?: string;\n};\n\nconst PapersGrid: React.FC<PropsT> = React.memo((props) => {\n    const { children, className } = props;\n\n    return <div className={cs(cx('grid'), className)}>{children}</div>;\n});\n\nexport default PapersGrid;\n","import { QueryFiltersKeysEnum, QueryFiltersT } from '../query-models';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport { getDateFromDate, getEndDayFromDateZero, getStartDayFromDateZero } from 'common/utils/time';\nimport { simpleStringFormatter } from 'common/utils/form-formatters';\n\nconst getQueryFilters = (values: FormValuesT): QueryFiltersT => {\n    const queryFilters: QueryFiltersT = {\n        [QueryFiltersKeysEnum.shipperIds]: values[FieldsEnum.shipperIds].length\n            ? values[FieldsEnum.shipperIds]\n            : undefined,\n        [QueryFiltersKeysEnum.shipperNames]: values[FieldsEnum.shipperNames].length\n            ? values[FieldsEnum.shipperNames]\n            : undefined,\n\n        [QueryFiltersKeysEnum.dictTrailerId]: values[FieldsEnum.dictTrailerId] || undefined,\n\n        [QueryFiltersKeysEnum.pickupAddress]: simpleStringFormatter(values[FieldsEnum.pickupAddress]) || undefined,\n        [QueryFiltersKeysEnum.dropoffAddress]: simpleStringFormatter(values[FieldsEnum.dropoffAddress]) || undefined,\n\n        [QueryFiltersKeysEnum.pickupDateFrom]: undefined,\n        [QueryFiltersKeysEnum.pickupDateTo]: undefined,\n\n        [QueryFiltersKeysEnum.dropOffDateFrom]: undefined,\n        [QueryFiltersKeysEnum.dropOffDateTo]: undefined,\n\n        [QueryFiltersKeysEnum.createdById]: values[FieldsEnum.createdById] || undefined,\n        [QueryFiltersKeysEnum.createdByName]: values[FieldsEnum.createdByName] || undefined,\n\n        [QueryFiltersKeysEnum.createdDateFrom]: undefined,\n        [QueryFiltersKeysEnum.createdDateTo]: undefined,\n\n        [QueryFiltersKeysEnum.source]: values[FieldsEnum.source] || undefined,\n        [QueryFiltersKeysEnum.extendedSource]: values[FieldsEnum.extendedSource].length\n            ? values[FieldsEnum.extendedSource]\n            : undefined,\n    };\n\n    const pickupDates = values[FieldsEnum.pickupDates];\n    if (pickupDates?.from) {\n        const date = getDateFromDate(pickupDates.from);\n        queryFilters[QueryFiltersKeysEnum.pickupDateFrom] = getStartDayFromDateZero(date);\n    }\n\n    if (pickupDates?.to) {\n        const date = getDateFromDate(pickupDates.to);\n        queryFilters[QueryFiltersKeysEnum.pickupDateTo] = getEndDayFromDateZero(date);\n    }\n\n    const dropoffDates = values[FieldsEnum.dropoffDates];\n    if (dropoffDates?.from) {\n        const date = getDateFromDate(dropoffDates.from);\n        queryFilters[QueryFiltersKeysEnum.dropOffDateFrom] = getStartDayFromDateZero(date);\n    }\n\n    if (dropoffDates?.to) {\n        const date = getDateFromDate(dropoffDates.to);\n        queryFilters[QueryFiltersKeysEnum.dropOffDateTo] = getEndDayFromDateZero(date);\n    }\n\n    const createDates = values[FieldsEnum.createDates];\n    if (createDates?.from) {\n        const date = getDateFromDate(createDates.from);\n        queryFilters[QueryFiltersKeysEnum.createdDateFrom] = getStartDayFromDateZero(date);\n    }\n\n    if (createDates?.to) {\n        const date = getDateFromDate(createDates.to);\n        queryFilters[QueryFiltersKeysEnum.createdDateTo] = getEndDayFromDateZero(date);\n    }\n\n    return queryFilters;\n};\n\nexport default getQueryFilters;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './StatusCell.scss';\nimport { CompanyDriverT } from 'common/store/drivers/models';\nimport DriverStatusPill from 'common/components/status-pill/DriverStatusPill/DriverStatusPill';\n\ntype PropsT = {\n    driver: CompanyDriverT;\n    className?: string;\n};\n\nconst cx = classNames.bind(styles);\n\nconst StatusCell: React.FC<PropsT> = React.memo((props) => {\n    const { driver, className } = props;\n\n    return (\n        <div className={cx('status')}>\n            <DriverStatusPill isSymmetrical className={className} status={driver?.status} />\n        </div>\n    );\n});\n\nexport default StatusCell;\n","export {\n    attachPaperToShipment,\n    attachPaperToShipmentBegin,\n    attachPaperToShipmentSuccess,\n    attachPaperToShipmentError,\n    attachPaperToTour,\n    attachPaperToTourBegin,\n    attachPaperToTourSuccess,\n    attachPaperToTourError,\n    deleteAttachedPaper,\n    deleteAttachedPaperBegin,\n    deleteAttachedPaperSuccess,\n    deleteAttachedPaperError,\n    resetPapersEdit,\n} from './slice';\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './PositionOption.scss';\nimport { ContactPositionsEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\nimport Radio from 'common/components/Radio/Radio';\n\ntype PropsT = {\n    onChange?: (value: ContactPositionsEnum) => void;\n    value: ContactPositionsEnum;\n    selectedValue: ContactPositionsEnum;\n    className?: string;\n    isDisabled?: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nconst PositionOption: React.FC<PropsT> = React.memo((props) => {\n    const { value, selectedValue, onChange, isDisabled, className } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <Radio<ContactPositionsEnum>\n            className={cs(cx('radio'), className)}\n            label={\n                <span className={cx('radio__label')}>\n                    {t(`common:team-members.edit-contact.fields.position.labels.${value}`)}\n                </span>\n            }\n            isDisabled={isDisabled}\n            selectedValue={selectedValue}\n            value={value}\n            onChange={onChange}\n        />\n    );\n});\n\nexport default PositionOption;\n","import {\n    FETCH_SYSTEM_SETTINGS_REQUEST_BEGIN,\n    FETCH_SYSTEM_SETTINGS_REQUEST_ERROR,\n    FETCH_SYSTEM_SETTINGS_REQUEST_SUCCESS,\n    SystemSettingsActionTypesT,\n    SystemSettingsStateT,\n    UPDATE_SYSTEM_SETTINGS_REQUEST_BEGIN,\n    UPDATE_SYSTEM_SETTINGS_REQUEST_ERROR,\n    UPDATE_SYSTEM_SETTINGS_REQUEST_SUCCESS,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: SystemSettingsStateT = {\n    updateRequest: requestStatus.initial,\n    fetchRequest: requestStatus.initial,\n    data: null,\n};\n\nexport default (\n    state = initialState,\n    action: SystemSettingsActionTypesT | DestroySessionActionT,\n): SystemSettingsStateT => {\n    switch (action.type) {\n        case FETCH_SYSTEM_SETTINGS_REQUEST_BEGIN: {\n            return {\n                ...state,\n                fetchRequest: requestStatus.loading,\n            };\n        }\n        case FETCH_SYSTEM_SETTINGS_REQUEST_SUCCESS: {\n            const { data } = action;\n\n            return {\n                ...state,\n                data,\n                fetchRequest: requestStatus.ok,\n            };\n        }\n\n        case FETCH_SYSTEM_SETTINGS_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                fetchRequest: requestStatus.setError(error),\n            };\n        }\n\n        case UPDATE_SYSTEM_SETTINGS_REQUEST_BEGIN: {\n            return {\n                ...state,\n                updateRequest: requestStatus.loading,\n            };\n        }\n        case UPDATE_SYSTEM_SETTINGS_REQUEST_SUCCESS: {\n            return {\n                ...state,\n                updateRequest: requestStatus.ok,\n            };\n        }\n\n        case UPDATE_SYSTEM_SETTINGS_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                updateRequest: requestStatus.setError(error),\n            };\n        }\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n        default:\n            return state;\n    }\n};\n","import { FormikTouched } from 'formik';\nimport { DeadheadRouteStopT } from 'broker-admin/store/deadhead-creation/models';\n\nexport enum PointContactsFieldsEnum {\n    companyName = 'companyName',\n    fullName = 'fullName',\n    email = 'email',\n    phoneNumber = 'phoneNumber',\n    comment = 'comment',\n}\n\nexport const ROUTE_DETAILS_FORM_NAME = 'deadhead-creation/route-details/v.1';\n\nexport enum FieldsEnum {\n    contacts = 'contacts',\n}\n\nexport type PointContactsFormValuesT = {\n    companyName: string;\n    fullName: string;\n    email: string;\n    phoneNumber: string;\n    comment: string;\n};\n\nexport type RouteDetailsFormValuesT = {\n    contacts: Array<PointContactsFormValuesT>;\n};\n\nexport type FormErrorsT = Partial<{\n    contacts: Array<\n        Partial<{\n            companyName: FormErrorMessageT;\n            fullName: FormErrorMessageT;\n            email: FormErrorMessageT;\n            phoneNumber: FormErrorMessageT;\n            comment: FormErrorMessageT;\n        }>\n    >;\n}>;\n\nexport type FormTouchedT = OverwriteT<\n    FormikTouched<RouteDetailsFormValuesT>,\n    {\n        contacts?: Array<FormikTouched<PointContactsFormValuesT>>;\n    }\n>;\n\nexport const requiredContactsStopTypeSet = new Set<DeadheadRouteStopT['type']>([\n    'PICKUP_TRUCK',\n    'PICKUP_ROAD_TRAIN',\n    'DROP_TRUCK',\n    'DROP_ROAD_TRAIN',\n]);\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"ReceivedCell__wrap___yitiB\",\"fadeIn\":\"ReceivedCell__fadeIn___eJar6\",\"blinking\":\"ReceivedCell__blinking___WnSwN\"};","// extracted by mini-css-extract-plugin\nexport default {\"table__header\":\"ContactsTable__table__header___OT432\",\"table__column--avatar\":\"ContactsTable__table__column--avatar___z3OmK\",\"table__column--any\":\"ContactsTable__table__column--any___XpMMX\",\"table__column--controls\":\"ContactsTable__table__column--controls___b76Qn\",\"fadeIn\":\"ContactsTable__fadeIn___SEwYX\",\"blinking\":\"ContactsTable__blinking____wxiY\"};","import React from 'react';\nimport { createPortal } from 'react-dom';\nimport classNames from 'classnames/bind';\n\nimport styles from './HeaderSideBarPortal.scss';\nimport SidedBarHeaderLayoutContext from '../contexts/side-bar-header-layout-context';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst HeaderSideBarPortal: React.FC<PropsT> = React.memo((props) => {\n    const { children } = props;\n\n    const contentRootRef = React.useContext(SidedBarHeaderLayoutContext);\n    if (!contentRootRef?.current) {\n        return null;\n    }\n\n    return createPortal(children, contentRootRef.current);\n});\n\nexport default HeaderSideBarPortal;\n","import React from 'react';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\n\nimport { ApiPriceRuleTypeT, PriceRuleTypeEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\nimport { PRICE_RULE_TYPE_I18N_MAP } from 'broker-admin/components/PriceRuleTypeLabel/PriceRuleTypeLabel';\nimport PriceRuleTypePill from 'broker-admin/components/pills/PriceRuleTypePill/PriceRuleTypePill';\nimport DropdownMultipleInput, {\n    RenderTriggerPropsT,\n} from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInput';\nimport DropdownBaseButtonTrigger from 'design-system/components/dropdowns/base/DropdownBaseButtonTrigger/DropdownBaseButtonTrigger';\nimport DropdownMultipleInputCountLabel from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInputCountLabel/DropdownMultipleInputCountLabel';\n\ntype OptionValueT = ApiPriceRuleTypeT;\n\ntype PropsT = {\n    placeholder?: string;\n    values: Array<OptionValueT>;\n    isDisabled?: boolean;\n    onChange: (values: Array<OptionValueT>) => void;\n    hasWarning: boolean;\n    hasError: boolean;\n    hasChanges?: boolean;\n    onBlur: () => void;\n    onFocus: () => void;\n    overlayPosition?: DropdownOverlayPositionEnum;\n};\n\ntype OptionT = {\n    value: OptionValueT;\n    label: React.ReactNode;\n};\n\nconst PriceRuleTypeMultipleDropdown: React.FC<PropsT> = React.memo((props) => {\n    const {\n        values,\n        placeholder,\n        onChange,\n        isDisabled,\n        hasWarning,\n        hasError,\n        hasChanges,\n        onBlur,\n        onFocus,\n        overlayPosition,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const options = React.useMemo((): OptionT[] => {\n        return [PriceRuleTypeEnum.basic, PriceRuleTypeEnum.shipper, PriceRuleTypeEnum.carrier].map((type): OptionT => {\n            return {\n                label: t(PRICE_RULE_TYPE_I18N_MAP[type]),\n                value: type,\n            };\n        });\n    }, [t]);\n\n    const renderTrigger = (\n        props: RenderTriggerPropsT,\n        options: Array<OptionT>,\n        placeholder: string | undefined,\n    ): React.ReactNode => {\n        if (!options?.length) {\n            return <DropdownBaseButtonTrigger {...props}>{placeholder || ''}</DropdownBaseButtonTrigger>;\n        }\n\n        if (options.length === 1) {\n            const firstOption = options?.[0];\n\n            return <DropdownBaseButtonTrigger {...props}>{firstOption?.label}</DropdownBaseButtonTrigger>;\n        }\n\n        return (\n            <DropdownBaseButtonTrigger {...props}>\n                <DropdownMultipleInputCountLabel count={options.length} />\n            </DropdownBaseButtonTrigger>\n        );\n    };\n\n    const renderOption = (option: OptionT | null | undefined): React.ReactNode => {\n        if (!option) {\n            return null;\n        }\n\n        return <PriceRuleTypePill ruleType={option.value} />;\n    };\n\n    const handleSelect = (values: Array<OptionValueT>): void => {\n        onChange(values);\n    };\n\n    const getOptionValue = (option: OptionT): OptionValueT => option.value;\n\n    return (\n        <DropdownMultipleInput<OptionT, OptionValueT>\n            selectedValues={values}\n            placeholder={placeholder}\n            options={options}\n            onSelect={handleSelect}\n            isDisabled={isDisabled}\n            renderOption={renderOption}\n            renderTrigger={renderTrigger}\n            getOptionValue={getOptionValue}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            hasWarning={hasWarning}\n            hasError={hasError}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            testSelector=\"price-rule-type\"\n            onReset={() => {\n                onChange([]);\n            }}\n        />\n    );\n});\n\nexport default PriceRuleTypeMultipleDropdown;\n","import * as React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './TableError.scss';\nimport ErrorPlaceholder, { ErrorPlaceholderPropsT } from 'common/components/ErrorPlaceholder/ErrorPlaceholder';\nimport BigWarningIcon from 'common/icons/BigWarningIcon';\nimport { useTranslation } from 'react-i18next';\nimport {\n    checkIsTranziitApiRequestError,\n    extractApiRequestErrorTraceId,\n    TranziitApiRequestErrorSubTypeEnum,\n} from 'common/utils/api/tranziit/errors/tranziit-api-errors';\nimport {\n    checkIsApiRequestError,\n    checkIsForbiddenError,\n    checkIsNetworkError,\n    checkIsUnauthorizedError,\n} from 'common/utils/api/errors/api-request-error';\n\nconst cx = classNames.bind(styles);\n\nconst checkIsNotFoundError = (error: Error | null | undefined): boolean => {\n    if (!checkIsApiRequestError(error)) {\n        return false;\n    }\n    if (error.httpStatusCode === 404) {\n        return true;\n    }\n    if (checkIsTranziitApiRequestError(error)) {\n        return (\n            error.subType === TranziitApiRequestErrorSubTypeEnum.notFoundUser ||\n            error.subType === TranziitApiRequestErrorSubTypeEnum.notFoundCompany\n        );\n    }\n    return false;\n};\n\ntype PropsT = {\n    className?: string;\n    testSelector?: string;\n    error?: Error;\n    onRetry?: () => void;\n};\n\nconst TableError: React.FC<PropsT> = React.memo((props) => {\n    const { className, testSelector, onRetry, error } = props;\n\n    const { t } = useTranslation();\n\n    const traceId = React.useMemo(() => {\n        return extractApiRequestErrorTraceId(error || null);\n    }, [error]);\n\n    let placeholderProps: ErrorPlaceholderPropsT = {\n        title: t('common:common-errors.something-went-wrong.title'),\n        message: t('common:common-errors.something-went-wrong.description'),\n        traceId,\n    };\n\n    if (error) {\n        if (checkIsNetworkError(error)) {\n            placeholderProps = {\n                ...placeholderProps,\n                title: t('common:common-errors.no-internet.title'),\n                message: t('common:common-errors.no-internet.description'),\n            };\n        } else if (checkIsNotFoundError(error)) {\n            placeholderProps = {\n                ...placeholderProps,\n                title: t('common:common-errors.not-found.title'),\n                message: null,\n            };\n        } else if (checkIsUnauthorizedError(error)) {\n            placeholderProps = {\n                ...placeholderProps,\n                title: t('common:common-errors.not-authorized.title'),\n                message: null,\n            };\n        } else if (\n            checkIsTranziitApiRequestError(error) &&\n            (error.subType === TranziitApiRequestErrorSubTypeEnum.accessDeniedToEntity ||\n                error.subType === TranziitApiRequestErrorSubTypeEnum.accessDeniedToApi)\n        ) {\n            placeholderProps = {\n                ...placeholderProps,\n                title: t('common:common-errors.access-denied.title'),\n                message: null,\n            };\n        } else if (checkIsForbiddenError(error)) {\n            placeholderProps = {\n                ...placeholderProps,\n                title: t('common:common-errors.access-denied.title'),\n                message: null,\n            };\n        }\n    }\n\n    return (\n        <div className={cs(className, cx('inner'))}>\n            <ErrorPlaceholder\n                className={cx('content')}\n                testSelector={testSelector}\n                icon={<BigWarningIcon />}\n                {...placeholderProps}\n                actionsConfig={[\n                    onRetry\n                        ? {\n                              children: t('common:common-errors.something-went-wrong.actions.retry'),\n                              onClick: onRetry,\n                          }\n                        : null,\n                ]}\n            />\n        </div>\n    );\n});\n\nexport default TableError;\n","import { PartnerDetailsStateT } from './types';\nimport { StateT } from 'broker-admin/store/models';\nimport { createSelector } from 'reselect';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport { PartnerPermissionsT } from 'common/contexts/partner-permission-context';\n\nexport const selectFetchPartnerDetailsRequest = (state: StateT): PartnerDetailsStateT['fetchRequest'] =>\n    state.partner.details.fetchRequest;\n\nexport const selectUpdatePartnerDetailsRequest = (state: StateT): PartnerDetailsStateT['updateRequest'] =>\n    state.partner.details.updateRequest;\n\nexport const selectLockPartnerDetailsRequest = (state: StateT): PartnerDetailsStateT['updateRequest'] =>\n    state.partner.details.lockRequest;\n\nexport const selectVerifyPartnerDetailsRequest = (state: StateT): PartnerDetailsStateT['updateRequest'] =>\n    state.partner.details.verifyRequest;\n\nexport const selectLinkPartnerRequestStatus = (state: StateT): PartnerDetailsStateT['linkRequestStatus'] =>\n    state.partner.details.linkRequestStatus;\n\nexport const selectPartnerDetailsById = (state: StateT): PartnerDetailsStateT['byId'] => state.partner.details.byId;\n\nexport const selectPartnerPermissions = (id: PartnerIdT | null) => {\n    return createSelector(\n        selectPermissions,\n        selectPartnerDetailsById,\n        (permissions, partnerDetailsById): PartnerPermissionsT => {\n            const partnerDetails = partnerDetailsById[id as PartnerIdT] || null;\n\n            const enableAssetEditing = !!partnerDetails?.enableAssetEditing;\n\n            const hasAccessToDocuments = !!partnerDetails?.hasAccessToDocuments;\n\n            return {\n                canImportTrucks: permissions.canImportTrucks && enableAssetEditing,\n                canEditTrucks: permissions.canEditTrucks && enableAssetEditing,\n                canActivateTrucks: permissions.canActivateTrucks && enableAssetEditing,\n                canArchiveTrucks: permissions.canArchiveTrucks && enableAssetEditing,\n                canSetUnavailableTrucks: true,\n\n                canImportTrailers: permissions.canImportTrailers && enableAssetEditing,\n                canEditTrailers: permissions.canEditTrailers && enableAssetEditing,\n                canActivateTrailers: permissions.canActivateTrailers && enableAssetEditing,\n                canArchiveTrailers: permissions.canArchiveTrailers && enableAssetEditing,\n                canSetUnavailableTrailers: true,\n\n                // use only backend permissions\n                canUploadDocuments: hasAccessToDocuments,\n                canVerifyDocuments: hasAccessToDocuments,\n                canRevokeDocuments: hasAccessToDocuments,\n                canEditDocuments: hasAccessToDocuments,\n                canReviewDocuments: hasAccessToDocuments,\n\n                canTeleportAssets: permissions.canTeleportAssets,\n            };\n        },\n    );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"EditDriverSidebarContent__form___ldhwS\",\"fields-group\":\"EditDriverSidebarContent__fields-group___WaENL\",\"fields-group__field\":\"EditDriverSidebarContent__fields-group__field___DtRjl\",\"fields-group__field--three\":\"EditDriverSidebarContent__fields-group__field--three___AaeAa\",\"fields-group__field--two\":\"EditDriverSidebarContent__fields-group__field--two___BC7kJ\",\"actions\":\"EditDriverSidebarContent__actions___zjvAw\",\"actions__action--cancel\":\"EditDriverSidebarContent__actions__action--cancel___olrro\",\"actions__action--update\":\"EditDriverSidebarContent__actions__action--update___DlDBU\",\"fadeIn\":\"EditDriverSidebarContent__fadeIn___cKexn\",\"blinking\":\"EditDriverSidebarContent__blinking___GxKIp\"};","// extracted by mini-css-extract-plugin\nexport default {\"icon\":\"CountryFlagPlaceholderOption__icon___fcZZL\",\"label\":\"CountryFlagPlaceholderOption__label___OGWbv\",\"option\":\"CountryFlagPlaceholderOption__option___ikjad\",\"fadeIn\":\"CountryFlagPlaceholderOption__fadeIn___Q4XZP\",\"blinking\":\"CountryFlagPlaceholderOption__blinking___uyxL0\"};","import * as React from 'react';\n\nimport { DropdownControlOptionT } from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { useTranslation } from 'react-i18next';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport DeleteIcon from 'common/icons/DeleteIcon';\nimport { useSelector } from 'react-redux';\nimport { selectPermissions } from 'common/store/auth/selectors';\n\nexport type TeamActionsCallbacksT = {\n    onDelete: (teamId: TeamIdT) => void;\n};\n\ntype BaseBrokerTeamT = {\n    id: TeamIdT | null;\n};\n\nexport const useTeamActions = <T extends BaseBrokerTeamT>(\n    brokerTeam: T,\n    callbacks: TeamActionsCallbacksT,\n): Array<DropdownControlOptionT | null> => {\n    const { t } = useTranslation();\n\n    const permissions = useSelector(selectPermissions);\n    const { canDeleteBrokerUsersTeams } = permissions;\n\n    const teamId = brokerTeam.id;\n\n    return React.useMemo(() => {\n        if (!teamId) {\n            return [];\n        }\n\n        return [\n            ...(canDeleteBrokerUsersTeams\n                ? [\n                      {\n                          label: (\n                              <DropdownControlOptionLabel\n                                  icon={<DeleteIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                                  label={t('broker-users.teams.list.actions.delete-team')}\n                              />\n                          ),\n                          onSelect: () => callbacks.onDelete(teamId),\n                      },\n                  ]\n                : []),\n        ];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [t, callbacks.onDelete, teamId, canDeleteBrokerUsersTeams]);\n};\n","import {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport { UserStatusEnum } from 'common/utils/api/models';\nimport EditIcon from 'common/icons/EditIcon';\nimport { logWarning } from 'common/utils/logger';\nimport DeleteUserIcon from 'common/icons/DeleteUserIcon';\nimport RestoreIcon from 'common/icons/RestoreIcon';\nimport { CompanyDriverDetailsT } from 'common/store/drivers/models';\nimport { useSelector } from 'react-redux';\nimport { selectPermissions } from 'common/store/auth/selectors';\n\ntype CallbacksT = {\n    onEdit?: (driverId: DriverIdT) => void;\n    onCancelInvite: (params: { driverPhoneNumber: string; driverUserId: UserIdT; companyId: PartnerIdT }) => void;\n    onArchiveDriver: (params: {\n        companyId: PartnerIdT;\n        driverId: DriverIdT;\n        driverName: string;\n        driverSurname: string;\n    }) => void;\n    onActivateDriver: (params: {\n        companyId: PartnerIdT;\n        driverId: DriverIdT;\n        driverName: string;\n        driverSurname: string;\n    }) => void;\n};\n\nconst EMPTY_OPTIONS: Array<DropdownControlOptionT> = [];\n\nexport const useDriverActionOptions = (\n    driverDetails: CompanyDriverDetailsT | null,\n    partnerId: PartnerIdT,\n    callbacks: CallbacksT,\n): Array<DropdownControlOptionT | SpecialOptionEnum | null> => {\n    const { t } = useTranslation();\n\n    const permissions = useSelector(selectPermissions);\n    if (!permissions.canEditDrivers) {\n        return EMPTY_OPTIONS;\n    }\n\n    const isShowEditAction = driverDetails?.status === UserStatusEnum.active;\n    const isShowCancelInviteAction = driverDetails?.status === UserStatusEnum.pending;\n    const isShowRestoreAction = driverDetails?.status === UserStatusEnum.archived;\n    const isShowArchiveAction = driverDetails?.status === UserStatusEnum.active;\n\n    const driverId = driverDetails?.id;\n    if (!driverId) {\n        return EMPTY_OPTIONS;\n    }\n\n    const { onEdit } = callbacks;\n\n    return [\n        ...(isShowEditAction && onEdit\n            ? [\n                  {\n                      label: (\n                          <DropdownControlOptionLabel\n                              label={t('common:drivers-page.actions.edit')}\n                              icon={\n                                  <EditIcon\n                                      size={DEFAULT_ICON_SIZE}\n                                      fillColor={StyleGuideColorsEnum.brandAccent}\n                                      strokeColor={StyleGuideColorsEnum.brandDark}\n                                  />\n                              }\n                          />\n                      ),\n                      onSelect: () => {\n                          if (!driverId) {\n                              logWarning('empty selectedDriverId');\n                              return;\n                          }\n\n                          onEdit(driverId);\n                      },\n                  },\n                  SpecialOptionEnum.separator,\n              ]\n            : []),\n        isShowCancelInviteAction\n            ? {\n                  label: (\n                      <DropdownControlOptionLabel\n                          label={t('common:drivers-page.actions.cancel-invite')}\n                          icon={<CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                      />\n                  ),\n                  onSelect: () => {\n                      if (!driverId) {\n                          logWarning('empty selectedDriverId');\n                          return;\n                      }\n\n                      const driverUserId = driverDetails?.contact?.userId;\n                      if (!driverUserId) {\n                          logWarning('empty driverUserId');\n                          return;\n                      }\n\n                      callbacks.onCancelInvite({\n                          driverPhoneNumber: driverDetails?.contact?.mobilePhone || '',\n                          driverUserId,\n                          companyId: partnerId,\n                      });\n                  },\n              }\n            : null,\n        isShowArchiveAction\n            ? {\n                  label: (\n                      <DropdownControlOptionLabel\n                          label={t('common:drivers-page.actions.archive')}\n                          icon={\n                              <DeleteUserIcon\n                                  fillColor={StyleGuideColorsEnum.white}\n                                  strokeColor={StyleGuideColorsEnum.tomatoRed}\n                              />\n                          }\n                      />\n                  ),\n                  onSelect: () => {\n                      callbacks.onArchiveDriver({\n                          companyId: partnerId,\n                          driverId,\n                          driverName: driverDetails?.contact?.name || '',\n                          driverSurname: driverDetails?.contact?.surname || '',\n                      });\n                  },\n              }\n            : null,\n        isShowRestoreAction\n            ? {\n                  label: (\n                      <DropdownControlOptionLabel\n                          label={t('common:drivers-page.actions.restore')}\n                          icon={<RestoreIcon strokeColor={StyleGuideColorsEnum.slate} />}\n                      />\n                  ),\n                  onSelect: () => {\n                      callbacks.onActivateDriver({\n                          companyId: partnerId,\n                          driverId,\n                          driverName: driverDetails?.contact?.name || '',\n                          driverSurname: driverDetails?.contact?.surname || '',\n                      });\n                  },\n              }\n            : null,\n    ];\n};\n","import * as React from 'react';\nimport FilterPills, { FilterPillsConfigT } from 'common/components/FilterPills/FilterPills';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from '../query-models';\nimport { Trans, useTranslation } from 'react-i18next';\nimport TrailerDictIdFilterPill from 'common/components/filter-pills/TrailerDictIdFilterPill/TrailerDictIdFilterPill';\nimport { FilterPillThemeEnum } from 'common/components/FilterPills/FilterPill/FilterPill';\nimport { formatDateRangeFilterValue, pillIconRendererMap } from 'common/components/FilterPills/pill-renderers';\nimport { ApiRFQBrokerSourceT, RFQShipperSourceEnum } from 'common/utils/api/models';\nimport { RFQ_SOURCE_T_MAP } from 'common/components/pills/RFQSourcePill/RFQSourcePill';\n\ntype PropsT = {\n    isCompact?: boolean;\n    className?: string;\n    queryFilters: QueryFiltersT;\n    setQueryFilters: (queryFilters: QueryFiltersT) => void;\n};\n\nconst sourceMapT: Record<RFQShipperSourceEnum, string> = {\n    [RFQShipperSourceEnum.internal]: 'common:rfqs-page.table.filters.source-type.internal',\n    [RFQShipperSourceEnum.imported]: 'common:rfqs-page.table.filters.source-type.imported',\n};\n\nconst SelectedFilters: React.FC<PropsT> = React.memo((props) => {\n    const { isCompact, queryFilters, setQueryFilters } = props;\n\n    const { t } = useTranslation();\n\n    const filterPillsConfig = React.useMemo(\n        (): FilterPillsConfigT<QueryFiltersT> => [\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters, index) => {\n                    return t('common:rfqs-page.table.filters.pills.shipper', {\n                        value: queryFilters[QueryFiltersKeysEnum.shipperNames]?.[index] || '',\n                    });\n                },\n                isMultiple: true,\n                clearKeys: [QueryFiltersKeysEnum.shipperIds, QueryFiltersKeysEnum.shipperNames],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('common:rfqs-page.table.filters.pills.search', {\n                        value: queryFilters[QueryFiltersKeysEnum.searchText],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.searchText],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: (queryFilters) => {\n                    const trailerDictId = queryFilters[QueryFiltersKeysEnum.dictTrailerId];\n\n                    return (\n                        <Trans\n                            i18nKey=\"common:rfqs-page.table.filters.pills.trailer-type\"\n                            components={{\n                                value: <TrailerDictIdFilterPill trailerDictId={trailerDictId} />,\n                            }}\n                        />\n                    );\n                },\n                clearKeys: [QueryFiltersKeysEnum.dictTrailerId],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('common:rfqs-page.table.filters.pills.pickup-address', {\n                        value: queryFilters[QueryFiltersKeysEnum.pickupAddress],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.pickupAddress],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('common:rfqs-page.table.filters.pills.dropoff-address', {\n                        value: queryFilters[QueryFiltersKeysEnum.dropoffAddress],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.dropoffAddress],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const pickupDateFrom = queryFilters[QueryFiltersKeysEnum.pickupDateFrom];\n                    const pickupDateTo = queryFilters[QueryFiltersKeysEnum.pickupDateTo];\n\n                    return t('common:rfqs-page.table.filters.pills.pickup', {\n                        value: formatDateRangeFilterValue(pickupDateFrom, pickupDateTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.pickupDateFrom, QueryFiltersKeysEnum.pickupDateTo],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const dropOffDateFrom = queryFilters[QueryFiltersKeysEnum.dropOffDateFrom];\n                    const dropOffDateTo = queryFilters[QueryFiltersKeysEnum.dropOffDateTo];\n\n                    return t('common:rfqs-page.table.filters.pills.drop-off', {\n                        value: formatDateRangeFilterValue(dropOffDateFrom, dropOffDateTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.dropOffDateFrom, QueryFiltersKeysEnum.dropOffDateTo],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const createdDateFrom = queryFilters[QueryFiltersKeysEnum.createdDateFrom];\n                    const createdDateTo = queryFilters[QueryFiltersKeysEnum.createdDateTo];\n\n                    return t('common:rfqs-page.table.filters.pills.created-dates', {\n                        value: formatDateRangeFilterValue(createdDateFrom, createdDateTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.createdDateFrom, QueryFiltersKeysEnum.createdDateTo],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                renderIcon: (queryFilters, isCompact) => {\n                    return pillIconRendererMap.avatar(queryFilters[QueryFiltersKeysEnum.createdByName], isCompact);\n                },\n                render: (queryFilters) => {\n                    return t('common:rfqs-page.table.filters.pills.created-by', {\n                        value: queryFilters[QueryFiltersKeysEnum.createdByName],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.createdById, QueryFiltersKeysEnum.createdByName],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: (queryFilters) => {\n                    const source = queryFilters[QueryFiltersKeysEnum.source];\n                    return t('common:rfqs-page.table.filters.pills.source', {\n                        value: t(sourceMapT[source as RFQShipperSourceEnum]),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.source],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: (queryFilters, index) => {\n                    const source = queryFilters[QueryFiltersKeysEnum.extendedSource]?.[index];\n                    if (!source) {\n                        return null;\n                    }\n\n                    return t('common:rfqs-page.table.filters.pills.source', {\n                        value: t(RFQ_SOURCE_T_MAP[source as ApiRFQBrokerSourceT]),\n                    });\n                },\n                isMultiple: true,\n                clearKeys: [QueryFiltersKeysEnum.extendedSource],\n            },\n        ],\n        [t],\n    );\n\n    return (\n        <FilterPills<QueryFiltersT>\n            isCompact={isCompact}\n            queryFilters={queryFilters}\n            setQueryFilters={setQueryFilters}\n            config={filterPillsConfig}\n        />\n    );\n});\n\nexport default SelectedFilters;\n","import { SharableStateT } from '../models';\nimport { CarrierSuggestStateT } from './types';\n\nexport const selectFindCarriersQuery = (state: SharableStateT): CarrierSuggestStateT['query'] =>\n    state.carrierSuggest.query;\n\nexport const selectFindCarriersRequest = (state: SharableStateT): CarrierSuggestStateT['requestStatus'] =>\n    state.carrierSuggest.requestStatus;\n\nexport const selectCarriersIds = (state: SharableStateT): CarrierSuggestStateT['ids'] => state.carrierSuggest.ids;\n\nexport const selectCarriersById = (state: SharableStateT): CarrierSuggestStateT['byId'] => state.carrierSuggest.byId;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './StartAssignmentFooter.scss';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\nimport TimeLeftForStart from 'common/layouts/sidebar-footers/TimeLeftForStart/TimeLeftForStart';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport {\n    ApiAssignAssetsUnavailableReasonT,\n    ApiSendToSpotUnavailableReasonT,\n} from 'broker-admin/utils/api/broker-tranziit/models';\nimport { ApiBrokerCommonTourDetailsT } from 'common/utils/api/models';\n\nconst cx = classNames.bind(styles);\n\nconst assignAssetsUnavailableReasonI18nMap: Record<ApiAssignAssetsUnavailableReasonT, string> = {\n    KAM_CANT_ASSIGN_ASSETS: 'order-details.assign-assets-unavailable-reason.KAM_CANT_ASSIGN_ASSETS',\n    TOUR_ON_SPOT: 'order-details.assign-assets-unavailable-reason.TOUR_ON_SPOT',\n    UNAVAILABLE_STATUS: 'order-details.assign-assets-unavailable-reason.UNAVAILABLE_STATUS',\n    RUN_OUT_OF_TIME_TO_ASSIGN_CARRIER:\n        'order-details.assign-assets-unavailable-reason.RUN_OUT_OF_TIME_TO_ASSIGN_CARRIER',\n};\n\nconst sendToSpotUnavailableReasonI18nMap: Record<ApiSendToSpotUnavailableReasonT, string> = {\n    KAM_CANT_SEND_TO_SPOT: 'order-details.send-to-spot-unavailable-reason.KAM_CANT_SEND_TO_SPOT',\n    TOUR_ALREADY_ON_SPOT: 'order-details.send-to-spot-unavailable-reason.TOUR_ALREADY_ON_SPOT',\n    UNAVAILABLE_STATUS: 'order-details.send-to-spot-unavailable-reason.UNAVAILABLE_STATUS',\n    TOUR_HAS_DROP_AND_HOOK_STOP: 'order-details.send-to-spot-unavailable-reason.TOUR_HAS_DROP_AND_HOOK_STOP',\n    TOUR_HAS_ACTIVE_TRANSPORTATION_ORDER:\n        'order-details.send-to-spot-unavailable-reason.TOUR_HAS_ACTIVE_TRANSPORTATION_ORDER',\n    ORIGIN_IS_BEFORE_NOW: 'order-details.send-to-spot-unavailable-reason.ORIGIN_IS_BEFORE_NOW',\n    DEADLINE_TIME_EXCEEDED: 'order-details.send-to-spot-unavailable-reason.DEADLINE_TIME_EXCEEDED',\n    DEADLINE_BEFORE_NOW: 'order-details.send-to-spot-unavailable-reason.DEADLINE_BEFORE_NOW',\n};\n\ntype PropsT = {\n    className?: string;\n    tour: ApiBrokerCommonTourDetailsT | null;\n    canAssignTour: boolean;\n    assignAssetsUnavailableReason: ApiAssignAssetsUnavailableReasonT | null;\n    onStartAssignment: () => void;\n    sendToSpotUnavailableReason: ApiSendToSpotUnavailableReasonT | null;\n    onStartSendToSpot: () => void;\n    isDisableAnyActions: boolean;\n};\n\nconst StartAssignmentFooter: React.FC<PropsT> = React.memo((props) => {\n    const {\n        tour,\n        canAssignTour,\n        assignAssetsUnavailableReason,\n        onStartAssignment,\n        sendToSpotUnavailableReason,\n        onStartSendToSpot,\n        isDisableAnyActions,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const firstWaypoint = tour?.waypoints?.[0] || null;\n    const deadline = firstWaypoint?.correctedDateTimeFrom || firstWaypoint?.originalDateTimeFrom || null;\n\n    const assignAssetsTooltipContent = React.useMemo(() => {\n        if (assignAssetsUnavailableReason) {\n            return (\n                <TooltipContent theme={TooltipContentThemeEnum.black} width={150} isCenter>\n                    {t(assignAssetsUnavailableReasonI18nMap[assignAssetsUnavailableReason])}\n                </TooltipContent>\n            );\n        }\n\n        return null;\n    }, [assignAssetsUnavailableReason, t]);\n\n    const sendToSpotTooltipContent = React.useMemo(() => {\n        if (sendToSpotUnavailableReason) {\n            return (\n                <TooltipContent theme={TooltipContentThemeEnum.black} width={150} isCenter>\n                    {t(sendToSpotUnavailableReasonI18nMap[sendToSpotUnavailableReason])}\n                </TooltipContent>\n            );\n        }\n\n        return null;\n    }, [sendToSpotUnavailableReason, t]);\n\n    if (!tour) {\n        return null;\n    }\n\n    return (\n        <TimeLeftForStart\n            deadline={deadline}\n            alreadyStartedLabel={t('assignment.tour-already-started')}\n            deadlineLabel={t('assignment.to-assign')}\n            renderActions={(isDisabled) => (\n                <>\n                    {canAssignTour && (\n                        <Tooltip\n                            position={TooltipPositionEnum.topCenter}\n                            theme={TooltipThemeEnum.black}\n                            tooltipNode={assignAssetsTooltipContent}\n                        >\n                            {() => (\n                                <Button\n                                    theme={ButtonThemeEnum.secondaryPositive}\n                                    className={cx('action', 'action--assign')}\n                                    onClick={onStartAssignment}\n                                    isDisabled={isDisabled || isDisableAnyActions || !!assignAssetsUnavailableReason}\n                                >\n                                    {t('order-details.actions.start-assignment')}\n                                </Button>\n                            )}\n                        </Tooltip>\n                    )}\n                    {canAssignTour && (\n                        <Tooltip\n                            position={TooltipPositionEnum.topCenter}\n                            theme={TooltipThemeEnum.black}\n                            tooltipNode={sendToSpotTooltipContent}\n                        >\n                            {() => (\n                                <Button\n                                    theme={ButtonThemeEnum.secondary}\n                                    className={cx('action')}\n                                    onClick={onStartSendToSpot}\n                                    isDisabled={isDisabled || isDisableAnyActions || !!sendToSpotUnavailableReason}\n                                >\n                                    {t('order-details.actions.send-to-spot')}\n                                </Button>\n                            )}\n                        </Tooltip>\n                    )}\n                </>\n            )}\n        />\n    );\n});\n\nexport default StartAssignmentFooter;\n","import { FetchTransportOrdersPageQueryT } from 'common/store/transport-orders/models';\nimport { TransportOrderQuickFilterEnum, TransportOrderSortEnum } from 'common/utils/api/models';\nimport { PageSortT, SortDirectionEnum } from 'common/utils/query';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from './query-models';\n\nconst getQueryFromQuickFilters = (quickFilter?: TransportOrderQuickFilterEnum): FetchTransportOrdersPageQueryT => {\n    switch (quickFilter) {\n        case TransportOrderQuickFilterEnum.new: {\n            return {\n                statusBar: 'NEW',\n            };\n        }\n        case TransportOrderQuickFilterEnum.noAssets: {\n            return {\n                statusBar: 'ASSETS_UNASSIGNED',\n            };\n        }\n        case TransportOrderQuickFilterEnum.noDriver: {\n            return {\n                statusBar: 'DRIVER_UNASSIGNED',\n            };\n        }\n        case TransportOrderQuickFilterEnum.declined: {\n            return {\n                statusBar: 'DECLINED',\n            };\n        }\n        case TransportOrderQuickFilterEnum.assigned: {\n            return {\n                statusBar: 'ASSIGNED',\n            };\n        }\n        case TransportOrderQuickFilterEnum.inTransit: {\n            return {\n                statusBar: 'IN_TRANSIT',\n            };\n        }\n        case TransportOrderQuickFilterEnum.done: {\n            return {\n                statusBar: 'DONE',\n            };\n        }\n        case TransportOrderQuickFilterEnum.canceled: {\n            return {\n                statusBar: 'CANCELED',\n            };\n        }\n        default:\n            return {};\n    }\n};\n\nconst formatSort = (\n    sort: PageSortT<TransportOrderSortEnum> | null,\n): FetchTransportOrdersPageQueryT['sorting'] | null => {\n    switch (sort?.value) {\n        case TransportOrderSortEnum.dropOffDate: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'DESTINATION_DATE_ASC';\n            }\n            return 'DESTINATION_DATE_DESC';\n        }\n        case TransportOrderSortEnum.pickupDate: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'ORIGIN_DATE_ASC';\n            }\n            return 'ORIGIN_DATE_DESC';\n        }\n        case TransportOrderSortEnum.price: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'PRICE_ASC';\n            }\n            return 'PRICE_DESC';\n        }\n        case TransportOrderSortEnum.receiveDate: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'RECEIVED_DATE_ASC';\n            }\n            return 'RECEIVED_DATE_DESC';\n        }\n        default: {\n            return null;\n        }\n    }\n};\n\nconst prepareFetchPageQuery = (\n    queryFilters: QueryFiltersT,\n    sort: PageSortT<TransportOrderSortEnum> | null,\n): FetchTransportOrdersPageQueryT => {\n    const dictTrailerId = queryFilters[QueryFiltersKeysEnum.dictTrailerId];\n    const maxPrice = queryFilters[QueryFiltersKeysEnum.maxPrice];\n    const minPrice = queryFilters[QueryFiltersKeysEnum.minPrice];\n    const driverId = queryFilters[QueryFiltersKeysEnum.driverId];\n\n    let spot: boolean | undefined = queryFilters[QueryFiltersKeysEnum.spot] || undefined;\n    // WTF logic ?!?!?\n    if (queryFilters[QueryFiltersKeysEnum.dedicated]) {\n        spot = false;\n    }\n\n    return {\n        type: queryFilters[QueryFiltersKeysEnum.orderType],\n\n        dictTrailerId: typeof dictTrailerId === 'string' ? +dictTrailerId : undefined,\n        plateNumber: queryFilters[QueryFiltersKeysEnum.plateNumber] || undefined,\n\n        destinationAddress: queryFilters[QueryFiltersKeysEnum.destinationAddress] || undefined,\n        originAddress: queryFilters[QueryFiltersKeysEnum.originAddress] || undefined,\n\n        driverIds: driverId ? [driverId] : undefined,\n\n        upperPrice: typeof maxPrice === 'string' ? parseInt(maxPrice, 10) : undefined,\n        lowerPrice: typeof minPrice === 'string' ? parseInt(minPrice, 10) : undefined,\n\n        receivedDateFrom: queryFilters[QueryFiltersKeysEnum.receiveDatesFrom] || undefined,\n        receivedDateTo: queryFilters[QueryFiltersKeysEnum.receiveDatesTo] || undefined,\n\n        originDateFrom: queryFilters[QueryFiltersKeysEnum.pickupDateFrom] || undefined,\n        originDateTo: queryFilters[QueryFiltersKeysEnum.pickupDateTo] || undefined,\n\n        destinationDateFrom: queryFilters[QueryFiltersKeysEnum.dropOffDateFrom] || undefined,\n        destinationDateTo: queryFilters[QueryFiltersKeysEnum.dropOffDateTo] || undefined,\n\n        textSearch: queryFilters[QueryFiltersKeysEnum.searchText] || undefined,\n\n        spot,\n\n        runningOutOfTimeToAssignAssets: queryFilters[QueryFiltersKeysEnum.runningOutOfTimeToAssignAssets] || undefined,\n        runOutOfTimeToAssignAssets: queryFilters[QueryFiltersKeysEnum.ranOutOfTimeToAssignAssets] || undefined,\n        runningOutOfTimeToAssignDriver: queryFilters[QueryFiltersKeysEnum.runningOutOfTimeToAssignDriver] || undefined,\n        runOutOfTimeToAssignDriver: queryFilters[QueryFiltersKeysEnum.ranOutOfTimeToAssignDriver] || undefined,\n        delaying: queryFilters[QueryFiltersKeysEnum.delaying] || undefined,\n        noShow: queryFilters[QueryFiltersKeysEnum.expired] || undefined,\n        missed: queryFilters[QueryFiltersKeysEnum.missed] || undefined,\n\n        ...getQueryFromQuickFilters(queryFilters[QueryFiltersKeysEnum.quickFilter]),\n\n        sorting: formatSort(sort) || undefined,\n    };\n};\n\nexport { prepareFetchPageQuery };\n","// extracted by mini-css-extract-plugin\nexport default {\"tabs\":\"SpotRequestDetails__tabs___rRhAp\",\"route\":\"SpotRequestDetails__route___MI86s\",\"table\":\"SpotRequestDetails__table___p_zdi\",\"shipment-card\":\"SpotRequestDetails__shipment-card___ljqN2\",\"waypoint-card\":\"SpotRequestDetails__waypoint-card___KlA4t\",\"excluded-countries\":\"SpotRequestDetails__excluded-countries___7arqC\",\"separator\":\"SpotRequestDetails__separator___n3KlO\",\"bid\":\"SpotRequestDetails__bid___lSI2v\",\"empty-prices\":\"SpotRequestDetails__empty-prices____BKnf\",\"fadeIn\":\"SpotRequestDetails__fadeIn___bP2ZU\",\"blinking\":\"SpotRequestDetails__blinking___TqnNH\"};","import * as React from 'react';\nimport { MapPinThemeEnum, MapPointPropsT } from 'common/components/maps/MapPin/MapPin';\nimport MapStackClusterPin from 'common/components/maps/MapStackClusterPin/MapStackClusterPin';\nimport { PointGeoJsonPropertiesT } from '../models';\nimport TrailerIcon from 'common/icons/TrailerIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport TruckIcon from 'common/icons/TruckIcon';\nimport { ApiShipmentStatusT, OrderCreationReservePointTypeEnum } from 'common/utils/api/models';\nimport WaypointNumberPinContent from 'common/components/maps/pins/content/WaypointNumberPinContent/WaypointNumberPinContent';\nimport { visitedOriginLoadStatusSet } from '../constants';\nimport BoatIcon from 'common/icons/BoatIcon';\n\ntype PropsT = {\n    className?: string;\n    lat?: number | undefined;\n    lng?: number | undefined;\n    loadStatus?: ApiShipmentStatusT;\n    clusterId: number;\n    onClusterClick: (clusterId: number) => void;\n    clusterProperties: Array<PointGeoJsonPropertiesT>;\n    withoutArrow?: boolean;\n};\n\nconst PointStackClusterPin: React.FC<PropsT> = React.memo((props) => {\n    const { className, lat, lng, onClusterClick, clusterId, clusterProperties, withoutArrow, loadStatus } = props;\n\n    const pointProps: Array<Partial<MapPointPropsT>> = [];\n\n    clusterProperties.forEach((pointProperties: PointGeoJsonPropertiesT) => {\n        if (pointProperties.type === 'trailer-last-point') {\n            pointProps.push({\n                theme: MapPinThemeEnum.brandDark,\n                children: (\n                    <TrailerIcon\n                        fillColor={StyleGuideColorsEnum.brandDark}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        size={DEFAULT_ICON_SIZE}\n                    />\n                ),\n            });\n        }\n\n        if (pointProperties.type === 'truck-last-point') {\n            pointProps.push({\n                theme: MapPinThemeEnum.brandDark,\n                children: (\n                    <TruckIcon\n                        fillColor={StyleGuideColorsEnum.brandDark}\n                        strokeColor={StyleGuideColorsEnum.white}\n                        size={DEFAULT_ICON_SIZE}\n                    />\n                ),\n            });\n        }\n\n        if (pointProperties.type === 'point') {\n            const { point, pointNumber } = pointProperties;\n            const isVisited = loadStatus && visitedOriginLoadStatusSet.has(loadStatus);\n\n            if (\n                point.type === OrderCreationReservePointTypeEnum.ferryOnboard ||\n                point.type === OrderCreationReservePointTypeEnum.ferryDisembark\n            ) {\n                let theme = MapPinThemeEnum.charcoal;\n                if (isVisited) {\n                    theme = MapPinThemeEnum.brandDark;\n                }\n\n                pointProps.push({\n                    theme,\n                    children: (\n                        <BoatIcon\n                            size={DEFAULT_ICON_SIZE}\n                            fillColor={StyleGuideColorsEnum.brandDark}\n                            strokeColor={StyleGuideColorsEnum.white}\n                        />\n                    ),\n                });\n            } else {\n                let theme = MapPinThemeEnum.gray;\n                if (point.type === OrderCreationReservePointTypeEnum.shipment) {\n                    theme = MapPinThemeEnum.charcoal;\n                }\n\n                if (isVisited) {\n                    theme = MapPinThemeEnum.brandDark;\n                }\n\n                pointProps.push({\n                    theme,\n                    hasPaddings: false,\n                    children: (\n                        <WaypointNumberPinContent withPaddings key={`route-point-${pointNumber}`}>\n                            {pointNumber}\n                        </WaypointNumberPinContent>\n                    ),\n                });\n            }\n        }\n    });\n\n    if (!pointProps?.length) {\n        return null;\n    }\n\n    return (\n        <MapStackClusterPin\n            className={className}\n            lat={lat}\n            lng={lng}\n            pointProps={pointProps}\n            clusterId={clusterId}\n            onClusterClick={onClusterClick}\n            withoutArrow={withoutArrow}\n        />\n    );\n});\n\nexport default PointStackClusterPin;\n","// extracted by mini-css-extract-plugin\nexport default {\"field--name\":\"EditShipperContractDetailsForm__field--name___E2eiE\",\"field--number\":\"EditShipperContractDetailsForm__field--number___uJ67n\",\"field--activate-date\":\"EditShipperContractDetailsForm__field--activate-date___glaBl\",\"field--valid-till\":\"EditShipperContractDetailsForm__field--valid-till___cBLtp\",\"field--orders-left\":\"EditShipperContractDetailsForm__field--orders-left___Nm7IU\",\"field--file\":\"EditShipperContractDetailsForm__field--file___xNSUz\",\"fadeIn\":\"EditShipperContractDetailsForm__fadeIn___V3gUf\",\"blinking\":\"EditShipperContractDetailsForm__blinking___AWsRV\"};","// extracted by mini-css-extract-plugin\nexport default {\"link\":\"LocationLabel__link___hpgRk\"};","// extracted by mini-css-extract-plugin\nexport default {\"head\":\"NotificationCardHead__head___wTpAI\",\"subject\":\"NotificationCardHead__subject___ZwECR\",\"subject__number\":\"NotificationCardHead__subject__number___N7sjS\",\"profile\":\"NotificationCardHead__profile___eeHi1\",\"city\":\"NotificationCardHead__city___IgIQM\",\"fadeIn\":\"NotificationCardHead__fadeIn___WNYUx\",\"blinking\":\"NotificationCardHead__blinking___sr2vL\"};","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"HeaderSideBarPortal__fadeIn___SA50i\",\"blinking\":\"HeaderSideBarPortal__blinking___z3Ywz\"};","import { fork } from 'redux-saga/effects';\n\nimport ratesSaga from './rates/sagas';\nimport rulesSaga from './rules/sagas';\nimport systemSettingsSaga from './system-settings/sagas';\nimport additionalServicesSaga from './additional-services/sagas';\n\nfunction* priceSettingsSaga() {\n    yield fork(ratesSaga);\n    yield fork(rulesSaga);\n    yield fork(systemSettingsSaga);\n    yield fork(additionalServicesSaga);\n}\n\nexport default priceSettingsSaga;\n","import * as React from 'react';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { ApiShipmentWarningT, ShipmentWarningEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    warning: ApiShipmentWarningT | null | undefined;\n    isSymmetrical?: boolean;\n};\n\nconst PILL_THEME_BY_WARNING: Record<ApiShipmentWarningT, PillLabelThemeEnum> = {\n    [ShipmentWarningEnum.noShow]: PillLabelThemeEnum.tomatoRed,\n    [ShipmentWarningEnum.missed]: PillLabelThemeEnum.tomatoRed,\n};\n\nexport const WARNING_T_MAP: Record<ApiShipmentWarningT, string> = {\n    [ShipmentWarningEnum.noShow]: 'common:shipment-warnings.no-show',\n    [ShipmentWarningEnum.missed]: 'common:shipment-warnings.missed',\n};\n\nconst ShipmentWarningPill: React.FC<PropsT> = React.memo((props) => {\n    const { warning, isSymmetrical } = props;\n\n    const { t } = useTranslation();\n\n    if (!warning) {\n        return null;\n    }\n\n    return (\n        <PillLabel isNoWrap theme={PILL_THEME_BY_WARNING[warning]} isSymmetrical={isSymmetrical}>\n            {t(WARNING_T_MAP[warning])}\n        </PillLabel>\n    );\n});\n\nexport default ShipmentWarningPill;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"TourTypeTabsLayout__wrap___FSpre\",\"columns\":\"TourTypeTabsLayout__columns___bqiAv\",\"tab\":\"TourTypeTabsLayout__tab___a0ocs\",\"tab--isActive\":\"TourTypeTabsLayout__tab--isActive___vA8A6\",\"head\":\"TourTypeTabsLayout__head___K9DsG\",\"row\":\"TourTypeTabsLayout__row___zXw62\",\"diff-wrap\":\"TourTypeTabsLayout__diff-wrap___UoKQK\",\"diff\":\"TourTypeTabsLayout__diff___gyL13\",\"fadeIn\":\"TourTypeTabsLayout__fadeIn___mw2Pt\",\"blinking\":\"TourTypeTabsLayout__blinking___vxZq4\"};","import values from 'lodash/values';\nimport { PRICE_COMPONENT_T_MAP } from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/constants';\nimport { PriceComponentTypeEnum, RepeatStrategyTypeEnum } from 'broker-admin/utils/api/broker-tranziit/models';\n\nexport const checkIsRepeatStrategy = (\n    repeatStrategy: string | null | undefined,\n): repeatStrategy is RepeatStrategyTypeEnum => {\n    return values(RepeatStrategyTypeEnum).includes(repeatStrategy as RepeatStrategyTypeEnum);\n};\n\nexport const checkIsPriceComponent = (\n    priceComponent: string | null | undefined,\n): priceComponent is PriceComponentTypeEnum => {\n    return !!PRICE_COMPONENT_T_MAP[priceComponent as PriceComponentTypeEnum];\n};\n","import {\n    ApiRepeatStrategyTypeTypeT,\n    PriceComponentTypeEnum,\n    RepeatStrategyTypeEnum,\n} from 'broker-admin/utils/api/broker-tranziit/models';\n\nexport type RepeatStrategyTypeT = NonNullable<Api2.Definitions.UpdateManualRateRuleDto['repeatMode']>;\n\nexport const REPEAT_STRATEGY_T_MAP: Record<ApiRepeatStrategyTypeTypeT, string> = {\n    [RepeatStrategyTypeEnum.none]: 'price-settings.rules.repeat-strategy.NONE',\n    [RepeatStrategyTypeEnum.weekly]: 'price-settings.rules.repeat-strategy.WEEKLY',\n    [RepeatStrategyTypeEnum.monthly]: 'price-settings.rules.repeat-strategy.MONTHLY',\n    [RepeatStrategyTypeEnum.yearly]: 'price-settings.rules.repeat-strategy.YEARLY',\n};\n\nexport type PriceComponentTypeT = NonNullable<Api2.Definitions.UpdateManualRateRuleDto['target']>;\n\nexport const PRICE_COMPONENT_T_MAP: Record<PriceComponentTypeEnum, string> = {\n    [PriceComponentTypeEnum.lineHaul]: 'price-settings.rules.price-components.line-haul',\n    [PriceComponentTypeEnum.fuel]: 'price-settings.rules.price-components.fuel',\n    [PriceComponentTypeEnum.roadTaxes]: 'price-settings.rules.price-components.road-taxes',\n    [PriceComponentTypeEnum.roadTaxesGeneral]: 'price-settings.rules.price-components.road-taxes-general',\n    [PriceComponentTypeEnum.roadTaxesCity]: 'price-settings.rules.price-components.road-taxes-city',\n    [PriceComponentTypeEnum.roadTaxesBridge]: 'price-settings.rules.price-components.road-taxes-bridge',\n    [PriceComponentTypeEnum.roadTaxesTunnel]: 'price-settings.rules.price-components.road-taxes-tunnel',\n    [PriceComponentTypeEnum.roadTaxesFerry]: 'price-settings.rules.price-components.road-taxes-ferry',\n    [PriceComponentTypeEnum.roadTaxesMountainPass]: 'price-settings.rules.price-components.road-taxes-mountain-pass',\n    [PriceComponentTypeEnum.serviceFee]: 'price-settings.rules.price-components.service-fee',\n};\n\nexport enum PriceSettingsRuleStateEnum {\n    activated = 'activated',\n    deactivated = 'deactivated',\n}\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './DriversTable.scss';\nimport { useTranslation } from 'react-i18next';\nimport Table, { TableColumnT, TableRowMetaT } from 'common/components/Table/Table';\n\nimport { CompanyDriverT } from 'common/store/drivers/models';\n\nimport MemoizedTable from 'common/components/Table/MemoizedTable/MemoizedTable';\n\nimport AvatarCell from 'common/components/Table/cell-renderers/AvatarCell/AvatarCell';\nimport StatusCell from './cell-renderers/StatusCell/StatusCell';\nimport { isNonNil } from 'common/utils';\nimport FullNameCell from 'common/components/Table/cell-renderers/FullNameCell/FullNameCell';\nimport PhoneCell from 'common/components/Table/cell-renderers/PhoneCell/PhoneCell';\nimport { checkIsDriverPendingStatus } from 'common/store/drivers/utils';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    drivers: Array<CompanyDriverT>;\n    selectedDriverId: DriverIdT | null;\n    className?: string;\n    onSelectRow: (event: React.MouseEvent, driver: CompanyDriverT) => void;\n    isLoading: boolean;\n    isShowStatus: boolean;\n};\n\nconst DriversTable: React.FC<PropsT> = (props) => {\n    const { drivers, selectedDriverId, className, onSelectRow, isLoading, isShowStatus } = props;\n\n    const { t } = useTranslation();\n\n    const columns: Array<TableColumnT<CompanyDriverT, void>> = [\n        {\n            renderHeader: () => null,\n            render: (driver: CompanyDriverT) => {\n                const isPending = checkIsDriverPendingStatus(driver.status);\n                return (\n                    <AvatarCell\n                        fullName={isPending ? t('common:team-members.pending') : driver.name || ''}\n                        isHalfOpacity={isPending}\n                    />\n                );\n            },\n            className: cx('table__column--avatar'),\n        },\n        {\n            renderHeader: () => <span>{t('common:drivers-page.table.columns.name')}</span>,\n            headerClassName: cx('table__header', 'table__header--name'),\n            render: (driver: CompanyDriverT) => {\n                const isPending = checkIsDriverPendingStatus(driver.status);\n                return (\n                    <FullNameCell\n                        name={isPending ? t('common:team-members.pending') : driver.name}\n                        surname={isPending ? driver.surname : ''}\n                        isHalfOpacity={isPending}\n                    />\n                );\n            },\n            className: cx('table__column--any'),\n        },\n        {\n            renderHeader: () => <span>{t('common:drivers-page.table.columns.phone')}</span>,\n            headerClassName: cx('table__header'),\n            render: (driver: CompanyDriverT) => {\n                const isPending = checkIsDriverPendingStatus(driver.status);\n                return <PhoneCell phone={isPending ? driver.mobilePhone || '' : ''} isHalfOpacity={isPending} />;\n            },\n            className: cx('table__column--any'),\n        },\n        isShowStatus\n            ? {\n                  renderHeader: () => null,\n                  render: (driver: CompanyDriverT) => <StatusCell driver={driver || ''} />,\n                  className: cx('table__column--status'),\n              }\n            : null,\n    ].filter(isNonNil);\n\n    const getRowMods = (meta: TableRowMetaT, row: CompanyDriverT) => ({\n        isSelected: row?.id === selectedDriverId,\n    });\n\n    return (\n        <div className={cx('table')}>\n            <MemoizedTable<CompanyDriverT> tableName=\"drivers\" isLoading={isLoading} rows={drivers}>\n                {(rows, isUsedPrevRows) => (\n                    <Table<CompanyDriverT, void>\n                        className={className}\n                        columns={columns}\n                        rows={rows}\n                        onSelectRow={onSelectRow}\n                        getRowMods={getRowMods}\n                        isLoading={isLoading}\n                        isUsedPrevRows={isUsedPrevRows}\n                    />\n                )}\n            </MemoizedTable>\n        </div>\n    );\n};\n\nexport default DriversTable;\n","import { CountryCodeT } from 'common/store/countries-dict/models';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\n\nexport enum FieldsEnum {\n    name = 'name',\n    partnerType = 'partnerType',\n\n    street1 = 'street1',\n    street2 = 'street2',\n    countryCode = 'countryCode',\n    zipCode = 'zipCode',\n    city = 'city',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.name]: string;\n    [FieldsEnum.partnerType]: PartnerTypeEnum;\n\n    [FieldsEnum.street1]: string;\n    [FieldsEnum.street2]: string;\n    [FieldsEnum.countryCode]: CountryCodeT | null;\n    [FieldsEnum.zipCode]: string;\n    [FieldsEnum.city]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import * as React from 'react';\nimport HorizontalColumnsLayout from '../HorizontalColumnsLayout/HorizontalColumnsLayout';\nimport GoogleMapContextProvider from 'common/components/maps/GoogleMapContextProvider/GoogleMapContextProvider';\nimport classNames from 'classnames/bind';\nimport styles from './DetailsLayout.scss';\nimport CalendarIcon from 'common/icons/CalendarIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport ArrowsIcon from 'common/icons/ArrowsIcon';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport TabGroupWithDivider from 'common/components/tabs/TabGroupWithDivider/TabGroupWithDivider';\nimport TabLabel from 'common/components/tabs/TabLabel/TabLabel';\nimport { TabsThemesEnum } from 'common/components/tabs/TabLabel/constants';\nimport SideBarLayoutContextWrap from '../LeftMenuLayout/SideBarLayout/SideBarLayoutContextWrap/SideBarLayoutContextWrap';\nimport RightSidebarLayout from 'common/layouts/RightSidebarLayout/RightSidebarLayout';\nimport { BooleanParam, NumberParam, useQueryParams } from 'use-query-params';\nimport isNumber from 'lodash/isNumber';\n\nconst cx = classNames.bind(styles);\n\nenum DetailsLayoutQueryKeysEnum {\n    timeline = 'timeline',\n    tab = 'tab',\n}\n\ntype CloseCallbackT = () => void;\n\ntype PropsT = {\n    className?: string;\n    isNarrow?: boolean;\n    sideBarTitle: string;\n    sideBarNode: React.ReactNode;\n    mapTitle: string;\n    mapNode: React.ReactNode;\n    historyTitle: React.ReactNode;\n    historyNode: React.ReactNode;\n    timelineTitle: string;\n    timelineNode: (onClose: CloseCallbackT) => React.ReactNode;\n    overlayNode?: React.ReactNode;\n};\n\nconst DEFAULT_TAB_INDEX = 0;\n\ntype TabConfigT = {\n    label: React.ReactNode;\n    node: React.ReactNode;\n};\n\nconst DetailsLayout: React.FC<PropsT> = React.memo((props) => {\n    const {\n        isNarrow,\n        sideBarTitle,\n        sideBarNode,\n        mapTitle,\n        mapNode,\n        historyTitle,\n        historyNode,\n        timelineTitle,\n        timelineNode,\n        overlayNode,\n        className,\n    } = props;\n\n    const [query, changeQuery] = useQueryParams({\n        [DetailsLayoutQueryKeysEnum.timeline]: BooleanParam,\n        [DetailsLayoutQueryKeysEnum.tab]: NumberParam,\n    });\n    const isShowTimeline = !!query[DetailsLayoutQueryKeysEnum.timeline];\n\n    const closeTimeline: CloseCallbackT = () => {\n        changeQuery({ [DetailsLayoutQueryKeysEnum.timeline]: null }, 'replaceIn');\n    };\n\n    const activeIndexTab = query[DetailsLayoutQueryKeysEnum.tab] || DEFAULT_TAB_INDEX;\n\n    const tabs = React.useMemo(() => {\n        const result: TabConfigT[] = [\n            {\n                label: mapTitle,\n                node: <GoogleMapContextProvider>{mapNode}</GoogleMapContextProvider>,\n            },\n        ];\n\n        if (historyNode && historyTitle) {\n            result.push({\n                label: historyTitle,\n                node: historyNode,\n            });\n        }\n\n        return result;\n    }, [mapTitle, mapNode, historyNode, historyTitle]);\n\n    return (\n        <HorizontalColumnsLayout\n            className={className}\n            isNarrow={isNarrow}\n            leftColumnTitle={sideBarTitle}\n            leftColumnNode={<SideBarLayoutContextWrap>{sideBarNode}</SideBarLayoutContextWrap>}\n            rightColumnTitle={mapTitle}\n            rightColumnNode={\n                <div className={cx('right-column')}>\n                    <div className={cx('tabs-wrap')}>\n                        <TabGroupWithDivider>\n                            {tabs.map((tab, tabIndex) => (\n                                <TabLabel\n                                    key={tabIndex}\n                                    theme={TabsThemesEnum.light}\n                                    onClick={() => {\n                                        changeQuery(\n                                            {\n                                                [DetailsLayoutQueryKeysEnum.tab]:\n                                                    isNumber(tabIndex) && tabIndex !== DEFAULT_TAB_INDEX\n                                                        ? tabIndex\n                                                        : null,\n                                            },\n                                            'replaceIn',\n                                        );\n                                    }}\n                                    isActive={tabIndex === activeIndexTab}\n                                >\n                                    {tab.label}\n                                </TabLabel>\n                            ))}\n                        </TabGroupWithDivider>\n                        <div className={cx('tab')}>{tabs[activeIndexTab].node}</div>\n                    </div>\n                    <div className={cx('timeline-trigger-wrap')}>\n                        <TransparentTrigger\n                            onClick={() => {\n                                changeQuery(\n                                    {\n                                        [DetailsLayoutQueryKeysEnum.timeline]: isShowTimeline ? null : true,\n                                    },\n                                    'replaceIn',\n                                );\n                            }}\n                            isPressed={isShowTimeline}\n                            label={timelineTitle}\n                            className={cx('timeline-trigger')}\n                            leftIcon={\n                                <CalendarIcon\n                                    size={DEFAULT_ICON_SIZE}\n                                    fillColor={StyleGuideColorsEnum.brandAccent}\n                                    strokeColor={StyleGuideColorsEnum.brandDark}\n                                />\n                            }\n                            reflectionTheme={ReflectionThemeEnum.light}\n                            rightIcon={<ArrowsIcon />}\n                        />\n                    </div>\n                    {isShowTimeline && <RightSidebarLayout>{timelineNode(closeTimeline)}</RightSidebarLayout>}\n                </div>\n            }\n            overlayNode={overlayNode}\n        />\n    );\n});\n\nexport default DetailsLayout;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"ChangeRateOrContractWarning__fadeIn___U2lyE\",\"blinking\":\"ChangeRateOrContractWarning__blinking___Tedpv\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './CountryFlagPlaceholderOption.scss';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    label: string;\n};\n\nconst CountryFlagPlaceholderOption: React.FC<PropsT> = (props) => {\n    const { label } = props;\n\n    return (\n        <div className={cx('option')}>\n            <FlagIcon className={cx('icon')} />\n            <div className={cx('label')}>{label}</div>\n        </div>\n    );\n};\n\nexport default CountryFlagPlaceholderOption;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './PhoneNumberDropdownTrigger.scss';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport ArrowsIcon from 'common/icons/ArrowsIcon';\nimport { PHONE_NUMBER_PREFIX } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    name: string;\n\n    countryCode?: string;\n    onClickCountryCode: () => void;\n    isSelectedCountry?: boolean;\n\n    phoneNumber: string;\n    onChangePhoneNumber: (phoneNumber: string) => void;\n\n    autoFocus?: boolean;\n    onBlur?: () => void;\n    onFocus?: () => void;\n    isDisabled?: boolean;\n    autoComplete?: string;\n\n    testSelector?: string;\n};\n\nconst PhoneNumberDropdownTrigger = React.memo((props: PropsT): React.ReactElement => {\n    const {\n        name,\n\n        countryCode,\n        onClickCountryCode,\n        isSelectedCountry,\n\n        phoneNumber,\n        onChangePhoneNumber,\n\n        autoFocus,\n        onBlur,\n        onFocus,\n        isDisabled,\n        autoComplete,\n\n        testSelector,\n    } = props;\n\n    const fullTestSelector = `${testSelector}__phone-number`;\n\n    const handleChange = (event: React.FormEvent<HTMLInputElement>): void => {\n        const value = event.currentTarget.value || '';\n        onChangePhoneNumber(value);\n    };\n\n    const inputProps: React.InputHTMLAttributes<HTMLInputElement> = {\n        autoFocus: !!autoFocus,\n        value: phoneNumber,\n        onChange: handleChange,\n        onBlur,\n        onFocus,\n        name,\n        type: 'text',\n        className: cx('inner-input', {\n            'inner-input--isDisabled': isDisabled,\n        }),\n        disabled: isDisabled,\n        autoComplete: autoComplete || 'off',\n        // @ts-ignore\n        'data-test-selector': `${fullTestSelector}__input`,\n    };\n\n    return (\n        <div className={cx('trigger')} data-test-selector={`${testSelector}_trigger`}>\n            <div className={cx('trigger__country')}>\n                <div\n                    className={cx('country', {\n                        'country--isSelected': isSelectedCountry,\n                        'country--isClickable': !isDisabled,\n                    })}\n                    onClick={onClickCountryCode}\n                >\n                    <FlagIcon countryCode={countryCode} />\n                    <ArrowsIcon />\n                </div>\n            </div>\n            <div\n                className={cx('prefix', {\n                    'prefix--isDisabled': isDisabled,\n                })}\n            >\n                {PHONE_NUMBER_PREFIX}\n            </div>\n            <div className={cx('input')}>\n                <input {...inputProps} />\n            </div>\n        </div>\n    );\n});\n\nexport default PhoneNumberDropdownTrigger;\n","// extracted by mini-css-extract-plugin\nexport default {\"submit\":\"ForgotPasswordPage__submit___gNgIP\",\"footer-links\":\"ForgotPasswordPage__footer-links___Xo0x9\",\"footer-links__link\":\"ForgotPasswordPage__footer-links__link___Or0C3\",\"result\":\"ForgotPasswordPage__result___Rwy5P\",\"result__done\":\"ForgotPasswordPage__result__done___N0L5W\",\"input\":\"ForgotPasswordPage__input___IaMdD\",\"fadeIn\":\"ForgotPasswordPage__fadeIn___wInvr\",\"blinking\":\"ForgotPasswordPage__blinking___FyqLM\"};","// extracted by mini-css-extract-plugin\nexport default {\"block\":\"RouteDetailsForm__block___m38yJ\",\"actions\":\"RouteDetailsForm__actions___newNk\",\"action\":\"RouteDetailsForm__action___S05sv\",\"inner\":\"RouteDetailsForm__inner___tTtif\",\"contacts-card\":\"RouteDetailsForm__contacts-card___XdqH_\",\"contacts-card-title\":\"RouteDetailsForm__contacts-card-title___FcV_H\",\"fadeIn\":\"RouteDetailsForm__fadeIn___FrA0o\",\"blinking\":\"RouteDetailsForm__blinking___jqyHB\"};","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"RadiusDropdown__fadeIn___v_nGC\",\"blinking\":\"RadiusDropdown__blinking___ccS1b\"};","import * as React from 'react';\nimport { BrokerTourShortT } from 'broker-admin/store/broker-tours/models';\nimport DateTimeCell from 'common/components/Table/cell-renderers/DateTimeCell/DateTimeCell';\n\ntype PropsT = {\n    brokerTourShort: BrokerTourShortT;\n};\n\nconst CreatedCell: React.FC<PropsT> = React.memo(({ brokerTourShort }) => {\n    const { createdDate } = brokerTourShort;\n\n    return <DateTimeCell date={createdDate} isHumanReadableDate />;\n});\n\nexport default CreatedCell;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    fetchShipperContractsPage,\n    fetchShipperContractsPageBegin,\n    fetchShipperContractsPageError,\n    fetchShipperContractsPageSuccess,\n    resetShipperContracts,\n} from './slice';\nimport { FetchShipperContractsActionT } from './types';\nimport { CompanyTypeEnum } from 'common/constants';\nimport { checkIsSameQuery, checkShouldEmitChangePage } from 'common/utils/pagination/utils';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport shipperTranziitApi from 'shipper/utils/api/shipper-tranziit/api';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { checkIsDefaultCompanyId } from 'common/utils';\nimport { shipperContractsPaginationChannel } from 'common/store/shipper-contracts/channels';\nimport { selectShipperContractsPages, selectShipperContractsQuery } from 'common/store/shipper-contracts/selectors';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getFetchCarrierContractsSaga(companyType: CompanyTypeEnum) {\n    return function* (action: FetchShipperContractsActionT): WrapGeneratorT<void> {\n        const { pageNumber, query: rawQuery, partnerId } = action.payload;\n\n        const query: typeof rawQuery = {\n            ...rawQuery,\n        };\n\n        const prevQuery: ReReturnT<typeof selectShipperContractsQuery> = yield select(\n            selectShipperContractsQuery(partnerId),\n        );\n        const pages: ReReturnT<typeof selectShipperContractsPages> = yield select(\n            selectShipperContractsPages(partnerId),\n        );\n        const isSameQuery = checkIsSameQuery(query, prevQuery);\n        const isNeedRequest = checkNeedRequest(pages[pageNumber]?.requestStatus);\n        if (isSameQuery && !isNeedRequest) {\n            return;\n        }\n        if (!isSameQuery) {\n            yield put(resetShipperContracts({ partnerId, mutationListOptions: { savingPageNumber: pageNumber } }));\n        }\n\n        yield put(fetchShipperContractsPageBegin({ query, pageNumber, partnerId }));\n\n        let result: ReturnApiT<typeof brokerTranziitApi.fetchPartnerShipperContracts>;\n        if (checkIsDefaultCompanyId(partnerId)) {\n            result = yield shipperTranziitApi.fetchPartnerShipperContracts({\n                ...query,\n                page: pageNumber,\n            });\n        } else {\n            result = yield brokerTranziitApi.fetchPartnerShipperContracts(partnerId, {\n                ...query,\n                page: pageNumber,\n            });\n        }\n\n        const [error, response] = result;\n\n        if (error) {\n            yield put(fetchShipperContractsPageError({ query, pageNumber, error, partnerId }));\n            return;\n        }\n\n        yield put(fetchShipperContractsPageSuccess({ query, pageNumber, response, partnerId }));\n\n        checkShouldEmitChangePage(pageNumber, response, shipperContractsPaginationChannel);\n    };\n}\n\nfunction* shipperContractsSaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery(fetchShipperContractsPage.type, getFetchCarrierContractsSaga(companyType));\n}\n\nexport { shipperContractsSaga };\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PriceMatrix.scss';\n\nimport { useTranslation } from 'react-i18next';\n\nimport moment from 'moment';\nimport Money from 'common/components/Money/Money';\nimport useQuery from 'common/utils/hooks/useQuery';\nimport {\n    CurrencyEnum,\n    DEFAULT_ICON_SIZE,\n    EmissionClassEnum,\n    QueryKeysEnum,\n    StyleGuideColorsEnum,\n} from 'common/constants';\nimport getDatesHash from 'common/store/order-creation/utils/get-dates-hash';\nimport history from 'common/utils/history';\nimport { useSelector } from 'react-redux';\nimport { selectIsPartialLoadingOffers, selectPriceOffersByHash } from 'common/store/order-creation/selectors';\nimport { PriceOfferT } from 'common/store/order-creation/models';\nimport { formatQuery } from 'common/utils/query';\nimport { byPriceAsc } from 'common/store/order-creation/utils/sort-offers';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport UrgentIcon from 'common/icons/UrgentIcon';\nimport ThumbUpIcon from 'common/icons/ThumbUpIcon';\nimport TeamDriveIcon from 'common/icons/TeamDriveIcon';\nimport { isNonNil } from 'common/utils';\nimport EmissionClassLabel from 'common/components/EmissionClassLabel/EmissionClassLabel';\nimport groupBy from 'lodash/groupBy';\nimport { useSelectedShipperCreditLimit } from 'common/layouts/NewOrderPage/hooks/use-selected-shipper-credit-limit';\nimport WarningIcon from 'common/icons/WarningIcon';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { checkIsCreditLimitExceeded } from 'common/layouts/NewOrderPage/utils/check-is-credit-limit-exceeded';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\ntype QueryT = {\n    [QueryKeysEnum.orderCreationPriceOfferId]: string;\n    [QueryKeysEnum.orderCreationDropOffDate]: string;\n    [QueryKeysEnum.orderCreationPickUpDate]: string;\n    [QueryKeysEnum.orderCreationDropOffDatesRange]: Array<string>;\n    [QueryKeysEnum.orderCreationPickUpDatesRange]: Array<string>;\n};\n\nconst EMISSION_CLASS_ORDER = [EmissionClassEnum.euro5, EmissionClassEnum.euro6] as const;\n\nconst PriceMatrix: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n    const query = useQuery<QueryT>();\n\n    const creditLimit = useSelectedShipperCreditLimit();\n\n    const selectedPickUpDate = query[QueryKeysEnum.orderCreationPickUpDate];\n    const selectedDropOffDate = query[QueryKeysEnum.orderCreationDropOffDate];\n\n    const selectDates = (pickUpDate: string, dropOffDate: string, priceOffer: PriceOfferT): void => {\n        history.push({\n            search: formatQuery({\n                ...query,\n                [QueryKeysEnum.orderCreationPickUpDate]: pickUpDate,\n                [QueryKeysEnum.orderCreationDropOffDate]: dropOffDate,\n                [QueryKeysEnum.orderCreationPriceOfferId]: priceOffer.id,\n            }),\n        });\n    };\n\n    const [activeDropOffDate, setActiveDropOffDate] = React.useState<string | null>(null);\n    const [activePickUpDate, setActivePickUpDate] = React.useState<string | null>(null);\n\n    const isPartialLoadingOffers = useSelector(selectIsPartialLoadingOffers);\n    const offersByDatesHash = useSelector(selectPriceOffersByHash);\n\n    const pickUpDates = query[QueryKeysEnum.orderCreationPickUpDatesRange] || [];\n    const pickUpDatesHead = pickUpDates.map((pickUpDate) => {\n        const momentDate = moment(pickUpDate);\n        return (\n            <div\n                key={pickUpDate}\n                className={cx('header', 'column', {\n                    'column--isActive': pickUpDate === activePickUpDate,\n                    'column--isSelected': pickUpDate === selectedPickUpDate,\n                    'column--isHeader': true,\n                    'header--isHorizontal': true,\n                })}\n            >\n                <div>{momentDate.format('ddd')}</div>\n                <div>{momentDate.format('D MMM')}</div>\n            </div>\n        );\n    });\n\n    const pickUpDatesHeadRow = (\n        <div className={cx('row', 'row--isHorizontalHeader')}>\n            {pickUpDatesHead}\n            <div\n                className={cx('header', 'column', {\n                    'header--isHorizontal': true,\n                    'header--isVertical': true,\n                })}\n            />\n        </div>\n    );\n\n    const dropOffDates = query[QueryKeysEnum.orderCreationDropOffDatesRange] || [];\n    const dropOffDatesHead = dropOffDates.map((dropOffDate) => {\n        const momentDate = moment(dropOffDate);\n\n        return (\n            <div\n                key={dropOffDate}\n                className={cx('column', 'header', {\n                    'column--isActive': dropOffDate === activeDropOffDate,\n                    'column--isSelected': dropOffDate === selectedDropOffDate,\n                    'column--isHeader': true,\n                    'header--isVertical': true,\n                })}\n            >\n                <div>{momentDate.format('ddd')}</div>\n                <div>{momentDate.format('D MMM')}</div>\n            </div>\n        );\n    });\n\n    const isLoadingOffers = isPartialLoadingOffers;\n\n    const isEmptyDates = !dropOffDates?.length || !pickUpDates?.length;\n\n    return (\n        <div className={cx('inner')}>\n            {isEmptyDates && <LoaderOverlay />}\n            <div\n                className={cx('matrix')}\n                onMouseLeave={() => {\n                    setActiveDropOffDate(null);\n                    setActivePickUpDate(null);\n                }}\n            >\n                {pickUpDatesHeadRow}\n                {dropOffDates.map((dropOffDate, dropOffDateIndex) => {\n                    return (\n                        <div className={cx('row')} key={dropOffDateIndex}>\n                            {pickUpDates.map((pickUpDate, pickUpDateIndex) => {\n                                const datesHash = getDatesHash(pickUpDate, dropOffDate);\n                                const offers = offersByDatesHash[datesHash] || [];\n\n                                const sortedOffers = [...offers].sort(byPriceAsc);\n\n                                const groupedOffer = groupBy(sortedOffers, (offer) => offer?.emissionClass);\n\n                                const cheapestSortedOffers = EMISSION_CLASS_ORDER.map((emissionClass) => {\n                                    return (groupedOffer[emissionClass] || []).sort(byPriceAsc)?.[0];\n                                }).filter(isNonNil);\n                                const firstCheapestOffer = cheapestSortedOffers[0];\n                                const cheapestOffer = sortedOffers[0];\n                                const isCreditLimitExceeded = checkIsCreditLimitExceeded({\n                                    creditLimit,\n                                    cost: cheapestOffer?.price,\n                                });\n\n                                const isActive =\n                                    (pickUpDate === activePickUpDate &&\n                                        activeDropOffDate &&\n                                        dropOffDate <= activeDropOffDate) ||\n                                    (dropOffDate === activeDropOffDate &&\n                                        activePickUpDate &&\n                                        pickUpDate >= activePickUpDate);\n                                const isActiveCell =\n                                    pickUpDate === activePickUpDate && dropOffDate === activeDropOffDate;\n\n                                const isSelected =\n                                    (pickUpDate === selectedPickUpDate &&\n                                        selectedDropOffDate &&\n                                        dropOffDate <= selectedDropOffDate) ||\n                                    (dropOffDate === selectedDropOffDate &&\n                                        selectedPickUpDate &&\n                                        pickUpDate >= selectedPickUpDate);\n                                const isSelectedCell =\n                                    pickUpDate === selectedPickUpDate && dropOffDate === selectedDropOffDate;\n\n                                const isShowTooltip = !!firstCheapestOffer && isActiveCell;\n                                const isFirstColumnDate = pickUpDateIndex === 0;\n                                const isLastColumnDate = pickUpDateIndex === pickUpDates.length - 1;\n\n                                const isShowLoader =\n                                    isLoadingOffers &&\n                                    !firstCheapestOffer &&\n                                    pickUpDate <= dropOffDate &&\n                                    pickUpDateIndex <= dropOffDateIndex;\n\n                                const isAllOffersExpired = offers?.length && offers.every((offer) => offer?.isExpired);\n\n                                return (\n                                    <div\n                                        key={datesHash}\n                                        className={cx('column', {\n                                            'column--isActive': isActive,\n                                            'column--isActiveCell': isActiveCell,\n                                            'column--isSelected': isSelected,\n                                            'column--isSelectedCell': isSelectedCell,\n                                            'column--isShowTooltip': isShowTooltip,\n                                        })}\n                                        onClick={() => {\n                                            if (isCreditLimitExceeded) {\n                                                return;\n                                            }\n\n                                            const firstNotExpiredCheapestOffer = offers.find((offer) => {\n                                                return !offer.isExpired;\n                                            });\n\n                                            if (!firstNotExpiredCheapestOffer) {\n                                                return;\n                                            }\n\n                                            selectDates(pickUpDate, dropOffDate, firstNotExpiredCheapestOffer);\n                                        }}\n                                        onMouseEnter={() => {\n                                            setActiveDropOffDate(dropOffDate);\n                                            setActivePickUpDate(pickUpDate);\n                                        }}\n                                    >\n                                        {isShowTooltip && (\n                                            <div\n                                                className={cx('tooltip', {\n                                                    'tooltip--isTopLeft': isFirstColumnDate,\n                                                    'tooltip--isTopCenter': !isFirstColumnDate && !isLastColumnDate,\n                                                    'tooltip--isTopRight': isLastColumnDate,\n                                                })}\n                                            >\n                                                <div className={cx('tooltip__inner')}>\n                                                    {isAllOffersExpired && (\n                                                        <div key=\"expired\" className={cx('tooltip__text')}>\n                                                            {t('common:new-order-offers.price-matrix.tooltip.expired')}\n                                                        </div>\n                                                    )}\n                                                    {cheapestSortedOffers.map((cheapestOffer) => {\n                                                        if (cheapestOffer?.isExpired) {\n                                                            return null;\n                                                        }\n\n                                                        return (\n                                                            <div\n                                                                key={cheapestOffer?.id}\n                                                                className={cx('tooltip__text')}\n                                                            >\n                                                                <EmissionClassLabel\n                                                                    emissionClass={cheapestOffer?.emissionClass}\n                                                                />\n                                                                {' - '}\n                                                                <Money\n                                                                    amount={cheapestOffer.price}\n                                                                    currency={CurrencyEnum.EUR}\n                                                                />\n                                                            </div>\n                                                        );\n                                                    })}\n                                                </div>\n                                            </div>\n                                        )}\n                                        {isShowLoader ? (\n                                            <div className={cx('loader')}>\n                                                <ControlLoaderIcon\n                                                    fillColor={StyleGuideColorsEnum.slate}\n                                                    size={DEFAULT_ICON_SIZE}\n                                                />\n                                            </div>\n                                        ) : (\n                                            <div className={cx('cell')}>\n                                                <div className={cx('cell__spacer', 'cell__spacer--2')} />\n                                                <div className={cx('cell__content')}>\n                                                    <div\n                                                        className={cx('offer', {\n                                                            'offer--clickable':\n                                                                !isAllOffersExpired && !isCreditLimitExceeded,\n                                                        })}\n                                                    >\n                                                        {firstCheapestOffer && (\n                                                            <>\n                                                                <div className={cx('offer__icons')}>\n                                                                    {firstCheapestOffer?.isUrgentShipment && (\n                                                                        <UrgentIcon\n                                                                            size={DEFAULT_ICON_SIZE}\n                                                                            fillColor={\n                                                                                firstCheapestOffer?.isExpired\n                                                                                    ? StyleGuideColorsEnum.slate\n                                                                                    : StyleGuideColorsEnum.squash\n                                                                            }\n                                                                        />\n                                                                    )}\n                                                                    {firstCheapestOffer?.isTeamDrive && (\n                                                                        <TeamDriveIcon\n                                                                            size={DEFAULT_ICON_SIZE}\n                                                                            fillColor={\n                                                                                firstCheapestOffer?.isExpired\n                                                                                    ? StyleGuideColorsEnum.slate\n                                                                                    : StyleGuideColorsEnum.white\n                                                                            }\n                                                                            strokeColor={\n                                                                                firstCheapestOffer?.isExpired\n                                                                                    ? StyleGuideColorsEnum.slate\n                                                                                    : StyleGuideColorsEnum.white\n                                                                            }\n                                                                        />\n                                                                    )}\n                                                                    {firstCheapestOffer?.isBestPrice && (\n                                                                        <ThumbUpIcon\n                                                                            size={DEFAULT_ICON_SIZE}\n                                                                            fillOpacity={1}\n                                                                            strokeColor={\n                                                                                firstCheapestOffer?.isExpired\n                                                                                    ? StyleGuideColorsEnum.slate\n                                                                                    : StyleGuideColorsEnum.brandAccent\n                                                                            }\n                                                                            fillColor={\n                                                                                firstCheapestOffer?.isExpired\n                                                                                    ? StyleGuideColorsEnum.slate\n                                                                                    : StyleGuideColorsEnum.brandAccent\n                                                                            }\n                                                                        />\n                                                                    )}\n                                                                </div>\n                                                                {cheapestSortedOffers.map((cheapestOffer, index) => {\n                                                                    return (\n                                                                        <div\n                                                                            key={cheapestOffer?.id}\n                                                                            className={cx('offer__price', {\n                                                                                'offer__price--expired':\n                                                                                    cheapestOffer.isExpired,\n                                                                                'offer__price--green':\n                                                                                    cheapestOffer.isGreenTruck,\n                                                                                'offer__price--secondary': index !== 0,\n                                                                            })}\n                                                                        >\n                                                                            {cheapestOffer && (\n                                                                                <Money\n                                                                                    amount={cheapestOffer.price}\n                                                                                    currency={CurrencyEnum.EUR}\n                                                                                />\n                                                                            )}\n                                                                        </div>\n                                                                    );\n                                                                })}\n                                                                {isCreditLimitExceeded && (\n                                                                    <Tooltip\n                                                                        className={cx('offer__credit-limit-warning')}\n                                                                        position={TooltipPositionEnum.topCenter}\n                                                                        theme={TooltipThemeEnum.black}\n                                                                        tooltipNode={\n                                                                            <TooltipContent\n                                                                                width={180}\n                                                                                isCenter\n                                                                                theme={TooltipContentThemeEnum.black}\n                                                                            >\n                                                                                {t(\n                                                                                    'common:new-order-offers.price-matrix.tooltip.credit-limit',\n                                                                                )}\n                                                                            </TooltipContent>\n                                                                        }\n                                                                    >\n                                                                        {() => (\n                                                                            <WarningIcon\n                                                                                fillColor={\n                                                                                    StyleGuideColorsEnum.tomatoRed\n                                                                                }\n                                                                            />\n                                                                        )}\n                                                                    </Tooltip>\n                                                                )}\n                                                            </>\n                                                        )}\n                                                    </div>\n                                                </div>\n                                                <div className={cx('cell__spacer', 'cell__spacer--3')} />\n                                            </div>\n                                        )}\n                                    </div>\n                                );\n                            })}\n                            {dropOffDatesHead[dropOffDateIndex]}\n                        </div>\n                    );\n                })}\n            </div>\n        </div>\n    );\n});\n\nexport default PriceMatrix;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './PhoneNumberDropdownOption.scss';\nimport DoneIcon from 'common/icons/DoneIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    countryCode: string;\n    label: string;\n    onSelect: (countryCode: string) => void;\n    isDisabled?: boolean;\n    isSelected?: boolean;\n    testSelector?: string;\n};\n\nconst PhoneNumberDropdownOption = React.memo((props: PropsT): React.ReactElement => {\n    const { countryCode, label, onSelect, isDisabled, isSelected, testSelector } = props;\n\n    return (\n        <div\n            className={cx('option', {\n                'option--isSelected': isSelected,\n                'option--isSelectable': !isDisabled,\n            })}\n            onClick={(): void => {\n                if (isDisabled) {\n                    return;\n                }\n\n                onSelect(countryCode);\n            }}\n            data-test-selector={`${testSelector}_option_${countryCode}`}\n        >\n            <FlagIcon className={cx('option__flag')} countryCode={countryCode} />\n            <div className={cx('option__label')}>{label}</div>\n            {isSelected && (\n                <div className={cx('option__icon')} data-test-selector={`${testSelector}_selected`}>\n                    <DoneIcon\n                        fillColor={StyleGuideColorsEnum.charcoal}\n                        size={DEFAULT_ICON_SIZE}\n                        className={cx('icon')}\n                    />\n                </div>\n            )}\n        </div>\n    );\n});\n\nexport default PhoneNumberDropdownOption;\n","import * as React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { QueryKeysEnum } from 'common/constants';\nimport useQuery from 'common/utils/hooks/useQuery';\nimport { selectCurrentCompany } from 'common/store/company/selectors';\nimport { fetchShipperInfo } from 'common/store/order-creation/actions';\nimport { selectShipperInfoById } from 'common/store/order-creation/selectors';\n\ntype QueryT = {\n    [QueryKeysEnum.orderCreationShipperId]?: ShipperIdT;\n};\n\nconst useSelectedShipperCreditLimit = (): number | null => {\n    const dispatch = useDispatch();\n    const query = useQuery<QueryT>();\n    const currentCompany = useSelector(selectCurrentCompany);\n    const shipperInfoById = useSelector(selectShipperInfoById);\n    const shipperId = query[QueryKeysEnum.orderCreationShipperId];\n\n    React.useEffect(() => {\n        if (shipperId) {\n            dispatch(fetchShipperInfo(shipperId));\n        }\n    }, [dispatch, shipperId]);\n\n    if (!shipperId) {\n        return currentCompany?.creditLimit ?? null;\n    }\n\n    return shipperInfoById[shipperId]?.creditLimit ?? null;\n};\n\nexport { useSelectedShipperCreditLimit };\n","// extracted by mini-css-extract-plugin\nexport default {\"text\":\"TimeWindowPillLabel__text___d0fY6\",\"fadeIn\":\"TimeWindowPillLabel__fadeIn___tCFIh\",\"blinking\":\"TimeWindowPillLabel__blinking___OSdcK\"};","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames/bind';\nimport styles from './FerryOnboardPointPicker.scss';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport BoatIcon from 'common/icons/BoatIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { formatTimeInterval } from 'common/utils/time';\nimport { useFormikContext } from 'formik';\nimport { FieldsEnum, RouteFormValuesT, RoutePointFieldsEnum } from '../constants';\nimport { getFieldFormValue } from 'common/utils/form-values';\n\ntype PropsT = {\n    className?: string;\n    routePointIndex: number;\n};\n\nconst cx = classNames.bind(styles);\n\nconst FerryOnboardPointPicker: React.FC<PropsT> = React.memo((props) => {\n    const { routePointIndex } = props;\n\n    const { t } = useTranslation();\n\n    const formik = useFormikContext<RouteFormValuesT>();\n\n    const locationFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.location}` as const;\n    const timeWindowFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.timeWindow}` as const;\n\n    const location = getFieldFormValue(formik.values, locationFieldName);\n    const timeWindow = getFieldFormValue(formik.values, timeWindowFieldName);\n\n    return (\n        <ReadOnlyField\n            icon={\n                <BoatIcon\n                    size={DEFAULT_ICON_SIZE}\n                    fillColor={StyleGuideColorsEnum.brandAccent}\n                    strokeColor={StyleGuideColorsEnum.brandDark}\n                />\n            }\n            label={t('broker-order-route-edit.fields.ferry-onboard.label')}\n            subLabel={\n                <PillLabel className={cx('time-interval')} isSymmetrical theme={PillLabelThemeEnum.charcoal}>\n                    {formatTimeInterval(timeWindow?.start, timeWindow?.end)}\n                </PillLabel>\n            }\n            value={location?.address}\n        />\n    );\n});\n\nexport default FerryOnboardPointPicker;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    FIND_SHIPPERS_REQUEST_BY_ID,\n    FIND_SHIPPERS_REQUEST_BY_QUERY,\n    FindShippersByIdActionT,\n    FindShippersByQueryActionT,\n} from './types';\nimport { findShippersBegin, findShippersError, findShippersSuccess } from './actions';\nimport { selectFindShippersQuery, selectShippersById } from './selectors';\nimport isEqual from 'lodash/isEqual';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { PartnerT } from 'common/store/shipper-suggest/models';\n\nfunction* findShippersByQuerySaga(action: FindShippersByQueryActionT): WrapGeneratorT<void> {\n    const { query: rawQuery } = action;\n\n    const query = rawQuery.trim();\n    if (!query) {\n        return;\n    }\n\n    const prevQuery: ReturnType<typeof selectFindShippersQuery> = yield select(selectFindShippersQuery);\n    const isSameQuery = isEqual(query, prevQuery);\n    if (isSameQuery) {\n        return;\n    }\n\n    yield put(findShippersBegin(query));\n\n    const [error, partners]: ReturnApiT<typeof brokerTranziitApi.findShippersByName> =\n        yield brokerTranziitApi.findShippersByName(query);\n\n    if (error) {\n        yield put(findShippersError(error));\n        return;\n    }\n\n    yield put(findShippersSuccess(partners?.content || []));\n}\n\nfunction* findShippersByIdSaga(action: FindShippersByIdActionT): WrapGeneratorT<void> {\n    const { partnerId, query } = action;\n\n    const shippersById: ReturnType<typeof selectShippersById> = yield select(selectShippersById);\n    if (shippersById[partnerId]) {\n        return;\n    }\n\n    yield put(findShippersBegin(query));\n\n    const [error, partnerDetails]: ReturnApiT<typeof brokerTranziitApi.fetchPartnerDetails> =\n        yield brokerTranziitApi.fetchPartnerDetails(partnerId);\n\n    if (error) {\n        yield put(findShippersError(error));\n        return;\n    }\n\n    const partners: PartnerT[] = [];\n\n    if (partnerDetails && partnerDetails?.id) {\n        partners.push({\n            id: partnerDetails?.id,\n            name: partnerDetails?.name,\n            legalAddress: partnerDetails?.legalAddress,\n            number: partnerDetails?.number,\n            legalAddressVerified: partnerDetails?.legalAddressVerified,\n            billingAddressVerified: partnerDetails?.billingAddressVerified,\n            documentsVerified: partnerDetails?.documentsVerified,\n        });\n    }\n\n    yield put(findShippersSuccess(partners));\n}\n\nfunction* shipperSuggestSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FIND_SHIPPERS_REQUEST_BY_QUERY, findShippersByQuerySaga);\n    yield takeEvery(FIND_SHIPPERS_REQUEST_BY_ID, findShippersByIdSaga);\n}\n\nexport default shipperSuggestSaga;\n","import { ApiEditOrderContextT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { ContextRoutePointAliasT } from '../models';\nimport uniq from 'lodash/uniq';\n\nexport const getOrderStopAliases = (\n    contextAfterModify: ApiEditOrderContextT | null,\n): Array<ContextRoutePointAliasT> => {\n    const contextStopAliases =\n        contextAfterModify?.tours\n            ?.flatMap((tour) => {\n                return tour?.stops || [];\n            })\n            .map((stop) => stop.alias)\n            .filter((alias): alias is string => Boolean(alias)) || [];\n\n    return uniq(contextStopAliases);\n};\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './DriverSidebarHeader.scss';\nimport { CompanyDriverDetailsT } from 'common/store/drivers/models';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    driverDetails: CompanyDriverDetailsT | null;\n};\n\nconst DriverSidebarHeader: React.FC<PropsT> = (props) => {\n    const { driverDetails } = props;\n\n    if (!driverDetails) {\n        return null;\n    }\n\n    let fullName = [driverDetails?.contact?.name, driverDetails?.contact?.surname].filter(Boolean).join(' ');\n    if (!fullName && driverDetails?.contact?.mobilePhone) {\n        fullName = driverDetails?.contact?.mobilePhone;\n    }\n\n    return <span>{fullName}</span>;\n};\n\nexport default DriverSidebarHeader;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './Money.scss';\n\nimport { CURRENCY_SETTINGS, CurrencyEnum, CurrencySettingsT } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    amount: number | null | undefined;\n    currency: CurrencyEnum;\n    isRound?: boolean;\n    className?: string;\n    testSelector?: string;\n};\n\nconst DEFAULT_SEPARATOR = '.';\n\nexport const formatDecimal = (sourceDecimalString: string, thousandSeparator: string): string => {\n    const parts =\n        sourceDecimalString\n            .split('')\n            .reverse()\n            .join('')\n            .match(/.{1,3}/g) || [];\n\n    return parts\n        .join(thousandSeparator || ' ')\n        .split('')\n        .reverse()\n        .join('');\n};\n\nexport const formatMoney = ({\n    currency,\n    amount,\n    isRound,\n    partialCurrencySettings,\n}: {\n    amount: number;\n    currency: CurrencyEnum;\n    isRound?: boolean;\n    partialCurrencySettings?: Partial<CurrencySettingsT>;\n}): string => {\n    const settings = {\n        ...CURRENCY_SETTINGS[currency],\n        ...(partialCurrencySettings || {}),\n    };\n\n    const roundedAmount = amount.toFixed(isRound ? 0 : settings.minimumSignificantDigits);\n    const [decimal, fraction] = roundedAmount.split(DEFAULT_SEPARATOR);\n\n    const formattedDecimal = formatDecimal(decimal, settings.thousandSeparator);\n\n    return [\n        settings.isFirstSymbol ? settings.symbol : '',\n        formattedDecimal,\n        isRound ? '' : settings.decimalSeparator,\n        fraction,\n        !settings.isFirstSymbol ? ` ${settings.symbol}` : '',\n    ].join('');\n};\n\nconst Money: React.FC<PropsT> = React.memo((props) => {\n    const { amount, currency, isRound, className, testSelector } = props;\n\n    if (amount === null || amount === undefined) {\n        return null;\n    }\n\n    const formattedMoney = formatMoney({\n        amount,\n        currency,\n        isRound,\n    });\n\n    return (\n        <span className={cs(className, cx('money'))} data-test-selector={testSelector}>\n            {formattedMoney}\n        </span>\n    );\n});\n\nexport default Money;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './ContactsTable.scss';\nimport { useTranslation } from 'react-i18next';\nimport Table, { TableColumnT, TableRowMetaT } from 'common/components/Table/Table';\n\nimport { CompanyContactT } from 'common/store/members/models';\n\nimport AvatarCell from 'common/components/Table/cell-renderers/AvatarCell/AvatarCell';\nimport PositionsCell from './cell-renderers/PositionsCell/PositionsCell';\nimport ControlsCell from './cell-renderers/ControlsCell/ControlsCell';\nimport MemoizedTable from 'common/components/Table/MemoizedTable/MemoizedTable';\nimport StatusCell from 'common/layouts/Members/ContactsTable/cell-renderers/StatusCell/StatusCell';\nimport { UserRoleT } from 'common/utils/api/models';\nimport EmailCell from 'common/components/Table/cell-renderers/EmailCell/EmailCell';\nimport PhoneCell from 'common/components/Table/cell-renderers/PhoneCell/PhoneCell';\nimport FullNameCell from 'common/components/Table/cell-renderers/FullNameCell/FullNameCell';\nimport PendingUserCell from 'common/layouts/Members/ContactsTable/cell-renderers/PendingUserCell/PendingUserCell';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    contacts: Array<CompanyContactT>;\n    selectedContactId: ContactIdT | null;\n    className?: string;\n    onDeleteUser: (contact: CompanyContactT) => void;\n    onDeleteContact: (contact: CompanyContactT) => void;\n    onChangeUserRole: (contact: CompanyContactT) => void;\n    onRestoreUser: (contact: CompanyContactT) => void;\n    onCancelInvite: (contact: CompanyContactT) => void;\n    onInviteUser: (email: string) => void;\n    onResendInviteUser: (email: string, roles: UserRoleT[]) => void;\n    onSelectRow: (event: React.MouseEvent, contact: CompanyContactT) => void;\n    isLoading: boolean;\n    canEditTeamMembers: boolean;\n    canInviteUsers: boolean;\n};\n\nconst ContactsTable: React.FC<PropsT> = (props) => {\n    const {\n        contacts,\n        selectedContactId,\n        className,\n        onDeleteUser,\n        onDeleteContact,\n        onChangeUserRole,\n        onRestoreUser,\n        onCancelInvite,\n        onInviteUser,\n        onResendInviteUser,\n        onSelectRow,\n        isLoading,\n        canEditTeamMembers,\n        canInviteUsers,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const columns: Array<TableColumnT<CompanyContactT, void>> = [\n        {\n            renderHeader: () => null,\n            render: (contact: CompanyContactT) => (\n                <StatusCell userStatus={contact.userStatus}>\n                    <AvatarCell fullName={contact.fullName || ''} />\n                </StatusCell>\n            ),\n            className: cx('table__column', 'table__column--avatar'),\n        },\n        {\n            renderHeader: () => <span>{t('common:team-members.columns.full-name')}</span>,\n            headerClassName: cx('table__header'),\n            render: (contact: CompanyContactT) => (\n                <StatusCell userStatus={contact.userStatus}>\n                    <PendingUserCell userStatus={contact.userStatus}>\n                        <FullNameCell fullName={contact.fullName || ''} />\n                    </PendingUserCell>\n                </StatusCell>\n            ),\n            className: cx('table__column', 'table__column--any'),\n        },\n        {\n            renderHeader: () => <span>{t('common:team-members.columns.email')}</span>,\n            headerClassName: cx('table__header'),\n            render: (contact: CompanyContactT) => (\n                <StatusCell userStatus={contact.userStatus}>\n                    <EmailCell email={contact.email || ''} />\n                </StatusCell>\n            ),\n            className: cx('table__column', 'table__column--any'),\n        },\n        {\n            renderHeader: () => <span>{t('common:team-members.columns.phone')}</span>,\n            headerClassName: cx('table__header'),\n            render: (contact: CompanyContactT) => (\n                <StatusCell userStatus={contact.userStatus}>\n                    <PhoneCell phone={contact.phone || ''} />\n                </StatusCell>\n            ),\n            className: cx('table__column', 'table__column--any'),\n        },\n        {\n            renderHeader: () => <span>{t('common:team-members.columns.roles')}</span>,\n            headerClassName: cx('table__header'),\n            render: (contact: CompanyContactT) => (\n                <StatusCell userStatus={contact.userStatus}>\n                    <PositionsCell contact={contact} />\n                </StatusCell>\n            ),\n            className: cx('table__column', 'table__column--any'),\n        },\n        {\n            renderHeader: () => null,\n            render: (contact, _, rowIndex) =>\n                canEditTeamMembers ? (\n                    <ControlsCell\n                        contact={contact}\n                        onInviteUser={onInviteUser}\n                        onResendInviteUser={onResendInviteUser}\n                        onDeleteContact={onDeleteContact}\n                        onDeleteUser={onDeleteUser}\n                        onChangeUserRole={onChangeUserRole}\n                        onRestoreUser={onRestoreUser}\n                        onCancelInvite={onCancelInvite}\n                        isLastRow={rowIndex === contacts.length - 1}\n                        canInviteUsers={canInviteUsers}\n                    />\n                ) : null,\n            className: cx('table__column--controls'),\n        },\n    ];\n\n    const getRowMods = (meta: TableRowMetaT, row: CompanyContactT) => ({\n        isSelected: row?.id === selectedContactId,\n    });\n\n    return (\n        <div className={cx('table')}>\n            <MemoizedTable<CompanyContactT> tableName=\"members\" isLoading={isLoading} rows={contacts}>\n                {(rows, isUsedPrevRows) => (\n                    <Table<CompanyContactT, void>\n                        className={className}\n                        columns={columns}\n                        rows={rows}\n                        onSelectRow={onSelectRow}\n                        getRowMods={getRowMods}\n                        isLoading={isLoading}\n                        isUsedPrevRows={isUsedPrevRows}\n                    />\n                )}\n            </MemoizedTable>\n        </div>\n    );\n};\n\nexport default ContactsTable;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"FooterSideBarAlert__wrap___BshfK\",\"icon\":\"FooterSideBarAlert__icon___T9dW_\",\"fadeIn\":\"FooterSideBarAlert__fadeIn___DNZqf\",\"blinking\":\"FooterSideBarAlert__blinking___KLhhq\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './EditableStringValueFormatter.scss';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport EditIcon from 'common/icons/EditIcon';\nimport Input from 'common/components/Input/Input';\nimport CheckIcon from 'common/icons/CheckIcon';\nimport isString from 'lodash/isString';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport OutsideClickHandler from 'design-system/components/OutsideClickHandler/OutsideClickHandler';\nimport TransparentTriggerWithTooltip from 'design-system/components/ExpandTrigger/TransparentTriggerWithTooltip';\nimport { useTranslation } from 'react-i18next';\n\nconst cx = classNames.bind(styles);\n\nconst ENTER_KEY = 'Enter';\nconst ESCAPE_KEY = 'Escape';\n\ntype StateT = {\n    isShowInput: boolean;\n    inputValue: string;\n};\n\ntype PropsT = {\n    value: string | null;\n    onUpdate: (value: string | null) => void;\n    children: (value?: string | null) => React.ReactNode;\n    disableReasonTooltipNode?: React.ReactNode;\n};\n\nconst EditableStringValueFormatter: React.FC<PropsT> = React.memo((props) => {\n    const { t } = useTranslation();\n\n    const { children, value, onUpdate, disableReasonTooltipNode } = props;\n\n    const [state, setState] = React.useState<StateT>({\n        isShowInput: false,\n        inputValue: '',\n    });\n\n    const [optimisticValue, setOptimisticValue] = React.useState<string | null>(null);\n    React.useEffect(() => {\n        setOptimisticValue(null);\n    }, [value]);\n\n    const finalValue = isString(optimisticValue) ? optimisticValue : value;\n\n    const { isShowInput, inputValue } = state;\n\n    const handleKeyUp = (event: React.KeyboardEvent<HTMLInputElement>) => {\n        if (event.key === ESCAPE_KEY) {\n            setState((prevState) => {\n                return {\n                    ...prevState,\n                    isShowInput: false,\n                };\n            });\n        }\n\n        if (event.key === ENTER_KEY) {\n            setState((prevState) => {\n                return {\n                    ...prevState,\n                    isShowInput: false,\n                };\n            });\n\n            const isSameValue = inputValue === finalValue;\n            if (!isSameValue) {\n                setOptimisticValue(inputValue);\n                onUpdate(inputValue);\n            }\n        }\n    };\n\n    const handleOutsideClick = () => {\n        setState((prevState) => {\n            return {\n                ...prevState,\n                isShowInput: false,\n            };\n        });\n    };\n\n    const isDisabledEdit = Boolean(disableReasonTooltipNode);\n\n    return (\n        <OutsideClickHandler onOutsideClick={handleOutsideClick} className={cx('inner')}>\n            {isShowInput ? (\n                <>\n                    <Input\n                        name=\"value\"\n                        spaces=\"xs\"\n                        autoFocus\n                        className={cx('value')}\n                        value={inputValue}\n                        onChange={(value) => {\n                            setState((prevState) => {\n                                return {\n                                    ...prevState,\n                                    inputValue: value || '',\n                                };\n                            });\n                        }}\n                        onKeyUp={handleKeyUp}\n                    />\n                    <TransparentTriggerWithTooltip\n                        tooltipContent={t('common:tooltips.save')}\n                        onClick={() => {\n                            setState((prevState) => {\n                                return {\n                                    ...prevState,\n                                    isShowInput: false,\n                                };\n                            });\n\n                            const isSameValue = inputValue === finalValue;\n                            if (!isSameValue) {\n                                setOptimisticValue(inputValue);\n                                onUpdate(inputValue);\n                            }\n                        }}\n                        transparentTriggerProps={{\n                            spaces: 'xs',\n                            leftIcon: (\n                                <CheckIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.brandAccent} />\n                            ),\n                        }}\n                    />\n                    <TransparentTriggerWithTooltip\n                        tooltipContent={t('common:tooltips.cancel')}\n                        onClick={() => {\n                            setState((prevState) => {\n                                return {\n                                    ...prevState,\n                                    isShowInput: false,\n                                };\n                            });\n                        }}\n                        transparentTriggerProps={{\n                            spaces: 'xs',\n                            leftIcon: <CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />,\n                        }}\n                    />\n                </>\n            ) : (\n                <>\n                    <div className={cx('value')}>{children(finalValue)}</div>\n                    <TransparentTriggerWithTooltip\n                        tooltipContent={disableReasonTooltipNode || t('common:tooltips.edit')}\n                        onClick={() => {\n                            if (isDisabledEdit) {\n                                return;\n                            }\n\n                            setState((prevState) => {\n                                return {\n                                    ...prevState,\n                                    isShowInput: true,\n                                    inputValue: finalValue || '',\n                                };\n                            });\n                        }}\n                        transparentTriggerProps={{\n                            spaces: 'xs',\n                            isDisabled: isDisabledEdit,\n                            leftIcon: (\n                                <EditIcon\n                                    size={DEFAULT_ICON_SIZE}\n                                    fillColor={StyleGuideColorsEnum.light}\n                                    strokeColor={StyleGuideColorsEnum.charcoal}\n                                />\n                            ),\n                        }}\n                    />\n                </>\n            )}\n        </OutsideClickHandler>\n    );\n});\n\nexport default EditableStringValueFormatter;\n","import React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './Textarea.scss';\nimport useTestSelector from 'common/utils/hooks/useTestSelector';\n\nconst cx = classNames.bind(styles);\n\ntype ValueT = string;\n\nexport type PropsT = {\n    className?: string;\n    name: string;\n    value: ValueT;\n    placeholder?: string;\n    onChange: (value: ValueT) => void;\n    onBlur?: () => void;\n    onFocus?: () => void;\n    onKeyUp?: (event: React.KeyboardEvent<HTMLTextAreaElement>) => void;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    hasSuccess?: boolean;\n    autoFocus?: boolean;\n    isDisabled?: boolean;\n    isFocused?: boolean;\n    isTransparent?: boolean;\n    isHighlighted?: boolean;\n    hasChanges?: boolean;\n    autoComplete?: string;\n    testSelectorPrefix?: string;\n};\n\nconst Textarea: React.FC<PropsT> = React.memo((props) => {\n    const {\n        value,\n        name,\n        placeholder,\n        onChange,\n        onBlur,\n        onFocus,\n        onKeyUp,\n        hasError,\n        hasWarning,\n        hasSuccess,\n        autoFocus,\n        isDisabled,\n        isHighlighted,\n        isFocused: isForceFocused,\n        isTransparent,\n        className,\n        hasChanges,\n        autoComplete,\n        testSelectorPrefix,\n    } = props;\n\n    const [isFocused, setFocused] = React.useState<boolean>(false);\n    const [isHovered, setHovered] = React.useState<boolean>(false);\n\n    const handleChange = (event: React.FormEvent<HTMLTextAreaElement>): void => {\n        const sourceValue = event.currentTarget.value || '';\n        onChange(sourceValue);\n    };\n\n    const handleBlur = (): void => {\n        setFocused(false);\n\n        if (onBlur) {\n            onBlur();\n        }\n    };\n\n    const handleFocus = (): void => {\n        setFocused(true);\n\n        if (onFocus) {\n            onFocus();\n        }\n    };\n\n    const handleMouseMove = (): void => {\n        if (!isHovered) {\n            setHovered(true);\n        }\n    };\n\n    const handleMouseLeave = (): void => {\n        setHovered(false);\n    };\n\n    const isEmpty = !value;\n\n    const testSelector = useTestSelector(testSelectorPrefix || name, 'textarea');\n\n    const textareaProps: React.TextareaHTMLAttributes<HTMLTextAreaElement> = {\n        autoFocus: !!autoFocus,\n        onChange: handleChange,\n        onBlur: handleBlur,\n        onFocus: handleFocus,\n        onKeyUp,\n        name,\n        value: value || '',\n        placeholder,\n        disabled: isDisabled,\n        autoComplete: autoComplete || 'off',\n        // @ts-ignore\n        'data-test-selector': testSelector,\n    };\n\n    return (\n        <textarea\n            onMouseMove={handleMouseMove}\n            onMouseLeave={handleMouseLeave}\n            {...textareaProps}\n            className={cs(\n                cx('textarea', {\n                    'textarea--hasWarning': hasWarning,\n                    'textarea--hasSuccess': hasSuccess,\n                    'textarea--hasChanges': hasChanges,\n                    'textarea--isHighlighted': isHighlighted,\n                    'textarea--hasError': hasError,\n                    'textarea--isDisabled': isDisabled,\n                    'textarea--isHovered': isHovered,\n                    'textarea--isTransparent': isTransparent,\n                    'textarea--isFocused': isFocused || isForceFocused,\n                }),\n                cx('inner-textarea', {\n                    'inner-textarea--isEmpty': isEmpty,\n                    'inner-textarea--isDisabled': isDisabled,\n                }),\n                className,\n            )}\n        />\n    );\n});\n\nexport default Textarea;\n","import * as React from 'react';\nimport { ApiShipperContractLaneStatusT, ShipperContractLaneStatusEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    status: ApiShipperContractLaneStatusT | null | undefined;\n};\n\nexport const SHIPPER_CONTRACT_LANE_STATUS_T_MAP: Record<ApiShipperContractLaneStatusT, string> = {\n    [ShipperContractLaneStatusEnum.revoked]: 'common:shipper-contract-lane-status.REVOKED',\n    [ShipperContractLaneStatusEnum.expired]: 'common:shipper-contract-lane-status.EXPIRED',\n    [ShipperContractLaneStatusEnum.completed]: 'common:shipper-contract-lane-status.COMPLETED',\n    [ShipperContractLaneStatusEnum.active]: 'common:shipper-contract-lane-status.ACTIVE',\n};\n\nconst ShipperContractLaneStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return null;\n    }\n\n    return t(SHIPPER_CONTRACT_LANE_STATUS_T_MAP[status]);\n});\n\nexport default ShipperContractLaneStatus;\n","import { FieldsEnum, FormValuesT } from './constants';\n\nconst getInitialValues = (): FormValuesT => {\n    const values: FormValuesT = {\n        [FieldsEnum.date]: null,\n\n        [FieldsEnum.ruleType]: null,\n        [FieldsEnum.dictTrailerId]: null,\n\n        [FieldsEnum.shipperId]: null,\n        [FieldsEnum.carrierId]: null,\n\n        [FieldsEnum.countryFrom]: null,\n        [FieldsEnum.countryTo]: null,\n    };\n\n    return values;\n};\n\nexport default getInitialValues;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './UserSignUpForm.scss';\n\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useFormik } from 'formik';\nimport { AUTO_COMPLETE_OFF_FIX } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\n\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport Input from 'common/components/Input/Input';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport Checkbox from 'design-system/components/Checkbox/Checkbox';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport PhoneNumberInput from 'common/components/PhoneNumberInput/PhoneNumberInput';\nimport { authApi } from 'common/utils/api/auth/factory';\n\nconst cx = classNames.bind(styles);\n\nconst INITIAL_VALUES: FormValuesT = {\n    [FieldsEnum.firstName]: '',\n    [FieldsEnum.lastName]: '',\n    [FieldsEnum.email]: '',\n    [FieldsEnum.phone]: '',\n    [FieldsEnum.password]: '',\n    [FieldsEnum.acceptTerms]: true,\n};\n\ntype PropsT = {\n    loading?: boolean;\n    onSubmit: (formValues: FormValuesT) => void;\n};\n\nconst UserSignUpForm: React.FC<PropsT> = React.memo((props) => {\n    const { loading, onSubmit } = props;\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const initialErrors = React.useMemo(() => {\n        return validateForm(t, INITIAL_VALUES);\n    }, [t]);\n\n    const formik = useFormik<FormValuesT>({\n        validateOnBlur: false,\n        initialErrors,\n        initialValues: INITIAL_VALUES,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            onSubmit(values);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <div className={cx('fields')}>\n                <FormikField\n                    name={FieldsEnum.firstName}\n                    error={formik.errors[FieldsEnum.firstName]}\n                    meta={formik.getFieldMeta(FieldsEnum.firstName)}\n                    label={t('common:sign-up.fields.firstName.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <Input\n                            name={FieldsEnum.firstName}\n                            value={formik.values[FieldsEnum.firstName]}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    name={FieldsEnum.lastName}\n                    error={formik.errors[FieldsEnum.lastName]}\n                    meta={formik.getFieldMeta(FieldsEnum.lastName)}\n                    label={t('common:sign-up.fields.lastName.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <Input\n                            name={FieldsEnum.lastName}\n                            value={formik.values[FieldsEnum.lastName]}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    name={FieldsEnum.email}\n                    error={formik.errors[FieldsEnum.email]}\n                    meta={formik.getFieldMeta(FieldsEnum.email)}\n                    label={t('common:sign-up.fields.email.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <Input\n                            name={FieldsEnum.email}\n                            value={formik.values[FieldsEnum.email]}\n                            placeholder={t('common:sign-up.fields.email.placeholder')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    name={FieldsEnum.phone}\n                    error={formik.errors[FieldsEnum.phone]}\n                    meta={formik.getFieldMeta(FieldsEnum.phone)}\n                    label={t('common:sign-up.fields.phone.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <PhoneNumberInput\n                            name={FieldsEnum.phone}\n                            value={formik.values[FieldsEnum.phone]}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    name={FieldsEnum.password}\n                    error={formik.errors[FieldsEnum.password]}\n                    meta={formik.getFieldMeta(FieldsEnum.password)}\n                    label={t('common:sign-up.fields.password.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <Input\n                            type=\"password\"\n                            name={FieldsEnum.password}\n                            value={formik.values[FieldsEnum.password]}\n                            placeholder={t('common:sign-up.fields.password.placeholder')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            autoComplete={AUTO_COMPLETE_OFF_FIX}\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    className={cx('checkbox')}\n                    name={FieldsEnum.acceptTerms}\n                    error={formik.errors[FieldsEnum.acceptTerms]}\n                    meta={formik.getFieldMeta(FieldsEnum.acceptTerms)}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                    isCheckbox\n                >\n                    {(props) => (\n                        <Checkbox\n                            checked={formik.values[FieldsEnum.acceptTerms]}\n                            onChange={props.onChange}\n                            label={\n                                <span className={cx('terms')}>\n                                    {t('common:sign-up.user-form.terms.read')}{' '}\n                                    <Link\n                                        isExternal\n                                        theme={LinkThemeEnum.boldCharcoal}\n                                        to={t('common:sign-up.user-form.terms.link')}\n                                        target=\"_blank\"\n                                    >\n                                        {t('common:sign-up.user-form.terms.link-text')}\n                                    </Link>\n                                </span>\n                            }\n                        />\n                    )}\n                </FormikField>\n            </div>\n            <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n            <Button isLoading={loading} theme={ButtonThemeEnum.primary} type=\"submit\" className={cx('submit')}>\n                {t('common:sign-up.user-form.submit')}\n            </Button>\n            <div className={cx('footer-links')}>\n                {t('common:sign-up.user-form.footer.have-account')}\n                <span className={cx('footer-links__link')}>\n                    <Link theme={LinkThemeEnum.boldAzul} to={authApi.createSignInUrl()}>\n                        {t('common:sign-up.user-form.footer.sign-in')}\n                    </Link>\n                </span>\n            </div>\n        </form>\n    );\n});\n\nexport default UserSignUpForm;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './InvitePartnerForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport { ApiInvitePartnerRequestT, ApiPartnerTypeT, PartnerTypeEnum } from 'common/utils/api/models';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport Input from 'common/components/Input/Input';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { logWarning } from 'common/utils/logger';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    addPartnerRequestStatus: RequestStatusT;\n    onInvitePartner: (invitePartnerRequest: ApiInvitePartnerRequestT) => void;\n};\n\nexport const INITIAL_VALUES: FormValuesT = {\n    [FieldsEnum.email]: '',\n    [FieldsEnum.partnerType]: PartnerTypeEnum.shipper,\n};\n\ntype PartnerOptionT = {\n    label: string;\n    value: PartnerTypeEnum;\n};\n\nconst InvitePartnerForm: React.FC<PropsT> = (props) => {\n    const { onInvitePartner, addPartnerRequestStatus } = props;\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = {\n            ...INITIAL_VALUES,\n        };\n\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const partnerType = values[FieldsEnum.partnerType];\n            if (partnerType !== PartnerTypeEnum.broker) {\n                onInvitePartner({\n                    email: values[FieldsEnum.email],\n                    companyType: partnerType,\n                });\n            } else {\n                logWarning('failed to send invite, unknown partnerType');\n            }\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const renderOption = (option: PartnerOptionT | null | undefined): React.ReactElement => (\n        <span>{option?.label}</span>\n    );\n\n    const getOptionValue = (option: PartnerOptionT) => option?.value;\n\n    const options = React.useMemo(\n        (): Array<PartnerOptionT> => [\n            {\n                label: t('common:company-type.SHIPPER'),\n                value: PartnerTypeEnum.shipper,\n            },\n            {\n                label: t('common:company-type.CARRIER'),\n                value: PartnerTypeEnum.carrier,\n            },\n        ],\n        [t],\n    );\n\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <div className={cx('wrap')}>\n                <div className={cx('image')} />\n                <div className={cx('title')}>{t('partners-table.add-business-partner.invite-form.title')}</div>\n                <div className={cx('form')}>\n                    <FieldGroup spaces={1}>\n                        <FormikField\n                            className={cx('field--email')}\n                            name={FieldsEnum.email}\n                            error={formik.errors[FieldsEnum.email]}\n                            meta={formik.getFieldMeta(FieldsEnum.email)}\n                            label={t('partners-table.add-business-partner.invite-form.fields.email.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <Input\n                                    name={FieldsEnum.email}\n                                    value={formik.values[FieldsEnum.email]}\n                                    placeholder=\"\"\n                                    onChange={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                />\n                            )}\n                        </FormikField>\n                        <FormikField\n                            className={cx('field--partner-type')}\n                            name={FieldsEnum.partnerType}\n                            error={formik.errors[FieldsEnum.partnerType]}\n                            meta={formik.getFieldMeta(FieldsEnum.partnerType)}\n                            label={t('partners-table.add-business-partner.invite-form.fields.profile.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <DropdownInput<PartnerOptionT, ApiPartnerTypeT>\n                                    selectedValue={formik.values[FieldsEnum.partnerType]}\n                                    options={options}\n                                    onSelect={props.onChange}\n                                    renderOption={renderOption}\n                                    getOptionValue={getOptionValue}\n                                    overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                    hasWarning={props.hasWarning}\n                                    hasError={props.hasError}\n                                />\n                            )}\n                        </FormikField>\n                    </FieldGroup>\n                </div>\n                <Button\n                    theme={ButtonThemeEnum.primary}\n                    isLoading={addPartnerRequestStatus.loading}\n                    isFullWidth\n                    isCenterContent\n                    type=\"submit\"\n                >\n                    {t('partners-table.add-business-partner.invite-form.submit')}\n                </Button>\n            </div>\n        </form>\n    );\n};\n\nexport default InvitePartnerForm;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './TrailerDetails.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport {\n    AssetTypeEnum,\n    CurrencyEnum,\n    DEFAULT_ICON_SIZE,\n    StyleGuideColorsEnum,\n    TrailerTypeEnum,\n} from 'common/constants';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport { selectCountriesByCode } from 'common/store/countries-dict/selectors';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport TrailerIcon from 'common/icons/TrailerIcon';\nimport { ApiTrailerDetailsT } from 'common/store/trailers/models';\nimport { fetchTrailersDict } from 'common/store/trailers-dict/actions';\nimport { selectTrailersDictById } from 'common/store/trailers-dict/selectors';\nimport Money from 'common/components/Money/Money';\nimport LastGPSPositionAlert from 'common/components/LastGPSPositionAlert/LastGPSPositionAlert';\nimport { fetchCarrierContracts } from 'common/store/carrier-contracts/actions';\nimport {\n    selectCarrierContractById,\n    selectFetchCarrierContractsRequest,\n} from 'common/store/carrier-contracts/selectors';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport TrailerType from 'common/layouts/CommonEditableTrailerDetailsLayout/TrailerType/TrailerType';\nimport LinkedTruckAlert from 'common/layouts/CommonEditableTrailerDetailsLayout/LinkedTruckAlert/LinkedTruckAlert';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport DetailsIcon from 'common/icons/DetailsIcon';\nimport { TooltipPositionEnum } from 'design-system/components/Tooltip/Tooltip';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { TrailerStatusEnum } from 'common/utils/api/models';\nimport ArchiveReasonAlert from 'common/components/ArchiveReasonAlert/ArchiveReasonAlert';\nimport { AlertGroup } from 'common/layouts/AlertGroup/AlertGroup';\nimport TrailerActionHistory from '../../TrailerActionHistory/TrailerActionHistory';\nimport { checkIsApiCarrierTrailerDetails } from 'common/store/trailers/type-guards';\nimport isNumber from 'lodash/isNumber';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    partnerId: PartnerIdT;\n    isLoading: boolean;\n    trailerDetails: ApiTrailerDetailsT | null;\n    onOpenTruckDetails: (truckId: TruckIdT) => void;\n    onOpenContactDetails: (contractId: CarrierContractIdT) => void;\n    onOpenUserDetails: (userId: UserIdT, isBrokerUser?: boolean) => void;\n};\n\nconst TrailerDetails: React.FC<PropsT> = (props) => {\n    const { partnerId, trailerDetails, isLoading, onOpenTruckDetails, onOpenContactDetails, onOpenUserDetails } = props;\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const countryByCode = useSelector(selectCountriesByCode);\n    const trailersDictById = useSelector(selectTrailersDictById) || {};\n\n    React.useEffect(() => {\n        dispatch(fetchCountriesDict());\n        dispatch(fetchTrailersDict());\n    }, [dispatch]);\n\n    const trailerDictModel = trailerDetails?.dictTrailerInfo?.id\n        ? trailersDictById[trailerDetails?.dictTrailerInfo?.id]\n        : null;\n\n    const trailerTypeLabel = trailerDictModel\n        ? t(`common:trailers-page.add-trailer.fields.trailer.${trailerDictModel?.trailerType}.label`)\n        : '';\n\n    React.useEffect(() => {\n        dispatch(fetchCarrierContracts(partnerId));\n    }, [dispatch, partnerId]);\n\n    const fetchContractsRequests = useSelector(selectFetchCarrierContractsRequest(partnerId));\n    const contractById = useSelector(selectCarrierContractById(partnerId));\n    const contract = contractById[trailerDetails?.contractId as string] || null;\n\n    const contractRatePerKm =\n        trailerDictModel?.trailerType === TrailerTypeEnum.box ? contract?.boxRateKm : contract?.tiltRateKm;\n\n    const ratePerKm = trailerDetails?.contractId ? contractRatePerKm : trailerDetails?.ratePerKm;\n\n    let contractNode: React.ReactNode = null;\n\n    if (fetchContractsRequests?.loading) {\n        contractNode = <ControlLoaderIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.brandAccent} />;\n    }\n\n    if (!fetchContractsRequests?.loading && trailerDetails && trailerDetails?.contractId) {\n        contractNode = trailerDetails?.contractName;\n    }\n\n    if (!fetchContractsRequests?.loading && trailerDetails && !trailerDetails?.contractId) {\n        contractNode = t('common:dedicated.none');\n    }\n\n    let contractRightNode: React.ReactNode = null;\n    if (contract?.id) {\n        contractRightNode = (\n            <TransparentTrigger\n                spaces=\"xs\"\n                onClick={() => {\n                    onOpenContactDetails(contract.id);\n                }}\n                leftIcon={<DetailsIcon strokeColor={StyleGuideColorsEnum.gray} />}\n                reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n            />\n        );\n    }\n\n    return (\n        <div className={cx('wrap')}>\n            <AlertGroup className={cx('alerts')}>\n                {trailerDetails?.linkedTruckId && (\n                    <LinkedTruckAlert\n                        plateNumber={trailerDetails?.linkedTruckPlateNumber}\n                        truckId={trailerDetails.linkedTruckId}\n                        onOpenTruckDetails={onOpenTruckDetails}\n                    />\n                )}\n                {trailerDetails?.status !== TrailerStatusEnum.archived && (\n                    <LastGPSPositionAlert\n                        companyId={partnerId}\n                        assetType={AssetTypeEnum.trailer}\n                        plateNumber={trailerDetails?.plateNumber || ''}\n                        isDedicated={!!trailerDetails?.contractId}\n                    />\n                )}\n                {trailerDetails?.status === TrailerStatusEnum.archived && !!trailerDetails?.archivingReason && (\n                    <ArchiveReasonAlert reason={trailerDetails.archivingReason} />\n                )}\n            </AlertGroup>\n            {isLoading && <LoaderOverlay />}\n            <div className={cx('fields')}>\n                <TrailerType trailerType={trailerDictModel?.trailerType} className={cx('icon')} />\n                <ReadOnlyField\n                    label={trailerTypeLabel}\n                    icon={\n                        <TrailerIcon\n                            size={20}\n                            fillColor={StyleGuideColorsEnum.brandAccent}\n                            strokeColor={StyleGuideColorsEnum.brandDark}\n                        />\n                    }\n                    value={\n                        trailerDictModel\n                            ? t('common:trailer-subtype-template', {\n                                  length: trailerDictModel.length,\n                                  model: trailerDictModel.model,\n                                  eur1Pallets: trailerDictModel.eur1Pallets,\n                                  eur2Pallets: trailerDictModel.eur2Pallets,\n                              })\n                            : ''\n                    }\n                />\n                <FieldGroup>\n                    <ReadOnlyField\n                        className={cx('field', 'field--plate-number')}\n                        label={t('common:trailers-page.add-trailer.fields.plate-number.label')}\n                        value={trailerDetails?.plateNumber || ''}\n                    />\n                    <ReadOnlyField\n                        className={cx('field', 'field--vin')}\n                        label={t('common:trailers-page.add-trailer.fields.trailer-vin.label')}\n                        value={trailerDetails?.vin || ''}\n                    />\n                </FieldGroup>\n\n                <ReadOnlyField\n                    className={cx('field', 'field--country')}\n                    icon={<FlagIcon countryCode={trailerDetails?.countryCode} />}\n                    label={t('common:trailers-page.add-trailer.fields.country.label')}\n                    value={\n                        (trailerDetails?.countryCode\n                            ? countryByCode?.[trailerDetails?.countryCode]?.userLangDisplayName\n                            : null) || ''\n                    }\n                />\n                <FieldGroup>\n                    <ReadOnlyField\n                        className={cx('field', 'field--contract')}\n                        label={t('common:trailers-page.add-trailer.fields.contract.label')}\n                        value={contractNode}\n                        tooltipPosition={TooltipPositionEnum.centerRight}\n                        tooltipNode={\n                            <TooltipContent theme={TooltipContentThemeEnum.black} width={200}>\n                                {t('common:trailers-page.add-trailer.fields.contract.tooltip')}\n                            </TooltipContent>\n                        }\n                        rightNode={contractRightNode}\n                    />\n                    <ReadOnlyField\n                        className={cx('field', 'field--rate')}\n                        label={t('common:trailers-page.add-trailer.fields.rate.label')}\n                        value={isNumber(ratePerKm) ? <Money amount={ratePerKm} currency={CurrencyEnum.EUR} /> : ''}\n                    />\n                </FieldGroup>\n            </div>\n            <TrailerActionHistory\n                onOpenUserDetails={onOpenUserDetails}\n                createdDate={trailerDetails?.createdDate}\n                createdByBroker={checkIsApiCarrierTrailerDetails(trailerDetails) && trailerDetails?.addedByBroker}\n                createdByName={trailerDetails?.createdBy?.fullName}\n                createdById={trailerDetails?.createdBy?.id}\n                modifiedDate={trailerDetails?.lastModifiedDate}\n                modifiedByBroker={\n                    checkIsApiCarrierTrailerDetails(trailerDetails) && trailerDetails?.lastModifiedByBroker\n                }\n                modifiedByName={trailerDetails?.lastModifiedBy?.fullName}\n                modifiedById={trailerDetails?.lastModifiedBy?.id}\n            />\n        </div>\n    );\n};\n\nexport default TrailerDetails;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './FiltersSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport getQueryFilters from './get-query-filters';\nimport getInitialValues from './get-initial-values';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { isDeepEqual } from 'common/utils/deep-equal';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport DictTrailerDropdown from 'common/components/dropdowns/DictTrailerDropdown/DictTrailerDropdown';\nimport Input from 'common/components/Input/Input';\nimport DatePicker, { DatePickerOverlayPositionEnum } from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport NumberInput from 'common/components/NumberInput/NumberInput';\nimport { StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport { getMoneyMask } from 'common/utils/input-masks';\nimport { TransportOrderTypeEnum } from 'common/utils/api/models';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport SelectedFilters from 'common/layouts/TransportOrderListPageLayout/SelectedFilters/SelectedFilters';\nimport PinIcon, { PinIconProps } from 'common/icons/PinIcon';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { TooltipPositionEnum } from 'design-system/components/Tooltip/Tooltip';\nimport DriverSuggest from 'common/components/suggests/DriverSuggest/DriverSuggest';\nimport { mergeQueryFilters } from 'common/utils/query';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport { QueryFiltersT } from '../query-models';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    onClose: () => void;\n    queryFilters: QueryFiltersT;\n    setQueryFilters: (queryFilters: QueryFiltersT) => void;\n};\n\ntype TransportOrderTypeOptionT = { label: string; value: TransportOrderTypeEnum | null };\n\nconst AVAILABLE_ORDER_TYPE = [\n    TransportOrderTypeEnum.train,\n    TransportOrderTypeEnum.truck,\n    TransportOrderTypeEnum.trailer,\n];\n\nconst FiltersSidebarContent: React.FC<PropsT> = (props) => {\n    const { onClose, setQueryFilters, queryFilters } = props;\n    const { t } = useTranslation();\n\n    const { partnerId } = usePartnerContext();\n\n    const [initialQueryFilters, setInitialQueryFilters] = React.useState<QueryFiltersT>(queryFilters);\n\n    React.useEffect(() => {\n        setInitialQueryFilters(queryFilters);\n    }, [queryFilters]);\n\n    const initialValues = React.useMemo(() => getInitialValues(queryFilters), [queryFilters]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialValues,\n        onSubmit: (values, formikHelpers): void => {\n            const newQueryFilters = getQueryFilters(values);\n            const mergedQueryFilters = mergeQueryFilters(initialQueryFilters, newQueryFilters);\n            setQueryFilters(mergedQueryFilters);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const moneyMask = React.useMemo(() => getMoneyMask(), []);\n\n    const isSameValues = React.useMemo(() => {\n        return isDeepEqual(initialValues, formik.values) && isDeepEqual(initialQueryFilters, queryFilters);\n    }, [initialValues, formik.values, initialQueryFilters, queryFilters]);\n\n    const typeOptions: Array<TransportOrderTypeOptionT> = React.useMemo(\n        () =>\n            AVAILABLE_ORDER_TYPE.map((value) => ({\n                label: t(`common:transport-orders-page.filters.transport-order-type.${value}`),\n                value,\n            })),\n        [t],\n    );\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('form')}>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent title={t('common:transport-orders-page.filters.title')} onClose={onClose} />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <FormikField\n                    className={cx('field')}\n                    name={FieldsEnum.originAddress}\n                    error={formik.errors[FieldsEnum.originAddress]}\n                    meta={formik.getFieldMeta(FieldsEnum.originAddress)}\n                    label={t('common:transport-orders-page.filters.fields.origin-address')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                    tooltipPosition={TooltipPositionEnum.topLeft}\n                    tooltipNode={\n                        <TooltipContent theme={TooltipContentThemeEnum.black} width={200}>\n                            {t('common:transport-orders-page.filters.tooltip.address')}\n                        </TooltipContent>\n                    }\n                >\n                    {(props) => (\n                        <Input\n                            renderLeftIcon={(iconMeta) => <PinIcon {...PinIconProps.getControlProps(iconMeta)} />}\n                            name={FieldsEnum.originAddress}\n                            value={formik.values[FieldsEnum.originAddress] || ''}\n                            placeholder={t('common:transport-orders-page.filters.placeholders.address')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            hasClearControl\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    className={cx('field')}\n                    name={FieldsEnum.destinationAddress}\n                    error={formik.errors[FieldsEnum.destinationAddress]}\n                    meta={formik.getFieldMeta(FieldsEnum.destinationAddress)}\n                    label={t('common:transport-orders-page.filters.fields.destination-address')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                    tooltipPosition={TooltipPositionEnum.topLeft}\n                    tooltipNode={\n                        <TooltipContent theme={TooltipContentThemeEnum.black} width={200}>\n                            {t('common:transport-orders-page.filters.tooltip.address')}\n                        </TooltipContent>\n                    }\n                >\n                    {(props) => (\n                        <Input\n                            renderLeftIcon={(iconMeta) => <PinIcon {...PinIconProps.getControlProps(iconMeta)} />}\n                            name={FieldsEnum.destinationAddress}\n                            value={formik.values[FieldsEnum.destinationAddress] || ''}\n                            placeholder={t('common:transport-orders-page.filters.placeholders.address')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            hasClearControl\n                        />\n                    )}\n                </FormikField>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.pickupDates}\n                        error={formik.errors[FieldsEnum.pickupDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.pickupDates)}\n                        label={t('common:transport-orders-page.filters.fields.pickup-dates')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.pickupDates]}\n                                placeholder={t('common:transport-orders-page.filters.placeholders.pickup-dates')}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.topLeft}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.dropoffDates}\n                        error={formik.errors[FieldsEnum.dropoffDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.dropoffDates)}\n                        label={t('common:transport-orders-page.filters.fields.drop-off-dates')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.dropoffDates]}\n                                placeholder={t('common:transport-orders-page.filters.placeholders.drop-off-dates')}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.topRight}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.receiveDates}\n                        error={formik.errors[FieldsEnum.receiveDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.receiveDates)}\n                        label={t('common:transport-orders-page.filters.fields.received-dates')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.receiveDates]}\n                                placeholder={t('common:transport-orders-page.filters.placeholders.received-dates')}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomRight}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--order-type')}\n                        name={FieldsEnum.orderType}\n                        error={formik.errors[FieldsEnum.orderType]}\n                        meta={formik.getFieldMeta(FieldsEnum.orderType)}\n                        label={t('common:transport-orders-page.filters.fields.order-type')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DropdownInput<TransportOrderTypeOptionT, TransportOrderTypeOptionT['value']>\n                                selectedValue={formik.values[FieldsEnum.orderType]}\n                                placeholder={t('common:transport-orders-page.filters.placeholders.order-type')}\n                                options={typeOptions}\n                                onSelect={props.onChange}\n                                renderOption={(option: TransportOrderTypeOptionT | null | undefined, placeholder) => {\n                                    if (!option) {\n                                        return <span>{placeholder}</span>;\n                                    }\n\n                                    return <span>{option.label}</span>;\n                                }}\n                                onRightClick={() => {\n                                    props.onChange(null);\n                                }}\n                                renderRightIcon={() =>\n                                    formik.values[FieldsEnum.orderType] ? (\n                                        <CloseIcon fillColor={StyleGuideColorsEnum.gray} />\n                                    ) : null\n                                }\n                                getOptionValue={(option) => option.value}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--trailer-type')}\n                        name={FieldsEnum.dictTrailerId}\n                        error={formik.errors[FieldsEnum.dictTrailerId]}\n                        meta={formik.getFieldMeta(FieldsEnum.dictTrailerId)}\n                        label={t('common:transport-orders-page.filters.fields.trailer-type')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DictTrailerDropdown\n                                placeholder={t('common:transport-orders-page.filters.placeholders.trailer-type')}\n                                value={formik.values[FieldsEnum.dictTrailerId]}\n                                onChange={props.onChange}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--plate-number')}\n                        name={FieldsEnum.plateNumber}\n                        error={formik.errors[FieldsEnum.plateNumber]}\n                        meta={formik.getFieldMeta(FieldsEnum.plateNumber)}\n                        label={t('common:transport-orders-page.filters.fields.plate-number')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                        tooltipPosition={TooltipPositionEnum.topCenter}\n                        tooltipNode={\n                            <TooltipContent theme={TooltipContentThemeEnum.black} width={200}>\n                                {t('common:transport-orders-page.filters.tooltip.plate-number')}\n                            </TooltipContent>\n                        }\n                    >\n                        {(props) => (\n                            <Input\n                                name={FieldsEnum.plateNumber}\n                                value={formik.values[FieldsEnum.plateNumber] || ''}\n                                placeholder={t('common:transport-orders-page.filters.placeholders.plate-number')}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--driver')}\n                        name={FieldsEnum.driverId}\n                        error={formik.errors[FieldsEnum.driverId]}\n                        meta={formik.getFieldMeta(FieldsEnum.driverId)}\n                        label={t('common:transport-orders-page.filters.fields.driver')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                        tooltipPosition={TooltipPositionEnum.topLeft}\n                        tooltipNode={\n                            <TooltipContent theme={TooltipContentThemeEnum.black} width={200}>\n                                {t('common:transport-orders-page.filters.tooltip.driver')}\n                            </TooltipContent>\n                        }\n                    >\n                        {(props) => (\n                            <DriverSuggest\n                                partnerId={partnerId}\n                                value={formik.values[FieldsEnum.driverId]}\n                                initialValue={initialValues[FieldsEnum.driverId]}\n                                initialLabel={initialValues[FieldsEnum.driverName] || ''}\n                                hasClearControl\n                                onSelect={(driverId, driverName) => {\n                                    formik.setFieldValue(FieldsEnum.driverId, driverId);\n                                    formik.setFieldValue(FieldsEnum.driverName, driverName);\n                                }}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                placeholder={t('common:transport-orders-page.filters.placeholders.driver')}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                            />\n                        )}\n                    </FormikField>\n                    <div className={cx('field', 'field--price')}>\n                        <FieldGroup isFullWidth>\n                            <FormikField\n                                className={cx('field', 'field--min-price')}\n                                name={FieldsEnum.minPrice}\n                                error={formik.errors[FieldsEnum.minPrice]}\n                                meta={formik.getFieldMeta(FieldsEnum.minPrice)}\n                                label={t('common:transport-orders-page.filters.fields.price')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <NumberInput\n                                        name={FieldsEnum.minPrice}\n                                        unitType={UnitTypeEnum.euroAbbreviation}\n                                        value={formik.values[FieldsEnum.minPrice]}\n                                        placeholder={t('common:transport-orders-page.filters.placeholders.min-price')}\n                                        onChange={props.onChange}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                        mask={moneyMask}\n                                        step={1}\n                                    />\n                                )}\n                            </FormikField>\n                            <FormikField\n                                className={cx('field', 'field--max-price')}\n                                name={FieldsEnum.maxPrice}\n                                meta={formik.getFieldMeta(FieldsEnum.maxPrice)}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <NumberInput\n                                        name={FieldsEnum.maxPrice}\n                                        unitType={UnitTypeEnum.euroAbbreviation}\n                                        value={formik.values[FieldsEnum.maxPrice]}\n                                        placeholder={t('common:transport-orders-page.filters.placeholders.max-price')}\n                                        onChange={props.onChange}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                        mask={moneyMask}\n                                        step={1}\n                                    />\n                                )}\n                            </FormikField>\n                        </FieldGroup>\n                    </div>\n                </FieldGroup>\n            </SideBarLayout>\n            <FooterSideBarLayout hasPaddings>\n                <div className={cx('selected-filters')}>\n                    <SelectedFilters queryFilters={initialQueryFilters} setQueryFilters={setInitialQueryFilters} />\n                </div>\n                <Button\n                    theme={ButtonThemeEnum.primary}\n                    isDisabled={isSameValues}\n                    isFullWidth\n                    isCenterContent\n                    type=\"submit\"\n                >\n                    {t('common:transport-orders-page.filters.submit')}\n                </Button>\n            </FooterSideBarLayout>\n        </form>\n    );\n};\n\nexport default FiltersSidebarContent;\n","import * as React from 'react';\nimport { useMemo } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './RouteEditingMap.scss';\nimport GoogleMapReact, { ClickEventValue } from 'google-map-react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectReserve,\n    selectReservePreview,\n    selectReservePreviewRequest,\n    selectReserveRequest,\n} from 'common/store/order-creation/selectors';\nimport { BOOTSTRAP_URL_KEYS, DEFAULT_CENTER, DEFAULT_ZOOM, MAP_OPTIONS } from 'common/store/constants';\nimport { changeReserveQuery } from 'common/store/order-creation/actions';\nimport useGoogleMapsApiLoader from 'common/utils/hooks/maps/useGoogleMapsApiLoader';\nimport { useGoogleMapContext } from 'common/utils/hooks/maps/useGoogleMapContext';\nimport MapFooterEstimate from 'common/layouts/NewOrderPage/MapFooterEstimate/MapFooterEstimate';\nimport ExcludeCountries from 'common/layouts/NewOrderPage/RouteEditingMap/ExcludeCountries/ExcludeCountries';\nimport MapRoute, { MapRouteThemeEnum } from 'common/components/maps/MapRoute/MapRoute';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { selectRoutingGeometryState } from 'common/store/routing-geometry/selectors';\nimport { isNonNil } from 'common/utils';\nimport { useRouteGeometry } from 'common/utils/hooks/useRouteGeometry';\nimport { SyncShipmentDetailsFormMapStateContext } from '../ShipmentDetailsForm/contexts/sync-map-state';\nimport { SyncShipmentDetailsFormValuesContext } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/contexts/sync-form-values';\nimport { SyncMapSettingsCallbackT } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/hooks/usy-sync-map-state';\nimport NumberPinIcon from 'common/icons/NumberPinIcon';\nimport {\n    FieldsEnum,\n    RoutePointFieldsEnum,\n    RoutePointFormValuesT,\n} from 'common/layouts/NewOrderPage/ShipmentDetailsForm/constants';\nimport { getRoutePointFieldName } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/utils';\nimport findIndex from 'lodash/findIndex';\nimport { prepareApiReserveChangesChangeRoutePoint } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/prepare-api-requests';\nimport { ApiOrderCreationReservePointTypeT, OrderCreationReservePointTypeEnum } from 'common/utils/api/models';\nimport FerryLocationPin from 'common/components/maps/pins/FerryLocationPin/FerryLocationPin';\nimport { useGoogleMapGeocoding } from 'common/utils/hooks/maps/useGoogleMapGeocoding';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst KEY_SPREADER = '/';\nconst KEY_PREFIX = 'route-point';\n\nconst formatKey = (routePointIndex: number, pointType: ApiOrderCreationReservePointTypeT, fakeId: string): string => {\n    return [KEY_PREFIX, routePointIndex, pointType, fakeId].join(KEY_SPREADER);\n};\n\nconst parseKey = (\n    key: string,\n): { routePointIndex: number; pointType: ApiOrderCreationReservePointTypeT; fakeId: string } => {\n    const parts = key.split(KEY_SPREADER);\n\n    const routePointIndex = parseInt(parts[parts.length - 3], 10);\n    const pointType = parts[parts.length - 2] as ApiOrderCreationReservePointTypeT;\n    const fakeId = parts[parts.length - 1];\n    return { routePointIndex, pointType, fakeId };\n};\n\nconst draggablePointTypeSet = new Set<ApiOrderCreationReservePointTypeT>([\n    OrderCreationReservePointTypeEnum.shipment,\n    OrderCreationReservePointTypeEnum.driveThrough,\n]);\n\nconst RouteEditingMap: React.FC<PropsT> = React.memo(() => {\n    const dispatch = useDispatch();\n\n    const syncShipmentDetailsFormValuesContext = React.useContext(SyncShipmentDetailsFormValuesContext);\n    const routeFormValue = syncShipmentDetailsFormValuesContext?.formValues?.[FieldsEnum.route];\n\n    const syncShipmentDetailsFormMapStateContext = React.useContext(SyncShipmentDetailsFormMapStateContext);\n    const { googleMaps } = useGoogleMapContext();\n    const { onGoogleApiLoaded } = useGoogleMapsApiLoader({});\n\n    const { tryGeocodeByPoint } = useGoogleMapGeocoding();\n\n    const syncMapSettingsCallback = React.useCallback<SyncMapSettingsCallbackT>(\n        (mapSettings) => {\n            if (!googleMaps) {\n                return;\n            }\n\n            const { map, maps } = googleMaps;\n            if (!map || !maps) {\n                return;\n            }\n\n            const { boundingBox, zoom, center } = mapSettings;\n\n            if (boundingBox) {\n                const point1 = new maps.LatLng(...boundingBox[0]);\n                const point2 = new maps.LatLng(...boundingBox[1]);\n                const bounds = new maps.LatLngBounds(point1, point2);\n                map.fitBounds(bounds);\n            }\n\n            if (zoom) {\n                map.setZoom(zoom);\n            }\n\n            if (center) {\n                const centerLatLng = new maps.LatLng(center.lat, center.lng);\n                map.setCenter(centerLatLng);\n            }\n        },\n        [googleMaps],\n    );\n\n    React.useEffect(() => {\n        if (!googleMaps) {\n            return;\n        }\n\n        const { map, maps } = googleMaps;\n        if (!map || !maps) {\n            return;\n        }\n\n        syncShipmentDetailsFormMapStateContext?.setIsMapInitialized(true);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [googleMaps, syncShipmentDetailsFormMapStateContext?.setIsMapInitialized]);\n\n    const reserve = useSelector(selectReserve);\n    const reservePreview = useSelector(selectReservePreview);\n\n    const draggablePinRef = React.useRef<string | null>(null);\n    const [activeLocation, setActiveLocation] = React.useState<LocationT | null>(null);\n    const [draggable, setDraggable] = React.useState(true);\n\n    const isEditing = syncShipmentDetailsFormMapStateContext?.editingRoutePointIndex !== null;\n\n    const hasRedBorder =\n        syncShipmentDetailsFormMapStateContext?.editingRoutePointIndex !== null &&\n        syncShipmentDetailsFormMapStateContext?.hasEditingRoutePointError;\n\n    const handleDragMove = (childKey: string, childProps: any, mouse: GeoPointT) => {\n        const { pointType } = parseKey(childKey);\n\n        if (!draggablePointTypeSet.has(pointType)) {\n            return;\n        }\n\n        setDraggable(false);\n\n        draggablePinRef.current = childKey;\n\n        setActiveLocation({\n            point: {\n                lat: mouse.lat,\n                lng: mouse.lng,\n            },\n            address: null,\n            addressComponents: null,\n            utcOffsetMinutes: null,\n        });\n    };\n\n    React.useEffect(() => {\n        setActiveLocation(null);\n        draggablePinRef.current = null;\n    }, [routeFormValue]);\n\n    const handleDragEnd = async (childKey: string, childProps: any, mouse: GeoPointT) => {\n        if (draggablePinRef.current !== childKey) {\n            return;\n        }\n\n        setDraggable(true);\n\n        const location = await tryGeocodeByPoint(mouse);\n\n        const { routePointIndex, fakeId } = parseKey(childKey);\n\n        if (syncShipmentDetailsFormValuesContext?.setFieldValueCallback) {\n            syncShipmentDetailsFormValuesContext.setFieldValueCallback(\n                getRoutePointFieldName(routePointIndex, RoutePointFieldsEnum.location),\n                location,\n            );\n        }\n\n        dispatch(\n            changeReserveQuery(\n                prepareApiReserveChangesChangeRoutePoint(fakeId, {\n                    [RoutePointFieldsEnum.location]: location,\n                }),\n            ),\n        );\n    };\n\n    const handleMapClick = async (event: ClickEventValue) => {\n        const location = await tryGeocodeByPoint(event);\n\n        let editingRoutePointIndex = -1;\n\n        if (syncShipmentDetailsFormMapStateContext?.editingRoutePointIndex !== null) {\n            editingRoutePointIndex = syncShipmentDetailsFormMapStateContext.editingRoutePointIndex;\n        } else {\n            editingRoutePointIndex = findIndex(routeFormValue, (routePointFormValue) => {\n                const location = routePointFormValue[RoutePointFieldsEnum.location];\n\n                return !location;\n            });\n        }\n\n        if (editingRoutePointIndex !== -1) {\n            if (syncShipmentDetailsFormValuesContext?.setFieldValueCallback) {\n                syncShipmentDetailsFormValuesContext.setFieldValueCallback(\n                    getRoutePointFieldName(editingRoutePointIndex, RoutePointFieldsEnum.location),\n                    location,\n                );\n            }\n\n            const fakeId = routeFormValue?.[editingRoutePointIndex]?.fakeId;\n            if (fakeId) {\n                dispatch(\n                    changeReserveQuery(\n                        prepareApiReserveChangesChangeRoutePoint(fakeId, {\n                            [RoutePointFieldsEnum.location]: location,\n                        }),\n                    ),\n                );\n            }\n        }\n    };\n\n    React.useEffect(() => {\n        if (syncShipmentDetailsFormMapStateContext?.setSyncMapSettings) {\n            syncShipmentDetailsFormMapStateContext.setSyncMapSettings(syncMapSettingsCallback);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [syncMapSettingsCallback]);\n\n    React.useEffect(() => {\n        if (syncShipmentDetailsFormMapStateContext?.initialBoundingBox) {\n            syncMapSettingsCallback({\n                center: null,\n                zoom: null,\n                boundingBox: syncShipmentDetailsFormMapStateContext.initialBoundingBox,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [syncShipmentDetailsFormMapStateContext?.initialBoundingBox]);\n\n    const renderRoutePointPin = (\n        routePointFormValue: RoutePointFormValuesT,\n        routePointIndex: number,\n    ): React.ReactNode => {\n        const fakeId = routePointFormValue[RoutePointFieldsEnum.fakeId];\n        const location = routePointFormValue[RoutePointFieldsEnum.location];\n        const locationType = routePointFormValue[RoutePointFieldsEnum.type];\n\n        const key = formatKey(routePointIndex, locationType, fakeId);\n\n        let latLngProps = {};\n        if (draggablePinRef.current === key) {\n            if (!activeLocation?.point) {\n                return null;\n            }\n\n            latLngProps = {\n                lat: activeLocation.point.lat,\n                lng: activeLocation.point.lng,\n            };\n        } else {\n            if (!location?.point) {\n                return null;\n            }\n\n            latLngProps = {\n                lat: location.point.lat,\n                lng: location.point.lng,\n            };\n        }\n\n        if (\n            locationType === OrderCreationReservePointTypeEnum.ferryDisembark ||\n            locationType === OrderCreationReservePointTypeEnum.ferryOnboard\n        ) {\n            return <FerryLocationPin key={key} className={cx('route-point-pin')} {...latLngProps} />;\n        }\n\n        let fillColor = StyleGuideColorsEnum.charcoal;\n        if (syncShipmentDetailsFormMapStateContext?.editingRoutePointErrorsIndexes.includes(routePointIndex)) {\n            fillColor = StyleGuideColorsEnum.tomatoRed;\n        } else if (syncShipmentDetailsFormMapStateContext?.editingRoutePointIndex === routePointIndex) {\n            fillColor = StyleGuideColorsEnum.brandDark;\n        } else if (locationType === OrderCreationReservePointTypeEnum.shipment) {\n            fillColor = StyleGuideColorsEnum.charcoal;\n        } else if (locationType === OrderCreationReservePointTypeEnum.driveThrough) {\n            fillColor = StyleGuideColorsEnum.gray;\n        }\n\n        return (\n            <NumberPinIcon\n                number={routePointIndex + 1}\n                key={key}\n                className={cx('route-point-pin')}\n                fillColor={fillColor}\n                {...latLngProps}\n            />\n        );\n    };\n\n    const reserveRequest = useSelector(selectReserveRequest);\n    const reservePreviewRequest = useSelector(selectReservePreviewRequest);\n\n    const polylineIds = useMemo(() => {\n        return [reserve?.polylineId].filter(isNonNil);\n    }, [reserve?.polylineId]);\n\n    useRouteGeometry(polylineIds);\n\n    const reserveRouteGeometryState = useSelector(selectRoutingGeometryState(reserve?.polylineId));\n\n    const isMapLoading =\n        reserveRequest.loading || reservePreviewRequest.loading || reserveRouteGeometryState.requestStatus.loading;\n\n    return (\n        <div\n            className={cx('map', {\n                'map--isEditing': isEditing,\n                'map--hasRedBorder': hasRedBorder,\n            })}\n        >\n            <GoogleMapReact\n                draggable={draggable}\n                center={undefined}\n                zoom={undefined}\n                defaultCenter={DEFAULT_CENTER}\n                defaultZoom={DEFAULT_ZOOM}\n                bootstrapURLKeys={BOOTSTRAP_URL_KEYS}\n                onClick={handleMapClick}\n                options={MAP_OPTIONS}\n                onChildMouseDown={handleDragMove}\n                onChildMouseUp={handleDragEnd}\n                onChildMouseMove={handleDragMove}\n                onGoogleApiLoaded={onGoogleApiLoaded}\n            >\n                {routeFormValue?.map((routePointFormValue, routePointIndex) => {\n                    return renderRoutePointPin(routePointFormValue, routePointIndex);\n                })}\n            </GoogleMapReact>\n            {!reserveRequest.loading && reserve && !reserveRouteGeometryState?.requestStatus?.loading && (\n                <MapRoute\n                    map={googleMaps?.map}\n                    maps={googleMaps?.maps}\n                    geometryLibrary={googleMaps?.libraries?.geometry}\n                    theme={MapRouteThemeEnum.orderCreation}\n                    polylines={reserveRouteGeometryState?.data}\n                />\n            )}\n            {(isMapLoading || reserve) && (\n                <MapFooterEstimate\n                    isLoading={isMapLoading}\n                    distanceM={reserve?.route?.distance}\n                    travelTimeSec={reservePreview?.travelSeconds}\n                />\n            )}\n            <ExcludeCountries className={cx('exclude-countries')} />\n        </div>\n    );\n});\n\nexport default RouteEditingMap;\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"ActiveContractDropdown__option___WOUki\",\"fadeIn\":\"ActiveContractDropdown__fadeIn___rbEEu\",\"blinking\":\"ActiveContractDropdown__blinking___Q3q3c\"};","import * as React from 'react';\nimport { useMemo } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ShipperContractLaneEditForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { FieldsEnum, FormValuesT, MAX_RADIUS_KM, MIN_VALID_FROM_VALID_TILL_DAYS } from './constants';\nimport { StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport { useSelector } from 'react-redux';\nimport OriginIcon from 'common/icons/OriginIcon';\nimport DestinationIcon from 'common/icons/DestinationIcon';\nimport validateForm from './validate-form';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport NumberInput from 'common/components/NumberInput/NumberInput';\nimport DatePicker, {\n    DatePickerOverlayPositionEnum,\n    datePicketRangePresets,\n} from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport Input from 'common/components/Input/Input';\nimport FieldGroup, { FieldGroupEmptyItem } from 'common/components/FieldGroup/FieldGroup';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport moment from 'moment/moment';\nimport { prepareApRequest } from './prepare-api-requests';\nimport {\n    ShipperContractLaneDetailsT,\n    UpdateShipperContractLaneChangesT,\n} from 'common/store/shipper-contract-lane-details/models';\nimport { selectTrailersDictById } from 'common/store/trailers-dict/selectors';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport TrailerIcon from 'common/icons/TrailerIcon';\nimport EmissionIcon from 'common/icons/EmissionIcon';\nimport EmissionClassLabel from 'common/components/EmissionClassLabel/EmissionClassLabel';\nimport isNumber from 'lodash/isNumber';\nimport values from 'lodash/values';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { getDateFromISO, getMaxISODate, getMinISODate } from 'common/utils/time';\nimport { useEqualPreviousValue } from 'common/utils/hooks/useEqualPreviousValue';\nimport { ShipperContractDetailsT } from 'common/store/shipper-contract-details/models';\n\nconst ALL_FIELDS = values(FieldsEnum);\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(ALL_FIELDS);\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    data: ShipperContractLaneDetailsT | null;\n    onCancel: () => void;\n    setNeedCloseConfirmation?: (needCloseConfirmation: boolean) => void;\n\n    onChangeOriginRadiusKm?: (radiusKm: number) => void;\n    onChangeDestinationRadiusKm?: (radiusKm: number) => void;\n\n    onSubmit: (detailsChanges: UpdateShipperContractLaneChangesT) => void;\n\n    updateRequestStatus: RequestStatusT;\n\n    contractDetails: ShipperContractDetailsT | null;\n};\n\nconst ShipperContractLaneEditForm: React.FC<PropsT> = React.memo((props) => {\n    const {\n        data,\n        onCancel,\n        setNeedCloseConfirmation,\n\n        onChangeOriginRadiusKm,\n        onChangeDestinationRadiusKm,\n\n        onSubmit,\n\n        updateRequestStatus,\n\n        contractDetails,\n    } = props;\n\n    const protectedContractDetails = useEqualPreviousValue(contractDetails);\n    const { t } = useTranslation();\n\n    const trailersDictById = useSelector(selectTrailersDictById) || {};\n    const trailerDictModel = data?.dictTrailerId ? trailersDictById[data?.dictTrailerId] : null;\n\n    const validate = React.useCallback(\n        (values: FormValuesT) => {\n            return validateForm(t, values);\n        },\n        [t],\n    );\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values: FormValuesT = {\n            [FieldsEnum.pickUpLocationRadius]: String(data?.originRadius || 0),\n            [FieldsEnum.dropOffLocationRadius]: String(data?.destinationRadius || 0),\n\n            [FieldsEnum.validFrom]: data?.validFrom ? new Date(data.validFrom) : null,\n            [FieldsEnum.validTill]: data?.validTill ? new Date(data.validTill) : null,\n\n            [FieldsEnum.layoverLimit]: String(data?.maximumLayover || 0),\n\n            [FieldsEnum.externalLaneId]: data?.externalLaneId || '',\n        };\n\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [data]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const query = prepareApRequest(values);\n            if (!query) {\n                return;\n            }\n\n            onSubmit(query);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const handleRadiusSetValue = (field: string, value: string): void => {\n        formik.setFieldValue(field, value);\n\n        const parsedValue = parseSimpleNumber(value);\n        const limitedValue = parsedValue ? Math.min(parsedValue, MAX_RADIUS_KM) : 0;\n\n        if (field === FieldsEnum.dropOffLocationRadius && onChangeDestinationRadiusKm) {\n            onChangeDestinationRadiusKm(limitedValue);\n        }\n\n        if (field === FieldsEnum.pickUpLocationRadius && onChangeOriginRadiusKm) {\n            onChangeOriginRadiusKm(limitedValue);\n        }\n    };\n\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n    React.useEffect(() => {\n        if (hasAnyFieldValueChanges && setNeedCloseConfirmation) {\n            setNeedCloseConfirmation(hasAnyFieldValueChanges);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasAnyFieldValueChanges]);\n\n    const validFrom = formik.values[FieldsEnum.validFrom];\n    const minValidTillDate = useMemo((): string | undefined => {\n        return (\n            getMaxISODate(\n                moment().add(1, 'day').format(),\n                moment(validFrom).add(MIN_VALID_FROM_VALID_TILL_DAYS, 'day').format(),\n                protectedContractDetails?.validFrom,\n                data?.validTill,\n            ) || datePicketRangePresets.anyFutureDate.minDate\n        );\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [validFrom, protectedContractDetails]);\n    const maxValidTillDate = useMemo((): string | undefined => {\n        return getMinISODate(protectedContractDetails?.validTill) || datePicketRangePresets.anyFutureDate.maxDate;\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [protectedContractDetails]);\n    const isDisabledValidTillDate = useMemo(() => {\n        if (!maxValidTillDate) {\n            return false;\n        }\n\n        return (\n            maxValidTillDate < moment().add(1, 'day').format() ||\n            (!!minValidTillDate &&\n                !!maxValidTillDate &&\n                getDateFromISO(minValidTillDate) > getDateFromISO(maxValidTillDate))\n        );\n    }, [minValidTillDate, maxValidTillDate]);\n\n    const validTill = formik.values[FieldsEnum.validTill];\n    const minValidFromDate = useMemo((): string | undefined => {\n        return (\n            getMaxISODate(moment().format(), protectedContractDetails?.validFrom) ||\n            datePicketRangePresets.anyFutureDate.minDate\n        );\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [validTill, protectedContractDetails]);\n    const maxValidFromDate = useMemo((): string | undefined => {\n        return (\n            getMinISODate(\n                validTill ? moment(validTill).format() : undefined,\n                protectedContractDetails?.validTill\n                    ? moment(protectedContractDetails.validTill)\n                          .subtract(MIN_VALID_FROM_VALID_TILL_DAYS, 'days')\n                          .format()\n                    : undefined,\n            ) || datePicketRangePresets.anyFutureDate.maxDate\n        );\n    }, [validTill, protectedContractDetails]);\n    const isDisabledValidFromDate = useMemo(() => {\n        if (!maxValidFromDate) {\n            return false;\n        }\n\n        return (\n            maxValidFromDate < moment().format() ||\n            (!!minValidFromDate &&\n                !!maxValidFromDate &&\n                getDateFromISO(minValidFromDate) > getDateFromISO(maxValidFromDate))\n        );\n    }, [maxValidFromDate, minValidFromDate]);\n\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <FieldGroup>\n                <ReadOnlyField\n                    className={cx('field', 'field--trailer-type')}\n                    label={t(`common:shipper-lane-details.fields.trailer-type.label`)}\n                    icon={\n                        <TrailerIcon\n                            size={20}\n                            fillColor={StyleGuideColorsEnum.brandAccent}\n                            strokeColor={StyleGuideColorsEnum.brandDark}\n                        />\n                    }\n                    value={\n                        trailerDictModel\n                            ? t('common:trailer-subtype-template', {\n                                  length: trailerDictModel.length,\n                                  model: trailerDictModel.model,\n                                  eur1Pallets: trailerDictModel.eur1Pallets,\n                                  eur2Pallets: trailerDictModel.eur2Pallets,\n                              })\n                            : ''\n                    }\n                />\n                <ReadOnlyField\n                    icon={<EmissionIcon strokeColor={StyleGuideColorsEnum.brandDark} />}\n                    className={cx('field', 'field--emission-class')}\n                    label={t('common:shipper-lane-details.fields.emission-type.label')}\n                    value={<EmissionClassLabel isCompact emissionClass={data?.emissionClass} />}\n                />\n            </FieldGroup>\n            <FieldGroup>\n                <ReadOnlyField\n                    icon={<OriginIcon />}\n                    className={cx('field', 'field--location')}\n                    label={t('common:shipper-lane-details.fields.origin.label')}\n                    value={data?.originFullAddress}\n                />\n                <FormikField\n                    className={cx('field', 'field--radius')}\n                    name={FieldsEnum.pickUpLocationRadius}\n                    error={formik.errors[FieldsEnum.pickUpLocationRadius]}\n                    meta={formik.getFieldMeta(FieldsEnum.pickUpLocationRadius)}\n                    label={t('common:shipper-lane-details.fields.radius.label')}\n                    setFieldValue={handleRadiusSetValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <NumberInput\n                            name={FieldsEnum.pickUpLocationRadius}\n                            unitType={UnitTypeEnum.kilometersAbbreviation}\n                            value={formik.values[FieldsEnum.pickUpLocationRadius]}\n                            step={1}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            hasChanges={props.hasChanges}\n                        />\n                    )}\n                </FormikField>\n            </FieldGroup>\n            <FieldGroup>\n                <ReadOnlyField\n                    icon={<DestinationIcon />}\n                    className={cx('field', 'field--location')}\n                    label={t('common:shipper-lane-details.fields.destination.label')}\n                    value={data?.destinationFullAddress}\n                />\n                <FormikField\n                    className={cx('field', 'field--radius')}\n                    name={FieldsEnum.dropOffLocationRadius}\n                    error={formik.errors[FieldsEnum.dropOffLocationRadius]}\n                    meta={formik.getFieldMeta(FieldsEnum.dropOffLocationRadius)}\n                    label={t('common:shipper-lane-details.fields.radius.label')}\n                    setFieldValue={handleRadiusSetValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <NumberInput\n                            name={FieldsEnum.dropOffLocationRadius}\n                            unitType={UnitTypeEnum.kilometersAbbreviation}\n                            value={formik.values[FieldsEnum.dropOffLocationRadius]}\n                            step={1}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            hasChanges={props.hasChanges}\n                        />\n                    )}\n                </FormikField>\n            </FieldGroup>\n            <FieldGroup>\n                <FormikField\n                    className={cx('field', 'field--date')}\n                    name={FieldsEnum.validFrom}\n                    error={formik.errors[FieldsEnum.validFrom]}\n                    meta={formik.getFieldMeta(FieldsEnum.validFrom)}\n                    label={t('common:shipper-lane-details.fields.valid-from.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <DatePicker\n                            value={formik.values[FieldsEnum.validFrom]}\n                            placeholder={t('common:shipper-lane-details.fields.valid-from.placeholder')}\n                            onChange={props.onChange}\n                            overlayPosition={DatePickerOverlayPositionEnum.bottomRight}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            hasYearMonthForm\n                            minDate={minValidFromDate}\n                            maxDate={maxValidFromDate}\n                            isDisabled={isDisabledValidFromDate}\n                            hasChanges={props.hasChanges}\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    className={cx('field', 'field--date')}\n                    name={FieldsEnum.validTill}\n                    error={formik.errors[FieldsEnum.validTill]}\n                    meta={formik.getFieldMeta(FieldsEnum.validTill)}\n                    label={t('common:shipper-lane-details.fields.valid-till.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <DatePicker\n                            value={formik.values[FieldsEnum.validTill]}\n                            placeholder={t('common:shipper-lane-details.fields.valid-till.placeholder')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            hasYearMonthForm\n                            minDate={minValidTillDate}\n                            maxDate={maxValidTillDate}\n                            isDisabled={isDisabledValidTillDate}\n                            overlayPosition={DatePickerOverlayPositionEnum.bottomRight}\n                            hasChanges={props.hasChanges}\n                        />\n                    )}\n                </FormikField>\n            </FieldGroup>\n            <FieldGroup>\n                <FormikField\n                    className={cx('field', 'field--limit')}\n                    name={FieldsEnum.layoverLimit}\n                    error={formik.errors[FieldsEnum.layoverLimit]}\n                    meta={formik.getFieldMeta(FieldsEnum.layoverLimit)}\n                    label={t('common:shipper-lane-details.fields.layover-limit.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                    tooltipNode={\n                        <TooltipContent theme={TooltipContentThemeEnum.black} width={300}>\n                            {t('common:shipper-lane-details.fields.layover-limit.tooltip')}\n                        </TooltipContent>\n                    }\n                >\n                    {(props) => (\n                        <NumberInput\n                            name={FieldsEnum.layoverLimit}\n                            unitType={UnitTypeEnum.hoursAbbreviation}\n                            value={formik.values[FieldsEnum.layoverLimit]}\n                            step={1}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            hasChanges={props.hasChanges}\n                        />\n                    )}\n                </FormikField>\n                <ReadOnlyField\n                    className={cx('field', 'field--limit')}\n                    label={t('common:shipper-lane-details.fields.orders-left.label')}\n                    value={\n                        isNumber(data?.ordersLeft) && isNumber(data?.maxNumberOfOrders)\n                            ? `${data?.ordersLeft}/${data?.maxNumberOfOrders}`\n                            : null\n                    }\n                />\n            </FieldGroup>\n            <FieldGroup>\n                <FormikField\n                    className={cx('field', 'field--external-lane-id')}\n                    name={FieldsEnum.externalLaneId}\n                    error={formik.errors[FieldsEnum.externalLaneId]}\n                    meta={formik.getFieldMeta(FieldsEnum.externalLaneId)}\n                    label={t('common:shipper-lane-details.fields.external-lane-id.label')}\n                    tooltipNode={\n                        <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                            {t('common:shipper-lane-details.fields.external-lane-id.tooltip')}\n                        </TooltipContent>\n                    }\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <Input\n                            name={FieldsEnum.externalLaneId}\n                            value={formik.values[FieldsEnum.externalLaneId]}\n                            placeholder={t('common:shipper-lane-details.fields.external-lane-id.placeholder')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            hasChanges={props.hasChanges}\n                        />\n                    )}\n                </FormikField>\n                <FieldGroupEmptyItem className={cx('field', 'field--limit')} />\n            </FieldGroup>\n            <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n            <FooterSideBarLayout isAbsolute hasPaddings>\n                <div className={cx('actions')}>\n                    <Button\n                        className={cx('actions__action')}\n                        theme={ButtonThemeEnum.secondary}\n                        type=\"button\"\n                        testSelector=\"cancel\"\n                        onClick={onCancel}\n                    >\n                        {t('common:shipper-lane-details.actions.cancel')}\n                    </Button>\n                    <Button\n                        className={cx('actions__action')}\n                        theme={ButtonThemeEnum.primary}\n                        type=\"submit\"\n                        isLoading={updateRequestStatus.loading}\n                        testSelector=\"save\"\n                    >\n                        {t('common:shipper-lane-details.actions.save')}\n                    </Button>\n                </div>\n            </FooterSideBarLayout>\n        </form>\n    );\n});\n\nexport default ShipperContractLaneEditForm;\n","import { ADD_ALERT, AddAlertActionT, DELETE_ALERT, DeleteAlertActionT } from 'common/store/alerts/types';\nimport { AnyAlert } from 'common/store/alerts/models';\n\nexport const addAlert = (anyAlert: AnyAlert): AddAlertActionT => ({\n    type: ADD_ALERT,\n    anyAlert,\n});\n\nexport const deleteAlert = (alertId: AlertIdT): DeleteAlertActionT => ({\n    type: DELETE_ALERT,\n    alertId,\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"skeleton__box\":\"RouteSidebarSkeleton__skeleton__box___YQxEw\",\"skeleton__box--first\":\"RouteSidebarSkeleton__skeleton__box--first___kURMO\",\"skeleton__box--secondary\":\"RouteSidebarSkeleton__skeleton__box--secondary___GMPb1\",\"fadeIn\":\"RouteSidebarSkeleton__fadeIn___zJTjQ\",\"blinking\":\"RouteSidebarSkeleton__blinking___v4zlW\"};","import * as React from 'react';\nimport { useCallback } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ShipperContractDetailsPage.scss';\nimport { useTranslation } from 'react-i18next';\nimport TopBar from 'common/layouts/LeftMenuLayout/TopBar/TopBar';\nimport history, { goBackIfHasRePath } from 'common/utils/history';\nimport { routesEnum, ShipperContractDetailsEnum } from 'broker-admin/constants';\nimport { Redirect, Route, Switch, useParams } from 'react-router-dom';\nimport { generatePath } from 'react-router';\nimport NavigationTabs, {\n    NavigationTabConfigT,\n    NavigationTabsPropsT,\n} from 'common/components/tabs/NavigationTabs/NavigationTabs';\nimport ScrollableContent from 'common/layouts/LeftMenuLayout/ScrollableContent/ScrollableContent';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport NotificationsBarTrigger from 'common/components/notifications/NotificationsBarTrigger/NotificationsBarTrigger';\nimport TopBarContent from 'common/layouts/LeftMenuLayout/TopBarContent/TopBarContent';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport SideBars from 'broker-admin/layouts/SideBars/SideBars';\nimport BackButton from 'common/components/BackButton/BackButton';\nimport ShipperContractLanesLayout from 'broker-admin/layouts/ShipperContractDetailsPage/ShipperContractLanesLayout/ShipperContractLanesLayout';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectShipperContractsByIds } from 'common/store/shipper-contracts/selectors';\nimport InlineLoader from 'common/components/InlineLoader/InlineLoader';\nimport { selectShipperContractDetailsState } from 'common/store/shipper-contract-details/selectors';\nimport PartnerContext from 'common/contexts/partner-context';\nimport isString from 'lodash/isString';\nimport ShipperContractDetailsLayout from 'broker-admin/layouts/ShipperContractDetailsPage/ShipperContractDetailsLayout/ShipperContractDetailsLayout';\nimport useRemoteFormActions from 'common/utils/hooks/useRemoteFormActions';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport { fetchShipperContractDetails } from 'common/store/shipper-contract-details/slice';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { carrierContractDetailsRefreshChannel } from 'common/store/carrier-contract-details/channels';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { formatPartnerTypeParam, parsePartnerTypeParam } from 'broker-admin/utils/urls-params';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport { ExtractRouterRouteParamsT } from 'common/utils/extract-router-route-params-t';\nimport PartnerPermissionsContextProvider from 'broker-admin/components/PartnerPermissionsContextProvider/PartnerPermissionsContextProvider';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst ShipperContractDetailsPage: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n\n    const remoteFormActions = useRemoteFormActions();\n\n    const params = useParams<ExtractRouterRouteParamsT<typeof routesEnum.shipperContractDetails>>();\n    const { contractId, partnerId } = params;\n    const partnerType = parsePartnerTypeParam(params.partnerType);\n\n    const dispatch = useDispatch();\n    React.useEffect(() => {\n        dispatch(\n            fetchShipperContractDetails({\n                partnerId,\n                shipperContractId: contractId,\n            }),\n        );\n    }, [dispatch, partnerId, contractId]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        dispatch(\n            fetchShipperContractDetails({\n                partnerId,\n                shipperContractId: contractId,\n            }),\n        );\n    }, [dispatch, partnerId, contractId]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const refreshHandler = useCallback(\n        (event: InferChannelEventT<typeof carrierContractDetailsRefreshChannel>) => {\n            if (event.contractId !== contractId) {\n                return;\n            }\n\n            dispatch(\n                fetchShipperContractDetails({\n                    partnerId,\n                    shipperContractId: event.contractId,\n                }),\n            );\n        },\n        [dispatch, partnerId, contractId],\n    );\n    useChannelSubscribe(carrierContractDetailsRefreshChannel, refreshHandler);\n\n    const handleSelectTab: NavigationTabsPropsT['onSelectTab'] = (to): void => {\n        if (isString(to)) {\n            const pathname = generatePath(to, {\n                partnerId,\n                partnerType: formatPartnerTypeParam(partnerType),\n                contractId,\n            });\n\n            history.push({\n                pathname,\n            });\n        } else {\n            history.push({\n                ...to,\n            });\n        }\n    };\n\n    const tabsConfig = React.useMemo(\n        (): NavigationTabConfigT[] => [\n            {\n                to: ShipperContractDetailsEnum.lanes,\n                pathname: generatePath(ShipperContractDetailsEnum.lanes, {\n                    partnerId,\n                    partnerType: formatPartnerTypeParam(partnerType),\n                    contractId,\n                }),\n                render: () => <span>{t('common:shipper-contract-details.tabs.lanes')}</span>,\n                testSelector: 'shipper-contract-lanes',\n            },\n            {\n                to: ShipperContractDetailsEnum.details,\n                pathname: generatePath(ShipperContractDetailsEnum.details, {\n                    partnerId,\n                    partnerType: formatPartnerTypeParam(partnerType),\n                    contractId,\n                }),\n                render: () => <span>{t('common:shipper-contract-details.tabs.details')}</span>,\n                testSelector: 'shipper-contract-details',\n            },\n        ],\n        [t, partnerId, partnerType, contractId],\n    );\n\n    const goToPartnerShipperContracts = () => {\n        goBackIfHasRePath(() => {\n            history.push(urlFactory.partnerShipperContacts(partnerId, partnerType));\n        });\n    };\n\n    const contractsByIds = useSelector(selectShipperContractsByIds(partnerId));\n    const contract = contractsByIds[contractId as ShipperContractIdT];\n\n    const contractDetailsState = useSelector(selectShipperContractDetailsState(contractId));\n\n    const isLoadingContract = !contract && !contractDetailsState.data;\n\n    const contractName = contract?.name || contractDetailsState?.data?.name || '-';\n\n    const header = (\n        <>\n            <PageTitle\n                title={t('page-titles.shipper-contract-details', {\n                    contractName,\n                })}\n            />\n            <ContentMargins>\n                <TopBar>\n                    <TopBarContent\n                        leftNode={<BackButton onClick={goToPartnerShipperContracts} isDisabled={false} />}\n                        title={isLoadingContract ? <InlineLoader lineHeight={20} /> : contractName}\n                        rightNode={<NotificationsBarTrigger />}\n                    />\n                </TopBar>\n                <div className={cx('controls')}>\n                    <NavigationTabs tabsConfig={tabsConfig} onSelectTab={handleSelectTab} />\n                </div>\n            </ContentMargins>\n        </>\n    );\n\n    const defaultRedirectPath = generatePath(ShipperContractDetailsEnum.lanes, {\n        partnerId,\n        partnerType: formatPartnerTypeParam(partnerType),\n        contractId,\n    });\n\n    const partnerContextValue = React.useMemo(() => {\n        return {\n            partnerType: parsePartnerTypeParam(params.partnerType),\n            partnerId: params.partnerId,\n        };\n    }, [params.partnerId, params.partnerType]);\n\n    return (\n        <RemoteFormActionsContext.Provider value={remoteFormActions}>\n            <PartnerContext.Provider value={partnerContextValue}>\n                <PartnerPermissionsContextProvider partnerId={partnerContextValue.partnerId}>\n                    <ScrollableContent>\n                        {header}\n                        <Switch>\n                            <Route path={ShipperContractDetailsEnum.details}>\n                                <ShipperContractDetailsLayout\n                                    partnerId={partnerId}\n                                    partnerType={partnerType}\n                                    contractId={contractId}\n                                />\n                            </Route>\n                            <Route path={ShipperContractDetailsEnum.lanes}>\n                                <ShipperContractLanesLayout\n                                    partnerId={partnerId}\n                                    partnerType={partnerType}\n                                    contractId={contractId}\n                                />\n                            </Route>\n                            <Route>\n                                <Redirect to={defaultRedirectPath} />\n                            </Route>\n                        </Switch>\n                        <SideBars />\n                    </ScrollableContent>\n                </PartnerPermissionsContextProvider>\n            </PartnerContext.Provider>\n        </RemoteFormActionsContext.Provider>\n    );\n});\n\nexport default ShipperContractDetailsPage;\n","import * as React from 'react';\nimport { MapPinThemeEnum, MapPointPropsT } from 'common/components/maps/MapPin/MapPin';\nimport MapStackClusterPin from 'common/components/maps/MapStackClusterPin/MapStackClusterPin';\nimport { PointGeoJsonPropertiesT } from '../models';\nimport TrailerIcon from 'common/icons/TrailerIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport TruckIcon from 'common/icons/TruckIcon';\nimport { StopTypeEnum } from 'common/utils/api/models';\nimport LinkDropOffIcon, { getLinkDropOffIconProps } from 'common/icons/LinkDropOffIcon';\nimport TruckDropOffIcon, { getTruckDropOffIconProps } from 'common/icons/TruckDropOffIcon';\nimport TrailerDropOffIcon, { getTrailerDropOffIconProps } from 'common/icons/TrailerDropOffIcon';\nimport LinkPickUpIcon, { getLinkPickUpIconProps } from 'common/icons/LinkPickUpIcon';\nimport TruckPickUpIcon, { getTruckPickUpIconProps } from 'common/icons/TruckPickUpIcon';\nimport TrailerPickUpIcon, { getTrailerPickUpIconProps } from 'common/icons/TrailerPickUpIcon';\nimport WaypointNumberPinContent from 'common/components/maps/pins/content/WaypointNumberPinContent/WaypointNumberPinContent';\nimport IconWithNumber, { clusterIconWithNumberStyle } from 'common/components/IconWithNumber/IconWithNumber';\nimport isNumber from 'lodash/isNumber';\nimport BoatIcon from 'common/icons/BoatIcon';\n\ntype PropsT = {\n    className?: string;\n    lat?: number | undefined;\n    lng?: number | undefined;\n    clusterId: number;\n    onClusterClick: (clusterId: number) => void;\n    clusterProperties: Array<PointGeoJsonPropertiesT>;\n    withoutArrow?: boolean;\n};\n\nconst PointStackClusterPin: React.FC<PropsT> = React.memo((props) => {\n    const { className, lat, lng, onClusterClick, clusterId, clusterProperties, withoutArrow } = props;\n\n    const pointProps: Array<Partial<MapPointPropsT>> = [];\n\n    clusterProperties.forEach((pointProperties: PointGeoJsonPropertiesT) => {\n        if (pointProperties.type === 'trailer-last-point') {\n            const shouldShowNumber = isNumber(pointProperties.trailerNumber);\n\n            pointProps.push({\n                theme: MapPinThemeEnum.brandDark,\n                children: (\n                    <IconWithNumber isCompact number={pointProperties?.trailerNumber}>\n                        <TrailerIcon\n                            fillColor={StyleGuideColorsEnum.brandDark}\n                            strokeColor={StyleGuideColorsEnum.white}\n                            size={DEFAULT_ICON_SIZE}\n                        />\n                    </IconWithNumber>\n                ),\n                style: shouldShowNumber ? clusterIconWithNumberStyle : {},\n            });\n        }\n\n        if (pointProperties.type === 'truck-last-point') {\n            const shouldShowNumber = isNumber(pointProperties.truckNumber);\n\n            pointProps.push({\n                theme: MapPinThemeEnum.brandDark,\n                children: (\n                    <IconWithNumber isCompact number={pointProperties?.truckNumber}>\n                        <TruckIcon\n                            fillColor={StyleGuideColorsEnum.brandDark}\n                            strokeColor={StyleGuideColorsEnum.white}\n                            size={DEFAULT_ICON_SIZE}\n                        />\n                    </IconWithNumber>\n                ),\n                style: shouldShowNumber ? clusterIconWithNumberStyle : {},\n            });\n        }\n\n        if (pointProperties.type === 'waypoint-point') {\n            const { waypoint, tourNumber } = pointProperties;\n            const shouldShowNumber = isNumber(tourNumber);\n\n            const isVisited = !!waypoint?.driverLeftTimeStamp;\n\n            switch (waypoint.type) {\n                case StopTypeEnum.pickupTruck: {\n                    pointProps.push({\n                        theme: isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal,\n                        children: (\n                            <IconWithNumber isCompact number={tourNumber}>\n                                <TruckPickUpIcon {...getTruckPickUpIconProps('assignment-normal')} />\n                            </IconWithNumber>\n                        ),\n                        style: shouldShowNumber ? clusterIconWithNumberStyle : {},\n                    });\n                    break;\n                }\n                case StopTypeEnum.pickupTrailer: {\n                    pointProps.push({\n                        theme: isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal,\n                        children: (\n                            <IconWithNumber isCompact number={tourNumber}>\n                                <TrailerPickUpIcon {...getTrailerPickUpIconProps('assignment-normal')} />\n                            </IconWithNumber>\n                        ),\n                        style: shouldShowNumber ? clusterIconWithNumberStyle : {},\n                    });\n                    break;\n                }\n                case StopTypeEnum.pickupRoadTrain: {\n                    pointProps.push({\n                        theme: isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal,\n                        children: (\n                            <IconWithNumber isCompact number={tourNumber}>\n                                <LinkPickUpIcon {...getLinkPickUpIconProps('assignment-normal')} />\n                            </IconWithNumber>\n                        ),\n                        style: shouldShowNumber ? clusterIconWithNumberStyle : {},\n                    });\n                    break;\n                }\n                case StopTypeEnum.ferryDisembark:\n                case StopTypeEnum.ferryOnboard: {\n                    const isVisited = !!waypoint?.driverLeftTimeStamp;\n                    let theme = MapPinThemeEnum.charcoal;\n                    if (isVisited) {\n                        theme = MapPinThemeEnum.brandDark;\n                    }\n\n                    pointProps.push({\n                        theme,\n                        children: (\n                            <BoatIcon\n                                size={DEFAULT_ICON_SIZE}\n                                fillColor={StyleGuideColorsEnum.brandDark}\n                                strokeColor={StyleGuideColorsEnum.white}\n                            />\n                        ),\n                    });\n                    break;\n                }\n                case StopTypeEnum.driveThrough:\n                case StopTypeEnum.dropAndHook:\n                case StopTypeEnum.pickupDeliveryShipment: {\n                    let theme = MapPinThemeEnum.charcoal;\n\n                    if (waypoint.type === StopTypeEnum.driveThrough) {\n                        theme = MapPinThemeEnum.gray;\n                    }\n\n                    const isVisited = !!waypoint?.driverLeftTimeStamp;\n                    if (isVisited) {\n                        theme = MapPinThemeEnum.brandDark;\n                    }\n\n                    pointProps.push({\n                        theme,\n                        hasPaddings: false,\n                        children: (\n                            <WaypointNumberPinContent withPaddings key={`route-point-${waypoint.id}`}>\n                                {(waypoint.index || 0) + 1}\n                            </WaypointNumberPinContent>\n                        ),\n                    });\n                    break;\n                }\n                case StopTypeEnum.dropTrailer: {\n                    pointProps.push({\n                        theme: isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal,\n                        children: (\n                            <IconWithNumber isCompact number={tourNumber}>\n                                <TrailerDropOffIcon {...getTrailerDropOffIconProps('assignment-normal')} />\n                            </IconWithNumber>\n                        ),\n                        style: shouldShowNumber ? clusterIconWithNumberStyle : {},\n                    });\n                    break;\n                }\n                case StopTypeEnum.dropTruck: {\n                    pointProps.push({\n                        theme: isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal,\n                        children: (\n                            <IconWithNumber isCompact number={tourNumber}>\n                                <TruckDropOffIcon {...getTruckDropOffIconProps('assignment-normal')} />\n                            </IconWithNumber>\n                        ),\n                        style: shouldShowNumber ? clusterIconWithNumberStyle : {},\n                    });\n                    break;\n                }\n                case StopTypeEnum.dropRoadTrain: {\n                    pointProps.push({\n                        theme: isVisited ? MapPinThemeEnum.brandDark : MapPinThemeEnum.charcoal,\n                        children: (\n                            <IconWithNumber isCompact number={tourNumber}>\n                                <LinkDropOffIcon {...getLinkDropOffIconProps('assignment-normal')} />\n                            </IconWithNumber>\n                        ),\n                        style: shouldShowNumber ? clusterIconWithNumberStyle : {},\n                    });\n                    break;\n                }\n                default: {\n                    break;\n                }\n            }\n        }\n    });\n\n    if (!pointProps?.length) {\n        return null;\n    }\n\n    return (\n        <MapStackClusterPin\n            className={className}\n            lat={lat}\n            lng={lng}\n            pointProps={pointProps}\n            clusterId={clusterId}\n            onClusterClick={onClusterClick}\n            withoutArrow={withoutArrow}\n        />\n    );\n});\n\nexport default PointStackClusterPin;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './AssetOptionLabel.scss';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport DetailsIcon from 'common/icons/DetailsIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport ClickInterceptorLabel from 'common/components/ClickInterceptorLabel/ClickInterceptorLabel';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    model?: string;\n    plateNumber?: string;\n    onOpenDetails?: () => void;\n};\n\nconst AssetOptionLabel: React.FC<PropsT> = React.memo((props) => {\n    const { model, plateNumber, onOpenDetails } = props;\n\n    return (\n        <div className={cx('option')}>\n            <div>\n                {plateNumber && <span className={cx('plate-number')}>{plateNumber}</span>}\n                {' / '}\n                {model && <span className={cx('model')}>{model}</span>}\n            </div>\n            {onOpenDetails && (\n                <ClickInterceptorLabel className={cx('details-trigger')}>\n                    <TransparentTrigger\n                        spaces=\"xs\"\n                        onClick={onOpenDetails}\n                        leftIcon={<DetailsIcon strokeColor={StyleGuideColorsEnum.gray} />}\n                        reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                    />\n                </ClickInterceptorLabel>\n            )}\n        </div>\n    );\n});\n\nexport default AssetOptionLabel;\n","// extracted by mini-css-extract-plugin\nexport default {\"widget\":\"SpotSettingsForm__widget___MReNL\",\"widget__inner\":\"SpotSettingsForm__widget__inner___aNbOa\",\"field\":\"SpotSettingsForm__field___kM2N3\",\"fadeIn\":\"SpotSettingsForm__fadeIn___mku2h\",\"blinking\":\"SpotSettingsForm__blinking___UaIfD\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './FullNameCell.scss';\n\ntype PropsT = {\n    name?: string;\n    surname?: string;\n    fullName?: string;\n    isHalfOpacity?: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nconst FullNameCell: React.FC<PropsT> = React.memo((props) => {\n    const { name, surname, fullName, isHalfOpacity } = props;\n\n    const content = [name, surname, fullName].filter(Boolean).join(' ');\n\n    return <div className={cx('content', { 'content--isHalfOpacity': isHalfOpacity })}>{content}</div>;\n});\n\nexport default FullNameCell;\n","export enum FieldsEnum {\n    firstRadiusOfAssignmentFilter = 'FIRST_RADIUS_OF_ASSIGNMENT_FILTER',\n    secondRadiusOfAssignmentFilter = 'SECOND_RADIUS_OF_ASSIGNMENT_FILTER',\n    thirdRadiusOfAssignmentFilter = 'THIRD_RADIUS_OF_ASSIGNMENT_FILTER',\n    timeToPickupTruck = 'TIME_TO_PICKUP_TRUCK',\n    timeToDropTruck = 'TIME_TO_DROP_TRUCK',\n    timeToHookTrailer = 'TIME_TO_HOOK_TRAILER',\n    timeToDropTrailer = 'TIME_TO_DROP_TRAILER',\n    geoMatrixCoefficient = 'GEO_MATRIX_COEFFICIENT',\n    averageTruckSpeed = 'AVERAGE_TRUCK_SPEED',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.firstRadiusOfAssignmentFilter]: string;\n    [FieldsEnum.secondRadiusOfAssignmentFilter]: string;\n    [FieldsEnum.thirdRadiusOfAssignmentFilter]: string;\n    [FieldsEnum.timeToHookTrailer]: string;\n    [FieldsEnum.timeToDropTrailer]: string;\n    [FieldsEnum.timeToPickupTruck]: string;\n    [FieldsEnum.timeToDropTruck]: string;\n    [FieldsEnum.geoMatrixCoefficient]: string;\n    [FieldsEnum.averageTruckSpeed]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","// extracted by mini-css-extract-plugin\nexport default {\"cost\":\"EditableCostCell__cost___CRo1e\",\"price\":\"EditableCostCell__price___hBfZ6\",\"empty\":\"EditableCostCell__empty___McZKu\",\"fadeIn\":\"EditableCostCell__fadeIn___G_Wvp\",\"blinking\":\"EditableCostCell__blinking___zWwFQ\"};","import { TransportOrderDetailsStateT } from './types';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { initialTransportOrderDetailsState } from './reducer';\nimport { SharableStateT } from 'common/store/models';\n\nexport const selectTransportOrderDetails =\n    (id: TransportOrderIdT | null | undefined) =>\n    (state: SharableStateT): TransportOrderDetailsStateT['details'] =>\n        state.transportOrderDetails[id as string]?.details || initialTransportOrderDetailsState.details;\n\nexport const selectTransportOrderDetailsRequestStatus =\n    (id: TransportOrderIdT | null | undefined) =>\n    (state: SharableStateT): RequestStatusT =>\n        state.transportOrderDetails[id as string]?.requestStatus || initialTransportOrderDetailsState.requestStatus;\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"DriverSuggestInput__option___yy676\",\"fadeIn\":\"DriverSuggestInput__fadeIn___L8q3K\",\"blinking\":\"DriverSuggestInput__blinking___hqHDP\"};","import * as React from 'react';\nimport { ApiShipmentAttachedPaperTypeT } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    type: ApiShipmentAttachedPaperTypeT | null | undefined;\n};\n\nexport const SHIPMENT_PAPER_TYPE_MAP_T: Record<ApiShipmentAttachedPaperTypeT, string> = {\n    DELIVERY_NOTE: 'common:papers-card.type.DELIVERY_NOTE',\n    SIGNED_DELIVERY_NOTE: 'common:papers-card.type.SIGNED_DELIVERY_NOTE',\n    PALLET_CERTIFICATE: 'common:papers-card.type.PALLET_CERTIFICATE',\n    TEMPERATURE_RECORD: 'common:papers-card.type.TEMPERATURE_RECORD',\n    CUSTOMS_DECLARATION: 'common:papers-card.type.CUSTOMS_DECLARATION',\n    T1_T2_DOCUMENT: 'common:papers-card.type.T1_T2_DOCUMENT',\n    CLAIM_DAMAGE: 'common:papers-card.type.CLAIM_DAMAGE',\n    EAD: 'common:papers-card.type.EAD',\n    CERTIFICATE_OF_ORIGIN: 'common:papers-card.type.CERTIFICATE_OF_ORIGIN',\n    COMMERCIAL_INVOICE: 'common:papers-card.type.COMMERCIAL_INVOICE',\n    OTHER: 'common:papers-card.type.OTHER',\n};\n\nconst ShipmentPaperTypeLabel: React.FC<PropsT> = React.memo((props) => {\n    const { type } = props;\n    const { t } = useTranslation();\n\n    if (!type) {\n        return null;\n    }\n\n    return <span>{t(SHIPMENT_PAPER_TYPE_MAP_T[type])}</span>;\n});\n\nexport default ShipmentPaperTypeLabel;\n","// extracted by mini-css-extract-plugin\nexport default {\"option--is-invalid\":\"AssignOptionLabel__option--is-invalid___J7kF_\",\"asset\":\"AssignOptionLabel__asset___SN2tO\",\"rate-mode\":\"AssignOptionLabel__rate-mode___zt2u0\",\"model-and-plate-number\":\"AssignOptionLabel__model-and-plate-number___auZcG\",\"price\":\"AssignOptionLabel__price___ZTe3Y\",\"location\":\"AssignOptionLabel__location___NuK1Q\",\"utilization\":\"AssignOptionLabel__utilization___VdnTn\",\"utilization__label\":\"AssignOptionLabel__utilization__label___Fojsp\",\"link\":\"AssignOptionLabel__link___Hlje4\",\"link__inner\":\"AssignOptionLabel__link__inner___EXKgf\",\"link__icon\":\"AssignOptionLabel__link__icon___fcPkv\",\"link__trigger\":\"AssignOptionLabel__link__trigger___jcGzT\",\"link__text\":\"AssignOptionLabel__link__text___MrM_p\",\"fadeIn\":\"AssignOptionLabel__fadeIn___EYT8K\",\"blinking\":\"AssignOptionLabel__blinking___Zu3cz\"};","import React from 'react';\nimport { SideBarFooterAlertsContextValueT } from 'common/utils/hooks/useSideBarFooterAlertsContextValue';\n\nconst SideBarFooterAlertsContext = React.createContext<SideBarFooterAlertsContextValueT | null>(null);\n\nexport default SideBarFooterAlertsContext;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport type CancelingBrokerTourConfirmationDataT = {\n    brokerTourId: BrokerTourIdT;\n};\n\ntype PropsT = {\n    data: CancelingBrokerTourConfirmationDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onConfirm: (data: CancelingBrokerTourConfirmationDataT) => void;\n    requestStatus: RequestStatusT | null;\n};\n\nconst TEST_SELECTOR = 'cancel-broker-tour-confirmation';\n\nconst CancelBrokerTourConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, requestStatus, onCancel, onClose, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.keep'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: requestStatus?.loading,\n                            onClick: () => {\n                                onCancel();\n                            },\n                        },\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.danger,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            isLoading: requestStatus?.loading,\n                            isDisabled: requestStatus?.loading,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                    title={t('broker-tour-details.dialogs.cancel-broker-tour.title')}\n                    message={t('broker-tour-details.dialogs.cancel-broker-tour.description')}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default CancelBrokerTourConfirmation;\n","import { BidsSortEnum } from '../constants';\nimport { SpotBidT } from 'broker-admin/utils/api/spot-broker-tranziit/models';\nimport { PageSortT, SortDirectionEnum } from 'common/utils/query';\n\ntype BidsSortT = (bidA: SpotBidT | null | undefined, bidB: SpotBidT | null | undefined) => number;\n\nconst sorters: Record<BidsSortEnum, BidsSortT> = {\n    [BidsSortEnum.date]: (bidA, bidB) => {\n        const bidDateA = bidA?.bidDate || '';\n        const bidDateB = bidB?.bidDate || '';\n\n        if (bidDateA === bidDateB) {\n            return 0;\n        }\n\n        if (bidDateB < bidDateA) {\n            return 1;\n        }\n\n        return -1;\n    },\n    [BidsSortEnum.price]: (bidA, bidB) => {\n        return (bidA?.bidPrice || 0) - (bidB?.bidPrice || 0);\n    },\n};\n\nexport const getBidsSort = (\n    sort: PageSortT<BidsSortEnum>,\n    bids: Array<SpotBidT | null | undefined>,\n): Array<SpotBidT | null | undefined> => {\n    const { value, direction } = sort;\n    if (!value) {\n        return bids;\n    }\n\n    const sorter = (bidA: SpotBidT | null | undefined, bidB: SpotBidT | null | undefined): number => {\n        const sortDirectiont = direction === SortDirectionEnum.ASC ? 1 : -1;\n        const sortResult = sorters[value](bidA, bidB);\n\n        return sortDirectiont * sortResult;\n    };\n\n    return bids.sort(sorter);\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"ErrorModal__content___cKUaC\",\"actions\":\"ErrorModal__actions___abKuY\",\"method\":\"ErrorModal__method___w7caS\",\"logs\":\"ErrorModal__logs___ZD3Fq\",\"background-error\":\"ErrorModal__background-error___Z98IX\",\"trace-id\":\"ErrorModal__trace-id___E8hgs\",\"fadeIn\":\"ErrorModal__fadeIn___p9QW4\",\"blinking\":\"ErrorModal__blinking___ezRCb\"};","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\nimport {\n    selectCountriesAllCodes,\n    selectCountriesByCode,\n    selectCountriesDictRequest,\n} from 'common/store/countries-dict/selectors';\nimport { CountryCodeT } from 'common/store/countries-dict/models';\nimport DropdownSearchMultipleInput, {\n    IconMetaT,\n} from 'design-system/components/dropdowns/DropdownSearchMultipleInput/DropdownSearchMultipleInput';\nimport DeprecatedCountyFlagLabel from 'common/components/DeprecatedCountyFlagLabel/DeprecatedCountyFlagLabel';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport FewCountriesIcon from 'common/icons/FewCountriesIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport classNames from 'classnames/bind';\n\nimport styles from './CountryMultipleDropdown.scss';\nimport DropdownMultipleInputCountLabel from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInputCountLabel/DropdownMultipleInputCountLabel';\n\nconst cx = classNames.bind(styles);\n\ntype ValueT = CountryCodeT;\ntype OptionT = CountryCodeT;\n\ntype PropsT = {\n    onChange: (values: Array<ValueT>) => void;\n    values: Array<ValueT>;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    className?: string;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    hasChanges?: boolean;\n    onBlur?: () => void;\n    onFocus?: () => void;\n    onReset?: () => void;\n    placeholder?: string;\n    inputPlaceholder?: string;\n    testSelector?: string;\n    renderTrigger?: (options: Array<OptionT>, placeholder: string | undefined) => React.ReactNode;\n    renderOption?: (option: OptionT) => React.ReactNode;\n    renderLeftIcon?: (meta: IconMetaT) => React.ReactNode;\n    renderRightIcon?: (meta: IconMetaT) => React.ReactNode;\n    hasClearControl?: boolean;\n};\n\nconst CountryMultipleDropdown: React.FC<PropsT> = React.memo((props) => {\n    const {\n        onChange,\n        values,\n        overlayPosition,\n        className,\n        hasError,\n        hasWarning,\n        hasChanges,\n        onBlur,\n        onFocus,\n        testSelector,\n        renderTrigger,\n        renderLeftIcon,\n        renderRightIcon,\n        renderOption,\n        hasClearControl,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const [query, setQuery] = React.useState<string>('');\n\n    const fetchRequest = useSelector(selectCountriesDictRequest);\n    const allCodes = useSelector(selectCountriesAllCodes);\n    const byCode = useSelector(selectCountriesByCode);\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchCountriesDict());\n    }, [dispatch]);\n\n    const defaultRenderTrigger = (countryCodes: Array<CountryCodeT>, placeholder: string | undefined) => {\n        if (!countryCodes?.length) {\n            return placeholder;\n        }\n\n        if (countryCodes.length === 1) {\n            const firstCountryCode = countryCodes[0];\n            return byCode[firstCountryCode]?.userLangDisplayName || null;\n        }\n\n        return <DropdownMultipleInputCountLabel count={countryCodes?.length} />;\n    };\n\n    const defaultRenderLeftIcon = () => {\n        if (!values?.length) {\n            return <FlagIcon />;\n        }\n\n        if (values.length === 1) {\n            return <FlagIcon countryCode={values[0]} />;\n        }\n\n        return <FewCountriesIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.brandDark} />;\n    };\n\n    const defaultRenderOption = (countryCode: OptionT) => {\n        return <DeprecatedCountyFlagLabel className={cx('option')} country={byCode[countryCode]} />;\n    };\n\n    const getOptionValue = (option: OptionT): CountryCodeT => option;\n\n    const handleOptionClick = (countryCodes: Array<ValueT>) => {\n        onChange(countryCodes);\n    };\n\n    const filteredCodes = React.useMemo(() => {\n        const clearedQuery = query.toLowerCase().replace(/ /g, '').trim();\n        if (!clearedQuery) {\n            return allCodes;\n        }\n\n        return allCodes.filter((countryCode) => {\n            const country = countryCode ? byCode[countryCode] : null;\n\n            return [country?.userLangDisplayName, country?.language, country?.langCode, country?.code].some((text) =>\n                text?.toLowerCase().replace(/ /g, '').includes(clearedQuery),\n            );\n        });\n    }, [allCodes, query, byCode]);\n\n    const handleReset = () => {\n        onChange([]);\n    };\n\n    const placeholder = props.placeholder || t('common:common-components.countries-selector.placeholder');\n    const inputPlaceholder =\n        props.inputPlaceholder || t('common:common-components.countries-selector.input-placeholder');\n\n    return (\n        <DropdownSearchMultipleInput<OptionT, ValueT>\n            className={className}\n            selectedValues={values || null}\n            placeholder={placeholder}\n            inputPlaceholder={inputPlaceholder}\n            options={filteredCodes}\n            onSelect={handleOptionClick}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            hasChanges={hasChanges}\n            renderOption={renderOption || defaultRenderOption}\n            renderRightIcon={renderRightIcon}\n            renderLeftIcon={renderLeftIcon || defaultRenderLeftIcon}\n            renderTriggerContent={renderTrigger || defaultRenderTrigger}\n            getOptionValue={getOptionValue}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            isLoading={fetchRequest.loading}\n            testSelector={`${testSelector}_countries`}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            onReset={hasClearControl ? handleReset : undefined}\n            onChangeQuery={setQuery}\n        />\n    );\n});\n\nexport default CountryMultipleDropdown;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport {\n    FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST,\n    FetchGroupedNotificationCountsActionT,\n} from 'common/store/grouped-notification-counts/types';\nimport {\n    fetchGroupedNotificationCountsBegin,\n    fetchGroupedNotificationCountsError,\n    fetchGroupedNotificationCountsSuccess,\n} from 'common/store/grouped-notification-counts/actions';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { selectGroupedNotificationCountsRequest } from 'common/store/grouped-notification-counts/selectors';\nimport { UNREAD_GROUPED_NOTIFICATION_COUNTS_TTL } from 'common/store/grouped-notification-counts/constants';\n\nfunction* fetchGroupedNotificationCountsSaga(action: FetchGroupedNotificationCountsActionT): WrapGeneratorT<void> {\n    const { options } = action;\n\n    const requestStatus: ReturnType<typeof selectGroupedNotificationCountsRequest> = yield select(\n        selectGroupedNotificationCountsRequest,\n    );\n    const isNeedRequest = checkNeedRequest(requestStatus, options, UNREAD_GROUPED_NOTIFICATION_COUNTS_TTL);\n    if (!isNeedRequest) {\n        return;\n    }\n\n    yield put(fetchGroupedNotificationCountsBegin());\n\n    const [error, response]: ReturnApiT<typeof commonTranziitApi.fetchUnreadGroupedNotificationCounts> =\n        yield commonTranziitApi.fetchUnreadGroupedNotificationCounts();\n\n    if (error) {\n        yield put(fetchGroupedNotificationCountsError(error));\n        return;\n    }\n\n    yield put(fetchGroupedNotificationCountsSuccess(response?.byAction || {}));\n}\n\nfunction* groupedNotificationCountsSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST, fetchGroupedNotificationCountsSaga);\n}\n\nexport default groupedNotificationCountsSaga;\n","// extracted by mini-css-extract-plugin\nexport default {\"preview\":\"PriceSettingsEditRuleDetailsPage__preview___qXQAZ\",\"fadeIn\":\"PriceSettingsEditRuleDetailsPage__fadeIn___m_nHO\",\"blinking\":\"PriceSettingsEditRuleDetailsPage__blinking___Izjf8\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './StatusCell.scss';\nimport { ApiTrailerT } from 'common/store/trailers/models';\nimport TrailerStatusPill from 'common/components/status-pill/TrailerStatusPill/TrailerStatusPill';\n\ntype PropsT = {\n    trailer: ApiTrailerT;\n    className?: string;\n};\n\nconst cx = classNames.bind(styles);\n\nconst StatusCell: React.FC<PropsT> = React.memo((props) => {\n    const { trailer, className } = props;\n    return (\n        <div className={cx('status')}>\n            <TrailerStatusPill isSymmetrical className={className} status={trailer?.status} />\n        </div>\n    );\n});\n\nexport default StatusCell;\n","import * as React from 'react';\nimport { useMemo } from 'react';\n\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\nimport styles from './OfferDetails.scss';\n\nimport { useTranslation } from 'react-i18next';\nimport CollapsedOfferDetails from './CollapsedOfferDetails/CollapsedOfferDetails';\nimport { PriceOfferT } from 'common/store/order-creation/models';\nimport { useSelector } from 'react-redux';\nimport { CurrencyEnum, StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport { sumAdditionalServicesPrice } from 'common/layouts/NewOrderPage/additional-services';\nimport RouteIcon from 'common/icons/RouteIcon';\nimport FuelIcon from 'common/icons/FuelIcon';\nimport LayoverIcon, { getLayoverIconProps } from 'common/icons/LayoverIcon';\nimport {\n    ALL_TOLL_TYPES,\n    ApiAdditionalServiceTypeEnum,\n    ApiBrokerAdditionalServiceT,\n    ApiCarrierAdditionalServiceT,\n    ApiCountriesT,\n    ApiDictCarrierAdditionalServiceT,\n    ApiDictCarrierAdditionalServiceTypeT,\n    ApiRuleTargetT,\n    ApiTrailerDictTypeT,\n    CountryCodeT,\n    TollTypeEnum,\n} from 'common/utils/api/models';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport { selectAdditionalServicesMap } from 'common/store/additional-services-dict/selectors';\nimport UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\nimport Money from 'common/components/Money/Money';\nimport PriceDetailsHeader from 'common/layouts/NewOrderPage/OfferDetails/PriceDetailsHeader/PriceDetailsHeader';\nimport { TOLL_MAP_T, TOLL_TOOLTIP_MAP_T } from 'common/components/TollLabel/TollLabel';\nimport isNil from 'lodash/isNil';\nimport keys from 'lodash/keys';\nimport isEmpty from 'lodash/isEmpty';\nimport AsyncCountryFormatter from 'design-system/components/InfoTable/formatters/AsyncCountryFormatter/AsyncCountryFormatter';\nimport PriceDetails, { PriceDetailT } from 'design-system/components/PriceDetails/PriceDetails';\n\nimport { useCommonPriceDetails } from 'common/components/price-details/hooks/common';\nimport { useAdditionalServicesList } from 'common/components/price-details/hooks/additional-services-list';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport { checkShouldShowLayover } from 'common/components/price-details/utils';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport isNumber from 'lodash/isNumber';\nimport { isNonNil } from 'common/utils';\nimport FuelOptionTypeLabel from 'common/components/FuelOptionTypeLabel/FuelOptionTypeLabel';\nimport { PILL_THEME_BY_FUEL_OPTION_TYPE } from 'common/components/status-pill/FuelOptionTypePill/FuelOptionTypePill';\nimport { useEditablePriceDetails } from 'common/components/price-details/hooks/editable-price-details';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport { compareLineHaul, getPriceOfferLineHaul } from 'common/layouts/NewOrderPage/utils/custom-line-haul';\nimport { CustomLineHaulMapT, CustomLineHaulT } from 'common/layouts/NewOrderPage/query';\nimport { logWarning } from 'common/utils/logger';\nimport EditOfferTotalPriceLayout from 'common/layouts/NewOrderPage/OfferDetails/EditOfferTotalPriceLayout/EditOfferTotalPriceLayout';\nimport { getOfferTotalPrice, safetyModifyOfferTotalPrice } from 'common/layouts/NewOrderPage/utils/offer-total-price';\nimport { checkIsCreditLimitExceeded } from 'common/layouts/NewOrderPage/utils/check-is-credit-limit-exceeded';\n\nconst cx = classNames.bind(styles);\n\nconst EMPTY_SELECTED_ADDITIONAL_SERVICES: ApiDictCarrierAdditionalServiceT[] = [];\nconst EMPTY_ADDITIONAL_SERVICE_ITEMS: Array<ApiBrokerAdditionalServiceT | ApiCarrierAdditionalServiceT> = [];\nconst EMPTY_PRICE_DETAILS: PriceDetailT[] = [];\n\ntype PropsT = {\n    className?: string;\n    offer?: PriceOfferT;\n    onSelect?: (offer: PriceOfferT) => void;\n    isSelectable?: boolean;\n    isSelected?: boolean;\n    selectedAdditionalServiceEnums: ApiDictCarrierAdditionalServiceTypeT[];\n    scrollToAdditionalServices?: () => void;\n    hasSelectedLane?: boolean;\n    customLineHaulMap: CustomLineHaulMapT | null;\n    onChangeCustomLineHaul: (priceOfferId: PriceOfferIdT, customLineHaul: CustomLineHaulT | null) => void;\n    dictTrailerInfo: ApiTrailerDictTypeT | null;\n    creditLimit: number | null;\n};\n\nconst OfferDetails: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        offer,\n        onSelect,\n        isSelectable,\n        isSelected,\n        selectedAdditionalServiceEnums,\n        scrollToAdditionalServices,\n        hasSelectedLane,\n        customLineHaulMap,\n        onChangeCustomLineHaul,\n        dictTrailerInfo,\n        creditLimit,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const [isOpenDetails, toggleOpenDetails] = React.useState<boolean>(false);\n\n    const permissions = useSelector(selectPermissions);\n\n    const additionalServiceMap = useSelector(selectAdditionalServicesMap(dictTrailerInfo?.trailerType || null));\n\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    const offerAdditionalServiceItems = offer?.priceComponents?.additionalServicesItems || [];\n\n    const selectedAdditionalServices = React.useMemo(() => {\n        if (!isOpenDetails) {\n            return EMPTY_SELECTED_ADDITIONAL_SERVICES;\n        }\n\n        return selectedAdditionalServiceEnums.reduce<ApiDictCarrierAdditionalServiceT[]>((acc, serviceEnum) => {\n            const service = additionalServiceMap?.[serviceEnum];\n            if (service) {\n                acc.push(service);\n            }\n\n            return acc;\n        }, []);\n    }, [isOpenDetails, selectedAdditionalServiceEnums, additionalServiceMap]);\n\n    const summaryAdditionalServicesPrice = sumAdditionalServicesPrice(\n        selectedAdditionalServiceEnums,\n        additionalServiceMap,\n    );\n\n    const allAdditionalServiceItems = useMemo((): Array<ApiBrokerAdditionalServiceT | ApiCarrierAdditionalServiceT> => {\n        if (!isOpenDetails) {\n            return EMPTY_ADDITIONAL_SERVICE_ITEMS;\n        }\n\n        return [\n            ...offerAdditionalServiceItems,\n            ...selectedAdditionalServices\n                .map((additionalService) => {\n                    if (!additionalService) {\n                        return null;\n                    }\n\n                    const { itemCost, service } = additionalService;\n                    const quantity = 1;\n\n                    const carrierService: ApiCarrierAdditionalServiceT = {\n                        serviceType: ApiAdditionalServiceTypeEnum.carrier,\n                        type: service,\n                        itemCost,\n                        quantity,\n                        cost: quantity * itemCost,\n                    };\n\n                    return carrierService;\n                })\n                .filter(isNonNil),\n        ];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isOpenDetails, offerAdditionalServiceItems, selectedAdditionalServices]);\n\n    const additionalServicesTrailingItems = React.useMemo((): Array<PriceDetailT | null> => {\n        if (!isOpenDetails || !scrollToAdditionalServices) {\n            return EMPTY_PRICE_DETAILS;\n        }\n\n        return [\n            {\n                title: (\n                    <Link theme={LinkThemeEnum.boldBrandDark} onClick={scrollToAdditionalServices}>\n                        {t('common:new-order-offers.add-services')}\n                    </Link>\n                ),\n            },\n        ];\n    }, [isOpenDetails, scrollToAdditionalServices, t]);\n\n    const carrierAdditionalServicesList = useAdditionalServicesList({\n        additionalServiceItems: allAdditionalServiceItems,\n        isAllowBrokerServices: false,\n        isAllowCarrierServices: true,\n        trailingItems: additionalServicesTrailingItems,\n    });\n\n    const brokerAdditionalServicesList = useAdditionalServicesList({\n        additionalServiceItems: allAdditionalServiceItems,\n        isAllowBrokerServices: true,\n        isAllowCarrierServices: false,\n        trailingItems: additionalServicesTrailingItems,\n    });\n\n    const commonPriceDetails = useCommonPriceDetails();\n\n    const laneCostOfOperationPrices: Array<PriceDetailT | null> = React.useMemo(() => {\n        if (!offer) {\n            return [];\n        }\n\n        return [\n            {\n                ...commonPriceDetails.lineHaul,\n                price: offer.priceComponents.lineHaul,\n                footerNode: commonPriceDetails.getAppliedRulesFooterNode(\n                    ['LINE_HAUL'],\n                    offer?.brokerInfo?.appliedRules,\n                ),\n            },\n        ];\n    }, [offer, commonPriceDetails]);\n\n    const laneOtherPrices: Array<PriceDetailT> = React.useMemo(() => {\n        if (!offer || !offer?.priceComponents?.tranziitServiceFee) {\n            return [];\n        }\n\n        return [\n            {\n                ...commonPriceDetails.tranziitServiceFee,\n                price: offer.priceComponents.tranziitServiceFee,\n                footerNode: commonPriceDetails.getAppliedRulesFooterNode(\n                    ['SERVICE_FEE'],\n                    offer?.brokerInfo?.appliedRules,\n                ),\n            },\n        ];\n    }, [offer, commonPriceDetails]);\n\n    const sourceLineHaul = getPriceOfferLineHaul(offer);\n\n    const priceOfferId = offer?.id || null;\n    const customLineHaul = customLineHaulMap?.[priceOfferId as PriceOfferIdT];\n    const { lineHaul, hasChangedLineHaul, lineHaulDiff } = compareLineHaul(sourceLineHaul, customLineHaul);\n\n    const sourceTotalOfferPrice = getOfferTotalPrice(offer);\n\n    const handleChangePrice = React.useCallback(\n        (price: number | null) => {\n            if (!priceOfferId) {\n                logWarning('Failed change price, empty priceOfferId');\n                return;\n            }\n\n            let customLineHaul = price;\n            if (isNumber(price) && isNumber(sourceLineHaul)) {\n                const minAllowedCustomLineHaul = -1 * (sourceTotalOfferPrice - sourceLineHaul);\n                customLineHaul = Math.max(minAllowedCustomLineHaul, price);\n            }\n\n            onChangeCustomLineHaul(priceOfferId, customLineHaul);\n        },\n        [onChangeCustomLineHaul, priceOfferId, sourceTotalOfferPrice, sourceLineHaul],\n    );\n\n    const editableLineHaulPriceDetails = useEditablePriceDetails({\n        sourcePrice: sourceLineHaul,\n        price: lineHaul,\n        onChangePrice: handleChangePrice,\n        i18nKeys: {\n            startEditingTooltip: 'common:price-details.line-haul.start-editing-tooltip',\n            restorePriceTooltip: 'common:price-details.line-haul.restore-tooltip',\n        },\n        isAllowEditPrice: permissions.canEditLineHaulOnOrderCreation,\n    });\n\n    const costOfOperationPrices: Array<PriceDetailT | null> = React.useMemo(() => {\n        if (!offer || !isOpenDetails) {\n            return EMPTY_PRICE_DETAILS;\n        }\n\n        return [\n            {\n                ...commonPriceDetails.lineHaul,\n                ...editableLineHaulPriceDetails,\n                footerNode: commonPriceDetails.getAppliedRulesFooterNode(\n                    ['LINE_HAUL'],\n                    offer?.brokerInfo?.appliedRules,\n                    { isNotActual: hasChangedLineHaul },\n                ),\n            },\n            {\n                ...commonPriceDetails.getRoadTaxesRow(offer.co2),\n                price: offer.priceComponents.toll,\n                footerNode: commonPriceDetails.getAppliedRulesFooterNode(\n                    ['ROAD_TAXES'],\n                    offer?.brokerInfo?.appliedRules,\n                ),\n                list: offer.priceComponents.tollByRoadType\n                    ? [\n                          {\n                              list: ALL_TOLL_TYPES.map((tollType) => {\n                                  const toll = offer.priceComponents.tollByRoadType?.[tollType];\n                                  if (!toll) {\n                                      return null;\n                                  }\n\n                                  const { cost, byCountry } = toll;\n                                  if (isNil(cost)) {\n                                      return null;\n                                  }\n\n                                  const tollTooltip = TOLL_TOOLTIP_MAP_T[tollType];\n\n                                  const appliedRuleTargetMap: Record<TollTypeEnum, ApiRuleTargetT | null> = {\n                                      [TollTypeEnum.general]: 'ROAD_TAXES_GENERAL',\n                                      [TollTypeEnum.city]: 'ROAD_TAXES_CITY',\n                                      [TollTypeEnum.bridge]: 'ROAD_TAXES_BRIDGE',\n                                      [TollTypeEnum.tunnel]: 'ROAD_TAXES_TUNNEL',\n                                      [TollTypeEnum.ferry]: 'ROAD_TAXES_FERRY',\n                                      [TollTypeEnum.mountainPass]: 'ROAD_TAXES_MOUNTAIN_PASS',\n                                      [TollTypeEnum.marketCorrection]: null,\n                                      [TollTypeEnum.intermodal]: null,\n                                      [TollTypeEnum.unspecified]: null,\n                                  };\n                                  const appliedRuleTarget = appliedRuleTargetMap[tollType];\n\n                                  return {\n                                      title: t(TOLL_MAP_T[tollType]),\n                                      tooltipNode: tollTooltip ? (\n                                          <TooltipContent theme={TooltipContentThemeEnum.black} width={150} isCenter>\n                                              {t(tollTooltip)}\n                                          </TooltipContent>\n                                      ) : null,\n                                      footerNode: appliedRuleTarget\n                                          ? commonPriceDetails.getAppliedRulesFooterNode(\n                                                [appliedRuleTarget],\n                                                offer?.brokerInfo?.appliedRules,\n                                            )\n                                          : null,\n                                      price: cost,\n                                      list: isEmpty(byCountry)\n                                          ? undefined\n                                          : keys(byCountry).map((countryCode) => {\n                                                const cost = byCountry?.[countryCode];\n\n                                                return {\n                                                    iconNode: <FlagIcon countryCode={countryCode} />,\n                                                    title: (\n                                                        <AsyncCountryFormatter\n                                                            countryCode={countryCode as CountryCodeT}\n                                                        />\n                                                    ),\n                                                    price: cost,\n                                                };\n                                            }),\n                                  };\n                              }),\n                          },\n                      ]\n                    : undefined,\n            },\n            {\n                ...commonPriceDetails.getFuelCostRow(offer.fuelOptionType),\n                price: offer.priceComponents.fuel,\n                footerNode: commonPriceDetails.getAppliedRulesFooterNode(['FUEL'], offer?.brokerInfo?.appliedRules),\n                list: commonPriceDetails.getFuelCostsByCountryList(offer.priceComponents.fuelByCountry),\n            },\n            isNumber(offer.priceComponents.teamDriveCost)\n                ? {\n                      ...commonPriceDetails.getTeamDrive({\n                          travelHours: offer?.teamDriveHours,\n                      }),\n                      price: offer.priceComponents.teamDriveCost || 0,\n                  }\n                : null,\n            checkShouldShowLayover(offer.layoverSeconds, offer.priceComponents.layover)\n                ? {\n                      ...commonPriceDetails.getLayoverCostRow(offer.layoverSeconds, offer.layoverPaidHours),\n                      price: offer.priceComponents.layover || 0,\n                  }\n                : null,\n            carrierAdditionalServicesList?.length\n                ? {\n                      ...commonPriceDetails.getCarrierAdditionalServicesRow(allAdditionalServiceItems),\n                      list: [\n                          {\n                              list: carrierAdditionalServicesList,\n                          },\n                      ],\n                  }\n                : null,\n            brokerAdditionalServicesList?.length\n                ? {\n                      ...commonPriceDetails.getBrokerAdditionalServicesRow(allAdditionalServiceItems),\n                      list: [\n                          {\n                              list: brokerAdditionalServicesList,\n                          },\n                      ],\n                  }\n                : null,\n        ];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [\n        offer,\n        isOpenDetails,\n        allAdditionalServiceItems,\n        carrierAdditionalServicesList,\n        brokerAdditionalServicesList,\n        hasSelectedLane,\n        editableLineHaulPriceDetails,\n        hasChangedLineHaul,\n    ]);\n\n    const otherPrices: Array<PriceDetailT> = React.useMemo(() => {\n        if (!offer) {\n            return [];\n        }\n\n        return [\n            {\n                ...commonPriceDetails.tranziitServiceFee,\n                price: offer.priceComponents.tranziitServiceFee,\n                footerNode: commonPriceDetails.getAppliedRulesFooterNode(\n                    ['SERVICE_FEE'],\n                    offer?.brokerInfo?.appliedRules,\n                ),\n            },\n        ];\n    }, [offer, commonPriceDetails]);\n\n    const brokerPrices = React.useMemo((): Array<PriceDetailT> | null => {\n        if (!offer?.brokerInfo) {\n            return null;\n        }\n\n        const fuelByCountry = Object.keys(offer?.brokerInfo?.fuelPricePerLiterByCountry || {}).map((countryCode) => {\n            const cost = offer?.brokerInfo?.fuelPricePerLiterByCountry?.[countryCode] || 0;\n\n            return {\n                cost,\n                country: countryCode as ApiCountriesT,\n            };\n        });\n\n        return [\n            // {\n            //     title: t('common:new-order-offers.offer.price.broker-info.matrix-rate'),\n            //     // @ts-expect-error TODO wait backend\n            //     price: offer.brokerInfo.matrixRate,\n            //     icon: <RouteIcon fillColor={StyleGuideColorsEnum.slate} />,\n            // },\n            {\n                title: t('common:new-order-offers.offer.price.broker-info.estimated-carrier-rate'),\n                price: offer.priceComponents?.totalRate,\n                iconNode: <RouteIcon fillColor={StyleGuideColorsEnum.slate} />,\n            },\n            {\n                title: t('common:new-order-offers.offer.price.broker-info.min-line-haul-cost'),\n                price: offer.brokerInfo.minLineHaul,\n                iconNode: <RouteIcon fillColor={StyleGuideColorsEnum.slate} />,\n                className: cx('broker-info-row', 'broker-info-row--min-line-haul-cost'),\n            },\n            {\n                title: t('common:new-order-offers.offer.price.broker-info.fuel-weighted-average-price'),\n                rightNode: isNumber(offer.brokerInfo.fuelPricePerLiter) ? (\n                    <UnitTypeCount\n                        className={cx('price')}\n                        types={[UnitTypeEnum.euro4SignificantDigitsAbbreviation, UnitTypeEnum.litersAbbreviation]}\n                        count={offer.brokerInfo.fuelPricePerLiter}\n                    />\n                ) : null,\n                ...(offer?.fuelOptionType\n                    ? {\n                          pillLabelNode: <FuelOptionTypeLabel fuelOption={offer.fuelOptionType} />,\n                          pillLabelTheme: PILL_THEME_BY_FUEL_OPTION_TYPE[offer.fuelOptionType],\n                      }\n                    : {}),\n                iconNode: <FuelIcon strokeColor={StyleGuideColorsEnum.slate} fillColor={StyleGuideColorsEnum.light} />,\n                list: commonPriceDetails.getFuelCostsByCountryList(fuelByCountry),\n                className: cx('broker-info-row', 'broker-info-row--fuel-weighted-average-price'),\n            },\n            {\n                title: t('common:new-order-offers.offer.price.broker-info.layover-rate-per-hour'),\n                price: offer.brokerInfo.maxLayoverPerHour,\n                iconNode: <LayoverIcon {...getLayoverIconProps('regular')} />,\n            },\n            {\n                title: t('common:new-order-offers.offer.price.broker-info.layover-rate-per-day'),\n                price: offer.brokerInfo.maxLayoverPerDay,\n                iconNode: <LayoverIcon {...getLayoverIconProps('regular')} />,\n            },\n        ];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [offer, commonPriceDetails, t]);\n\n    const handleSelect = (): void => {\n        if (onSelect && offer) {\n            onSelect(offer);\n        }\n    };\n\n    const costOfOperationRate = offer ? (offer?.priceComponents?.costOfOperation || 0) / offer.distanceKm : null;\n\n    const isAllowEditTotalPrice = permissions.canEditLineHaulOnOrderCreation;\n\n    const [isActiveEditingTotalPrice, setIsActiveEditingTotalPrice] = React.useState<boolean>(false);\n\n    const handleStartEditTotalPrice = React.useCallback(() => {\n        setIsActiveEditingTotalPrice(true);\n    }, []);\n\n    const totalOfferPrice = safetyModifyOfferTotalPrice(\n        sourceTotalOfferPrice,\n        summaryAdditionalServicesPrice,\n        lineHaulDiff,\n    );\n    const isCreditLimitExceeded = checkIsCreditLimitExceeded({ creditLimit, cost: totalOfferPrice });\n\n    const handleChangeTotalPrice = React.useCallback(\n        (price: number | null) => {\n            const diff = isNumber(price) ? price - sourceTotalOfferPrice : null;\n\n            if (!isNumber(sourceLineHaul)) {\n                logWarning('Failed change total offer price, empty sourceLineHaul');\n                return;\n            }\n\n            const customLineHaul = isNumber(diff) ? sourceLineHaul + diff : null;\n\n            if (!priceOfferId) {\n                logWarning('Failed change total offer price, empty priceOfferId');\n                return;\n            }\n            onChangeCustomLineHaul(priceOfferId, customLineHaul);\n\n            setIsActiveEditingTotalPrice(false);\n        },\n        [priceOfferId, sourceLineHaul, onChangeCustomLineHaul, sourceTotalOfferPrice],\n    );\n\n    if (!offer) {\n        return (\n            <div className={cs(cx('inner'), className)}>\n                <div className={cx('placeholder')}>\n                    <div className={cx('placeholder__column', 'placeholder__column--first')}>\n                        <div className={cx('placeholder__box', 'placeholder__box--price')} />\n                        <div className={cx('placeholder__box', 'placeholder__box--rate')} />\n                    </div>\n                    <div className={cx('placeholder__column', 'placeholder__column--second')} />\n                    <div className={cx('placeholder__column', 'placeholder__column--third')}>\n                        <div className={cx('placeholder__box', 'placeholder__box--dates')} />\n                    </div>\n                </div>\n            </div>\n        );\n    }\n\n    return (\n        <div className={cs(cx('inner'), className)}>\n            {isActiveEditingTotalPrice ? (\n                <EditOfferTotalPriceLayout\n                    sourcePrice={sourceTotalOfferPrice}\n                    price={totalOfferPrice}\n                    onChangePrice={handleChangeTotalPrice}\n                />\n            ) : (\n                <CollapsedOfferDetails\n                    totalOfferPrice={totalOfferPrice}\n                    offer={offer}\n                    onSelect={handleSelect}\n                    onOpenDetails={() => toggleOpenDetails(!isOpenDetails)}\n                    isSelectable={isSelectable}\n                    isSelected={isSelected}\n                    isOpenDetails={isOpenDetails}\n                    isDisabled={offer?.isExpired || isCreditLimitExceeded}\n                    isChangedTotalPrice={hasChangedLineHaul}\n                    isAllowEditTotalPrice={isAllowEditTotalPrice}\n                    onStartEditTotalPrice={handleStartEditTotalPrice}\n                    creditLimit={creditLimit}\n                />\n            )}\n            {offer && isOpenDetails && (\n                <div className={cx('price-details')}>\n                    <PriceDetailsHeader\n                        className={cx('price-details__header')}\n                        title={t('common:new-order-offers.offer.price.cost-of-operation')}\n                        rightNode={\n                            <span className={cx('rates')}>\n                                <Money currency={CurrencyEnum.EUR} amount={offer?.priceComponents?.costOfOperation} />\n                                {' ('}\n                                <UnitTypeCount\n                                    types={[UnitTypeEnum.euroAbbreviation, UnitTypeEnum.kilometersAbbreviation]}\n                                    count={costOfOperationRate}\n                                />\n                                )\n                            </span>\n                        }\n                    />\n                    {!!hasSelectedLane && (\n                        <>\n                            <div\n                                className={cx('price-details__list', {\n                                    'price-details__list--isLast': !laneOtherPrices?.length,\n                                })}\n                            >\n                                <PriceDetails list={laneCostOfOperationPrices} />\n                            </div>\n                            {!!laneOtherPrices?.length && (\n                                <div className={cx('price-details__list', 'price-details__list--isLast')}>\n                                    <PriceDetails list={laneOtherPrices} />\n                                </div>\n                            )}\n                        </>\n                    )}\n                    {!hasSelectedLane && (\n                        <>\n                            <div className={cx('price-details__list')}>\n                                <PriceDetails list={costOfOperationPrices} />\n                            </div>\n                            <PriceDetailsHeader title={t('common:new-order-offers.offer.price.other-costs')} />\n                            <div\n                                className={cx('price-details__list', {\n                                    'price-details__list--isLast': !brokerPrices,\n                                })}\n                            >\n                                <PriceDetails list={otherPrices} shouldAlwaysRenderExpandTrigger />\n                            </div>\n                            {brokerPrices && (\n                                <>\n                                    <PriceDetailsHeader title={t('common:new-order-offers.offer.price.price-engine')} />\n                                    <div className={cx('price-details__list', 'price-details__list--isLast')}>\n                                        <PriceDetails list={brokerPrices} />\n                                    </div>\n                                </>\n                            )}\n                        </>\n                    )}\n                </div>\n            )}\n        </div>\n    );\n});\n\nexport default OfferDetails;\n","// extracted by mini-css-extract-plugin\nexport default {\"dropdown\":\"GeoSuggest__dropdown___FF5er\",\"triangle\":\"GeoSuggest__triangle___VvR1N\",\"triangle--isHide\":\"GeoSuggest__triangle--isHide___eOXff\",\"triangle--isRed\":\"GeoSuggest__triangle--isRed___C27a_\",\"input\":\"GeoSuggest__input___r_579\",\"trigger\":\"GeoSuggest__trigger___ckZtM\",\"trigger-input\":\"GeoSuggest__trigger-input___r3744\",\"trigger-input--hasIcon\":\"GeoSuggest__trigger-input--hasIcon___Pjhq0\",\"trigger-input--hasClearControl\":\"GeoSuggest__trigger-input--hasClearControl___Xohex\",\"trigger-input--isFocused\":\"GeoSuggest__trigger-input--isFocused___T1Jh0\",\"trigger-input--isDisabled\":\"GeoSuggest__trigger-input--isDisabled___HuXlD\",\"trigger-input--isEmpty\":\"GeoSuggest__trigger-input--isEmpty___zrMW3\",\"trigger-input--hasWarning\":\"GeoSuggest__trigger-input--hasWarning___nDKhW\",\"trigger-input--hasError\":\"GeoSuggest__trigger-input--hasError___juwOQ\",\"trigger-input--hasChanges\":\"GeoSuggest__trigger-input--hasChanges___xZcDC\",\"trigger-input__icon\":\"GeoSuggest__trigger-input__icon___dMWRf\",\"overlay\":\"GeoSuggest__overlay___GNtGQ\",\"fadeIn\":\"GeoSuggest__fadeIn___b07PL\",\"overlay__option\":\"GeoSuggest__overlay__option___chdzu\",\"overlay__option--isSelected\":\"GeoSuggest__overlay__option--isSelected___tsUzK\",\"right-node\":\"GeoSuggest__right-node___mpy1w\",\"blinking\":\"GeoSuggest__blinking___pjCBz\"};","import React from 'react';\nimport styles from './TimePillLabel.scss';\nimport classNames from 'classnames/bind';\nimport { formatDate } from 'common/utils/time';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    dateTime: ISODateTimeT | null | undefined;\n    className?: string;\n};\n\nconst TimePillLabel: React.FC<PropsT> = (props) => {\n    const { dateTime, className } = props;\n\n    return (\n        <PillLabel isSymmetrical theme={PillLabelThemeEnum.charcoal} className={className}>\n            <span className={cx('text')}>{formatDate('DD MMM YYYY, HH:mm', dateTime)}</span>\n        </PillLabel>\n    );\n};\n\nexport default TimePillLabel;\n","import { RequestStatusT } from 'common/utils/request-status';\n\nimport { FetchPartnersPageQueryT, PartnerT } from './models';\nimport { ApiInvitePartnerRequestT, ApiPartnerCreationRequestT } from 'common/utils/api/models';\nimport { PageResponseT, PaginationStateT } from 'common/utils/pagination/models';\n\nexport const FETCH_PARTNERS_PAGE_REQUEST = 'broker-admin/partners/FETCH_PARTNERS_PAGE_REQUEST';\nexport const FETCH_PARTNERS_PAGE_REQUEST_BEGIN = 'broker-admin/partners/FETCH_PARTNERS_PAGE_REQUEST_BEGIN';\nexport const FETCH_PARTNERS_PAGE_REQUEST_ERROR = 'broker-admin/partners/FETCH_PARTNERS_PAGE_REQUEST_ERROR';\nexport const FETCH_PARTNERS_PAGE_REQUEST_SUCCESS = 'broker-admin/partners/FETCH_PARTNERS_PAGE_REQUEST_SUCCESS';\nexport const RESET_PARTNERS = 'broker-admin/partners/RESET_PARTNERS';\n\nexport const INVITE_PARTNER_REQUEST = 'broker-admin/partners/INVITE_PARTNER_REQUEST';\nexport const CREATE_PARTNER_REQUEST = 'broker-admin/partners/CREATE_PARTNER_REQUEST';\nexport const CREATE_PARTNER_REQUEST_BEGIN = 'broker-admin/partners/CREATE_PARTNER_REQUEST_BEGIN';\nexport const CREATE_PARTNER_REQUEST_ERROR = 'broker-admin/partners/CREATE_PARTNER_REQUEST_ERROR';\nexport const CREATE_PARTNER_REQUEST_SUCCESS = 'broker-admin/partners/CREATE_PARTNER_REQUEST_SUCCESS';\nexport const CREATE_FROM_EXTERNAL_PLATFORM_PARTNER_REQUEST =\n    'broker-admin/partners/CREATE_FROM_EXTERNAL_PLATFORM_PARTNER_REQUEST';\n\nexport type PartnersStateT = PaginationStateT<PartnerT, FetchPartnersPageQueryT> & {\n    createPartnerRequest: RequestStatusT;\n};\n\nexport type FetchPartnersPageActionT = {\n    type: typeof FETCH_PARTNERS_PAGE_REQUEST;\n    pageNumber: PageNumberT;\n    query: FetchPartnersPageQueryT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchPartnersPageBeginActionT = {\n    type: typeof FETCH_PARTNERS_PAGE_REQUEST_BEGIN;\n    pageNumber: PageNumberT;\n    query: FetchPartnersPageQueryT;\n};\n\nexport type FetchPartnersPageSuccessActionT = {\n    type: typeof FETCH_PARTNERS_PAGE_REQUEST_SUCCESS;\n    pageNumber: PageNumberT;\n    query: FetchPartnersPageQueryT;\n    pageResponse: PageResponseT<PartnerT> | null;\n};\n\nexport type FetchPartnersPageErrorActionT = {\n    type: typeof FETCH_PARTNERS_PAGE_REQUEST_ERROR;\n    query: FetchPartnersPageQueryT;\n    pageNumber: PageNumberT;\n    error: Error;\n};\n\nexport type ResetPartnersActionT = {\n    type: typeof RESET_PARTNERS;\n    mutationListOptions: MutationListOptionsT;\n};\n\nexport type InvitePartnerRequestActionT = {\n    type: typeof INVITE_PARTNER_REQUEST;\n    data: ApiInvitePartnerRequestT;\n};\n\nexport type CreatePartnerRequestActionT = {\n    type: typeof CREATE_PARTNER_REQUEST;\n    data: ApiPartnerCreationRequestT;\n};\n\nexport type CreatePartnerRequestBeginActionT = {\n    type: typeof CREATE_PARTNER_REQUEST_BEGIN;\n};\n\nexport type CreatePartnerRequestErrorActionT = {\n    type: typeof CREATE_PARTNER_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type CreatePartnerRequestSuccessActionT = {\n    type: typeof CREATE_PARTNER_REQUEST_SUCCESS;\n};\n\nexport type CreateFromExternalPlatformPartnerActionT = {\n    type: typeof CREATE_FROM_EXTERNAL_PLATFORM_PARTNER_REQUEST;\n    businessPartnerId: PartnerIdT;\n};\n\nexport type PartnersActionT =\n    | FetchPartnersPageActionT\n    | FetchPartnersPageBeginActionT\n    | FetchPartnersPageSuccessActionT\n    | FetchPartnersPageErrorActionT\n    | ResetPartnersActionT\n    | InvitePartnerRequestActionT\n    | CreatePartnerRequestActionT\n    | CreatePartnerRequestBeginActionT\n    | CreatePartnerRequestErrorActionT\n    | CreatePartnerRequestSuccessActionT\n    | CreateFromExternalPlatformPartnerActionT;\n","// extracted by mini-css-extract-plugin\nexport default {\"route\":\"EntitySidebarSkeleton__route___Oy7bn\",\"skeleton__box\":\"EntitySidebarSkeleton__skeleton__box___yYLfv\",\"skeleton__box--first\":\"EntitySidebarSkeleton__skeleton__box--first___isIu7\",\"skeleton__box--secondary\":\"EntitySidebarSkeleton__skeleton__box--secondary___bvJbI\",\"fadeIn\":\"EntitySidebarSkeleton__fadeIn___bNOiM\",\"blinking\":\"EntitySidebarSkeleton__blinking___P8s26\"};","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    size: number;\n    fillColor: StyleGuideColorsEnum;\n    opacity?: number;\n};\n\nconst StopIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, opacity, className, size } = props;\n\n    return (\n        <svg width={size} height={size} viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" className={className}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M0 0h20v20H0z\" />\n                <path fill={fillColor} opacity={opacity || 1} d=\"M5 5h10v10H5z\" />\n            </g>\n        </svg>\n    );\n};\n\nStopIcon.displayName = 'StopIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.tomatoRed,\n    opacity: 1,\n    size: DEFAULT_ICON_SIZE,\n};\n\nexport { storyProps };\nexport default StopIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"textarea\":\"RejectDocumentConfirmation__textarea___xS0q1\",\"fadeIn\":\"RejectDocumentConfirmation__fadeIn___jVsli\",\"blinking\":\"RejectDocumentConfirmation__blinking___XmX02\"};","// extracted by mini-css-extract-plugin\nexport default {\"table--id\":\"ShipmentDetailsCard__table--id___P4q1O\",\"table--po\":\"ShipmentDetailsCard__table--po___RQBcF\",\"table--point\":\"ShipmentDetailsCard__table--point___ZThva\",\"table--shipment\":\"ShipmentDetailsCard__table--shipment___gfei9\",\"table\":\"ShipmentDetailsCard__table___S3ywv\",\"fadeIn\":\"ShipmentDetailsCard__fadeIn___AceQb\",\"blinking\":\"ShipmentDetailsCard__blinking___Tu8nR\"};","import { BrokerTourStateT } from './slice';\nimport { StateT } from '../models';\n\nexport const selectBrokerToursPages = (state: StateT): BrokerTourStateT['pages'] => state.brokerTours.pages;\n\nexport const selectBrokerToursQuery = (state: StateT): BrokerTourStateT['query'] => state.brokerTours.query;\n\nexport const selectBrokerToursTotal = (state: StateT): BrokerTourStateT['total'] => state.brokerTours.total;\n\nexport const selectBrokerToursByIds = (state: StateT): BrokerTourStateT['byId'] => state.brokerTours.byId;\n","import * as React from 'react';\n\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport { ImportXLSAssetsDialogModalDataT } from '../ImportXLSAssetsDialogModal';\nimport { pickFile } from 'common/utils/pick-file';\n\nexport const useImportXLSAssetsModalDialog = () => {\n    const modalDialog = useModalDialog<ImportXLSAssetsDialogModalDataT>();\n\n    return React.useMemo(() => {\n        return {\n            ...modalDialog,\n            onStartImportXLS: () => {\n                pickFile(\n                    '.csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel',\n                    (file) => {\n                        modalDialog.setData({\n                            file,\n                        });\n                    },\n                );\n            },\n        };\n    }, [modalDialog]);\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"table__header\":\"BrokerOrderTable__table__header___MFzQA\",\"table__header--id\":\"BrokerOrderTable__table__header--id___MQxSk\",\"table__column\":\"BrokerOrderTable__table__column___WK7zy\",\"table__column--id\":\"BrokerOrderTable__table__column--id___dJBNy\",\"table__column--created\":\"BrokerOrderTable__table__column--created___gYBPj\",\"table__column--status\":\"BrokerOrderTable__table__column--status___hya6M\",\"table__column--dropoff\":\"BrokerOrderTable__table__column--dropoff___we7h8\",\"table__column--pickup\":\"BrokerOrderTable__table__column--pickup___dCQGY\",\"table__column--has-warnings\":\"BrokerOrderTable__table__column--has-warnings___PRi8b\",\"fadeIn\":\"BrokerOrderTable__fadeIn___nKupH\",\"blinking\":\"BrokerOrderTable__blinking___qnhPA\"};","import { SharableStateT } from '../models';\nimport {\n    initialPartnerShipperContractsState,\n    PartnerShipperContractStateT,\n} from 'common/store/shipper-contracts/slice';\n\nconst selectCompanyState = (state: SharableStateT, partnerId: PartnerIdT | null): PartnerShipperContractStateT => {\n    if (!partnerId) {\n        return initialPartnerShipperContractsState;\n    }\n\n    return state.shipperContracts[partnerId] || initialPartnerShipperContractsState;\n};\n\nexport const selectShipperContractsPages = (partnerId: PartnerIdT | null) => {\n    return (state: SharableStateT): PartnerShipperContractStateT['pages'] => {\n        return selectCompanyState(state, partnerId).pages;\n    };\n};\n\nexport const selectShipperContractsQuery = (partnerId: PartnerIdT | null) => {\n    return (state: SharableStateT): PartnerShipperContractStateT['query'] => selectCompanyState(state, partnerId).query;\n};\n\nexport const selectShipperContractsTotal = (partnerId: PartnerIdT | null) => {\n    return (state: SharableStateT): PartnerShipperContractStateT['total'] => selectCompanyState(state, partnerId).total;\n};\n\nexport const selectShipperContractsByIds = (partnerId: PartnerIdT | null) => {\n    return (state: SharableStateT): PartnerShipperContractStateT['byId'] => selectCompanyState(state, partnerId).byId;\n};\n","import * as React from 'react';\nimport { Route, Switch } from 'react-router-dom';\n\nimport { OMSRoutesEnum, routesEnum } from 'broker-admin/constants';\nimport NewOrderPage from 'common/layouts/NewOrderPage/NewOrderPage';\nimport history from 'common/utils/history';\n\ntype PropsT = {};\n\nconst OrdersPage: React.FC<PropsT> = React.memo(() => {\n    return (\n        <Switch>\n            <Route path={OMSRoutesEnum.newOrder}>\n                <NewOrderPage\n                    isBroker\n                    onClose={() => {\n                        history.push({\n                            pathname: routesEnum.home,\n                        });\n                    }}\n                />\n            </Route>\n        </Switch>\n    );\n});\n\nexport default OrdersPage;\n","const BROADCAST_CHANNEL_PREFIX = 'tranziit';\n\nexport const createBroadcastChannelName = (channelName: string): string => {\n    return `${BROADCAST_CHANNEL_PREFIX}:${channelName}`;\n};\n","import * as React from 'react';\nimport { ApiTrailerDictTypeT } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    trailerDictType?: Pick<\n        ApiTrailerDictTypeT,\n        'length' | 'model' | 'eur1Pallets' | 'eur2Pallets' | 'eur6Pallets'\n    > | null;\n};\n\nconst SimpleTrailerTypeFormatter: React.FC<PropsT> = React.memo((props) => {\n    const { trailerDictType } = props;\n\n    const { t } = useTranslation();\n\n    if (!trailerDictType) {\n        return null;\n    }\n\n    return (\n        <span>\n            {t('common:trailer-subtype-template', {\n                length: trailerDictType?.length,\n                model: trailerDictType?.model,\n                eur1Pallets: trailerDictType?.eur1Pallets,\n                eur2Pallets: trailerDictType?.eur2Pallets,\n            })}\n        </span>\n    );\n});\n\nexport default SimpleTrailerTypeFormatter;\n","import { FieldsEnum, FormErrorsT, RoutePointFieldsEnum } from './constants';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport {\n    checkIsTranziitApiRequestError,\n    TranziitApiRequestErrorSubTypeEnum,\n} from 'common/utils/api/tranziit/errors/tranziit-api-errors';\nimport { checkIsTranziitApiErrorResponse } from 'common/utils/api/tranziit/errors/error-response';\nimport set from 'lodash/set';\nimport { TFunction } from 'i18next';\n\nconst asyncValidate = (t: TFunction, requestError: RequestStatusT): FormErrorsT => {\n    const { error } = requestError;\n\n    const asyncErrors: FormErrorsT = {};\n\n    if (!checkIsTranziitApiRequestError(error)) {\n        return asyncErrors;\n    }\n\n    if (\n        checkIsTranziitApiErrorResponse(\n            error,\n            TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedPreviewRoute_RouteNotFound,\n        )\n    ) {\n        error?.response?.indexes?.forEach((index) => {\n            set(\n                asyncErrors,\n                `${FieldsEnum.route}.${index}.${RoutePointFieldsEnum.location}`,\n                t('common:new-order-form.async-errors.route-not-found'),\n            );\n        });\n    }\n\n    if (\n        checkIsTranziitApiErrorResponse(\n            error,\n            TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedPreviewRoute_RouteWaypointNotLinkable,\n        )\n    ) {\n        error?.response?.indexes?.forEach((index) => {\n            set(\n                asyncErrors,\n                `${FieldsEnum.route}.${index}.${RoutePointFieldsEnum.location}`,\n                t('common:new-order-form.async-errors.route-waypoint-not-linkable'),\n            );\n        });\n    }\n\n    if (\n        checkIsTranziitApiErrorResponse(\n            error,\n            TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedPreviewRoute_ProhibitedCountry,\n        )\n    ) {\n        error?.response?.indexes?.forEach((index) => {\n            set(\n                asyncErrors,\n                `${FieldsEnum.route}.${index}.${RoutePointFieldsEnum.location}`,\n                t('common:new-order-form.errors.unsupported-country'),\n            );\n        });\n    }\n\n    if (\n        checkIsTranziitApiErrorResponse(\n            error,\n            TranziitApiRequestErrorSubTypeEnum.orderCreation_ShipperNotAllowedToHaveNewOrders,\n        )\n    ) {\n        asyncErrors[FieldsEnum.shipper] = t(\n            'common:new-order-form.async-errors.shipper-not-allowed-to-have-new-orders',\n        );\n    }\n\n    if (checkIsTranziitApiErrorResponse(error, TranziitApiRequestErrorSubTypeEnum.orderCreation_ShipperNotAvailable)) {\n        asyncErrors[FieldsEnum.shipper] = t('common:new-order-form.async-errors.shipper-not-available');\n    }\n\n    return asyncErrors;\n};\n\nexport default asyncValidate;\n","// extracted by mini-css-extract-plugin\nexport default {\"action--assign\":\"StartAssignmentFooter__action--assign___oRUVu\",\"fadeIn\":\"StartAssignmentFooter__fadeIn___SjiDQ\",\"blinking\":\"StartAssignmentFooter__blinking___vx9A9\"};","import { BaseAuthService } from './base-auth-service';\nimport { FirebaseAuthService, tryParseFirebaseConfig } from './firebase-auth-service';\nimport { KeycloakAuthService, tryParseKeycloakConfig, tryParseInitRedirectMode } from './keycloak-auth-service';\n\nclass AuthApiFactory {\n    public static createAuthAPI = (): BaseAuthService => {\n        // TODO add condition\n        if (false) {\n            const firebaseConfig = tryParseFirebaseConfig();\n            return new FirebaseAuthService(firebaseConfig);\n        }\n\n        const keycloakConfig = tryParseKeycloakConfig();\n        const initRedirectMode = tryParseInitRedirectMode();\n\n        return new KeycloakAuthService(keycloakConfig, initRedirectMode);\n    };\n}\n\n// singleton\nconst authApi = AuthApiFactory.createAuthAPI();\n\nexport { authApi };\n","import deepEqual from 'deep-equal';\nimport { EntityConverterT, PageResponseT } from './models';\nimport isNumber from 'lodash/isNumber';\nimport { ViewEventChannel } from 'common/utils/view-event-channel';\n\nconst checkIsSameQuery = <Q>(queryA: Q, queryB: Q): boolean => {\n    return deepEqual(queryA || {}, queryB || {});\n};\n\nconst convertPageEntities = <E, F>(\n    pageResponse: PageResponseT<E> | null,\n    converter: EntityConverterT<E, F>,\n): PageResponseT<F> => {\n    return {\n        ...(pageResponse || {}),\n        content: (pageResponse?.content || []).map((entity) => converter(entity)),\n    };\n};\n\ntype AnyPaginationChannelT = ViewEventChannel<{\n    pageNumber: number;\n}>;\n\nconst checkShouldEmitChangePage = <E, F extends AnyPaginationChannelT>(\n    currentPage: number,\n    pageResponse: PageResponseT<E> | null,\n    channel: F,\n) => {\n    if (!pageResponse) {\n        return;\n    }\n\n    const { totalPages } = pageResponse;\n    if (!isNumber(totalPages)) {\n        return;\n    }\n\n    if (totalPages === 0 && currentPage === 0) {\n        // empty state, skip\n        return;\n    }\n\n    if (currentPage >= totalPages) {\n        channel.emit({\n            pageNumber: Math.max(totalPages - 1, 0),\n        });\n    }\n};\n\nexport { checkIsSameQuery, convertPageEntities, checkShouldEmitChangePage };\n","import React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n};\n\nconst WeightIcon: React.FC<PropsT> = (props) => {\n    const { fillColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\">\n            <path\n                fill={fillColor}\n                fillRule=\"evenodd\"\n                d=\"M17.976 16.091L16.52 7.747c-.137-.787-.847-1.362-1.68-1.362h-2.187c.256-.428.403-.925.403-1.454C13.056 3.315 11.686 2 10 2 8.315 2 6.943 3.315 6.943 4.931c0 .529.147 1.026.404 1.454H5.158c-.831 0-1.542.576-1.679 1.363l-1.456 8.345c-.082.473.057.96.38 1.326a1.74 1.74 0 001.3.581h12.595c.501 0 .976-.215 1.3-.58.323-.368.462-.855.378-1.329zM10 3.708c.703 0 1.276.549 1.276 1.223 0 .675-.573 1.224-1.276 1.224-.704 0-1.276-.55-1.276-1.224 0-.675.572-1.223 1.276-1.223z\"\n            />\n        </svg>\n    );\n};\n\nWeightIcon.displayName = 'WeightIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.charcoal,\n};\n\nexport { storyProps };\nexport default WeightIcon;\n\nexport const WeightIconProps = {\n    getControlProps: ({\n        isDisabled,\n        isFocused,\n        hasError,\n        hasWarning,\n        hasSuccess,\n        hasValue,\n    }: {\n        isDisabled?: boolean;\n        isFocused?: boolean;\n        hasError?: boolean;\n        hasWarning?: boolean;\n        hasSuccess?: boolean;\n        hasValue?: boolean;\n    }): PropsT => {\n        if (hasError) {\n            return {\n                fillColor: StyleGuideColorsEnum.tomatoRed,\n            };\n        }\n\n        if (hasWarning) {\n            return {\n                fillColor: StyleGuideColorsEnum.orange,\n            };\n        }\n\n        if (hasSuccess) {\n            return {\n                fillColor: StyleGuideColorsEnum.brandAccent,\n            };\n        }\n\n        if (isDisabled) {\n            return {\n                fillColor: StyleGuideColorsEnum.slate,\n            };\n        }\n\n        return {\n            fillColor: hasValue || isFocused ? StyleGuideColorsEnum.charcoal : StyleGuideColorsEnum.gray,\n        };\n    },\n};\n","import {\n    SpotRequestsActionT,\n    SpotRequestsStateT,\n    FETCH_SPOT_REQUESTS_PAGE_REQUEST_BEGIN,\n    FETCH_SPOT_REQUESTS_PAGE_REQUEST_ERROR,\n    FETCH_SPOT_REQUESTS_PAGE_REQUEST_SUCCESS,\n    RESET_SPOT_REQUESTS,\n} from './types';\nimport {\n    pageBeginReducer,\n    pageErrorReducer,\n    pageSuccessReducer,\n    resetPagesCacheReducer,\n} from 'common/utils/pagination/reducers';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: SpotRequestsStateT = {\n    pages: [],\n    query: null,\n    total: null,\n    byId: {},\n};\n\nexport default (state = initialState, action: SpotRequestsActionT | DestroySessionActionT): SpotRequestsStateT => {\n    switch (action.type) {\n        case FETCH_SPOT_REQUESTS_PAGE_REQUEST_BEGIN: {\n            const { pageNumber, query } = action;\n\n            return {\n                ...state,\n                ...pageBeginReducer(state, pageNumber, query),\n            };\n        }\n        case FETCH_SPOT_REQUESTS_PAGE_REQUEST_SUCCESS: {\n            const { query, pageNumber, pageResponse } = action;\n\n            return {\n                ...state,\n                ...pageSuccessReducer(state, pageNumber, query, pageResponse),\n            };\n        }\n        case FETCH_SPOT_REQUESTS_PAGE_REQUEST_ERROR: {\n            const { query, error, pageNumber } = action;\n\n            return {\n                ...state,\n                ...pageErrorReducer(state, pageNumber, query, error),\n            };\n        }\n\n        case RESET_SPOT_REQUESTS: {\n            const { mutationListOptions } = action;\n\n            return {\n                ...initialState,\n                ...resetPagesCacheReducer(initialState, state, mutationListOptions),\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return {\n                ...initialState,\n            };\n        }\n        default:\n            return state;\n    }\n};\n","import { DEFAULT_MAP_LANGUAGE } from 'common/utils/api/geo-services-config';\n\nimport AutocompleteSessionToken = google.maps.places.AutocompleteSessionToken;\n\nconst MIN_QUERY_LENGTH = 3;\n\ntype QueryT = string;\n\nclass GoogleMapsAutocompleteApi {\n    private maps: MapsT | null;\n\n    private sessionToken: AutocompleteSessionToken | null;\n\n    constructor(maps: MapsT | null | undefined) {\n        this.maps = maps || null;\n\n        if (maps) {\n            this.sessionToken = new maps.places.AutocompleteSessionToken();\n        } else {\n            this.sessionToken = null;\n        }\n    }\n\n    getQueryPredictions = async (\n        query: QueryT | null,\n        mapBounds: MapBoundsT,\n    ): Promise<[QueryT | null, google.maps.places.QueryAutocompletePrediction[]]> => {\n        const { maps, sessionToken } = this;\n\n        if (!maps || !sessionToken) {\n            return [query, []];\n        }\n\n        if (!query || query.length < MIN_QUERY_LENGTH) {\n            return [query, []];\n        }\n\n        const bounds = new maps.LatLngBounds(new maps.LatLng(...mapBounds[0]), new maps.LatLng(...mapBounds[1]));\n\n        const request = {\n            language: DEFAULT_MAP_LANGUAGE,\n            input: query,\n            sessionToken,\n            bounds,\n        };\n\n        return new Promise((resolve) => {\n            // @ts-expect-error\n            const autocompleteService = new maps.places.AutocompleteService();\n            autocompleteService.getQueryPredictions(\n                request,\n                (\n                    results: google.maps.places.QueryAutocompletePrediction[],\n                    status: google.maps.places.PlacesServiceStatus,\n                ) => {\n                    if (status !== 'OK') {\n                        return;\n                    }\n\n                    resolve([query, results]);\n                },\n            );\n        });\n    };\n}\n\nexport { GoogleMapsAutocompleteApi };\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const shipperContractLanesRefreshChannel = new ViewEventChannel<{}>();\n\nexport const shipperContractLanesPaginationChannel = new ViewEventChannel<{\n    pageNumber: number;\n}>();\n","import { StyleGuideColorsEnum } from 'common/constants';\n\nexport default (utilizationPercent: number | null): StyleGuideColorsEnum => {\n    if (utilizationPercent === null) {\n        return StyleGuideColorsEnum.tomatoRed;\n    }\n\n    if (utilizationPercent > 80) {\n        return StyleGuideColorsEnum.brandAccent;\n    }\n\n    if (utilizationPercent > 50) {\n        return StyleGuideColorsEnum.orange;\n    }\n\n    return StyleGuideColorsEnum.tomatoRed;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"TimeLeftForStart__content___FRS4M\",\"status-wrap\":\"TimeLeftForStart__status-wrap___nAQmw\",\"actions\":\"TimeLeftForStart__actions___swO5P\",\"fadeIn\":\"TimeLeftForStart__fadeIn___Ege7z\",\"blinking\":\"TimeLeftForStart__blinking___O2KDl\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './NotificationLayout.scss';\nimport { AnyNotificationT, NotificationEmotionEnum } from 'common/store/notifications/models';\nimport FeaturesContext from 'common/contexts/features';\nimport { ClientFeatureEnum } from 'common/utils/features/client-features-config';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport TransparentTriggerWithTooltip from 'design-system/components/ExpandTrigger/TransparentTriggerWithTooltip';\nimport { useTranslation } from 'react-i18next';\nimport { TooltipPositionEnum } from 'design-system/components/Tooltip/Tooltip';\nimport CheckIcon from 'common/icons/CheckIcon';\nimport { ApiLogInitiatorTypeT } from 'common/utils/api/models';\nimport { newNotificationsChannel } from 'common/store/notifications/channels';\nimport RestoreIcon from 'common/icons/RestoreIcon';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport NotificationCardBody from '../NotificationCardBody/NotificationCardBody';\n\nconst cx = classNames.bind(styles);\n\nexport type NotificationLayoutPropsT = {\n    className?: string;\n    initiatorType?: ApiLogInitiatorTypeT;\n    initiatorName?: string | null;\n    id: NotificationIdT | null;\n    emotion: NotificationEmotionEnum | null;\n    notification: AnyNotificationT;\n    onClick: () => void;\n    children: React.ReactNode;\n    headerNode?: React.ReactNode;\n    footerNode?: React.ReactNode;\n    onMarkAsRead: () => void;\n};\n\nconst NotificationLayout: React.FC<NotificationLayoutPropsT> = React.memo((props) => {\n    const {\n        className,\n        id,\n        children,\n        notification,\n        onClick,\n        headerNode,\n        footerNode,\n        onMarkAsRead,\n        initiatorName,\n        initiatorType,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const featuresContext = React.useContext(FeaturesContext);\n    const isAllowShowId = !!featuresContext?.checkActiveClientFeature?.(ClientFeatureEnum.showNotificationId);\n    const isShowNotificationToastTrigger = !!featuresContext?.checkActiveClientFeature?.(\n        ClientFeatureEnum.showNotificationToastTrigger,\n    );\n\n    const emotion = notification.readAlready ? null : props?.emotion;\n\n    return (\n        <NotificationCardBody\n            className={className}\n            emotion={emotion}\n            readAlready={notification.readAlready}\n            initiatorType={initiatorType}\n            initiatorName={initiatorName}\n            onClick={onClick}\n            markReadNode={\n                !notification.readAlready ? (\n                    <TransparentTriggerWithTooltip\n                        transparentTriggerProps={{\n                            spaces: 'xs',\n                            leftIcon: (\n                                <CheckIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.brandAccent} />\n                            ),\n                        }}\n                        tooltipPosition={TooltipPositionEnum.centerLeft}\n                        tooltipContent={t('common:tooltips.mark-read')}\n                        onClick={(event) => {\n                            event.stopPropagation();\n\n                            onMarkAsRead();\n                        }}\n                    />\n                ) : undefined\n            }\n        >\n            <div>\n                {headerNode && <div className={cx('header')}>{headerNode}</div>}\n                {children}\n                {footerNode && <div className={cx('footer')}>{footerNode}</div>}\n                {isAllowShowId && id && (\n                    <div\n                        className={cx('id')}\n                        onClick={(event) => {\n                            // selection text for copy\n                            event.stopPropagation();\n                        }}\n                    >\n                        ID: {id}\n                    </div>\n                )}\n                {isShowNotificationToastTrigger && (\n                    <div>\n                        <TransparentTrigger\n                            spaces=\"xs\"\n                            onClick={(event) => {\n                                event.stopPropagation();\n\n                                newNotificationsChannel.emit({\n                                    newNotifications: [notification],\n                                });\n                            }}\n                            leftIcon={<RestoreIcon strokeColor={StyleGuideColorsEnum.slate} />}\n                            reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                        />\n                    </div>\n                )}\n            </div>\n        </NotificationCardBody>\n    );\n});\n\nexport default NotificationLayout;\n","import { ApiDictDocumentT, DocumentRequiredEnum, DocumentTypeEnum } from 'common/utils/api/models';\nimport { DictDocumentT } from 'common/store/documents-dict/models';\n\nconst prepareDictDocument = (rawDocument: ApiDictDocumentT): DictDocumentT => {\n    return {\n        // documentType may become non-unique in the future, so it's better to leave the fake id\n        // @ts-expect-error TODO\n        id: String(rawDocument.id) || String(rawDocument.documentType),\n        type: rawDocument.documentType as DocumentTypeEnum,\n        required: rawDocument.required as DocumentRequiredEnum,\n        name: rawDocument.name || '',\n    };\n};\n\nexport default prepareDictDocument;\n","import * as React from 'react';\nimport styles from './TraceIdLabel.scss';\nimport classNames from 'classnames/bind';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    traceId: TraceIdT | null;\n};\n\nconst TraceIdLabel: React.FC<PropsT> = React.memo((props) => {\n    const { traceId } = props;\n\n    if (!traceId) {\n        return null;\n    }\n\n    return (\n        <>\n            <span>Trace ID:</span>\n            <span className={cx('trace-id')}>{traceId}</span>\n        </>\n    );\n});\n\nexport { TraceIdLabel };\n","// extracted by mini-css-extract-plugin\nexport default {\"table\":\"DocumentsTable__table___pgohl\",\"header\":\"DocumentsTable__header___GYFOP\",\"header--mod-center\":\"DocumentsTable__header--mod-center___AIdvx\",\"row\":\"DocumentsTable__row___uFc_2\",\"row--theme-empty\":\"DocumentsTable__row--theme-empty___GCN5x\",\"row--theme-normal\":\"DocumentsTable__row--theme-normal___ZXMyP\",\"row--hasLeftGreenBorder\":\"DocumentsTable__row--hasLeftGreenBorder___oRaSD\",\"row--hasLeftRedBorder\":\"DocumentsTable__row--hasLeftRedBorder___meQ8B\",\"row--hasLeftGreyBorder\":\"DocumentsTable__row--hasLeftGreyBorder___c8Kae\",\"row--hasLeftOrangeBorder\":\"DocumentsTable__row--hasLeftOrangeBorder___JUs6c\",\"line-loader-container\":\"DocumentsTable__line-loader-container___SefEB\",\"fadeIn\":\"DocumentsTable__fadeIn___yqarC\",\"blinking\":\"DocumentsTable__blinking___UOPpG\"};","// extracted by mini-css-extract-plugin\nexport default {\"table__header\":\"PartnersTable__table__header___tgWbQ\",\"table__header--name\":\"PartnersTable__table__header--name___wZoWW\",\"table__header--teams\":\"PartnersTable__table__header--teams___lAMrV\",\"table__header--warnings\":\"PartnersTable__table__header--warnings___T39Xh\",\"table__header--type\":\"PartnersTable__table__header--type___NVLTU\",\"table__column--name\":\"PartnersTable__table__column--name___qgx11\",\"table__column--any\":\"PartnersTable__table__column--any___xetLG\",\"table__column--сontact\":\"PartnersTable__table__column--сontact___kCGXX\",\"table__column--type\":\"PartnersTable__table__column--type___MCT6S\",\"table__column--teams\":\"PartnersTable__table__column--teams___m_RhE\",\"table__column--warnings\":\"PartnersTable__table__column--warnings___b7Cud\",\"table__column--last-warnings\":\"PartnersTable__table__column--last-warnings___Wun4n\",\"table__column--controls\":\"PartnersTable__table__column--controls___kKuK7\",\"lock\":\"PartnersTable__lock___asmrk\",\"fadeIn\":\"PartnersTable__fadeIn___i6Rs2\",\"blinking\":\"PartnersTable__blinking___Y5Q__\"};","import { FieldsEnum, FormValuesT } from './constants';\nimport { SystemSettingsT } from 'broker-admin/store/price-settings/system-settings/models';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport { MS_IN_HOUR } from 'common/utils/time';\nimport { convertSecToMin } from 'common/utils/form-value-converters';\n\nconst getInitialValues = (systemSettings: SystemSettingsT | null | undefined): FormValuesT => {\n    const startBrokerWorkingHoursH = parseSimpleNumber(systemSettings?.BROKER_DAY_START_HOURS || '') || 0;\n    const endBrokerWorkingHoursH = parseSimpleNumber(systemSettings?.BROKER_DAY_END_HOURS || '') || 0;\n\n    return {\n        [FieldsEnum.urgentOrderProcessingDelay]: systemSettings?.URGENT_ORDER_PROCESSING_DELAY || '',\n        [FieldsEnum.regularOrderProcessingDelay]: systemSettings?.REGULAR_ORDER_PROCESSING_DELAY || '',\n        [FieldsEnum.minWindowSize]: convertSecToMin(systemSettings?.MIN_WINDOW_SIZE || ''),\n        [FieldsEnum.maxWindowSize]: convertSecToMin(systemSettings?.MAX_WINDOW_SIZE || ''),\n        [FieldsEnum.brokerWorkingHours]: [startBrokerWorkingHoursH * MS_IN_HOUR, endBrokerWorkingHoursH * MS_IN_HOUR],\n        [FieldsEnum.orderCreationSeconds]: systemSettings?.ORDER_CREATION_SECONDS || '',\n        [FieldsEnum.quantumMinutes]: systemSettings?.QUANTUM_MINUTES || '',\n        [FieldsEnum.mapPrecisionDelta]: systemSettings?.MAP_PRECISION_DELTA || '',\n        [FieldsEnum.hvoEmissionPercent]: systemSettings?.HVO_EMISSION_PERCENT || '',\n    };\n};\n\nexport default getInitialValues;\n","import * as React from 'react';\nimport Link, { LinkPropsT, LinkThemeEnum } from 'common/components/Link/Link';\n\ntype PropsT =\n    | {\n          assetId: AssetIdT | null | undefined;\n          onOpenAssetDetails: (assetId: AssetIdT) => void;\n      }\n    | {\n          to: LinkPropsT['to'] | null | undefined;\n      };\n\nconst AssetLinkFormatter: React.FC<PropsT> = React.memo((props) => {\n    if ('to' in props && props.to) {\n        return (\n            <Link to={props.to} theme={LinkThemeEnum.boldBrandDark}>\n                {props.children}\n            </Link>\n        );\n    }\n\n    if ('assetId' in props && props.assetId) {\n        return (\n            <Link\n                onClick={() => {\n                    if (!props.assetId) {\n                        return;\n                    }\n\n                    props.onOpenAssetDetails(props.assetId);\n                }}\n                theme={LinkThemeEnum.boldBrandDark}\n            >\n                {props.children}\n            </Link>\n        );\n    }\n\n    return <span>{props.children}</span>;\n});\n\nexport default AssetLinkFormatter;\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"ContractMultipleDropdown__option___ivqQw\",\"contract-name\":\"ContractMultipleDropdown__contract-name___Seh3k\",\"fadeIn\":\"ContractMultipleDropdown__fadeIn___zXYZE\",\"blinking\":\"ContractMultipleDropdown__blinking___QxL3Q\"};","import {\n    COUNTRY_SETTINGS_DICT_REQUEST,\n    COUNTRY_SETTINGS_DICT_REQUEST_BEGIN,\n    COUNTRY_SETTINGS_DICT_REQUEST_ERROR,\n    COUNTRY_SETTINGS_DICT_REQUEST_SUCCESS,\n    FetchCountrySettingsDictActionT,\n    FetchCountrySettingsDictBeginActionT,\n    FetchCountrySettingsDictErrorActionT,\n    FetchCountrySettingsDictSuccessActionT,\n} from './types';\nimport { CountrySettingsT } from './models';\n\nexport const fetchCountrySettingsDict = (): FetchCountrySettingsDictActionT => ({\n    type: COUNTRY_SETTINGS_DICT_REQUEST,\n});\n\nexport const fetchCountrySettingsDictBegin = (): FetchCountrySettingsDictBeginActionT => ({\n    type: COUNTRY_SETTINGS_DICT_REQUEST_BEGIN,\n});\n\nexport const fetchCountrySettingsDictSuccess = (\n    list: Array<CountrySettingsT>,\n): FetchCountrySettingsDictSuccessActionT => ({\n    type: COUNTRY_SETTINGS_DICT_REQUEST_SUCCESS,\n    list,\n});\n\nexport const fetchCountrySettingsDictError = (error: Error): FetchCountrySettingsDictErrorActionT => ({\n    type: COUNTRY_SETTINGS_DICT_REQUEST_ERROR,\n    error,\n});\n","import React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './CountryDropdown.scss';\nimport { useTranslation } from 'react-i18next';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\nimport {\n    selectCountriesAllCodes,\n    selectCountriesByCode,\n    selectCountriesDictRequest,\n} from 'common/store/countries-dict/selectors';\nimport { CountryCodeT } from 'common/store/countries-dict/models';\nimport CountryFlagPlaceholderOption from 'common/components/dropdowns/options/CountryFlagPlaceholderOption/CountryFlagPlaceholderOption';\nimport DropdownSearchInput from 'design-system/components/dropdowns/DropdownSearchInput/DropdownSearchInput';\nimport DeprecatedCountyFlagLabel from 'common/components/DeprecatedCountyFlagLabel/DeprecatedCountyFlagLabel';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype ValueT = CountryCodeT | null;\ntype OptionT = CountryCodeT;\n\ntype PropsT = {\n    onChange: (countryCode: ValueT) => void;\n    value?: ValueT;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    className?: string;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    hasChanges?: boolean;\n    onBlur?: () => void;\n    onFocus?: () => void;\n    onReset?: () => void;\n    placeholder?: string;\n    inputPlaceholder?: string;\n    testSelector?: string;\n};\n\nconst CountryDropdown: React.FC<PropsT> = React.memo((props) => {\n    const {\n        onChange,\n        value,\n        overlayPosition,\n        className,\n        hasError,\n        hasWarning,\n        hasChanges,\n        onBlur,\n        onFocus,\n        onReset,\n        testSelector,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const [query, setQuery] = React.useState<string>('');\n\n    const fetchRequest = useSelector(selectCountriesDictRequest);\n    const allCodes = useSelector(selectCountriesAllCodes);\n    const byCode = useSelector(selectCountriesByCode);\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchCountriesDict());\n    }, [dispatch]);\n\n    const renderOption = (countryCode: CountryCodeT | null | undefined, placeholder?: string): React.ReactElement => {\n        if (!countryCode && placeholder) {\n            return <CountryFlagPlaceholderOption label={placeholder} />;\n        }\n\n        const country = countryCode ? byCode[countryCode] : null;\n\n        return <DeprecatedCountyFlagLabel country={country} />;\n    };\n\n    const getOptionValue = (option: CountryCodeT): CountryCodeT => option;\n\n    const handleOptionClick = (countryCode: CountryCodeT | null) => {\n        onChange(countryCode);\n    };\n\n    const filteredCodes = React.useMemo(() => {\n        const clearedQuery = query.toLowerCase().replace(/ /g, '').trim();\n        if (!clearedQuery) {\n            return allCodes;\n        }\n\n        return allCodes.filter((countryCode) => {\n            const country = countryCode ? byCode[countryCode] : null;\n\n            return [country?.userLangDisplayName, country?.language, country?.langCode, country?.code].some((text) =>\n                text?.toLowerCase().replace(/ /g, '').includes(clearedQuery),\n            );\n        });\n    }, [allCodes, query, byCode]);\n\n    const placeholder = props.placeholder || t('common:common-components.country-selector.placeholder');\n    const inputPlaceholder = props.inputPlaceholder || t('common:common-components.country-selector.input-placeholder');\n\n    return (\n        <DropdownSearchInput<OptionT, ValueT | null>\n            className={className}\n            selectedValue={value || null}\n            placeholder={placeholder}\n            inputPlaceholder={inputPlaceholder}\n            options={filteredCodes}\n            onSelect={handleOptionClick}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            renderOption={renderOption}\n            renderTrigger={renderOption}\n            getOptionValue={getOptionValue}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            isDisabled={!fetchRequest.ok}\n            isLoading={fetchRequest.loading}\n            testSelector={`${testSelector}_country`}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            onReset={onReset}\n            onChangeQuery={setQuery}\n        />\n    );\n});\n\nexport default CountryDropdown;\n","import React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './RuleStateControl.scss';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport DropdownControl, {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { useTranslation } from 'react-i18next';\nimport DropdownControlTriggerLabel from 'design-system/components/dropdowns/option/DropdownControlTriggerLabel/DropdownControlTriggerLabel';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport ArrowsIcon from 'common/icons/ArrowsIcon';\nimport { PriceSettingsRuleStateEnum } from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/constants';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype ValueT = PriceSettingsRuleStateEnum | null;\n\ntype PropsT = {\n    value: ValueT;\n    onSelect: (type: ValueT) => void;\n    className?: string;\n};\n\nexport const PRICE_RULE_STATE_I18N_MAP: Record<PriceSettingsRuleStateEnum, string> = {\n    [PriceSettingsRuleStateEnum.activated]: 'price-settings.rules.filters.fields.state.activated',\n    [PriceSettingsRuleStateEnum.deactivated]: 'price-settings.rules.filters.fields.state.deactivated',\n};\n\nconst RuleStateControl: React.FC<PropsT> = (props) => {\n    const { value, onSelect, className } = props;\n\n    const { t } = useTranslation();\n\n    const options: Array<DropdownControlOptionT | SpecialOptionEnum> = React.useMemo(\n        () => [\n            {\n                label: (\n                    <DropdownControlOptionLabel\n                        withSelectedCheck\n                        isSelected={value === null}\n                        label={t('price-settings.rules.filters.fields.state.all')}\n                    />\n                ),\n                onSelect: () => onSelect(null),\n            },\n            SpecialOptionEnum.separator,\n            {\n                label: (\n                    <DropdownControlOptionLabel\n                        withSelectedCheck\n                        isSelected={value === PriceSettingsRuleStateEnum.activated}\n                        label={t(PRICE_RULE_STATE_I18N_MAP[PriceSettingsRuleStateEnum.activated])}\n                    />\n                ),\n                onSelect: () => onSelect(PriceSettingsRuleStateEnum.activated),\n            },\n            {\n                label: (\n                    <DropdownControlOptionLabel\n                        withSelectedCheck\n                        isSelected={value === PriceSettingsRuleStateEnum.deactivated}\n                        label={t(PRICE_RULE_STATE_I18N_MAP[PriceSettingsRuleStateEnum.deactivated])}\n                    />\n                ),\n                onSelect: () => onSelect(PriceSettingsRuleStateEnum.deactivated),\n            },\n        ],\n        [t, value, onSelect],\n    );\n\n    let triggerNode: React.ReactNode = null;\n    if (value === null) {\n        triggerNode = <DropdownControlTriggerLabel label={t('price-settings.rules.filters.fields.state.all')} />;\n    }\n\n    if (value === PriceSettingsRuleStateEnum.activated) {\n        triggerNode = <DropdownControlTriggerLabel label={t('price-settings.rules.filters.fields.state.activated')} />;\n    }\n\n    if (value === PriceSettingsRuleStateEnum.deactivated) {\n        triggerNode = (\n            <DropdownControlTriggerLabel label={t('price-settings.rules.filters.fields.state.deactivated')} />\n        );\n    }\n\n    return (\n        <DropdownControl\n            className={className}\n            options={options}\n            renderTrigger={(isActive, onClick) => (\n                <TransparentTrigger\n                    label={triggerNode}\n                    isPressed={isActive}\n                    onClick={onClick}\n                    reflectionTheme={ReflectionThemeEnum.light}\n                    rightIcon={<ArrowsIcon />}\n                />\n            )}\n            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n        />\n    );\n};\n\nexport default RuleStateControl;\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const carrierContractDetailsRefreshChannel = new ViewEventChannel<{\n    contractId: CarrierContractIdT;\n}>();\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT, RoutePointFieldsEnum } from './constants';\nimport { CountrySettingsByCodeT } from 'common/store/country-settings-dict/models';\nimport { checkIsAvailableCountryForShip } from 'common/store/country-settings-dict/utils/check-location';\n\ntype MetaT = {\n    countriesSettingsByCode: CountrySettingsByCodeT;\n};\n\nconst verifyLocation = (t: TFunction, location: LocationT | undefined | null): string | null => {\n    if (!location) {\n        return null;\n    }\n\n    if (Number.isNaN(location.utcOffsetMinutes)) {\n        return t('broker-order-route-edit.errors.wrong-utc-offset');\n    }\n\n    if (\n        !location.addressComponents?.zipCode &&\n        !location.addressComponents?.city &&\n        !location.addressComponents?.countryCode &&\n        !location.addressComponents?.street1 &&\n        !location.addressComponents?.street2\n    ) {\n        return t('broker-order-route-edit.errors.unsupported-area');\n    }\n\n    if (!location.addressComponents?.countryCode) {\n        return t('broker-order-route-edit.errors.need-address-details.country-code');\n    }\n\n    if (!location.addressComponents?.city) {\n        return t('broker-order-route-edit.errors.need-address-details.locality');\n    }\n\n    return null;\n};\n\nconst validate = (t: TFunction, values: FormValuesT, meta: MetaT): FormErrorsT => {\n    const { countriesSettingsByCode } = meta;\n\n    const errors: FormErrorsT = {};\n\n    const routeFormValue = values[FieldsEnum.route];\n    routeFormValue.forEach((routePointFormValue, routePointIndex) => {\n        const addRoutePointError = (fieldName: RoutePointFieldsEnum, message: string) => {\n            if (!errors[FieldsEnum.route]) {\n                errors[FieldsEnum.route] = [];\n            }\n\n            if (!errors[FieldsEnum.route][routePointIndex]) {\n                errors[FieldsEnum.route][routePointIndex] = {};\n            }\n\n            errors[FieldsEnum.route][routePointIndex][fieldName] = message;\n        };\n\n        const routePointLocation = routeFormValue[routePointIndex][RoutePointFieldsEnum.location];\n        if (!routePointLocation) {\n            addRoutePointError(RoutePointFieldsEnum.location, t('broker-order-route-edit.errors.required-select-item'));\n        }\n\n        const routePointLocationError = verifyLocation(t, routePointLocation);\n        if (routePointLocation && routePointLocationError) {\n            addRoutePointError(RoutePointFieldsEnum.location, routePointLocationError);\n        }\n\n        if (!checkIsAvailableCountryForShip(routePointLocation, countriesSettingsByCode)) {\n            addRoutePointError(RoutePointFieldsEnum.location, t('broker-order-route-edit.errors.unsupported-country'));\n        }\n    });\n\n    return errors;\n};\n\nexport default validate;\n","import * as React from 'react';\n\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\n\nimport classNames from 'classnames/bind';\nimport styles from './AccountPage.scss';\n\nimport { useFormik } from 'formik';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport AccountPreview from './AccountPreview/AccountPreview';\nimport { selectCurrentUser, selectPatchUserRequestStatus } from 'common/store/user/selectors';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport LanguageSwitcher from 'common/components/LanguageSwitcher/LanguageSwitcher';\nimport withWidgetChangesDetector from 'common/components/SaveChangesNotification/withWidgetChangesDetector';\nimport { patchUser } from 'common/store/user/actions';\nimport { selectUser } from 'common/store/auth/selectors';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport validateForm from './validate-form';\nimport Input from 'common/components/Input/Input';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport FieldGroup, { FieldGroupEmptyItem } from 'common/components/FieldGroup/FieldGroup';\nimport { AUTO_COMPLETE_OFF_FIX, PHONE_NUMBER_PREFIX } from 'common/constants';\nimport { LangEnum } from 'common/locales/i18n';\nimport Widget from 'common/components/Widget/Widget';\nimport TopBar from 'common/layouts/LeftMenuLayout/TopBar/TopBar';\nimport ScrollableContent from '../LeftMenuLayout/ScrollableContent/ScrollableContent';\nimport ContentMargins from '../LeftMenuLayout/ContentMargins/ContentMargins';\nimport useContainerScroll from 'common/utils/hooks/useContainerScroll';\nimport getScrollbarWidth from 'common/utils/get-scroll-bar-width';\nimport PhoneNumberInput from 'common/components/PhoneNumberInput/PhoneNumberInput';\nimport { parsePhoneNumber } from 'common/utils/input-parsers';\n\nimport NotificationsBarTrigger from 'common/components/notifications/NotificationsBarTrigger/NotificationsBarTrigger';\nimport useAsyncFormErrors from 'common/utils/hooks/useAsyncFormErrors';\nimport asyncValidate from './async-validations';\nimport LeftCardLayout from 'common/layouts/LeftCardLayout/LeftCardLayout';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport useAsyncFormErrorMessage from 'common/utils/hooks/useAsyncFormErrorMessage';\nimport TopBarContent from 'common/layouts/LeftMenuLayout/TopBarContent/TopBarContent';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport { simpleStringFormatter } from 'common/utils/form-formatters';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport { authApi } from 'common/utils/api/auth/factory';\nimport { AuthAccountUrlsT } from 'common/utils/api/auth/base-auth-service';\nimport { useEffect } from 'react';\nimport Link, { LinkSizeEnum, LinkThemeEnum } from 'common/components/Link/Link';\nimport DevelopmentSettings from 'common/layouts/AccountPage/DevelopmentSettings/DevelopmentSettings';\nimport { checkIsProduction } from 'common/utils/test-urls';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges([\n    FieldsEnum.firstName,\n    FieldsEnum.lastName,\n    FieldsEnum.phoneNumber,\n    FieldsEnum.language,\n    FieldsEnum.newPassword,\n]);\n\nconst AccountPage: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n    const user = useSelector(selectCurrentUser);\n    const saveRequestStatus = useSelector(selectPatchUserRequestStatus);\n    const firebaseUser = useSelector(selectUser);\n    const dispatch = useDispatch();\n\n    const { containerRef, onContainerScroll, scrollTop } = useContainerScroll();\n\n    const scrollBarWidth = React.useMemo(\n        () => getScrollbarWidth(containerRef?.current),\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        [containerRef?.current],\n    );\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values: FormValuesT = {\n            [FieldsEnum.firstName]: user?.name || '',\n            [FieldsEnum.lastName]: user?.surname || '',\n            [FieldsEnum.phoneNumber]: user?.phone || PHONE_NUMBER_PREFIX,\n            [FieldsEnum.language]: (user?.language as LangEnum) || null,\n            [FieldsEnum.currentPassword]: '',\n            [FieldsEnum.newPassword]: '',\n        };\n\n        const errors = validate(values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [user]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            dispatch(\n                patchUser(user, firebaseUser, {\n                    firstName: simpleStringFormatter(values[FieldsEnum.firstName]),\n                    lastName: simpleStringFormatter(values[FieldsEnum.lastName]),\n                    phoneNumber: parsePhoneNumber(values[FieldsEnum.phoneNumber]),\n                    language: values[FieldsEnum.language] || null,\n                    currentPassword: simpleStringFormatter(values[FieldsEnum.currentPassword]) || null,\n                    newPassword: simpleStringFormatter(values[FieldsEnum.newPassword]) || null,\n                }),\n            );\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const WidgetChangesDetector = withWidgetChangesDetector(formik.values, initialValues);\n\n    const hasChanges = useWatchAnyFieldValueChanges(formik.values, initialValues) && formik.dirty && user;\n\n    const asyncErrors = React.useMemo(() => {\n        return asyncValidate(saveRequestStatus);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [saveRequestStatus?.error]);\n\n    React.useEffect(() => {\n        if (saveRequestStatus?.ok) {\n            formik.setValues((values) => ({\n                ...values,\n                [FieldsEnum.currentPassword]: '',\n                [FieldsEnum.newPassword]: '',\n            }));\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [saveRequestStatus?.ok]);\n\n    const { asyncFormErrors, resetAsyncFormErrors } = useAsyncFormErrors(asyncErrors);\n\n    const currentPasswordAsyncError = useAsyncFormErrorMessage(asyncFormErrors[FieldsEnum.currentPassword]);\n    const currentPasswordError = formik.errors[FieldsEnum.currentPassword];\n\n    const isShowNewPasswordError =\n        !!formik.values[FieldsEnum.currentPassword] && !currentPasswordError && !currentPasswordAsyncError;\n\n    const [accountUrls, setAccountUrls] = React.useState<AuthAccountUrlsT | null>(null);\n\n    useEffect(() => {\n        (async () => {\n            const result = await authApi.getAccountUrls();\n            setAccountUrls(result?.[1] || null);\n        })();\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [authApi]);\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('form')} autoComplete=\"off\">\n            <PageTitle title={t('common:page-titles.account-settings')} />\n            <ScrollableContent\n                scrollContainerRef={containerRef}\n                onContainerScroll={onContainerScroll}\n                stickyHeaderNode={\n                    <TopBar isSticky isWhite={scrollTop > 10} scrollBarWidth={scrollBarWidth}>\n                        <TopBarContent\n                            title={t('common:account-page.title')}\n                            rightNode={\n                                <>\n                                    {(hasChanges || saveRequestStatus.loading) && (\n                                        <div className={cx('header__controls')}>\n                                            <Button\n                                                theme={ButtonThemeEnum.primary}\n                                                type=\"submit\"\n                                                className={cx('control__save')}\n                                                isLoading={saveRequestStatus.loading}\n                                            >\n                                                {t('common:account-page.buttons.save')}\n                                            </Button>\n                                            <Button\n                                                theme={ButtonThemeEnum.secondary}\n                                                onClick={() => {\n                                                    formik.resetForm({});\n                                                }}\n                                            >\n                                                {t('common:account-page.buttons.cancel')}\n                                            </Button>\n                                        </div>\n                                    )}\n                                    <NotificationsBarTrigger />\n                                </>\n                            }\n                        />\n                    </TopBar>\n                }\n            >\n                <ContentMargins>\n                    {!user && <LoaderOverlay />}\n                    <LeftCardLayout testSelector=\"account-page\" cardNode={<AccountPreview />}>\n                        <Widget\n                            className={cx('widget')}\n                            title={t('common:account-page.sections.base')}\n                            rightNode={\n                                <WidgetChangesDetector\n                                    fields={[FieldsEnum.firstName, FieldsEnum.lastName, FieldsEnum.phoneNumber]}\n                                />\n                            }\n                        >\n                            <div className={cx('widget__inner')}>\n                                <FieldGroup>\n                                    <FormikField\n                                        className={cx('field')}\n                                        name={FieldsEnum.firstName}\n                                        error={formik.errors[FieldsEnum.firstName]}\n                                        meta={formik.getFieldMeta(FieldsEnum.firstName)}\n                                        label={t('common:account-page.field-labels.first-name')}\n                                        setFieldValue={formik.setFieldValue}\n                                        setFieldTouched={formik.setFieldTouched}\n                                    >\n                                        {(props) => (\n                                            <Input\n                                                name={FieldsEnum.firstName}\n                                                value={formik.values[FieldsEnum.firstName]}\n                                                onChange={props.onChange}\n                                                onBlur={props.onBlur}\n                                                onFocus={props.onFocus}\n                                                hasError={props.hasError}\n                                                hasWarning={props.hasWarning}\n                                                hasChanges={props.hasChanges}\n                                            />\n                                        )}\n                                    </FormikField>\n                                    <FormikField\n                                        className={cx('field')}\n                                        name={FieldsEnum.lastName}\n                                        error={formik.errors[FieldsEnum.lastName]}\n                                        meta={formik.getFieldMeta(FieldsEnum.lastName)}\n                                        label={t('common:account-page.field-labels.last-name')}\n                                        setFieldValue={formik.setFieldValue}\n                                        setFieldTouched={formik.setFieldTouched}\n                                    >\n                                        {(props) => (\n                                            <Input\n                                                name={FieldsEnum.lastName}\n                                                value={formik.values[FieldsEnum.lastName]}\n                                                onChange={props.onChange}\n                                                onBlur={props.onBlur}\n                                                onFocus={props.onFocus}\n                                                hasError={props.hasError}\n                                                hasWarning={props.hasWarning}\n                                                hasChanges={props.hasChanges}\n                                            />\n                                        )}\n                                    </FormikField>\n                                </FieldGroup>\n                                <FieldGroup>\n                                    <FormikField\n                                        className={cx('field')}\n                                        name={FieldsEnum.phoneNumber}\n                                        error={formik.errors[FieldsEnum.phoneNumber]}\n                                        meta={formik.getFieldMeta(FieldsEnum.phoneNumber)}\n                                        label={t('common:account-page.field-labels.phone-number')}\n                                        setFieldValue={formik.setFieldValue}\n                                        setFieldTouched={formik.setFieldTouched}\n                                    >\n                                        {(props) => (\n                                            <PhoneNumberInput\n                                                name={FieldsEnum.phoneNumber}\n                                                value={formik.values[FieldsEnum.phoneNumber]}\n                                                onChange={props.onChange}\n                                                onBlur={props.onBlur}\n                                                onFocus={props.onFocus}\n                                                hasError={props.hasError}\n                                                hasWarning={props.hasWarning}\n                                                hasChanges={props.hasChanges}\n                                            />\n                                        )}\n                                    </FormikField>\n                                    <FieldGroupEmptyItem className={cx('field')} />\n                                </FieldGroup>\n                            </div>\n                        </Widget>\n                        <Widget\n                            className={cx('widget')}\n                            title={t('common:account-page.sections.language')}\n                            rightNode={<WidgetChangesDetector fields={[FieldsEnum.language]} />}\n                        >\n                            <div className={cx('widget__inner')}>\n                                <FieldGroup>\n                                    <FormikField\n                                        className={cx('field', 'field--language-switcher')}\n                                        name={FieldsEnum.language}\n                                        error={formik.errors[FieldsEnum.language]}\n                                        meta={formik.getFieldMeta(FieldsEnum.language)}\n                                        label={t('common:account-page.field-labels.language')}\n                                        setFieldValue={formik.setFieldValue}\n                                        setFieldTouched={formik.setFieldTouched}\n                                    >\n                                        {(props) => (\n                                            <LanguageSwitcher\n                                                lang={formik.values[FieldsEnum.language]}\n                                                isFullSize\n                                                onChange={props.onChange}\n                                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                                onBlur={props.onBlur}\n                                                onFocus={props.onFocus}\n                                                hasChanges={props.hasChanges}\n                                            />\n                                        )}\n                                    </FormikField>\n                                    <FieldGroupEmptyItem className={cx('field')} />\n                                </FieldGroup>\n                            </div>\n                        </Widget>\n                        <Widget\n                            className={cx('widget')}\n                            title={t('common:account-page.sections.change-password')}\n                            rightNode={<WidgetChangesDetector fields={[FieldsEnum.newPassword]} />}\n                        >\n                            {accountUrls?.changeCreds ? (\n                                <div className={cx('account-link__wrap')}>\n                                    <Link\n                                        className={cx('account-link')}\n                                        to={accountUrls.changeCreds}\n                                        theme={LinkThemeEnum.boldBrandDark}\n                                        size={LinkSizeEnum.extraSmall}\n                                        isExternal\n                                    >\n                                        {t('common:account-page.account-links.change-password')}\n                                    </Link>\n                                </div>\n                            ) : (\n                                <div className={cx('widget__inner')}>\n                                    <FieldGroup>\n                                        <FormikField\n                                            className={cx('field')}\n                                            name={FieldsEnum.currentPassword}\n                                            asyncError={currentPasswordAsyncError}\n                                            resetAsyncError={resetAsyncFormErrors}\n                                            error={currentPasswordError}\n                                            meta={formik.getFieldMeta(FieldsEnum.currentPassword)}\n                                            label={t('common:account-page.field-labels.current-password')}\n                                            setFieldValue={formik.setFieldValue}\n                                            setFieldTouched={formik.setFieldTouched}\n                                        >\n                                            {(props) => (\n                                                <Input\n                                                    type=\"password\"\n                                                    name={FieldsEnum.currentPassword}\n                                                    value={formik.values[FieldsEnum.currentPassword]}\n                                                    onChange={props.onChange}\n                                                    onBlur={props.onBlur}\n                                                    onFocus={props.onFocus}\n                                                    hasError={props.hasError}\n                                                    hasWarning={props.hasWarning}\n                                                    autoComplete={AUTO_COMPLETE_OFF_FIX}\n                                                />\n                                            )}\n                                        </FormikField>\n                                        <FormikField\n                                            className={cx('field')}\n                                            name={FieldsEnum.newPassword}\n                                            error={\n                                                isShowNewPasswordError ? formik.errors[FieldsEnum.newPassword] : null\n                                            }\n                                            meta={formik.getFieldMeta(FieldsEnum.newPassword)}\n                                            label={t('common:account-page.field-labels.new-password')}\n                                            setFieldValue={formik.setFieldValue}\n                                            setFieldTouched={formik.setFieldTouched}\n                                        >\n                                            {(props) => (\n                                                <Input\n                                                    type=\"password\"\n                                                    name={FieldsEnum.newPassword}\n                                                    value={formik.values[FieldsEnum.newPassword]}\n                                                    onChange={props.onChange}\n                                                    onBlur={props.onBlur}\n                                                    onFocus={props.onFocus}\n                                                    hasError={props.hasError}\n                                                    hasWarning={props.hasWarning}\n                                                    hasChanges={props.hasChanges}\n                                                    autoComplete={AUTO_COMPLETE_OFF_FIX}\n                                                />\n                                            )}\n                                        </FormikField>\n                                    </FieldGroup>\n                                </div>\n                            )}\n                        </Widget>\n                        {!checkIsProduction() && (\n                            <Widget className={cx('widget')} title={t('common:account-page.sections.development')}>\n                                <DevelopmentSettings />\n                            </Widget>\n                        )}\n                    </LeftCardLayout>\n                </ContentMargins>\n            </ScrollableContent>\n            <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n        </form>\n    );\n});\n\nexport default AccountPage;\n","import * as React from 'react';\n\nimport styles from './PartnerOperationUnavailableReasonsAlert.scss';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport { getOperationUnavailableReasonTranslation } from 'common/components/OperationUnavailableReasonsAlert/utils';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport InfoIcon from 'common/icons/InfoIcon';\nimport { OperationUnavailableReasonT, PartnerTypeEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\nconst alertTranslationKeyMap: Record<PartnerTypeEnum, string> = {\n    [PartnerTypeEnum.shipper]: 'partner.operation-unavailable-alert.shipper',\n    [PartnerTypeEnum.broker]: 'partner.operation-unavailable-alert.broker',\n    [PartnerTypeEnum.carrier]: 'partner.operation-unavailable-alert.carrier',\n};\n\nexport type PropsT = {\n    className?: string;\n    partnerType: PartnerTypeEnum;\n    operationUnavailableReasons: OperationUnavailableReasonT[];\n    externalRestrictionMessage?: string;\n};\n\nconst PartnerOperationUnavailableReasonsAlert: React.FC<PropsT> = React.memo((props) => {\n    const { className, partnerType, operationUnavailableReasons, externalRestrictionMessage } = props;\n    const { t } = useTranslation();\n\n    if (!operationUnavailableReasons.length) {\n        return null;\n    }\n\n    const reasons = operationUnavailableReasons.map((reason) =>\n        getOperationUnavailableReasonTranslation(t, reason, { externalRestrictionMessage }),\n    );\n\n    return (\n        <Alert\n            className={className}\n            icon={<InfoIcon fillColor={StyleGuideColorsEnum.white} />}\n            size={AlertSizeEnum.small}\n            theme={AlertThemeEnum.orange}\n        >\n            {t(alertTranslationKeyMap[partnerType])}\n            <ul className={styles.list}>\n                {reasons.map((reason) => (\n                    <li key={reason}>{reason}</li>\n                ))}\n            </ul>\n        </Alert>\n    );\n});\n\nexport default PartnerOperationUnavailableReasonsAlert;\n","import { put, takeEvery } from 'redux-saga/effects';\nimport { FETCH_RFQ_STATS_REQUEST, FetchRFQStatsActionT } from './types';\nimport { fetchRFQStatsBegin, fetchRFQStatsError, fetchRFQStatsSuccess } from './actions';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\n\nfunction* fetchRFQStatsSaga(action: FetchRFQStatsActionT): WrapGeneratorT<void> {\n    const { query } = action;\n\n    yield put(fetchRFQStatsBegin(query));\n\n    const { companyId, fromDate, toDate } = query;\n\n    const [error, count]: ReturnApiT<typeof brokerTranziitApi.fetchPartnerRFQCount> =\n        yield brokerTranziitApi.fetchPartnerRFQCount(companyId, {\n            fromDate,\n            toDate,\n        });\n\n    if (error) {\n        yield put(fetchRFQStatsError(query, error));\n        return;\n    }\n\n    yield put(\n        fetchRFQStatsSuccess(query, {\n            count: count || 0,\n        }),\n    );\n}\n\nfunction* RFQStatsSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_RFQ_STATS_REQUEST, fetchRFQStatsSaga);\n}\n\nexport default RFQStatsSaga;\n","// eslint-disable-next-line no-restricted-exports\nexport { default } from './slice';\n","import * as React from 'react';\nimport { useMemo } from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './TransportOrderDetails.scss';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\nimport RouteLocationsOverview from 'common/components/entity-details/RouteLocationsOverview/RouteLocationsOverview';\nimport { TransportOrderDetailsT } from 'common/store/transport-order-details/models';\nimport { isNonNil } from 'common/utils';\nimport UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\nimport ExcludedCountries from 'common/components/entity-details/ExcludedCountries/ExcludedCountries';\nimport RouteIcon from 'common/icons/RouteIcon';\nimport TeamDrivePill from 'common/components/status-pill/TeamDrivePill/TeamDrivePill';\nimport TrailerIcon from 'common/icons/TrailerIcon';\nimport EmissionIcon from 'common/icons/EmissionIcon';\nimport TruckIcon from 'common/icons/TruckIcon';\nimport DriverIcon from 'common/icons/DriverIcon';\nimport EuroSymbolIcon from 'common/icons/EuroSymbolIcon';\nimport {\n    PartnerTypeEnum,\n    ShipmentWarningEnum,\n    ApiTourAttachedPaperTypeT,\n    ApiTourShipmentEventT,\n} from 'common/utils/api/models';\nimport { finallyStatusSet } from 'broker-admin/components/status-machine/footers/ChangeShipmentStatusFooter/constants';\nimport AssetLinkFormatter from 'design-system/components/InfoTable/formatters/AssetLinkFormatter/AssetLinkFormatter';\nimport AssetLabelFormatter from 'design-system/components/InfoTable/formatters/AssetLabelFormatter/AssetLabelFormatter';\nimport PriceDetails, { PriceDetailT } from 'design-system/components/PriceDetails/PriceDetails';\nimport isNumber from 'lodash/isNumber';\nimport { useCommonPriceDetails } from 'common/components/price-details/hooks/common';\nimport { useAdditionalServicesList } from 'common/components/price-details/hooks/additional-services-list';\nimport CaseIcon from 'common/icons/CaseIcon';\nimport DateFormatter from 'design-system/components/InfoTable/formatters/DateFormatter/DateFormatter';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport { convertToKm } from 'common/utils/distance';\nimport SimpleDriverFormatter from 'design-system/components/InfoTable/formatters/SimpleDriverFormatter/SimpleDriverFormatter';\nimport TeamDrive2Icon from 'common/icons/TeamDrive2Icon';\nimport { logWarning } from 'common/utils/logger';\nimport ShipmentDetailsCard from 'common/layouts/TransportOrderDetailsPageLayout/TransportOrderDetails/ShipmentDetailsCard/ShipmentDetailsCard';\nimport RouteDetailsCard from 'common/layouts/TransportOrderDetailsPageLayout/TransportOrderDetails/RouteDetailsCard/RouteDetailsCard';\nimport AsyncTrailerTypeFormatter from 'design-system/components/InfoTable/formatters/AsyncTrailerTypeFormatter/AsyncTrailerTypeFormatter';\nimport TransportOrderTypeFormatter from 'common/components/InfoTable/formatters/TransportOrderTypeFormatter/TransportOrderTypeFormatter';\nimport EmissionClassFormatter from 'design-system/components/InfoTable/formatters/EmissionClassFormatter/EmissionClassFormatter';\nimport DriverLinkFormatter from 'design-system/components/InfoTable/formatters/DriverLinkFormatter/DriverLinkFormatter';\nimport { useTransportOrderPayloadWaypoints } from 'carrier/utils/hooks/useTransportOrderPayloadWaypoints';\nimport { checkShouldShowLayover } from 'common/components/price-details/utils';\nimport { formatISOTime, formatISOTimeWithoutTimezone } from 'common/utils/time';\nimport max from 'lodash/max';\nimport min from 'lodash/min';\nimport { useDistanceByCountryRows } from 'common/components/entity-details/hooks/distanceByCountry';\nimport {\n    checkIsBrokerTransportOrderDetails,\n    checkIsCarrierTransportOrderDetails,\n} from 'common/store/transport-order-details/type-guards';\nimport { AlertGroup } from 'common/layouts/AlertGroup/AlertGroup';\nimport EntityWarningAlert from 'common/components/entity-details/alerts/EntityWarningAlert';\nimport EntityCriticalWarningAlert from 'common/components/entity-details/alerts/EntityCriticalWarningAlert';\nimport DelayingWarningAlert from 'common/components/entity-details/alerts/DelayingWarningAlert';\nimport { checkTemperatureViolation } from 'common/components/entity-details/utils/check-temperature-violation';\nimport ViolationTemperatureAlert from 'common/components/entity-details/alerts/ViolationTemperatureAlert';\nimport CurrentTemperatureAlert from 'common/components/entity-details/alerts/CurrentTemperatureAlert';\nimport EntityEtaAlert from 'common/components/entity-details/alerts/EntityEtaAlert';\nimport { carrierShipmentPapersUrlFactory } from 'carrier/utils/shipment-papers-url-factory';\nimport { useAttachShipmentPapers } from 'common/components/papers/hooks/use-attach-shipment-papers';\nimport ImageGalleryModal from 'common/components/papers/modals/ImageGalleryModal/ImageGalleryModal';\nimport DeletePaperConfirmation from 'common/components/papers/dialogs/DeletePaperConfirmation/DeletePaperConfirmation';\nimport { carrierTourPapersUrlFactory } from 'carrier/utils/tour-papers-url-factory';\nimport { useAttachTourPapers } from 'common/components/papers/hooks/use-attach-tour-papers';\nimport TourPapersCard from 'common/components/papers/TourPapersCard/TourPapersCard';\n\ntype PropsT = {\n    isReadOnly: boolean;\n    transportOrderDetails: TransportOrderDetailsT | null | undefined;\n    goToTrailerDetails: (trailerId: TrailerIdT | null) => void;\n    goToTruckDetails: (truckId: TruckIdT | null) => void;\n    goToDriverDetails?: (driverId: DriverIdT | null) => void;\n    goToSpotRequestDetails: (spotRequestId: SpotRequestIdT | null) => void;\n    onOpenUserDetails: (params: {\n        userId: UserIdT | null;\n        partnerType?: PartnerTypeEnum;\n        partnerId?: PartnerIdT;\n    }) => void;\n    onOpenDriverDetails?: (params: { driverId: DriverIdT; partnerId: PartnerIdT }) => void;\n};\n\nconst cx = classNames.bind(styles);\n\nconst TransportOrderDetails: React.FC<PropsT> = React.memo((props) => {\n    const {\n        isReadOnly,\n        transportOrderDetails,\n        goToTrailerDetails,\n        goToTruckDetails,\n        goToDriverDetails,\n        goToSpotRequestDetails,\n        onOpenUserDetails,\n        onOpenDriverDetails,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const {\n        onAttachShipmentPaper,\n        onDeleteShipmentPaper,\n        onConfirmDeleteShipmentPaper,\n        deleteShipmentPaperRequestStatus,\n        onDownloadShipmentPaper,\n        onOpenGalleryShipmentPaper,\n        getShipmentPaperThumbnailUrl,\n        deleteShipmentPaperConfirmationDialog,\n        shipmentPaperGalleryModal,\n    } = useAttachShipmentPapers(carrierShipmentPapersUrlFactory);\n\n    const {\n        onAttachTourPaper,\n        onDeleteTourPaper,\n        onConfirmDeleteTourPaper,\n        deleteTourPaperRequestStatus,\n        onDownloadTourPaper,\n        onOpenGalleryTourPaper,\n        getTourPaperThumbnailUrl,\n        deleteTourPaperConfirmationDialog,\n        tourPaperGalleryModal,\n    } = useAttachTourPapers(carrierTourPapersUrlFactory);\n\n    const { originWaypoint, destinationWaypoint } = useTransportOrderPayloadWaypoints(transportOrderDetails?.waypoints);\n\n    const commonPriceDetails = useCommonPriceDetails();\n\n    const carrierAdditionalServicesList = useAdditionalServicesList({\n        additionalServiceItems: transportOrderDetails?.carrierCost?.additionalServices?.items,\n        isAllowCarrierServices: true,\n        isAllowBrokerServices: false,\n    });\n\n    const brokerAdditionalServicesList = useAdditionalServicesList({\n        additionalServiceItems: transportOrderDetails?.carrierCost?.additionalServices?.items,\n        isAllowCarrierServices: false,\n        isAllowBrokerServices: true,\n    });\n\n    const priceDetailList: Array<PriceDetailT | null> = [\n        {\n            iconNode: <EuroSymbolIcon strokeColor={StyleGuideColorsEnum.gray} />,\n            title: t('common:transport-order-details.columns.price'),\n            price: transportOrderDetails?.carrierCost?.totalCost,\n            list: [\n                {\n                    ...commonPriceDetails.lineHaul,\n                    price: transportOrderDetails?.carrierCost?.lineHaul,\n                    list: commonPriceDetails.getLineHaulList({\n                        deadheadLineHaulCost: transportOrderDetails?.carrierCost?.deadhead?.lineHaul,\n                        payloadLineHaulCost: transportOrderDetails?.carrierCost?.payload?.lineHaul,\n                    }),\n                    footerNode:\n                        transportOrderDetails && checkIsBrokerTransportOrderDetails(transportOrderDetails)\n                            ? commonPriceDetails.getAppliedRulesFooterNode(\n                                  ['LINE_HAUL'],\n                                  transportOrderDetails?.carrierCost?.appliedRules,\n                              )\n                            : null,\n                },\n                {\n                    ...commonPriceDetails.getRoadTaxesRow(transportOrderDetails?.carrierCost?.co2),\n                    price: transportOrderDetails?.carrierCost?.toll?.totalCost,\n                    list: commonPriceDetails.getRoadTaxesList(\n                        transportOrderDetails?.carrierCost?.toll?.byRoadType,\n                        transportOrderDetails && checkIsBrokerTransportOrderDetails(transportOrderDetails)\n                            ? transportOrderDetails?.carrierCost?.appliedRules\n                            : null,\n                    ),\n                    footerNode:\n                        transportOrderDetails && checkIsBrokerTransportOrderDetails(transportOrderDetails)\n                            ? commonPriceDetails.getAppliedRulesFooterNode(\n                                  ['ROAD_TAXES'],\n                                  transportOrderDetails?.carrierCost?.appliedRules,\n                              )\n                            : null,\n                },\n                {\n                    ...commonPriceDetails.getFuelCostRow(transportOrderDetails?.carrierCost?.fuel?.fuelType),\n                    price: transportOrderDetails?.carrierCost?.fuel?.totalCost,\n                    list: commonPriceDetails.getFuelCostsByCountryList(\n                        transportOrderDetails?.carrierCost?.fuel?.byCountry,\n                    ),\n                    footerNode:\n                        transportOrderDetails && checkIsBrokerTransportOrderDetails(transportOrderDetails)\n                            ? commonPriceDetails.getAppliedRulesFooterNode(\n                                  ['FUEL'],\n                                  transportOrderDetails?.carrierCost?.appliedRules,\n                              )\n                            : null,\n                },\n                isNumber(transportOrderDetails?.carrierCost?.teamDriveCost)\n                    ? {\n                          ...commonPriceDetails.getTeamDrive({\n                              travelHours: transportOrderDetails?.carrierCost?.teamDriveHours,\n                          }),\n                          price: transportOrderDetails?.carrierCost?.teamDriveCost,\n                      }\n                    : null,\n                checkShouldShowLayover(\n                    transportOrderDetails?.carrierCost?.layover?.totalSeconds,\n                    transportOrderDetails?.carrierCost?.layover?.totalCost,\n                )\n                    ? {\n                          ...commonPriceDetails.getLayoverCostRow(\n                              transportOrderDetails?.carrierCost?.layover?.totalSeconds,\n                              transportOrderDetails?.carrierCost?.layover?.paidHours,\n                          ),\n                          price: transportOrderDetails?.carrierCost?.layover?.totalCost || 0,\n                      }\n                    : null,\n                carrierAdditionalServicesList?.length\n                    ? {\n                          ...commonPriceDetails.getCarrierAdditionalServicesRow(\n                              transportOrderDetails?.carrierCost?.additionalServices?.items,\n                          ),\n                          list: [\n                              {\n                                  list: carrierAdditionalServicesList,\n                              },\n                          ],\n                      }\n                    : null,\n                brokerAdditionalServicesList?.length\n                    ? {\n                          ...commonPriceDetails.getBrokerAdditionalServicesRow(\n                              transportOrderDetails?.carrierCost?.additionalServices?.items,\n                          ),\n                          list: [\n                              {\n                                  list: brokerAdditionalServicesList,\n                              },\n                          ],\n                      }\n                    : null,\n            ],\n        },\n    ].filter(isNonNil);\n\n    const excludedCountries = transportOrderDetails?.prohibitedCountries || [];\n\n    const transportOrderRows: Array<InfoTableRowT | null> = [\n        {\n            icon: (\n                <CaseIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                    fillColor={StyleGuideColorsEnum.light}\n                />\n            ),\n            name: t('common:transport-order-details.columns.transport-order-number'),\n            value: transportOrderDetails?.number,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n            testSelector: 'transport-order',\n            rows: [\n                {\n                    icon: null,\n                    name: t('common:transport-order-details.columns.created-date'),\n                    value: <DateFormatter date={transportOrderDetails?.createdDate} format=\"DD MMM YYYY, HH:mm\" />,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'created-date',\n                },\n                transportOrderDetails?.spotInfo?.id\n                    ? {\n                          icon: null,\n                          name: t('common:transport-order-details.columns.spot-request'),\n                          value: (\n                              <Link\n                                  onClick={() => {\n                                      const spotRequestId = transportOrderDetails?.spotInfo?.id || null;\n                                      if (!spotRequestId) {\n                                          logWarning('Empty spotRequestId');\n                                          return;\n                                      }\n\n                                      goToSpotRequestDetails(spotRequestId);\n                                  }}\n                                  className={cx('link')}\n                                  theme={LinkThemeEnum.boldBrandDark}\n                              >\n                                  {transportOrderDetails?.spotInfo?.number}\n                              </Link>\n                          ),\n                          classNames: { opened: cx('spot-request-row') },\n                          valueMods: {\n                              emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                              isBold: true,\n                          },\n                          testSelector: 'spot-request',\n                      }\n                    : null,\n                {\n                    icon: null,\n                    name: t('common:transport-order-details.columns.provide'),\n                    value: <TransportOrderTypeFormatter transportOrderType={transportOrderDetails?.type} />,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    rightNode: transportOrderDetails?.tourInfo?.teamDrive ? <TeamDrivePill /> : null,\n                    testSelector: 'provide',\n                },\n                {\n                    icon: (\n                        <TrailerIcon\n                            size={DEFAULT_ICON_SIZE}\n                            strokeColor={StyleGuideColorsEnum.gray}\n                            fillColor={StyleGuideColorsEnum.light}\n                        />\n                    ),\n                    name: t('common:transport-order-details.columns.trailer-type'),\n                    value: <AsyncTrailerTypeFormatter trailerDictId={transportOrderDetails?.trailerInfo?.id} />,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'trailer-type',\n                },\n                {\n                    icon: <EmissionIcon strokeColor={StyleGuideColorsEnum.gray} />,\n                    name: t('common:transport-order-details.columns.emission-class'),\n                    value: <EmissionClassFormatter emissionClass={transportOrderDetails?.emissionClass} />,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'emissions-class',\n                },\n            ],\n        },\n    ];\n\n    const totalDistance = Math.round(transportOrderDetails?.carrierCost?.distances?.totalDistance || 0);\n\n    const payloadDistance = Math.round(transportOrderDetails?.carrierCost?.payload?.distances?.totalDistance || 0);\n\n    const summaryDeadheadDistance = totalDistance - payloadDistance;\n\n    const distanceByCountryRows = useDistanceByCountryRows(transportOrderDetails?.carrierCost?.distances?.byCountry);\n\n    const mileageDetailsRows: Array<InfoTableRowT | null> = [\n        {\n            icon: <RouteIcon fillColor={StyleGuideColorsEnum.gray} />,\n            name: t('common:transport-order-details.columns.total-mileage'),\n            value: <UnitTypeCount type={UnitTypeEnum.kilometersAbbreviation} count={convertToKm(totalDistance)} />,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty'), isBold: true },\n            testSelector: 'total-mileage',\n            rows: [\n                payloadDistance\n                    ? {\n                          icon: null,\n                          name: t('common:transport-order-details.columns.payload-mileage'),\n                          value: (\n                              <UnitTypeCount\n                                  type={UnitTypeEnum.kilometersAbbreviation}\n                                  count={convertToKm(payloadDistance)}\n                              />\n                          ),\n                          valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty'), isBold: true },\n                          testSelector: 'payload-mileage',\n                          rows: distanceByCountryRows,\n                      }\n                    : null,\n                summaryDeadheadDistance\n                    ? {\n                          icon: null,\n                          name: t('common:transport-order-details.columns.deadhead-mileage'),\n                          value: (\n                              <UnitTypeCount\n                                  type={UnitTypeEnum.kilometersAbbreviation}\n                                  count={convertToKm(summaryDeadheadDistance)}\n                              />\n                          ),\n                          valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty'), isBold: true },\n                          testSelector: 'deadhead-mileage',\n                      }\n                    : null,\n            ],\n        },\n    ];\n\n    const mainDriver = transportOrderDetails?.drivers?.[0] || null;\n    const teamDrivers = useMemo(() => {\n        const shouldShowTeamDrivers = !!transportOrderDetails?.tourInfo?.teamDrive;\n        if (!shouldShowTeamDrivers) {\n            return [];\n        }\n\n        const drivers = transportOrderDetails?.drivers?.slice(1) || [];\n        return drivers?.length ? drivers : [null];\n    }, [transportOrderDetails]);\n\n    const assignmentDetailsRows: Array<InfoTableRowT | null> = [\n        {\n            icon: (\n                <TruckIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                    fillColor={StyleGuideColorsEnum.light}\n                />\n            ),\n            name: t('common:transport-order-details.columns.truck'),\n            value: transportOrderDetails?.truck ? (\n                <AssetLinkFormatter assetId={transportOrderDetails?.truck?.id} onOpenAssetDetails={goToTruckDetails}>\n                    <AssetLabelFormatter\n                        model={transportOrderDetails?.truck?.dictTruckInfo?.model}\n                        plateNumber={transportOrderDetails?.truck?.plateNumber}\n                    />\n                </AssetLinkFormatter>\n            ) : null,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.truck-not-assigned'), isBold: true },\n        },\n        {\n            icon: (\n                <TrailerIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                    fillColor={StyleGuideColorsEnum.light}\n                />\n            ),\n            name: t('common:transport-order-details.columns.trailer'),\n            value: transportOrderDetails?.trailer ? (\n                <AssetLinkFormatter\n                    assetId={transportOrderDetails?.trailer?.id}\n                    onOpenAssetDetails={goToTrailerDetails}\n                >\n                    <AssetLabelFormatter\n                        model={transportOrderDetails?.trailer?.dictTrailerInfo?.model}\n                        plateNumber={transportOrderDetails?.trailer?.plateNumber}\n                    />\n                </AssetLinkFormatter>\n            ) : null,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.trailer-not-assigned'), isBold: true },\n        },\n        {\n            icon: <DriverIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.gray} />,\n            name: t('common:transport-order-details.columns.driver'),\n            value: mainDriver ? (\n                <DriverLinkFormatter driverId={mainDriver.id} onOpenDriverDetails={goToDriverDetails}>\n                    <SimpleDriverFormatter driver={mainDriver} />\n                </DriverLinkFormatter>\n            ) : null,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.driver-not-assigned'), isBold: true },\n        },\n        ...teamDrivers.map((driver): InfoTableRowT => {\n            return {\n                icon: <TeamDrive2Icon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.gray} />,\n                name: t('common:transport-order-details.columns.team-driver'),\n                value: driver ? (\n                    <DriverLinkFormatter driverId={driver.id} onOpenDriverDetails={goToDriverDetails}>\n                        <SimpleDriverFormatter driver={driver} />\n                    </DriverLinkFormatter>\n                ) : null,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.assets-not-assigned'), isBold: true },\n            };\n        }),\n    ];\n\n    const reeferTemperatureMin = transportOrderDetails?.trailer?.reeferTemperatureMin || null;\n    const reeferTemperatureMax = transportOrderDetails?.trailer?.reeferTemperatureMax || null;\n\n    const requiredTemperatureMin = max(\n        transportOrderDetails?.shipments?.map((shipment) => {\n            return shipment?.lowestTemperature;\n        }),\n    );\n    const requiredTemperatureMax = min(\n        transportOrderDetails?.shipments?.map((shipment) => {\n            return shipment?.highestTemperature;\n        }),\n    );\n\n    const hasTemperatureViolation = checkTemperatureViolation({\n        reeferTemperatureMin,\n        reeferTemperatureMax,\n        requiredTemperatureMin,\n        requiredTemperatureMax,\n    });\n\n    const hasNotShowShipments = useMemo(() => {\n        return transportOrderDetails?.shipments?.some((shipment) => {\n            return shipment?.warning === ShipmentWarningEnum.noShow;\n        });\n    }, [transportOrderDetails]);\n\n    const hasMissedShipments = useMemo(() => {\n        return transportOrderDetails?.shipments?.some((shipment) => {\n            return shipment?.warning === ShipmentWarningEnum.missed;\n        });\n    }, [transportOrderDetails]);\n\n    const isLastNotFinallyShipment = useMemo(() => {\n        return (\n            transportOrderDetails?.shipments?.filter((shipment) => {\n                return !finallyStatusSet.has(shipment.status);\n            })?.length === 1\n        );\n    }, [transportOrderDetails]);\n\n    const handleAttachTourPaper = React.useCallback(\n        (paperType: ApiTourAttachedPaperTypeT) => {\n            const tourId = transportOrderDetails?.tourInfo?.id || null;\n            if (!tourId) {\n                logWarning('failed to attach paper, empty tourId');\n                return;\n            }\n\n            onAttachTourPaper(tourId, paperType);\n        },\n        [transportOrderDetails?.tourInfo?.id, onAttachTourPaper],\n    );\n\n    const tourShipmentActionsByShipmentId = React.useMemo((): Record<ShipmentIdT, ApiTourShipmentEventT[]> => {\n        const resultById: Record<ShipmentIdT, ApiTourShipmentEventT[]> = {};\n\n        transportOrderDetails?.availableSteps?.current?.shipments?.forEach((tourShipmentAction) => {\n            const { shipmentId } = tourShipmentAction;\n\n            if (!resultById[shipmentId]) {\n                resultById[shipmentId] = [];\n            }\n\n            resultById[shipmentId].push(tourShipmentAction);\n        });\n        return resultById;\n    }, [transportOrderDetails]);\n\n    if (!transportOrderDetails) {\n        return null;\n    }\n\n    return (\n        <div className={cx('container')}>\n            <RouteLocationsOverview\n                className={cx('route')}\n                origin={originWaypoint?.address}\n                pickupDockingHoursFrom={originWaypoint?.dateTimeFrom}\n                pickupDockingHoursTo={originWaypoint?.dateTimeTo}\n                destination={destinationWaypoint?.address}\n                dropOffDockingHoursFrom={destinationWaypoint?.dateTimeFrom}\n                dropOffDockingHoursTo={destinationWaypoint?.dateTimeTo}\n            />\n            <ExcludedCountries\n                className={cx('excluded-countries')}\n                titleNode={t('common:entity-details.excluded-countries.title')}\n                countryCodes={excludedCountries}\n                tooltipNode={t('common:entity-details.excluded-countries.tooltip')}\n            />\n            <AlertGroup className={cx('alerts')}>\n                {transportOrderDetails?.tourInfo?.warnings?.runningOutOfTimeToAssignAsset && (\n                    <EntityWarningAlert key=\"runningOutOfTimeToAssignAsset\">\n                        {t('common:transport-order-details.alerts.running-out-of-time-assign-assets')}\n                    </EntityWarningAlert>\n                )}\n                {transportOrderDetails?.tourInfo?.warnings?.runOutOfTimeToAssignAsset && (\n                    <EntityCriticalWarningAlert key=\"runOutOfTimeToAssignAsset\">\n                        {t('common:transport-order-details.alerts.run-out-of-time-assign-assets')}\n                    </EntityCriticalWarningAlert>\n                )}\n                {transportOrderDetails?.tourInfo?.warnings?.runningOutOfTimeToAssignDriver && (\n                    <EntityWarningAlert key=\"runningOutOfTimeToAssignDriver\">\n                        {t('common:transport-order-details.alerts.running-out-of-time-assign-driver')}\n                    </EntityWarningAlert>\n                )}\n                {transportOrderDetails?.tourInfo?.warnings?.runOutOfTimeToAssignDriver && (\n                    <EntityCriticalWarningAlert key=\"runOutOfTimeToAssignDriver\">\n                        {t('common:transport-order-details.alerts.run-out-of-time-assign-driver')}\n                    </EntityCriticalWarningAlert>\n                )}\n                {hasMissedShipments && (\n                    <EntityCriticalWarningAlert key=\"hasMissedShipments\">\n                        {t('common:transport-order-details.alerts.missed-shipments')}\n                    </EntityCriticalWarningAlert>\n                )}\n                {hasNotShowShipments && (\n                    <EntityCriticalWarningAlert key=\"hasNotShowShipments\">\n                        {t('common:transport-order-details.alerts.no-show-shipments')}\n                    </EntityCriticalWarningAlert>\n                )}\n                {transportOrderDetails?.tourInfo?.warnings?.delaying && (\n                    <DelayingWarningAlert key=\"delaying\">\n                        {t('common:transport-order-details.alerts.delaying', {\n                            time: transportOrderDetails?.eta ? formatISOTime(transportOrderDetails?.eta) : '',\n                        })}\n                    </DelayingWarningAlert>\n                )}\n                {hasTemperatureViolation && (\n                    <ViolationTemperatureAlert key=\"hasTemperatureViolation\">\n                        {t('common:transport-order-details.alerts.violation-temperature-mode', {\n                            currentMin: reeferTemperatureMin,\n                            currentMax: reeferTemperatureMax,\n                            requiredMin: requiredTemperatureMin,\n                            requiredMax: requiredTemperatureMax,\n                        })}\n                    </ViolationTemperatureAlert>\n                )}\n                {isNumber(reeferTemperatureMin) && isNumber(reeferTemperatureMax) && (\n                    <CurrentTemperatureAlert key=\"currentTemperature\">\n                        {t('common:transport-order-details.alerts.current-temperature', {\n                            min: reeferTemperatureMin,\n                            max: reeferTemperatureMax,\n                        })}\n                    </CurrentTemperatureAlert>\n                )}\n                {transportOrderDetails?.eta && (\n                    <EntityEtaAlert\n                        tooltipContent={\n                            transportOrderDetails?.truckCoordinatesUpdatedAt\n                                ? t('common:transport-order-details.alerts.sync-time', {\n                                      time: formatISOTimeWithoutTimezone(\n                                          transportOrderDetails?.truckCoordinatesUpdatedAt,\n                                      ),\n                                  })\n                                : null\n                        }\n                    >\n                        {t('common:transport-order-details.alerts.eta', {\n                            time: formatISOTime(transportOrderDetails?.eta),\n                        })}\n                    </EntityEtaAlert>\n                )}\n            </AlertGroup>\n            <InfoTable\n                shouldRenderIcons\n                className={cx('table')}\n                rows={transportOrderRows}\n                testSelector=\"transport-order\"\n            />\n            <InfoTable\n                shouldRenderIcons\n                className={cx('table')}\n                rows={mileageDetailsRows}\n                testSelector=\"transport-order\"\n            />\n            <PriceDetails className={cx('table')} list={priceDetailList} />\n            <InfoTable\n                shouldRenderIcons\n                className={cx('table')}\n                rows={assignmentDetailsRows}\n                testSelector=\"assignment-details\"\n            />\n            <RouteDetailsCard className={cx('route-card')} transportOrderDetails={transportOrderDetails} />\n            {transportOrderDetails?.shipments?.map((shipment, index) => {\n                return (\n                    <ShipmentDetailsCard\n                        key={index}\n                        isReadOnly={isReadOnly}\n                        className={cx('shipment-card')}\n                        isReeferTrailer={!!transportOrderDetails?.trailerInfo?.reefer}\n                        shipmentNumber={index}\n                        shipment={shipment}\n                        pickUpWaypoint={shipment?.pickupPoint || null}\n                        dropOffWaypoint={shipment?.dropOffPoint || null}\n                        keyboardShortcut={String(index + 1)}\n                        shouldConfirmForCancelLastShipment={isLastNotFinallyShipment}\n                        onAttachShipmentPaper={onAttachShipmentPaper}\n                        getShipmentPaperThumbnailUrl={getShipmentPaperThumbnailUrl}\n                        onOpenGalleryShipmentPaper={onOpenGalleryShipmentPaper}\n                        onDownloadShipmentPaper={onDownloadShipmentPaper}\n                        onDeleteShipmentPaper={onDeleteShipmentPaper}\n                        onOpenUserDetails={onOpenUserDetails}\n                        onOpenDriverDetails={onOpenDriverDetails}\n                        readAttachedPapersUnavailableReason={\n                            checkIsCarrierTransportOrderDetails(transportOrderDetails)\n                                ? transportOrderDetails?.readShipmentAttachedPapersUnavailableReason\n                                : null\n                        }\n                        tourShipmentActions={tourShipmentActionsByShipmentId[shipment.id] || null}\n                    />\n                );\n            })}\n            <TourPapersCard\n                className={cx('papers-card')}\n                tourId={transportOrderDetails?.tourInfo?.id || null}\n                attachedPapers={transportOrderDetails?.tourInfo?.attachedPapers || null}\n                title={t('common:transport-order-details.tour-papers')}\n                onOpenUserDetails={onOpenUserDetails}\n                onOpenDriverDetails={onOpenDriverDetails}\n                getTourPaperThumbnailUrl={getTourPaperThumbnailUrl}\n                onOpenGalleryTourPaper={onOpenGalleryTourPaper}\n                onDownloadTourPaper={onDownloadTourPaper}\n                onDeleteTourPaper={isReadOnly ? undefined : onDeleteTourPaper}\n                onAttachTourPaper={isReadOnly ? undefined : handleAttachTourPaper}\n                attachPapersUnavailableReason={\n                    checkIsCarrierTransportOrderDetails(transportOrderDetails)\n                        ? transportOrderDetails?.attachPapersUnavailableReason\n                        : null\n                }\n            />\n            <ImageGalleryModal data={shipmentPaperGalleryModal.data} onClose={shipmentPaperGalleryModal.onClose} />\n            <ImageGalleryModal data={tourPaperGalleryModal.data} onClose={tourPaperGalleryModal.onClose} />\n            <DeletePaperConfirmation\n                requestStatus={deleteShipmentPaperRequestStatus}\n                data={deleteShipmentPaperConfirmationDialog.data}\n                onConfirm={onConfirmDeleteShipmentPaper}\n                onCancel={deleteShipmentPaperConfirmationDialog.onCancel}\n                onClose={deleteShipmentPaperConfirmationDialog.onClose}\n            />\n            <DeletePaperConfirmation\n                requestStatus={deleteTourPaperRequestStatus}\n                data={deleteTourPaperConfirmationDialog.data}\n                onConfirm={onConfirmDeleteTourPaper}\n                onCancel={deleteTourPaperConfirmationDialog.onCancel}\n                onClose={deleteTourPaperConfirmationDialog.onClose}\n            />\n        </div>\n    );\n});\n\nexport default TransportOrderDetails;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    fillColor: StyleGuideColorsEnum;\n};\n\nconst SquareInfoIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, className } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" className={className}>\n            <path\n                fill={fillColor}\n                fillRule=\"evenodd\"\n                d=\"M11 5.007v7a1 1 0 01-2 0v-7a1 1 0 012 0zm0 10a1 1 0 11-2 0 1 1 0 012 0zM18 17a1 1 0 01-1 1H3a1 1 0 01-1-1V3a1 1 0 011-1h14a1 1 0 011 1v14zm0-17H2C.895 0 0 .899 0 2.003v16.004C0 19.112.895 20 2 20h16c1.105 0 2-.892 2-1.997V2.007C20 .902 19 0 18 0z\"\n            />\n        </svg>\n    );\n};\n\nSquareInfoIcon.displayName = 'SquareInfoIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.charcoal,\n};\n\nexport { storyProps };\nexport default SquareInfoIcon;\n","import * as React from 'react';\nimport { TollTypeEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    type: TollTypeEnum | null | undefined;\n};\n\nexport const TOLL_MAP_T: Record<TollTypeEnum, string> = {\n    [TollTypeEnum.general]: 'common:tolls.general',\n    [TollTypeEnum.marketCorrection]: 'common:tolls.market-correction',\n    [TollTypeEnum.intermodal]: 'common:tolls.intermodal',\n    [TollTypeEnum.mountainPass]: 'common:tolls.mountain-pass',\n    [TollTypeEnum.city]: 'common:tolls.city',\n    [TollTypeEnum.bridge]: 'common:tolls.bridge',\n    [TollTypeEnum.tunnel]: 'common:tolls.tunnel',\n    [TollTypeEnum.ferry]: 'common:tolls.ferry',\n    [TollTypeEnum.unspecified]: 'common:tolls.unspecified',\n};\n\nexport const TOLL_TOOLTIP_MAP_T: Partial<Record<TollTypeEnum, string>> = {\n    [TollTypeEnum.general]: 'common:tolls-placeholders.general',\n    [TollTypeEnum.mountainPass]: 'common:tolls-placeholders.mountain-pass',\n    [TollTypeEnum.city]: 'common:tolls-placeholders.city',\n    [TollTypeEnum.bridge]: 'common:tolls-placeholders.bridge',\n    [TollTypeEnum.tunnel]: 'common:tolls-placeholders.tunnel',\n    [TollTypeEnum.ferry]: 'common:tolls-placeholders.ferry',\n};\n\nconst TollLabel: React.FC<PropsT> = React.memo((props) => {\n    const { type } = props;\n    const { t } = useTranslation();\n\n    if (!type) {\n        return null;\n    }\n\n    return <span>{t(TOLL_MAP_T[type as TollTypeEnum])}</span>;\n});\n\nexport default TollLabel;\n","// extracted by mini-css-extract-plugin\nexport default {\"time-interval\":\"PickupPointPicker__time-interval___YRJd7\",\"linked-asset\":\"PickupPointPicker__linked-asset___YIXPu\",\"fadeIn\":\"PickupPointPicker__fadeIn___U3RTX\",\"blinking\":\"PickupPointPicker__blinking___Du51K\"};","import * as React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\n\nconst ExternalRestrictionsPill: React.FC = React.memo(() => {\n    const { t } = useTranslation();\n\n    return (\n        <PillLabel isSymmetrical theme={PillLabelThemeEnum.orange}>\n            {t('partner.details-tab.labels.external-restrictions')}\n        </PillLabel>\n    );\n});\n\nexport default ExternalRestrictionsPill;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './TeamDrivePill.scss';\nimport { useTranslation } from 'react-i18next';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\n\ntype PropsT = {\n    className?: string;\n    isSymmetrical?: boolean;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\nconst TeamDrivePill: React.FC<PropsT> = React.memo((props) => {\n    const { className, isSymmetrical } = props;\n    const { t } = useTranslation();\n\n    return (\n        <PillLabel\n            isNoWrap\n            isSymmetrical={isSymmetrical}\n            theme={PillLabelThemeEnum.charcoal}\n            testSelector=\"team-drive\"\n            className={className}\n        >\n            {t('common:team-drive')}\n        </PillLabel>\n    );\n});\n\nexport default TeamDrivePill;\n","import {\n    FETCH_DISPATCHERS_REQUEST,\n    FETCH_DISPATCHERS_REQUEST_BEGIN,\n    FETCH_DISPATCHERS_REQUEST_ERROR,\n    FETCH_DISPATCHERS_REQUEST_SUCCESS,\n    FetchDispatchersActionT,\n    FetchDispatchersBeginActionT,\n    FetchDispatchersErrorActionT,\n    FetchDispatchersSuccessActionT,\n} from './types';\n\nimport { DispatcherT } from './models';\n\nexport const fetchDispatchers = (): FetchDispatchersActionT => ({\n    type: FETCH_DISPATCHERS_REQUEST,\n});\n\nexport const fetchDispatchersBegin = (): FetchDispatchersBeginActionT => ({\n    type: FETCH_DISPATCHERS_REQUEST_BEGIN,\n});\n\nexport const fetchDispatchersSuccess = (dispatchers: DispatcherT[]): FetchDispatchersSuccessActionT => ({\n    type: FETCH_DISPATCHERS_REQUEST_SUCCESS,\n    dispatchers,\n});\n\nexport const fetchDispatchersError = (error: Error): FetchDispatchersErrorActionT => ({\n    type: FETCH_DISPATCHERS_REQUEST_ERROR,\n    error,\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"time-picker\":\"TimeWindowPicker__time-picker___F4D1i\",\"head\":\"TimeWindowPicker__head___syF9l\",\"label\":\"TimeWindowPicker__label___GrpOO\",\"label__icon\":\"TimeWindowPicker__label__icon___i9Q27\",\"label__label\":\"TimeWindowPicker__label__label___R88fG\",\"tooltip\":\"TimeWindowPicker__tooltip___mvhsy\",\"tooltip__inner\":\"TimeWindowPicker__tooltip__inner___OIUhK\",\"tooltip__icon\":\"TimeWindowPicker__tooltip__icon___nNukQ\",\"fadeIn\":\"TimeWindowPicker__fadeIn___b3u_i\",\"blinking\":\"TimeWindowPicker__blinking___W7q1X\"};","import {\n    FetchTrucksDictActionT,\n    FetchTrucksDictBeginActionT,\n    FetchTrucksDictErrorActionT,\n    FetchTrucksDictSuccessActionT,\n    TRUCKS_DICT_REQUEST,\n    TRUCKS_DICT_REQUEST_BEGIN,\n    TRUCKS_DICT_REQUEST_ERROR,\n    TRUCKS_DICT_REQUEST_SUCCESS,\n} from './types';\n\nimport { ApiTrucksDictT } from 'common/utils/api/models';\n\nexport const fetchTrucksDict = (): FetchTrucksDictActionT => ({\n    type: TRUCKS_DICT_REQUEST,\n});\n\nexport const fetchTrucksDictBegin = (): FetchTrucksDictBeginActionT => ({\n    type: TRUCKS_DICT_REQUEST_BEGIN,\n});\n\nexport const fetchTrucksDictSuccess = (trucksDict: ApiTrucksDictT): FetchTrucksDictSuccessActionT => ({\n    type: TRUCKS_DICT_REQUEST_SUCCESS,\n    trucksDict,\n});\n\nexport const fetchTrucksDictError = (error: Error): FetchTrucksDictErrorActionT => ({\n    type: TRUCKS_DICT_REQUEST_ERROR,\n    error,\n});\n","import React from 'react';\nimport GoogleMapContext from 'common/contexts/google-map-context';\n\nexport const useGoogleMapContext = () => {\n    return React.useContext(GoogleMapContext);\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"widget\":\"PartnerAddressWidget__widget___lGIVV\",\"widget__inner\":\"PartnerAddressWidget__widget__inner___rqtvL\",\"field--country\":\"PartnerAddressWidget__field--country___lnJMM\",\"field--zip\":\"PartnerAddressWidget__field--zip___PU15w\",\"field--city\":\"PartnerAddressWidget__field--city___IXCjt\",\"fadeIn\":\"PartnerAddressWidget__fadeIn___KZslG\",\"blinking\":\"PartnerAddressWidget__blinking___oLQiT\"};","import React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './IconTrigger.scss';\n\nconst cx = classNames.bind(styles);\n\nexport enum IconTriggerThemeEnum {\n    primary = 'primary',\n    secondary = 'secondary',\n    danger = 'danger',\n    transparent = 'transparent',\n}\n\nexport type IconMetaT = {\n    isClickable: boolean;\n    isDisabled: boolean;\n    isToggled: boolean;\n    isFocused: boolean;\n    isPressed: boolean;\n};\n\nexport type PropsT = {\n    className?: string;\n    onClick?: () => void;\n    isDisabled?: boolean;\n    isToggled?: boolean;\n    isFocused?: boolean;\n    isPressed?: boolean;\n    theme?: IconTriggerThemeEnum;\n    children: (meta: IconMetaT) => React.ReactNode;\n};\n\nconst IconTrigger: React.FC<PropsT> = (props) => {\n    const { className, children, onClick, isDisabled, isToggled, isFocused, isPressed, theme } = props;\n\n    const isClickable = !!onClick;\n\n    return (\n        <div\n            className={cs(\n                cx('icon-trigger', {\n                    [`icon-trigger--theme-${theme || IconTriggerThemeEnum.transparent}`]: true,\n                    'icon-trigger--isClickable': isClickable,\n                    'icon-trigger--isDisabled': isDisabled,\n                    'icon-trigger--isToggled': isToggled,\n                    'icon-trigger--isFocused': isFocused,\n                    'icon-trigger--isPressed': isPressed,\n                }),\n                className,\n            )}\n            onClick={onClick}\n            data-test-selector=\"icon-trigger\"\n        >\n            {children({\n                isClickable,\n                isDisabled: !!isDisabled,\n                isToggled: !!isToggled,\n                isFocused: !!isFocused,\n                isPressed: !!isPressed,\n            })}\n        </div>\n    );\n};\n\nexport default IconTrigger;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport FilterPills, { FilterPillsConfigT } from 'common/components/FilterPills/FilterPills';\nimport { FilterPillThemeEnum } from 'common/components/FilterPills/FilterPill/FilterPill';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from '../query-models';\n\ntype PropsT = {\n    isCompact?: boolean;\n    queryFilters: QueryFiltersT;\n    setQueryFilters: (queryFilters: QueryFiltersT) => void;\n};\n\nconst SelectedFilters: React.FC<PropsT> = React.memo((props) => {\n    const { isCompact, queryFilters, setQueryFilters } = props;\n    const { t } = useTranslation();\n\n    const filterPillsConfig = React.useMemo(\n        (): FilterPillsConfigT<QueryFiltersT> => [\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (filters) =>\n                    t('common:drivers-page.filter-labels.name', {\n                        value: filters[QueryFiltersKeysEnum.name],\n                    }),\n                clearKeys: [QueryFiltersKeysEnum.name],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (filters) =>\n                    t('common:drivers-page.filter-labels.search-text', {\n                        value: filters[QueryFiltersKeysEnum.searchText],\n                    }),\n                clearKeys: [QueryFiltersKeysEnum.searchText],\n            },\n        ],\n        [t],\n    );\n\n    return (\n        <FilterPills<QueryFiltersT>\n            isCompact={isCompact}\n            queryFilters={queryFilters}\n            setQueryFilters={setQueryFilters}\n            config={filterPillsConfig}\n        />\n    );\n});\n\nexport default SelectedFilters;\n","import { put, select, takeEvery } from 'redux-saga/effects';\n\nimport { AssignActionT, ASSIGNMENT_REQUEST, RE_ASSIGNMENT_REQUEST, ReAssignActionT } from './types';\nimport { assignBegin, assignError, assignSuccess, reAssignBegin, reAssignError, reAssignSuccess } from './actions';\nimport { selectAssignmentRequestStatus, selectReAssignmentRequestStatus } from './selectors';\nimport { logWarning } from 'common/utils/logger';\nimport carrierTranziitApi from 'carrier/utils/api/carrier-tranziit/api';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAlertTypeEnum, CommonAnyAlert } from 'common/components/toasts/AlertToastsManager/models';\nimport { transportOrdersRefreshChannel } from 'common/store/transport-orders/channels';\nimport { stateMachineRefreshChannel } from 'common/store/state-machine/channels';\nimport { transportOrderRefreshChannel } from 'common/store/transport-order-details/channels';\n\nfunction* assignSaga(action: AssignActionT): WrapGeneratorT<void> {\n    const { driverIds, transportationOrderId } = action;\n\n    const requestStatus: ReturnType<typeof selectAssignmentRequestStatus> = yield select(selectAssignmentRequestStatus);\n    if (requestStatus.loading) {\n        return;\n    }\n\n    yield put(assignBegin());\n\n    const [error]: ReturnApiT<typeof carrierTranziitApi.assignDrivers> = yield carrierTranziitApi.assignDrivers(\n        transportationOrderId,\n        {\n            mainDriverId: driverIds[0],\n            teamDriverId: driverIds[1] || undefined,\n        },\n    );\n\n    if (error) {\n        yield put(assignError(error));\n    } else {\n        yield put(assignSuccess());\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.driverAssigned,\n                    data: {\n                        driversCount: driverIds?.length || 0,\n                    },\n                }),\n            ),\n        );\n    }\n\n    transportOrderRefreshChannel.emit({});\n    transportOrdersRefreshChannel.emit({});\n    stateMachineRefreshChannel.emit({});\n}\n\nfunction* reAssignSaga(action: ReAssignActionT): WrapGeneratorT<void> {\n    const { transportationOrderId, driverIds } = action;\n    if (!transportationOrderId || !driverIds.length) {\n        logWarning('empty tourId or driverId');\n        return;\n    }\n\n    const requestStatus: ReturnType<typeof selectReAssignmentRequestStatus> = yield select(\n        selectReAssignmentRequestStatus,\n    );\n    if (requestStatus.loading) {\n        return;\n    }\n\n    yield put(reAssignBegin());\n\n    const [error]: ReturnApiT<typeof carrierTranziitApi.reAssignDrivers> = yield carrierTranziitApi.reAssignDrivers(\n        transportationOrderId,\n    );\n    if (error) {\n        yield put(reAssignError(error));\n    } else {\n        yield put(reAssignSuccess());\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.driverUnassigned,\n                    data: {\n                        driversCount: driverIds?.length || 0,\n                    },\n                }),\n            ),\n        );\n    }\n\n    transportOrderRefreshChannel.emit({});\n    transportOrdersRefreshChannel.emit({});\n    stateMachineRefreshChannel.emit({});\n}\n\nfunction* dispatchAssigmentSaga(): WrapGeneratorT<void> {\n    yield takeEvery(ASSIGNMENT_REQUEST, assignSaga);\n    yield takeEvery(RE_ASSIGNMENT_REQUEST, reAssignSaga);\n}\n\nexport default dispatchAssigmentSaga;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport SideBarMessage, {\n    SideBarMessageEnum,\n    SideBarMessagePropsT,\n} from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarMessage/SideBarMessage';\nimport SideBarLoader from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLoader/SideBarLoader';\nimport {\n    checkIsTranziitApiRequestError,\n    extractApiRequestErrorTraceId,\n    TranziitApiRequestErrorSubTypeEnum,\n} from 'common/utils/api/tranziit/errors/tranziit-api-errors';\nimport {\n    checkIsApiRequestError,\n    checkIsForbiddenError,\n    checkIsNetworkError,\n    checkIsUnauthorizedError,\n} from 'common/utils/api/errors/api-request-error';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { generateTraceId } from 'common/utils/logger';\nimport { useTranslation } from 'react-i18next';\n\nimport styles from './SideBarRequestStatus.scss';\n\nconst cx = classNames.bind(styles);\n\nconst checkIsNotFoundError = (error: Error | null | undefined): boolean => {\n    if (!checkIsApiRequestError(error)) {\n        return false;\n    }\n    if (error.httpStatusCode === 404) {\n        return true;\n    }\n    if (checkIsTranziitApiRequestError(error)) {\n        return (\n            error.subType === TranziitApiRequestErrorSubTypeEnum.notFoundUser ||\n            error.subType === TranziitApiRequestErrorSubTypeEnum.notFoundCompany\n        );\n    }\n    return false;\n};\n\nexport type PropsT = {\n    requestStatus: RequestStatusT;\n    hasCachedData: boolean;\n    children: React.ReactNode;\n    SkeletonComponent?: React.ComponentType<{}>;\n    onRetry?: () => void;\n};\n\nconst SideBarRequestStatus: React.FC<PropsT> = (props) => {\n    const { requestStatus, hasCachedData, children, SkeletonComponent, onRetry } = props;\n    const { t } = useTranslation();\n\n    if (requestStatus.error) {\n        const { error } = requestStatus;\n        let traceId = extractApiRequestErrorTraceId(error);\n        if (!traceId) {\n            traceId = generateTraceId();\n        }\n\n        let messageProps: SideBarMessagePropsT = {\n            iconType: SideBarMessageEnum.warning,\n            title: t('common:common-errors.something-went-wrong.title'),\n            description: t('common:common-errors.something-went-wrong.description'),\n            traceId,\n        };\n\n        if (checkIsNetworkError(error)) {\n            messageProps = {\n                ...messageProps,\n                title: t('common:common-errors.no-internet.title'),\n                description: t('common:common-errors.no-internet.description'),\n            };\n        } else if (checkIsNotFoundError(error)) {\n            messageProps = {\n                ...messageProps,\n                title: t('common:common-errors.not-found.title'),\n            };\n        } else if (checkIsUnauthorizedError(error)) {\n            messageProps = {\n                ...messageProps,\n                title: t('common:common-errors.not-authorized.title'),\n            };\n        } else if (\n            checkIsTranziitApiRequestError(error) &&\n            (error.subType === TranziitApiRequestErrorSubTypeEnum.accessDeniedToEntity ||\n                error.subType === TranziitApiRequestErrorSubTypeEnum.accessDeniedToApi)\n        ) {\n            messageProps = {\n                ...messageProps,\n                title: t('common:common-errors.access-denied.title'),\n            };\n        } else if (checkIsForbiddenError(error)) {\n            messageProps = {\n                ...messageProps,\n                title: t('common:common-errors.access-denied.title'),\n            };\n        }\n\n        return (\n            <SideBarMessage\n                className={cx('error-container')}\n                {...messageProps}\n                actionsProps={[\n                    onRetry\n                        ? {\n                              children: t('common:common-errors.something-went-wrong.actions.retry'),\n                              onClick: onRetry,\n                          }\n                        : null,\n                ]}\n            />\n        );\n    }\n\n    if (!hasCachedData && !requestStatus.ok) {\n        if (SkeletonComponent) {\n            return <SkeletonComponent />;\n        }\n        return <SideBarLoader />;\n    }\n\n    return <>{children}</>;\n};\n\nexport default SideBarRequestStatus;\n","// extracted by mini-css-extract-plugin\nexport default {\"notification\":\"SaveChangesNotification__notification___t8iNb\",\"notification__icon\":\"SaveChangesNotification__notification__icon___vvADg\",\"notification__label\":\"SaveChangesNotification__notification__label___i_Mwh\",\"circle\":\"SaveChangesNotification__circle___hs0tL\",\"circle__orange\":\"SaveChangesNotification__circle__orange___iMbQL\",\"circle__green\":\"SaveChangesNotification__circle__green___d5PGf\",\"fadeIn\":\"SaveChangesNotification__fadeIn___cSO46\",\"blinking\":\"SaveChangesNotification__blinking___kIQzC\"};","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT, UpdateWayEnum } from './constants';\nimport {\n    checkNotEmpty,\n    checkMinValue,\n    checkMaxValue,\n    checkIsPositiveNumberOrZeroValue,\n} from 'common/utils/form-validators';\n\nconst REQUIRED_FIELDS = [FieldsEnum.updateWay] as const;\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    let errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n    };\n\n    if (values[FieldsEnum.updateWay] === UpdateWayEnum.newRate) {\n        errors = {\n            ...errors,\n            ...checkNotEmpty(t, [FieldsEnum.rate], values),\n            ...checkIsPositiveNumberOrZeroValue(t, [FieldsEnum.rate], values),\n            ...checkMinValue(t, [FieldsEnum.rate], values, 0),\n            ...checkMaxValue(t, [FieldsEnum.rate], values, 10),\n        };\n    }\n\n    if (values[FieldsEnum.updateWay] === UpdateWayEnum.assignContract) {\n        errors = {\n            ...errors,\n            ...checkNotEmpty(t, [FieldsEnum.contractId], values),\n        };\n    }\n\n    return errors;\n};\n\nexport default validate;\n","import { FieldsEnum as DetailsFieldsEnum, FormValuesT as DetailsFormValuesT } from './TruckDetailsForm/constants';\nimport { ApiTruckAddRequestT, ApiTruckUpdateRequestT, CountryCodeT } from 'common/utils/api/models';\nimport { parseSimpleNumber, parseStringFormatter } from 'common/utils/input-parsers';\n\nconst prepareUpdateApiTruck = (detailsFormValues: DetailsFormValuesT): ApiTruckUpdateRequestT | null => {\n    const contractId = detailsFormValues[DetailsFieldsEnum.contract];\n\n    return {\n        cabinColor: parseStringFormatter(detailsFormValues[DetailsFieldsEnum.cabinColor]),\n        contractId: contractId || undefined,\n        ratePerKm: contractId === null ? parseSimpleNumber(detailsFormValues[DetailsFieldsEnum.ratePerKm]) : undefined,\n    };\n};\n\nconst prepareCreateApiTruck = (detailsFormValues: DetailsFormValuesT): ApiTruckAddRequestT | null => {\n    const updateApiTruck = prepareUpdateApiTruck(detailsFormValues);\n\n    return {\n        cabinColor: '', // cabin color not required\n        ...updateApiTruck,\n        dictTruckId: detailsFormValues[DetailsFieldsEnum.truckModel] as string,\n        countryOfRegistration: detailsFormValues[DetailsFieldsEnum.countryCode] as CountryCodeT,\n        vin: parseStringFormatter(detailsFormValues[DetailsFieldsEnum.vin]),\n        plateNumber: parseStringFormatter(detailsFormValues[DetailsFieldsEnum.plateNumber]),\n    };\n};\n\nexport { prepareCreateApiTruck, prepareUpdateApiTruck };\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport NumberIcon from 'common/icons/NumberIcon';\n\ntype PropsT = {\n    className?: string;\n    routePointIndex: number;\n    isNewRoutePoint?: boolean;\n    isDriveThroughRoutePointPicker?: boolean;\n    isDropAndHookRoutePointPicker?: boolean;\n    isPickUpDeliveryRoutePointPicker?: boolean;\n    hasValue?: boolean;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    isDisabled?: boolean;\n};\n\nconst WaypointNumberIcon: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        routePointIndex,\n        isNewRoutePoint,\n        isDriveThroughRoutePointPicker,\n        isDropAndHookRoutePointPicker,\n        isPickUpDeliveryRoutePointPicker,\n        hasValue,\n        hasError,\n        hasWarning,\n        isDisabled,\n    } = props;\n\n    let fillColor = StyleGuideColorsEnum.light;\n\n    if (isDriveThroughRoutePointPicker && hasValue) {\n        fillColor = StyleGuideColorsEnum.gray;\n    }\n\n    if (isDropAndHookRoutePointPicker && hasValue) {\n        fillColor = StyleGuideColorsEnum.charcoal;\n    }\n\n    if (isPickUpDeliveryRoutePointPicker && hasValue) {\n        fillColor = StyleGuideColorsEnum.charcoal;\n    }\n\n    if (isNewRoutePoint && hasValue) {\n        fillColor = StyleGuideColorsEnum.blazeOrange;\n    }\n\n    if (hasError && hasValue) {\n        fillColor = StyleGuideColorsEnum.tomatoRed;\n    }\n\n    if (hasWarning && hasValue) {\n        fillColor = StyleGuideColorsEnum.orange;\n    }\n\n    if (isDisabled) {\n        fillColor = StyleGuideColorsEnum.slate;\n    }\n\n    return <NumberIcon className={className} number={routePointIndex + 1} fillColor={fillColor} />;\n});\n\nexport default WaypointNumberIcon;\n","import { useMemo, useState } from 'react';\n\nexport type UseTabsResultT<T extends string> = {\n    activeTabType: T;\n    setActiveTabType: (tabType: T) => void;\n};\n\nexport const useTabs = <T extends string>(initialActiveTabType: T): UseTabsResultT<T> => {\n    const [activeTabType, setActiveTabType] = useState<T>(initialActiveTabType);\n\n    return useMemo(() => {\n        return {\n            activeTabType,\n            setActiveTabType,\n        };\n    }, [activeTabType, setActiveTabType]);\n};\n","import * as React from 'react';\nimport { FieldsEnum, FormValuesT, RoutePointFieldsEnum } from '../constants';\nimport { ReserveT } from 'common/store/order-creation/models';\nimport { useTranslation } from 'react-i18next';\nimport FormikConnectContextField from 'common/components/forms/FormikConnectContextField/FormikConnectContextField';\nimport GeoSuggest from 'common/components/GeoSuggest/GeoSuggest';\nimport classNames from 'classnames/bind';\nimport styles from './DriveThroughRoutePointPicker.scss';\nimport DeleteWaypointTrigger from 'common/layouts/NewOrderPage/ShipmentDetailsForm/DeleteWaypointTrigger/DeleteWaypointTrigger';\nimport WaypointNumberIcon from 'common/layouts/NewOrderPage/ShipmentDetailsForm/WaypointNumberIcon/WaypointNumberIcon';\nimport { SyncShipmentDetailsFormMapStateContext } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/contexts/sync-map-state';\nimport { OnChangeRoutePointReserveT } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/models';\nimport { getFieldFormValue } from 'common/utils/form-values';\nimport { useFormikContext } from 'formik';\n\ntype PropsT = {\n    className?: string;\n    routePointIndex: number;\n    reserve: ReserveT | null;\n    onRemove: (index: number) => void;\n    isAllowRemove: boolean;\n    onManualSelectLocation: (location: LocationT | null, routePointIndex: number) => void;\n    onChangeRoutePointReserve: OnChangeRoutePointReserveT;\n    onResetRoutePointLocation: () => void;\n    isDisabledPreviewReserve?: boolean;\n    isShowSuggestLoading?: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nconst DriveThroughRoutePointPicker: React.FC<PropsT> = React.memo((props) => {\n    const {\n        routePointIndex,\n        reserve,\n        onRemove,\n        isShowSuggestLoading,\n        isAllowRemove,\n        onManualSelectLocation,\n        onResetRoutePointLocation,\n        onChangeRoutePointReserve,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const formik = useFormikContext<FormValuesT>();\n\n    const syncShipmentDetailsFormMapStateContext = React.useContext(SyncShipmentDetailsFormMapStateContext);\n\n    const locationFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.location}` as const;\n    const fakeIdFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.fakeId}` as const;\n\n    const fakeId = getFieldFormValue(formik.values, fakeIdFieldName);\n\n    const hasViolation = reserve?.points?.[routePointIndex]?.violated;\n\n    return (\n        <>\n            <FormikConnectContextField<FormValuesT, typeof locationFieldName>\n                name={locationFieldName}\n                label={t('common:new-order-form.fields.drive-through-point.label')}\n                warning={hasViolation ? t('common:new-order-form.warnings.check-route-points') : null}\n            >\n                {(props, extendsProps) => (\n                    <div className={cx('wrap')} data-fake-id={fakeId}>\n                        <GeoSuggest\n                            className={cx('geo-suggest')}\n                            hasTriangle\n                            name={extendsProps.name}\n                            value={extendsProps.value}\n                            placeholder={t('common:new-order-form.fields.drive-through-point.placeholder')}\n                            renderLeftIcon={({ hasValue, hasError, hasWarning, isDisabled }) => (\n                                <WaypointNumberIcon\n                                    routePointIndex={routePointIndex}\n                                    hasValue={hasValue}\n                                    hasError={hasError}\n                                    hasWarning={hasWarning}\n                                    isDisabled={isDisabled}\n                                    isDriveThroughRoutePointPicker\n                                />\n                            )}\n                            onChange={(value) => {\n                                props.onChange(value);\n\n                                onManualSelectLocation(value, routePointIndex);\n\n                                onChangeRoutePointReserve(fakeId, {\n                                    [RoutePointFieldsEnum.location]: value,\n                                });\n\n                                if (value === null) {\n                                    onResetRoutePointLocation();\n                                }\n                            }}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            onFocus={() => {\n                                props.onFocus();\n\n                                if (syncShipmentDetailsFormMapStateContext?.setEditingRoutePointIndex) {\n                                    syncShipmentDetailsFormMapStateContext.setEditingRoutePointIndex(routePointIndex);\n                                }\n                            }}\n                            onBlur={() => {\n                                props.onBlur();\n\n                                if (syncShipmentDetailsFormMapStateContext?.setEditingRoutePointIndex) {\n                                    syncShipmentDetailsFormMapStateContext.setEditingRoutePointIndex(null);\n                                }\n                            }}\n                            isLoading={isShowSuggestLoading}\n                            testSelector={extendsProps.name}\n                            showClearControl={!!extendsProps.value}\n                            isRedTriangle={\n                                syncShipmentDetailsFormMapStateContext?.editingRoutePointIndex === routePointIndex &&\n                                syncShipmentDetailsFormMapStateContext?.hasEditingRoutePointError\n                            }\n                            triangleClassName={cx('triangle', {\n                                'triangle--has-remove-control': isAllowRemove,\n                            })}\n                        />\n                        {isAllowRemove && (\n                            <DeleteWaypointTrigger\n                                onClick={() => {\n                                    onRemove(routePointIndex);\n                                }}\n                            />\n                        )}\n                    </div>\n                )}\n            </FormikConnectContextField>\n        </>\n    );\n});\n\nexport default DriveThroughRoutePointPicker;\n","// extracted by mini-css-extract-plugin\nexport default {\"plate-number\":\"PlateNumberCell__plate-number___VPGm4\",\"fadeIn\":\"PlateNumberCell__fadeIn___SgqpH\",\"blinking\":\"PlateNumberCell__blinking___pCm0r\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"TableMessage__wrap___P3xyR\",\"container\":\"TableMessage__container___b8UBa\",\"icon\":\"TableMessage__icon___mJ7_g\",\"title\":\"TableMessage__title___pwzuN\",\"description\":\"TableMessage__description___huFPh\",\"action\":\"TableMessage__action___WJf9C\",\"button\":\"TableMessage__button___L2aPb\",\"fadeIn\":\"TableMessage__fadeIn___TGF17\",\"blinking\":\"TableMessage__blinking___uhFH1\"};","import * as React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\n\ntype PropsT = {\n    className?: string;\n};\n\nconst UserMainPill: React.FC<PropsT> = React.memo((props) => {\n    const { t } = useTranslation();\n\n    return (\n        <PillLabel className={props.className} theme={PillLabelThemeEnum.orange} isSymmetrical>\n            {t('common:team-members.main')}\n        </PillLabel>\n    );\n});\n\nexport default UserMainPill;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './InlineLoader.scss';\n\ntype PropsT = {\n    lineHeight?: number;\n};\n\nconst cx = classNames.bind(styles);\n\nconst RATIO = 4;\n\nconst InlineLoader: React.FC<PropsT> = React.memo((props) => {\n    const { lineHeight = 20 } = props;\n\n    const verticalPadding = lineHeight / 4;\n    const size = lineHeight - verticalPadding;\n    return (\n        <div\n            className={cx('inner')}\n            style={{\n                width: `${size * RATIO}px`,\n                height: `${lineHeight}px`,\n                padding: `${verticalPadding}px 0`,\n            }}\n        >\n            <div className={cx('inline-loader')} />\n        </div>\n    );\n});\n\nexport default InlineLoader;\n","import isNil from 'lodash/isNil';\nimport isString from 'lodash/isString';\nimport moment from 'moment';\nimport { ApiLocationT } from './api/models';\nimport { clearDateTimezone } from 'common/utils/time';\n\nexport const DATE_INTERVAL_SPECIAL_SYMBOLS = {\n    FUTURE: '∞',\n};\n\nconst dateIntervalSpecialSymbolsSet = new Set<string>(Object.values(DATE_INTERVAL_SPECIAL_SYMBOLS));\n\nexport const formatDateInterval = (\n    from: string | null | undefined,\n    to: string | null | undefined,\n    format = 'YYYY-MM-DD HH:mm',\n): string => {\n    return [from, to]\n        .filter(Boolean)\n        .map((time) => {\n            if (time && dateIntervalSpecialSymbolsSet.has(time)) {\n                return time;\n            }\n\n            return moment(clearDateTimezone(time)).format(format);\n        })\n        .join(' - ');\n};\n\nexport const formatLocation = (location: ApiLocationT | null | undefined, separator = ' '): string => {\n    if (!location) {\n        return '';\n    }\n\n    return [location.street1, location.street2, location.zipCode, location.city, location.country]\n        .filter(Boolean)\n        .join(separator);\n};\n\nexport const formatThousandNumber = (value: number | null | undefined): string => {\n    if (isNil(value)) {\n        return '';\n    }\n    return value.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1 ');\n};\n\nexport const formatTemperature = (value: number | string | null | undefined): string => {\n    if (isNil(value)) {\n        return '';\n    }\n\n    if (isString(value)) {\n        return value;\n    }\n\n    let sign = '';\n    if (value > 0) {\n        sign = '+';\n    }\n    if (value < 0) {\n        sign = '-';\n    }\n\n    return `${sign}${Math.abs(value)}`;\n};\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ImageGalleryModal.scss';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport Modal from 'common/components/Modal/Modal';\nimport ImageLoader from '../../ImageLoader/ImageLoader';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\n\nconst cx = classNames.bind(styles);\n\nexport type ImageGalleryModalDataT = {\n    src: string | null;\n    alt: string | null;\n};\n\ntype PropsT = {\n    data: ImageGalleryModalDataT | null;\n    onClose: () => void;\n};\n\nconst ImageGalleryModal: React.FC<PropsT> = React.memo((props) => {\n    const { data, onClose } = props;\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <div className={cx('inner')}>\n                    <ImageLoader className={cx('image')} alt={data.alt} src={data.src} />\n                    <div className={cx('action')}>\n                        <TransparentTrigger\n                            onClick={onClose}\n                            leftIcon={<CloseIcon />}\n                            reflectionTheme={ReflectionThemeEnum.light}\n                        />\n                    </div>\n                </div>\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default ImageGalleryModal;\n","import React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './FieldNotes.scss';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    className?: string;\n    error?: React.ReactNode;\n    warning?: React.ReactNode;\n    success?: React.ReactNode;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    hasSuccess?: boolean;\n};\n\nconst FieldNotes: React.FC<PropsT> = React.memo((props) => {\n    const { className, error, warning, success, hasError, hasWarning, hasSuccess } = props;\n\n    const noteNodes: Array<React.ReactNode> = [];\n\n    if (hasError) {\n        noteNodes.push(\n            <div key=\"error\" className={cs(cx('note', 'note--error'), className)} data-error-message={error}>\n                {error}\n            </div>,\n        );\n    }\n\n    if (hasWarning) {\n        noteNodes.push(\n            <div key=\"warning\" className={cs(cx('note', 'note--warning'), className)}>\n                {warning}\n            </div>,\n        );\n    }\n\n    if (hasSuccess) {\n        noteNodes.push(\n            <div key=\"success\" className={cs(cx('note', 'note--success'), className)}>\n                {success}\n            </div>,\n        );\n    }\n\n    const emptyNoteNode = <div key=\"empty\" className={cs(cx('note'), className)} />;\n\n    return <>{noteNodes.length ? noteNodes : emptyNoteNode}</>;\n});\n\nexport default FieldNotes;\n","// extracted by mini-css-extract-plugin\nexport default {\"table__header\":\"InvoicesTable__table__header___FZyii\",\"table__header--number\":\"InvoicesTable__table__header--number___rqwsp\",\"table__header--actions\":\"InvoicesTable__table__header--actions___T735b\",\"table__column\":\"InvoicesTable__table__column___bdqpZ\",\"table__column--number\":\"InvoicesTable__table__column--number____XAXb\",\"table__column--customer\":\"InvoicesTable__table__column--customer___wtU5E\",\"table__column--actions\":\"InvoicesTable__table__column--actions___ub5ge\",\"fadeIn\":\"InvoicesTable__fadeIn___IALlD\",\"blinking\":\"InvoicesTable__blinking___ia6eP\"};","import { ViewEventChannel } from 'common/utils/view-event-channel';\nimport { ApiSubjectTypeT } from 'common/utils/api/models';\n\nexport const subjectLogsChannel = new ViewEventChannel<{\n    subjectType: ApiSubjectTypeT;\n    subjectId: SubjectIdT;\n}>();\n","import * as React from 'react';\nimport { ApiDeprecatedEmissionClassT, ApiEmissionClassT, EmissionClassEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    isCompact?: boolean;\n    emissionClass: ApiEmissionClassT | null | undefined;\n};\n\nexport const EMISSION_CLASS_MAP: Record<ApiEmissionClassT, string> = {\n    [EmissionClassEnum.euro5]: 'V',\n    [EmissionClassEnum.euro6]: 'VI',\n};\n\nexport const EMISSION_CLASS_I18N_MAP: Record<ApiEmissionClassT, string> = {\n    [EmissionClassEnum.euro5]: 'common:emission-classes.EURO_V',\n    [EmissionClassEnum.euro6]: 'common:emission-classes.EURO_VI',\n};\n\nexport const DEPRECATED_EMISSION_CLASS_I18N_MAP: Record<ApiDeprecatedEmissionClassT, string> = {\n    EURO_5: 'common:emission-classes.EURO_V',\n    EURO_6: 'common:emission-classes.EURO_VI',\n};\n\nconst EmissionClassLabel: React.FC<PropsT> = React.memo((props) => {\n    const { emissionClass, isCompact } = props;\n\n    const { t } = useTranslation();\n\n    if (!emissionClass) {\n        return null;\n    }\n\n    if (isCompact) {\n        return <span>{EMISSION_CLASS_MAP[emissionClass]}</span>;\n    }\n\n    return <span>{t(EMISSION_CLASS_I18N_MAP[emissionClass])}</span>;\n});\n\nexport default EmissionClassLabel;\n","import * as React from 'react';\nimport { useCallback, useMemo } from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport isEmpty from 'lodash/isEmpty';\n\nimport styles from './InfoTable.scss';\nimport ExpandIcon from 'common/icons/ExpandIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { isNonNil } from 'common/utils';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport TransparentTriggerWithTooltip from 'design-system/components/ExpandTrigger/TransparentTriggerWithTooltip';\nimport { useTranslation } from 'react-i18next';\n\nconst NEST_OFFSET_PX = 30;\n\nexport type ValueModsT = {\n    isBold?: boolean;\n    withoutPadding?: boolean;\n    emptyPlaceholder?: React.ReactNode;\n};\n\nexport type NameModsT = {\n    isBold?: boolean;\n};\n\nexport type RightNodeModsT = {\n    isBold?: boolean;\n    withoutPadding?: boolean;\n};\n\nexport type InfoTableRowT = {\n    icon: React.ReactNode;\n    name: React.ReactNode;\n    nameMods?: NameModsT;\n    value?: React.ReactNode;\n    valueMods?: ValueModsT;\n    testSelector?: string;\n    hasBottomBorder?: boolean;\n    classNames?: { opened?: string; closed?: string };\n    rightNode?: React.ReactNode;\n    rightNodeMods?: RightNodeModsT;\n    isShowValueLoader?: boolean;\n    isInitOpenRows?: boolean;\n    rows?: Array<InfoTableRowT | null>;\n};\n\nexport type InfoTableRowPropsT = {\n    row: InfoTableRowT;\n    className?: string;\n    shouldRenderIcons?: boolean;\n    nestIndex: number;\n    shouldRenderIcon: boolean;\n    defaultValueMods?: ValueModsT;\n};\n\nconst InfoTableRow: React.FC<InfoTableRowPropsT> = React.memo((props) => {\n    const { row, shouldRenderIcon, className, nestIndex, defaultValueMods } = props;\n    const effectiveValueMods = row.valueMods ?? defaultValueMods;\n\n    const filteredSubRows = useMemo(() => {\n        return row?.rows?.filter(isNonNil) || [];\n    }, [row?.rows]);\n\n    const isCollapsable = filteredSubRows.length > 0;\n\n    const [isOpen, setOpen] = React.useState<boolean>(!!row?.isInitOpenRows);\n\n    const toggle = useCallback(() => {\n        setOpen((isOpen) => !isOpen);\n    }, [setOpen]);\n\n    const isEmptyValue = isEmpty(row.value) && isEmpty(row.rightNode);\n    const emptyPlaceholder = effectiveValueMods?.emptyPlaceholder;\n\n    const rowFullTestSelector = `table_${row.testSelector}_row`;\n\n    const isFullNameWidth = !emptyPlaceholder && !row.value;\n\n    const { t } = useTranslation();\n\n    const nestOffset = `${NEST_OFFSET_PX * nestIndex}px`;\n    const rowStyle = {\n        '--info-table-row-nest-offset': nestOffset,\n        paddingLeft: nestOffset,\n    } as React.CSSProperties;\n\n    return (\n        <>\n            <div\n                className={cs(\n                    cx('grid__row', {\n                        'grid__row--hasBottomBorder': row.hasBottomBorder,\n                        'grid__row--hasEmptyIcon': shouldRenderIcon && !row.icon,\n                    }),\n                    className,\n                    isOpen ? row.classNames?.opened : row.classNames?.closed,\n                )}\n                style={rowStyle}\n            >\n                {shouldRenderIcon && (\n                    <div\n                        className={cx('grid__cell', 'grid__cell--isIcon')}\n                        data-test-selector={`${rowFullTestSelector}_icon`}\n                    >\n                        {row.icon}\n                    </div>\n                )}\n                <div\n                    className={cx('grid__cell', 'grid__cell--isName', {\n                        'grid__cell--isBold': row.nameMods?.isBold,\n                        'grid__cell--isFixedName': !isFullNameWidth,\n                    })}\n                    data-test-selector={`${rowFullTestSelector}_name`}\n                >\n                    {row.name}\n                </div>\n                {(emptyPlaceholder || row.value || row.isShowValueLoader) && (\n                    <div\n                        className={cx('grid__cell', 'grid__cell--isValue', {\n                            'grid__cell--isEmpty': isEmptyValue,\n                            'grid__cell--isBold': effectiveValueMods?.isBold,\n                            'grid__cell--withoutPaddings': effectiveValueMods?.withoutPadding,\n                        })}\n                        data-test-selector={`${rowFullTestSelector}_value`}\n                    >\n                        {row.isShowValueLoader ? (\n                            <ControlLoaderIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.brandAccent} />\n                        ) : (\n                            <>{isEmptyValue ? emptyPlaceholder : row.value}</>\n                        )}\n                    </div>\n                )}\n                {row.rightNode &&\n                    (row.rightNodeMods?.withoutPadding ? (\n                        <>{row.rightNode}</>\n                    ) : (\n                        <div\n                            className={cx('grid__cell', 'grid__cell--isRightNode', {\n                                'grid__cell--isFlexContainer': true,\n                                'grid__cell--isEmpty': isEmptyValue,\n                                'grid__cell--isBold': row.rightNodeMods?.isBold,\n                            })}\n                            data-test-selector={`${rowFullTestSelector}_right-node`}\n                        >\n                            <>{row.rightNode}</>\n                        </div>\n                    ))}\n                {isCollapsable && (\n                    <div\n                        className={cx('grid__cell', 'grid__cell--isTrigger')}\n                        data-test-selector={`table_trigger-${row.testSelector}`}\n                    >\n                        <TransparentTriggerWithTooltip\n                            transparentTriggerProps={{\n                                spaces: 'xs',\n                                leftIcon: <ExpandIcon fillColor={StyleGuideColorsEnum.brandAccent} isInvert={isOpen} />,\n                            }}\n                            tooltipContent={t(isOpen ? 'common:tooltips.collapse' : 'common:tooltips.expand')}\n                            onClick={toggle}\n                        />\n                    </div>\n                )}\n            </div>\n            {isOpen && isCollapsable && (\n                <InfoTableRows rows={filteredSubRows} nestIndex={nestIndex + 1} defaultValueMods={defaultValueMods} />\n            )}\n        </>\n    );\n});\n\nexport type InfoTableRowsPropsT = {\n    shouldRenderIcons?: boolean;\n    rows: Array<InfoTableRowT | null>;\n    nestIndex: number;\n    defaultValueMods?: ValueModsT;\n};\n\nconst InfoTableRows: React.FC<InfoTableRowsPropsT> = React.memo((props) => {\n    const { shouldRenderIcons, nestIndex, rows, defaultValueMods } = props;\n\n    const filteredRows = useMemo(() => {\n        return rows.filter(isNonNil);\n    }, [rows]);\n\n    const shouldRenderIcon = useMemo(() => {\n        return shouldRenderIcons || filteredRows.some((row) => !!row.icon);\n    }, [filteredRows, shouldRenderIcons]);\n\n    if (isEmpty(filteredRows)) {\n        return null;\n    }\n\n    return (\n        <>\n            {filteredRows.map((row, rowIndex) => {\n                return (\n                    <InfoTableRow\n                        key={rowIndex}\n                        row={row}\n                        nestIndex={nestIndex}\n                        shouldRenderIcon={shouldRenderIcon}\n                        defaultValueMods={defaultValueMods}\n                    />\n                );\n            })}\n        </>\n    );\n});\n\nexport type PropsT = {\n    shouldRenderIcons?: boolean;\n    rows: Array<InfoTableRowT | null>;\n    className?: string;\n    testSelector?: string;\n    defaultValueMods?: ValueModsT;\n};\n\nconst cx = classNames.bind(styles);\n\nconst InfoTable: React.FC<PropsT> = React.memo((props) => {\n    const { rows, shouldRenderIcons, className, testSelector, defaultValueMods } = props;\n\n    const tableFullTestSelector = `${testSelector}_info-table`;\n\n    const filteredRows = useMemo(() => {\n        return rows.filter(isNonNil);\n    }, [rows]);\n\n    if (isEmpty(filteredRows)) {\n        return null;\n    }\n\n    return (\n        <div className={cs(cx('grid'), className)} data-test-selector={tableFullTestSelector}>\n            <InfoTableRows\n                shouldRenderIcons={shouldRenderIcons}\n                rows={filteredRows}\n                nestIndex={0}\n                defaultValueMods={defaultValueMods}\n            />\n        </div>\n    );\n});\n\nexport default InfoTable;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { SystemSettingsChangesT } from 'broker-admin/store/price-settings/system-settings/models';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\n\nconst prepareApiSystemSettings = (formValues: FormValuesT): SystemSettingsChangesT => {\n    const firstRadiusOfAssignmentFilter = parseSimpleNumber(formValues[FieldsEnum.firstRadiusOfAssignmentFilter]);\n    const secondRadiusOfAssignmentFilter = parseSimpleNumber(formValues[FieldsEnum.secondRadiusOfAssignmentFilter]);\n    const thirdRadiusOfAssignmentFilter = parseSimpleNumber(formValues[FieldsEnum.thirdRadiusOfAssignmentFilter]);\n    const timeToHookTrailer = parseSimpleNumber(formValues[FieldsEnum.timeToHookTrailer]);\n    const timeToDropTrailer = parseSimpleNumber(formValues[FieldsEnum.timeToDropTrailer]);\n    const timeToPickupTruck = parseSimpleNumber(formValues[FieldsEnum.timeToPickupTruck]);\n    const timeToDropTruck = parseSimpleNumber(formValues[FieldsEnum.timeToDropTruck]);\n    const geoMatrixCoefficient = parseSimpleNumber(formValues[FieldsEnum.geoMatrixCoefficient]);\n    const averageTruckSpeed = parseSimpleNumber(formValues[FieldsEnum.averageTruckSpeed]);\n\n    return {\n        FIRST_RADIUS_OF_ASSIGNMENT_FILTER: firstRadiusOfAssignmentFilter?.toString(),\n        SECOND_RADIUS_OF_ASSIGNMENT_FILTER: secondRadiusOfAssignmentFilter?.toString(),\n        THIRD_RADIUS_OF_ASSIGNMENT_FILTER: thirdRadiusOfAssignmentFilter?.toString(),\n        TIME_TO_HOOK_TRAILER: timeToHookTrailer?.toString(),\n        TIME_TO_DROP_TRAILER: timeToDropTrailer?.toString(),\n        TIME_TO_PICKUP_TRUCK: timeToPickupTruck?.toString(),\n        TIME_TO_DROP_TRUCK: timeToDropTruck?.toString(),\n        GEO_MATRIX_COEFFICIENT: geoMatrixCoefficient?.toString(),\n        AVERAGE_TRUCK_SPEED: averageTruckSpeed?.toString(),\n    };\n};\n\nexport default prepareApiSystemSettings;\n","import { ApiTimeZoneT } from 'common/utils/api/models';\nimport { ApiBrokerTeamCompanyT, ApiBrokerTeamUserT } from 'broker-admin/utils/api/broker-tranziit/models';\n\nexport enum FieldsEnum {\n    name = 'name',\n    timeZone = 'timeZone',\n    users = 'users',\n    partners = 'partners',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.name]: string;\n    [FieldsEnum.timeZone]: ApiTimeZoneT | null;\n    [FieldsEnum.users]: Array<ApiBrokerTeamUserT>;\n    [FieldsEnum.partners]: Array<ApiBrokerTeamCompanyT>;\n};\n\nexport enum TeamComponentTabEnum {\n    users = 'users',\n    partners = 'partners',\n}\n","import { CompanyTransportOrdersStateT } from './types';\nimport { SharableStateT } from '../models';\nimport { initialCompanyTransportOrdersState } from './reducer';\n\nconst selectCompanyState = (state: SharableStateT, companyId: CompanyIdT | null): CompanyTransportOrdersStateT => {\n    if (!companyId) {\n        return initialCompanyTransportOrdersState;\n    }\n\n    return state.transportOrders[companyId] || initialCompanyTransportOrdersState;\n};\n\nexport const selectTransportOrdersPages = (companyId: CompanyIdT | null) => {\n    return (state: SharableStateT): CompanyTransportOrdersStateT['pages'] => {\n        return selectCompanyState(state, companyId).pages;\n    };\n};\n\nexport const selectTransportOrdersQuery = (companyId: CompanyIdT | null) => {\n    return (state: SharableStateT): CompanyTransportOrdersStateT['query'] => selectCompanyState(state, companyId).query;\n};\n\nexport const selectTransportOrdersTotal = (companyId: CompanyIdT | null) => {\n    return (state: SharableStateT): CompanyTransportOrdersStateT['total'] => selectCompanyState(state, companyId).total;\n};\n\nexport const selectTransportOrdersByIds = (companyId: CompanyIdT | null) => {\n    return (state: SharableStateT): CompanyTransportOrdersStateT['byId'] => selectCompanyState(state, companyId).byId;\n};\n","import * as React from 'react';\n\ntype PropsT = {\n    className?: string;\n};\n\nconst BigTrashIcon: React.FC<PropsT> = (props) => {\n    return (\n        <svg\n            xmlns=\"http://www.w3.org/2000/svg\"\n            xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n            width={200}\n            height={130}\n            viewBox=\"0 0 200 130\"\n            {...props}\n        >\n            <defs>\n                <path id=\"prefix__a\" d=\"M37 32c20.435 0 37-2.686 37-6S57.435 0 37 0 0 22.686 0 26s16.565 6 37 6z\" />\n            </defs>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M0 0h200v130H0z\" />\n                <path\n                    fill=\"#D32406\"\n                    d=\"M103 27a7 7 0 110 14h64a7 7 0 110 14h22a7 7 0 110 14h-19a7 7 0 100 14h6a7 7 0 110 14h-52a7.056 7.056 0 01-1.5-.161A7.056 7.056 0 01121 97H40a7 7 0 110-14H7a7 7 0 110-14h34a7 7 0 100-14H22a7 7 0 110-14h34a7 7 0 110-14h47zm90 56a7 7 0 110 14 7 7 0 010-14z\"\n                    opacity={0.1}\n                />\n                <path\n                    stroke=\"#D32406\"\n                    strokeLinecap=\"round\"\n                    strokeLinejoin=\"round\"\n                    strokeWidth={2.5}\n                    d=\"M36 108.5h21.454m-34.326 0H30m136.128 0H169m-30 0h22.428\"\n                />\n                <ellipse\n                    cx={98}\n                    cy={121}\n                    fill=\"#D32406\"\n                    fillOpacity={0.3}\n                    stroke=\"#D32406\"\n                    strokeLinecap=\"round\"\n                    strokeWidth={2.5}\n                    rx={37}\n                    ry={7}\n                />\n                <path\n                    fill=\"#FFF\"\n                    stroke=\"#D32406\"\n                    strokeLinecap=\"round\"\n                    strokeWidth={2.5}\n                    d=\"M61 84.215V44c0-1.657 1.35-3 3.017-3h69.019c1.085 0 1.964.895 1.964 2v73c0 2.21-8 8-37 8s-37-5.79-37-8V97m0-4v-5\"\n                />\n                <g stroke=\"#D32406\" strokeLinecap=\"round\" strokeWidth={2.5} transform=\"translate(61 36)\">\n                    <ellipse cx={37} cy={6} fill=\"#FFF\" rx={37} ry={6} />\n                    <ellipse cx={37} cy={6} fill=\"#D32406\" fillOpacity={0.3} rx={37} ry={6} />\n                </g>\n                <g transform=\"translate(61 13)\">\n                    <mask id=\"prefix__b\" fill=\"#fff\">\n                        <use xlinkHref=\"#prefix__a\" />\n                    </mask>\n                    <g mask=\"url(#prefix__b)\">\n                        <path\n                            fill=\"#FFF\"\n                            stroke=\"#D32406\"\n                            strokeLinecap=\"round\"\n                            strokeWidth={2.5}\n                            d=\"M47.943 16.191l5.43 39.632.489 3.976a2.33 2.33 0 01-2.021 2.602l-34.014 4.176a2.33 2.33 0 01-2.591-2.036L9.969 21.648a1.166 1.166 0 011.01-1.301l.013-.002 2.822-.316m2.282-.256l2.664-.298\"\n                        />\n                        <path\n                            fill=\"#D32406\"\n                            fillOpacity={0.3}\n                            d=\"M46.489 18.673l4.89 35.915.44 3.604c.142 1.16-.668 2.215-1.808 2.356L19.55 64.31c-1.141.14-2.18-.686-2.322-1.847l-4.633-37.951a2 2 0 011.74-2.228l2.94-.363\"\n                        />\n                        <path\n                            fill=\"#FFF\"\n                            stroke=\"#D32406\"\n                            strokeWidth={2.5}\n                            d=\"M49.152 9.25c.73 0 1.43.29 1.946.807h0l6.848 6.858c.515.516.804 1.215.804 1.944h0V53A2.744 2.744 0 0156 55.75h0-31A2.744 2.744 0 0122.25 53h0V12A2.744 2.744 0 0125 9.25h0z\"\n                        />\n                        <path\n                            stroke=\"#D32406\"\n                            strokeLinecap=\"round\"\n                            strokeLinejoin=\"round\"\n                            strokeWidth={2.5}\n                            d=\"M50 10v7.15c0 1.022.737 1.85 1.646 1.85H56\"\n                        />\n                        <path\n                            stroke=\"#D32406\"\n                            strokeLinecap=\"round\"\n                            strokeLinejoin=\"round\"\n                            strokeOpacity={0.3}\n                            strokeWidth={2.5}\n                            d=\"M28 18.288h15.116M28 25.212h25m-25 7.5h25m-25 7.5h25m-25 7.5h15.116\"\n                        />\n                    </g>\n                </g>\n                <g stroke=\"#D32406\" strokeWidth={2.5} transform=\"translate(81 55)\">\n                    <ellipse cx={4} cy={3.5} fill=\"#D32406\" fillOpacity={0.3} rx={4} ry={2.545} />\n                    <path strokeLinecap=\"round\" d=\"M56 7c0 8.837-11.64 16-26 16S4 15.837 4 7\" />\n                </g>\n                <path\n                    stroke=\"#D32406\"\n                    strokeLinecap=\"round\"\n                    strokeLinejoin=\"round\"\n                    strokeWidth={2.5}\n                    d=\"M117 7l-8 9M98.5 4v12M79 7l8 9\"\n                    opacity={0.3}\n                />\n            </g>\n        </svg>\n    );\n};\n\nBigTrashIcon.displayName = 'BigTrashIcon';\n\nconst storyProps: PropsT = {};\n\nexport { storyProps };\nexport default BigTrashIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"empty-flag\":\"PhoneNumberIcon__empty-flag___yHLdk\",\"fadeIn\":\"PhoneNumberIcon__fadeIn____Hc3k\",\"blinking\":\"PhoneNumberIcon__blinking___o_8Aq\"};","// extracted by mini-css-extract-plugin\nexport default {\"text\":\"TimeIntervalDurationPillLabel__text___epSFn\",\"fadeIn\":\"TimeIntervalDurationPillLabel__fadeIn___Wt4Hv\",\"blinking\":\"TimeIntervalDurationPillLabel__blinking___Hba3R\"};","import {\n    FETCH_COMPANY_REQUEST,\n    FETCH_COMPANY_REQUEST_BEGIN,\n    FETCH_COMPANY_REQUEST_ERROR,\n    FETCH_COMPANY_REQUEST_SUCCESS,\n    FetchCompanyActionT,\n    FetchCompanyBeginActionT,\n    FetchCompanyErrorActionT,\n    FetchCompanySuccessActionT,\n    UPDATE_COMPANY_REQUEST,\n    UPDATE_COMPANY_REQUEST_BEGIN,\n    UPDATE_COMPANY_REQUEST_ERROR,\n    UPDATE_COMPANY_REQUEST_SUCCESS,\n    UpdateCompanyActionT,\n    UpdateCompanyBeginActionT,\n    UpdateCompanyErrorActionT,\n    UpdateCompanySuccessActionT,\n} from './types';\nimport { CompanyChangesT, CompanyT } from './models';\n\nexport const fetchCompany = (options?: FetchOptionsT): FetchCompanyActionT => ({\n    type: FETCH_COMPANY_REQUEST,\n    options,\n});\n\nexport const fetchCompanyBegin = (): FetchCompanyBeginActionT => ({\n    type: FETCH_COMPANY_REQUEST_BEGIN,\n});\n\nexport const fetchCompanySuccess = (currentCompany: CompanyT | null): FetchCompanySuccessActionT => ({\n    type: FETCH_COMPANY_REQUEST_SUCCESS,\n    currentCompany,\n});\n\nexport const fetchCompanyError = (error: Error): FetchCompanyErrorActionT => ({\n    type: FETCH_COMPANY_REQUEST_ERROR,\n    error,\n});\n\nexport const updateCompany = (company: CompanyT, companyChanges: CompanyChangesT): UpdateCompanyActionT => ({\n    type: UPDATE_COMPANY_REQUEST,\n    companyChanges,\n    company,\n});\n\nexport const updateCompanyBegin = (): UpdateCompanyBeginActionT => ({\n    type: UPDATE_COMPANY_REQUEST_BEGIN,\n});\n\nexport const updateCompanySuccess = (companyChanges: CompanyChangesT | null): UpdateCompanySuccessActionT => ({\n    type: UPDATE_COMPANY_REQUEST_SUCCESS,\n    companyChanges,\n});\n\nexport const updateCompanyError = (error: Error): UpdateCompanyErrorActionT => ({\n    type: UPDATE_COMPANY_REQUEST_ERROR,\n    error,\n});\n","import * as React from 'react';\nimport {\n    selectTrailersDict,\n    selectTrailersDictById,\n    selectTrailersDictRequest,\n} from 'common/store/trailers-dict/selectors';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { fetchTrailersDict } from 'common/store/trailers-dict/actions';\n\nconst useTrailersDict = () => {\n    const dispatch = useDispatch();\n\n    const trailersDictRequest = useSelector(selectTrailersDictRequest);\n    const trailersDict = useSelector(selectTrailersDict);\n    const trailersDictById = useSelector(selectTrailersDictById);\n\n    React.useEffect(() => {\n        dispatch(fetchTrailersDict());\n    }, [dispatch]);\n\n    return {\n        trailersDict,\n        trailersDictById,\n        trailersDictRequest,\n    };\n};\n\nexport { useTrailersDict };\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './BrokerOrderRouteEditPage.scss';\n\nimport { useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport history, { goBackIfHasRePath } from 'common/utils/history';\nimport GoogleMapContextProvider from 'common/components/maps/GoogleMapContextProvider/GoogleMapContextProvider';\nimport HorizontalColumnsLayout from 'common/layouts/HorizontalColumnsLayout/HorizontalColumnsLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport RouteEditMap from './RouteEditMap/RouteEditMap';\nimport SideBarLayoutContextWrap from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayoutContextWrap/SideBarLayoutContextWrap';\nimport SideBarHeaderRequestStatus from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarHeaderRequestStatus/SideBarHeaderRequestStatus';\nimport SideBarRequestStatus from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarRequestStatus/SideBarRequestStatus';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport SideBars from 'broker-admin/layouts/SideBars/SideBars';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport RouteEditForm from './RouteEditForm/RouteEditForm';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\n\nimport { SyncRouteEditFormMapStateContext } from './contexts/sync-map-state';\nimport { useSyncMapStateContextValue } from './hooks/useSyncMapStateContextValue';\nimport { finishOrderEdit, initOrderEdit } from '../../../store/order-edit-context/slice';\nimport {\n    selectOrderEditApplyContextRequest,\n    selectOrderEditContext,\n    selectOrderEditCreateContextRequest,\n    selectOrderEditDeleteContextRequest,\n    selectOrderEditBrokerOrderDetails,\n} from '../../../store/order-edit-context/selectors';\nimport useOnlyChangesEffect from 'common/utils/hooks/useOnlyChangesEffect';\nimport RouteSidebarSkeleton from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteSidebarSkeleton/RouteSidebarSkeleton';\nimport { ExtractRouterRouteParamsT } from 'common/utils/extract-router-route-params-t';\nimport { BrokerOrdersRoutesEnum } from 'broker-admin/constants';\nimport { logWarning } from 'common/utils/logger';\nimport useSideBarFooterAlertsContextValue from 'common/utils/hooks/useSideBarFooterAlertsContextValue';\nimport SideBarFooterAlertsContext from 'common/layouts/LeftMenuLayout/SideBarLayout/contexts/side-bar-footer-alerts-context';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst BrokerOrderRouteEditPage: React.FC<PropsT> = React.memo(() => {\n    const params = useParams<ExtractRouterRouteParamsT<BrokerOrdersRoutesEnum.brokerOrderRouteEdit>>();\n    const { brokerOrderId } = params;\n\n    const mapStateContextValue = useSyncMapStateContextValue();\n\n    const { t } = useTranslation();\n\n    const deleteContextRequest = useSelector(selectOrderEditDeleteContextRequest);\n    const applyContextRequest = useSelector(selectOrderEditApplyContextRequest);\n    const createContextRequest = useSelector(selectOrderEditCreateContextRequest);\n    const brokerOrderDetails = useSelector(selectOrderEditBrokerOrderDetails);\n    const context = useSelector(selectOrderEditContext);\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(initOrderEdit({ brokerOrderId }));\n    }, [brokerOrderId, dispatch]);\n\n    const handleClose = () => {\n        goBackIfHasRePath(() => {\n            if (!brokerOrderId) {\n                logWarning('Empty brokerOrderId');\n                return;\n            }\n\n            history.push(urlFactory.brokerOrderDetails(brokerOrderId));\n        });\n    };\n\n    React.useEffect(() => {\n        dispatch(fetchCountriesDict());\n\n        return () => {\n            dispatch(finishOrderEdit({ brokerOrderId }));\n        };\n\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    useOnlyChangesEffect(() => {\n        if (deleteContextRequest.ok) {\n            handleClose();\n        }\n    }, [deleteContextRequest.ok]);\n\n    useOnlyChangesEffect(() => {\n        if (applyContextRequest.ok) {\n            handleClose();\n        }\n    }, [applyContextRequest.ok]);\n\n    const handleRetry = React.useCallback(() => {\n        if (brokerOrderId) {\n            dispatch(initOrderEdit({ brokerOrderId }));\n        }\n    }, [brokerOrderId, dispatch]);\n\n    const sideBarFooterAlertsContextValue = useSideBarFooterAlertsContextValue();\n\n    return (\n        <SideBarFooterAlertsContext.Provider value={sideBarFooterAlertsContextValue}>\n            <SyncRouteEditFormMapStateContext.Provider value={mapStateContextValue}>\n                <GoogleMapContextProvider>\n                    <PageTitle\n                        title={t('page-titles.broker-order-route-edit', {\n                            number: brokerOrderDetails?.number || '',\n                        })}\n                    />\n                    <HorizontalColumnsLayout\n                        testSelector=\"route-edit\"\n                        className={cx('wrap')}\n                        leftColumnTitle={t('broker-order-route-edit.main-tabs.details')}\n                        leftColumnNode={\n                            <SideBarLayoutContextWrap>\n                                <HeaderSideBarLayout>\n                                    <HeaderSideBarContent\n                                        title={t('broker-order-route-edit.title', {\n                                            number: brokerOrderDetails?.number || '',\n                                        })}\n                                        onClose={handleClose}\n                                    />\n                                    <SideBarHeaderRequestStatus\n                                        requestStatus={createContextRequest}\n                                        hasCachedData={Boolean(brokerOrderDetails)}\n                                        isForceShowLoader={applyContextRequest.loading || deleteContextRequest.loading}\n                                    />\n                                </HeaderSideBarLayout>\n                                <SideBarLayout>\n                                    <SideBarRequestStatus\n                                        requestStatus={createContextRequest}\n                                        hasCachedData={Boolean(brokerOrderDetails)}\n                                        onRetry={handleRetry}\n                                        SkeletonComponent={RouteSidebarSkeleton}\n                                    >\n                                        {brokerOrderDetails ? (\n                                            <RouteEditForm\n                                                brokerOrderId={brokerOrderId}\n                                                context={context}\n                                                onCancel={handleClose}\n                                            />\n                                        ) : null}\n                                    </SideBarRequestStatus>\n                                </SideBarLayout>\n                            </SideBarLayoutContextWrap>\n                        }\n                        rightColumnTitle={t('broker-order-route-edit.main-tabs.info')}\n                        rightColumnNode={\n                            <div className={cx('tabs-wrap')}>\n                                <div className={cx('tab')}>\n                                    <RouteEditMap key={brokerOrderId} context={context} />\n                                </div>\n                            </div>\n                        }\n                    />\n                </GoogleMapContextProvider>\n                <SideBars />\n            </SyncRouteEditFormMapStateContext.Provider>\n        </SideBarFooterAlertsContext.Provider>\n    );\n});\n\nexport default BrokerOrderRouteEditPage;\n","import { BrokerOrderDetailsT } from 'broker-admin/store/broker-order-details/models';\nimport { findTourById } from 'broker-admin/store/broker-order-details/utils/find-tour-by-id';\nimport { StopTypeEnum } from 'common/utils/api/models';\n\nexport const getPickupDeliveryWaypoints = (\n    brokerOrderDetails: BrokerOrderDetailsT | null | undefined,\n    tourId: TourIdT | null,\n) => {\n    const actualTour = findTourById(brokerOrderDetails, tourId);\n\n    return (\n        actualTour?.waypoints?.filter((waypoint) => {\n            return (\n                waypoint?.type === StopTypeEnum.pickupDeliveryShipment || waypoint?.type === StopTypeEnum.dropAndHook\n            );\n        }) || []\n    );\n};\n","import {\n    FETCH_RFQS_PAGE_REQUEST,\n    FETCH_RFQS_PAGE_REQUEST_BEGIN,\n    FETCH_RFQS_PAGE_REQUEST_ERROR,\n    FETCH_RFQS_PAGE_REQUEST_SUCCESS,\n    FetchRFQsPageActionT,\n    FetchRFQsPageBeginActionT,\n    FetchRFQsPageErrorActionT,\n    FetchRFQsPageSuccessActionT,\n    RESET_RFQS,\n    ResetRFQsActionT,\n} from './types';\nimport { AnyFetchRFQsPageQueryT, RFQT } from './models';\nimport { PageResponseT } from 'common/utils/pagination/models';\n\nexport const fetchRFQsPage = (\n    pageNumber: PageNumberT,\n    query: AnyFetchRFQsPageQueryT,\n    companyId: CompanyIdT,\n    options?: FetchOptionsT,\n): FetchRFQsPageActionT => ({\n    type: FETCH_RFQS_PAGE_REQUEST,\n    query,\n    pageNumber,\n    companyId,\n    options,\n});\n\nexport const fetchRFQsPageBegin = (\n    query: AnyFetchRFQsPageQueryT,\n    pageNumber: PageNumberT,\n    companyId: CompanyIdT,\n): FetchRFQsPageBeginActionT => ({\n    type: FETCH_RFQS_PAGE_REQUEST_BEGIN,\n    query,\n    pageNumber,\n    companyId,\n});\n\nexport const fetchRFQsPageSuccess = (\n    query: AnyFetchRFQsPageQueryT,\n    pageNumber: PageNumberT,\n    pageResponse: PageResponseT<RFQT> | null,\n    companyId: CompanyIdT,\n): FetchRFQsPageSuccessActionT => ({\n    type: FETCH_RFQS_PAGE_REQUEST_SUCCESS,\n    query,\n    pageResponse,\n    pageNumber,\n    companyId,\n});\n\nexport const fetchRFQsPageError = (\n    query: AnyFetchRFQsPageQueryT,\n    pageNumber: PageNumberT,\n    error: Error,\n    companyId: CompanyIdT,\n): FetchRFQsPageErrorActionT => ({\n    type: FETCH_RFQS_PAGE_REQUEST_ERROR,\n    query,\n    error,\n    pageNumber,\n    companyId,\n});\n\nexport const resetRFQs = (companyId: CompanyIdT, mutationListOptions: MutationListOptionsT): ResetRFQsActionT => ({\n    type: RESET_RFQS,\n    companyId,\n    mutationListOptions,\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"submit\":\"CreateCompanyForm__submit___D7iPl\",\"field--zip\":\"CreateCompanyForm__field--zip___wZwHz\",\"field--city\":\"CreateCompanyForm__field--city___ow2ae\",\"checkbox\":\"CreateCompanyForm__checkbox___mVe5g\",\"terms\":\"CreateCompanyForm__terms___nqf8q\",\"error\":\"CreateCompanyForm__error___h0JUT\",\"fadeIn\":\"CreateCompanyForm__fadeIn___nfH_5\",\"blinking\":\"CreateCompanyForm__blinking___XlDOh\"};","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    fillColor: StyleGuideColorsEnum;\n    fillOpacity?: number;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst ThumbUpIcon: React.FC<PropsT> = (props) => {\n    const { size, fillColor, fillOpacity, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" opacity=\"0.87\" />\n                <path\n                    fill={fillColor}\n                    fillOpacity={fillOpacity || '0.3'}\n                    d=\"M11.005 4.495L7.75 7.75v7.5h6.75L16.75 10V8.5h-6.578z\"\n                />\n                <path\n                    fill={strokeColor}\n                    d=\"M16.75 7h-4.732l.712-3.428.022-.24c0-.307-.127-.592-.33-.794l-.795-.788-4.935 4.942A1.47 1.47 0 006.25 7.75v7.5c0 .825.675 1.5 1.5 1.5h6.75a1.49 1.49 0 001.38-.915l2.265-5.288c.067-.172.105-.352.105-.547V8.5c0-.825-.675-1.5-1.5-1.5zm0 3l-2.25 5.25H7.75v-7.5l3.255-3.255-.833 4.005h6.578V10zm-15-2.25h3v9h-3v-9z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nThumbUpIcon.displayName = 'ThumbUpIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.light,\n    strokeColor: StyleGuideColorsEnum.gray,\n};\n\nexport { storyProps };\nexport default ThumbUpIcon;\n","import * as React from 'react';\nimport { VehicleScheduleEventT, VehicleScheduleT } from 'common/store/vehicle-schedules/models';\nimport { FlagT, TimeWindowT } from 'common/components/Timeline/models';\nimport { parseDateStringWithoutTimezone } from 'common/utils/time';\nimport { VehicleScheduleEventTypeEnum } from 'common/utils/api/models';\nimport TimelineSidebar from 'common/components/Timeline/TimelineSidebar/TimelineSidebar';\nimport { useScheduleTimeWindowFactory } from 'common/utils/hooks/use-schedule-time-window-factory';\n\nimport { useScheduleFlagsFactory } from 'common/utils/hooks/use-schedule-flags-factory';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport CancelServiceMaintanceTooltipContent from './CancelServiceMaintanceTooltipContent/CancelServiceMaintanceTooltipContent';\nimport EntityLinkTooltipContent from 'common/components/AssetScheduleSidebar/EntityLinkTooltipContent/EntityLinkTooltipContent';\nimport FeaturesContext from 'common/contexts/features';\nimport { ClientFeatureEnum } from 'common/utils/features/client-features-config';\n\n// TODO make generic\ntype DataT = VehicleScheduleEventT | null;\n\ntype PropsT = {\n    className?: string;\n    isLoading?: boolean;\n    onClose?: () => void;\n    onEventClick: (eventId: string) => void;\n    selectedOrderId?: string;\n    schedule: VehicleScheduleT | null;\n    additionalTimeWindows?: Array<TimeWindowT<DataT>>;\n    additionalFlags?: Array<FlagT<DataT>>;\n    type: 'trailer' | 'truck';\n    onCancelServiceMaintance?: (event: VehicleScheduleEventT) => void;\n    onOpenTransportOrderDetails?: (event: VehicleScheduleEventT) => void;\n};\n\nconst AssetScheduleSidebar: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        isLoading,\n        onClose,\n        onEventClick,\n        selectedOrderId,\n        schedule,\n        additionalTimeWindows,\n        additionalFlags,\n        type,\n        onCancelServiceMaintance,\n        onOpenTransportOrderDetails,\n    } = props;\n\n    const featuresContext = React.useContext(FeaturesContext);\n    const isCancelServiceMaintenanceSidebarEnabled =\n        featuresContext?.checkActiveClientFeature?.(ClientFeatureEnum.cancelServiceMaintenanceAssetScheduleSidebar) ??\n        false;\n\n    const scheduleTimeWindowFactory = useScheduleTimeWindowFactory();\n\n    const timeWindows = React.useMemo(() => {\n        const now = Date.now();\n\n        return (schedule || []).reduce<Array<TimeWindowT<DataT>>>(\n            (result, scheduleEvent) => {\n                const dateFrom = type === 'trailer' ? scheduleEvent.trailerDateFrom : scheduleEvent.truckDateFrom;\n                const dateTo = type === 'trailer' ? scheduleEvent.trailerDateTo : scheduleEvent.truckDateTo;\n\n                const start = parseDateStringWithoutTimezone(dateFrom);\n                const end = parseDateStringWithoutTimezone(dateTo);\n\n                const entityNumber = scheduleEvent?.transportationOrderNumber || '';\n                const hasWarning = scheduleEvent?.hasWarning;\n\n                if (start && end) {\n                    const commonScheduleEvent = {\n                        id: scheduleEvent.id,\n                        data: scheduleEvent,\n                        start,\n                        end,\n                        isTransparent: false,\n                    } as const;\n\n                    if (scheduleEvent.eventType === VehicleScheduleEventTypeEnum.serviceMaintenance) {\n                        const isPastEvent = start <= now && end <= now;\n\n                        result.push({\n                            ...commonScheduleEvent,\n                            ...scheduleTimeWindowFactory.serviceMaintenance({\n                                isPastEvent,\n                                hasWarning,\n                            }),\n                            tooltipTheme: TooltipThemeEnum.black,\n                            renderTooltip:\n                                isCancelServiceMaintenanceSidebarEnabled && onCancelServiceMaintance\n                                    ? () => (\n                                          <TooltipContent theme={TooltipContentThemeEnum.black}>\n                                              <CancelServiceMaintanceTooltipContent\n                                                  onCancel={() => {\n                                                      onCancelServiceMaintance(scheduleEvent);\n                                                  }}\n                                              />\n                                          </TooltipContent>\n                                      )\n                                    : undefined,\n                        });\n                    }\n\n                    if (scheduleEvent.eventType === VehicleScheduleEventTypeEnum.deadhead) {\n                        const isPastEvent = start <= now && end <= now;\n\n                        result.push({\n                            ...commonScheduleEvent,\n                            ...scheduleTimeWindowFactory.deadheadTO({\n                                isPastEvent,\n                                entityNumber,\n                                hasWarning,\n                            }),\n                            tooltipTheme: TooltipThemeEnum.black,\n                            renderTooltip:\n                                onOpenTransportOrderDetails &&\n                                (() => (\n                                    <TooltipContent theme={TooltipContentThemeEnum.black}>\n                                        <EntityLinkTooltipContent\n                                            entityType=\"TRANSPORT_ORDER\"\n                                            onClick={() => {\n                                                onOpenTransportOrderDetails(scheduleEvent);\n                                            }}\n                                        />\n                                    </TooltipContent>\n                                )),\n                        });\n                    }\n\n                    if (scheduleEvent.eventType === VehicleScheduleEventTypeEnum.shipment) {\n                        const entityNumber = scheduleEvent?.transportationOrderNumber || '';\n\n                        const renderTooltip =\n                            onOpenTransportOrderDetails &&\n                            (() => (\n                                <TooltipContent theme={TooltipContentThemeEnum.black}>\n                                    <EntityLinkTooltipContent\n                                        entityType=\"TRANSPORT_ORDER\"\n                                        onClick={() => {\n                                            onOpenTransportOrderDetails(scheduleEvent);\n                                        }}\n                                    />\n                                </TooltipContent>\n                            ));\n\n                        if (start <= now && end <= now) {\n                            result.push({\n                                ...commonScheduleEvent,\n                                ...scheduleTimeWindowFactory.to({\n                                    isPastEvent: true,\n                                    entityNumber,\n                                    hasWarning,\n                                }),\n                                tooltipTheme: TooltipThemeEnum.black,\n                                renderTooltip,\n                            });\n                        } else if (now <= start && now <= end) {\n                            result.push({\n                                ...commonScheduleEvent,\n                                ...scheduleTimeWindowFactory.to({\n                                    isPastEvent: false,\n                                    entityNumber,\n                                    hasWarning,\n                                }),\n                                tooltipTheme: TooltipThemeEnum.black,\n                                renderTooltip,\n                            });\n                        } else {\n                            result.push({\n                                ...commonScheduleEvent,\n                                ...scheduleTimeWindowFactory.inProgressTO({\n                                    entityNumber,\n                                    hasWarning,\n                                }),\n                                tooltipTheme: TooltipThemeEnum.black,\n                                renderTooltip,\n                            });\n                        }\n                    }\n                }\n\n                return result;\n            },\n            additionalTimeWindows ? [...additionalTimeWindows] : [],\n        );\n    }, [\n        schedule,\n        type,\n        scheduleTimeWindowFactory,\n        additionalTimeWindows,\n        isCancelServiceMaintenanceSidebarEnabled,\n        onCancelServiceMaintance,\n        onOpenTransportOrderDetails,\n    ]);\n\n    const scheduleFlagsFactory = useScheduleFlagsFactory();\n\n    const flags = React.useMemo(() => {\n        return (schedule || []).reduce<Array<FlagT<DataT>>>(\n            (result, scheduleEvent) => {\n                const dateFrom = type === 'trailer' ? scheduleEvent.trailerDateFrom : scheduleEvent.truckDateFrom;\n                const dateTo = type === 'trailer' ? scheduleEvent.trailerDateTo : scheduleEvent.truckDateTo;\n\n                const start = parseDateStringWithoutTimezone(dateFrom);\n                const end = parseDateStringWithoutTimezone(dateTo);\n\n                if (start && end) {\n                    const commonScheduleEvent = {\n                        id: scheduleEvent.id,\n                        data: scheduleEvent,\n                        start,\n                        end,\n                        isTransparent: false,\n                    } as const;\n\n                    if (scheduleEvent.eventType === VehicleScheduleEventTypeEnum.teleport) {\n                        result.push({\n                            ...commonScheduleEvent,\n                            ...scheduleFlagsFactory.teleport(),\n                        });\n                    }\n                }\n\n                return result;\n            },\n            additionalFlags ? [...additionalFlags] : [],\n        );\n    }, [schedule, type, scheduleFlagsFactory, additionalFlags]);\n\n    const levels = React.useMemo(() => {\n        return [\n            {\n                timeWindows,\n            },\n        ];\n    }, [timeWindows]);\n\n    return (\n        <TimelineSidebar\n            className={className}\n            isLoading={isLoading}\n            onClose={onClose}\n            onTimeWindowClick={onEventClick}\n            levels={levels}\n            flags={flags}\n            selectedTimeWindowId={selectedOrderId || null}\n        />\n    );\n});\n\nexport default AssetScheduleSidebar;\n","// extracted by mini-css-extract-plugin\nexport default {\"email\":\"EmailCell__email___ccML_\",\"fadeIn\":\"EmailCell__fadeIn___qLgLd\",\"blinking\":\"EmailCell__blinking___XeMmn\"};","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"CountryMultipleDropdown__option___JheuN\",\"fadeIn\":\"CountryMultipleDropdown__fadeIn___yGJPF\",\"blinking\":\"CountryMultipleDropdown__blinking___Sho8t\"};","import { CompanyTypeEnum } from 'common/constants';\nimport {\n    NotificationActionEnum,\n    NotificationConverterT,\n    NotificationDescriptorT,\n} from 'common/store/notifications/models';\nimport { logWarning } from 'common/utils/logger';\nimport { isNonNil } from 'common/utils';\n\nconst parseNotificationType = <T extends NotificationActionEnum>(\n    notification: any,\n): OverwriteT<NotificationDescriptorT[T], { action: T }> => {\n    return notification;\n};\n\nexport const convertNotification: NotificationConverterT = (apiNotification, options) => {\n    const baseNotification = {} as const;\n\n    switch (apiNotification.action) {\n        case NotificationActionEnum.SHIPMENT_STATUS_CHANGED: {\n            const parsedNotification =\n                parseNotificationType<NotificationActionEnum.SHIPMENT_STATUS_CHANGED>(apiNotification);\n\n            if (options.companyType === CompanyTypeEnum.shipper && parsedNotification.data?.status === 'CANCELED') {\n                return {\n                    ...baseNotification,\n                    ...parsedNotification,\n                    action: NotificationActionEnum.SHIPMENT_CANCELED,\n                    relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n                };\n            }\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.SHIPMENT_CANCELED: {\n            return {\n                ...parseNotificationType<NotificationActionEnum.SHIPMENT_CANCELED>(apiNotification),\n                ...baseNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.SHIPMENT_MISSED: {\n            return {\n                ...parseNotificationType<NotificationActionEnum.SHIPMENT_MISSED>(apiNotification),\n                ...baseNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.SHIPMENT_NO_SHOW: {\n            return {\n                ...parseNotificationType<NotificationActionEnum.SHIPMENT_NO_SHOW>(apiNotification),\n                ...baseNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.SHIPMENT_UPDATED: {\n            return {\n                ...parseNotificationType<NotificationActionEnum.SHIPMENT_UPDATED>(apiNotification),\n                ...baseNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.ORDER_STATUS_CHANGED: {\n            return {\n                ...parseNotificationType<NotificationActionEnum.ORDER_STATUS_CHANGED>(apiNotification),\n                ...baseNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.ORDER_EDITED: {\n            return {\n                ...parseNotificationType<NotificationActionEnum.ORDER_EDITED>(apiNotification),\n                ...baseNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.ORDER_PLACED: {\n            return {\n                ...parseNotificationType<NotificationActionEnum.ORDER_PLACED>(apiNotification),\n                ...baseNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.ORDER_CANCELED: {\n            return {\n                ...parseNotificationType<NotificationActionEnum.ORDER_CANCELED>(apiNotification),\n                ...baseNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.TOUR_STATUS_CHANGED: {\n            const parsedNotification =\n                parseNotificationType<NotificationActionEnum.TOUR_STATUS_CHANGED>(apiNotification);\n\n            const baseTourStatusNotification = {\n                ...baseNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            } as const;\n\n            return {\n                ...baseTourStatusNotification,\n                ...parsedNotification,\n                action: NotificationActionEnum.TOUR_STATUS_CHANGED,\n            };\n        }\n        case NotificationActionEnum.ORDER_ROUTE_UPDATED: {\n            return {\n                ...parseNotificationType<NotificationActionEnum.ORDER_ROUTE_UPDATED>(apiNotification),\n                ...baseNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_ASSETS: {\n            const parsedNotification =\n                parseNotificationType<NotificationActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_ASSETS>(\n                    apiNotification,\n                );\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_DRIVER: {\n            const parsedNotification =\n                parseNotificationType<NotificationActionEnum.TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_DRIVER>(\n                    apiNotification,\n                );\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.TOUR_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER: {\n            const parsedNotification =\n                parseNotificationType<NotificationActionEnum.TOUR_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER>(\n                    apiNotification,\n                );\n\n            if (parsedNotification.data?.runningOutOfTimeToAssignCarrier) {\n                return {\n                    ...baseNotification,\n                    ...parsedNotification,\n                    relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n                    action: NotificationActionEnum.TOUR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER,\n                };\n            }\n\n            if (parsedNotification.data?.runOutOfTimeToAssignCarrier) {\n                return {\n                    ...baseNotification,\n                    ...parsedNotification,\n                    relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n                    action: NotificationActionEnum.TOUR_RUN_OUT_OF_TIME_TO_ASSIGN_CARRIER,\n                };\n            }\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.TOUR_DELAYING: {\n            return {\n                ...parseNotificationType<NotificationActionEnum.TOUR_DELAYING>(apiNotification),\n                ...baseNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.TRANSPORTATION_ORDER_STATUS_CHANGED: {\n            const parsedNotification =\n                parseNotificationType<NotificationActionEnum.TRANSPORTATION_ORDER_STATUS_CHANGED>(apiNotification);\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.TRANSPORTATION_ORDER_DECLINED: {\n            return {\n                ...parseNotificationType<NotificationActionEnum.TRANSPORTATION_ORDER_DECLINED>(apiNotification),\n                ...baseNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.TRANSPORTATION_ORDER_CANCELED: {\n            return {\n                ...parseNotificationType<NotificationActionEnum.TRANSPORTATION_ORDER_CANCELED>(apiNotification),\n                ...baseNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.TRANSPORTATION_ORDER_UPDATED: {\n            return {\n                ...parseNotificationType<NotificationActionEnum.TRANSPORTATION_ORDER_UPDATED>(apiNotification),\n                ...baseNotification,\n                relatedIds: [apiNotification.data.orderId, apiNotification.data.transportationOrderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.TRANSPORTATION_ORDER_MILEAGE_AND_PAYMENT_CHANGED: {\n            const parsedNotification =\n                parseNotificationType<NotificationActionEnum.TRANSPORTATION_ORDER_MILEAGE_AND_PAYMENT_CHANGED>(\n                    apiNotification,\n                );\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.TRANSPORTATION_ORDER_PLACED: {\n            const parsedNotification =\n                parseNotificationType<NotificationActionEnum.TRANSPORTATION_ORDER_PLACED>(apiNotification);\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.RFQ_ALERT: {\n            const parsedNotification = parseNotificationType<NotificationActionEnum.RFQ_ALERT>(apiNotification);\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.SPOT_PLACED: {\n            const parsedNotification = parseNotificationType<NotificationActionEnum.SPOT_PLACED>(apiNotification);\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.SPOT_CANCELLED: {\n            const parsedNotification = parseNotificationType<NotificationActionEnum.SPOT_CANCELLED>(apiNotification);\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.SPOT_ASSIGNED: {\n            const parsedNotification = parseNotificationType<NotificationActionEnum.SPOT_ASSIGNED>(apiNotification);\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.SPOT_EXPIRED:\n        case NotificationActionEnum.TOUR_SPOT_EXPIRED: {\n            const parsedNotification = parseNotificationType<\n                NotificationActionEnum.SPOT_EXPIRED | NotificationActionEnum.TOUR_SPOT_EXPIRED\n            >(apiNotification);\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.SPOT_BID_ACCEPTED: {\n            const parsedNotification = parseNotificationType<NotificationActionEnum.SPOT_BID_ACCEPTED>(apiNotification);\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.SPOT_BID_EXPIRED: {\n            const parsedNotification = parseNotificationType<NotificationActionEnum.SPOT_BID_EXPIRED>(apiNotification);\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.SPOT_BID_MISSED: {\n            const parsedNotification = parseNotificationType<NotificationActionEnum.SPOT_BID_MISSED>(apiNotification);\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.SPOT_BID_PLACED: {\n            const parsedNotification = parseNotificationType<NotificationActionEnum.SPOT_BID_PLACED>(apiNotification);\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.DOCUMENT_EXPIRED: {\n            const parsedNotification = parseNotificationType<NotificationActionEnum.DOCUMENT_EXPIRED>(apiNotification);\n\n            if (apiNotification.subjectType === 'SHIPPER_CONTRACT_LANE') {\n                return {\n                    ...baseNotification,\n                    ...parsedNotification,\n                    action: NotificationActionEnum.SHIPPER_CONTRACT_LANE_EXPIRED,\n                    relatedIds: [],\n                };\n            }\n\n            if (apiNotification.subjectType === 'SHIPPER_CONTRACT') {\n                return {\n                    ...baseNotification,\n                    ...parsedNotification,\n                    action: NotificationActionEnum.SHIPPER_CONTRACT_EXPIRED,\n                    relatedIds: [],\n                };\n            }\n\n            if (apiNotification.subjectType === 'CARRIER_CONTRACT') {\n                return {\n                    ...baseNotification,\n                    ...parsedNotification,\n                    action: NotificationActionEnum.CARRIER_CONTRACT_EXPIRED,\n                    relatedIds: [],\n                };\n            }\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                action: NotificationActionEnum.DOCUMENT_EXPIRED,\n                relatedIds: [apiNotification.data.documentId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.DOCUMENT_COMPLETED: {\n            const parsedNotification =\n                parseNotificationType<NotificationActionEnum.DOCUMENT_COMPLETED>(apiNotification);\n\n            if (apiNotification.subjectType === 'SHIPPER_CONTRACT_LANE') {\n                return {\n                    ...baseNotification,\n                    ...parsedNotification,\n                    action: NotificationActionEnum.SHIPPER_CONTRACT_LANE_COMPLETED,\n                    relatedIds: [],\n                };\n            }\n\n            if (apiNotification.subjectType === 'SHIPPER_CONTRACT') {\n                return {\n                    ...baseNotification,\n                    ...parsedNotification,\n                    action: NotificationActionEnum.SHIPPER_CONTRACT_COMPLETED,\n                    relatedIds: [],\n                };\n            }\n\n            if (apiNotification.subjectType === 'CARRIER_CONTRACT') {\n                return {\n                    ...baseNotification,\n                    ...parsedNotification,\n                    action: NotificationActionEnum.CARRIER_CONTRACT_COMPLETED,\n                    relatedIds: [],\n                };\n            }\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                action: NotificationActionEnum.DOCUMENT_COMPLETED,\n                relatedIds: [],\n            };\n        }\n        case NotificationActionEnum.DOCUMENT_EXPIRATION_SOON: {\n            const parsedNotification =\n                parseNotificationType<NotificationActionEnum.DOCUMENT_EXPIRATION_SOON>(apiNotification);\n\n            if (apiNotification.subjectType === 'SHIPPER_CONTRACT_LANE') {\n                return {\n                    ...baseNotification,\n                    ...parsedNotification,\n                    action: NotificationActionEnum.SHIPPER_CONTRACT_LANE_EXPIRATION_SOON,\n                    relatedIds: [],\n                };\n            }\n\n            if (apiNotification.subjectType === 'SHIPPER_CONTRACT') {\n                return {\n                    ...baseNotification,\n                    ...parsedNotification,\n                    action: NotificationActionEnum.SHIPPER_CONTRACT_EXPIRATION_SOON,\n                    relatedIds: [],\n                };\n            }\n\n            if (apiNotification.subjectType === 'CARRIER_CONTRACT') {\n                return {\n                    ...baseNotification,\n                    ...parsedNotification,\n                    action: NotificationActionEnum.CARRIER_CONTRACT_EXPIRATION_SOON,\n                    relatedIds: [],\n                };\n            }\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                action: NotificationActionEnum.DOCUMENT_EXPIRATION_SOON,\n                relatedIds: [apiNotification.data.documentId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.DOCUMENT_REVOKED: {\n            const parsedNotification = parseNotificationType<NotificationActionEnum.DOCUMENT_REVOKED>(apiNotification);\n\n            if (apiNotification.subjectType === 'SHIPPER_CONTRACT_LANE') {\n                return {\n                    ...baseNotification,\n                    ...parsedNotification,\n                    action: NotificationActionEnum.SHIPPER_CONTRACT_LANE_REVOKED,\n                    relatedIds: [],\n                };\n            }\n            if (apiNotification.subjectType === 'SHIPPER_CONTRACT') {\n                return {\n                    ...baseNotification,\n                    ...parsedNotification,\n                    action: NotificationActionEnum.SHIPPER_CONTRACT_REVOKED,\n                    relatedIds: [],\n                };\n            }\n            if (apiNotification.subjectType === 'CARRIER_CONTRACT') {\n                return {\n                    ...baseNotification,\n                    ...parsedNotification,\n                    action: NotificationActionEnum.CARRIER_CONTRACT_REVOKED,\n                    relatedIds: [],\n                };\n            }\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                action: NotificationActionEnum.DOCUMENT_REVOKED,\n                relatedIds: [apiNotification.data.documentId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.DOCUMENT_UPLOAD: {\n            const parsedNotification = parseNotificationType<NotificationActionEnum.DOCUMENT_UPLOAD>(apiNotification);\n            if (apiNotification.subjectType === 'SHIPPER_CONTRACT') {\n                return {\n                    ...baseNotification,\n                    ...parsedNotification,\n                    action: NotificationActionEnum.SHIPPER_CONTRACT_UPLOADED,\n                    relatedIds: [],\n                };\n            }\n            if (apiNotification.subjectType === 'SHIPPER_CONTRACT_LANE') {\n                return {\n                    ...baseNotification,\n                    ...parsedNotification,\n                    action: NotificationActionEnum.SHIPPER_CONTRACT_LANE_UPLOAD,\n                    relatedIds: [],\n                };\n            }\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                action: NotificationActionEnum.DOCUMENT_UPLOAD,\n                relatedIds: [apiNotification.data.documentId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.DOCUMENT_APPROVED: {\n            return {\n                ...parseNotificationType<NotificationActionEnum.DOCUMENT_APPROVED>(apiNotification),\n                ...baseNotification,\n                relatedIds: [apiNotification.data.documentId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.DOCUMENT_REJECTED: {\n            return {\n                ...parseNotificationType<NotificationActionEnum.DOCUMENT_REJECTED>(apiNotification),\n                ...baseNotification,\n                relatedIds: [apiNotification.data.documentId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.DOCUMENT_UPDATED: {\n            const parsedNotification = parseNotificationType<NotificationActionEnum.DOCUMENT_UPDATED>(apiNotification);\n            if (apiNotification.subjectType === 'SHIPPER_CONTRACT_LANE') {\n                return {\n                    ...baseNotification,\n                    ...parsedNotification,\n                    action: NotificationActionEnum.SHIPPER_CONTRACT_LANE_UPDATED,\n                    relatedIds: [],\n                };\n            }\n            if (apiNotification.subjectType === 'SHIPPER_CONTRACT') {\n                return {\n                    ...baseNotification,\n                    ...parsedNotification,\n                    action: NotificationActionEnum.SHIPPER_CONTRACT_UPDATED,\n                    relatedIds: [],\n                };\n            }\n            if (apiNotification.subjectType === 'CARRIER_CONTRACT') {\n                return {\n                    ...baseNotification,\n                    ...parsedNotification,\n                    action: NotificationActionEnum.CARRIER_CONTRACT_UPDATED,\n                    relatedIds: [],\n                };\n            }\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                action: NotificationActionEnum.DOCUMENT_UPDATED,\n                relatedIds: [apiNotification.data.documentId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.ERROR_WHEN_CREATE_INVOICE: {\n            const parsedNotification =\n                parseNotificationType<NotificationActionEnum.ERROR_WHEN_CREATE_INVOICE>(apiNotification);\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.TEAM_USER_ADDED: {\n            const parsedNotification = parseNotificationType<NotificationActionEnum.TEAM_USER_ADDED>(apiNotification);\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.TEAM_USER_REMOVED: {\n            const parsedNotification = parseNotificationType<NotificationActionEnum.TEAM_USER_REMOVED>(apiNotification);\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.TEAM_REMOVED: {\n            const parsedNotification = parseNotificationType<NotificationActionEnum.TEAM_REMOVED>(apiNotification);\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n        case NotificationActionEnum.BUSINESS_PARTNER_ADDRESS_VERIFICATION: {\n            const parsedNotification =\n                parseNotificationType<NotificationActionEnum.BUSINESS_PARTNER_ADDRESS_VERIFICATION>(apiNotification);\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [],\n            };\n        }\n        case NotificationActionEnum.ASSET_ADDED: {\n            const parsedNotification = parseNotificationType<NotificationActionEnum.ASSET_ADDED>(apiNotification);\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [],\n            };\n        }\n        case NotificationActionEnum.ASSET_UPDATED: {\n            const parsedNotification = parseNotificationType<NotificationActionEnum.ASSET_UPDATED>(apiNotification);\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [],\n            };\n        }\n        case NotificationActionEnum.BROKER_BUSINESS_PARTNER_UPDATED: {\n            const parsedNotification =\n                parseNotificationType<NotificationActionEnum.BROKER_BUSINESS_PARTNER_UPDATED>(apiNotification);\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [],\n            };\n        }\n        default: {\n            const parsedNotification = parseNotificationType<NotificationActionEnum.UNKNOWN_ACTION>(apiNotification);\n\n            logWarning(`Not supported notification: ${apiNotification.action}`);\n\n            return {\n                ...baseNotification,\n                ...parsedNotification,\n                relatedIds: [apiNotification.data.orderId].filter(isNonNil),\n            };\n        }\n    }\n};\n","export enum QueryKeysEnum {\n    sendingToSpotTourId = 'sending-to-spot-tour',\n    editingTimeWindowTourId = 'editing-time-window-tour',\n}\n\nexport type QueryT = {\n    [QueryKeysEnum.sendingToSpotTourId]: string;\n    [QueryKeysEnum.editingTimeWindowTourId]: string;\n};\n","import React from 'react';\n\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport SuggestInput from 'design-system/components/dropdowns/SuggestInput/SuggestInput';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport {\n    selectSearchDriverById,\n    selectSearchDriverIds,\n    selectSearchDriverRequest,\n} from 'common/store/driver-search/selectors';\nimport { fetchDrivers } from 'common/store/driver-search/actions';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport Avatar from 'common/components/Avatar/Avatar';\nimport { logWarning } from 'common/utils/logger';\n\ntype ValueT = DriverIdT | null;\n\ntype OptionT = {\n    id: ValueT;\n    text: string;\n    label: React.ReactNode;\n};\n\nexport type PropsT = {\n    partnerId: PartnerIdT | null;\n    initialValue: ValueT;\n    initialLabel: string;\n    onSelect: (value: ValueT, name: string) => void;\n    value: ValueT;\n    overlayPosition: DropdownOverlayPositionEnum;\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    placeholder: InputPropsT['placeholder'];\n    onBlur: InputPropsT['onBlur'];\n    onFocus: InputPropsT['onFocus'];\n    onKeyUp?: InputPropsT['onKeyUp'];\n    isDisabled?: InputPropsT['isDisabled'];\n    isFocused?: InputPropsT['isFocused'];\n    hasClearControl?: InputPropsT['hasClearControl'];\n    hasChanges?: boolean;\n};\n\nconst DriverSuggest: React.FC<PropsT> = (props) => {\n    const {\n        partnerId,\n        initialValue,\n        initialLabel,\n        value,\n        onSelect,\n        hasWarning,\n        hasError,\n        overlayPosition,\n        isFocused,\n        isDisabled,\n        placeholder,\n        onBlur,\n        onFocus,\n        onKeyUp,\n        hasChanges,\n        hasClearControl,\n    } = props;\n\n    const [options, setOptions] = React.useState<OptionT[]>([]);\n\n    const dispatch = useDispatch();\n\n    const ids = useSelector(selectSearchDriverIds);\n    const byId = useSelector(selectSearchDriverById);\n    const requestStatus = useSelector(selectSearchDriverRequest);\n\n    React.useEffect(() => {\n        const options = ids\n            .filter((id) => byId[id])\n            .map((id): OptionT => {\n                const driver = byId[id];\n\n                return {\n                    id: driver.id,\n                    text: driver.name || '',\n                    label: (\n                        <DropdownControlOptionLabel\n                            icon={<Avatar hash={driver.name || ''} />}\n                            label={driver.name || ''}\n                        />\n                    ),\n                };\n            });\n\n        setOptions(options);\n    }, [ids, byId]);\n\n    React.useEffect(() => {\n        if (!initialValue) {\n            return;\n        }\n\n        const initialOption: OptionT = {\n            id: initialValue,\n            text: initialLabel,\n            label: <span>{initialLabel}</span>,\n        };\n\n        setOptions([initialOption]);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const handleChangeQuery = React.useCallback(\n        (query: string): void => {\n            if (!query || !partnerId) {\n                logWarning('Empty query or partnerId in handleChangeQuery');\n                return;\n            }\n\n            dispatch(\n                fetchDrivers({\n                    name: query,\n                    partnerId,\n                }),\n            );\n        },\n        [dispatch, partnerId],\n    );\n\n    const handleSelect = (value: ValueT) => {\n        const partner = byId[value as string];\n\n        onSelect(value || null, partner?.name || '');\n    };\n\n    const selectedDriver = byId[value || ''] || null;\n\n    return (\n        <SuggestInput<OptionT, ValueT>\n            selectedValue={value}\n            initialInputValue={initialLabel}\n            hasChanges={hasChanges}\n            options={options}\n            onSelect={handleSelect}\n            renderOption={(option) => option.label}\n            formatOption={(option) => option.text}\n            getOptionValue={(option) => option.id}\n            onChangeQuery={handleChangeQuery}\n            hasWarning={hasWarning}\n            hasError={hasError}\n            renderLeftIcon={() => <Avatar hash={selectedDriver?.name || null} />}\n            overlayPosition={overlayPosition}\n            placeholder={placeholder}\n            isLoading={requestStatus.loading}\n            isFocused={isFocused}\n            isDisabled={isDisabled}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            onKeyUp={onKeyUp}\n            hasClearControl={hasClearControl}\n        />\n    );\n};\n\nexport default DriverSuggest;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './SearchForm.scss';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectCountriesByCode } from 'common/store/countries-dict/selectors';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\nimport { useTranslation } from 'react-i18next';\nimport DeprecatedCountyFlagLabel from 'common/components/DeprecatedCountyFlagLabel/DeprecatedCountyFlagLabel';\nimport CountryFlagPlaceholderOption from 'common/components/dropdowns/options/CountryFlagPlaceholderOption/CountryFlagPlaceholderOption';\nimport { CountryCodeT } from 'common/store/countries-dict/models';\nimport isEqual from 'lodash/isEqual';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport CountryMultipleDropdown from 'common/components/dropdowns/CountryMultipleDropdown/CountryMultipleDropdown';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    initialFromCountryCodes: CountryCodeT[];\n    initialToCountryCodes: CountryCodeT[];\n    onChange: (fromCountryCodes: CountryCodeT[], toCountryCodes: CountryCodeT[]) => void;\n};\n\nconst SearchForm: React.FC<PropsT> = (props) => {\n    const { onChange, initialFromCountryCodes, initialToCountryCodes, className } = props;\n\n    const { t } = useTranslation();\n\n    const [fromCountryCodes, setFromCountryCodes] = React.useState<CountryCodeT[]>(initialFromCountryCodes);\n    const [toCountryCodes, setToCountryCodes] = React.useState<CountryCodeT[]>(initialToCountryCodes);\n\n    React.useEffect(() => {\n        if (!isEqual(initialFromCountryCodes, fromCountryCodes)) {\n            setFromCountryCodes(initialFromCountryCodes);\n        }\n        if (!isEqual(initialToCountryCodes, toCountryCodes)) {\n            setToCountryCodes(initialToCountryCodes);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [initialFromCountryCodes, initialToCountryCodes]);\n\n    React.useEffect(() => {\n        onChange(fromCountryCodes, toCountryCodes);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [fromCountryCodes, toCountryCodes]);\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchCountriesDict());\n    }, [dispatch]);\n\n    const countryByCode = useSelector(selectCountriesByCode);\n\n    const renderOption = (countryCode: CountryCodeT) => {\n        return <DeprecatedCountyFlagLabel className={cx('option')} country={countryByCode[countryCode]} />;\n    };\n\n    const renderTrigger = (countryCodes: Array<CountryCodeT>) => {\n        if (!countryCodes?.length) {\n            return <CountryFlagPlaceholderOption label={t('common:not-selected')} />;\n        }\n\n        const countries = countryCodes.map((code) => countryByCode[code] || null);\n\n        return <DeprecatedCountyFlagLabel className={cx('option')} countries={countries} />;\n    };\n\n    return (\n        <div className={cs(cx('wrap'), className)}>\n            <CountryMultipleDropdown\n                className={cx('field', {\n                    'field--from': true,\n                })}\n                values={fromCountryCodes}\n                inputPlaceholder={t('price-settings.rate-matrix.fields.from.input-placeholder')}\n                onChange={setFromCountryCodes}\n                renderOption={renderOption}\n                renderLeftIcon={() => null}\n                renderRightIcon={() => null}\n                renderTrigger={renderTrigger}\n                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n            />\n            <CountryMultipleDropdown\n                className={cx('field', {\n                    'field--to': true,\n                })}\n                values={toCountryCodes}\n                inputPlaceholder={t('price-settings.rate-matrix.fields.to.input-placeholder')}\n                onChange={setToCountryCodes}\n                renderOption={renderOption}\n                renderLeftIcon={() => null}\n                renderRightIcon={() => null}\n                renderTrigger={renderTrigger}\n                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n            />\n        </div>\n    );\n};\n\nexport default SearchForm;\n","// extracted by mini-css-extract-plugin\nexport default {\"footer\":\"StickyFooter__footer___w5X9x\",\"container\":\"StickyFooter__container___A8wLl\",\"content\":\"StickyFooter__content____lfKv\",\"fadeIn\":\"StickyFooter__fadeIn___AM01I\",\"blinking\":\"StickyFooter__blinking___rv6C4\"};","import { AsyncFormErrorsT, FieldsEnum } from './constants';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport {\n    checkIsTranziitApiRequestError,\n    TranziitApiRequestErrorSubTypeEnum,\n} from 'common/utils/api/tranziit/errors/tranziit-api-errors';\n\nconst asyncValidate = (requestError: RequestStatusT): AsyncFormErrorsT => {\n    if (!checkIsTranziitApiRequestError(requestError.error)) {\n        return {};\n    }\n\n    if (requestError?.error?.subType === TranziitApiRequestErrorSubTypeEnum.phoneAlreadyExist) {\n        return {\n            [FieldsEnum.phone]: TranziitApiRequestErrorSubTypeEnum.phoneAlreadyExist,\n        };\n    }\n\n    if (requestError?.error?.message) {\n        return {\n            [FieldsEnum.phone]: requestError.error.message,\n        };\n    }\n\n    return {};\n};\n\nexport default asyncValidate;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"BrokerTourDeadheadCreationPage__wrap___XgbyU\",\"right-column-wrap\":\"BrokerTourDeadheadCreationPage__right-column-wrap____EaTa\",\"schedule\":\"BrokerTourDeadheadCreationPage__schedule___OxUOQ\",\"map\":\"BrokerTourDeadheadCreationPage__map___NdEAU\",\"fadeIn\":\"BrokerTourDeadheadCreationPage__fadeIn___P82iz\",\"blinking\":\"BrokerTourDeadheadCreationPage__blinking___lZcsd\"};","import * as React from 'react';\nimport SaveChangesNotification from 'common/components/SaveChangesNotification/SaveChangesNotification';\nimport { checkValuesChanges } from 'common/utils/form-helpers';\n\ntype FormValueT = object | number | string | boolean | null | undefined | Array<number> | Array<string>;\ntype FormValuesT = Record<string, FormValueT>;\n\ntype PropsT<T extends FormValuesT> = {\n    fields: Array<keyof T>;\n    defaultNotification?: React.ReactElement | null;\n    className?: string;\n};\n\nconst withWidgetChangesDetector =\n    <T extends FormValuesT>(initialValues: T, values: T): React.FC<PropsT<T>> =>\n    (props): React.ReactElement | null => {\n        const { fields, defaultNotification, className } = props;\n\n        const hasChanges = checkValuesChanges(fields, initialValues, values);\n        if (hasChanges) {\n            return <SaveChangesNotification className={className} hasChanges />;\n        }\n\n        if (defaultNotification) {\n            return defaultNotification || null;\n        }\n\n        return null;\n    };\n\nexport default withWidgetChangesDetector;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './FormTitle.scss';\n\nimport { useTranslation } from 'react-i18next';\nimport { matchPath, useLocation } from 'react-router-dom';\nimport { OMSRoutesEnum, StyleGuideColorsEnum } from 'common/constants';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport { useContext } from 'react';\nimport OrderCreationPercentContext from 'common/layouts/NewOrderPage/contexts/order-creation-percent-context';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    onClose: () => void;\n};\n\nconst STEPS_COUNT = 3;\n\nconst FormTitle: React.FC<PropsT> = React.memo((props) => {\n    const { onClose } = props;\n    const { t } = useTranslation();\n\n    const orderCreationPercentContext = useContext(OrderCreationPercentContext);\n    const { percent, setPercent } = orderCreationPercentContext;\n\n    const { pathname } = useLocation();\n\n    React.useEffect(() => {\n        setPercent(0);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [pathname]);\n\n    let isFinalStep = false;\n\n    let basePercent = 0;\n    const step = 100 / STEPS_COUNT;\n    if (matchPath(pathname, { path: OMSRoutesEnum.newOrder })) {\n        basePercent = 0;\n    }\n    if (matchPath(pathname, { path: OMSRoutesEnum.newOrderOffers })) {\n        basePercent = step;\n    }\n    if (matchPath(pathname, { path: OMSRoutesEnum.newOrderDetails })) {\n        basePercent = 2 * step;\n        isFinalStep = true;\n    }\n    if (matchPath(pathname, { path: OMSRoutesEnum.newOrderDetailsWithLane })) {\n        basePercent = 2 * step;\n        isFinalStep = true;\n    }\n\n    const summaryPercent = basePercent + (percent / 100) * step;\n    const roundedPercent = Math.round(summaryPercent);\n\n    const title = isFinalStep\n        ? t('common:new-order-page.titles.new-order')\n        : t('common:new-order-page.titles.new-quotation');\n\n    return (\n        <div className={cx('content')}>\n            <div className={cx('column', 'column--isLeft')}>\n                <div className={cx('title')}>{title}</div>\n            </div>\n            <div className={cx('column', 'column--isRight')}>\n                <div className={cx('close')} onClick={onClose}>\n                    <CloseIcon fillColor={StyleGuideColorsEnum.charcoal} />\n                </div>\n            </div>\n            <div className={cx('progress')}>\n                <div className={cx('progress__title')}>\n                    {t('common:new-order-page.percent', {\n                        percent: roundedPercent,\n                    })}\n                </div>\n                <div className={cx('progress__bar')} style={{ width: `${roundedPercent}%` }} />\n            </div>\n        </div>\n    );\n});\n\nexport default FormTitle;\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"FiltersSidebarContent__form___AgPRV\",\"field--trailer-type\":\"FiltersSidebarContent__field--trailer-type___X4dZw\",\"field--address\":\"FiltersSidebarContent__field--address___bj4D9\",\"field--user\":\"FiltersSidebarContent__field--user___FFDha\",\"field--dates\":\"FiltersSidebarContent__field--dates___Xpasb\",\"selected-filters\":\"FiltersSidebarContent__selected-filters___LHBmH\",\"fadeIn\":\"FiltersSidebarContent__fadeIn___QeyMw\",\"blinking\":\"FiltersSidebarContent__blinking___qEakO\"};","import isEmpty from 'lodash/isEmpty';\nimport values from 'lodash/values';\nimport { logWarning } from 'common/utils/logger';\nimport isNumber from 'lodash/isNumber';\n\nexport type CustomLineHaulT = number;\nexport type CustomLineHaulMapT = Record<PriceOfferIdT, CustomLineHaulT | undefined>;\n\n/**\n *  @deprecated use useQueryParams\n * */\nexport const formatQueryCustomLineHaulMap = (data: CustomLineHaulMapT | null) => {\n    if (!data || isEmpty(data) || values(data).every((item) => !isNumber(item))) {\n        return undefined;\n    }\n\n    try {\n        return encodeURIComponent(JSON.stringify(data));\n    } catch (error) {\n        logWarning('Failed to format query custom line haul', error);\n        return undefined;\n    }\n};\n\n/**\n *  @deprecated use useQueryParams\n * */\nexport const parseQueryCustomLineHaulMap = (queryData: string | null | undefined): CustomLineHaulMapT | null => {\n    if (!queryData) {\n        return null;\n    }\n\n    try {\n        return JSON.parse(decodeURIComponent(queryData));\n    } catch (error) {\n        logWarning('Failed to parse query custom line haul', error);\n        return null;\n    }\n};\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    strokeColor: StyleGuideColorsEnum;\n    size: number;\n};\n\nconst UnlinkIcon: React.FC<PropsT> = (props) => {\n    const { size, className, strokeColor } = props;\n\n    return (\n        <svg className={className} width={size} height={size} viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\">\n            <defs>\n                <path\n                    d=\"m15.113 14.7-1.058 1.058-3.008-3.008H9.75v-1.297L8.047 9.75H6v-1.5h.548L4.995 6.697A2.322 2.322 0 0 0 2.925 9a2.327 2.327 0 0 0 2.325 2.325h3v1.425h-3C3.18 12.75 1.5 11.07 1.5 9c0-1.567.967-2.91 2.333-3.465L1.5 3.202l1.058-1.057zM16.5 9a3.74 3.74 0 0 1-1.777 3.18l-1.05-1.05A2.318 2.318 0 0 0 15.074 9a2.327 2.327 0 0 0-2.325-2.325h-3V5.25h3c2.07 0 3.75 1.68 3.75 3.75zm-4.5.457L10.793 8.25H12z\"\n                    id=\"rmft2xmx4a\"\n                />\n            </defs>\n            <path\n                d=\"M11.793 9.25 13 10.457V9.25h-1.207zm1.957-3h-3v1.425h3A2.327 2.327 0 0 1 16.075 10c0 .953-.577 1.777-1.402 2.13l1.05 1.05A3.74 3.74 0 0 0 17.5 10c0-2.07-1.68-3.75-3.75-3.75zM2.5 4.203l2.332 2.332A3.743 3.743 0 0 0 2.5 10c0 2.07 1.68 3.75 3.75 3.75h3v-1.425h-3A2.327 2.327 0 0 1 3.925 10c0-1.192.907-2.175 2.07-2.303L7.548 9.25H7v1.5h2.047l1.703 1.703v1.297h1.297l3.008 3.008 1.058-1.058L3.558 3.145 2.5 4.203z\"\n                xlinkHref=\"#rmft2xmx4a\"\n                fill={strokeColor}\n                fillRule=\"evenodd\"\n            />\n        </svg>\n    );\n};\n\nUnlinkIcon.displayName = 'UnlinkIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default UnlinkIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"select\":\"TrailerTypeSwitcher__select___b_dKf\",\"option\":\"TrailerTypeSwitcher__option___QsFGJ\",\"option__image\":\"TrailerTypeSwitcher__option__image___cjooM\",\"option__image--box\":\"TrailerTypeSwitcher__option__image--box___FMuGs\",\"option__image--tilt\":\"TrailerTypeSwitcher__option__image--tilt___Pek5f\",\"option__image--reef\":\"TrailerTypeSwitcher__option__image--reef___yZGnY\",\"option__image--isActive\":\"TrailerTypeSwitcher__option__image--isActive___k0TJs\",\"option__title\":\"TrailerTypeSwitcher__option__title___e5zJd\",\"radio\":\"TrailerTypeSwitcher__radio___w0q5Y\",\"fadeIn\":\"TrailerTypeSwitcher__fadeIn___EyJCG\",\"blinking\":\"TrailerTypeSwitcher__blinking___lUjlg\"};","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { BrokerOrderDetailsT } from './models';\nimport isEqual from 'lodash/isEqual';\n\nexport type BrokerOrderDetailsStateT = {\n    details: BrokerOrderDetailsT | null;\n    requestStatus: RequestStatusT;\n};\n\nexport type BrokerOrderDetailsByIdStateT = Record<BrokerOrderIdT, BrokerOrderDetailsStateT>;\n\nexport const initialBrokerOrderDetailsState: BrokerOrderDetailsStateT = {\n    details: null,\n    requestStatus: requestStatus.initial,\n};\n\nconst initialState: BrokerOrderDetailsByIdStateT = {};\n\nexport const brokerOrderDetailsSlice = createSlice({\n    name: 'brokerOrderDetails',\n    initialState,\n    reducers: {\n        fetchBrokerOrderDetails: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                id: BrokerOrderIdT;\n                options?: FetchOptionsT;\n            }>,\n        ) => {\n            // nothing - handled by saga\n        },\n        fetchBrokerOrderDetailsBegin: (\n            state,\n            action: PayloadAction<{\n                id: BrokerOrderIdT;\n            }>,\n        ) => {\n            const { id } = action.payload;\n            const brokerOrderDetailsState = state[id] || initialBrokerOrderDetailsState;\n\n            state[id] = {\n                ...brokerOrderDetailsState,\n                requestStatus: requestStatus.loading,\n            };\n        },\n        fetchBrokerOrderDetailsSuccess: (\n            state,\n            action: PayloadAction<{\n                id: BrokerOrderIdT;\n                details: BrokerOrderDetailsT | null;\n            }>,\n        ) => {\n            const { details, id } = action.payload;\n            const brokerOrderDetailsState = state[id] || initialBrokerOrderDetailsState;\n\n            state[id] = {\n                ...brokerOrderDetailsState,\n                requestStatus: requestStatus.ok,\n                details: isEqual(details, brokerOrderDetailsState.details) ? brokerOrderDetailsState.details : details,\n            };\n        },\n        fetchBrokerOrderDetailsError: (\n            state,\n            action: PayloadAction<{\n                id: BrokerOrderIdT;\n                error: Error;\n            }>,\n        ) => {\n            const { error, id } = action.payload;\n            const brokerOrderDetailsState = state[id] || initialBrokerOrderDetailsState;\n\n            state[id] = {\n                ...brokerOrderDetailsState,\n                requestStatus: requestStatus.setError(error),\n            };\n        },\n        resetBrokerOrderDetails: () => {\n            return {};\n        },\n    },\n    extraReducers: (builder) => {\n        builder.addCase('auth/destroySession', () => {\n            return initialState;\n        });\n    },\n});\n\nexport const {\n    fetchBrokerOrderDetails,\n    fetchBrokerOrderDetailsBegin,\n    fetchBrokerOrderDetailsSuccess,\n    fetchBrokerOrderDetailsError,\n    resetBrokerOrderDetails,\n} = brokerOrderDetailsSlice.actions;\n\nexport default brokerOrderDetailsSlice.reducer;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ApiAttachPapersUnavailableReasonT, ApiTourAttachedPaperTypeT } from 'common/utils/api/models';\nimport { AttachPapersDropdownControlTrigger } from '../AttachPapersDropdownControlTrigger/AttachPapersDropdownControlTrigger';\nimport { useClickInterceptorProps } from 'common/components/ClickInterceptorLabel/hooks/use-click-interceptor-props';\nimport AttachPapersUnavailableReasonLabel from 'common/components/papers/labels/AttachPapersUnavailableReasonLabel/AttachPapersUnavailableReasonLabel';\n\ntype PropsT = {\n    className?: string;\n    onAttachNew: (paperType: ApiTourAttachedPaperTypeT) => void;\n    attachPapersUnavailableReason?: ApiAttachPapersUnavailableReasonT | null;\n};\n\nconst TourPaperAttachPapersDropdownControl: React.FC<PropsT> = React.memo((props) => {\n    const { onAttachNew, attachPapersUnavailableReason } = props;\n    const { t } = useTranslation();\n\n    const handleAttachNew = React.useCallback(() => {\n        onAttachNew?.('OTHER');\n    }, [onAttachNew]);\n\n    const clickInterceptorProps = useClickInterceptorProps({\n        onClick: handleAttachNew || null,\n    });\n\n    return (\n        <AttachPapersDropdownControlTrigger\n            {...clickInterceptorProps}\n            tooltipMessage={\n                attachPapersUnavailableReason ? (\n                    <AttachPapersUnavailableReasonLabel reason={attachPapersUnavailableReason} />\n                ) : null\n            }\n            isDisabled={Boolean(attachPapersUnavailableReason)}\n            hasPlusIcon\n        >\n            {t('common:papers-card.attach-new')}\n        </AttachPapersDropdownControlTrigger>\n    );\n});\n\nexport { TourPaperAttachPapersDropdownControl };\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PartnerPage.scss';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport TopBar from 'common/layouts/LeftMenuLayout/TopBar/TopBar';\nimport BackButton from 'common/components/BackButton/BackButton';\nimport history, { goBackIfHasRePath } from 'common/utils/history';\nimport { PartnersRoutesEnum, routesEnum } from 'broker-admin/constants';\nimport NotificationLabel, {\n    NotificationLabelThemeEnum,\n} from 'common/components/notifications/NotificationLabel/NotificationLabel';\nimport { Route, Switch, useParams } from 'react-router-dom';\nimport { generatePath } from 'react-router';\nimport PartnerDetailsPage from './PartnerDetailsPage/PartnerDetailsPage';\nimport PartnerDocumentsPage from './PartnerDocumentsPage/PartnerDocumentsPage';\nimport PartnerMembersPage from './PartnerMembersPage/PartnerMembersPage';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { fetchPartnerDetails } from 'broker-admin/store/partner/details/actions';\nimport {\n    selectFetchPartnerDetailsRequest,\n    selectPartnerDetailsById,\n} from 'broker-admin/store/partner/details/selectors';\nimport InlineLoader from 'common/components/InlineLoader/InlineLoader';\nimport NavigationTabs, {\n    NavigationTabConfigT,\n    NavigationTabsPropsT,\n} from 'common/components/tabs/NavigationTabs/NavigationTabs';\nimport PartnerTrucksPage from './PartnerTrucksPage/PartnerTrucksPage';\nimport RemoteFormActions from 'common/components/forms/RemoteFormActions/RemoteFormActions';\nimport useContainerScroll from 'common/utils/hooks/useContainerScroll';\nimport getScrollbarWidth from 'common/utils/get-scroll-bar-width';\nimport PartnerTrailersPage from './PartnerTrailersPage/PartnerTrailersPage';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport ScrollableContent from 'common/layouts/LeftMenuLayout/ScrollableContent/ScrollableContent';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport PartnerDriversPage from './PartnerDriversPage/PartnerDriversPage';\nimport NotificationsBarTrigger from 'common/components/notifications/NotificationsBarTrigger/NotificationsBarTrigger';\nimport PartnerTransportOrders from './PartnerTransportOrders/PartnerTransportOrders';\nimport PartnerTransportOrderDetails from './PartnerTransportOrderDetails/PartnerTransportOrderDetails';\nimport TopBarContent from 'common/layouts/LeftMenuLayout/TopBarContent/TopBarContent';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport SideBars from 'broker-admin/layouts/SideBars/SideBars';\nimport { useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport { logWarning } from 'common/utils/logger';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport PartnerContext from 'common/contexts/partner-context';\nimport isString from 'lodash/isString';\nimport useRemoteFormActions from 'common/utils/hooks/useRemoteFormActions';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport { partnerDetailsRefreshChannel } from 'broker-admin/store/partner/details/channels';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport FeaturesContext from 'common/contexts/features';\nimport { ClientFeatureEnum } from 'common/utils/features/client-features-config';\nimport PartnerTypePill from 'common/components/pills/PartnerTypePill/PartnerTypePill';\nimport { parsePartnerTypeParam } from 'broker-admin/utils/urls-params';\nimport { ExtractRouterRouteParamsT } from 'common/utils/extract-router-route-params-t';\nimport PartnerPermissionsContextProvider from 'broker-admin/components/PartnerPermissionsContextProvider/PartnerPermissionsContextProvider';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport SideBar, { SideBarPositionEnum } from 'common/layouts/LeftMenuLayout/SideBar/SideBar';\nimport PartnerLogSideBarContent from 'broker-admin/layouts/SideBars/PartnerLogSideBarContent/PartnerLogSideBarContent';\nimport PartnerOperationUnavailableReasonsAlert from 'broker-admin/components/PartnerOperationUnavailableReasonsAlert/PartnerOperationUnavailableReasonsAlert';\nimport { checkNeedShowBillingInfo } from 'broker-admin/store/partner/details/utils/check-need-show-billing-info';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst PartnerPage: React.FC<PropsT> = React.memo(() => {\n    const dispatch = useDispatch();\n    const { t } = useTranslation();\n\n    const permissions = useSelector(selectPermissions);\n    const featuresContext = React.useContext(FeaturesContext);\n\n    const { containerRef, onContainerScroll, scrollTop } = useContainerScroll();\n\n    const remoteFormActions = useRemoteFormActions();\n\n    const [isActionsSidebarOpen, setActionsSidebarOpen] = React.useState(false);\n\n    const params = useParams<ExtractRouterRouteParamsT<typeof routesEnum.partner>>();\n    const { partnerId } = params;\n    const partnerType = parsePartnerTypeParam(params.partnerType);\n\n    React.useEffect(() => {\n        dispatch(fetchPartnerDetails(partnerId));\n    }, [dispatch, partnerId]);\n\n    const refreshPageHandler = React.useCallback(() => {\n        dispatch(fetchPartnerDetails(partnerId));\n    }, [dispatch, partnerId]);\n    useChannelSubscribe(partnerDetailsRefreshChannel, refreshPageHandler);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        dispatch(fetchPartnerDetails(partnerId));\n    }, [dispatch, partnerId]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const fetchRequest = useSelector(selectFetchPartnerDetailsRequest);\n    const partnerDetailsById = useSelector(selectPartnerDetailsById);\n    const partnerDetails = partnerDetailsById[partnerId];\n\n    const goToPartnersPage = (): void => {\n        goBackIfHasRePath(() => {\n            history.push(urlFactory.partners());\n        });\n    };\n\n    const handleSelectTab: NavigationTabsPropsT['onSelectTab'] = (to): void => {\n        if (isString(to)) {\n            const pathname = generatePath(to, params);\n\n            history.push({\n                pathname,\n            });\n        } else {\n            history.push({\n                ...to,\n            });\n        }\n    };\n\n    const openLeftSidebar = useOpenLeftSidebar();\n    const handleOpenUserDetails = (userId: UserIdT | null, isBrokerUser?: boolean) => {\n        if (!userId) {\n            logWarning('failed to open user details in partner details, empty userId');\n            return;\n        }\n\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId,\n            partnerType: isBrokerUser ? PartnerTypeEnum.broker : partnerType,\n            userId,\n        });\n    };\n\n    const warningBadgeNode = React.useMemo(\n        () => <NotificationLabel isShowWarning theme={NotificationLabelThemeEnum.orange} />,\n        [],\n    );\n\n    const tabsConfig = React.useMemo((): Array<NavigationTabConfigT | null> => {\n        const hasDetailsProblem =\n            partnerDetails &&\n            (!partnerDetails?.legalAddressVerified ||\n                (checkNeedShowBillingInfo(partnerType) && !partnerDetails?.billingAddressVerified));\n        const hasDocumentsProblem = partnerDetails && !partnerDetails?.documentsVerified;\n\n        return [\n            {\n                pathname: PartnersRoutesEnum.partnerDetails,\n                to: PartnersRoutesEnum.partnerDetails,\n                badge: hasDetailsProblem ? warningBadgeNode : null,\n                render: () => t('partner.tabs.details'),\n                testSelector: 'details',\n            },\n            partnerType === PartnerTypeEnum.carrier || partnerType === PartnerTypeEnum.shipper\n                ? {\n                      pathname: PartnersRoutesEnum.partnerDocuments,\n                      to: PartnersRoutesEnum.partnerDocuments,\n                      badge: hasDocumentsProblem ? warningBadgeNode : null,\n                      render: () => t('partner.tabs.documents'),\n                      testSelector: 'documents',\n                  }\n                : null,\n            permissions.canViewTeamMembers\n                ? {\n                      pathname: PartnersRoutesEnum.partnerMembers,\n                      to: PartnersRoutesEnum.partnerMembers,\n                      render: () => <span>{t('partner.tabs.members')}</span>,\n                      testSelector: 'members',\n                  }\n                : null,\n            featuresContext?.checkActiveClientFeature?.(ClientFeatureEnum.partnerInvoices)\n                ? {\n                      pathname: PartnersRoutesEnum.partnerInvoices,\n                      to: PartnersRoutesEnum.partnerInvoices,\n                      render: () => <span>{t('partner.tabs.invoices')}</span>,\n                      testSelector: 'invoices',\n                  }\n                : null,\n            partnerType === PartnerTypeEnum.carrier && permissions.canViewTrailers\n                ? {\n                      pathname: PartnersRoutesEnum.partnerTrailers,\n                      to: PartnersRoutesEnum.partnerTrailers,\n                      render: () => <span>{t('partner.tabs.trailers')}</span>,\n                      testSelector: 'trailers',\n                  }\n                : null,\n            partnerType === PartnerTypeEnum.carrier && permissions.canViewTrucks\n                ? {\n                      pathname: PartnersRoutesEnum.partnerTrucks,\n                      to: PartnersRoutesEnum.partnerTrucks,\n                      render: () => <span>{t('partner.tabs.trucks')}</span>,\n                      testSelector: 'trucks',\n                  }\n                : null,\n            partnerType === PartnerTypeEnum.carrier &&\n            permissions.canViewDrivers &&\n            featuresContext?.checkActiveClientFeature?.(ClientFeatureEnum.partnerDrivers)\n                ? {\n                      pathname: PartnersRoutesEnum.partnerDrivers,\n                      to: PartnersRoutesEnum.partnerDrivers,\n                      render: () => <span>{t('partner.tabs.drivers')}</span>,\n                      testSelector: 'drivers',\n                  }\n                : null,\n            partnerType === PartnerTypeEnum.carrier\n                ? {\n                      pathname: PartnersRoutesEnum.partnerTransportOrders,\n                      to: PartnersRoutesEnum.partnerTransportOrders,\n                      render: () => <span>{t('partner.tabs.transport-orders')}</span>,\n                      testSelector: 'transport-orders',\n                  }\n                : null,\n        ];\n    }, [partnerDetails, featuresContext, partnerType, permissions, t, warningBadgeNode]);\n\n    const scrollBarWidth = React.useMemo(\n        () => getScrollbarWidth(containerRef?.current),\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        [containerRef?.current],\n    );\n\n    const isShowPartnerNameLoader = !partnerDetails && !fetchRequest.ok && !fetchRequest.error;\n\n    const partnerContextValue = React.useMemo(() => {\n        return {\n            partnerType: parsePartnerTypeParam(params.partnerType),\n            partnerId: params.partnerId,\n        };\n    }, [params.partnerId, params.partnerType]);\n\n    return (\n        <RemoteFormActionsContext.Provider value={remoteFormActions}>\n            <PartnerContext.Provider value={partnerContextValue}>\n                <PartnerPermissionsContextProvider partnerId={partnerContextValue.partnerId}>\n                    <PageTitle\n                        title={t('page-titles.partner', {\n                            name: partnerDetails?.name || '',\n                        })}\n                    />\n                    <Switch>\n                        <Route path={PartnersRoutesEnum.partnerTransportOrderDetails}>\n                            <PartnerTransportOrderDetails />\n                        </Route>\n                        <Route path=\"*\">\n                            <ScrollableContent\n                                scrollContainerRef={containerRef}\n                                onContainerScroll={onContainerScroll}\n                                stickyHeaderNode={\n                                    <TopBar isSticky isWhite={scrollTop > 10} scrollBarWidth={scrollBarWidth}>\n                                        <TopBarContent\n                                            leftNode={<BackButton onClick={goToPartnersPage} isDisabled={false} />}\n                                            title={\n                                                isShowPartnerNameLoader ? (\n                                                    <InlineLoader lineHeight={20} />\n                                                ) : (\n                                                    `${partnerDetails?.name || ''}${\n                                                        partnerDetails?.number\n                                                            ? ` (${partnerDetails?.number || ''})`\n                                                            : ''\n                                                    }`\n                                                )\n                                            }\n                                            afterTitle={<PartnerTypePill type={partnerType} />}\n                                            rightNode={\n                                                <>\n                                                    <Switch>\n                                                        <Route path={PartnersRoutesEnum.partnerDetails}>\n                                                            <RemoteFormActions className={cx('header__controls')} />\n                                                        </Route>\n                                                    </Switch>\n                                                    <NotificationsBarTrigger />\n                                                </>\n                                            }\n                                        />\n                                    </TopBar>\n                                }\n                            >\n                                <ContentMargins>\n                                    <div className={cx('controls')}>\n                                        <NavigationTabs tabsConfig={tabsConfig} onSelectTab={handleSelectTab} />\n                                        <Button\n                                            theme={ButtonThemeEnum.transparent}\n                                            onClick={() => {\n                                                setActionsSidebarOpen(true);\n                                            }}\n                                            testSelector=\"log\"\n                                        >\n                                            {t('partner.log')}\n                                        </Button>\n                                    </div>\n                                    {partnerDetails?.operationUnavailableReasons?.length ? (\n                                        <PartnerOperationUnavailableReasonsAlert\n                                            className={cx('operation-unavailable-reasons-alert')}\n                                            partnerType={partnerType}\n                                            operationUnavailableReasons={partnerDetails.operationUnavailableReasons}\n                                            externalRestrictionMessage={partnerDetails.externalRestrictionMessage}\n                                        />\n                                    ) : null}\n                                </ContentMargins>\n                                <Switch>\n                                    <Route path={PartnersRoutesEnum.partnerDetails}>\n                                        <PartnerDetailsPage />\n                                    </Route>\n                                    <Route path={PartnersRoutesEnum.partnerDocuments}>\n                                        <PartnerDocumentsPage />\n                                    </Route>\n                                    <Route path={PartnersRoutesEnum.partnerMembers}>\n                                        <PartnerMembersPage />\n                                    </Route>\n                                    <Route path={PartnersRoutesEnum.partnerInvoices}>invoices</Route>\n                                    <Route path={PartnersRoutesEnum.partnerTrailers}>\n                                        <PartnerTrailersPage onOpenUserDetails={handleOpenUserDetails} />\n                                    </Route>\n                                    <Route path={PartnersRoutesEnum.partnerDrivers}>\n                                        <PartnerDriversPage />\n                                    </Route>\n                                    <Route path={PartnersRoutesEnum.partnerTrucks}>\n                                        <PartnerTrucksPage onOpenUserDetails={handleOpenUserDetails} />\n                                    </Route>\n                                    <Route path={PartnersRoutesEnum.partnerTransportOrders}>\n                                        <PartnerTransportOrders />\n                                    </Route>\n                                </Switch>\n                            </ScrollableContent>\n                        </Route>\n                    </Switch>\n                    <SideBar\n                        isShow={isActionsSidebarOpen}\n                        isWide\n                        position={SideBarPositionEnum.right}\n                        onClose={() => {\n                            setActionsSidebarOpen(false);\n                        }}\n                    >\n                        {(close) => <PartnerLogSideBarContent partnerId={partnerId} onClose={close} />}\n                    </SideBar>\n                    <SideBars />\n                </PartnerPermissionsContextProvider>\n            </PartnerContext.Provider>\n        </RemoteFormActionsContext.Provider>\n    );\n});\n\nexport default PartnerPage;\n","import * as React from 'react';\nimport { CommonSidebarDataT, CommonSidebarsTypeEnum, SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { TruckDetailsSidebarDataT } from './models';\nimport history from 'common/utils/history';\nimport useCommonUrlFactoryContext from 'common/utils/hooks/useCommonUrlFactoryContext';\nimport CommonEditableTruckDetailsLayout from 'common/layouts/CommonEditableTruckDetailsLayout/CommonEditableTruckDetailsLayout';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport { logWarning } from 'common/utils/logger';\n\ntype PropsT = SidebarContentPropsT<TruckDetailsSidebarDataT, CommonSidebarDataT>;\n\nconst EditableTruckDetailsSidebarContent: React.FC<PropsT> = (props) => {\n    const { data, onGoBack, onClose, setNeedCloseConfirmation, onOpenNextSidebar } = props;\n\n    const commonUrlFactory = useCommonUrlFactoryContext();\n\n    const partnerContext = usePartnerContext();\n\n    const partnerId = data.partnerId || partnerContext.partnerId;\n    const partnerType = partnerContext.partnerType || null;\n\n    if (!onClose) {\n        return null;\n    }\n\n    const handleShowMap = () => {\n        history.push(commonUrlFactory.truckDetails(data.partnerId, data.truckId));\n    };\n\n    const handleOpenTruckDetails = (truckId: TruckIdT) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleOpenTruckDetails');\n            return;\n        }\n        onOpenNextSidebar({\n            type: CommonSidebarsTypeEnum.truckDetails,\n            partnerId,\n            truckId,\n        });\n    };\n\n    const handleOpenContactDetails = (contractId: CarrierContractIdT) => {\n        onOpenNextSidebar({\n            type: CommonSidebarsTypeEnum.carrierContract,\n            contractId,\n            initIsEditing: false,\n            partnerId: data.partnerId,\n        });\n    };\n\n    const handleOpenUserDetails = (userId: UserIdT) => {\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in handleOpenUserDetails');\n            return;\n        }\n        onOpenNextSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId,\n            partnerType,\n            userId,\n        });\n    };\n\n    const handleOpenTrailerDetails = (trailerId: TrailerIdT) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleOpenTrailerDetails');\n            return;\n        }\n        onOpenNextSidebar({\n            type: CommonSidebarsTypeEnum.trailerDetails,\n            partnerId,\n            trailerId,\n        });\n    };\n\n    return (\n        <CommonEditableTruckDetailsLayout\n            truckId={data.truckId}\n            partnerId={data.partnerId}\n            isDisableShowOnMap={!!data.isDisableShowOnMap}\n            isReadOnly={!!data.isReadOnly}\n            onClose={onClose}\n            onGoBack={onGoBack || undefined}\n            isShowMap={false}\n            onToggleShowMap={handleShowMap}\n            setNeedCloseConfirmation={setNeedCloseConfirmation}\n            onOpenTrailerDetails={handleOpenTrailerDetails}\n            onOpenTruckDetails={handleOpenTruckDetails}\n            onOpenContactDetails={handleOpenContactDetails}\n            onOpenUserDetails={handleOpenUserDetails}\n        />\n    );\n};\n\nexport default EditableTruckDetailsSidebarContent;\n","import { SharableStateT } from '../models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { TrucksDictT } from './models';\nimport flatten from 'lodash/flatten';\nimport keyBy from 'lodash/keyBy';\nimport { ApiTruckDictTypeT } from 'common/utils/api/models';\n\nexport const selectTrucksDict = (state: SharableStateT): TrucksDictT | null => state.trucksDict.trucksDict;\n\nexport const selectTrucksDictRequest = (state: SharableStateT): RequestStatusT => state.trucksDict.trucksDictRequest;\n\nexport const selectTrucksDictList = (state: SharableStateT): Array<ApiTruckDictTypeT> => {\n    return flatten(Object.values(state?.trucksDict?.trucksDict || {}));\n};\n\nexport const selectTrucksDictById = (state: SharableStateT): Record<string, ApiTruckDictTypeT> => {\n    const list = selectTrucksDictList(state);\n\n    return keyBy(list, 'id');\n};\n","export enum SpotDetailsTabEnum {\n    details = 'details',\n    bids = 'bids',\n}\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PartnerAddressWidget.scss';\nimport { useTranslation } from 'react-i18next';\nimport { PartnerDetailsT } from 'broker-admin/store/partner/details/models';\nimport { AddressTypeEnum } from 'common/utils/api/models';\nimport Widget from 'common/components/Widget/Widget';\nimport AddressWidgetHeaderActions from '../AddressWidgetHeaderActions/AddressWidgetHeaderActions';\nimport { CountryCodeT } from 'common/store/countries-dict/models';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport { useCountriesByCode } from 'common/utils/hooks/useCountriesByCode';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport { checkIsFilledPartnerAddress } from 'broker-admin/store/partner/details/utils/addresses';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    address: PartnerDetailsT['legalAddress'];\n    addressType: AddressTypeEnum;\n    billingEmail?: string;\n    className?: string;\n    companyId: string | undefined;\n    isVerified: boolean;\n    title: React.ReactNode;\n};\n\nconst PartnerAddressWidget: React.FC<PropsT> = React.memo((props) => {\n    const { address, addressType, billingEmail, className, companyId, isVerified, title } = props;\n\n    const { t } = useTranslation();\n    const countryByCode = useCountriesByCode();\n\n    const country = countryByCode[address?.country as CountryCodeT];\n    const fullAddress = [\n        country?.userLangDisplayName || '',\n        address?.zipCode,\n        address?.city,\n        address?.street1,\n        address?.street2,\n    ]\n        .join(' ')\n        .trim();\n\n    const hasAddress = checkIsFilledPartnerAddress(address);\n    const needApproved = hasAddress && !isVerified;\n\n    return (\n        <Widget\n            className={cx('widget', className)}\n            title={title}\n            rightNode={\n                <AddressWidgetHeaderActions\n                    isShowStatus={hasAddress}\n                    addressType={addressType}\n                    fullAddress={fullAddress}\n                    needApproved={needApproved}\n                    companyId={companyId}\n                />\n            }\n        >\n            <div className={cx('widget__inner')}>\n                <FieldGroup spaces={1}>\n                    <ReadOnlyField\n                        className={cx('field--country')}\n                        label=\" \"\n                        value={country?.userLangDisplayName || ''}\n                        icon={<FlagIcon countryCode={country?.code} />}\n                    />\n                    <ReadOnlyField\n                        className={cx('field--zip')}\n                        label={t('partner.details-tab.fields.zip.label')}\n                        value={address?.zipCode || ''}\n                    />\n                    <ReadOnlyField\n                        className={cx('field--city')}\n                        label={t('partner.details-tab.fields.city.label')}\n                        value={address?.city || ''}\n                    />\n                </FieldGroup>\n                <ReadOnlyField label={t('partner.details-tab.fields.street1.label')} value={address?.street1 || ''} />\n                <ReadOnlyField label={t('partner.details-tab.fields.street2.label')} value={address?.street2 || ''} />\n                {billingEmail !== undefined && (\n                    <ReadOnlyField label={t('partner.details-tab.fields.billing-email.label')} value={billingEmail} />\n                )}\n            </div>\n        </Widget>\n    );\n});\n\nexport default PartnerAddressWidget;\n","import React, { useCallback } from 'react';\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames/bind';\nimport styles from './BrokerTeamsSuggest.scss';\nimport {\n    AsyncRequestFactoryResultT,\n    AsyncRequestFactoryT,\n    useAsyncOptionsRequest,\n} from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-options-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport DropdownSearchMultipleInput from 'design-system/components/dropdowns/DropdownSearchMultipleInput/DropdownSearchMultipleInput';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport PartnersIcon, { PartnersIconProps } from 'common/icons/PartnersIcon';\n\nconst cx = classNames.bind(styles);\n\ntype OptionT = {\n    id: TeamIdT;\n    name?: string;\n};\n\ntype ValueT = OptionT['id'] | null;\n\nexport type PropsT = {\n    className?: string;\n    initialOptions?: Array<OptionT>;\n    initialRequestStatus?: RequestStatusT;\n    onSelect: (values: Array<ValueT>, options: Array<OptionT>) => void;\n    values: Array<ValueT>;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    overlayClassName?: string;\n    hasClearControl?: InputPropsT['hasClearControl'];\n    hasError?: InputPropsT['hasError'];\n    hasWarning?: InputPropsT['hasWarning'];\n    placeholder: InputPropsT['placeholder'];\n    onBlur?: InputPropsT['onBlur'];\n    onFocus?: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasChanges?: boolean;\n    allowedQueryMinLength?: number;\n};\n\nconst BrokerTeamsSuggest: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        initialOptions,\n        values,\n        onSelect,\n        hasWarning,\n        hasError,\n        hasClearControl,\n        overlayPosition,\n        overlayClassName,\n        isDisabled,\n        placeholder,\n        onBlur,\n        onFocus,\n        hasChanges,\n        initialRequestStatus,\n        allowedQueryMinLength,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const requestFactory: AsyncRequestFactoryT<OptionT> = useCallback((query) => {\n        return brokerTranziitApi\n            .getTeamsFilter({\n                textSearch: query,\n                size: 100,\n            })\n            .then((response): AsyncRequestFactoryResultT<OptionT> => {\n                const [error, result] = response;\n                if (error) {\n                    return [error, null];\n                }\n\n                const items: Array<OptionT> =\n                    result?.content?.reduce<Array<OptionT>>((acc, item) => {\n                        if (item.id) {\n                            acc.push({\n                                id: item.id,\n                                name: item.name || '',\n                            });\n                        }\n\n                        return acc;\n                    }, []) || [];\n\n                return [null, items];\n            });\n    }, []);\n\n    const asyncOptionsRequest = useAsyncOptionsRequest<OptionT>({\n        initialOptions,\n        requestFactory,\n        settings: { allowedQueryMinLength },\n    });\n\n    const handleReset = () => {\n        onSelect([], []);\n    };\n\n    const handleFocus: InputPropsT['onFocus'] = () => {\n        if (onFocus) {\n            onFocus();\n        }\n    };\n\n    const renderOption = (option: OptionT | undefined, placeholder?: string): React.ReactNode => {\n        if (!option) {\n            return placeholder;\n        }\n\n        return <DropdownControlOptionLabel className={cx('option')} withoutPaddings label={option.name || ''} />;\n    };\n\n    const renderTrigger = (options: Array<OptionT> | undefined, placeholder?: string): React.ReactNode => {\n        if (!options?.length) {\n            return placeholder;\n        }\n\n        if (options?.length === 1) {\n            const firstOption = options?.[0] || null;\n\n            return <DropdownControlOptionLabel withoutPaddings label={firstOption?.name || ''} />;\n        }\n\n        return (\n            <DropdownControlOptionLabel\n                withoutPaddings\n                label={t('common:common-components.dropdown-multiple-input.multiple-values-selected')}\n                description={\n                    <PillLabel\n                        isSymmetrical\n                        theme={hasChanges ? PillLabelThemeEnum.orange : PillLabelThemeEnum.charcoal}\n                    >\n                        {options?.length || 0}\n                    </PillLabel>\n                }\n            />\n        );\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option.id;\n\n    return (\n        <DropdownSearchMultipleInput<OptionT, ValueT>\n            className={className}\n            selectedValues={values}\n            placeholder={placeholder}\n            options={asyncOptionsRequest.options}\n            isDisabled={isDisabled}\n            onSelect={onSelect}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            onChangeQuery={asyncOptionsRequest.onChangeQuery}\n            renderOption={renderOption}\n            renderTriggerContent={renderTrigger}\n            getOptionValue={getOptionValue}\n            hasChanges={hasChanges}\n            renderLeftIcon={(iconMeta) => <PartnersIcon {...PartnersIconProps.getControlProps(iconMeta)} />}\n            onBlur={onBlur}\n            onFocus={handleFocus}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            overlayClassName={overlayClassName}\n            isLoading={asyncOptionsRequest.requestStatus.loading || initialRequestStatus?.loading}\n            onReset={hasClearControl ? handleReset : undefined}\n        />\n    );\n};\n\nexport default BrokerTeamsSuggest;\n","import isEmpty from 'lodash/isEmpty';\nimport { CountryCodeT } from 'common/store/countries-dict/models';\nimport { CountrySettingsByCodeT } from 'common/store/country-settings-dict/models';\n\nexport const checkIsAvailableCountryForShip = (\n    location: LocationT | null,\n    countriesSettingsByCode: CountrySettingsByCodeT,\n): boolean => {\n    if (isEmpty(countriesSettingsByCode) || !location) {\n        return true;\n    }\n\n    const countryCode = location?.addressComponents?.countryCode;\n    if (!countryCode) {\n        // check only has countryCode\n        return true;\n    }\n\n    return !!countriesSettingsByCode[countryCode.toUpperCase() as CountryCodeT]?.ship;\n};\n\nexport const checkIsAvailableCountryForShipByCode = (\n    countryCode: string | null,\n    countriesSettingsByCode: CountrySettingsByCodeT,\n): boolean => {\n    if (isEmpty(countriesSettingsByCode) || !countryCode) {\n        return true;\n    }\n\n    return !!countriesSettingsByCode[countryCode.toUpperCase() as CountryCodeT]?.ship;\n};\n\nexport const checkIsAvailableCountryForDropAsset = (\n    location: LocationT | null,\n    countriesSettingsByCode: CountrySettingsByCodeT,\n): boolean => {\n    return checkIsAvailableCountryForShip(location, countriesSettingsByCode);\n};\n\nexport const checkIsAvailableCountryForServiceMaintananceAsset = (\n    location: LocationT | null,\n    countriesSettingsByCode: CountrySettingsByCodeT,\n): boolean => {\n    return checkIsAvailableCountryForShip(location, countriesSettingsByCode);\n};\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\nimport RightArrowIcon from 'common/icons/RightArrowIcon';\n\ntype PropsT = {\n    entityType: 'TRANSPORT_ORDER';\n    className?: string;\n    onClick: () => void;\n};\n\nconst entityTypeToLabel: Record<PropsT['entityType'], string> = {\n    TRANSPORT_ORDER: 'common:vehicle-schedule.entity-link.transport-order',\n};\n\nconst EntityLinkTooltipContent: React.FC<PropsT> = React.memo((props) => {\n    const { onClick, className, entityType } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <Button\n            className={className}\n            theme={ButtonThemeEnum.transparentLightAlpha}\n            testSelector=\"entity-link\"\n            onClick={onClick}\n            rightIcon={<RightArrowIcon fillColor={StyleGuideColorsEnum.white} />}\n        >\n            {t(entityTypeToLabel[entityType])}\n        </Button>\n    );\n});\n\nexport default EntityLinkTooltipContent;\n","import geoServicesConfig from 'common/utils/api/geo-services-config';\nimport { BootstrapURLKeys, MapOptions } from 'google-map-react';\n\nexport const BOOTSTRAP_URL_KEYS: BootstrapURLKeys = {\n    libraries: ['places'],\n    key: geoServicesConfig.mapsApiKey,\n    language: geoServicesConfig.language,\n};\n\nexport const DEFAULT_POINT_ZOOM = 16;\nexport const DEFAULT_ZOOM = 4;\nexport const DEFAULT_CENTER = {\n    lat: 52.519881,\n    lng: 13.407338,\n};\n\nexport const MAP_OPTIONS: MapOptions = {\n    mapTypeControl: true,\n    mapTypeId: 'roadmap',\n    mapTypeControlOptions: {\n        style: 0,\n        position: 9,\n        mapTypeIds: ['roadmap', 'satellite'],\n    },\n    controlSize: 25,\n    fullscreenControl: false,\n    zoomControlOptions: {\n        position: 6,\n    },\n    styles: [\n        // common\n        {\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#616161',\n                },\n            ],\n        },\n        {\n            elementType: 'labels.text.stroke',\n            stylers: [\n                {\n                    color: '#f5f5f5',\n                },\n            ],\n        },\n        // administrative\n        {\n            featureType: 'administrative.land_parcel',\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#bdbdbd',\n                },\n            ],\n        },\n        // poi\n        {\n            featureType: 'poi',\n            elementType: 'geometry',\n            stylers: [\n                {\n                    color: '#eeeeee',\n                },\n            ],\n        },\n        {\n            featureType: 'poi',\n            elementType: 'labels.icon',\n            stylers: [\n                {\n                    color: '#616161',\n                },\n            ],\n        },\n        {\n            featureType: 'poi',\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#757575',\n                },\n            ],\n        },\n        {\n            featureType: 'poi.government',\n            stylers: [{ visibility: 'off' }],\n        },\n        {\n            featureType: 'poi.park',\n            stylers: [\n                {\n                    visibility: 'off',\n                },\n            ],\n        },\n        {\n            featureType: 'poi.attraction',\n            stylers: [\n                {\n                    visibility: 'off',\n                },\n            ],\n        },\n        {\n            featureType: 'poi.medical',\n            stylers: [\n                {\n                    visibility: 'off',\n                },\n            ],\n        },\n        {\n            featureType: 'poi.park',\n            stylers: [\n                {\n                    visibility: 'off',\n                },\n            ],\n        },\n        {\n            featureType: 'poi.place_of_worship',\n            stylers: [\n                {\n                    visibility: 'off',\n                },\n            ],\n        },\n        {\n            featureType: 'poi.school',\n            stylers: [\n                {\n                    visibility: 'off',\n                },\n            ],\n        },\n        {\n            featureType: 'poi.sports_complex',\n            stylers: [\n                {\n                    visibility: 'off',\n                },\n            ],\n        },\n        // road\n        {\n            featureType: 'road',\n            elementType: 'labels.icon',\n            stylers: [\n                {\n                    visibility: 'off',\n                },\n            ],\n        },\n        {\n            featureType: 'road',\n            elementType: 'geometry',\n            stylers: [\n                {\n                    color: '#ffffff',\n                },\n            ],\n        },\n        {\n            featureType: 'road.arterial',\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#757575',\n                },\n            ],\n        },\n        {\n            featureType: 'road.highway',\n            elementType: 'geometry',\n            stylers: [\n                {\n                    color: '#dadada',\n                },\n            ],\n        },\n        {\n            featureType: 'road.highway',\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#616161',\n                },\n            ],\n        },\n        {\n            featureType: 'road.local',\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#9e9e9e',\n                },\n            ],\n        },\n        // transit\n        {\n            featureType: 'transit',\n            stylers: [\n                {\n                    visibility: 'off',\n                },\n            ],\n        },\n        // water\n        {\n            featureType: 'water',\n            elementType: 'geometry',\n            stylers: [\n                {\n                    color: '#c9c9c9',\n                },\n            ],\n        },\n        {\n            featureType: 'water',\n            elementType: 'labels.text.fill',\n            stylers: [\n                {\n                    color: '#9e9e9e',\n                },\n            ],\n        },\n        // landscape\n        {\n            featureType: 'landscape.natural',\n            elementType: 'geometry.fill',\n            stylers: [\n                {\n                    color: '#f5f5f5',\n                },\n            ],\n        },\n    ],\n};\n","import React, { useMemo } from 'react';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectCompanyContacts, selectFetchContactsRequest } from 'common/store/members/selectors';\nimport keyBy from 'lodash/keyBy';\nimport { fetchContacts } from 'common/store/members/actions';\nimport { CompanyContactT } from 'common/store/members/models';\nimport { isNonNil } from 'common/utils';\nimport UserDropdownOptionLabel from 'common/components/dropdowns/options/UserDropdownOptionLabel/UserDropdownOptionLabel';\nimport ControlLoaderIcon, { ControlLoaderIconProps } from 'common/icons/ControlLoaderIcon';\nimport { UserStatusEnum } from 'common/utils/api/models';\nimport { logWarning } from 'common/utils/logger';\n\ntype ValueT = UserIdT | null;\ntype OptionT = UserIdT;\n\ntype PropsT = {\n    onChange: (userId: UserIdT | null, userName?: string) => void;\n    value: UserIdT | null;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    className?: string;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    hasChangeHighlight?: boolean;\n    companyId: CompanyIdT | null;\n    placeholder?: string;\n    hasChanges?: boolean;\n    onBlur: () => void;\n    onFocus: () => void;\n    hasClearControl?: boolean;\n};\n\nconst UserDropdown: React.FC<PropsT> = React.memo((props) => {\n    const {\n        onChange,\n        value,\n        overlayPosition,\n        className,\n        hasError,\n        hasWarning,\n        companyId,\n        placeholder,\n        hasChanges,\n        onBlur,\n        onFocus,\n        hasClearControl,\n    } = props;\n\n    const fetchRequest = useSelector(selectFetchContactsRequest(companyId));\n    const rawMembers = useSelector(selectCompanyContacts(companyId));\n    const members = React.useMemo(() => rawMembers || [], [rawMembers]);\n\n    const allIds = useMemo(() => {\n        return members\n            .filter((contact) => contact?.userStatus !== UserStatusEnum.pending)\n            .map((contact) => contact?.userId)\n            .filter(isNonNil);\n    }, [members]);\n\n    const memberByUserId = useMemo(() => {\n        return keyBy<CompanyContactT>(members, 'userId');\n    }, [members]);\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        if (!companyId) {\n            logWarning('Empty companyId in UserDropdown useEffect');\n            return;\n        }\n\n        dispatch(fetchContacts(companyId));\n    }, [dispatch, companyId]);\n\n    const renderOption = React.useCallback(\n        (id: ValueT | null | undefined): React.ReactElement | null => {\n            if (!id) {\n                return null;\n            }\n\n            const member = memberByUserId[id];\n\n            return <UserDropdownOptionLabel label={member?.fullName || id || ''} />;\n        },\n        [memberByUserId],\n    );\n\n    const getOptionValue = React.useCallback((option: OptionT): ValueT => option, []);\n\n    const handleReset = React.useCallback(() => {\n        onChange(null);\n    }, [onChange]);\n\n    const handleSelect = React.useCallback(\n        (userId: ValueT) => {\n            const member = memberByUserId[userId as ContactIdT] || null;\n            onChange(member?.userId || null, member?.fullName);\n        },\n        [memberByUserId, onChange],\n    );\n\n    return (\n        <DropdownInput<OptionT, ValueT>\n            testSelector=\"user\"\n            className={className}\n            selectedValue={value}\n            placeholder={placeholder}\n            options={allIds}\n            onSelect={handleSelect}\n            renderRightIcon={() =>\n                fetchRequest.loading ? <ControlLoaderIcon {...ControlLoaderIconProps.getFetchDataProps()} /> : null\n            }\n            hasError={hasError}\n            hasWarning={hasWarning}\n            renderOption={renderOption}\n            getOptionValue={getOptionValue}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            onReset={handleReset}\n            hasClearControl={hasClearControl}\n        />\n    );\n});\n\nexport default UserDropdown;\n","// extracted by mini-css-extract-plugin\nexport default {\"action--next\":\"ChangeTourStatusFooter__action--next___JXVkg\",\"tooltip\":\"ChangeTourStatusFooter__tooltip___HS8jg\",\"fadeIn\":\"ChangeTourStatusFooter__fadeIn___aar0x\",\"blinking\":\"ChangeTourStatusFooter__blinking___RovJk\"};","import { AuthErrorTypeEnum } from 'common/utils/api/auth/errors/auth-api-error';\nimport { useTranslation } from 'react-i18next';\n\nconst T_MAP: Partial<Record<AuthErrorTypeEnum, string>> = {\n    [AuthErrorTypeEnum.wrongPassword]: 'common:auth-errors.wrong-password',\n    [AuthErrorTypeEnum.failReauthenticateWithCredential]: 'common:auth-errors.fail-reauthenticate',\n    [AuthErrorTypeEnum.failUpdatePassword]: 'common:auth-errors.fail-update-password',\n    [AuthErrorTypeEnum.userNotFound]: 'common:auth-errors.user-not-found',\n    [AuthErrorTypeEnum.userDisabled]: 'common:auth-errors.user-disabled',\n    [AuthErrorTypeEnum.expiredActionCode]: 'common:auth-errors.expired-action-code',\n    [AuthErrorTypeEnum.invalidActionCode]: 'common:auth-errors.invalid-action-code',\n    [AuthErrorTypeEnum.weakPassword]: 'common:auth-errors.weak-password',\n    [AuthErrorTypeEnum.wrongRole]: 'common:auth-errors.wrong-role',\n    [AuthErrorTypeEnum.unknown]: 'common:something-went-wrong',\n};\n\nconst DEFAULT_T = 'common:something-went-wrong';\n\ntype ErrorMessageT = string;\n\nfunction useAsyncFormErrorMessage(errorType?: AuthErrorTypeEnum | null): ErrorMessageT | null {\n    const { t } = useTranslation();\n\n    if (!errorType || errorType === AuthErrorTypeEnum.networkRequestFailed) {\n        return null;\n    }\n\n    return t(T_MAP[errorType] || DEFAULT_T);\n}\n\nexport default useAsyncFormErrorMessage;\n","import * as React from 'react';\nimport { useEffect } from 'react';\n\nimport styles from './RevokeContractConfirmation.scss';\n\nimport { useTranslation } from 'react-i18next';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport Modal from 'common/components/Modal/Modal';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport { useFormik } from 'formik';\nimport { logWarning } from 'common/utils/logger';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { prepareRevokeInfo } from './prepare-revoke-data';\nimport ActiveContractDropdown from 'common/components/dropdowns/ActiveContractDropdown/ActiveContractDropdown';\nimport BigTrashIcon from 'common/icons/BigTrashIcon';\nimport { getContractName } from 'common/components/ContractName/ContractName';\nimport { CurrencyEnum, UnitTypeEnum } from 'common/constants';\nimport classNames from 'classnames/bind';\nimport { ApiRevokePartnerContractInfoT, RevokeContractActionEnum } from 'common/utils/api/models';\nimport NumberInput from 'common/components/NumberInput/NumberInput';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport Money from 'common/components/Money/Money';\nimport RevokeContractActionDropdown from 'common/layouts/BaseCarrierContractsLayout/dialogs/RevokeContractConfirmation/RevokeContractActionDropdown/RevokeContractActionDropdown';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\nexport type ConfirmRevokeContractModalDataT = {\n    id: CarrierContractIdT;\n    name?: string;\n    truckRateKm?: number;\n    boxRateKm?: number;\n    tiltRateKm?: number;\n};\n\ntype PropsT = {\n    data: ConfirmRevokeContractModalDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onConfirm: (contractId: CarrierContractIdT, revokeInfo: ApiRevokePartnerContractInfoT) => void;\n    requestStatus: RequestStatusT;\n};\n\nconst TEST_SELECTOR = 'revoke-contract-confirmation';\n\nconst RevokeContractConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, onClose, onConfirm, requestStatus } = props;\n    const { t } = useTranslation();\n\n    const { partnerId } = usePartnerContext();\n\n    const excludedContractIds = React.useMemo(() => {\n        if (!data) {\n            return [];\n        }\n        return [data.id];\n    }, [data]);\n\n    const isShow = !!data;\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values: FormValuesT = {\n            [FieldsEnum.action]: RevokeContractActionEnum.setNewContract,\n            [FieldsEnum.nextContractId]: null,\n            [FieldsEnum.boxesRatePerKm]: '',\n            [FieldsEnum.tiltsRatePerKm]: '',\n            [FieldsEnum.trucksRatePerKm]: '',\n        };\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const revokeInfo = prepareRevokeInfo(values);\n\n            if (!data?.id) {\n                logWarning('failed to revoke contract, empty data?.id');\n                return;\n            }\n\n            if (!revokeInfo) {\n                logWarning('failed to revoke contract, empty revokeInfo');\n                return;\n            }\n\n            onConfirm(data.id, revokeInfo);\n            formikHelpers.setTouched({});\n        },\n    });\n\n    useEffect(() => {\n        formik.resetForm();\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isShow]);\n\n    if (!isShow) {\n        return null;\n    }\n\n    const selectedAction = formik.values[FieldsEnum.action];\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <form onSubmit={formik.handleSubmit}>\n                    <ModalDialog\n                        width={DEFAULT_MODAL_DIALOG_WIDTH}\n                        testSelector={TEST_SELECTOR}\n                        actions={[\n                            {\n                                children: t('common:error-modal.actions.keep'),\n                                theme: ButtonThemeEnum.secondary,\n                                testSelector: `${TEST_SELECTOR}_keep`,\n                                isDisabled: requestStatus.loading,\n                                onClick: () => {\n                                    onClose();\n                                },\n                            },\n                            {\n                                children: t('common:error-modal.actions.revoke'),\n                                theme: ButtonThemeEnum.danger,\n                                testSelector: `${TEST_SELECTOR}_ok`,\n                                isLoading: requestStatus.loading,\n                                isDisabled: requestStatus.loading,\n                                type: 'submit',\n                            },\n                        ]}\n                        icon={<BigTrashIcon />}\n                        title={t('common:carrier-contracts.revoke-confirmation.title')}\n                        message={t('common:carrier-contracts.revoke-confirmation.description', {\n                            name: getContractName(data.name, t),\n                        })}\n                        body={\n                            <>\n                                <FormikField\n                                    name={FieldsEnum.action}\n                                    error={formik.errors[FieldsEnum.action]}\n                                    meta={formik.getFieldMeta(FieldsEnum.action)}\n                                    label={t('common:carrier-contracts.revoke-confirmation.fields.action.label')}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                >\n                                    {(props) => (\n                                        <RevokeContractActionDropdown\n                                            value={formik.values[FieldsEnum.action]}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                            onSelect={props.onChange}\n                                        />\n                                    )}\n                                </FormikField>\n                                {selectedAction === RevokeContractActionEnum.setNewContract && (\n                                    <FormikField\n                                        name={FieldsEnum.nextContractId}\n                                        error={formik.errors[FieldsEnum.nextContractId]}\n                                        meta={formik.getFieldMeta(FieldsEnum.nextContractId)}\n                                        label={t(\n                                            'common:carrier-contracts.revoke-confirmation.fields.next-contract.label',\n                                        )}\n                                        setFieldValue={formik.setFieldValue}\n                                        setFieldTouched={formik.setFieldTouched}\n                                    >\n                                        {(props) => (\n                                            <ActiveContractDropdown\n                                                excludedContractIds={excludedContractIds}\n                                                value={formik.values[FieldsEnum.nextContractId]}\n                                                isDisabled={false}\n                                                onChange={props.onChange}\n                                                placeholder={t(\n                                                    'common:carrier-contracts.revoke-confirmation.fields.next-contract.placeholder',\n                                                )}\n                                                hasError={props.hasError}\n                                                hasWarning={props.hasWarning}\n                                                onBlur={props.onBlur}\n                                                onFocus={props.onFocus}\n                                                companyId={partnerId}\n                                            />\n                                        )}\n                                    </FormikField>\n                                )}\n                                {selectedAction === RevokeContractActionEnum.setNewRate && (\n                                    <FieldGroup>\n                                        <FormikField\n                                            name={FieldsEnum.trucksRatePerKm}\n                                            error={formik.errors[FieldsEnum.trucksRatePerKm]}\n                                            meta={formik.getFieldMeta(FieldsEnum.trucksRatePerKm)}\n                                            label={t(\n                                                'common:carrier-contracts.revoke-confirmation.fields.truck-rate-per-km.label',\n                                            )}\n                                            setFieldValue={formik.setFieldValue}\n                                            setFieldTouched={formik.setFieldTouched}\n                                        >\n                                            {(props) => (\n                                                <NumberInput\n                                                    name={FieldsEnum.trucksRatePerKm}\n                                                    unitType={UnitTypeEnum.euroAbbreviation}\n                                                    value={formik.values[FieldsEnum.trucksRatePerKm]}\n                                                    placeholder={t(\n                                                        'common:carrier-contracts.revoke-confirmation.fields.truck-rate-per-km.placeholder',\n                                                    )}\n                                                    onChange={props.onChange}\n                                                    onBlur={props.onBlur}\n                                                    onFocus={props.onFocus}\n                                                    hasError={props.hasError}\n                                                    hasWarning={props.hasWarning}\n                                                    step={1}\n                                                />\n                                            )}\n                                        </FormikField>\n                                        <FormikField\n                                            name={FieldsEnum.boxesRatePerKm}\n                                            error={formik.errors[FieldsEnum.boxesRatePerKm]}\n                                            meta={formik.getFieldMeta(FieldsEnum.boxesRatePerKm)}\n                                            label={t(\n                                                'common:carrier-contracts.revoke-confirmation.fields.box-rate-per-km.label',\n                                            )}\n                                            setFieldValue={formik.setFieldValue}\n                                            setFieldTouched={formik.setFieldTouched}\n                                        >\n                                            {(props) => (\n                                                <NumberInput\n                                                    name={FieldsEnum.boxesRatePerKm}\n                                                    unitType={UnitTypeEnum.euroAbbreviation}\n                                                    value={formik.values[FieldsEnum.boxesRatePerKm]}\n                                                    placeholder={t(\n                                                        'common:carrier-contracts.revoke-confirmation.fields.box-rate-per-km.placeholder',\n                                                    )}\n                                                    onChange={props.onChange}\n                                                    onBlur={props.onBlur}\n                                                    onFocus={props.onFocus}\n                                                    hasError={props.hasError}\n                                                    hasWarning={props.hasWarning}\n                                                    step={1}\n                                                />\n                                            )}\n                                        </FormikField>\n                                        <FormikField\n                                            name={FieldsEnum.tiltsRatePerKm}\n                                            error={formik.errors[FieldsEnum.tiltsRatePerKm]}\n                                            meta={formik.getFieldMeta(FieldsEnum.tiltsRatePerKm)}\n                                            label={t(\n                                                'common:carrier-contracts.revoke-confirmation.fields.tilt-rate-per-km.label',\n                                            )}\n                                            setFieldValue={formik.setFieldValue}\n                                            setFieldTouched={formik.setFieldTouched}\n                                        >\n                                            {(props) => (\n                                                <NumberInput\n                                                    name={FieldsEnum.tiltsRatePerKm}\n                                                    unitType={UnitTypeEnum.euroAbbreviation}\n                                                    value={formik.values[FieldsEnum.tiltsRatePerKm]}\n                                                    placeholder={t(\n                                                        'common:carrier-contracts.revoke-confirmation.fields.tilt-rate-per-km.placeholder',\n                                                    )}\n                                                    onChange={props.onChange}\n                                                    onBlur={props.onBlur}\n                                                    onFocus={props.onFocus}\n                                                    hasError={props.hasError}\n                                                    hasWarning={props.hasWarning}\n                                                    step={1}\n                                                />\n                                            )}\n                                        </FormikField>\n                                    </FieldGroup>\n                                )}\n                                {selectedAction === RevokeContractActionEnum.keepOldRate && (\n                                    <FieldGroup>\n                                        <ReadOnlyField\n                                            label={t(\n                                                'common:carrier-contracts.revoke-confirmation.fields.truck-rate-per-km.label',\n                                            )}\n                                            value={\n                                                data?.truckRateKm ? (\n                                                    <Money amount={data.truckRateKm} currency={CurrencyEnum.EUR} />\n                                                ) : (\n                                                    ''\n                                                )\n                                            }\n                                            placeholder={t('common:fields.placeholder.empty')}\n                                        />\n                                        <ReadOnlyField\n                                            label={t(\n                                                'common:carrier-contracts.revoke-confirmation.fields.box-rate-per-km.label',\n                                            )}\n                                            value={\n                                                data?.boxRateKm ? (\n                                                    <Money amount={data.boxRateKm} currency={CurrencyEnum.EUR} />\n                                                ) : (\n                                                    ''\n                                                )\n                                            }\n                                            placeholder={t('common:fields.placeholder.empty')}\n                                        />\n                                        <ReadOnlyField\n                                            label={t(\n                                                'common:carrier-contracts.revoke-confirmation.fields.tilt-rate-per-km.label',\n                                            )}\n                                            value={\n                                                data?.tiltRateKm ? (\n                                                    <Money amount={data.tiltRateKm} currency={CurrencyEnum.EUR} />\n                                                ) : (\n                                                    ''\n                                                )\n                                            }\n                                            placeholder={t('common:fields.placeholder.empty')}\n                                        />\n                                    </FieldGroup>\n                                )}\n                            </>\n                        }\n                    />\n                </form>\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default RevokeContractConfirmation;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PartnerDriversPage.scss';\nimport DriversPageLayout from 'common/layouts/DriversPageLayout/DriversPageLayout';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst PartnerDriversPage: React.FC<PropsT> = React.memo(() => {\n    return <DriversPageLayout />;\n});\n\nexport default PartnerDriversPage;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\n\nimport styles from './SetUnavailableFooterContent.scss';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport SetUnavailableForm from '../SetUnavailableForm/SetUnavailableForm';\nimport { SetUnavailableVehicleQueryT } from 'common/utils/api/models';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport { useSelector } from 'react-redux';\nimport { selectFetchScheduleRequest } from 'common/store/vehicle-schedules/selectors';\nimport { AssetTypeEnum } from 'common/constants';\nimport { GoogleMapsLoaderWithoutMaps } from 'common/components/maps/GoogleMapsLoaderWithoutMaps/GoogleMapsLoaderWithoutMaps';\nimport GoogleMapContextProvider from 'common/components/maps/GoogleMapContextProvider/GoogleMapContextProvider';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    onClose: () => void;\n    isLoading: boolean;\n    assetId: AssetIdT | null;\n    assetType: AssetTypeEnum;\n    onSetUnavailable: (assetId: AssetIdT, query: SetUnavailableVehicleQueryT) => void;\n};\n\nconst SetUnavailableFooterContent: React.FC<PropsT> = React.memo((props) => {\n    const { assetId, assetType, onClose, isLoading, onSetUnavailable, className } = props;\n\n    const requestStatus = useSelector(selectFetchScheduleRequest(assetId));\n\n    return (\n        <GoogleMapContextProvider>\n            <>\n                <GoogleMapsLoaderWithoutMaps />\n                {requestStatus.loading && <LoaderOverlay />}\n                <div className={cs(cx('content'), className)}>\n                    <TransparentTrigger\n                        className={cx('close-button')}\n                        onClick={onClose}\n                        leftIcon={<CloseIcon />}\n                        reflectionTheme={ReflectionThemeEnum.light}\n                    />\n                    <SetUnavailableForm\n                        isLoading={isLoading}\n                        assetId={assetId}\n                        assetType={assetType}\n                        onSetUnavailable={onSetUnavailable}\n                    />\n                </div>\n            </>\n        </GoogleMapContextProvider>\n    );\n});\n\nexport default SetUnavailableFooterContent;\n","import * as React from 'react';\nimport { OrderStatusEnum, ApiOrderStatusT } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    status: ApiOrderStatusT | null | undefined;\n};\n\nexport const ORDER_STATUS_T_MAP: Record<ApiOrderStatusT, string> = {\n    [OrderStatusEnum.placed]: 'common:order-status.PLACED',\n    [OrderStatusEnum.inProgress]: 'common:order-status.IN_PROGRESS',\n    [OrderStatusEnum.delivered]: 'common:order-status.DELIVERED',\n    [OrderStatusEnum.canceled]: 'common:order-status.CANCELED',\n    [OrderStatusEnum.done]: 'common:order-status.DONE',\n};\n\nconst OrderStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return null;\n    }\n\n    return t(ORDER_STATUS_T_MAP[status]);\n});\n\nexport default OrderStatus;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    // eslint-disable-next-line react/no-unused-prop-types\n    lat?: number;\n    // eslint-disable-next-line react/no-unused-prop-types\n    lng?: number;\n    className?: string;\n    fillColor: StyleGuideColorsEnum;\n    number: number;\n};\n\nconst NumberPinIcon: React.FC<PropsT> = (props) => {\n    const { className, fillColor, number } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"45\" viewBox=\"0 0 40 45\" className={className}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path\n                    fill={fillColor}\n                    d=\"M25 0c8.284 0 15 6.716 15 15v10c0 8.284-6.716 15-15 15l-5 5-5-5C6.716 40 0 33.284 0 25V15C0 6.716 6.716 0 15 0h10z\"\n                />\n                <text fill=\"#FFF\" fontFamily=\"Roboto-Black, Roboto\" fontSize=\"28\" fontWeight=\"800\" textAnchor=\"middle\">\n                    <tspan x=\"20\" y=\"30\">\n                        {number}\n                    </tspan>\n                </text>\n            </g>\n        </svg>\n    );\n};\n\nNumberPinIcon.displayName = 'NumberPinIcon';\n\nconst storyProps: PropsT = {\n    number: 1,\n    fillColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default NumberPinIcon;\n","import { RequestStatusT } from 'common/utils/request-status';\n\nimport {\n    CompanyTrailersStatsT,\n    FetchTrailersPageQueryT,\n    ApiTrailerDetailsT,\n    ApiTrailerT,\n    ActivateTrailersRequestT,\n} from './models';\nimport {\n    ApiChangeContractVehiclesRequestT,\n    ApiChangeRateVehiclesRequestT,\n    ApiTrailerAddRequestT,\n    ApiTrailerUpdateRequestT,\n} from 'common/utils/api/models';\nimport { PageResponseT, PaginationStateT } from 'common/utils/pagination/models';\n\nexport const FETCH_TRAILERS_PAGE_REQUEST = 'common/trailers/FETCH_TRAILERS_PAGE_REQUEST';\nexport const FETCH_TRAILERS_PAGE_REQUEST_BEGIN = 'common/trailers/FETCH_TRAILERS_PAGE_REQUEST_BEGIN';\nexport const FETCH_TRAILERS_PAGE_REQUEST_ERROR = 'common/trailers/FETCH_TRAILERS_PAGE_REQUEST_ERROR';\nexport const FETCH_TRAILERS_PAGE_REQUEST_SUCCESS = 'common/trailers/FETCH_TRAILERS_PAGE_REQUEST_SUCCESS';\n\nexport const RESET_TRAILERS = 'common/trailers/RESET_TRAILERS';\n\nexport const ADD_TRAILER_REQUEST = 'common/trailers/ADD_TRAILER_REQUEST';\nexport const ADD_TRAILER_REQUEST_BEGIN = 'common/trailers/ADD_TRAILER_REQUEST_BEGIN';\nexport const ADD_TRAILER_REQUEST_ERROR = 'common/trailers/ADD_TRAILER_REQUEST_ERROR';\nexport const ADD_TRAILER_REQUEST_SUCCESS = 'common/trailers/ADD_TRAILER_REQUEST_SUCCESS';\n\nexport const DELETE_TRAILERS_REQUEST = 'common/trailers/DELETE_TRAILERS_REQUEST';\nexport const DELETE_TRAILERS_REQUEST_BEGIN = 'common/trailers/DELETE_TRAILERS_REQUEST_BEGIN';\nexport const DELETE_TRAILERS_REQUEST_ERROR = 'common/trailers/DELETE_TRAILERS_REQUEST_ERROR';\nexport const DELETE_TRAILERS_REQUEST_SUCCESS = 'common/trailers/DELETE_TRAILERS_REQUEST_SUCCESS';\n\nexport const ACTIVATION_TRAILERS_REQUEST = 'common/trailers/ACTIVATION_TRAILERS_REQUEST';\nexport const ARCHIVE_TRAILERS_REQUEST = 'common/trailers/ARCHIVE_TRAILERS_REQUEST';\nexport const ASSIGN_TO_CONTRACT_TRAILERS_REQUEST = 'common/trailers/ASSIGN_TO_CONTRACT_TRAILERS_REQUEST';\nexport const CHANGE_RATE_TRAILERS_REQUEST = 'common/trailers/CHANGE_RATE_TRAILERS_REQUEST';\nexport const UPDATE_TRAILERS_REQUEST = 'common/trailers/UPDATE_TRAILERS_REQUEST';\nexport const UPDATE_TRAILERS_REQUEST_BEGIN = 'common/trailers/UPDATE_TRAILERS_REQUEST_BEGIN';\nexport const UPDATE_TRAILERS_REQUEST_ERROR = 'common/trailers/UPDATE_TRAILERS_REQUEST_ERROR';\nexport const UPDATE_TRAILERS_REQUEST_SUCCESS = 'common/trailers/UPDATE_TRAILERS_REQUEST_SUCCESS';\n\nexport const FETCH_TRAILER_DETAILS_REQUEST = 'common/trailers/FETCH_TRAILER_DETAILS_REQUEST';\nexport const FETCH_TRAILER_DETAILS_REQUEST_BEGIN = 'common/trailers/FETCH_TRAILER_DETAILS_REQUEST_BEGIN';\nexport const FETCH_TRAILER_DETAILS_REQUEST_ERROR = 'common/trailers/FETCH_TRAILER_DETAILS_REQUEST_ERROR';\nexport const FETCH_TRAILER_DETAILS_REQUEST_SUCCESS = 'common/trailers/FETCH_TRAILER_DETAILS_REQUEST_SUCCESS';\n\nexport const FETCH_TRAILERS_STATS_REQUEST = 'common/trailers/FETCH_TRAILERS_STATS_REQUEST';\nexport const FETCH_TRAILERS_STATS_REQUEST_BEGIN = 'common/trailers/FETCH_TRAILERS_STATS_REQUEST_BEGIN';\nexport const FETCH_TRAILERS_STATS_REQUEST_ERROR = 'common/trailers/FETCH_TRAILERS_STATS_REQUEST_ERROR';\nexport const FETCH_TRAILERS_STATS_REQUEST_SUCCESS = 'common/trailers/FETCH_TRAILERS_STATS_REQUEST_SUCCESS';\n\nexport const IMPORT_XLS_TRAILERS_REQUEST = 'common/trailers/IMPORT_XLS_TRAILERS_REQUEST';\nexport const IMPORT_XLS_TRAILERS_REQUEST_BEGIN = 'common/trailers/IMPORT_XLS_TRAILERS_REQUEST_BEGIN';\nexport const IMPORT_XLS_TRAILERS_REQUEST_ERROR = 'common/trailers/IMPORT_XLS_TRAILERS_REQUEST_ERROR';\nexport const IMPORT_XLS_TRAILERS_REQUEST_SUCCESS = 'common/trailers/IMPORT_XLS_TRAILERS_REQUEST_SUCCESS';\n\nexport const EXPORT_XLS_TRAILERS_REQUEST = 'common/trailers/EXPORT_XLS_TRAILERS_REQUEST';\nexport const EXPORT_XLS_TRAILERS_REQUEST_BEGIN = 'common/trailers/EXPORT_XLS_TRAILERS_REQUEST_BEGIN';\nexport const EXPORT_XLS_TRAILERS_REQUEST_ERROR = 'common/trailers/EXPORT_XLS_TRAILERS_REQUEST_ERROR';\nexport const EXPORT_XLS_TRAILERS_REQUEST_SUCCESS = 'common/trailers/EXPORT_XLS_TRAILERS_REQUEST_SUCCESS';\n\nexport type CompanyTrailersStateT = PaginationStateT<ApiTrailerT, FetchTrailersPageQueryT> & {\n    addRequest: RequestStatusT;\n    deleteRequest: RequestStatusT;\n    updateRequest: RequestStatusT;\n    detailsById: Record<TrailerIdT, ApiTrailerDetailsT | null>;\n    fetchDetailsRequest: RequestStatusT;\n    stats: CompanyTrailersStatsT | null;\n    fetchStatsRequest: RequestStatusT;\n    importXLSRequest: RequestStatusT;\n    exportXLSRequest: RequestStatusT;\n};\n\nexport type TrailersStateT = Record<CompanyIdT, CompanyTrailersStateT | null>;\n\nexport type FetchTrailersPageActionT = {\n    type: typeof FETCH_TRAILERS_PAGE_REQUEST;\n    pageNumber: PageNumberT;\n    query: FetchTrailersPageQueryT;\n    options?: FetchOptionsT;\n    companyId: CompanyIdT;\n};\n\nexport type FetchTrailersPageBeginActionT = {\n    type: typeof FETCH_TRAILERS_PAGE_REQUEST_BEGIN;\n    query: FetchTrailersPageQueryT;\n    pageNumber: PageNumberT;\n    companyId: CompanyIdT;\n};\n\nexport type FetchTrailersPageSuccessActionT = {\n    type: typeof FETCH_TRAILERS_PAGE_REQUEST_SUCCESS;\n    query: FetchTrailersPageQueryT;\n    pageNumber: PageNumberT;\n    pageResponse: PageResponseT<ApiTrailerT>;\n    companyId: CompanyIdT;\n};\n\nexport type FetchTrailersPageErrorActionT = {\n    type: typeof FETCH_TRAILERS_PAGE_REQUEST_ERROR;\n    query: FetchTrailersPageQueryT;\n    pageNumber: PageNumberT;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type ResetTrailersActionT = {\n    type: typeof RESET_TRAILERS;\n    companyId: CompanyIdT;\n    mutationListOptions: MutationListOptionsT;\n};\n\nexport type AddTrailerRequestActionT = {\n    type: typeof ADD_TRAILER_REQUEST;\n    data: ApiTrailerAddRequestT;\n    companyId: CompanyIdT;\n};\n\nexport type AddTrailerRequestBeginActionT = {\n    type: typeof ADD_TRAILER_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type AddTrailerRequestErrorActionT = {\n    type: typeof ADD_TRAILER_REQUEST_ERROR;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type AddTrailerRequestSuccessActionT = {\n    type: typeof ADD_TRAILER_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n};\n\nexport type DeleteTrailersRequestActionT = {\n    type: typeof DELETE_TRAILERS_REQUEST;\n    trailerIds: TrailerIdT[];\n    companyId: CompanyIdT;\n};\n\nexport type DeleteTrailersRequestBeginActionT = {\n    type: typeof DELETE_TRAILERS_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type DeleteTrailersRequestErrorActionT = {\n    type: typeof DELETE_TRAILERS_REQUEST_ERROR;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type DeleteTrailersRequestSuccessActionT = {\n    type: typeof DELETE_TRAILERS_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n};\n\nexport type ActivationTrailersRequestActionT = {\n    type: typeof ACTIVATION_TRAILERS_REQUEST;\n    activateTrailersRequest: ActivateTrailersRequestT;\n    companyId: CompanyIdT;\n};\n\nexport type AssignToContractRequestActionT = {\n    type: typeof ASSIGN_TO_CONTRACT_TRAILERS_REQUEST;\n    companyId: CompanyIdT;\n    changeContractRequest: ApiChangeContractVehiclesRequestT;\n    contractName: string | null;\n};\n\nexport type ChangeRateTrailersRequestActionT = {\n    type: typeof CHANGE_RATE_TRAILERS_REQUEST;\n    companyId: CompanyIdT;\n    changeRateVehiclesRequest: ApiChangeRateVehiclesRequestT;\n};\n\nexport type ArchiveTrailersRequestActionT = {\n    type: typeof ARCHIVE_TRAILERS_REQUEST;\n    trailerIds: TrailerIdT[];\n    companyId: CompanyIdT;\n    reason: string;\n};\n\nexport type UpdateTrailerActionT = {\n    type: typeof UPDATE_TRAILERS_REQUEST;\n    companyId: CompanyIdT;\n    trailerId: TrailerIdT;\n    updateTrailer: ApiTrailerUpdateRequestT;\n};\n\nexport type UpdateTrailersRequestBeginActionT = {\n    type: typeof UPDATE_TRAILERS_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type UpdateTrailersRequestErrorActionT = {\n    type: typeof UPDATE_TRAILERS_REQUEST_ERROR;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type UpdateTrailersRequestSuccessActionT = {\n    type: typeof UPDATE_TRAILERS_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n};\n\nexport type FetchTrailerDetailsActionT = {\n    type: typeof FETCH_TRAILER_DETAILS_REQUEST;\n    companyId: CompanyIdT;\n    trailerId: TrailerIdT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchTrailerDetailsBeginActionT = {\n    type: typeof FETCH_TRAILER_DETAILS_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type FetchTrailerDetailsErrorActionT = {\n    type: typeof FETCH_TRAILER_DETAILS_REQUEST_ERROR;\n    companyId: CompanyIdT;\n    error: Error;\n};\n\nexport type FetchTrailerDetailsSuccessActionT = {\n    type: typeof FETCH_TRAILER_DETAILS_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n    trailerId: TrailerIdT;\n    details: ApiTrailerDetailsT | null;\n};\n\nexport type FetchTrailersStatsActionT = {\n    type: typeof FETCH_TRAILERS_STATS_REQUEST;\n    companyId: CompanyIdT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchTrailersStatsBeginActionT = {\n    type: typeof FETCH_TRAILERS_STATS_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type FetchTrailersStatsErrorActionT = {\n    type: typeof FETCH_TRAILERS_STATS_REQUEST_ERROR;\n    companyId: CompanyIdT;\n    error: Error;\n};\n\nexport type FetchTrailersStatsSuccessActionT = {\n    type: typeof FETCH_TRAILERS_STATS_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n    stats: CompanyTrailersStatsT | null;\n};\n\nexport type ImportXLSTrailersActionT = {\n    type: typeof IMPORT_XLS_TRAILERS_REQUEST;\n    companyId: CompanyIdT;\n    file: File;\n};\n\nexport type ImportXLSTrailersBeginActionT = {\n    type: typeof IMPORT_XLS_TRAILERS_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type ImportXLSTrailersErrorActionT = {\n    type: typeof IMPORT_XLS_TRAILERS_REQUEST_ERROR;\n    companyId: CompanyIdT;\n    error: Error;\n};\n\nexport type ImportXLSTrailersSuccessActionT = {\n    type: typeof IMPORT_XLS_TRAILERS_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n};\n\nexport type ExportXLSTrailersActionT = {\n    type: typeof EXPORT_XLS_TRAILERS_REQUEST;\n    companyId: CompanyIdT;\n    query: FetchTrailersPageQueryT;\n};\n\nexport type ExportXLSTrailersBeginActionT = {\n    type: typeof EXPORT_XLS_TRAILERS_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type ExportXLSTrailersErrorActionT = {\n    type: typeof EXPORT_XLS_TRAILERS_REQUEST_ERROR;\n    companyId: CompanyIdT;\n    error: Error;\n};\n\nexport type ExportXLSTrailersSuccessActionT = {\n    type: typeof EXPORT_XLS_TRAILERS_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n};\n\nexport type TrailersActionT =\n    | FetchTrailersPageActionT\n    | FetchTrailersPageBeginActionT\n    | FetchTrailersPageSuccessActionT\n    | FetchTrailersPageErrorActionT\n    | ResetTrailersActionT\n    | AddTrailerRequestActionT\n    | AddTrailerRequestBeginActionT\n    | AddTrailerRequestErrorActionT\n    | AddTrailerRequestSuccessActionT\n    | DeleteTrailersRequestActionT\n    | DeleteTrailersRequestBeginActionT\n    | DeleteTrailersRequestErrorActionT\n    | DeleteTrailersRequestSuccessActionT\n    | ActivationTrailersRequestActionT\n    | ChangeRateTrailersRequestActionT\n    | AssignToContractRequestActionT\n    | UpdateTrailerActionT\n    | UpdateTrailersRequestBeginActionT\n    | UpdateTrailersRequestErrorActionT\n    | UpdateTrailersRequestSuccessActionT\n    | FetchTrailersStatsActionT\n    | FetchTrailersStatsBeginActionT\n    | FetchTrailersStatsErrorActionT\n    | FetchTrailersStatsSuccessActionT\n    | ArchiveTrailersRequestActionT\n    | FetchTrailerDetailsActionT\n    | FetchTrailerDetailsBeginActionT\n    | FetchTrailerDetailsErrorActionT\n    | FetchTrailerDetailsSuccessActionT\n    | ImportXLSTrailersActionT\n    | ImportXLSTrailersBeginActionT\n    | ImportXLSTrailersErrorActionT\n    | ImportXLSTrailersSuccessActionT\n    | ExportXLSTrailersActionT\n    | ExportXLSTrailersBeginActionT\n    | ExportXLSTrailersErrorActionT\n    | ExportXLSTrailersSuccessActionT;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport groupBy from 'lodash/groupBy';\nimport { useTranslation } from 'react-i18next';\n\nimport styles from './GroupedLogsLayout.scss';\nimport ControlLoaderWithShadow from 'common/components/ControlLoaderWithShadow/ControlLoaderWithShadow';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport RenderLogContext from 'common/contexts/render-log-context';\nimport LogCardFooter from 'common/components/logs/shared/LogCardFooter/LogCardFooter';\nimport LogCardHead from 'common/components/logs/shared/LogCardHead/LogCardHead';\nimport LogCardLayout from 'common/components/logs/shared/LogCardLayout/LogCardLayout';\nimport { AnyLogRecordT } from 'common/store/subject-logs/models';\nimport { checkNeedRenderEmptyState } from 'common/components/Table/utils/check-need-render-empty-state';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { formatHumanReadableDate, getDateFromISO } from 'common/utils/time';\nimport { stringifyLogSafely } from './utils';\nimport SideBarMessage, {\n    SideBarMessageEnum,\n} from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarMessage/SideBarMessage';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    requestStatus: RequestStatusT;\n    logs: AnyLogRecordT[];\n};\n\nconst GroupedLogsLayout: React.FC<PropsT> = React.memo((props) => {\n    const { requestStatus, logs } = props;\n\n    const { t } = useTranslation();\n    const { renderLogText, renderLog } = React.useContext(RenderLogContext);\n\n    const groupedLogs = React.useMemo(() => {\n        const groupedByDateLogs = groupBy(logs, (log) => getDateFromISO(log.timestamp));\n\n        return Object.entries(groupedByDateLogs).map(([date, items]) => ({ date, items }));\n    }, [logs]);\n\n    const isLoaded = requestStatus?.ok || Boolean(requestStatus?.error);\n\n    return (\n        <div className={cx('inner')}>\n            {!isLoaded && (\n                <div className={cx('loader__container')}>\n                    <ControlLoaderWithShadow className={cx('loader')} fillColor={StyleGuideColorsEnum.light} />\n                </div>\n            )}\n            {checkNeedRenderEmptyState(logs, requestStatus) && (\n                <SideBarMessage\n                    className={cx('empty')}\n                    iconType={SideBarMessageEnum.empty}\n                    title={t('common:logs-switchable-view.empty.title')}\n                />\n            )}\n            {isLoaded &&\n                groupedLogs.map(({ date, items }) => (\n                    <div key={date} className={cx('date-group')}>\n                        <div className={cx('date-group__title')}>{formatHumanReadableDate(t, date)}</div>\n                        <div className={cx('date-group__container')}>\n                            {items.map((log) => {\n                                const logView = renderLog?.(log);\n                                const logText = renderLogText?.(log) || stringifyLogSafely(log);\n\n                                if (!logView) {\n                                    return null;\n                                }\n\n                                return (\n                                    <LogCardLayout\n                                        key={log.id}\n                                        className={cx('log')}\n                                        {...logView.body}\n                                        headerNode={logView.header ? <LogCardHead {...logView.header} /> : null}\n                                        footerNode={logView.footer ? <LogCardFooter {...logView.footer} /> : null}\n                                    >\n                                        {logText}\n                                    </LogCardLayout>\n                                );\n                            })}\n                        </div>\n                    </div>\n                ))}\n        </div>\n    );\n});\n\nexport { GroupedLogsLayout };\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './TeamName.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    name: string;\n};\n\nconst TeamName: React.FC<PropsT> = React.memo((props) => {\n    const { name } = props;\n\n    return <span className={cx('team-name')}>{name}</span>;\n});\n\nexport default TeamName;\n","// extracted by mini-css-extract-plugin\nexport default {\"loader\":\"Loader__loader___lqxFx\",\"fadeIn\":\"Loader__fadeIn___acEfl\",\"blinking\":\"Loader__blinking___QTXRk\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './IconWithNumber.scss';\nimport isNumber from 'lodash/isNumber';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    isCompact?: boolean;\n    number?: number | null;\n    children?: React.ReactNode;\n};\n\nexport const clusterIconWithNumberStyle = {\n    paddingTop: 3,\n    paddingBottom: 3,\n} as const;\n\nconst IconWithNumber: React.FC<PropsT> = (props) => {\n    const { children, number, isCompact } = props;\n\n    if (!isNumber(number)) {\n        return children as React.ReactElement;\n    }\n\n    return (\n        <div className={cx('row')}>\n            <div className={cx('icon', { 'icon--isCompact': isCompact })}>{children}</div>\n            <div className={cx('number', { 'number--isCompact': isCompact })}>{number}</div>\n        </div>\n    );\n};\n\nexport default IconWithNumber;\n","import { TFunction } from 'i18next';\nimport { AsyncFormErrorsT, FieldsEnum, RouteFormValuesT } from './constants';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { ApiTruckAssetInvalidReasonT } from 'broker-admin/utils/api/broker-tranziit/models';\n\nconst truckInvalidReasonI18nMap: Record<ApiTruckAssetInvalidReasonT, string> = {\n    NO_ACCESS: 'deadhead-creation.validation.reasons.NO_ACCESS',\n    COMPANY_CANT_OPERATE: 'deadhead-creation.validation.reasons.COMPANY_CANT_OPERATE',\n    ASSET_IS_NOT_CONTRACTED: 'deadhead-creation.validation.reasons.ASSET_IS_NOT_CONTRACTED',\n    ASSET_CONTRACT_INACTIVE: 'deadhead-creation.validation.reasons.ASSET_CONTRACT_INACTIVE',\n};\n\ntype MetaT = {\n    contextRequestStatus: RequestStatusT;\n    contextPreviewRequestStatus: RequestStatusT;\n};\n\nconst asyncValidations = (\n    t: TFunction,\n    values: RouteFormValuesT,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    meta: MetaT,\n): AsyncFormErrorsT => {\n    const errors: AsyncFormErrorsT = {};\n\n    const selectedTruck = values[FieldsEnum.truck];\n    if (selectedTruck?.invalidReason) {\n        errors[FieldsEnum.truck] = t(truckInvalidReasonI18nMap[selectedTruck.invalidReason]);\n    }\n\n    return errors;\n};\n\nexport default asyncValidations;\n","import * as React from 'react';\n\nimport { pickFile } from 'common/utils/pick-file';\nimport { logWarning } from 'common/utils/logger';\nimport { attachPaperToShipment, deleteAttachedPaper } from 'common/store/papers-edit/actions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ApiShipmentAttachedPaperTypeT, ApiAttachPaperRequestT } from 'common/utils/api/models';\nimport { ShipmentPapersUrlFactoryI } from '../image-url-factories';\nimport { selectDeleteRequestStatus } from 'common/store/papers-edit/selectors';\nimport { downloadImage } from 'common/utils/download-image';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport { DeletePaperConfirmationDataT } from 'common/components/papers/dialogs/DeletePaperConfirmation/DeletePaperConfirmation';\nimport { ImageGalleryModalDataT } from '../modals/ImageGalleryModal/ImageGalleryModal';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAnyAlert, CommonAlertTypeEnum } from 'common/components/toasts/AlertToastsManager/models';\n\nexport const useAttachShipmentPapers = (shipmentPapersUrlFactory: ShipmentPapersUrlFactoryI) => {\n    const dispatch = useDispatch();\n\n    const [deletingPaperId, setDeletingPaperId] = React.useState<PaperIdT | null>(null);\n    const deleteRequestStatus = useSelector(selectDeleteRequestStatus(deletingPaperId));\n    const deletePaperConfirmationDialog = useModalDialog<DeletePaperConfirmationDataT>();\n    useCloseModalDialogAfterRequest(deleteRequestStatus, [deletePaperConfirmationDialog]);\n\n    const paperGalleryModal = useModalDialog<ImageGalleryModalDataT>();\n\n    return React.useMemo(() => {\n        return {\n            onAttachShipmentPaper: (\n                shipmentId: ShipmentIdT,\n                paperType: ApiShipmentAttachedPaperTypeT,\n                comment?: string,\n            ) => {\n                pickFile('image/*,application/pdf', (file) => {\n                    if (!shipmentId) {\n                        logWarning('failed upload paper, empty shipmentId');\n                        return;\n                    }\n\n                    const formData = new FormData();\n                    formData.append('file', file);\n\n                    dispatch(\n                        attachPaperToShipment({\n                            shipmentId,\n                            query: {\n                                paperType,\n                                comment,\n                            },\n                            data: formData as unknown as ApiAttachPaperRequestT,\n                        }),\n                    );\n                });\n            },\n            onDeleteShipmentPaper: (shipmentId: ShipmentIdT, paperId: PaperIdT) => {\n                deletePaperConfirmationDialog.setData({\n                    tourId: shipmentId as unknown as TourIdT,\n                    paperId,\n                });\n            },\n            onConfirmDeleteShipmentPaper: (data: DeletePaperConfirmationDataT) => {\n                const { paperId } = data;\n\n                if (!paperId) {\n                    logWarning('failed delete paper, empty paperId');\n                    return;\n                }\n\n                setDeletingPaperId(paperId);\n                dispatch(deleteAttachedPaper({ paperId }));\n            },\n            onDownloadShipmentPaper: (shipmentId: ShipmentIdT, documentId: DocumentIdT | undefined) => {\n                if (!shipmentId || !documentId) {\n                    logWarning('failed download paper, empty shipmentId or documentId');\n                    return;\n                }\n\n                const contentUrl = shipmentPapersUrlFactory.getContentUrl(shipmentId, documentId);\n                if (!contentUrl) {\n                    logWarning('failed download paper, empty contentUrl');\n                    return;\n                }\n\n                downloadImage(contentUrl).catch((error: Error) => {\n                    dispatch(\n                        addAlert(\n                            new CommonAnyAlert({\n                                type: CommonAlertTypeEnum.paperDownloadFailed,\n                                data: {\n                                    errorMessage: error.message,\n                                },\n                            }),\n                        ),\n                    );\n                });\n            },\n            onOpenGalleryShipmentPaper: (shipmentId: ShipmentIdT, documentId: DocumentIdT | undefined) => {\n                if (!shipmentId || !documentId) {\n                    logWarning('failed open gallery paper, empty shipmentId or documentId');\n                    return;\n                }\n\n                const contentUrl = shipmentPapersUrlFactory.getContentUrl(shipmentId, documentId);\n                if (!contentUrl) {\n                    logWarning('failed open gallery paper, empty contentUrl');\n                    return;\n                }\n\n                paperGalleryModal.setData({\n                    src: contentUrl,\n                    alt: null,\n                });\n            },\n            getShipmentPaperThumbnailUrl: shipmentPapersUrlFactory.getThumbnailUrl,\n            deleteShipmentPaperConfirmationDialog: deletePaperConfirmationDialog,\n            shipmentPaperGalleryModal: paperGalleryModal,\n            deleteShipmentPaperRequestStatus: deleteRequestStatus,\n        };\n    }, [dispatch, shipmentPapersUrlFactory, deletePaperConfirmationDialog, paperGalleryModal, deleteRequestStatus]);\n};\n","import * as React from 'react';\nimport { useCallback } from 'react';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\nimport styles from './UserSelectList.scss';\nimport { useTranslation } from 'react-i18next';\nimport Checkbox, { CheckboxThemeEnum } from 'design-system/components/Checkbox/Checkbox';\nimport {\n    AsyncRequestFactoryResultT,\n    AsyncRequestFactoryT,\n    useAsyncOptionsRequest,\n} from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-options-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { ApiBrokerTeamUserT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport uniqBy from 'lodash/uniqBy';\nimport differenceBy from 'lodash/differenceBy';\nimport Avatar, { AvatarSizeEnum } from 'common/components/Avatar/Avatar';\nimport UserMainPill from 'common/components/pills/UserMainPill/UserMainPill';\nimport UserPositionPill from 'common/components/pills/UserPositionPill/UserPositionPill';\nimport UserRolePill from 'common/components/pills/UserRolePill/UserRolePill';\nimport { isNonNil } from 'common/utils';\nimport AsyncSearchScrollableList from 'design-system/components/AsyncSearchScrollableList/AsyncSearchScrollableList';\nimport { ListMessagePropsT } from 'design-system/components/AsyncSearchScrollableList/ListMessage/ListMessage';\nimport { ApiUserStatusT, UserStatusEnum } from 'common/utils/api/models';\nimport Switcher from 'common/components/Switcher/Switcher';\n\nconst cx = classNames.bind(styles);\n\ntype ListOptionT = ApiBrokerTeamUserT & {\n    email?: string; // for pending users\n};\n\ntype PropsT = {\n    className?: string;\n    initialSelectedUsers?: Array<ListOptionT>;\n    companyId: CompanyIdT | null;\n    selectedUsers: Array<ListOptionT>;\n    onChangeUsers: (options: Array<ListOptionT>) => void;\n    highlightedUserIdsSet?: Set<UserIdT>;\n    isReadOnly?: boolean;\n    isViewOnly?: boolean;\n    hideUserStatusSet?: Set<ApiUserStatusT>;\n};\n\nconst pendingStatusSet = new Set<ApiUserStatusT | undefined>([UserStatusEnum.pending]);\n\nconst UserSelectList: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        initialSelectedUsers,\n        companyId,\n        selectedUsers,\n        onChangeUsers,\n        highlightedUserIdsSet,\n        isReadOnly,\n        isViewOnly,\n        hideUserStatusSet,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const [isShowPendingUsers, setIsShowPendingUsers] = React.useState<boolean>(false);\n\n    const handleToggleShowPendingUsers = React.useCallback(() => {\n        setIsShowPendingUsers((value) => !value);\n    }, []);\n\n    const [searchText, setSearchText] = React.useState('');\n\n    const selectedUserIdsSet = React.useMemo(() => {\n        return new Set<UserIdT>(selectedUsers.map((user) => user.id));\n    }, [selectedUsers]);\n\n    const requestFactory: AsyncRequestFactoryT<ListOptionT> = useCallback(\n        (query) => {\n            if (!companyId) {\n                return Promise.resolve([null, [] as Array<ListOptionT>]);\n            }\n\n            return brokerTranziitApi\n                .findPartnerUsersByName(companyId, {\n                    userName: query || undefined,\n                })\n                .then((response): AsyncRequestFactoryResultT<ListOptionT> => {\n                    const [error, result] = response;\n                    if (error) {\n                        return [error, null];\n                    }\n\n                    const items =\n                        result?.reduce<Array<ListOptionT>>((acc, item) => {\n                            const isHidden = item.userStatus && hideUserStatusSet?.has(item.userStatus);\n                            if (!item.userId || isHidden) {\n                                return acc;\n                            }\n\n                            acc.push({\n                                id: item.userId,\n                                fullName: item.fullName || '',\n                                main: item.main,\n                                position: item.position,\n                                status: item.userStatus,\n                                email: item.email,\n                                roles: item.roles.filter(isNonNil),\n                            });\n\n                            return acc;\n                        }, []) || [];\n\n                    return [null, items];\n                });\n        },\n        [companyId, hideUserStatusSet],\n    );\n\n    const asyncOptionsRequest = useAsyncOptionsRequest<ListOptionT>({\n        initialOptions: initialSelectedUsers,\n        requestFactory,\n        settings: {\n            allowedQueryMinLength: 0,\n        },\n    });\n\n    const { options, optionsQuery, requestStatus, onChangeQuery } = asyncOptionsRequest;\n\n    const hasPendingUsers = React.useMemo(() => {\n        return options.some((option) => pendingStatusSet.has(option.status));\n    }, [options]);\n\n    const shownOptions = React.useMemo((): Array<ListOptionT> => {\n        return options.filter((option) => {\n            if (isViewOnly) {\n                return selectedUserIdsSet.has(option.id);\n            }\n\n            if (isShowPendingUsers) {\n                return true;\n            }\n            return !pendingStatusSet.has(option.status);\n        });\n    }, [options, isViewOnly, isShowPendingUsers, selectedUserIdsSet]);\n\n    const onAddOption = React.useCallback(\n        (option: ListOptionT) => {\n            const newValue: Array<ListOptionT> = uniqBy([...selectedUsers, option], 'id');\n            onChangeUsers(newValue);\n        },\n        [selectedUsers, onChangeUsers],\n    );\n\n    const onDeleteOption = React.useCallback(\n        (option: ListOptionT) => {\n            const newValue: Array<ListOptionT> = differenceBy(selectedUsers, [option], 'id');\n            onChangeUsers(newValue);\n        },\n        [selectedUsers, onChangeUsers],\n    );\n\n    const meta = React.useMemo(() => {\n        return {\n            selectedUserIdsSet,\n            onAddOption,\n            onDeleteOption,\n            highlightedUserIdsSet,\n        };\n    }, [selectedUserIdsSet, onAddOption, onDeleteOption, highlightedUserIdsSet]);\n\n    const emptyMessage = React.useMemo((): ListMessagePropsT => {\n        return {\n            title: t('edit-broker-team.form.fields.users.empty-message.title'),\n            description: t('edit-broker-team.form.fields.users.empty-message.description'),\n        };\n    }, [t]);\n\n    const getOptionKey = React.useCallback((option: ListOptionT) => {\n        return option.id;\n    }, []);\n\n    return (\n        <AsyncSearchScrollableList\n            className={cs(cx('inner'), className)}\n            minHeightPx={300}\n            inputValue={searchText}\n            onChangeInputValue={(searchText) => {\n                setSearchText(searchText);\n                onChangeQuery(searchText);\n            }}\n            inputPlaceholder={t('edit-broker-team.form.fields.users.search-placeholder')}\n            optionsQuery={optionsQuery}\n            initialOptions={initialSelectedUsers}\n            options={shownOptions}\n            getOptionKey={getOptionKey}\n            meta={meta}\n            requestStatus={requestStatus}\n            emptyMessage={emptyMessage}\n            listHeaderNode={\n                hasPendingUsers && !isViewOnly ? (\n                    <div className={cx('pending-users-switcher')}>\n                        <Switcher\n                            checked={isShowPendingUsers}\n                            onToggle={handleToggleShowPendingUsers}\n                            label={t('edit-broker-team.form.fields.users.show-pending-users')}\n                        />\n                    </div>\n                ) : null\n            }\n            renderOption={(\n                option,\n                index,\n                { selectedUserIdsSet, onAddOption, onDeleteOption, highlightedUserIdsSet },\n            ) => {\n                const hasPendingStatus = option?.status === UserStatusEnum.pending;\n\n                const label = option.fullName || option.email || '-';\n\n                return (\n                    <Checkbox\n                        key={option.id}\n                        className={cx('checkbox')}\n                        checked={selectedUserIdsSet.has(option.id)}\n                        labelClassName={cx('checkbox-label')}\n                        label={\n                            <div\n                                className={cx('row', {\n                                    'row--half-opacity': hasPendingStatus,\n                                })}\n                            >\n                                <div className={cx('row__avatar')}>\n                                    <Avatar size={AvatarSizeEnum.medium} hash={label} />\n                                </div>\n                                <div className={cx('row__text')}>\n                                    {hasPendingStatus\n                                        ? t('common:team-members.pending-user', {\n                                              value: label,\n                                          })\n                                        : label}\n                                </div>\n                                <div className={cx('row__pills')}>\n                                    {option.main && <UserMainPill />}\n                                    {option.position && <UserPositionPill position={option.position} />}\n                                    {option.roles?.map((item) => {\n                                        if (!item) {\n                                            return null;\n                                        }\n\n                                        return <UserRolePill key={item} role={item} />;\n                                    })}\n                                </div>\n                            </div>\n                        }\n                        theme={\n                            highlightedUserIdsSet?.has(option.id) ? CheckboxThemeEnum.orange : CheckboxThemeEnum.green\n                        }\n                        isFullWidth\n                        onChange={(checked) => {\n                            if (checked) {\n                                onAddOption(option);\n                            } else {\n                                onDeleteOption(option);\n                            }\n                        }}\n                        isReadOnly={isReadOnly || isViewOnly}\n                        isBoxHidden={isViewOnly}\n                    />\n                );\n            }}\n        />\n    );\n});\n\nexport default UserSelectList;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport { Trans } from 'react-i18next';\nimport { ApiDocumentTypeT } from 'common/utils/api/models';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport AsyncDictDocumentNameLabel from 'common/components/AsyncDictDocumentNameLabel/AsyncDictDocumentNameLabel';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\nimport styles from './ExpiredDocumentCard.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    documentType: ApiDocumentTypeT;\n};\n\nconst ExpiredDocumentCard: React.FC<PropsT> = React.memo((props) => {\n    const { documentType } = props;\n\n    const { partnerType } = usePartnerContext();\n\n    return (\n        <NotificationCardInnerLayout className={cx('inner')}>\n            <Trans\n                i18nKey=\"common:notifications.document-expired\"\n                components={{\n                    documentName: (\n                        <NotificationEntityLabel\n                            isBold\n                            text={<AsyncDictDocumentNameLabel partnerType={partnerType} documentType={documentType} />}\n                        />\n                    ),\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default ExpiredDocumentCard;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport { CancelTruckTransportOrderConfirmationDataT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport BigTrashIcon from 'common/icons/BigTrashIcon';\n\ntype PropsT = {\n    data: CancelTruckTransportOrderConfirmationDataT | null;\n    requestStatus: RequestStatusT;\n    onClose: () => void;\n    onCancel: () => void;\n    onConfirm: (data: CancelTruckTransportOrderConfirmationDataT) => void;\n};\n\nconst TEST_SELECTOR = 'cancel-truck-transport-order-confirmation';\n\nconst CancelTruckTransportOrderConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, requestStatus, onClose, onCancel, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.keep'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_keep`,\n                            isDisabled: requestStatus.loading,\n                            onClick: onCancel,\n                        },\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.danger,\n                            isLoading: requestStatus.loading,\n                            isDisabled: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigTrashIcon />}\n                    title={t('assignment.cancel-truck-transport-order-confirmation.title')}\n                    message={t('assignment.cancel-truck-transport-order-confirmation.description')}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default CancelTruckTransportOrderConfirmation;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ExpireSoonPartnerShipperLaneContractCard.scss';\nimport { Trans } from 'react-i18next';\nimport ShipperContractLaneId from 'broker-admin/components/notification-cards/entities/ShipperContractLaneId/ShipperContractLaneId';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    id: string;\n};\n\nconst ExpireSoonPartnerShipperLaneContractCard: React.FC<PropsT> = React.memo((props) => {\n    const { id } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"notifications.partner-shipper-contract-lane-expire-soon\"\n                components={{\n                    id: <ShipperContractLaneId id={id} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default ExpireSoonPartnerShipperLaneContractCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"FiltersSidebarContent__form___A24l4\",\"field--created\":\"FiltersSidebarContent__field--created___cSxQz\",\"field--dates\":\"FiltersSidebarContent__field--dates___qmVA6\",\"field--trailer-type\":\"FiltersSidebarContent__field--trailer-type___j4tJ7\",\"field--source\":\"FiltersSidebarContent__field--source___xmUqN\",\"field--empty\":\"FiltersSidebarContent__field--empty___jrol_\",\"selected-filters\":\"FiltersSidebarContent__selected-filters___ZfPt3\",\"fadeIn\":\"FiltersSidebarContent__fadeIn___R0IqO\",\"blinking\":\"FiltersSidebarContent__blinking___xlhOT\"};","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"UpdatedPartnerShipperContractCard__inner___BLe6w\",\"fadeIn\":\"UpdatedPartnerShipperContractCard__fadeIn___moUH4\",\"blinking\":\"UpdatedPartnerShipperContractCard__blinking___Hbhol\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './ContractNameCell.scss';\nimport ContractName from 'common/components/ContractName/ContractName';\n\ntype PropsT = {\n    name: string;\n};\n\nconst cx = classNames.bind(styles);\n\nconst ContractNameCell: React.FC<PropsT> = React.memo((props) => {\n    const { name } = props;\n\n    return (\n        <div className={cx('name')}>\n            <ContractName name={name} />\n        </div>\n    );\n});\n\nexport default ContractNameCell;\n","import React, { useState } from 'react';\nimport { SwitchableViewContext, SwitchableViewContextValueT } from '../context';\nimport { SwitchableViewTabPropsT } from '../SwitchableViewTab/SwitchableViewTab';\n\ntype PropsT = {\n    children?: React.ReactNode;\n};\n\nconst SwitchableViewContainer: React.FC<PropsT> = ({ children }) => {\n    const [activeTabIndex, setActiveTabIndex] = useState(0);\n\n    const tabElements = React.Children.toArray(children).filter(\n        (child): child is React.ReactElement<SwitchableViewTabPropsT> => React.isValidElement(child),\n    );\n\n    const tabs = tabElements.map((child) => ({ title: child.props.title }));\n    const activeContent = tabElements[activeTabIndex]?.props.children ?? null;\n\n    const value = React.useMemo<SwitchableViewContextValueT>(() => {\n        return {\n            tabs,\n            activeTabIndex,\n            setActiveTabIndex,\n        };\n    }, [tabs, activeTabIndex, setActiveTabIndex]);\n\n    return <SwitchableViewContext.Provider value={value}>{activeContent}</SwitchableViewContext.Provider>;\n};\n\nexport default SwitchableViewContainer;\n","// extracted by mini-css-extract-plugin\nexport default {\"route-point-pin\":\"RouteEditMap__route-point-pin___nupbf\",\"route-point-pin--number\":\"RouteEditMap__route-point-pin--number___rknyZ\",\"route-point-pin--ferry\":\"RouteEditMap__route-point-pin--ferry___UNlaC\",\"fadeIn\":\"RouteEditMap__fadeIn___p4EOw\",\"blinking\":\"RouteEditMap__blinking___QX_OT\"};","import { SharableMembersStateT } from 'common/store/models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { CompanyContactT } from './models';\nimport { initialCompanyMembersState } from './reducer';\nimport { CompanyMembersStateT, ContactDetailsByIdT } from './types';\n\nconst selectCompanyMembersState = (\n    state: SharableMembersStateT,\n    companyId: CompanyIdT | null,\n): CompanyMembersStateT => {\n    return state.members.byCompanyId[companyId as string] || initialCompanyMembersState;\n};\n\nexport const selectCompanyContacts =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableMembersStateT): CompanyContactT[] | null => {\n        const companyMembers = selectCompanyMembersState(state, companyId);\n\n        if (!companyMembers.contactIds) {\n            return null;\n        }\n\n        return companyMembers.contactIds.map((id) => companyMembers.constantById[id]);\n    };\n\nexport const selectContactById =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableMembersStateT): Record<ContactIdT, CompanyContactT> =>\n        selectCompanyMembersState(state, companyId).constantById;\n\nexport const selectFetchContactsRequest =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableMembersStateT): RequestStatusT =>\n        selectCompanyMembersState(state, companyId).fetchContactsRequest;\n\nexport const selectAddMemberRequest =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableMembersStateT): RequestStatusT =>\n        selectCompanyMembersState(state, companyId).addMemberRequest;\n\nexport const selectDeleteMemberRequest =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableMembersStateT): RequestStatusT =>\n        selectCompanyMembersState(state, companyId).deleteMemberRequest;\n\nexport const selectUpdateMemberRequest =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableMembersStateT): RequestStatusT =>\n        selectCompanyMembersState(state, companyId).updateMemberRequest;\n\nexport const selectFetchContactDetailsRequest = (state: SharableMembersStateT): RequestStatusT =>\n    state.members.fetchContactDetailsRequest;\n\nexport const selectContactDetailsById = (state: SharableMembersStateT): ContactDetailsByIdT =>\n    state.members.contactDetailsById;\n\nexport const selectContactIdByUserId = (state: SharableMembersStateT): Record<UserIdT, ContactIdT> =>\n    state.members.contactIdByUserId;\n","export enum FieldsEnum {\n    reason = 'reason',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.reason]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","export const createMapLink = (query: string) => {\n    return `https://www.google.com/maps/search/?api=1&query=${query}`;\n};\n","import React from 'react';\nimport cs from 'classnames';\nimport Burger from '@animated-burgers/burger-squeeze';\n\nimport './override.css';\n\ntype PropsT = {\n    className?: string;\n    isOpen: boolean;\n};\n\nconst NavBurger: React.FC<PropsT> = (props) => {\n    const { className, isOpen } = props;\n\n    return <Burger className={cs(className)} isOpen={isOpen} />;\n};\n\nexport default NavBurger;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './AvatarCell.scss';\nimport Avatar, { AvatarSizeEnum } from 'common/components/Avatar/Avatar';\n\ntype PropsT = {\n    fullName: string;\n    isHalfOpacity?: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nconst AvatarCell: React.FC<PropsT> = React.memo((props) => {\n    const { fullName, isHalfOpacity } = props;\n\n    return (\n        <Avatar\n            size={AvatarSizeEnum.medium}\n            hash={fullName || ''}\n            className={cx('avatar', { 'avatar--isHalfOpacity': isHalfOpacity })}\n        />\n    );\n});\n\nexport default AvatarCell;\n","// extracted by mini-css-extract-plugin\nexport default {\"table\":\"AdditionalServicesSettings__table___o1TN1\",\"fadeIn\":\"AdditionalServicesSettings__fadeIn___HFQ3v\",\"blinking\":\"AdditionalServicesSettings__blinking___ckVF9\"};","import * as React from 'react';\nimport { ApiShipmentEditUnavailableReasonT, ShipmentEditUnavailableReasonEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    reason: ApiShipmentEditUnavailableReasonT | null | undefined;\n};\n\nexport const SHIPMENT_EDIT_UNAVAILABLE_REASON_T_MAP: Record<ApiShipmentEditUnavailableReasonT, string> = {\n    [ShipmentEditUnavailableReasonEnum.noAccess]: 'common:shipment-edit-unavailable-reason.NO_ACCESS',\n};\n\nconst ShipmentEditUnavailableReason: React.FC<PropsT> = React.memo((props) => {\n    const { reason } = props;\n\n    const { t } = useTranslation();\n\n    if (!reason) {\n        return null;\n    }\n\n    return t(SHIPMENT_EDIT_UNAVAILABLE_REASON_T_MAP[reason]);\n});\n\nexport default ShipmentEditUnavailableReason;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './CarrierCell.scss';\nimport { BrokerTourShortT } from 'broker-admin/store/broker-tours/models';\nimport TableCellLink from 'common/components/Table/cell-renderers/TableCellLink/TableCellLink';\nimport { LinkSizeEnum, LinkThemeEnum, LinkToT } from 'common/components/Link/Link';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport { useTranslation } from 'react-i18next';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    brokerTourShort?: BrokerTourShortT | null;\n};\n\nconst CarrierCell: React.FC<PropsT> = React.memo(({ brokerTourShort }) => {\n    const { t } = useTranslation();\n\n    const truckCarrierId = brokerTourShort?.truckCarrierId || null;\n    const trailerCarrierId = brokerTourShort?.trailerCarrierId || null;\n    const carrierId: CompanyIdT | null = truckCarrierId || trailerCarrierId || null;\n\n    const truckCarrierName = brokerTourShort?.truckCarrierName || null;\n    const trailerCarrierName = brokerTourShort?.trailerCarrierName || null;\n    const carrierName = truckCarrierName || trailerCarrierName || null;\n\n    const truckId = brokerTourShort?.truckId || null;\n    const trailerId = brokerTourShort?.trailerId || null;\n    const truckPlateNumber = brokerTourShort?.truckPlateNumber || null;\n    const trailerPlateNumber = brokerTourShort?.trailerPlateNumber || null;\n\n    const hasTruck = !!truckId || !!truckPlateNumber;\n    const hasTrailer = !!trailerId || !!trailerPlateNumber;\n\n    const assetPlate = (hasTruck ? truckPlateNumber : trailerPlateNumber) || null;\n\n    // Prefer truck as primary asset, fallback to trailer\n    let assetCarrierId: CompanyIdT | null = null;\n    if (hasTruck) {\n        assetCarrierId = truckCarrierId || null;\n    }\n    if (hasTrailer) {\n        assetCarrierId = trailerCarrierId || null;\n    }\n\n    let assetUrl: LinkToT | null = null;\n    if (hasTruck && truckId && assetCarrierId) {\n        assetUrl = urlFactory.truckDetails(assetCarrierId, truckId);\n    }\n    if (hasTrailer && trailerId && assetCarrierId) {\n        assetUrl = urlFactory.trailerDetails(assetCarrierId, trailerId);\n    }\n\n    const hasCarrier = !!carrierId && !!carrierName;\n    const hasAsset = !!assetCarrierId && !!assetPlate;\n\n    if (!hasCarrier && !hasAsset) {\n        return (\n            <div className={cx('not-assigned', 'not-assigned--medium')}>\n                {t('broker-tours.list.table.not-assigned')}\n            </div>\n        );\n    }\n\n    return (\n        <div>\n            {hasCarrier ? (\n                <TableCellLink\n                    to={urlFactory.partnerDetails(PartnerTypeEnum.carrier, carrierId)}\n                    theme={LinkThemeEnum.boldBrandDark}\n                    size={LinkSizeEnum.medium}\n                >\n                    {carrierName}\n                </TableCellLink>\n            ) : (\n                <div className={cx('not-assigned', 'not-assigned--small')}>\n                    {t('broker-tours.list.table.not-assigned')}\n                </div>\n            )}\n            {hasAsset && assetUrl ? (\n                <TableCellLink to={assetUrl} theme={LinkThemeEnum.boldBrandDark} size={LinkSizeEnum.small}>\n                    {assetPlate}\n                </TableCellLink>\n            ) : (\n                <div className={cx('not-assigned', 'not-assigned--small')}>\n                    {t('broker-tours.list.table.not-assigned')}\n                </div>\n            )}\n        </div>\n    );\n});\n\nexport default CarrierCell;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PriceMatrixWithMap.scss';\nimport { useSelector } from 'react-redux';\nimport { selectRFQ } from 'common/store/order-creation/selectors';\nimport TabGroupWithDivider from 'common/components/tabs/TabGroupWithDivider/TabGroupWithDivider';\nimport TabLabel from 'common/components/tabs/TabLabel/TabLabel';\nimport { TabsThemesEnum } from 'common/components/tabs/TabLabel/constants';\nimport PriceMatrix from 'common/layouts/NewOrderPage/PriceMatrix/PriceMatrix';\nimport RouteMap from 'common/layouts/NewOrderPage/RouteMap/RouteMap';\nimport { useTranslation } from 'react-i18next';\nimport { isNonNil } from 'common/utils';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst PriceMatrixWithMap: React.FC<PropsT> = React.memo(() => {\n    const rfq = useSelector(selectRFQ);\n\n    const { t } = useTranslation();\n\n    const isImportedOrder = rfq?.isImported;\n\n    const availableTabs = React.useMemo(\n        () =>\n            [\n                isImportedOrder\n                    ? null\n                    : {\n                          label: t('common:new-order-offers.tabs.price-matrix'),\n                          node: <PriceMatrix />,\n                      },\n                {\n                    label: t('common:new-order-offers.tabs.map'),\n                    node: <RouteMap />,\n                },\n            ].filter(isNonNil),\n        [isImportedOrder, t],\n    );\n\n    const [activeIndexTab, setActiveIndexTab] = React.useState<number>(0);\n\n    const hasManyTabs = availableTabs?.length > 1;\n\n    return (\n        <div className={cx('tabs-wrap')}>\n            {hasManyTabs && (\n                <TabGroupWithDivider>\n                    {availableTabs.map((tab, tabIndex) => (\n                        <TabLabel\n                            key={tabIndex}\n                            theme={TabsThemesEnum.dark}\n                            onClick={() => {\n                                setActiveIndexTab(tabIndex);\n                            }}\n                            isActive={tabIndex === activeIndexTab}\n                        >\n                            {tab.label}\n                        </TabLabel>\n                    ))}\n                </TabGroupWithDivider>\n            )}\n            <div className={cx('tab')}>{availableTabs[activeIndexTab].node}</div>\n        </div>\n    );\n});\n\nexport default PriceMatrixWithMap;\n","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { AnyLogRecordT } from './models';\nimport { ApiSubjectTypeT } from 'common/utils/api/models';\nimport { getSubjectLogsKey, SubjectLogHashT } from './utils';\n\nexport type SubjectLogsStateT = {\n    requestStatus: RequestStatusT;\n    logs: AnyLogRecordT[];\n};\n\nexport type SubjectLogsByKeyStateT = Record<SubjectLogHashT, SubjectLogsStateT>;\n\nexport const initialSubjectLogsState: SubjectLogsStateT = {\n    requestStatus: requestStatus.initial,\n    logs: [],\n};\n\nconst initialState: SubjectLogsByKeyStateT = {};\n\nexport const subjectLogsSlice = createSlice({\n    name: 'subjectLogs',\n    initialState,\n    reducers: {\n        fetchSubjectLogs: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                subjectType: ApiSubjectTypeT;\n                subjectId: SubjectIdT;\n                options?: FetchOptionsT;\n            }>,\n        ) => {\n            // nothing - handled by saga\n        },\n        fetchSubjectLogsBegin: (\n            state,\n            action: PayloadAction<{ subjectType: ApiSubjectTypeT; subjectId: SubjectIdT }>,\n        ) => {\n            const { subjectType, subjectId } = action.payload;\n            const key = getSubjectLogsKey(subjectType, subjectId);\n            state[key] = {\n                ...(state[key] || initialSubjectLogsState),\n                requestStatus: requestStatus.loading,\n            };\n        },\n        fetchSubjectLogsSuccess: (\n            state,\n            action: PayloadAction<{ subjectType: ApiSubjectTypeT; subjectId: SubjectIdT; logs: AnyLogRecordT[] }>,\n        ) => {\n            const { subjectType, subjectId, logs } = action.payload;\n            const key = getSubjectLogsKey(subjectType, subjectId);\n            state[key] = {\n                requestStatus: requestStatus.ok,\n                logs,\n            };\n        },\n        fetchSubjectLogsError: (\n            state,\n            action: PayloadAction<{ subjectType: ApiSubjectTypeT; subjectId: SubjectIdT; error: Error }>,\n        ) => {\n            const { subjectType, subjectId, error } = action.payload;\n            const key = getSubjectLogsKey(subjectType, subjectId);\n            state[key] = {\n                ...(state[key] || initialSubjectLogsState),\n                requestStatus: requestStatus.setError(error),\n            };\n        },\n    },\n    extraReducers: (builder) => {\n        builder.addCase('auth/destroySession', () => {\n            return initialState;\n        });\n    },\n});\n\nexport const { fetchSubjectLogs, fetchSubjectLogsBegin, fetchSubjectLogsSuccess, fetchSubjectLogsError } =\n    subjectLogsSlice.actions;\n\nexport const subjectLogsReducer = subjectLogsSlice.reducer;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './SpotRequestsTable.scss';\nimport { useTranslation } from 'react-i18next';\nimport Table, { TableColumnT, TableRowMetaT } from 'common/components/Table/Table';\nimport MemoizedTable from 'common/components/Table/MemoizedTable/MemoizedTable';\nimport { SpotRequestT } from 'broker-admin/store/spot-requests/models';\nimport LocationCell from 'common/components/Table/cell-renderers/LocationCell/LocationCell';\nimport EventCell from 'common/components/Table/cell-renderers/EventCell/EventCell';\nimport BidsCountCell from './cell-renderers/BidsCountCell/BidsCountCell';\nimport CostsCell from './cell-renderers/CostsCell/CostsCell';\nimport AssetCell from './cell-renderers/AssetCell/AssetCell';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { LinkToT } from 'common/components/Link/Link';\nimport { formatTimeInterval } from 'common/utils/time';\nimport DateCell from 'common/components/Table/cell-renderers/DateCell/DateCell';\nimport LocationLabel from 'common/components/LocationLabel/LocationLabel';\nimport SpotRequestStatusPill from 'common/components/status-pill/SpotRequestStatusPill/SpotRequestStatusPill';\n\nconst cx = classNames.bind(styles);\n\nconst EXPIRATION_DATE_FORMAT = 'DD MMM, HH:mm';\n\ntype PropsT = {\n    spotRequests: Array<SpotRequestT>;\n    className: string;\n    goToSpotRequestDetails: (spotRequestId: SpotRequestIdT) => void;\n    openUserDetails?: (userId: UserIdT) => void;\n    getPartnerLink: (partnerType: PartnerTypeEnum, partnerId: CompanyIdT) => LinkToT;\n    isLoading: boolean;\n};\n\nconst SpotRequestsTable: React.FC<PropsT> = React.memo((props) => {\n    const { spotRequests, className, goToSpotRequestDetails, openUserDetails, getPartnerLink, isLoading } = props;\n\n    const { t } = useTranslation();\n\n    const columns: Array<TableColumnT<SpotRequestT, void>> = [\n        {\n            renderHeader: () => <span>{t('spot-requests.list.table.columns.origin')}</span>,\n            headerClassName: cx('table__header', 'table__header--origin'),\n            render: (spotRequest: SpotRequestT) => {\n                const firstStop = spotRequest?.stops?.[0] || null;\n\n                return (\n                    <LocationCell\n                        address={\n                            <LocationLabel\n                                format=\"zip_city_country\"\n                                allowShowCountryCode\n                                location={firstStop?.address}\n                            />\n                        }\n                        time={formatTimeInterval(firstStop?.timeSlotFrom, firstStop?.timeSlotTo)}\n                        isSmallTimeFont\n                    />\n                );\n            },\n            className: cx('table__column', 'table__column--origin'),\n            testSelector: 'origin',\n        },\n        {\n            renderHeader: () => <span>{t('spot-requests.list.table.columns.destination')}</span>,\n            headerClassName: cx('table__header'),\n            render: (spotRequest: SpotRequestT) => {\n                const lastStop = spotRequest?.stops?.[(spotRequest?.stops?.length || 0) - 1] || null;\n\n                return (\n                    <LocationCell\n                        address={\n                            <LocationLabel\n                                format=\"zip_city_country\"\n                                allowShowCountryCode\n                                location={lastStop?.address}\n                            />\n                        }\n                        time={formatTimeInterval(lastStop?.timeSlotFrom, lastStop?.timeSlotTo)}\n                        isSmallTimeFont\n                    />\n                );\n            },\n            className: cx('table__column', 'table__column--destination'),\n            testSelector: 'destination',\n        },\n        {\n            renderHeader: () => <span>{t('spot-requests.list.table.columns.placed')}</span>,\n            headerClassName: cx('table__header'),\n            render: (spotRequest: SpotRequestT) => (\n                <EventCell\n                    isHumanReadableDate\n                    userFullName={spotRequest.placedByName}\n                    userId={spotRequest.placedBy}\n                    openUserDetails={openUserDetails}\n                    date={spotRequest.placedDate}\n                    isSmallFont\n                />\n            ),\n            className: cx('table__column', 'table__column--placed'),\n            testSelector: 'placed',\n        },\n        {\n            renderHeader: () => <span>{t('spot-requests.list.table.columns.expiration')}</span>,\n            headerClassName: cx('table__header'),\n            render: (spotRequest: SpotRequestT) => {\n                return <DateCell isBold date={spotRequest.expiration} dateFormat={EXPIRATION_DATE_FORMAT} />;\n            },\n            className: cx('table__column'),\n            testSelector: 'expiration',\n        },\n        {\n            renderHeader: () => <span>{t('spot-requests.list.table.columns.bids')}</span>,\n            headerClassName: cx('table__header'),\n            render: (spotRequest: SpotRequestT) => {\n                return (\n                    <BidsCountCell\n                        numberOfNewBids={spotRequest.numberOfNewBids}\n                        numberOfReadBids={spotRequest.numberOfReadBids}\n                        numberOfSentBids={spotRequest.numberOfSentBids}\n                    />\n                );\n            },\n            className: cx('table__column'),\n            testSelector: 'bids',\n        },\n        {\n            renderHeader: () => <span>{t('spot-requests.list.table.columns.costs')}</span>,\n            headerClassName: cx('table__header', 'table__header--costs'),\n            render: (spotRequest: SpotRequestT) => {\n                return <CostsCell basePrice={spotRequest.estimatePrice} lowestBidsPrice={spotRequest.lowestPrice} />;\n            },\n            className: cx('table__column'),\n            testSelector: 'costs',\n        },\n        {\n            renderHeader: () => <span>{t('spot-requests.list.table.columns.asset')}</span>,\n            headerClassName: cx('table__header'),\n            render: (spotRequest: SpotRequestT) => {\n                return <AssetCell getPartnerLink={getPartnerLink} spotRequest={spotRequest} />;\n            },\n            className: cx('table__column', 'table__column--asset'),\n            testSelector: 'asset',\n        },\n        {\n            renderHeader: () => <span>{t('spot-requests.list.table.columns.status')}</span>,\n            headerClassName: cx('table__header', 'table__header--status'),\n            render: (spotRequest: SpotRequestT) => <SpotRequestStatusPill isSymmetrical status={spotRequest.status} />,\n            className: cx('table__column', 'table__column--status'),\n            testSelector: 'status',\n        },\n    ];\n\n    const handleSelectRow = (event: React.MouseEvent, spotRequest: SpotRequestT) => {\n        if (!spotRequest.id) {\n            return;\n        }\n\n        goToSpotRequestDetails(spotRequest.id);\n    };\n\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const getRowMods = (meta: TableRowMetaT, spotRequest: SpotRequestT) => {\n        return {};\n    };\n\n    return (\n        <div className={cx('table')}>\n            <MemoizedTable<SpotRequestT> tableName=\"spot-request\" isLoading={isLoading} rows={spotRequests}>\n                {(rows, isUsedPrevRows) => (\n                    <Table<SpotRequestT, void>\n                        testSelector=\"spot-requests\"\n                        className={className}\n                        columns={columns}\n                        rows={rows}\n                        getRowMods={getRowMods}\n                        onSelectRow={handleSelectRow}\n                        isLoading={isLoading}\n                        isUsedPrevRows={isUsedPrevRows}\n                    />\n                )}\n            </MemoizedTable>\n        </div>\n    );\n});\n\nexport default SpotRequestsTable;\n","import React, { useMemo } from 'react';\nimport styles from './DocumentVersion.scss';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport DateFormatter from 'design-system/components/InfoTable/formatters/DateFormatter/DateFormatter';\nimport UserLinkFormatter from 'common/components/InfoTable/formatters/UserLinkFormatter/UserLinkFormatter';\nimport { DocumentVersionT } from 'common/store/documents/models';\nimport { DictDocumentT } from 'common/store/documents-dict/models';\nimport { DocumentRequiredEnum } from 'common/utils/api/models';\nimport DocumentStatusPill from 'common/components/status-pill/DocumentStatusPill/DocumentStatusPill';\nimport DownloadIcon from 'common/icons/DownloadIcon';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    className?: string;\n    dictDocument: DictDocumentT | null;\n    version: DocumentVersionT;\n    onDownloadFile: (documentId: DocumentIdT) => void;\n    canDownloadDocuments: boolean;\n    onOpenUserDetails: (userId: UserIdT) => void;\n};\n\nconst DocumentVersion: React.FC<PropsT> = (props) => {\n    const { className, version, dictDocument, onOpenUserDetails, canDownloadDocuments, onDownloadFile } = props;\n\n    const { t } = useTranslation();\n\n    const details: Array<InfoTableRowT> = useMemo(\n        () => [\n            ...(version?.createdDate\n                ? [\n                      {\n                          icon: null,\n                          name: t('common:document.details.uploaded-date'),\n                          rightNode: <DateFormatter date={version?.createdDate} />,\n                          valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty') },\n                          rightNodeMods: { isBold: true },\n                          testSelector: 'upload-date',\n                      },\n                      {\n                          icon: null,\n                          name: t('common:document.details.uploaded-by'),\n                          rightNode: (\n                              <UserLinkFormatter\n                                  fullName={version?.createdByName}\n                                  userId={version?.createdById}\n                                  byBroker={version?.createdByBroker}\n                                  onOpenUserDetails={onOpenUserDetails}\n                              />\n                          ),\n                          rightNodeMods: { isBold: true },\n                          valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty') },\n                          testSelector: 'upload-user',\n                      },\n                  ]\n                : []),\n            ...(version?.reviewedDate\n                ? [\n                      {\n                          icon: null,\n                          name: t('common:document.details.reviewed-date'),\n                          rightNode: <DateFormatter date={version?.reviewedDate} />,\n                          rightNodeMods: { isBold: true },\n                          valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty') },\n                          testSelector: 'review-date',\n                      },\n                      {\n                          icon: null,\n                          name: t('common:document.details.reviewed-by'),\n                          rightNode: (\n                              <UserLinkFormatter\n                                  fullName={version?.reviewedByName}\n                                  userId={version?.reviewedById}\n                                  byBroker\n                                  onOpenUserDetails={onOpenUserDetails}\n                              />\n                          ),\n                          rightNodeMods: { isBold: true },\n                          valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty') },\n                          testSelector: 'review-user',\n                      },\n                  ]\n                : []),\n            ...(version?.revokedDate\n                ? [\n                      {\n                          icon: null,\n                          name: t('common:document.details.revoke-date'),\n                          rightNode: <DateFormatter date={version?.revokedDate} />,\n                          rightNodeMods: { isBold: true },\n                          valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty') },\n                          testSelector: 'revoke-date',\n                      },\n                      {\n                          icon: null,\n                          name: t('common:document.details.revoke-by'),\n                          rightNode: (\n                              <UserLinkFormatter\n                                  fullName={version?.revokedByName}\n                                  userId={version?.revokedById}\n                                  byBroker\n                                  onOpenUserDetails={onOpenUserDetails}\n                              />\n                          ),\n                          rightNodeMods: { isBold: true },\n                          valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty') },\n                          testSelector: 'revoke-user',\n                      },\n                  ]\n                : []),\n            ...(version?.lastEditDate\n                ? [\n                      {\n                          icon: null,\n                          name: t('common:document.details.edit-date'),\n                          rightNode: <DateFormatter date={version?.lastEditDate} />,\n                          rightNodeMods: { isBold: true },\n                          valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty') },\n                          testSelector: 'edit-date',\n                      },\n                      {\n                          icon: null,\n                          name: t('common:document.details.edit-by'),\n                          rightNode: (\n                              <UserLinkFormatter\n                                  fullName={version?.lastEditByName}\n                                  userId={version?.lastEditById}\n                                  byBroker={version?.lastEditByBroker}\n                                  onOpenUserDetails={onOpenUserDetails}\n                              />\n                          ),\n                          rightNodeMods: { isBold: true },\n                          valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty') },\n                          testSelector: 'edit-user',\n                      },\n                  ]\n                : []),\n        ],\n        [version, onOpenUserDetails, t],\n    );\n\n    return (\n        <div className={cs(cx('version'), className)}>\n            <div className={cx('header')}>\n                <div className={cx('header__title')}>{t('common:document.version.title')}</div>\n                <DocumentStatusPill\n                    className={cx('status')}\n                    isSymmetrical\n                    status={version.status}\n                    isRequiredDocument={dictDocument?.required === DocumentRequiredEnum.must}\n                />\n                {canDownloadDocuments && (\n                    <Tooltip\n                        position={TooltipPositionEnum.centerLeft}\n                        theme={TooltipThemeEnum.black}\n                        tooltipNode={\n                            <TooltipContent isCenter theme={TooltipContentThemeEnum.black} width={80}>\n                                {t('common:document.actions.download')}\n                            </TooltipContent>\n                        }\n                    >\n                        {(isShow) => (\n                            <TransparentTrigger\n                                spaces=\"xs\"\n                                isPressed={isShow}\n                                onClick={() => onDownloadFile(version.id)}\n                                leftIcon={\n                                    <DownloadIcon fillColor={StyleGuideColorsEnum.charcoal} size={DEFAULT_ICON_SIZE} />\n                                }\n                                reflectionTheme={ReflectionThemeEnum.light}\n                            />\n                        )}\n                    </Tooltip>\n                )}\n            </div>\n            <InfoTable className={cx('table')} rows={details} testSelector=\"version-details\" />\n        </div>\n    );\n};\n\nexport default DocumentVersion;\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"SendingToSpotFooterContent__content___LURO4\",\"fadeIn\":\"SendingToSpotFooterContent__fadeIn___c_Eh1\",\"blinking\":\"SendingToSpotFooterContent__blinking___juG_P\"};","import { StateMachineEntityDescriptorT, StateMachineEntityHashT } from 'common/store/state-machine/models';\n\nexport const getStateMachineEntityHash = (descriptor: StateMachineEntityDescriptorT): StateMachineEntityHashT => {\n    return `${descriptor.entityType}-${descriptor.entityId}`;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"ImportCsv__wrap___EIzN1\",\"content\":\"ImportCsv__content___ejohk\",\"description\":\"ImportCsv__description___QVuMG\",\"icon\":\"ImportCsv__icon____vbMh\",\"status\":\"ImportCsv__status___Gc7vc\",\"status-icon\":\"ImportCsv__status-icon___Mizv8\",\"loader\":\"ImportCsv__loader____HBhr\",\"action\":\"ImportCsv__action___rNA1Y\",\"fadeIn\":\"ImportCsv__fadeIn___OjcPT\",\"blinking\":\"ImportCsv__blinking___Tf2ua\"};","import * as React from 'react';\nimport { PartnerT } from 'broker-admin/store/partners/models';\nimport { useTranslation } from 'react-i18next';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\n\ntype PropsT = {\n    partner: PartnerT;\n};\n\nconst WarningsCell: React.FC<PropsT> = React.memo((props) => {\n    const { partner } = props;\n\n    const { noAssignedDispatchers, noAssignedTeams, locked } = partner;\n\n    const { t } = useTranslation();\n\n    if (locked) {\n        return (\n            <PillLabel theme={PillLabelThemeEnum.grey} testSelector=\"warning\" isSymmetrical isNoWrap>\n                {t('partners-table.locked-partner')}\n            </PillLabel>\n        );\n    }\n\n    if (noAssignedDispatchers) {\n        return (\n            <PillLabel theme={PillLabelThemeEnum.slate} testSelector=\"warning\" isSymmetrical isNoWrap>\n                {t('partners-table.warnings.no-dispatcher')}\n            </PillLabel>\n        );\n    }\n\n    if (noAssignedTeams) {\n        return (\n            <PillLabel theme={PillLabelThemeEnum.slate} testSelector=\"warning\" isSymmetrical isNoWrap>\n                {t('partners-table.warnings.no-assigned-teams')}\n            </PillLabel>\n        );\n    }\n\n    return null;\n});\n\nexport default WarningsCell;\n","import {\n    ACTIVATION_TRUCKS_REQUEST,\n    ActivationTrucksRequestActionT,\n    ADD_TRUCK_REQUEST,\n    ADD_TRUCK_REQUEST_BEGIN,\n    ADD_TRUCK_REQUEST_ERROR,\n    ADD_TRUCK_REQUEST_SUCCESS,\n    AddTruckRequestActionT,\n    AddTruckRequestBeginActionT,\n    AddTruckRequestErrorActionT,\n    AddTruckRequestSuccessActionT,\n    ASSIGN_TO_CONTRACT_TRUCKS_REQUEST,\n    ArchiveTrucksRequestActionT,\n    DELETE_TRUCKS_REQUEST,\n    DELETE_TRUCKS_REQUEST_BEGIN,\n    DELETE_TRUCKS_REQUEST_ERROR,\n    DELETE_TRUCKS_REQUEST_SUCCESS,\n    DeleteTrucksRequestActionT,\n    DeleteTrucksRequestBeginActionT,\n    DeleteTrucksRequestErrorActionT,\n    DeleteTrucksRequestSuccessActionT,\n    FETCH_TRUCK_DETAILS_REQUEST,\n    FETCH_TRUCK_DETAILS_REQUEST_BEGIN,\n    FETCH_TRUCK_DETAILS_REQUEST_ERROR,\n    FETCH_TRUCK_DETAILS_REQUEST_SUCCESS,\n    FETCH_TRUCKS_PAGE_REQUEST,\n    FETCH_TRUCKS_PAGE_REQUEST_BEGIN,\n    FETCH_TRUCKS_PAGE_REQUEST_ERROR,\n    FETCH_TRUCKS_PAGE_REQUEST_SUCCESS,\n    FetchTruckDetailsActionT,\n    FetchTruckDetailsBeginActionT,\n    FetchTruckDetailsErrorActionT,\n    FetchTruckDetailsSuccessActionT,\n    FetchTrucksPageActionT,\n    FetchTrucksPageBeginActionT,\n    FetchTrucksPageErrorActionT,\n    FetchTrucksPageSuccessActionT,\n    RESET_TRUCKS,\n    ResetTrucksActionT,\n    UPDATE_TRUCK_REQUEST,\n    UPDATE_TRUCKS_REQUEST_BEGIN,\n    UPDATE_TRUCKS_REQUEST_ERROR,\n    UPDATE_TRUCKS_REQUEST_SUCCESS,\n    UpdateTruckActionT,\n    UpdateTrucksRequestBeginActionT,\n    UpdateTrucksRequestErrorActionT,\n    UpdateTrucksRequestSuccessActionT,\n    ARCHIVE_TRUCKS_REQUEST,\n    FetchTrucksStatsActionT,\n    FETCH_TRUCKS_STATS_REQUEST,\n    FetchTrucksStatsBeginActionT,\n    FETCH_TRUCKS_STATS_REQUEST_BEGIN,\n    FetchTrucksStatsErrorActionT,\n    FETCH_TRUCKS_STATS_REQUEST_ERROR,\n    FetchTrucksStatsSuccessActionT,\n    FETCH_TRUCKS_STATS_REQUEST_SUCCESS,\n    ImportXLSTrucksActionT,\n    IMPORT_XLS_TRUCKS_REQUEST,\n    ImportXLSTrucksBeginActionT,\n    IMPORT_XLS_TRUCKS_REQUEST_BEGIN,\n    IMPORT_XLS_TRUCKS_REQUEST_ERROR,\n    IMPORT_XLS_TRUCKS_REQUEST_SUCCESS,\n    EXPORT_XLS_TRUCKS_REQUEST,\n    EXPORT_XLS_TRUCKS_REQUEST_BEGIN,\n    EXPORT_XLS_TRUCKS_REQUEST_ERROR,\n    EXPORT_XLS_TRUCKS_REQUEST_SUCCESS,\n    ExportXLSTrucksSuccessActionT,\n    ExportXLSTrucksErrorActionT,\n    ExportXLSTrucksBeginActionT,\n    ExportXLSTrucksActionT,\n    ImportXLSTrucksSuccessActionT,\n    ImportXLSTrucksErrorActionT,\n    CHANGE_RATE_TRUCKS_REQUEST,\n    ChangeRateTrucksRequestActionT,\n} from './types';\nimport {\n    CompanyTrucksStatsT,\n    FetchTrucksPageQueryT,\n    ApiTruckDetailsT,\n    ApiTruckT,\n    ActivateTrucksRequestT,\n} from './models';\n\nimport {\n    ApiChangeContractVehiclesRequestT,\n    ApiChangeRateVehiclesRequestT,\n    ApiTruckAddRequestT,\n    ApiTruckUpdateRequestT,\n} from 'common/utils/api/models';\nimport { AssignToContractRequestActionT } from 'common/store/trucks/types';\nimport { PageResponseT } from 'common/utils/pagination/models';\n\nexport const fetchTrucksPage = (\n    pageNumber: PageNumberT,\n    query: FetchTrucksPageQueryT,\n    companyId: CompanyIdT,\n    options?: FetchOptionsT,\n): FetchTrucksPageActionT => {\n    return {\n        type: FETCH_TRUCKS_PAGE_REQUEST,\n        query,\n        pageNumber,\n        options,\n        companyId,\n    };\n};\n\nexport const fetchTrucksPageBegin = (\n    query: FetchTrucksPageQueryT,\n    pageNumber: PageNumberT,\n    companyId: CompanyIdT,\n): FetchTrucksPageBeginActionT => ({\n    type: FETCH_TRUCKS_PAGE_REQUEST_BEGIN,\n    query,\n    pageNumber,\n    companyId,\n});\n\nexport const fetchTrucksPageSuccess = (\n    query: FetchTrucksPageQueryT,\n    pageNumber: PageNumberT,\n    pageResponse: PageResponseT<ApiTruckT> | null,\n    companyId: CompanyIdT,\n): FetchTrucksPageSuccessActionT => ({\n    type: FETCH_TRUCKS_PAGE_REQUEST_SUCCESS,\n    query,\n    pageResponse,\n    pageNumber,\n    companyId,\n});\n\nexport const fetchTrucksPageError = (\n    query: FetchTrucksPageQueryT,\n    pageNumber: PageNumberT,\n    error: Error,\n    companyId: CompanyIdT,\n): FetchTrucksPageErrorActionT => ({\n    type: FETCH_TRUCKS_PAGE_REQUEST_ERROR,\n    query,\n    error,\n    pageNumber,\n    companyId,\n});\n\nexport const resetTrucks = (companyId: CompanyIdT, mutationListOptions: MutationListOptionsT): ResetTrucksActionT => ({\n    type: RESET_TRUCKS,\n    companyId,\n    mutationListOptions,\n});\n\nexport const addTruckRequest = (data: ApiTruckAddRequestT, companyId: CompanyIdT): AddTruckRequestActionT => ({\n    type: ADD_TRUCK_REQUEST,\n    data,\n    companyId,\n});\n\nexport const addTruckRequestBegin = (companyId: CompanyIdT): AddTruckRequestBeginActionT => ({\n    type: ADD_TRUCK_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const addTruckRequestError = (error: Error, companyId: CompanyIdT): AddTruckRequestErrorActionT => ({\n    type: ADD_TRUCK_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const addTruckRequestSuccess = (companyId: CompanyIdT): AddTruckRequestSuccessActionT => ({\n    type: ADD_TRUCK_REQUEST_SUCCESS,\n    companyId,\n});\n\nexport const deleteTrucksRequest = (truckIds: TruckIdT[], companyId: CompanyIdT): DeleteTrucksRequestActionT => ({\n    type: DELETE_TRUCKS_REQUEST,\n    truckIds,\n    companyId,\n});\n\nexport const deleteTrucksRequestBegin = (companyId: CompanyIdT): DeleteTrucksRequestBeginActionT => ({\n    type: DELETE_TRUCKS_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const deleteTrucksRequestError = (error: Error, companyId: CompanyIdT): DeleteTrucksRequestErrorActionT => ({\n    type: DELETE_TRUCKS_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const deleteTrucksRequestSuccess = (companyId: CompanyIdT): DeleteTrucksRequestSuccessActionT => ({\n    type: DELETE_TRUCKS_REQUEST_SUCCESS,\n    companyId,\n});\n\nexport const activationTrucksRequest = (\n    companyId: CompanyIdT,\n    activateTrucksRequest: ActivateTrucksRequestT,\n): ActivationTrucksRequestActionT => ({\n    type: ACTIVATION_TRUCKS_REQUEST,\n    companyId,\n    activateTrucksRequest,\n});\n\nexport const updateTruck = (\n    truckId: TruckIdT,\n    updateTruck: ApiTruckUpdateRequestT,\n    companyId: CompanyIdT,\n): UpdateTruckActionT => ({\n    type: UPDATE_TRUCK_REQUEST,\n    truckId,\n    updateTruck,\n    companyId,\n});\n\nexport const archiveTrucksRequest = (\n    truckIds: TruckIdT[],\n    companyId: CompanyIdT,\n    reason: string,\n): ArchiveTrucksRequestActionT => ({\n    type: ARCHIVE_TRUCKS_REQUEST,\n    truckIds,\n    companyId,\n    reason,\n});\n\nexport const assignToContractRequest = ({\n    companyId,\n    changeContractRequest,\n    contractName,\n}: {\n    companyId: CompanyIdT;\n    changeContractRequest: ApiChangeContractVehiclesRequestT;\n    contractName: string | null;\n}): AssignToContractRequestActionT => ({\n    type: ASSIGN_TO_CONTRACT_TRUCKS_REQUEST,\n    companyId,\n    changeContractRequest,\n    contractName,\n});\n\nexport const changeRateTrucksRequest = ({\n    changeRateVehiclesRequest,\n    companyId,\n}: {\n    companyId: CompanyIdT;\n    changeRateVehiclesRequest: ApiChangeRateVehiclesRequestT;\n}): ChangeRateTrucksRequestActionT => ({\n    type: CHANGE_RATE_TRUCKS_REQUEST,\n    changeRateVehiclesRequest,\n    companyId,\n});\n\nexport const updateTrucksRequestBegin = (companyId: CompanyIdT): UpdateTrucksRequestBeginActionT => ({\n    type: UPDATE_TRUCKS_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const updateTrucksRequestError = (error: Error, companyId: CompanyIdT): UpdateTrucksRequestErrorActionT => ({\n    type: UPDATE_TRUCKS_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const updateTrucksRequestSuccess = (companyId: CompanyIdT): UpdateTrucksRequestSuccessActionT => ({\n    type: UPDATE_TRUCKS_REQUEST_SUCCESS,\n    companyId,\n});\n\nexport const fetchTruckDetails = (\n    truckId: TruckIdT,\n    companyId: CompanyIdT,\n    options?: FetchOptionsT,\n): FetchTruckDetailsActionT => ({\n    type: FETCH_TRUCK_DETAILS_REQUEST,\n    truckId,\n    companyId,\n    options,\n});\n\nexport const fetchTruckDetailsRequestBegin = (companyId: CompanyIdT): FetchTruckDetailsBeginActionT => ({\n    type: FETCH_TRUCK_DETAILS_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const fetchTruckDetailsRequestError = (error: Error, companyId: CompanyIdT): FetchTruckDetailsErrorActionT => ({\n    type: FETCH_TRUCK_DETAILS_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const fetchTruckDetailsRequestSuccess = (\n    truckId: TruckIdT,\n    details: ApiTruckDetailsT | null,\n    companyId: CompanyIdT,\n): FetchTruckDetailsSuccessActionT => ({\n    type: FETCH_TRUCK_DETAILS_REQUEST_SUCCESS,\n    truckId,\n    details,\n    companyId,\n});\n\nexport const fetchTrucksStats = (companyId: CompanyIdT, options?: FetchOptionsT): FetchTrucksStatsActionT => ({\n    type: FETCH_TRUCKS_STATS_REQUEST,\n    companyId,\n    options,\n});\n\nexport const fetchTrucksStatsRequestBegin = (companyId: CompanyIdT): FetchTrucksStatsBeginActionT => ({\n    type: FETCH_TRUCKS_STATS_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const fetchTrucksStatsRequestError = (error: Error, companyId: CompanyIdT): FetchTrucksStatsErrorActionT => ({\n    type: FETCH_TRUCKS_STATS_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const fetchTrucksStatsRequestSuccess = (\n    stats: CompanyTrucksStatsT | null,\n    companyId: CompanyIdT,\n): FetchTrucksStatsSuccessActionT => ({\n    type: FETCH_TRUCKS_STATS_REQUEST_SUCCESS,\n    stats,\n    companyId,\n});\n\nexport const importXLSTrucks = (companyId: CompanyIdT, file: File): ImportXLSTrucksActionT => ({\n    type: IMPORT_XLS_TRUCKS_REQUEST,\n    companyId,\n    file,\n});\n\nexport const importXLSTrucksRequestBegin = (companyId: CompanyIdT): ImportXLSTrucksBeginActionT => ({\n    type: IMPORT_XLS_TRUCKS_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const importXLSTrucksRequestError = (error: Error, companyId: CompanyIdT): ImportXLSTrucksErrorActionT => ({\n    type: IMPORT_XLS_TRUCKS_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const importXLSTrucksRequestSuccess = (companyId: CompanyIdT): ImportXLSTrucksSuccessActionT => ({\n    type: IMPORT_XLS_TRUCKS_REQUEST_SUCCESS,\n    companyId,\n});\n\nexport const exportXLSTrucks = (companyId: CompanyIdT, query: FetchTrucksPageQueryT): ExportXLSTrucksActionT => ({\n    type: EXPORT_XLS_TRUCKS_REQUEST,\n    companyId,\n    query,\n});\n\nexport const exportXLSTrucksRequestBegin = (companyId: CompanyIdT): ExportXLSTrucksBeginActionT => ({\n    type: EXPORT_XLS_TRUCKS_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const exportXLSTrucksRequestError = (error: Error, companyId: CompanyIdT): ExportXLSTrucksErrorActionT => ({\n    type: EXPORT_XLS_TRUCKS_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const exportXLSTrucksRequestSuccess = (companyId: CompanyIdT): ExportXLSTrucksSuccessActionT => ({\n    type: EXPORT_XLS_TRUCKS_REQUEST_SUCCESS,\n    companyId,\n});\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\nimport { EditOrderQueryModifyChannelEventT } from './models';\n\nexport const orderEditContextQueryModifyChannel = new ViewEventChannel<EditOrderQueryModifyChannelEventT>();\n","import * as React from 'react';\nimport { Trans } from 'react-i18next';\n\nimport FieldName from 'common/components/notification-cards/shared/FieldName/FieldName';\nimport FieldValue from 'common/components/notification-cards/shared/FieldValue/FieldValue';\nimport { ApiUpdatedFieldCodeT } from 'common/utils/api/models';\n\ntype PropsT = {\n    code: ApiUpdatedFieldCodeT;\n    oldValue?: string;\n    newValue?: string;\n};\n\nconst ChangedFieldLabel: React.FC<PropsT> = React.memo((props) => {\n    const { code, oldValue, newValue } = props;\n    const hasOldValue = oldValue !== undefined && oldValue !== '';\n    const hasNewValue = newValue !== undefined && newValue !== '';\n\n    let i18nKey = 'common:notifications.changed-field-row';\n\n    if (!hasOldValue && hasNewValue) {\n        i18nKey = 'common:notifications.set-field-row';\n    } else if (hasOldValue && !hasNewValue) {\n        i18nKey = 'common:notifications.cleared-field-row';\n    }\n\n    return (\n        <Trans\n            i18nKey={i18nKey}\n            components={{\n                field: <FieldName code={code} />,\n                oldValue: <FieldValue code={code} value={oldValue} />,\n                newValue: <FieldValue code={code} value={newValue} />,\n            }}\n        />\n    );\n});\n\nexport default ChangedFieldLabel;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './TruckDetailsSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectFetchTruckDetailsRequestStatus, selectTrucksDetailsByIds } from 'common/store/trucks/selectors';\nimport TruckDetails from './TruckDetails/TruckDetails';\nimport {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport EditIcon from 'common/icons/EditIcon';\nimport { fetchTruckDetails } from 'common/store/trucks/actions';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport ParanjaSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/ParanjaSideBarLayout/ParanjaSideBarLayout';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport SetUnavailableFooterContent from 'common/components/AssetSidebarContent/SetUnavailableFooterContent/SetUnavailableFooterContent';\nimport {\n    ApiTeleportAssetUnavailableReasonT,\n    SetUnavailableVehicleQueryT,\n    TruckStatusEnum,\n} from 'common/utils/api/models';\nimport { selectSetUnavailableVehicleRequestStatus } from 'common/store/vehicle-schedules/selectors';\nimport HollowCircleIcon from 'common/icons/HollowCircleIcon';\nimport { AssetTypeEnum, DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport DeleteIcon from 'common/icons/DeleteIcon';\nimport TruckStatusPill from 'common/components/status-pill/TruckStatusPill/TruckStatusPill';\nimport WrenchIcon from 'common/icons/WrenchIcon';\nimport MapTrigger from 'common/components/MapTrigger/MapTrigger';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { truckDetailsRefreshChannel } from 'common/store/trucks/channels';\nimport usePartnerPermissionsContext from 'common/utils/hooks/usePartnerPermissionsContext';\nimport {\n    selectExecuteTeleportStatus,\n    selectValidateTeleportData,\n    selectValidateTeleportStatus,\n} from 'common/store/assets/selectors';\nimport { executeAssetTeleport, validateAssetTeleport } from 'common/store/assets/slice';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport TeleportIcon from 'common/icons/TeleportIcon';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\n\nconst unavailableTeleportReasonI18nMap: Record<ApiTeleportAssetUnavailableReasonT, string> = {\n    NO_ACCESS: 'common:trucks-page.teleport-unavailable-reason.NO_ACCESS',\n    ASSET_IS_BUSY: 'common:trucks-page.teleport-unavailable-reason.ASSET_IS_BUSY',\n    NO_GPS_DATA: 'common:trucks-page.teleport-unavailable-reason.NO_GPS_DATA',\n    GPS_DATA_IS_OUTDATED: 'common:trucks-page.teleport-unavailable-reason.GPS_DATA_IS_OUTDATED',\n    NOT_ACTIVE: 'common:trucks-page.teleport-unavailable-reason.NOT_ACTIVE',\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    partnerId: PartnerIdT;\n    truckId: TruckIdT | null;\n    onClose?: () => void;\n    onGoBack?: () => void;\n    onEdit: () => void;\n    onSetUnavailable: (truckId: TruckIdT, query: SetUnavailableVehicleQueryT) => void;\n    onArchive: (truckId: TruckIdT | null) => void;\n    onActivate: (truckId: TruckIdT | null) => void;\n    isShowMap?: boolean;\n    onToggleShowMap?: () => void;\n    isReadOnly?: boolean;\n    isDisableShowOnMap?: boolean;\n    onOpenTrailerDetails: (trailerId: TrailerIdT) => void;\n    onOpenContactDetails: (contractId: CarrierContractIdT) => void;\n    onOpenUserDetails: (userId: UserIdT, isBrokerUser?: boolean) => void;\n};\n\nconst TruckDetailsSidebarContent: React.FC<PropsT> = (props) => {\n    const {\n        isReadOnly,\n        isDisableShowOnMap,\n        partnerId,\n        onClose,\n        onGoBack,\n        onEdit,\n        truckId,\n        onActivate,\n        onArchive,\n        onSetUnavailable,\n        isShowMap,\n        onToggleShowMap,\n        onOpenTrailerDetails,\n        onOpenContactDetails,\n        onOpenUserDetails,\n    } = props;\n\n    const { canEditTrucks, canActivateTrucks, canSetUnavailableTrucks, canArchiveTrucks, canTeleportAssets } =\n        usePartnerPermissionsContext();\n\n    const { t } = useTranslation();\n\n    const [isShowUnavailableForm, setIsShowUnavailableForm] = React.useState<boolean>(false);\n\n    const fetchDetailsRequestStatus = useSelector(selectFetchTruckDetailsRequestStatus(partnerId));\n    const detailsById = useSelector(selectTrucksDetailsByIds(partnerId));\n\n    const truckDetails = detailsById[truckId as string];\n\n    const dispatch = useDispatch();\n\n    const executeTeleportRequestStatus = useSelector(selectExecuteTeleportStatus(truckId));\n    const isExecutingTeleport = executeTeleportRequestStatus.loading;\n\n    const validateTeleportRequestStatus = useSelector(selectValidateTeleportStatus(truckId));\n    const isValidatingTeleport = validateTeleportRequestStatus.loading;\n\n    const validateTeleportData = useSelector(selectValidateTeleportData(truckId));\n\n    React.useEffect(() => {\n        if (!truckId || !canTeleportAssets) {\n            return;\n        }\n\n        dispatch(validateAssetTeleport({ assetId: truckId }));\n    }, [dispatch, truckId, canTeleportAssets]);\n\n    const handleExecuteAssetTeleport = React.useCallback(() => {\n        if (!truckId) {\n            return;\n        }\n\n        dispatch(executeAssetTeleport({ assetId: truckId }));\n    }, [dispatch, truckId]);\n\n    React.useEffect(() => {\n        if (!truckId) {\n            return;\n        }\n\n        dispatch(fetchTruckDetails(truckId, partnerId));\n    }, [dispatch, truckId, partnerId]);\n\n    const refreshPageHandler = React.useCallback(() => {\n        if (!truckId) {\n            return;\n        }\n\n        dispatch(fetchTruckDetails(truckId, partnerId, { isForceUpdate: true }));\n    }, [dispatch, truckId, partnerId]);\n    useChannelSubscribe(truckDetailsRefreshChannel, refreshPageHandler);\n\n    const status = truckDetails?.status;\n    const actionOptions: Array<DropdownControlOptionT | SpecialOptionEnum | null> = React.useMemo(() => {\n        if (isReadOnly) {\n            return [];\n        }\n\n        if (status === TruckStatusEnum.archived && canArchiveTrucks) {\n            return [\n                {\n                    label: (\n                        <DropdownControlOptionLabel\n                            label={t('common:trucks-page.actions.activate')}\n                            icon={<HollowCircleIcon borderColor={StyleGuideColorsEnum.brandAccent} />}\n                        />\n                    ),\n                    onSelect: () => {\n                        onActivate(truckId);\n                    },\n                },\n            ];\n        }\n\n        const unavailableTeleportTooltipContent = validateTeleportData?.unavailableReason ? (\n            <TooltipContent theme={TooltipContentThemeEnum.black} width={150} isCenter>\n                {t(unavailableTeleportReasonI18nMap[validateTeleportData.unavailableReason])}\n            </TooltipContent>\n        ) : null;\n\n        const isTeleportShowLoading = isValidatingTeleport || isExecutingTeleport;\n        const isTeleportDisabled = isTeleportShowLoading || Boolean(unavailableTeleportTooltipContent);\n\n        return [\n            ...(canEditTrucks\n                ? [\n                      {\n                          label: (\n                              <DropdownControlOptionLabel\n                                  label={t('common:trucks-page.actions.edit')}\n                                  icon={\n                                      <EditIcon\n                                          size={DEFAULT_ICON_SIZE}\n                                          fillColor={StyleGuideColorsEnum.brandAccent}\n                                          strokeColor={StyleGuideColorsEnum.brandDark}\n                                      />\n                                  }\n                              />\n                          ),\n                          onSelect: () => {\n                              onEdit();\n                          },\n                      },\n                      SpecialOptionEnum.separator,\n                  ]\n                : []),\n            ...(canTeleportAssets\n                ? [\n                      {\n                          label: (\n                              <Tooltip\n                                  position={TooltipPositionEnum.centerLeft}\n                                  theme={TooltipThemeEnum.black}\n                                  tooltipNode={unavailableTeleportTooltipContent}\n                              >\n                                  {() => (\n                                      <DropdownControlOptionLabel\n                                          label={t('common:trucks-page.actions.teleport')}\n                                          isDisabled={isTeleportDisabled}\n                                          icon={\n                                              isTeleportShowLoading ? (\n                                                  <ControlLoaderIcon\n                                                      fillColor={StyleGuideColorsEnum.brandAccent}\n                                                      size={DEFAULT_ICON_SIZE}\n                                                  />\n                                              ) : (\n                                                  <TeleportIcon size={DEFAULT_ICON_SIZE} />\n                                              )\n                                          }\n                                      />\n                                  )}\n                              </Tooltip>\n                          ),\n                          isDisabled: isTeleportDisabled,\n                          onSelect: handleExecuteAssetTeleport,\n                      },\n                  ]\n                : []),\n            status !== TruckStatusEnum.archived && canSetUnavailableTrucks\n                ? {\n                      label: (\n                          <DropdownControlOptionLabel\n                              label={t('common:trucks-page.actions.add-maintenance-event')}\n                              icon={<WrenchIcon fillColor={StyleGuideColorsEnum.orange} />}\n                          />\n                      ),\n                      onSelect: () => {\n                          setIsShowUnavailableForm(true);\n                      },\n                  }\n                : null,\n            ...(canActivateTrucks\n                ? [\n                      SpecialOptionEnum.separator,\n                      {\n                          label: (\n                              <DropdownControlOptionLabel\n                                  label={t('common:trucks-page.actions.archive')}\n                                  icon={<DeleteIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                              />\n                          ),\n                          onSelect: () => {\n                              onArchive(truckId);\n                          },\n                      },\n                  ]\n                : []),\n        ];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [\n        t,\n        onArchive,\n        truckId,\n        onEdit,\n        canEditTrucks,\n        canActivateTrucks,\n        canSetUnavailableTrucks,\n        canArchiveTrucks,\n        isReadOnly,\n        canTeleportAssets,\n        isValidatingTeleport,\n        isExecutingTeleport,\n        handleExecuteAssetTeleport,\n        validateTeleportData,\n    ]);\n\n    const setUnavailableStatus = useSelector(selectSetUnavailableVehicleRequestStatus);\n    React.useEffect(() => {\n        if (setUnavailableStatus.ok) {\n            setIsShowUnavailableForm(false);\n        }\n    }, [setUnavailableStatus.ok]);\n\n    let footerNode: React.ReactNode = null;\n\n    if (isShowUnavailableForm) {\n        footerNode = (\n            <>\n                <ParanjaSideBarLayout />\n                <FooterSideBarLayout isTransparent hasShadow>\n                    <SetUnavailableFooterContent\n                        assetId={truckId}\n                        onClose={() => {\n                            setIsShowUnavailableForm(false);\n                        }}\n                        isLoading={setUnavailableStatus.loading}\n                        onSetUnavailable={onSetUnavailable}\n                        assetType={AssetTypeEnum.truck}\n                    />\n                </FooterSideBarLayout>\n            </>\n        );\n    }\n\n    return (\n        <>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent\n                    title={t('common:trucks-page.edit-truck.title', {\n                        plateNumber: truckDetails?.plateNumber || '',\n                    })}\n                    afterTitleNode={<TruckStatusPill isSymmetrical status={truckDetails?.status || null} />}\n                    dropdownOptions={actionOptions}\n                    onClose={() => {\n                        if (onClose) {\n                            onClose();\n                        }\n                    }}\n                    onGoBack={onGoBack}\n                    afterDropdownNode={\n                        onToggleShowMap && !isDisableShowOnMap ? (\n                            <MapTrigger\n                                toggleMap={() => {\n                                    if (onToggleShowMap) {\n                                        onToggleShowMap();\n                                    }\n                                }}\n                                isActiveMapTrigger={isShowMap}\n                            />\n                        ) : null\n                    }\n                />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <TruckDetails\n                    partnerId={partnerId}\n                    isLoading={fetchDetailsRequestStatus.loading}\n                    truckDetails={truckDetails}\n                    onOpenTrailerDetails={onOpenTrailerDetails}\n                    onOpenContactDetails={onOpenContactDetails}\n                    onOpenUserDetails={onOpenUserDetails}\n                />\n            </SideBarLayout>\n            {footerNode}\n        </>\n    );\n};\nexport default TruckDetailsSidebarContent;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"CheckboxCell__fadeIn___Il81B\",\"blinking\":\"CheckboxCell__blinking___f9iCy\"};","import * as React from 'react';\nimport { memo } from 'react';\nimport { ApiLocationT } from 'common/utils/api/models';\nimport AsyncDictCountryNameLabel from 'common/components/AsyncDictCountryNameLabel/AsyncDictCountryNameLabel';\nimport reduce from 'lodash/reduce';\nimport { Trans } from 'react-i18next';\nimport { createMapLink } from 'common/utils/links';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport classNames from 'classnames/bind';\nimport styles from './LocationLabel.scss';\nimport omit from 'lodash/omit';\nimport isEmpty from 'lodash/isEmpty';\nimport isNumber from 'lodash/isNumber';\n\nconst cx = classNames.bind(styles);\n\nexport type LocationLabelAddressFormatT =\n    | 'pickup_asset_s1_s2_zip_city_country'\n    | 'dropoff_asset_s1_s2_zip_city_country'\n    | 's1_s2_zip_city_country'\n    | 'zip_city_country';\n\nexport type PropsT = {\n    className?: string;\n    format: LocationLabelAddressFormatT;\n    location: ApiLocationT | null | undefined;\n    allowShowCountryCode?: boolean; // wait experiment TZT-6541\n    separator?: React.ReactNode;\n};\n\nconst concatNodes = (nodes: Array<React.ReactNode>, separator: React.ReactNode): React.ReactNode => {\n    const filteredNodes = nodes.filter((value) => !!value);\n\n    return reduce(\n        filteredNodes,\n        (acc: Array<React.ReactNode>, value, index) => {\n            acc.push(\n                <>\n                    {value}\n                    {value && filteredNodes.length - 1 !== index ? separator : null}\n                </>,\n            );\n            return acc;\n        },\n        [],\n    );\n};\n\nconst renderCountry = (allowShowCountryCode: boolean | undefined, location: ApiLocationT | null | undefined) => {\n    if (!location || !location?.country) {\n        return null;\n    }\n\n    if (allowShowCountryCode) {\n        return location?.country;\n    }\n\n    return <AsyncDictCountryNameLabel countryCode={location?.country} />;\n};\n\nconst checkShouldRenderLocationPlaceholder = (location: ApiLocationT | null | undefined) => {\n    const restAddress = omit(location, ['latitude', 'longitude', 'country']);\n    const isEmptyRestAddress = isEmpty(restAddress);\n    return isEmptyRestAddress && isNumber(location?.latitude) && isNumber(location?.longitude);\n};\n\nconst LocationLabel: React.FC<PropsT> = memo((props) => {\n    const { className, location, allowShowCountryCode, format } = props;\n\n    if (!location) {\n        return null;\n    }\n\n    const separator = props.separator || ', ';\n\n    let locationNode: React.ReactNode;\n    if (format === 's1_s2_zip_city_country') {\n        locationNode = concatNodes(\n            [\n                location.street1,\n                location.street2,\n                location.zipCode,\n                location.city,\n                renderCountry(allowShowCountryCode, location),\n            ],\n            separator,\n        );\n    } else if (format === 'zip_city_country') {\n        locationNode = concatNodes(\n            [location.zipCode, location.city, renderCountry(allowShowCountryCode, location)],\n            separator,\n        );\n    } else if (format === 'pickup_asset_s1_s2_zip_city_country') {\n        if (checkShouldRenderLocationPlaceholder(location)) {\n            locationNode = (\n                <>\n                    <Trans i18nKey=\"common:info-table.label.empty-address-for-pickup-assets-0\" />{' '}\n                    <Link\n                        className={cx('link')}\n                        to={createMapLink(`${location.latitude},${location.longitude}`)}\n                        theme={LinkThemeEnum.boldBrandDark}\n                        target=\"_blank\"\n                        isExternal\n                    >\n                        ({location?.latitude}, {location?.longitude})\n                    </Link>{' '}\n                    <Trans i18nKey=\"common:info-table.label.empty-address-for-pickup-assets-1\" />\n                </>\n            );\n        } else {\n            locationNode = concatNodes(\n                [\n                    location.street1,\n                    location.street2,\n                    location.zipCode,\n                    location.city,\n                    renderCountry(allowShowCountryCode, location),\n                ],\n                separator,\n            );\n        }\n    } else if (format === 'dropoff_asset_s1_s2_zip_city_country') {\n        if (checkShouldRenderLocationPlaceholder(location)) {\n            locationNode = (\n                <>\n                    <Trans i18nKey=\"common:info-table.label.empty-address-0\" />{' '}\n                    <Link\n                        className={cx('link')}\n                        to={createMapLink(`${location.latitude},${location.longitude}`)}\n                        theme={LinkThemeEnum.boldBrandDark}\n                        target=\"_blank\"\n                        isExternal\n                    >\n                        ({location?.latitude}, {location?.longitude})\n                    </Link>{' '}\n                    <Trans i18nKey=\"common:info-table.label.empty-address-1\" />\n                </>\n            );\n        } else {\n            locationNode = concatNodes(\n                [\n                    location.street1,\n                    location.street2,\n                    location.zipCode,\n                    location.city,\n                    renderCountry(allowShowCountryCode, location),\n                ],\n                separator,\n            );\n        }\n    }\n\n    return <span className={className}>{locationNode}</span>;\n});\n\nexport default LocationLabel;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\n\nimport SnowflakeIcon from 'common/icons/SnowflakeIcon';\n\nexport type PropsT = {\n    className?: string;\n    children?: React.ReactNode;\n};\n\nconst CurrentTemperatureAlert: React.FC<PropsT> = React.memo(({ className, children }) => {\n    return (\n        <Alert\n            icon={<SnowflakeIcon fillColor={StyleGuideColorsEnum.white} />}\n            size={AlertSizeEnum.small}\n            theme={AlertThemeEnum.gray}\n            className={className}\n        >\n            {children}\n        </Alert>\n    );\n});\n\nexport default CurrentTemperatureAlert;\n","import React from 'react';\nimport classNames from 'classnames/bind';\nimport omit from 'lodash/omit';\nimport flatten from 'lodash/flatten';\n\nimport styles from './FilterPills.scss';\nimport { useTranslation } from 'react-i18next';\nimport FilterPill, { FilterPillThemeEnum } from './FilterPill/FilterPill';\nimport isArray from 'lodash/isArray';\nimport cloneDeep from 'lodash/cloneDeep';\nimport times from 'lodash/times';\n\nconst cx = classNames.bind(styles);\n\nexport type FilterPillsConfigT<QueryFiltersT> = Array<\n    {\n        clearKeys: Array<keyof QueryFiltersT>;\n        theme?: FilterPillThemeEnum;\n        isMultiple?: boolean;\n    } & (\n        | {\n              isMultiple?: false;\n              render: (queryFilters: QueryFiltersT) => React.ReactNode;\n              renderIcon?: (queryFilters: QueryFiltersT, isCompact?: boolean) => React.ReactNode;\n              getTheme?: (queryFilters: QueryFiltersT) => FilterPillThemeEnum;\n          }\n        | {\n              isMultiple: true;\n              render: (queryFilters: QueryFiltersT, index: number) => React.ReactNode;\n              renderIcon?: (queryFilters: QueryFiltersT, index: number, isCompact?: boolean) => React.ReactNode;\n              getTheme?: (queryFilters: QueryFiltersT, index: number) => FilterPillThemeEnum;\n          }\n    )\n>;\n\ntype PropsT<QueryFiltersT> = {\n    config: FilterPillsConfigT<QueryFiltersT>;\n    queryFilters: QueryFiltersT;\n    setQueryFilters: (queryFilters: Partial<QueryFiltersT>) => void;\n    isCompact?: boolean;\n    isHideClearAll?: boolean;\n    testSelector?: string;\n};\n\ntype PillPropsT = {\n    testSelector: string;\n    label: React.ReactNode;\n    icon: React.ReactNode;\n    clearKeys: Array<string>;\n    theme: FilterPillThemeEnum | null | undefined;\n} & (\n    | {\n          isMultiple: true;\n          clearIndex: number;\n      }\n    | {\n          isMultiple?: false;\n      }\n);\n\nconst FilterPills = <QueryFiltersT extends {}>(props: PropsT<QueryFiltersT>): React.ReactElement => {\n    const { queryFilters, setQueryFilters, config, isHideClearAll, isCompact, testSelector } = props;\n    const { t } = useTranslation();\n\n    const clearFilters = (clearKeys: Array<string>) => {\n        const newQueryFilters = omit(queryFilters, clearKeys);\n\n        setQueryFilters(newQueryFilters);\n    };\n\n    const clearMultipleFilters = (clearKeys: Array<string>, clearIndex: number) => {\n        const newQueryFilters = clearKeys.reduce<typeof queryFilters>((acc, clearKey) => {\n            // @ts-expect-error No index signature with a parameter of type 'string' was found on type '{}'.\n            const value = acc[clearKey] as Array<string> | string | undefined;\n            if (!value) {\n                return acc;\n            }\n\n            if (isArray(value)) {\n                value.splice(clearIndex, 1);\n            } else {\n                // @ts-expect-error No index signature with a parameter of type 'string' was found on type '{}'.\n                delete acc[clearKey];\n            }\n\n            return acc;\n        }, cloneDeep(queryFilters));\n\n        setQueryFilters(newQueryFilters);\n    };\n\n    const pillProps = config.reduce<Array<PillPropsT>>((acc, configItem) => {\n        const hasValues = configItem.clearKeys.some((key) => queryFilters[key] !== undefined);\n        if (!hasValues) {\n            return acc;\n        }\n\n        if (configItem.isMultiple) {\n            const { renderIcon, render, theme, getTheme, clearKeys } = configItem;\n\n            // @ts-expect-error Property 'length' does not exist on type 'NonNullable<QueryFiltersT[keyof QueryFiltersT]>'.\n            const count = queryFilters[clearKeys?.[0]]?.length || 0;\n            times(count).forEach((_, index) => {\n                acc.push({\n                    testSelector: `${testSelector}_${clearKeys.join('-')}_${index}`,\n                    label: render(queryFilters, index),\n                    icon: renderIcon ? renderIcon(queryFilters, index, isCompact) : null,\n                    theme: getTheme?.(queryFilters, index) || theme,\n                    clearKeys: clearKeys as Array<string>,\n                    isMultiple: true,\n                    clearIndex: index,\n                });\n            });\n        } else {\n            const { renderIcon, render, getTheme, theme, clearKeys } = configItem;\n\n            acc.push({\n                testSelector: `${testSelector}_${clearKeys.join('-')}`,\n                label: render(queryFilters),\n                icon: renderIcon ? renderIcon(queryFilters, isCompact) : null,\n                theme: getTheme?.(queryFilters) || theme,\n                clearKeys: clearKeys as Array<string>,\n            });\n        }\n\n        return acc;\n    }, []);\n\n    const allKeys = flatten(config.map((configItem) => configItem.clearKeys)) as string[];\n\n    const clearAllFilters = () => clearFilters(allKeys);\n\n    return (\n        <>\n            {!!pillProps.length && !isHideClearAll && (\n                <FilterPill\n                    className={cx('pill')}\n                    label={t('common:clear-all-filters')}\n                    withCloser={false}\n                    testSelector={`${testSelector}_clear-all`}\n                    theme={FilterPillThemeEnum.charcoal}\n                    onClick={clearAllFilters}\n                    isCompact={isCompact}\n                />\n            )}\n            {pillProps.map((pillProps, pillIndex) => (\n                <FilterPill\n                    key={pillIndex}\n                    className={cx('pill')}\n                    icon={pillProps?.icon}\n                    label={pillProps?.label}\n                    withCloser\n                    testSelector={pillProps?.testSelector}\n                    theme={pillProps?.theme || FilterPillThemeEnum.brandDark}\n                    onClick={() => {\n                        if (pillProps.isMultiple) {\n                            clearMultipleFilters(pillProps.clearKeys, pillProps.clearIndex);\n                        } else {\n                            clearFilters(pillProps.clearKeys);\n                        }\n                    }}\n                    isCompact={isCompact}\n                />\n            ))}\n        </>\n    );\n};\n\nexport default React.memo(FilterPills) as typeof FilterPills;\n","import { SharableStateT } from 'common/store/models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { initialCompanyDriversState } from './reducer';\nimport { CompanyDriversStateT, DriverDetailsByIdT } from './types';\n\nconst EMPTY_QUERY = {};\n\nconst selectCompanyDriversState = (state: SharableStateT, companyId: CompanyIdT | null): CompanyDriversStateT => {\n    if (!companyId) {\n        return initialCompanyDriversState;\n    }\n\n    return state.drivers[companyId] || initialCompanyDriversState;\n};\n\nexport const selectDriversPages =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyDriversStateT['pages'] =>\n        selectCompanyDriversState(state, companyId).pages;\n\nexport const selectDriversById =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyDriversStateT['byId'] =>\n        selectCompanyDriversState(state, companyId).byId;\n\nexport const selectDriversQuery =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyDriversStateT['query'] =>\n        selectCompanyDriversState(state, companyId).query || EMPTY_QUERY;\n\nexport const selectDriversTotal =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyDriversStateT['total'] =>\n        selectCompanyDriversState(state, companyId).total;\n\nexport const selectInviteDriverRequest =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): RequestStatusT =>\n        selectCompanyDriversState(state, companyId).inviteRequest;\n\nexport const selectAddDriverRequest =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): RequestStatusT =>\n        selectCompanyDriversState(state, companyId).addRequest;\n\nexport const selectDeleteDriverRequest =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): RequestStatusT =>\n        selectCompanyDriversState(state, companyId).deleteRequest;\n\nexport const selectUpdateDriverRequest =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): RequestStatusT =>\n        selectCompanyDriversState(state, companyId).updateRequest;\n\nexport const selectFetchDriverDetailsRequest =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): RequestStatusT =>\n        selectCompanyDriversState(state, companyId).fetchDetailsRequest;\n\nexport const selectDriverDetailsById =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): DriverDetailsByIdT =>\n        selectCompanyDriversState(state, companyId).detailsById;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"Switcher__wrap___Cx65I\",\"switcher\":\"Switcher__switcher___MjgMQ\",\"switcher--isClickable\":\"Switcher__switcher--isClickable___l5apf\",\"switcher--theme-primary\":\"Switcher__switcher--theme-primary____N8bu\",\"switcher--isChecked\":\"Switcher__switcher--isChecked___yMOGq\",\"switcher--isHover\":\"Switcher__switcher--isHover___lB03h\",\"switcher--theme-danger\":\"Switcher__switcher--theme-danger___oXnGO\",\"switcher--isDisabled\":\"Switcher__switcher--isDisabled___uXa20\",\"label\":\"Switcher__label___a9eYR\",\"label--isClickable\":\"Switcher__label--isClickable___FEMhS\",\"label--hasRightIcon\":\"Switcher__label--hasRightIcon___Fll4Q\",\"label--isDisabled\":\"Switcher__label--isDisabled___WWLlm\",\"fadeIn\":\"Switcher__fadeIn___uWxdC\",\"blinking\":\"Switcher__blinking___Ev6PX\"};","import React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './DataSourceDropdown.scss';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\n\nimport isNil from 'lodash/isNil';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport { useTranslation } from 'react-i18next';\nimport { StatisticSourceEnum } from 'broker-admin/utils/api/broker-tranziit/models';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype ValueT = StatisticSourceEnum | null;\n\ntype PropsT = {\n    selectedValue: ValueT;\n    placeholder: string;\n    isDisabled?: boolean;\n    onSelect: (value: ValueT, label: string) => void;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    className?: string;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    hasChanges?: boolean;\n    onBlur: () => void;\n    onFocus: () => void;\n    onReset?: () => void;\n};\n\ntype OptionT = ValueT;\n\nconst OPTIONS = [StatisticSourceEnum.import, StatisticSourceEnum.native];\n\nexport const DATA_SOURCE_LABELS_T: Record<StatisticSourceEnum, string> = {\n    [StatisticSourceEnum.import]: 'statistics.data-source.imported',\n    [StatisticSourceEnum.native]: 'statistics.data-source.native',\n};\n\nconst DataSourceDropdown: React.FC<PropsT> = React.memo((props) => {\n    const {\n        selectedValue,\n        placeholder,\n        onSelect,\n        overlayPosition,\n        className,\n        hasError,\n        hasWarning,\n        hasChanges,\n        onBlur,\n        onFocus,\n        onReset,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const renderOption = (value?: ValueT, placeholder?: string): React.ReactNode => {\n        if (isNil(value)) {\n            return placeholder;\n        }\n\n        return t(DATA_SOURCE_LABELS_T[value]);\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option;\n\n    const handleSelect = (value: ValueT) => {\n        const label = value ? t(DATA_SOURCE_LABELS_T[value]) : '';\n\n        onSelect(value, label);\n    };\n\n    return (\n        <DropdownInput<OptionT, ValueT>\n            className={className}\n            selectedValue={selectedValue}\n            placeholder={placeholder}\n            options={OPTIONS}\n            onSelect={handleSelect}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            renderOption={renderOption}\n            renderTriggerContent={renderOption}\n            getOptionValue={getOptionValue}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            hasClearControl={!!onReset}\n            onReset={onReset}\n        />\n    );\n});\n\nexport default DataSourceDropdown;\n","// extracted by mini-css-extract-plugin\nexport default {\"prices\":\"ShipperContractLaneOtherDetails__prices___RSt3Q\",\"fadeIn\":\"ShipperContractLaneOtherDetails__fadeIn___V11Wz\",\"blinking\":\"ShipperContractLaneOtherDetails__blinking___K1d4w\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './RulePreviewPill.scss';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { ApiPriceRuleTypeT, ApiRuleOperatorT, PriceRuleTypeEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\nimport RuleImpact from 'common/components/RuleImpact/RuleImpact';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport cs from 'classnames';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    typeClassName?: string;\n    ruleClassName?: string;\n    ruleType: ApiPriceRuleTypeT | null;\n    ruleId: RuleIdT;\n    ruleName: string;\n    ruleOperator: ApiRuleOperatorT | null;\n    ruleValue: number;\n    ruleTheme: PillLabelThemeEnum;\n    onClick: ((ruleId: RuleIdT) => void) | null;\n};\n\nconst ruleTypeI18nMap: Record<ApiPriceRuleTypeT, string> = {\n    [PriceRuleTypeEnum.basic]: 'common:short-rule-type.labels.basic',\n    [PriceRuleTypeEnum.carrier]: 'common:short-rule-type.labels.carrier',\n    [PriceRuleTypeEnum.shipper]: 'common:short-rule-type.labels.shipper',\n    [PriceRuleTypeEnum.custom]: 'common:short-rule-type.labels.custom',\n};\n\nconst ruleTypeTooltipsI18nMap: Record<ApiPriceRuleTypeT, string | null> = {\n    [PriceRuleTypeEnum.basic]: null,\n    [PriceRuleTypeEnum.carrier]: null,\n    [PriceRuleTypeEnum.shipper]: null,\n    [PriceRuleTypeEnum.custom]: 'common:short-rule-type.tooltip.custom',\n};\n\nconst ruleTypeThemeMap: Record<ApiPriceRuleTypeT, PillLabelThemeEnum> = {\n    [PriceRuleTypeEnum.basic]: PillLabelThemeEnum.lightSlateGray,\n    [PriceRuleTypeEnum.carrier]: PillLabelThemeEnum.tumbleweed,\n    [PriceRuleTypeEnum.shipper]: PillLabelThemeEnum.pewterBlue,\n    [PriceRuleTypeEnum.custom]: PillLabelThemeEnum.tomatoRed70,\n};\n\nconst RulePreviewPill: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        typeClassName,\n        ruleClassName,\n        ruleTheme,\n        ruleName,\n        ruleValue,\n        ruleOperator,\n        ruleType,\n        ruleId,\n        onClick,\n    } = props;\n\n    const { t } = useTranslation();\n\n    if (!ruleType || !ruleOperator) {\n        return null;\n    }\n\n    const tooltipsI18n = ruleTypeTooltipsI18nMap[ruleType];\n\n    return (\n        <Tooltip\n            className={cs(cx('wrap'), className)}\n            position={TooltipPositionEnum.topCenter}\n            theme={TooltipThemeEnum.black}\n            tooltipNode={\n                tooltipsI18n ? (\n                    <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                        {t(tooltipsI18n)}\n                    </TooltipContent>\n                ) : null\n            }\n        >\n            {() => (\n                <>\n                    <PillLabel\n                        theme={ruleTypeThemeMap[ruleType]}\n                        className={cs(cx('type'), typeClassName)}\n                        isSymmetrical\n                    >\n                        {t(ruleTypeI18nMap[ruleType])}\n                    </PillLabel>\n                    <PillLabel theme={ruleTheme} className={cs(cx('rule'), ruleClassName)} isSymmetrical>\n                        {ruleName}: <RuleImpact value={ruleValue} impactStrategy={ruleOperator} />\n                        {onClick && (\n                            <div\n                                className={cx('closer')}\n                                onClick={() => {\n                                    onClick(ruleId);\n                                }}\n                            >\n                                <CloseIcon fillColor=\"currentColor\" />\n                            </div>\n                        )}\n                    </PillLabel>\n                </>\n            )}\n        </Tooltip>\n    );\n};\n\nexport default RulePreviewPill;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n};\n\nconst DeleteIcon: React.FC<PropsT> = (props) => {\n    const { fillColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={fillColor}\n                    d=\"M5.5 15.25c0 .825.675 1.5 1.5 1.5h6c.825 0 1.5-.675 1.5-1.5v-9h-9v9zM15.25 4h-2.625l-.75-.75h-3.75l-.75.75H4.75v1.5h10.5V4z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nDeleteIcon.displayName = 'DeleteIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.charcoal,\n};\n\nexport { storyProps };\nexport default DeleteIcon;\n","import requestStatus from 'common/utils/request-status';\n\nimport {\n    FETCH_PARTNER_DETAILS_REQUEST_BEGIN,\n    FETCH_PARTNER_DETAILS_REQUEST_ERROR,\n    FETCH_PARTNER_DETAILS_REQUEST_SUCCESS,\n    LOCK_PARTNER_REQUEST_BEGIN,\n    LOCK_PARTNER_REQUEST_ERROR,\n    LOCK_PARTNER_REQUEST_SUCCESS,\n    LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_BEGIN,\n    LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_ERROR,\n    LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_SUCCESS,\n    PartnerDetailsActionT,\n    PartnerDetailsStateT,\n    UPDATE_PARTNER_DETAILS_REQUEST_BEGIN,\n    UPDATE_PARTNER_DETAILS_REQUEST_ERROR,\n    UPDATE_PARTNER_DETAILS_REQUEST_SUCCESS,\n    VERIFY_PARTNER_DETAILS_REQUEST_BEGIN,\n    VERIFY_PARTNER_DETAILS_REQUEST_ERROR,\n    VERIFY_PARTNER_DETAILS_REQUEST_SUCCESS,\n} from './types';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\nimport isEqual from 'lodash/isEqual';\n\nconst initialState: PartnerDetailsStateT = {\n    fetchRequest: requestStatus.initial,\n    updateRequest: requestStatus.initial,\n    verifyRequest: requestStatus.initial,\n    lockRequest: requestStatus.initial,\n    linkRequestStatus: requestStatus.initial,\n    byId: {},\n};\n\nexport default (state = initialState, action: PartnerDetailsActionT | DestroySessionActionT): PartnerDetailsStateT => {\n    switch (action.type) {\n        case FETCH_PARTNER_DETAILS_REQUEST_BEGIN: {\n            return {\n                ...state,\n                fetchRequest: requestStatus.loading,\n            };\n        }\n        case FETCH_PARTNER_DETAILS_REQUEST_SUCCESS: {\n            const { partnerDetails } = action;\n\n            const prevPartnerDetails = state?.byId?.[partnerDetails?.id as string] || null;\n\n            return {\n                ...state,\n                byId: {\n                    ...state.byId,\n                    [partnerDetails?.id as string]: isEqual(prevPartnerDetails, partnerDetails)\n                        ? prevPartnerDetails\n                        : partnerDetails,\n                },\n                fetchRequest: requestStatus.ok,\n            };\n        }\n        case FETCH_PARTNER_DETAILS_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                fetchRequest: requestStatus.setError(error),\n            };\n        }\n        case UPDATE_PARTNER_DETAILS_REQUEST_BEGIN: {\n            return {\n                ...state,\n                updateRequest: requestStatus.loading,\n            };\n        }\n        case UPDATE_PARTNER_DETAILS_REQUEST_SUCCESS: {\n            const { partnerDetails } = action;\n\n            const prevPartnerDetails = state?.byId?.[partnerDetails?.id as string] || null;\n\n            return {\n                ...state,\n                byId: {\n                    ...state.byId,\n                    [partnerDetails?.id as string]: isEqual(prevPartnerDetails, partnerDetails)\n                        ? prevPartnerDetails\n                        : partnerDetails,\n                },\n                updateRequest: requestStatus.ok,\n            };\n        }\n        case UPDATE_PARTNER_DETAILS_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                updateRequest: requestStatus.setError(error),\n            };\n        }\n        case LOCK_PARTNER_REQUEST_BEGIN: {\n            return {\n                ...state,\n                lockRequest: requestStatus.loading,\n            };\n        }\n        case LOCK_PARTNER_REQUEST_ERROR: {\n            const { error } = action;\n            return {\n                ...state,\n                lockRequest: requestStatus.setError(error),\n            };\n        }\n        case LOCK_PARTNER_REQUEST_SUCCESS: {\n            return {\n                ...state,\n                lockRequest: requestStatus.ok,\n            };\n        }\n        case VERIFY_PARTNER_DETAILS_REQUEST_BEGIN: {\n            return {\n                ...state,\n                verifyRequest: requestStatus.loading,\n            };\n        }\n        case VERIFY_PARTNER_DETAILS_REQUEST_ERROR: {\n            const { error } = action;\n            return {\n                ...state,\n                verifyRequest: requestStatus.setError(error),\n            };\n        }\n        case VERIFY_PARTNER_DETAILS_REQUEST_SUCCESS: {\n            return {\n                ...state,\n                verifyRequest: requestStatus.ok,\n            };\n        }\n        case LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_BEGIN: {\n            return {\n                ...state,\n                linkRequestStatus: requestStatus.loading,\n            };\n        }\n        case LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_ERROR: {\n            return {\n                ...state,\n                linkRequestStatus: requestStatus.setError(action.error),\n            };\n        }\n        case LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_SUCCESS: {\n            return {\n                ...state,\n                linkRequestStatus: requestStatus.ok,\n            };\n        }\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default:\n            return state;\n    }\n};\n","import React from 'react';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport debounce from 'lodash/debounce';\nimport { TranziitApiResultT } from 'common/utils/api/tranziit/base-tranziit-api';\nimport isString from 'lodash/isString';\nimport isNumber from 'lodash/isNumber';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport useOnlyChangesEffect from 'common/utils/hooks/useOnlyChangesEffect';\n\ntype BaseOptionT = {};\n\nexport type AsyncRequestFactoryResultT<T extends BaseOptionT> = TranziitApiResultT<Array<T>>;\nexport type AsyncRequestFactoryT<T extends BaseOptionT> = (query: string) => Promise<AsyncRequestFactoryResultT<T>>;\n\nexport type UseAsyncOptionsParamsT<T extends BaseOptionT> = {\n    initialOptions?: Array<T> | null;\n    requestFactory: AsyncRequestFactoryT<T>;\n    settings: {\n        allowedQueryMinLength?: number;\n    };\n};\n\nexport type UseAsyncOptionsResultT<T extends BaseOptionT> = {\n    options: Array<T>;\n    optionsQuery: string | null;\n    requestStatus: RequestStatusT;\n    onChangeQuery: (query?: string | null | undefined) => void;\n};\n\ntype DataT<T extends BaseOptionT> = {\n    status: RequestStatusT;\n    response?: {\n        query: string;\n        options: Array<T>;\n    };\n};\n\nconst COLD_TIME = 300;\n\nconst prepareQuery = (query: string) => query.trim();\n\nexport const useAsyncOptionsRequest = <T extends BaseOptionT>({\n    initialOptions,\n    requestFactory,\n    settings,\n}: UseAsyncOptionsParamsT<T>): UseAsyncOptionsResultT<T> => {\n    const lastSuggestionsQueryRef = React.useRef<string | null>(null);\n\n    const [data, setData] = React.useState<DataT<T>>({\n        status: requestStatus.initial,\n    });\n\n    const allowedQueryMinLength = isNumber(settings.allowedQueryMinLength) ? settings.allowedQueryMinLength : 2;\n\n    const handleChangeQuery = React.useCallback(\n        (rawQuery?: string | null | undefined, options?: FetchOptionsT): void => {\n            if (!isString(rawQuery)) {\n                return;\n            }\n\n            const query = prepareQuery(rawQuery);\n\n            if (!isNumber(allowedQueryMinLength) && !query) {\n                return;\n            }\n\n            if (isNumber(allowedQueryMinLength) && query.length < allowedQueryMinLength) {\n                return;\n            }\n\n            if (lastSuggestionsQueryRef.current === query && !options?.isForceUpdate) {\n                return;\n            }\n\n            lastSuggestionsQueryRef.current = query;\n\n            setData((data) => ({\n                ...data,\n                status: requestStatus.loading,\n            }));\n\n            requestFactory(query)\n                .then(([error, options]) => {\n                    if (lastSuggestionsQueryRef.current !== query) {\n                        // ignore lag requests\n                        return;\n                    }\n\n                    if (error) {\n                        setData((data) => ({\n                            ...data,\n                            status: requestStatus.setError(error),\n                            response: {\n                                query,\n                                options: [],\n                            },\n                        }));\n                        return;\n                    }\n\n                    setData((data) => ({\n                        ...data,\n                        status: requestStatus.ok,\n                        response: {\n                            query,\n                            options: options || [],\n                        },\n                    }));\n                })\n                .catch((error) => {\n                    if (lastSuggestionsQueryRef.current !== query) {\n                        // ignore lag requests\n                        return;\n                    }\n\n                    setData((data) => ({\n                        ...data,\n                        status: requestStatus.setError(error),\n                        response: {\n                            query,\n                            options: [],\n                        },\n                    }));\n                });\n        },\n        [requestFactory, allowedQueryMinLength],\n    );\n\n    React.useEffect(() => {\n        if (allowedQueryMinLength === 0) {\n            handleChangeQuery(lastSuggestionsQueryRef.current || '');\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [allowedQueryMinLength]);\n\n    useOnlyChangesEffect(() => {\n        const lastQuery = lastSuggestionsQueryRef.current;\n\n        const hasLastQuery = lastQuery !== null;\n        if (!hasLastQuery) {\n            return;\n        }\n\n        handleChangeQuery(lastQuery, { isForceUpdate: true });\n    }, [handleChangeQuery]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        const lastQuery = lastSuggestionsQueryRef.current;\n\n        const hasLastQuery = lastQuery !== null;\n        if (!hasLastQuery) {\n            return;\n        }\n\n        handleChangeQuery(lastQuery, { isForceUpdate: true });\n    }, [handleChangeQuery]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const response = React.useMemo(() => {\n        if (data.response) {\n            return data.response;\n        }\n\n        return {\n            query: null,\n            options: initialOptions || [],\n        };\n    }, [initialOptions, data.response]);\n\n    return {\n        options: response.options,\n        optionsQuery: response.query,\n        requestStatus: data.status,\n        onChangeQuery: debounce(handleChangeQuery, COLD_TIME),\n    };\n};\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './TypeCell.scss';\nimport { useTranslation } from 'react-i18next';\nimport { ApiTrailerT } from 'common/store/trailers/models';\n\ntype PropsT = {\n    trailer: ApiTrailerT;\n};\n\nconst cx = classNames.bind(styles);\n\nconst TypeCell: React.FC<PropsT> = React.memo((props) => {\n    const { trailer } = props;\n\n    const { t } = useTranslation();\n\n    const type = trailer ? t(`common:trailer-type.${trailer.dictTrailerInfo.trailerType}`) : null;\n\n    const subtype = trailer\n        ? t('common:trailer-subtype-template', {\n              length: trailer.dictTrailerInfo.length,\n              model: trailer.dictTrailerInfo.model,\n              eur1Pallets: trailer.dictTrailerInfo.eur1Pallets,\n              eur2Pallets: trailer.dictTrailerInfo.eur2Pallets,\n          })\n        : null;\n\n    return (\n        <>\n            <div className={cx('type')}>{type}</div>\n            <div className={cx('sub-type')}>{subtype}</div>\n        </>\n    );\n});\n\nexport default TypeCell;\n","import * as React from 'react';\n\nimport FilterPills, { FilterPillsConfigT } from 'common/components/FilterPills/FilterPills';\nimport { FilterPillThemeEnum } from 'common/components/FilterPills/FilterPill/FilterPill';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from '../query-models';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { DATA_SOURCE_LABELS_T } from 'broker-admin/layouts/StatisticsPage/DataSourceDropdown/DataSourceDropdown';\nimport CountriesFilterPill from 'common/components/filter-pills/CountriesFilterPill/CountriesFilterPill';\nimport { StatisticSourceEnum } from 'broker-admin/utils/api/broker-tranziit/models';\n\ntype PropsT = {\n    isCompact?: boolean;\n    queryFilters: QueryFiltersT;\n    setQueryFilters: (queryFilters: QueryFiltersT) => void;\n};\n\nconst SelectedFilters: React.FC<PropsT> = React.memo((props) => {\n    const { isCompact, queryFilters, setQueryFilters } = props;\n\n    const { t } = useTranslation();\n\n    const filterPillsConfig = React.useMemo(\n        (): FilterPillsConfigT<QueryFiltersT> => [\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: (queryFilters) => {\n                    return t('statistics.filters.pills.data-source', {\n                        value: t(\n                            DATA_SOURCE_LABELS_T[queryFilters[QueryFiltersKeysEnum.dataSource] as StatisticSourceEnum],\n                        ),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.dataSource],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: (queryFilters) => {\n                    const countryCode = queryFilters[QueryFiltersKeysEnum.fromCountryCode];\n                    return (\n                        <Trans\n                            i18nKey=\"statistics.filters.pills.from-country-code\"\n                            components={{\n                                value: <CountriesFilterPill countryCodes={countryCode ? [countryCode] : null} />,\n                            }}\n                        />\n                    );\n                },\n                clearKeys: [QueryFiltersKeysEnum.fromCountryCode],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('statistics.filters.pills.from-zip-code', {\n                        value: queryFilters[QueryFiltersKeysEnum.fromZipCode],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.fromZipCode],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: (queryFilters) => {\n                    const countryCode = queryFilters[QueryFiltersKeysEnum.toCountryCode];\n                    return (\n                        <Trans\n                            i18nKey=\"statistics.filters.pills.to-country-code\"\n                            components={{\n                                value: <CountriesFilterPill countryCodes={countryCode ? [countryCode] : null} />,\n                            }}\n                        />\n                    );\n                },\n                clearKeys: [QueryFiltersKeysEnum.toCountryCode],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('statistics.filters.pills.to-zip-code', {\n                        value: queryFilters[QueryFiltersKeysEnum.toZipCode],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.toZipCode],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: (queryFilters) => {\n                    return t('statistics.filters.pills.shipper', {\n                        value: queryFilters[QueryFiltersKeysEnum.shipperName],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.shipperId, QueryFiltersKeysEnum.shipperName],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: (queryFilters) => {\n                    return t('statistics.filters.pills.carrier', {\n                        value: queryFilters[QueryFiltersKeysEnum.carrierName],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.carrierId, QueryFiltersKeysEnum.carrierName],\n            },\n        ],\n        [t],\n    );\n\n    return (\n        <FilterPills<QueryFiltersT>\n            isCompact={isCompact}\n            queryFilters={queryFilters}\n            setQueryFilters={setQueryFilters}\n            config={filterPillsConfig}\n        />\n    );\n});\n\nexport default SelectedFilters;\n","import React from 'react';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\n\nimport styles from './AddOtherMessengerDropdown.scss';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport DropdownControl, {\n    DropdownControlOptionT,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport ExpandIcon from 'common/icons/ExpandIcon';\nimport { SocialMediaEnum, StyleGuideColorsEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport { isNonNil } from 'common/utils';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { MEDIA_FIELDS_NAME } from '../constants';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    formValues: {\n        [SocialMediaEnum.whatsapp]?: string;\n        [SocialMediaEnum.viber]?: string;\n        [SocialMediaEnum.telegram]?: string;\n        [SocialMediaEnum.msTeams]?: string;\n    };\n    onCreateField: (socialMedia: SocialMediaEnum) => void;\n};\n\nconst AddOtherMessengerDropdown: React.FC<PropsT> = React.memo((props) => {\n    const { formValues, className, onCreateField } = props;\n\n    const { t } = useTranslation();\n\n    const options: DropdownControlOptionT[] = React.useMemo(() => {\n        return MEDIA_FIELDS_NAME.map((media) => {\n            const alreadyHasField = typeof formValues[media] === 'string';\n            if (alreadyHasField) {\n                return null;\n            }\n\n            return {\n                label: <DropdownControlOptionLabel label={t(`common:team-members.edit-contact.messengers.${media}`)} />,\n                onSelect: () => {\n                    onCreateField(media);\n                },\n            };\n        }).filter(isNonNil);\n    }, [formValues, onCreateField, t]);\n\n    return (\n        <DropdownControl\n            className={cs(cx('dropdown'), className)}\n            overlayClassName={cx('overlay')}\n            options={options}\n            renderTrigger={(isActive, onClick) => (\n                <TransparentTrigger\n                    isPressed={isActive}\n                    onClick={onClick}\n                    label={t('common:team-members.edit-contact.add-messenger-trigger')}\n                    rightIcon={<ExpandIcon fillColor={StyleGuideColorsEnum.charcoal} />}\n                    reflectionTheme={ReflectionThemeEnum.light}\n                />\n            )}\n            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n        />\n    );\n});\n\nexport default AddOtherMessengerDropdown;\n","// extracted by mini-css-extract-plugin\nexport default {\"head\":\"LogCardHead__head___ANaJv\",\"subject\":\"LogCardHead__subject___jLTza\",\"subject__number\":\"LogCardHead__subject__number___BVZ3W\",\"city\":\"LogCardHead__city___BDINb\",\"fadeIn\":\"LogCardHead__fadeIn___CpMMY\",\"blinking\":\"LogCardHead__blinking___StLW7\"};","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { ApiRegistrationCompanyRequestDraftT } from 'common/utils/api/models';\n\nexport type CreateCompanyStateT = {\n    requestStatus: RequestStatusT;\n    isLocked: boolean | null;\n};\n\nconst initialState: CreateCompanyStateT = {\n    requestStatus: requestStatus.initial,\n    isLocked: null,\n};\n\nexport const createCompanySlice = createSlice({\n    name: 'createCompany',\n    initialState,\n    reducers: {\n        setCompanyIsLocked: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                isLocked: boolean | null;\n            }>,\n        ) => {\n            state.isLocked = action.payload.isLocked;\n        },\n        createCompanyRequest: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                registrationCompanyRequestDraft: ApiRegistrationCompanyRequestDraftT;\n                returnUrl: string | null;\n            }>,\n        ) => {\n            state.isLocked = null;\n        },\n        createCompanyRequestBegin: (\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{}>,\n        ) => {\n            state.requestStatus = requestStatus.loading;\n        },\n        createCompanyRequestSuccess: (\n            state,\n            action: PayloadAction<{\n                isLocked: boolean | null;\n            }>,\n        ) => {\n            state.requestStatus = requestStatus.ok;\n            state.isLocked = action.payload.isLocked;\n        },\n        createCompanyRequestError: (\n            state,\n            action: PayloadAction<{\n                error: Error;\n            }>,\n        ) => {\n            const { error } = action.payload;\n\n            state.requestStatus = requestStatus.setError(error);\n        },\n    },\n});\n\nexport const {\n    setCompanyIsLocked,\n    createCompanyRequest,\n    createCompanyRequestBegin,\n    createCompanyRequestSuccess,\n    createCompanyRequestError,\n} = createCompanySlice.actions;\n\nexport default createCompanySlice.reducer;\n","// extracted by mini-css-extract-plugin\nexport default {\"map-loader__container\":\"MapLoader__map-loader__container___vronU\",\"fadeIn\":\"MapLoader__fadeIn___YvnFC\",\"blinking\":\"MapLoader__blinking___rzn3p\"};","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ApiNotificationSubjectTypeT, SubjectTypeEnum } from 'common/utils/api/models';\nimport styles from './NotificationSubjectType.scss';\nimport classNames from 'classnames/bind';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    subjectType: ApiNotificationSubjectTypeT | null | undefined;\n    isCapitalized?: boolean;\n    isUppercase?: boolean;\n};\n\nexport const SUBJECT_TYPE_T_MAP: Record<ApiNotificationSubjectTypeT, string | null> = {\n    [SubjectTypeEnum.order]: 'common:notifications.subject-type.ORDER',\n    [SubjectTypeEnum.tour]: 'common:notifications.subject-type.TOUR',\n    [SubjectTypeEnum.shipment]: 'common:notifications.subject-type.SHIPMENT',\n    [SubjectTypeEnum.transportationOrder]: 'common:notifications.subject-type.TRANSPORTATION_ORDER',\n    [SubjectTypeEnum.rfq]: 'common:notifications.subject-type.RFQ',\n    [SubjectTypeEnum.document]: null,\n    [SubjectTypeEnum.carrierContract]: null,\n    [SubjectTypeEnum.shipperContract]: null,\n    [SubjectTypeEnum.shipperContractLane]: null,\n    [SubjectTypeEnum.trailer]: null,\n    [SubjectTypeEnum.truck]: null,\n    [SubjectTypeEnum.team]: null,\n    [SubjectTypeEnum.businessPartner]: null,\n};\n\nconst NotificationSubjectType: React.FC<PropsT> = React.memo((props) => {\n    const { subjectType, isCapitalized, isUppercase } = props;\n\n    const { t } = useTranslation();\n\n    if (!subjectType) {\n        return null;\n    }\n\n    const tDocumentSubject = SUBJECT_TYPE_T_MAP[subjectType];\n    const label = tDocumentSubject ? t(tDocumentSubject) : null;\n\n    return (\n        <span\n            className={cx('text', {\n                'text--is-capitalized': isCapitalized,\n                'text--is-uppercase': isUppercase,\n            })}\n        >\n            {label}\n        </span>\n    );\n});\n\nexport default NotificationSubjectType;\n","import { actionChannel, fork, put, select, take, takeEvery } from 'redux-saga/effects';\nimport { buffers } from 'redux-saga';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport history from 'common/utils/history';\nimport { urlFactory as brokerUrlFactory } from 'broker-admin/utils/urls';\nimport {\n    applyContextRequest,\n    applyContextRequestBegin,\n    applyContextRequestError,\n    applyContextRequestSuccess,\n    changeDeadheadContext,\n    initContextRequestBegin,\n    initContextRequestError,\n    initContextRequestSuccess,\n    previewContextRequestBegin,\n    previewContextRequestError,\n    previewContextRequestSuccess,\n    setContextQuery,\n    setIsApplyingContextChanges,\n    resetPreviewContext,\n    resetContext,\n    setPreviewQuery,\n    resetPreviewContextQuery,\n} from './slice';\nimport {\n    ContextRouteStopFakeIdT,\n    ContextRouteStopHashT,\n    DeadheadApplyContextQueryT,\n    DeadheadContextIdT,\n    DeadheadInitContextQueryT,\n    DeadheadInitContextResponseT,\n    DeadheadPreviewContextQueryT,\n    DeadheadPreviewContextResponseT,\n    RawDeadheadInitContextQueryT,\n} from './models';\nimport { ApiDeadheadPreviewContextResponseT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport {\n    selectDeadheadApplyRequest,\n    selectDeadheadContext,\n    selectDeadheadInitContextQuery,\n    selectDeadheadPreviewQuery,\n    selectDeadheadPreviewResponse,\n} from './selectors';\nimport { logWarning } from 'common/utils/logger';\nimport isEqual from 'lodash/isEqual';\nimport {\n    modifyDeadheadInitContextQuery,\n    modifyDeadheadPreviewQuery,\n    validateDeadheadInitContextQuery,\n    validateDeadheadPreviewQuery,\n} from './utils/query-modifiers';\nimport { MS_IN_SEC } from 'common/utils/time';\nimport { deadheadCreationQueryModifyChannel } from './channels';\nimport { getDeletedStopFakeIds } from './utils/get-deleted-stop-fake-ids';\nimport { getAddedStopFakeIds } from './utils/get-added-stop-fake-ids';\nimport { getContextRouteStopAddressHash } from './utils/get-context-route-stop-hash';\nimport { generatePointFakeId } from './utils/generate-point-fake-id';\nimport { collectFakeIdByHashFromInitContextQuery } from './utils/fake-id-by-hash';\nimport { getOrderStopFakeIds } from './utils/get-order-stop-fakse-ids';\nimport pick from 'lodash/pick';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { BrokerAlertTypeEnum, BrokerAnyAlert } from 'broker-admin/components/toasts/models';\n\nfunction* waitFinishIfNeedDeadheadApply(): WrapGeneratorT<void> {\n    const request: ReturnType<typeof selectDeadheadApplyRequest> = yield select(selectDeadheadApplyRequest);\n\n    if (request.loading) {\n        yield take([applyContextRequestError.type, applyContextRequestSuccess.type]);\n    }\n}\n\nfunction* applyDeadheadContextSaga(action: ReturnType<typeof applyContextRequest>): WrapGeneratorT<void> {\n    yield waitFinishIfNeedDeadheadApply();\n\n    const context: ReturnType<typeof selectDeadheadContext> = yield select(selectDeadheadContext);\n    const contextId = context?.contextId || null;\n    if (!contextId) {\n        logWarning('failed to apply deadhead context, contextId is null');\n        return;\n    }\n\n    yield put(applyContextRequestBegin());\n\n    const requestBody: DeadheadApplyContextQueryT = {\n        doNotIncludeCostsInTransportOrder: !!action?.payload?.doNotIncludeCostsInTransportOrder,\n        contacts: action?.payload?.contacts || [],\n    };\n\n    const [error, data]: ReturnApiT<typeof brokerTranziitApi.applyDeadheadContext> =\n        yield brokerTranziitApi.applyDeadheadContext(contextId, requestBody);\n    if (error) {\n        yield put(applyContextRequestError({ error }));\n        return;\n    }\n\n    yield put(applyContextRequestSuccess({ response: data }));\n    yield put(\n        addAlert(\n            new BrokerAnyAlert({\n                type: BrokerAlertTypeEnum.deadheadTourPlaced,\n                data: {},\n            }),\n        ),\n    );\n\n    const tourId = data?.tourId || null;\n    if (tourId) {\n        history.push(brokerUrlFactory.brokerTourDetails(tourId, { rePath: brokerUrlFactory.brokerTours() }));\n    } else {\n        logWarning('failed to redirect to tour details after apply deadhead context, tourId is null');\n    }\n}\n\nfunction* initDeadheadContextSaga(\n    deadheadInitContextQuery: DeadheadInitContextQueryT,\n): WrapGeneratorT<DeadheadInitContextResponseT | null> {\n    yield put(initContextRequestBegin());\n\n    const query: DeadheadInitContextQueryT = {\n        ...deadheadInitContextQuery,\n        // first stop is always the pickup stop, will be added by the backend so we don't need to validate it\n        stops: deadheadInitContextQuery.stops.slice(1).map((stop) => {\n            return pick(stop, ['city', 'country', 'latitude', 'longitude', 'street1', 'street2', 'zipCode', 'zoneId']);\n        }),\n    };\n\n    const [rawError, rawData]: ReturnApiT<typeof brokerTranziitApi.initDeadheadContext> =\n        yield brokerTranziitApi.initDeadheadContext(query);\n\n    if (rawError) {\n        yield put(initContextRequestError({ error: rawError }));\n        return null;\n    }\n\n    const preparedDate: DeadheadInitContextResponseT | null = rawData\n        ? {\n              ...rawData,\n              expireTime: (rawData?.secondsToExpire || 0) * MS_IN_SEC + Date.now(),\n          }\n        : null;\n\n    yield put(initContextRequestSuccess({ response: preparedDate }));\n    return preparedDate;\n}\n\nfunction* previewDeadheadContextSaga(\n    contextId: DeadheadContextIdT,\n    query: DeadheadPreviewContextQueryT,\n    meta: {\n        pickupStopFakeId: ContextRouteStopFakeIdT | null;\n        fakeIdByHash: Record<ContextRouteStopHashT, ContextRouteStopFakeIdT>;\n    },\n): WrapGeneratorT<ApiDeadheadPreviewContextResponseT | null> {\n    yield put(previewContextRequestBegin());\n\n    const [rawError, rawData]: ReturnApiT<typeof brokerTranziitApi.chooseDeadheadArrivalDateTime> =\n        yield brokerTranziitApi.chooseDeadheadArrivalDateTime(contextId, query);\n\n    if (rawError) {\n        yield put(previewContextRequestError({ error: rawError }));\n        return null;\n    }\n\n    const data: DeadheadPreviewContextResponseT | null = rawData\n        ? {\n              ...rawData,\n              stops: rawData.stops.map((stop, index) => {\n                  let fakeId: ContextRouteStopFakeIdT;\n\n                  // first stop is always the pickup stop\n                  if (index === 0) {\n                      fakeId = meta.pickupStopFakeId || generatePointFakeId('added-by-backend');\n                  } else {\n                      const hash = getContextRouteStopAddressHash({\n                          latitude: stop.address?.latitude,\n                          longitude: stop.address?.longitude,\n                      });\n\n                      fakeId = meta.fakeIdByHash[hash] || generatePointFakeId('added-by-backend');\n                  }\n\n                  return {\n                      ...stop,\n                      fakeId,\n                  };\n              }),\n          }\n        : null;\n\n    yield put(previewContextRequestSuccess({ response: data }));\n    return rawData;\n}\n\nfunction* changeDeadheadQueueWorker(action: ReturnType<typeof changeDeadheadContext>): WrapGeneratorT<void> {\n    const event = action.payload;\n\n    let context: ReturnType<typeof selectDeadheadContext> = yield select(selectDeadheadContext);\n\n    const prevDeadheadInitContextQuery: ReturnType<typeof selectDeadheadInitContextQuery> = yield select(\n        selectDeadheadInitContextQuery,\n    );\n\n    const deadheadInitContextQuery = modifyDeadheadInitContextQuery(prevDeadheadInitContextQuery, event);\n\n    yield put(setContextQuery({ query: deadheadInitContextQuery }));\n\n    if (!validateDeadheadInitContextQuery(deadheadInitContextQuery)) {\n        yield put(resetContext());\n        yield put(resetPreviewContext());\n        yield put(resetPreviewContextQuery());\n        return;\n    }\n\n    // because after the context is recreated - context preview reset\n    const previewContextBeforeModify: ReturnType<typeof selectDeadheadPreviewResponse> = yield select(\n        selectDeadheadPreviewResponse,\n    );\n\n    const isSameDeadheadInitContextQuery = isEqual(prevDeadheadInitContextQuery, deadheadInitContextQuery);\n\n    const isEmptyContext = !context?.contextId;\n\n    const isExpiredContext = context?.expireTime ? context.expireTime < Date.now() : false;\n\n    let isSameContext = true;\n\n    const shouldInitContext = isEmptyContext || !isSameDeadheadInitContextQuery || isExpiredContext;\n    if (shouldInitContext && deadheadInitContextQuery && validateDeadheadInitContextQuery(deadheadInitContextQuery)) {\n        context = yield* initDeadheadContextSaga(deadheadInitContextQuery);\n        yield put(resetPreviewContext());\n        isSameContext = false;\n    }\n\n    const prevDeadheadPreviewQuery: ReturnType<typeof selectDeadheadPreviewQuery> = yield select(\n        selectDeadheadPreviewQuery,\n    );\n\n    const deadheadPreviewQuery = modifyDeadheadPreviewQuery(prevDeadheadPreviewQuery, event, context);\n    yield put(setPreviewQuery({ query: deadheadPreviewQuery }));\n\n    const isSameDeadheadPreviewQuery = isEqual(prevDeadheadPreviewQuery, deadheadPreviewQuery);\n\n    const fakeIdByHash = collectFakeIdByHashFromInitContextQuery(deadheadInitContextQuery);\n\n    const shouldPreviewDeadheadContext = !isSameDeadheadPreviewQuery || !isSameContext;\n    if (\n        context &&\n        shouldPreviewDeadheadContext &&\n        deadheadPreviewQuery &&\n        validateDeadheadPreviewQuery(deadheadPreviewQuery)\n    ) {\n        yield* previewDeadheadContextSaga(context.contextId, deadheadPreviewQuery, {\n            fakeIdByHash,\n            pickupStopFakeId: (deadheadInitContextQuery as RawDeadheadInitContextQueryT)?.stops?.[0]?.fakeId || null,\n        });\n    }\n\n    const previewContextAfterModify: ReturnType<typeof selectDeadheadPreviewResponse> = yield select(\n        selectDeadheadPreviewResponse,\n    );\n\n    deadheadCreationQueryModifyChannel.emit({\n        correctedStops: previewContextAfterModify?.stops,\n        addedStopFakeIds: getAddedStopFakeIds(previewContextBeforeModify, previewContextAfterModify),\n        deletedStopFakeIds: getDeletedStopFakeIds(previewContextBeforeModify, previewContextAfterModify),\n        orderStopFakeIds: getOrderStopFakeIds(previewContextAfterModify),\n    });\n}\n\nfunction* watchDeadheadQueueSaga(): WrapGeneratorT<void> {\n    const buffer = buffers.fixed<ReturnType<typeof changeDeadheadContext>>(100);\n    const channel = yield actionChannel(changeDeadheadContext.type, buffer);\n\n    while (true) {\n        const action: ReturnType<typeof changeDeadheadContext> = yield take(channel);\n\n        yield put(setIsApplyingContextChanges(true));\n\n        yield* changeDeadheadQueueWorker(action);\n\n        if (buffer.isEmpty()) {\n            yield put(setIsApplyingContextChanges(false));\n        }\n    }\n}\n\nexport function* deadheadCreationSaga(): WrapGeneratorT<void> {\n    yield takeEvery(applyContextRequest, applyDeadheadContextSaga);\n    yield fork(watchDeadheadQueueSaga);\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"table__header\":\"BaseCarrierContractsTable__table__header___UZqRc\",\"table__header--name\":\"BaseCarrierContractsTable__table__header--name___pV63s\",\"table__header--status\":\"BaseCarrierContractsTable__table__header--status___gH6A4\",\"table__header--expire-date\":\"BaseCarrierContractsTable__table__header--expire-date___k4LVJ\",\"table__column\":\"BaseCarrierContractsTable__table__column___iez6e\",\"table__column--name\":\"BaseCarrierContractsTable__table__column--name___lxDUL\",\"table__column--status\":\"BaseCarrierContractsTable__table__column--status___Vr1ty\",\"table__column--expire-date\":\"BaseCarrierContractsTable__table__column--expire-date___A7JNl\",\"table__column--reviewed\":\"BaseCarrierContractsTable__table__column--reviewed___DZhP0\",\"table__column--uploaded\":\"BaseCarrierContractsTable__table__column--uploaded___Vtyek\",\"table__column--actions\":\"BaseCarrierContractsTable__table__column--actions___lUmE4\",\"fadeIn\":\"BaseCarrierContractsTable__fadeIn___dXjdc\",\"blinking\":\"BaseCarrierContractsTable__blinking___eZXYE\"};","// eslint-disable-next-line no-restricted-exports\nexport { default, initialBrokerOrderDetailsState } from './slice';\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"TruckRateModeDropdown__option___UpAYl\",\"fadeIn\":\"TruckRateModeDropdown__fadeIn___w9hmy\",\"blinking\":\"TruckRateModeDropdown__blinking___Lmsi8\"};","import React, { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames/bind';\n\nimport styles from './ExternalBusinessPartnerSuggest.scss';\n\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport DropdownSearchInput from 'design-system/components/dropdowns/DropdownSearchInput/DropdownSearchInput';\nimport {\n    AsyncRequestFactoryResultT,\n    AsyncRequestFactoryT,\n    useAsyncOptionsRequest,\n} from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-options-request';\nimport { ApiAllowedCompanyTypeT, ApiLinkableBusinessPartnerInfoT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport RestrictedExternalBusinessPartnerPill from 'broker-admin/components/pills/RestrictedExternalBusinessPartnerPill/RestrictedExternalBusinessPartnerPill';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\n\nconst cx = classNames.bind(styles);\n\nexport type ExternalBusinessPartnerOptionT = ApiLinkableBusinessPartnerInfoT;\n\ntype ValueT = PartnerIdT | null | undefined;\n\nexport type PropsT = {\n    className?: string;\n    placeholder?: string;\n    companyType?: ApiAllowedCompanyTypeT;\n    initialOption: ExternalBusinessPartnerOptionT | null;\n    onSelect: (value: ValueT, option?: ExternalBusinessPartnerOptionT) => void;\n    value: ValueT;\n    overlayPosition: DropdownOverlayPositionEnum;\n    hasClearControl?: InputPropsT['hasClearControl'];\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    hasSuccess?: InputPropsT['hasSuccess'];\n    onBlur: InputPropsT['onBlur'];\n    onFocus: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasChanges?: boolean;\n};\n\nconst ExternalBusinessPartnerSuggest: React.FC<PropsT> = (props) => {\n    const { t } = useTranslation();\n\n    const {\n        className,\n        placeholder,\n        companyType,\n        initialOption,\n        value,\n        onSelect,\n        hasClearControl,\n        hasSuccess,\n        hasWarning,\n        hasError,\n        overlayPosition,\n        isDisabled,\n        onBlur,\n        onFocus,\n        hasChanges,\n    } = props;\n\n    const requestFactory: AsyncRequestFactoryT<ExternalBusinessPartnerOptionT> = useCallback(\n        (name) => {\n            return brokerTranziitApi\n                .searchExternalBusinessPartners({ name, companyType })\n                .then((response): AsyncRequestFactoryResultT<ExternalBusinessPartnerOptionT> => {\n                    const [error, result] = response;\n                    if (error) {\n                        return [error, null];\n                    }\n\n                    return [null, result || []];\n                });\n        },\n        [companyType],\n    );\n\n    const asyncOptionsRequest = useAsyncOptionsRequest<ExternalBusinessPartnerOptionT>({\n        initialOptions: initialOption ? [initialOption] : [],\n        requestFactory,\n        settings: {},\n    });\n\n    const handleSelect = useCallback(\n        (selectedValue: ValueT) => {\n            onSelect(\n                selectedValue,\n                asyncOptionsRequest.options.find((option) => option.id === selectedValue),\n            );\n        },\n        [asyncOptionsRequest.options, onSelect],\n    );\n\n    const renderOption = (\n        option: ExternalBusinessPartnerOptionT | undefined,\n        optionPlaceholder?: string,\n    ): React.ReactNode => {\n        if (!option) {\n            return optionPlaceholder;\n        }\n\n        return (\n            <DropdownControlOptionLabel\n                withoutPaddings\n                isDisabled={option.externallyRestricted}\n                icon={option.legalAddress?.country ? <FlagIcon countryCode={option.legalAddress.country} /> : null}\n                label={option.name || ''}\n                description={\n                    <div className={cx('description')}>\n                        {option.externallyRestricted && (\n                            <Tooltip\n                                position={TooltipPositionEnum.centerLeft}\n                                theme={TooltipThemeEnum.black}\n                                tooltipNode={\n                                    option.externalRestrictionMessage ? (\n                                        <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                            {option.externalRestrictionMessage}\n                                        </TooltipContent>\n                                    ) : null\n                                }\n                            >\n                                {() => <RestrictedExternalBusinessPartnerPill />}\n                            </Tooltip>\n                        )}\n                        <span\n                            className={cx('description__details', {\n                                'description__details--isDisabled': option.externallyRestricted,\n                            })}\n                        >\n                            {option.number}\n                            {option.vat && `, VAT: ${option.vat}`}\n                        </span>\n                    </div>\n                }\n            />\n        );\n    };\n\n    return (\n        <DropdownSearchInput<ExternalBusinessPartnerOptionT, ValueT>\n            className={className}\n            selectedValue={value}\n            options={asyncOptionsRequest.options}\n            onSelect={handleSelect}\n            renderTrigger={renderOption}\n            renderOption={renderOption}\n            getOptionValue={(option) => option.id}\n            isOptionDisabled={(option) => !!option.externallyRestricted}\n            onChangeQuery={asyncOptionsRequest.onChangeQuery}\n            isLoading={asyncOptionsRequest.requestStatus.loading}\n            hasWarning={hasWarning}\n            hasSuccess={hasSuccess}\n            hasError={hasError}\n            overlayPosition={overlayPosition}\n            isDisabled={isDisabled}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            hasChanges={hasChanges}\n            placeholder={placeholder || t('common-components.external-business-partner-suggest.placeholder')}\n            onReset={hasClearControl ? () => onSelect(null) : undefined}\n        />\n    );\n};\n\nexport default ExternalBusinessPartnerSuggest;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"LaneDropdownInput__fadeIn___M4HS4\",\"blinking\":\"LaneDropdownInput__blinking___pMqGH\"};","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    fetchBrokerTourStats,\n    fetchBrokerTourStatsBegin,\n    fetchBrokerTourStatsError,\n    fetchBrokerTourStatsSuccess,\n} from './slice';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { selectBrokerTourStatsRequest } from './selectors';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\n\nfunction* fetchBrokerTourStatsSaga(): WrapGeneratorT<void> {\n    const requestStatus: ReturnType<typeof selectBrokerTourStatsRequest> = yield select(selectBrokerTourStatsRequest);\n\n    const isNeedRequest = checkNeedRequest(requestStatus);\n    if (!isNeedRequest) {\n        return;\n    }\n\n    yield put(fetchBrokerTourStatsBegin());\n\n    const [error, response]: ReturnApiT<typeof brokerTranziitApi.getBrokerToursStatistic> =\n        yield brokerTranziitApi.getBrokerToursStatistic();\n    if (error) {\n        yield put(fetchBrokerTourStatsError({ error }));\n        return;\n    }\n\n    yield put(fetchBrokerTourStatsSuccess({ statistics: response }));\n}\n\nfunction* brokerTourStatsSaga(): WrapGeneratorT<void> {\n    yield takeEvery([fetchBrokerTourStats.type], fetchBrokerTourStatsSaga);\n}\n\nexport default brokerTourStatsSaga;\n","import i18n from 'i18next';\n\nexport const DEFAULT_MAP_LANGUAGE = 'en';\n\nexport default {\n    mapsApiKey: window.MAPS_API_KEY,\n    language: DEFAULT_MAP_LANGUAGE,\n    region: i18n.language,\n};\n","import * as React from 'react';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport { useTranslation } from 'react-i18next';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport InfoIcon from 'common/icons/InfoIcon';\nimport classNames from 'classnames/bind';\nimport styles from './ChangeRateOrContractWarning.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    onClose: () => void;\n    className?: string;\n};\n\nconst ChangeRateOrContractWarning: React.FC<PropsT> = React.memo((props) => {\n    const { className, onClose } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <Alert\n            className={className}\n            icon={<InfoIcon fillColor={StyleGuideColorsEnum.white} />}\n            size={AlertSizeEnum.small}\n            theme={AlertThemeEnum.orange}\n            onClose={onClose}\n        >\n            <div className={cx('inner')}>{t('common:trailers-page.warnings.change-rate-or-contract')}</div>\n        </Alert>\n    );\n});\n\nexport default ChangeRateOrContractWarning;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './CompletedPartnerCarrierContractCard.scss';\nimport { Trans } from 'react-i18next';\nimport ContractName from 'broker-admin/components/notification-cards/entities/ContractName/ContractName';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    contractName: string;\n};\n\nconst CompletedPartnerCarrierContractCard: React.FC<PropsT> = React.memo((props) => {\n    const { contractName } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"notifications.partner-carrier-contract-completed\"\n                components={{\n                    contractName: <ContractName contractName={contractName} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default CompletedPartnerCarrierContractCard;\n","// extracted by mini-css-extract-plugin\nexport default {};","import classNames from 'classnames/bind';\nimport styles from './MapFooter.scss';\nimport * as React from 'react';\nimport cs from 'classnames';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n};\n\nconst MapFooter: React.FC<PropsT> = React.memo((props) => {\n    const { className, children } = props;\n\n    return <div className={cs(cx('map-footer'), className)}>{children}</div>;\n});\n\nexport default MapFooter;\n","import { DictDocumentByIdT, DictDocumentByTypeT, DictDocumentT } from './models';\nimport { ApiPartnerTypeT } from 'common/utils/api/models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport const DOCUMENTS_DICT_REQUEST = 'common/documents-dict/DOCUMENTS_DICT_REQUEST';\nexport const DOCUMENTS_DICT_REQUEST_BEGIN = 'common/documents-dict/DOCUMENTS_DICT_REQUEST_BEGIN';\nexport const DOCUMENTS_DICT_REQUEST_SUCCESS = 'common/documents-dict/DOCUMENTS_DICT_REQUEST_SUCCESS';\nexport const DOCUMENTS_DICT_REQUEST_ERROR = 'common/documents-dict/DOCUMENTS_DICT_REQUEST_ERROR';\n\nexport type FetchDocumentsDictActionT = {\n    type: typeof DOCUMENTS_DICT_REQUEST;\n    partnerType: ApiPartnerTypeT | null;\n};\n\nexport type FetchDocumentsDictBeginActionT = {\n    type: typeof DOCUMENTS_DICT_REQUEST_BEGIN;\n    partnerType: ApiPartnerTypeT;\n};\n\nexport type FetchDocumentsDictSuccessActionT = {\n    type: typeof DOCUMENTS_DICT_REQUEST_SUCCESS;\n    documentsList: DictDocumentT[];\n    partnerType: ApiPartnerTypeT;\n};\n\nexport type FetchDocumentsDictErrorActionT = {\n    type: typeof DOCUMENTS_DICT_REQUEST_ERROR;\n    partnerType: ApiPartnerTypeT;\n    error: Error;\n};\n\nexport type DocumentsDictActionT =\n    | FetchDocumentsDictActionT\n    | FetchDocumentsDictBeginActionT\n    | FetchDocumentsDictSuccessActionT\n    | FetchDocumentsDictErrorActionT;\n\nexport type PartnerTypeDocumentsStateT = {\n    byId: DictDocumentByIdT;\n    byType: DictDocumentByTypeT;\n    ids: DictDocumentFakeIdT[];\n    fetchRequest: RequestStatusT;\n};\n\nexport type DocumentsDictStateT = Partial<Record<ApiPartnerTypeT, PartnerTypeDocumentsStateT>>;\n","import { put, select } from 'redux-saga/effects';\nimport { fetchCountriesDictBegin, fetchCountriesDictError, fetchCountriesDictSuccess } from './actions';\nimport { COUNTRIES_DICT_REQUEST } from './types';\nimport { selectCountriesDictRequest } from './selectors';\nimport { byAlphabetASC, getCountryCompByName } from 'common/utils/sort';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport { semaphoreSaga } from 'common/utils/semaphore-saga';\n\nfunction* fetchCountriesDictSaga(): WrapGeneratorT<void> {\n    const requestStatus: ReturnType<typeof selectCountriesDictRequest> = yield select(selectCountriesDictRequest);\n    if (requestStatus.ok || requestStatus.loading) {\n        return;\n    }\n\n    yield put(fetchCountriesDictBegin());\n\n    const [error, countriesDict]: ReturnApiT<typeof commonTranziitApi.getCountries> =\n        yield commonTranziitApi.getCountries();\n\n    const sortedCountriesDict = (countriesDict || []).sort(getCountryCompByName(byAlphabetASC));\n    if (error) {\n        yield put(fetchCountriesDictError(error));\n    } else {\n        yield put(fetchCountriesDictSuccess(sortedCountriesDict));\n    }\n}\n\nfunction* countriesSaga(): WrapGeneratorT<void> {\n    yield semaphoreSaga(COUNTRIES_DICT_REQUEST, fetchCountriesDictSaga);\n}\n\nexport default countriesSaga;\n","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { ApplyContextParamsT, ChangeContextPayloadT, EditOrderContextT, FakeSessionIdT } from './models';\nimport { BrokerOrderDetailsT } from 'broker-admin/store/broker-order-details/models';\nimport isNumber from 'lodash/isNumber';\nimport { MS_IN_SEC } from 'common/utils/time';\nimport { ApiEditOrderContextT } from 'broker-admin/utils/api/broker-tranziit/models';\n\nexport type OrderEditContextStateT = {\n    createContextRequestStatus: RequestStatusT;\n    fakeSessionId: FakeSessionIdT | null;\n    context: EditOrderContextT | null;\n    brokerOrderDetails: BrokerOrderDetailsT | null;\n    deleteContextRequestStatus: RequestStatusT;\n    isApplyingContextChanges: boolean;\n    applyContextRequestStatus: RequestStatusT;\n    changeContextError: Error | null;\n};\n\nconst initialState: OrderEditContextStateT = {\n    createContextRequestStatus: requestStatus.initial,\n    fakeSessionId: null,\n    context: null,\n    brokerOrderDetails: null,\n    deleteContextRequestStatus: requestStatus.initial,\n    isApplyingContextChanges: false,\n    applyContextRequestStatus: requestStatus.initial,\n    changeContextError: null,\n};\n\nexport const orderEditContextSlice = createSlice({\n    name: 'orderEditContext',\n    initialState,\n    reducers: {\n        resetOrderEdit: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                // nothing\n            }>,\n        ) => {\n            return initialState;\n        },\n        initOrderEdit: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                brokerOrderId: BrokerOrderIdT | null;\n            }>,\n        ) => {\n            // nothing\n        },\n        finishOrderEdit: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                brokerOrderId: BrokerOrderIdT | null;\n            }>,\n        ) => {\n            // nothing\n        },\n        reCreateOrderEditContextRequest: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                brokerOrderId: BrokerOrderIdT | null;\n                fakeSessionId?: FakeSessionIdT | null;\n            }>,\n        ) => {\n            // nothing\n        },\n        refreshOrderEditContextRequest: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                brokerOrderId: BrokerOrderIdT | null;\n            }>,\n        ) => {\n            // nothing\n        },\n        createOrderEditContextRequest: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                brokerOrderId: BrokerOrderIdT | null;\n                fakeSessionId?: FakeSessionIdT | null;\n            }>,\n        ) => {\n            // nothing\n        },\n        createOrderEditContextRequestBegin: (\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{}>,\n        ) => {\n            state.createContextRequestStatus = requestStatus.loading;\n        },\n        createOrderEditContextRequestSuccess: (\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                context: ApiEditOrderContextT | null;\n                brokerOrderDetails: BrokerOrderDetailsT | null;\n                fakeSessionId?: FakeSessionIdT | null;\n            }>,\n        ) => {\n            const { context, brokerOrderDetails, fakeSessionId } = action.payload;\n\n            if (fakeSessionId) {\n                state.fakeSessionId = fakeSessionId;\n            }\n\n            state.context = context\n                ? {\n                      ...context,\n                      expireTime: isNumber(context.secondsToExpire)\n                          ? context.secondsToExpire * MS_IN_SEC + Date.now()\n                          : null,\n                  }\n                : null;\n            state.brokerOrderDetails = brokerOrderDetails;\n            state.createContextRequestStatus = requestStatus.ok;\n        },\n        createOrderEditContextRequestError: (\n            state,\n            action: PayloadAction<{\n                error: Error;\n            }>,\n        ) => {\n            const { error } = action.payload;\n\n            state.context = null;\n            state.createContextRequestStatus = requestStatus.setError(error);\n        },\n        deleteOrderEditContextRequest: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{}>,\n        ) => {\n            // nothing\n        },\n        deleteOrderEditContextRequestBegin: (\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{}>,\n        ) => {\n            state.deleteContextRequestStatus = requestStatus.loading;\n        },\n        deleteOrderEditContextRequestSuccess: (\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{}>,\n        ) => {\n            state.context = null;\n            state.deleteContextRequestStatus = requestStatus.ok;\n        },\n        deleteOrderEditContextRequestError: (\n            state,\n            action: PayloadAction<{\n                error: Error;\n            }>,\n        ) => {\n            const { error } = action.payload;\n\n            state.context = null;\n            state.deleteContextRequestStatus = requestStatus.setError(error);\n        },\n        applyOrderEditContextRequest: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<ApplyContextParamsT>,\n        ) => {\n            // nothing\n        },\n        applyOrderEditContextRequestBegin: (\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{}>,\n        ) => {\n            state.applyContextRequestStatus = requestStatus.loading;\n        },\n        applyOrderEditContextRequestSuccess: (\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{}>,\n        ) => {\n            state.context = null;\n            state.applyContextRequestStatus = requestStatus.ok;\n        },\n        applyOrderEditContextRequestError: (\n            state,\n            action: PayloadAction<{\n                error: Error;\n            }>,\n        ) => {\n            const { error } = action.payload;\n\n            state.context = null;\n            state.applyContextRequestStatus = requestStatus.setError(error);\n        },\n        changeContextError: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                error: Error;\n            }>,\n        ) => {\n            state.changeContextError = action.payload.error;\n        },\n        changeContext: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<ChangeContextPayloadT>,\n        ) => {\n            // nothing\n        },\n        changeContextSuccess: (\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                context: ApiEditOrderContextT | null;\n            }>,\n        ) => {\n            const { context } = action.payload;\n            if (!context) {\n                return;\n            }\n\n            state.context = context\n                ? {\n                      ...context,\n                      expireTime: isNumber(context.secondsToExpire)\n                          ? context.secondsToExpire * MS_IN_SEC + Date.now()\n                          : null,\n                  }\n                : null;\n        },\n        setIsApplyingContextChanges: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<boolean>,\n        ) => {\n            state.isApplyingContextChanges = action.payload;\n        },\n    },\n});\n\nexport const {\n    initOrderEdit,\n    finishOrderEdit,\n    resetOrderEdit,\n    refreshOrderEditContextRequest,\n    reCreateOrderEditContextRequest,\n    createOrderEditContextRequest,\n    createOrderEditContextRequestBegin,\n    createOrderEditContextRequestSuccess,\n    createOrderEditContextRequestError,\n    deleteOrderEditContextRequest,\n    deleteOrderEditContextRequestBegin,\n    deleteOrderEditContextRequestSuccess,\n    deleteOrderEditContextRequestError,\n    applyOrderEditContextRequest,\n    applyOrderEditContextRequestBegin,\n    applyOrderEditContextRequestError,\n    applyOrderEditContextRequestSuccess,\n    changeContext,\n    changeContextError,\n    changeContextSuccess,\n    setIsApplyingContextChanges,\n} = orderEditContextSlice.actions;\n\nexport default orderEditContextSlice.reducer;\n","import * as React from 'react';\nimport { ApiShipperContractStatusT, ShipperContractStatusEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    status: ApiShipperContractStatusT | null | undefined;\n};\n\nexport const SHIPPER_CONTRACT_STATUS_T_MAP: Record<ApiShipperContractStatusT, string> = {\n    [ShipperContractStatusEnum.revoked]: 'common:shipper-contract-status.REVOKED',\n    [ShipperContractStatusEnum.expired]: 'common:shipper-contract-status.EXPIRED',\n    [ShipperContractStatusEnum.active]: 'common:shipper-contract-status.ACTIVE',\n};\n\nconst ShipperContractStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return null;\n    }\n\n    return t(SHIPPER_CONTRACT_STATUS_T_MAP[status]);\n});\n\nexport default ShipperContractStatus;\n","import * as React from 'react';\n\nimport { Route, Switch } from 'react-router-dom';\n\nimport { BrokerToursRoutesEnum } from 'broker-admin/constants';\n\nimport BrokerToursListPage from './BrokerToursListPage/BrokerToursListPage';\nimport BrokerTourDeadheadCreationPage from './BrokerTourDedheadCreationPage/BrokerTourDeadheadCreationPage';\nimport BrokerTourDetailsPage from './BrokerTourDetailsPage/BrokerTourDetailsPage';\n\ntype PropsT = {};\n\nconst BrokerToursPage: React.FC<PropsT> = React.memo(() => {\n    return (\n        <Switch>\n            <Route path={BrokerToursRoutesEnum.brokerTourDeadheadCreation} exact>\n                <BrokerTourDeadheadCreationPage />\n            </Route>\n            <Route path={BrokerToursRoutesEnum.brokerTourDetails}>\n                <BrokerTourDetailsPage />\n            </Route>\n            <Route path=\"*\">\n                <BrokerToursListPage />\n            </Route>\n        </Switch>\n    );\n});\n\nexport default BrokerToursPage;\n","import requestStatus from 'common/utils/request-status';\n\nimport {\n    FETCH_RFQ_STATS_REQUEST_BEGIN,\n    FETCH_RFQ_STATS_REQUEST_ERROR,\n    FETCH_RFQ_STATS_REQUEST_SUCCESS,\n    PartnerRFQStatsStateT,\n    RESET,\n    RFQStatsActionT,\n    RFQStatsStateT,\n} from './types';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\nimport { checkIsSameQuery } from 'common/utils/pagination/utils';\n\nexport const initialPartnerState: PartnerRFQStatsStateT = {\n    query: null,\n    stats: null,\n};\n\nconst initialState: RFQStatsStateT = {\n    fetchRequest: requestStatus.initial,\n    byId: {},\n};\n\nexport default (state = initialState, action: RFQStatsActionT | DestroySessionActionT): RFQStatsStateT => {\n    switch (action.type) {\n        case FETCH_RFQ_STATS_REQUEST_BEGIN: {\n            const { query } = action;\n\n            const partnerState = state.byId[query.companyId] || initialPartnerState;\n\n            return {\n                ...state,\n                fetchRequest: requestStatus.loading,\n                byId: {\n                    ...state.byId,\n                    [query.companyId]: {\n                        ...partnerState,\n                        query,\n                    },\n                },\n            };\n        }\n        case FETCH_RFQ_STATS_REQUEST_SUCCESS: {\n            const { query, stats } = action;\n\n            const partnerState = state.byId[query.companyId] || initialPartnerState;\n            if (!checkIsSameQuery(partnerState.query, query)) {\n                return state;\n            }\n\n            return {\n                ...state,\n                fetchRequest: requestStatus.ok,\n                byId: {\n                    ...state.byId,\n                    [query.companyId]: {\n                        ...partnerState,\n                        stats,\n                    },\n                },\n            };\n        }\n\n        case FETCH_RFQ_STATS_REQUEST_ERROR: {\n            const { query, error } = action;\n\n            const partnerState = state.byId[query.companyId] || initialPartnerState;\n            if (!checkIsSameQuery(partnerState.query, query)) {\n                return state;\n            }\n\n            return {\n                ...state,\n                fetchRequest: requestStatus.setError(error),\n                byId: {\n                    ...state.byId,\n                    [query.companyId]: {\n                        ...partnerState,\n                        stats: null,\n                    },\n                },\n            };\n        }\n\n        case RESET: {\n            return {\n                ...initialState,\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default:\n            return state;\n    }\n};\n","import * as React from 'react';\n\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useFormik } from 'formik';\nimport { useLocation } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames/bind';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport AuthLayout from '../AuthLayout/AuthLayout';\n\nimport styles from './SignInPage.scss';\n\nimport { QueryKeysEnum } from '../../constants';\nimport { signIn } from 'common/store/auth/actions';\nimport { selectSignInRequestStatus } from 'common/store/auth/selectors';\nimport Notification from './Notification/Notification';\nimport useQuery from 'common/utils/hooks/useQuery';\nimport validateForm from './validate-form';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport Input from 'common/components/Input/Input';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { parseQuery } from 'common/utils/query';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport useAsyncFormErrors from 'common/utils/hooks/useAsyncFormErrors';\nimport asyncValidate from './async-validations';\nimport useAsyncFormErrorMessage from 'common/utils/hooks/useAsyncFormErrorMessage';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport { simpleStringFormatter } from 'common/utils/form-formatters';\nimport RedirectSignedUser from 'common/components/RedirectSignedUser/RedirectSignedUser';\nimport { authApi } from 'common/utils/api/auth/factory';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst INITIAL_VALUES = {\n    [FieldsEnum.email]: '',\n    [FieldsEnum.password]: '',\n};\n\ntype QueryT = {\n    [QueryKeysEnum.returnUrl]: string;\n};\n\ntype NotificationT = {\n    title: string;\n    message: string;\n};\n\nconst SignInPage: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n    const requestStatus = useSelector(selectSignInRequestStatus);\n    const location = useLocation();\n    const query = useQuery<QueryT>();\n    const [notification, showNotification] = React.useState<NotificationT | null>(null);\n\n    React.useEffect(() => {\n        const searchParams = parseQuery(location.search);\n\n        if (searchParams[QueryKeysEnum.successSignUp]) {\n            showNotification({\n                title: t('common:sign-in.check-inbox-notification.title'),\n                message: t('common:sign-in.check-inbox-notification.message'),\n            });\n        }\n\n        if (searchParams[QueryKeysEnum.successChangePassword]) {\n            showNotification({\n                title: t('common:sign-in.success-change-password.title'),\n                message: t('common:sign-in.success-change-password.message'),\n            });\n        }\n    }, [location, t]);\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const initialErrors = React.useMemo(() => {\n        return validateForm(t, INITIAL_VALUES);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [t, INITIAL_VALUES]);\n\n    const formik = useFormik<FormValuesT>({\n        validateOnBlur: false,\n        initialErrors,\n        initialValues: INITIAL_VALUES,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const email = simpleStringFormatter(values[FieldsEnum.email]);\n            const password = simpleStringFormatter(values[FieldsEnum.password]);\n            const returnUrl = query[QueryKeysEnum.returnUrl] || null;\n            dispatch(signIn(email, password, returnUrl));\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const asyncErrors = React.useMemo(() => {\n        return asyncValidate(requestStatus);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [requestStatus.error]);\n\n    const { asyncFormErrors, resetAsyncFormErrors } = useAsyncFormErrors(asyncErrors);\n\n    const emailAsyncError = useAsyncFormErrorMessage(asyncFormErrors[FieldsEnum.email]);\n    const passwordAsyncError = useAsyncFormErrorMessage(asyncFormErrors[FieldsEnum.password]);\n\n    return (\n        <>\n            <RedirectSignedUser />\n            <AuthLayout title={t('common:sign-in.title')} testSelector=\"sign-in-page\">\n                <PageTitle title={t('common:page-titles.sign-in')} />\n                {notification && (\n                    <div className={cx('notification')}>\n                        <Notification\n                            title={notification.title}\n                            message={notification.message}\n                            testSelector=\"notification\"\n                        />\n                    </div>\n                )}\n                <form onSubmit={formik.handleSubmit}>\n                    <div className={cx('fields')}>\n                        <div className={cx('input')}>\n                            <FormikField\n                                name={FieldsEnum.email}\n                                error={formik.errors[FieldsEnum.email]}\n                                meta={formik.getFieldMeta(FieldsEnum.email)}\n                                label={t('common:sign-in.fields.email.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                                asyncError={emailAsyncError}\n                                resetAsyncError={resetAsyncFormErrors}\n                            >\n                                {(props) => (\n                                    <Input\n                                        name={FieldsEnum.email}\n                                        placeholder={t('common:sign-in.fields.email.placeholder')}\n                                        value={formik.values[FieldsEnum.email]}\n                                        onChange={props.onChange}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                    />\n                                )}\n                            </FormikField>\n                        </div>\n                        <div className={cx('input')}>\n                            <FormikField\n                                name={FieldsEnum.password}\n                                error={formik.errors[FieldsEnum.password]}\n                                meta={formik.getFieldMeta(FieldsEnum.password)}\n                                label={t('common:sign-in.fields.password.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                                asyncError={passwordAsyncError}\n                                resetAsyncError={resetAsyncFormErrors}\n                            >\n                                {(props) => (\n                                    <Input\n                                        type=\"password\"\n                                        name={FieldsEnum.password}\n                                        placeholder={t('common:sign-in.fields.password.placeholder')}\n                                        value={formik.values[FieldsEnum.password]}\n                                        onChange={props.onChange}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                    />\n                                )}\n                            </FormikField>\n                        </div>\n                    </div>\n                    <Button\n                        theme={ButtonThemeEnum.primary}\n                        isLoading={requestStatus.loading}\n                        testSelector=\"sign-in\"\n                        type=\"submit\"\n                        className={cx('submit')}\n                    >\n                        {t('common:sign-in.submit')}\n                    </Button>\n                    <div className={cx('footer-links')}>\n                        {t('common:sign-in.links.sign-up')}\n                        <span className={cx('footer-links__link')}>\n                            <Link theme={LinkThemeEnum.boldAzul} testSelector=\"sign-up\" to={authApi.createSignUpUrl()}>\n                                {t('common:sign-in.links.sign-up-link')}\n                            </Link>\n                        </span>\n                    </div>\n                    <div className={cx('footer-links')}>\n                        <Link\n                            theme={LinkThemeEnum.boldAzul}\n                            testSelector=\"forgot-password\"\n                            to={authApi.createForgotPasswordUrl()}\n                        >\n                            {t('common:sign-in.links.forgot-password')}\n                        </Link>\n                    </div>\n                </form>\n            </AuthLayout>\n        </>\n    );\n});\n\nexport default SignInPage;\n","// extracted by mini-css-extract-plugin\nexport default {\"avatar\":\"AccountPreview__avatar___lC6ai\",\"full-name\":\"AccountPreview__full-name___fFgff\",\"email\":\"AccountPreview__email___kopJl\",\"time\":\"AccountPreview__time___vFjjq\",\"sign-out\":\"AccountPreview__sign-out___n91jb\",\"sign-out__icon\":\"AccountPreview__sign-out__icon___hSK3D\",\"link--active\":\"AccountPreview__link--active___DWwu7\",\"icon\":\"AccountPreview__icon___r5A3d\",\"fadeIn\":\"AccountPreview__fadeIn___JM8s8\",\"blinking\":\"AccountPreview__blinking___JNHLW\"};","import { CompanyStateT } from './types';\nimport { SharableStateT } from '../models';\n\nexport const selectCurrentCompanyRequestStatus = (state: SharableStateT): CompanyStateT['currentCompanyRequest'] =>\n    state.company.currentCompanyRequest;\n\nexport const selectCurrentCompany = (state: SharableStateT): CompanyStateT['currentCompany'] | null =>\n    state.company.currentCompany || null;\n\nexport const selectUpdateCompanyRequestStatus = (state: SharableStateT): CompanyStateT['updateCompanyRequest'] =>\n    state.company.updateCompanyRequest;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"MultiPointOrderDraftDetails__inner___qv5Tx\",\"row\":\"MultiPointOrderDraftDetails__row___FmK9v\",\"column--isLeftColumn\":\"MultiPointOrderDraftDetails__column--isLeftColumn___Z5SBR\",\"column--isRightColumn\":\"MultiPointOrderDraftDetails__column--isRightColumn___hStpB\",\"column--isWeight\":\"MultiPointOrderDraftDetails__column--isWeight___RrEOy\",\"column--isDirection\":\"MultiPointOrderDraftDetails__column--isDirection___sk8os\",\"direction\":\"MultiPointOrderDraftDetails__direction___AZ8KF\",\"placeholder\":\"MultiPointOrderDraftDetails__placeholder___CZx8y\",\"placeholder__icon\":\"MultiPointOrderDraftDetails__placeholder__icon___OU3kK\",\"placeholder__content\":\"MultiPointOrderDraftDetails__placeholder__content___P0LUI\",\"fadeIn\":\"MultiPointOrderDraftDetails__fadeIn___RMocD\",\"blinking\":\"MultiPointOrderDraftDetails__blinking___htSXA\"};","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"EditContactDetailsSidebarContent__form___dFDaL\",\"actions\":\"EditContactDetailsSidebarContent__actions___liwqr\",\"actions__action\":\"EditContactDetailsSidebarContent__actions__action___GOP22\",\"actions__action--isDiscard\":\"EditContactDetailsSidebarContent__actions__action--isDiscard___ZBX7h\",\"section__title\":\"EditContactDetailsSidebarContent__section__title___Gs4is\",\"section__block\":\"EditContactDetailsSidebarContent__section__block___vAFQL\",\"field--formal\":\"EditContactDetailsSidebarContent__field--formal___AsA2z\",\"field--first-name\":\"EditContactDetailsSidebarContent__field--first-name___G9d3W\",\"field--last-name\":\"EditContactDetailsSidebarContent__field--last-name___aMDsJ\",\"field--desktop-phone\":\"EditContactDetailsSidebarContent__field--desktop-phone___IDr3j\",\"field--mobile-phone\":\"EditContactDetailsSidebarContent__field--mobile-phone___kYUNJ\",\"field--fax-number\":\"EditContactDetailsSidebarContent__field--fax-number___h0N88\",\"field--email\":\"EditContactDetailsSidebarContent__field--email___O98HU\",\"field--birthday\":\"EditContactDetailsSidebarContent__field--birthday___epOPp\",\"field--country\":\"EditContactDetailsSidebarContent__field--country____ApTG\",\"field--language\":\"EditContactDetailsSidebarContent__field--language___xaQST\",\"fields-group\":\"EditContactDetailsSidebarContent__fields-group___XXenE\",\"fields-group__field\":\"EditContactDetailsSidebarContent__fields-group__field___zqN1s\",\"fields-group__field--three\":\"EditContactDetailsSidebarContent__fields-group__field--three___tjJ0W\",\"fields-group__field--two\":\"EditContactDetailsSidebarContent__fields-group__field--two___h6M0B\",\"checkbox__label\":\"EditContactDetailsSidebarContent__checkbox__label___gzb0O\",\"radio\":\"EditContactDetailsSidebarContent__radio___JsvB8\",\"media\":\"EditContactDetailsSidebarContent__media___hvUxn\",\"media__input\":\"EditContactDetailsSidebarContent__media__input___fERIl\",\"media__icon\":\"EditContactDetailsSidebarContent__media__icon___o1kiT\",\"fadeIn\":\"EditContactDetailsSidebarContent__fadeIn___DQgJ8\",\"blinking\":\"EditContactDetailsSidebarContent__blinking___v95c8\"};","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"CommonDocumentParamsDetails__fadeIn___BGv3l\",\"blinking\":\"CommonDocumentParamsDetails__blinking___snTjo\"};","import * as React from 'react';\nimport { ApiTourPaperT, PartnerTypeEnum } from 'common/utils/api/models';\nimport PapersGrid from 'common/components/papers/PapersGrid/PapersGrid';\nimport PaperLayout from 'common/components/papers/PaperLayout/PaperLayout';\nimport { logWarning } from 'common/utils/logger';\nimport { selectPapersEditByPaperIdState, selectTourChangesById } from 'common/store/papers-edit/selectors';\nimport { useSelector } from 'react-redux';\nimport { PapersEmptyPlaceholder } from 'common/components/papers/message-placeholders/PapersEmptyPlaceholder/PapersEmptyPlaceholder';\nimport { getVisibleOptimisticPapers } from 'common/components/papers/utils/getVisibleOptimisticPapers';\nimport { checkIsPDFFile } from 'common/utils/file-name';\n\ntype PropsT = {\n    attachedPapers: Array<ApiTourPaperT> | null;\n    tourId: TourIdT | null;\n    onOpenUserDetails?: (params: {\n        userId: UserIdT | null;\n        partnerType?: PartnerTypeEnum;\n        partnerId?: PartnerIdT;\n    }) => void;\n    onOpenDriverDetails?: (params: { driverId: DriverIdT; partnerId: PartnerIdT }) => void;\n    getTourPaperThumbnailUrl: (tourId: TourIdT | null, paperId: PaperIdT | null) => string | null;\n    onOpenGalleryTourPaper: (tourId: TourIdT, paperId: PaperIdT) => void;\n    onDownloadTourPaper: (tourId: TourIdT, paperId: PaperIdT) => void;\n    onDeleteTourPaper?: (tourId: TourIdT, paperId: PaperIdT) => void;\n    isHideUserInfo?: boolean;\n};\n\nconst TourPapersTabContent: React.FC<PropsT> = React.memo((props) => {\n    const {\n        attachedPapers,\n        tourId,\n        getTourPaperThumbnailUrl,\n        onOpenGalleryTourPaper,\n        onDownloadTourPaper,\n        onDeleteTourPaper,\n        onOpenUserDetails,\n        onOpenDriverDetails,\n        isHideUserInfo,\n    } = props;\n\n    const handleOpenGallery = React.useCallback(\n        (event: React.MouseEvent<HTMLElement>, paperId: PaperIdT | null) => {\n            if (!tourId || !paperId) {\n                logWarning('failed open gallery paper, empty tourId or paperId');\n                return;\n            }\n            onOpenGalleryTourPaper(tourId, paperId);\n        },\n        [tourId, onOpenGalleryTourPaper],\n    );\n\n    const handleDownload = React.useCallback(\n        (event: React.MouseEvent<HTMLElement>, paperId: PaperIdT | null) => {\n            if (!tourId || !paperId) {\n                logWarning('failed download paper, empty tourId or paperId');\n                return;\n            }\n            onDownloadTourPaper(tourId, paperId);\n        },\n        [tourId, onDownloadTourPaper],\n    );\n\n    const handleDelete = React.useCallback(\n        (event: React.MouseEvent<HTMLElement>, paperId: PaperIdT | null) => {\n            if (!tourId || !paperId) {\n                logWarning('failed delete paper, empty tourId or paperId');\n                return;\n            }\n            onDeleteTourPaper?.(tourId, paperId);\n        },\n        [tourId, onDeleteTourPaper],\n    );\n\n    const tourChanges = useSelector(selectTourChangesById(tourId));\n    const papersEditStateById = useSelector(selectPapersEditByPaperIdState);\n\n    const visibleOptimisticPapers = React.useMemo(() => {\n        return getVisibleOptimisticPapers({\n            optimisticPapers: tourChanges?.optimisticPapers,\n            entityPapers: attachedPapers,\n        });\n    }, [tourChanges?.optimisticPapers, attachedPapers]);\n\n    if (!attachedPapers?.length && !tourChanges?.optimisticPapers?.length) {\n        return <PapersEmptyPlaceholder />;\n    }\n\n    return (\n        <PapersGrid>\n            {attachedPapers?.map((paper) => {\n                const thumbnailUrl = getTourPaperThumbnailUrl(tourId, paper.id || null);\n                const alt = paper.comment ? `${paper.comment} ${paper.createDate || ''}` : null;\n                if (!paper.id) {\n                    return null;\n                }\n\n                const paperEditState = papersEditStateById[paper.id];\n\n                const isPdfPaper = checkIsPDFFile(paper.fileName);\n\n                return (\n                    <PaperLayout\n                        key={paper.id}\n                        paperId={paper.id}\n                        imageSrc={thumbnailUrl}\n                        imageAlt={alt}\n                        date={paper.createDate || null}\n                        userName={paper.createdByName || null}\n                        userId={paper.createdById || null}\n                        createdByRole={paper.createdByRole || null}\n                        originalFileName={paper.fileName || null}\n                        onClick={isPdfPaper ? handleDownload : handleOpenGallery}\n                        onOpenUserDetails={onOpenUserDetails}\n                        onOpenDriverDetails={onOpenDriverDetails}\n                        onDownload={handleDownload}\n                        onDelete={onDeleteTourPaper && handleDelete}\n                        deleteUnavailableReason={paper?.deleteUnavailableReason || null}\n                        isDeleting={paperEditState?.deleteRequest?.loading}\n                        isHideUserInfo={isHideUserInfo}\n                    />\n                );\n            })}\n            {visibleOptimisticPapers.map((optimisticPaper) => {\n                return (\n                    <PaperLayout\n                        key={optimisticPaper.fakeId}\n                        paperId={optimisticPaper.fakeId}\n                        isUploading\n                        isHideUserInfo={isHideUserInfo}\n                    />\n                );\n            })}\n        </PapersGrid>\n    );\n});\n\nexport { TourPapersTabContent };\n","// extracted by mini-css-extract-plugin\nexport default {\"left-card-layout\":\"LeftCardLayout__left-card-layout___7cjMF\",\"left-card-layout__left\":\"LeftCardLayout__left-card-layout__left___lCcMy\",\"left-card-layout__right\":\"LeftCardLayout__left-card-layout__right___OdAgr\",\"fadeIn\":\"LeftCardLayout__fadeIn___xXdZC\",\"blinking\":\"LeftCardLayout__blinking___LGK6S\"};","import {\n    useCheckOpenedSidebar,\n    useOpenedSidebar,\n    createOpenSidebarHook,\n    createCloseSidebarHook,\n    createToggleSidebarHook,\n} from 'common/layouts/SideBars/hooks';\nimport { ShipperSidebarDataT } from 'shipper/layouts/SideBars/models';\nimport { SidebarQueryKeysEnum } from 'common/layouts/SideBars/models';\n\nexport const useOpenLeftSidebar = createOpenSidebarHook<ShipperSidebarDataT>(SidebarQueryKeysEnum.leftSidebar);\n\nexport const useOpenRightSidebar = createOpenSidebarHook<ShipperSidebarDataT>(SidebarQueryKeysEnum.rightSidebar);\n\nexport const useCloseLeftSidebar = createCloseSidebarHook<ShipperSidebarDataT>(SidebarQueryKeysEnum.leftSidebar);\n\nexport const useCloseRightSidebar = createCloseSidebarHook<ShipperSidebarDataT>(SidebarQueryKeysEnum.rightSidebar);\n\nexport const useToggleLeftSidebar = createToggleSidebarHook<ShipperSidebarDataT>(SidebarQueryKeysEnum.leftSidebar);\n\nexport const useToggleRightSidebar = createToggleSidebarHook<ShipperSidebarDataT>(SidebarQueryKeysEnum.rightSidebar);\n\nexport { useOpenedSidebar, useCheckOpenedSidebar };\n","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { ApiTenderInfoT } from 'broker-admin/utils/api/broker-tranziit/models';\n\nexport type TendersStateT = {\n    downloadRequestStatus: RequestStatusT;\n    importRequestStatus: RequestStatusT;\n    fetchStatusRequestStatus: RequestStatusT;\n    deleteRequestStatus: RequestStatusT;\n    lastStatus: ApiTenderInfoT | null;\n};\n\nconst initialState: TendersStateT = {\n    downloadRequestStatus: requestStatus.initial,\n    importRequestStatus: requestStatus.initial,\n    fetchStatusRequestStatus: requestStatus.initial,\n    deleteRequestStatus: requestStatus.initial,\n    lastStatus: null,\n};\n\nexport const tendersSlice = createSlice({\n    name: 'tenders',\n    initialState,\n    reducers: {\n        downloadTenderXLSFile: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{}>,\n        ) => {\n            // nothing - handled by saga\n        },\n        downloadTenderXLSFileBegin: (state) => {\n            state.downloadRequestStatus = requestStatus.loading;\n        },\n        downloadTenderXLSFileSuccess: (state) => {\n            state.downloadRequestStatus = requestStatus.ok;\n        },\n        downloadTenderXLSFileError: (state, action: PayloadAction<{ error: Error }>) => {\n            state.downloadRequestStatus = requestStatus.setError(action.payload.error);\n        },\n        importTenderXLSFile: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{ file: File }>,\n        ) => {\n            // nothing - handled by saga\n        },\n        importTenderXLSFileBegin: (state) => {\n            state.importRequestStatus = requestStatus.loading;\n        },\n        importTenderXLSFileSuccess: (state, action: PayloadAction<{ status: ApiTenderInfoT | null }>) => {\n            state.importRequestStatus = requestStatus.ok;\n            state.lastStatus = action.payload.status;\n        },\n        importTenderXLSFileError: (state, action: PayloadAction<{ error: Error }>) => {\n            state.importRequestStatus = requestStatus.setError(action.payload.error);\n        },\n        fetchTenderStatus: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{}>,\n        ) => {\n            // nothing - handled by saga\n        },\n        fetchTenderStatusBegin: (state) => {\n            state.fetchStatusRequestStatus = requestStatus.loading;\n        },\n        fetchTenderStatusSuccess: (state, action: PayloadAction<{ status: ApiTenderInfoT | null }>) => {\n            state.fetchStatusRequestStatus = requestStatus.ok;\n            state.lastStatus = action.payload.status;\n        },\n        fetchTenderStatusError: (state, action: PayloadAction<{ error: Error }>) => {\n            state.fetchStatusRequestStatus = requestStatus.setError(action.payload.error);\n        },\n        deleteTender: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{}>,\n        ) => {\n            // nothing - handled by saga\n        },\n        deleteTenderBegin: (state) => {\n            state.deleteRequestStatus = requestStatus.loading;\n        },\n        deleteTenderSuccess: (state) => {\n            state.deleteRequestStatus = requestStatus.ok;\n            state.lastStatus = null;\n        },\n        deleteTenderError: (state, action: PayloadAction<{ error: Error }>) => {\n            state.deleteRequestStatus = requestStatus.setError(action.payload.error);\n        },\n    },\n    extraReducers: (builder) => {\n        builder.addCase('auth/destroySession', () => {\n            return initialState;\n        });\n    },\n});\n\nexport const {\n    downloadTenderXLSFile,\n    downloadTenderXLSFileBegin,\n    downloadTenderXLSFileSuccess,\n    downloadTenderXLSFileError,\n    importTenderXLSFile,\n    importTenderXLSFileBegin,\n    importTenderXLSFileSuccess,\n    importTenderXLSFileError,\n    fetchTenderStatus,\n    fetchTenderStatusBegin,\n    fetchTenderStatusSuccess,\n    fetchTenderStatusError,\n    deleteTender,\n    deleteTenderBegin,\n    deleteTenderSuccess,\n    deleteTenderError,\n} = tendersSlice.actions;\n\nexport default tendersSlice.reducer;\n","export enum FieldsEnum {\n    externalBusinessPartnerId = 'externalBusinessPartnerId',\n    teamIds = 'teamIds',\n    mainContactId = 'mainContactId',\n    mainContactFullName = 'mainContactFullName',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.externalBusinessPartnerId]: PartnerIdT | null;\n    [FieldsEnum.teamIds]: Array<TeamIdT>;\n    [FieldsEnum.mainContactId]: ContactIdT | null;\n    [FieldsEnum.mainContactFullName]: string | null;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"CommonDocumentParamsDetailsForm__fadeIn___hwgS8\",\"blinking\":\"CommonDocumentParamsDetailsForm__blinking___jU1a7\"};","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    fillColor: StyleGuideColorsEnum;\n};\n\nconst SplitIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, className } = props;\n\n    return (\n        <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" className={className}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    d=\"M16 4h-4.5l1.717 1.718-2.16 2.16 1.066 1.064 2.16-2.16L16 8.5V4zM4 4v4.5l1.718-1.718 3.532 3.525V16h1.5V9.693L6.782 5.718 8.5 4H4z\"\n                    fill={fillColor}\n                />\n            </g>\n        </svg>\n    );\n};\n\nSplitIcon.displayName = 'SplitIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.blazeOrange,\n};\n\nexport { storyProps };\nexport default SplitIcon;\n","import { FieldsEnum, FormValuesT } from './constants';\n\nconst getInitialValues = (): FormValuesT => {\n    return {\n        [FieldsEnum.reason]: '',\n    };\n};\n\nexport default getInitialValues;\n","import { StateT } from 'broker-admin/store/models';\nimport { initialDeadheadCreationState } from './slice';\n\nexport const selectDeadheadCreation = (state: StateT) => state.deadheadCreation || initialDeadheadCreationState;\n\nexport const selectDeadheadInitContextQuery = (state: StateT) =>\n    (state.deadheadCreation || initialDeadheadCreationState).contextQuery;\n\nexport const selectDeadheadContextRequest = (state: StateT) =>\n    (state.deadheadCreation || initialDeadheadCreationState).contextRequest;\n\nexport const selectDeadheadContext = (state: StateT) =>\n    (state.deadheadCreation || initialDeadheadCreationState).contextResponse;\n\nexport const selectDeadheadApplyRequest = (state: StateT) =>\n    (state.deadheadCreation || initialDeadheadCreationState).applyContextRequest;\n\nexport const selectDeadheadPreviewQuery = (state: StateT) =>\n    (state.deadheadCreation || initialDeadheadCreationState).previewQuery;\n\nexport const selectDeadheadPreviewRequest = (state: StateT) =>\n    (state.deadheadCreation || initialDeadheadCreationState).previewRequest;\n\nexport const selectDeadheadPreviewResponse = (state: StateT) =>\n    (state.deadheadCreation || initialDeadheadCreationState).previewResponse;\n\nexport const selectIsApplyingContextChanges = (state: StateT) =>\n    (state.deadheadCreation || initialDeadheadCreationState).isApplyingContextChanges;\n","import * as React from 'react';\nimport { ApiDictCarrierAdditionalServiceGroupT, ApiTrailerDictTypeT } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    category: ApiDictCarrierAdditionalServiceGroupT['category'] | null;\n    trailerType: ApiTrailerDictTypeT['trailerType'] | null;\n};\n\nconst AdditionalServiceGroupLabel: React.FC<PropsT> = React.memo((props) => {\n    const { className, category, trailerType } = props;\n\n    const { t } = useTranslation();\n\n    const groupTitle = React.useMemo(() => {\n        if (category === 'ACCESSORIES') {\n            return t('common:additional-service.groups.accessorials');\n        }\n\n        if (category === 'CARRIER_CERTIFICATIONS') {\n            return t('common:additional-service.groups.carrier');\n        }\n\n        if (category === 'TRAILER_SPECIFICATION') {\n            if (trailerType === 'TILT') {\n                return t('common:additional-service.groups.tilt');\n            }\n\n            if (trailerType === 'BOX') {\n                return t('common:additional-service.groups.box');\n            }\n        }\n\n        return null;\n    }, [t, category, trailerType]);\n\n    return <span className={className}>{groupTitle}</span>;\n});\n\nexport default AdditionalServiceGroupLabel;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    // eslint-disable-next-line react/no-unused-prop-types\n    lat?: number;\n    // eslint-disable-next-line react/no-unused-prop-types\n    lng?: number;\n    isWrong?: boolean;\n    className?: string;\n};\n\nconst OriginPinIcon: React.FC<PropsT> = (props) => {\n    const { className, isWrong } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"45\" viewBox=\"0 0 40 45\" className={className}>\n            <defs>\n                <filter\n                    id=\"5sn0ldxkca\"\n                    width=\"390%\"\n                    height=\"357.8%\"\n                    x=\"-145%\"\n                    y=\"-128.9%\"\n                    filterUnits=\"objectBoundingBox\"\n                >\n                    <feOffset in=\"SourceAlpha\" result=\"shadowOffsetOuter1\" />\n                    <feGaussianBlur in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\" stdDeviation=\"15\" />\n                    <feColorMatrix\n                        in=\"shadowBlurOuter1\"\n                        result=\"shadowMatrixOuter1\"\n                        values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\"\n                    />\n                    <feMerge>\n                        <feMergeNode in=\"SourceGraphic\" />\n                    </feMerge>\n                </filter>\n            </defs>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <g>\n                    <g>\n                        <g filter=\"url(#5sn0ldxkca)\" transform=\"translate(-979 -124) translate(569) translate(410 124)\">\n                            <path\n                                fill={isWrong ? StyleGuideColorsEnum.tomatoRed : StyleGuideColorsEnum.dodgerBlue}\n                                d=\"M25 0c8.284 0 15 6.716 15 15v10c0 8.284-6.716 15-15 15l-5 5-5-5C6.716 40 0 33.284 0 25V15C0 6.716 6.716 0 15 0h10z\"\n                            />\n                            <path\n                                fill=\"#FFF\"\n                                fillRule=\"nonzero\"\n                                d=\"M16.082 30l1.138-3.736h6.519L24.89 30H30l-7.291-20h-4.472L11 30h5.082zm6.519-7.459h-4.242l2.114-6.937 2.128 6.937z\"\n                            />\n                        </g>\n                    </g>\n                </g>\n            </g>\n        </svg>\n    );\n};\n\nOriginPinIcon.displayName = 'OriginPinIcon';\n\nconst storyProps: PropsT = {};\n\nexport { storyProps };\nexport default OriginPinIcon;\n","import * as React from 'react';\n\nimport LeftMenuLayout from '../LeftMenuLayout/LeftMenuLayout';\nimport { Redirect, Route, Switch } from 'react-router-dom';\nimport { routesEnum, SettingsRuleRoutesEnum } from 'broker-admin/constants';\n\nimport AccountPage from 'common/layouts/AccountPage/AccountPage';\n\nimport PartnersPage from '../PartnersPage/PartnersPage';\nimport PartnerPage from '../PartnerPage/PartnerPage';\nimport SettingsPage from '../SettingsPage/SettingsPage';\nimport AssetDetailsPage from '../AssetDetailsPage/AssetDetailsPage';\nimport BrokerOrdersPage from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrdersPage';\nimport OrdersPage from '../OrdersPage/OrdersPage';\nimport StatisticsPage from '../StatisticsPage/StatisticsPage';\nimport User from 'common/components/User/User';\nimport Company from 'common/components/Company/Company';\nimport RedirectPendingUser from 'common/components/RedirectPendingUser/RedirectPendingUser';\nimport SpotRequestsPage from '../SpotRequestsPage/SpotRequestsPage';\nimport InvoicesListPage from '../InvoicesListPage/InvoicesListPage';\nimport { QueryKeysEnum } from 'common/constants';\nimport { formatQuery } from 'common/utils/query';\nimport ShipperContractDetailsPage from 'broker-admin/layouts/ShipperContractDetailsPage/ShipperContractDetailsPage';\nimport ShipperContractLanePage from 'broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLanePage';\nimport PriceSettingsRulesPage from 'broker-admin/layouts/PriceSettingsRulesPage/PriceSettingsRulesPage';\nimport BrokerToursPage from 'broker-admin/layouts/BrokerToursPage/BrokerToursPage';\nimport BrokerUsersPage from 'broker-admin/layouts/BrokerUsersPage/BrokerUsersPage';\nimport BrokerRFQsPage from 'broker-admin/layouts/BrokerRFQsPage/BrokerRFQsPage';\n\ntype PropsT = {};\n\nconst ClientPage: React.FC<PropsT> = React.memo(() => {\n    return (\n        <>\n            <User />\n            <RedirectPendingUser />\n            <Company />\n            <LeftMenuLayout>\n                <Switch>\n                    <Route exact path={routesEnum.home}>\n                        <Redirect to={routesEnum.brokerOrders} />\n                    </Route>\n                    <Route path={routesEnum.brokerOrders}>\n                        <BrokerOrdersPage />\n                    </Route>\n                    <Route path={routesEnum.orders}>\n                        <OrdersPage />\n                    </Route>\n                    <Route path={routesEnum.spotRequests}>\n                        <SpotRequestsPage />\n                    </Route>\n                    <Route path={routesEnum.invoices}>\n                        <InvoicesListPage />\n                    </Route>\n                    <Route exact path={routesEnum.partners}>\n                        <PartnersPage />\n                    </Route>\n                    <Route path={routesEnum.partner}>\n                        <PartnerPage />\n                    </Route>\n                    <Route path={routesEnum.shipperContractDetails}>\n                        <ShipperContractDetailsPage />\n                    </Route>\n                    <Route path={routesEnum.shipperLaneDetails}>\n                        <ShipperContractLanePage />\n                    </Route>\n                    <Route path={routesEnum.assetDetails}>\n                        <AssetDetailsPage />\n                    </Route>\n                    <Route path={routesEnum.settings}>\n                        <Switch>\n                            <Route path={SettingsRuleRoutesEnum.ruleDetails}>\n                                <PriceSettingsRulesPage />\n                            </Route>\n                            <Route path=\"*\">\n                                <SettingsPage />\n                            </Route>\n                        </Switch>\n                    </Route>\n                    <Route path={routesEnum.statistics}>\n                        <StatisticsPage />\n                    </Route>\n                    <Route path={routesEnum.brokerTours}>\n                        <BrokerToursPage />\n                    </Route>\n                    <Route path={routesEnum.brokerRFQs}>\n                        <BrokerRFQsPage />\n                    </Route>\n                    <Route path={routesEnum.brokerUsers}>\n                        <BrokerUsersPage />\n                    </Route>\n                    <Route path={routesEnum.account}>\n                        <AccountPage />\n                    </Route>\n                    <Route path=\"*\">\n                        <Redirect\n                            to={{\n                                pathname: routesEnum.notFound,\n                                search: formatQuery({\n                                    [QueryKeysEnum.sourceUrl]: window.location.href,\n                                }),\n                            }}\n                        />\n                    </Route>\n                </Switch>\n            </LeftMenuLayout>\n        </>\n    );\n});\n\nexport default ClientPage;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n};\n\nconst TeleportIcon: React.FC<PropsT> = (props) => {\n    const { size } = props;\n\n    return (\n        <svg width={size} height={size} viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M0 0h20v20H0z\" />\n                <path\n                    d=\"M9.285 18.1v-2.978l-.655.655-1.012-1.012L10 12.382l2.382 2.383-1.012 1.012-.655-.655V18.1h-1.43zm-4.05-5.718L4.223 11.37l.655-.655H1.9v-1.43h2.978l-.655-.655 1.012-1.012L7.618 10l-2.383 2.382zm9.53 0L12.382 10l2.383-2.382 1.012 1.012-.655.655H18.1v1.43h-2.978l.655.655-1.012 1.012zM10 11.192c-.33 0-.612-.117-.844-.348A1.149 1.149 0 0 1 8.81 10c0-.33.116-.612.347-.844.232-.231.513-.347.844-.347.33 0 .612.116.844.347.231.232.347.513.347.844 0 .33-.116.612-.347.844a1.149 1.149 0 0 1-.844.347zm0-3.574L7.618 5.235 8.63 4.223l.655.655V1.9h1.43v2.978l.655-.655 1.012 1.012L10 7.618z\"\n                    fill=\"color(display-p3 0.919 0.571 0.001)\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nTeleportIcon.displayName = 'TeleportIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n};\n\nexport { storyProps };\nexport default TeleportIcon;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst TeamDrive2Icon: React.FC<PropsT> = (props) => {\n    const { size, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\">\n            <path\n                fill={strokeColor}\n                fillRule=\"evenodd\"\n                d=\"M11 2.062A8 8 0 1 1 2.062 11h2.022c.423 2.5 2.405 4.47 4.908 4.899-.03-2.046-.908-3.843-2.233-4.9L11 11l-.001-3.001L15.633 8a6.08 6.08 0 0 0-.984-1.758l-.184-.22A5.955 5.955 0 0 0 11 4.084V2.062zM16 10c-2.732 0-4.945 2.633-4.992 5.899C13.836 15.414 16 12.963 16 10zM6.75 2.75v2.5h2.5v1.5h-2.5v2.5h-1.5v-2.5h-2.5v-1.5h2.5v-2.5h1.5z\"\n            />\n        </svg>\n    );\n};\n\nTeamDrive2Icon.displayName = 'TeamDrive2Icon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default TeamDrive2Icon;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"AttachPapersDropdownControlTrigger__inner___oE5Rs\",\"fadeIn\":\"AttachPapersDropdownControlTrigger__fadeIn___lCD_0\",\"blinking\":\"AttachPapersDropdownControlTrigger__blinking___yqF1H\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"DropAndHookRoutePointPicker__wrap___IUpWH\",\"field--location\":\"DropAndHookRoutePointPicker__field--location___mWgiJ\",\"geo-suggest\":\"DropAndHookRoutePointPicker__geo-suggest___zQgb3\",\"time-picker\":\"DropAndHookRoutePointPicker__time-picker____83zn\",\"right-node\":\"DropAndHookRoutePointPicker__right-node___as_7R\",\"time-interval\":\"DropAndHookRoutePointPicker__time-interval___kHUpw\",\"time-interval--isHalfOpacity\":\"DropAndHookRoutePointPicker__time-interval--isHalfOpacity___BOJE3\",\"fadeIn\":\"DropAndHookRoutePointPicker__fadeIn___wM4xM\",\"blinking\":\"DropAndHookRoutePointPicker__blinking___L8Lcg\"};","import * as React from 'react';\nimport { ApiUserStatusT, UserStatusEnum } from 'common/utils/api/models';\nimport { PropsT as ColoredStatusLabelPropsT } from 'common/components/ColoredStatusLabel/ColoredStatusLabel';\nimport PillLabel, { colorCodingPillLabelTheme } from 'common/components/PillLabel/PillLabel';\nimport UserStatus from 'common/components/status/UserStatus/UserStatus';\n\ntype PropsT = Omit<ColoredStatusLabelPropsT, 'label' | 'color'> & {\n    status: ApiUserStatusT | null;\n    isSymmetrical?: boolean;\n};\n\nconst DriverStatusPill: React.FC<PropsT> = React.memo((props) => {\n    const { status, ...restProps } = props;\n\n    if (status === UserStatusEnum.archived) {\n        return (\n            <PillLabel isNoWrap {...restProps} theme={colorCodingPillLabelTheme.normal}>\n                <UserStatus status={status} />\n            </PillLabel>\n        );\n    }\n\n    if (status === UserStatusEnum.pending) {\n        return (\n            <PillLabel isNoWrap {...restProps} theme={colorCodingPillLabelTheme.attention}>\n                <UserStatus status={status} />\n            </PillLabel>\n        );\n    }\n\n    return null;\n});\n\nexport default DriverStatusPill;\n","// extracted by mini-css-extract-plugin\nexport default {\"title\":\"SignUpForm__title___pTxys\",\"content\":\"SignUpForm__content___EwXxa\",\"error\":\"SignUpForm__error___engAQ\",\"fadeIn\":\"SignUpForm__fadeIn___Ikj4L\",\"blinking\":\"SignUpForm__blinking___F6VgC\"};","import React from 'react';\n\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { EmissionClassEnum } from 'common/constants';\nimport EmissionIcon, { EmissionIconProps } from 'common/icons/EmissionIcon';\nimport { EMISSION_CLASS_MAP } from 'common/components/EmissionClassLabel/EmissionClassLabel';\n\ntype ValueT = EmissionClassEnum | null;\n\ntype PropsT = {\n    placeholder?: string;\n    value: ValueT;\n    onChange: (value: ValueT) => void;\n    hasWarning: boolean;\n    hasError: boolean;\n    hasChanges?: boolean;\n    onBlur: () => void;\n    onFocus: () => void;\n    hasClearControl?: boolean;\n};\n\ntype EmissionStandardOptionT = {\n    label: string;\n    value: ValueT;\n};\n\nconst ALL_EMISSION_STANDARDS: EmissionClassEnum[] = [EmissionClassEnum.euro5, EmissionClassEnum.euro6];\n\nconst EmissionClassDropdown: React.FC<PropsT> = React.memo((props) => {\n    const { value, placeholder, onChange, hasWarning, hasError, hasChanges, onBlur, onFocus, hasClearControl } = props;\n\n    const options: Array<EmissionStandardOptionT> = React.useMemo(\n        () =>\n            ALL_EMISSION_STANDARDS.map((value) => ({\n                label: EMISSION_CLASS_MAP[value],\n                value,\n            })),\n        [],\n    );\n\n    return (\n        <DropdownInput<EmissionStandardOptionT, EmissionClassEnum | null>\n            selectedValue={value}\n            placeholder={placeholder}\n            options={options}\n            onSelect={onChange}\n            renderOption={(option: EmissionStandardOptionT | null | undefined, placeholder) => {\n                if (!option) {\n                    return <span>{placeholder}</span>;\n                }\n\n                return <span>{option.label}</span>;\n            }}\n            getOptionValue={(option: EmissionStandardOptionT) => {\n                return option.value;\n            }}\n            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n            hasWarning={hasWarning}\n            hasError={hasError}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            renderLeftIcon={(iconMeta) => <EmissionIcon {...EmissionIconProps.getControlProps(iconMeta)} />}\n            onReset={() => {\n                onChange(null);\n            }}\n            hasClearControl={hasClearControl}\n        />\n    );\n});\n\nexport default EmissionClassDropdown;\n","export const getShipmentAnchor = (shipmentId: ShipmentIdT | null) => {\n    return `shipment-${shipmentId}`;\n};\n","import React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n};\n\nconst WrenchIcon: React.FC<PropsT> = (props) => {\n    const { fillColor } = props;\n\n    return (\n        <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M0 0h20v20H0z\" />\n                <path\n                    d=\"M10 2.286A7.72 7.72 0 0 0 2.286 10 7.72 7.72 0 0 0 10 17.714 7.72 7.72 0 0 0 17.714 10 7.72 7.72 0 0 0 10 2.286zM12.597 14.5l-2.906-2.906c-1.08.335-2.301.103-3.15-.758a3.113 3.113 0 0 1-.552-3.652L8.084 9.28 9.41 7.956 7.313 5.86a3.113 3.113 0 0 1 4.268 4.076l2.79 2.79-1.774 1.774z\"\n                    fill=\"none\"\n                />\n                <path\n                    d=\"M10 1c4.963 0 9 4.037 9 9s-4.037 9-9 9-9-4.037-9-9 4.037-9 9-9zm0 1.286A7.72 7.72 0 0 0 2.286 10 7.72 7.72 0 0 0 10 17.714 7.72 7.72 0 0 0 17.714 10 7.72 7.72 0 0 0 10 2.286zM7.313 5.86a3.113 3.113 0 0 1 3.651.553c.952.951 1.145 2.366.617 3.523l2.79 2.79-1.774 1.774-2.906-2.906c-1.08.335-2.301.09-3.15-.758a3.113 3.113 0 0 1-.552-3.652L8.084 9.28 9.41 7.956z\"\n                    fill={fillColor}\n                />\n            </g>\n        </svg>\n    );\n};\n\nWrenchIcon.displayName = 'WrenchIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.orange,\n};\n\nexport { storyProps };\n\nexport default WrenchIcon;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './Stepper.scss';\nimport cs from 'classnames';\n\nimport noop from 'lodash/noop';\nimport BackButton from 'common/components/BackButton/BackButton';\n\nconst cx = classNames.bind(styles);\n\nexport type StepT = {\n    label: string;\n};\n\ntype PropsT = {\n    className?: string;\n    activeStepIndex: number;\n    goTo: (stepIndex: number) => void;\n    steps: StepT[];\n    testSelector?: string;\n    isDisabledBack?: boolean;\n    initShowStepIndex: number;\n};\n\nconst Stepper: React.FC<PropsT> = (props) => {\n    const { className, activeStepIndex, goTo, steps, initShowStepIndex, testSelector } = props;\n\n    const goBack = () => goTo(activeStepIndex - 1);\n\n    const isDisabledBack = activeStepIndex === 0 || !!props.isDisabledBack;\n\n    if (!steps.length) {\n        return null;\n    }\n\n    const fullTestSelector = `${testSelector}_stepper`;\n\n    return (\n        <div className={cs(cx('stepper'), className)} data-test-selector={fullTestSelector}>\n            <BackButton className={cx('back-button')} onClick={goBack} isDisabled={isDisabledBack} />\n            {steps.map((step, stepIndex) => {\n                if (stepIndex < initShowStepIndex) {\n                    return null;\n                }\n\n                const isPrevStep = stepIndex < activeStepIndex;\n                const isSelectable = isPrevStep;\n                const isActive = stepIndex === activeStepIndex;\n                const number = stepIndex + 1;\n\n                return (\n                    <div\n                        key={stepIndex}\n                        className={cx('step', {\n                            'step--isSelectable': isSelectable,\n                        })}\n                        data-test-selector={`${fullTestSelector}_step_${stepIndex}`}\n                        onClick={isSelectable ? () => goTo(stepIndex) : noop}\n                    >\n                        <div\n                            className={cx('step__number', {\n                                'step__number--isActive': isActive,\n                                'step__number--isPrevStep': isPrevStep,\n                            })}\n                        >\n                            {isPrevStep ? null : number}\n                        </div>\n                        <div className={cx('step__label', { 'step__label--isActive': isActive })}>{step.label}</div>\n                    </div>\n                );\n            })}\n        </div>\n    );\n};\n\nexport default Stepper;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport TrailerIcon from 'common/icons/TrailerIcon';\nimport EmissionIcon from 'common/icons/EmissionIcon';\nimport FuelIcon from 'common/icons/FuelIcon';\n\nexport const useShipperOrderDetailsRowsFactory = () => {\n    const { t } = useTranslation();\n\n    return React.useMemo(() => {\n        return {\n            trailerType: () => ({\n                icon: (\n                    <TrailerIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.gray}\n                        fillColor={StyleGuideColorsEnum.light}\n                    />\n                ),\n                name: t('common:entity-details.columns.trailer-type'),\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                testSelector: 'trailer-type',\n            }),\n            emissionClass: () => ({\n                icon: <EmissionIcon strokeColor={StyleGuideColorsEnum.gray} />,\n                name: t('common:entity-details.columns.emission-class'),\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                testSelector: 'emissions-class',\n            }),\n            fuelType: () => ({\n                icon: <FuelIcon strokeColor={StyleGuideColorsEnum.gray} fillColor={StyleGuideColorsEnum.light} />,\n                name: t('common:entity-details.columns.fuel-type'),\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                testSelector: 'fuel-type',\n            }),\n        };\n    }, [t]);\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"placeholder\":\"TelematicUpdateDateCell__placeholder___svdYy\",\"fadeIn\":\"TelematicUpdateDateCell__fadeIn___ROWiz\",\"blinking\":\"TelematicUpdateDateCell__blinking___EbwB2\"};","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\nimport { ApiUpdatedFieldCodeT } from 'common/utils/api/models';\n\ntype PropsT = {\n    code: ApiUpdatedFieldCodeT;\n    className?: string;\n};\n\nconst FIELD_I18N_MAP: Record<ApiUpdatedFieldCodeT, string> = {\n    DESCRIPTION: 'common:notifications.updated-fields.DESCRIPTION',\n    PURCHASE_ORDER: 'common:notifications.updated-fields.PURCHASE_ORDER',\n    ADDRESS: 'common:notifications.updated-fields.ADDRESS',\n    TIME_SLOT: 'common:notifications.updated-fields.TIME_SLOT',\n    DEADHEAD_MILEAGE_TRUCK: 'common:notifications.updated-fields.DEADHEAD_MILEAGE_TRUCK',\n    DEADHEAD_MILEAGE_TRAILER: 'common:notifications.updated-fields.DEADHEAD_MILEAGE_TRAILER',\n    LAYOVER_HOURS: 'common:notifications.updated-fields.LAYOVER_HOURS',\n    CARRIER_COST_TOTAL: 'common:notifications.updated-fields.CARRIER_COST_TOTAL',\n    ESTIMATED_TRAVEL_TIME_HOURS: 'common:notifications.updated-fields.ESTIMATED_TRAVEL_TIME_HOURS',\n    ESTIMATED_CARRIER_COST_TOTAL: 'common:notifications.updated-fields.ESTIMATED_CARRIER_COST_TOTAL',\n    SHIPPER_PRICE_TOTAL: 'common:notifications.updated-fields.SHIPPER_PRICE_TOTAL',\n    COMPANY_NAME: 'common:notifications.updated-fields.COMPANY_NAME',\n    FULL_NAME: 'common:notifications.updated-fields.FULL_NAME',\n    PHONE_NUMBER: 'common:notifications.updated-fields.PHONE_NUMBER',\n    EMAIL: 'common:notifications.updated-fields.EMAIL',\n    COMMENTS: 'common:notifications.updated-fields.COMMENTS',\n};\n\nconst FieldName: React.FC<PropsT> = React.memo((props) => {\n    const { code, className } = props;\n    const { t } = useTranslation();\n\n    return <NotificationEntityLabel text={t(FIELD_I18N_MAP[code])} isBold className={className} />;\n});\n\nexport default FieldName;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PricingSettingsForm.scss';\n\nimport { useFormik } from 'formik';\nimport { useTranslation } from 'react-i18next';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport FieldGroup, { FieldGroupEmptyItem } from 'common/components/FieldGroup/FieldGroup';\nimport prepareApiSystemSettings from './prepare-system-settings';\nimport NumberInput from 'common/components/NumberInput/NumberInput';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport { PricingTypeEnum, ServiceFeeTypeEnum } from 'broker-admin/store/price-settings/system-settings/models';\nimport withWidgetChangesDetector from 'common/components/SaveChangesNotification/withWidgetChangesDetector';\nimport { UnitTypeEnum } from 'common/constants';\nimport Widget from 'common/components/Widget/Widget';\nimport values from 'lodash/values';\nimport { getMaskByType } from '../utils';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport Checkbox from 'design-system/components/Checkbox/Checkbox';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport HiddenSubmitButtonForKeyboardEnter from 'common/components/HiddenEnterSubmitButton/HiddenSubmitButtonForKeyboardEnter';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport { SystemSettingsFormCommonPropsT } from 'broker-admin/layouts/SettingsPage/SystemSettings/models';\nimport times from 'lodash/times';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport { useWatchFormAnyErrors } from 'common/utils/hooks/useWatchFormFormHasErrors';\n\nconst cx = classNames.bind(styles);\n\ntype ServiceFeeTypeOptionT = {\n    label: string;\n    value: ServiceFeeTypeEnum;\n};\n\ntype PricingTypeOptionT = {\n    label: string;\n    value: PricingTypeEnum;\n};\n\nconst UNIT_TYPE_MAP = {\n    [FieldsEnum.minimalShipmentCost]: UnitTypeEnum.euroAbbreviation,\n    [FieldsEnum.driverSalaryPerHour]: UnitTypeEnum.euroAbbreviation,\n    [FieldsEnum.minimalCostForTruck]: UnitTypeEnum.euroAbbreviation,\n    [FieldsEnum.minimalCostForTrailer]: UnitTypeEnum.euroAbbreviation,\n    [FieldsEnum.layoverCostPerHour]: UnitTypeEnum.euroAbbreviation,\n    [FieldsEnum.layoverCostPerDay]: UnitTypeEnum.euroAbbreviation,\n    [FieldsEnum.layoverFreeHours]: UnitTypeEnum.hoursAbbreviation,\n    [FieldsEnum.urgentOverPrice]: UnitTypeEnum.euroAbbreviation,\n    [FieldsEnum.overPriceForEveryAdditionalStop]: UnitTypeEnum.euroAbbreviation,\n    [FieldsEnum.timeSlotAppointmentCost]: UnitTypeEnum.euroAbbreviation,\n    [FieldsEnum.costPerGreenShipment]: UnitTypeEnum.euroAbbreviation,\n    [FieldsEnum.tranziitServiceFeePercent]: UnitTypeEnum.percentsAbbreviation,\n    [FieldsEnum.tranziitServiceFeeFixed]: UnitTypeEnum.euroAbbreviation,\n    [FieldsEnum.truckConsumption]: UnitTypeEnum.litersAbbreviation,\n    [FieldsEnum.reeferConsumption]: UnitTypeEnum.litersAbbreviation,\n    [FieldsEnum.rateMatrixSpread]: UnitTypeEnum.percentsAbbreviation,\n    [FieldsEnum.hvoPricePercent]: UnitTypeEnum.percentsAbbreviation,\n};\n\nconst STEP_MAP = {\n    [FieldsEnum.minimalShipmentCost]: 10,\n    [FieldsEnum.driverSalaryPerHour]: 1,\n    [FieldsEnum.minimalCostForTruck]: 10,\n    [FieldsEnum.minimalCostForTrailer]: 10,\n    [FieldsEnum.layoverCostPerHour]: 10,\n    [FieldsEnum.layoverCostPerDay]: 10,\n    [FieldsEnum.layoverFreeHours]: 1,\n    [FieldsEnum.urgentOverPrice]: 10,\n    [FieldsEnum.overPriceForEveryAdditionalStop]: 10,\n    [FieldsEnum.timeSlotAppointmentCost]: 10,\n    [FieldsEnum.costPerGreenShipment]: 10,\n    [FieldsEnum.truckConsumption]: 1,\n    [FieldsEnum.reeferConsumption]: 1,\n    [FieldsEnum.rateMatrixSpread]: 1,\n    [FieldsEnum.hvoPricePercent]: 1,\n};\n\nconst FIELD_LABEL_T_MAP = {\n    [FieldsEnum.minimalShipmentCost]: 'price-settings.pricing-form.fields.minimal-cost-for-shipment.label',\n    [FieldsEnum.driverSalaryPerHour]: 'price-settings.pricing-form.fields.team-driver-rate-per-hour.label',\n    [FieldsEnum.layoverCostPerHour]: 'price-settings.pricing-form.fields.layover-cost-per-hour.label',\n    [FieldsEnum.layoverCostPerDay]: 'price-settings.pricing-form.fields.layover-cost-per-day.label',\n    [FieldsEnum.layoverFreeHours]: 'price-settings.pricing-form.fields.layover-free-hours.label',\n    [FieldsEnum.urgentOverPrice]: 'price-settings.pricing-form.fields.urgentOverPrice.label',\n    [FieldsEnum.overPriceForEveryAdditionalStop]:\n        'price-settings.pricing-form.fields.overPriceForEveryAdditionalStop.label',\n    [FieldsEnum.timeSlotAppointmentCost]: 'price-settings.pricing-form.fields.timeSlotAppointmentCost.label',\n    [FieldsEnum.costPerGreenShipment]: 'price-settings.pricing-form.fields.green-shipment-cost.label',\n    [FieldsEnum.tranziitServiceFeeFixedMode]: 'price-settings.pricing-form.fields.tranziit-service-fee.label',\n    [FieldsEnum.pricingStrategy]: 'price-settings.pricing-form.fields.pricing.label',\n    [FieldsEnum.truckConsumption]: 'price-settings.pricing-form.fields.truck-consumption.label',\n    [FieldsEnum.reeferConsumption]: 'price-settings.pricing-form.fields.reef-consumption.label',\n    [FieldsEnum.usePeriodicRulesForWeekdays]:\n        'price-settings.pricing-form.fields.use-periodic-rules-for-weekdays.label',\n    [FieldsEnum.usePeriodicRulesForMonths]: 'price-settings.pricing-form.fields.use-periodic-rules-for-months.label',\n    [FieldsEnum.rateMatrixSpread]: 'price-settings.pricing-form.fields.rate-matrix-spread.label',\n    [FieldsEnum.minimalCostForTruck]: 'price-settings.pricing-form.fields.minimalCostForTruck.label',\n    [FieldsEnum.minimalCostForTrailer]: 'price-settings.pricing-form.fields.minimalCostForTrailer.label',\n    [FieldsEnum.hvoPricePercent]: 'price-settings.pricing-form.fields.hvoPricePercent.label',\n};\n\nconst FIELD_DESCRIPTION_T_MAP = {\n    [FieldsEnum.minimalShipmentCost]: 'price-settings.pricing-form.fields.minimal-cost-for-shipment.description',\n    [FieldsEnum.driverSalaryPerHour]: 'price-settings.pricing-form.fields.team-driver-rate-per-hour.description',\n    [FieldsEnum.layoverCostPerHour]: 'price-settings.pricing-form.fields.layover-cost-per-hour.description',\n    [FieldsEnum.layoverCostPerDay]: 'price-settings.pricing-form.fields.layover-cost-per-day.description',\n    [FieldsEnum.layoverFreeHours]: 'price-settings.pricing-form.fields.layover-free-hours.description',\n    [FieldsEnum.urgentOverPrice]: 'price-settings.pricing-form.fields.urgentOverPrice.description',\n    [FieldsEnum.overPriceForEveryAdditionalStop]:\n        'price-settings.pricing-form.fields.overPriceForEveryAdditionalStop.description',\n    [FieldsEnum.timeSlotAppointmentCost]: 'price-settings.pricing-form.fields.timeSlotAppointmentCost.description',\n    [FieldsEnum.costPerGreenShipment]: 'price-settings.pricing-form.fields.green-shipment-cost.description',\n    [FieldsEnum.pricingStrategy]: 'price-settings.pricing-form.fields.pricing.description',\n    [FieldsEnum.truckConsumption]: 'price-settings.pricing-form.fields.truck-consumption.description',\n    [FieldsEnum.reeferConsumption]: 'price-settings.pricing-form.fields.reef-consumption.description',\n    [FieldsEnum.rateMatrixSpread]: 'price-settings.pricing-form.fields.rate-matrix-spread.description',\n    [FieldsEnum.minimalCostForTruck]: 'price-settings.pricing-form.fields.minimalCostForTruck.description',\n    [FieldsEnum.minimalCostForTrailer]: 'price-settings.pricing-form.fields.minimalCostForTrailer.description',\n    [FieldsEnum.hvoPricePercent]: 'price-settings.pricing-form.fields.hvoPricePercent.description',\n};\n\ntype PropsT = SystemSettingsFormCommonPropsT;\n\nconst ALL_FIELDS = values(FieldsEnum);\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(ALL_FIELDS);\n\ntype NumberFieldsT =\n    | FieldsEnum.minimalShipmentCost\n    | FieldsEnum.driverSalaryPerHour\n    | FieldsEnum.layoverCostPerHour\n    | FieldsEnum.layoverCostPerDay\n    | FieldsEnum.layoverFreeHours\n    | FieldsEnum.truckConsumption\n    | FieldsEnum.reeferConsumption\n    | FieldsEnum.urgentOverPrice\n    | FieldsEnum.costPerGreenShipment\n    | FieldsEnum.rateMatrixSpread\n    | FieldsEnum.minimalCostForTruck\n    | FieldsEnum.minimalCostForTrailer\n    | FieldsEnum.overPriceForEveryAdditionalStop\n    | FieldsEnum.timeSlotAppointmentCost\n    | FieldsEnum.hvoPricePercent;\n\nconst PricingSettingsForm: React.FC<PropsT> = (props) => {\n    const { systemSettings, title, onUpdate, isLoading } = props;\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues(systemSettings);\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [systemSettings]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const apiSystemSettings = prepareApiSystemSettings(values);\n            onUpdate(apiSystemSettings);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormCallbacks) {\n            remoteFormActionsContext.setRemoteFormCallbacks({\n                submit: formik.submitForm,\n                reset: formik.resetForm,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.submitForm, formik.resetForm]);\n\n    const hasFormAnyErros = useWatchFormAnyErrors(formik.errors);\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormState) {\n            remoteFormActionsContext.setRemoteFormState({\n                hasChanges: hasAnyFieldValueChanges,\n                hasErrors: hasFormAnyErros,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasFormAnyErros, hasAnyFieldValueChanges]);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormRequest) {\n            remoteFormActionsContext.setRemoteFormRequest({\n                isLoading,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isLoading]);\n\n    const serviceFeeTypeOptions: ServiceFeeTypeOptionT[] = [\n        {\n            label: t('price-settings.pricing-form.tranziit-service-fee-type.percentage'),\n            value: ServiceFeeTypeEnum.percent,\n        },\n        {\n            label: t('price-settings.pricing-form.tranziit-service-fee-type.fixed'),\n            value: ServiceFeeTypeEnum.fixed,\n        },\n    ];\n\n    const priceTypeOptions: PricingTypeOptionT[] = [\n        {\n            label: t('price-settings.pricing-form.pricing-type.rate-matrix'),\n            value: PricingTypeEnum.rateMatrix,\n        },\n        {\n            label: t('price-settings.pricing-form.pricing-type.ml-based'),\n            value: PricingTypeEnum.mlBased,\n        },\n        {\n            label: t('price-settings.pricing-form.pricing-type.combined'),\n            value: PricingTypeEnum.combined,\n        },\n    ];\n\n    const WidgetChangesDetector = withWidgetChangesDetector(formik.values, initialValues);\n\n    const tranziitServiceFeeType = formik.values[FieldsEnum.tranziitServiceFeeFixedMode] as ServiceFeeTypeEnum;\n\n    const isDisabledPeriodicRulesForMonths = formik.values[FieldsEnum.pricingStrategy] !== PricingTypeEnum.rateMatrix;\n\n    const renderNumberField = (name: NumberFieldsT): React.ReactNode => {\n        return (\n            <FormikField\n                className={cx('field')}\n                name={name}\n                error={formik.errors[name]}\n                meta={formik.getFieldMeta(name)}\n                label={t(FIELD_LABEL_T_MAP[name])}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n                tooltipNode={\n                    <TooltipContent theme={TooltipContentThemeEnum.black} width={150}>\n                        {t(FIELD_DESCRIPTION_T_MAP[name])}\n                    </TooltipContent>\n                }\n            >\n                {(props) => (\n                    <NumberInput\n                        name={name}\n                        unitType={UNIT_TYPE_MAP[name]}\n                        mask={getMaskByType(UNIT_TYPE_MAP[name])}\n                        step={STEP_MAP[name]}\n                        value={formik.values[name]}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                        hasChanges={props.hasChanges}\n                    />\n                )}\n            </FormikField>\n        );\n    };\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <Widget className={cx('widget')} title={title} rightNode={<WidgetChangesDetector fields={ALL_FIELDS} />}>\n                <div className={cx('widget__inner')}>\n                    <FieldGroup className={cx('field-group')}>\n                        <FormikField\n                            className={cx('field')}\n                            label={t(FIELD_LABEL_T_MAP[FieldsEnum.pricingStrategy])}\n                            name={FieldsEnum.pricingStrategy}\n                            error={formik.errors[FieldsEnum.pricingStrategy]}\n                            meta={formik.getFieldMeta(FieldsEnum.pricingStrategy)}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <DropdownInput<PricingTypeOptionT, PricingTypeEnum>\n                                    selectedValue={formik.values[FieldsEnum.pricingStrategy] as PricingTypeEnum}\n                                    options={priceTypeOptions}\n                                    onSelect={(value) => {\n                                        if (value !== PricingTypeEnum.rateMatrix) {\n                                            formik.setFieldValue(FieldsEnum.usePeriodicRulesForMonths, false);\n                                        }\n\n                                        props.onChange(value);\n                                    }}\n                                    renderOption={(option) => (option ? <span>{option.label}</span> : null)}\n                                    getOptionValue={(option) => option.value}\n                                    overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasChanges={props.hasChanges}\n                                />\n                            )}\n                        </FormikField>\n                        <FieldGroup isFullWidth className={cx('field')}>\n                            {tranziitServiceFeeType === ServiceFeeTypeEnum.fixed && (\n                                <FormikField\n                                    name={FieldsEnum.tranziitServiceFeeFixed}\n                                    error={formik.errors[FieldsEnum.tranziitServiceFeeFixed]}\n                                    meta={formik.getFieldMeta(FieldsEnum.tranziitServiceFeeFixed)}\n                                    label={t(FIELD_LABEL_T_MAP[FieldsEnum.tranziitServiceFeeFixedMode])}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                >\n                                    {(props) => (\n                                        <NumberInput\n                                            inputClassName={cx('combined-field--fee-value')}\n                                            name={FieldsEnum.tranziitServiceFeeFixed}\n                                            unitType={UNIT_TYPE_MAP[FieldsEnum.tranziitServiceFeeFixed]}\n                                            mask={getMaskByType(UNIT_TYPE_MAP[FieldsEnum.tranziitServiceFeeFixed])}\n                                            value={formik.values[FieldsEnum.tranziitServiceFeeFixed]}\n                                            onChange={props.onChange}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                            hasError={props.hasError}\n                                            hasWarning={props.hasWarning}\n                                            hasChanges={props.hasChanges}\n                                        />\n                                    )}\n                                </FormikField>\n                            )}\n                            {tranziitServiceFeeType === ServiceFeeTypeEnum.percent && (\n                                <FormikField\n                                    name={FieldsEnum.tranziitServiceFeePercent}\n                                    error={formik.errors[FieldsEnum.tranziitServiceFeePercent]}\n                                    meta={formik.getFieldMeta(FieldsEnum.tranziitServiceFeePercent)}\n                                    label={t(FIELD_LABEL_T_MAP[FieldsEnum.tranziitServiceFeeFixedMode])}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                >\n                                    {(props) => (\n                                        <NumberInput\n                                            inputClassName={cx('combined-field--fee-value')}\n                                            name={FieldsEnum.tranziitServiceFeePercent}\n                                            unitType={UNIT_TYPE_MAP[FieldsEnum.tranziitServiceFeePercent]}\n                                            mask={getMaskByType(UNIT_TYPE_MAP[FieldsEnum.tranziitServiceFeePercent])}\n                                            value={formik.values[FieldsEnum.tranziitServiceFeePercent]}\n                                            onChange={props.onChange}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                            hasError={props.hasError}\n                                            hasWarning={props.hasWarning}\n                                            hasChanges={props.hasChanges}\n                                        />\n                                    )}\n                                </FormikField>\n                            )}\n                            <FormikField\n                                name={FieldsEnum.tranziitServiceFeeFixedMode}\n                                error={formik.errors[FieldsEnum.tranziitServiceFeeFixedMode]}\n                                meta={formik.getFieldMeta(FieldsEnum.tranziitServiceFeeFixedMode)}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <DropdownInput<ServiceFeeTypeOptionT, ServiceFeeTypeEnum>\n                                        triggerClassName={cx('combined-field--fee-type')}\n                                        selectedValue={tranziitServiceFeeType}\n                                        options={serviceFeeTypeOptions}\n                                        onSelect={props.onChange}\n                                        renderOption={(option) => (option ? <span>{option.label}</span> : null)}\n                                        getOptionValue={(option) => option.value}\n                                        overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasChanges={props.hasChanges}\n                                    />\n                                )}\n                            </FormikField>\n                        </FieldGroup>\n                    </FieldGroup>\n                    <FieldGroup className={cx('field-group')}>\n                        {renderNumberField(FieldsEnum.minimalShipmentCost)}\n                        {renderNumberField(FieldsEnum.driverSalaryPerHour)}\n                    </FieldGroup>\n                    <FieldGroup className={cx('field-group')}>\n                        {renderNumberField(FieldsEnum.minimalCostForTruck)}\n                        {renderNumberField(FieldsEnum.minimalCostForTrailer)}\n                    </FieldGroup>\n                    <FieldGroup className={cx('field-group')}>\n                        {renderNumberField(FieldsEnum.layoverCostPerHour)}\n                        {renderNumberField(FieldsEnum.layoverCostPerDay)}\n                    </FieldGroup>\n                    <FieldGroup className={cx('field-group')}>\n                        {renderNumberField(FieldsEnum.layoverFreeHours)}\n                        <FieldGroupEmptyItem className={cx('field')} />\n                    </FieldGroup>\n                    <FieldGroup className={cx('field-group')}>\n                        {renderNumberField(FieldsEnum.truckConsumption)}\n                        {renderNumberField(FieldsEnum.reeferConsumption)}\n                    </FieldGroup>\n                    <FieldGroup className={cx('field-group')}>\n                        {renderNumberField(FieldsEnum.urgentOverPrice)}\n                        {renderNumberField(FieldsEnum.costPerGreenShipment)}\n                    </FieldGroup>\n                    <FieldGroup className={cx('field-group')}>\n                        <FormikField\n                            className={cx('field')}\n                            name={FieldsEnum.rateMatrixSpread}\n                            error={formik.errors[FieldsEnum.rateMatrixSpread]}\n                            meta={formik.getFieldMeta(FieldsEnum.rateMatrixSpread)}\n                            label={t(FIELD_LABEL_T_MAP[FieldsEnum.rateMatrixSpread])}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                            tooltipNode={\n                                <TooltipContent theme={TooltipContentThemeEnum.black} width={300}>\n                                    <div className={cx('rate-matrix-spread-description')}>\n                                        <div className={cx('rate-matrix-spread-description__text')}>\n                                            {t(FIELD_DESCRIPTION_T_MAP[FieldsEnum.rateMatrixSpread])}\n                                        </div>\n                                        <table>\n                                            <thead>\n                                                {times(3).map((columnIndex) => (\n                                                    <th key={columnIndex}>\n                                                        {t(\n                                                            `price-settings.pricing-form.fields.rate-matrix-spread.example-table.head.column-${columnIndex}`,\n                                                        )}\n                                                    </th>\n                                                ))}\n                                            </thead>\n                                            <tbody>\n                                                {times(4).map((rowIndex) => (\n                                                    <tr key={rowIndex}>\n                                                        {times(3).map((columnIndex) => (\n                                                            <th key={columnIndex}>\n                                                                {t(\n                                                                    `price-settings.pricing-form.fields.rate-matrix-spread.example-table.row-${rowIndex}.column-${columnIndex}`,\n                                                                )}\n                                                            </th>\n                                                        ))}\n                                                    </tr>\n                                                ))}\n                                            </tbody>\n                                        </table>\n                                    </div>\n                                </TooltipContent>\n                            }\n                        >\n                            {(props) => (\n                                <NumberInput\n                                    name={FieldsEnum.rateMatrixSpread}\n                                    unitType={UNIT_TYPE_MAP[FieldsEnum.rateMatrixSpread]}\n                                    mask={getMaskByType(UNIT_TYPE_MAP[FieldsEnum.rateMatrixSpread])}\n                                    step={STEP_MAP[FieldsEnum.rateMatrixSpread]}\n                                    value={formik.values[FieldsEnum.rateMatrixSpread]}\n                                    onChange={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                    hasChanges={props.hasChanges}\n                                />\n                            )}\n                        </FormikField>\n                        {renderNumberField(FieldsEnum.timeSlotAppointmentCost)}\n                    </FieldGroup>\n                    <FieldGroup className={cx('field-group')}>\n                        {renderNumberField(FieldsEnum.hvoPricePercent)}\n                        <FieldGroupEmptyItem className={cx('field')} />\n                    </FieldGroup>\n                    <FieldGroup className={cx('checkbox-group')}>\n                        <div className={cx('checkbox')}>\n                            <FormikField\n                                withoutLabel\n                                name={FieldsEnum.usePeriodicRulesForWeekdays}\n                                error={formik.errors[FieldsEnum.usePeriodicRulesForWeekdays]}\n                                meta={formik.getFieldMeta(FieldsEnum.usePeriodicRulesForWeekdays)}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                                isCheckbox\n                            >\n                                {(props) => (\n                                    <Checkbox\n                                        checked={formik.values[FieldsEnum.usePeriodicRulesForWeekdays]}\n                                        label={t(FIELD_LABEL_T_MAP[FieldsEnum.usePeriodicRulesForWeekdays])}\n                                        onChange={props.onChange}\n                                    />\n                                )}\n                            </FormikField>\n                        </div>\n                        <FormikField\n                            withoutLabel\n                            className={cx('checkbox')}\n                            name={FieldsEnum.usePeriodicRulesForMonths}\n                            error={formik.errors[FieldsEnum.usePeriodicRulesForMonths]}\n                            meta={formik.getFieldMeta(FieldsEnum.usePeriodicRulesForMonths)}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                            isCheckbox\n                        >\n                            {(props) => (\n                                <Checkbox\n                                    isDisabled={isDisabledPeriodicRulesForMonths}\n                                    checked={formik.values[FieldsEnum.usePeriodicRulesForMonths]}\n                                    label={t(FIELD_LABEL_T_MAP[FieldsEnum.usePeriodicRulesForMonths])}\n                                    onChange={props.onChange}\n                                />\n                            )}\n                        </FormikField>\n                    </FieldGroup>\n                    <HiddenSubmitButtonForKeyboardEnter />\n                    <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n                </div>\n            </Widget>\n        </form>\n    );\n};\n\nexport default React.memo(PricingSettingsForm) as typeof PricingSettingsForm;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    fetchVehicleScheduleBegin,\n    fetchVehicleScheduleError,\n    fetchVehicleScheduleSuccess,\n    cancelUnavailableVehicleRequestBegin,\n    cancelUnavailableVehicleRequestError,\n    cancelUnavailableVehicleRequestSuccess,\n    setUnavailableVehicleRequestBegin,\n    setUnavailableVehicleRequestError,\n    setUnavailableVehicleRequestSuccess,\n} from './actions';\nimport {\n    CANCEL_UNAVAILABLE_VEHICLE_REQUEST,\n    FETCH_VEHICLE_SCHEDULE_REQUEST,\n    CancelUnavailableVehicleRequestActionT,\n    FetchVehicleScheduleActionT,\n    SetUnavailableVehicleRequestActionT,\n    SET_UNAVAILABLE_VEHICLE_REQUEST,\n} from './types';\nimport { CompanyTypeEnum } from 'common/constants';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport carrierTranziitApi from 'carrier/utils/api/carrier-tranziit/api';\n\nimport { checkIsDefaultCompanyId } from 'common/utils';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAlertTypeEnum, CommonAnyAlert } from 'common/components/toasts/AlertToastsManager/models';\nimport { selectTrucksDetailsByIds } from 'common/store/trucks/selectors';\nimport { selectTrailersDetailsByIds } from '../trailers/selectors';\nimport { selectFetchScheduleRequest } from 'common/store/vehicle-schedules/selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { VEHICLE_SCHEDULE_TTL } from 'common/store/vehicle-schedules/constants';\nimport { getVehicleScheduleHash } from 'common/store/vehicle-schedules/utils/hash';\nimport { trailerDetailsRefreshChannel, trailersRefreshChannel } from 'common/store/trailers/channels';\nimport { truckDetailsRefreshChannel, trucksRefreshChannel } from 'common/store/trucks/channels';\nimport { vehicleSchedulesRefreshChannel } from './channels';\n\nfunction getFetchVehicleScheduleSaga(companyType: CompanyTypeEnum) {\n    return function* fetchVehicleScheduleSaga(action: FetchVehicleScheduleActionT): WrapGeneratorT<void> {\n        const { vehicleId, options, aroundDate } = action;\n        const hash = getVehicleScheduleHash(vehicleId, aroundDate);\n\n        const fetchScheduleRequest: ReReturnT<typeof selectFetchScheduleRequest> = yield select(\n            selectFetchScheduleRequest(vehicleId, aroundDate),\n        );\n        if (!checkNeedRequest(fetchScheduleRequest, options, VEHICLE_SCHEDULE_TTL)) {\n            return;\n        }\n\n        yield put(fetchVehicleScheduleBegin(hash));\n\n        let result: ReturnApiT<\n            | typeof brokerTranziitApi.fetchVehicleSchedule\n            | typeof brokerTranziitApi.fetchVehicleScheduleAroundDate\n            | typeof carrierTranziitApi.fetchVehicleSchedule\n            | typeof carrierTranziitApi.fetchVehicleScheduleAroundDate\n        >;\n        if (aroundDate) {\n            if (companyType === CompanyTypeEnum.broker) {\n                result = yield brokerTranziitApi.fetchVehicleScheduleAroundDate(vehicleId, aroundDate);\n            } else {\n                result = yield carrierTranziitApi.fetchVehicleScheduleAroundDate(vehicleId, aroundDate);\n            }\n        } else if (companyType === CompanyTypeEnum.broker) {\n            result = yield brokerTranziitApi.fetchVehicleSchedule(vehicleId);\n        } else {\n            result = yield carrierTranziitApi.fetchVehicleSchedule(vehicleId);\n        }\n\n        const [error, schedule] = result;\n\n        if (error) {\n            yield put(fetchVehicleScheduleError(hash, error));\n            return;\n        }\n\n        yield put(fetchVehicleScheduleSuccess(hash, schedule || []));\n    };\n}\n\nfunction* setUnavailableVehiclesSaga(action: SetUnavailableVehicleRequestActionT): WrapGeneratorT<void> {\n    const { query, companyId } = action;\n\n    yield put(setUnavailableVehicleRequestBegin());\n\n    let result: ReturnApiT<\n        typeof brokerTranziitApi.addVehicleScheduleEvent | typeof carrierTranziitApi.addVehicleScheduleEvent\n    > | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        result = yield carrierTranziitApi.addVehicleScheduleEvent(query);\n    } else {\n        result = yield brokerTranziitApi.addVehicleScheduleEvent(query);\n    }\n\n    const error = result?.[0];\n\n    if (error) {\n        yield put(setUnavailableVehicleRequestError(error));\n    } else {\n        yield put(setUnavailableVehicleRequestSuccess());\n    }\n\n    if (!error && query.truckId) {\n        const detailsByIds: ReReturnT<typeof selectTrucksDetailsByIds> = yield select(\n            selectTrucksDetailsByIds(companyId),\n        );\n        const updateTruck = detailsByIds[query.truckId];\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.truckSuccessfullySetUnavailable,\n                    data: {\n                        fromDate: query.truckDateFrom || '',\n                        toDate: query.truckDateTo || '',\n                        plateNumber: updateTruck?.plateNumber || '',\n                    },\n                }),\n            ),\n        );\n    }\n\n    if (query.truckId) {\n        vehicleSchedulesRefreshChannel.emit({ vehicleId: query.truckId });\n    }\n\n    if (!error && query.trailerId) {\n        const detailsByIds: ReReturnT<typeof selectTrailersDetailsByIds> = yield select(\n            selectTrailersDetailsByIds(companyId),\n        );\n        const updateTrailer = detailsByIds[query.trailerId];\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trailerSuccessfullySetUnavailable,\n                    data: {\n                        fromDate: query.trailerDateFrom || '',\n                        toDate: query.trailerDateTo || '',\n                        plateNumber: updateTrailer?.plateNumber || '',\n                    },\n                }),\n            ),\n        );\n    }\n\n    if (query.trailerId) {\n        vehicleSchedulesRefreshChannel.emit({ vehicleId: query.trailerId });\n    }\n\n    trailersRefreshChannel.emit({});\n    trailerDetailsRefreshChannel.emit({});\n    trucksRefreshChannel.emit({});\n    truckDetailsRefreshChannel.emit({});\n}\n\nfunction* cancelUnavailableVehiclesSaga(action: CancelUnavailableVehicleRequestActionT): WrapGeneratorT<void> {\n    const { query, companyId } = action;\n\n    yield put(cancelUnavailableVehicleRequestBegin());\n\n    let result: ReturnApiT<\n        typeof brokerTranziitApi.cancelVehicleScheduleEvent | typeof carrierTranziitApi.cancelVehicleScheduleEvent\n    > | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        result = yield carrierTranziitApi.cancelVehicleScheduleEvent(query);\n    } else {\n        result = yield brokerTranziitApi.cancelVehicleScheduleEvent(query);\n    }\n\n    const error = result?.[0];\n\n    if (error) {\n        yield put(cancelUnavailableVehicleRequestError(error));\n    } else {\n        yield put(cancelUnavailableVehicleRequestSuccess());\n    }\n\n    if (query.truckId) {\n        vehicleSchedulesRefreshChannel.emit({ vehicleId: query.truckId });\n    }\n\n    if (query.trailerId) {\n        vehicleSchedulesRefreshChannel.emit({ vehicleId: query.trailerId });\n    }\n\n    trailersRefreshChannel.emit({});\n    trailerDetailsRefreshChannel.emit({});\n    trucksRefreshChannel.emit({});\n    truckDetailsRefreshChannel.emit({});\n}\n\nfunction* vehicleSchedulesSaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_VEHICLE_SCHEDULE_REQUEST, getFetchVehicleScheduleSaga(companyType));\n    yield takeEvery(SET_UNAVAILABLE_VEHICLE_REQUEST, setUnavailableVehiclesSaga);\n    yield takeEvery(CANCEL_UNAVAILABLE_VEHICLE_REQUEST, cancelUnavailableVehiclesSaga);\n}\n\nexport default vehicleSchedulesSaga;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './EditTimeWindowsFooterContent.scss';\nimport { BrokerOrderDetailsT } from 'broker-admin/store/broker-order-details/models';\nimport EditTimeWindowsForm from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/EditTimeWindowsForm/EditTimeWindowsForm';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    brokerOrderId: BrokerOrderIdT | null;\n    brokerOrderDetails: BrokerOrderDetailsT | null;\n    tourId: TourIdT | null;\n    onCancel: () => void;\n};\n\nconst EditTimeWindowsFooterContent: React.FC<PropsT> = React.memo((props) => {\n    const { brokerOrderId, brokerOrderDetails, tourId, onCancel } = props;\n\n    if (!brokerOrderDetails) {\n        return null;\n    }\n\n    return (\n        <div className={cx('content')}>\n            <EditTimeWindowsForm\n                brokerOrderId={brokerOrderId}\n                brokerOrderDetails={brokerOrderDetails}\n                tourId={tourId}\n                onCancel={onCancel}\n            />\n        </div>\n    );\n});\n\nexport default EditTimeWindowsFooterContent;\n","// extracted by mini-css-extract-plugin\nexport default {\"calendar\":\"TwinDatePicker__calendar___I1fDT\",\"input\":\"TwinDatePicker__input___fCQDU\",\"trigger\":\"TwinDatePicker__trigger___jxzlF\",\"overlay\":\"TwinDatePicker__overlay___VUBnu\",\"fadeIn\":\"TwinDatePicker__fadeIn___stBi3\",\"blinking\":\"TwinDatePicker__blinking___q2mE3\"};","import { QueryFiltersT } from '../query-models';\nimport { FieldsEnum, FormValuesT } from './constants';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst getInitialValues = (queryFilters: QueryFiltersT): FormValuesT => {\n    return {\n        [FieldsEnum.carrierIds]: [],\n        [FieldsEnum.carrierNames]: [],\n        [FieldsEnum.originAddress]: '',\n        [FieldsEnum.destinationAddress]: '',\n        [FieldsEnum.originDates]: null,\n        [FieldsEnum.destinationDates]: null,\n        [FieldsEnum.creationDates]: null,\n        [FieldsEnum.tourTypes]: [],\n        [FieldsEnum.plateNumber]: '',\n    };\n};\n\nexport default getInitialValues;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    createTeam,\n    createTeamBegin,\n    createTeamSuccess,\n    createTeamError,\n    updateTeam,\n    updateTeamBegin,\n    updateTeamSuccess,\n    updateTeamError,\n    deleteTeam,\n    deleteTeamBegin,\n    deleteTeamSuccess,\n    deleteTeamError,\n} from './actions';\nimport {\n    selectBrokerTeamEditCreateRequestStatus,\n    selectBrokerTeamEditUpdateRequestStatus,\n    selectBrokerTeamEditDeleteRequestStatus,\n} from './selectors';\nimport { logWarning } from 'common/utils/logger';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { brokerTeamDetailsRefreshChannel } from 'broker-admin/store/broker-team-details/channels';\nimport { brokerTeamsRefreshChannel } from 'broker-admin/store/broker-teams/channels';\n\nfunction* createTeamSaga(action: ReturnType<typeof createTeam>): WrapGeneratorT<void> {\n    const { data } = action.payload;\n\n    const requestStatus: ReturnType<typeof selectBrokerTeamEditCreateRequestStatus> = yield select(\n        selectBrokerTeamEditCreateRequestStatus,\n    );\n    if (requestStatus.loading) {\n        return;\n    }\n\n    yield put(createTeamBegin());\n\n    const [error, result]: ReturnApiT<typeof brokerTranziitApi.createTeam> = yield brokerTranziitApi.createTeam(data);\n\n    if (error) {\n        yield put(createTeamError({ error }));\n    } else if (result) {\n        yield put(createTeamSuccess({ id: result.id }));\n    }\n\n    brokerTeamsRefreshChannel.emit({});\n}\n\nfunction* updateTeamSaga(action: ReturnType<typeof updateTeam>): WrapGeneratorT<void> {\n    const { teamId, data } = action.payload;\n\n    if (!teamId) {\n        logWarning('empty teamId');\n        return;\n    }\n\n    const requestStatus: ReReturnT<typeof selectBrokerTeamEditUpdateRequestStatus> = yield select(\n        selectBrokerTeamEditUpdateRequestStatus(teamId),\n    );\n    if (requestStatus.loading) {\n        return;\n    }\n\n    yield put(updateTeamBegin({ teamId }));\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.updateTeam> = yield brokerTranziitApi.updateTeam(teamId, data);\n\n    if (error) {\n        yield put(updateTeamError({ teamId, error }));\n    } else {\n        yield put(updateTeamSuccess({ teamId }));\n    }\n\n    brokerTeamDetailsRefreshChannel.emit({ teamId });\n    brokerTeamsRefreshChannel.emit({});\n}\n\nfunction* deleteTeamSaga(action: ReturnType<typeof deleteTeam>): WrapGeneratorT<void> {\n    const { teamId } = action.payload;\n\n    if (!teamId) {\n        logWarning('empty teamId');\n        return;\n    }\n\n    const requestStatus: ReReturnT<typeof selectBrokerTeamEditDeleteRequestStatus> = yield select(\n        selectBrokerTeamEditDeleteRequestStatus(teamId),\n    );\n    if (requestStatus.loading) {\n        return;\n    }\n\n    yield put(deleteTeamBegin({ teamId }));\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.deleteTeam> = yield brokerTranziitApi.deleteTeam(teamId);\n\n    if (error) {\n        yield put(deleteTeamError({ teamId, error }));\n    } else {\n        yield put(deleteTeamSuccess({ teamId }));\n    }\n\n    brokerTeamsRefreshChannel.emit({});\n}\n\nfunction* brokerTeamEditSaga(): WrapGeneratorT<void> {\n    yield takeEvery(createTeam.type, createTeamSaga);\n    yield takeEvery(updateTeam.type, updateTeamSaga);\n    yield takeEvery(deleteTeam.type, deleteTeamSaga);\n}\n\nexport default brokerTeamEditSaga;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { FlagThemeEnum } from 'common/components/Timeline/models';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport FilledCircleIcon from 'common/icons/FilledCircleIcon';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\n\nexport type ScheduleFlagsFactoryT = ReturnType<typeof useScheduleFlagsFactory>;\n\nexport const useScheduleFlagsFactory = () => {\n    const { t } = useTranslation();\n\n    return React.useMemo(() => {\n        return {\n            teleport: () => {\n                return {\n                    label: t('common:vehicle-schedule.event-type.asset-teleport'),\n                    theme: FlagThemeEnum.attention,\n                    iconNode: <FilledCircleIcon size={10} fillColor={StyleGuideColorsEnum.white} />,\n                    renderTooltip: () => (\n                        <TooltipContent theme={TooltipContentThemeEnum.white} width={150} isCenter>\n                            {t('common:vehicle-schedule.asset-teleport.placeholder')}\n                        </TooltipContent>\n                    ),\n                };\n            },\n        };\n    }, [t]);\n};\n","export const prepareSearchQuery = (query: string): string => query.replace(/\\s/g, '').toLowerCase().trim();\n","import { ALL_DAY_RANGE, TrailerTypeEnum } from 'common/constants';\nimport { ReserveTimeWindowT } from 'common/store/order-creation/models';\nimport { TimeWindowPickerSettingsT } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/models';\nimport {\n    ApiOrderCreationReservePointTypeT,\n    ApiOrderCreationShipperInfoT,\n    ApiTrailerTypeT,\n    CountryCodeT,\n} from 'common/utils/api/models';\nimport { FormikTouched } from 'formik';\n\nexport enum FieldsEnum {\n    shipper = 'shipper',\n\n    trailerType = 'trailerType',\n    trailerDictId = 'trailerDictId',\n\n    laneId = 'laneId',\n\n    route = 'route',\n\n    excludedCountries = 'excludedCountries',\n}\n\nexport enum RoutePointFieldsEnum {\n    fakeId = 'fakeId',\n    type = 'type',\n    location = 'location',\n    timeWindow = 'timeWindow',\n    isBrokerTimeWindow = 'isBrokerTimeWindow',\n}\n\nexport const SHIPMENT_DETAIL_FORM_NAME = 'new-order-form/v1.7';\n\nexport type FormTouchedT = OverwriteT<\n    FormikTouched<FormValuesT>,\n    {\n        route?: Array<FormikTouched<RoutePointFormValuesT>>;\n    }\n>;\n\nexport type RoutePointFormValuesT = {\n    fakeId: string;\n    type: ApiOrderCreationReservePointTypeT;\n    location: LocationT | null;\n    timeWindow: ReserveTimeWindowT | null;\n    isBrokerTimeWindow: boolean;\n};\n\nexport type FormValuesT = {\n    [FieldsEnum.shipper]: ApiOrderCreationShipperInfoT | null;\n\n    [FieldsEnum.trailerType]: ApiTrailerTypeT | null;\n    [FieldsEnum.trailerDictId]: TrailerDictIdT | null;\n\n    [FieldsEnum.laneId]: ShipperContractLaneIdT | null;\n\n    [FieldsEnum.excludedCountries]: Array<CountryCodeT>;\n\n    route: Array<RoutePointFormValuesT>;\n};\n\nexport type RoutePointErrorsT = Partial<{\n    fakeId: FormErrorMessageT;\n    id: FormErrorMessageT;\n    type: FormErrorMessageT;\n    location: FormErrorMessageT;\n    timeWindow: FormErrorMessageT;\n    isBrokerTimeWindow: FormErrorMessageT;\n}>;\n\nexport type FormErrorsT = Partial<{\n    [FieldsEnum.shipper]: FormErrorMessageT;\n    [FieldsEnum.trailerType]: FormErrorMessageT;\n    [FieldsEnum.trailerDictId]: FormErrorMessageT;\n    [FieldsEnum.laneId]: FormErrorMessageT;\n    [FieldsEnum.excludedCountries]: FormErrorMessageT;\n    [FieldsEnum.route]: Array<RoutePointErrorsT>;\n}>;\n\nexport enum RangeIdSetEnum {\n    urgentPickUp = 'urgent-pick-up',\n    regularPickUp = 'regular-pick-up',\n    teamDriveDropOff = 'team-drive-drop-off',\n    regularDropOff = 'regular-drop-off',\n    layoverDropOff = 'layover-drop-off',\n    broker = 'broker',\n}\n\nexport const DEFAULT_TRAILER_TYPE = TrailerTypeEnum.box;\n\nexport const DEFAULT_BOX_TRAILER_ID = '5';\nexport const DEFAULT_TILT_TRAILER_ID = '1';\n\nexport const DEFAULT_TIME_WINDOW_PICKER_SETTINGS: TimeWindowPickerSettingsT = {\n    availableValues: ALL_DAY_RANGE,\n    brokerAvailableValues: ALL_DAY_RANGE,\n    brokerTimeWindowRanges: [],\n    timeWindowRanges: [],\n};\n","import isNumber from 'lodash/isNumber';\n\nexport type ParamsT = {\n    availableValues: number[];\n    minValuesRangeWidth: number | undefined;\n    maxValuesRangeWidth: number | undefined;\n};\n\nexport const checkValuesIsAllowed = (values: number[] | null, params: ParamsT): boolean => {\n    if (!values) {\n        return true;\n    }\n\n    return (\n        isNumber(values[0]) &&\n        isNumber(values[1]) &&\n        (isNumber(params.minValuesRangeWidth) ? values[1] - values[0] >= params.minValuesRangeWidth : true) &&\n        (isNumber(params.maxValuesRangeWidth) ? values[1] - values[0] <= params.maxValuesRangeWidth : true) &&\n        params.availableValues[0] <= values[0] &&\n        values[0] <= params.availableValues[1] &&\n        params.availableValues[0] <= values[1] &&\n        values[1] <= params.availableValues[1] &&\n        values[0] <= values[1]\n    );\n};\n\nexport const getSuggestAllowedValues = (values: number[] | null, params: ParamsT): number[] | null => {\n    if (!values) {\n        return null;\n    }\n\n    if (checkValuesIsAllowed(values, params)) {\n        return values;\n    }\n\n    const startValue = params.availableValues[0];\n    const newValues = [startValue, startValue + (params.minValuesRangeWidth || 0)];\n\n    const leftLimitedValue = Math.max(newValues[0], params.availableValues[0]);\n    const rightLimitedValue = Math.min(newValues[1], params.availableValues[1]);\n\n    return [leftLimitedValue, rightLimitedValue];\n};\n","import React, { useCallback } from 'react';\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport { useTranslation } from 'react-i18next';\nimport CaseIcon, { CaseIconProps } from 'common/icons/CaseIcon';\nimport classNames from 'classnames/bind';\nimport styles from './PartnersSuggest.scss';\nimport {\n    AsyncRequestFactoryResultT,\n    AsyncRequestFactoryT,\n    useAsyncOptionsRequest,\n} from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-options-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { ApiPartnerT } from 'common/utils/api/models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport DropdownSearchMultipleInput from 'design-system/components/dropdowns/DropdownSearchMultipleInput/DropdownSearchMultipleInput';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\n\nconst cx = classNames.bind(styles);\n\ntype ValueT = ApiPartnerT['id'] | null;\n\nexport type OptionT = {\n    id: ApiPartnerT['id'];\n    name: ApiPartnerT['name'];\n    number: ApiPartnerT['number'];\n    countryCode: NonNullable<ApiPartnerT['legalAddress']>['country'] | null;\n};\n\nexport type PropsT = {\n    className?: string;\n    initialOptions: Array<OptionT>;\n    initialRequestStatus: RequestStatusT;\n    onSelect: (values: Array<ValueT>, options: Array<OptionT>) => void;\n    values: Array<ValueT>;\n    overlayPosition: DropdownOverlayPositionEnum;\n    hasClearControl?: InputPropsT['hasClearControl'];\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    placeholder: InputPropsT['placeholder'];\n    onBlur: InputPropsT['onBlur'];\n    onFocus: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasChanges?: boolean;\n};\n\nconst PartnersSuggest: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        initialOptions,\n        values,\n        onSelect,\n        hasWarning,\n        hasError,\n        hasClearControl,\n        overlayPosition,\n        isDisabled,\n        placeholder,\n        onBlur,\n        onFocus,\n        hasChanges,\n        initialRequestStatus,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const requestFactory: AsyncRequestFactoryT<OptionT> = useCallback((query) => {\n        return brokerTranziitApi.findPartnersByName(query).then((response): AsyncRequestFactoryResultT<OptionT> => {\n            const [error, result] = response;\n            if (error) {\n                return [error, null];\n            }\n\n            const items: Array<OptionT> =\n                result?.content?.map((item) => {\n                    return {\n                        id: item.id,\n                        name: item.name,\n                        number: item.number,\n                        countryCode: item.legalAddress?.country,\n                    };\n                }) || [];\n\n            return [null, items];\n        });\n    }, []);\n\n    const asyncOptionsRequest = useAsyncOptionsRequest<OptionT>({\n        initialOptions,\n        requestFactory,\n        settings: {},\n    });\n\n    const handleReset = () => {\n        onSelect([], []);\n    };\n\n    const handleFocus: InputPropsT['onFocus'] = () => {\n        if (onFocus) {\n            onFocus();\n        }\n    };\n\n    const renderOption = (option: OptionT | undefined, placeholder?: string): React.ReactNode => {\n        if (!option) {\n            return placeholder;\n        }\n\n        return (\n            <DropdownControlOptionLabel\n                withoutPaddings\n                className={cx('option')}\n                icon={option.countryCode ? <FlagIcon countryCode={option.countryCode} /> : null}\n                label={option.name || ''}\n                description={option.number || ''}\n            />\n        );\n    };\n\n    const renderTrigger = (options: Array<OptionT> | undefined, placeholder?: string): React.ReactNode => {\n        if (!options?.length) {\n            return placeholder;\n        }\n\n        if (options?.length === 1) {\n            const firstOption = options?.[0] || null;\n\n            return (\n                <DropdownControlOptionLabel\n                    withoutPaddings\n                    icon={firstOption?.countryCode ? <FlagIcon countryCode={firstOption.countryCode} /> : null}\n                    label={firstOption?.name || ''}\n                    description={firstOption?.number || ''}\n                />\n            );\n        }\n\n        return (\n            <DropdownControlOptionLabel\n                withoutPaddings\n                label={t('common:common-components.partners-suggest.selected')}\n                description={\n                    <PillLabel isSymmetrical theme={PillLabelThemeEnum.charcoal}>\n                        {options?.length || 0}\n                    </PillLabel>\n                }\n            />\n        );\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option.id;\n\n    return (\n        <DropdownSearchMultipleInput<OptionT, ValueT>\n            className={className}\n            selectedValues={values}\n            placeholder={placeholder}\n            options={asyncOptionsRequest.options}\n            isDisabled={isDisabled}\n            onSelect={onSelect}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            onChangeQuery={asyncOptionsRequest.onChangeQuery}\n            renderOption={renderOption}\n            renderTriggerContent={renderTrigger}\n            getOptionValue={getOptionValue}\n            hasChanges={hasChanges}\n            renderLeftIcon={(iconMeta) => <CaseIcon {...CaseIconProps.getControlProps(iconMeta)} />}\n            onBlur={onBlur}\n            onFocus={handleFocus}\n            overlayPosition={overlayPosition}\n            isLoading={asyncOptionsRequest.requestStatus.loading || initialRequestStatus.loading}\n            onReset={hasClearControl ? handleReset : undefined}\n        />\n    );\n};\n\nexport default PartnersSuggest;\n","// extracted by mini-css-extract-plugin\nexport default {\"comment\":\"CommentFormatter__comment___dseV6\",\"fadeIn\":\"CommentFormatter__fadeIn___Q4wEw\",\"blinking\":\"CommentFormatter__blinking___YObjZ\"};","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './TruckDetailsForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport TruckModelDropdown from 'common/components/dropdowns/TruckModelDropdown/TruckModelDropdown';\nimport { fetchTrucksDict } from 'common/store/trucks-dict/actions';\nimport { uppercaseFormatter } from 'common/utils/form-formatters';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport Input from 'common/components/Input/Input';\nimport FieldGroup, { FieldGroupEmptyItem } from 'common/components/FieldGroup/FieldGroup';\nimport CountryDropdown from 'common/components/dropdowns/CountryDropdown/CountryDropdown';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport NumberInput from 'common/components/NumberInput/NumberInput';\nimport { AssetTypeEnum, CurrencyEnum, StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport ActiveContractDropdown from 'common/components/dropdowns/ActiveContractDropdown/ActiveContractDropdown';\nimport { ApiTruckDetailsT } from 'common/store/trucks/models';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport GPSTrackingStatusAlert from 'common/components/GPSTrackingStatusAlert/GPSTrackingStatusAlert';\nimport { selectGPSIsChecking, selectGPSStatus } from 'common/store/gps-tracking-status/selectors';\nimport { GPStatusEnum } from 'common/store/gps-tracking-status/constants';\nimport { selectCarrierContractById } from 'common/store/carrier-contracts/selectors';\nimport { fetchCarrierContracts } from 'common/store/carrier-contracts/actions';\nimport { usePlateNumberUniqCheck } from 'common/components/AssetSidebarContent/hooks/usePlateNumberUniqCheck';\nimport ChangeRateOrContractWarning from '../ChangeRateOrContractWarning/ChangeRateOrContractWarning';\nimport useOnceShow from 'common/utils/hooks/useOnceShow';\nimport { selectTrucksDictById } from 'common/store/trucks-dict/selectors';\nimport values from 'lodash/values';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport LinkedTrailerAlert from 'common/layouts/CommonEditableTruckDetailsLayout/LinkedTrailerAlert/LinkedTrailerAlert';\nimport Money from 'common/components/Money/Money';\nimport { TooltipPositionEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { DEPRECATED_EMISSION_CLASS_I18N_MAP } from 'common/components/EmissionClassLabel/EmissionClassLabel';\nimport EmissionIcon from 'common/icons/EmissionIcon';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport { getTruckDictTypeLabel } from 'common/store/trucks-dict/utils';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport InfoIcon from 'common/icons/InfoIcon';\nimport { AlertGroup } from 'common/layouts/AlertGroup/AlertGroup';\nimport LastGPSPositionAlert from 'common/components/LastGPSPositionAlert/LastGPSPositionAlert';\nimport { checkIsApiCarrierTruckDetails } from 'common/store/trucks/type-guards';\nimport TruckActionHistory from 'common/layouts/CommonEditableTruckDetailsLayout/TruckActionHistory/TruckActionHistory';\nimport { CountryCodeT, TruckStatusEnum } from 'common/utils/api/models';\nimport { selectCountriesByCode } from 'common/store/countries-dict/selectors';\nimport isNumber from 'lodash/isNumber';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    partnerId: PartnerIdT;\n    truckDetails: ApiTruckDetailsT | null;\n    onSubmit: (values: FormValuesT) => void;\n    onCancel: () => void;\n    isNewTruck: boolean;\n    isLoading: boolean;\n    setNeedCloseConfirmation?: (needCloseConfirmation: boolean) => void;\n    onOpenUserDetails: (userId: UserIdT, isBrokerUser?: boolean) => void;\n    onOpenTruckDetails: (truckId: TruckIdT) => void;\n    onOpenTrailerDetails: (trailerId: TrailerIdT) => void;\n};\n\nconst ALL_FIELDS = values(FieldsEnum);\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(ALL_FIELDS);\n\nconst INITIAL_VALUES: FormValuesT = {\n    [FieldsEnum.truckModel]: null,\n    [FieldsEnum.cabinColor]: '',\n    [FieldsEnum.countryCode]: null,\n    [FieldsEnum.plateNumber]: '',\n    [FieldsEnum.vin]: '',\n    [FieldsEnum.contract]: null,\n    [FieldsEnum.ratePerKm]: '',\n};\n\nconst TruckDetailsForm: React.FC<PropsT> = (props) => {\n    const {\n        partnerId,\n        onSubmit,\n        truckDetails,\n        isNewTruck,\n        isLoading,\n        onCancel,\n        setNeedCloseConfirmation,\n        onOpenTrailerDetails,\n        onOpenTruckDetails,\n        onOpenUserDetails,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchTrucksDict());\n    }, [dispatch]);\n\n    React.useEffect(() => {\n        return () => {\n            if (setNeedCloseConfirmation) {\n                setNeedCloseConfirmation(false);\n            }\n        };\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values, { isCreation: isNewTruck });\n    }, [t, isNewTruck]);\n\n    React.useEffect(() => {\n        dispatch(fetchCarrierContracts(partnerId));\n    }, [partnerId, dispatch]);\n\n    const countryByCode = useSelector(selectCountriesByCode);\n\n    const contractById = useSelector(selectCarrierContractById(partnerId));\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        let values = {\n            ...INITIAL_VALUES,\n        };\n\n        if (truckDetails) {\n            values = {\n                ...values,\n                [FieldsEnum.truckModel]: truckDetails.dictTruckInfo?.id || null,\n                [FieldsEnum.cabinColor]: truckDetails.cabinColor || '',\n                [FieldsEnum.countryCode]: truckDetails.countryCode || null,\n                [FieldsEnum.plateNumber]: truckDetails.plateNumber || '',\n                [FieldsEnum.vin]: truckDetails.vin || '',\n                [FieldsEnum.contract]: truckDetails.contractId || null,\n                [FieldsEnum.ratePerKm]: String(truckDetails.ratePerKm),\n            };\n        }\n\n        const errors = validateForm(t, values, { isCreation: isNewTruck });\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [truckDetails, isNewTruck]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            onSubmit(values);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n\n    React.useEffect(() => {\n        if (hasAnyFieldValueChanges && setNeedCloseConfirmation) {\n            setNeedCloseConfirmation(hasAnyFieldValueChanges);\n        }\n    }, [setNeedCloseConfirmation, hasAnyFieldValueChanges]);\n\n    const isCheckingGPSTracking = useSelector(selectGPSIsChecking);\n    const gpsStatus = useSelector(selectGPSStatus);\n\n    const isAllowContract = gpsStatus === GPStatusEnum.enabled || !gpsStatus;\n    const contractValue = formik.values[FieldsEnum.contract];\n\n    React.useEffect(() => {\n        if (!isAllowContract && contractValue !== null) {\n            formik.setFieldValue(FieldsEnum.contract, null);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isAllowContract, contractValue]);\n\n    const plateNumber = formik.values[FieldsEnum.plateNumber];\n    const truckPlateNumberUniqCheck = usePlateNumberUniqCheck({\n        plateNumber,\n        companyId: partnerId,\n        assetType: AssetTypeEnum.truck,\n    });\n\n    let plateNumberAsyncError: React.ReactNode = null;\n\n    const duplicateTruckId = truckPlateNumberUniqCheck.duplicateId;\n    if (duplicateTruckId) {\n        plateNumberAsyncError = t('common:form-errors.already-exist');\n    }\n\n    const hasAsyncErrors = !!plateNumberAsyncError;\n\n    const isSubmitLoading = isLoading || isCheckingGPSTracking;\n\n    const selectedContractId = formik.values[FieldsEnum.contract];\n    const contract = selectedContractId ? contractById[selectedContractId] : null;\n\n    const isAllowShowChanges = !isNewTruck;\n\n    const isAvailableChangeRate = formik.values[FieldsEnum.contract] === null;\n\n    const isRateContract = initialValues[FieldsEnum.ratePerKm] !== formik.values[FieldsEnum.ratePerKm];\n    const isContractChanged = initialValues[FieldsEnum.contract] !== formik.values[FieldsEnum.contract];\n    const isRateOrContractChanged = isRateContract || isContractChanged;\n    const isAvailableRateOrContractWarning = !isNewTruck;\n    const rateOrContractWarning = useOnceShow(isRateOrContractChanged);\n\n    const trucksDictById = useSelector(selectTrucksDictById);\n    const selectedTruckModel = formik.values[FieldsEnum.truckModel];\n    const truckModel = trucksDictById[selectedTruckModel as string];\n\n    const isAvailableChangeContract = isAllowContract || isCheckingGPSTracking;\n\n    const contractTooltipNode = (\n        <TooltipContent theme={TooltipContentThemeEnum.black} width={200}>\n            {t('common:trucks-page.add-truck.fields.contract.tooltip')}\n        </TooltipContent>\n    );\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('form')}>\n            <AlertGroup className={cx('alerts')}>\n                {truckDetails?.linkedTrailerId && (\n                    <LinkedTrailerAlert\n                        trailerId={truckDetails?.linkedTrailerId}\n                        plateNumber={truckDetails?.linkedTrailerPlateNumber}\n                        onOpenTrailerDetails={onOpenTrailerDetails}\n                    />\n                )}\n                {duplicateTruckId && (\n                    <Alert\n                        icon={<InfoIcon fillColor={StyleGuideColorsEnum.white} />}\n                        size={AlertSizeEnum.small}\n                        theme={AlertThemeEnum.tomatoRed}\n                        actionText={t('common:inline-alerts.actions.open')}\n                        onClickAction={() => {\n                            onOpenTruckDetails(duplicateTruckId);\n                        }}\n                    >\n                        {t('common:trucks-page.add-truck.alerts.truck-already-exist')}\n                    </Alert>\n                )}\n                {truckDetails?.status !== TruckStatusEnum.archived && (\n                    <>\n                        {isNewTruck ? (\n                            <GPSTrackingStatusAlert\n                                companyId={partnerId}\n                                assetType={AssetTypeEnum.truck}\n                                plateNumber={formik.values[FieldsEnum.plateNumber]}\n                            />\n                        ) : (\n                            <LastGPSPositionAlert\n                                companyId={partnerId}\n                                assetType={AssetTypeEnum.truck}\n                                plateNumber={truckDetails?.plateNumber || ''}\n                                isDedicated={!!truckDetails?.contractId}\n                            />\n                        )}\n                    </>\n                )}\n            </AlertGroup>\n            <div className={cx('fields')}>\n                <FieldGroup>\n                    {isNewTruck ? (\n                        <FormikField\n                            className={cx('field', 'field--plate-number')}\n                            name={FieldsEnum.plateNumber}\n                            error={formik.errors[FieldsEnum.plateNumber]}\n                            meta={formik.getFieldMeta(FieldsEnum.plateNumber)}\n                            asyncError={plateNumberAsyncError}\n                            label={t('common:trucks-page.add-truck.fields.plate-number.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <Input\n                                    name={FieldsEnum.plateNumber}\n                                    value={formik.values[FieldsEnum.plateNumber]}\n                                    placeholder={t('common:trucks-page.add-truck.fields.plate-number.placeholder')}\n                                    formatter={uppercaseFormatter}\n                                    onChange={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                    isLoading={truckPlateNumberUniqCheck.requestStatus.loading}\n                                    hasChanges={isAllowShowChanges && props.hasChanges}\n                                />\n                            )}\n                        </FormikField>\n                    ) : (\n                        <ReadOnlyField\n                            className={cx('field', 'field--plate-number')}\n                            label={t('common:trucks-page.add-truck.fields.plate-number.label')}\n                            value={truckDetails?.plateNumber || ''}\n                        />\n                    )}\n                    <FieldGroupEmptyItem className={cx('field', 'field--placeholder')} />\n                </FieldGroup>\n                <FieldGroup>\n                    {isNewTruck ? (\n                        <FormikField\n                            className={cx('field', 'field--country-code')}\n                            name={FieldsEnum.countryCode}\n                            error={formik.errors[FieldsEnum.countryCode]}\n                            label={t('common:trucks-page.add-truck.fields.country.label')}\n                            meta={formik.getFieldMeta(FieldsEnum.countryCode)}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <CountryDropdown\n                                    value={formik.values[FieldsEnum.countryCode]}\n                                    onChange={props.onChange}\n                                    overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasChanges={isAllowShowChanges && props.hasChanges}\n                                />\n                            )}\n                        </FormikField>\n                    ) : (\n                        <ReadOnlyField\n                            className={cx('field', 'field--country-code')}\n                            icon={<FlagIcon countryCode={truckDetails?.countryCode} />}\n                            label={t('common:trucks-page.add-truck.fields.country.label')}\n                            value={countryByCode?.[truckDetails?.countryCode as CountryCodeT]?.userLangDisplayName}\n                        />\n                    )}\n                    {isNewTruck ? (\n                        <FormikField\n                            className={cx('field', 'field--vin')}\n                            name={FieldsEnum.vin}\n                            error={formik.errors[FieldsEnum.vin]}\n                            meta={formik.getFieldMeta(FieldsEnum.vin)}\n                            label={t('common:trucks-page.add-truck.fields.truck-vin.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <Input\n                                    name={FieldsEnum.vin}\n                                    value={formik.values[FieldsEnum.vin]}\n                                    placeholder={t('common:trucks-page.add-truck.fields.truck-vin.placeholder')}\n                                    onChange={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                    hasChanges={isAllowShowChanges && props.hasChanges}\n                                />\n                            )}\n                        </FormikField>\n                    ) : (\n                        <ReadOnlyField\n                            className={cx('field', 'field--vin')}\n                            label={t('common:trucks-page.add-truck.fields.truck-vin.label')}\n                            value={truckDetails?.vin}\n                        />\n                    )}\n                </FieldGroup>\n                {isNewTruck ? (\n                    <FormikField\n                        name={FieldsEnum.truckModel}\n                        error={formik.errors[FieldsEnum.truckModel]}\n                        meta={formik.getFieldMeta(FieldsEnum.truckModel)}\n                        label={t('common:trucks-page.add-truck.fields.truck-model.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <TruckModelDropdown\n                                placeholder={t('common:trucks-page.add-truck.fields.truck-model.placeholder')}\n                                value={formik.values[FieldsEnum.truckModel]}\n                                onChange={props.onChange}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasChanges={isAllowShowChanges && props.hasChanges}\n                            />\n                        )}\n                    </FormikField>\n                ) : (\n                    <ReadOnlyField\n                        label={t('common:trucks-page.add-truck.fields.truck-model.label')}\n                        value={getTruckDictTypeLabel(truckModel)}\n                    />\n                )}\n                <FieldGroup>\n                    <ReadOnlyField\n                        withInputLayout={isNewTruck}\n                        className={cx('field', 'field--emission-standard')}\n                        icon={<EmissionIcon strokeColor={StyleGuideColorsEnum.gray} />}\n                        label={t('common:trucks-page.add-truck.fields.emission-standard.label')}\n                        placeholder={t('common:trucks-page.add-truck.fields.emission-standard.placeholder')}\n                        value={\n                            truckModel?.emissionClass\n                                ? t(DEPRECATED_EMISSION_CLASS_I18N_MAP[truckModel.emissionClass])\n                                : null\n                        }\n                    />\n                    <FormikField\n                        className={cx('field--cabin-color')}\n                        name={FieldsEnum.cabinColor}\n                        error={formik.errors[FieldsEnum.cabinColor]}\n                        meta={formik.getFieldMeta(FieldsEnum.cabinColor)}\n                        label={t('common:trucks-page.add-truck.fields.cabin-color.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <Input\n                                name={FieldsEnum.cabinColor}\n                                value={formik.values[FieldsEnum.cabinColor]}\n                                placeholder={t('common:trucks-page.add-truck.fields.cabin-color.placeholder')}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                hasChanges={isAllowShowChanges && props.hasChanges}\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    {isAvailableChangeContract ? (\n                        <FormikField\n                            className={cx('field--contract')}\n                            name={FieldsEnum.contract}\n                            error={formik.errors[FieldsEnum.contract]}\n                            meta={formik.getFieldMeta(FieldsEnum.contract)}\n                            label={t('common:trucks-page.add-truck.fields.contract.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                            tooltipPosition={TooltipPositionEnum.centerRight}\n                            tooltipNode={contractTooltipNode}\n                        >\n                            {(props) => (\n                                <ActiveContractDropdown\n                                    hasNoneOption\n                                    value={formik.values[FieldsEnum.contract]}\n                                    isDisabled={false}\n                                    onChange={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    companyId={partnerId}\n                                    hasChanges={isAllowShowChanges && props.hasChanges}\n                                />\n                            )}\n                        </FormikField>\n                    ) : (\n                        <ReadOnlyField\n                            withInputLayout\n                            className={cx('field--contract')}\n                            label={t('common:trucks-page.add-truck.fields.contract.label')}\n                            value={t('common:dedicated.none')}\n                            tooltipPosition={TooltipPositionEnum.centerRight}\n                            tooltipNode={contractTooltipNode}\n                        />\n                    )}\n                    {isAvailableChangeRate ? (\n                        <FormikField\n                            className={cx('field--rate')}\n                            name={FieldsEnum.ratePerKm}\n                            error={formik.errors[FieldsEnum.ratePerKm]}\n                            meta={formik.getFieldMeta(FieldsEnum.ratePerKm)}\n                            label={t('common:trucks-page.add-truck.fields.rate.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <NumberInput\n                                    name={FieldsEnum.ratePerKm}\n                                    unitType={UnitTypeEnum.euroAbbreviation}\n                                    placeholder={t('common:trucks-page.add-truck.fields.rate.placeholder')}\n                                    value={formik.values[FieldsEnum.ratePerKm]}\n                                    onChange={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasError={props.hasError}\n                                    hasChanges={isAllowShowChanges && props.hasChanges}\n                                    step={1}\n                                />\n                            )}\n                        </FormikField>\n                    ) : (\n                        <ReadOnlyField\n                            withInputLayout\n                            className={cx('field--rate')}\n                            label={t('common:trucks-page.add-truck.fields.rate.label')}\n                            value={\n                                isNumber(contract?.truckRateKm) ? (\n                                    <Money amount={contract?.truckRateKm} currency={CurrencyEnum.EUR} />\n                                ) : null\n                            }\n                        />\n                    )}\n                </FieldGroup>\n            </div>\n            <TruckActionHistory\n                onOpenUserDetails={onOpenUserDetails}\n                createdDate={truckDetails?.createdDate}\n                createdByBroker={checkIsApiCarrierTruckDetails(truckDetails) && truckDetails?.addedByBroker}\n                createdByName={truckDetails?.createdBy?.fullName}\n                createdById={truckDetails?.createdBy?.id}\n                modifiedDate={truckDetails?.lastModifiedDate}\n                modifiedByBroker={checkIsApiCarrierTruckDetails(truckDetails) && truckDetails?.lastModifiedByBroker}\n                modifiedByName={truckDetails?.lastModifiedBy?.fullName}\n                modifiedById={truckDetails?.lastModifiedBy?.id}\n            />\n            <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n            <FooterSideBarLayout\n                hasPaddings\n                topNode={\n                    <>\n                        {isAvailableRateOrContractWarning && rateOrContractWarning.isShow ? (\n                            <ChangeRateOrContractWarning\n                                className={cx('footer-warning')}\n                                onClose={rateOrContractWarning.close}\n                            />\n                        ) : null}\n                    </>\n                }\n            >\n                {isNewTruck && (\n                    <Button\n                        theme={ButtonThemeEnum.primary}\n                        isLoading={isSubmitLoading}\n                        isFullWidth\n                        isCenterContent\n                        isDisabled={hasAsyncErrors}\n                        type=\"submit\"\n                    >\n                        {t('common:trucks-page.add-truck.submit')}\n                    </Button>\n                )}\n                {!isNewTruck && (\n                    <div className={cx('actions')}>\n                        <Button\n                            theme={ButtonThemeEnum.secondary}\n                            className={cx('actions__action', 'actions__action--cancel')}\n                            onClick={() => {\n                                formik.resetForm();\n                                onCancel();\n                            }}\n                        >\n                            {t('common:trucks-page.actions.discard-changes')}\n                        </Button>\n                        <Button\n                            theme={ButtonThemeEnum.primary}\n                            isLoading={isSubmitLoading}\n                            isDisabled={hasAsyncErrors}\n                            className={cx('actions__action', 'actions__action--delete')}\n                            type=\"submit\"\n                        >\n                            {t('common:trucks-page.actions.save')}\n                        </Button>\n                    </div>\n                )}\n            </FooterSideBarLayout>\n        </form>\n    );\n};\n\nexport default TruckDetailsForm;\n","import BaseTranziitApi, { TranziitApiResultT } from 'common/utils/api/tranziit/base-tranziit-api';\nimport { OverwritePageRequestT, OverwritePageRequestWithSortT } from 'common/utils/api/models';\nimport { authApi } from 'common/utils/api/auth/factory';\nimport { MS_IN_MIN } from 'common/utils/time';\n\nclass ShipperTranziitApi extends BaseTranziitApi {\n    private static instance: ShipperTranziitApi;\n\n    private constructor() {\n        super(authApi, {\n            basepath: '/api',\n            timeout: MS_IN_MIN,\n        });\n    }\n\n    public static getInstance(): ShipperTranziitApi {\n        if (!ShipperTranziitApi.instance) {\n            ShipperTranziitApi.instance = new ShipperTranziitApi();\n        }\n\n        return ShipperTranziitApi.instance;\n    }\n\n    getRFQSuggestedOffer = async (\n        rfqId: Api2Paths.ApiV2Rfqs$RfqIdOffersSuggested.Get.Parameters.RfqId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2Rfqs$RfqIdOffersSuggested.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2Rfqs$RfqIdOffersSuggested.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/rfqs/${rfqId}/offers/suggested`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchAssetTracksByOrder = async (\n        orderId: Api2Paths.ApiV2ShipperOrders$OrderIdAssetsCoordinates.Get.Parameters.OrderId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2ShipperOrders$OrderIdAssetsCoordinates.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2ShipperOrders$OrderIdAssetsCoordinates.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/shipper/orders/${orderId}/assets-coordinates`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchOrdersPage = async (\n        filters: OverwritePageRequestT<Api2Paths.ApiV2OrderFilter.Post.RequestBody>,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2OrderFilter.Post.Responses.$200>> => {\n        const { page, ...data } = filters;\n\n        const query: OverwritePageRequestT<{}> = {\n            page,\n        };\n\n        return this.doFetch<Api2Paths.ApiV2OrderFilter.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/order/filter`,\n            query,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchShipperInvoicesPage = async (\n        apiFetchOrdersRequest: OverwritePageRequestWithSortT<ApiPaths.ApiV1ShipperStripeInvoices.Get.QueryParameters>,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1ShipperStripeInvoices.Get.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1ShipperStripeInvoices.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/shipper/stripe/invoices`,\n            query: apiFetchOrdersRequest,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchRFQsPage = async (\n        query: OverwritePageRequestWithSortT<Api2Paths.ApiV2Rfqs.Get.QueryParameters>,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2Rfqs.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2Rfqs.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v2/rfqs',\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchRFQDetails = async (\n        id: Api2Paths.ApiV2Rfqs$RfqId.Get.Parameters.RfqId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2Rfqs$RfqId.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2Rfqs$RfqId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/rfqs/${id}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchRFQsStats = async (): Promise<TranziitApiResultT<Api2Paths.ApiV2RfqsCounts.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2RfqsCounts.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v2/rfqs/counts',\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchShipperContractDetails = async (\n        shipperContractId: ApiPaths.ApiV1CompanyShipperContracts$ContractId.Get.Parameters.ContractId,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1CompanyShipperContracts$ContractId.Get.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1CompanyShipperContracts$ContractId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/company/shipper-contracts/${shipperContractId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchShipperContractLaneDetails = async (\n        shipperContractId: Api2Paths.ApiV1CompanyShipperContracts$ContractIdLanes$LaneId.Get.Parameters.ContractId,\n        laneId: Api2Paths.ApiV1CompanyShipperContracts$ContractIdLanes$LaneId.Get.Parameters.LaneId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1CompanyShipperContracts$ContractIdLanes$LaneId.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1CompanyShipperContracts$ContractIdLanes$LaneId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/company/shipper-contracts/${shipperContractId}/lanes/${laneId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchPartnerShipperContracts = async (\n        query: OverwritePageRequestWithSortT<Api2Paths.ApiV1CompanyShipperContracts.Get.QueryParameters>,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1CompanyShipperContracts.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1CompanyShipperContracts.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/company/shipper-contracts`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchShipperContract = async (\n        contractId: ApiPaths.ApiV1CompanyShipperContracts$ContractIdSourceFile.Get.Parameters.ContractId,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1CompanyShipperContracts$ContractIdSourceFile.Get.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1CompanyShipperContracts$ContractIdSourceFile.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/company/shipper-contracts/${contractId}/source-file`,\n            expectedResponseContentType: 'blob',\n        });\n    };\n\n    fetchShipperContractLanes = async (\n        contractId: Api2Paths.ApiV1CompanyShipperContracts$ContractIdLanes.Get.Parameters.ContractId,\n        query: OverwritePageRequestWithSortT<Api2Paths.ApiV1CompanyShipperContracts$ContractIdLanes.Get.QueryParameters>,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1CompanyShipperContracts$ContractIdLanes.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1CompanyShipperContracts$ContractIdLanes.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/company/shipper-contracts/${contractId}/lanes`,\n            expectedResponseContentType: 'json',\n            query,\n        });\n    };\n\n    getOrderDetails = async (\n        orderId: Api2Paths.ApiV2Order$OrderId.Get.Parameters.OrderId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2Order$OrderId.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2Order$OrderId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/order/${orderId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n}\n\nconst shipperTranziitApi = ShipperTranziitApi.getInstance();\n\nexport default shipperTranziitApi;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { TimeWindowThemeEnum } from 'common/components/Timeline/models';\nimport CargoUnitIcon from 'common/icons/CargoUnitIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport FilledWrenchIcon from 'common/icons/FilledWrenchIcon';\nimport TruckIcon from 'common/icons/TruckIcon';\n\nconst TIMELINE_ICON_SIZE = 16;\n\nexport type ScheduleTimeWindowFactoryT = ReturnType<typeof useScheduleTimeWindowFactory>;\n\nexport const useScheduleTimeWindowFactory = () => {\n    const { t } = useTranslation();\n\n    return React.useMemo(() => {\n        return {\n            accentTO: ({ entityNumber }: { entityNumber: string }) => ({\n                theme: TimeWindowThemeEnum.light,\n                icon: (\n                    <CargoUnitIcon\n                        size={TIMELINE_ICON_SIZE}\n                        opacity={0.4}\n                        fillColor={StyleGuideColorsEnum.transparent}\n                        strokeColor={StyleGuideColorsEnum.charcoal}\n                    />\n                ),\n                label: t('common:vehicle-schedule.event-type.to', {\n                    number: entityNumber || '',\n                }),\n            }),\n            serviceMaintenance: ({ isPastEvent, hasWarning }: { isPastEvent: boolean; hasWarning?: boolean }) => {\n                let theme = TimeWindowThemeEnum.lightSlateGray;\n                let iconFillColor = StyleGuideColorsEnum.transparent;\n                let iconStrokeColor = StyleGuideColorsEnum.charcoal;\n\n                if (isPastEvent) {\n                    theme = TimeWindowThemeEnum.charcoal;\n                    iconFillColor = StyleGuideColorsEnum.white;\n                    iconStrokeColor = StyleGuideColorsEnum.gray;\n                }\n\n                if (hasWarning) {\n                    theme = TimeWindowThemeEnum.tomatoRed70;\n                    iconFillColor = StyleGuideColorsEnum.white;\n                    iconStrokeColor = StyleGuideColorsEnum.gray;\n                }\n\n                return {\n                    theme,\n                    icon: (\n                        <FilledWrenchIcon\n                            size={TIMELINE_ICON_SIZE}\n                            fillOpacity={0.7}\n                            fillColor={iconFillColor}\n                            strokeColor={iconStrokeColor}\n                        />\n                    ),\n                    label: t('common:vehicle-schedule.event-type.service-maintenance'),\n                };\n            },\n            deadheadTO: ({\n                isPastEvent,\n                hasWarning,\n                entityNumber,\n            }: {\n                isPastEvent: boolean;\n                entityNumber: string;\n                hasWarning?: boolean;\n            }) => {\n                let theme = TimeWindowThemeEnum.tumbleweed;\n                let iconFillColor = StyleGuideColorsEnum.transparent;\n                let iconStrokeColor = StyleGuideColorsEnum.charcoal;\n\n                if (isPastEvent) {\n                    theme = TimeWindowThemeEnum.charcoal;\n                    iconFillColor = StyleGuideColorsEnum.white;\n                    iconStrokeColor = StyleGuideColorsEnum.gray;\n                }\n\n                if (hasWarning) {\n                    theme = TimeWindowThemeEnum.tomatoRed70;\n                    iconFillColor = StyleGuideColorsEnum.white;\n                    iconStrokeColor = StyleGuideColorsEnum.gray;\n                }\n\n                return {\n                    theme,\n                    icon: (\n                        <TruckIcon\n                            size={TIMELINE_ICON_SIZE}\n                            fillOpacity={0.4}\n                            fillColor={iconFillColor}\n                            strokeColor={iconStrokeColor}\n                        />\n                    ),\n                    label: t('common:vehicle-schedule.event-type.deadhead-to', {\n                        number: entityNumber || '',\n                    }),\n                };\n            },\n            to: ({\n                isPastEvent,\n                entityNumber,\n                hasWarning,\n            }: {\n                isPastEvent: boolean;\n                entityNumber: string;\n                hasWarning?: boolean;\n            }) => {\n                let theme = TimeWindowThemeEnum.pewterBlue;\n                let iconFillColor = StyleGuideColorsEnum.transparent;\n                let iconStrokeColor = StyleGuideColorsEnum.charcoal;\n\n                if (isPastEvent) {\n                    theme = TimeWindowThemeEnum.charcoal;\n                    iconFillColor = StyleGuideColorsEnum.light;\n                    iconStrokeColor = StyleGuideColorsEnum.gray;\n                }\n\n                if (hasWarning) {\n                    theme = TimeWindowThemeEnum.tomatoRed70;\n                    iconFillColor = StyleGuideColorsEnum.light;\n                    iconStrokeColor = StyleGuideColorsEnum.gray;\n                }\n\n                t('common:vehicle-schedule.event-type.warning-to', {\n                    number: entityNumber || '',\n                });\n\n                return {\n                    theme,\n                    icon: (\n                        <CargoUnitIcon\n                            size={TIMELINE_ICON_SIZE}\n                            opacity={0.4}\n                            fillColor={iconFillColor}\n                            strokeColor={iconStrokeColor}\n                        />\n                    ),\n                    label: t('common:vehicle-schedule.event-type.payload-to', {\n                        number: entityNumber || '',\n                    }),\n                };\n            },\n            inProgressTO: ({ entityNumber, hasWarning }: { entityNumber: string; hasWarning?: boolean }) => {\n                let theme = TimeWindowThemeEnum.brandAccent;\n                let iconFillColor = StyleGuideColorsEnum.transparent;\n                let iconStrokeColor = StyleGuideColorsEnum.charcoal;\n                let label = t('common:vehicle-schedule.event-type.in-progress-to', {\n                    number: entityNumber || '',\n                });\n\n                if (hasWarning) {\n                    theme = TimeWindowThemeEnum.tomatoRed70;\n                    iconFillColor = StyleGuideColorsEnum.white;\n                    iconStrokeColor = StyleGuideColorsEnum.gray;\n                    label = t('common:vehicle-schedule.event-type.warning-in-progress-to', {\n                        number: entityNumber || '',\n                    });\n                }\n\n                return {\n                    theme,\n                    icon: (\n                        <CargoUnitIcon\n                            size={TIMELINE_ICON_SIZE}\n                            opacity={0.4}\n                            fillColor={iconFillColor}\n                            strokeColor={iconStrokeColor}\n                        />\n                    ),\n                    label,\n                };\n            },\n        };\n    }, [t]);\n};\n","import * as React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './ExcludedCountry.scss';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport { CountryCodeT } from 'common/utils/api/models';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    countryCode: CountryCodeT;\n    countryLabel?: string;\n};\n\nconst ExcludedCountry: React.FC<PropsT> = React.memo((props) => {\n    const { countryCode, className, countryLabel } = props;\n\n    return (\n        <div className={className}>\n            <Tooltip\n                tooltipNode={\n                    countryLabel ? (\n                        <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                            {countryLabel}\n                        </TooltipContent>\n                    ) : null\n                }\n                position={TooltipPositionEnum.topCenter}\n                theme={TooltipThemeEnum.black}\n            >\n                {(isShow, childrenClassName) => (\n                    <div\n                        className={cs(\n                            cx('flag-wrap', {\n                                'flag-wrap--is-show': isShow,\n                            }),\n                            childrenClassName,\n                        )}\n                    >\n                        <FlagIcon countryCode={countryCode} className={cx('flag')} />\n                    </div>\n                )}\n            </Tooltip>\n        </div>\n    );\n});\n\nexport default ExcludedCountry;\n","import { useMemo } from 'react';\nimport { ApiStopTypeT, StopTypeEnum } from 'common/utils/api/models';\nimport { BrokerTourWaypointT } from 'broker-admin/store/broker-tour-details/models';\n\nconst useBrokerTourPayloadWaypoints = (brokerTourWaypoints: Array<BrokerTourWaypointT> | null | undefined) => {\n    return useMemo(() => {\n        if (!brokerTourWaypoints) {\n            return {\n                firstPayloadWaypoint: null,\n                lastPayloadWaypoint: null,\n            };\n        }\n\n        const originWaypoint = brokerTourWaypoints?.find((waypoint) => {\n            return waypoint?.origin;\n        });\n\n        const destinationWaypoint = brokerTourWaypoints?.find((waypoint) => {\n            return waypoint?.destination;\n        });\n\n        const payloadWaypointStopTypeSet = new Set<ApiStopTypeT>([\n            StopTypeEnum.pickupDeliveryShipment,\n            StopTypeEnum.driveThrough,\n            StopTypeEnum.dropAndHook,\n        ]);\n\n        const payloadWaypoints = brokerTourWaypoints?.filter((dispatchWaypoint) => {\n            return payloadWaypointStopTypeSet.has(dispatchWaypoint.type);\n        });\n\n        const firstPayloadWaypoint = payloadWaypoints[0] || null;\n        const lastPayloadWaypoint = payloadWaypoints[payloadWaypoints.length - 1] || null;\n\n        return {\n            originWaypoint: originWaypoint || firstPayloadWaypoint,\n            destinationWaypoint: destinationWaypoint || lastPayloadWaypoint,\n        };\n    }, [brokerTourWaypoints]);\n};\n\nexport { useBrokerTourPayloadWaypoints };\n","import { TFunction } from 'i18next';\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkMaxValue, checkMinValue, checkNotEmpty } from 'common/utils/form-validators';\nimport values from 'lodash/values';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport isNumber from 'lodash/isNumber';\n\nconst REQUIRED_FIELDS = values<FieldsEnum>(FieldsEnum);\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n        ...checkMinValue(t, [FieldsEnum.firstRadiusOfAssignmentFilter], values, 10),\n        ...checkMaxValue(t, [FieldsEnum.firstRadiusOfAssignmentFilter], values, 500),\n        ...checkMaxValue(t, [FieldsEnum.secondRadiusOfAssignmentFilter], values, 1000),\n        ...checkMaxValue(t, [FieldsEnum.thirdRadiusOfAssignmentFilter], values, 2000),\n        ...checkMinValue(\n            t,\n            [\n                FieldsEnum.timeToHookTrailer,\n                FieldsEnum.timeToDropTrailer,\n                FieldsEnum.timeToPickupTruck,\n                FieldsEnum.timeToDropTruck,\n            ],\n            values,\n            0,\n        ),\n        ...checkMaxValue(\n            t,\n            [\n                FieldsEnum.timeToHookTrailer,\n                FieldsEnum.timeToDropTrailer,\n                FieldsEnum.timeToPickupTruck,\n                FieldsEnum.timeToDropTruck,\n            ],\n            values,\n            240,\n        ),\n\n        ...checkMinValue(t, [FieldsEnum.geoMatrixCoefficient], values, 1),\n        ...checkMaxValue(t, [FieldsEnum.geoMatrixCoefficient], values, 2),\n        ...checkMinValue(t, [FieldsEnum.averageTruckSpeed], values, 20),\n        ...checkMaxValue(t, [FieldsEnum.averageTruckSpeed], values, 120),\n    };\n\n    const firstRadiusOfAssignmentFilter = parseSimpleNumber(values[FieldsEnum.firstRadiusOfAssignmentFilter]);\n    const secondRadiusOfAssignmentFilter = parseSimpleNumber(values[FieldsEnum.secondRadiusOfAssignmentFilter]);\n    const thirdRadiusOfAssignmentFilter = parseSimpleNumber(values[FieldsEnum.thirdRadiusOfAssignmentFilter]);\n\n    if (\n        isNumber(firstRadiusOfAssignmentFilter) &&\n        isNumber(secondRadiusOfAssignmentFilter) &&\n        secondRadiusOfAssignmentFilter <= firstRadiusOfAssignmentFilter\n    ) {\n        errors[FieldsEnum.secondRadiusOfAssignmentFilter] = t(\n            'price-settings.assignment-form.errors.secondary-less-first',\n        );\n    }\n\n    if (\n        isNumber(firstRadiusOfAssignmentFilter) &&\n        isNumber(thirdRadiusOfAssignmentFilter) &&\n        thirdRadiusOfAssignmentFilter <= firstRadiusOfAssignmentFilter\n    ) {\n        errors[FieldsEnum.thirdRadiusOfAssignmentFilter] = t('price-settings.assignment-form.errors.third-less-first');\n    }\n\n    if (\n        isNumber(secondRadiusOfAssignmentFilter) &&\n        isNumber(thirdRadiusOfAssignmentFilter) &&\n        thirdRadiusOfAssignmentFilter <= secondRadiusOfAssignmentFilter\n    ) {\n        errors[FieldsEnum.thirdRadiusOfAssignmentFilter] = t('price-settings.assignment-form.errors.third-less-second');\n    }\n\n    return errors;\n};\n\nexport default validate;\n","import { selectUserSignedUp } from 'common/store/user/selectors';\nimport { call, fork, put, select, take, takeEvery } from 'redux-saga/effects';\nimport {\n    fetchNotificationsError,\n    fetchNotificationsPageBegin,\n    fetchNotificationsPageSuccess,\n    fetchUnreadNotificationsBegin,\n    fetchUnreadNotificationsError,\n    fetchUnreadNotificationsSuccess,\n    markAsReadBegin,\n    markAsReadError,\n    markAsReadSuccess,\n    resetNotificationPages,\n} from 'common/store/notifications/actions';\nimport {\n    FETCH_NOTIFICATIONS_PAGE_REQUEST,\n    FETCH_UNREAD_NOTIFICATIONS_REQUEST,\n    FetchNotificationsPageActionT,\n    MARK_AS_READ_REQUEST,\n    MarkAsReadActionT,\n    SEND_TEST_NOTIFICATION,\n    SendTestNotificationActionT,\n} from 'common/store/notifications/types';\nimport { FETCH_USER_REQUEST_SUCCESS } from 'common/store/user/types';\nimport { ApiNotificationT } from 'common/utils/api/models';\nimport { convertNotification } from './converter';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport {\n    selectLastUnReadNotification,\n    selectNotificationsPages,\n    selectNotificationsQuery,\n    selectUnReadNotificationsRequest,\n} from 'common/store/notifications/selectors';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport { checkIsSameQuery, convertPageEntities } from 'common/utils/pagination/utils';\nimport watchDocumentVisibilityChangeOrIntervalSaga from 'common/utils/watch-document-visibility-change-or-interval-saga';\nimport watchDocumentVisibleSaga from 'common/utils/watch-document-visible-saga';\nimport { UNREAD_NOTIFICATIONS_REFRESH_INTERVAL_MS } from 'common/store/notifications/constants';\nimport { newNotificationsChannel } from 'common/store/notifications/channels';\nimport { filterNewNotifications } from 'common/store/notifications/utils/filter-new-notifications';\nimport { logError, logWarning } from 'common/utils/logger';\nimport { CompanyTypeEnum } from 'common/constants';\nimport {\n    SEEN_NOTIFICATIONS_BROADCAST_CHANNEL_NAME,\n    SeenNotificationsBroadcastEventT,\n} from 'common/utils/broadcast-channels/seen-notifications';\nimport { isNonNil } from 'common/utils';\n\n// Prevent notifications already shown in another tab from being shown again when this tab becomes active.\nconst otherTabSeenNotificationIds = new Set<NotificationIdT>();\nlet lastTabFocusTimestamp: string | undefined;\n\nfunction rememberTabFocusTimestamp(): void {\n    lastTabFocusTimestamp = new Date().toISOString();\n}\n\nconst createSeenNotificationsBroadcastChannel = (): BroadcastChannel | null => {\n    if (typeof BroadcastChannel === 'undefined') {\n        logWarning('BroadcastChannel is not supported');\n        return null;\n    }\n\n    return new BroadcastChannel(SEEN_NOTIFICATIONS_BROADCAST_CHANNEL_NAME);\n};\n\nconst seenNotificationsBroadcastChannel = createSeenNotificationsBroadcastChannel();\n\nif (seenNotificationsBroadcastChannel) {\n    seenNotificationsBroadcastChannel.onmessage = (messageEvent: MessageEvent<SeenNotificationsBroadcastEventT>) => {\n        messageEvent.data.notificationIds.forEach((notificationId) => {\n            otherTabSeenNotificationIds.add(notificationId);\n        });\n    };\n}\n\nfunction* sendTestNotificationSaga(action: SendTestNotificationActionT): WrapGeneratorT<void> {\n    try {\n        yield commonTranziitApi.sendTestNotification(JSON.parse(action.text));\n    } catch (error) {\n        logError('sent test notification error: ', error);\n    }\n}\nfunction createMarkAsReadNotificationsSaga(companyType: CompanyTypeEnum) {\n    return function* markAsReadNotificationsSaga(action: MarkAsReadActionT): WrapGeneratorT<void> {\n        const { ids, isAll } = action;\n\n        yield put(markAsReadBegin());\n        const [error]: ReturnApiT<typeof commonTranziitApi.markAsRead> = yield commonTranziitApi.markAsRead(ids, isAll);\n        if (error) {\n            yield put(markAsReadError(error));\n            return;\n        }\n\n        yield put(markAsReadSuccess(ids));\n\n        // eslint-disable-next-line no-use-before-define\n        yield call(createFetchUnReadNotificationsSaga(companyType));\n    };\n}\n\nfunction createFetchNotificationsPageSaga(companyType: CompanyTypeEnum) {\n    return function* fetchNotificationsPageSaga(action: FetchNotificationsPageActionT): WrapGeneratorT<void> {\n        const {\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            query: rawQuery,\n            pageNumber,\n            options,\n        } = action;\n\n        const query: typeof rawQuery = {};\n\n        const prevQuery: ReturnType<typeof selectNotificationsQuery> = yield select(selectNotificationsQuery);\n        const pages: ReturnType<typeof selectNotificationsPages> = yield select(selectNotificationsPages);\n        const isSameQuery = checkIsSameQuery(query, prevQuery);\n        const isNeedRequest = checkNeedRequest(pages[pageNumber]?.requestStatus, options);\n        if (isSameQuery && !isNeedRequest) {\n            return;\n        }\n        if (!isSameQuery) {\n            yield put(resetNotificationPages());\n        }\n\n        yield put(fetchNotificationsPageBegin(query, pageNumber));\n        const [error, response]: ReturnApiT<typeof commonTranziitApi.fetchNotificationsPage> =\n            yield commonTranziitApi.fetchNotificationsPage({\n                ...query,\n                page: pageNumber,\n            });\n\n        if (error) {\n            yield put(fetchNotificationsError(query, pageNumber, error));\n            return;\n        }\n\n        const newResponse = convertPageEntities(response, (apiNotification) => {\n            return convertNotification(\n                apiNotification as ApiNotificationT, // WTF?!? bad TS types due to the use of the discriminator for field \"data\" from openapi\n                {\n                    companyType,\n                },\n            );\n        });\n\n        yield put(fetchNotificationsPageSuccess(query, pageNumber, newResponse));\n    };\n}\n\nfunction* checkIsReadySaga(): WrapGeneratorT<void> {\n    const userSignedUp: ReturnType<typeof selectUserSignedUp> = yield select(selectUserSignedUp);\n    if (!userSignedUp) {\n        yield take([FETCH_USER_REQUEST_SUCCESS]);\n    }\n}\n\nfunction createFetchUnReadNotificationsSaga(companyType: CompanyTypeEnum) {\n    return function* fetchUnReadNotificationsSaga(): WrapGeneratorT<void> {\n        yield call(checkIsReadySaga);\n\n        const prevLastUnReadNotification: ReturnType<typeof selectLastUnReadNotification> = yield select(\n            selectLastUnReadNotification,\n        );\n        const prevUnReadNotificationsRequest: ReturnType<typeof selectUnReadNotificationsRequest> = yield select(\n            selectUnReadNotificationsRequest,\n        );\n\n        yield put(fetchUnreadNotificationsBegin());\n\n        const [errorApiUnReadNotifications, apiUnReadNotifications]: ReturnApiT<\n            typeof commonTranziitApi.fetchUnReadNotifications\n        > = yield commonTranziitApi.fetchUnReadNotifications();\n\n        if (errorApiUnReadNotifications) {\n            yield put(fetchUnreadNotificationsError(errorApiUnReadNotifications));\n            return;\n        }\n\n        const unreadNotifications = (apiUnReadNotifications || []).map((apiUnReadNotification) => {\n            return convertNotification(\n                apiUnReadNotification as ApiNotificationT, // WTF?!? bad TS types due to the use of the discriminator for field \"data\" from openapi\n                {\n                    companyType,\n                },\n            );\n        });\n\n        yield put(fetchUnreadNotificationsSuccess(unreadNotifications));\n\n        const newNotifications = filterNewNotifications({\n            notifications: unreadNotifications,\n            prevLastUnReadNotification,\n            prevUnReadNotificationsRequest,\n            minTimestamp: lastTabFocusTimestamp,\n        });\n        const notSeenNewNotifications = newNotifications.filter((notification) => {\n            return !notification.id || !otherTabSeenNotificationIds.has(notification.id);\n        });\n\n        if (notSeenNewNotifications.length) {\n            const notSeenNewNotificationIds = notSeenNewNotifications\n                .map((notification) => notification.id)\n                .filter(isNonNil);\n\n            if (notSeenNewNotificationIds.length) {\n                seenNotificationsBroadcastChannel?.postMessage({ notificationIds: notSeenNewNotificationIds });\n            }\n\n            newNotificationsChannel.emit({\n                newNotifications: notSeenNewNotifications,\n            });\n        }\n    };\n}\n\nfunction* notificationsSaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery(SEND_TEST_NOTIFICATION, sendTestNotificationSaga);\n    yield takeEvery(MARK_AS_READ_REQUEST, createMarkAsReadNotificationsSaga(companyType));\n    yield takeEvery(FETCH_NOTIFICATIONS_PAGE_REQUEST, createFetchNotificationsPageSaga(companyType));\n    yield takeEvery([FETCH_UNREAD_NOTIFICATIONS_REQUEST], createFetchUnReadNotificationsSaga(companyType));\n    yield fork(watchDocumentVisibleSaga, rememberTabFocusTimestamp);\n    yield call(\n        watchDocumentVisibilityChangeOrIntervalSaga,\n        createFetchUnReadNotificationsSaga(companyType),\n        UNREAD_NOTIFICATIONS_REFRESH_INTERVAL_MS,\n    );\n}\n\nexport default notificationsSaga;\n","// extracted by mini-css-extract-plugin\nexport default {\"route-type-switcher\":\"BrokerOrderRouteMap__route-type-switcher___bS1eq\",\"route-point-pin\":\"BrokerOrderRouteMap__route-point-pin___Q5Kyc\",\"fadeIn\":\"BrokerOrderRouteMap__fadeIn___AzXR2\",\"blinking\":\"BrokerOrderRouteMap__blinking___PPv2T\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"ReadOnlyField__wrap___YPyyO\",\"wrap--withoutErrorMessage\":\"ReadOnlyField__wrap--withoutErrorMessage___zQEHz\",\"text\":\"ReadOnlyField__text___zOULv\",\"field-label\":\"ReadOnlyField__field-label___urTAK\",\"tooltip\":\"ReadOnlyField__tooltip___Obq8s\",\"tooltip__icon\":\"ReadOnlyField__tooltip__icon____05bo\",\"placeholder\":\"ReadOnlyField__placeholder___Ks9ES\",\"fadeIn\":\"ReadOnlyField__fadeIn___RH8Sc\",\"blinking\":\"ReadOnlyField__blinking___TSljC\"};","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst EuroSymbolIcon: React.FC<PropsT> = (props) => {\n    const { strokeColor, ...restProps } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" {...restProps}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M11.8 14.5c-1.467 0-2.754-.711-3.582-1.8H11.8l.9-1.8H7.39a4.921 4.921 0 01-.09-.9c0-.306.036-.612.09-.9h4.41l.9-1.8H8.218c.828-1.089 2.115-1.8 3.582-1.8a4.52 4.52 0 013.186 1.314l1.269-1.269A6.278 6.278 0 0011.8 3.7c-2.511 0-4.671 1.476-5.688 3.6H3.7l-.9 1.8h2.772a5.97 5.97 0 00-.072.9c0 .306.027.603.072.9H3.7l-.9 1.8h3.312a6.299 6.299 0 0010.143 1.755l-1.269-1.269A4.52 4.52 0 0111.8 14.5z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nEuroSymbolIcon.displayName = 'EuroSymbolIcon';\n\nconst storyProps: PropsT = {\n    strokeColor: StyleGuideColorsEnum.gray,\n};\n\nexport { storyProps };\nexport default EuroSymbolIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"details\":\"CollapsedOfferDetails__details___ZrJ3L\",\"details--isClickable\":\"CollapsedOfferDetails__details--isClickable___wCrmr\",\"icon\":\"CollapsedOfferDetails__icon___vdxNl\",\"price\":\"CollapsedOfferDetails__price___c3H4D\",\"price__total\":\"CollapsedOfferDetails__price__total___LWiCJ\",\"price__total--changed\":\"CollapsedOfferDetails__price__total--changed___n9rpI\",\"price__description\":\"CollapsedOfferDetails__price__description___KNZ_D\",\"price-details-trigger\":\"CollapsedOfferDetails__price-details-trigger___wnrfD\",\"edit\":\"CollapsedOfferDetails__edit___eEYMW\",\"other-details\":\"CollapsedOfferDetails__other-details___mmD8F\",\"other-details__row--first\":\"CollapsedOfferDetails__other-details__row--first___dQgJK\",\"attribute\":\"CollapsedOfferDetails__attribute___lS2yP\",\"attributes\":\"CollapsedOfferDetails__attributes___HRIMi\",\"emission__icon\":\"CollapsedOfferDetails__emission__icon___oEbFc\",\"emission__value\":\"CollapsedOfferDetails__emission__value___zI1f7\",\"emission-labels\":\"CollapsedOfferDetails__emission-labels___KKsiq\",\"fadeIn\":\"CollapsedOfferDetails__fadeIn___roY58\",\"blinking\":\"CollapsedOfferDetails__blinking___yxsd2\"};","import * as React from 'react';\n\nimport { Route, Switch } from 'react-router-dom';\n\nimport { BrokerOrdersRoutesEnum } from 'broker-admin/constants';\n\nimport BrokerOrderDetailsPage from './BrokerOrderDetailsPage/BrokerOrderDetailsPage';\nimport BrokerOrderListPage from './BrokerOrderListPage/BrokerOrderListPage';\nimport BrokerOrderAssignmentPage from './BrokerOrderAssignmentPage/BrokerOrderAssignmentPage';\nimport BrokerOrderRouteEditPage from './BrokerOrderRouteEditPage/BrokerOrderRouteEditPage';\n\ntype PropsT = {};\n\nconst BrokerOrdersPage: React.FC<PropsT> = React.memo(() => {\n    return (\n        <Switch>\n            <Route path={BrokerOrdersRoutesEnum.brokerOrderAssignment}>\n                <BrokerOrderAssignmentPage />\n            </Route>\n            <Route path={BrokerOrdersRoutesEnum.brokerOrderRouteEdit}>\n                <BrokerOrderRouteEditPage />\n            </Route>\n            <Route path={BrokerOrdersRoutesEnum.brokerOrderDetails}>\n                <BrokerOrderDetailsPage />\n            </Route>\n            <Route path=\"*\">\n                <BrokerOrderListPage />\n            </Route>\n        </Switch>\n    );\n});\n\nexport default BrokerOrdersPage;\n","export class RemoteFile<T> {\n    name: string;\n\n    downloadData: T;\n\n    constructor({ name, downloadData }: { name: string; downloadData: T }) {\n        this.name = name;\n        this.downloadData = downloadData;\n    }\n}\n","import * as React from 'react';\n\ntype PropsT = {\n    className?: string;\n};\n\nconst BigSearchIcon: React.FC<PropsT> = (props) => {\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"200\" height=\"130\" viewBox=\"0 0 200 130\" {...props}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M15 20h170v90H15z\" />\n                <path\n                    fill=\"#8ABA2E\"\n                    fillOpacity=\"0.05\"\n                    d=\"M176 20a7 7 0 110 14h-40a7 7 0 110 14h22a7 7 0 110 14h-10.174c-4.874 0-8.826 3.134-8.826 7 0 2.577 2 4.91 6 7a7 7 0 110 14H62a7 7 0 110-14H23a7 7 0 110-14h40a7 7 0 100-14H38a7 7 0 110-14h40a7 7 0 110-14h98zm0 28a7 7 0 110 14 7 7 0 010-14z\"\n                />\n                <g strokeWidth=\"2.5\" transform=\"translate(56 21)\">\n                    <circle cx=\"33.5\" cy=\"33.5\" r=\"33.5\" fill=\"#8ABA2E\" fillOpacity=\"0.3\" stroke=\"#8ABA2E\" />\n                    <path\n                        fill=\"#FFF\"\n                        stroke=\"#8ABA2E\"\n                        strokeLinecap=\"round\"\n                        d=\"M28.132 59.494c1.759.325 3.548.493 5.368.506C48.136 60 60 48.136 60 33.5S48.136 7 33.5 7c-3.76 0-7.336.783-10.576 2.195A26.605 26.605 0 009.896 21.442 26.391 26.391 0 007 33.5a26.403 26.403 0 006.684 17.596\"\n                    />\n                    <path\n                        stroke=\"#8ABA2E\"\n                        strokeLinecap=\"round\"\n                        d=\"M16.797 54.075a26.491 26.491 0 007.204 4.172M34 15c-1.723 0-3.392.23-4.979.659C20.943 17.847 15 25.229 15 34\"\n                    />\n                    <path stroke=\"#8ABA2E\" d=\"M61 60l6 6\" />\n                    <path\n                        fill=\"#8ABA2E\"\n                        fillOpacity=\"0.3\"\n                        stroke=\"#8ABA2E\"\n                        d=\"M69.457 63.61c1.24 0 2.481.474 3.427 1.42h0L83.97 76.116a4.832 4.832 0 011.42 3.427c0 1.24-.474 2.48-1.42 3.427a4.835 4.835 0 01-3.427 1.42 4.833 4.833 0 01-3.427-1.42h0L66.03 71.884a4.832 4.832 0 01-1.42-3.427c0-1.24.474-2.48 1.42-3.427a4.835 4.835 0 013.427-1.42z\"\n                    />\n                    <path stroke=\"#FFF\" strokeLinecap=\"round\" d=\"M71 67l11 11\" />\n                </g>\n                <path\n                    stroke=\"#8ABA2E\"\n                    strokeLinecap=\"round\"\n                    strokeLinejoin=\"round\"\n                    strokeWidth=\"2.5\"\n                    d=\"M149.5 47h-17.176m24.176 0h-2.221m-11.103 7.777H135M48.5 68H31.324M25.5 68h-4.221m31.897 8.777H45\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nBigSearchIcon.displayName = 'BigSearchIcon';\n\nconst storyProps: PropsT = {};\n\nexport { storyProps };\nexport default BigSearchIcon;\n","import React, { useCallback } from 'react';\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames/bind';\nimport styles from './BrokerUserControl.scss';\nimport {\n    AsyncRequestFactoryResultT,\n    AsyncRequestFactoryT,\n    useAsyncOptionsRequest,\n} from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-options-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport DropdownSearchMultipleInput, {\n    RenderTriggerPropsT,\n} from 'design-system/components/dropdowns/DropdownSearchMultipleInput/DropdownSearchMultipleInput';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { ApiCompanyContactT } from 'common/utils/api/models';\nimport AccountIcon from 'common/icons/AccountIcon';\nimport Avatar, { AvatarSizeEnum } from 'common/components/Avatar/Avatar';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport ArrowsIcon from 'common/icons/ArrowsIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\nexport type BrokerUserControlValueT = ValueT;\n\nexport type BrokerUserControlOptionT = OptionT;\n\ntype OptionT = {\n    id: ApiCompanyContactT['id'];\n    fullName: ApiCompanyContactT['fullName'];\n    email?: ApiCompanyContactT['email'];\n};\n\ntype ValueT = OptionT['id'] | null;\n\ntype PropsT = {\n    className?: string;\n    companyId: CompanyIdT | null;\n    initialOptions?: Array<OptionT>;\n    initialRequestStatus?: RequestStatusT;\n    onSelect: (values: Array<ValueT>, options: Array<OptionT>) => void;\n    values: Array<ValueT>;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    overlayClassName?: string;\n    hasClearControl?: InputPropsT['hasClearControl'];\n    hasError?: InputPropsT['hasError'];\n    hasWarning?: InputPropsT['hasWarning'];\n    placeholder?: InputPropsT['placeholder'];\n    onBlur?: InputPropsT['onBlur'];\n    onFocus?: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasChanges?: boolean;\n    allowedQueryMinLength?: number;\n};\n\nconst BrokerUserControl: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        companyId,\n        initialOptions,\n        values,\n        onSelect,\n        hasWarning,\n        hasError,\n        hasClearControl,\n        overlayPosition,\n        overlayClassName,\n        isDisabled,\n        placeholder,\n        onBlur,\n        onFocus,\n        hasChanges,\n        initialRequestStatus,\n        allowedQueryMinLength,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const requestFactory: AsyncRequestFactoryT<OptionT> = useCallback(\n        (query) => {\n            if (!companyId) {\n                return Promise.resolve([null, [] as Array<OptionT>]);\n            }\n\n            return brokerTranziitApi\n                .findPartnerUsersByName(companyId, {\n                    userName: query || undefined,\n                })\n                .then((response): AsyncRequestFactoryResultT<OptionT> => {\n                    const [error, result] = response;\n                    if (error) {\n                        return [error, null];\n                    }\n\n                    const items: Array<OptionT> =\n                        result?.map((item) => {\n                            return {\n                                id: item.id,\n                                fullName: item.fullName,\n                            };\n                        }) || [];\n\n                    return [null, items];\n                });\n        },\n        [companyId],\n    );\n\n    const asyncOptionsRequest = useAsyncOptionsRequest<OptionT>({\n        initialOptions,\n        requestFactory,\n        settings: { allowedQueryMinLength },\n    });\n\n    const handleReset = () => {\n        onSelect([], []);\n    };\n\n    const handleFocus: InputPropsT['onFocus'] = () => {\n        if (onFocus) {\n            onFocus();\n        }\n    };\n\n    const renderOption = (option: OptionT | undefined, placeholder?: string): React.ReactNode => {\n        if (!option) {\n            return placeholder;\n        }\n\n        const label = option.fullName || option.email || '-';\n\n        return (\n            <DropdownControlOptionLabel\n                className={cx('option')}\n                withoutPaddings\n                icon={label ? <Avatar size={AvatarSizeEnum.small} hash={label} /> : null}\n                label={label || ''}\n            />\n        );\n    };\n\n    const renderTrigger = (\n        props: RenderTriggerPropsT,\n        options: Array<OptionT>,\n        placeholder: string | undefined,\n    ): React.ReactNode => {\n        const count = options?.length || 0;\n\n        let label: React.ReactNode = (\n            <>\n                {t('common-components.broker-user-suggest.multiple-values-selected')}\n                {Boolean(count) && (\n                    <PillLabel className={cx('count')} isSymmetrical theme={PillLabelThemeEnum.charcoal}>\n                        {count}\n                    </PillLabel>\n                )}\n            </>\n        );\n\n        if (props.isEmpty) {\n            label = placeholder;\n        }\n\n        if (options?.length === 1) {\n            const firstOption = options?.[0] || null;\n            label = firstOption?.fullName || '';\n        }\n\n        return (\n            <TransparentTrigger\n                onClick={props.onClick}\n                isPressed={props.isPressed}\n                label={label}\n                leftIcon={\n                    <AccountIcon\n                        size={DEFAULT_ICON_SIZE}\n                        fillColor={StyleGuideColorsEnum.brandAccent}\n                        strokeColor={StyleGuideColorsEnum.charcoal}\n                    />\n                }\n                rightIcon={<ArrowsIcon />}\n                reflectionTheme={ReflectionThemeEnum.light}\n            />\n        );\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option.id;\n\n    return (\n        <DropdownSearchMultipleInput<OptionT, ValueT>\n            className={className}\n            selectedValues={values}\n            placeholder={placeholder}\n            options={asyncOptionsRequest.options}\n            isDisabled={isDisabled}\n            onSelect={onSelect}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            onChangeQuery={asyncOptionsRequest.onChangeQuery}\n            renderOption={renderOption}\n            renderTrigger={renderTrigger}\n            getOptionValue={getOptionValue}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={handleFocus}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            overlayClassName={overlayClassName}\n            isLoading={asyncOptionsRequest.requestStatus.loading || initialRequestStatus?.loading}\n            onReset={hasClearControl ? handleReset : undefined}\n        />\n    );\n};\n\nexport default BrokerUserControl;\n","// extracted by mini-css-extract-plugin\nexport default {\"field--type\":\"TrailerFiltersSidebarContent__field--type___kZrPu\",\"field--user\":\"TrailerFiltersSidebarContent__field--user___TzBrv\",\"field--date\":\"TrailerFiltersSidebarContent__field--date___KvTDy\",\"field--contract\":\"TrailerFiltersSidebarContent__field--contract___uzet9\",\"field--plate-number\":\"TrailerFiltersSidebarContent__field--plate-number___v2hgm\",\"field--country\":\"TrailerFiltersSidebarContent__field--country___q8XE5\",\"field--status\":\"TrailerFiltersSidebarContent__field--status___G371s\",\"form\":\"TrailerFiltersSidebarContent__form___TH4yd\",\"selected-filters\":\"TrailerFiltersSidebarContent__selected-filters___LEaQ8\",\"fadeIn\":\"TrailerFiltersSidebarContent__fadeIn___sWdmr\",\"blinking\":\"TrailerFiltersSidebarContent__blinking___s6oIB\"};","import React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './FieldLabel.scss';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipIconTrigger from 'design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    className?: string;\n    label?: React.ReactNode;\n    subLabel?: React.ReactNode;\n    tooltipNode?: React.ReactNode;\n    tooltipPosition?: TooltipPositionEnum;\n    rightNode?: React.ReactNode;\n};\n\nconst SHOW_TOOLTIP_DELAY = 300;\n\nconst FieldLabel: React.FC<PropsT> = React.memo((props) => {\n    const { className, label, subLabel, tooltipNode, tooltipPosition, rightNode } = props;\n\n    return (\n        <div className={cs(cx('label'), className)}>\n            <div className={cx('left-node')}>\n                <span className={cx('text')}>{label || ' '}</span>\n                {tooltipNode && (\n                    <Tooltip\n                        className={cx('tooltip')}\n                        position={tooltipPosition || TooltipPositionEnum.topCenter}\n                        theme={TooltipThemeEnum.black}\n                        tooltipNode={tooltipNode}\n                        delay={SHOW_TOOLTIP_DELAY}\n                    >\n                        {(isShow) => <TooltipIconTrigger className={cx('tooltip__icon')} isShow={isShow} />}\n                    </Tooltip>\n                )}\n                {subLabel}\n            </div>\n            <div className={cx('right-node')}>{rightNode}</div>\n        </div>\n    );\n});\n\nexport default FieldLabel;\n","import * as React from 'react';\nimport { useCallback } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PartnersPage.scss';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { PartnersSortEnum, QueryFiltersKeysEnum, QueryFiltersT, QueryKeysEnum } from './query-models';\nimport { useTranslation } from 'react-i18next';\nimport TopBar from 'common/layouts/LeftMenuLayout/TopBar/TopBar';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport FiltersTrigger from 'common/components/Table/FiltersTrigger/FiltersTrigger';\nimport SortDropdown, {\n    SortDropdownOptionT,\n    SortDropdownOverlayPositionEnum,\n} from 'common/components/Table/SortDropdown/SortDropdown';\nimport { ApiInvitePartnerRequestT, ApiPartnerTypeT, PartnerTypeEnum } from 'common/utils/api/models';\n\nimport Pagination from 'common/components/Table/Pagination/Pagination';\nimport {\n    selectPartnerCreationRequest,\n    selectPartnersByIds,\n    selectPartnersPages,\n    selectPartnersTotal,\n} from 'broker-admin/store/partners/selectors';\nimport { PartnerT } from 'broker-admin/store/partners/models';\nimport { fetchPartnersPage, invitePartnerRequest } from 'broker-admin/store/partners/actions';\nimport PartnersTable from './PartnersTable/PartnersTable';\n\nimport TableMessage, { TableMessageIconsEnum } from 'common/components/Table/TableMessage/TableMessage';\nimport ExpandIcon from 'common/icons/ExpandIcon';\nimport DropdownControl, {\n    DropdownControlOptionT,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\nimport PartnerTypeControl from 'broker-admin/layouts/PartnersPage/PartnerTypeControl/PartnerTypeControl';\nimport SearchControl from 'common/components/Table/SearchControl/SearchControl';\nimport Switcher from 'common/components/Switcher/Switcher';\nimport {\n    createJsonParams,\n    createPageNumberParam,\n    createSortParams,\n    PageSortT,\n    SortDirectionEnum,\n} from 'common/utils/query';\nimport StickyFooter from 'common/layouts/LeftMenuLayout/StickyFooter/StickyFooter';\nimport ScrollableContent from 'common/layouts/LeftMenuLayout/ScrollableContent/ScrollableContent';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport NotificationsBarTrigger from 'common/components/notifications/NotificationsBarTrigger/NotificationsBarTrigger';\nimport TableError from 'common/components/Table/TableError/TableError';\nimport { prepareFetchPageQuery } from 'broker-admin/layouts/PartnersPage/prepare-fetch-page-query';\nimport TopBarContent from 'common/layouts/LeftMenuLayout/TopBarContent/TopBarContent';\nimport ListPageHeaderLayout from 'common/layouts/ListPage/ListPageHeaderLayout/ListPageHeaderLayout';\nimport ListPageLayout from 'common/layouts/ListPage/ListPageLayout/ListPageLayout';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport { useHistoryPush } from 'common/utils/hooks/useHistoryPush';\nimport { partnersPaginationChannel, partnersRefreshChannel } from 'broker-admin/store/partners/channels';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport SideBars from 'broker-admin/layouts/SideBars/SideBars';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { useQueryParams } from 'use-query-params';\nimport { useCheckOpenedSidebar, useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport { BrokerSidebarsTypeEnum } from 'broker-admin/layouts/SideBars/constants';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport InvitePartnerDialog, {\n    InvitePartnerModalDataT,\n} from 'broker-admin/layouts/PartnersPage/dialogs/InvitePartnerDialog/InvitePartnerDialog';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { checkNeedRenderEmptyState } from 'common/components/Table/utils/check-need-render-empty-state';\nimport { checkFilters } from 'common/components/Table/utils/check-filters';\nimport { selectIsExternalBusinessPartnerManagement } from 'common/store/settings/selectors';\nimport SelectedFilters from './SelectedFilters/SelectedFilters';\nimport omit from 'lodash/omit';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst PartnersPage: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n\n    const { historyPush } = useHistoryPush();\n    const permissions = useSelector(selectPermissions);\n    const isExternalBusinessPartnerManagement = useSelector(selectIsExternalBusinessPartnerManagement);\n\n    const total = useSelector(selectPartnersTotal);\n    const partnersPages = useSelector(selectPartnersPages);\n    const partnersById = useSelector(selectPartnersByIds);\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const isOpenedFilters = useCheckOpenedSidebar(BrokerSidebarsTypeEnum.partnerFilter);\n    const showFilters = React.useCallback(() => {\n        openLeftSidebar({\n            type: BrokerSidebarsTypeEnum.partnerFilter,\n        });\n    }, [openLeftSidebar]);\n\n    const creationRequestStatus = useSelector(selectPartnerCreationRequest);\n\n    const partnerCreationSidebarType = isExternalBusinessPartnerManagement\n        ? BrokerSidebarsTypeEnum.createExternalPartner\n        : BrokerSidebarsTypeEnum.createPartner;\n\n    const invitePartnerModalDialog = useModalDialog<InvitePartnerModalDataT>();\n    useCloseModalDialogAfterRequest(creationRequestStatus, [invitePartnerModalDialog]);\n\n    const [query, changeQuery] = useQueryParams({\n        [QueryKeysEnum.partnersPage]: createPageNumberParam(),\n        [QueryKeysEnum.partnersSort]: createSortParams<PartnersSortEnum>({\n            value: PartnersSortEnum.name,\n            direction: SortDirectionEnum.DESC,\n        }),\n        [QueryKeysEnum.partnersFilters]: createJsonParams<QueryFiltersT>({}),\n    });\n\n    const selectedSort = query[QueryKeysEnum.partnersSort];\n    const pageNumber = query[QueryKeysEnum.partnersPage];\n    const queryFilters = query[QueryKeysEnum.partnersFilters];\n\n    const page = partnersPages[pageNumber];\n    const { ids, requestStatus } = page || {};\n\n    React.useEffect(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchPartnersPage(pageNumber, query));\n\n        return (): void => {\n            // TODO reset\n        };\n    }, [dispatch, pageNumber, selectedSort, queryFilters]);\n\n    const refreshPageHandler = React.useCallback(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchPartnersPage(pageNumber, query, { isForceUpdate: true }));\n    }, [dispatch, pageNumber, selectedSort, queryFilters]);\n    useChannelSubscribe(partnersRefreshChannel, refreshPageHandler);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchPartnersPage(pageNumber, query, { isForceUpdate: true }));\n    }, [dispatch, pageNumber, selectedSort, queryFilters]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchPartnersPage(pageNumber, query, { isForceUpdate: false }));\n    }, [dispatch, pageNumber, selectedSort, queryFilters]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const partners = React.useMemo(() => {\n        return (ids || []).map((id): PartnerT => partnersById[id]);\n    }, [ids, partnersById]);\n\n    const goToPage = useCallback(\n        (pageNumber: PageNumberT) => {\n            changeQuery({\n                [QueryKeysEnum.partnersPage]: pageNumber,\n            });\n        },\n        [changeQuery],\n    );\n\n    const setPageHandler = React.useCallback(\n        ({ pageNumber }: InferChannelEventT<typeof partnersPaginationChannel>) => {\n            goToPage(pageNumber);\n        },\n        [goToPage],\n    );\n    useChannelSubscribe(partnersPaginationChannel, setPageHandler);\n\n    const goToPartnerDetails = (event: React.MouseEvent, partnerType: ApiPartnerTypeT, partnerId: PartnerIdT) => {\n        historyPush(event, urlFactory.partnerDetails(partnerType, partnerId));\n    };\n\n    const sortOptions: Array<SortDropdownOptionT<PartnersSortEnum>> = React.useMemo(\n        () => [\n            {\n                label: t('partners-table.sorts.triggers.name'),\n                value: PartnersSortEnum.name,\n            },\n        ],\n        [t],\n    );\n\n    const handleSelectSort = (sort: PageSortT<PartnersSortEnum>) => {\n        changeQuery({\n            [QueryKeysEnum.partnersPage]: 0,\n            [QueryKeysEnum.partnersSort]: sort,\n        });\n    };\n\n    const handleSetQueryFilters = (selectedQueryFilters: QueryFiltersT) => {\n        const queryFilters: QueryFiltersT = {\n            [QueryFiltersKeysEnum.partnerType]: query[QueryKeysEnum.partnersFilters][QueryFiltersKeysEnum.partnerType],\n            ...selectedQueryFilters,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.partnersPage]: 0,\n            [QueryKeysEnum.partnersFilters]: queryFilters,\n        });\n    };\n\n    const partnerCreationOptions: Array<DropdownControlOptionT> = [\n        {\n            label: <DropdownControlOptionLabel label={t('partners-table.add-business-partner.create-manually')} />,\n            onSelect: () => {\n                openLeftSidebar({\n                    type: partnerCreationSidebarType,\n                });\n            },\n        },\n        {\n            label: <DropdownControlOptionLabel label={t('partners-table.add-business-partner.invite-email')} />,\n            onSelect: () => {\n                invitePartnerModalDialog.setData({});\n            },\n        },\n    ];\n\n    React.useEffect(() => {\n        dispatch(fetchCountriesDict());\n    }, [dispatch]);\n\n    const updateQueryFilters = (queryFiltersChanges: QueryFiltersT) => {\n        const prevQueryFilters = query[QueryKeysEnum.partnersFilters] || {};\n\n        const queryFilters = {\n            ...prevQueryFilters,\n            ...queryFiltersChanges,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.partnersPage]: 0,\n            [QueryKeysEnum.partnersFilters]: queryFilters,\n        });\n    };\n\n    const handleSelectPartnerType = (partnerType: PartnerTypeEnum | null) => {\n        updateQueryFilters({\n            [QueryFiltersKeysEnum.partnerType]: partnerType || undefined,\n        });\n    };\n\n    const handleSearch = (searchText: string) => {\n        updateQueryFilters({\n            [QueryFiltersKeysEnum.searchText]: searchText || undefined,\n        });\n    };\n\n    const toggleWithUpdates = (value: boolean) => {\n        updateQueryFilters({\n            [QueryFiltersKeysEnum.withUpdates]: value || undefined,\n        });\n    };\n\n    const resetQueryFilters = () => {\n        handleSetQueryFilters({\n            [QueryFiltersKeysEnum.partnerType]: queryFilters[QueryFiltersKeysEnum.partnerType],\n        });\n    };\n\n    const handlePatrnerInvite = (data: ApiInvitePartnerRequestT) => {\n        dispatch(invitePartnerRequest(data));\n    };\n\n    const renderTableMessage = () => {\n        if (!checkNeedRenderEmptyState(partners, requestStatus)) {\n            return null;\n        }\n\n        if (requestStatus?.error) {\n            return <TableError error={requestStatus?.error} onRetry={handleRefreshOnError} />;\n        }\n\n        const { hasPrimaryQueryFilters, hasSecondaryQueryFilters } = checkFilters(\n            [queryFilters[QueryFiltersKeysEnum.partnerType]],\n            [omit(queryFilters, QueryFiltersKeysEnum.partnerType)],\n        );\n\n        if (requestStatus?.ok && hasSecondaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.notFound}\n                    title={t('partners-table.messages.not-found.title')}\n                    description={t('partners-table.messages.not-found.description')}\n                    isShowAction\n                    actionTitle={t('partners-table.messages.not-found.action')}\n                    actionTheme={ButtonThemeEnum.secondary}\n                    onActionClick={() => {\n                        resetQueryFilters();\n                    }}\n                />\n            );\n        }\n\n        if (requestStatus?.ok && hasPrimaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.empty}\n                    title={t('partners-table.messages.empty-quick-filters.title')}\n                    testSelector=\"empty-state-has-primary-filters\"\n                    isShowAction={false}\n                />\n            );\n        }\n\n        return (\n            <TableMessage\n                iconType={TableMessageIconsEnum.empty}\n                title={t('partners-table.messages.empty.title')}\n                description={t('partners-table.messages.empty.description')}\n                isShowAction={permissions.canAddPartner}\n                actionTitle={t('partners-table.messages.empty.action')}\n                onActionClick={() => {\n                    openLeftSidebar({\n                        type: partnerCreationSidebarType,\n                    });\n                }}\n            />\n        );\n    };\n\n    return (\n        <ScrollableContent>\n            <PageTitle title={t('page-titles.partners')} />\n            <ContentMargins>\n                <TopBar>\n                    <TopBarContent title={t('partners-table.title')} rightNode={<NotificationsBarTrigger />} />\n                </TopBar>\n                <ListPageLayout>\n                    <ListPageHeaderLayout\n                        withTopPadding\n                        leftToolsNode={\n                            <>\n                                <FiltersTrigger\n                                    title={t('partners-table.filters.trigger')}\n                                    isActive={isOpenedFilters}\n                                    onClick={showFilters}\n                                />\n                                <SortDropdown\n                                    overlayPosition={SortDropdownOverlayPositionEnum.left}\n                                    selectedValue={selectedSort}\n                                    options={sortOptions}\n                                    onSelect={handleSelectSort}\n                                />\n                                <PartnerTypeControl\n                                    selectedType={queryFilters[QueryFiltersKeysEnum.partnerType] || null}\n                                    onSelect={handleSelectPartnerType}\n                                />\n                                <SearchControl\n                                    placeholder={t('partners-table.search-placeholder')}\n                                    searchText={queryFilters[QueryFiltersKeysEnum.searchText]}\n                                    onChangeSearchText={handleSearch}\n                                />\n                                <Switcher\n                                    checked={!!queryFilters[QueryFiltersKeysEnum.withUpdates]}\n                                    onToggle={toggleWithUpdates}\n                                    label={t('partners-table.with-updates-only')}\n                                />\n                            </>\n                        }\n                        rightToolsNode={\n                            <>\n                                {permissions.canAddPartner && (\n                                    <DropdownControl\n                                        options={partnerCreationOptions}\n                                        renderTrigger={(isActive, onClick) => (\n                                            <Button\n                                                theme={ButtonThemeEnum.primary}\n                                                onClick={onClick}\n                                                rightIcon={<ExpandIcon fillColor={StyleGuideColorsEnum.white} />}\n                                                isPressed={isActive}\n                                            >\n                                                {t('partners-table.add-business-partner.trigger')}\n                                            </Button>\n                                        )}\n                                        overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                                    />\n                                )}\n                            </>\n                        }\n                        filterTagsNode={\n                            <SelectedFilters\n                                isCompact\n                                queryFilters={queryFilters}\n                                setQueryFilters={handleSetQueryFilters}\n                            />\n                        }\n                    />\n                    {renderTableMessage()}\n                    <PartnersTable\n                        isLoading={requestStatus?.loading}\n                        partners={partners}\n                        goToPartnerDetails={goToPartnerDetails}\n                        canDeletePartner={permissions.canDeletePartner}\n                    />\n                </ListPageLayout>\n            </ContentMargins>\n            <StickyFooter>\n                <Pagination current={pageNumber} count={total?.pageCount} goToPage={goToPage} />\n            </StickyFooter>\n            <InvitePartnerDialog\n                data={invitePartnerModalDialog.data}\n                onClose={invitePartnerModalDialog.onClose}\n                requestStatus={creationRequestStatus}\n                onInvitePartner={handlePatrnerInvite}\n            />\n            <SideBars />\n        </ScrollableContent>\n    );\n});\n\nexport default PartnersPage;\n","// extracted by mini-css-extract-plugin\nexport default {\"warning\":\"WarningTextFormatter__warning___ZzJe5\",\"fadeIn\":\"WarningTextFormatter__fadeIn___PnoN5\",\"blinking\":\"WarningTextFormatter__blinking___P__Kf\"};","import * as React from 'react';\nimport { ApiCarrierContractStatusT, CarrierContractStatusEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    status: ApiCarrierContractStatusT | null | undefined;\n};\n\nexport const CARRIER_CONTRACT_STATUS_T_MAP: Record<ApiCarrierContractStatusT, string> = {\n    [CarrierContractStatusEnum.waitingForApprove]: 'common:document-status.WAITING_FOR_APPROVE',\n    [CarrierContractStatusEnum.approved]: 'common:document-status.APPROVED',\n    [CarrierContractStatusEnum.rejected]: 'common:document-status.REJECTED',\n    [CarrierContractStatusEnum.revoked]: 'common:document-status.REVOKED',\n    [CarrierContractStatusEnum.expired]: 'common:document-status.EXPIRED',\n};\n\nconst CarrierContractStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return t('common:document-status.not-upload');\n    }\n\n    return t(CARRIER_CONTRACT_STATUS_T_MAP[status]);\n});\n\nexport default CarrierContractStatus;\n","// extracted by mini-css-extract-plugin\nexport default {\"team-name\":\"TeamName__team-name___R8C3Y\",\"fadeIn\":\"TeamName__fadeIn___pRN5M\",\"blinking\":\"TeamName__blinking___HxfUs\"};","// extracted by mini-css-extract-plugin\nexport default {\"flag\":\"LocationCell__flag___MKCMZ\",\"country\":\"LocationCell__country___WH01K\",\"address\":\"LocationCell__address___yuyxb\",\"fadeIn\":\"LocationCell__fadeIn___B7yl8\",\"blinking\":\"LocationCell__blinking___rzmeo\"};","import { isNonNil } from 'common/utils';\nimport Supercluster from 'supercluster';\nimport { BrokerOrderAssigmentStateT } from 'broker-admin/store/broker-order-assigment/types';\nimport { LinksT } from 'broker-admin/store/broker-order-assigment/models';\n\nexport type GeoJsonPropertiesT = {\n    id: string;\n    truckId: string | null;\n    trailerId: string | null;\n};\n\ntype GetVehicleGeoJsonParamsT = {\n    truckId: TruckIdT | null;\n    trailerId: TrailerIdT | null;\n    trailerById: BrokerOrderAssigmentStateT['trailerById'];\n    truckById: BrokerOrderAssigmentStateT['truckById'];\n};\n\nconst getVehicleGeoJson = (params: GetVehicleGeoJsonParamsT) => {\n    const { truckId, trailerId, truckById, trailerById } = params;\n\n    const vehicleDetails = trailerById[trailerId as TrailerIdT] || truckById[truckId as TruckIdT];\n    if (!vehicleDetails?.expectedLongitude || !vehicleDetails?.expectedLatitude) {\n        return null;\n    }\n\n    const geoJson: Supercluster.PointFeature<GeoJsonPropertiesT> = {\n        type: 'Feature',\n        geometry: {\n            type: 'Point',\n            coordinates: [vehicleDetails.expectedLongitude, vehicleDetails.expectedLatitude],\n        },\n        properties: {\n            id: `${truckId}_${trailerId}`,\n            truckId: truckId || null,\n            trailerId: trailerId || null,\n        },\n    };\n\n    return geoJson;\n};\n\ntype VehicleT = {\n    trailerId: TrailerIdT | null;\n    truckId: TruckIdT | null;\n};\n\ntype CreateVehiclesGeoJsonParamsT = {\n    vehicles: Array<VehicleT>;\n    trailerById: BrokerOrderAssigmentStateT['trailerById'];\n    truckById: BrokerOrderAssigmentStateT['truckById'];\n    options: {\n        showCanBeInTime: boolean;\n        showNotCanBeInTime: boolean;\n        showSelectedNotCanBeInTime: boolean;\n        blockSelectTruck: boolean;\n        blockSelectTrailer: boolean;\n    };\n    selectedTrailerId: TrailerIdT | null;\n    selectedTruckId: TruckIdT | null;\n    vehicleLinks: LinksT;\n};\n\nexport const createVehiclesGeoJson = (\n    params: CreateVehiclesGeoJsonParamsT,\n): Array<Supercluster.PointFeature<GeoJsonPropertiesT>> => {\n    const { vehicles, truckById, trailerById, options, selectedTrailerId, selectedTruckId, vehicleLinks } = params;\n\n    const availableTrailersToHooks = truckById[selectedTruckId as TruckIdT]?.assetsToHook || null;\n    const availableTrailersToHooksSet = availableTrailersToHooks ? new Set(availableTrailersToHooks) : null;\n    const availableTrucksToHooks = trailerById[selectedTrailerId as TrailerIdT]?.assetsToHook || null;\n    const availableTrucksToHooksSet = availableTrucksToHooks ? new Set(availableTrucksToHooks) : null;\n\n    let outOfAreaSelectedTrailerId = selectedTrailerId;\n    let outOfAreaSelectedTruckId = selectedTruckId;\n\n    const prepareVehicleGeoJson = (vehicle: VehicleT): TODO => {\n        let viewTruckId = null;\n        let viewTrailerId = null;\n\n        const canInTimeTruck =\n            !truckById[vehicle.truckId as TruckIdT]?.invalidReason &&\n            (availableTrucksToHooksSet ? availableTrucksToHooksSet.has(vehicle.truckId as TruckIdT) : true);\n        const isShowTruck =\n            ((options?.showCanBeInTime && canInTimeTruck) ||\n                (options?.showNotCanBeInTime && !canInTimeTruck) ||\n                (options?.showSelectedNotCanBeInTime &&\n                    selectedTruckId &&\n                    selectedTruckId === vehicle.truckId &&\n                    !canInTimeTruck)) &&\n            (!options?.blockSelectTruck || selectedTruckId === vehicle.truckId);\n        if (vehicle.truckId && isShowTruck) {\n            viewTruckId = vehicle.truckId;\n        }\n\n        const canInTimeTrailer =\n            !trailerById[vehicle.trailerId as TrailerIdT]?.invalidReason &&\n            (availableTrailersToHooksSet ? availableTrailersToHooksSet.has(vehicle.trailerId as TrailerIdT) : true);\n        const isShowTrailer =\n            ((options?.showCanBeInTime && canInTimeTrailer) ||\n                (options?.showNotCanBeInTime && !canInTimeTrailer) ||\n                (options?.showSelectedNotCanBeInTime &&\n                    selectedTrailerId &&\n                    selectedTrailerId === vehicle.trailerId &&\n                    !canInTimeTrailer)) &&\n            (!options?.blockSelectTrailer || selectedTrailerId === vehicle.trailerId);\n        if (vehicle.trailerId && isShowTrailer) {\n            viewTrailerId = vehicle.trailerId;\n        }\n\n        if (!viewTruckId && !viewTrailerId) {\n            return null;\n        }\n\n        return getVehicleGeoJson({\n            truckId: vehicle.truckId,\n            trailerId: vehicle.trailerId,\n            trailerById,\n            truckById,\n        });\n    };\n\n    const vehiclesGeoJsons = vehicles.map((vehicle) => {\n        const vehiclesGeoJson = prepareVehicleGeoJson(vehicle);\n\n        if (vehiclesGeoJson && outOfAreaSelectedTrailerId === vehicle.trailerId) {\n            outOfAreaSelectedTrailerId = null;\n        }\n        if (vehiclesGeoJson && outOfAreaSelectedTruckId === vehicle.truckId) {\n            outOfAreaSelectedTruckId = null;\n        }\n\n        return vehiclesGeoJson;\n    });\n\n    const outOfAreaVehicles: Array<VehicleT> = [];\n\n    const outOfAreaSelectedLinkedTruckId = vehicleLinks.byTrailerId[outOfAreaSelectedTrailerId as TrailerIdT] || null;\n    if (outOfAreaSelectedLinkedTruckId) {\n        outOfAreaVehicles.push({\n            trailerId: outOfAreaSelectedTrailerId,\n            truckId: outOfAreaSelectedLinkedTruckId,\n        });\n\n        if (outOfAreaSelectedTruckId && outOfAreaSelectedTruckId !== outOfAreaSelectedLinkedTruckId) {\n            outOfAreaVehicles.push({\n                trailerId: null,\n                truckId: outOfAreaSelectedTruckId,\n            });\n        }\n    } else {\n        if (outOfAreaSelectedTrailerId) {\n            outOfAreaVehicles.push({\n                trailerId: outOfAreaSelectedTrailerId,\n                truckId: null,\n            });\n        }\n\n        if (outOfAreaSelectedTruckId) {\n            outOfAreaVehicles.push({\n                trailerId: null,\n                truckId: outOfAreaSelectedTruckId,\n            });\n        }\n    }\n\n    const outOfAreaVehiclesGeoJsons = outOfAreaVehicles.map(prepareVehicleGeoJson);\n\n    return [...outOfAreaVehiclesGeoJsons, ...vehiclesGeoJsons].filter(isNonNil);\n};\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const partnersRefreshChannel = new ViewEventChannel<{}>();\n\nexport const partnersPaginationChannel = new ViewEventChannel<{\n    pageNumber: number;\n}>();\n","import * as React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './ColoredPriceRuleStatusLabel.scss';\nimport PriceRuleStatusLabel from 'broker-admin/components/status/PriceRuleStatusLabel/PriceRuleStatusLabel';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    isActive: boolean | null | undefined;\n};\n\nconst ColoredPriceRuleStatusLabel: React.FC<PropsT> = React.memo((props) => {\n    const { isActive, className } = props;\n\n    return (\n        <PriceRuleStatusLabel\n            isActive={isActive}\n            className={cs(\n                cx('status', {\n                    'status--active': isActive,\n                }),\n                className,\n            )}\n        />\n    );\n});\n\nexport default ColoredPriceRuleStatusLabel;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './IdCell.scss';\n\ntype PropsT = {\n    id: string | null | undefined;\n};\n\nconst cx = classNames.bind(styles);\n\nconst IdCell: React.FC<PropsT> = React.memo((props) => {\n    const { id } = props;\n\n    return <div className={cx('id')}>{id}</div>;\n});\n\nexport default IdCell;\n","import * as React from 'react';\nimport { useMemo } from 'react';\nimport { FieldsEnum, FormValuesT, RoutePointFieldsEnum } from '../constants';\nimport { useSelector } from 'react-redux';\nimport { ALL_DAY_RANGE, DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { RangeSelectorMarkT, RangeSelectorRangeT } from 'common/components/RangeSelector/RangeSelector';\nimport { isNonNil } from 'common/utils';\nimport { clearDateTimezone, MS_IN_MIN } from 'common/utils/time';\nimport { RangeSelectorZoneThemeEnum } from 'common/components/RangeSelector/constants';\nimport {\n    selectMaxWindowSizeMs,\n    selectMinWindowSizeMs,\n    selectTimeWindowQuantumMs,\n} from 'common/store/settings/selectors';\nimport { useTranslation } from 'react-i18next';\nimport FormikConnectContextField from 'common/components/forms/FormikConnectContextField/FormikConnectContextField';\nimport GeoSuggest from 'common/components/GeoSuggest/GeoSuggest';\nimport TimeIntervalDurationPillLabel from '../TimeIntervalDurationPillLabel/TimeIntervalDurationPillLabel';\nimport { useFormikContext } from 'formik';\nimport { getFieldFormValue } from 'common/utils/form-values';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './DropAndHookRoutePointPicker.scss';\nimport TimeWindowPicker from 'common/components/range-selectors/TimeWindowPicker/TimeWindowPicker';\nimport DeleteWaypointTrigger from '../DeleteWaypointTrigger/DeleteWaypointTrigger';\nimport WaypointNumberIcon from '../WaypointNumberIcon/WaypointNumberIcon';\nimport LinkDatePicker, {\n    DatePickerOverlayPositionEnum,\n} from 'design-system/components/date-pickers/LinkDatePicker/LinkDatePicker';\nimport { CalendarDateValueT } from 'design-system/components/Calendar/Calendar';\nimport moment from 'moment';\nimport isEqual from 'lodash/isEqual';\nimport CalendarAltIcon from 'common/icons/CalendarAltIcon';\n\nimport TimeIntervalLimitPillLabel from '../TimeIntervalLimitPillLabel/TimeIntervalLimitPillLabel';\nimport TimeWindowZoneText from '../TimeWindowZoneText/TimeWindowZoneText';\nimport TeamDriveIcon, { TeamDriveIconProps } from 'common/icons/TeamDriveIcon';\nimport UrgentIcon, { UrgentIconProps } from 'common/icons/UrgentIcon';\nimport HourglassIcon, { HourglassIconProps } from 'common/icons/HourglassIcon';\nimport { ApiTourUpdateStopDataT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport {\n    convertReserveTimeWindowToRelativeTimeWindow,\n    setDateForReserveTimeWindow,\n    setTimeWindowForReserveTimeWindow,\n    suggestLastTimeWindowOfDay,\n} from 'common/layouts/NewOrderPage/ShipmentDetailsForm/utils';\nimport { OnChangeRoutePointAddressT, OnChangeRoutePointTimeWindowT, OnDeleteRoutePointReserveT } from '../models';\nimport { prepareLocation } from 'common/utils/prepare-location';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport {\n    checkIsChangedAddressByCoords,\n    getRoutePointTimeWindowHash,\n} from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/utils';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport AddressChangesIndicator from '../AddressChangesIndicator/AddressChangesIndicator';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    routePointIndex: number;\n    tourUpdateStop: ApiTourUpdateStopDataT | null;\n    oldTourUpdateStop: ApiTourUpdateStopDataT | null;\n    onRemove: OnDeleteRoutePointReserveT;\n    isAllowRemove: boolean;\n\n    isAllowUpdateTimeWindows: boolean;\n    isAllowUpdateAddress: boolean;\n\n    onManualSelectLocation: (location: LocationT | null, routePointIndex: number) => void;\n    onChangeRoutePointAddress: OnChangeRoutePointAddressT;\n    onChangeRoutePointTimeWindow: OnChangeRoutePointTimeWindowT;\n    isDisabledPreviewReserve?: boolean;\n    isShowSuggestLoading?: boolean;\n};\n\nexport enum RangeIdSetEnum {\n    original = 'original',\n    urgentPickUp = 'urgent-pick-up',\n    regularPickUp = 'regular-pick-up',\n    teamDriveDropOff = 'team-drive-drop-off',\n    regularDropOff = 'regular-drop-off',\n    layoverDropOff = 'layover-drop-off',\n}\n\nconst surchargeRangeTypeSet = new Set<string>([\n    RangeIdSetEnum.urgentPickUp,\n    RangeIdSetEnum.teamDriveDropOff,\n    RangeIdSetEnum.layoverDropOff,\n]);\n\nexport type TimeWindowPickerSettingsT = {\n    availableValues: TimeWindowT;\n    timeWindowRanges: RangeSelectorRangeT[];\n    marks?: Array<RangeSelectorMarkT>;\n};\n\nexport const DEFAULT_TIME_WINDOW_PICKER_SETTINGS: TimeWindowPickerSettingsT = {\n    availableValues: ALL_DAY_RANGE,\n    timeWindowRanges: [],\n};\n\nconst DropAndHookRoutePointPicker: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        routePointIndex,\n        tourUpdateStop,\n        oldTourUpdateStop,\n        onRemove,\n        isAllowUpdateTimeWindows,\n        isAllowUpdateAddress,\n        isAllowRemove,\n        onManualSelectLocation,\n        onChangeRoutePointAddress,\n        onChangeRoutePointTimeWindow,\n        isDisabledPreviewReserve,\n        isShowSuggestLoading,\n    } = props;\n\n    const hasAddressChanges = checkIsChangedAddressByCoords(tourUpdateStop?.address, tourUpdateStop?.originalAddress);\n\n    const { t } = useTranslation();\n\n    const formik = useFormikContext<FormValuesT>();\n\n    const fakePointIdFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.fakePointId}` as const;\n    const contextRoutePointIdName =\n        `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.contextRoutePointId}` as const;\n    const locationFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.location}` as const;\n    const timeWindowFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.timeWindow}` as const;\n    const typeFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.type}` as const;\n\n    const selectedTimeWindow = getFieldFormValue(formik.values, timeWindowFieldName);\n    const fakePointId = getFieldFormValue(formik.values, fakePointIdFieldName);\n    const type = getFieldFormValue(formik.values, typeFieldName);\n    const location = getFieldFormValue(formik.values, locationFieldName);\n    const contextRoutePointId = getFieldFormValue(formik.values, contextRoutePointIdName);\n\n    const isChangedTimeWindow =\n        !!oldTourUpdateStop &&\n        getRoutePointTimeWindowHash(selectedTimeWindow?.start, selectedTimeWindow?.end) !==\n            getRoutePointTimeWindowHash(oldTourUpdateStop?.originalDateTimeFrom, oldTourUpdateStop?.originalDateTimeTo);\n\n    const timeWindowQuantumMs = useSelector(selectTimeWindowQuantumMs);\n\n    const minWindowSizeMs = useSelector(selectMinWindowSizeMs);\n    const maxWindowSizeMs = useSelector(selectMaxWindowSizeMs);\n\n    const minRangeTimeWindow = minWindowSizeMs - MS_IN_MIN;\n    const maxRangeTimeWindow = maxWindowSizeMs + MS_IN_MIN;\n\n    const teamDriveMark = useMemo(\n        () => ({\n            borderTheme: RangeSelectorZoneThemeEnum.orange,\n            icon: <TeamDriveIcon {...TeamDriveIconProps.getCreateOrder()} />,\n        }),\n        [],\n    );\n\n    const urgentPickUpMark = useMemo(\n        () => ({\n            borderTheme: RangeSelectorZoneThemeEnum.orange,\n            icon: <UrgentIcon {...UrgentIconProps.getCreateOrder()} />,\n        }),\n        [],\n    );\n\n    const originalRange = useMemo(\n        () => ({\n            id: RangeIdSetEnum.original,\n            label: t('common:time-windows-types.urgent'),\n            theme: RangeSelectorZoneThemeEnum.charcoal,\n            children: (\n                <Tooltip\n                    position={TooltipPositionEnum.topCenter}\n                    theme={TooltipThemeEnum.black}\n                    className={cx('original-zone-tooltip-content')}\n                    tooltipNode={\n                        <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                            {t('broker-order-route-edit.fields.route-point.tooltip.original-time-window')}\n                        </TooltipContent>\n                    }\n                >\n                    {() => <div style={{ height: '100%', width: '100%' }} />}\n                </Tooltip>\n            ),\n        }),\n        [t],\n    );\n\n    const layoverMark = useMemo(\n        () => ({\n            borderTheme: RangeSelectorZoneThemeEnum.orange,\n            icon: <HourglassIcon {...HourglassIconProps.getCreateOrder()} />,\n        }),\n        [],\n    );\n\n    const teamDriveDropOffRange = useMemo(\n        () => ({\n            id: RangeIdSetEnum.teamDriveDropOff,\n            label: t('common:time-windows-types.team-drive'),\n            theme: RangeSelectorZoneThemeEnum.orange,\n        }),\n        [t],\n    );\n\n    const regularDropOffRange = useMemo(\n        () => ({\n            id: RangeIdSetEnum.regularDropOff,\n            theme: null,\n        }),\n        [],\n    );\n\n    const urgentPickUpRange = useMemo(\n        () => ({\n            id: RangeIdSetEnum.urgentPickUp,\n            label: t('common:time-windows-types.urgent'),\n            theme: RangeSelectorZoneThemeEnum.orange,\n        }),\n        [t],\n    );\n\n    const regularPickUpRange = useMemo(\n        () => ({\n            id: RangeIdSetEnum.regularPickUp,\n            theme: null,\n        }),\n        [],\n    );\n\n    const layoverDropOffRange = useMemo(\n        () => ({\n            id: RangeIdSetEnum.layoverDropOff,\n            label: t('common:time-windows-types.layover'),\n            theme: RangeSelectorZoneThemeEnum.orange,\n        }),\n        [t],\n    );\n\n    const renderZoneTextNode = React.useCallback((currentRanges: RangeSelectorRangeT[] | null) => {\n        const surchargeCurrentRanges = currentRanges?.filter((range) => {\n            return range && surchargeRangeTypeSet.has(range.id);\n        });\n\n        if (!surchargeCurrentRanges?.length) {\n            return null;\n        }\n\n        return <TimeWindowZoneText currentRanges={surchargeCurrentRanges} />;\n    }, []);\n\n    const tourUpdateStopTimeWindows = React.useMemo(() => {\n        if (!tourUpdateStop) {\n            return {\n                urgentTimeWindow: null,\n                regularTimeWindow: null,\n                layoverTimeWindow: null,\n                originalTimeWindow: null,\n            };\n        }\n\n        const { regularFrom, urgentFrom, layoverStart, latestTo, originalDateTimeFrom, originalDateTimeTo } =\n            tourUpdateStop;\n\n        return {\n            originalTimeWindow:\n                originalDateTimeFrom && originalDateTimeTo\n                    ? {\n                          start: originalDateTimeFrom,\n                          end: originalDateTimeTo,\n                      }\n                    : null,\n            urgentTimeWindow:\n                urgentFrom && regularFrom && urgentFrom !== regularFrom\n                    ? {\n                          start: urgentFrom,\n                          end: regularFrom,\n                      }\n                    : null,\n            regularTimeWindow: regularFrom\n                ? {\n                      start: regularFrom,\n                      end: layoverStart ? null : latestTo || null,\n                  }\n                : null,\n            layoverTimeWindow: layoverStart\n                ? {\n                      start: layoverStart,\n                      end: latestTo || null,\n                  }\n                : null,\n        };\n    }, [tourUpdateStop]);\n\n    const settings = React.useMemo<TimeWindowPickerSettingsT>(() => {\n        const isFirstTimeWindow = routePointIndex === 0;\n\n        if (!tourUpdateStop || !selectedTimeWindow) {\n            return DEFAULT_TIME_WINDOW_PICKER_SETTINGS;\n        }\n\n        const baseDate = selectedTimeWindow.start;\n\n        const availableValuesStart =\n            tourUpdateStopTimeWindows?.urgentTimeWindow?.start || tourUpdateStopTimeWindows?.regularTimeWindow?.start;\n        if (!availableValuesStart) {\n            return DEFAULT_TIME_WINDOW_PICKER_SETTINGS;\n        }\n\n        const availableValuesEnd =\n            tourUpdateStopTimeWindows?.layoverTimeWindow?.end ||\n            tourUpdateStopTimeWindows?.regularTimeWindow?.end ||\n            null;\n\n        const availableValues = suggestLastTimeWindowOfDay(\n            {\n                start: availableValuesStart,\n                end: availableValuesEnd,\n            },\n            baseDate,\n        );\n\n        const urgentTimeWindow = convertReserveTimeWindowToRelativeTimeWindow(\n            suggestLastTimeWindowOfDay(tourUpdateStopTimeWindows?.urgentTimeWindow || null, baseDate),\n        );\n\n        const regularTimeWindow = convertReserveTimeWindowToRelativeTimeWindow(\n            suggestLastTimeWindowOfDay(tourUpdateStopTimeWindows?.regularTimeWindow || null, baseDate),\n        );\n\n        const layoverTimeWindow = convertReserveTimeWindowToRelativeTimeWindow(\n            suggestLastTimeWindowOfDay(tourUpdateStopTimeWindows?.layoverTimeWindow || null, baseDate),\n        );\n\n        const originalTimeWindow = convertReserveTimeWindowToRelativeTimeWindow(\n            suggestLastTimeWindowOfDay(tourUpdateStopTimeWindows?.originalTimeWindow || null, baseDate),\n        );\n\n        const marks: Array<RangeSelectorMarkT> = [];\n\n        if (layoverTimeWindow) {\n            marks.push({\n                ...layoverMark,\n                value: layoverTimeWindow[0],\n            });\n        }\n\n        const timeWindowRanges: RangeSelectorRangeT[] = [\n            urgentTimeWindow\n                ? {\n                      ...(isFirstTimeWindow ? urgentPickUpRange : teamDriveDropOffRange),\n                      values: urgentTimeWindow,\n                      marks: [\n                          {\n                              ...(isFirstTimeWindow ? urgentPickUpMark : teamDriveMark),\n                              value: urgentTimeWindow[0],\n                          },\n                      ],\n                  }\n                : null,\n            regularTimeWindow\n                ? {\n                      ...(isFirstTimeWindow ? regularPickUpRange : regularDropOffRange),\n                      values: regularTimeWindow,\n                  }\n                : null,\n            layoverTimeWindow\n                ? {\n                      ...layoverDropOffRange,\n                      values: layoverTimeWindow,\n                      isHidden: true,\n                      marks: [\n                          {\n                              ...layoverMark,\n                              value: layoverTimeWindow[0],\n                          },\n                      ],\n                  }\n                : null,\n            originalTimeWindow\n                ? {\n                      ...originalRange,\n                      values: originalTimeWindow,\n                      isShowOutsideAvailableValues: true,\n                  }\n                : null,\n        ].filter(isNonNil);\n\n        const settings: TimeWindowPickerSettingsT = {\n            availableValues: convertReserveTimeWindowToRelativeTimeWindow(availableValues) || ALL_DAY_RANGE,\n            timeWindowRanges,\n            marks,\n        };\n\n        return settings;\n    }, [\n        tourUpdateStop,\n        tourUpdateStopTimeWindows,\n        selectedTimeWindow,\n        routePointIndex,\n        teamDriveDropOffRange,\n        regularDropOffRange,\n        urgentPickUpRange,\n        regularPickUpRange,\n        layoverDropOffRange,\n        layoverMark,\n        originalRange,\n        teamDriveMark,\n        urgentPickUpMark,\n    ]);\n\n    const relativeTimeWindow = useMemo((): TimeWindowT | null => {\n        return convertReserveTimeWindowToRelativeTimeWindow(selectedTimeWindow);\n    }, [selectedTimeWindow]);\n\n    const handleChangeTimeWindow = (value: TimeWindowT) => {\n        const newTimeWindow = setTimeWindowForReserveTimeWindow(value, selectedTimeWindow);\n\n        const start = newTimeWindow?.start || null;\n        const end = newTimeWindow?.end || null;\n        if (!start || !end) {\n            return;\n        }\n\n        const preparedLocation = prepareLocation(location);\n        if (!preparedLocation) {\n            return;\n        }\n\n        formik.setFieldValue(timeWindowFieldName, newTimeWindow);\n\n        onChangeRoutePointTimeWindow(routePointIndex, fakePointId, {\n            timeWindow: {\n                start,\n                end,\n            },\n            address: preparedLocation,\n            routePointType: type,\n        });\n    };\n\n    const selectedDate = React.useMemo(() => {\n        if (!selectedTimeWindow) {\n            return null;\n        }\n\n        return moment(clearDateTimezone(selectedTimeWindow.start)).toDate();\n    }, [selectedTimeWindow]);\n\n    const allowedTimeWindowStart = useMemo(() => {\n        return (\n            tourUpdateStopTimeWindows?.urgentTimeWindow?.start || tourUpdateStopTimeWindows?.regularTimeWindow?.start\n        );\n    }, [tourUpdateStopTimeWindows]);\n\n    const minDate = allowedTimeWindowStart;\n    const maxDate =\n        (tourUpdateStopTimeWindows?.layoverTimeWindow\n            ? tourUpdateStopTimeWindows?.layoverTimeWindow?.end\n            : tourUpdateStopTimeWindows?.regularTimeWindow?.end) || undefined;\n\n    const handleChangeDate = (date: CalendarDateValueT): void => {\n        if (!date) {\n            formik.setFieldValue(timeWindowFieldName, null);\n            return;\n        }\n\n        const newTimeWindow = setDateForReserveTimeWindow(date, selectedTimeWindow);\n        const isSameValue = isEqual(newTimeWindow, selectedTimeWindow);\n        if (isSameValue) {\n            return;\n        }\n\n        const start = newTimeWindow?.start || null;\n        const end = newTimeWindow?.end || null;\n        if (!start || !end) {\n            return;\n        }\n\n        const preparedLocation = prepareLocation(location);\n        if (!preparedLocation) {\n            return;\n        }\n\n        formik.setFieldValue(timeWindowFieldName, newTimeWindow);\n\n        onChangeRoutePointTimeWindow(routePointIndex, fakePointId, {\n            timeWindow: {\n                start,\n                end,\n            },\n            address: preparedLocation,\n            routePointType: type,\n        });\n    };\n\n    const isDisabledUpdateTimeWindows = isDisabledPreviewReserve || !isAllowUpdateTimeWindows;\n\n    const isNewRoutePoint = !contextRoutePointId;\n\n    return (\n        <div className={cs(cx('time-picker'), className)}>\n            <FormikConnectContextField<FormValuesT, typeof locationFieldName>\n                name={locationFieldName}\n                label={t('broker-order-route-edit.fields.drop-and-hook-point.label')}\n                fieldLabelClassName={cx('field', 'field--location')}\n                subLabel={\n                    <>\n                        <TimeIntervalDurationPillLabel\n                            className={cx('time-interval', {\n                                'time-interval--isHalfOpacity': isDisabledUpdateTimeWindows,\n                            })}\n                            i18nKey={null}\n                            isDayRelative\n                            timeWindow={relativeTimeWindow}\n                            isChanged={isChangedTimeWindow}\n                            originalDateTimeFrom={tourUpdateStop?.originalDateTimeFrom}\n                            originalDateTimeTo={tourUpdateStop?.originalDateTimeTo}\n                        />\n                        <TimeIntervalLimitPillLabel\n                            className={cx('time-interval', {\n                                'time-interval--isHalfOpacity': isDisabledUpdateTimeWindows,\n                            })}\n                            timeWindow={relativeTimeWindow}\n                        />\n                    </>\n                }\n                labelRightNode={\n                    <div className={cx('right-node')}>\n                        {selectedDate && (\n                            <LinkDatePicker\n                                leftIcon={\n                                    <CalendarAltIcon\n                                        size={DEFAULT_ICON_SIZE}\n                                        strokeColor={StyleGuideColorsEnum.brandDark}\n                                    />\n                                }\n                                isDisabled={isDisabledUpdateTimeWindows}\n                                minDate={minDate || undefined}\n                                maxDate={maxDate}\n                                value={selectedDate}\n                                onChange={handleChangeDate}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomRight}\n                            />\n                        )}\n                    </div>\n                }\n            >\n                {(props, extendsProps) => (\n                    <div className={cx('wrap')} data-point-id={fakePointId}>\n                        {isAllowUpdateAddress ? (\n                            <GeoSuggest\n                                className={cx('geo-suggest')}\n                                name={extendsProps.name}\n                                value={extendsProps.value}\n                                placeholder={t('broker-order-route-edit.fields.drop-and-hook-point.placeholder')}\n                                renderLeftIcon={({ hasValue, hasError, hasWarning, hasChanges, isDisabled }) => (\n                                    <WaypointNumberIcon\n                                        routePointIndex={routePointIndex}\n                                        hasValue={hasValue}\n                                        hasError={hasError}\n                                        hasWarning={hasWarning}\n                                        hasChanges={hasChanges}\n                                        isDisabled={isDisabled}\n                                        isDropAndHookRoutePointPicker\n                                        isNewRoutePoint={isNewRoutePoint}\n                                    />\n                                )}\n                                onChange={(value) => {\n                                    const location = prepareLocation(value);\n                                    if (!location) {\n                                        return;\n                                    }\n\n                                    props.onChange(value);\n\n                                    onManualSelectLocation(value, routePointIndex);\n\n                                    onChangeRoutePointAddress(routePointIndex, fakePointId, {\n                                        routePointType: type,\n                                        address: location,\n                                    });\n                                }}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onFocus={props.onFocus}\n                                onBlur={props.onBlur}\n                                hasChanges={hasAddressChanges}\n                                testSelector={`pickup-or-delivery-location-${routePointIndex}`}\n                                showClearControl={!!extendsProps.value}\n                                isLoading={isShowSuggestLoading}\n                                renderRightNode={\n                                    hasAddressChanges\n                                        ? () => (\n                                              <AddressChangesIndicator\n                                                  originalLocation={tourUpdateStop?.originalAddress}\n                                              />\n                                          )\n                                        : undefined\n                                }\n                            />\n                        ) : (\n                            <ReadOnlyField\n                                withoutErrorMessage\n                                icon={\n                                    <WaypointNumberIcon\n                                        routePointIndex={routePointIndex}\n                                        isDropAndHookRoutePointPicker\n                                        isNewRoutePoint={isNewRoutePoint}\n                                        hasValue={!!extendsProps.value}\n                                    />\n                                }\n                                value={extendsProps.value?.address || ''}\n                            />\n                        )}\n                        {isAllowRemove && (\n                            <DeleteWaypointTrigger\n                                onClick={() => {\n                                    onRemove(routePointIndex, fakePointId);\n                                }}\n                            />\n                        )}\n                    </div>\n                )}\n            </FormikConnectContextField>\n            <TimeWindowPicker\n                range={ALL_DAY_RANGE}\n                isDisabled={isDisabledUpdateTimeWindows}\n                availableValues={settings?.availableValues}\n                ranges={settings?.timeWindowRanges || []}\n                marks={settings?.marks}\n                values={relativeTimeWindow}\n                step={timeWindowQuantumMs}\n                minRangeWidth={minRangeTimeWindow}\n                maxRangeWidth={maxRangeTimeWindow}\n                renderZoneTextNode={renderZoneTextNode}\n                onChange={handleChangeTimeWindow}\n            />\n        </div>\n    );\n});\n\nexport default DropAndHookRoutePointPicker;\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { getZipCodeExample, hasZipCodeValidation, isValid } from 'common/utils/postal-codes';\nimport { checkMaxLength, checkMinLength, checkNotEmpty } from 'common/utils/form-validators';\n\nconst REQUIRED_FIELDS = [FieldsEnum.companyName, FieldsEnum.zipCode, FieldsEnum.city, FieldsEnum.street1] as const;\n\nconst validateForm = (t: TFunction, values: FormValuesT): Partial<Record<FieldsEnum, string>> => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n\n        ...checkMinLength(t, [FieldsEnum.companyName], values, 2),\n        ...checkMaxLength(t, [FieldsEnum.companyName], values, 255),\n    };\n\n    const countryCode = values[FieldsEnum.countryCode];\n    const zipCode = values[FieldsEnum.zipCode];\n    if (hasZipCodeValidation(countryCode) && !isValid(countryCode, zipCode)) {\n        errors[FieldsEnum.zipCode] = t('common:form-errors.zip-code', {\n            example: getZipCodeExample(countryCode),\n        });\n    }\n\n    return errors;\n};\n\nexport default validateForm;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './RejectDocumentConfirmation.scss';\nimport { useTranslation } from 'react-i18next';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport Modal from 'common/components/Modal/Modal';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport BigTrashIcon from 'common/icons/BigTrashIcon';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport Textarea from 'common/components/Textarea/Textarea';\nimport { useFormik } from 'formik';\nimport { logWarning } from 'common/utils/logger';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { prepareData } from './prepare-reject-data';\n\nexport type ConfirmRejectDocumentModalDataT = {\n    id: DocumentIdT;\n    partnerType: PartnerTypeEnum;\n    dictDocumentId: DictDocumentFakeIdT;\n};\n\ntype PropsT = {\n    data: ConfirmRejectDocumentModalDataT | null;\n    onConfirm: (id: ConfirmRejectDocumentModalDataT['id'], reason: string) => void;\n    requestStatus: RequestStatusT;\n    onClose: () => void;\n    onCancel: () => void;\n    name: string | undefined;\n};\n\nconst cx = classNames.bind(styles);\n\nconst TEST_SELECTOR = 'reject-document-confirmation';\n\nconst RejectDocumentConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { name, data, onConfirm, requestStatus, onClose } = props;\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues();\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const preparedData = prepareData(values);\n\n            if (!data) {\n                logWarning('failed to reject document, empty data');\n                return;\n            }\n\n            onConfirm(data.id, preparedData.reason);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <form onSubmit={formik.handleSubmit}>\n                    <ModalDialog\n                        width={DEFAULT_MODAL_DIALOG_WIDTH}\n                        testSelector={TEST_SELECTOR}\n                        actions={[\n                            {\n                                children: t('common:error-modal.actions.cancel'),\n                                theme: ButtonThemeEnum.secondary,\n                                testSelector: `${TEST_SELECTOR}_cancel`,\n                                isDisabled: requestStatus.loading,\n                                onClick: onClose,\n                            },\n                            {\n                                children: t('common:error-modal.actions.reject'),\n                                theme: ButtonThemeEnum.danger,\n                                testSelector: `${TEST_SELECTOR}_ok`,\n                                isLoading: requestStatus.loading,\n                                isDisabled: requestStatus.loading,\n                                type: 'submit',\n                            },\n                        ]}\n                        icon={<BigTrashIcon />}\n                        title={t('common:documents.reject-confirmation.title')}\n                        message={t('common:documents.reject-confirmation.description', {\n                            document: name,\n                        })}\n                        body={\n                            <>\n                                <FormikField\n                                    name={FieldsEnum.reason}\n                                    error={formik.errors[FieldsEnum.reason]}\n                                    meta={formik.getFieldMeta(FieldsEnum.reason)}\n                                    label={t('common:documents.reject-confirmation.fields.reason.label')}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                >\n                                    {(props) => (\n                                        <Textarea\n                                            className={cx('textarea')}\n                                            name={FieldsEnum.reason}\n                                            value={formik.values[FieldsEnum.reason]}\n                                            placeholder={t(\n                                                'common:documents.reject-confirmation.fields.reason.placeholder',\n                                            )}\n                                            onChange={props.onChange}\n                                            hasWarning={props.hasWarning}\n                                            hasError={props.hasError}\n                                        />\n                                    )}\n                                </FormikField>\n                            </>\n                        }\n                    />\n                </form>\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default RejectDocumentConfirmation;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './SpotRequestStatusPill.scss';\nimport { useTranslation } from 'react-i18next';\nimport PillLabel, { colorCodingPillLabelTheme, PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { ApiSpotRequestStatusT, SpotRequestStatStatusEnum } from 'broker-admin/utils/api/spot-broker-tranziit/models';\nimport { SPOT_REQUEST_STATUS_T_MAP } from 'common/components/status/SpotRequestStatus/SpotRequestStatus';\n\ntype PropsT = {\n    status?: ApiSpotRequestStatusT | null;\n    isSymmetrical?: boolean;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\nconst PILL_THEME_BY_STATUS: Record<ApiSpotRequestStatusT, PillLabelThemeEnum> = {\n    [SpotRequestStatStatusEnum.open]: colorCodingPillLabelTheme.normal,\n    [SpotRequestStatStatusEnum.expired]: colorCodingPillLabelTheme.warning,\n    [SpotRequestStatStatusEnum.accepted]: colorCodingPillLabelTheme.attention,\n    [SpotRequestStatStatusEnum.assigned]: colorCodingPillLabelTheme.positive,\n    [SpotRequestStatStatusEnum.canceled]: colorCodingPillLabelTheme.normal,\n};\n\nconst SpotRequestStatusPill: React.FC<PropsT> = React.memo((props) => {\n    const { status, isSymmetrical } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return null;\n    }\n\n    const theme = PILL_THEME_BY_STATUS[status] || PillLabelThemeEnum.charcoal;\n\n    return (\n        <>\n            <PillLabel isNoWrap isSymmetrical={isSymmetrical} theme={theme} testSelector=\"spot-request-status\">\n                {t(SPOT_REQUEST_STATUS_T_MAP[status])}\n            </PillLabel>\n        </>\n    );\n});\n\nexport default SpotRequestStatusPill;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { useSelector } from 'react-redux';\nimport { selectMaxWindowSizeMs, selectMinWindowSizeMs } from 'common/store/settings/selectors';\n\ntype PropsT = {\n    timeWindow: TimeWindowT | null | undefined;\n    className?: string;\n};\n\nconst TimeIntervalLimitPillLabel: React.FC<PropsT> = (props) => {\n    const { timeWindow, className } = props;\n\n    const { t } = useTranslation();\n\n    const minWindowSizeMs = useSelector(selectMinWindowSizeMs);\n    const maxWindowSizeMs = useSelector(selectMaxWindowSizeMs);\n\n    if (!timeWindow) {\n        return null;\n    }\n\n    const diff = timeWindow[1] - timeWindow[0];\n\n    return (\n        <>\n            {false && diff === minWindowSizeMs && (\n                <PillLabel isSymmetrical theme={PillLabelThemeEnum.blazeOrange} className={className}>\n                    {t('broker-order-route-edit.pills.min-time-slot')}\n                </PillLabel>\n            )}\n            {diff === maxWindowSizeMs && (\n                <PillLabel isSymmetrical theme={PillLabelThemeEnum.blazeOrange} className={className}>\n                    {t('broker-order-route-edit.pills.max-time-slot')}\n                </PillLabel>\n            )}\n        </>\n    );\n};\n\nexport default TimeIntervalLimitPillLabel;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './AdditionalManagementControl.scss';\nimport DropdownControl, {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { useTranslation } from 'react-i18next';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport MoreIcon from 'common/icons/MoreIcon';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport { TransportOrderDetailsT } from 'common/store/transport-order-details/models';\nimport TeamDrive2Icon from 'common/icons/TeamDrive2Icon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport EditIcon from 'common/icons/EditIcon';\nimport { isNonNil } from 'common/utils';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    transportOrderDetails: TransportOrderDetailsT | null | undefined;\n    isShowAssignDrivers: boolean;\n    isAllowAssignDrivers: boolean;\n    onStartAssignDrivers: () => void;\n    isAllowToUnassignDriver: boolean;\n    onUnassignedDrivers: () => void;\n    unassignDriverTooltipContent?: React.ReactNode | null;\n};\n\nconst AdditionalManagementControl: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        transportOrderDetails,\n        isShowAssignDrivers,\n        isAllowAssignDrivers,\n        onStartAssignDrivers,\n        isAllowToUnassignDriver,\n        onUnassignedDrivers,\n        unassignDriverTooltipContent,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const hasAssignedDrivers = !!transportOrderDetails?.drivers?.length;\n\n    const options: Array<DropdownControlOptionT | SpecialOptionEnum | null> = [\n        isAllowAssignDrivers && isShowAssignDrivers && !hasAssignedDrivers\n            ? {\n                  label: (\n                      <DropdownControlOptionLabel\n                          icon={<TeamDrive2Icon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.slate} />}\n                          label={\n                              <span className={cx('option')}>\n                                  {t('common:transport-order-details.actions.assign-drivers', {\n                                      postProcess: 'interval',\n                                      count: transportOrderDetails?.drivers?.length || 0,\n                                  })}\n                              </span>\n                          }\n                      />\n                  ),\n                  onSelect: () => {\n                      onStartAssignDrivers();\n                  },\n              }\n            : null,\n        isAllowAssignDrivers && isShowAssignDrivers && hasAssignedDrivers\n            ? {\n                  label: (\n                      <DropdownControlOptionLabel\n                          icon={\n                              <EditIcon\n                                  size={DEFAULT_ICON_SIZE}\n                                  fillColor={StyleGuideColorsEnum.brandAccent}\n                                  strokeColor={StyleGuideColorsEnum.brandDark}\n                              />\n                          }\n                          label={\n                              <span className={cx('option')}>\n                                  {t('common:transport-order-details.actions.manage-drivers', {\n                                      postProcess: 'interval',\n                                      count: transportOrderDetails?.drivers?.length || 0,\n                                  })}\n                              </span>\n                          }\n                      />\n                  ),\n                  onSelect: () => {\n                      onStartAssignDrivers();\n                  },\n              }\n            : null,\n        isAllowToUnassignDriver && isShowAssignDrivers && hasAssignedDrivers\n            ? {\n                  label: (\n                      <Tooltip\n                          position={TooltipPositionEnum.centerLeft}\n                          theme={TooltipThemeEnum.black}\n                          tooltipNode={unassignDriverTooltipContent || null}\n                      >\n                          {() => (\n                              <DropdownControlOptionLabel\n                                  icon={<CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                                  label={\n                                      <span className={cx('option')}>\n                                          {t('common:transport-order-details.actions.clear-drivers', {\n                                              postProcess: 'interval',\n                                              count: transportOrderDetails?.drivers?.length || 0,\n                                          })}\n                                      </span>\n                                  }\n                                  isDisabled={!isAllowToUnassignDriver}\n                              />\n                          )}\n                      </Tooltip>\n                  ),\n                  onSelect: () => {\n                      if (isAllowToUnassignDriver) {\n                          onUnassignedDrivers();\n                      }\n                  },\n              }\n            : null,\n    ].filter(isNonNil);\n\n    if (!options?.length) {\n        return null;\n    }\n\n    return (\n        <DropdownControl\n            className={className}\n            options={options}\n            renderTrigger={(isActive, onClick) => (\n                <TransparentTrigger\n                    isPressed={isActive}\n                    onClick={onClick}\n                    leftIcon={<MoreIcon />}\n                    reflectionTheme={ReflectionThemeEnum.light}\n                />\n            )}\n            overlayPosition={DropdownOverlayPositionEnum.topRight}\n        />\n    );\n});\n\nexport default AdditionalManagementControl;\n","export {\n    createTeam,\n    createTeamBegin,\n    createTeamSuccess,\n    createTeamError,\n    updateTeam,\n    updateTeamBegin,\n    updateTeamSuccess,\n    updateTeamError,\n    deleteTeam,\n    deleteTeamBegin,\n    deleteTeamSuccess,\n    deleteTeamError,\n    resetBrokerTeamEdit,\n} from './slice';\n","import isNumber from 'lodash/isNumber';\n\nexport const checkTemperatureViolation = ({\n    reeferTemperatureMin,\n    reeferTemperatureMax,\n    requiredTemperatureMin,\n    requiredTemperatureMax,\n}: {\n    reeferTemperatureMin: number | null | undefined;\n    reeferTemperatureMax: number | null | undefined;\n    requiredTemperatureMin: number | null | undefined;\n    requiredTemperatureMax: number | null | undefined;\n}) => {\n    return (\n        (isNumber(reeferTemperatureMin) &&\n            isNumber(requiredTemperatureMin) &&\n            reeferTemperatureMin < requiredTemperatureMin) ||\n        (isNumber(reeferTemperatureMax) &&\n            isNumber(requiredTemperatureMax) &&\n            reeferTemperatureMax > requiredTemperatureMax)\n    );\n};\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const brokerOrdersRefreshChannel = new ViewEventChannel<{}>();\n\nexport const brokerOrdersPaginationChannel = new ViewEventChannel<{\n    pageNumber: number;\n}>();\n","import {\n    AsyncRequestFactoryT,\n    useAsyncInitOptionsRequest,\n} from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-init-options-request';\nimport { useCallback } from 'react';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { OptionT } from '../ShippersSuggest';\nimport { TranziitApiResultT } from 'common/utils/api/tranziit/base-tranziit-api';\n\nexport const useShipperSuggestOptions = (initShipperIds: Array<ShipperIdT> | null) => {\n    const initRequestFactory: AsyncRequestFactoryT<OptionT> = useCallback(async () => {\n        if (!initShipperIds?.length) {\n            return [null, null];\n        }\n\n        const promises = initShipperIds.map((initShipperId) => {\n            return brokerTranziitApi.fetchPartnerDetails(initShipperId);\n        });\n\n        const results = await Promise.all(promises);\n\n        const resultOptions =\n            results?.reduce<Array<OptionT>>((acc, [, data]) => {\n                if (!data?.id) {\n                    return acc;\n                }\n\n                acc.push({\n                    id: data?.id,\n                    name: data?.name,\n                    number: data?.number,\n                    countryCode: data?.legalAddress?.country || null,\n                });\n\n                return acc;\n            }, []) || [];\n\n        const result: TranziitApiResultT<Array<OptionT>> = [null, resultOptions];\n\n        return result;\n    }, [initShipperIds]);\n\n    const { initOptions, initRequestStatus } = useAsyncInitOptionsRequest<OptionT>({\n        initRequestFactory,\n    });\n\n    return {\n        initOptions,\n        initRequestStatus,\n    };\n};\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './AdditionalServicesSettings.scss';\nimport { useDispatch, useSelector } from 'react-redux';\nimport TableMessage, { TableMessageIconsEnum } from 'common/components/Table/TableMessage/TableMessage';\nimport { useTranslation } from 'react-i18next';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport TableError from 'common/components/Table/TableError/TableError';\nimport {\n    fetchAdditionalServices,\n    updateAdditionalService,\n} from 'broker-admin/store/price-settings/additional-services/actions';\nimport {\n    selectAdditionalServices,\n    selectFetchAdditionalServicesRequest,\n    selectUpdateAdditionalServiceRequest,\n} from 'broker-admin/store/price-settings/additional-services/selectors';\nimport ServicesTable from 'broker-admin/layouts/SettingsPage/AdditionalServicesSettings/ServicesTable/ServicesTable';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport { ServiceTableRowT } from 'broker-admin/layouts/SettingsPage/AdditionalServicesSettings/ServicesTable/models';\nimport { flatMap } from 'lodash';\nimport { ApiCarrierAdditionalServiceChangesT } from 'broker-admin/utils/api/broker-tranziit/models';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst AdditionalServicesSettings: React.FC<PropsT> = () => {\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const serviceGroups = useSelector(selectAdditionalServices);\n\n    const updateAdditionalServiceRequestStatus = useSelector(selectUpdateAdditionalServiceRequest);\n    const fetchAdditionalServiceRequestStatus = useSelector(selectFetchAdditionalServicesRequest);\n\n    React.useEffect(() => {\n        dispatch(\n            fetchAdditionalServices({\n                isForceUpdate: false,\n            }),\n        );\n\n        return (): void => {\n            // TODO reset\n        };\n    }, [dispatch]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        dispatch(\n            fetchAdditionalServices({\n                isForceUpdate: false,\n            }),\n        );\n    }, [dispatch]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const handleUpdateService = (row: ServiceTableRowT, cost: number) => {\n        const changes: ApiCarrierAdditionalServiceChangesT = {\n            itemCost: cost,\n            service: row.service.service,\n            trailerType: row.trailerType,\n        };\n\n        dispatch(updateAdditionalService([changes]));\n    };\n\n    const isLoading = fetchAdditionalServiceRequestStatus.loading || updateAdditionalServiceRequestStatus.loading;\n\n    const list = React.useMemo(() => {\n        return flatMap(serviceGroups, (serviceGroup) => {\n            const { category, trailerType, services } = serviceGroup;\n\n            return services.map((service): ServiceTableRowT => {\n                return {\n                    service,\n                    trailerType,\n                    category,\n                };\n            });\n        });\n    }, [serviceGroups]);\n\n    return (\n        <ContentMargins>\n            {!list?.length && fetchAdditionalServiceRequestStatus?.ok && (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.empty}\n                    title={t('price-settings.rate-matrix.empty.title')}\n                    description=\"\"\n                    isShowAction={false}\n                />\n            )}\n            {!list?.length && fetchAdditionalServiceRequestStatus?.error && <TableError />}\n            <ServicesTable\n                onUpdateService={handleUpdateService}\n                list={list}\n                isLoading={isLoading}\n                isDisabled={updateAdditionalServiceRequestStatus.loading}\n                className={cx('table')}\n            />\n        </ContentMargins>\n    );\n};\n\nexport default AdditionalServicesSettings;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { getDateFromDate, getEndDayFromDateZero, getStartDayFromDateZero } from 'common/utils/time';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport { simpleStringFormatter } from 'common/utils/form-formatters';\nimport { QueryFiltersT, QueryFiltersKeysEnum } from '../query-models';\n\nconst getQueryFilters = (values: FormValuesT): QueryFiltersT => {\n    const minPrice = parseSimpleNumber(values[FieldsEnum.minPrice]);\n    const maxPrice = parseSimpleNumber(values[FieldsEnum.maxPrice]);\n\n    const queryFilters: QueryFiltersT = {\n        [QueryFiltersKeysEnum.orderType]: values[FieldsEnum.orderType] || undefined,\n\n        [QueryFiltersKeysEnum.dictTrailerId]: values[FieldsEnum.dictTrailerId] || undefined,\n        [QueryFiltersKeysEnum.plateNumber]: simpleStringFormatter(values[FieldsEnum.plateNumber]) || undefined,\n\n        [QueryFiltersKeysEnum.originAddress]: simpleStringFormatter(values[FieldsEnum.originAddress]) || undefined,\n        [QueryFiltersKeysEnum.destinationAddress]:\n            simpleStringFormatter(values[FieldsEnum.destinationAddress]) || undefined,\n\n        [QueryFiltersKeysEnum.driverId]: values[FieldsEnum.driverId] || undefined,\n        [QueryFiltersKeysEnum.driverName]: values[FieldsEnum.driverName] || undefined,\n        [QueryFiltersKeysEnum.minPrice]: minPrice ? String(minPrice) : undefined,\n        [QueryFiltersKeysEnum.maxPrice]: maxPrice ? String(maxPrice) : undefined,\n\n        [QueryFiltersKeysEnum.pickupDateFrom]: undefined,\n        [QueryFiltersKeysEnum.pickupDateTo]: undefined,\n\n        [QueryFiltersKeysEnum.dropOffDateFrom]: undefined,\n        [QueryFiltersKeysEnum.dropOffDateTo]: undefined,\n\n        [QueryFiltersKeysEnum.receiveDatesFrom]: undefined,\n        [QueryFiltersKeysEnum.receiveDatesTo]: undefined,\n    };\n\n    const pickupDates = values[FieldsEnum.pickupDates];\n    if (pickupDates?.from) {\n        const date = getDateFromDate(pickupDates.from);\n        queryFilters[QueryFiltersKeysEnum.pickupDateFrom] = getStartDayFromDateZero(date);\n    }\n\n    if (pickupDates?.to) {\n        const date = getDateFromDate(pickupDates.to);\n        queryFilters[QueryFiltersKeysEnum.pickupDateTo] = getEndDayFromDateZero(date);\n    }\n\n    const dropoffDates = values[FieldsEnum.dropoffDates];\n    if (dropoffDates?.from) {\n        const date = getDateFromDate(dropoffDates.from);\n        queryFilters[QueryFiltersKeysEnum.dropOffDateFrom] = getStartDayFromDateZero(date);\n    }\n\n    if (dropoffDates?.to) {\n        const date = getDateFromDate(dropoffDates.to);\n        queryFilters[QueryFiltersKeysEnum.dropOffDateTo] = getEndDayFromDateZero(date);\n    }\n\n    const receiveDates = values[FieldsEnum.receiveDates];\n    if (receiveDates?.from) {\n        const date = getDateFromDate(receiveDates.from);\n        queryFilters[QueryFiltersKeysEnum.receiveDatesFrom] = getStartDayFromDateZero(date);\n    }\n\n    if (receiveDates?.to) {\n        const date = getDateFromDate(receiveDates.to);\n        queryFilters[QueryFiltersKeysEnum.receiveDatesTo] = getEndDayFromDateZero(date);\n    }\n\n    return queryFilters;\n};\n\nexport default getQueryFilters;\n","import { ApiEditOrderContextT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { ContextRoutePointAliasT } from '../models';\n\nexport const getDeletedStopAliases = (\n    prevContext: ApiEditOrderContextT | null,\n    contextAfterModify: ApiEditOrderContextT | null,\n): Array<ContextRoutePointAliasT> => {\n    const prevStopAliases =\n        prevContext?.tours\n            ?.flatMap((tour) => {\n                return tour?.stops || [];\n            })\n            .map((stop) => stop.alias) || [];\n\n    const contextStopAliases =\n        contextAfterModify?.tours\n            ?.flatMap((tour) => {\n                return tour?.stops || [];\n            })\n            .map((stop) => stop.alias) || [];\n\n    return prevStopAliases.filter((alias): alias is string => Boolean(alias) && !contextStopAliases.includes(alias));\n};\n","import * as React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './DropdownControlOptionLabel.scss';\nimport CheckIcon from 'common/icons/CheckIcon';\n\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\nexport type DropdownControlOptionLabelPropsT = {\n    label: React.ReactNode;\n    icon?: React.ReactNode;\n    withoutPaddings?: boolean;\n    description?: React.ReactNode;\n    isSelected?: boolean;\n    withSelectedCheck?: boolean;\n    isDisabled?: boolean;\n    isEmpty?: boolean;\n    className?: string;\n};\n\nconst DropdownControlOptionLabel: React.FC<DropdownControlOptionLabelPropsT> = (props) => {\n    const { className, label, icon, description, isSelected, isDisabled, isEmpty, withSelectedCheck, withoutPaddings } =\n        props;\n\n    return (\n        <div\n            className={cs(\n                cx('option', {\n                    'option--isSelected': isSelected,\n                    'option--withoutPaddings': withoutPaddings,\n                }),\n                className,\n            )}\n        >\n            {icon && (\n                <div\n                    className={cx('option__left-icon', {\n                        'option__left-icon--isDisabled': !!isDisabled,\n                    })}\n                >\n                    {icon}\n                </div>\n            )}\n            <div\n                className={cx('option__label', {\n                    'option__label--isDisabled': !!isDisabled,\n                    'option__label--isEmpty': !!isEmpty,\n                })}\n            >\n                {label}\n            </div>\n            {!!description && (\n                <>\n                    <div className={cx('option__spacer')} />\n                    <div className={cx('option__description')}>{description}</div>\n                </>\n            )}\n            {isSelected && withSelectedCheck && (\n                <>\n                    <div className={cx('option__spacer')} />\n                    <div className={cx('option__right-icon')}>\n                        <CheckIcon fillColor={StyleGuideColorsEnum.charcoal} size={DEFAULT_ICON_SIZE} />\n                    </div>\n                </>\n            )}\n        </div>\n    );\n};\n\nexport default DropdownControlOptionLabel;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ContinueSignUpForm.scss';\n\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useFormik } from 'formik';\nimport { AUTO_COMPLETE_OFF_FIX } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\n\nimport { FieldsEnum, FormValuesT } from './constants';\nimport asyncValidate from './async-validations';\nimport validateForm from './validate-form';\nimport Input from 'common/components/Input/Input';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport Checkbox from 'design-system/components/Checkbox/Checkbox';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport PhoneNumberInput from 'common/components/PhoneNumberInput/PhoneNumberInput';\nimport useAsyncFormErrors from 'common/utils/hooks/useAsyncFormErrors';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport useAsyncFormErrorMessage from 'common/utils/hooks/useAsyncFormErrorMessage';\nimport { useSelector } from 'react-redux';\nimport { checkRegisteredUser } from 'common/store/auth/selectors';\nimport { selectCurrentUser } from 'common/store/user/selectors';\nimport { authApi } from 'common/utils/api/auth/factory';\n\nconst cx = classNames.bind(styles);\n\nconst INITIAL_VALUES: FormValuesT = {\n    [FieldsEnum.firstName]: '',\n    [FieldsEnum.lastName]: '',\n    [FieldsEnum.phone]: '+',\n    [FieldsEnum.password]: '',\n    [FieldsEnum.acceptTerms]: false,\n};\n\ntype PropsT = {\n    onSubmit: (formValues: FormValuesT) => void;\n    requestStatus: RequestStatusT;\n};\n\nconst ContinueSignUpForm: React.FC<PropsT> = React.memo((props) => {\n    const { onSubmit, requestStatus } = props;\n    const { t } = useTranslation();\n\n    const isRegisteredUser = useSelector(checkRegisteredUser);\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values, isRegisteredUser);\n    }, [t, isRegisteredUser]);\n\n    const user = useSelector(selectCurrentUser);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = {\n            ...INITIAL_VALUES,\n            [FieldsEnum.firstName]: user?.name || '',\n            [FieldsEnum.lastName]: user?.surname || '',\n            [FieldsEnum.phone]: user?.phone || '',\n        };\n\n        const errors = validateForm(t, values, isRegisteredUser);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [user]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            onSubmit(values);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const asyncErrors = React.useMemo(() => {\n        return asyncValidate(requestStatus);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [requestStatus?.error]);\n\n    const { asyncFormErrors, resetAsyncFormErrors } = useAsyncFormErrors(asyncErrors);\n\n    const passwordAsyncError = useAsyncFormErrorMessage(asyncFormErrors[FieldsEnum.password]);\n\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <div className={cx('fields')}>\n                <FormikField\n                    name={FieldsEnum.firstName}\n                    error={formik.errors[FieldsEnum.firstName]}\n                    meta={formik.getFieldMeta(FieldsEnum.firstName)}\n                    label={t('common:sign-up.fields.firstName.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                    resetAsyncError={resetAsyncFormErrors}\n                >\n                    {(props) => (\n                        <Input\n                            name={FieldsEnum.firstName}\n                            value={formik.values[FieldsEnum.firstName]}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    name={FieldsEnum.lastName}\n                    error={formik.errors[FieldsEnum.lastName]}\n                    meta={formik.getFieldMeta(FieldsEnum.lastName)}\n                    label={t('common:sign-up.fields.lastName.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                    resetAsyncError={resetAsyncFormErrors}\n                >\n                    {(props) => (\n                        <Input\n                            name={FieldsEnum.lastName}\n                            value={formik.values[FieldsEnum.lastName]}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    name={FieldsEnum.phone}\n                    error={formik.errors[FieldsEnum.phone]}\n                    meta={formik.getFieldMeta(FieldsEnum.phone)}\n                    label={t('common:sign-up.fields.phone.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                    resetAsyncError={resetAsyncFormErrors}\n                >\n                    {(props) => (\n                        <PhoneNumberInput\n                            name={FieldsEnum.phone}\n                            value={formik.values[FieldsEnum.phone]}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikField>\n                {!isRegisteredUser && (\n                    <FormikField\n                        name={FieldsEnum.password}\n                        error={formik.errors[FieldsEnum.password]}\n                        meta={formik.getFieldMeta(FieldsEnum.password)}\n                        label={t('common:sign-up.fields.password.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                        resetAsyncError={resetAsyncFormErrors}\n                        asyncError={passwordAsyncError}\n                    >\n                        {(props) => (\n                            <Input\n                                type=\"password\"\n                                name={FieldsEnum.password}\n                                value={formik.values[FieldsEnum.password]}\n                                placeholder={t('common:sign-up.fields.password.placeholder')}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                autoComplete={AUTO_COMPLETE_OFF_FIX}\n                            />\n                        )}\n                    </FormikField>\n                )}\n                <FormikField\n                    className={cx('checkbox')}\n                    name={FieldsEnum.acceptTerms}\n                    error={formik.errors[FieldsEnum.acceptTerms]}\n                    meta={formik.getFieldMeta(FieldsEnum.acceptTerms)}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                    isCheckbox\n                >\n                    {(props) => (\n                        <Checkbox\n                            checked={formik.values[FieldsEnum.acceptTerms]}\n                            onChange={props.onChange}\n                            label={\n                                <span className={cx('terms')}>\n                                    {t('common:sign-up.user-form.terms.read')}{' '}\n                                    <Link\n                                        isExternal\n                                        theme={LinkThemeEnum.boldCharcoal}\n                                        to={t('common:sign-up.user-form.terms.link')}\n                                        target=\"_blank\"\n                                    >\n                                        {t('common:sign-up.user-form.terms.link-text')}\n                                    </Link>\n                                </span>\n                            }\n                        />\n                    )}\n                </FormikField>\n            </div>\n            <Button\n                isLoading={requestStatus.loading}\n                theme={ButtonThemeEnum.primary}\n                isDisabled={!formik.values[FieldsEnum.acceptTerms]}\n                type=\"submit\"\n                className={cx('submit')}\n            >\n                {t('common:sign-up.user-form.submit')}\n            </Button>\n            {!isRegisteredUser && (\n                <div className={cx('footer-links')}>\n                    {t('common:sign-up.user-form.footer.have-account')}\n                    <span className={cx('footer-links__link')}>\n                        <Link theme={LinkThemeEnum.boldAzul} to={authApi.createSignInUrl()}>\n                            {t('common:sign-up.user-form.footer.sign-in')}\n                        </Link>\n                    </span>\n                </div>\n            )}\n        </form>\n    );\n});\n\nexport default ContinueSignUpForm;\n","import * as React from 'react';\nimport SideBarLayoutContext from '../contexts/side-bar-layout-context';\nimport useScrollBarWidth from 'common/utils/hooks/useScrollBarWidth';\nimport useSideBarFooterHeight from 'common/utils/hooks/useSideBarFooterHeight';\nimport useSideBarHeaderHeight from 'common/utils/hooks/useSideBarHeaderHeight';\nimport useScrollTop from 'common/utils/hooks/useScrollTop';\n\ntype PropsT = {};\n\nconst SideBarLayoutContextWrap: React.FC<PropsT> = React.memo((props) => {\n    const scrollBarWidth = useScrollBarWidth();\n    const sideBarFooter = useSideBarFooterHeight();\n    const sideBarHeader = useSideBarHeaderHeight();\n    const scrollTop = useScrollTop();\n\n    const value = React.useMemo(() => {\n        return {\n            scrollBarWidth,\n            footerHeight: sideBarFooter,\n            headerHeight: sideBarHeader,\n            scrollTop,\n        };\n    }, [scrollBarWidth, sideBarFooter, sideBarHeader, scrollTop]);\n\n    return <SideBarLayoutContext.Provider value={value}>{props.children}</SideBarLayoutContext.Provider>;\n});\n\nexport default SideBarLayoutContextWrap;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './BaseCarrierContractsLayout.scss';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    ApiCarrierContractStatusT,\n    ApiRevokePartnerContractInfoT,\n    CarrierContractStatusEnum,\n} from 'common/utils/api/models';\nimport { logWarning } from 'common/utils/logger';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport { useOpenLeftSidebar } from 'common/layouts/SideBars/hooks';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { pickFile } from 'common/utils/pick-file';\n\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport BaseCarrierContractsTable from 'common/layouts/BaseCarrierContractsLayout/BaseCarrierContractsTable/BaseCarrierContractsTable';\nimport RevokeContractConfirmation, {\n    ConfirmRevokeContractModalDataT,\n} from './dialogs/RevokeContractConfirmation/RevokeContractConfirmation';\nimport { ContractRowT } from 'common/layouts/BaseCarrierContractsLayout/BaseCarrierContractsTable/models';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport {\n    downloadCarrierContract,\n    fetchCarrierContracts,\n    revokeCarrierContract,\n    uploadCarrierContract,\n} from 'common/store/carrier-contracts/actions';\nimport {\n    selectCarrierContracts,\n    selectFetchCarrierContractsRequest,\n    selectUpdateCarrierContractRequest,\n    selectUploadCarrierContractRequest,\n} from 'common/store/carrier-contracts/selectors';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { carrierContractsRefreshChannel } from 'common/store/carrier-contracts/channels';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    tableName: string;\n    isLoading: boolean;\n\n    testSelector?: string;\n    contactStatusesAttentionSet?: Set<ApiCarrierContractStatusT | null>;\n\n    navigationTabs: React.ReactNode;\n};\n\nconst BaseCarrierContractsLayout: React.FC<PropsT> = React.memo((props) => {\n    const { tableName, testSelector, navigationTabs, contactStatusesAttentionSet } = props;\n\n    const { partnerId, partnerType } = usePartnerContext();\n\n    const { t } = useTranslation();\n\n    const permissions = useSelector(selectPermissions);\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in BaseCarrierContractsLayout useEffect');\n            return;\n        }\n        dispatch(fetchCarrierContracts(partnerId));\n    }, [dispatch, partnerId]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in documentVisibilityChangeHandler');\n            return;\n        }\n        dispatch(fetchCarrierContracts(partnerId));\n    }, [dispatch, partnerId]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const refreshPageHandler = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in refreshPageHandler');\n            return;\n        }\n        dispatch(fetchCarrierContracts(partnerId, { isForceUpdate: true }));\n    }, [dispatch, partnerId]);\n    useChannelSubscribe(carrierContractsRefreshChannel, refreshPageHandler);\n\n    const carrierContracts = useSelector(selectCarrierContracts(partnerId));\n\n    const confirmRevokeContractModalDialog = useModalDialog<ConfirmRevokeContractModalDataT>();\n\n    const fetchContractsRequest = useSelector(selectFetchCarrierContractsRequest(partnerId));\n    const updateCarrierContractRequest = useSelector(selectUpdateCarrierContractRequest(partnerId));\n\n    const uploadCarrierContractRequest = useSelector(selectUploadCarrierContractRequest(partnerId));\n\n    const isWaitAction = uploadCarrierContractRequest.loading || updateCarrierContractRequest.loading;\n\n    const handleDownloadContract = (carrierContractId: CarrierContractIdT) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleDownloadContract');\n            return;\n        }\n        dispatch(downloadCarrierContract(carrierContractId, partnerId));\n    };\n\n    const handleConfirmRevokeContract = (contractId: CarrierContractIdT, revokeInfo: ApiRevokePartnerContractInfoT) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleConfirmRevokeContract');\n            return;\n        }\n        dispatch(revokeCarrierContract({ partnerId, contractId, revokeInfo }));\n    };\n\n    const handleUploadContract = (): void => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleUploadContract');\n            return;\n        }\n        pickFile('image/*,application/pdf', (file) => {\n            dispatch(uploadCarrierContract(partnerId, file));\n        });\n    };\n\n    const handleRevokeContract = (data: ConfirmRevokeContractModalDataT) => {\n        confirmRevokeContractModalDialog.setData(data);\n    };\n\n    const handleEditContractInfo = (contractId: ContactIdT) => {\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.carrierContract,\n            contractId,\n            initIsEditing: true,\n        });\n    };\n\n    useCloseModalDialogAfterRequest(updateCarrierContractRequest, [confirmRevokeContractModalDialog]);\n\n    const openLeftSidebar = useOpenLeftSidebar();\n    const handleOpenUserDetails = (userId: UserIdT | null) => {\n        if (!userId) {\n            logWarning('failed to open user details in dispatch details, empty user id');\n            return;\n        }\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in handleOpenUserDetails');\n            return;\n        }\n\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId,\n            partnerType,\n            userId,\n        });\n    };\n\n    const handleSelectTableRow = (row: ContractRowT) => {\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.carrierContract,\n            contractId: row.id,\n            initIsEditing:\n                permissions.canReviewCarrierContracts && row?.status === CarrierContractStatusEnum.waitingForApprove,\n        });\n    };\n\n    const isLoading = props.isLoading || fetchContractsRequest.loading;\n\n    return (\n        <>\n            <div className={cx('navigation-tabs')}>{navigationTabs}</div>\n            {isWaitAction && <LoaderOverlay />}\n            <BaseCarrierContractsTable\n                tableName={tableName}\n                testSelector={testSelector}\n                isLoading={isLoading}\n                rows={carrierContracts}\n                contactStatusesAttentionSet={contactStatusesAttentionSet}\n                onSelectRow={handleSelectTableRow}\n                onOpenUserDetails={handleOpenUserDetails}\n                onRevokeContract={handleRevokeContract}\n                onEditContractDetails={handleEditContractInfo}\n                onDownloadContract={handleDownloadContract}\n                headerNode={\n                    permissions.canUploadCarrierContracts ? (\n                        <div>\n                            <Button\n                                className={cx('upload-pseudo-row')}\n                                theme={ButtonThemeEnum.secondary}\n                                onClick={handleUploadContract}\n                            >\n                                <span className={cx('upload-text')}>\n                                    {t('common:carrier-contracts.table.actions.upload')}\n                                </span>\n                            </Button>\n                        </div>\n                    ) : null\n                }\n            />\n            <RevokeContractConfirmation\n                data={confirmRevokeContractModalDialog.data}\n                onCancel={confirmRevokeContractModalDialog.onCancel}\n                onClose={confirmRevokeContractModalDialog.onClose}\n                onConfirm={handleConfirmRevokeContract}\n                requestStatus={updateCarrierContractRequest}\n            />\n        </>\n    );\n});\n\nexport default BaseCarrierContractsLayout;\n","import * as React from 'react';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { ApiPriceRuleTypeT, PriceRuleTypeEnum } from 'common/utils/api/models';\nimport PriceRuleTypeLabel from '../../PriceRuleTypeLabel/PriceRuleTypeLabel';\n\ntype PropsT = {\n    ruleType: ApiPriceRuleTypeT | null | undefined;\n};\n\nconst RULE_TYPE_PILL_THEME_MAP: Record<ApiPriceRuleTypeT, PillLabelThemeEnum> = {\n    [PriceRuleTypeEnum.basic]: PillLabelThemeEnum.lightSlateGray,\n    [PriceRuleTypeEnum.carrier]: PillLabelThemeEnum.tumbleweed,\n    [PriceRuleTypeEnum.shipper]: PillLabelThemeEnum.pewterBlue,\n    [PriceRuleTypeEnum.custom]: PillLabelThemeEnum.tomatoRed70,\n};\n\nconst PriceRuleTypePill: React.FC<PropsT> = React.memo((props) => {\n    const { ruleType } = props;\n\n    if (!ruleType) {\n        return null;\n    }\n\n    return (\n        <PillLabel theme={RULE_TYPE_PILL_THEME_MAP[ruleType]} testSelector=\"rule-type-pill\" isSymmetrical>\n            <PriceRuleTypeLabel ruleType={ruleType} />\n        </PillLabel>\n    );\n});\n\nexport default PriceRuleTypePill;\n","// extracted by mini-css-extract-plugin\nexport default {\"avatar\":\"Avatar__avatar___nvxKU\",\"avatar--0\":\"Avatar__avatar--0___mQO2C\",\"avatar--1\":\"Avatar__avatar--1___S7_vB\",\"avatar--2\":\"Avatar__avatar--2___BJ9QX\",\"avatar--3\":\"Avatar__avatar--3___DoG4_\",\"avatar--4\":\"Avatar__avatar--4___AH6_e\",\"avatar--5\":\"Avatar__avatar--5___AodFu\",\"avatar--6\":\"Avatar__avatar--6___zq8Pv\",\"avatar--size-small\":\"Avatar__avatar--size-small___QWnxZ\",\"avatar--size-medium\":\"Avatar__avatar--size-medium___B4iYv\",\"avatar--size-large\":\"Avatar__avatar--size-large___MSBGL\",\"avatar--size-extra-large\":\"Avatar__avatar--size-extra-large___HHAal\",\"fadeIn\":\"Avatar__fadeIn___ERFHv\",\"blinking\":\"Avatar__blinking___NwXdk\"};","import { TFunction } from 'i18next';\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkMaxValue, checkMinValue, checkNotEmpty } from 'common/utils/form-validators';\nimport values from 'lodash/values';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport isNumber from 'lodash/isNumber';\nimport { SystemSettingsT } from 'broker-admin/store/price-settings/system-settings/models';\nimport { MIN_IN_HOUR } from 'common/utils/time';\n\nconst REQUIRED_FIELDS = values<FieldsEnum>(FieldsEnum);\n\ntype MetaT = {\n    systemSettings: SystemSettingsT | null | undefined;\n};\n\nconst validate = (t: TFunction, values: FormValuesT, meta: MetaT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n        ...checkMinValue(\n            t,\n            [FieldsEnum.transportationOrderHasNoDriverAlertTime, FieldsEnum.transportationOrderHasNoAssetsAlertTime],\n            values,\n            30,\n        ),\n        ...checkMaxValue(\n            t,\n            [FieldsEnum.transportationOrderHasNoDriverAlertTime, FieldsEnum.transportationOrderHasNoAssetsAlertTime],\n            values,\n            480,\n        ),\n        ...checkMinValue(t, [FieldsEnum.assignDriverLimitAlert], values, 0),\n\n        ...checkMinValue(t, [FieldsEnum.allowedGAPToBeDelayed], values, 0),\n        ...checkMaxValue(t, [FieldsEnum.allowedGAPToBeDelayed], values, 300),\n\n        ...checkMinValue(t, [FieldsEnum.deleteNotificationsOlderDays], values, 3),\n        ...checkMaxValue(t, [FieldsEnum.deleteNotificationsOlderDays], values, 365),\n\n        ...checkMinValue(t, [FieldsEnum.docExpiresSoonAlert], values, 0),\n        ...checkMaxValue(t, [FieldsEnum.docExpiresSoonAlert], values, 30),\n\n        ...checkMinValue(t, [FieldsEnum.radiusAroundWaypointM], values, 100),\n        ...checkMaxValue(t, [FieldsEnum.radiusAroundWaypointM], values, 50000),\n\n        ...checkMinValue(\n            t,\n            [FieldsEnum.timeLimitToCancelOrderHours, FieldsEnum.timeLimitToCancelTransportationOrderHours],\n            values,\n            0,\n        ),\n        ...checkMaxValue(\n            t,\n            [FieldsEnum.timeLimitToCancelOrderHours, FieldsEnum.timeLimitToCancelTransportationOrderHours],\n            values,\n            48,\n        ),\n    };\n\n    const assignDriverLimitAlert = values[FieldsEnum.assignDriverLimitAlert];\n    const noDriverAlert = values[FieldsEnum.transportationOrderHasNoDriverAlertTime];\n    if (assignDriverLimitAlert && noDriverAlert) {\n        const parsedAssignDriverLimitAlert = parseSimpleNumber(assignDriverLimitAlert);\n        const parsedNoDriverAlert = parseSimpleNumber(noDriverAlert);\n\n        if (\n            isNumber(parsedNoDriverAlert) &&\n            isNumber(parsedAssignDriverLimitAlert) &&\n            parsedAssignDriverLimitAlert > parsedNoDriverAlert\n        ) {\n            errors[FieldsEnum.assignDriverLimitAlert] = t(\n                'price-settings.alerts-form.errors.less-than-no-driver-alert',\n            );\n        }\n    }\n\n    const assignAssetLimitAlert = values[FieldsEnum.assignAssetLimitAlert];\n    const parsedAssignAssetLimitAlertMin = parseSimpleNumber(assignAssetLimitAlert);\n\n    const noAssetAlert = values[FieldsEnum.transportationOrderHasNoAssetsAlertTime];\n    if (noAssetAlert) {\n        const parsedNoAssetAlert = parseSimpleNumber(noAssetAlert);\n        if (\n            isNumber(parsedNoAssetAlert) &&\n            isNumber(parsedAssignAssetLimitAlertMin) &&\n            parsedAssignAssetLimitAlertMin > parsedNoAssetAlert\n        ) {\n            errors[FieldsEnum.assignAssetLimitAlert] = t('price-settings.alerts-form.errors.less-than-no-asset-alert');\n        }\n    }\n\n    const urgentOrderProcessingDelay = meta?.systemSettings?.URGENT_ORDER_PROCESSING_DELAY;\n    const urgentOrderProcessingDelayHours = parseSimpleNumber(urgentOrderProcessingDelay);\n    if (urgentOrderProcessingDelayHours) {\n        const urgentOrderProcessingDelayMin = urgentOrderProcessingDelayHours * MIN_IN_HOUR;\n        if (\n            isNumber(urgentOrderProcessingDelayMin) &&\n            isNumber(parsedAssignAssetLimitAlertMin) &&\n            parsedAssignAssetLimitAlertMin > urgentOrderProcessingDelayMin - MIN_IN_HOUR\n        ) {\n            errors[FieldsEnum.assignAssetLimitAlert] = t(\n                'price-settings.errors-template.less-than-other-setting-minus-one-hour',\n                {\n                    settingName: t('price-settings.new-order-parameters-form.fields.urgentOrderProcessingDelay.label'),\n                },\n            );\n        }\n    }\n\n    return errors;\n};\n\nexport default validate;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"TransportOrderDetailsPageLayout__fadeIn___u2zEI\",\"blinking\":\"TransportOrderDetailsPageLayout__blinking___UjZ9W\"};","import * as React from 'react';\nimport { DependencyList } from 'react';\n\nfunction useOnlyChangesEffect(callback: () => void, dependencyList: DependencyList) {\n    const firstUpdate = React.useRef(true);\n\n    React.useEffect(() => {\n        if (firstUpdate.current) {\n            firstUpdate.current = false;\n            return;\n        }\n\n        callback();\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, dependencyList);\n}\n\nexport default useOnlyChangesEffect;\n","// extracted by mini-css-extract-plugin\nexport default {\"placeholder\":\"PapersMessagePlaceholder__placeholder___vUKJn\",\"fadeIn\":\"PapersMessagePlaceholder__fadeIn___b6Thc\",\"blinking\":\"PapersMessagePlaceholder__blinking___JkwgS\"};","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"UserMultipleDropdown__option___gljng\",\"fadeIn\":\"UserMultipleDropdown__fadeIn___WmBvf\",\"blinking\":\"UserMultipleDropdown__blinking___t_IUC\"};","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './PriceSettingsEditRuleLayout.scss';\nimport { useTranslation } from 'react-i18next';\nimport scrollIntoView from 'scroll-into-view';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useFormik } from 'formik';\nimport {\n    diffImpactStrategySet,\n    FieldsEnum,\n    FormValuesT,\n    getAvailablePriceComponent,\n    getAvailableStrategies,\n    RepeatTypeEnum,\n} from './constants';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport validateForm from './validate-form';\nimport getInitialValues, { DEFAULT_IMPACT_DIFF_VALUE, DEFAULT_IMPACT_VALUE } from './get-initial-values';\nimport prepareApiRule from './prepare-api-rule';\nimport Input from 'common/components/Input/Input';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport CheckboxOptionsList from 'common/components/CheckboxOptionsList/CheckboxOptionsList';\nimport { CountryCodeT } from 'common/store/countries-dict/models';\nimport DeprecatedCountyFlagLabel from 'common/components/DeprecatedCountyFlagLabel/DeprecatedCountyFlagLabel';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectCountriesAllCodes, selectCountriesByCode } from 'common/store/countries-dict/selectors';\nimport DatePicker, { DatePickerOverlayPositionEnum } from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport { getMoneyMask, getPercentDiffMask } from 'common/utils/input-masks';\nimport DropdownMultipleInput from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInput';\nimport ControlsCell from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/RulesTable/cell-renderers/ControlsCell/ControlsCell';\nimport { CURRENCY_SYMBOLS, DaysEnum, WEEK_DAYS_ORDER } from 'common/constants';\nimport { RepeatStrategyOptionT } from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/models';\nimport { ApiRuleImpactStrategyTypeT, PriceRuleTypeEnum } from 'common/utils/api/models';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport {\n    selectCreateRuleRequest,\n    selectFetchRuleDetailsRequest,\n    selectRuleDetails,\n    selectUpdateRulesRequest,\n} from 'broker-admin/store/price-settings/rules/selectors';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport ScrollToFirstAsyncError from 'common/components/ScrollToFirstAsyncError/ScrollToFirstAsyncError';\nimport { logWarning } from 'common/utils/logger';\nimport { RepeatStrategyTypeEnum, RuleImpactStrategyEnum } from 'broker-admin/utils/api/broker-tranziit/models';\nimport TrailerTypeMultipleDropdown from 'broker-admin/components/dropdowns/TrailerTypeMultipleDropdown/TrailerTypeMultipleDropdown';\nimport { selectTrailerDictTypeIds } from 'common/store/trailers-dict/selectors';\nimport values from 'lodash/values';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport {\n    activateRules,\n    createRule,\n    deactivateRules,\n    deleteRules,\n    fetchRuleDetails,\n    resetCreateRuleRequest,\n    resetUpdateRuleRequest,\n    updateRules,\n} from 'broker-admin/store/price-settings/rules/actions';\nimport {\n    REPEAT_STRATEGY_T_MAP,\n    RepeatStrategyTypeT,\n} from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/constants';\nimport noop from 'lodash/noop';\nimport PriceRuleTypeDropdown from 'broker-admin/components/dropdowns/PriceRuleTypeDropdown/PriceRuleTypeDropdown';\nimport ShippersSuggest from 'broker-admin/components/dropdowns/ShippersSuggest/ShippersSuggest';\nimport { useShipperSuggestOptions } from 'broker-admin/components/dropdowns/ShippersSuggest/hooks/use-shipper-suggest-options';\nimport CarriersSuggest from 'broker-admin/components/dropdowns/CarriersSuggest/CarriersSuggest';\nimport PriceComponentTypeCustomMultipleDropdown from 'broker-admin/components/dropdowns/PriceComponentTypeCustomMultipleDropdown/PriceComponentTypeCustomMultipleDropdown';\nimport PriceRuleStatusPill from 'broker-admin/components/status-pill/PriceRuleStatusPill/PriceRuleStatusPill';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport isEmpty from 'lodash/isEmpty';\nimport { PreviewCurrentRuleT } from 'broker-admin/store/price-settings/rules/models';\nimport { ruleDetailsRefreshChannel } from 'broker-admin/store/price-settings/rules/channels';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport FormUnsavedValuesColoredStatus from 'common/components/status-colored/FormUnsavedValuesColoredStatus/FormUnsavedValuesColoredStatus';\nimport { getDateFromDate } from 'common/utils/time';\nimport useAsyncFormErrors from 'common/utils/hooks/useAsyncFormErrors';\nimport asyncValidations from './async-validations';\n\nconst cx = classNames.bind(styles);\n\ntype RepeatTypeOptionT = {\n    label: string;\n    value: RepeatTypeEnum;\n};\n\ntype StrategyOptionT = {\n    label: string;\n    value: RuleImpactStrategyEnum;\n};\n\ntype DayOptionT = {\n    label: string;\n    value: DaysEnum;\n};\n\nconst getMaskByType = (type: ApiRuleImpactStrategyTypeT) => {\n    switch (type) {\n        case RuleImpactStrategyEnum.percent:\n            return getPercentDiffMask();\n        case RuleImpactStrategyEnum.value:\n            return getMoneyMask();\n        default:\n            return null;\n    }\n};\n\nconst UNIT_BY_IMPACT_STRATEGY: Record<ApiRuleImpactStrategyTypeT, string> = {\n    [RuleImpactStrategyEnum.percent]: '%',\n    [RuleImpactStrategyEnum.value]: CURRENCY_SYMBOLS.EUR,\n};\n\nconst I18N_IMPACT_STRATEGY_KEY: Record<RuleImpactStrategyEnum, string> = {\n    [RuleImpactStrategyEnum.value]: 'price-settings.rules.impact-strategy.EXACT',\n    [RuleImpactStrategyEnum.percent]: 'price-settings.rules.impact-strategy.PERCENTS',\n};\nconst ALL_FIELDS = values(FieldsEnum);\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(ALL_FIELDS);\n\ntype PropsT = {\n    editableRuleId: RuleIdT | null;\n    onCancel?: (() => void) | null;\n    onClose?: (() => void) | null;\n    setNeedCloseConfirmation?: (needCloseConfirmation: boolean) => void;\n    onChangePreviewCurrentRule?: (previewCurrentRule: PreviewCurrentRuleT | null) => void;\n};\n\nconst I18N_REPEAT_TYPE_MAP: Record<RepeatTypeEnum, string> = {\n    [RepeatTypeEnum.dates]: 'price-settings.rules.repeat-types.DATES',\n    [RepeatTypeEnum.weekdays]: 'price-settings.rules.repeat-types.WEEKDAYS',\n};\n\nconst PriceSettingsEditRuleLayout: React.FC<PropsT> = (props) => {\n    const { onCancel, onClose, setNeedCloseConfirmation, editableRuleId, onChangePreviewCurrentRule } = props;\n\n    const isNewRule = editableRuleId === null;\n\n    const createRuleRequest = useSelector(selectCreateRuleRequest);\n\n    const dispatch = useDispatch();\n\n    const { t } = useTranslation();\n\n    const ref = React.createRef<HTMLDivElement>();\n\n    React.useEffect(() => {\n        if (!ref.current) {\n            return;\n        }\n\n        scrollIntoView(ref.current, {\n            time: 300,\n        });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [editableRuleId]);\n\n    const validate = React.useCallback((values: FormValuesT) => validateForm(t, values), [t]);\n\n    const trailerDictTypeIds = useSelector(selectTrailerDictTypeIds);\n    const fetchRuleDetailsRequest = useSelector(selectFetchRuleDetailsRequest);\n    const updateRulesRequest = useSelector(selectUpdateRulesRequest);\n    const editableRuleDetails = useSelector(selectRuleDetails(editableRuleId || null));\n\n    React.useEffect(() => {\n        if (editableRuleId) {\n            dispatch(resetUpdateRuleRequest());\n            dispatch(resetCreateRuleRequest());\n            dispatch(fetchRuleDetails(editableRuleId));\n        }\n    }, [dispatch, editableRuleId]);\n\n    React.useEffect(() => {\n        return () => {\n            dispatch(resetUpdateRuleRequest());\n            dispatch(resetCreateRuleRequest());\n        };\n    }, [dispatch]);\n\n    const refreshDetailsHandler = React.useCallback(\n        (event: InferChannelEventT<typeof ruleDetailsRefreshChannel>) => {\n            if (editableRuleId && event.ruleIds.includes(editableRuleId)) {\n                dispatch(fetchRuleDetails(editableRuleId));\n            }\n        },\n        [dispatch, editableRuleId],\n    );\n    useChannelSubscribe(ruleDetailsRefreshChannel, refreshDetailsHandler);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues(editableRuleDetails, trailerDictTypeIds);\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [editableRuleDetails, trailerDictTypeIds]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const ruleDraft = prepareApiRule(values);\n            if (!ruleDraft) {\n                logWarning('empty ruleDraft, not valid values');\n                return;\n            }\n\n            if (editableRuleId) {\n                dispatch(updateRules(editableRuleId, ruleDraft));\n            } else {\n                dispatch(createRule(ruleDraft));\n            }\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const asyncErrors = React.useMemo(() => {\n        return asyncValidations(t, {\n            createRuleRequestStatus: createRuleRequest,\n            updateRulesRequestStatus: updateRulesRequest,\n        });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [t, createRuleRequest?.error, updateRulesRequest?.error]);\n\n    const { asyncFormErrors, resetAsyncFormErrors } = useAsyncFormErrors(asyncErrors);\n\n    React.useEffect(() => {\n        if (!onChangePreviewCurrentRule) {\n            return;\n        }\n\n        const previewCurrentRule = prepareApiRule(formik.values);\n        onChangePreviewCurrentRule(previewCurrentRule);\n    }, [onChangePreviewCurrentRule, formik.values]);\n\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n    React.useEffect(() => {\n        if (!setNeedCloseConfirmation) {\n            return;\n        }\n\n        setNeedCloseConfirmation(hasAnyFieldValueChanges);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasAnyFieldValueChanges]);\n\n    const isDisabledSubmit = (!isNewRule && !hasAnyFieldValueChanges) || createRuleRequest.loading;\n\n    const allCountryCodes = useSelector(selectCountriesAllCodes);\n    const countryByCode = useSelector(selectCountriesByCode);\n\n    const renderCountryOption = React.useCallback(\n        (countryCode: CountryCodeT) => {\n            return <DeprecatedCountyFlagLabel isThin country={countryByCode[countryCode]} />;\n        },\n        [countryByCode],\n    );\n\n    const getToOptionTestSelector = React.useCallback((countryCode: CountryCodeT) => {\n        return `to_country_option_${countryCode}`;\n    }, []);\n\n    const getFromOptionTestSelector = React.useCallback((countryCode: CountryCodeT) => {\n        return `from_country_option_${countryCode}`;\n    }, []);\n\n    const getCountryOptionValue = React.useCallback((option: CountryCodeT) => option, []);\n\n    const selectedType = formik.values[FieldsEnum.type];\n\n    const selectedImpactPriceComponent = formik.values[FieldsEnum.impactPriceComponent];\n    const strategyImpactOptions = React.useMemo((): StrategyOptionT[] => {\n        const availableStrategies = getAvailableStrategies(selectedType, selectedImpactPriceComponent);\n\n        return [\n            {\n                label: t(I18N_IMPACT_STRATEGY_KEY[RuleImpactStrategyEnum.percent]),\n                value: RuleImpactStrategyEnum.percent,\n            },\n            {\n                label: t(I18N_IMPACT_STRATEGY_KEY[RuleImpactStrategyEnum.value]),\n                value: RuleImpactStrategyEnum.value,\n            },\n        ].filter((option) => {\n            return availableStrategies.includes(option.value);\n        });\n    }, [t, selectedType, selectedImpactPriceComponent]);\n\n    const repeatTypeOptions = React.useMemo((): RepeatTypeOptionT[] => {\n        return [\n            {\n                label: t(I18N_REPEAT_TYPE_MAP[RepeatTypeEnum.weekdays]),\n                value: RepeatTypeEnum.weekdays,\n            },\n            {\n                label: t(I18N_REPEAT_TYPE_MAP[RepeatTypeEnum.dates]),\n                value: RepeatTypeEnum.dates,\n            },\n        ];\n    }, [t]);\n\n    const repeatType = formik.values[FieldsEnum.repeatType];\n\n    const repeatStrategyOptions = React.useMemo((): RepeatStrategyOptionT[] => {\n        const availableRepeatStrategies = [\n            RepeatStrategyTypeEnum.none,\n            RepeatStrategyTypeEnum.monthly,\n            RepeatStrategyTypeEnum.yearly,\n        ];\n\n        return availableRepeatStrategies.map((repeatStrategy) => {\n            return {\n                label: t(REPEAT_STRATEGY_T_MAP[repeatStrategy]),\n                value: repeatStrategy,\n            };\n        });\n    }, [t]);\n\n    const dayOptions: DayOptionT[] = WEEK_DAYS_ORDER.map((day) => ({\n        label: t(`common:week-days.${day}`),\n        value: day,\n    }));\n\n    const handleSelectImpactStrategy = (strategy: ApiRuleImpactStrategyTypeT) => {\n        formik.setFieldValue(FieldsEnum.impactStrategy, strategy);\n    };\n\n    const handleSelectRepeatType = (repeatType: RepeatTypeEnum) => {\n        formik.setValues((prevValues) => {\n            return {\n                ...prevValues,\n                [FieldsEnum.repeatType]: repeatType,\n            };\n        });\n    };\n\n    React.useEffect(() => {\n        const repeatType = formik.values[FieldsEnum.repeatType];\n\n        if (repeatType === RepeatTypeEnum.dates) {\n            formik.setFieldValue(FieldsEnum.days, []);\n        }\n\n        if (repeatType === RepeatTypeEnum.weekdays) {\n            formik.setFieldValue(FieldsEnum.dates, {\n                from: null,\n                to: null,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.values[FieldsEnum.repeatType]]);\n\n    React.useEffect(() => {\n        const batchChanges: Partial<FormValuesT> = {};\n\n        const selectedType = formik.values[FieldsEnum.type];\n        const availablePriceComponents = getAvailablePriceComponent(selectedType);\n        const selectedPriceComponent = formik.values[FieldsEnum.impactPriceComponent];\n        if (selectedPriceComponent && !availablePriceComponents.includes(selectedPriceComponent)) {\n            batchChanges[FieldsEnum.impactPriceComponent] = null;\n        }\n\n        const availableStrategies = getAvailableStrategies(selectedType, selectedPriceComponent);\n        const selectedStrategy = formik.values[FieldsEnum.impactStrategy];\n        if (selectedStrategy && !availableStrategies.includes(selectedStrategy)) {\n            // eslint-disable-next-line prefer-destructuring\n            batchChanges[FieldsEnum.impactStrategy] = availableStrategies[0];\n            batchChanges[FieldsEnum.impactValue] = DEFAULT_IMPACT_VALUE;\n            batchChanges[FieldsEnum.impactDiffValue] = DEFAULT_IMPACT_DIFF_VALUE;\n        }\n\n        if (!isEmpty(batchChanges)) {\n            formik.setValues((prevValues) => {\n                return {\n                    ...prevValues,\n                    ...batchChanges,\n                };\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.values[FieldsEnum.type]]);\n\n    React.useEffect(() => {\n        const batchChanges: Partial<FormValuesT> = {};\n\n        const selectedType = formik.values[FieldsEnum.type];\n        const selectedPriceComponent = formik.values[FieldsEnum.impactPriceComponent];\n        const availableStrategies = getAvailableStrategies(selectedType, selectedPriceComponent);\n        const selectedStrategy = formik.values[FieldsEnum.impactStrategy];\n        if (selectedStrategy && !availableStrategies.includes(selectedStrategy)) {\n            // eslint-disable-next-line prefer-destructuring\n            batchChanges[FieldsEnum.impactStrategy] = availableStrategies[0];\n            batchChanges[FieldsEnum.impactValue] = DEFAULT_IMPACT_VALUE;\n            batchChanges[FieldsEnum.impactDiffValue] = DEFAULT_IMPACT_DIFF_VALUE;\n        }\n\n        if (!isEmpty(batchChanges)) {\n            formik.setValues((prevValues) => {\n                return {\n                    ...prevValues,\n                    ...batchChanges,\n                };\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.values[FieldsEnum.type], formik.values[FieldsEnum.impactPriceComponent]]);\n\n    React.useEffect(() => {\n        const fromCountryCodes = formik.values[FieldsEnum.fromCountryCodes];\n\n        if (fromCountryCodes?.length !== 1) {\n            formik.setFieldValue(FieldsEnum.fromCountryZipCodes, '');\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.values[FieldsEnum.fromCountryCodes]]);\n\n    React.useEffect(() => {\n        const toCountryCodes = formik.values[FieldsEnum.toCountryCodes];\n\n        if (toCountryCodes?.length !== 1) {\n            formik.setFieldValue(FieldsEnum.toCountryZipCodes, '');\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.values[FieldsEnum.toCountryCodes]]);\n\n    const isShowLoader = fetchRuleDetailsRequest.loading || updateRulesRequest.loading;\n\n    const hasChangeHighlight =\n        !isNewRule && formik.values[FieldsEnum.id] === editableRuleDetails?.id && !isShowLoader && formik.dirty;\n\n    const headerTitle = isNewRule ? t('price-settings.rules.form.new-rule') : editableRuleDetails?.name;\n\n    const handleActiveRule = (ruleId: RuleIdT) => {\n        dispatch(activateRules([ruleId]));\n    };\n\n    const handleDeactiveRule = (ruleId: RuleIdT) => {\n        dispatch(deactivateRules([ruleId]));\n    };\n\n    const handleDeleteRule = (ruleId: RuleIdT) => {\n        dispatch(deleteRules([ruleId]));\n\n        if (onClose) {\n            onClose();\n        }\n    };\n\n    const initialShipperIds = formik.initialValues[FieldsEnum.shipperIds];\n    const initialShippersOptions = useShipperSuggestOptions(initialShipperIds);\n\n    const initialCarrierIds = formik.initialValues[FieldsEnum.carrierIds];\n    const initialCarrierOptions = useShipperSuggestOptions(initialCarrierIds);\n\n    const selectedImpactStrategy = formik.values[FieldsEnum.impactStrategy];\n    const isSelectedDiffImpactStrategy = diffImpactStrategySet.has(selectedImpactStrategy);\n\n    const isShowCreateButton = isNewRule;\n    const isShowUpdateButtons = !isNewRule && hasAnyFieldValueChanges;\n\n    const minTodayDate = React.useMemo(() => {\n        const now = new Date();\n        return getDateFromDate(now);\n    }, []);\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('form')}>\n            {isShowLoader && <LoaderOverlay />}\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent\n                    title={headerTitle}\n                    afterTitleNode={\n                        editableRuleDetails ? <PriceRuleStatusPill isActive={editableRuleDetails?.active} /> : null\n                    }\n                    rightNode={\n                        <>\n                            {!isNewRule && hasAnyFieldValueChanges && hasChangeHighlight && (\n                                <FormUnsavedValuesColoredStatus className={cx('status')} />\n                            )}\n                            {!isNewRule && (\n                                <ControlsCell\n                                    id={editableRuleId}\n                                    isActive={!!editableRuleDetails?.active}\n                                    className={cx('controls')}\n                                    onActiveRule={handleActiveRule}\n                                    onDeactiveRule={handleDeactiveRule}\n                                    onDeleteRule={handleDeleteRule}\n                                />\n                            )}\n                        </>\n                    }\n                    testSelector=\"edit-rule\"\n                    onClose={onClose}\n                />\n            </HeaderSideBarLayout>\n            <SideBarLayout testSelector=\"edit-rule\">\n                <div ref={ref}>\n                    <FieldGroup>\n                        <FormikField\n                            className={cx('field', 'field--name')}\n                            name={FieldsEnum.name}\n                            error={formik.errors[FieldsEnum.name]}\n                            meta={formik.getFieldMeta(FieldsEnum.name)}\n                            label={t('price-settings.rules.form.fields.name.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <Input\n                                    name={FieldsEnum.name}\n                                    value={formik.values[FieldsEnum.name]}\n                                    onChange={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                    hasChanges={!isNewRule && props.hasChanges}\n                                    placeholder={t('price-settings.rules.form.fields.name.placeholder')}\n                                />\n                            )}\n                        </FormikField>\n                        <FormikField\n                            className={cx('field', 'field--type')}\n                            name={FieldsEnum.type}\n                            error={formik.errors[FieldsEnum.type]}\n                            meta={formik.getFieldMeta(FieldsEnum.type)}\n                            label={t('price-settings.rules.form.fields.type.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <PriceRuleTypeDropdown\n                                    value={formik.values[FieldsEnum.type]}\n                                    onChange={props.onChange}\n                                    overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                    hasWarning={props.hasWarning}\n                                    hasError={props.hasError}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasChanges={!isNewRule && props.hasChanges}\n                                />\n                            )}\n                        </FormikField>\n                    </FieldGroup>\n                    {formik.values[FieldsEnum.type] === PriceRuleTypeEnum.shipper && (\n                        <FormikField\n                            name={FieldsEnum.shipperIds}\n                            error={formik.errors[FieldsEnum.shipperIds]}\n                            meta={formik.getFieldMeta(FieldsEnum.shipperIds)}\n                            label={t('price-settings.rules.form.fields.shippers.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <ShippersSuggest\n                                    values={formik.values[FieldsEnum.shipperIds]}\n                                    initialOptions={initialShippersOptions.initOptions}\n                                    initialRequestStatus={initialShippersOptions.initRequestStatus}\n                                    hasClearControl\n                                    onSelect={props.onChange}\n                                    hasWarning={props.hasWarning}\n                                    hasError={props.hasError}\n                                    overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                    placeholder={t('price-settings.rules.form.fields.shippers.placeholder')}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasChanges={!isNewRule && props.hasChanges}\n                                />\n                            )}\n                        </FormikField>\n                    )}\n                    {formik.values[FieldsEnum.type] === PriceRuleTypeEnum.carrier && (\n                        <FormikField\n                            name={FieldsEnum.carrierIds}\n                            error={formik.errors[FieldsEnum.carrierIds]}\n                            meta={formik.getFieldMeta(FieldsEnum.carrierIds)}\n                            label={t('price-settings.rules.form.fields.carriers.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <CarriersSuggest\n                                    values={formik.values[FieldsEnum.carrierIds]}\n                                    initialOptions={initialCarrierOptions.initOptions}\n                                    initialRequestStatus={initialCarrierOptions.initRequestStatus}\n                                    hasClearControl\n                                    onSelect={props.onChange}\n                                    hasWarning={props.hasWarning}\n                                    hasError={props.hasError}\n                                    overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                    placeholder={t('price-settings.rules.form.fields.carriers.placeholder')}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasChanges={!isNewRule && props.hasChanges}\n                                />\n                            )}\n                        </FormikField>\n                    )}\n                    {formik.values[FieldsEnum.type] === PriceRuleTypeEnum.basic && (\n                        <ReadOnlyField\n                            withInputLayout\n                            label={t('price-settings.rules.form.fields.partners.label')}\n                            placeholder={t('price-settings.rules.form.fields.partners.placeholder')}\n                            value={null}\n                        />\n                    )}\n                    <FormikField\n                        name={FieldsEnum.trailerTypeIds}\n                        error={formik.errors[FieldsEnum.trailerTypeIds]}\n                        meta={formik.getFieldMeta(FieldsEnum.trailerTypeIds)}\n                        label={t('price-settings.rules.form.fields.trailer-types.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <TrailerTypeMultipleDropdown\n                                values={formik.values[FieldsEnum.trailerTypeIds]}\n                                onSelect={props.onChange}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                hasChanges={!isNewRule && props.hasChanges}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                placeholder={t('price-settings.rules.form.fields.trailer-types.placeholder')}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                            />\n                        )}\n                    </FormikField>\n                </div>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--countries')}\n                        name={FieldsEnum.fromCountryCodes}\n                        error={formik.errors[FieldsEnum.fromCountryCodes]}\n                        meta={formik.getFieldMeta(FieldsEnum.fromCountryCodes)}\n                        label={t('price-settings.rules.form.fields.from-country-codes.label', {\n                            count: formik.values[FieldsEnum.fromCountryCodes].length,\n                        })}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <CheckboxOptionsList<CountryCodeT, CountryCodeT>\n                                isShowSelectAllTrigger\n                                isShowDeselectAllTrigger\n                                selectedValues={formik.values[FieldsEnum.fromCountryCodes]}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                options={allCountryCodes}\n                                onSelect={props.onChange}\n                                renderOption={renderCountryOption}\n                                getOptionTestSelector={getFromOptionTestSelector}\n                                getOptionValue={getCountryOptionValue}\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--countries')}\n                        name={FieldsEnum.toCountryCodes}\n                        error={formik.errors[FieldsEnum.toCountryCodes]}\n                        meta={formik.getFieldMeta(FieldsEnum.toCountryCodes)}\n                        label={t('price-settings.rules.form.fields.to-country-codes.label', {\n                            count: formik.values[FieldsEnum.toCountryCodes].length,\n                        })}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <CheckboxOptionsList<CountryCodeT, CountryCodeT>\n                                isShowSelectAllTrigger\n                                isShowDeselectAllTrigger\n                                selectedValues={formik.values[FieldsEnum.toCountryCodes]}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                options={allCountryCodes}\n                                onSelect={props.onChange}\n                                renderOption={renderCountryOption}\n                                getOptionTestSelector={getToOptionTestSelector}\n                                getOptionValue={getCountryOptionValue}\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--zips')}\n                        name={FieldsEnum.fromCountryZipCodes}\n                        error={formik.errors[FieldsEnum.fromCountryZipCodes]}\n                        meta={formik.getFieldMeta(FieldsEnum.fromCountryZipCodes)}\n                        asyncError={asyncFormErrors[FieldsEnum.fromCountryZipCodes]}\n                        resetAsyncError={resetAsyncFormErrors}\n                        label={t('price-settings.rules.form.fields.zips.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => {\n                            const isDisabled = formik.values[FieldsEnum.fromCountryCodes].length !== 1;\n                            return (\n                                <Input\n                                    name={FieldsEnum.fromCountryZipCodes}\n                                    value={formik.values[FieldsEnum.fromCountryZipCodes]}\n                                    placeholder={t(\n                                        isDisabled\n                                            ? 'price-settings.rules.form.fields.zips.disabled-placeholder'\n                                            : 'price-settings.rules.form.fields.zips.placeholder',\n                                    )}\n                                    isDisabled={isDisabled}\n                                    onChange={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                    hasChanges={!isNewRule && props.hasChanges}\n                                />\n                            );\n                        }}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--zips')}\n                        name={FieldsEnum.toCountryZipCodes}\n                        error={formik.errors[FieldsEnum.toCountryZipCodes]}\n                        meta={formik.getFieldMeta(FieldsEnum.toCountryZipCodes)}\n                        asyncError={asyncFormErrors[FieldsEnum.toCountryZipCodes]}\n                        resetAsyncError={resetAsyncFormErrors}\n                        label={t('price-settings.rules.form.fields.zips.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => {\n                            const isDisabled = formik.values[FieldsEnum.toCountryCodes].length !== 1;\n                            return (\n                                <Input\n                                    name={FieldsEnum.toCountryZipCodes}\n                                    value={formik.values[FieldsEnum.toCountryZipCodes]}\n                                    placeholder={t(\n                                        isDisabled\n                                            ? 'price-settings.rules.form.fields.zips.disabled-placeholder'\n                                            : 'price-settings.rules.form.fields.zips.placeholder',\n                                    )}\n                                    isDisabled={isDisabled}\n                                    onChange={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                    hasChanges={!isNewRule && props.hasChanges}\n                                />\n                            );\n                        }}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FieldGroup className={cx('field-group', 'field-group--schedule')} isFullWidth>\n                        {formik.values[FieldsEnum.repeatType] === RepeatTypeEnum.weekdays && (\n                            <FormikField\n                                label={t('price-settings.rules.form.fields.repeat.label')}\n                                name={FieldsEnum.days}\n                                error={formik.errors[FieldsEnum.days]}\n                                meta={formik.getFieldMeta(FieldsEnum.days)}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                                className={cx('field', 'field--days')}\n                            >\n                                {(props) => (\n                                    <DropdownMultipleInput<DayOptionT, DaysEnum>\n                                        selectedValues={formik.values[FieldsEnum.days]}\n                                        options={dayOptions}\n                                        onSelect={props.onChange}\n                                        placeholder={t('price-settings.rules.form.fields.repeat.placeholder')}\n                                        renderTriggerContent={(selectedDays, placeholder) => {\n                                            if (!selectedDays.length) {\n                                                return <span>{placeholder}</span>;\n                                            }\n\n                                            const label = selectedDays\n                                                .map((day) => t(`common:week-short-days.${day.value}`))\n                                                .join(', ');\n\n                                            return <span>{label}</span>;\n                                        }}\n                                        renderOption={(option) => (option ? <span>{option.label}</span> : null)}\n                                        hasWarning={props.hasWarning}\n                                        hasError={props.hasError}\n                                        triggerClassName={cx('combined-field--days')}\n                                        getOptionValue={(option) => option.value}\n                                        overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasChanges={!isNewRule && props.hasChanges}\n                                        testSelector=\"repeat-weekdays\"\n                                    />\n                                )}\n                            </FormikField>\n                        )}\n                        {formik.values[FieldsEnum.repeatType] === RepeatTypeEnum.dates && (\n                            <FormikField\n                                name={FieldsEnum.dates}\n                                error={formik.errors[FieldsEnum.dates]}\n                                meta={formik.getFieldMeta(FieldsEnum.dates)}\n                                label={t('price-settings.rules.form.fields.repeat.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                                className={cx('field', 'field--dates')}\n                            >\n                                {(props) => (\n                                    <DatePicker\n                                        isRange\n                                        initialValue={initialValues[FieldsEnum.dates]}\n                                        value={formik.values[FieldsEnum.dates]}\n                                        placeholder={t('price-settings.rules.form.fields.repeat.placeholder')}\n                                        onChange={props.onChange}\n                                        overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasChanges={!isNewRule && props.hasChanges}\n                                        inputClassName={cx('combined-field--dates')}\n                                        testSelectorPrefix=\"repeat-dates\"\n                                        hasClearControl\n                                    />\n                                )}\n                            </FormikField>\n                        )}\n                        <FormikField\n                            name={FieldsEnum.repeatType}\n                            error={formik.errors[FieldsEnum.repeatType]}\n                            meta={formik.getFieldMeta(FieldsEnum.repeatType)}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                            className={cx('field', 'field--repeat-type')}\n                        >\n                            {(props) => (\n                                <DropdownInput<RepeatTypeOptionT, RepeatTypeEnum>\n                                    selectedValue={formik.values[FieldsEnum.repeatType]}\n                                    options={repeatTypeOptions}\n                                    onSelect={handleSelectRepeatType}\n                                    renderOption={(option) => (option ? <span>{option.label}</span> : null)}\n                                    triggerClassName={cx('combined-field--repeat-type')}\n                                    getOptionValue={(option) => option.value}\n                                    overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasChanges={!isNewRule && props.hasChanges}\n                                    testSelector=\"repeat-type\"\n                                />\n                            )}\n                        </FormikField>\n                    </FieldGroup>\n                    {repeatType === RepeatTypeEnum.weekdays ? (\n                        <ReadOnlyField\n                            withInputLayout\n                            className={cx('field', 'field--repeat-strategy')}\n                            label={t('price-settings.rules.form.fields.repeat-strategy.label')}\n                            value={t('price-settings.rules.repeat-strategy.WEEKLY')}\n                        />\n                    ) : (\n                        <FormikField\n                            className={cx('field', 'field--repeat-strategy')}\n                            label={t('price-settings.rules.form.fields.repeat-strategy.label')}\n                            name={FieldsEnum.repeatStrategy}\n                            error={formik.errors[FieldsEnum.repeatStrategy]}\n                            meta={formik.getFieldMeta(FieldsEnum.repeatStrategy)}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <DropdownInput<RepeatStrategyOptionT, RepeatStrategyTypeT>\n                                    selectedValue={formik.values[FieldsEnum.repeatStrategy]}\n                                    options={repeatStrategyOptions}\n                                    onSelect={props.onChange}\n                                    placeholder={t('price-settings.rules.form.fields.repeat-strategy.placeholder')}\n                                    renderOption={(option) => (option ? <span>{option.label}</span> : null)}\n                                    getOptionValue={(option) => option.value}\n                                    overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasChanges={!isNewRule && props.hasChanges}\n                                    testSelector=\"repeat-strategy\"\n                                />\n                            )}\n                        </FormikField>\n                    )}\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--valid-date')}\n                        name={FieldsEnum.validFrom}\n                        error={formik.errors[FieldsEnum.validFrom]}\n                        meta={formik.getFieldMeta(FieldsEnum.validFrom)}\n                        label={t('price-settings.rules.form.fields.valid-from.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                value={formik.values[FieldsEnum.validFrom]}\n                                initialValue={initialValues[FieldsEnum.validFrom]}\n                                placeholder={t('price-settings.rules.form.fields.valid-from.placeholder')}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.topLeft}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasChanges={!isNewRule && props.hasChanges}\n                                minDate={minTodayDate}\n                                testSelectorPrefix=\"valid-from\"\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--valid-date')}\n                        name={FieldsEnum.validTill}\n                        error={formik.errors[FieldsEnum.validTill]}\n                        meta={formik.getFieldMeta(FieldsEnum.validTill)}\n                        label={t('price-settings.rules.form.fields.valid-till.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                value={formik.values[FieldsEnum.validTill]}\n                                initialValue={initialValues[FieldsEnum.validTill]}\n                                placeholder={t('price-settings.rules.form.fields.valid-till.placeholder')}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.topRight}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasChanges={!isNewRule && props.hasChanges}\n                                minDate={minTodayDate}\n                                testSelectorPrefix=\"valid-till\"\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--price-component')}\n                        name={FieldsEnum.impactPriceComponent}\n                        error={formik.errors[FieldsEnum.impactPriceComponent]}\n                        meta={formik.getFieldMeta(FieldsEnum.impactPriceComponent)}\n                        label={t('price-settings.rules.form.fields.impact-price-components.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => {\n                            return (\n                                <PriceComponentTypeCustomMultipleDropdown\n                                    value={formik.values[FieldsEnum.impactPriceComponent]}\n                                    onSelect={props.onChange}\n                                    overlayPosition={DropdownOverlayPositionEnum.topLeft}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                    hasChanges={!isNewRule && props.hasChanges}\n                                    availableValues={getAvailablePriceComponent(selectedType)}\n                                    placeholder={t(\n                                        'price-settings.rules.form.fields.impact-price-components.placeholder',\n                                    )}\n                                />\n                            );\n                        }}\n                    </FormikField>\n                    <FieldGroup isFullWidth className={cx('field-group', 'field-group--rule')}>\n                        {isSelectedDiffImpactStrategy ? (\n                            <FormikField\n                                name={FieldsEnum.impactDiffValue}\n                                error={formik.errors[FieldsEnum.impactDiffValue]}\n                                meta={formik.getFieldMeta(FieldsEnum.impactDiffValue)}\n                                label={t('price-settings.rules.form.fields.impact-value.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <Input\n                                        className={cx('combined-field--impact-value')}\n                                        name={FieldsEnum.impactDiffValue}\n                                        value={formik.values[FieldsEnum.impactDiffValue]}\n                                        onChange={(value) => {\n                                            props.onChange(value);\n                                        }}\n                                        onBlur={props.onBlur}\n                                        mask={getMaskByType(formik.values[FieldsEnum.impactStrategy])}\n                                        rightNode={UNIT_BY_IMPACT_STRATEGY[formik.values[FieldsEnum.impactStrategy]]}\n                                        guide={false}\n                                        onFocus={props.onFocus}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                        hasChanges={!isNewRule && props.hasChanges}\n                                    />\n                                )}\n                            </FormikField>\n                        ) : (\n                            <FormikField\n                                name={FieldsEnum.impactValue}\n                                error={formik.errors[FieldsEnum.impactValue]}\n                                meta={formik.getFieldMeta(FieldsEnum.impactValue)}\n                                label={t('price-settings.rules.form.fields.impact-value.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <Input\n                                        className={cx('combined-field--impact-value')}\n                                        name={FieldsEnum.impactValue}\n                                        value={formik.values[FieldsEnum.impactValue]}\n                                        onChange={(value) => {\n                                            props.onChange(value);\n                                        }}\n                                        onBlur={props.onBlur}\n                                        mask={getMaskByType(formik.values[FieldsEnum.impactStrategy])}\n                                        rightNode={UNIT_BY_IMPACT_STRATEGY[formik.values[FieldsEnum.impactStrategy]]}\n                                        guide={false}\n                                        onFocus={props.onFocus}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                        hasChanges={!isNewRule && props.hasChanges}\n                                    />\n                                )}\n                            </FormikField>\n                        )}\n                        <FormikField\n                            name={FieldsEnum.impactStrategy}\n                            error={formik.errors[FieldsEnum.impactStrategy]}\n                            meta={formik.getFieldMeta(FieldsEnum.impactStrategy)}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                            className={cx('field', 'field--impact-strategy')}\n                        >\n                            {(props) => (\n                                <DropdownInput<StrategyOptionT, ApiRuleImpactStrategyTypeT>\n                                    triggerClassName={cx('combined-field--impact-strategy')}\n                                    selectedValue={formik.values[FieldsEnum.impactStrategy]}\n                                    options={strategyImpactOptions}\n                                    onSelect={handleSelectImpactStrategy}\n                                    renderOption={(option) => (option ? <span>{option.label}</span> : null)}\n                                    getOptionValue={(option) => option.value}\n                                    overlayPosition={DropdownOverlayPositionEnum.topLeft}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasChanges={!isNewRule && props.hasChanges}\n                                    testSelector=\"impact\"\n                                />\n                            )}\n                        </FormikField>\n                    </FieldGroup>\n                </FieldGroup>\n            </SideBarLayout>\n            <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n            <ScrollToFirstAsyncError submitCount={formik.submitCount} asyncErrors={asyncFormErrors} />\n            {(isShowCreateButton || isShowUpdateButtons) && (\n                <FooterSideBarLayout hasPaddings>\n                    {isShowCreateButton && (\n                        <Button\n                            isDisabled={isDisabledSubmit}\n                            className={cx('button--add')}\n                            type=\"submit\"\n                            theme={ButtonThemeEnum.primary}\n                            testSelector=\"add\"\n                        >\n                            {t('price-settings.rules.form.add-rule')}\n                        </Button>\n                    )}\n                    {isShowUpdateButtons && (\n                        <div className={cx('buttons')}>\n                            <Button\n                                theme={ButtonThemeEnum.secondary}\n                                className={cx('button--cancel')}\n                                type=\"button\"\n                                onClick={onCancel || noop}\n                                testSelector=\"cancel\"\n                            >\n                                {t('price-settings.rules.form.cancel')}\n                            </Button>\n                            <Button\n                                theme={ButtonThemeEnum.primary}\n                                isDisabled={isDisabledSubmit}\n                                className={cx('button--save')}\n                                type=\"submit\"\n                                testSelector=\"submit\"\n                            >\n                                {t('price-settings.rules.form.save')}\n                            </Button>\n                        </div>\n                    )}\n                </FooterSideBarLayout>\n            )}\n        </form>\n    );\n};\n\nexport default PriceSettingsEditRuleLayout;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './AssetPin.scss';\nimport { CurrencyEnum, DEFAULT_ICON_SIZE, StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport TrailerIcon, { getTrailerIconProps } from 'common/icons/TrailerIcon';\nimport TruckIcon, { getTruckIconProps } from 'common/icons/TruckIcon';\nimport MapTooltip from 'common/components/maps/MapTooltip/MapTooltip';\nimport { useTranslation } from 'react-i18next';\nimport isNil from 'lodash/isNil';\n\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport getUtilizationColor from 'common/utils/get-utilization-color';\nimport AssetLinkIcon, { getAssetLinkIconProps } from 'common/icons/AssetLinkIcon';\nimport { getAssignmentIconPreset } from '../utils/get-assignment-icon-preset';\nimport { PartnerT } from 'common/store/carrier-suggest/models';\nimport CarrierIcon from 'common/icons/CarrierIcon';\nimport UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\nimport Money from 'common/components/Money/Money';\nimport isNumber from 'lodash/isNumber';\nimport { formatDateWithTimeZone, formatTimeZone } from 'common/utils/time';\nimport { MapPinThemeEnum } from 'common/components/maps/MapPin/MapPin';\nimport MapTooltipMenu, { MapTooltipMenuItemT } from 'common/components/maps/MapTooltipMenu/MapTooltipMenu';\nimport { BrokerAssetsSearchRequestInvalidReasonT } from 'common/utils/assignment';\nimport { reasonI18nMap } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/constants';\nimport RateModeStatusPill from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentMap/AssetPin/RateModeStatusPill/RateModeStatusPill';\nimport { ApiTruckRateModeT } from 'common/utils/api/models';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    lat: number;\n    lng: number;\n    className?: string;\n    utcOffset?: number | null;\n    arrivalDate?: string | null;\n    plateNumber?: string | null;\n    truckId?: string | null;\n    isLoadingTruckUtilization: boolean;\n    truckUtilization: number | null | undefined;\n    truckRatePerKm?: number;\n    truckRateMode?: ApiTruckRateModeT;\n    truckInvalidReason: BrokerAssetsSearchRequestInvalidReasonT | null | undefined;\n    isLoadingTruckCarrierUtilization: boolean;\n    truckCarrierUtilizationPercent: number | null;\n    truckCarrier: PartnerT | null;\n    isSelectedTruck: boolean;\n    trailerId?: string | null;\n    isLoadingTrailerUtilization: boolean;\n    trailerUtilization: number | null | undefined;\n    trailerRatePerKm?: number;\n    trailerRateMode?: ApiTruckRateModeT;\n    trailerInvalidReason: BrokerAssetsSearchRequestInvalidReasonT | null | undefined;\n    isLoadingTrailerCarrierUtilization: boolean;\n    trailerCarrierUtilizationPercent: number | null;\n    trailerCarrier: PartnerT | null;\n    isSelectedTrailer: boolean;\n    onClick: (truckId: string | null | undefined, trailerId: string | null | undefined) => void;\n    onHover: (truckId: string | null | undefined, trailerId: string | null | undefined) => void;\n    canInTime: boolean;\n    isBlockedSelectTruck?: boolean;\n    isBlockedSelectTrailer?: boolean;\n};\n\ntype UtilizationPropsT = {\n    isLoading: boolean;\n    utilization: number | null | undefined;\n};\n\nconst Utilization: React.FC<UtilizationPropsT> = (props) => {\n    const { isLoading, utilization } = props;\n\n    if (isNil(utilization) && isLoading) {\n        return <ControlLoaderIcon fillColor={StyleGuideColorsEnum.brandAccent} size={DEFAULT_ICON_SIZE} />;\n    }\n\n    if (!isNumber(utilization)) {\n        return null;\n    }\n\n    return (\n        <div\n            className={cx('utilization')}\n            style={{\n                color: getUtilizationColor(utilization || 0),\n            }}\n        >\n            {isNumber(utilization) ? `${utilization}%` : ''}\n        </div>\n    );\n};\n\nconst getMapPinTheme = ({ canInTime, isSelected }: { canInTime: boolean; isSelected: boolean }): MapPinThemeEnum => {\n    if (isSelected) {\n        return MapPinThemeEnum.charcoal;\n    }\n\n    if (!canInTime) {\n        return MapPinThemeEnum.light;\n    }\n\n    return MapPinThemeEnum.slate;\n};\n\nconst AssetPin: React.FC<PropsT> = React.memo((props) => {\n    const {\n        lat,\n        lng,\n        className,\n        truckId,\n        trailerId,\n        utcOffset,\n        arrivalDate,\n        plateNumber,\n        onClick,\n        onHover,\n        isLoadingTrailerUtilization,\n        trailerUtilization,\n        trailerRatePerKm,\n        trailerRateMode,\n        trailerInvalidReason,\n        isSelectedTrailer,\n        isLoadingTruckUtilization,\n        truckUtilization,\n        truckRatePerKm,\n        truckRateMode,\n        truckInvalidReason,\n        isSelectedTruck,\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        isLoadingTruckCarrierUtilization,\n        truckCarrier,\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        truckCarrierUtilizationPercent,\n        isLoadingTrailerCarrierUtilization,\n        trailerCarrier,\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        trailerCarrierUtilizationPercent,\n        canInTime,\n        isBlockedSelectTruck,\n        isBlockedSelectTrailer,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const [isShowAssetLinkMenu, setIsShowAssetLinkMenu] = React.useState(false);\n\n    const linkAssetItems = React.useMemo((): Array<MapTooltipMenuItemT> => {\n        const isDisabledTruck = isBlockedSelectTruck || !!truckInvalidReason;\n        let truckTooltipContent: React.ReactNode = null;\n        if (truckInvalidReason) {\n            truckTooltipContent = t(reasonI18nMap[truckInvalidReason]);\n        }\n        if (isBlockedSelectTruck) {\n            truckTooltipContent = t('assignment.actions.tooltips.blocked-assign-truck');\n        }\n\n        const isDisabledTrailer = isBlockedSelectTrailer || !!trailerInvalidReason;\n        let trailerTooltipContent: React.ReactNode = null;\n        if (trailerInvalidReason) {\n            trailerTooltipContent = t(reasonI18nMap[trailerInvalidReason]);\n        }\n        if (isBlockedSelectTrailer) {\n            trailerTooltipContent = t('assignment.actions.tooltips.blocked-assign-trailer');\n        }\n\n        const isDisabledTrain = isDisabledTruck || isDisabledTrailer;\n\n        return [\n            {\n                label: t('assignment.actions.assign-full-train'),\n                onSelect: () => {\n                    setIsShowAssetLinkMenu(false);\n                    onClick(truckId, trailerId);\n                },\n                isDisabled: isDisabledTrain,\n                tooltipContent: isDisabledTrain ? t('assignment.actions.tooltips.blocked-assign-full-train') : null,\n                testSelector: 'full-train',\n            },\n            {\n                label: t('assignment.actions.select-truck-only'),\n                onSelect: () => {\n                    setIsShowAssetLinkMenu(false);\n                    onClick(truckId, null);\n                },\n                isDisabled: isDisabledTruck,\n                tooltipContent: isDisabledTruck ? truckTooltipContent : null,\n                testSelector: 'only-truck',\n            },\n            {\n                label: t('assignment.actions.select-trailer-only'),\n                onSelect: () => {\n                    setIsShowAssetLinkMenu(false);\n                    onClick(null, trailerId);\n                },\n                isDisabled: isDisabledTrailer,\n                tooltipContent: isDisabledTrailer ? trailerTooltipContent : null,\n                testSelector: 'only-trailer',\n            },\n        ];\n    }, [\n        t,\n        isBlockedSelectTruck,\n        isBlockedSelectTrailer,\n        onClick,\n        truckId,\n        trailerId,\n        setIsShowAssetLinkMenu,\n        trailerInvalidReason,\n        truckInvalidReason,\n    ]);\n\n    let formattedArrivalDate: React.ReactNode;\n    if (arrivalDate) {\n        formattedArrivalDate = t('assignment.asset-arrival', {\n            date: formatDateWithTimeZone(arrivalDate, utcOffset, 'D MMM'),\n            plateNumber,\n        });\n    } else if (arrivalDate === null) {\n        formattedArrivalDate = t('assignment.asset-current-position', {\n            plateNumber,\n        });\n    }\n\n    const handleOutsideClick = () => {\n        setIsShowAssetLinkMenu(false);\n    };\n\n    const handleClick = () => {\n        const isLink = truckId && trailerId;\n        if (isLink) {\n            setIsShowAssetLinkMenu(true);\n            return;\n        }\n\n        onClick(truckId, trailerId);\n    };\n\n    const [isHover, setHover] = React.useState<boolean>(false);\n    const handleHover = (isHover: boolean) => {\n        setHover(isHover);\n\n        if (!isHover) {\n            setIsShowAssetLinkMenu(false);\n        }\n\n        if (isHover) {\n            onHover(truckId, trailerId);\n        }\n    };\n\n    const truckIconPreset = getAssignmentIconPreset({\n        isSelected: isSelectedTruck,\n        canInTime,\n    });\n\n    const trailerIconPreset = getAssignmentIconPreset({\n        isSelected: isSelectedTrailer,\n        canInTime,\n    });\n\n    const linkIconPreset = getAssignmentIconPreset({\n        isSelected: isSelectedTruck || isSelectedTrailer,\n        canInTime,\n    });\n\n    const isSelected = isSelectedTruck || isSelectedTrailer;\n\n    const mapPinTheme = getMapPinTheme({\n        canInTime,\n        isSelected,\n    });\n\n    const isSelectedTruckAndTrailers = truckId && trailerId;\n    const isNotSameCarriers = truckCarrier?.id && trailerCarrier?.id && truckCarrier?.id !== trailerCarrier?.id;\n    const isSameCarriers = truckCarrier?.id && trailerCarrier?.id && truckCarrier?.id === trailerCarrier?.id;\n\n    const renderCarrierWithUtilization = (\n        carrierName: string,\n        isLoadingCarrierUtilization: boolean,\n        carrierUtilizationPercent: number | null | undefined,\n    ) => {\n        return (\n            <span className={cx('carrier')}>\n                <CarrierIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={\n                        mapPinTheme === MapPinThemeEnum.light ? StyleGuideColorsEnum.slate : StyleGuideColorsEnum.white\n                    }\n                />\n                <span className={cx('carrier__name')}>{carrierName}</span>\n                {isLoadingCarrierUtilization && (\n                    <ControlLoaderIcon fillColor={StyleGuideColorsEnum.brandAccent} size={DEFAULT_ICON_SIZE} />\n                )}\n                {!isLoadingCarrierUtilization && !isNil(carrierUtilizationPercent) && (\n                    <span\n                        style={{\n                            color: getUtilizationColor(carrierUtilizationPercent),\n                        }}\n                    >\n                        <UnitTypeCount type={UnitTypeEnum.percentsAbbreviation} count={carrierUtilizationPercent} />\n                    </span>\n                )}\n            </span>\n        );\n    };\n\n    return (\n        <MapTooltip\n            hasPaddings\n            mapLayers={{\n                regular: isSelected ? 2 : 1,\n                hovered: 3,\n            }}\n            className={cx('pin', { isSelected })}\n            contentClassName={cs(\n                cx('asset-tooltip', {\n                    'asset-tooltip--isDarkText': mapPinTheme === MapPinThemeEnum.light,\n                }),\n                className,\n            )}\n            lat={lat}\n            lng={lng}\n            onClick={handleClick}\n            isHover={isHover}\n            onHover={handleHover}\n            theme={mapPinTheme}\n            footerNode={\n                isShowAssetLinkMenu && isHover ? (\n                    <MapTooltipMenu\n                        className={cx('footer')}\n                        items={linkAssetItems}\n                        onOutsideClick={handleOutsideClick}\n                    />\n                ) : null\n            }\n        >\n            {() => (\n                <>\n                    {!isHover && (\n                        <>\n                            {truckId && !trailerId && (\n                                <TruckIcon className={cx('icon')} {...getTruckIconProps(truckIconPreset)} />\n                            )}\n                            {!truckId && trailerId && (\n                                <TrailerIcon className={cx('icon')} {...getTrailerIconProps(trailerIconPreset)} />\n                            )}\n                            {truckId && trailerId && (\n                                <AssetLinkIcon className={cx('icon')} {...getAssetLinkIconProps(linkIconPreset)} />\n                            )}\n                        </>\n                    )}\n                    {isHover && (\n                        <>\n                            {!!formattedArrivalDate && (\n                                <>\n                                    <div className={cx('arrival')} title={formatTimeZone(utcOffset)}>\n                                        {formattedArrivalDate}\n                                    </div>\n                                </>\n                            )}\n                            <>\n                                {!isSelectedTruckAndTrailers &&\n                                    !!truckId &&\n                                    renderCarrierWithUtilization(\n                                        truckCarrier?.name || '',\n                                        isLoadingTruckUtilization,\n                                        truckUtilization,\n                                    )}\n                                {!isSelectedTruckAndTrailers &&\n                                    !!trailerId &&\n                                    renderCarrierWithUtilization(\n                                        trailerCarrier?.name || '',\n                                        isLoadingTrailerCarrierUtilization,\n                                        trailerUtilization,\n                                    )}\n                                {isSelectedTruckAndTrailers &&\n                                    isSameCarriers &&\n                                    renderCarrierWithUtilization(\n                                        truckCarrier?.name || '',\n                                        isLoadingTruckUtilization,\n                                        truckUtilization,\n                                    )}\n                                {isSelectedTruckAndTrailers &&\n                                    isNotSameCarriers &&\n                                    renderCarrierWithUtilization(\n                                        t('assignment.utilization.truck-carrier'),\n                                        isLoadingTruckUtilization,\n                                        truckUtilization,\n                                    )}\n                                {isSelectedTruckAndTrailers &&\n                                    isNotSameCarriers &&\n                                    renderCarrierWithUtilization(\n                                        t('assignment.utilization.trailer-carrier'),\n                                        isLoadingTrailerCarrierUtilization,\n                                        trailerUtilization,\n                                    )}\n                            </>\n                            {!!truckId && (\n                                <div className={cx('asset')}>\n                                    <TruckIcon className={cx('icon')} {...getTruckIconProps(truckIconPreset)} />\n                                    <Utilization isLoading={isLoadingTruckUtilization} utilization={truckUtilization} />\n                                    {isNumber(truckRatePerKm) && (\n                                        <Money\n                                            amount={truckRatePerKm}\n                                            currency={CurrencyEnum.EUR}\n                                            className={cx('price')}\n                                        />\n                                    )}\n                                    {truckRateMode && <RateModeStatusPill rateMode={truckRateMode} />}\n                                </div>\n                            )}\n                            {!!trailerId && (\n                                <div className={cx('asset')}>\n                                    <TrailerIcon className={cx('icon')} {...getTrailerIconProps(trailerIconPreset)} />\n                                    <Utilization\n                                        isLoading={isLoadingTrailerUtilization}\n                                        utilization={trailerUtilization}\n                                    />\n                                    {isNumber(trailerRatePerKm) && (\n                                        <Money\n                                            amount={trailerRatePerKm}\n                                            currency={CurrencyEnum.EUR}\n                                            className={cx('price')}\n                                        />\n                                    )}\n                                    {trailerRateMode && <RateModeStatusPill rateMode={trailerRateMode} />}\n                                </div>\n                            )}\n                        </>\n                    )}\n                </>\n            )}\n        </MapTooltip>\n    );\n});\n\nexport default AssetPin;\n","export enum UpdateWayEnum {\n    newRate = 'new-rate',\n    assignContract = 'assign-contract',\n    unassignContract = 'unnasignContract',\n}\n\nexport enum FieldsEnum {\n    updateWay = 'update-way',\n    rate = 'rate',\n    contractId = 'contract-id',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.updateWay]: UpdateWayEnum | null;\n    [FieldsEnum.rate]: string;\n    [FieldsEnum.contractId]: ShipperContractIdT | null;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import { RoutePointFormValuesT } from '../constants';\nimport { InferChannelEventT, ViewEventChannel } from 'common/utils/view-event-channel';\nimport { useCallback } from 'react';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { getInitialRoutePointFormValues } from '../get-initial-values';\nimport { ContextRouteStopFakeIdT, DeadheadRouteStopT } from 'broker-admin/store/deadhead-creation/models';\n\nexport const contextSyncRouteStopsModifyChannel = new ViewEventChannel<{\n    routeFormValues: Array<RoutePointFormValuesT>;\n    correctedStops?: Array<DeadheadRouteStopT>;\n    addedStopFakeIds?: Array<ContextRouteStopFakeIdT>;\n    deletedStopFakeIds?: Array<ContextRouteStopFakeIdT>;\n    orderStopFakeIds?: Array<ContextRouteStopFakeIdT>;\n}>();\n\nexport const useSyncRouteStopsChannels = (formikArrayHelpers: {\n    insert: (index: number, value: RoutePointFormValuesT) => void;\n    remove: (index: number) => void;\n    move: (from: number, to: number) => void;\n}) => {\n    // correction after reserve\n    const syncPointsModifyChannelHandler = useCallback(\n        (event: InferChannelEventT<typeof contextSyncRouteStopsModifyChannel>) => {\n            const { correctedStops, addedStopFakeIds, deletedStopFakeIds, orderStopFakeIds, routeFormValues } = event;\n\n            const addedStopFakeIdsSet = new Set(addedStopFakeIds || []);\n            const deletedStopFakeIdsSet = new Set(deletedStopFakeIds || []);\n\n            const clonedRouteFormValues = cloneDeep(routeFormValues);\n\n            const newAllFakeIds =\n                correctedStops?.map((stop) => {\n                    return stop.fakeId;\n                }) || [];\n            const newAllFakeIdsSet = new Set(newAllFakeIds);\n\n            for (let index = clonedRouteFormValues.length - 1; index >= 0; index -= 1) {\n                const { fakePointId } = clonedRouteFormValues[index];\n                if (!newAllFakeIdsSet.has(fakePointId) && deletedStopFakeIdsSet.has(fakePointId)) {\n                    formikArrayHelpers.remove(index);\n                    clonedRouteFormValues.splice(index, 1);\n                }\n            }\n\n            let formIndexPointer = 0;\n            correctedStops?.forEach((stop) => {\n                const stopFakeId = stop.fakeId;\n\n                const indexInForm = clonedRouteFormValues.findIndex((values) => {\n                    return values.fakePointId === stopFakeId;\n                });\n\n                if (indexInForm === -1 && addedStopFakeIdsSet.has(stopFakeId)) {\n                    formikArrayHelpers.insert(formIndexPointer, getInitialRoutePointFormValues(stop));\n                    clonedRouteFormValues.splice(formIndexPointer, 0, getInitialRoutePointFormValues(stop));\n                }\n\n                formIndexPointer += 1;\n            });\n\n            // Reorder elements based on orderStopFakeIds\n            if (orderStopFakeIds && orderStopFakeIds.length > 0) {\n                // Reorder elements according to orderStopFakeIds\n                // Process from the end to avoid index shifting issues\n                for (let targetIndex = orderStopFakeIds.length - 1; targetIndex >= 0; targetIndex -= 1) {\n                    const targetFakeId = orderStopFakeIds[targetIndex];\n\n                    // Find the current index of the element with this fakeId\n                    const currentIndex = clonedRouteFormValues.findIndex((values) => {\n                        return values.fakePointId === targetFakeId;\n                    });\n\n                    if (currentIndex !== -1 && currentIndex !== targetIndex) {\n                        formikArrayHelpers.move(currentIndex, targetIndex);\n\n                        // Update clonedRouteFormValues for synchronization\n                        const movedValue = clonedRouteFormValues[currentIndex];\n                        clonedRouteFormValues.splice(currentIndex, 1);\n                        clonedRouteFormValues.splice(targetIndex, 0, movedValue);\n                    }\n                }\n            }\n        },\n        [formikArrayHelpers],\n    );\n\n    useChannelSubscribe(contextSyncRouteStopsModifyChannel, syncPointsModifyChannelHandler);\n};\n","import { ApiReservePreviewT, ReservePreviewT, ReserveT } from '../models';\nimport keyBy from 'lodash/keyBy';\nimport isBoolean from 'lodash/isBoolean';\n\nconst prepareReservePreview = (apiReservePreview: ApiReservePreviewT, reserve: ReserveT | null): ReservePreviewT => {\n    const timeWindowsById = keyBy(apiReservePreview.timeWindows, (timeWindow) => timeWindow?.id);\n    const points = reserve?.points || [];\n\n    return {\n        ...apiReservePreview,\n        timeWindows: points.map((point) => {\n            const timeWindow = timeWindowsById[point.id];\n            if (!timeWindow) {\n                return {\n                    id: point.id,\n                    correctedBrokerWindow: null,\n                    correctedTimeWindow: null,\n                    urgentTimeWindow: null,\n                    regularTimeWindow: null,\n                    layoverTimeWindow: null,\n                    brokerAppointmentTimeWindow: null,\n                };\n            }\n\n            const {\n                correctedFrom,\n                correctedTo,\n                correctedBrokerWindow,\n                regularFrom,\n                urgentFrom,\n                layoverStart,\n                latestTo,\n                canDelegateFrom,\n                canDelegateTo,\n            } = timeWindow;\n\n            return {\n                id: timeWindow.id,\n                correctedTimeWindow:\n                    correctedFrom && correctedTo\n                        ? {\n                              start: correctedFrom,\n                              end: correctedTo,\n                          }\n                        : null,\n                correctedBrokerWindow: isBoolean(correctedBrokerWindow) ? correctedBrokerWindow : null,\n                urgentTimeWindow:\n                    urgentFrom && regularFrom && urgentFrom !== regularFrom\n                        ? {\n                              start: urgentFrom,\n                              end: regularFrom,\n                          }\n                        : null,\n                regularTimeWindow: regularFrom\n                    ? {\n                          start: regularFrom,\n                          end: layoverStart ? null : latestTo || null,\n                      }\n                    : null,\n                layoverTimeWindow: layoverStart\n                    ? {\n                          start: layoverStart,\n                          end: latestTo || null,\n                      }\n                    : null,\n                brokerAppointmentTimeWindow: canDelegateFrom\n                    ? {\n                          start: canDelegateFrom,\n                          end: canDelegateTo || null,\n                      }\n                    : null,\n            };\n        }),\n    };\n};\n\nexport default prepareReservePreview;\n","// extracted by mini-css-extract-plugin\nexport default {\"line-loader\":\"HeaderSideBarLoader__line-loader___X_SVn\",\"fadeIn\":\"HeaderSideBarLoader__fadeIn___oT99w\",\"blinking\":\"HeaderSideBarLoader__blinking___G8_pQ\"};","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkNotEmpty } from 'common/utils/form-validators';\n\nconst validate = (t: TFunction, values: FormValuesT, isTeamDrive: boolean): FormErrorsT => {\n    const requiredFields = isTeamDrive ? [FieldsEnum.driverId, FieldsEnum.teamDriverId] : [FieldsEnum.driverId];\n\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, requiredFields, values),\n    };\n\n    const driverId = values[FieldsEnum.driverId];\n    const teamDriverId = values[FieldsEnum.teamDriverId];\n    if (driverId && teamDriverId && driverId === teamDriverId) {\n        errors[FieldsEnum.teamDriverId] = t('common:driver-assignment.errors.same-drivers');\n    }\n\n    return errors;\n};\n\nexport default validate;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"RevokedDocumentCard__inner____qgN5\"};","import {\n    ApiCreateReserveQueryT,\n    CreateReserveQueryChangesT,\n    CreateReserveQueryT,\n    ReserveQueryChangesT,\n    ReserveT,\n} from '../models';\nimport isEmpty from 'lodash/isEmpty';\nimport isUndefined from 'lodash/isUndefined';\nimport isNil from 'lodash/isNil';\nimport { checkIsSameDay, setISODateMidday } from 'common/utils/time';\nimport isNumber from 'lodash/isNumber';\nimport { convertToPointLocation } from 'common/store/order-creation/utils/prepare-address-point';\nimport times from 'lodash/times';\nimport cloneDeep from 'lodash/cloneDeep';\n\nconst getReverseQueryChanges = (\n    changes: ReserveQueryChangesT,\n    prevReserveQuery: CreateReserveQueryT | null,\n    reserve: ReserveT | null,\n): CreateReserveQueryChangesT => {\n    const queryChanges: CreateReserveQueryChangesT = {};\n\n    if (changes?.fullRouteChange) {\n        const addressQueryChanges: NonNullable<CreateReserveQueryChangesT['addresses']> = [];\n\n        changes.fullRouteChange?.forEach((routePoint, index) => {\n            if ('address' in routePoint || 'type' in routePoint) {\n                addressQueryChanges[index] = {\n                    addressAlias: routePoint.addressAlias || '',\n                    address: routePoint.address || null,\n                    type: routePoint.type || null,\n                };\n            }\n        });\n\n        queryChanges.addresses = addressQueryChanges;\n    }\n\n    if (changes?.routePointChange) {\n        const { addressAlias, changes: data } = changes.routePointChange;\n\n        const newAddresses = cloneDeep(prevReserveQuery?.addresses || []);\n        const targetIndex = newAddresses?.findIndex((address) => address?.addressAlias === addressAlias);\n\n        if (!newAddresses[targetIndex]) {\n            newAddresses[targetIndex] = {\n                addressAlias: data.addressAlias || '',\n                address: data?.address || null,\n                type: data?.type || null,\n            };\n        }\n\n        if ('address' in data) {\n            newAddresses[targetIndex].address = data.address || null;\n        }\n\n        if ('type' in data) {\n            newAddresses[targetIndex].type = data?.type || null;\n        }\n\n        queryChanges.addresses = newAddresses;\n    }\n\n    if (changes?.addRoutePoint) {\n        const { beforeAddressAlias, changes: data } = changes.addRoutePoint;\n\n        const newAddresses = cloneDeep(prevReserveQuery?.addresses || []);\n        const targetIndex = newAddresses?.findIndex((address) => address?.addressAlias === beforeAddressAlias);\n        if (typeof targetIndex === 'number' && targetIndex !== -1) {\n            newAddresses.splice(targetIndex + 1, 0, {\n                addressAlias: data.addressAlias || '',\n                address: data?.address || null,\n                type: data?.type || null,\n            });\n\n            queryChanges.addresses = newAddresses;\n        }\n    }\n\n    if (changes?.deleteRoutePoint) {\n        const { addressAlias } = changes.deleteRoutePoint;\n\n        const newAddresses = cloneDeep(prevReserveQuery?.addresses || []);\n        const targetIndex = newAddresses?.findIndex((address) => address?.addressAlias === addressAlias);\n        if (typeof targetIndex === 'number' && targetIndex !== -1) {\n            newAddresses.splice(targetIndex, 1);\n\n            queryChanges.addresses = newAddresses;\n        }\n    }\n\n    if (!isUndefined(changes?.shipper)) {\n        const isValidShipper = !changes?.shipper?.orderCreationUnavailableReasons?.length;\n        const reserveShipperId = isValidShipper ? changes?.shipper?.id : null;\n        queryChanges.shipperId = reserveShipperId || null;\n    }\n\n    const trailerId = Number(changes.trailerDictId);\n    if (!isUndefined(changes.trailerDictId) && isNumber(trailerId)) {\n        queryChanges.trailerDictId = trailerId;\n    }\n\n    if (!isUndefined(changes?.excludedCountries)) {\n        queryChanges.prohibitedCountries = changes.excludedCountries;\n    }\n\n    let firstRoutePoint = changes?.fullRouteChange?.[0] || null;\n\n    if (changes?.routePointChange && queryChanges?.addresses) {\n        const targetIndex = queryChanges?.addresses?.findIndex((address) => {\n            return address?.addressAlias === changes?.routePointChange?.addressAlias;\n        });\n        if (targetIndex === 0) {\n            firstRoutePoint = changes?.routePointChange?.changes || null;\n        }\n    }\n\n    if (firstRoutePoint && !isNil(firstRoutePoint?.timeWindowFrom)) {\n        const defaultPickUpTimeWindowStart = reserve?.points?.[0]?.defaultTimeWindow?.start;\n        const isNotDefaultReservePickUpTime =\n            defaultPickUpTimeWindowStart &&\n            !checkIsSameDay(defaultPickUpTimeWindowStart, firstRoutePoint.timeWindowFrom);\n        if (isNotDefaultReservePickUpTime) {\n            queryChanges.routeStart = setISODateMidday(firstRoutePoint?.timeWindowFrom) || undefined;\n        }\n    }\n\n    return queryChanges;\n};\n\nconst mergeReverseQueryChanges = (\n    prevQuery: CreateReserveQueryT | null,\n    changes: CreateReserveQueryChangesT,\n): CreateReserveQueryT | null => {\n    if (isEmpty(changes)) {\n        return prevQuery;\n    }\n\n    const query: CreateReserveQueryT = {\n        prohibitedCountries: [],\n        shipperId: null,\n        trailerDictId: null,\n        ...prevQuery,\n        ...changes,\n        addresses: changes?.addresses || prevQuery?.addresses || [],\n    };\n\n    return query;\n};\n\nconst getApiReverseQuery = (isBroker: boolean, query: CreateReserveQueryT | null): ApiCreateReserveQueryT | null => {\n    if (!query) {\n        return null;\n    }\n\n    const { addresses, prohibitedCountries, shipperId, routeStart, trailerDictId } = query;\n\n    const hasAllAddresses =\n        addresses?.length >= 2 && times(addresses?.length).every((_, index) => !!addresses[index]?.address);\n    if (isBroker && !shipperId) {\n        return null;\n    }\n\n    if (!isNumber(trailerDictId) || !hasAllAddresses) {\n        return null;\n    }\n\n    return {\n        addresses: addresses.reduce<ApiCreateReserveQueryT['addresses']>((acc, address) => {\n            const pointLocation = convertToPointLocation(address.address);\n\n            if (address.address && address.type && pointLocation) {\n                acc.push({\n                    addressAlias: address.addressAlias || undefined,\n                    address: pointLocation,\n                    type: address.type,\n                });\n            }\n\n            return acc;\n        }, []),\n        prohibitedCountries,\n        shipperId,\n        routeStart,\n        dictTrailerId: trailerDictId,\n    };\n};\n\nexport { getReverseQueryChanges, mergeReverseQueryChanges, getApiReverseQuery };\n","import * as React from 'react';\nimport { Trans } from 'react-i18next';\nimport { ApiDocumentTypeT } from 'common/utils/api/models';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport AsyncDictDocumentNameLabel from 'common/components/AsyncDictDocumentNameLabel/AsyncDictDocumentNameLabel';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\n\ntype PropsT = {\n    documentType: ApiDocumentTypeT;\n};\n\nconst UploadDocumentCard: React.FC<PropsT> = React.memo((props) => {\n    const { documentType } = props;\n\n    const { partnerType } = usePartnerContext();\n\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey=\"common:notifications.document-upload\"\n                components={{\n                    documentName: (\n                        <NotificationEntityLabel\n                            isBold\n                            text={<AsyncDictDocumentNameLabel partnerType={partnerType} documentType={documentType} />}\n                        />\n                    ),\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default UploadDocumentCard;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    ACTIVATE_RULES_REQUEST,\n    ActivationRulesActionT,\n    CREATE_RULE_REQUEST,\n    CreateRuleActionT,\n    DEACTIVATE_RULES_REQUEST,\n    DeactivationRulesActionT,\n    DELETE_RULES_REQUEST,\n    DeleteRulesActionT,\n    PREVIEW_RULE_REQUEST,\n    PreviewRuleActionT,\n    FETCH_RULE_DETAILS_REQUEST,\n    FETCH_RULES_PAGE_REQUEST,\n    FetchRuleDetailsActionT,\n    FetchRulesPageActionT,\n    UPDATE_RULE_REQUEST,\n    UpdateRuleActionT,\n} from './types';\nimport {\n    createRuleBegin,\n    createRuleError,\n    createRuleSuccess,\n    deleteRulesBegin,\n    deleteRulesError,\n    deleteRulesSuccess,\n    previewRuleBegin,\n    previewRuleError,\n    previewRuleSuccess,\n    fetchRuleDetailsBegin,\n    fetchRuleDetailsError,\n    fetchRuleDetailsSuccess,\n    fetchRulesPageBegin,\n    fetchRulesPageError,\n    fetchRulesPageSuccess,\n    resetRulePages,\n    updateRuleBegin,\n    updateRuleError,\n    updateRuleSuccess,\n} from './actions';\n\nimport isEqual from 'lodash/isEqual';\nimport { selectPreviewRuleRequest, selectRulesPages, selectRulesQuery, selectUpdateRulesRequest } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { checkShouldEmitChangePage } from 'common/utils/pagination/utils';\nimport {\n    ruleDeactivateChannel,\n    ruleDetailsRefreshChannel,\n    rulesPaginationChannel,\n    rulesRefreshChannel,\n} from 'broker-admin/store/price-settings/rules/channels';\n\nfunction* fetchRulesSaga(action: FetchRulesPageActionT): WrapGeneratorT<void> {\n    const { pageNumber, query, options } = action;\n\n    const prevQuery: ReturnType<typeof selectRulesQuery> = yield select(selectRulesQuery);\n    const pages: ReturnType<typeof selectRulesPages> = yield select(selectRulesPages);\n    const isSameQuery = isEqual(query, prevQuery);\n    const isNeedRequest = checkNeedRequest(pages[pageNumber]?.requestStatus);\n    if (isSameQuery && !isNeedRequest && !options?.isForceUpdate) {\n        return;\n    }\n    if (!isSameQuery) {\n        yield put(resetRulePages({ savingPageNumber: pageNumber }));\n    }\n\n    yield put(fetchRulesPageBegin(query, pageNumber));\n    const [error, response]: ReturnApiT<typeof brokerTranziitApi.fetchRulesPage> =\n        yield brokerTranziitApi.fetchRulesPage({\n            ...query,\n            page: pageNumber,\n        });\n\n    if (error) {\n        yield put(fetchRulesPageError(query, pageNumber, error));\n        return;\n    }\n\n    yield put(fetchRulesPageSuccess(query, pageNumber, response));\n\n    checkShouldEmitChangePage(pageNumber, response, rulesPaginationChannel);\n}\n\nfunction* updateRuleSaga(action: UpdateRuleActionT): WrapGeneratorT<void> {\n    const request: ReturnType<typeof selectUpdateRulesRequest> = yield select(selectUpdateRulesRequest);\n    if (request.loading) {\n        return;\n    }\n\n    yield put(updateRuleBegin());\n\n    const { ruleId, ruleDraft } = action;\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.updateRule> = yield brokerTranziitApi.updateRule(\n        +ruleId,\n        ruleDraft,\n    );\n    if (error) {\n        yield put(updateRuleError(error));\n        return;\n    }\n\n    yield put(updateRuleSuccess());\n\n    ruleDetailsRefreshChannel.emit({\n        ruleIds: [ruleId],\n    });\n\n    rulesRefreshChannel.emit({\n        ruleIds: [ruleId],\n    });\n}\n\nfunction* deactivateRulesSaga(action: DeactivationRulesActionT): WrapGeneratorT<void> {\n    const request: ReturnType<typeof selectUpdateRulesRequest> = yield select(selectUpdateRulesRequest);\n    if (request.loading) {\n        return;\n    }\n\n    yield put(updateRuleBegin());\n\n    const { ids } = action;\n\n    let error: ReturnApiT<typeof brokerTranziitApi.deactivateRule>[0] | null = null;\n\n    for (const ruleId of ids) {\n        const result: ReturnApiT<typeof brokerTranziitApi.deactivateRule> = yield brokerTranziitApi.deactivateRule(\n            +ruleId,\n        );\n        [error] = result;\n    }\n\n    if (error) {\n        yield put(updateRuleError(error));\n        return;\n    }\n\n    yield put(updateRuleSuccess());\n\n    ruleDetailsRefreshChannel.emit({\n        ruleIds: ids,\n    });\n    rulesRefreshChannel.emit({\n        ruleIds: ids,\n    });\n    ruleDeactivateChannel.emit({});\n}\n\nfunction* activateRulesSaga(action: ActivationRulesActionT): WrapGeneratorT<void> {\n    const request: ReturnType<typeof selectUpdateRulesRequest> = yield select(selectUpdateRulesRequest);\n    if (request.loading) {\n        return;\n    }\n\n    yield put(updateRuleBegin());\n\n    const { ids } = action;\n\n    let error: ReturnApiT<typeof brokerTranziitApi.activateRule>[0] | null = null;\n\n    for (const ruleId of ids) {\n        const result: ReturnApiT<typeof brokerTranziitApi.activateRule> = yield brokerTranziitApi.activateRule(+ruleId);\n        [error] = result;\n    }\n\n    if (error) {\n        yield put(updateRuleError(error));\n        return;\n    }\n\n    yield put(updateRuleSuccess());\n\n    ruleDetailsRefreshChannel.emit({\n        ruleIds: ids,\n    });\n    rulesRefreshChannel.emit({\n        ruleIds: ids,\n    });\n    ruleDeactivateChannel.emit({});\n}\n\nfunction* deleteRulesSaga(action: DeleteRulesActionT): WrapGeneratorT<void> {\n    const request: ReturnType<typeof selectUpdateRulesRequest> = yield select(selectUpdateRulesRequest);\n    if (request.loading) {\n        return;\n    }\n\n    yield put(deleteRulesBegin());\n\n    const { ids } = action;\n\n    let error: ReturnApiT<typeof brokerTranziitApi.deleteRule>[0] | null = null;\n\n    for (const ruleId of ids) {\n        const result: ReturnApiT<typeof brokerTranziitApi.deleteRule> = yield brokerTranziitApi.deleteRule(+ruleId);\n        [error] = result;\n    }\n\n    if (error) {\n        yield put(deleteRulesError(error));\n        return;\n    }\n\n    yield put(deleteRulesSuccess());\n\n    rulesRefreshChannel.emit({\n        ruleIds: ids,\n    });\n}\n\nfunction* previewRuleSaga(action: PreviewRuleActionT): WrapGeneratorT<void> {\n    const request: ReturnType<typeof selectPreviewRuleRequest> = yield select(selectPreviewRuleRequest);\n    if (request.loading) {\n        return;\n    }\n\n    yield put(previewRuleBegin());\n\n    const [error, result]: ReturnApiT<typeof brokerTranziitApi.rulePreview> = yield brokerTranziitApi.rulePreview(\n        action.data,\n    );\n\n    if (error) {\n        yield put(previewRuleError(error));\n        return;\n    }\n\n    yield put(previewRuleSuccess(result));\n}\n\nfunction* createRuleSaga(action: CreateRuleActionT): WrapGeneratorT<void> {\n    const request: ReturnType<typeof selectUpdateRulesRequest> = yield select(selectUpdateRulesRequest);\n    if (request.loading) {\n        return;\n    }\n\n    yield put(createRuleBegin());\n\n    const { ruleDraft } = action;\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.createRule> = yield brokerTranziitApi.createRule(ruleDraft);\n    if (error) {\n        yield put(createRuleError(error));\n        return;\n    }\n\n    yield put(createRuleSuccess());\n\n    rulesRefreshChannel.emit({\n        ruleIds: [],\n    });\n}\n\nfunction* fetchRuleDetailsSaga(action: FetchRuleDetailsActionT): WrapGeneratorT<void> {\n    const { ruleId } = action;\n    yield put(fetchRuleDetailsBegin(ruleId));\n\n    const [error, ruleDetails]: ReturnApiT<typeof brokerTranziitApi.fetchRuleDetails> =\n        yield brokerTranziitApi.fetchRuleDetails(+ruleId);\n    if (error) {\n        yield put(fetchRuleDetailsError(ruleId, error));\n        return;\n    }\n\n    yield put(fetchRuleDetailsSuccess(ruleId, ruleDetails));\n}\n\nfunction* ratesSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_RULES_PAGE_REQUEST, fetchRulesSaga);\n    yield takeEvery(UPDATE_RULE_REQUEST, updateRuleSaga);\n    yield takeEvery(DEACTIVATE_RULES_REQUEST, deactivateRulesSaga);\n    yield takeEvery(ACTIVATE_RULES_REQUEST, activateRulesSaga);\n    yield takeEvery(DELETE_RULES_REQUEST, deleteRulesSaga);\n    yield takeEvery(PREVIEW_RULE_REQUEST, previewRuleSaga);\n    yield takeEvery(CREATE_RULE_REQUEST, createRuleSaga);\n    yield takeEvery(FETCH_RULE_DETAILS_REQUEST, fetchRuleDetailsSaga);\n}\n\nexport default ratesSaga;\n","import * as React from 'react';\nimport PillLabel, { colorCodingPillLabelTheme, PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { ApiShipperContractStatusT, ShipperContractStatusEnum } from 'common/utils/api/models';\nimport ShipperContractStatus from 'common/components/status/ShipperContractStatus/ShipperContractStatus';\nimport { AuthProfileTypeEnum } from 'common/store/auth/constants';\nimport { useSelector } from 'react-redux';\nimport { selectProfileType } from 'common/store/auth/selectors';\n\ntype PropsT = {\n    status?: ApiShipperContractStatusT | null;\n    isSymmetrical?: boolean;\n    className?: string;\n};\n\ntype ContractStatusColorMapT = Record<ApiShipperContractStatusT, PillLabelThemeEnum>;\n\nconst THEME_MAP: Record<AuthProfileTypeEnum, ContractStatusColorMapT> = {\n    [AuthProfileTypeEnum.shipper]: {\n        [ShipperContractStatusEnum.revoked]: colorCodingPillLabelTheme.normal,\n        [ShipperContractStatusEnum.expired]: colorCodingPillLabelTheme.normal,\n        [ShipperContractStatusEnum.active]: colorCodingPillLabelTheme.success,\n    },\n    [AuthProfileTypeEnum.carrier]: {\n        [ShipperContractStatusEnum.revoked]: colorCodingPillLabelTheme.normal,\n        [ShipperContractStatusEnum.expired]: colorCodingPillLabelTheme.normal,\n        [ShipperContractStatusEnum.active]: colorCodingPillLabelTheme.success,\n    },\n    [AuthProfileTypeEnum.broker]: {\n        [ShipperContractStatusEnum.revoked]: colorCodingPillLabelTheme.normal,\n        [ShipperContractStatusEnum.expired]: colorCodingPillLabelTheme.normal,\n        [ShipperContractStatusEnum.active]: colorCodingPillLabelTheme.success,\n    },\n};\n\nconst DEFAULT_THEME = colorCodingPillLabelTheme.normal;\n\nconst ShipperContractStatusPill: React.FC<PropsT> = React.memo((props) => {\n    const { status, className, isSymmetrical } = props;\n\n    const profileTypeEnum = useSelector(selectProfileType);\n\n    if (!status) {\n        return null;\n    }\n\n    const theme = status ? THEME_MAP[profileTypeEnum]?.[status] : DEFAULT_THEME;\n\n    return (\n        <>\n            <PillLabel\n                isNoWrap\n                theme={theme}\n                testSelector=\"shipper-contact-status\"\n                className={className}\n                isSymmetrical={isSymmetrical}\n            >\n                <ShipperContractStatus status={status} />\n            </PillLabel>\n        </>\n    );\n});\n\nexport default ShipperContractStatusPill;\n","import * as React from 'react';\nimport { OrderStatusEnum, ApiOrderStatusT } from 'common/utils/api/models';\nimport ColoredStatusLabel, {\n    colorCodingColoredStatusTheme,\n    PropsT as ColoredStatusLabelPropsT,\n} from 'common/components/ColoredStatusLabel/ColoredStatusLabel';\nimport OrderStatus from 'common/components/status/OrderStatus/OrderStatus';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = Omit<ColoredStatusLabelPropsT, 'label' | 'color'> & {\n    status: ApiOrderStatusT | null | undefined;\n};\n\nexport const ORDER_STATUS_COLOR_MAP: Record<ApiOrderStatusT, StyleGuideColorsEnum> = {\n    [OrderStatusEnum.placed]: colorCodingColoredStatusTheme.normal,\n    [OrderStatusEnum.inProgress]: colorCodingColoredStatusTheme.normal,\n    [OrderStatusEnum.delivered]: colorCodingColoredStatusTheme.positive,\n    [OrderStatusEnum.canceled]: colorCodingColoredStatusTheme.normal,\n    [OrderStatusEnum.done]: colorCodingColoredStatusTheme.positive,\n};\n\nconst OrderColoredStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status, ...restProps } = props;\n\n    if (!status) {\n        return null;\n    }\n\n    const color = ORDER_STATUS_COLOR_MAP[status];\n\n    return <ColoredStatusLabel {...restProps} label={<OrderStatus status={status} />} color={color} />;\n});\n\nexport default OrderColoredStatus;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PartnerDetailsPage.scss';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    lockPartner,\n    unlockPartner,\n    unVerifyPartnerDetails,\n    verifyPartnerDetails,\n} from 'broker-admin/store/partner/details/actions';\nimport VerifyPartnerAdressConfirmation from './dialogs/VerifyPartnerAdressConfirmation/VerifyPartnerAdressConfirmation';\nimport { VerifyPartnerAddressConfirmationDataT } from './dialogs/VerifyPartnerAdressConfirmation/models';\nimport UnVerifyPartnerAdressConfirmation from './dialogs/UnVerifyPartnerAdressConfirmation/UnVerifyPartnerAdressConfirmation';\nimport { UnVerifyPartnerAdressConfirmationDataT } from './dialogs/UnVerifyPartnerAdressConfirmation/models';\nimport LockPartnerConfirmation from './dialogs/LockPartnerConfirmation/LockPartnerConfirmation';\nimport { LockPartnerConfirmationDataT } from './dialogs/LockPartnerConfirmation/models';\nimport UnlockPartnerConfirmation from './dialogs/UnlockPartnerConfirmation/UnlockPartnerConfirmation';\nimport { UnlockPartnerConfirmationDataT } from './dialogs/UnlockPartnerConfirmation/models';\nimport PartnerDetailsLayout from './PartnerDetailsLayout/PartnerDetailsLayout';\nimport PartnerDetailsForm from './PartnerDetailsForm/PartnerDetailsForm';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport {\n    selectLockPartnerDetailsRequest,\n    selectLinkPartnerRequestStatus,\n    selectPartnerDetailsById,\n    selectUpdatePartnerDetailsRequest,\n    selectVerifyPartnerDetailsRequest,\n} from 'broker-admin/store/partner/details/selectors';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport PartnerExternalPlatformDetailsForm from './PartnerExternalPlatformDetailsForm/PartnerExternalPlatformDetailsForm';\nimport { selectIsExternalBusinessPartnerManagement } from 'common/store/settings/selectors';\nimport { EditUnavailableReasonEnum } from 'common/utils/api/models';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst PartnerDetailsPage: React.FC<PropsT> = React.memo(() => {\n    const { partnerId } = usePartnerContext();\n\n    const partnerDetailsById = useSelector(selectPartnerDetailsById);\n    const partnerDetails = partnerDetailsById[partnerId as PartnerIdT] || null;\n\n    const verifyPartnerConfirmation = useModalDialog<VerifyPartnerAddressConfirmationDataT>();\n    const unverifyPartnerConfirmation = useModalDialog<UnVerifyPartnerAdressConfirmationDataT>();\n    const lockPartnerConfirmation = useModalDialog<LockPartnerConfirmationDataT>();\n    const unlockPartnerConfirmation = useModalDialog<UnlockPartnerConfirmationDataT>();\n\n    const dispatch = useDispatch();\n\n    const handleVerifyPartner = React.useCallback(\n        (data: VerifyPartnerAddressConfirmationDataT | null): void => {\n            if (!data) {\n                return;\n            }\n\n            const { partnerId, addressType } = data;\n\n            dispatch(verifyPartnerDetails(partnerId, addressType));\n        },\n        [dispatch],\n    );\n\n    const handleUnverifyPartner = React.useCallback(\n        (data: UnVerifyPartnerAdressConfirmationDataT | null): void => {\n            if (!data) {\n                return;\n            }\n\n            const { partnerId, addressType } = data;\n\n            dispatch(unVerifyPartnerDetails(partnerId, addressType));\n        },\n        [dispatch],\n    );\n\n    const handleLockPartner = React.useCallback(\n        (data: LockPartnerConfirmationDataT | null): void => {\n            if (!data) {\n                return;\n            }\n\n            const { partnerId } = data;\n\n            dispatch(lockPartner(partnerId));\n        },\n        [dispatch],\n    );\n\n    const handleUnlockPartner = React.useCallback(\n        (data: UnlockPartnerConfirmationDataT | null): void => {\n            if (!data) {\n                return;\n            }\n\n            const { partnerId } = data;\n\n            dispatch(unlockPartner(partnerId));\n        },\n        [dispatch],\n    );\n\n    const uploadRequestStatus = useSelector(selectUpdatePartnerDetailsRequest);\n    const lockRequestStatus = useSelector(selectLockPartnerDetailsRequest);\n    const verifyRequestStatus = useSelector(selectVerifyPartnerDetailsRequest);\n    const linkRequestStatus = useSelector(selectLinkPartnerRequestStatus);\n\n    useCloseModalDialogAfterRequest(verifyRequestStatus, [verifyPartnerConfirmation, unverifyPartnerConfirmation]);\n\n    useCloseModalDialogAfterRequest(lockRequestStatus, [lockPartnerConfirmation, unlockPartnerConfirmation]);\n\n    const isShowLoaderOverlay =\n        uploadRequestStatus.loading ||\n        lockRequestStatus.loading ||\n        verifyRequestStatus.loading ||\n        linkRequestStatus.loading;\n\n    const permissions = useSelector(selectPermissions);\n    const isExternalBusinessPartnerManagement = useSelector(selectIsExternalBusinessPartnerManagement);\n    const isExternallyManagedPartner =\n        partnerDetails?.editUnavailableReason === EditUnavailableReasonEnum.externallyManaged;\n\n    let detailsContent: React.ReactNode = null;\n    if (permissions?.canEditPartnerDetails) {\n        if (isExternalBusinessPartnerManagement && isExternallyManagedPartner) {\n            detailsContent = (\n                <PartnerExternalPlatformDetailsForm\n                    partnerDetails={partnerDetails}\n                    onLockPartner={lockPartnerConfirmation.setData}\n                    onUnlockPartner={unlockPartnerConfirmation.setData}\n                />\n            );\n        } else {\n            detailsContent = (\n                <PartnerDetailsForm\n                    partnerDetails={partnerDetails}\n                    onVerifyPartner={verifyPartnerConfirmation.setData}\n                    onUnverifyPartner={unverifyPartnerConfirmation.setData}\n                    onLockPartner={lockPartnerConfirmation.setData}\n                    onUnlockPartner={unlockPartnerConfirmation.setData}\n                />\n            );\n        }\n    } else {\n        detailsContent = <PartnerDetailsLayout partnerDetails={partnerDetails} />;\n    }\n\n    return (\n        <>\n            {detailsContent}\n            {isShowLoaderOverlay && <LoaderOverlay />}\n            <VerifyPartnerAdressConfirmation\n                data={verifyPartnerConfirmation.data}\n                onClose={verifyPartnerConfirmation.onClose}\n                onCancel={verifyPartnerConfirmation.onCancel}\n                onConfirm={handleVerifyPartner}\n                requestStatus={verifyRequestStatus}\n            />\n            <UnVerifyPartnerAdressConfirmation\n                data={unverifyPartnerConfirmation.data}\n                onClose={unverifyPartnerConfirmation.onClose}\n                onCancel={unverifyPartnerConfirmation.onCancel}\n                onConfirm={handleUnverifyPartner}\n                requestStatus={verifyRequestStatus}\n            />\n            <LockPartnerConfirmation\n                data={lockPartnerConfirmation.data}\n                onClose={lockPartnerConfirmation.onClose}\n                onCancel={lockPartnerConfirmation.onCancel}\n                onConfirm={handleLockPartner}\n                requestStatus={lockRequestStatus}\n            />\n            <UnlockPartnerConfirmation\n                data={unlockPartnerConfirmation.data}\n                onClose={unlockPartnerConfirmation.onClose}\n                onCancel={unlockPartnerConfirmation.onCancel}\n                onConfirm={handleUnlockPartner}\n                requestStatus={lockRequestStatus}\n            />\n        </>\n    );\n});\n\nexport default PartnerDetailsPage;\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const rulesRefreshChannel = new ViewEventChannel<{\n    ruleIds: Array<RuleIdT>;\n}>();\n\nexport const ruleDetailsRefreshChannel = new ViewEventChannel<{\n    ruleIds: Array<RuleIdT>;\n}>();\n\nexport const rulesPaginationChannel = new ViewEventChannel<{\n    pageNumber: number;\n}>();\n\nexport const ruleDeactivateChannel = new ViewEventChannel<{}>();\n","import { CountryCodeT } from 'common/store/countries-dict/models';\n\nexport enum FieldsEnum {\n    name = 'name',\n    externalBusinessPartnerId = 'externalBusinessPartnerId',\n    teamIds = 'teamIds',\n    mainContactId = 'mainContactId',\n    mainContactFullName = 'mainContactFullName',\n\n    legalAddressCountryCode = 'legalAddressCountryCode',\n    legalAddressZipCode = 'legalAddressZipCode',\n    legalAddressCity = 'legalAddressCity',\n    legalAddressStreet1 = 'legalAddressStreet1',\n    legalAddressStreet2 = 'legalAddressStreet2',\n\n    postalAddressCountryCode = 'postalAddressCountryCode',\n    postalAddressZipCode = 'postalAddressZipCode',\n    postalAddressCity = 'postalAddressCity',\n    postalAddressStreet1 = 'postalAddressStreet1',\n    postalAddressStreet2 = 'postalAddressStreet2',\n\n    billingAddressCountryCode = 'billingAddressCountryCode',\n    billingAddressZipCode = 'billingAddressZipCode',\n    billingAddressCity = 'billingAddressCity',\n    billingAddressStreet1 = 'billingAddressStreet1',\n    billingAddressStreet2 = 'billingAddressStreet2',\n    billingEmail = 'billingEmail',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.name]: string;\n    [FieldsEnum.externalBusinessPartnerId]: PartnerIdT | null;\n    [FieldsEnum.teamIds]: Array<TeamIdT>;\n    [FieldsEnum.mainContactId]: ContactIdT | null;\n    [FieldsEnum.mainContactFullName]: string | null;\n\n    [FieldsEnum.legalAddressCountryCode]: CountryCodeT | null;\n    [FieldsEnum.legalAddressZipCode]: string;\n    [FieldsEnum.legalAddressCity]: string;\n    [FieldsEnum.legalAddressStreet1]: string;\n    [FieldsEnum.legalAddressStreet2]: string;\n\n    [FieldsEnum.postalAddressCountryCode]: CountryCodeT | null;\n    [FieldsEnum.postalAddressZipCode]: string;\n    [FieldsEnum.postalAddressCity]: string;\n    [FieldsEnum.postalAddressStreet1]: string;\n    [FieldsEnum.postalAddressStreet2]: string;\n\n    [FieldsEnum.billingAddressCountryCode]: CountryCodeT | null;\n    [FieldsEnum.billingAddressZipCode]: string;\n    [FieldsEnum.billingAddressCity]: string;\n    [FieldsEnum.billingAddressStreet1]: string;\n    [FieldsEnum.billingAddressStreet2]: string;\n    [FieldsEnum.billingEmail]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n\nexport const FAKE_EXTERNAL_BUSINESS_PARTNER_ID = ' ';\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ModalContent.scss';\nimport OutsideClickHandler from 'design-system/components/OutsideClickHandler/OutsideClickHandler';\nimport { KeyEnum } from 'common/constants';\nimport { isInsideFloatingUiPortal } from 'common/utils/floating-ui';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    onClose: () => void;\n    testSelector?: string;\n};\n\nconst ModalContent: React.FC<PropsT> = (props) => {\n    const { children, onClose, testSelector } = props;\n\n    const onCloseRef = React.useRef(onClose);\n    onCloseRef.current = onClose;\n\n    const shouldHandleOutsidePress = React.useCallback((event: MouseEvent): boolean => {\n        return !isInsideFloatingUiPortal(event.target);\n    }, []);\n\n    React.useEffect(() => {\n        const handleKeyDown = (event: KeyboardEvent): void => {\n            if (event.key === KeyEnum.escape) {\n                onCloseRef.current();\n            }\n        };\n\n        document.addEventListener('keydown', handleKeyDown);\n\n        return () => {\n            document.removeEventListener('keydown', handleKeyDown);\n        };\n    }, []);\n\n    return (\n        <div className={cx('modal')}>\n            <OutsideClickHandler onOutsideClick={onClose} shouldHandleOutsidePress={shouldHandleOutsidePress}>\n                <div className={cx('inner')} data-test-selector={`${testSelector}_modal`}>\n                    {children}\n                </div>\n            </OutsideClickHandler>\n        </div>\n    );\n};\n\nexport default ModalContent;\n","import { StateT } from 'broker-admin/store/models';\nimport { TendersStateT } from './slice';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { ApiTenderInfoT } from 'broker-admin/utils/api/broker-tranziit/models';\n\nexport const selectTendersState = (state: StateT): TendersStateT => state.tenders;\n\nexport const selectTendersDownloadRequestStatus = (state: StateT): RequestStatusT =>\n    state.tenders.downloadRequestStatus;\n\nexport const selectTendersImportRequestStatus = (state: StateT): RequestStatusT => state.tenders.importRequestStatus;\n\nexport const selectTendersFetchStatusRequestStatus = (state: StateT): RequestStatusT =>\n    state.tenders.fetchStatusRequestStatus;\n\nexport const selectTendersDeleteRequestStatus = (state: StateT): RequestStatusT => state.tenders.deleteRequestStatus;\n\nexport const selectTendersLastStatus = (state: StateT): ApiTenderInfoT | null => state.tenders.lastStatus;\n","import * as React from 'react';\nimport { memo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames/bind';\nimport styles from './ContractName.scss';\nimport cs from 'classnames';\nimport { TFunction } from 'i18next';\n\nexport type PropsT = {\n    className?: string;\n    name?: string;\n    nameFallback?: string | null;\n};\n\nconst cx = classNames.bind(styles);\n\nexport const getContractName = (name: string | undefined, t: TFunction): string => {\n    return name || t('common:carrier-contracts.table.empty-name');\n};\n\nconst ContractName: React.FC<PropsT> = memo((props) => {\n    const { className, name, nameFallback } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <div\n            className={cs(\n                cx('name', {\n                    'name--empty': !name,\n                }),\n                className,\n            )}\n        >\n            {nameFallback ? name || nameFallback || '' : getContractName(name, t)}\n        </div>\n    );\n});\n\nexport default ContractName;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PendingUserCell.scss';\nimport { ApiUserStatusT, UserStatusEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    userStatus?: ApiUserStatusT;\n};\n\nconst cx = classNames.bind(styles);\n\nconst PendingUserCell: React.FC<PropsT> = React.memo((props) => {\n    const { children, userStatus } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <div className={cx('content')}>\n            {userStatus === UserStatusEnum.pending ? t('common:team-members.pending') : children}\n        </div>\n    );\n});\n\nexport default PendingUserCell;\n","import { ApiRequestError, ApiRequestErrorTypeEnum } from '../errors/api-request-error';\nimport { BaseSecurityAuthApi } from '../auth/base-security-auth-api';\nimport parseErrors from './errors/parse-errors';\nimport { TranziitApiRequestError, TranziitApiRequestErrorSubTypeEnum } from './errors/tranziit-api-errors';\nimport doFetch from 'common/utils/api/do-fetch';\nimport { NotImplementedError } from 'common/utils/api/errors/not-implemented-error';\nimport { BaseFetchConfigT, FetchConfigT } from '../do-fetch-models';\nimport isString from 'lodash/isString';\nimport isNumber from 'lodash/isNumber';\n\nconst delay = async (time: number) => {\n    return new Promise((resolve) => {\n        setTimeout(() => {\n            resolve(null);\n        }, time);\n    });\n};\n\nconst CHECK_USER_TOKEN_TIMEOUT = 500;\n\nconst DEFAULT_RETRY_COUNT = 3;\nconst DEFAULT_RETRY_BASE_DELAY_MS = 2000;\nconst DEFAULT_RETRY_DELAY_FACTOR = 2;\nconst DEFAULT_RETRY_DELAY_MAX_MS = 10000;\n\nexport const throwNotImplementedError = (): TranziitApiResultT<null> => {\n    return [new NotImplementedError(), null];\n};\n\nexport type TranziitApiResultT<TSuccessResponseData, TErrorResponseData = any> = [\n    TranziitApiRequestError | ApiRequestError<TErrorResponseData> | NotImplementedError | null,\n    TSuccessResponseData | null,\n    Response?,\n];\n\ntype HTTPHeadersT = Record<string, string>;\n\ntype DoFetchWithRetryOptionsT = {\n    retryCount?: number;\n};\n\nabstract class BaseTranziitApi {\n    private authApi: BaseSecurityAuthApi;\n\n    private baseRequestConfig: BaseFetchConfigT;\n\n    constructor(authApi: BaseSecurityAuthApi, baseRequestConfig: BaseFetchConfigT) {\n        this.authApi = authApi;\n        this.baseRequestConfig = baseRequestConfig;\n    }\n\n    async getHeaders(): Promise<Record<string, string>> {\n        const authHeaders = await this.getAuthHeaders();\n\n        return {\n            'Content-Type': 'application/json',\n            ...authHeaders,\n        };\n    }\n\n    private checkIsValidConfig = (): boolean => {\n        return isString(this.baseRequestConfig.basepath) && isNumber(this.baseRequestConfig.timeout);\n    };\n\n    private waitValidConfig = async (): Promise<void> => {\n        while (!this.checkIsValidConfig()) {\n            await delay(50);\n        }\n    };\n\n    public setBasePath = (basepath: string): void => {\n        this.baseRequestConfig.basepath = basepath;\n    };\n\n    async getAuthHeaders(): Promise<Record<string, string> | null> {\n        let headers: Record<string, string> | null = null;\n\n        // wait token\n        while (!headers) {\n            headers = await this.authApi.getAuthHeaders();\n            if (!headers) {\n                await delay(CHECK_USER_TOKEN_TIMEOUT);\n            }\n        }\n\n        return headers;\n    }\n\n    async getAuthToken(): Promise<string | null> {\n        let token: string | null = null;\n\n        // wait token\n        while (!token) {\n            token = await this.authApi.getAuthToken();\n            if (!token) {\n                await delay(CHECK_USER_TOKEN_TIMEOUT);\n            }\n        }\n\n        return token;\n    }\n\n    async doFetch<D, E = any>(requestConfig: FetchConfigT): Promise<TranziitApiResultT<D>> {\n        let headers: HTTPHeadersT = {};\n        try {\n            await this.waitValidConfig();\n            headers = await this.getHeaders();\n        } catch (error) {\n            return [error, null];\n        }\n        /*\n        console.log(\"[DEBUG] request: \", JSON.stringify({\n            ...this.baseRequestConfig,\n            ...requestConfig,\n            headers: {\n                ...headers,\n                ...requestConfig.headers,\n            },\n        }, null, 4));\n        */\n\n        const [error, result, rawResponse] = await doFetch<D, E>({\n            ...this.baseRequestConfig,\n            ...requestConfig,\n            headers: {\n                ...headers,\n                ...requestConfig.headers,\n            },\n        });\n\n        // console.log(\"[DEBUG] request error: \", error);\n\n        if (error) {\n            if (error.type === ApiRequestErrorTypeEnum.badRequest) {\n                const subTypes = Object.values(TranziitApiRequestErrorSubTypeEnum);\n                for (let i = 0; i < subTypes.length; i += 1) {\n                    const subType = subTypes[i];\n\n                    const parseError = parseErrors[subType];\n                    if (parseError && parseError(error)) {\n                        const apiError = new TranziitApiRequestError(error, subType);\n                        return [apiError, null, rawResponse];\n                    }\n                }\n            }\n\n            return [error, null, rawResponse];\n        }\n\n        return [null, result, rawResponse];\n    }\n\n    private checkIsRetryableError(error: Error | null): boolean {\n        if (!(error instanceof ApiRequestError)) {\n            return false;\n        }\n\n        if (error.type === ApiRequestErrorTypeEnum.networkError) {\n            return true;\n        }\n\n        return error.httpStatusCode >= 500;\n    }\n\n    private getRetryDelayMs(attempt: number, baseDelayMs: number, factor: number, maxDelayMs: number): number {\n        const delayMs = baseDelayMs * factor ** attempt;\n        return Math.min(delayMs, maxDelayMs);\n    }\n\n    async doFetchWithRetry<D, E = any>(\n        requestConfig: FetchConfigT,\n        options: DoFetchWithRetryOptionsT = {},\n    ): Promise<TranziitApiResultT<D>> {\n        const { retryCount = DEFAULT_RETRY_COUNT } = options;\n\n        let result: TranziitApiResultT<D> = [null, null];\n\n        for (let attempt = 0; attempt <= retryCount; attempt += 1) {\n            result = await this.doFetch<D, E>(requestConfig);\n\n            const [error] = result;\n\n            if (!error || !this.checkIsRetryableError(error) || attempt === retryCount) {\n                return result;\n            }\n\n            const retryDelayMs = this.getRetryDelayMs(\n                attempt,\n                DEFAULT_RETRY_BASE_DELAY_MS,\n                DEFAULT_RETRY_DELAY_FACTOR,\n                DEFAULT_RETRY_DELAY_MAX_MS,\n            );\n\n            // console.log(`[DEBUG] retry delay: ${retryDelayMs}ms`);\n\n            await delay(retryDelayMs);\n        }\n\n        return result;\n    }\n}\n\nexport default BaseTranziitApi;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './NotificationToastContent.scss';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport { AnyNotificationT, NotificationEmotionEnum } from 'common/store/notifications/models';\nimport { ApiLogInitiatorTypeT } from 'common/utils/api/models';\nimport NotificationCardBody from 'common/components/notifications/NotificationsBarContent/NotificationCardBody/NotificationCardBody';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    className?: string;\n    testSelector?: string;\n    notification: AnyNotificationT;\n    emotion: NotificationEmotionEnum | null;\n    initiatorType?: ApiLogInitiatorTypeT;\n    initiatorName?: string | null;\n    onClick: () => void;\n    onClose: () => void;\n    headerNode?: React.ReactNode;\n    footerNode?: React.ReactNode;\n    children: React.ReactNode;\n};\n\nconst NotificationToastContent: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        testSelector,\n        notification,\n        emotion: rawEmotion,\n        initiatorType,\n        initiatorName,\n        onClick,\n        onClose,\n        headerNode,\n        footerNode,\n        children,\n    } = props;\n\n    const emotion = notification.readAlready ? null : rawEmotion;\n\n    return (\n        <NotificationCardBody\n            className={className}\n            emotion={emotion}\n            readAlready={notification.readAlready}\n            initiatorType={initiatorType}\n            initiatorName={initiatorName}\n            onClick={onClick}\n        >\n            <div className={cx('inner')} data-test-selector={testSelector}>\n                <div className={cx('inner__content')}>\n                    {headerNode && <div className={cx('header')}>{headerNode}</div>}\n                    {children}\n                    {footerNode && <div className={cx('footer')}>{footerNode}</div>}\n                </div>\n                <div className={cx('inner__close')}>\n                    <TransparentTrigger\n                        onClick={(event) => {\n                            event.preventDefault();\n                            event.stopPropagation();\n\n                            onClose();\n                        }}\n                        reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                        spaces=\"xs\"\n                        leftIcon={<CloseIcon fillColor={StyleGuideColorsEnum.slate} />}\n                    />\n                </div>\n            </div>\n        </NotificationCardBody>\n    );\n});\n\nexport default NotificationToastContent;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './AlertProgressBar.scss';\nimport cs from 'classnames';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    isShow: boolean;\n    progress: number; // 0 - 100\n};\n\nexport const AlertProgressBar: React.FC<PropsT> = (props) => {\n    const { className, isShow, progress } = props;\n\n    const limitedPercent = Math.round(Math.max(0, Math.min(progress, 100)));\n\n    return (\n        <div className={cs(cx('progress-bar'), className)}>\n            {isShow && (\n                <>\n                    <div className={cx('line', 'line--isBackground')} />\n                    <div style={{ width: `${limitedPercent}%` }} className={cx('line', 'line--isProgress')} />\n                </>\n            )}\n        </div>\n    );\n};\n","import isEmpty from 'lodash/isEmpty';\n\nexport const checkFilters = (primaryFilters: Array<TODO>, secondaryFilters: Array<TODO>) => {\n    const hasPrimaryQueryFilters = !!primaryFilters.filter((item) => !isEmpty(item))?.length;\n    const hasSecondaryQueryFilters = !!secondaryFilters.filter((item) => !isEmpty(item))?.length;\n\n    return {\n        hasPrimaryQueryFilters,\n        hasSecondaryQueryFilters,\n    };\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"asset-tooltip\":\"AssetPin__asset-tooltip___KJ1ah\",\"asset-tooltip--isDarkText\":\"AssetPin__asset-tooltip--isDarkText___TQye5\",\"asset\":\"AssetPin__asset___ch3b_\",\"pin--isSelected\":\"AssetPin__pin--isSelected___l26ep\",\"arrival\":\"AssetPin__arrival___eHCZc\",\"icon\":\"AssetPin__icon___T8Lyb\",\"carrier\":\"AssetPin__carrier___cvUCK\",\"carrier__name\":\"AssetPin__carrier__name___TS3P2\",\"utilization\":\"AssetPin__utilization___tiCEk\",\"price\":\"AssetPin__price___jHv9I\",\"footer\":\"AssetPin__footer___IpmJW\",\"fadeIn\":\"AssetPin__fadeIn___Uzuva\",\"blinking\":\"AssetPin__blinking___M9PzJ\"};","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport { LongDeadheadConfirmationDataT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { LONG_DEADHEAD_PERCENT } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/constants';\nimport BigWarningIcon from 'common/icons/BigWarningIcon';\n\ntype PropsT = {\n    data: LongDeadheadConfirmationDataT | null;\n    requestStatus: RequestStatusT;\n    onClose: () => void;\n    onCancel: () => void;\n    onConfirm: (data: LongDeadheadConfirmationDataT) => void;\n};\n\nconst TEST_SELECTOR = 'long-deadhead-confirmation';\n\nconst LongDeadheadConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, requestStatus, onClose, onCancel, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: requestStatus.loading,\n                            onClick: onCancel,\n                        },\n                        {\n                            children: t('common:error-modal.actions.confirm'),\n                            theme: ButtonThemeEnum.danger,\n                            isLoading: requestStatus.loading,\n                            isDisabled: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigWarningIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                    title={t('assignment.long-deadhead-confirmation.title')}\n                    message={t('assignment.long-deadhead-confirmation.description', {\n                        percent: LONG_DEADHEAD_PERCENT,\n                    })}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default LongDeadheadConfirmation;\n","import React from 'react';\n\nimport { CompanyContactT } from 'common/store/members/models';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport Modal from 'common/components/Modal/Modal';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport BigWarningIcon from 'common/icons/BigWarningIcon';\nimport { CommonChangeUserRoleFormPropsT } from 'common/layouts/Members/dialogs/ChangeUserRoleModal/models';\nimport ChangeRoleUserForm, { ChangeUserRoleDataT } from 'common/layouts/Members/ChangeRoleUserForm/ChangeRoleUserForm';\nimport { useSelector } from 'react-redux';\nimport { selectUpdateMemberRequest } from 'common/store/members/selectors';\n\nexport type ChangeUserRoleModalDataT = {\n    contact: {\n        roles: CompanyContactT['roles'];\n        fullName: CompanyContactT['fullName'];\n        userId: CompanyContactT['userId'];\n    } | null;\n    partnerType: PartnerTypeEnum;\n    partnerId: PartnerIdT;\n};\n\nexport type ChangeUserRoleModalPropsT = {\n    data: ChangeUserRoleModalDataT | null;\n    onClose: () => void;\n    onChangeUserRole: (params: { data: ChangeUserRoleModalDataT | null; changes: ChangeUserRoleDataT }) => void;\n};\n\nconst TEST_SELECTOR = 'change-user-role';\n\nconst ChangeUserRoleModal: React.FC<ChangeUserRoleModalPropsT> = React.memo((props) => {\n    const { data, onClose, onChangeUserRole } = props;\n\n    const contact = data?.contact || null;\n    const partnerType = data?.partnerType || null;\n    const partnerId = data?.partnerId || null;\n\n    const updateMemberRequest = useSelector(selectUpdateMemberRequest(partnerId));\n\n    const { t } = useTranslation();\n\n    if (!contact || !partnerType || !partnerId) {\n        return null;\n    }\n\n    const commonFormProps: CommonChangeUserRoleFormPropsT = {\n        contact,\n        onCancel: onClose,\n        updateMemberRequest,\n    };\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    icon={<BigWarningIcon />}\n                    title={t('common:team-members.dialogs.change-user-role.title', {\n                        fullName: contact?.fullName,\n                    })}\n                    message={t('common:team-members.dialogs.change-user-role.description', {\n                        fullName: contact?.fullName,\n                    })}\n                >\n                    <ChangeRoleUserForm\n                        {...commonFormProps}\n                        partnerType={partnerType}\n                        onChangeUserRole={(changes) => {\n                            onChangeUserRole({ data, changes });\n                        }}\n                    />\n                </ModalDialog>\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default ChangeUserRoleModal;\n","// extracted by mini-css-extract-plugin\nexport default {\"alert\":\"FooterSideBarAlertsLayout__alert___BPXZT\",\"fadeIn\":\"FooterSideBarAlertsLayout__fadeIn___BjJmo\",\"blinking\":\"FooterSideBarAlertsLayout__blinking___C4xaB\"};","import * as React from 'react';\nimport { ReserveT } from 'common/store/order-creation/models';\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames/bind';\nimport styles from './FerryOnboardPointPicker.scss';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport BoatIcon from 'common/icons/BoatIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { formatTimeInterval } from 'common/utils/time';\nimport { useFormikContext } from 'formik';\nimport { FormValuesT } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderRouteEditPage/RouteEditForm/constants';\nimport { FieldsEnum, RoutePointFieldsEnum } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/constants';\nimport { getFieldFormValue } from 'common/utils/form-values';\n\ntype PropsT = {\n    className?: string;\n    routePointIndex: number;\n    reserve: ReserveT | null;\n};\n\nconst cx = classNames.bind(styles);\n\nconst FerryOnboardPointPicker: React.FC<PropsT> = React.memo((props) => {\n    const { routePointIndex, reserve } = props;\n\n    const { t } = useTranslation();\n\n    const routePoint = reserve?.points?.[routePointIndex] || null;\n\n    const formik = useFormikContext<FormValuesT>();\n\n    const locationFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.location}` as const;\n    const timeWindowFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.timeWindow}` as const;\n\n    const location = getFieldFormValue(formik.values, locationFieldName);\n    const timeWindow = getFieldFormValue(formik.values, timeWindowFieldName);\n\n    const correctedTimeWindow = timeWindow || routePoint?.defaultTimeWindow || null;\n\n    return (\n        <ReadOnlyField\n            icon={\n                <BoatIcon\n                    size={DEFAULT_ICON_SIZE}\n                    fillColor={StyleGuideColorsEnum.brandAccent}\n                    strokeColor={StyleGuideColorsEnum.brandDark}\n                />\n            }\n            label={t('common:new-order-form.fields.ferry-onboard.label')}\n            subLabel={\n                <PillLabel className={cx('time-interval')} isSymmetrical theme={PillLabelThemeEnum.charcoal}>\n                    {formatTimeInterval(correctedTimeWindow?.start, correctedTimeWindow?.end)}\n                </PillLabel>\n            }\n            value={routePoint?.addressStr || location?.address}\n        />\n    );\n});\n\nexport default FerryOnboardPointPicker;\n","import { TFunction } from 'i18next';\n\nimport { editableRouteStopTypeSet, FieldsEnum, FormErrorsT, RouteFormValuesT, RoutePointFieldsEnum } from './constants';\nimport { CountrySettingsByCodeT } from 'common/store/country-settings-dict/models';\nimport { checkIsAvailableCountryForShip } from 'common/store/country-settings-dict/utils/check-location';\nimport { CountryCodeT } from 'common/utils/api/models';\n\nconst convertCountryCode = (dictCountryCode: CountryCodeT) => dictCountryCode.toUpperCase();\n\ntype MetaT = {\n    countriesSettingsByCode: CountrySettingsByCodeT;\n    excludedCountries: Array<CountryCodeT>;\n};\n\nconst verifyLocation = (t: TFunction, location: LocationT | undefined | null): string | null => {\n    if (!location) {\n        return null;\n    }\n\n    if (Number.isNaN(location.utcOffsetMinutes)) {\n        return t('broker-order-route-edit.errors.wrong-utc-offset');\n    }\n\n    if (\n        !location.addressComponents?.zipCode &&\n        !location.addressComponents?.city &&\n        !location.addressComponents?.countryCode &&\n        !location.addressComponents?.street1 &&\n        !location.addressComponents?.street2\n    ) {\n        return t('broker-order-route-edit.errors.unsupported-area');\n    }\n\n    if (!location.addressComponents?.countryCode) {\n        return t('broker-order-route-edit.errors.need-address-details.country-code');\n    }\n\n    if (!location.addressComponents?.city) {\n        return t('broker-order-route-edit.errors.need-address-details.locality');\n    }\n\n    return null;\n};\n\nconst validate = (t: TFunction, values: RouteFormValuesT, meta: MetaT): FormErrorsT => {\n    const { countriesSettingsByCode, excludedCountries } = meta;\n\n    const errors: FormErrorsT = {};\n\n    const excludedCountriesSet = new Set(excludedCountries.map(convertCountryCode));\n\n    const routeFormValue = values[FieldsEnum.route];\n    routeFormValue.forEach((routePointFormValue, routePointIndex) => {\n        // first stop is always the pickup stop, will be added by the backend so we don't need to validate it\n        if (routePointIndex === 0 && !editableRouteStopTypeSet.has(routePointFormValue.type)) {\n            return;\n        }\n\n        const addRoutePointError = (fieldName: RoutePointFieldsEnum, message: string) => {\n            if (!errors[FieldsEnum.route]) {\n                errors[FieldsEnum.route] = [];\n            }\n\n            if (!errors[FieldsEnum.route][routePointIndex]) {\n                errors[FieldsEnum.route][routePointIndex] = {};\n            }\n\n            errors[FieldsEnum.route][routePointIndex][fieldName] = message;\n        };\n\n        if (editableRouteStopTypeSet.has(routePointFormValue.type)) {\n            const routePointLocation = routeFormValue[routePointIndex][RoutePointFieldsEnum.location];\n            if (!routePointLocation) {\n                addRoutePointError(\n                    RoutePointFieldsEnum.location,\n                    t('broker-order-route-edit.errors.required-select-item'),\n                );\n            }\n\n            const routePointLocationError = verifyLocation(t, routePointLocation);\n            if (routePointLocation && routePointLocationError) {\n                addRoutePointError(RoutePointFieldsEnum.location, routePointLocationError);\n            }\n\n            if (!checkIsAvailableCountryForShip(routePointLocation, countriesSettingsByCode)) {\n                addRoutePointError(\n                    RoutePointFieldsEnum.location,\n                    t('broker-order-route-edit.errors.unsupported-country'),\n                );\n            }\n\n            if (excludedCountriesSet.has(routePointLocation?.addressComponents?.countryCode || '')) {\n                addRoutePointError(RoutePointFieldsEnum.location, t('broker-order-route-edit.errors.excluded-country'));\n            }\n        }\n    });\n\n    return errors;\n};\n\nexport default validate;\n","import React, { useEffect } from 'react';\nimport * as d3 from 'd3';\nimport classNames from 'classnames/bind';\n\nimport styles from './Chart.scss';\n\nimport { ChartMarginT, DataItemT, TooltipOffsetT } from '../models';\nimport ChartTooltip from 'broker-admin/layouts/StatisticsPage/StatisticsChart/ChartTooltip/ChartTooltip';\nimport { GraphSettingsT } from 'broker-admin/layouts/StatisticsPage/models';\nimport { AggregateEnum } from 'broker-admin/layouts/StatisticsPage/constants';\n\nconst cx = classNames.bind(styles);\n\ntype HoverStateT = {\n    offset: TooltipOffsetT;\n    index: number;\n} | null;\n\ntype DrawLineChartArgsT = {\n    data: DataItemT[];\n    settings: GraphSettingsT;\n    width: number;\n    height: number;\n    xScale: d3.ScaleLinear<number, number>;\n    yScale: d3.ScaleLinear<number, number>;\n    svgRef: React.RefObject<SVGSVGElement>;\n    onHoverState: (state: HoverStateT) => void;\n    margin: ChartMarginT;\n};\n\nconst drawLineChart = (props: DrawLineChartArgsT) => {\n    const { svgRef, data, settings, xScale, yScale, height, onHoverState, margin } = props;\n\n    const svg = d3.select(svgRef.current).select('g');\n\n    if (\n        settings.show[AggregateEnum.acceptedShipperRate] &&\n        settings.show[AggregateEnum.realCarrierRate] &&\n        settings.available[AggregateEnum.acceptedShipperRate] &&\n        settings.available[AggregateEnum.realCarrierRate]\n    ) {\n        const X = d3.map(data, (d) => d.timestamp);\n        const acceptedY = d3.map(data, (d) => d.acceptedShipperRate);\n        const realY = d3.map(data, (d) => d.realCarrierRate);\n        const I = d3.range(data.length);\n\n        const area = (y0: number, y1: number) =>\n            d3\n                .area()\n                // @ts-expect-error\n                .x((i) => xScale(X[i]))\n                .y0(y0)\n                // @ts-expect-error\n                .y1(y1)(I);\n\n        const diffId = 'accepted-real-diff';\n\n        svg.append('clipPath')\n            .attr('id', `${diffId}-above`)\n            .append('path')\n            .attr(\n                'd',\n                // @ts-expect-error\n                area(0, (i) => yScale(acceptedY[i])),\n            );\n\n        svg.append('clipPath')\n            .attr('id', `${diffId}-below`)\n            .append('path')\n            .attr(\n                'd',\n                // @ts-expect-error\n                area(height, (i) => yScale(acceptedY[i])),\n            );\n\n        svg.append('path')\n            .attr('clip-path', `url('#${diffId}-above')`)\n            .attr('fill', `url(#pattern_above)`)\n            .attr(\n                'd',\n                // @ts-expect-error\n                area(height, (i) => yScale(realY[i])),\n            );\n\n        svg.append('path')\n            .attr('clip-path', `url('#${diffId}-below')`)\n            .attr('fill', `url(#pattern_below)`)\n            .attr(\n                'd',\n                // @ts-expect-error\n                area(0, (i) => yScale(realY[i])),\n            );\n    }\n\n    const handleMouseOver = (event: TODO): void => {\n        const eventIndex = event.target.getAttribute('data-index');\n\n        const rect = event.target.getBBox();\n        if (!rect) {\n            return;\n        }\n\n        onHoverState({\n            index: eventIndex,\n            offset: {\n                left: margin.left + rect.x + rect.width / 2,\n                top: margin.top + rect.y + rect.height / 2,\n            },\n        });\n    };\n\n    const handleMouseOut = (): void => {\n        onHoverState(null);\n    };\n\n    const dotsRadius = 6;\n\n    if (settings.show[AggregateEnum.acceptedShipperRate] && settings.available[AggregateEnum.acceptedShipperRate]) {\n        const acceptedLine = d3\n            .line<DataItemT>()\n            .x((d) => xScale(d.timestamp))\n            .y((d) => yScale(d.acceptedShipperRate))\n            .curve(d3.curveLinear);\n\n        svg.append('path')\n            .datum(data)\n            .attr('d', acceptedLine)\n            .attr('class', cx(['line-chart', 'line-chart--accepted']));\n\n        svg.selectAll('dot')\n            .data(data)\n            .enter()\n            .append('circle')\n            .attr('r', dotsRadius)\n            .attr('class', cx('bubbles', 'bubbles--accepted'))\n            .attr('cx', (d) => {\n                return xScale(d.timestamp);\n            })\n            .attr('cy', (d) => {\n                return yScale(d.acceptedShipperRate);\n            })\n            .attr('data-index', (_, i) => i)\n            .on('mouseover', handleMouseOver)\n            .on('mouseout', handleMouseOut);\n    }\n\n    if (settings.show[AggregateEnum.rejectedShipperRate] && settings.available[AggregateEnum.rejectedShipperRate]) {\n        const rejectedLine = d3\n            .line<DataItemT>()\n            .x((d) => xScale(d.timestamp))\n            .y((d) => yScale(d.rejectedShipperRate))\n            .curve(d3.curveLinear);\n\n        svg.append('path')\n            .datum(data)\n            .attr('d', rejectedLine)\n            .attr('class', cx(['line-chart', 'line-chart--rejected']));\n\n        svg.selectAll('dot')\n            .data(data)\n            .enter()\n            .append('circle')\n            .attr('r', dotsRadius)\n            .attr('class', cx('bubbles', 'bubbles--rejected'))\n            .attr('cx', (d) => {\n                return xScale(d.timestamp);\n            })\n            .attr('cy', (d) => {\n                return yScale(d.rejectedShipperRate);\n            })\n            .attr('data-index', (_, i) => i)\n            .on('mouseover', handleMouseOver)\n            .on('mouseout', handleMouseOut);\n    }\n\n    if (settings.show[AggregateEnum.estimatedCarrierRate] && settings.available[AggregateEnum.estimatedCarrierRate]) {\n        const estimatedLine = d3\n            .line<DataItemT>()\n            .x((d) => xScale(d.timestamp))\n            .y((d) => yScale(d.estimatedCarrierRate))\n            .curve(d3.curveLinear);\n\n        svg.append('path')\n            .datum(data)\n            .attr('d', estimatedLine)\n            .attr('class', cx(['line-chart', 'line-chart--estimated']));\n\n        svg.selectAll('dot')\n            .data(data)\n            .enter()\n            .append('circle')\n            .attr('r', dotsRadius)\n            .attr('class', cx('bubbles', 'bubbles--estimated'))\n            .attr('cx', (d) => {\n                return xScale(d.timestamp);\n            })\n            .attr('cy', (d) => {\n                return yScale(d.estimatedCarrierRate);\n            })\n            .attr('data-index', (_, i) => i)\n            .on('mouseover', handleMouseOver)\n            .on('mouseout', handleMouseOut);\n    }\n\n    if (settings.show[AggregateEnum.realCarrierRate] && settings.available[AggregateEnum.realCarrierRate]) {\n        const realLine = d3\n            .line<DataItemT>()\n            .x((d) => xScale(d.timestamp))\n            .y((d) => yScale(d.realCarrierRate))\n            .curve(d3.curveLinear);\n\n        svg.append('path')\n            .datum(data)\n            .attr('d', realLine)\n            .attr('class', cx(['line-chart', 'line-chart--real']));\n\n        svg.selectAll('dot')\n            .data(data)\n            .enter()\n            .append('circle')\n            .attr('r', dotsRadius)\n            .attr('class', cx('bubbles', 'bubbles--real'))\n            .attr('cx', (d) => {\n                return xScale(d.timestamp);\n            })\n            .attr('cy', (d) => {\n                return yScale(d.realCarrierRate);\n            })\n            .attr('data-index', (_, i) => i)\n            .on('mouseover', handleMouseOver)\n            .on('mouseout', handleMouseOut);\n    }\n};\n\ntype AddDiffPatternDefT = {\n    svgRef: React.RefObject<SVGSVGElement>;\n    name: string;\n    color: string;\n};\n\nconst addDiffPatternDef = (args: AddDiffPatternDefT) => {\n    const { svgRef, name, color } = args;\n    const svgDefs = d3.select(svgRef.current).append('defs');\n\n    svgDefs\n        .append('pattern')\n        .attr('id', name)\n        .attr('patternUnits', 'userSpaceOnUse')\n        .attr('width', '6')\n        .attr('height', '6')\n        .attr('patternTransform', 'rotate(0)')\n        .append('line')\n        .attr('x1', '0')\n        .attr('y', '0')\n        .attr('x2', '0')\n        .attr('y2', '6')\n        .attr('stroke', color)\n        .attr('stroke-width', '10');\n};\n\ntype AddDefsArgsT = {\n    svgRef: React.RefObject<SVGSVGElement>;\n};\n\nconst addDefs = (args: AddDefsArgsT): void => {\n    const { svgRef } = args;\n\n    addDiffPatternDef({\n        svgRef,\n        name: 'pattern_above',\n        color: '#fdd0b2',\n    });\n    addDiffPatternDef({\n        svgRef,\n        name: 'pattern_below',\n        color: '#c1edff',\n    });\n};\n\ntype DrawAxisArgsT = {\n    width: number;\n    height: number;\n    xScale: d3.ScaleLinear<number, number>;\n    xValues: Array<number>;\n    yScale: d3.ScaleLinear<number, number>;\n    svgRef: React.RefObject<SVGSVGElement>;\n    xTickFormatter: (value: number) => string;\n    yTickFormatter: (value: number) => string;\n};\n\nconst drawAxis = (args: DrawAxisArgsT): void => {\n    const { width, height, svgRef, xScale, xValues, yScale, xTickFormatter, yTickFormatter } = args;\n\n    const svg = d3.select(svgRef.current).select('g');\n\n    svg.append('g')\n        .attr('class', cx('axis'))\n        .attr('transform', `translate(0,${height})`)\n        .call(d3.axisBottom<number>(xScale).tickFormat(xTickFormatter).tickValues(xValues))\n        .call((g) => g.select('.domain').remove())\n        .call((g) => g.selectAll('.tick line:first-child').remove());\n\n    svg.append('g')\n        .attr('class', cx('axis'))\n        .call(d3.axisLeft<number>(yScale).tickFormat(yTickFormatter))\n        .call((g) => g.select('.domain').remove())\n        .call((g) =>\n            g\n                .selectAll('.tick line')\n                .clone()\n                .attr('x2', width)\n                .attr('class', cx(['axis', 'axis--line'])),\n        )\n        .call((g) => g.selectAll('.tick line:first-child').remove());\n\n    // TODO right axis\n    // svg.append('g')\n    //     .attr('class', cx('axis'))\n    //     .attr('transform', `translate(${width} ,0)`)\n    //     .call(d3.axisRight(yScale))\n    //     .call((g) => g.select('.domain').remove());\n};\n\ntype PropsT = {\n    margin: ChartMarginT;\n    width: number;\n    height: number;\n    settings: GraphSettingsT;\n    data: DataItemT[];\n    xTickFormatter: (value: number) => string;\n    yTickFormatter: (value: number) => string;\n};\n\nconst Chart: React.FC<PropsT> = React.memo((props) => {\n    const { margin, width, height, data, settings, xTickFormatter, yTickFormatter } = props;\n\n    const [hoverState, setHoverState] = React.useState<HoverStateT>(null);\n\n    const innerWidth = width - margin.left - margin.right;\n    const innerHeight = height - margin.top - margin.bottom;\n\n    const svgRef = React.createRef<SVGSVGElement>();\n\n    const xMinValue = d3.min(data, (d) => d.timestamp) || 0;\n    const xMaxValue = d3.max(data, (d) => d.timestamp) || 0;\n    const xValues = data.map((d) => d.timestamp);\n    const xScale = d3.scaleLinear().range([0, innerWidth]).domain([xMinValue, xMaxValue]);\n\n    const yMinValue =\n        d3.min(data, (d) => {\n            return Math.min(d.rejectedShipperRate, d.acceptedShipperRate, d.estimatedCarrierRate, d.realCarrierRate);\n        }) || 0;\n\n    const yMaxValue =\n        d3.max(data, (d) => {\n            return Math.max(d.rejectedShipperRate, d.acceptedShipperRate, d.estimatedCarrierRate, d.realCarrierRate);\n        }) || 0;\n\n    const yScale = d3.scaleLinear().range([innerHeight, 0]).domain([yMinValue, yMaxValue]);\n\n    const flushChart = () => {\n        d3.select(svgRef.current).selectAll('*').remove();\n    };\n\n    const draw = () => {\n        d3.select(svgRef.current)\n            .attr('width', width)\n            .attr('height', height)\n            .append('g')\n            .attr('transform', `translate(${margin.left},${margin.top})`);\n\n        addDefs({\n            svgRef,\n        });\n\n        drawAxis({\n            width: innerWidth,\n            height: innerHeight,\n            svgRef,\n            xScale,\n            xValues,\n            yScale,\n            xTickFormatter,\n            yTickFormatter,\n        });\n\n        drawLineChart({\n            settings,\n            width: innerWidth,\n            height: innerHeight,\n            svgRef,\n            data,\n            xScale,\n            yScale,\n            onHoverState: setHoverState,\n            margin,\n        });\n    };\n\n    useEffect(() => {\n        flushChart();\n        draw();\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [width, height, data, settings]);\n\n    return (\n        <>\n            <svg ref={svgRef} />\n            <ChartTooltip\n                settings={settings}\n                data={data[hoverState?.index as number]}\n                offset={hoverState?.offset || null}\n            />\n        </>\n    );\n});\n\nexport default Chart;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    fillColor: StyleGuideColorsEnum;\n    opacity?: number;\n};\n\nconst StopWarningIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, opacity, className } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" className={className}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fillOpacity={opacity || 1}\n                    fill={fillColor}\n                    d=\"M12.797 3.25H7.202L3.25 7.202v5.595l3.952 3.953h5.595l3.953-3.953V7.202L12.797 3.25zM10 13.975A.973.973 0 019.025 13c0-.54.435-.975.975-.975s.975.435.975.975-.435.975-.975.975zm.75-3.225h-1.5v-4.5h1.5v4.5z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nStopWarningIcon.displayName = 'StopWarningIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.tomatoRed,\n    opacity: 1,\n};\n\nexport { storyProps };\nexport default StopWarningIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"list--hasVerticalPaddings\":\"PriceDetails__list--hasVerticalPaddings___OA7qP\",\"row\":\"PriceDetails__row___id8jR\",\"row--isClickable\":\"PriceDetails__row--isClickable___nGBJq\",\"column--content\":\"PriceDetails__column--content___wD3Ob\",\"column--trigger\":\"PriceDetails__column--trigger___cx_WG\",\"content\":\"PriceDetails__content___e1mWs\",\"content--isHoverable\":\"PriceDetails__content--isHoverable___wnQsY\",\"content-column--icon\":\"PriceDetails__content-column--icon___YLssB\",\"content-column--left-node\":\"PriceDetails__content-column--left-node___KP3_J\",\"content-column--title\":\"PriceDetails__content-column--title___gmoMT\",\"content-column--price\":\"PriceDetails__content-column--price___L_rfl\",\"content-column--placeholder\":\"PriceDetails__content-column--placeholder___MuiCp\",\"content-column--right-node\":\"PriceDetails__content-column--right-node___P8WxZ\",\"content-column--isLoading\":\"PriceDetails__content-column--isLoading___nTCvy\",\"tooltip\":\"PriceDetails__tooltip___MxzP9\",\"pill\":\"PriceDetails__pill___vGTaj\",\"not-actual-price\":\"PriceDetails__not-actual-price___Yoe4E\",\"footer\":\"PriceDetails__footer___tU8iu\",\"fadeIn\":\"PriceDetails__fadeIn___M0IwZ\",\"blinking\":\"PriceDetails__blinking___AGw2B\"};","import { RFQsStatsStateT } from './types';\nimport { SharableStateT } from '../models';\n\nexport const selectRFQsStatsRequest = (state: SharableStateT): RFQsStatsStateT['fetchRequest'] =>\n    state.rfqsStats.fetchRequest;\n\nexport const selectRFQsStats = (state: SharableStateT): RFQsStatsStateT['stats'] => state.rfqsStats.stats;\n","// extracted by mini-css-extract-plugin\nexport default {\"pill\":\"FilterPills__pill___l6Vmc\",\"fadeIn\":\"FilterPills__fadeIn___GVWRI\",\"blinking\":\"FilterPills__blinking___mBaKm\"};","// extracted by mini-css-extract-plugin\nexport default {\"date\":\"ValidPeriodCell__date___OwMKg\",\"fadeIn\":\"ValidPeriodCell__fadeIn___IHR9B\",\"blinking\":\"ValidPeriodCell__blinking___saYmu\"};","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst FeeIcon: React.FC<PropsT> = (props) => {\n    const { strokeColor, ...restProps } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" {...restProps}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1.97h18v18H1z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M6.85 5.57a2.25 2.25 0 10.002 4.503A2.25 2.25 0 006.85 5.57zm0 3.15a.903.903 0 01-.9-.9c0-.494.405-.9.9-.9s.9.406.9.9c0 .496-.405.9-.9.9zm6.3 3.15a2.25 2.25 0 10.002 4.503 2.25 2.25 0 00-.002-4.502zm0 3.15a.903.903 0 01-.9-.9c0-.494.405-.9.9-.9s.9.406.9.9c0 .496-.405.9-.9.9zm-7.596 1.35l-.954-.953 9.846-9.846.954.954-9.846 9.846z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nFeeIcon.displayName = 'FeeIcon';\n\nconst storyProps: PropsT = {\n    strokeColor: StyleGuideColorsEnum.slate,\n};\n\nexport { storyProps };\nexport default FeeIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"document-summary\":\"ContractDetailsSidebarContent__document-summary___D4h_3\",\"document-events\":\"ContractDetailsSidebarContent__document-events___yJpQf\",\"fadeIn\":\"ContractDetailsSidebarContent__fadeIn___w8bfu\",\"blinking\":\"ContractDetailsSidebarContent__blinking___Kp1T4\"};","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT, RateSourceEnum } from './constants';\nimport { checkNotEmpty, checkIsPositiveNumberOrZeroValue } from 'common/utils/form-validators';\n\nconst REQUIRED_FIELDS = [FieldsEnum.source] as const;\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    let errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n    };\n\n    if (values[FieldsEnum.source] === RateSourceEnum.new) {\n        errors = {\n            ...errors,\n            ...checkNotEmpty(t, [FieldsEnum.rate], values),\n            ...checkIsPositiveNumberOrZeroValue(t, [FieldsEnum.rate], values),\n        };\n    }\n\n    return errors;\n};\n\nexport default validate;\n","// extracted by mini-css-extract-plugin\nexport default {\"status\":\"StatusCell__status___gEhHM\",\"fadeIn\":\"StatusCell__fadeIn___FNkbK\",\"blinking\":\"StatusCell__blinking___vXYO9\"};","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"UploadFooterContent__content___BllXW\",\"action\":\"UploadFooterContent__action___UdL0U\",\"fadeIn\":\"UploadFooterContent__fadeIn___SfRxa\",\"blinking\":\"UploadFooterContent__blinking___KnyO_\"};","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useFormikContext } from 'formik';\n\nimport { FieldsEnum, FormValuesT } from '../constants';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport isObject from 'lodash/isObject';\nimport { checkIsEmptyPhoneNumber } from 'common/utils/phone-number';\n\ntype PropsT = {\n    className?: string;\n    fieldNamesPrefix: FieldsEnum.contacts;\n    index: number;\n};\n\nconst ContactFilledIndicator: React.FC<PropsT> = React.memo((props) => {\n    const { className, fieldNamesPrefix, index } = props;\n\n    const { t } = useTranslation();\n\n    const formik = useFormikContext<FormValuesT>();\n\n    const values = formik.values?.[fieldNamesPrefix]?.[index];\n    const errors = formik.errors?.[fieldNamesPrefix]?.[index];\n\n    const isValid = isObject(errors) ? !errors?.fullName && !errors?.phoneNumber : true;\n    const hasValues = values?.fullName && !checkIsEmptyPhoneNumber(values?.phoneNumber);\n    const isFilled = hasValues && isValid;\n\n    return (\n        <PillLabel\n            className={className}\n            theme={isFilled ? PillLabelThemeEnum.brandAccent : PillLabelThemeEnum.orange}\n            isSymmetrical\n        >\n            {t(\n                isFilled\n                    ? 'common:new-order-details.error-indicator.filled'\n                    : 'common:new-order-details.error-indicator.unfilled',\n            )}\n        </PillLabel>\n    );\n});\n\nexport default ContactFilledIndicator;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"PartnerTransportOrders__fadeIn___TB1Ex\",\"blinking\":\"PartnerTransportOrders__blinking___ObkQ2\"};","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { AssetAssignmentInfoT } from 'common/utils/assignment';\nimport { CountrySettingsByCodeT } from 'common/store/country-settings-dict/models';\nimport { checkIsAvailableCountryForDropAsset } from 'common/store/country-settings-dict/utils/check-location';\n\ntype MetaT = {\n    trailerById: Record<TrailerIdT, AssetAssignmentInfoT>;\n    truckById: Record<TruckIdT, AssetAssignmentInfoT>;\n    countriesSettingsByCode: CountrySettingsByCodeT;\n};\n\nconst validate = (t: TFunction, values: FormValuesT, meta: MetaT): FormErrorsT => {\n    const { trailerById, truckById, countriesSettingsByCode } = meta;\n\n    const errors: FormErrorsT = {};\n\n    const selectedTrailerId = values[FieldsEnum.trailerId];\n    const selectedTrailer = selectedTrailerId ? trailerById[selectedTrailerId] : null;\n\n    const selectedTruckId = values[FieldsEnum.truckId];\n    const selectedTruck = selectedTruckId ? truckById[selectedTruckId] : null;\n\n    if (!selectedTruck && !selectedTrailer) {\n        errors[FieldsEnum.truckId] = t('assignment.validation.required-asset');\n        errors[FieldsEnum.trailerId] = t('assignment.validation.required-asset');\n    }\n\n    const locationToDropTrailer = values[FieldsEnum.locationToDropTrailer];\n    if (!checkIsAvailableCountryForDropAsset(locationToDropTrailer, countriesSettingsByCode)) {\n        errors[FieldsEnum.locationToDropTrailer] = t('assignment.validation.unsupported-country');\n    }\n\n    const locationToDropTruck = values[FieldsEnum.locationToDropTruck];\n    if (!checkIsAvailableCountryForDropAsset(locationToDropTruck, countriesSettingsByCode)) {\n        errors[FieldsEnum.locationToDropTruck] = t('assignment.validation.unsupported-country');\n    }\n\n    return errors;\n};\n\nexport default validate;\n","import * as React from 'react';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport NotificationLabel, {\n    NotificationLabelThemeEnum,\n} from 'common/components/notifications/NotificationLabel/NotificationLabel';\nimport DropdownMultipleInput from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInput';\nimport { useTranslation } from 'react-i18next';\nimport TargetIcon from 'common/icons/TargetIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport RouteIcon from 'common/icons/RouteIcon';\nimport UnavailableTrailerIcon from 'common/icons/UnavailableTrailerIcon';\nimport TuneIcon from 'common/icons/TuneIcon';\nimport { SpecialOptionEnum } from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { CheckboxThemeEnum } from 'design-system/components/Checkbox/Checkbox';\n\nexport type AssignmentOptionsValueT = {\n    isShowUnavailableAssets: boolean;\n    isShowActualPlace: boolean;\n    isShowAssetSchedule: boolean;\n    isIgnoreEmissionStandard: boolean;\n    isIgnoreCertificates: boolean;\n};\n\nenum AssignmentOptionEnum {\n    showUnavailableAssets = 'show-unavailable-assets',\n    showActualPlace = 'show-actual-place',\n    showAssetSchedule = 'show-asset-schedule',\n    ignoreEmissionStandard = 'ignore-emission-standard',\n    ignoreCertificates = 'ignore-certificates',\n}\n\ntype AssignmentOptionT = {\n    label: React.ReactNode;\n    value: AssignmentOptionEnum;\n    checkboxTheme?: CheckboxThemeEnum;\n};\n\ntype PropsT = {\n    className?: string;\n    value: AssignmentOptionsValueT;\n    onChange: (options: AssignmentOptionsValueT) => void;\n};\n\nconst AssignmentOptionsDropdown: React.FC<PropsT> = React.memo((props) => {\n    const { className, value, onChange } = props;\n\n    const { t } = useTranslation();\n\n    const selectedOptionValues: Array<AssignmentOptionEnum> = React.useMemo((): Array<AssignmentOptionEnum> => {\n        const values: Array<AssignmentOptionEnum> = [];\n\n        if (value.isShowActualPlace) {\n            values.push(AssignmentOptionEnum.showActualPlace);\n        }\n\n        if (value.isShowAssetSchedule) {\n            values.push(AssignmentOptionEnum.showAssetSchedule);\n        }\n\n        if (value.isShowUnavailableAssets) {\n            values.push(AssignmentOptionEnum.showUnavailableAssets);\n        }\n\n        if (value.isIgnoreCertificates) {\n            values.push(AssignmentOptionEnum.ignoreCertificates);\n        }\n\n        if (value.isIgnoreEmissionStandard) {\n            values.push(AssignmentOptionEnum.ignoreEmissionStandard);\n        }\n\n        return values;\n    }, [value]);\n\n    const handleChange = React.useCallback(\n        (values: Array<AssignmentOptionEnum>) => {\n            const optionsSet = new Set(values);\n\n            onChange({\n                isShowUnavailableAssets: optionsSet.has(AssignmentOptionEnum.showUnavailableAssets),\n                isShowActualPlace: optionsSet.has(AssignmentOptionEnum.showActualPlace),\n                isShowAssetSchedule: optionsSet.has(AssignmentOptionEnum.showAssetSchedule),\n                isIgnoreEmissionStandard: optionsSet.has(AssignmentOptionEnum.ignoreEmissionStandard),\n                isIgnoreCertificates: optionsSet.has(AssignmentOptionEnum.ignoreCertificates),\n            });\n        },\n        [onChange],\n    );\n\n    const options: Array<AssignmentOptionT | SpecialOptionEnum> = React.useMemo(\n        () => [\n            {\n                label: (\n                    <DropdownControlOptionLabel\n                        withoutPaddings\n                        icon={\n                            <TargetIcon\n                                strokeColor={StyleGuideColorsEnum.slate}\n                                fillColor={StyleGuideColorsEnum.light}\n                                size={DEFAULT_ICON_SIZE}\n                            />\n                        }\n                        label={t('assignment.search-form.options.ignore-emission-standard')}\n                    />\n                ),\n                checkboxTheme: CheckboxThemeEnum.orange,\n                value: AssignmentOptionEnum.ignoreEmissionStandard,\n            },\n            {\n                label: (\n                    <DropdownControlOptionLabel\n                        withoutPaddings\n                        icon={\n                            <TargetIcon\n                                strokeColor={StyleGuideColorsEnum.slate}\n                                fillColor={StyleGuideColorsEnum.light}\n                                size={DEFAULT_ICON_SIZE}\n                            />\n                        }\n                        label={t('assignment.search-form.options.ignore-certificates')}\n                    />\n                ),\n                checkboxTheme: CheckboxThemeEnum.orange,\n                value: AssignmentOptionEnum.ignoreCertificates,\n            },\n            SpecialOptionEnum.separator,\n            {\n                label: (\n                    <DropdownControlOptionLabel\n                        withoutPaddings\n                        icon={\n                            <TargetIcon\n                                strokeColor={StyleGuideColorsEnum.slate}\n                                fillColor={StyleGuideColorsEnum.light}\n                                size={DEFAULT_ICON_SIZE}\n                            />\n                        }\n                        label={t('assignment.search-form.options.show-actual-place')}\n                    />\n                ),\n                value: AssignmentOptionEnum.showActualPlace,\n            },\n            {\n                label: (\n                    <DropdownControlOptionLabel\n                        withoutPaddings\n                        icon={<RouteIcon fillColor={StyleGuideColorsEnum.slate} />}\n                        label={t('assignment.search-form.options.show-previous-next-tours')}\n                    />\n                ),\n                value: AssignmentOptionEnum.showAssetSchedule,\n            },\n            {\n                label: (\n                    <DropdownControlOptionLabel\n                        withoutPaddings\n                        icon={\n                            <UnavailableTrailerIcon\n                                size={DEFAULT_ICON_SIZE}\n                                fillColor={StyleGuideColorsEnum.light}\n                                strokeColor={StyleGuideColorsEnum.slate}\n                            />\n                        }\n                        label={t('assignment.search-form.options.show-unavailable-assets')}\n                    />\n                ),\n                value: AssignmentOptionEnum.showUnavailableAssets,\n            },\n        ],\n        [t],\n    );\n\n    return (\n        <DropdownMultipleInput<AssignmentOptionT, AssignmentOptionT['value']>\n            className={className}\n            selectedValues={selectedOptionValues}\n            options={options}\n            onSelect={handleChange}\n            renderOption={(option) => {\n                if (!option) {\n                    return null;\n                }\n\n                return <DropdownControlOptionLabel withoutPaddings label={option.label} />;\n            }}\n            renderTriggerContent={(selectedFilters) => {\n                let icon = <TuneIcon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.charcoal} />;\n\n                if (selectedFilters?.length) {\n                    icon = (\n                        <NotificationLabel\n                            isShowPlusSign\n                            count={selectedFilters?.length}\n                            theme={NotificationLabelThemeEnum.charcoal}\n                        />\n                    );\n                }\n\n                return (\n                    <DropdownControlOptionLabel\n                        withoutPaddings\n                        icon={icon}\n                        label={t('assignment.search-form.options.trigger')}\n                    />\n                );\n            }}\n            getOptionValue={(option) => option?.value}\n            getCheckboxProps={(option) => {\n                return {\n                    theme: option?.checkboxTheme || null,\n                };\n            }}\n            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n        />\n    );\n});\n\nexport default AssignmentOptionsDropdown;\n","// extracted by mini-css-extract-plugin\nexport default {\"tabs-wrap\":\"PriceMatrixWithMap__tabs-wrap___CYfcP\",\"tab\":\"PriceMatrixWithMap__tab___FNZjF\",\"fadeIn\":\"PriceMatrixWithMap__fadeIn___iYGxK\",\"blinking\":\"PriceMatrixWithMap__blinking____T64y\"};","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n    size: number;\n};\n\nconst AddAccountDuotineIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, size } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path d=\"M12.25 13c-2.018 0-4.327.96-4.5 1.5h9c-.15-.533-2.475-1.5-4.5-1.5zm0-4.5a1.5 1.5 0 100-3 1.5 1.5 0 000 3z\" />\n                <path\n                    fill={fillColor}\n                    d=\"M12.25 10a3 3 0 100-6 3 3 0 100 6zm0-4.5c.825 0 1.5.675 1.5 1.5s-.675 1.5-1.5 1.5-1.5-.675-1.5-1.5.675-1.5 1.5-1.5zm0 6c-2.002 0-6 1.005-6 3V16h12v-1.5c0-1.995-3.998-3-6-3zm-4.5 3c.165-.54 2.482-1.5 4.5-1.5 2.025 0 4.35.967 4.5 1.5h-9zM5.5 12.25V10h2.25V8.5H5.5V6.25H4V8.5H1.75V10H4v2.25h1.5z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nAddAccountDuotineIcon.displayName = 'AddAccountDuotineIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.orange,\n    size: 20,\n};\n\nexport { storyProps };\nexport default AddAccountDuotineIcon;\n","export {\n    fetchBrokerTeamsPage,\n    fetchBrokerTeamsPageBegin,\n    fetchBrokerTeamsPageSuccess,\n    fetchBrokerTeamsPageError,\n    resetBrokerTeams,\n} from './slice';\n","import React from 'react';\n\nimport { CompanyContactT } from 'common/store/members/models';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport BigTrashIcon from 'common/icons/BigTrashIcon';\nimport Modal from 'common/components/Modal/Modal';\nimport { logWarning } from 'common/utils/logger';\nimport { DeactivateUserDataT } from 'common/layouts/Members/dialogs/DeactivateUserModal/models';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { useSelector } from 'react-redux';\nimport { selectUpdateMemberRequest } from 'common/store/members/selectors';\nimport DeactivateUserForm from 'common/layouts/Members/DeactivateUserForm/DeactivateUserForm';\n\nexport type DeactivateUserModalDataT = {\n    contact: {\n        userId?: CompanyContactT['userId'];\n        roles: CompanyContactT['roles'];\n        fullName: CompanyContactT['fullName'];\n    } | null;\n    partnerType: PartnerTypeEnum;\n    partnerId: PartnerIdT;\n};\n\nexport type DeactivateUserModalPropsT = {\n    data: DeactivateUserModalDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onDeactivateUser: (params: { data: DeactivateUserModalDataT | null; changes: DeactivateUserDataT }) => void;\n};\n\nconst TEST_SELECTOR = 'deactivate-user-modal';\n\nconst DeactivateUserModal: React.FC<DeactivateUserModalPropsT> = React.memo((props) => {\n    const { data, onCancel, onClose, onDeactivateUser } = props;\n\n    const contact = data?.contact || null;\n    const partnerType = data?.partnerType || null;\n    const partnerId = data?.partnerId || null;\n\n    const { t } = useTranslation();\n\n    const updateMemberRequest = useSelector(selectUpdateMemberRequest(partnerId));\n\n    if (!contact || !partnerType || !partnerId) {\n        return null;\n    }\n\n    const FormComponent = DeactivateUserForm;\n\n    return (\n        <Modal>\n            <ModalContent onClose={onCancel}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    icon={<BigTrashIcon />}\n                    title={t('common:team-members.dialogs.deactivate-confirmation.title', {\n                        fullName: contact?.fullName,\n                    })}\n                    message={t('common:team-members.dialogs.deactivate-confirmation.description', {\n                        fullName: contact?.fullName,\n                    })}\n                >\n                    <FormComponent\n                        contact={contact}\n                        updateMemberRequest={updateMemberRequest}\n                        onDeactivateUser={(changes) => {\n                            if (changes) {\n                                onDeactivateUser({ data, changes });\n                            } else {\n                                logWarning('empty user id');\n                            }\n\n                            onClose();\n                        }}\n                        onCancel={onCancel}\n                    />\n                </ModalDialog>\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default DeactivateUserModal;\n","import React from 'react';\nimport { PointToDropT } from 'broker-admin/store/broker-order-assigment/models';\n\nexport type OnMapClickCallbackT = (pointToDrop: PointToDropT | null) => void;\n\nexport type SyncAssignmentFormMapStateContextValueT = {\n    onMapClickCallback: { callback: OnMapClickCallbackT } | null;\n    setOnMapClickCallback: (params: { callback: OnMapClickCallbackT }) => void;\n\n    hasDropTrailerPointError: boolean;\n    setHasDropTrailerPointError: (hasDropTrailerPointError: boolean) => void;\n    hasDropTruckPointError: boolean;\n    setHasDropTruckPointError: (hasDropTruckPointError: boolean) => void;\n};\n\nexport const useSyncMapState = (): SyncAssignmentFormMapStateContextValueT => {\n    const [onMapClickCallback, setOnMapClickCallback] = React.useState<{ callback: OnMapClickCallbackT } | null>(null);\n    const [hasDropTrailerPointError, setHasDropTrailerPointError] = React.useState<boolean>(false);\n    const [hasDropTruckPointError, setHasDropTruckPointError] = React.useState<boolean>(false);\n\n    return React.useMemo(() => {\n        return {\n            onMapClickCallback,\n            setOnMapClickCallback,\n            hasDropTrailerPointError,\n            setHasDropTrailerPointError,\n            hasDropTruckPointError,\n            setHasDropTruckPointError,\n        };\n    }, [onMapClickCallback, hasDropTrailerPointError, hasDropTruckPointError]);\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"option--clear\":\"AdditionalManagementControl__option--clear___Yfei0\",\"fadeIn\":\"AdditionalManagementControl__fadeIn___Kjl11\",\"blinking\":\"AdditionalManagementControl__blinking___UUukk\"};","import { RequestStatusT } from 'common/utils/request-status';\n\nimport { PartnerDetailsT } from './models';\nimport { AddressTypeT, ApiBrokerCompanyChangesT, PartnerTypeEnum } from 'common/utils/api/models';\n\nexport const FETCH_PARTNER_DETAILS_REQUEST = 'broker-admin/partner/details/FETCH_PARTNER_DETAILS_REQUEST';\nexport const FETCH_PARTNER_DETAILS_REQUEST_BEGIN = 'broker-admin/partner/details/FETCH_PARTNER_DETAILS_REQUEST_BEGIN';\nexport const FETCH_PARTNER_DETAILS_REQUEST_ERROR = 'broker-admin/partner/details/FETCH_PARTNER_DETAILS_REQUEST_ERROR';\nexport const FETCH_PARTNER_DETAILS_REQUEST_SUCCESS =\n    'broker-admin/partner/details/FETCH_PARTNER_DETAILS_REQUEST_SUCCESS';\n\nexport const UPDATE_PARTNER_DETAILS_REQUEST = 'broker-admin/partner/details/UPDATE_PARTNER_DETAILS_REQUEST';\nexport const UPDATE_PARTNER_DETAILS_REQUEST_BEGIN = 'broker-admin/partner/details/UPDATE_PARTNER_DETAILS_REQUEST_BEGIN';\nexport const UPDATE_PARTNER_DETAILS_REQUEST_ERROR = 'broker-admin/partner/details/UPDATE_PARTNER_DETAILS_REQUEST_ERROR';\nexport const UPDATE_PARTNER_DETAILS_REQUEST_SUCCESS =\n    'broker-admin/partner/details/UPDATE_PARTNER_DETAILS_REQUEST_SUCCESS';\n\nexport const VERIFY_PARTNER_DETAILS_REQUEST = 'broker-admin/partner/details/VERIFY_PARTNER_DETAILS_REQUEST';\nexport const VERIFY_PARTNER_DETAILS_REQUEST_BEGIN = 'broker-admin/partner/details/VERIFY_PARTNER_DETAILS_REQUEST_BEGIN';\nexport const VERIFY_PARTNER_DETAILS_REQUEST_ERROR = 'broker-admin/partner/details/VERIFY_PARTNER_DETAILS_REQUEST_ERROR';\nexport const VERIFY_PARTNER_DETAILS_REQUEST_SUCCESS =\n    'broker-admin/partner/details/VERIFY_PARTNER_DETAILS_REQUEST_SUCCESS';\n\nexport const LOCK_PARTNER_REQUEST = 'broker-admin/partner/details/LOCK_PARTNER_REQUEST';\nexport const LOCK_PARTNER_REQUEST_BEGIN = 'broker-admin/partner/details/LOCK_PARTNER_REQUEST_BEGIN';\nexport const LOCK_PARTNER_REQUEST_ERROR = 'broker-admin/partner/details/LOCK_PARTNER_REQUEST_ERROR';\nexport const LOCK_PARTNER_REQUEST_SUCCESS = 'broker-admin/partner/details/LOCK_PARTNER_REQUEST_SUCCESS';\n\nexport const LINK_WITH_EXTERNAL_PLATFORM_PARTNER_REQUEST =\n    'broker-admin/partner/details/LINK_WITH_EXTERNAL_PLATFORM_PARTNER_REQUEST';\nexport const UNLINK_WITH_EXTERNAL_PLATFORM_PARTNER_REQUEST =\n    'broker-admin/partner/details/UNLINK_WITH_EXTERNAL_PLATFORM_PARTNER_REQUEST';\nexport const LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_BEGIN =\n    'broker-admin/partner/details/LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_BEGIN';\nexport const LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_ERROR =\n    'broker-admin/partner/details/LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_ERROR';\nexport const LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_SUCCESS =\n    'broker-admin/partner/details/LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_SUCCESS';\n\nexport type PartnerDetailsStateT = {\n    fetchRequest: RequestStatusT;\n    updateRequest: RequestStatusT;\n    verifyRequest: RequestStatusT;\n    lockRequest: RequestStatusT;\n    linkRequestStatus: RequestStatusT;\n    byId: Record<PartnerIdT, PartnerDetailsT | null>;\n};\n\nexport type FetchPartnerDetailsActionT = {\n    type: typeof FETCH_PARTNER_DETAILS_REQUEST;\n    companyId: CompanyIdT;\n};\n\nexport type FetchPartnerDetailsBeginActionT = {\n    type: typeof FETCH_PARTNER_DETAILS_REQUEST_BEGIN;\n};\n\nexport type FetchPartnerDetailsSuccessActionT = {\n    type: typeof FETCH_PARTNER_DETAILS_REQUEST_SUCCESS;\n    partnerDetails: PartnerDetailsT | null;\n};\n\nexport type FetchPartnerDetailsErrorActionT = {\n    type: typeof FETCH_PARTNER_DETAILS_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type UpdatePartnerDetailsActionT = {\n    type: typeof UPDATE_PARTNER_DETAILS_REQUEST;\n    partnerDetailsChanges?: ApiBrokerCompanyChangesT;\n    externalBusinessPartnerId?: PartnerIdT | null;\n    mainContactChanges?: {\n        mainContactId: ContactIdT | null;\n        mainContactFullName: string | null;\n    };\n    teams?: TeamIdT[];\n    partnerType: PartnerTypeEnum;\n    companyId: CompanyIdT;\n};\n\nexport type UpdatePartnerDetailsBeginActionT = {\n    type: typeof UPDATE_PARTNER_DETAILS_REQUEST_BEGIN;\n};\n\nexport type UpdatePartnerDetailsSuccessActionT = {\n    type: typeof UPDATE_PARTNER_DETAILS_REQUEST_SUCCESS;\n    partnerDetails: PartnerDetailsT;\n};\n\nexport type UpdatePartnerDetailsErrorActionT = {\n    type: typeof UPDATE_PARTNER_DETAILS_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type VerifyPartnerDetailsActionT = {\n    type: typeof VERIFY_PARTNER_DETAILS_REQUEST;\n    isVerify: boolean;\n    companyId: CompanyIdT;\n    addressType: AddressTypeT;\n};\n\nexport type VerifyPartnerDetailsBeginActionT = {\n    type: typeof VERIFY_PARTNER_DETAILS_REQUEST_BEGIN;\n};\n\nexport type VerifyPartnerDetailsSuccessActionT = {\n    type: typeof VERIFY_PARTNER_DETAILS_REQUEST_SUCCESS;\n};\n\nexport type VerifyPartnerDetailsErrorActionT = {\n    type: typeof VERIFY_PARTNER_DETAILS_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type LockPartnerActionT = {\n    type: typeof LOCK_PARTNER_REQUEST;\n    isLock: boolean;\n    companyId: CompanyIdT;\n};\n\nexport type LockPartnerBeginActionT = {\n    type: typeof LOCK_PARTNER_REQUEST_BEGIN;\n};\n\nexport type LockPartnerSuccessActionT = {\n    type: typeof LOCK_PARTNER_REQUEST_SUCCESS;\n};\n\nexport type LockPartnerErrorActionT = {\n    type: typeof LOCK_PARTNER_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type LinkWithExternalPlatformPartnerActionT = {\n    type: typeof LINK_WITH_EXTERNAL_PLATFORM_PARTNER_REQUEST;\n    businessPartnerId: string;\n    internalCompanyId: CompanyIdT;\n};\n\nexport type UnlinkWithExternalPlatformPartnerActionT = {\n    type: typeof UNLINK_WITH_EXTERNAL_PLATFORM_PARTNER_REQUEST;\n    internalCompanyId: CompanyIdT;\n};\n\nexport type LinkExternalPlatformPartnerBeginActionT = {\n    type: typeof LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_BEGIN;\n};\n\nexport type LinkExternalPlatformPartnerSuccessActionT = {\n    type: typeof LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_SUCCESS;\n};\n\nexport type LinkExternalPlatformPartnerErrorActionT = {\n    type: typeof LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type PartnerDetailsActionT =\n    | FetchPartnerDetailsActionT\n    | FetchPartnerDetailsBeginActionT\n    | FetchPartnerDetailsSuccessActionT\n    | FetchPartnerDetailsErrorActionT\n    | UpdatePartnerDetailsActionT\n    | UpdatePartnerDetailsBeginActionT\n    | UpdatePartnerDetailsSuccessActionT\n    | UpdatePartnerDetailsErrorActionT\n    | LockPartnerActionT\n    | LockPartnerBeginActionT\n    | LockPartnerSuccessActionT\n    | LockPartnerErrorActionT\n    | VerifyPartnerDetailsActionT\n    | VerifyPartnerDetailsBeginActionT\n    | VerifyPartnerDetailsSuccessActionT\n    | VerifyPartnerDetailsErrorActionT\n    | LinkWithExternalPlatformPartnerActionT\n    | UnlinkWithExternalPlatformPartnerActionT\n    | LinkExternalPlatformPartnerBeginActionT\n    | LinkExternalPlatformPartnerSuccessActionT\n    | LinkExternalPlatformPartnerErrorActionT;\n","import * as React from 'react';\nimport { BrokerTeamShortT } from 'broker-admin/store/broker-teams/models';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\n\ntype PropsT = {\n    brokerTeamShort: BrokerTeamShortT;\n};\n\nconst UsersCountCell: React.FC<PropsT> = React.memo((props) => {\n    const { brokerTeamShort } = props;\n\n    const usersCount = brokerTeamShort?.numberOfUsers || 0;\n\n    return (\n        <PillLabel isSymmetrical theme={usersCount ? PillLabelThemeEnum.charcoal : PillLabelThemeEnum.grey}>\n            {usersCount}\n        </PillLabel>\n    );\n});\n\nexport default UsersCountCell;\n","import { TourPapersUrlFactoryI } from 'common/components/papers/image-url-factories';\n\nexport const brokerTourPapersUrlFactory: TourPapersUrlFactoryI = {\n    getThumbnailUrl: (tourId: TourIdT | null, documentId: DocumentIdT | null): string | null => {\n        if (!tourId || !documentId) {\n            return null;\n        }\n\n        return `/api/v1/common/attached-papers/${documentId}/get-thumbnail`;\n    },\n\n    getContentUrl: (tourId: TourIdT | null, documentId: DocumentIdT | null): string | null => {\n        if (!tourId || !documentId) {\n            return null;\n        }\n\n        return `/api/v1/common/attached-papers/${documentId}/get-content`;\n    },\n};\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport classNames from 'classnames/bind';\nimport styles from './NewOrderPage.scss';\nimport ShipmentDetailsForm from './ShipmentDetailsForm/ShipmentDetailsForm';\nimport RouteEditingMap from './RouteEditingMap/RouteEditingMap';\nimport FormTitle from './FormTitle/FormTitle';\nimport GoogleMapContextProvider from 'common/components/maps/GoogleMapContextProvider/GoogleMapContextProvider';\nimport Steps from 'common/layouts/NewOrderPage/Steps/Steps';\nimport { Route, Switch } from 'react-router-dom';\nimport { OMSRoutesEnum } from 'common/constants';\nimport OffersForm from './OffersForm/OffersForm';\nimport CargoDetailsForm from './CargoDetailsForm/CargoDetailsForm';\nimport RouteMap from 'common/layouts/NewOrderPage/RouteMap/RouteMap';\nimport HorizontalColumnsLayout from 'common/layouts/HorizontalColumnsLayout/HorizontalColumnsLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport { useDispatch } from 'react-redux';\nimport { resetOrderCreation } from 'common/store/order-creation/actions';\nimport SidedBarHeaderLayoutContext from 'common/layouts/LeftMenuLayout/SideBarLayout/contexts/side-bar-header-layout-context';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\nimport SideBarLayoutContextWrap from '../LeftMenuLayout/SideBarLayout/SideBarLayoutContextWrap/SideBarLayoutContextWrap';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport PriceMatrixWithMap from './PriceMatrixWithMap/PriceMatrixWithMap';\nimport { useStepsContextValue } from 'common/layouts/NewOrderPage/hooks/use-steps-context-value';\nimport { useOrderCreationPercentContextValue } from 'common/layouts/NewOrderPage/hooks/use-order-creation-percent-context-value';\nimport StepsContext from 'common/layouts/NewOrderPage/contexts/steps-context';\nimport OrderCreationPercentContext from 'common/layouts/NewOrderPage/contexts/order-creation-percent-context';\nimport { SyncShipmentDetailsFormMapStateContext } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/contexts/sync-map-state';\nimport { useSyncShipmentDetailsFormMapState } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/hooks/usy-sync-map-state';\nimport { SyncShipmentDetailsFormValuesContext } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/contexts/sync-form-values';\nimport { useSyncFormValues } from 'common/utils/hooks/useSyncFormValues';\nimport { FormValuesT, SHIPMENT_DETAIL_FORM_NAME } from './ShipmentDetailsForm/constants';\nimport useSideBarFooterAlertsContextValue from 'common/utils/hooks/useSideBarFooterAlertsContextValue';\nimport SideBarFooterAlertsContext from 'common/layouts/LeftMenuLayout/SideBarLayout/contexts/side-bar-footer-alerts-context';\nimport ValuesStorage from 'common/utils/form-values-storage';\nimport { CARGO_DETAILS_FORM_NAME } from 'common/layouts/NewOrderPage/CargoDetailsForm/constants';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    isBroker?: boolean;\n    onClose: () => void;\n};\n\nconst shipmentDetailsFormStorage = new ValuesStorage(SHIPMENT_DETAIL_FORM_NAME);\nconst cargoDetailsFormStorage = new ValuesStorage(CARGO_DETAILS_FORM_NAME);\n\nconst NewOrderPage: React.FC<PropsT> = React.memo((props) => {\n    const { isBroker, onClose } = props;\n\n    const stepsContextValue = useStepsContextValue();\n    const orderCreationPercentContextValue = useOrderCreationPercentContextValue();\n    const syncShipmentDetailsFormValuesContextValue = useSyncFormValues<FormValuesT>();\n    const syncShipmentDetailsFormMapStateContextValue = useSyncShipmentDetailsFormMapState();\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n    React.useEffect(() => {\n        dispatch(fetchCountriesDict());\n\n        return () => {\n            dispatch(resetOrderCreation());\n        };\n    }, [dispatch]);\n\n    const containerRef = React.useRef<HTMLHeadingElement>(null);\n\n    const sideBarFooterAlertsContextValue = useSideBarFooterAlertsContextValue();\n\n    const handleClose = React.useCallback(() => {\n        onClose();\n        shipmentDetailsFormStorage.reset();\n        cargoDetailsFormStorage.reset();\n    }, [onClose]);\n\n    return (\n        <GoogleMapContextProvider>\n            <SideBarFooterAlertsContext.Provider value={sideBarFooterAlertsContextValue}>\n                <OrderCreationPercentContext.Provider value={orderCreationPercentContextValue}>\n                    <SyncShipmentDetailsFormValuesContext.Provider value={syncShipmentDetailsFormValuesContextValue}>\n                        <SyncShipmentDetailsFormMapStateContext.Provider\n                            value={syncShipmentDetailsFormMapStateContextValue}\n                        >\n                            <PageTitle title={t('common:page-titles.order-creation')} />\n                            <HorizontalColumnsLayout\n                                leftColumnTitle={t('common:new-order-page.tabs.form')}\n                                leftColumnNode={\n                                    <SideBarLayoutContextWrap>\n                                        <SidedBarHeaderLayoutContext.Provider value={containerRef}>\n                                            <HeaderSideBarLayout className={cx('header')}>\n                                                <FormTitle onClose={handleClose} />\n                                                <div ref={containerRef} />\n                                            </HeaderSideBarLayout>\n                                            <SideBarLayout>\n                                                <>\n                                                    <StepsContext.Provider value={stepsContextValue}>\n                                                        <Steps className={cx('steps')} />\n                                                        <Switch>\n                                                            <Route exact path={OMSRoutesEnum.newOrder}>\n                                                                <ShipmentDetailsForm isBroker={!!isBroker} />\n                                                            </Route>\n                                                            <Route path={OMSRoutesEnum.newOrderDetails}>\n                                                                <CargoDetailsForm />\n                                                            </Route>\n                                                            <Route path={OMSRoutesEnum.newOrderDetailsWithLane}>\n                                                                <CargoDetailsForm />\n                                                            </Route>\n                                                            <Route path={OMSRoutesEnum.newOrderOffers}>\n                                                                <OffersForm />\n                                                            </Route>\n                                                        </Switch>\n                                                    </StepsContext.Provider>\n                                                </>\n                                            </SideBarLayout>\n                                        </SidedBarHeaderLayoutContext.Provider>\n                                    </SideBarLayoutContextWrap>\n                                }\n                                rightColumnTitle={\n                                    <Switch>\n                                        <Route exact path={OMSRoutesEnum.newOrder}>\n                                            {t('common:new-order-page.tabs.map')}\n                                        </Route>\n                                        <Route path={OMSRoutesEnum.newOrderDetails}>\n                                            {t('common:new-order-page.tabs.map')}\n                                        </Route>\n                                        <Route path={OMSRoutesEnum.newOrderDetailsWithLane}>\n                                            {t('common:new-order-page.tabs.map')}\n                                        </Route>\n                                        <Route path={OMSRoutesEnum.newOrderOffers}>\n                                            {t('common:new-order-page.tabs.info')}\n                                        </Route>\n                                    </Switch>\n                                }\n                                rightColumnNode={\n                                    <Switch>\n                                        <Route exact path={OMSRoutesEnum.newOrder}>\n                                            <RouteEditingMap />\n                                        </Route>\n                                        <Route path={OMSRoutesEnum.newOrderDetails}>\n                                            <RouteMap />\n                                        </Route>\n                                        <Route path={OMSRoutesEnum.newOrderDetailsWithLane}>\n                                            <RouteMap />\n                                        </Route>\n                                        <Route path={OMSRoutesEnum.newOrderOffers}>\n                                            <PriceMatrixWithMap />\n                                        </Route>\n                                    </Switch>\n                                }\n                            />\n                        </SyncShipmentDetailsFormMapStateContext.Provider>\n                    </SyncShipmentDetailsFormValuesContext.Provider>\n                </OrderCreationPercentContext.Provider>\n            </SideBarFooterAlertsContext.Provider>\n        </GoogleMapContextProvider>\n    );\n});\n\nexport default NewOrderPage;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ShipperContractLaneId.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    id: string;\n};\n\nconst ShipperContractLaneId: React.FC<PropsT> = React.memo((props) => {\n    const { id } = props;\n\n    return <span className={cx('id')}>{id}</span>;\n});\n\nexport default ShipperContractLaneId;\n","import * as React from 'react';\nimport { CommonSidebarDataT, CommonSidebarsTypeEnum, SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { TrailerDetailsSidebarDataT } from './models';\nimport CommonEditableTrailerDetailsLayout from 'common/layouts/CommonEditableTrailerDetailsLayout/CommonEditableTrailerDetailsLayout';\nimport history from 'common/utils/history';\nimport useCommonUrlFactoryContext from 'common/utils/hooks/useCommonUrlFactoryContext';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\n\ntype PropsT = SidebarContentPropsT<TrailerDetailsSidebarDataT, CommonSidebarDataT>;\n\nconst EditableTrailerDetailsLayout: React.FC<PropsT> = (props) => {\n    const { data, onGoBack, onClose, setNeedCloseConfirmation, onOpenNextSidebar } = props;\n\n    const commonUrlFactory = useCommonUrlFactoryContext();\n\n    const handleShowMap = () => {\n        history.push(commonUrlFactory.trailerDetails(data.partnerId, data.trailerId));\n    };\n\n    const handleOpenTruckDetails = (truckId: TruckIdT) => {\n        onOpenNextSidebar({\n            type: CommonSidebarsTypeEnum.truckDetails,\n            partnerId: data.partnerId,\n            truckId,\n        });\n    };\n\n    const handleOpenTrailerDetails = (trailerId: TrailerIdT) => {\n        onOpenNextSidebar({\n            type: CommonSidebarsTypeEnum.trailerDetails,\n            partnerId: data.partnerId,\n            trailerId,\n        });\n    };\n\n    const handleOpenContactDetails = (contractId: CarrierContractIdT) => {\n        onOpenNextSidebar({\n            type: CommonSidebarsTypeEnum.carrierContract,\n            contractId,\n            initIsEditing: false,\n            partnerId: data.partnerId,\n        });\n    };\n\n    const handleOpenUserDetails = (userId: UserIdT, isBrokerUser?: boolean) => {\n        onOpenNextSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId: data.partnerId,\n            partnerType: isBrokerUser ? PartnerTypeEnum.broker : PartnerTypeEnum.carrier,\n            userId,\n        });\n    };\n\n    if (!onClose) {\n        return null;\n    }\n\n    return (\n        <CommonEditableTrailerDetailsLayout\n            trailerId={data.trailerId}\n            partnerId={data.partnerId}\n            isDisableShowOnMap={data.isDisableShowOnMap}\n            isReadOnly={data.isReadOnly}\n            onClose={onClose}\n            isShowMap={false}\n            onGoBack={onGoBack || undefined}\n            onToggleShowMap={handleShowMap}\n            setNeedCloseConfirmation={setNeedCloseConfirmation}\n            onOpenTruckDetails={handleOpenTruckDetails}\n            onOpenTrailerDetails={handleOpenTrailerDetails}\n            onOpenContactDetails={handleOpenContactDetails}\n            onOpenUserDetails={handleOpenUserDetails}\n        />\n    );\n};\n\nexport default EditableTrailerDetailsLayout;\n","import { FieldsEnum, FormErrorsT, ShipmentFieldsEnum } from './constants';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport {\n    checkIsTranziitApiRequestError,\n    TranziitApiRequestErrorSubTypeEnum,\n} from 'common/utils/api/tranziit/errors/tranziit-api-errors';\nimport { checkIsTranziitApiErrorResponse } from 'common/utils/api/tranziit/errors/error-response';\nimport set from 'lodash/set';\nimport { TFunction } from 'i18next';\n\nconst asyncValidate = (t: TFunction, requestError: RequestStatusT): FormErrorsT => {\n    const { error } = requestError;\n\n    const asyncErrors: FormErrorsT = {};\n\n    if (!checkIsTranziitApiRequestError(error)) {\n        return asyncErrors;\n    }\n\n    if (\n        checkIsTranziitApiErrorResponse(\n            error,\n            TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedCompleteRFQ_CapacityExcess,\n        )\n    ) {\n        set(\n            asyncErrors,\n            `${FieldsEnum.shipments}.${error?.response?.shipmentIndex}.${ShipmentFieldsEnum.cargoUnitsCount}`,\n            t('common:new-order-form.async-errors.capacity-excess'),\n        );\n    }\n\n    if (\n        checkIsTranziitApiErrorResponse(\n            error,\n            TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedCompleteRFQ_Overweight,\n        )\n    ) {\n        set(\n            asyncErrors,\n            `${FieldsEnum.shipments}.${error?.response?.shipmentIndex}.${ShipmentFieldsEnum.cargoWeight}`,\n            t('common:new-order-form.async-errors.overweight'),\n        );\n    }\n\n    return asyncErrors;\n};\n\nexport default asyncValidate;\n","// extracted by mini-css-extract-plugin\nexport default {\"filters-pills__item\":\"RateMatrix__filters-pills__item___dqiIZ\",\"fadeIn\":\"RateMatrix__fadeIn___IQoXr\",\"blinking\":\"RateMatrix__blinking___O9G6K\"};","export const parseContentDispositionFilename = (headerValue: string): string | null => {\n    const match = headerValue.match(/filename\\*=(?:UTF-8''|utf-8'')(.+?)(?:;|$)/);\n    if (match?.[1]) {\n        return decodeURIComponent(match[1]);\n    }\n\n    const quotedMatch = headerValue.match(/filename=\"(.+?)\"/);\n    if (quotedMatch?.[1]) {\n        return quotedMatch[1];\n    }\n\n    const unquotedMatch = headerValue.match(/filename=([^;\\s]+)/);\n    if (unquotedMatch?.[1]) {\n        return unquotedMatch[1];\n    }\n\n    return null;\n};\n\nexport const HEADERS = {\n    CONTENT_DISPOSITION: 'Content-Disposition',\n    CONTENT_TYPE: 'Content-Type',\n};\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const ordersRefreshChannel = new ViewEventChannel<{}>();\n\nexport const ordersPaginationChannel = new ViewEventChannel<{\n    pageNumber: number;\n}>();\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport NumberIcon from 'common/icons/NumberIcon';\n\ntype PropsT = {\n    className?: string;\n    routePointIndex: number;\n    isNewRoutePoint?: boolean;\n    isDriveThroughRoutePointPicker?: boolean;\n    isDropAndHookRoutePointPicker?: boolean;\n    isPickUpDeliveryRoutePointPicker?: boolean;\n    hasValue?: boolean;\n    hasError?: boolean;\n    hasChanges?: boolean;\n    hasWarning?: boolean;\n    isDisabled?: boolean;\n};\n\nconst WaypointNumberIcon: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        routePointIndex,\n        isNewRoutePoint,\n        isDriveThroughRoutePointPicker,\n        isDropAndHookRoutePointPicker,\n        isPickUpDeliveryRoutePointPicker,\n        hasValue,\n        hasError,\n        hasChanges,\n        hasWarning,\n        isDisabled,\n    } = props;\n\n    let fillColor = StyleGuideColorsEnum.light;\n\n    if (isDriveThroughRoutePointPicker && hasValue) {\n        fillColor = StyleGuideColorsEnum.gray;\n    }\n\n    if (isDropAndHookRoutePointPicker && hasValue) {\n        fillColor = StyleGuideColorsEnum.charcoal;\n    }\n\n    if (isPickUpDeliveryRoutePointPicker && hasValue) {\n        fillColor = StyleGuideColorsEnum.charcoal;\n    }\n\n    if (isNewRoutePoint && hasValue) {\n        fillColor = StyleGuideColorsEnum.blazeOrange;\n    }\n\n    if (hasError && hasValue) {\n        fillColor = StyleGuideColorsEnum.tomatoRed;\n    }\n\n    if (hasWarning && hasValue) {\n        fillColor = StyleGuideColorsEnum.orange;\n    }\n\n    if (hasChanges && hasValue) {\n        fillColor = StyleGuideColorsEnum.orange;\n    }\n\n    if (isDisabled) {\n        fillColor = StyleGuideColorsEnum.slate;\n    }\n\n    return <NumberIcon className={className} number={routePointIndex + 1} fillColor={fillColor} />;\n});\n\nexport default WaypointNumberIcon;\n","import { RequestStatusT } from 'common/utils/request-status';\n\nexport const CLOSE_RFQ = 'common/rfqs-changes/CLOSE_RFQ';\nexport const CHANGE_RFQ_REQUEST_BEGIN = 'common/rfqs-changes/CHANGE_RFQ_REQUEST_BEGIN';\nexport const CHANGE_RFQ_REQUEST_ERROR = 'common/rfqs-changes/CHANGE_RFQ_REQUEST_ERROR';\nexport const CHANGE_RFQ_REQUEST_SUCCESS = 'common/rfqs-changes/CHANGE_RFQ_REQUEST_SUCCESS';\n\nexport type RFQsChangesStateT = {\n    id: RFQIdT | null;\n    request: RequestStatusT;\n};\n\nexport type CloseRFQActionT = {\n    type: typeof CLOSE_RFQ;\n    id: RFQIdT;\n};\n\nexport type ChangeRFQBeginActionT = {\n    type: typeof CHANGE_RFQ_REQUEST_BEGIN;\n    id: RFQIdT;\n};\n\nexport type ChangeRFQSuccessActionT = {\n    type: typeof CHANGE_RFQ_REQUEST_SUCCESS;\n    id: RFQIdT;\n};\n\nexport type ChangeRFQErrorActionT = {\n    type: typeof CHANGE_RFQ_REQUEST_ERROR;\n    id: RFQIdT;\n    error: Error;\n};\n\nexport type RFQsChangesActionT =\n    | CloseRFQActionT\n    | ChangeRFQBeginActionT\n    | ChangeRFQSuccessActionT\n    | ChangeRFQErrorActionT;\n","import { QueryKeysEnum } from 'common/constants';\nimport qs from 'qs';\nimport isEmpty from 'lodash/isEmpty';\nimport { logWarning } from './logger';\nimport moment from 'moment';\nimport pickBy from 'lodash/pickBy';\nimport { isNonNil } from 'common/utils/index';\nimport { decodeArray, encodeArray, encodeJson, QueryParamConfig } from 'serialize-query-params';\nimport { decodeJson } from 'use-query-params';\nimport * as Serialize from 'serialize-query-params';\nimport isEqual from 'lodash/isEqual';\n\nconst STRINGIFY_QUERY_KEYS = [\n    QueryKeysEnum.ordersFilters,\n    QueryKeysEnum.orderCreationAdditionalServices,\n    QueryKeysEnum.ratesFromCountryCodesSearch,\n    QueryKeysEnum.ratesToCountryCodesSearch,\n];\n\nexport const parseQuery = (search: string): any => {\n    const query = qs.parse(search.slice(1));\n\n    STRINGIFY_QUERY_KEYS.forEach((queryKey) => {\n        const value = query[queryKey];\n\n        if (value) {\n            try {\n                query[queryKey] = JSON.parse(value as string);\n            } catch (error) {\n                logWarning(`parse query error: ${error}`);\n            }\n        }\n    });\n\n    return query;\n};\n\ntype BaseStringifiedParsedQueryT = Record<string, string[] | number[] | string | number | boolean | null>;\n\nexport const parseStringifiedQuery = <T extends BaseStringifiedParsedQueryT>(\n    queryValue: string | null | undefined,\n): T => {\n    if (!queryValue) {\n        return {} as T;\n    }\n\n    try {\n        return JSON.parse(queryValue);\n    } catch (error) {\n        logWarning(`parse query \"${queryValue}\", error: ${error}`);\n        return {} as T;\n    }\n};\n\nexport const formatStringifiedQuery = (rawQuery: BaseStringifiedParsedQueryT): string | null => {\n    try {\n        return JSON.stringify(rawQuery);\n    } catch (error) {\n        logWarning(`format query \"${rawQuery}\" error: ${error}`);\n        return null;\n    }\n};\n\n// TODO use instead any BaseStringifiedParsedQueryT\nexport const formatQuery = (rawQuery: any): string => {\n    const query = {\n        ...rawQuery,\n    };\n\n    STRINGIFY_QUERY_KEYS.forEach((queryKey) => {\n        const value = query[queryKey];\n        if (!value) {\n            return;\n        }\n\n        if (!isEmpty(value)) {\n            try {\n                query[queryKey] = JSON.stringify(value as string);\n            } catch (error) {\n                logWarning(`format query error: ${error}`);\n            }\n        } else {\n            // delete empty objects and array\n            query[queryKey] = undefined;\n        }\n    });\n\n    return `?${qs.stringify(query, { skipNulls: true })}`;\n};\n\nexport const parseQueryValueWithSeparator = (rawValue: string | null | undefined, separator: string): string[] => {\n    const value = rawValue || '';\n    if (!value || value === separator) {\n        return [];\n    }\n\n    return value.split(separator).filter((value) => Boolean(value));\n};\n\nconst utcOffset = moment().utcOffset();\n\nexport const parseDateFromQuery = (queryDate: string | null | undefined) => {\n    const momentDate = moment(queryDate).utcOffset(utcOffset);\n\n    return new Date(momentDate.format('YYYY-MM-DD'));\n};\n\nexport const parseRelativeTimeFromQuery = (queryDate: string | null | undefined) => {\n    const momentDate = moment(queryDate).utcOffset(utcOffset);\n\n    return momentDate.valueOf() - momentDate.clone().startOf('day').valueOf();\n};\n\n/**\n * @deprecated\n */\nexport const mergeQueryFilters = <T extends {}>(prevQueryFilters: T, newQueryFilters: T): T => {\n    const filteredNewQueryFilters = pickBy(newQueryFilters, isNonNil);\n\n    return {\n        ...prevQueryFilters,\n        ...filteredNewQueryFilters,\n    };\n};\n\n/**\n * @deprecated\n */\nexport const clearEmptyValues = <T extends {}>(obj: T): void => {\n    // @ts-ignore\n    // eslint-disable-next-line no-param-reassign\n    Object.keys(obj).forEach((key) => (obj[key] === undefined ? delete obj[key] : {}));\n};\n\n/*\nFor sidebars\n */\nexport const JSONArrayParam = {\n    encode: <T>(objArray: Array<T> | null) => {\n        if (!objArray) {\n            return encodeArray(objArray);\n        }\n\n        const strArray = objArray\n            .map((obj) => {\n                return encodeJson(obj);\n            })\n            .filter(isNonNil);\n\n        // @ts-expect-error\n        return encodeArray(strArray?.length === 1 ? strArray[0] : strArray);\n    },\n    decode: <T>(arrayStr: string | (string | null)[] | null | undefined): Array<T> => {\n        const decodedArray = decodeArray(arrayStr);\n        if (!decodedArray) {\n            return [];\n        }\n\n        if (typeof decodedArray === 'string') {\n            const objStr = decodeJson(decodedArray);\n            if (!objStr) {\n                return [];\n            }\n\n            return [objStr as T];\n        }\n\n        return decodedArray\n            .map((objStr): T | null => {\n                return decodeJson(objStr);\n            })\n            .filter(isNonNil);\n    },\n    equals: <T>(valueA: T | null | undefined, valueB: T | null | undefined) => {\n        return isEqual(valueA, valueB);\n    },\n};\n\n/*\nFor paging\n */\nexport const createPageNumberParam = (initValue = 0) => {\n    const params: QueryParamConfig<number> = {\n        encode: Serialize.encodeNumber,\n        decode: (value) => {\n            return Serialize.decodeNumber(value) || initValue;\n        },\n    };\n\n    return params;\n};\n\n/*\nFor filters\n */\nexport const createJsonParams = <T>(initValue: T) => {\n    const params: QueryParamConfig<T> = {\n        encode: Serialize.encodeJson,\n        decode: (value) => {\n            return Serialize.decodeJson(value) || initValue;\n        },\n        equals: (valueA: T | null | undefined, valueB: T | null | undefined) => {\n            return isEqual(valueA, valueB);\n        },\n    };\n\n    return params;\n};\n\nexport enum SortDirectionEnum {\n    DESC = 'DESC',\n    ASC = 'ASC',\n}\n\n/*\nFor sorts\n */\nconst PAGE_SORT_SEPARATOR = ',';\n\nexport type PageSortT<T extends string> = {\n    direction: SortDirectionEnum;\n    value: T;\n};\n\nexport const createSortParams = <T extends string>(initData: PageSortT<T>) => {\n    const params: QueryParamConfig<PageSortT<T>> = {\n        encode: (data) => {\n            if (!data) {\n                return undefined;\n            }\n\n            return Serialize.encodeDelimitedArray([data.value, data.direction], PAGE_SORT_SEPARATOR);\n        },\n        decode: (data) => {\n            const decodedData = Serialize.decodeDelimitedArray(data, PAGE_SORT_SEPARATOR) || [];\n            if (!decodedData) {\n                return initData;\n            }\n\n            const [value, direction] = decodedData;\n            return {\n                value: (value as T) || initData.value,\n                direction: (direction as PageSortT<T>['direction']) || initData.direction,\n            };\n        },\n        equals: (valueA: PageSortT<T> | null | undefined, valueB: PageSortT<T> | null | undefined) => {\n            return isEqual(valueA, valueB);\n        },\n    };\n\n    return params;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"search\":\"SearchControl__search___h4bkm\",\"fadeIn\":\"SearchControl__fadeIn___EiJQv\",\"blinking\":\"SearchControl__blinking___Ez00R\"};","import {\n    FETCH_RFQ_DETAILS_REQUEST,\n    FETCH_RFQ_DETAILS_REQUEST_BEGIN,\n    FETCH_RFQ_DETAILS_REQUEST_ERROR,\n    FETCH_RFQ_DETAILS_REQUEST_SUCCESS,\n    FetchRFQDetailsRequestActionT,\n    FetchRFQDetailsRequestBeginActionT,\n    FetchRFQDetailsRequestErrorActionT,\n    FetchRFQDetailsRequestSuccessActionT,\n} from './types';\nimport { RFQDetailsT, RFQPriceOfferT } from './models';\n\nexport const fetchRFQDetails = (id: TransportOrderIdT, options?: FetchOptionsT): FetchRFQDetailsRequestActionT => ({\n    type: FETCH_RFQ_DETAILS_REQUEST,\n    id,\n    options,\n});\n\nexport const fetchRFQDetailsBegin = (id: TransportOrderIdT): FetchRFQDetailsRequestBeginActionT => ({\n    type: FETCH_RFQ_DETAILS_REQUEST_BEGIN,\n    id,\n});\n\nexport const fetchRFQDetailsSuccess = (\n    id: TransportOrderIdT,\n    details: RFQDetailsT | null,\n    suggestedOffer: RFQPriceOfferT | null,\n): FetchRFQDetailsRequestSuccessActionT => ({\n    type: FETCH_RFQ_DETAILS_REQUEST_SUCCESS,\n    details,\n    suggestedOffer,\n    id,\n});\n\nexport const fetchRFQDetailsError = (id: TransportOrderIdT, error: Error): FetchRFQDetailsRequestErrorActionT => ({\n    type: FETCH_RFQ_DETAILS_REQUEST_ERROR,\n    error,\n    id,\n});\n","import {\n    ADD_TRUCK_REQUEST_BEGIN,\n    ADD_TRUCK_REQUEST_ERROR,\n    ADD_TRUCK_REQUEST_SUCCESS,\n    CompanyTrucksStateT,\n    DELETE_TRUCKS_REQUEST_BEGIN,\n    DELETE_TRUCKS_REQUEST_ERROR,\n    DELETE_TRUCKS_REQUEST_SUCCESS,\n    FETCH_TRUCK_DETAILS_REQUEST_BEGIN,\n    FETCH_TRUCK_DETAILS_REQUEST_ERROR,\n    FETCH_TRUCK_DETAILS_REQUEST_SUCCESS,\n    FETCH_TRUCKS_PAGE_REQUEST_BEGIN,\n    FETCH_TRUCKS_PAGE_REQUEST_ERROR,\n    FETCH_TRUCKS_PAGE_REQUEST_SUCCESS,\n    FETCH_TRUCKS_STATS_REQUEST_BEGIN,\n    FETCH_TRUCKS_STATS_REQUEST_ERROR,\n    FETCH_TRUCKS_STATS_REQUEST_SUCCESS,\n    RESET_TRUCKS,\n    TrucksActionT,\n    TrucksStateT,\n    UPDATE_TRUCKS_REQUEST_BEGIN,\n    UPDATE_TRUCKS_REQUEST_ERROR,\n    UPDATE_TRUCKS_REQUEST_SUCCESS,\n    EXPORT_XLS_TRUCKS_REQUEST_SUCCESS,\n    IMPORT_XLS_TRUCKS_REQUEST_BEGIN,\n    IMPORT_XLS_TRUCKS_REQUEST_ERROR,\n    IMPORT_XLS_TRUCKS_REQUEST_SUCCESS,\n    EXPORT_XLS_TRUCKS_REQUEST_BEGIN,\n    EXPORT_XLS_TRUCKS_REQUEST_ERROR,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport {\n    pageBeginReducer,\n    pageErrorReducer,\n    pageSuccessReducer,\n    resetPagesCacheReducer,\n} from 'common/utils/pagination/reducers';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nexport const initialCompanyTrucksState: CompanyTrucksStateT = {\n    pages: [],\n    query: null,\n    total: null,\n    byId: {},\n    addRequest: requestStatus.initial,\n    deleteRequest: requestStatus.initial,\n    updateRequest: requestStatus.initial,\n    detailsById: {},\n    fetchDetailsRequest: requestStatus.initial,\n    stats: null,\n    fetchStatsRequest: requestStatus.initial,\n    importXLSRequest: requestStatus.initial,\n    exportXLSRequest: requestStatus.initial,\n};\n\nconst initialState: TrucksStateT = {};\n\nexport default (state = initialState, action: TrucksActionT | DestroySessionActionT): TrucksStateT => {\n    switch (action.type) {\n        case FETCH_TRUCKS_PAGE_REQUEST_BEGIN: {\n            const { pageNumber, query, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    ...pageBeginReducer(companyState, pageNumber, query),\n                },\n            };\n        }\n\n        case FETCH_TRUCKS_PAGE_REQUEST_SUCCESS: {\n            const { query, pageNumber, pageResponse, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                [companyId]: {\n                    ...companyState,\n                    ...pageSuccessReducer(companyState, pageNumber, query, pageResponse),\n                },\n            };\n        }\n        case FETCH_TRUCKS_PAGE_REQUEST_ERROR: {\n            const { query, error, pageNumber, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    ...pageErrorReducer(companyState, pageNumber, query, error),\n                },\n            };\n        }\n\n        case ADD_TRUCK_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    addRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case ADD_TRUCK_REQUEST_ERROR: {\n            const { error, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    addRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case ADD_TRUCK_REQUEST_SUCCESS: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    addRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case DELETE_TRUCKS_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    deleteRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case DELETE_TRUCKS_REQUEST_ERROR: {\n            const { error, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    deleteRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case DELETE_TRUCKS_REQUEST_SUCCESS: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    deleteRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case RESET_TRUCKS: {\n            const { companyId, mutationListOptions } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...initialState,\n                [companyId]: {\n                    ...initialCompanyTrucksState,\n                    ...resetPagesCacheReducer(initialCompanyTrucksState, companyState, mutationListOptions),\n                },\n            };\n        }\n\n        case UPDATE_TRUCKS_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    updateRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case UPDATE_TRUCKS_REQUEST_ERROR: {\n            const { error, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    updateRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case UPDATE_TRUCKS_REQUEST_SUCCESS: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    updateRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case FETCH_TRUCK_DETAILS_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    fetchDetailsRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case FETCH_TRUCK_DETAILS_REQUEST_ERROR: {\n            const { companyId, error } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    fetchDetailsRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case FETCH_TRUCK_DETAILS_REQUEST_SUCCESS: {\n            const { companyId, truckId, details } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    fetchDetailsRequest: requestStatus.ok,\n                    detailsById: {\n                        ...companyState.detailsById,\n                        [truckId]: details,\n                    },\n                },\n            };\n        }\n\n        case FETCH_TRUCKS_STATS_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    fetchStatsRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case FETCH_TRUCKS_STATS_REQUEST_ERROR: {\n            const { companyId, error } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    fetchStatsRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case FETCH_TRUCKS_STATS_REQUEST_SUCCESS: {\n            const { companyId, stats } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    fetchStatsRequest: requestStatus.ok,\n                    stats,\n                },\n            };\n        }\n\n        case IMPORT_XLS_TRUCKS_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    importXLSRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case IMPORT_XLS_TRUCKS_REQUEST_ERROR: {\n            const { companyId, error } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    importXLSRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case IMPORT_XLS_TRUCKS_REQUEST_SUCCESS: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    importXLSRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case EXPORT_XLS_TRUCKS_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    exportXLSRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case EXPORT_XLS_TRUCKS_REQUEST_ERROR: {\n            const { companyId, error } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    exportXLSRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case EXPORT_XLS_TRUCKS_REQUEST_SUCCESS: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrucksState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    exportXLSRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default:\n            return state;\n    }\n};\n","import { RFQsChangesStateT } from './types';\nimport { SharableStateT } from '../models';\n\nexport const selectRFQsChangesRequest = (state: SharableStateT): RFQsChangesStateT['request'] =>\n    state.rfqsChanges.request;\n","// extracted by mini-css-extract-plugin\nexport default {\"pin\":\"MapStackClusterPin__pin___ua93m\",\"wrap\":\"MapStackClusterPin__wrap___rDEu5\",\"fadeIn\":\"MapStackClusterPin__fadeIn___DouYk\",\"blinking\":\"MapStackClusterPin__blinking___NdDtH\"};","import {\n    ADD_MEMBER_REQUEST_BEGIN,\n    ADD_MEMBER_REQUEST_ERROR,\n    ADD_MEMBER_REQUEST_SUCCESS,\n    CompanyMembersStateT,\n    DELETE_MEMBER_REQUEST_BEGIN,\n    DELETE_MEMBER_REQUEST_ERROR,\n    DELETE_MEMBER_REQUEST_SUCCESS,\n    FETCH_CONTACT_DETAILS_REQUEST_BEGIN,\n    FETCH_CONTACT_DETAILS_REQUEST_ERROR,\n    FETCH_CONTACT_DETAILS_REQUEST_SUCCESS,\n    FETCH_CONTACTS_REQUEST_BEGIN,\n    FETCH_CONTACTS_REQUEST_ERROR,\n    FETCH_CONTACTS_REQUEST_SUCCESS,\n    MembersActionT,\n    MembersStateT,\n    UPDATE_MEMBER_REQUEST_BEGIN,\n    UPDATE_MEMBER_REQUEST_ERROR,\n    UPDATE_MEMBER_REQUEST_SUCCESS,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport keyBy from 'lodash/keyBy';\nimport { isNonNil } from 'common/utils';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nexport const initialCompanyMembersState: CompanyMembersStateT = {\n    contactIds: null,\n    constantById: {},\n    fetchContactsRequest: requestStatus.initial,\n    addMemberRequest: requestStatus.initial,\n    deleteMemberRequest: requestStatus.initial,\n    updateMemberRequest: requestStatus.initial,\n};\n\nconst initialState: MembersStateT = {\n    byCompanyId: {},\n    fetchContactDetailsRequest: requestStatus.initial,\n    contactDetailsById: {},\n    contactIdByUserId: {},\n};\n\nexport default (state = initialState, action: MembersActionT | DestroySessionActionT): MembersStateT => {\n    switch (action.type) {\n        case FETCH_CONTACTS_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyState = state.byCompanyId[companyId] || initialCompanyMembersState;\n\n            return {\n                ...state,\n                byCompanyId: {\n                    ...state.byCompanyId,\n                    [companyId]: {\n                        ...companyState,\n                        fetchContactsRequest: requestStatus.loading,\n                    },\n                },\n            };\n        }\n\n        case FETCH_CONTACTS_REQUEST_SUCCESS: {\n            const { companyId, companyContacts } = action;\n\n            const companyState = state.byCompanyId[companyId] || initialCompanyMembersState;\n\n            const ids = companyContacts.map((contact) => contact?.id).filter(isNonNil);\n            const byId = keyBy(companyContacts, 'id');\n\n            const contactIdByUserId = ids.reduce<Record<UserIdT, ContactIdT>>((acc, id) => {\n                const contact = byId[id];\n\n                const userId = contact?.userId;\n                if (userId) {\n                    return {\n                        ...acc,\n                        [userId]: id,\n                    };\n                }\n\n                return acc;\n            }, {});\n\n            return {\n                ...state,\n                byCompanyId: {\n                    ...state.byCompanyId,\n                    [companyId]: {\n                        ...companyState,\n                        contactIds: ids,\n                        constantById: {\n                            ...companyState.constantById,\n                            ...byId,\n                        },\n                        fetchContactsRequest: requestStatus.ok,\n                    },\n                },\n                contactIdByUserId: {\n                    ...state.contactIdByUserId,\n                    ...contactIdByUserId,\n                },\n            };\n        }\n\n        case FETCH_CONTACTS_REQUEST_ERROR: {\n            const { companyId, error } = action;\n\n            const companyState = state.byCompanyId[companyId] || initialCompanyMembersState;\n\n            return {\n                ...state,\n                byCompanyId: {\n                    ...state.byCompanyId,\n                    [companyId]: {\n                        ...companyState,\n                        fetchContactsRequest: requestStatus.setError(error),\n                    },\n                },\n            };\n        }\n\n        case ADD_MEMBER_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyState = state.byCompanyId[companyId] || initialCompanyMembersState;\n\n            return {\n                ...state,\n                byCompanyId: {\n                    ...state.byCompanyId,\n                    [companyId]: {\n                        ...companyState,\n                        addMemberRequest: requestStatus.loading,\n                    },\n                },\n            };\n        }\n\n        case ADD_MEMBER_REQUEST_SUCCESS: {\n            const { companyId } = action;\n\n            const companyState = state.byCompanyId[companyId] || initialCompanyMembersState;\n\n            return {\n                ...state,\n                byCompanyId: {\n                    ...state.byCompanyId,\n                    [companyId]: {\n                        ...companyState,\n                        addMemberRequest: requestStatus.ok,\n                    },\n                },\n            };\n        }\n\n        case ADD_MEMBER_REQUEST_ERROR: {\n            const { error, companyId } = action;\n\n            const companyState = state.byCompanyId[companyId] || initialCompanyMembersState;\n\n            return {\n                ...state,\n                byCompanyId: {\n                    ...state.byCompanyId,\n                    [companyId]: {\n                        ...companyState,\n                        addMemberRequest: requestStatus.setError(error),\n                    },\n                },\n            };\n        }\n\n        case DELETE_MEMBER_REQUEST_BEGIN: {\n            const { companyId } = action;\n            const companyState = state.byCompanyId[companyId] || initialCompanyMembersState;\n\n            return {\n                ...state,\n                byCompanyId: {\n                    ...state.byCompanyId,\n                    [companyId]: {\n                        ...companyState,\n                        deleteMemberRequest: requestStatus.loading,\n                    },\n                },\n            };\n        }\n\n        case DELETE_MEMBER_REQUEST_SUCCESS: {\n            const { companyId } = action;\n            const companyState = state.byCompanyId[companyId] || initialCompanyMembersState;\n\n            return {\n                ...state,\n                byCompanyId: {\n                    ...state.byCompanyId,\n                    [companyId]: {\n                        ...companyState,\n                        deleteMemberRequest: requestStatus.ok,\n                    },\n                },\n            };\n        }\n\n        case DELETE_MEMBER_REQUEST_ERROR: {\n            const { error, companyId } = action;\n\n            const companyState = state.byCompanyId[companyId] || initialCompanyMembersState;\n\n            return {\n                ...state,\n                byCompanyId: {\n                    ...state.byCompanyId,\n                    [companyId]: {\n                        ...companyState,\n                        deleteMemberRequest: requestStatus.setError(error),\n                    },\n                },\n            };\n        }\n\n        case UPDATE_MEMBER_REQUEST_BEGIN: {\n            const { companyId } = action;\n            const companyState = state.byCompanyId[companyId] || initialCompanyMembersState;\n\n            return {\n                ...state,\n                byCompanyId: {\n                    ...state.byCompanyId,\n                    [companyId]: {\n                        ...companyState,\n                        updateMemberRequest: requestStatus.loading,\n                    },\n                },\n            };\n        }\n\n        case UPDATE_MEMBER_REQUEST_SUCCESS: {\n            const { companyId } = action;\n            const companyState = state.byCompanyId[companyId] || initialCompanyMembersState;\n\n            return {\n                ...state,\n                byCompanyId: {\n                    ...state.byCompanyId,\n                    [companyId]: {\n                        ...companyState,\n                        updateMemberRequest: requestStatus.ok,\n                    },\n                },\n            };\n        }\n\n        case UPDATE_MEMBER_REQUEST_ERROR: {\n            const { error, companyId } = action;\n\n            const companyState = state.byCompanyId[companyId] || initialCompanyMembersState;\n\n            return {\n                ...state,\n                byCompanyId: {\n                    ...state.byCompanyId,\n                    [companyId]: {\n                        ...companyState,\n                        updateMemberRequest: requestStatus.setError(error),\n                    },\n                },\n            };\n        }\n\n        case FETCH_CONTACT_DETAILS_REQUEST_BEGIN: {\n            return {\n                ...state,\n                fetchContactDetailsRequest: requestStatus.loading,\n            };\n        }\n\n        case FETCH_CONTACT_DETAILS_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                fetchContactDetailsRequest: requestStatus.setError(error),\n            };\n        }\n\n        case FETCH_CONTACT_DETAILS_REQUEST_SUCCESS: {\n            const { contactId, details } = action;\n\n            const userId = details?.userId;\n\n            return {\n                ...state,\n                contactDetailsById: {\n                    ...state.contactDetailsById,\n                    [contactId]: details,\n                },\n                contactIdByUserId: {\n                    ...state.contactIdByUserId,\n                    ...(userId ? { [userId]: contactId } : {}),\n                },\n                fetchContactDetailsRequest: requestStatus.ok,\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default: {\n            return state;\n        }\n    }\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"TopBarContent__content___QRu1H\",\"left-content\":\"TopBarContent__left-content___EyOSk\",\"right-node\":\"TopBarContent__right-node___Tt09z\",\"left-node\":\"TopBarContent__left-node___DhwSM\",\"title\":\"TopBarContent__title___wTE_l\",\"fadeIn\":\"TopBarContent__fadeIn___IV6q1\",\"blinking\":\"TopBarContent__blinking___I49oC\"};","import { SharableStateT } from 'common/store/models';\nimport { ShipmentChangesByIdStateT, TourChangesByIdStateT, PapersEditByPaperIdStateT } from './slice';\nimport { ShipmentOptimisticAttachPaperT, TourOptimisticAttachPaperT } from './models';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\n\nconst initialShipmentChangesState: ShipmentChangesByIdStateT = {\n    optimisticPapers: [],\n};\n\nconst initialTourChangesState: TourChangesByIdStateT = {\n    optimisticPapers: [],\n};\n\nconst initialPapersEditByPaperIdState: PapersEditByPaperIdStateT = {\n    deleteRequest: requestStatus.initial,\n    uploadRequest: requestStatus.initial,\n};\n\nexport const selectShipmentChangesById =\n    (id?: ShipmentIdT | null | undefined) =>\n    (state: SharableStateT): ShipmentChangesByIdStateT =>\n        state.papersEdit.shipmentChangesById[id as ShipmentIdT] || initialShipmentChangesState;\n\nexport const selectTourChangesById =\n    (id?: TourIdT | null | undefined) =>\n    (state: SharableStateT): TourChangesByIdStateT =>\n        state.papersEdit.tourChangesById[id as TourIdT] || initialTourChangesState;\n\nexport const selectOptimisticPapersByShipmentId =\n    (id?: ShipmentIdT | null | undefined) =>\n    (state: SharableStateT): ShipmentOptimisticAttachPaperT[] =>\n        state.papersEdit.shipmentChangesById[id as ShipmentIdT]?.optimisticPapers || [];\n\nexport const selectOptimisticPapersByTourId =\n    (id?: TourIdT | null | undefined) =>\n    (state: SharableStateT): TourOptimisticAttachPaperT[] =>\n        state.papersEdit.tourChangesById[id as TourIdT]?.optimisticPapers || [];\n\nexport const selectPapersEditByPaperId =\n    (id?: PaperIdT | null | undefined) =>\n    (state: SharableStateT): PapersEditByPaperIdStateT =>\n        state.papersEdit.byId[id as PaperIdT] || initialPapersEditByPaperIdState;\n\nexport const selectUploadRequestStatus =\n    (id?: PaperIdT | null | undefined) =>\n    (state: SharableStateT): RequestStatusT =>\n        state.papersEdit.byId[id as PaperIdT]?.uploadRequest || initialPapersEditByPaperIdState.uploadRequest;\n\nexport const selectDeleteRequestStatus =\n    (id?: PaperIdT | null | undefined) =>\n    (state: SharableStateT): RequestStatusT =>\n        state.papersEdit.byId[id as PaperIdT]?.deleteRequest || initialPapersEditByPaperIdState.deleteRequest;\n\nexport const selectPapersEditByPaperIdState = (state: SharableStateT) => state.papersEdit.byId;\n","// extracted by mini-css-extract-plugin\nexport default {\"phone\":\"PhoneCell__phone___AC13C\",\"phone--isHalfOpacity\":\"PhoneCell__phone--isHalfOpacity___zse5G\",\"fadeIn\":\"PhoneCell__fadeIn___HtZsL\",\"blinking\":\"PhoneCell__blinking___wir0d\"};","import * as React from 'react';\nimport { Route, Switch, useParams } from 'react-router-dom';\nimport { AssetRoutesEnum, routesEnum } from 'broker-admin/constants';\nimport TruckDetailsPage from 'common/layouts/TruckDetailsPage/TruckDetailsPage';\nimport history, { goBackIfHasRePath } from 'common/utils/history';\nimport TrailerDetailsPage from 'common/layouts/TrailerDetailsPage/TrailerDetailsPage';\nimport PartnerContext from 'common/contexts/partner-context';\nimport SideBars from 'broker-admin/layouts/SideBars/SideBars';\nimport { parsePartnerTypeParam } from 'broker-admin/utils/urls-params';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport { ExtractRouterRouteParamsT } from 'common/utils/extract-router-route-params-t';\nimport PartnerPermissionsContextProvider from 'broker-admin/components/PartnerPermissionsContextProvider/PartnerPermissionsContextProvider';\nimport { logWarning } from 'common/utils/logger';\n\ntype PropsT = {};\n\nconst AssetDetailsPage: React.FC<PropsT> = React.memo(() => {\n    const params = useParams<ExtractRouterRouteParamsT<typeof routesEnum.assetDetails>>();\n\n    const { partnerId } = params;\n    const partnerType = parsePartnerTypeParam(params.partnerType);\n\n    const partnerContextValue = React.useMemo(() => {\n        return {\n            partnerType: parsePartnerTypeParam(params.partnerType),\n            partnerId: params.partnerId,\n        };\n    }, [params.partnerId, params.partnerType]);\n\n    return (\n        <PartnerContext.Provider value={partnerContextValue}>\n            <PartnerPermissionsContextProvider partnerId={partnerContextValue.partnerId}>\n                <Switch>\n                    <Route path={AssetRoutesEnum.truckDetails}>\n                        <TruckDetailsPage\n                            onClose={() => {\n                                goBackIfHasRePath(\n                                    () => {\n                                        history.push(urlFactory.partnerTrucks(partnerType, partnerId));\n                                    },\n                                    {\n                                        shouldCloseSidebars: true,\n                                    },\n                                );\n                            }}\n                            onCloseMap={() => {\n                                goBackIfHasRePath(() => {\n                                    history.push(urlFactory.partnerTrucks(partnerType, partnerId));\n                                });\n                            }}\n                            onOpenTransportOrderDetails={(event) => {\n                                if (!event.transportationOrderId) {\n                                    logWarning(`Failed open transport order details from schedule`);\n                                    return;\n                                }\n\n                                history.push(\n                                    urlFactory.partnerTransportOrderDetails(\n                                        partnerType,\n                                        partnerId,\n                                        event.transportationOrderId,\n                                    ),\n                                );\n                            }}\n                        />\n                    </Route>\n                    <Route path={AssetRoutesEnum.trailerDetails}>\n                        <TrailerDetailsPage\n                            onClose={() => {\n                                goBackIfHasRePath(\n                                    () => {\n                                        history.push(urlFactory.partnerTrailers(partnerType, partnerId));\n                                    },\n                                    {\n                                        shouldCloseSidebars: true,\n                                    },\n                                );\n                            }}\n                            onCloseMap={() => {\n                                goBackIfHasRePath(() => {\n                                    history.push(urlFactory.partnerTrailers(partnerType, partnerId));\n                                });\n                            }}\n                            onOpenTransportOrderDetails={(event) => {\n                                if (!event.transportationOrderId) {\n                                    logWarning(`Failed open transport order details from schedule`);\n                                    return;\n                                }\n\n                                history.push(\n                                    urlFactory.partnerTransportOrderDetails(\n                                        partnerType,\n                                        partnerId,\n                                        event.transportationOrderId,\n                                    ),\n                                );\n                            }}\n                        />\n                    </Route>\n                </Switch>\n                <SideBars />\n            </PartnerPermissionsContextProvider>\n        </PartnerContext.Provider>\n    );\n});\n\nexport default AssetDetailsPage;\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const driversRefreshChannel = new ViewEventChannel<{}>();\n\nexport const driversPaginationChannel = new ViewEventChannel<{\n    pageNumber: number;\n}>();\n\nexport const driverDetailsRefreshChannel = new ViewEventChannel<{\n    driverId: DriverIdT;\n    partnerId: PartnerIdT;\n}>();\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"DeactivateUserForm__fadeIn___h6HVB\",\"blinking\":\"DeactivateUserForm__blinking___ShwTp\"};","import * as React from 'react';\nimport AuthLayout from 'common/layouts/AuthLayout/AuthLayout';\nimport SignUpForm from 'common/components/SignUpForm/SignUpForm';\nimport { useTranslation } from 'react-i18next';\nimport RedirectSignedUser from 'common/components/RedirectSignedUser/RedirectSignedUser';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\n\ntype PropsT = {};\n\nconst SignUpPage: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n\n    return (\n        <>\n            <RedirectSignedUser />\n            <AuthLayout testSelector=\"sign-up-page\">\n                <PageTitle title={t('common:page-titles.sign-up')} />\n                <SignUpForm\n                    titleSignUpUser={t('sign-up.user-form.title')}\n                    titleSignUpCompany={t('sign-up.company-form.title')}\n                />\n            </AuthLayout>\n        </>\n    );\n});\n\nexport default SignUpPage;\n","import * as React from 'react';\n\nimport styles from './QuickTimeWindowLink.scss';\nimport classNames from 'classnames/bind';\nimport find from 'lodash/find';\nimport { RangeIdSetEnum } from '../constants';\nimport { useTranslation } from 'react-i18next';\nimport { ReservePreviewT } from 'common/store/order-creation/models';\nimport isNumber from 'lodash/isNumber';\nimport { RangeSelectorRangeT } from 'common/components/RangeSelector/RangeSelector';\nimport LinkButton, { LinkButtonHeightEnum, LinkButtonThemeEnum } from 'common/components/LinkButton/LinkButton';\n\ntype PropsT = {\n    values: TimeWindowT | null;\n    routePointIndex: number;\n    ranges: RangeSelectorRangeT[];\n    onClick: (date: string | null | undefined) => void;\n    reservePreview: ReservePreviewT | null;\n    isDisabled?: boolean;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\nconst INVERSE_MAP: Record<RangeIdSetEnum, RangeIdSetEnum | null> = {\n    [RangeIdSetEnum.urgentPickUp]: RangeIdSetEnum.regularPickUp,\n    [RangeIdSetEnum.regularPickUp]: RangeIdSetEnum.urgentPickUp,\n    [RangeIdSetEnum.teamDriveDropOff]: RangeIdSetEnum.regularDropOff,\n    [RangeIdSetEnum.layoverDropOff]: RangeIdSetEnum.teamDriveDropOff,\n    [RangeIdSetEnum.regularDropOff]: RangeIdSetEnum.teamDriveDropOff,\n    [RangeIdSetEnum.broker]: null,\n};\n\nconst checkHasInverseRange = (\n    reservePreview: ReservePreviewT | null,\n    routePointIndex: number,\n    inverseRangeId: string | null | undefined,\n): boolean => {\n    if (!inverseRangeId) {\n        return false;\n    }\n\n    if (inverseRangeId === RangeIdSetEnum.urgentPickUp) {\n        return !!reservePreview?.timeWindows?.[routePointIndex]?.urgentTimeWindow?.start;\n    }\n\n    if (inverseRangeId === RangeIdSetEnum.regularPickUp) {\n        return !!reservePreview?.timeWindows?.[routePointIndex]?.regularTimeWindow?.start;\n    }\n\n    if (inverseRangeId === RangeIdSetEnum.teamDriveDropOff) {\n        return !!reservePreview?.timeWindows?.[routePointIndex]?.urgentTimeWindow?.start;\n    }\n\n    if (inverseRangeId === RangeIdSetEnum.regularDropOff) {\n        return !!reservePreview?.timeWindows?.[routePointIndex]?.regularTimeWindow?.start;\n    }\n\n    return false;\n};\n\nconst QuickTimeWindowLink: React.FC<PropsT> = React.memo((props) => {\n    const { values, routePointIndex, ranges, onClick, reservePreview, isDisabled } = props;\n\n    const { t } = useTranslation();\n\n    let inverseRangeId: RangeIdSetEnum | null = null;\n\n    if (values) {\n        const currentRange = find(ranges, (range) => {\n            const [start, end] = range?.values || [];\n            return isNumber(start) && isNumber(end) && start <= values[0] && values[0] < end;\n        });\n\n        inverseRangeId = INVERSE_MAP[currentRange?.id as RangeIdSetEnum];\n    }\n\n    const hasInverseRange = checkHasInverseRange(reservePreview, routePointIndex, inverseRangeId);\n\n    if (!hasInverseRange) {\n        return null;\n    }\n\n    const labels = {\n        [RangeIdSetEnum.urgentPickUp]: t('common:time-windows-links.urgent-pickup'),\n        [RangeIdSetEnum.regularPickUp]: t('common:time-windows-links.regular-pickup'),\n        [RangeIdSetEnum.teamDriveDropOff]: t('common:time-windows-links.team-drive'),\n        [RangeIdSetEnum.regularDropOff]: t('common:time-windows-links.regular-drive'),\n        [RangeIdSetEnum.layoverDropOff]: t('common:time-windows-links.layover-drop-off'),\n        [RangeIdSetEnum.broker]: null,\n    };\n\n    if (!inverseRangeId) {\n        return null;\n    }\n\n    const handleClick = () => {\n        if (inverseRangeId === RangeIdSetEnum.urgentPickUp || inverseRangeId === RangeIdSetEnum.teamDriveDropOff) {\n            onClick(reservePreview?.timeWindows?.[routePointIndex]?.urgentTimeWindow?.start);\n        }\n\n        if (inverseRangeId === RangeIdSetEnum.regularPickUp || inverseRangeId === RangeIdSetEnum.regularDropOff) {\n            onClick(reservePreview?.timeWindows?.[routePointIndex]?.regularTimeWindow?.start);\n        }\n    };\n\n    return (\n        <LinkButton\n            theme={LinkButtonThemeEnum.brandDark}\n            height={LinkButtonHeightEnum.narrow}\n            onClick={() => handleClick()}\n            isDisabled={isDisabled}\n        >\n            {labels[inverseRangeId]}\n        </LinkButton>\n    );\n});\n\nexport default QuickTimeWindowLink;\n","export enum FieldsEnum {\n    spotRequestLimit = 'SPOT_REQUEST_LIMIT',\n    expiresSoonAlert = 'EXPIRES_SOON_ALERT',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.spotRequestLimit]: string;\n    [FieldsEnum.expiresSoonAlert]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"PartnerSuggest__fadeIn___DfeBm\",\"blinking\":\"PartnerSuggest__blinking___mdIOt\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './OverlaysManager.scss';\nimport { NotificationTextRendererT } from 'common/components/toasts/NotificationToastsManager/models';\nimport {\n    NotificationLinkFactoryT,\n    NotificationRendererT,\n} from 'common/components/notifications/NotificationsBarContent/models';\nimport NotificationToastsManager from 'common/components/toasts/NotificationToastsManager/NotificationToastsManager';\nimport AlertToastsManager from '../toasts/AlertToastsManager/AlertToastsManager';\nimport { AlertToastRendererT } from 'common/components/toasts/AlertToastsManager/models';\nimport DevLocalizationLanguageSwitcher from './DevLocalizationLanguageSwitcher/DevLocalizationLanguageSwitcher';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    renderAlertToast: AlertToastRendererT;\n    renderNotification: NotificationRendererT | null;\n    renderNotificationText: NotificationTextRendererT;\n    getNotificationLink: NotificationLinkFactoryT;\n};\n\nconst OverlaysManager: React.FC<PropsT> = React.memo((props) => {\n    const { renderAlertToast, renderNotification, renderNotificationText, getNotificationLink } = props;\n\n    return (\n        <>\n            <NotificationToastsManager\n                renderNotification={renderNotification}\n                getNotificationLink={getNotificationLink}\n                renderNotificationText={renderNotificationText}\n                className={cx('notification-toasts-manger')}\n            />\n            <DevLocalizationLanguageSwitcher className={cx('dev-localization-language-switcher')} />\n            <AlertToastsManager className={cx('alerts-manager')} renderAlertToast={renderAlertToast} />\n        </>\n    );\n});\n\nexport default OverlaysManager;\n","import {\n    ADD_TRAILER_REQUEST_BEGIN,\n    ADD_TRAILER_REQUEST_ERROR,\n    ADD_TRAILER_REQUEST_SUCCESS,\n    CompanyTrailersStateT,\n    DELETE_TRAILERS_REQUEST_BEGIN,\n    DELETE_TRAILERS_REQUEST_ERROR,\n    DELETE_TRAILERS_REQUEST_SUCCESS,\n    FETCH_TRAILER_DETAILS_REQUEST_BEGIN,\n    FETCH_TRAILER_DETAILS_REQUEST_ERROR,\n    FETCH_TRAILER_DETAILS_REQUEST_SUCCESS,\n    FETCH_TRAILERS_PAGE_REQUEST_BEGIN,\n    FETCH_TRAILERS_PAGE_REQUEST_ERROR,\n    FETCH_TRAILERS_PAGE_REQUEST_SUCCESS,\n    FETCH_TRAILERS_STATS_REQUEST_BEGIN,\n    FETCH_TRAILERS_STATS_REQUEST_ERROR,\n    FETCH_TRAILERS_STATS_REQUEST_SUCCESS,\n    IMPORT_XLS_TRAILERS_REQUEST_BEGIN,\n    RESET_TRAILERS,\n    TrailersActionT,\n    TrailersStateT,\n    UPDATE_TRAILERS_REQUEST_BEGIN,\n    UPDATE_TRAILERS_REQUEST_ERROR,\n    UPDATE_TRAILERS_REQUEST_SUCCESS,\n    IMPORT_XLS_TRAILERS_REQUEST_ERROR,\n    IMPORT_XLS_TRAILERS_REQUEST_SUCCESS,\n    EXPORT_XLS_TRAILERS_REQUEST_BEGIN,\n    EXPORT_XLS_TRAILERS_REQUEST_ERROR,\n    EXPORT_XLS_TRAILERS_REQUEST_SUCCESS,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport {\n    pageBeginReducer,\n    pageErrorReducer,\n    pageSuccessReducer,\n    resetPagesCacheReducer,\n} from 'common/utils/pagination/reducers';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nexport const initialCompanyTrailersState: CompanyTrailersStateT = {\n    pages: [],\n    query: null,\n    total: null,\n    byId: {},\n    addRequest: requestStatus.initial,\n    deleteRequest: requestStatus.initial,\n    updateRequest: requestStatus.initial,\n    detailsById: {},\n    fetchDetailsRequest: requestStatus.initial,\n    stats: null,\n    fetchStatsRequest: requestStatus.initial,\n    importXLSRequest: requestStatus.initial,\n    exportXLSRequest: requestStatus.initial,\n};\n\nconst initialState: TrailersStateT = {};\n\nexport default (state = initialState, action: TrailersActionT | DestroySessionActionT): TrailersStateT => {\n    switch (action.type) {\n        case FETCH_TRAILERS_PAGE_REQUEST_BEGIN: {\n            const { pageNumber, query, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    ...pageBeginReducer(companyState, pageNumber, query),\n                },\n            };\n        }\n\n        case RESET_TRAILERS: {\n            const { companyId, mutationListOptions } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...initialState,\n                [companyId]: {\n                    ...companyState,\n                    ...resetPagesCacheReducer(initialCompanyTrailersState, companyState, mutationListOptions),\n                },\n            };\n        }\n\n        case FETCH_TRAILERS_PAGE_REQUEST_SUCCESS: {\n            const { query, pageNumber, pageResponse, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    ...pageSuccessReducer(companyState, pageNumber, query, pageResponse),\n                },\n            };\n        }\n        case FETCH_TRAILERS_PAGE_REQUEST_ERROR: {\n            const { query, error, pageNumber, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    ...pageErrorReducer(companyState, pageNumber, query, error),\n                },\n            };\n        }\n\n        case ADD_TRAILER_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    addRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case ADD_TRAILER_REQUEST_ERROR: {\n            const { error, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    addRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case ADD_TRAILER_REQUEST_SUCCESS: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    addRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case DELETE_TRAILERS_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    deleteRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case DELETE_TRAILERS_REQUEST_ERROR: {\n            const { error, companyId } = action;\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    deleteRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case DELETE_TRAILERS_REQUEST_SUCCESS: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    deleteRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case UPDATE_TRAILERS_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    updateRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case UPDATE_TRAILERS_REQUEST_ERROR: {\n            const { error, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    updateRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case UPDATE_TRAILERS_REQUEST_SUCCESS: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    updateRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case FETCH_TRAILER_DETAILS_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    fetchDetailsRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case FETCH_TRAILER_DETAILS_REQUEST_ERROR: {\n            const { companyId, error } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    fetchDetailsRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case FETCH_TRAILER_DETAILS_REQUEST_SUCCESS: {\n            const { companyId, trailerId, details } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    fetchDetailsRequest: requestStatus.ok,\n                    detailsById: {\n                        ...companyState.detailsById,\n                        [trailerId]: details,\n                    },\n                },\n            };\n        }\n\n        case FETCH_TRAILERS_STATS_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    fetchStatsRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case FETCH_TRAILERS_STATS_REQUEST_ERROR: {\n            const { companyId, error } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    fetchStatsRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case FETCH_TRAILERS_STATS_REQUEST_SUCCESS: {\n            const { companyId, stats } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    fetchStatsRequest: requestStatus.ok,\n                    stats,\n                },\n            };\n        }\n\n        case IMPORT_XLS_TRAILERS_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    importXLSRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case IMPORT_XLS_TRAILERS_REQUEST_ERROR: {\n            const { companyId, error } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    importXLSRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case IMPORT_XLS_TRAILERS_REQUEST_SUCCESS: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    importXLSRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case EXPORT_XLS_TRAILERS_REQUEST_BEGIN: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    exportXLSRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case EXPORT_XLS_TRAILERS_REQUEST_ERROR: {\n            const { companyId, error } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    exportXLSRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case EXPORT_XLS_TRAILERS_REQUEST_SUCCESS: {\n            const { companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyTrailersState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    exportXLSRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default:\n            return state;\n    }\n};\n","import React from 'react';\nimport { MapRoutePointT, SyncAssignmentFormMapStateContextValueT } from '../contexts/sync-map-state';\nimport { CountryCodeT } from 'common/utils/api/models';\n\nexport const useSyncMapStateContextValue = (): SyncAssignmentFormMapStateContextValueT => {\n    const [onSetMapBoundingBox, setOnSetMapBoundingBox] =\n        React.useState<SyncAssignmentFormMapStateContextValueT['onSetMapBoundingBox']>(null);\n    const [onMapClickCallback, setOnMapClickCallback] =\n        React.useState<SyncAssignmentFormMapStateContextValueT['onMapClickCallback']>(null);\n    const [onDragEndDnDCallback, setOnDragEndDnDCallback] =\n        React.useState<SyncAssignmentFormMapStateContextValueT['onDragEndDnDCallback']>(null);\n    const [mapRoutePoints, setMapRoutePoints] = React.useState<Array<MapRoutePointT>>([]);\n\n    const [onChangeExcludedCountriesCallback, setOnChangeExcludedCountriesCallback] =\n        React.useState<SyncAssignmentFormMapStateContextValueT['onChangeExcludedCountriesCallback']>(null);\n    const [excludedCountries, setExcludedCountries] = React.useState<Array<CountryCodeT>>([]);\n\n    return React.useMemo(() => {\n        return {\n            onSetMapBoundingBox,\n            setOnSetMapBoundingBox,\n\n            mapRoutePoints,\n            setMapRoutePoints,\n\n            onMapClickCallback,\n            setOnMapClickCallback,\n\n            onDragEndDnDCallback,\n            setOnDragEndDnDCallback,\n\n            onChangeExcludedCountriesCallback,\n            setOnChangeExcludedCountriesCallback,\n\n            excludedCountries,\n            setExcludedCountries: (excludedCountries: Array<CountryCodeT>) => {\n                setExcludedCountries(excludedCountries);\n                onChangeExcludedCountriesCallback?.callback(excludedCountries);\n            },\n        };\n    }, [\n        onSetMapBoundingBox,\n        setOnSetMapBoundingBox,\n\n        mapRoutePoints,\n        setMapRoutePoints,\n\n        onMapClickCallback,\n        setOnMapClickCallback,\n\n        onDragEndDnDCallback,\n        setOnDragEndDnDCallback,\n\n        onChangeExcludedCountriesCallback,\n        setOnChangeExcludedCountriesCallback,\n\n        excludedCountries,\n        setExcludedCountries,\n    ]);\n};\n","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport mapValues from 'lodash/mapValues';\nimport keyBy from 'lodash/keyBy';\nimport {\n    DictCarrierAdditionalServiceGroupByTrailerTypeT,\n    DictCarrierAdditionalServiceGroupT,\n    DictCarrierAdditionalServiceMapByTrailerTypeT,\n} from './models';\nimport { ANY_TRAILER_TYPE } from 'common/store/additional-services-dict/constants';\n\nexport type AdditionalServicesDictStateT = {\n    byTrailerType: DictCarrierAdditionalServiceGroupByTrailerTypeT | null;\n    mapByTrailerType: DictCarrierAdditionalServiceMapByTrailerTypeT | null;\n    fetchRequest: RequestStatusT;\n};\n\nconst initialState: AdditionalServicesDictStateT = {\n    fetchRequest: requestStatus.initial,\n    byTrailerType: null,\n    mapByTrailerType: null,\n};\n\nexport const additionalServicesDictSlice = createSlice({\n    name: 'additionalServicesDict',\n    initialState,\n    reducers: {\n        fetchAdditionalServices: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n        ) => {\n            // nothing - handled by saga\n        },\n        fetchAdditionalServicesBegin: (state) => {\n            state.fetchRequest = requestStatus.loading;\n        },\n        fetchAdditionalServicesSuccess: (\n            state,\n            action: PayloadAction<{\n                additionalServiceGroups: DictCarrierAdditionalServiceGroupT[] | null;\n            }>,\n        ) => {\n            const { additionalServiceGroups } = action.payload;\n\n            if (additionalServiceGroups) {\n                const commonGroups = additionalServiceGroups?.filter((group) => !group.trailerType);\n\n                const byTrailerType = additionalServiceGroups.reduce<DictCarrierAdditionalServiceGroupByTrailerTypeT>(\n                    (acc, group) => {\n                        const { trailerType } = group;\n                        if (trailerType) {\n                            if (!acc[trailerType]) {\n                                acc[trailerType] = [...commonGroups];\n                            }\n\n                            acc[trailerType].push(group);\n                        }\n\n                        return acc;\n                    },\n                    {\n                        [ANY_TRAILER_TYPE]: [...commonGroups],\n                    },\n                );\n\n                const mapByTrailerType = mapValues(byTrailerType, (groups) => {\n                    const allServices = groups?.flatMap((group) => group.services);\n\n                    return keyBy(allServices, 'service');\n                }) as DictCarrierAdditionalServiceMapByTrailerTypeT;\n\n                state.byTrailerType = byTrailerType;\n                state.mapByTrailerType = mapByTrailerType;\n            } else {\n                state.byTrailerType = null;\n                state.mapByTrailerType = null;\n            }\n\n            state.fetchRequest = requestStatus.ok;\n        },\n        fetchAdditionalServicesError: (\n            state,\n            action: PayloadAction<{\n                error: Error;\n            }>,\n        ) => {\n            const { error } = action.payload;\n            state.fetchRequest = requestStatus.setError(error);\n        },\n    },\n    extraReducers: (builder) => {\n        builder.addCase('auth/destroySession', () => {\n            return initialState;\n        });\n    },\n});\n\nexport const {\n    fetchAdditionalServices,\n    fetchAdditionalServicesBegin,\n    fetchAdditionalServicesSuccess,\n    fetchAdditionalServicesError,\n} = additionalServicesDictSlice.actions;\n\nexport default additionalServicesDictSlice.reducer;\n","import React, { useCallback } from 'react';\n\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport TruckIcon, { TruckIconProps } from 'common/icons/TruckIcon';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport DropdownSearchInput from 'design-system/components/dropdowns/DropdownSearchInput/DropdownSearchInput';\nimport { useTranslation } from 'react-i18next';\nimport {\n    AsyncRequestFactoryResultT,\n    AsyncRequestFactoryT,\n    useAsyncOptionsRequest,\n} from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-options-request';\nimport { ApiTruckAssetT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport TruckOptionLabel from './TruckOptionLabel/TruckOptionLabel';\nimport TruckTriggerLabel from './TruckTriggerLabel/TruckTriggerLabel';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport { logWarning } from 'common/utils/logger';\n\ntype OptionT = ApiTruckAssetT;\n\ntype ValueT = ApiTruckAssetT | null;\n\nexport type PropsT = {\n    initialValue: ValueT;\n    onSelect: (value: ValueT) => void;\n    value: ValueT;\n    overlayPosition: DropdownOverlayPositionEnum;\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    hasSuccess?: InputPropsT['hasSuccess'];\n    placeholder: InputPropsT['placeholder'];\n    onBlur: InputPropsT['onBlur'];\n    onFocus: InputPropsT['onFocus'];\n    onKeyUp?: InputPropsT['onKeyUp'];\n    isDisabled?: InputPropsT['isDisabled'];\n    isFocused?: InputPropsT['isFocused'];\n    hasChanges?: boolean;\n};\n\nconst TrucksSuggest: React.FC<PropsT> = (props) => {\n    const {\n        initialValue,\n        value,\n        onSelect,\n        hasSuccess,\n        hasWarning,\n        hasError,\n        overlayPosition,\n        isDisabled,\n        onBlur,\n        onFocus,\n        hasChanges,\n        placeholder,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const requestFactory: AsyncRequestFactoryT<OptionT> = useCallback((query) => {\n        return brokerTranziitApi\n            .getDeadheadTrucks({\n                truckPlateNumber: (query || '').trim(),\n            })\n            .then((response): AsyncRequestFactoryResultT<OptionT> => {\n                const [error, result] = response;\n                if (error) {\n                    return [error, null];\n                }\n\n                return [null, result?.content || []];\n            });\n    }, []);\n\n    const asyncOptionsRequest = useAsyncOptionsRequest<OptionT>({\n        initialOptions: initialValue ? [initialValue] : [],\n        requestFactory,\n        settings: {},\n    });\n\n    const renderTruckOption = (option: OptionT) => {\n        const assetId = option.id;\n        if (!assetId) {\n            return null;\n        }\n\n        return (\n            <TruckOptionLabel\n                isInvalid={Boolean(option?.invalidReason)}\n                model={option.model}\n                plateNumber={option.plateNumber}\n                price={t('assignment.rate', { rate: option.ratePerKm })}\n                rateMode={option.rateMode || null}\n                isAssetUtilizationLoading={false}\n                assetUtilizationPercent={option.assetUtilization}\n                carrierUtilizationPercent={option.carrierUtilization}\n                isCarrierUtilizationLoading={false}\n            />\n        );\n    };\n\n    const renderTruckTrigger = (option: OptionT | undefined, placeholder?: React.ReactNode) => {\n        if (!option) {\n            return placeholder;\n        }\n\n        return (\n            <TruckTriggerLabel\n                model={option?.model}\n                plateNumber={option?.plateNumber}\n                ratePerKm={option?.ratePerKm}\n                rateMode={option?.rateMode}\n                resetTooltipNode={t('assignment.tooltips.clear-truck')}\n                isDisabled={!!isDisabled}\n                onReset={() => {\n                    onSelect(null);\n                }}\n                onOpenDetails={() => {\n                    const truckId = option?.id;\n                    if (!truckId) {\n                        logWarning('Empty truckId');\n                        return;\n                    }\n\n                    if (!option?.carrierId) {\n                        logWarning('Empty option?.carrierId');\n                        return;\n                    }\n\n                    openLeftSidebar(\n                        {\n                            type: CommonSidebarsTypeEnum.truckDetails,\n                            truckId,\n                            partnerId: option?.carrierId,\n                            isReadOnly: true,\n                            isDisableShowOnMap: true,\n                        },\n                        {\n                            isForceShowBackAction: true,\n                        },\n                    );\n                }}\n            />\n        );\n    };\n\n    return (\n        <DropdownSearchInput<OptionT, ValueT>\n            selectedValue={value}\n            options={asyncOptionsRequest.options}\n            onSelect={onSelect}\n            renderTrigger={renderTruckTrigger}\n            renderOption={renderTruckOption}\n            getOptionValue={(option) => option}\n            onChangeQuery={asyncOptionsRequest.onChangeQuery}\n            isLoading={asyncOptionsRequest.requestStatus.loading}\n            renderLeftIcon={(iconMeta) => <TruckIcon {...TruckIconProps.getControlProps(iconMeta)} />}\n            hasWarning={hasWarning}\n            hasSuccess={hasSuccess}\n            hasError={hasError}\n            overlayPosition={overlayPosition}\n            isDisabled={isDisabled}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            hasChanges={hasChanges}\n            placeholder={placeholder}\n        />\n    );\n};\n\nexport default TrucksSuggest;\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"CarrierWithUtilizationDropdownOption__option___sfZGs\",\"name\":\"CarrierWithUtilizationDropdownOption__name___rPrDl\",\"indicator\":\"CarrierWithUtilizationDropdownOption__indicator___EdVXr\",\"utilization\":\"CarrierWithUtilizationDropdownOption__utilization___QDDKx\",\"spacer\":\"CarrierWithUtilizationDropdownOption__spacer_____EF7\",\"fadeIn\":\"CarrierWithUtilizationDropdownOption__fadeIn___UTMug\",\"blinking\":\"CarrierWithUtilizationDropdownOption__blinking___V4fcS\"};","import * as React from 'react';\nimport { CurrencyEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\nimport { TourTypeTabsEnum } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/TourTypeTabs/constants';\nimport isNumber from 'lodash/isNumber';\nimport { BrokerOrderDetailsT } from 'broker-admin/store/broker-order-details/models';\nimport { SelfCostPredictionT } from 'broker-admin/store/broker-order-assigment/models';\nimport { getDiffPercent, getValuesDiff } from 'common/utils/percents';\nimport { moneyOperations } from 'common/utils/money';\nimport TourTypeTabsLayout, {\n    TourTypeTabConfigT,\n} from 'broker-admin/components/tour-receipt-details/TourTypeTabsLayout/TourTypeTabsLayout';\n\ntype PropsT = {\n    className?: string;\n    isLoading?: boolean;\n    brokerOrderDetails: BrokerOrderDetailsT | null;\n    selfCostPrediction?: SelfCostPredictionT | null;\n    selectedTourTypeTab: TourTypeTabsEnum;\n    onSelectTourTypeTab: (tourTab: TourTypeTabsEnum) => void;\n};\n\nconst summTotalCostIfNeed = (\n    truckTransportOrderId: TransportOrderIdT | undefined,\n    truckCostDetailsTotalCost: number | undefined,\n    trailerTransportOrderId: TransportOrderIdT | undefined,\n    trailerCostDetailsTotalCost: number | undefined,\n) => {\n    if (truckTransportOrderId && trailerTransportOrderId && truckTransportOrderId === trailerTransportOrderId) {\n        return truckCostDetailsTotalCost || 0;\n    }\n\n    return moneyOperations.notStrictPlus(\n        truckCostDetailsTotalCost || 0,\n        trailerCostDetailsTotalCost || 0,\n        CurrencyEnum.EUR,\n    );\n};\n\nconst TourTypeTabs: React.FC<PropsT> = React.memo((props) => {\n    const { className, isLoading, selectedTourTypeTab, onSelectTourTypeTab, brokerOrderDetails, selfCostPrediction } =\n        props;\n\n    const estimateCost = brokerOrderDetails?.priceOffer?.totalPrice;\n    const actualCost = selfCostPrediction?.calculatedSumCost?.totalCost;\n\n    const nextCost = summTotalCostIfNeed(\n        selfCostPrediction?.truckNextTransportationOrderInfo?.id,\n        selfCostPrediction?.truckNextTourOldCostDetails?.totalCost,\n        selfCostPrediction?.trailerNextTransportationOrderInfo?.id,\n        selfCostPrediction?.trailerNextTourOldCostDetails?.totalCost,\n    );\n\n    const actualNextCost = summTotalCostIfNeed(\n        selfCostPrediction?.truckNextTransportationOrderInfo?.id,\n        selfCostPrediction?.truckNextTourNewCostDetails?.totalCost,\n        selfCostPrediction?.trailerNextTransportationOrderInfo?.id,\n        selfCostPrediction?.trailerNextTourNewCostDetails?.totalCost,\n    );\n\n    const costDiff = getValuesDiff(actualNextCost, nextCost);\n    const actualNextPercentDiff = getDiffPercent(costDiff, nextCost);\n\n    const { t } = useTranslation();\n\n    const isShowNextTour = Boolean(nextCost) || Boolean(actualNextCost);\n    React.useEffect(() => {\n        if (!isShowNextTour && selectedTourTypeTab === TourTypeTabsEnum.next) {\n            onSelectTourTypeTab(TourTypeTabsEnum.current);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isShowNextTour]);\n\n    const tabsConfig: Array<TourTypeTabConfigT<TourTypeTabsEnum>> = [\n        {\n            type: TourTypeTabsEnum.current,\n            title: t('assignment.tout-type-tabs.current-tour'),\n            rows: [\n                {\n                    moneyDiffProps: {\n                        value: estimateCost,\n                        baseValue: estimateCost,\n                    },\n                    title: t('assignment.tout-type-tabs.target-tour-cost'),\n                    cost: estimateCost,\n                },\n                {\n                    moneyDiffProps: {\n                        value: actualCost,\n                        baseValue: estimateCost,\n                    },\n                    coloredDiffProps: {\n                        isNotActual: isLoading,\n                    },\n                    title: t('assignment.tout-type-tabs.actual-tour-cost'),\n                    cost: actualCost,\n                },\n            ],\n        },\n    ];\n\n    if (isShowNextTour) {\n        tabsConfig.push({\n            type: TourTypeTabsEnum.next,\n            title: t('assignment.tout-type-tabs.next-tour'),\n            titleTooltip: t('assignment.tout-type-tabs.next-tour-tooltip-note'),\n            rows: [\n                {\n                    moneyDiffProps: {\n                        value: nextCost,\n                        baseValue: nextCost,\n                    },\n                    title: t('assignment.tout-type-tabs.planned-next-tour-cost'),\n                    cost: nextCost || null,\n                },\n                {\n                    moneyDiffProps: {\n                        value: actualNextCost,\n                        baseValue: nextCost,\n                    },\n                    coloredDiffProps: {\n                        isNotActual: isLoading,\n                    },\n                    title: t('assignment.tout-type-tabs.updated-next-tour-cost'),\n                    cost: actualNextCost || null,\n                    percentDiffPill:\n                        isNumber(actualNextPercentDiff) && actualNextPercentDiff\n                            ? {\n                                  isNotActual: isLoading,\n                                  percentDiff: actualNextPercentDiff,\n                              }\n                            : null,\n                },\n            ],\n        });\n    }\n\n    return (\n        <TourTypeTabsLayout\n            selectedType={selectedTourTypeTab}\n            onSelectType={onSelectTourTypeTab}\n            className={className}\n            tabsConfig={tabsConfig}\n        />\n    );\n});\n\nexport default TourTypeTabs;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { SystemSettingsChangesT } from 'broker-admin/store/price-settings/system-settings/models';\n\nconst prepareApiSystemSettings = (formValues: FormValuesT): SystemSettingsChangesT => {\n    return {\n        TRANSPORTATION_ORDER_HAS_NO_DRIVER_ALERT_TIME: formValues[FieldsEnum.transportationOrderHasNoDriverAlertTime],\n        RUN_OUT_OF_TIME_TO_ASSIGN_DRIVER_LIMIT: formValues[FieldsEnum.assignDriverLimitAlert],\n        ALLOWED_GAP_TO_BE_DELAYED: formValues[FieldsEnum.allowedGAPToBeDelayed],\n        DELETE_NOTIFICATIONS_OLDER_DAYS: formValues[FieldsEnum.deleteNotificationsOlderDays],\n        DOC_EXPIRES_SOON_ALERT: formValues[FieldsEnum.docExpiresSoonAlert],\n        RUN_OUT_OF_TIME_TO_ASSIGN_ASSETS_LIMIT: formValues[FieldsEnum.assignAssetLimitAlert],\n        TRANSPORTATION_ORDER_HAS_NO_ASSETS_ALERT_TIME: formValues[FieldsEnum.transportationOrderHasNoAssetsAlertTime],\n        RADIUS_AROUND_WAYPOINT_METERS: formValues[FieldsEnum.radiusAroundWaypointM],\n        TIME_LIMIT_TO_CANCEL_ORDER_HOURS: formValues[FieldsEnum.timeLimitToCancelOrderHours],\n        TIME_LIMIT_TO_CANCEL_TRANSPORTATION_ORDER_HOURS:\n            formValues[FieldsEnum.timeLimitToCancelTransportationOrderHours],\n    };\n};\n\nexport default prepareApiSystemSettings;\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"ListPageHeaderTabsLayout__content___cBA3s\",\"fadeIn\":\"ListPageHeaderTabsLayout__fadeIn___j6ePq\",\"blinking\":\"ListPageHeaderTabsLayout__blinking___r96dj\"};","import { RequestStatusT } from 'common/utils/request-status';\nimport { CarrierUtilizationT } from './models';\n\nexport const FETCH_UTILIZATION_REQUEST = 'common/carriers-utilization/FETCH_UTILIZATION_REQUEST';\nexport const FETCH_UTILIZATION_REQUEST_BEGIN = 'common/carriers-utilization/FETCH_UTILIZATION_REQUEST_BEGIN';\nexport const FETCH_UTILIZATION_REQUEST_ERROR = 'common/carriers-utilization/FETCH_UTILIZATION_REQUEST_ERROR';\nexport const FETCH_UTILIZATION_REQUEST_SUCCESS = 'common/carriers-utilization/FETCH_UTILIZATION_REQUEST_SUCCESS';\nexport const RESET = 'common/carriers-utilization/RESET';\n\nexport type CarriersUtilizationStateT = {\n    fetchRequest: RequestStatusT;\n    byHash: Record<string, CarrierUtilizationT | null>;\n};\n\nexport type FetchCarrierUtilizationActionT = {\n    type: typeof FETCH_UTILIZATION_REQUEST;\n    ids: CarrierIdT[];\n    date: string;\n};\n\nexport type FetchCarrierUtilizationBeginActionT = {\n    type: typeof FETCH_UTILIZATION_REQUEST_BEGIN;\n};\n\nexport type FetchCarrierUtilizationSuccessActionT = {\n    type: typeof FETCH_UTILIZATION_REQUEST_SUCCESS;\n    ids: CarrierIdT[];\n    date: string;\n    utilizations: Array<CarrierUtilizationT>;\n};\n\nexport type FetchCarrierUtilizationErrorActionT = {\n    type: typeof FETCH_UTILIZATION_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type CarrierUtilizationResetActionT = {\n    type: typeof RESET;\n};\n\nexport type CarriersUtilizationActionT =\n    | FetchCarrierUtilizationActionT\n    | FetchCarrierUtilizationBeginActionT\n    | FetchCarrierUtilizationSuccessActionT\n    | FetchCarrierUtilizationErrorActionT\n    | CarrierUtilizationResetActionT;\n","// extracted by mini-css-extract-plugin\nexport default {\"table--id\":\"TourDetailsCard__table--id___gFRhS\",\"table--carrier\":\"TourDetailsCard__table--carrier___mMtS0\",\"table--waypoint\":\"TourDetailsCard__table--waypoint___NQJgV\",\"table--spot\":\"TourDetailsCard__table--spot___Ig6fT\",\"table\":\"TourDetailsCard__table___E7Twv\",\"fadeIn\":\"TourDetailsCard__fadeIn___Gm6kv\",\"blinking\":\"TourDetailsCard__blinking___iciz_\"};","import * as React from 'react';\n\nimport styles from './OperationUnavailableReasonsAlert.scss';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport InfoIcon from 'common/icons/InfoIcon';\nimport { useTranslation } from 'react-i18next';\nimport { getOperationUnavailableReasonTranslation } from './utils';\nimport { OperationUnavailableReasonT } from 'common/utils/api/models';\n\nexport type PropsT = {\n    className?: string;\n    operationUnavailableReasons?: OperationUnavailableReasonT[];\n    externalRestrictionMessage?: string;\n};\n\nconst OperationUnavailableReasonsAlert: React.FC<PropsT> = React.memo((props) => {\n    const { className, operationUnavailableReasons, externalRestrictionMessage } = props;\n    const { t } = useTranslation();\n\n    if (!operationUnavailableReasons?.length) {\n        return null;\n    }\n\n    const reasons = operationUnavailableReasons.map((reason) =>\n        getOperationUnavailableReasonTranslation(t, reason, { externalRestrictionMessage }),\n    );\n\n    return (\n        <Alert\n            className={className}\n            icon={<InfoIcon fillColor={StyleGuideColorsEnum.white} />}\n            size={AlertSizeEnum.small}\n            theme={AlertThemeEnum.orange}\n        >\n            {t('common:operation-unavailable-alert.alert')}\n            <ul className={styles.list}>\n                {reasons.map((reason) => (\n                    <li key={reason}>{reason}</li>\n                ))}\n            </ul>\n        </Alert>\n    );\n});\n\nexport default OperationUnavailableReasonsAlert;\n","import { QueryFiltersT, QueryFiltersKeysEnum } from '../query-models';\nimport { FormValuesT, FieldsEnum } from './constants';\nimport { getDateFromDate, getEndDayFromDateZero, getStartDayFromDateZero } from 'common/utils/time';\n\nconst getQueryFilters = (values: FormValuesT): QueryFiltersT => {\n    const queryFilters: QueryFiltersT = {};\n\n    if (values[FieldsEnum.carrierIds].length) {\n        queryFilters[QueryFiltersKeysEnum.carrierIds] = values[FieldsEnum.carrierIds];\n    }\n\n    if (values[FieldsEnum.carrierNames].length) {\n        queryFilters[QueryFiltersKeysEnum.carrierNames] = values[FieldsEnum.carrierNames];\n    }\n\n    if (values[FieldsEnum.originAddress]) {\n        queryFilters[QueryFiltersKeysEnum.originAddress] = values[FieldsEnum.originAddress];\n    }\n\n    if (values[FieldsEnum.destinationAddress]) {\n        queryFilters[QueryFiltersKeysEnum.destinationAddress] = values[FieldsEnum.destinationAddress];\n    }\n\n    const originDates = values[FieldsEnum.originDates];\n    if (originDates?.from) {\n        const date = getDateFromDate(originDates.from);\n        queryFilters[QueryFiltersKeysEnum.originDateFrom] = getStartDayFromDateZero(date);\n    }\n    if (originDates?.to) {\n        const date = getDateFromDate(originDates.to);\n        queryFilters[QueryFiltersKeysEnum.originDateTo] = getEndDayFromDateZero(date);\n    }\n\n    const destinationDates = values[FieldsEnum.destinationDates];\n    if (destinationDates?.from) {\n        const date = getDateFromDate(destinationDates.from);\n        queryFilters[QueryFiltersKeysEnum.destinationDateFrom] = getStartDayFromDateZero(date);\n    }\n    if (destinationDates?.to) {\n        const date = getDateFromDate(destinationDates.to);\n        queryFilters[QueryFiltersKeysEnum.destinationDateTo] = getEndDayFromDateZero(date);\n    }\n\n    const creationDates = values[FieldsEnum.creationDates];\n    if (creationDates?.from) {\n        const date = getDateFromDate(creationDates.from);\n        queryFilters[QueryFiltersKeysEnum.dateCreatedFrom] = getStartDayFromDateZero(date);\n    }\n    if (creationDates?.to) {\n        const date = getDateFromDate(creationDates.to);\n        queryFilters[QueryFiltersKeysEnum.dateCreatedTo] = getEndDayFromDateZero(date);\n    }\n\n    if (values[FieldsEnum.tourTypes].length) {\n        queryFilters[QueryFiltersKeysEnum.tourTypes] = values[FieldsEnum.tourTypes];\n    }\n\n    if (values[FieldsEnum.plateNumber]) {\n        queryFilters[QueryFiltersKeysEnum.plateNumber] = values[FieldsEnum.plateNumber];\n    }\n\n    return queryFilters;\n};\n\nexport default getQueryFilters;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"CountryDropdown__fadeIn___J6c_L\",\"blinking\":\"CountryDropdown__blinking___c730Y\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './LogsSwitchableViewLayout.scss';\nimport { SwitchableView } from 'common/components/SwitchableView/SwitchableView';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { AnyLogRecordT } from 'common/store/subject-logs/models';\nimport { GroupedLogsLayout } from 'common/components/GroupedLogsLayout/GroupedLogsLayout';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    controls?: React.ReactNode;\n    requestStatus: RequestStatusT;\n    logs: AnyLogRecordT[];\n};\n\nconst LogsSwitchableViewLayout: React.FC<PropsT> = React.memo((props) => {\n    const { controls, requestStatus, logs } = props;\n\n    return (\n        <div className={cx('container')}>\n            <div className={cx('controls')}>\n                <SwitchableView.Trigger />\n                {controls}\n            </div>\n            <GroupedLogsLayout requestStatus={requestStatus} logs={logs} />\n        </div>\n    );\n});\n\nexport { LogsSwitchableViewLayout };\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor?: StyleGuideColorsEnum;\n    size: number;\n    className?: string;\n};\n\nconst DoneIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, size, ...restProps } = props;\n\n    return (\n        <svg width={size} height={size} viewBox=\"0 0 40 40\" {...restProps}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M2 2h36v36H2z\" />\n                <path fill={fillColor} d=\"M15.5 26.3L9.2 20l-2.1 2.1 8.4 8.4 18-18-2.1-2.1z\" />\n            </g>\n        </svg>\n    );\n};\n\nDoneIcon.displayName = 'DoneIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n};\n\nexport { storyProps };\nexport default DoneIcon;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './BasicWidgetHeaderActions.scss';\nimport { PartnerDetailsT } from 'broker-admin/store/partner/details/models';\nimport ColoredStatusLabel from 'common/components/ColoredStatusLabel/ColoredStatusLabel';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport MoreIcon from 'common/icons/MoreIcon';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControl, {\n    DropdownControlOptionT,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport LockIcon from 'common/icons/LockIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\nimport isNil from 'lodash/isNil';\nimport { LockPartnerConfirmationDataT } from '../dialogs/LockPartnerConfirmation/models';\nimport { UnlockPartnerConfirmationDataT } from '../dialogs/UnlockPartnerConfirmation/models';\nimport UnLockIcon from 'common/icons/UnLockIcon';\nimport UnlinkIcon from 'common/icons/UnlinkIcon';\nimport { isNonNil } from 'common/utils';\n\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport LockActionOnChangeForm from 'broker-admin/layouts/PartnerPage/PartnerDetailsPage/LockActionOnChangeForm/LockActionOnChangeForm';\nimport LockStatusOnChangeForm from 'broker-admin/layouts/PartnerPage/PartnerDetailsPage/LockStatusOnChangeForm/LockStatusOnChangeForm';\nimport { BlockLockingReasonEnum, BlockLockingReasonT } from 'broker-admin/store/partner/details/utils/lock';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { UnlinkProfileConfirmationDataT } from '../dialogs/UnlinkProfileConfirmation/models';\n\ntype PropsT = {\n    isShowLock?: boolean;\n    blockLockingReason?: BlockLockingReasonT | null;\n    isShowUnlock?: boolean;\n    blockUnlockingReason?: BlockLockingReasonT | null;\n    onLock?: (data: LockPartnerConfirmationDataT | null) => void;\n    onUnLock?: (data: UnlockPartnerConfirmationDataT | null) => void;\n    onUnlink?: (data: UnlinkProfileConfirmationDataT | null) => void;\n    partnerDetails: PartnerDetailsT | null;\n};\n\nconst blockLockingReasonI18nMap: Record<BlockLockingReasonT, string> = {\n    [BlockLockingReasonEnum.NOT_VERIFIED_LEGAL_ADDRESS]:\n        'partner.details-tab.blocking.reasons.not-verified-legal-address',\n    [BlockLockingReasonEnum.NOT_VERIFIED_BILLING_ADDRESS]:\n        'partner.details-tab.blocking.reasons.not-verified-billing-address',\n};\n\nconst cx = classNames.bind(styles);\n\nconst BasicWidgetHeaderActions: React.FC<PropsT> = React.memo((props) => {\n    const {\n        isShowLock,\n        isShowUnlock,\n        partnerDetails,\n        onUnLock,\n        onLock,\n        onUnlink,\n        blockLockingReason,\n        blockUnlockingReason,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n\n    if (!partnerDetails) {\n        return null;\n    }\n\n    const partnerId = partnerDetails?.id;\n    if (isNil(partnerId)) {\n        return null;\n    }\n\n    const options: Array<DropdownControlOptionT> = [\n        !partnerDetails.locked && onLock && isShowLock\n            ? {\n                  label: (\n                      <Tooltip\n                          position={TooltipPositionEnum.centerLeft}\n                          theme={TooltipThemeEnum.black}\n                          tooltipNode={\n                              blockLockingReason ? (\n                                  <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                      {t(blockLockingReasonI18nMap[blockLockingReason])}\n                                  </TooltipContent>\n                              ) : null\n                          }\n                      >\n                          {() => (\n                              <DropdownControlOptionLabel\n                                  label={t('partner.details-tab.blocking.lock')}\n                                  icon={\n                                      <LockIcon fillColor={StyleGuideColorsEnum.tomatoRed} size={DEFAULT_ICON_SIZE} />\n                                  }\n                              />\n                          )}\n                      </Tooltip>\n                  ),\n                  isDisabled: !!blockLockingReason,\n                  onSelect: () => {\n                      if (remoteFormActionsContext.remoteFormState?.hasErrors) {\n                          remoteFormActionsContext.remoteFormCallbacks?.touchAllFields?.();\n                          return;\n                      }\n\n                      onLock({ partnerId });\n                  },\n              }\n            : null,\n        onUnlink\n            ? {\n                  label: (\n                      <DropdownControlOptionLabel\n                          label={t('partner.details-tab.dialogs.unlink-profile.action')}\n                          icon={<UnlinkIcon strokeColor={StyleGuideColorsEnum.tomatoRed} size={DEFAULT_ICON_SIZE} />}\n                      />\n                  ),\n                  onSelect: () => onUnlink({ partnerId }),\n              }\n            : null,\n    ].filter(isNonNil);\n\n    const dropdownControl = options.length ? (\n        <LockActionOnChangeForm>\n            <DropdownControl\n                options={options}\n                renderTrigger={(isActive, onClick) => (\n                    <TransparentTrigger\n                        isPressed={isActive}\n                        onClick={onClick}\n                        leftIcon={<MoreIcon />}\n                        reflectionTheme={ReflectionThemeEnum.light}\n                        testSelector=\"lock-partner\"\n                    />\n                )}\n                testSelector=\"lock-partner\"\n                overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n            />\n        </LockActionOnChangeForm>\n    ) : null;\n\n    if (partnerDetails.locked) {\n        return (\n            <>\n                <LockStatusOnChangeForm className={cx('status')}>\n                    <ColoredStatusLabel\n                        label={t('partner.details-tab.blocking.locked-status')}\n                        color={StyleGuideColorsEnum.orange}\n                    />\n                </LockStatusOnChangeForm>\n                {onUnLock && isShowUnlock && (\n                    <LockActionOnChangeForm>\n                        <Tooltip\n                            position={TooltipPositionEnum.centerLeft}\n                            theme={TooltipThemeEnum.black}\n                            tooltipNode={\n                                blockUnlockingReason ? (\n                                    <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                        {t(blockLockingReasonI18nMap[blockUnlockingReason])}\n                                    </TooltipContent>\n                                ) : null\n                            }\n                        >\n                            {() => (\n                                <Button\n                                    theme={ButtonThemeEnum.transparent}\n                                    className={cx('verification')}\n                                    isDisabled={!!blockUnlockingReason}\n                                    leftIcon={\n                                        <UnLockIcon\n                                            strokeColor={\n                                                blockUnlockingReason\n                                                    ? StyleGuideColorsEnum.white\n                                                    : StyleGuideColorsEnum.charcoal\n                                            }\n                                            size={DEFAULT_ICON_SIZE}\n                                        />\n                                    }\n                                    onClick={() => {\n                                        if (remoteFormActionsContext.remoteFormState?.hasErrors) {\n                                            remoteFormActionsContext.remoteFormCallbacks?.touchAllFields?.();\n                                            return;\n                                        }\n\n                                        onUnLock?.({ partnerId });\n                                    }}\n                                    testSelector=\"unlock-partner\"\n                                >\n                                    {t('partner.details-tab.blocking.unlock')}\n                                </Button>\n                            )}\n                        </Tooltip>\n                    </LockActionOnChangeForm>\n                )}\n                {dropdownControl}\n            </>\n        );\n    }\n\n    return dropdownControl;\n});\n\nexport default BasicWidgetHeaderActions;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './UpdatedDocumentCard.scss';\nimport { Trans } from 'react-i18next';\nimport { ApiDocumentTypeT } from 'common/utils/api/models';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport AsyncDictDocumentNameLabel from 'common/components/AsyncDictDocumentNameLabel/AsyncDictDocumentNameLabel';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    documentType: ApiDocumentTypeT;\n};\n\nconst UpdatedDocumentCard: React.FC<PropsT> = React.memo((props) => {\n    const { documentType } = props;\n\n    const { partnerType } = usePartnerContext();\n\n    return (\n        <NotificationCardInnerLayout className={cx('inner')}>\n            <Trans\n                i18nKey=\"common:notifications.document-updated\"\n                components={{\n                    documentName: (\n                        <NotificationEntityLabel\n                            isBold\n                            text={<AsyncDictDocumentNameLabel partnerType={partnerType} documentType={documentType} />}\n                        />\n                    ),\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default UpdatedDocumentCard;\n","import { RequestStatusT } from 'common/utils/request-status';\nimport { GPSStatusT } from 'common/store/gps-tracking-status/models';\nimport { AssetTypeEnum } from 'common/constants';\n\nexport const CHECK_GPS_STATUS_REQUEST = 'common/gps-tracking-status/CHECK_GPS_STATUS_REQUEST';\nexport const CHECK_GPS_STATUS_REQUEST_BEGIN = 'common/gps-tracking-status/CHECK_GPS_STATUS_REQUEST_BEGIN';\nexport const CHECK_GPS_STATUS_REQUEST_ERROR = 'common/gps-tracking-status/CHECK_GPS_STATUS_REQUEST_ERROR';\nexport const CHECK_GPS_STATUS_REQUEST_SUCCESS = 'common/gps-tracking-status/CHECK_GPS_STATUS_REQUEST_SUCCESS';\nexport const RESET = 'common/gps-tracking-status/RESET';\n\nexport type GPSTrackingStatusQueryT = {\n    plateNumber: PlateNumberT;\n    companyId: CompanyIdT;\n    assetType: AssetTypeEnum;\n};\n\nexport type GPSTrackingStatusStateT = {\n    query: GPSTrackingStatusQueryT | null;\n    requestStatus: RequestStatusT;\n    data: GPSStatusT | null;\n};\n\nexport type CheckGPSStatusRequestActionT = {\n    type: typeof CHECK_GPS_STATUS_REQUEST;\n    query: GPSTrackingStatusQueryT | null;\n};\n\nexport type CheckGPSStatusRequestBeginActionT = {\n    type: typeof CHECK_GPS_STATUS_REQUEST_BEGIN;\n    query: GPSTrackingStatusQueryT;\n};\n\nexport type CheckGPSStatusRequestErrorActionT = {\n    type: typeof CHECK_GPS_STATUS_REQUEST_ERROR;\n    error: Error;\n    query: GPSTrackingStatusQueryT;\n};\n\nexport type CheckGPSStatusRequestSuccessActionT = {\n    type: typeof CHECK_GPS_STATUS_REQUEST_SUCCESS;\n    query: GPSTrackingStatusQueryT;\n    data: GPSStatusT;\n};\n\nexport type ResetActionT = {\n    type: typeof RESET;\n};\n\nexport type GPSTrackingStatusActionT =\n    | CheckGPSStatusRequestActionT\n    | CheckGPSStatusRequestBeginActionT\n    | CheckGPSStatusRequestSuccessActionT\n    | CheckGPSStatusRequestErrorActionT\n    | ResetActionT;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './ErrorTraceId.scss';\n\nimport { ErrorActionT } from 'common/store/errors/models';\nimport { TraceIdLabel } from 'common/components/TraceIdLabel/TraceIdLabel';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    errorLog: ErrorActionT;\n};\n\nconst ErrorTraceId: React.FC<PropsT> = React.memo((props) => {\n    const { errorLog } = props;\n\n    return (\n        <div className={cx('content')}>\n            <TraceIdLabel traceId={errorLog.traceId} />\n        </div>\n    );\n});\n\nexport default ErrorTraceId;\n","import * as React from 'react';\nimport cs from 'classnames';\nimport { useSelector } from 'react-redux';\nimport classNames from 'classnames/bind';\n\nimport { selectCountriesAllCodes, selectCountriesByCode } from 'common/store/countries-dict/selectors';\n\nimport DropdownSearchMultipleInput from 'design-system/components/dropdowns/DropdownSearchMultipleInput/DropdownSearchMultipleInput';\nimport DeprecatedCountyFlagLabel from 'common/components/DeprecatedCountyFlagLabel/DeprecatedCountyFlagLabel';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\n\nimport ExcludedCountry from './ExcludedCountry/ExcludedCountry';\n\nimport styles from './ExcludeCountriesMapWidget.scss';\nimport { CountryCodeT } from 'common/utils/api/models';\nimport { prepareSearchQuery } from 'common/utils/search';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT<T extends CountryCodeT> = {\n    className?: string;\n    excludedCountries: Array<T>;\n    setExcludedCountries: (excludedCountries: Array<T>) => void;\n    triggerLabel: string;\n    inputPlaceholder: string;\n    additionalTagsNode?: React.ReactNode;\n};\n\nconst ExcludeCountriesMapWidget = <T extends CountryCodeT>(props: PropsT<T>) => {\n    const { className, excludedCountries, setExcludedCountries, triggerLabel, inputPlaceholder, additionalTagsNode } =\n        props;\n\n    const [query, setQuery] = React.useState<string>('');\n\n    const countriesAllCodes = useSelector(selectCountriesAllCodes);\n    const countryByCode = useSelector(selectCountriesByCode);\n\n    const renderOption = (countryCode: T) => {\n        return <DeprecatedCountyFlagLabel className={cx('option')} country={countryByCode[countryCode]} />;\n    };\n\n    const getOptionValue = (countryCode: T) => countryCode;\n\n    const renderTrigger = (): React.ReactNode => {\n        return triggerLabel;\n    };\n\n    const removeCountry = (countryCode: T): void => {\n        const newExcludedCountries = excludedCountries.filter(\n            (excludedCountryCode) => excludedCountryCode !== countryCode,\n        );\n\n        setExcludedCountries(newExcludedCountries);\n    };\n\n    const filteredCountriesCodes = React.useMemo(() => {\n        const preparedQuery = prepareSearchQuery(query);\n\n        return countriesAllCodes.filter((countryCode) => {\n            const country = countryByCode[countryCode];\n\n            const label = country?.userLangDisplayName || '';\n            const preparedLabel = prepareSearchQuery(label);\n\n            return preparedLabel.includes(preparedQuery);\n        });\n    }, [countriesAllCodes, query, countryByCode]);\n\n    return (\n        <div className={cs(cx('wrap'), className)}>\n            <DropdownSearchMultipleInput<T, T>\n                className={cx('countries')}\n                overlayClassName={cx('countries-overlay')}\n                selectedValues={excludedCountries}\n                inputPlaceholder={inputPlaceholder}\n                onSelect={setExcludedCountries}\n                options={filteredCountriesCodes as Array<T>}\n                renderOption={renderOption}\n                getOptionValue={getOptionValue}\n                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                renderTriggerContent={renderTrigger}\n                onChangeQuery={setQuery}\n            />\n            {excludedCountries.map((countryCode: T, index: number) => {\n                const country = countryByCode[countryCode];\n\n                return (\n                    <ExcludedCountry\n                        key={index}\n                        countryCode={countryCode}\n                        countryLabel={country?.userLangDisplayName}\n                        className={cx('country')}\n                        onClick={removeCountry}\n                    />\n                );\n            })}\n            {additionalTagsNode}\n        </div>\n    );\n};\n\nexport default React.memo(ExcludeCountriesMapWidget) as typeof ExcludeCountriesMapWidget;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"PartnersPage__fadeIn___Lbkn4\",\"blinking\":\"PartnersPage__blinking___IF81n\"};","// extracted by mini-css-extract-plugin\nexport default {\"pagination\":\"Pagination__pagination___MR_QI\",\"input-wrap\":\"Pagination__input-wrap____gNr3\",\"width-machine\":\"Pagination__width-machine___QRHRN\",\"input\":\"Pagination__input___oFyF2\",\"fadeIn\":\"Pagination__fadeIn___xiYxB\",\"blinking\":\"Pagination__blinking___IEESe\"};","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst AddUserIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} viewBox=\"0 0 20 20\" {...props}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={fillColor}\n                    fillOpacity={0.3}\n                    d=\"M12.25 13c2.025 0 4.35.967 4.5 1.5h-9c.173-.54 2.482-1.5 4.5-1.5zm0-7.5a1.5 1.5 0 11-.001 3.001A1.5 1.5 0 0112.25 5.5z\"\n                />\n                <path\n                    fill={strokeColor}\n                    d=\"M12.25 10a3 3 0 100-6 3 3 0 100 6zm0-4.5c.825 0 1.5.675 1.5 1.5s-.675 1.5-1.5 1.5-1.5-.675-1.5-1.5.675-1.5 1.5-1.5zm0 6c-2.002 0-6 1.005-6 3V16h12v-1.5c0-1.995-3.998-3-6-3zm-4.5 3c.165-.54 2.482-1.5 4.5-1.5 2.025 0 4.35.967 4.5 1.5h-9zM5.5 12.25V10h2.25V8.5H5.5V6.25H4V8.5H1.75V10H4v2.25h1.5z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nAddUserIcon.displayName = 'AddUserIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default AddUserIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"steps\":\"Steps__steps___lpFIo\",\"fadeIn\":\"Steps__fadeIn___lASX2\",\"blinking\":\"Steps__blinking___RpQy7\"};","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"KeyAccountManagerDropdown__fadeIn___NOLQr\",\"blinking\":\"KeyAccountManagerDropdown__blinking___h2Cb9\"};","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport {\n    ApiShipmentAttachedPaperTypeT,\n    ApiTourAttachedPaperTypeT,\n    ApiAttachPaperRequestT,\n} from 'common/utils/api/models';\nimport { ShipmentOptimisticAttachPaperT, TourOptimisticAttachPaperT } from './models';\n\nexport type ShipmentChangesByIdStateT = {\n    optimisticPapers: ShipmentOptimisticAttachPaperT[];\n};\n\nexport type TourChangesByIdStateT = {\n    optimisticPapers: TourOptimisticAttachPaperT[];\n};\n\nexport type PapersEditByPaperIdStateT = {\n    deleteRequest: RequestStatusT;\n    uploadRequest: RequestStatusT;\n};\n\nexport type PapersEditStateT = {\n    shipmentChangesById: Record<ShipmentIdT, ShipmentChangesByIdStateT>;\n    tourChangesById: Record<TourIdT, TourChangesByIdStateT>;\n    byId: Record<PaperIdT, PapersEditByPaperIdStateT>;\n};\n\nconst initialShipmentChangesState: ShipmentChangesByIdStateT = {\n    optimisticPapers: [],\n};\n\nconst initialTourChangesState: TourChangesByIdStateT = {\n    optimisticPapers: [],\n};\n\nconst initialPapersEditByPaperIdState: PapersEditByPaperIdStateT = {\n    deleteRequest: requestStatus.initial,\n    uploadRequest: requestStatus.initial,\n};\n\nconst initialState: PapersEditStateT = {\n    shipmentChangesById: {},\n    tourChangesById: {},\n    byId: {},\n};\n\nexport const papersEditSlice = createSlice({\n    name: 'papersEdit',\n    initialState,\n    reducers: {\n        attachPaperToShipment: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                shipmentId: ShipmentIdT;\n                query: {\n                    paperType: ApiShipmentAttachedPaperTypeT;\n                    comment?: string;\n                };\n                data: ApiAttachPaperRequestT;\n            }>,\n        ) => {\n            // nothing - handled by saga\n        },\n        attachPaperToShipmentBegin: (\n            state,\n            action: PayloadAction<{\n                shipmentId: ShipmentIdT;\n                optimisticPaper: ShipmentOptimisticAttachPaperT;\n            }>,\n        ) => {\n            const { shipmentId, optimisticPaper } = action.payload;\n            const shipmentChangesState = state.shipmentChangesById[shipmentId] || initialShipmentChangesState;\n\n            state.shipmentChangesById[shipmentId] = {\n                optimisticPapers: [...shipmentChangesState.optimisticPapers, optimisticPaper],\n            };\n\n            const paperState = state.byId[optimisticPaper.fakeId] || initialPapersEditByPaperIdState;\n            state.byId[optimisticPaper.fakeId] = {\n                ...paperState,\n                uploadRequest: requestStatus.loading,\n            };\n        },\n        attachPaperToShipmentSuccess: (\n            state,\n            action: PayloadAction<{\n                shipmentId: ShipmentIdT;\n                fakeId: PaperIdT;\n                afterAttachId: PaperIdT | null;\n            }>,\n        ) => {\n            const { shipmentId, fakeId, afterAttachId } = action.payload;\n            const shipmentChangesState = state.shipmentChangesById[shipmentId] || initialShipmentChangesState;\n\n            // remove optimistic papers after previously attach\n            let updatedOptimisticPapers = shipmentChangesState.optimisticPapers.filter((paper) => !paper.afterAttachId);\n\n            if (afterAttachId) {\n                updatedOptimisticPapers = updatedOptimisticPapers.map((paper) => {\n                    if (paper.fakeId === fakeId) {\n                        return { ...paper, afterAttachId };\n                    }\n                    return paper;\n                });\n            }\n\n            state.shipmentChangesById[shipmentId] = {\n                optimisticPapers: updatedOptimisticPapers,\n            };\n\n            delete state.byId[fakeId];\n        },\n        attachPaperToShipmentError: (\n            state,\n            action: PayloadAction<{\n                shipmentId: ShipmentIdT;\n                fakeId: PaperIdT;\n                error: Error;\n            }>,\n        ) => {\n            const { shipmentId, fakeId, error } = action.payload;\n            const shipmentChangesState = state.shipmentChangesById[shipmentId] || initialShipmentChangesState;\n\n            const updatedOptimisticPapers = shipmentChangesState.optimisticPapers.filter(\n                (paper) => paper.fakeId !== fakeId,\n            );\n\n            state.shipmentChangesById[shipmentId] = {\n                optimisticPapers: updatedOptimisticPapers,\n            };\n\n            const paperState = state.byId[fakeId] || initialPapersEditByPaperIdState;\n            state.byId[fakeId] = {\n                ...paperState,\n                uploadRequest: requestStatus.setError(error),\n            };\n        },\n\n        attachPaperToTour: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                tourId: TourIdT;\n                query: {\n                    paperType: ApiTourAttachedPaperTypeT;\n                    comment?: string;\n                };\n                data: ApiAttachPaperRequestT;\n            }>,\n        ) => {\n            // nothing - handled by saga\n        },\n        attachPaperToTourBegin: (\n            state,\n            action: PayloadAction<{\n                tourId: TourIdT;\n                optimisticPaper: TourOptimisticAttachPaperT;\n            }>,\n        ) => {\n            const { tourId, optimisticPaper } = action.payload;\n            const tourChangesState = state.tourChangesById[tourId] || initialTourChangesState;\n\n            state.tourChangesById[tourId] = {\n                optimisticPapers: [...tourChangesState.optimisticPapers, optimisticPaper],\n            };\n\n            const paperState = state.byId[optimisticPaper.fakeId] || initialPapersEditByPaperIdState;\n            state.byId[optimisticPaper.fakeId] = {\n                ...paperState,\n                uploadRequest: requestStatus.loading,\n            };\n        },\n        attachPaperToTourSuccess: (\n            state,\n            action: PayloadAction<{\n                tourId: TourIdT;\n                fakeId: PaperIdT;\n                afterAttachId: PaperIdT | null;\n            }>,\n        ) => {\n            const { tourId, fakeId, afterAttachId } = action.payload;\n            const tourChangesState = state.tourChangesById[tourId] || initialTourChangesState;\n\n            // remove optimistic papers after previously attach\n            let updatedOptimisticPapers = tourChangesState.optimisticPapers.filter((paper) => !paper.afterAttachId);\n\n            if (afterAttachId) {\n                updatedOptimisticPapers = updatedOptimisticPapers.map((paper) => {\n                    if (paper.fakeId === fakeId) {\n                        return { ...paper, afterAttachId };\n                    }\n                    return paper;\n                });\n            }\n\n            state.tourChangesById[tourId] = {\n                optimisticPapers: updatedOptimisticPapers,\n            };\n\n            delete state.byId[fakeId];\n        },\n        attachPaperToTourError: (\n            state,\n            action: PayloadAction<{\n                tourId: TourIdT;\n                fakeId: PaperIdT;\n                error: Error;\n            }>,\n        ) => {\n            const { tourId, fakeId, error } = action.payload;\n            const tourChangesState = state.tourChangesById[tourId] || initialTourChangesState;\n\n            const updatedOptimisticPapers = tourChangesState.optimisticPapers.filter(\n                (paper) => paper.fakeId !== fakeId,\n            );\n\n            state.tourChangesById[tourId] = {\n                optimisticPapers: updatedOptimisticPapers,\n            };\n\n            const paperState = state.byId[fakeId] || initialPapersEditByPaperIdState;\n            state.byId[fakeId] = {\n                ...paperState,\n                uploadRequest: requestStatus.setError(error),\n            };\n        },\n\n        deleteAttachedPaper: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                paperId: string;\n            }>,\n        ) => {\n            // nothing - handled by saga\n        },\n        deleteAttachedPaperBegin: (state, action: PayloadAction<{ paperId: PaperIdT }>) => {\n            const { paperId } = action.payload;\n            const paperState = state.byId[paperId] || initialPapersEditByPaperIdState;\n\n            state.byId[paperId] = {\n                ...paperState,\n                deleteRequest: requestStatus.loading,\n            };\n        },\n        deleteAttachedPaperSuccess: (state, action: PayloadAction<{ paperId: PaperIdT }>) => {\n            const { paperId } = action.payload;\n            const paperState = state.byId[paperId] || initialPapersEditByPaperIdState;\n\n            state.byId[paperId] = {\n                ...paperState,\n                deleteRequest: requestStatus.ok,\n            };\n\n            // remove optimistic papers from shipments by afterAttachId\n            Object.keys(state.shipmentChangesById).forEach((shipmentId) => {\n                const shipmentChangesState = state.shipmentChangesById[shipmentId];\n                if (shipmentChangesState) {\n                    state.shipmentChangesById[shipmentId] = {\n                        optimisticPapers: shipmentChangesState.optimisticPapers.filter(\n                            (paper) => paper.afterAttachId !== paperId,\n                        ),\n                    };\n                }\n            });\n\n            // remove optimistic papers from tours by afterAttachId\n            Object.keys(state.tourChangesById).forEach((tourId) => {\n                const tourChangesState = state.tourChangesById[tourId];\n                if (tourChangesState) {\n                    state.tourChangesById[tourId] = {\n                        optimisticPapers: tourChangesState.optimisticPapers.filter(\n                            (paper) => paper.afterAttachId !== paperId,\n                        ),\n                    };\n                }\n            });\n        },\n        deleteAttachedPaperError: (state, action: PayloadAction<{ paperId: PaperIdT; error: Error }>) => {\n            const { paperId, error } = action.payload;\n            const paperState = state.byId[paperId] || initialPapersEditByPaperIdState;\n\n            state.byId[paperId] = {\n                ...paperState,\n                deleteRequest: requestStatus.setError(error),\n            };\n        },\n\n        resetPapersEdit: () => {\n            return initialState;\n        },\n    },\n    extraReducers: (builder) => {\n        builder.addCase('auth/destroySession', () => {\n            return initialState;\n        });\n    },\n});\n\nexport const {\n    attachPaperToShipment,\n    attachPaperToShipmentBegin,\n    attachPaperToShipmentSuccess,\n    attachPaperToShipmentError,\n    attachPaperToTour,\n    attachPaperToTourBegin,\n    attachPaperToTourSuccess,\n    attachPaperToTourError,\n    deleteAttachedPaper,\n    deleteAttachedPaperBegin,\n    deleteAttachedPaperSuccess,\n    deleteAttachedPaperError,\n    resetPapersEdit,\n} = papersEditSlice.actions;\n\nexport default papersEditSlice.reducer;\n","import {\n    CarriersUtilizationActionT,\n    CarriersUtilizationStateT,\n    FETCH_UTILIZATION_REQUEST_BEGIN,\n    FETCH_UTILIZATION_REQUEST_ERROR,\n    FETCH_UTILIZATION_REQUEST_SUCCESS,\n    RESET,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { getHash } from './utils';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: CarriersUtilizationStateT = {\n    fetchRequest: requestStatus.initial,\n    byHash: {},\n};\n\nexport default (\n    state = initialState,\n    action: CarriersUtilizationActionT | DestroySessionActionT,\n): CarriersUtilizationStateT => {\n    switch (action.type) {\n        case FETCH_UTILIZATION_REQUEST_BEGIN: {\n            return {\n                ...state,\n                fetchRequest: requestStatus.loading,\n            };\n        }\n\n        case FETCH_UTILIZATION_REQUEST_SUCCESS: {\n            const { ids, date, utilizations } = action;\n\n            const byHash = utilizations.reduce<CarriersUtilizationStateT['byHash']>((acc, utilization, index) => {\n                const id = ids[index];\n                const hash = getHash(id, date);\n\n                acc[hash] = utilization;\n\n                return acc;\n            }, {});\n\n            return {\n                ...state,\n                byHash: {\n                    ...state.byHash,\n                    ...byHash,\n                },\n                fetchRequest: requestStatus.ok,\n            };\n        }\n\n        case FETCH_UTILIZATION_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                fetchRequest: requestStatus.setError(error),\n            };\n        }\n\n        case DESTROY_SESSION:\n        case RESET: {\n            return {\n                ...initialState,\n            };\n        }\n\n        default:\n            return state;\n    }\n};\n","import React from 'react';\nimport { ScrollBarWidthContextT } from 'common/utils/hooks/useScrollBarWidth';\nimport { ScrollTopContextT } from 'common/utils/hooks/useScrollTop';\nimport { SideBarFooterHeightContextT } from 'common/utils/hooks/useSideBarFooterHeight';\nimport { SideBarHeaderHeightContextT } from 'common/utils/hooks/useSideBarHeaderHeight';\n\nexport type SideBarLayoutContextT = {\n    scrollBarWidth: ScrollBarWidthContextT | null;\n    scrollTop?: ScrollTopContextT | null;\n    headerHeight?: SideBarHeaderHeightContextT | null;\n    footerHeight?: SideBarFooterHeightContextT | null;\n};\n\nconst SideBarLayoutContext = React.createContext<SideBarLayoutContextT>({\n    scrollBarWidth: null,\n    scrollTop: null,\n    headerHeight: null,\n    footerHeight: null,\n});\n\nexport default SideBarLayoutContext;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { simpleStringFormatter } from 'common/utils/form-formatters';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from 'common/layouts/TrailersPageLayout/query-models';\nimport { getStartDayFromDateZero, getEndDayFromDateZero, getDateFromDate } from 'common/utils/time';\n\nconst getQueryFilters = (values: FormValuesT): QueryFiltersT => {\n    const queryFilters: QueryFiltersT = {\n        [QueryFiltersKeysEnum.dictTrailerTypeId]: values[FieldsEnum.dictTrailerTypeId].length\n            ? values[FieldsEnum.dictTrailerTypeId]\n            : undefined,\n        [QueryFiltersKeysEnum.contractId]: values[FieldsEnum.contractId].length\n            ? values[FieldsEnum.contractId]\n            : undefined,\n        [QueryFiltersKeysEnum.contractName]: values[FieldsEnum.contractName].length\n            ? values[FieldsEnum.contractName]\n            : undefined,\n        [QueryFiltersKeysEnum.country]: values[FieldsEnum.country].length ? values[FieldsEnum.country] : undefined,\n        [QueryFiltersKeysEnum.status]: values[FieldsEnum.status].length ? values[FieldsEnum.status] : undefined,\n        [QueryFiltersKeysEnum.createdByUserName]: values[FieldsEnum.createdByUserName].length\n            ? values[FieldsEnum.createdByUserName]\n            : undefined,\n        [QueryFiltersKeysEnum.createdByUserId]: values[FieldsEnum.createdByUserId].length\n            ? values[FieldsEnum.createdByUserId]\n            : undefined,\n        [QueryFiltersKeysEnum.lastModifyByUserId]: values[FieldsEnum.lastModifyByUserId].length\n            ? values[FieldsEnum.lastModifyByUserId]\n            : undefined,\n        [QueryFiltersKeysEnum.lastModifyByUserName]: values[FieldsEnum.lastModifyByUserName].length\n            ? values[FieldsEnum.lastModifyByUserName]\n            : undefined,\n        [QueryFiltersKeysEnum.plateNumber]: simpleStringFormatter(values[FieldsEnum.plateNumber]) || undefined,\n    };\n\n    const createDates = values[FieldsEnum.createDates];\n    if (createDates?.from) {\n        queryFilters[QueryFiltersKeysEnum.createdDateFrom] = getStartDayFromDateZero(getDateFromDate(createDates.from));\n    }\n    if (createDates?.to) {\n        queryFilters[QueryFiltersKeysEnum.createdDateTo] = getEndDayFromDateZero(getDateFromDate(createDates.to));\n    }\n\n    const lastModifyDates = values[FieldsEnum.lastModifyDates];\n    if (lastModifyDates?.from) {\n        queryFilters[QueryFiltersKeysEnum.lastModifyDateFrom] = getStartDayFromDateZero(\n            getDateFromDate(lastModifyDates.from),\n        );\n    }\n    if (lastModifyDates?.to) {\n        queryFilters[QueryFiltersKeysEnum.lastModifyDateTo] = getEndDayFromDateZero(\n            getDateFromDate(lastModifyDates.to),\n        );\n    }\n\n    const lastTelematicUpdateDates = values[FieldsEnum.lastTelematicUpdateDates];\n    if (lastTelematicUpdateDates?.from) {\n        queryFilters[QueryFiltersKeysEnum.lastTelematicUpdateDateFrom] = getStartDayFromDateZero(\n            getDateFromDate(lastTelematicUpdateDates.from),\n        );\n    }\n    if (lastTelematicUpdateDates?.to) {\n        queryFilters[QueryFiltersKeysEnum.lastTelematicUpdateDateTo] = getEndDayFromDateZero(\n            getDateFromDate(lastTelematicUpdateDates.to),\n        );\n    }\n\n    return queryFilters;\n};\n\nexport default getQueryFilters;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './FlagCell.scss';\n\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport DoneIcon from 'common/icons/DoneIcon';\n\ntype PropsT = {\n    className?: string;\n    isShowFlag: boolean | null | undefined;\n    fillColor?: StyleGuideColorsEnum;\n};\n\nconst cx = classNames.bind(styles);\n\nconst FlagCell: React.FC<PropsT> = React.memo((props) => {\n    const { isShowFlag, fillColor, className } = props;\n\n    return (\n        <div className={cs(cx('flag'), className)}>\n            {isShowFlag ? (\n                <DoneIcon fillColor={fillColor || StyleGuideColorsEnum.brandAccent} size={DEFAULT_ICON_SIZE} />\n            ) : null}\n        </div>\n    );\n});\n\nexport default FlagCell;\n","import * as React from 'react';\nimport { UnitTypeEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\n\nexport type OverloadingTrailerValidationResultT = {\n    unitType: UnitTypeEnum;\n    pointAIndex: number;\n    pointBIndex: number;\n};\n\ntype PropsT = {\n    validationResult: OverloadingTrailerValidationResultT | null;\n};\n\nconst OverloadingTrailerValidationAlertContent: React.FC<PropsT> = React.memo((props) => {\n    const { validationResult } = props;\n\n    const { t } = useTranslation();\n\n    if (!validationResult) {\n        return null;\n    }\n\n    const { pointAIndex, pointBIndex } = validationResult;\n\n    let messageNode: React.ReactNode = null;\n\n    if (\n        validationResult?.unitType === UnitTypeEnum.eur1Pallets ||\n        validationResult?.unitType === UnitTypeEnum.eur2Pallets ||\n        validationResult?.unitType === UnitTypeEnum.eur6Pallets\n    ) {\n        messageNode = t('common:new-order-details.validate-messages.overloading-units', {\n            pointA: pointAIndex + 1,\n            pointB: pointBIndex + 1,\n        });\n    }\n\n    if (validationResult?.unitType === UnitTypeEnum.kilogramsAbbreviation) {\n        messageNode = t('common:new-order-details.validate-messages.overloading-weight', {\n            pointA: pointAIndex + 1,\n            pointB: pointBIndex + 1,\n        });\n    }\n\n    return <span>{messageNode}</span>;\n});\n\nexport default OverloadingTrailerValidationAlertContent;\n","import { SettingsT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport const FETCH_SETTINGS = 'common/settings/FETCH_SETTINGS';\nexport const FETCH_SETTINGS_BEGIN = 'common/settings/FETCH_SETTINGS_BEGIN';\nexport const FETCH_SETTINGS_SUCCESS = 'common/settings/FETCH_SETTINGS_SUCCESS';\nexport const FETCH_SETTINGS_ERROR = 'common/settings/FETCH_SETTINGS_ERROR';\n\nexport type FetchSettingsActionT = {\n    type: typeof FETCH_SETTINGS;\n    options?: FetchOptionsT;\n};\n\nexport type FetchSettingsBeginActionT = {\n    type: typeof FETCH_SETTINGS_BEGIN;\n};\n\nexport type FetchSettingsSuccessActionT = {\n    type: typeof FETCH_SETTINGS_SUCCESS;\n    settings: SettingsT;\n};\n\nexport type FetchSettingsErrorActionT = {\n    type: typeof FETCH_SETTINGS_ERROR;\n    error: Error;\n};\n\nexport type SettingsActionT =\n    | FetchSettingsActionT\n    | FetchSettingsBeginActionT\n    | FetchSettingsSuccessActionT\n    | FetchSettingsErrorActionT;\n\nexport type SettingsStateT = {\n    fetchRequest: RequestStatusT;\n    data: SettingsT;\n};\n","import { ContextRouteStopFakeIdT, DeadheadPreviewContextResponseT } from '../models';\n\nexport const getOrderStopFakeIds = (\n    previewContextAfterModify: DeadheadPreviewContextResponseT | null,\n): Array<ContextRouteStopFakeIdT> => {\n    return previewContextAfterModify?.stops?.map((stop) => stop.fakeId) || [];\n};\n","import { UserStatusEnum, ApiUserStatusT } from 'common/utils/api/models';\n\nexport const checkIsDriverPendingStatus = (status: ApiUserStatusT | null): boolean => {\n    if (!status) {\n        return false;\n    }\n\n    return status === UserStatusEnum.pending;\n};\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { SpotRequestStatStatusEnum, ApiSpotRequestStatusT } from 'broker-admin/utils/api/spot-broker-tranziit/models';\n\ntype PropsT = {\n    className?: string;\n    status: ApiSpotRequestStatusT | null | undefined;\n};\n\nexport const SPOT_REQUEST_STATUS_T_MAP: Record<ApiSpotRequestStatusT, string> = {\n    [SpotRequestStatStatusEnum.open]: 'common:spot-request-status.OPEN',\n    [SpotRequestStatStatusEnum.expired]: 'common:spot-request-status.EXPIRED',\n    [SpotRequestStatStatusEnum.accepted]: 'common:spot-request-status.ACCEPTED',\n    [SpotRequestStatStatusEnum.assigned]: 'common:spot-request-status.ASSIGNED',\n    [SpotRequestStatStatusEnum.canceled]: 'common:spot-request-status.CANCELED',\n};\n\nconst SpotRequestStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return null;\n    }\n\n    return t(SPOT_REQUEST_STATUS_T_MAP[status]);\n});\n\nexport default SpotRequestStatus;\n","import { CompanyContactDetailsT, CompanyContactT, InviteUserRequestT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nimport { ApiCompanyContactRequestT, ApiNewUserRoleT } from 'common/utils/api/models';\n\nexport const FETCH_CONTACTS_REQUEST = 'common/company-members/FETCH_CONTACTS_REQUEST';\nexport const FETCH_CONTACTS_REQUEST_BEGIN = 'common/company-members/FETCH_CONTACTS_REQUEST_BEGIN';\nexport const FETCH_CONTACTS_REQUEST_SUCCESS = 'common/company-members/FETCH_CONTACTS_REQUEST_SUCCESS';\nexport const FETCH_CONTACTS_REQUEST_ERROR = 'common/company-members/FETCH_CONTACTS_REQUEST_ERROR';\n\nexport const FETCH_CONTACT_DETAILS_BY_USER_ID = 'common/company-members/FETCH_CONTACT_DETAILS_BY_USER_ID';\nexport const FETCH_CONTACT_DETAILS_REQUEST = 'common/company-members/FETCH_CONTACT_DETAILS_REQUEST';\nexport const FETCH_CONTACT_DETAILS_REQUEST_BEGIN = 'common/company-members/FETCH_CONTACT_DETAILS_REQUEST_BEGIN';\nexport const FETCH_CONTACT_DETAILS_REQUEST_SUCCESS = 'common/company-members/FETCH_CONTACT_DETAILS_REQUEST_SUCCESS';\nexport const FETCH_CONTACT_DETAILS_REQUEST_ERROR = 'common/company-members/FETCH_CONTACT_DETAILS_REQUEST_ERROR';\n\nexport const ADD_CONTACT_REQUEST = 'common/company-members/ADD_CONTACT_REQUEST';\nexport const INVITE_USER_REQUEST = 'common/company-members/INVITE_USER_REQUEST';\nexport const ADD_MEMBER_REQUEST_BEGIN = 'common/company-members/ADD_MEMBER_REQUEST_BEGIN';\nexport const ADD_MEMBER_REQUEST_SUCCESS = 'common/company-members/ADD_MEMBER_REQUEST_SUCCESS';\nexport const ADD_MEMBER_REQUEST_ERROR = 'common/company-members/ADD_MEMBER_REQUEST_ERROR';\n\nexport const DELETE_USER = 'common/company-members/DELETE_USER';\nexport const DELETE_CONTACT = 'common/company-members/DELETE_CONTACT';\nexport const DELETE_MEMBER_REQUEST_BEGIN = 'common/company-members/DELETE_MEMBER_REQUEST_BEGIN';\nexport const DELETE_MEMBER_REQUEST_SUCCESS = 'common/company-members/DELETE_MEMBER_REQUEST_SUCCESS';\nexport const DELETE_MEMBER_REQUEST_ERROR = 'common/company-members/DELETE_MEMBER_REQUEST_ERROR';\n\nexport const RESTORE_USER = 'common/company-members/RESTORE_USER';\nexport const CANCEL_INVITE = 'common/company-members/CANCEL_INVITE';\nexport const CHANGE_USER_ROLE = 'common/company-members/CHANGE_USER_ROLE';\nexport const UPDATE_CONTACT = 'common/company-members/UPDATE_CONTACT';\nexport const UPDATE_MEMBER_REQUEST_BEGIN = 'common/company-members/UPDATE_MEMBER_REQUEST_BEGIN';\nexport const UPDATE_MEMBER_REQUEST_SUCCESS = 'common/company-members/UPDATE_MEMBER_REQUEST_SUCCESS';\nexport const UPDATE_MEMBER_REQUEST_ERROR = 'common/company-members/UPDATE_MEMBER_REQUEST_ERROR';\n\nexport type FetchContactsActionT = {\n    type: typeof FETCH_CONTACTS_REQUEST;\n    companyId: CompanyIdT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchContactsBeginActionT = {\n    type: typeof FETCH_CONTACTS_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type FetchContactsSuccessActionT = {\n    type: typeof FETCH_CONTACTS_REQUEST_SUCCESS;\n    companyContacts: CompanyContactT[];\n    companyId: CompanyIdT;\n};\n\nexport type FetchContactsErrorActionT = {\n    type: typeof FETCH_CONTACTS_REQUEST_ERROR;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type AddContactActionT = {\n    type: typeof ADD_CONTACT_REQUEST;\n    newContact: ApiCompanyContactRequestT;\n    companyId: CompanyIdT;\n};\n\nexport type InviteUserActionT = {\n    type: typeof INVITE_USER_REQUEST;\n    newUser: InviteUserRequestT;\n    companyId: CompanyIdT;\n};\n\nexport type AddMemberBeginActionT = {\n    type: typeof ADD_MEMBER_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type AddMemberSuccessActionT = {\n    type: typeof ADD_MEMBER_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n};\n\nexport type AddMemberErrorActionT = {\n    type: typeof ADD_MEMBER_REQUEST_ERROR;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type DeleteContactActionT = {\n    type: typeof DELETE_CONTACT;\n    contactId: ContactIdT;\n    companyId: CompanyIdT;\n};\n\nexport type DeleteUserActionT = {\n    type: typeof DELETE_USER;\n    userId: UserIdT;\n    companyId: CompanyIdT;\n};\n\nexport type CancelUserActionT = {\n    type: typeof CANCEL_INVITE;\n    userId: UserIdT;\n    companyId: CompanyIdT;\n};\n\nexport type RestoreUserActionT = {\n    type: typeof RESTORE_USER;\n    userId: UserIdT;\n    companyId: CompanyIdT;\n};\n\nexport type DeleteMemberBeginActionT = {\n    type: typeof DELETE_MEMBER_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type DeleteMemberSuccessActionT = {\n    type: typeof DELETE_MEMBER_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n};\n\nexport type DeleteMemberErrorActionT = {\n    type: typeof DELETE_MEMBER_REQUEST_ERROR;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type ChangeUserRoleActionT = {\n    type: typeof CHANGE_USER_ROLE;\n    userId: UserIdT;\n    companyId: CompanyIdT;\n    roles: ApiNewUserRoleT[];\n};\n\nexport type UpdateContactActionT = {\n    type: typeof UPDATE_CONTACT;\n    contactId: ContactIdT;\n    contactChanges: ApiCompanyContactRequestT;\n    companyId: CompanyIdT;\n};\n\nexport type UpdateMemberBeginActionT = {\n    type: typeof UPDATE_MEMBER_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type UpdateMemberSuccessActionT = {\n    type: typeof UPDATE_MEMBER_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n};\n\nexport type UpdateMemberErrorActionT = {\n    type: typeof UPDATE_MEMBER_REQUEST_ERROR;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type FetchContactDetailsActionT = {\n    type: typeof FETCH_CONTACT_DETAILS_REQUEST;\n    contactId: ContactIdT;\n};\n\nexport type FetchContactDetailsBeginActionT = {\n    type: typeof FETCH_CONTACT_DETAILS_REQUEST_BEGIN;\n};\n\nexport type FetchContactDetailsSuccessActionT = {\n    type: typeof FETCH_CONTACT_DETAILS_REQUEST_SUCCESS;\n    contactId: ContactIdT;\n    details: CompanyContactDetailsT | null;\n};\n\nexport type FetchContactDetailsErrorActionT = {\n    type: typeof FETCH_CONTACT_DETAILS_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type FetchContactDetailsByUserIdActionT = {\n    type: typeof FETCH_CONTACT_DETAILS_BY_USER_ID;\n    userId: UserIdT;\n};\n\nexport type MembersActionT =\n    | FetchContactsActionT\n    | FetchContactsBeginActionT\n    | FetchContactsSuccessActionT\n    | FetchContactsErrorActionT\n    | AddContactActionT\n    | InviteUserActionT\n    | AddMemberBeginActionT\n    | AddMemberSuccessActionT\n    | AddMemberErrorActionT\n    | DeleteContactActionT\n    | DeleteMemberBeginActionT\n    | DeleteMemberSuccessActionT\n    | DeleteMemberErrorActionT\n    | ChangeUserRoleActionT\n    | UpdateContactActionT\n    | UpdateMemberBeginActionT\n    | UpdateMemberSuccessActionT\n    | UpdateMemberErrorActionT\n    | FetchContactDetailsActionT\n    | FetchContactDetailsBeginActionT\n    | FetchContactDetailsSuccessActionT\n    | FetchContactDetailsErrorActionT\n    | FetchContactDetailsByUserIdActionT;\n\nexport type ContactDetailsByIdT = Record<ContactIdT, CompanyContactDetailsT | null>;\n\nexport type CompanyMembersStateT = {\n    contactIds: ContactIdT[] | null;\n    constantById: Record<ContactIdT, CompanyContactT>;\n    fetchContactsRequest: RequestStatusT;\n    addMemberRequest: RequestStatusT;\n    deleteMemberRequest: RequestStatusT;\n    updateMemberRequest: RequestStatusT;\n};\n\nexport type MembersStateT = {\n    byCompanyId: Record<CompanyIdT, CompanyMembersStateT>;\n    fetchContactDetailsRequest: RequestStatusT;\n    contactDetailsById: ContactDetailsByIdT;\n    contactIdByUserId: Record<UserIdT, ContactIdT>;\n};\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './EditStopContactForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport { useFormik } from 'formik';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport Input from 'common/components/Input/Input';\nimport PhoneNumberInput from 'common/components/PhoneNumberInput/PhoneNumberInput';\nimport { prepareQuery } from './prepare-query';\nimport { ApiBrokerOrderWaypointT } from 'common/utils/api/models';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { UpdateStopContactRequestT } from 'broker-admin/store/broker-order-edit/types';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    waypoint: ApiBrokerOrderWaypointT | null;\n    requestStatus: RequestStatusT;\n    onSave: (stopId: string, data: UpdateStopContactRequestT) => void;\n    onCancel: () => void;\n};\n\nconst EditStopContactForm: React.FC<PropsT> = (props) => {\n    const { onCancel, waypoint, requestStatus, onSave } = props;\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const contact = waypoint?.contact;\n        const values: FormValuesT = {\n            [FieldsEnum.companyName]: contact?.companyName || '',\n            [FieldsEnum.fullName]: contact?.fullName || '',\n            [FieldsEnum.email]: contact?.email || '',\n            [FieldsEnum.phoneNumber]: contact?.phone || '',\n            [FieldsEnum.comments]: contact?.comment || '',\n        };\n\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [waypoint]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            if (!waypoint?.id) {\n                return;\n            }\n\n            onSave(waypoint.id, prepareQuery(values));\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    return (\n        <div className={cx('wrap')}>\n            <form onSubmit={formik.handleSubmit}>\n                <div className={cx('form')}>\n                    <FieldGroup>\n                        <FormikField\n                            className={cx('field', 'field--half')}\n                            name={FieldsEnum.companyName}\n                            error={formik.errors[FieldsEnum.companyName]}\n                            meta={formik.getFieldMeta(FieldsEnum.companyName)}\n                            label={t('broker-order-details.edit-stop-contact.fields.company-name.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(fieldProps) => (\n                                <Input\n                                    name={FieldsEnum.companyName}\n                                    value={formik.values[FieldsEnum.companyName]}\n                                    placeholder={t(\n                                        'broker-order-details.edit-stop-contact.fields.company-name.placeholder',\n                                    )}\n                                    onChange={fieldProps.onChange}\n                                    onBlur={fieldProps.onBlur}\n                                    onFocus={fieldProps.onFocus}\n                                    hasError={fieldProps.hasError}\n                                    hasWarning={fieldProps.hasWarning}\n                                />\n                            )}\n                        </FormikField>\n                        <FormikField\n                            className={cx('field', 'field--half')}\n                            name={FieldsEnum.fullName}\n                            error={formik.errors[FieldsEnum.fullName]}\n                            meta={formik.getFieldMeta(FieldsEnum.fullName)}\n                            label={t('broker-order-details.edit-stop-contact.fields.full-name.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(fieldProps) => (\n                                <Input\n                                    name={FieldsEnum.fullName}\n                                    value={formik.values[FieldsEnum.fullName]}\n                                    placeholder={t(\n                                        'broker-order-details.edit-stop-contact.fields.full-name.placeholder',\n                                    )}\n                                    onChange={fieldProps.onChange}\n                                    onBlur={fieldProps.onBlur}\n                                    onFocus={fieldProps.onFocus}\n                                    hasError={fieldProps.hasError}\n                                    hasWarning={fieldProps.hasWarning}\n                                />\n                            )}\n                        </FormikField>\n                    </FieldGroup>\n                    <FieldGroup>\n                        <FormikField\n                            className={cx('field', 'field--half')}\n                            name={FieldsEnum.phoneNumber}\n                            error={formik.errors[FieldsEnum.phoneNumber]}\n                            meta={formik.getFieldMeta(FieldsEnum.phoneNumber)}\n                            label={t('broker-order-details.edit-stop-contact.fields.phone-number.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(fieldProps) => (\n                                <PhoneNumberInput\n                                    name={FieldsEnum.phoneNumber}\n                                    value={formik.values[FieldsEnum.phoneNumber]}\n                                    onChange={fieldProps.onChange}\n                                    onBlur={fieldProps.onBlur}\n                                    onFocus={fieldProps.onFocus}\n                                    hasError={fieldProps.hasError}\n                                    hasWarning={fieldProps.hasWarning}\n                                />\n                            )}\n                        </FormikField>\n                        <FormikField\n                            className={cx('field', 'field--half')}\n                            name={FieldsEnum.email}\n                            error={formik.errors[FieldsEnum.email]}\n                            meta={formik.getFieldMeta(FieldsEnum.email)}\n                            label={t('broker-order-details.edit-stop-contact.fields.email.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(fieldProps) => (\n                                <Input\n                                    name={FieldsEnum.email}\n                                    value={formik.values[FieldsEnum.email]}\n                                    placeholder={t('broker-order-details.edit-stop-contact.fields.email.placeholder')}\n                                    onChange={fieldProps.onChange}\n                                    onBlur={fieldProps.onBlur}\n                                    onFocus={fieldProps.onFocus}\n                                    hasError={fieldProps.hasError}\n                                    hasWarning={fieldProps.hasWarning}\n                                />\n                            )}\n                        </FormikField>\n                    </FieldGroup>\n                    <FormikField\n                        name={FieldsEnum.comments}\n                        error={formik.errors[FieldsEnum.comments]}\n                        meta={formik.getFieldMeta(FieldsEnum.comments)}\n                        label={t('broker-order-details.edit-stop-contact.fields.comments.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(fieldProps) => (\n                            <Input\n                                name={FieldsEnum.comments}\n                                value={formik.values[FieldsEnum.comments]}\n                                placeholder={t('broker-order-details.edit-stop-contact.fields.comments.placeholder')}\n                                onChange={fieldProps.onChange}\n                                onBlur={fieldProps.onBlur}\n                                onFocus={fieldProps.onFocus}\n                                hasError={fieldProps.hasError}\n                                hasWarning={fieldProps.hasWarning}\n                            />\n                        )}\n                    </FormikField>\n                </div>\n                <div className={cx('actions')}>\n                    <Button\n                        theme={ButtonThemeEnum.secondary}\n                        className={cx('action', 'action--cancel')}\n                        onClick={onCancel}\n                    >\n                        {t('common:form-actions.cancel')}\n                    </Button>\n                    <Button\n                        theme={ButtonThemeEnum.primary}\n                        isDisabled={requestStatus.loading}\n                        className={cx('action', 'action--save')}\n                        isLoading={requestStatus.loading}\n                        type=\"submit\"\n                    >\n                        {t('common:form-actions.save')}\n                    </Button>\n                </div>\n            </form>\n        </div>\n    );\n};\n\nexport default EditStopContactForm;\n","import { SharableStateT } from '../models';\nimport { NotificationsStateT } from 'common/store/notifications/types';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { createSelector } from 'reselect';\nimport { AnyNotificationT } from 'common/store/notifications/models';\n\nexport const selectUnReadNotificationsCount = (state: SharableStateT): number => {\n    return state.notifications.unreadNotifications.ids.length;\n};\n\nexport const selectUnReadNotificationsState = (state: SharableStateT): NotificationsStateT['unreadNotifications'] => {\n    return state.notifications.unreadNotifications;\n};\n\nexport const selectRelatedIdsSet = createSelector(\n    selectUnReadNotificationsState,\n    (unreadNotifications): Set<string> => {\n        const updatedOrderIdsSet = new Set<string>();\n\n        unreadNotifications.ids.forEach((id) => {\n            if (!id) {\n                return;\n            }\n\n            unreadNotifications.byId[id].relatedIds.forEach((id) => {\n                updatedOrderIdsSet.add(id);\n            });\n        });\n\n        return updatedOrderIdsSet;\n    },\n);\n\nexport const selectUnReadNotificationsRequest = (state: SharableStateT): RequestStatusT => {\n    return state.notifications.unreadNotifications.fetchRequest;\n};\n\nexport const selectLastUnReadNotification = createSelector(\n    selectUnReadNotificationsState,\n    (unreadNotifications): AnyNotificationT | null => {\n        const { ids, byId } = unreadNotifications;\n\n        let lastNotification: AnyNotificationT | null = null;\n\n        ids?.forEach((id) => {\n            const notification = byId[id] || null;\n            if (!notification) {\n                return;\n            }\n\n            if (!lastNotification || notification.timestamp > lastNotification.timestamp) {\n                lastNotification = notification;\n            }\n        });\n\n        return lastNotification || null;\n    },\n);\n\nexport const selectCurrentPageNumber = (state: SharableStateT): number => {\n    return state.notifications.currentPageNumber;\n};\n\nexport const selectNotificationsQuery = (state: SharableStateT): NotificationsStateT['query'] => {\n    return state.notifications.query;\n};\n\nexport const selectNotificationsById = (state: SharableStateT): NotificationsStateT['byId'] => {\n    return state.notifications.byId;\n};\n\nexport const selectNotificationsPages = (state: SharableStateT): NotificationsStateT['pages'] => {\n    return state.notifications.pages;\n};\n\nexport const selectNotificationsTotal = (state: SharableStateT): NotificationsStateT['total'] => {\n    return state.notifications.total;\n};\n\nexport const selectMarkAsReadRequest = (state: SharableStateT): NotificationsStateT['markAsReadRequest'] => {\n    return state.notifications.markAsReadRequest;\n};\n","import { TFunction } from 'i18next';\nimport { FieldsEnum, FormErrorsT, FormValuesT, MIN_VALID_FROM_VALID_TILL_DAYS } from './constants';\nimport { checkMaxLength, checkNotEmpty } from 'common/utils/form-validators';\nimport { getDayDiff } from 'common/utils/time';\n\nconst REQUIRED_FIELDS = [FieldsEnum.name, FieldsEnum.activateDate, FieldsEnum.validTillDate, FieldsEnum.file];\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n        ...checkMaxLength(t, [FieldsEnum.name, FieldsEnum.number], values, 250),\n    };\n\n    const activateDate = values[FieldsEnum.activateDate];\n    const validTillDate = values[FieldsEnum.validTillDate];\n\n    if (activateDate && validTillDate && getDayDiff(activateDate, validTillDate) < MIN_VALID_FROM_VALID_TILL_DAYS) {\n        errors[FieldsEnum.validTillDate] = t(\n            'common:shipper-contract-details.editing-form.errors.valid-till-inteval-valid-from',\n            {\n                count: MIN_VALID_FROM_VALID_TILL_DAYS,\n            },\n        );\n    }\n\n    if (activateDate && validTillDate && activateDate >= validTillDate) {\n        errors[FieldsEnum.validTillDate] = t(\n            'common:shipper-contract-details.editing-form.errors.valid-till-earlier-valid-from',\n        );\n    }\n\n    return errors;\n};\n\nexport default validate;\n","import { useState } from 'react';\nimport { StepContextT } from '../contexts/steps-context';\n\nexport const useStepsContextValue = (): StepContextT => {\n    const [hasSelectedContact, setHasSelectedContract] = useState<boolean>(false);\n\n    return {\n        hasSelectedContact,\n        setHasSelectedContract,\n    };\n};\n","import { QueryFiltersT } from '../query-models';\nimport { FieldsEnum, FormValuesT } from './constants';\n\nconst getInitialValues = (\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    queryFilters: QueryFiltersT,\n): FormValuesT => {\n    const values: FormValuesT = {\n        [FieldsEnum.dictTrailerId]: null,\n\n        [FieldsEnum.address]: null,\n\n        [FieldsEnum.validFromDates]: null,\n        [FieldsEnum.validTillDates]: null,\n\n        [FieldsEnum.createdDates]: null,\n\n        [FieldsEnum.createdById]: null,\n        [FieldsEnum.createdByName]: null,\n    };\n\n    return values;\n};\n\nexport default getInitialValues;\n","import { CompanyTrailersStateT } from './types';\nimport { SharableStateT } from '../models';\nimport { initialCompanyTrailersState } from './reducer';\n\nconst EMPTY_QUERY = {};\n\nconst selectCompanyState = (state: SharableStateT, companyId: CompanyIdT | null): CompanyTrailersStateT => {\n    if (!companyId) {\n        return initialCompanyTrailersState;\n    }\n\n    return state.trailers[companyId] || initialCompanyTrailersState;\n};\n\nexport const selectTrailersPages =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrailersStateT['pages'] =>\n        selectCompanyState(state, companyId).pages;\n\nexport const selectTrailersQuery =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrailersStateT['query'] =>\n        selectCompanyState(state, companyId).query || EMPTY_QUERY;\n\nexport const selectTrailersTotal =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrailersStateT['total'] =>\n        selectCompanyState(state, companyId).total;\n\nexport const selectTrailersByIds =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrailersStateT['byId'] =>\n        selectCompanyState(state, companyId).byId;\n\nexport const selectAddTrailerRequestStatus =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrailersStateT['addRequest'] =>\n        selectCompanyState(state, companyId).addRequest;\n\nexport const selectDeleteTrailersRequestStatus =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrailersStateT['deleteRequest'] =>\n        selectCompanyState(state, companyId).deleteRequest;\n\nexport const selectFetchTrailerDetailsRequestStatus =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrailersStateT['fetchDetailsRequest'] =>\n        selectCompanyState(state, companyId).fetchDetailsRequest;\n\nexport const selectUpdateTrailersRequestStatus =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrailersStateT['updateRequest'] =>\n        selectCompanyState(state, companyId).updateRequest;\n\nexport const selectTrailersDetailsByIds =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrailersStateT['detailsById'] =>\n        selectCompanyState(state, companyId).detailsById;\n\nexport const selectFetchTrailersStatsRequestStatus =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrailersStateT['fetchStatsRequest'] =>\n        selectCompanyState(state, companyId).fetchStatsRequest;\n\nexport const selectTrailersStats =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrailersStateT['stats'] =>\n        selectCompanyState(state, companyId).stats;\n\nexport const selectTrailersExportXLSRequest =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrailersStateT['exportXLSRequest'] =>\n        selectCompanyState(state, companyId).exportXLSRequest;\n\nexport const selectTrailersImportXLSRequest =\n    (companyId: CompanyIdT | null) =>\n    (state: SharableStateT): CompanyTrailersStateT['importXLSRequest'] =>\n        selectCompanyState(state, companyId).importXLSRequest;\n","import { PartnerTypeEnum } from 'common/utils/api/models';\nimport { PartnerDetailsT } from '../models';\nimport { checkNeedShowBillingInfo } from './check-need-show-billing-info';\n\nexport const checkIsAllowedLock = (partnerType: PartnerTypeEnum | null) => {\n    return partnerType === PartnerTypeEnum.shipper || partnerType === PartnerTypeEnum.carrier;\n};\n\nexport enum BlockLockingReasonEnum {\n    NOT_VERIFIED_LEGAL_ADDRESS = 'NOT_VERIFIED_LEGAL_ADDRESS',\n    NOT_VERIFIED_BILLING_ADDRESS = 'NOT_VERIFIED_BILLING_ADDRESS',\n}\n\nexport type BlockLockingReasonT = `${BlockLockingReasonEnum}`;\n\nexport const getBlockLockingReason = (\n    partnerType: PartnerTypeEnum | null,\n    partnerDetails: PartnerDetailsT | null,\n): BlockLockingReasonT | null => {\n    if (checkNeedShowBillingInfo(partnerType)) {\n        if (!partnerDetails?.legalAddress) {\n            return BlockLockingReasonEnum.NOT_VERIFIED_LEGAL_ADDRESS;\n        }\n\n        if (!partnerDetails?.billingAddress) {\n            return BlockLockingReasonEnum.NOT_VERIFIED_BILLING_ADDRESS;\n        }\n    }\n\n    return null;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"StatusChangedCard__wrap___EWMmu\",\"message\":\"StatusChangedCard__message___K7mQ0\",\"description\":\"StatusChangedCard__description___f55jy\",\"status\":\"StatusChangedCard__status___P_S8P\",\"action\":\"StatusChangedCard__action____R7gk\",\"fadeIn\":\"StatusChangedCard__fadeIn___zTMTw\",\"blinking\":\"StatusChangedCard__blinking___STn96\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './BrokerToursListPage.scss';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectBrokerToursByIds,\n    selectBrokerToursPages,\n    selectBrokerToursTotal,\n} from 'broker-admin/store/broker-tours/selectors';\nimport {\n    QueryFiltersKeysEnum,\n    QueryKeysEnum,\n    QueryFiltersT,\n    BrokerToursQuickFilterEnum,\n    BrokerToursSortEnum,\n} from './query-models';\nimport BrokerToursTable from './BrokerToursTable/BrokerToursTable';\nimport { useTranslation } from 'react-i18next';\nimport TopBar from 'common/layouts/LeftMenuLayout/TopBar/TopBar';\nimport omit from 'lodash/omit';\nimport SortDropdown, {\n    SortDropdownOptionT,\n    SortDropdownOverlayPositionEnum,\n} from 'common/components/Table/SortDropdown/SortDropdown';\nimport Pagination from 'common/components/Table/Pagination/Pagination';\nimport TableMessage, { TableMessageIconsEnum } from 'common/components/Table/TableMessage/TableMessage';\nimport { fetchBrokerToursPage } from 'broker-admin/store/broker-tours/slice';\nimport { BrokerTourShortT } from 'broker-admin/store/broker-tours/models';\nimport {\n    createJsonParams,\n    createPageNumberParam,\n    createSortParams,\n    PageSortT,\n    SortDirectionEnum,\n} from 'common/utils/query';\nimport ScrollableContent from 'common/layouts/LeftMenuLayout/ScrollableContent/ScrollableContent';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport StickyFooter from 'common/layouts/LeftMenuLayout/StickyFooter/StickyFooter';\nimport { QuickFiltersOptionT } from 'common/components/Table/QuickFilters/QuickFilters';\nimport { colorCodingNotificationLabelTheme } from 'common/components/notifications/NotificationLabel/NotificationLabel';\nimport SearchControl from 'common/components/Table/SearchControl/SearchControl';\nimport { selectBrokerTourStats } from 'broker-admin/store/broker-tour-stats/selectors';\nimport NotificationsBarTrigger from 'common/components/notifications/NotificationsBarTrigger/NotificationsBarTrigger';\nimport TableError from 'common/components/Table/TableError/TableError';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport { prepareFetchPageQuery } from './prepare-fetch-page-query';\nimport TopBarContent from 'common/layouts/LeftMenuLayout/TopBarContent/TopBarContent';\nimport ListPageHeaderLayout from 'common/layouts/ListPage/ListPageHeaderLayout/ListPageHeaderLayout';\nimport ListPageHeaderTabsLayout from 'common/layouts/ListPage/ListPageHeaderTabsLayout/ListPageHeaderTabsLayout';\nimport ListPageLayout from 'common/layouts/ListPage/ListPageLayout/ListPageLayout';\nimport { selectGroupedNotificationCounts } from 'common/store/grouped-notification-counts/selectors';\nimport { fetchGroupedNotificationCounts } from 'common/store/grouped-notification-counts/actions';\nimport { fetchBrokerTourStats } from 'broker-admin/store/broker-tour-stats/slice';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport { useQueryParams } from 'use-query-params';\nimport { checkNeedRenderEmptyState } from 'common/components/Table/utils/check-need-render-empty-state';\nimport { checkFilters } from 'common/components/Table/utils/check-filters';\nimport QuickFiltersButtonGroups from 'common/components/Table/QuickFiltersButtonGroups/QuickFiltersButtonGroups';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport history from 'common/utils/history';\nimport { useHistoryPush } from 'common/utils/hooks/useHistoryPush';\nimport SelectedFilters from './SelectedFilters/SelectedFilters';\nimport FiltersTrigger from 'common/components/Table/FiltersTrigger/FiltersTrigger';\nimport SideBar from 'common/layouts/LeftMenuLayout/SideBar/SideBar';\nimport FiltersSidebarContent from './FiltersSidebarContent/FiltersSidebarContent';\nimport WarningsFilter from './WarningsFilter/WarningsFilter';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst BrokerToursListPage: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n    const { historyPush } = useHistoryPush();\n\n    const permissions = useSelector(selectPermissions);\n\n    const total = useSelector(selectBrokerToursTotal);\n    const brokerToursPages = useSelector(selectBrokerToursPages);\n    const brokerTourById = useSelector(selectBrokerToursByIds);\n\n    const brokerTourStat = useSelector(selectBrokerTourStats);\n    const unReadNotificationsGroupedCounts = useSelector(selectGroupedNotificationCounts);\n\n    React.useEffect(() => {\n        dispatch(fetchBrokerTourStats());\n    }, [dispatch]);\n\n    const [query, changeQuery] = useQueryParams({\n        [QueryKeysEnum.brokerToursFilters]: createJsonParams<QueryFiltersT>({}),\n        [QueryKeysEnum.brokerToursPage]: createPageNumberParam(),\n        [QueryKeysEnum.brokerToursSort]: createSortParams<BrokerToursSortEnum>({\n            value: BrokerToursSortEnum.createdDate,\n            direction: SortDirectionEnum.DESC,\n        }),\n    });\n\n    const [isShowFilters, triggerFilters] = React.useState<boolean>(false);\n    const showFilters = (): void => {\n        triggerFilters(true);\n    };\n    const hideFilters = (): void => {\n        triggerFilters(false);\n    };\n\n    const pageNumber = query[QueryKeysEnum.brokerToursPage];\n    const selectedSort = query[QueryKeysEnum.brokerToursSort];\n    const queryFilters = query[QueryKeysEnum.brokerToursFilters];\n\n    const page = brokerToursPages[pageNumber];\n    const { ids, requestStatus } = page || {};\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchBrokerToursPage({ pageNumber, query, options: { isForceUpdate: false } }));\n\n        dispatch(fetchGroupedNotificationCounts({ isForceUpdate: false }));\n    }, [pageNumber, selectedSort, queryFilters, dispatch]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchBrokerToursPage({ pageNumber, query, options: { isForceUpdate: true } }));\n    }, [pageNumber, selectedSort, queryFilters, dispatch]);\n\n    React.useEffect(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchBrokerToursPage({ pageNumber, query }));\n\n        dispatch(fetchGroupedNotificationCounts({ isForceUpdate: false }));\n\n        return (): void => {\n            // TODO reset\n        };\n    }, [page, pageNumber, selectedSort, queryFilters, dispatch]);\n\n    const brokerTours = React.useMemo(() => {\n        return (ids || []).map((id): BrokerTourShortT => brokerTourById[id]);\n    }, [ids, brokerTourById]);\n\n    const goToPage = React.useCallback(\n        (pageNumber: PageNumberT) => {\n            changeQuery({\n                [QueryKeysEnum.brokerToursPage]: pageNumber,\n            });\n        },\n        [changeQuery],\n    );\n\n    const goToBrokerTourDetails = (event: React.MouseEvent, brokerTourId: BrokerTourIdT) => {\n        const url = urlFactory.brokerTourDetails(brokerTourId);\n        historyPush(event, url);\n    };\n\n    const brokerTourQuickFilterOptions: Array<QuickFiltersOptionT<BrokerToursQuickFilterEnum>> = [\n        {\n            id: undefined,\n            showPriority: 0,\n            hidePriority: 0,\n            label: t('broker-tours.list.status-filter.all-tours'),\n            testSelector: 'all',\n        },\n        {\n            id: BrokerToursQuickFilterEnum.carrierUnassigned,\n            showPriority: 1,\n            hidePriority: 1,\n            label: t('broker-tours.list.status-filter.carrier-unassigned'),\n            testSelector: BrokerToursQuickFilterEnum.carrierUnassigned,\n            notificationProps: {\n                count: brokerTourStat?.carrierUnassign,\n                theme: colorCodingNotificationLabelTheme.attention,\n            },\n        },\n        {\n            id: BrokerToursQuickFilterEnum.assetUnassigned,\n            showPriority: 2,\n            hidePriority: 2,\n            label: t('broker-tours.list.status-filter.asset-unassigned'),\n            testSelector: BrokerToursQuickFilterEnum.assetUnassigned,\n            notificationProps: {\n                count: brokerTourStat?.assetsUnassigned,\n                theme: colorCodingNotificationLabelTheme.attention,\n            },\n        },\n        {\n            id: BrokerToursQuickFilterEnum.driverUnassigned,\n            showPriority: 3,\n            hidePriority: 3,\n            label: t('broker-tours.list.status-filter.driver-unassigned'),\n            testSelector: BrokerToursQuickFilterEnum.driverUnassigned,\n            notificationProps: {\n                count: brokerTourStat?.driverUnassigned,\n                theme: colorCodingNotificationLabelTheme.attention,\n            },\n        },\n        {\n            id: BrokerToursQuickFilterEnum.assigned,\n            showPriority: 4,\n            hidePriority: 4,\n            label: t('broker-tours.list.status-filter.assigned'),\n            testSelector: BrokerToursQuickFilterEnum.assigned,\n            notificationProps: {\n                count: brokerTourStat?.assigned,\n                theme: colorCodingNotificationLabelTheme.normal,\n            },\n        },\n        {\n            id: BrokerToursQuickFilterEnum.inTransit,\n            showPriority: 5,\n            hidePriority: 5,\n            label: t('broker-tours.list.status-filter.in-transit'),\n            testSelector: BrokerToursQuickFilterEnum.inTransit,\n            notificationProps: {\n                count: brokerTourStat?.inTransit,\n                theme: colorCodingNotificationLabelTheme.normal,\n            },\n        },\n        {\n            id: BrokerToursQuickFilterEnum.canceled,\n            showPriority: 6,\n            hidePriority: 6,\n            label: t('broker-tours.list.status-filter.canceled'),\n            testSelector: BrokerToursQuickFilterEnum.canceled,\n            notificationProps: {\n                count: unReadNotificationsGroupedCounts?.TOUR_STATUS_CHANGED?.CANCELED,\n                theme: colorCodingNotificationLabelTheme.normal,\n                isShowPlusSign: true,\n            },\n        },\n        {\n            id: BrokerToursQuickFilterEnum.finished,\n            showPriority: 7,\n            hidePriority: 7,\n            label: t('broker-tours.list.status-filter.finished'),\n            testSelector: BrokerToursQuickFilterEnum.finished,\n            notificationProps: {\n                count: unReadNotificationsGroupedCounts?.TOUR_STATUS_CHANGED?.FINISHED,\n                theme: colorCodingNotificationLabelTheme.success,\n                isShowPlusSign: true,\n            },\n        },\n    ];\n\n    const sortOptions: Array<SortDropdownOptionT<BrokerToursSortEnum>> = React.useMemo(\n        () => [\n            {\n                label: t('broker-tours.list.table.sorts.triggers.origin-date'),\n                value: BrokerToursSortEnum.originDate,\n            },\n            {\n                label: t('broker-tours.list.table.sorts.triggers.destination-date'),\n                value: BrokerToursSortEnum.destinationDate,\n            },\n            {\n                label: t('broker-tours.list.table.sorts.triggers.created-date'),\n                value: BrokerToursSortEnum.createdDate,\n            },\n        ],\n        [t],\n    );\n\n    const handleSelectSort = (sort: PageSortT<BrokerToursSortEnum>) => {\n        changeQuery({\n            [QueryKeysEnum.brokerToursPage]: 0,\n            [QueryKeysEnum.brokerToursSort]: sort,\n        });\n    };\n\n    const handleSetStatusFilter = (quickFilterId: BrokerToursQuickFilterEnum | undefined) => {\n        const prevQueryFilters = query[QueryKeysEnum.brokerToursFilters] || {};\n\n        const queryFilters: QueryFiltersT = {\n            ...prevQueryFilters,\n            [QueryFiltersKeysEnum.quickFilter]: quickFilterId,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.brokerToursPage]: 0,\n            [QueryKeysEnum.brokerToursFilters]: queryFilters,\n        });\n\n        hideFilters();\n    };\n\n    const updateQueryFilters = (queryFiltersChanges: QueryFiltersT) => {\n        const prevQueryFilters = query[QueryKeysEnum.brokerToursFilters] || {};\n\n        const queryFilters = {\n            ...prevQueryFilters,\n            ...queryFiltersChanges,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.brokerToursPage]: 0,\n            [QueryKeysEnum.brokerToursFilters]: queryFilters,\n        });\n    };\n\n    const handleSetQueryFilters = (selectedQueryFilters: QueryFiltersT) => {\n        const prevQueryFilters = query[QueryKeysEnum.brokerToursFilters] || {};\n\n        const queryFilters = {\n            [QueryFiltersKeysEnum.quickFilter]: prevQueryFilters[QueryFiltersKeysEnum.quickFilter],\n            ...selectedQueryFilters,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.brokerToursPage]: 0,\n            [QueryKeysEnum.brokerToursFilters]: queryFilters,\n        });\n\n        hideFilters();\n    };\n\n    const handleSearch = (searchText: string) => {\n        updateQueryFilters({\n            [QueryFiltersKeysEnum.searchText]: searchText || undefined,\n        });\n    };\n\n    const handleAddDeadhead = () => {\n        history.push(urlFactory.brokerTourDeadheadCreation());\n    };\n\n    const renderTableMessage = () => {\n        if (!checkNeedRenderEmptyState(brokerTours, requestStatus)) {\n            return null;\n        }\n\n        if (requestStatus?.error) {\n            return <TableError error={requestStatus?.error} onRetry={handleRefreshOnError} />;\n        }\n\n        const { hasPrimaryQueryFilters, hasSecondaryQueryFilters } = checkFilters(\n            [queryFilters[QueryFiltersKeysEnum.quickFilter]],\n            [omit(queryFilters, [QueryFiltersKeysEnum.quickFilter])],\n        );\n\n        if (requestStatus?.ok && hasSecondaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.notFound}\n                    title={t('broker-tours.list.table.messages.not-found.title')}\n                    description={t('broker-tours.list.table.messages.not-found.description')}\n                    isShowAction\n                    actionTitle={t('broker-tours.list.table.messages.not-found.action')}\n                    actionTheme={ButtonThemeEnum.secondary}\n                    onActionClick={() => handleSetQueryFilters({})}\n                    testSelector=\"empty-state-has-secondary-filters\"\n                />\n            );\n        }\n\n        if (requestStatus?.ok && hasPrimaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.empty}\n                    title={t('broker-tours.list.table.messages.empty-quick-filters.title')}\n                    testSelector=\"empty-state-has-primary-filters\"\n                    isShowAction={false}\n                />\n            );\n        }\n\n        return (\n            <TableMessage\n                iconType={TableMessageIconsEnum.empty}\n                title={t('broker-tours.list.table.messages.empty.title')}\n                testSelector=\"empty\"\n                isShowAction={false}\n            />\n        );\n    };\n\n    return (\n        <ScrollableContent>\n            <PageTitle title={t('page-titles.broker-tours')} />\n            <ContentMargins>\n                <TopBar>\n                    <TopBarContent title={t('broker-tours.list.title')} rightNode={<NotificationsBarTrigger />} />\n                </TopBar>\n                <ListPageLayout>\n                    <ListPageHeaderTabsLayout>\n                        <QuickFiltersButtonGroups\n                            options={brokerTourQuickFilterOptions}\n                            selectedId={queryFilters[QueryFiltersKeysEnum.quickFilter]}\n                            onSelect={handleSetStatusFilter}\n                            moreStatusesLabel={t('broker-tours.list.status-filter.more-statuses')}\n                        />\n                    </ListPageHeaderTabsLayout>\n                    <ListPageHeaderLayout\n                        withTopPadding\n                        leftToolsNode={\n                            <>\n                                <FiltersTrigger\n                                    title={t('broker-tours.list.filters.trigger')}\n                                    isActive={isShowFilters}\n                                    onClick={showFilters}\n                                />\n                                <WarningsFilter\n                                    stat={brokerTourStat}\n                                    queryFilters={queryFilters}\n                                    onQueryFiltersChange={updateQueryFilters}\n                                />\n                                <SortDropdown\n                                    overlayPosition={SortDropdownOverlayPositionEnum.left}\n                                    selectedValue={selectedSort}\n                                    options={sortOptions}\n                                    onSelect={handleSelectSort}\n                                />\n                                <SearchControl\n                                    placeholder={t('broker-tours.list.search-placeholder')}\n                                    searchText={queryFilters[QueryFiltersKeysEnum.searchText]}\n                                    onChangeSearchText={handleSearch}\n                                />\n                            </>\n                        }\n                        filterTagsNode={\n                            <SelectedFilters\n                                isCompact\n                                queryFilters={queryFilters}\n                                setQueryFilters={handleSetQueryFilters}\n                            />\n                        }\n                        rightToolsNode={\n                            permissions.canBrokerToursAddDeadhead ? (\n                                <Button\n                                    theme={ButtonThemeEnum.secondary}\n                                    onClick={handleAddDeadhead}\n                                    testSelector=\"add-deadhead\"\n                                >\n                                    {t('broker-tours.list.actions.add-deadhead')}\n                                </Button>\n                            ) : null\n                        }\n                    />\n                    {renderTableMessage()}\n                    <BrokerToursTable\n                        brokerTours={brokerTours}\n                        className={cx('table')}\n                        goToBrokerTourDetails={goToBrokerTourDetails}\n                        isLoading={requestStatus?.loading}\n                    />\n                </ListPageLayout>\n                <StickyFooter>\n                    <Pagination current={pageNumber} count={total?.pageCount} goToPage={goToPage} />\n                </StickyFooter>\n                <SideBar isShow={isShowFilters} onClose={hideFilters}>\n                    {(onClose) => (\n                        <FiltersSidebarContent\n                            onClose={onClose}\n                            queryFilters={queryFilters}\n                            setQueryFilters={handleSetQueryFilters}\n                        />\n                    )}\n                </SideBar>\n            </ContentMargins>\n        </ScrollableContent>\n    );\n});\n\nexport default BrokerToursListPage;\n","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { UpdateShipmentRequestT, UpdateStopContactRequestT } from './types';\nimport { ApiUpdateDockingHoursQueryT } from 'common/utils/api/models';\n\nexport type BrokerOrderEditStateT = {\n    updateById: Record<BrokerOrderIdT, RequestStatusT>;\n};\n\nconst initialState: BrokerOrderEditStateT = {\n    updateById: {},\n};\n\nexport const brokerOrderEditSlice = createSlice({\n    name: 'brokerOrderEdit',\n    initialState,\n    reducers: {\n        updateShipment: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                brokerOrderId: BrokerOrderIdT;\n                shipmentId: string;\n                data: UpdateShipmentRequestT;\n            }>,\n        ) => {\n            // nothing - handled by saga\n        },\n        updateStopContact: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                brokerOrderId: BrokerOrderIdT;\n                stopId: string;\n                data: UpdateStopContactRequestT;\n            }>,\n        ) => {\n            // nothing - handled by saga\n        },\n        updateDockingHours: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                brokerOrderId: BrokerOrderIdT;\n                query: ApiUpdateDockingHoursQueryT;\n            }>,\n        ) => {\n            // nothing - handled by saga\n        },\n        updateBrokerOrderBegin: (state, action: PayloadAction<{ brokerOrderId: BrokerOrderIdT }>) => {\n            state.updateById[action.payload.brokerOrderId] = requestStatus.loading;\n        },\n        updateBrokerOrderSuccess: (state, action: PayloadAction<{ brokerOrderId: BrokerOrderIdT }>) => {\n            state.updateById[action.payload.brokerOrderId] = requestStatus.ok;\n        },\n        updateBrokerOrderError: (state, action: PayloadAction<{ brokerOrderId: BrokerOrderIdT; error: Error }>) => {\n            const { brokerOrderId, error } = action.payload;\n            state.updateById[brokerOrderId] = requestStatus.setError(error);\n        },\n\n        resetBrokerOrderEdit: () => {\n            return initialState;\n        },\n    },\n    extraReducers: (builder) => {\n        builder.addCase('auth/destroySession', () => {\n            return initialState;\n        });\n    },\n});\n\nexport const {\n    updateShipment,\n    updateStopContact,\n    updateDockingHours,\n    updateBrokerOrderBegin,\n    updateBrokerOrderSuccess,\n    updateBrokerOrderError,\n    resetBrokerOrderEdit,\n} = brokerOrderEditSlice.actions;\n\nexport default brokerOrderEditSlice.reducer;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    FETCH_ADDITIONAL_SERVICES_REQUEST,\n    FetchAdditionalServicesActionT,\n    UPDATE_ADDITIONAL_SERVICE_REQUEST,\n    UpdateAdditionalServiceActionT,\n} from './types';\nimport {\n    fetchAdditionalServicesBegin,\n    fetchAdditionalServicesError,\n    fetchAdditionalServicesSuccess,\n    updateAdditionalServiceBegin,\n    updateAdditionalServiceError,\n    updateAdditionalServiceSuccess,\n} from './actions';\nimport { selectFetchAdditionalServicesRequest, selectUpdateAdditionalServiceRequest } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { normalizeAdditionalServicesResponse } from './utils';\n\nfunction* fetchAdditionalServicesSaga(action: FetchAdditionalServicesActionT): WrapGeneratorT<void> {\n    const { options } = action;\n\n    const requestStatus: ReturnType<typeof selectFetchAdditionalServicesRequest> = yield select(\n        selectFetchAdditionalServicesRequest,\n    );\n    if (!checkNeedRequest(requestStatus, options)) {\n        return;\n    }\n\n    yield put(fetchAdditionalServicesBegin());\n\n    const [error, response]: ReturnApiT<typeof brokerTranziitApi.fetchAdditionalServices> =\n        yield brokerTranziitApi.fetchAdditionalServices();\n\n    if (error) {\n        yield put(fetchAdditionalServicesError(error));\n        return;\n    }\n\n    const normalizedResponse = normalizeAdditionalServicesResponse(response);\n    yield put(fetchAdditionalServicesSuccess(normalizedResponse));\n}\n\nfunction* updateAdditionalServiceSaga(action: UpdateAdditionalServiceActionT): WrapGeneratorT<void> {\n    const { changes } = action;\n\n    const requestStatus: ReturnType<typeof selectUpdateAdditionalServiceRequest> = yield select(\n        selectUpdateAdditionalServiceRequest,\n    );\n    if (requestStatus.loading) {\n        return;\n    }\n\n    yield put(updateAdditionalServiceBegin());\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.updateAdditionalService> =\n        yield brokerTranziitApi.updateAdditionalService(changes);\n    if (error) {\n        yield put(updateAdditionalServiceError(error));\n        return;\n    }\n\n    yield put(updateAdditionalServiceSuccess(changes));\n}\n\nfunction* additionalServicesSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_ADDITIONAL_SERVICES_REQUEST, fetchAdditionalServicesSaga);\n    yield takeEvery(UPDATE_ADDITIONAL_SERVICE_REQUEST, updateAdditionalServiceSaga);\n}\n\nexport default additionalServicesSaga;\n","import { TFunction } from 'i18next';\nimport { FormErrorsT, FormValuesT } from './constants';\n\nconst validate = (\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    t: TFunction,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    values: FormValuesT,\n): FormErrorsT => {\n    const errors: FormErrorsT = {};\n\n    return errors;\n};\n\nexport default validate;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { ApiCountriesT } from 'common/utils/api/models';\nimport isNumber from 'lodash/isNumber';\nimport {\n    ApiEmissionClassT,\n    CalculateCostRequestQueryT,\n    CreateRequestQueryDraftT,\n} from 'common/store/shipper-contract-lane-creation/models';\nimport { getDateFromDate } from 'common/utils/time';\nimport { EmissionClassEnum } from 'common/constants';\nimport { parseSimpleNumber, parseStringFormatter } from 'common/utils/input-parsers';\n\nconst prepareLocation = (\n    value: FormValuesT[FieldsEnum.pickUpLocation] | FormValuesT[FieldsEnum.dropOffLocation],\n): CalculateCostRequestQueryT['origin'] | CalculateCostRequestQueryT['destination'] | null => {\n    if (!value) {\n        return null;\n    }\n\n    const longitude = value.point?.lng;\n    const latitude = value.point?.lat;\n\n    if (!isNumber(longitude) || !isNumber(latitude)) {\n        return null;\n    }\n\n    return {\n        countryCode: (value.addressComponents?.countryCode || '') as ApiCountriesT,\n        street1: value.addressComponents?.street1 || '',\n        street2: value.addressComponents?.street2 || '',\n        zipCode: value.addressComponents?.zipCode || '',\n        city: value.addressComponents?.city || '',\n        longitude,\n        latitude,\n    };\n};\n\nexport const EMISSION_STANDART_MAP: Record<EmissionClassEnum, ApiEmissionClassT> = {\n    [EmissionClassEnum.euro5]: 'EURO_V',\n    [EmissionClassEnum.euro6]: 'EURO_VI',\n};\n\nconst prepareApiCalculateCostRequestQuery = (values: FormValuesT): CalculateCostRequestQueryT | null => {\n    const dictTrailerId = values[FieldsEnum.trailerDictId];\n    const emissionClass = values[FieldsEnum.emissionClass];\n    const pickUpLocation = values[FieldsEnum.pickUpLocation];\n    const dropOffLocation = values[FieldsEnum.dropOffLocation];\n    const validFrom = values[FieldsEnum.validFrom];\n    const validTill = values[FieldsEnum.validTill];\n    const origin = prepareLocation(values[FieldsEnum.pickUpLocation]);\n    const destination = prepareLocation(values[FieldsEnum.dropOffLocation]);\n\n    if (\n        !dictTrailerId ||\n        !emissionClass ||\n        !pickUpLocation ||\n        !dropOffLocation ||\n        !validFrom ||\n        !validTill ||\n        !origin ||\n        !destination\n    ) {\n        return null;\n    }\n\n    return {\n        dictTrailerId: +dictTrailerId,\n        emissionClass: EMISSION_STANDART_MAP[emissionClass],\n        origin,\n        destination,\n        validFrom: getDateFromDate(validFrom),\n        validTill: getDateFromDate(validTill),\n        teamDrive: !!values[FieldsEnum.includeTeamDrive],\n        skipCommission: !values[FieldsEnum.includeServiceFee],\n        skipRules: !values[FieldsEnum.useApplyRules],\n    };\n};\n\nconst prepareApiCreateRequestQueryDraft = (values: FormValuesT): CreateRequestQueryDraftT | null => {\n    const dictTrailerId = values[FieldsEnum.trailerDictId];\n    const emissionClass = values[FieldsEnum.emissionClass];\n    const pickUpLocation = values[FieldsEnum.pickUpLocation];\n    const dropOffLocation = values[FieldsEnum.dropOffLocation];\n    const validFrom = values[FieldsEnum.validFrom];\n    const validTill = values[FieldsEnum.validTill];\n    const origin = prepareLocation(values[FieldsEnum.pickUpLocation]);\n    const destination = prepareLocation(values[FieldsEnum.dropOffLocation]);\n    const maxNumberOfOrders = parseSimpleNumber(values[FieldsEnum.ordersLimit]);\n    const originRadius = parseSimpleNumber(values[FieldsEnum.pickUpLocationRadius]);\n    const destinationRadius = parseSimpleNumber(values[FieldsEnum.dropOffLocationRadius]);\n    const maximumLayover = parseSimpleNumber(values[FieldsEnum.layoverLimit]);\n\n    if (\n        !dictTrailerId ||\n        !emissionClass ||\n        !pickUpLocation ||\n        !dropOffLocation ||\n        !validFrom ||\n        !validTill ||\n        !origin ||\n        !destination ||\n        !maxNumberOfOrders\n    ) {\n        return null;\n    }\n\n    return {\n        externalLaneId: parseStringFormatter(values[FieldsEnum.externalLaneId]),\n        dictTrailerId: +dictTrailerId,\n        emissionClass: EMISSION_STANDART_MAP[emissionClass],\n        origin,\n        destination,\n        originRadius: originRadius || 0,\n        destinationRadius: destinationRadius || 0,\n        validFrom: getDateFromDate(validFrom),\n        validTill: getDateFromDate(validTill),\n        maximumLayover: maximumLayover || 0,\n        serviceFee: !!values[FieldsEnum.includeServiceFee],\n        teamDrive: !!values[FieldsEnum.includeTeamDrive],\n        maxNumberOfOrders,\n    };\n};\n\nexport { prepareApiCalculateCostRequestQuery, prepareApiCreateRequestQueryDraft };\n","import * as React from 'react';\nimport { BrokerInvoiceT } from 'broker-admin/store/invoices/models';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport PdfFileIcon from 'common/icons/PdfFileIcon';\n\ntype PropsT = {\n    invoice: BrokerInvoiceT | null;\n};\n\nconst ActionsCell: React.FC<PropsT> = React.memo((props) => {\n    const { invoice } = props;\n\n    if (!invoice) {\n        return null;\n    }\n\n    const { pdfLink } = invoice;\n\n    if (!pdfLink) {\n        return null;\n    }\n\n    return (\n        <TransparentTrigger\n            onClick={() => {\n                window.open(pdfLink, '_blank')?.focus();\n            }}\n            leftIcon={<PdfFileIcon fillColor={StyleGuideColorsEnum.charcoal} />}\n            reflectionTheme={ReflectionThemeEnum.light}\n        />\n    );\n});\n\nexport default ActionsCell;\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"WaypointNumberPin__content___g3WUR\",\"fadeIn\":\"WaypointNumberPin__fadeIn___gRgfY\",\"blinking\":\"WaypointNumberPin__blinking___KO8Ru\"};","import * as React from 'react';\n\ntype PropsT = {\n    isDisabled?: boolean;\n    className?: string;\n};\n\nconst BigCheckIcon: React.FC<PropsT> = (props) => {\n    const { isDisabled, className } = props;\n\n    return (\n        <svg\n            xmlns=\"http://www.w3.org/2000/svg\"\n            xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n            width=\"30\"\n            height=\"30\"\n            viewBox=\"0 0 30 30\"\n            className={className}\n        >\n            <defs>\n                <rect id=\"ysnd058vha\" width=\"30\" height=\"30\" x=\"0\" y=\"0\" rx=\"15\" />\n            </defs>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <use fill={isDisabled ? '#9EA0A5' : '#8ABA2E'} xlinkHref=\"#ysnd058vha\" />\n                <use fill=\"#000\" fillOpacity=\"0.1\" xlinkHref=\"#ysnd058vha\" />\n                <path\n                    fill=\"#FFF\"\n                    d=\"M20.314 12.707l-6.072 6.071a.999.999 0 01-1.414 0l-2.535-2.535a1 1 0 011.414-1.415l1.829 1.83 5.364-5.365a.999.999 0 111.414 1.414\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nBigCheckIcon.displayName = 'BigCheckIcon';\n\nconst storyProps: PropsT = {\n    isDisabled: false,\n};\n\nexport { storyProps };\nexport default BigCheckIcon;\n","// eslint-disable-next-line no-restricted-exports\nexport { default } from './slice';\n","import React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport {\n    useFloating,\n    autoUpdate,\n    offset,\n    flip,\n    shift,\n    useDismiss,\n    useInteractions,\n    FloatingPortal,\n    type Placement,\n} from '@floating-ui/react';\n\nimport styles from './DatePickerOverlay.scss';\n\nconst cx = classNames.bind(styles);\n\nexport enum DatePickerOverlayPositionEnum {\n    bottomLeft = 'bottom-left',\n    bottomRight = 'bottom-right',\n    topLeft = 'top-left',\n    topRight = 'top-right',\n}\n\nconst POSITION_TO_PLACEMENT: Record<DatePickerOverlayPositionEnum, Placement> = {\n    [DatePickerOverlayPositionEnum.bottomLeft]: 'bottom-start',\n    [DatePickerOverlayPositionEnum.bottomRight]: 'bottom-end',\n    [DatePickerOverlayPositionEnum.topLeft]: 'top-start',\n    [DatePickerOverlayPositionEnum.topRight]: 'top-end',\n};\n\ntype PropsT = {\n    position?: DatePickerOverlayPositionEnum;\n    className?: string;\n    isOpen?: boolean;\n    referenceElement: HTMLElement | null;\n    onClose: () => void;\n};\n\nconst DatePickerOverlay: React.FC<PropsT> = (props) => {\n    const { className, children, referenceElement, onClose } = props;\n\n    const isOpen = !!props.isOpen;\n    const position = props.position || DatePickerOverlayPositionEnum.bottomLeft;\n\n    const { refs, floatingStyles, context } = useFloating({\n        open: isOpen,\n        onOpenChange: (open) => {\n            if (!open) {\n                onClose();\n            }\n        },\n        elements: { reference: referenceElement },\n        placement: POSITION_TO_PLACEMENT[position],\n        middleware: [offset(0), flip({ padding: 8 }), shift({ padding: 8 })],\n        strategy: 'fixed',\n        transform: false,\n        whileElementsMounted: autoUpdate,\n    });\n\n    const dismiss = useDismiss(context, {\n        outsidePressEvent: 'mousedown',\n    });\n\n    const { getFloatingProps } = useInteractions([dismiss]);\n\n    if (!isOpen) {\n        return null;\n    }\n\n    return (\n        <FloatingPortal>\n            <div\n                ref={refs.setFloating}\n                style={floatingStyles}\n                className={cs(cx('overlay'), className)}\n                {...getFloatingProps({\n                    onClick(event: React.MouseEvent<HTMLDivElement>) {\n                        // fix formik submit, button in datepicker has not \"button\" type attribute\n                        // https://github.com/formium/formik/issues/1610#issuecomment-529572094\n                        event.preventDefault();\n                        event.stopPropagation();\n                    },\n                })}\n            >\n                {children}\n            </div>\n        </FloatingPortal>\n    );\n};\n\nexport default DatePickerOverlay;\n","import * as React from 'react';\nimport EditTruckSidebarContent from './EditTruckSidebarContent/EditTruckSidebarContent';\nimport TruckDetailsSidebarContent from './TruckDetailsSidebarContent/TruckDetailsSidebarContent';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectTrucksByIds,\n    selectTrucksDetailsByIds,\n    selectUpdateTruckRequestStatus,\n} from 'common/store/trucks/selectors';\nimport { SetUnavailableVehicleQueryT } from 'common/utils/api/models';\nimport SetUnavailableAssetConfirmationModal, {\n    SetUnavailableAssetConfirmationDataT,\n} from 'common/layouts/dialogs/SetUnavailableAssetConfirmationModal/SetUnavailableAssetConfirmationModal';\nimport { AssetTypeEnum } from 'common/constants';\nimport ArchiveAssetConfirmationModal, {\n    ArchiveAssetConfirmationDataT,\n} from 'common/layouts/dialogs/ArchiveAssetConfirmationModal/ArchiveAssetConfirmationModal';\nimport ActivateAssetDialogModal, {\n    ActivateAssetConfirmationDataT,\n} from 'common/layouts/dialogs/ActivateAssetDialogModal/ActivateAssetDialogModal';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport { selectSetUnavailableVehicleRequestStatus } from 'common/store/vehicle-schedules/selectors';\nimport { setUnavailableVehicleRequest } from 'common/store/vehicle-schedules/actions';\nimport { activationTrucksRequest, archiveTrucksRequest } from 'common/store/trucks/actions';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport { ActivateTrucksRequestT } from 'common/store/trucks/models';\nimport { logWarning } from 'common/utils/logger';\n\ntype PropsT = {\n    truckId: TruckIdT;\n    partnerId: PartnerIdT | null;\n    onGoBack?: () => void;\n    onClose?: () => void;\n    isShowMap: boolean;\n    onToggleShowMap: () => void;\n    setNeedCloseConfirmation?: (needCloseConfirmation: boolean) => void;\n    isDisableShowOnMap?: boolean;\n    isReadOnly?: boolean;\n    onOpenTruckDetails: (truckId: TruckIdT) => void;\n    onOpenTrailerDetails: (trailerId: TrailerIdT) => void;\n    onOpenContactDetails: (contractId: CarrierContractIdT) => void;\n    onOpenUserDetails: (userId: UserIdT, isBrokerUser?: boolean) => void;\n};\n\nconst CommonEditableTruckDetailsLayout: React.FC<PropsT> = (props) => {\n    const {\n        isDisableShowOnMap,\n        isReadOnly,\n        truckId,\n        partnerId,\n        onGoBack,\n        onClose,\n        isShowMap,\n        onToggleShowMap,\n        setNeedCloseConfirmation,\n        onOpenTruckDetails,\n        onOpenTrailerDetails,\n        onOpenContactDetails,\n        onOpenUserDetails,\n    } = props;\n\n    const [isActiveEditing, setActiveEditing] = React.useState<boolean>(false);\n\n    const updateRequestStatus = useSelector(selectUpdateTruckRequestStatus(partnerId));\n\n    React.useEffect(() => {\n        if (updateRequestStatus.ok) {\n            setActiveEditing(false);\n        }\n    }, [updateRequestStatus.ok]);\n\n    const dispatch = useDispatch();\n\n    const handleEdit = () => {\n        setActiveEditing(true);\n    };\n\n    const truckDetailsById = useSelector(selectTrucksDetailsByIds(partnerId));\n\n    const activateAssetConfirmation = useModalDialog<ActivateAssetConfirmationDataT>();\n    const handleActivate = (truckId: TruckIdT | null): void => {\n        if (!truckId || !partnerId) {\n            logWarning('Empty truckId or partnerId in handleActivate');\n            return;\n        }\n\n        const truckDetails = truckDetailsById[truckId];\n\n        activateAssetConfirmation.setData({\n            companyId: partnerId,\n            assets: [\n                {\n                    id: truckId,\n                    plateNumber: truckDetails?.plateNumber || '',\n                    ratePerKm: truckDetails?.ratePerKm || null,\n                    contractId: truckDetails?.contractId || null,\n                },\n            ],\n        });\n    };\n\n    const handleConfirmActivate = (\n        _: ActivateAssetConfirmationDataT,\n        activateTrucksRequest: ActivateTrucksRequestT,\n    ): void => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleConfirmActivate');\n            return;\n        }\n\n        dispatch(activationTrucksRequest(partnerId, activateTrucksRequest));\n    };\n\n    const truckById = useSelector(selectTrucksByIds(partnerId));\n\n    const archiveAssetConfirmation = useModalDialog<ArchiveAssetConfirmationDataT>();\n    const handleArchive = (truckId: TruckIdT | null): void => {\n        if (!truckId || !partnerId) {\n            logWarning('Empty truckId or partnerId in handleArchive');\n            return;\n        }\n\n        const truck = truckById[truckId];\n\n        archiveAssetConfirmation.setData({\n            companyId: partnerId,\n            assets: [\n                {\n                    id: truckId,\n                    plateNumber: truck?.plateNumber || '',\n                },\n            ],\n        });\n    };\n\n    const handleConfirmArchive = (data: ArchiveAssetConfirmationDataT, reason: string): void => {\n        const ids = data.assets.map((asset) => asset.id);\n        dispatch(archiveTrucksRequest(ids, data.companyId, reason));\n    };\n\n    const setUnavailableModalConfirmation = useModalDialog<SetUnavailableAssetConfirmationDataT>();\n    const setUnavailableStatus = useSelector(selectSetUnavailableVehicleRequestStatus);\n\n    const handleSetUnavailable = (truckId: TruckIdT, query: SetUnavailableVehicleQueryT): void => {\n        const truck = truckById[truckId];\n\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleSetUnavailable');\n            return;\n        }\n\n        setUnavailableModalConfirmation.setData({\n            companyId: partnerId,\n            query: {\n                ...query,\n                truckId,\n            },\n            assets: [\n                {\n                    plateNumber: truck?.plateNumber || '',\n                },\n            ],\n        });\n    };\n\n    const handleSetUnavailableConfirmation = (data: SetUnavailableAssetConfirmationDataT): void => {\n        const { companyId, query } = data;\n\n        dispatch(setUnavailableVehicleRequest(query, companyId));\n    };\n\n    useCloseModalDialogAfterRequest(setUnavailableStatus, [setUnavailableModalConfirmation]);\n    useCloseModalDialogAfterRequest(updateRequestStatus, [activateAssetConfirmation, archiveAssetConfirmation]);\n\n    if (!partnerId) {\n        return null;\n    }\n\n    return (\n        <>\n            {isActiveEditing ? (\n                <EditTruckSidebarContent\n                    partnerId={partnerId}\n                    truckId={truckId}\n                    onClose={onClose}\n                    onGoBack={onGoBack}\n                    onCancel={() => {\n                        setActiveEditing(false);\n                    }}\n                    setNeedCloseConfirmation={setNeedCloseConfirmation}\n                    onOpenTruckDetails={onOpenTruckDetails}\n                    onOpenTrailerDetails={onOpenTrailerDetails}\n                    onOpenUserDetails={onOpenUserDetails}\n                />\n            ) : (\n                <TruckDetailsSidebarContent\n                    partnerId={partnerId}\n                    truckId={truckId}\n                    isShowMap={isShowMap}\n                    isReadOnly={isReadOnly}\n                    isDisableShowOnMap={isDisableShowOnMap}\n                    onToggleShowMap={onToggleShowMap}\n                    onClose={onClose}\n                    onGoBack={onGoBack}\n                    onActivate={handleActivate}\n                    onArchive={handleArchive}\n                    onEdit={handleEdit}\n                    onSetUnavailable={handleSetUnavailable}\n                    onOpenTrailerDetails={onOpenTrailerDetails}\n                    onOpenContactDetails={onOpenContactDetails}\n                    onOpenUserDetails={onOpenUserDetails}\n                />\n            )}\n            <SetUnavailableAssetConfirmationModal\n                assetType={AssetTypeEnum.truck}\n                data={setUnavailableModalConfirmation.data}\n                onConfirm={handleSetUnavailableConfirmation}\n                onCancel={setUnavailableModalConfirmation.onCancel}\n                onClose={setUnavailableModalConfirmation.onClose}\n                requestStatus={setUnavailableStatus}\n            />\n            <ArchiveAssetConfirmationModal\n                assetType={AssetTypeEnum.truck}\n                data={archiveAssetConfirmation.data}\n                onConfirm={handleConfirmArchive}\n                onCancel={archiveAssetConfirmation.onCancel}\n                onClose={archiveAssetConfirmation.onClose}\n                requestStatus={updateRequestStatus}\n            />\n            <ActivateAssetDialogModal\n                companyId={partnerId}\n                assetType={AssetTypeEnum.truck}\n                data={activateAssetConfirmation.data}\n                onConfirm={handleConfirmActivate}\n                onCancel={activateAssetConfirmation.onCancel}\n                onClose={activateAssetConfirmation.onClose}\n                requestStatus={updateRequestStatus}\n            />\n        </>\n    );\n};\n\nexport default CommonEditableTruckDetailsLayout;\n","import { getVisibleOptimisticPapers } from './getVisibleOptimisticPapers';\n\ntype EntityPaperShapeT = {\n    id?: PaperIdT | null | undefined;\n};\n\ntype OptimisticPaperShapeT = {\n    afterAttachId: PaperIdT | null;\n};\n\nexport function getTotalWithOptimisticPapersCount<\n    T extends EntityPaperShapeT,\n    O extends OptimisticPaperShapeT,\n>(params: { optimisticPapers: Array<O> | null | undefined; entityPapers: Array<T> | null | undefined }): number {\n    const { optimisticPapers, entityPapers } = params;\n\n    const visibleOptimisticPapers = getVisibleOptimisticPapers({\n        optimisticPapers,\n        entityPapers,\n    });\n\n    return (entityPapers?.length || 0) + visibleOptimisticPapers.length;\n}\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n    width?: number;\n    height?: number;\n};\n\nconst UpArrowIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, width = 20, height = 20 } = props;\n\n    return (\n        <svg\n            xmlns=\"http://www.w3.org/2000/svg\"\n            xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n            width={width}\n            height={height}\n            viewBox=\"0 0 20 20\"\n        >\n            <defs>\n                <path id=\"ixmsz480va\" d=\"M13 11H7l3-3z\" />\n            </defs>\n            <use fill={fillColor} fillRule=\"evenodd\" xlinkHref=\"#ixmsz480va\" />\n        </svg>\n    );\n};\n\nUpArrowIcon.displayName = 'UpArrowIcon';\n\nconst storyProps: PropsT = {\n    width: DEFAULT_ICON_SIZE,\n    height: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default UpArrowIcon;\n","import SwitchableViewContainer from './SwitchableViewContainer/SwitchableViewContainer';\nimport SwitchableViewTab from './SwitchableViewTab/SwitchableViewTab';\nimport SwitchableViewTrigger from './SwitchableViewTrigger/SwitchableViewTrigger';\nimport SwitchableViewMapTrigger from './SwitchableViewMapTrigger/SwitchableViewMapTrigger';\n\nexport const SwitchableView = {\n    Container: SwitchableViewContainer,\n    Tab: SwitchableViewTab,\n    Trigger: SwitchableViewTrigger,\n    MapTrigger: SwitchableViewMapTrigger,\n};\n","import * as React from 'react';\nimport DropdownControl, {\n    DropdownControlOptionT,\n    DropdownControlRenderTriggerT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { ApiShipmentAttachedPaperTypeT } from 'common/utils/api/models';\nimport ShipmentPaperTypeLabel from 'common/components/papers/labels/ShipmentPaperTypeLabel/ShipmentPaperTypeLabel';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport { logWarning } from 'common/utils/logger';\n\ntype PropsT = {\n    shipmentId: ShipmentIdT | null;\n    onAttachShipmentPaper: (\n        shipmentId: ShipmentIdT,\n        paperType: ApiShipmentAttachedPaperTypeT,\n        comment?: string,\n    ) => void;\n    className?: string;\n    renderTrigger: DropdownControlRenderTriggerT;\n    isFullWidth?: boolean;\n};\n\nconst ShipmentPaperAttachPapersDropdownControl: React.FC<PropsT> = React.memo((props) => {\n    const { shipmentId, onAttachShipmentPaper, renderTrigger, className, isFullWidth } = props;\n\n    const handleAttach = React.useCallback(\n        (paperType: ApiShipmentAttachedPaperTypeT) => {\n            if (!shipmentId) {\n                logWarning('failed to attach paper, empty shipmentId');\n                return;\n            }\n\n            if (!onAttachShipmentPaper) {\n                logWarning('failed to attach paper, onAttachShipmentPaper is not provided');\n                return;\n            }\n\n            onAttachShipmentPaper(shipmentId, paperType);\n        },\n        [shipmentId, onAttachShipmentPaper],\n    );\n\n    const options: Array<DropdownControlOptionT | SpecialOptionEnum | null> = React.useMemo(() => {\n        return [\n            {\n                label: <DropdownControlOptionLabel label={<ShipmentPaperTypeLabel type=\"DELIVERY_NOTE\" />} />,\n                onSelect: () => handleAttach('DELIVERY_NOTE'),\n            },\n            {\n                label: <DropdownControlOptionLabel label={<ShipmentPaperTypeLabel type=\"SIGNED_DELIVERY_NOTE\" />} />,\n                onSelect: () => handleAttach('SIGNED_DELIVERY_NOTE'),\n            },\n            {\n                label: <DropdownControlOptionLabel label={<ShipmentPaperTypeLabel type=\"PALLET_CERTIFICATE\" />} />,\n                onSelect: () => handleAttach('PALLET_CERTIFICATE'),\n            },\n            {\n                label: <DropdownControlOptionLabel label={<ShipmentPaperTypeLabel type=\"TEMPERATURE_RECORD\" />} />,\n                onSelect: () => handleAttach('TEMPERATURE_RECORD'),\n            },\n            {\n                label: <DropdownControlOptionLabel label={<ShipmentPaperTypeLabel type=\"CLAIM_DAMAGE\" />} />,\n                onSelect: () => handleAttach('CLAIM_DAMAGE'),\n            },\n            SpecialOptionEnum.separator,\n            {\n                label: <DropdownControlOptionLabel label={<ShipmentPaperTypeLabel type=\"CUSTOMS_DECLARATION\" />} />,\n                onSelect: () => handleAttach('CUSTOMS_DECLARATION'),\n            },\n            {\n                label: <DropdownControlOptionLabel label={<ShipmentPaperTypeLabel type=\"T1_T2_DOCUMENT\" />} />,\n                onSelect: () => handleAttach('T1_T2_DOCUMENT'),\n            },\n            {\n                label: <DropdownControlOptionLabel label={<ShipmentPaperTypeLabel type=\"EAD\" />} />,\n                onSelect: () => handleAttach('EAD'),\n            },\n            {\n                label: <DropdownControlOptionLabel label={<ShipmentPaperTypeLabel type=\"CERTIFICATE_OF_ORIGIN\" />} />,\n                onSelect: () => handleAttach('CERTIFICATE_OF_ORIGIN'),\n            },\n            {\n                label: <DropdownControlOptionLabel label={<ShipmentPaperTypeLabel type=\"COMMERCIAL_INVOICE\" />} />,\n                onSelect: () => handleAttach('COMMERCIAL_INVOICE'),\n            },\n            SpecialOptionEnum.separator,\n            {\n                label: <DropdownControlOptionLabel label={<ShipmentPaperTypeLabel type=\"OTHER\" />} />,\n                onSelect: () => handleAttach('OTHER'),\n            },\n        ];\n    }, [handleAttach]);\n\n    return (\n        <DropdownControl\n            className={className}\n            isFullWidth={isFullWidth}\n            options={options}\n            renderTrigger={renderTrigger}\n            overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n        />\n    );\n});\n\nexport { ShipmentPaperAttachPapersDropdownControl };\n","// extracted by mini-css-extract-plugin\nexport default {\"trigger-wrap\":\"PhoneNumberDropdownInput__trigger-wrap___O9yrX\",\"trigger\":\"PhoneNumberDropdownInput__trigger___aJBGD\",\"trigger--isHovered\":\"PhoneNumberDropdownInput__trigger--isHovered___Rjcjk\",\"trigger--isFocus\":\"PhoneNumberDropdownInput__trigger--isFocus___Duj0Y\",\"trigger--isDisabled\":\"PhoneNumberDropdownInput__trigger--isDisabled___F_tsr\",\"trigger--hasWarning\":\"PhoneNumberDropdownInput__trigger--hasWarning___bqUob\",\"trigger--hasChanges\":\"PhoneNumberDropdownInput__trigger--hasChanges___snm8Q\",\"trigger--hasError\":\"PhoneNumberDropdownInput__trigger--hasError___Uw6om\",\"overlay\":\"PhoneNumberDropdownInput__overlay___OzOF_\",\"fadeIn\":\"PhoneNumberDropdownInput__fadeIn___Zu_0p\",\"blinking\":\"PhoneNumberDropdownInput__blinking___sC9B8\"};","import {\n    AssignActionT,\n    AssignBeginActionT,\n    AssignErrorActionT,\n    ASSIGNMENT_REQUEST,\n    ASSIGNMENT_REQUEST_BEGIN,\n    ASSIGNMENT_REQUEST_ERROR,\n    ASSIGNMENT_REQUEST_SUCCESS,\n    AssignSuccessActionT,\n    CHANGE_USER_SELECTION,\n    ChangeUserSelectionActionT,\n    FETCH_ASSET_SCHEDULE,\n    FETCH_ASSET_SCHEDULE_BEGIN,\n    FETCH_ASSET_SCHEDULE_ERROR,\n    FETCH_ASSET_SCHEDULE_SUCCESS,\n    FETCH_AVAILABLE_CARRIERS_REQUEST,\n    FETCH_AVAILABLE_CARRIERS_REQUEST_BEGIN,\n    FETCH_AVAILABLE_CARRIERS_REQUEST_ERROR,\n    FETCH_AVAILABLE_CARRIERS_REQUEST_SUCCESS,\n    FETCH_AVAILABLE_VEHICLES_REQUEST,\n    FETCH_AVAILABLE_VEHICLES_REQUEST_BEGIN,\n    FETCH_AVAILABLE_VEHICLES_REQUEST_ERROR,\n    FETCH_AVAILABLE_VEHICLES_REQUEST_SUCCESS,\n    FetchAssetScheduleActionT,\n    FetchAssetScheduleBeginActionT,\n    FetchAssetScheduleErrorActionT,\n    FetchAssetScheduleSuccessActionT,\n    FetchAvailableCarriersActionT,\n    FetchAvailableCarriersBeginActionT,\n    FetchAvailableCarriersErrorActionT,\n    FetchAvailableCarriersSuccessActionT,\n    FetchAvailableVehiclesActionT,\n    FetchAvailableVehiclesBeginActionT,\n    FetchAvailableVehiclesErrorActionT,\n    FetchAvailableVehiclesSuccessActionT,\n    FIND_TRAILER_REQUEST,\n    FIND_TRAILER_REQUEST_BEGIN,\n    FIND_TRAILER_REQUEST_ERROR,\n    FIND_TRAILER_REQUEST_SUCCESS,\n    FIND_TRUCK_REQUEST,\n    FIND_TRUCK_REQUEST_BEGIN,\n    FIND_TRUCK_REQUEST_ERROR,\n    FIND_TRUCK_REQUEST_SUCCESS,\n    FindTrailerActionT,\n    FindTrailerBeginActionT,\n    FindTrailerErrorActionT,\n    FindTrailerSuccessActionT,\n    FindTruckActionT,\n    FindTruckBeginActionT,\n    FindTruckErrorActionT,\n    FindTruckSuccessActionT,\n    INIT,\n    INIT_USER_SELECTION,\n    InitActionT,\n    InitUserSelectionActionT,\n    PREDICT_SELF_COST_REQUEST,\n    PREDICT_SELF_COST_REQUEST_BEGIN,\n    PREDICT_SELF_COST_REQUEST_ERROR,\n    PREDICT_SELF_COST_REQUEST_SUCCESS,\n    PredictSelfCostActionT,\n    PredictSelfCostBeginActionT,\n    PredictSelfCostErrorActionT,\n    PredictSelfCostSuccessActionT,\n    REFRESH_TRAILER_REQUEST,\n    REFRESH_TRUCK_REQUEST,\n    RefreshTrailerActionT,\n    RefreshTruckActionT,\n    RESET,\n    ResetActionT,\n    SET_ASSET_SCHEDULE,\n    SET_INIT_ASSETS_INFO,\n    SET_EVENT_LOAD_ROUTE,\n    SET_SELECTED_SCHEDULE_EVENT_ID,\n    SET_SHOW_SELECTED_ASSET_SCHEDULES,\n    SetAssetScheduleActionT,\n    SetEventLoadRouteActionT,\n    SetSelectedScheduleEventIdActionT,\n    SetShowSelectedAssetScheduleActionT,\n    SetInitAssetsInfoActionT,\n    FETCH_ASSIGN_DETAILS_REQUEST,\n    FETCH_ASSIGN_DETAILS_REQUEST_BEGIN,\n    FETCH_ASSIGN_DETAILS_REQUEST_SUCCESS,\n    FETCH_ASSIGN_DETAILS_REQUEST_ERROR,\n    FetchAssignDetailsActionT,\n    FetchAssignDetailsBeginActionT,\n    FetchAssignDetailsSuccessActionT,\n    FetchAssignDetailsErrorActionT,\n} from './types';\n\nimport {\n    ApiAssignmentDetailsT,\n    AssignmentVehiclesSuggestItemT,\n    AssignmentVehiclesT,\n    AvailableVehiclesQueryT,\n    CarrierT,\n    FindTrailerQueryT,\n    FindTruckQueryT,\n    ScheduleEventIdT,\n    ScheduleEventT,\n    SelfCostPredictionQueryT,\n    SelfCostPredictionT,\n    UserSelectionT,\n} from './models';\n\nexport const initUserSelection = (\n    brokerOrderId: BrokerOrderIdT | null,\n    tourId: TourIdT | null,\n    changes: Partial<UserSelectionT>,\n): InitUserSelectionActionT => ({\n    type: INIT_USER_SELECTION,\n    changes,\n    brokerOrderId,\n    tourId,\n});\n\nexport const changeUserSelection = (\n    brokerOrderId: BrokerOrderIdT | null,\n    tourId: TourIdT | null,\n    changes: Partial<UserSelectionT>,\n): ChangeUserSelectionActionT => ({\n    type: CHANGE_USER_SELECTION,\n    brokerOrderId,\n    tourId,\n    changes,\n});\n\nexport const fetchAvailableVehicles = (query: AvailableVehiclesQueryT): FetchAvailableVehiclesActionT => ({\n    type: FETCH_AVAILABLE_VEHICLES_REQUEST,\n    query,\n});\n\nexport const fetchAvailableVehiclesBegin = (query: AvailableVehiclesQueryT): FetchAvailableVehiclesBeginActionT => ({\n    type: FETCH_AVAILABLE_VEHICLES_REQUEST_BEGIN,\n    query,\n});\n\nexport const fetchAvailableVehiclesSuccess = (\n    query: AvailableVehiclesQueryT,\n    vehicles: AssignmentVehiclesT[],\n): FetchAvailableVehiclesSuccessActionT => ({\n    type: FETCH_AVAILABLE_VEHICLES_REQUEST_SUCCESS,\n    vehicles,\n    query,\n});\n\nexport const fetchAvailableVehiclesError = (\n    query: AvailableVehiclesQueryT,\n    error: Error,\n): FetchAvailableVehiclesErrorActionT => ({\n    type: FETCH_AVAILABLE_VEHICLES_REQUEST_ERROR,\n    error,\n    query,\n});\n\nexport const fetchAvailableCarriers = (options?: FetchOptionsT): FetchAvailableCarriersActionT => ({\n    type: FETCH_AVAILABLE_CARRIERS_REQUEST,\n    options,\n});\n\nexport const fetchAvailableCarriersBegin = (): FetchAvailableCarriersBeginActionT => ({\n    type: FETCH_AVAILABLE_CARRIERS_REQUEST_BEGIN,\n});\n\nexport const fetchAvailableCarriersSuccess = (carriers: CarrierT[]): FetchAvailableCarriersSuccessActionT => ({\n    type: FETCH_AVAILABLE_CARRIERS_REQUEST_SUCCESS,\n    carriers,\n});\n\nexport const fetchAvailableCarriersError = (error: Error): FetchAvailableCarriersErrorActionT => ({\n    type: FETCH_AVAILABLE_CARRIERS_REQUEST_ERROR,\n    error,\n});\n\nexport const setInitAssetsInfo = (\n    truck: AssignmentVehiclesSuggestItemT | null,\n    trailer: AssignmentVehiclesSuggestItemT | null,\n): SetInitAssetsInfoActionT => ({\n    type: SET_INIT_ASSETS_INFO,\n    truck,\n    trailer,\n});\n\nexport const refreshTrailer = (query: FindTrailerQueryT): RefreshTrailerActionT => ({\n    type: REFRESH_TRAILER_REQUEST,\n    query,\n});\n\nexport const findTrailer = (query: FindTrailerQueryT): FindTrailerActionT => ({\n    type: FIND_TRAILER_REQUEST,\n    query,\n});\n\nexport const findTrailerBegin = (query: FindTrailerQueryT): FindTrailerBeginActionT => ({\n    type: FIND_TRAILER_REQUEST_BEGIN,\n    query,\n});\n\nexport const findTrailerSuccess = (\n    query: FindTrailerQueryT,\n    trailersSuggestItems: AssignmentVehiclesSuggestItemT[],\n): FindTrailerSuccessActionT => ({\n    type: FIND_TRAILER_REQUEST_SUCCESS,\n    trailersSuggestItems,\n    query,\n});\n\nexport const findTrailerError = (query: FindTrailerQueryT, error: Error): FindTrailerErrorActionT => ({\n    type: FIND_TRAILER_REQUEST_ERROR,\n    error,\n    query,\n});\n\nexport const refreshTruck = (query: FindTruckQueryT): RefreshTruckActionT => ({\n    type: REFRESH_TRUCK_REQUEST,\n    query,\n});\n\nexport const findTruck = (query: FindTruckQueryT): FindTruckActionT => ({\n    type: FIND_TRUCK_REQUEST,\n    query,\n});\n\nexport const findTruckBegin = (query: FindTruckQueryT): FindTruckBeginActionT => ({\n    type: FIND_TRUCK_REQUEST_BEGIN,\n    query,\n});\n\nexport const findTruckSuccess = (\n    query: FindTruckQueryT,\n    trucksSuggestItems: AssignmentVehiclesSuggestItemT[],\n): FindTruckSuccessActionT => ({\n    type: FIND_TRUCK_REQUEST_SUCCESS,\n    trucksSuggestItems,\n    query,\n});\n\nexport const findTruckError = (query: FindTruckQueryT, error: Error): FindTruckErrorActionT => ({\n    type: FIND_TRUCK_REQUEST_ERROR,\n    error,\n    query,\n});\n\nexport const predictSelfCost = (query: SelfCostPredictionQueryT): PredictSelfCostActionT => ({\n    type: PREDICT_SELF_COST_REQUEST,\n    query,\n});\n\nexport const predictSelfCostBegin = (query: SelfCostPredictionQueryT): PredictSelfCostBeginActionT => ({\n    type: PREDICT_SELF_COST_REQUEST_BEGIN,\n    query,\n});\n\nexport const predictSelfCostSuccess = (\n    query: SelfCostPredictionQueryT,\n    selfCostPrediction: SelfCostPredictionT | null,\n): PredictSelfCostSuccessActionT => ({\n    type: PREDICT_SELF_COST_REQUEST_SUCCESS,\n    selfCostPrediction,\n    query,\n});\n\nexport const predictSelfCostError = (query: SelfCostPredictionQueryT, error: Error): PredictSelfCostErrorActionT => ({\n    type: PREDICT_SELF_COST_REQUEST_ERROR,\n    error,\n    query,\n});\n\nexport const assign = (\n    brokerOrderId: BrokerOrderIdT,\n    tourId: TourIdT,\n    assignmentContextId: AssignmentContextIdT,\n): AssignActionT => ({\n    type: ASSIGNMENT_REQUEST,\n    brokerOrderId,\n    tourId,\n    assignmentContextId,\n});\n\nexport const assignBegin = (): AssignBeginActionT => ({\n    type: ASSIGNMENT_REQUEST_BEGIN,\n});\n\nexport const assignSuccess = (): AssignSuccessActionT => ({\n    type: ASSIGNMENT_REQUEST_SUCCESS,\n});\n\nexport const assignError = (error: Error): AssignErrorActionT => ({\n    type: ASSIGNMENT_REQUEST_ERROR,\n    error,\n});\n\nexport const fetchAssetSchedule = (\n    assetId: AssetIdT,\n    brokerOrderId: BrokerOrderIdT,\n    tourId: TourIdT,\n): FetchAssetScheduleActionT => ({\n    type: FETCH_ASSET_SCHEDULE,\n    assetId,\n    brokerOrderId,\n    tourId,\n});\n\nexport const fetchAssetScheduleBegin = (assetId: AssetIdT): FetchAssetScheduleBeginActionT => ({\n    type: FETCH_ASSET_SCHEDULE_BEGIN,\n    assetId,\n});\n\nexport const fetchAssetScheduleError = (assetId: AssetIdT, error: Error): FetchAssetScheduleErrorActionT => ({\n    type: FETCH_ASSET_SCHEDULE_ERROR,\n    error,\n    assetId,\n});\n\nexport const fetchAssetScheduleSuccess = (assetId: AssetIdT): FetchAssetScheduleSuccessActionT => ({\n    type: FETCH_ASSET_SCHEDULE_SUCCESS,\n    assetId,\n});\n\nexport const fetchAssignDetails = (brokerOrderId: BrokerOrderIdT, tourId: TourIdT): FetchAssignDetailsActionT => ({\n    type: FETCH_ASSIGN_DETAILS_REQUEST,\n    tourId,\n    brokerOrderId,\n});\n\nexport const fetchAssignDetailsBegin = (): FetchAssignDetailsBeginActionT => ({\n    type: FETCH_ASSIGN_DETAILS_REQUEST_BEGIN,\n});\n\nexport const fetchAssignDetailsSuccess = (details: ApiAssignmentDetailsT | null): FetchAssignDetailsSuccessActionT => ({\n    type: FETCH_ASSIGN_DETAILS_REQUEST_SUCCESS,\n    details,\n});\n\nexport const fetchAssignDetailsError = (error: Error): FetchAssignDetailsErrorActionT => ({\n    type: FETCH_ASSIGN_DETAILS_REQUEST_ERROR,\n    error,\n});\n\nexport const setAssetSchedule = (\n    assetId: AssetIdT,\n    events: Array<ScheduleEventT>,\n    currentEventId: ScheduleEventIdT | null,\n): SetAssetScheduleActionT => ({\n    type: SET_ASSET_SCHEDULE,\n    assetId,\n    events,\n    currentEventId,\n});\n\nexport const setEventLoadRoute = (\n    assetId: AssetIdT,\n    scheduleEventId: ScheduleEventIdT,\n    polylines: Array<GooglePolylineT>,\n): SetEventLoadRouteActionT => ({\n    type: SET_EVENT_LOAD_ROUTE,\n    scheduleEventId,\n    polylines,\n    assetId,\n});\n\nexport const setShowSelectedAssetSchedule = (\n    isShowSelectedAssetSchedules: boolean,\n): SetShowSelectedAssetScheduleActionT => ({\n    type: SET_SHOW_SELECTED_ASSET_SCHEDULES,\n    isShowSelectedAssetSchedules,\n});\n\nexport const setSelectedScheduleEventId = (\n    selectedScheduleEventId: ScheduleEventIdT | null,\n): SetSelectedScheduleEventIdActionT => ({\n    type: SET_SELECTED_SCHEDULE_EVENT_ID,\n    selectedScheduleEventId,\n});\n\nexport const initBrokerOrderAssignment = (): InitActionT => ({\n    type: INIT,\n});\n\nexport const resetBrokerOrderAssignment = (): ResetActionT => ({\n    type: RESET,\n});\n","import * as React from 'react';\nimport { useMoneyDiff } from 'common/utils/hooks/useMoneyDiff';\n\nexport type MoneyDiffPropsT = {\n    value: number | null | undefined;\n    baseValue: number | null | undefined;\n    children: (diff: number | null) => React.ReactNode;\n};\n\nconst MoneyDiff: React.FC<MoneyDiffPropsT> = (props) => {\n    const { value, baseValue, children } = props;\n\n    const diff = useMoneyDiff(baseValue, value);\n\n    return <>{children(diff)}</>;\n};\n\nexport default MoneyDiff;\n","import { useMemo } from 'react';\nimport { ApiStopTypeT, ApiTransportationOrderWaypointT, StopTypeEnum } from 'common/utils/api/models';\n\nconst useTransportOrderPayloadWaypoints = (waypoints: Array<ApiTransportationOrderWaypointT> | null | undefined) => {\n    return useMemo(() => {\n        if (!waypoints) {\n            return {\n                firstPayloadWaypoint: null,\n                lastPayloadWaypoint: null,\n            };\n        }\n\n        const originWaypoint = waypoints?.find((waypoint) => {\n            return waypoint?.origin;\n        });\n\n        const destinationWaypoint = waypoints?.find((waypoint) => {\n            return waypoint?.destination;\n        });\n\n        const payloadWaypointStopTypeSet = new Set<ApiStopTypeT>([\n            StopTypeEnum.pickupDeliveryShipment,\n            StopTypeEnum.driveThrough,\n            StopTypeEnum.dropAndHook,\n        ]);\n\n        const payloadWaypoints = waypoints?.filter((waypoint) => {\n            return payloadWaypointStopTypeSet.has(waypoint.type);\n        });\n\n        const firstPayloadWaypoint = payloadWaypoints[0] || null;\n        const lastPayloadWaypoint = payloadWaypoints[payloadWaypoints.length - 1] || null;\n\n        return {\n            originWaypoint: originWaypoint || firstPayloadWaypoint,\n            destinationWaypoint: destinationWaypoint || lastPayloadWaypoint,\n        };\n    }, [waypoints]);\n};\n\nexport { useTransportOrderPayloadWaypoints };\n","import * as React from 'react';\n\nimport { AssetTypeEnum, DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport InfoIcon from 'common/icons/InfoIcon';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport moment from 'moment';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectGPSCheckData, selectGPSIsChecking, selectGPSStatus } from 'common/store/gps-tracking-status/selectors';\nimport { checkGPSStatusRequest, reset } from 'common/store/gps-tracking-status/actions';\nimport { GPStatusEnum } from 'common/store/gps-tracking-status/constants';\nimport { MS_IN_DAY } from 'common/utils/time';\n\nexport type PropsT = {\n    className?: string;\n    plateNumber: string;\n    assetType: AssetTypeEnum;\n    companyId: CompanyIdT;\n    isDedicated: boolean;\n};\n\nconst GPS_EXPIRATION_MS = 7 * MS_IN_DAY;\n\nconst LastGPSPositionAlert: React.FC<PropsT> = React.memo((props) => {\n    const { className, plateNumber, assetType, companyId, isDedicated } = props;\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        return () => {\n            dispatch(reset());\n        };\n    }, [dispatch]);\n\n    React.useEffect(() => {\n        dispatch(checkGPSStatusRequest({ companyId, assetType, plateNumber }));\n    }, [dispatch, companyId, assetType, plateNumber]);\n\n    const infoIconNode = <InfoIcon fillColor={StyleGuideColorsEnum.white} />;\n    const loaderIconNode = <ControlLoaderIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />;\n\n    let theme: AlertThemeEnum | null = null;\n    let text: React.ReactNode = null;\n\n    const isChecking = useSelector(selectGPSIsChecking);\n    const gpsStatus = useSelector(selectGPSStatus);\n    const gpsData = useSelector(selectGPSCheckData);\n\n    const renderTime = (time: string | null): [AlertThemeEnum, React.ReactNode] => {\n        if (!time) {\n            return [AlertThemeEnum.orange, t('common:last-gps-position.no-latest-gps-position')];\n        }\n\n        const momentTime = moment(time);\n        const formattedDate = momentTime.format('Do');\n        const formattedMonth = momentTime.format('MMM');\n        const formattedTime = momentTime.format('H:mm');\n\n        const shouldShowOldWarning = momentTime.valueOf() + GPS_EXPIRATION_MS < Date.now();\n\n        if (shouldShowOldWarning) {\n            return [\n                AlertThemeEnum.orange,\n                t('common:last-gps-position.old-latest', {\n                    date: formattedDate,\n                    month: formattedMonth,\n                    time: formattedTime,\n                }),\n            ];\n        }\n\n        if (assetType === AssetTypeEnum.truck) {\n            return [\n                AlertThemeEnum.gray,\n                t('common:last-gps-position.truck.latest', {\n                    date: formattedDate,\n                    month: formattedMonth,\n                    time: formattedTime,\n                }),\n            ];\n        }\n\n        if (assetType === AssetTypeEnum.trailer) {\n            return [\n                AlertThemeEnum.gray,\n                t('common:last-gps-position.trailer.latest', {\n                    date: formattedDate,\n                    month: formattedMonth,\n                    time: formattedTime,\n                }),\n            ];\n        }\n\n        return [AlertThemeEnum.gray, null];\n    };\n\n    if (gpsStatus === GPStatusEnum.unable) {\n        if (isDedicated) {\n            theme = AlertThemeEnum.tomatoRed;\n            text = t('common:last-gps-position.error');\n        } else {\n            theme = AlertThemeEnum.orange;\n            text = t('common:last-gps-position.no-latest-gps-position');\n        }\n    }\n\n    if (gpsStatus === GPStatusEnum.enabled) {\n        const lastUpdateDate = gpsData?.lastUpdateDate || null;\n        [theme, text] = renderTime(lastUpdateDate);\n    }\n\n    if (isChecking && !gpsStatus) {\n        theme = AlertThemeEnum.gray;\n        text = t('common:last-gps-position.loading');\n    }\n\n    return (\n        <Alert\n            className={className}\n            icon={isChecking ? loaderIconNode : infoIconNode}\n            size={AlertSizeEnum.small}\n            theme={theme || AlertThemeEnum.gray}\n        >\n            {text || ''}\n        </Alert>\n    );\n});\n\nexport default LastGPSPositionAlert;\n","import isNumber from 'lodash/isNumber';\n\ntype ArgsT = {\n    creditLimit: number | null;\n    cost: number | null | undefined;\n};\n\nexport const checkIsCreditLimitExceeded = ({ creditLimit, cost }: ArgsT): boolean => {\n    if (!isNumber(creditLimit) || !isNumber(cost)) {\n        return false;\n    }\n\n    return cost > creditLimit;\n};\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PartnerDetailsHeaderPills.scss';\n\nconst cx = classNames.bind(styles);\n\nconst PartnerDetailsHeaderPills: React.FC = React.memo(({ children }) => {\n    return <div className={cx('wrap')}>{children}</div>;\n});\n\nexport default PartnerDetailsHeaderPills;\n","import React from 'react';\n\nimport { CompanyContactT } from 'common/store/members/models';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport BigTrashIcon from 'common/icons/BigTrashIcon';\nimport Modal from 'common/components/Modal/Modal';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectContactById, selectUpdateMemberRequest } from 'common/store/members/selectors';\nimport { logWarning } from 'common/utils/logger';\nimport { fetchContacts } from 'common/store/members/actions';\n\nexport type DeleteContactConfirmationDataT = {\n    partnerId: CompanyIdT;\n    contactId: CompanyContactT['id'];\n};\n\nexport type DeleteContactConfirmationPropsT = {\n    data: DeleteContactConfirmationDataT | null;\n    onClose: () => void;\n    onCancel: () => void;\n    onConfirm: (partnerId: PartnerIdT, contactId: ContactIdT) => void;\n};\n\nconst TEST_SELECTOR = 'delete-contact-confirmation';\n\nconst DeleteContactConfirmation: React.FC<DeleteContactConfirmationPropsT> = React.memo((props) => {\n    const { data, onClose, onCancel, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    const contactById = useSelector(selectContactById(data?.partnerId || null));\n\n    const dispatch = useDispatch();\n    React.useEffect(() => {\n        if (!data?.partnerId) {\n            logWarning('failed fetchContacts, empty data?.partnerId');\n            return;\n        }\n\n        dispatch(fetchContacts(data.partnerId));\n    }, [dispatch, data?.partnerId]);\n\n    const updateMemberRequestStatus = useSelector(selectUpdateMemberRequest(data?.partnerId || null));\n\n    if (!data) {\n        return null;\n    }\n\n    const contact = contactById[data?.contactId as ContactIdT];\n    if (!contact) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: updateMemberRequestStatus.loading,\n                            onClick: () => {\n                                onCancel();\n                            },\n                        },\n                        {\n                            children: t('common:team-members.dialogs.delete-contact.delete'),\n                            theme: ButtonThemeEnum.danger,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            isLoading: updateMemberRequestStatus.loading,\n                            onClick: () => {\n                                if (data.contactId) {\n                                    onConfirm(data.partnerId, data.contactId);\n                                } else {\n                                    logWarning('empty deletingContactId');\n                                }\n                            },\n                        },\n                    ]}\n                    icon={<BigTrashIcon />}\n                    title={t('common:team-members.dialogs.delete-contact.title', {\n                        fullName: contact?.fullName,\n                    })}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default DeleteContactConfirmation;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"ControlsCell__wrap___CjBks\",\"controls\":\"ControlsCell__controls___jGHhF\",\"option\":\"ControlsCell__option___GWmf6\",\"option__icon\":\"ControlsCell__option__icon___CDp1c\",\"option__icon--delete\":\"ControlsCell__option__icon--delete___WKvOg\",\"option__icon--assign-admin\":\"ControlsCell__option__icon--assign-admin___AUOGL\",\"fadeIn\":\"ControlsCell__fadeIn___Qgjkl\",\"blinking\":\"ControlsCell__blinking___Fi1EC\"};","export enum FieldsEnum {\n    totalPrice = 'totalPrice',\n}\n\nexport type FormTouchedT = Partial<Record<FieldsEnum, boolean>>;\n\nexport type FormValuesT = {\n    [FieldsEnum.totalPrice]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import { FieldsEnum, FormValuesT, UpdateWayEnum } from './constants';\nimport { AssetDataT } from '../models';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport { ApiChangeContractVehiclesRequestT, ApiChangeRateVehiclesRequestT } from 'common/utils/api/models';\nimport { isNonNil } from 'common/utils';\nimport isNumber from 'lodash/isNumber';\n\nexport const prepareChangeRateRequest = (\n    assets: Array<AssetDataT>,\n    values: FormValuesT,\n): ApiChangeRateVehiclesRequestT | null => {\n    const assetIds = assets.map((asset) => asset?.id).filter(isNonNil) || [];\n\n    const rate = parseSimpleNumber(values[FieldsEnum.rate]);\n    if (!isNumber(rate)) {\n        return null;\n    }\n\n    return {\n        ids: assetIds,\n        rate,\n    };\n};\n\nexport const prepareChangeContractRequest = (\n    assets: Array<AssetDataT>,\n    values: FormValuesT,\n): ApiChangeContractVehiclesRequestT | null => {\n    const assetIds = assets.map((asset) => asset?.id).filter(isNonNil) || [];\n\n    if (values[FieldsEnum.updateWay] === UpdateWayEnum.unassignContract) {\n        return {\n            ids: assetIds,\n        };\n    }\n\n    return {\n        ids: assetIds,\n        contractId: values[FieldsEnum.contractId] || undefined,\n    };\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"LogsSwitchableViewLayout__container___yHGU9\",\"controls\":\"LogsSwitchableViewLayout__controls___um7Y2\",\"fadeIn\":\"LogsSwitchableViewLayout__fadeIn___F5Ugy\",\"blinking\":\"LogsSwitchableViewLayout__blinking___kTOTp\"};","import * as React from 'react';\nimport ActionOverlay from 'common/components/ActionOverlay/ActionOverlay';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\n\ntype PropsT = {\n    className?: string;\n};\n\nconst LockStatusOnChangeForm: React.FC<PropsT> = React.memo((props) => {\n    const { children, className } = props;\n\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n    const hasFormChanges = !!remoteFormActionsContext?.remoteFormState?.hasChanges;\n\n    return (\n        <ActionOverlay isActive={hasFormChanges} className={className}>\n            {children}\n        </ActionOverlay>\n    );\n});\n\nexport default LockStatusOnChangeForm;\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"TruckFiltersSidebarContent__form___ADMyX\",\"selected-filters\":\"TruckFiltersSidebarContent__selected-filters____PnJG\",\"field--plate-number\":\"TruckFiltersSidebarContent__field--plate-number___OxFs7\",\"field--emission-class\":\"TruckFiltersSidebarContent__field--emission-class___ab5Zx\",\"field--status\":\"TruckFiltersSidebarContent__field--status___Zr6Oo\",\"field--country\":\"TruckFiltersSidebarContent__field--country___olAAK\",\"field--contract\":\"TruckFiltersSidebarContent__field--contract___M28uM\",\"field--user\":\"TruckFiltersSidebarContent__field--user___P83UU\",\"field--date\":\"TruckFiltersSidebarContent__field--date___tGaIe\",\"field--link\":\"TruckFiltersSidebarContent__field--link___XM7Nd\",\"fadeIn\":\"TruckFiltersSidebarContent__fadeIn___f_dsr\",\"blinking\":\"TruckFiltersSidebarContent__blinking___Wr58C\"};","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { ShipperContractLaneDetailsT, UpdateShipperContractLaneChangesT } from './models';\n\nexport type ShipperContractLaneDetailsItemStateT = {\n    fetchRequest: RequestStatusT;\n    data: ShipperContractLaneDetailsT | null;\n};\n\nexport const initialShipperContractLaneDetailsItemState: ShipperContractLaneDetailsItemStateT = {\n    fetchRequest: requestStatus.initial,\n    data: null,\n};\n\nexport type ShipperContractLaneDetailsStateT = {\n    updateRequest: RequestStatusT;\n    detailsById: Record<ShipperContractLaneIdT, ShipperContractLaneDetailsItemStateT>;\n};\n\nconst initialState: ShipperContractLaneDetailsStateT = {\n    updateRequest: requestStatus.initial,\n    detailsById: {},\n};\n\nexport const shipperContractLaneDetailsSlice = createSlice({\n    name: 'shipperContractLaneDetails',\n    initialState,\n    reducers: {\n        fetchShipperContractLaneDetails: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                partnerId: PartnerIdT;\n                shipperContractId: ShipperContractIdT;\n                laneId: ShipperContractLaneIdT;\n                options?: FetchOptionsT;\n            }>,\n        ) => {\n            // nothing\n        },\n        fetchShipperContractLaneDetailsBegin: (\n            state,\n            action: PayloadAction<{\n                shipperContractId: ShipperContractIdT;\n                laneId: ShipperContractLaneIdT;\n                options?: FetchOptionsT;\n            }>,\n        ) => {\n            const { laneId } = action.payload;\n            const detailsItem = state.detailsById[laneId] || initialShipperContractLaneDetailsItemState;\n\n            state.detailsById[laneId] = {\n                ...detailsItem,\n                fetchRequest: requestStatus.loading,\n            };\n        },\n        fetchShipperContractLaneDetailsSuccess: (\n            state,\n            action: PayloadAction<{\n                shipperContractId: ShipperContractIdT;\n                laneId: ShipperContractLaneIdT;\n                data: ShipperContractLaneDetailsT | null;\n            }>,\n        ) => {\n            const { laneId, data } = action.payload;\n            const detailsItem = state.detailsById[laneId] || initialShipperContractLaneDetailsItemState;\n\n            state.detailsById[laneId] = {\n                ...detailsItem,\n                fetchRequest: requestStatus.ok,\n                data,\n            };\n        },\n        fetchShipperContractLaneDetailsError: (\n            state,\n            action: PayloadAction<{\n                shipperContractId: ShipperContractIdT;\n                laneId: ShipperContractLaneIdT;\n                error: Error;\n            }>,\n        ) => {\n            const { laneId, error } = action.payload;\n            const detailsItem = state.detailsById[laneId] || initialShipperContractLaneDetailsItemState;\n\n            state.detailsById[laneId] = {\n                ...detailsItem,\n                fetchRequest: requestStatus.setError(error),\n            };\n        },\n        revokeShipperContractLane: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                partnerId: PartnerIdT;\n                shipperContractId: ShipperContractIdT;\n                laneId: ShipperContractLaneIdT;\n            }>,\n        ) => {\n            // nothing\n        },\n        updateShipperContractLane: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                partnerId: PartnerIdT;\n                shipperContractId: ShipperContractIdT;\n                laneId: ShipperContractLaneIdT;\n                detailsChanges: UpdateShipperContractLaneChangesT;\n            }>,\n        ) => {\n            // nothing\n        },\n        updateShipperContractLaneDetailsBegin: (\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{}>,\n        ) => {\n            state.updateRequest = requestStatus.loading;\n        },\n        updateShipperContractLaneDetailsSuccess: (\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{}>,\n        ) => {\n            state.updateRequest = requestStatus.ok;\n        },\n        updateShipperContractLaneDetailsError: (\n            state,\n            action: PayloadAction<{\n                error: Error;\n            }>,\n        ) => {\n            const { error } = action.payload;\n            state.updateRequest = requestStatus.setError(error);\n        },\n    },\n});\n\nexport const {\n    fetchShipperContractLaneDetails,\n    fetchShipperContractLaneDetailsBegin,\n    fetchShipperContractLaneDetailsSuccess,\n    fetchShipperContractLaneDetailsError,\n    revokeShipperContractLane,\n    updateShipperContractLane,\n    updateShipperContractLaneDetailsBegin,\n    updateShipperContractLaneDetailsError,\n    updateShipperContractLaneDetailsSuccess,\n} = shipperContractLaneDetailsSlice.actions;\n\nexport default shipperContractLaneDetailsSlice.reducer;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"ShipperContractLanesLayout__fadeIn___qASJn\",\"blinking\":\"ShipperContractLanesLayout__blinking___GhlC5\"};","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './InviteDriverForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport { AsyncFormErrorsT, FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { ApiInviteDriverRequestT } from 'common/utils/api/models';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport PhoneNumberInput from 'common/components/PhoneNumberInput/PhoneNumberInput';\nimport { PHONE_NUMBER_PREFIX } from 'common/constants';\nimport useAsyncFormErrors from 'common/utils/hooks/useAsyncFormErrors';\nimport asyncValidate from './async-validations';\nimport { TranziitApiRequestErrorSubTypeEnum } from 'common/utils/api/tranziit/errors/tranziit-api-errors';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    requestStatus: RequestStatusT;\n    onInviteUser: (newDriver: ApiInviteDriverRequestT) => void;\n};\n\nexport const INITIAL_VALUES: FormValuesT = {\n    [FieldsEnum.phone]: PHONE_NUMBER_PREFIX,\n};\n\nconst InviteDriverForm: React.FC<PropsT> = (props) => {\n    const { onInviteUser, requestStatus } = props;\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = {\n            ...INITIAL_VALUES,\n        };\n\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            onInviteUser({\n                phone: values[FieldsEnum.phone],\n            });\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const renderPhoneNumberAsyncError = (asyncError: AsyncFormErrorsT[FieldsEnum.phone]): string | null => {\n        if (asyncError === TranziitApiRequestErrorSubTypeEnum.phoneAlreadyExist) {\n            return t('common:auth-errors.phone-already-exist');\n        }\n\n        return asyncError || null;\n    };\n\n    const asyncErrors = React.useMemo(() => {\n        return asyncValidate(requestStatus);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [requestStatus.error]);\n\n    const { asyncFormErrors, resetAsyncFormErrors } = useAsyncFormErrors(asyncErrors);\n\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <div className={cx('wrap')}>\n                <div className={cx('image')} />\n                <div className={cx('title')}>{t('common:drivers-page.invite-modal.title')}</div>\n                <div className={cx('form')}>\n                    <FormikField\n                        name={FieldsEnum.phone}\n                        error={formik.errors[FieldsEnum.phone]}\n                        meta={formik.getFieldMeta(FieldsEnum.phone)}\n                        label={t('common:drivers-page.invite-modal.fields.labels.phone')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                        asyncError={renderPhoneNumberAsyncError(asyncFormErrors[FieldsEnum.phone])}\n                        resetAsyncError={resetAsyncFormErrors}\n                    >\n                        {(props) => (\n                            <PhoneNumberInput\n                                name={FieldsEnum.phone}\n                                value={formik.values[FieldsEnum.phone]}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                            />\n                        )}\n                    </FormikField>\n                </div>\n                <Button\n                    theme={ButtonThemeEnum.primary}\n                    isLoading={requestStatus.loading}\n                    isFullWidth\n                    isCenterContent\n                    type=\"submit\"\n                >\n                    {t('common:drivers-page.invite-modal.submit')}\n                </Button>\n            </div>\n        </form>\n    );\n};\n\nexport default InviteDriverForm;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"PickupOrDeliveryRoutePointPicker__wrap___sSA9P\",\"field--location\":\"PickupOrDeliveryRoutePointPicker__field--location___Dk5LS\",\"geo-suggest\":\"PickupOrDeliveryRoutePointPicker__geo-suggest___jJDFg\",\"time-picker\":\"PickupOrDeliveryRoutePointPicker__time-picker___OvBYL\",\"triangle\":\"PickupOrDeliveryRoutePointPicker__triangle___VhHjQ\",\"triangle--has-remove-control\":\"PickupOrDeliveryRoutePointPicker__triangle--has-remove-control___g_jPJ\",\"right-node\":\"PickupOrDeliveryRoutePointPicker__right-node___Twu_r\",\"time-interval\":\"PickupOrDeliveryRoutePointPicker__time-interval___PIxHm\",\"time-interval--isHalfOpacity\":\"PickupOrDeliveryRoutePointPicker__time-interval--isHalfOpacity___lGosY\",\"fadeIn\":\"PickupOrDeliveryRoutePointPicker__fadeIn___WGvwm\",\"blinking\":\"PickupOrDeliveryRoutePointPicker__blinking___jHu8f\"};","// extracted by mini-css-extract-plugin\nexport default {\"table__header\":\"DriversTable__table__header___T0Nc5\",\"table__column--avatar\":\"DriversTable__table__column--avatar___nmdeL\",\"table__column--any\":\"DriversTable__table__column--any___Sshsg\",\"table__column--status\":\"DriversTable__table__column--status___T30dJ\",\"fadeIn\":\"DriversTable__fadeIn___TFyF2\",\"blinking\":\"DriversTable__blinking___fY77K\"};","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkEmail, checkMaxLength, checkMinLength, checkNotEmpty } from 'common/utils/form-validators';\n\nconst REQUIRED_FIELDS = [FieldsEnum.email, FieldsEnum.password];\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n        ...checkMinLength(t, [FieldsEnum.password], values, 6),\n        ...checkMaxLength(t, [FieldsEnum.password], values, 255),\n        ...checkEmail(t, [FieldsEnum.email], values),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"LogCardLayout__inner___MY2m7\",\"icon\":\"LogCardLayout__icon___IUIvU\",\"content\":\"LogCardLayout__content___co7TL\",\"header\":\"LogCardLayout__header___T9itD\",\"footer\":\"LogCardLayout__footer___lLDft\",\"id\":\"LogCardLayout__id___fy9Pw\",\"fadeIn\":\"LogCardLayout__fadeIn___IbDcx\",\"blinking\":\"LogCardLayout__blinking___W30Yi\"};","import { DeadheadContactT } from 'broker-admin/store/deadhead-creation/models';\nimport { PointContactsFormValuesT } from '../RouteDetailsForm/constants';\nimport { parsePhoneNumber } from 'common/utils/input-parsers';\n\nexport const prepareContacts = (contacts: Array<PointContactsFormValuesT>): Array<DeadheadContactT> => {\n    return contacts.map(\n        ({ companyName, fullName, email, phoneNumber, comment }): DeadheadContactT => ({\n            companyName,\n            fullName,\n            email,\n            phone: parsePhoneNumber(phoneNumber) || undefined,\n            comment,\n        }),\n    );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"loader-overlay\":\"LoaderOverlay__loader-overlay___Um7SN\",\"overlay\":\"LoaderOverlay__overlay___KvN1t\",\"inner\":\"LoaderOverlay__inner___BqVeC\",\"fadeIn\":\"LoaderOverlay__fadeIn___nwj7m\",\"blinking\":\"LoaderOverlay__blinking___c1Hin\"};","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const spotRequestsStatsRefreshChannel = new ViewEventChannel<{}>();\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"UploadShipperContractSidebarContent__form___U_ipH\",\"field--name\":\"UploadShipperContractSidebarContent__field--name___xyCJ1\",\"field--number\":\"UploadShipperContractSidebarContent__field--number___fRRZm\",\"field--valid-till\":\"UploadShipperContractSidebarContent__field--valid-till___lWkzW\",\"field--activate-date\":\"UploadShipperContractSidebarContent__field--activate-date___LR1cI\",\"field--file\":\"UploadShipperContractSidebarContent__field--file___wY42H\",\"fadeIn\":\"UploadShipperContractSidebarContent__fadeIn___d8MsD\",\"blinking\":\"UploadShipperContractSidebarContent__blinking___LVDHl\"};","export const ANY_TRAILER_TYPE = '__any__';\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { PRICE_COMPONENT_T_MAP } from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/constants';\nimport { checkIsPriceComponent } from '../../utils';\nimport { ApiPriceComponentTypeT } from 'broker-admin/utils/api/broker-tranziit/models';\n\ntype PropsT = {\n    priceComponent: ApiPriceComponentTypeT | null | undefined;\n};\n\nconst PriceComponentFilterPill: React.FC<PropsT> = React.memo((props) => {\n    const { priceComponent } = props;\n\n    const { t } = useTranslation();\n\n    if (!priceComponent) {\n        return null;\n    }\n\n    if (checkIsPriceComponent(priceComponent)) {\n        return <span>{t(PRICE_COMPONENT_T_MAP[priceComponent])}</span>;\n    }\n\n    return <span>{priceComponent}</span>;\n});\n\nexport default PriceComponentFilterPill;\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT, MAX_RADIUS_KM, MIN_VALID_FROM_VALID_TILL_DAYS } from './constants';\nimport {\n    checkIsPositiveNumberValue,\n    checkMaxValue,\n    checkNotEmpty,\n    checkRoundValue,\n} from 'common/utils/form-validators';\nimport { getDayDiff } from 'common/utils/time';\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(\n            t,\n            [\n                FieldsEnum.pickUpLocationRadius,\n\n                FieldsEnum.dropOffLocationRadius,\n\n                FieldsEnum.validFrom,\n                FieldsEnum.validTill,\n\n                FieldsEnum.layoverLimit,\n            ],\n            values,\n        ),\n        ...checkIsPositiveNumberValue(\n            t,\n            [FieldsEnum.pickUpLocationRadius, FieldsEnum.dropOffLocationRadius, FieldsEnum.layoverLimit],\n            values,\n        ),\n        ...checkMaxValue(t, [FieldsEnum.pickUpLocationRadius, FieldsEnum.dropOffLocationRadius], values, MAX_RADIUS_KM),\n        ...checkMaxValue(t, [FieldsEnum.layoverLimit], values, 48),\n        ...checkRoundValue(t, [FieldsEnum.layoverLimit], values),\n    };\n\n    const validFrom = values[FieldsEnum.validFrom];\n    const validTill = values[FieldsEnum.validTill];\n\n    if (validFrom && validTill && getDayDiff(validFrom, validTill) < MIN_VALID_FROM_VALID_TILL_DAYS) {\n        errors[FieldsEnum.validTill] = t('common:shipper-lane-details.errors.valid-till-inteval-valid-from', {\n            count: MIN_VALID_FROM_VALID_TILL_DAYS,\n        });\n    }\n\n    return errors;\n};\n\nexport default validate;\n","import React, { ReactNode } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport DocumentsTable, {\n    TableColumnModsEnum,\n    TableColumnT,\n    TableRowMetaT,\n    TableRowModsEnum,\n    TableRowThemeEnum,\n} from 'common/components/DocumentsTable/DocumentsTable';\nimport MemoizedTable from 'common/components/Table/MemoizedTable/MemoizedTable';\nimport classNames from 'classnames/bind';\nimport styles from './BaseShipperContractsTable.scss';\nimport EventCell from 'common/components/Table/cell-renderers/EventCell/EventCell';\nimport { ApiShipperContractStatusT } from 'common/utils/api/models';\nimport { ShipperContractsTableRowT } from './models';\nimport ContractNameCell from './cell-renderers/ContractNameCell/ContractNameCell';\nimport DateCell from 'common/components/Table/cell-renderers/DateCell/DateCell';\nimport IdCell from './cell-renderers/IdCell/IdCell';\nimport OrdersCountCell from 'common/layouts/BaseShipperContractsLayout/BaseShipperContractsTable/cell-renderers/OrdersCountCell/OrdersCountCell';\nimport ShipperContractStatusPill from 'common/components/status-pill/ShipperContractStatusPill/ShipperContractStatusPill';\nimport { checkIsApiBrokerShipperContract } from 'common/store/shipper-contracts/type-guards';\n\ntype PropsT = {\n    className?: string;\n    tableName: string;\n    rows: Array<ShipperContractsTableRowT>;\n    onSelectRow?: (row: ShipperContractsTableRowT) => void;\n    isLoading: boolean;\n    testSelector?: string;\n    headerNode?: ReactNode;\n    footerNode?: ReactNode;\n    onOpenUserDetails: (userId: UserIdT) => void;\n    contactStatusesAttentionSet?: Set<ApiShipperContractStatusT | null>;\n};\n\nconst cx = classNames.bind(styles);\n\nconst VALID_DATE_FORMAT = 'DD MMM YYYY';\n\nconst BaseShipperContractsTable: React.FC<PropsT> = React.memo((props) => {\n    const {\n        tableName,\n        rows,\n        isLoading,\n        onOpenUserDetails,\n        testSelector,\n        className,\n        headerNode,\n        footerNode,\n        onSelectRow,\n        contactStatusesAttentionSet,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const columns: Array<TableColumnT<ShipperContractsTableRowT, void>> = [\n        {\n            renderHeader: () => <span>{t('common:shipper-contracts.table.columns.id')}</span>,\n            headerClassName: cx('table__header', 'table__header--id'),\n            render: (row: ShipperContractsTableRowT) => <IdCell id={row.tztContractId} />,\n            className: cx('table__column', 'table__column--id'),\n            testSelector: 'id',\n        },\n        {\n            renderHeader: () => <span>{t('common:shipper-contracts.table.columns.name')}</span>,\n            headerClassName: cx('table__header', 'table__header--name'),\n            render: (row: ShipperContractsTableRowT) => <ContractNameCell name={row.name} />,\n            className: cx('table__column', 'table__column--name'),\n            testSelector: 'name',\n        },\n        {\n            renderHeader: () => <span>{t('common:shipper-contracts.table.columns.orders-counter')}</span>,\n            headerClassName: cx('table__header', 'table__header--orders-counter'),\n            headerMods: {\n                [TableColumnModsEnum.center]: true,\n            },\n            render: (row: ShipperContractsTableRowT) => (\n                <OrdersCountCell\n                    status={row.status}\n                    ordersLeft={row.ordersLeft}\n                    maxNumberOfOrders={row.maxNumberOfOrders}\n                />\n            ),\n            className: cx('table__column', 'table__column--orders-counter'),\n            testSelector: 'orders-counter',\n        },\n        {\n            renderHeader: () => <span>{t('common:shipper-contracts.table.columns.upload')}</span>,\n            headerClassName: cx('table__header', 'table__header--uploaded'),\n            render: (row: ShipperContractsTableRowT) => {\n                if (checkIsApiBrokerShipperContract(row)) {\n                    return (\n                        <EventCell\n                            date={row.createdDate}\n                            userId={row.createdById}\n                            userFullName={row.createdByName}\n                            byBroker\n                            openUserDetails={onOpenUserDetails}\n                        />\n                    );\n                }\n\n                return <DateCell isBold isBigFont date={row.createdDate} />;\n            },\n            className: cx('table__column', 'table__column--uploaded'),\n            testSelector: 'upload',\n        },\n        {\n            renderHeader: () => <span>{t('common:shipper-contracts.table.columns.valid-till')}</span>,\n            headerClassName: cx('table__header', 'table__header--expire-date'),\n            render: (row: ShipperContractsTableRowT) => {\n                return <DateCell date={row.validTill} dateFormat={VALID_DATE_FORMAT} isBigFont isBold />;\n            },\n            className: cx('table__column', 'table__column--expire-date'),\n            testSelector: 'valid-till',\n        },\n        {\n            renderHeader: () => <span>{t('common:shipper-contracts.table.columns.status')}</span>,\n            headerClassName: cx('table__header', 'table__header--status'),\n            render: (row: ShipperContractsTableRowT) => {\n                return <ShipperContractStatusPill status={row.status} isSymmetrical />;\n            },\n            className: cx('table__column', 'table__column--status'),\n            testSelector: 'status',\n        },\n    ];\n\n    const getRowMods = (meta: TableRowMetaT, row: ShipperContractsTableRowT) => {\n        return {\n            [TableRowModsEnum.hasLeftOrangeBorder]: row?.status && contactStatusesAttentionSet?.has(row.status),\n        };\n    };\n\n    const getRowTheme = (): TableRowThemeEnum => {\n        return TableRowThemeEnum.normal;\n    };\n\n    return (\n        <div className={cx('table')}>\n            <MemoizedTable<ShipperContractsTableRowT> tableName={tableName} isLoading={isLoading} rows={rows}>\n                {(rows, isUsedPrevRows) => (\n                    <DocumentsTable<ShipperContractsTableRowT, void>\n                        testSelector={testSelector}\n                        className={className}\n                        columns={columns}\n                        rows={rows}\n                        isLoading={isLoading}\n                        getRowMods={getRowMods}\n                        getRowTheme={getRowTheme}\n                        onSelectRow={onSelectRow}\n                        isUsedPrevRows={isUsedPrevRows}\n                        headerNode={headerNode}\n                        footerNode={footerNode}\n                    />\n                )}\n            </MemoizedTable>\n        </div>\n    );\n});\n\nexport default BaseShipperContractsTable;\n","// extracted by mini-css-extract-plugin\nexport default {\"container\":\"AlertContainer__container___Vopew\",\"fadeIn\":\"AlertContainer__fadeIn___G3bmd\",\"blinking\":\"AlertContainer__blinking___NvT6u\"};","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"RuleTypeMultipleControl__fadeIn___DVH2K\",\"blinking\":\"RuleTypeMultipleControl__blinking___gs5sh\"};","import { SharableStateT } from '../models';\nimport { initialStateMachineItemState, StateMachineItemStateT } from './slice';\nimport { StateMachineEntityDescriptorT } from 'common/store/state-machine/models';\nimport { getStateMachineEntityHash } from 'common/store/state-machine/utils';\n\nexport const selectStateMachineItemState = <T extends string>(descriptor: StateMachineEntityDescriptorT | null) => {\n    return (state: SharableStateT): StateMachineItemStateT<T> => {\n        if (!descriptor) {\n            // @ts-expect-error T is generic\n            return initialStateMachineItemState;\n        }\n\n        const hash = getStateMachineEntityHash(descriptor);\n\n        // @ts-expect-error T is generic\n        return state.stateMachine[hash] || initialStateMachineItemState;\n    };\n};\n","import { RequestStatusT } from 'common/utils/request-status';\n\nexport const ASSIGNMENT_REQUEST = 'common/driver-assigment/ASSIGNMENT_REQUEST';\nexport const ASSIGNMENT_REQUEST_BEGIN = 'common/driver-assigment/ASSIGNMENT_REQUEST_BEGIN';\nexport const ASSIGNMENT_REQUEST_ERROR = 'common/driver-assigment/ASSIGNMENT_REQUEST_ERROR';\nexport const ASSIGNMENT_REQUEST_SUCCESS = 'common/driver-assigment/ASSIGNMENT_REQUEST_SUCCESS';\n\nexport const RE_ASSIGNMENT_REQUEST = 'common/driver-assigment/RE_ASSIGNMENT_REQUEST';\nexport const RE_ASSIGNMENT_REQUEST_BEGIN = 'common/driver-assigment/RE_ASSIGNMENT_REQUEST_BEGIN';\nexport const RE_ASSIGNMENT_REQUEST_ERROR = 'common/driver-assigment/RE_ASSIGNMENT_REQUEST_ERROR';\nexport const RE_ASSIGNMENT_REQUEST_SUCCESS = 'common/driver-assigment/RE_ASSIGNMENT_REQUEST_SUCCESS';\n\nexport const RESET = 'common/driver-assigment/RESET';\n\nexport type DriverAssigmentStateT = {\n    tourId: TourIdT | null;\n    assigmentStatus: RequestStatusT;\n    reAssigmentStatus: RequestStatusT;\n};\n\nexport type AssignActionT = {\n    type: typeof ASSIGNMENT_REQUEST;\n    driverIds: DriverIdT[];\n    transportationOrderId: TransportOrderIdT;\n};\n\nexport type AssignBeginActionT = {\n    type: typeof ASSIGNMENT_REQUEST_BEGIN;\n};\n\nexport type AssignSuccessActionT = {\n    type: typeof ASSIGNMENT_REQUEST_SUCCESS;\n};\n\nexport type AssignErrorActionT = {\n    type: typeof ASSIGNMENT_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type ReAssignActionT = {\n    type: typeof RE_ASSIGNMENT_REQUEST;\n    driverIds: DriverIdT[];\n    transportationOrderId: TransportOrderIdT | undefined;\n};\n\nexport type ReAssignBeginActionT = {\n    type: typeof RE_ASSIGNMENT_REQUEST_BEGIN;\n};\n\nexport type ReAssignSuccessActionT = {\n    type: typeof RE_ASSIGNMENT_REQUEST_SUCCESS;\n};\n\nexport type ReAssignErrorActionT = {\n    type: typeof RE_ASSIGNMENT_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type ResetActionT = {\n    type: typeof RESET;\n};\n\nexport type DriverAssigmentActionT =\n    | AssignActionT\n    | AssignBeginActionT\n    | AssignSuccessActionT\n    | AssignErrorActionT\n    | ReAssignActionT\n    | ReAssignBeginActionT\n    | ReAssignSuccessActionT\n    | ReAssignErrorActionT\n    | ResetActionT;\n","import { TFunction } from 'i18next';\nimport { FormErrorsT, FormValuesT } from './constants';\n\nconst validate = (\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    t: TFunction,\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    values: FormValuesT,\n): FormErrorsT => {\n    const errors: FormErrorsT = {};\n\n    return errors;\n};\n\nexport default validate;\n","import { CompanyDriverDetailsT, CompanyDriverT, FetchCompanyDriversPageQueryT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nimport { ApiAddDriverRequestT, ApiInviteDriverRequestT, ApiUpdateDriverRequestT } from 'common/utils/api/models';\nimport { PageResponseT, PaginationStateT } from 'common/utils/pagination/models';\n\nexport const FETCH_DRIVERS_PAGE_REQUEST = 'common/drivers/FETCH_DRIVERS_PAGE_REQUEST';\nexport const FETCH_DRIVERS_PAGE_REQUEST_BEGIN = 'common/drivers/FETCH_DRIVERS_PAGE_REQUEST_BEGIN';\nexport const FETCH_DRIVERS_PAGE_REQUEST_SUCCESS = 'common/drivers/FETCH_DRIVERS_PAGE_REQUEST_SUCCESS';\nexport const FETCH_DRIVERS_PAGE_REQUEST_ERROR = 'common/drivers/FETCH_DRIVERS_PAGE_REQUEST_ERROR';\nexport const RESET_DRIVERS = 'common/drivers/RESET_DRIVERS';\n\nexport const FETCH_DRIVER_DETAILS_REQUEST = 'common/drivers/FETCH_DRIVER_DETAILS_REQUEST';\nexport const FETCH_DRIVER_DETAILS_REQUEST_BEGIN = 'common/drivers/FETCH_DRIVER_DETAILS_REQUEST_BEGIN';\nexport const FETCH_DRIVER_DETAILS_REQUEST_SUCCESS = 'common/drivers/FETCH_DRIVER_DETAILS_REQUEST_SUCCESS';\nexport const FETCH_DRIVER_DETAILS_REQUEST_ERROR = 'common/drivers/FETCH_DRIVER_DETAILS_REQUEST_ERROR';\n\nexport const INVITE_DRIVER_REQUEST = 'common/drivers/INVITE_DRIVER_REQUEST';\nexport const INVITE_DRIVER_REQUEST_BEGIN = 'common/drivers/INVITE_DRIVER_REQUEST_BEGIN';\nexport const INVITE_DRIVER_REQUEST_SUCCESS = 'common/drivers/INVITE_DRIVER_REQUEST_SUCCESS';\nexport const INVITE_DRIVER_REQUEST_ERROR = 'common/drivers/INVITE_DRIVER_REQUEST_ERROR';\n\nexport const ADD_DRIVER_REQUEST = 'common/drivers/ADD_DRIVER_REQUEST';\nexport const ADD_DRIVER_REQUEST_BEGIN = 'common/drivers/ADD_DRIVER_REQUEST_BEGIN';\nexport const ADD_DRIVER_REQUEST_SUCCESS = 'common/drivers/ADD_DRIVER_REQUEST_SUCCESS';\nexport const ADD_DRIVER_REQUEST_ERROR = 'common/drivers/ADD_DRIVER_REQUEST_ERROR';\n\nexport const DELETE_DRIVER_REQUEST = 'common/drivers/DELETE_DRIVER_REQUEST';\nexport const DELETE_DRIVER_REQUEST_BEGIN = 'common/drivers/DELETE_DRIVER_REQUEST_BEGIN';\nexport const DELETE_DRIVER_REQUEST_SUCCESS = 'common/drivers/DELETE_DRIVER_REQUEST_SUCCESS';\nexport const DELETE_DRIVER_REQUEST_ERROR = 'common/drivers/DELETE_DRIVER_REQUEST_ERROR';\n\nexport const ACTIVATE_DRIVER = 'common/drivers/ACTIVATE_DRIVER';\nexport const ARCHIVE_DRIVER = 'common/drivers/ARCHIVE_DRIVER';\nexport const CANCEL_DRIVER_INVITE = 'common/drivers/CANCEL_DRIVER_INVITE';\n\nexport const UPDATE_DRIVER_REQUEST = 'common/drivers/UPDATE_DRIVER_REQUEST';\nexport const UPDATE_DRIVER_REQUEST_BEGIN = 'common/drivers/UPDATE_DRIVER_REQUEST_BEGIN';\nexport const UPDATE_DRIVER_REQUEST_SUCCESS = 'common/drivers/UPDATE_DRIVER_REQUEST_SUCCESS';\nexport const UPDATE_DRIVER_REQUEST_ERROR = 'common/drivers/UPDATE_DRIVER_REQUEST_ERROR';\n\nexport type FetchDriversPageActionT = {\n    type: typeof FETCH_DRIVERS_PAGE_REQUEST;\n    pageNumber: PageNumberT;\n    companyId: CompanyIdT;\n    query: FetchCompanyDriversPageQueryT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchDriversPageBeginActionT = {\n    type: typeof FETCH_DRIVERS_PAGE_REQUEST_BEGIN;\n    pageNumber: PageNumberT;\n    query: FetchCompanyDriversPageQueryT;\n    companyId: CompanyIdT;\n};\n\nexport type FetchDriversPageSuccessActionT = {\n    type: typeof FETCH_DRIVERS_PAGE_REQUEST_SUCCESS;\n    pageNumber: PageNumberT;\n    query: FetchCompanyDriversPageQueryT;\n    pageResponse: PageResponseT<CompanyDriverT> | null;\n    companyId: CompanyIdT;\n};\n\nexport type FetchDriversPageErrorActionT = {\n    type: typeof FETCH_DRIVERS_PAGE_REQUEST_ERROR;\n    pageNumber: PageNumberT;\n    error: Error;\n    query: FetchCompanyDriversPageQueryT;\n    companyId: CompanyIdT;\n};\n\nexport type ResetDriversActionT = {\n    type: typeof RESET_DRIVERS;\n    companyId: CompanyIdT;\n    mutationListOptions: MutationListOptionsT;\n};\n\nexport type InviteDriverActionT = {\n    type: typeof INVITE_DRIVER_REQUEST;\n    newDriver: ApiInviteDriverRequestT;\n    companyId: CompanyIdT;\n};\n\nexport type InviteDriverBeginActionT = {\n    type: typeof INVITE_DRIVER_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type InviteDriverSuccessActionT = {\n    type: typeof INVITE_DRIVER_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n};\n\nexport type InviteDriverErrorActionT = {\n    type: typeof INVITE_DRIVER_REQUEST_ERROR;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type AddDriverActionT = {\n    type: typeof ADD_DRIVER_REQUEST;\n    newDriver: ApiAddDriverRequestT;\n    companyId: CompanyIdT;\n};\n\nexport type AddDriverBeginActionT = {\n    type: typeof ADD_DRIVER_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type AddDriverSuccessActionT = {\n    type: typeof ADD_DRIVER_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n};\n\nexport type AddDriverErrorActionT = {\n    type: typeof ADD_DRIVER_REQUEST_ERROR;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type DeleteDriverActionT = {\n    type: typeof DELETE_DRIVER_REQUEST;\n    driverId: DriverIdT;\n    companyId: CompanyIdT;\n};\n\nexport type DeleteDriverBeginActionT = {\n    type: typeof DELETE_DRIVER_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type DeleteDriverSuccessActionT = {\n    type: typeof DELETE_DRIVER_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n};\n\nexport type DeleteDriverErrorActionT = {\n    type: typeof DELETE_DRIVER_REQUEST_ERROR;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type UpdateDriverActionT = {\n    type: typeof UPDATE_DRIVER_REQUEST;\n    driverId: DriverIdT;\n    driverChanges: ApiUpdateDriverRequestT;\n    companyId: CompanyIdT;\n};\n\nexport type ActivateDriverActionT = {\n    type: typeof ACTIVATE_DRIVER;\n    driverId: DriverIdT;\n    companyId: CompanyIdT;\n};\n\nexport type ArchiveDriverActionT = {\n    type: typeof ARCHIVE_DRIVER;\n    driverId: DriverIdT;\n    companyId: CompanyIdT;\n};\n\nexport type CancelDriverInviteActionT = {\n    type: typeof CANCEL_DRIVER_INVITE;\n    companyId: CompanyIdT;\n    driverUserId: UserIdT;\n};\n\nexport type UpdateDriverBeginActionT = {\n    type: typeof UPDATE_DRIVER_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type UpdateDriverSuccessActionT = {\n    type: typeof UPDATE_DRIVER_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n};\n\nexport type UpdateDriverErrorActionT = {\n    type: typeof UPDATE_DRIVER_REQUEST_ERROR;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type FetchDriverDetailsActionT = {\n    type: typeof FETCH_DRIVER_DETAILS_REQUEST;\n    companyId: CompanyIdT;\n    driverId: DriverIdT;\n    fetchOptions: FetchOptionsT;\n};\n\nexport type FetchDriverDetailsBeginActionT = {\n    type: typeof FETCH_DRIVER_DETAILS_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type FetchDriverDetailsSuccessActionT = {\n    type: typeof FETCH_DRIVER_DETAILS_REQUEST_SUCCESS;\n    driverId: DriverIdT;\n    companyId: CompanyIdT;\n    details: CompanyDriverDetailsT | null;\n};\n\nexport type FetchDriverDetailsErrorActionT = {\n    type: typeof FETCH_DRIVER_DETAILS_REQUEST_ERROR;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type DriversActionT =\n    | FetchDriversPageActionT\n    | FetchDriversPageBeginActionT\n    | FetchDriversPageSuccessActionT\n    | FetchDriversPageErrorActionT\n    | InviteDriverActionT\n    | InviteDriverBeginActionT\n    | InviteDriverSuccessActionT\n    | InviteDriverErrorActionT\n    | AddDriverActionT\n    | AddDriverBeginActionT\n    | AddDriverSuccessActionT\n    | AddDriverErrorActionT\n    | DeleteDriverActionT\n    | DeleteDriverBeginActionT\n    | DeleteDriverSuccessActionT\n    | DeleteDriverErrorActionT\n    | ActivateDriverActionT\n    | ArchiveDriverActionT\n    | UpdateDriverActionT\n    | UpdateDriverBeginActionT\n    | UpdateDriverSuccessActionT\n    | UpdateDriverErrorActionT\n    | FetchDriverDetailsActionT\n    | FetchDriverDetailsBeginActionT\n    | FetchDriverDetailsSuccessActionT\n    | FetchDriverDetailsErrorActionT\n    | ResetDriversActionT;\n\nexport type DriverDetailsByIdT = Record<DriverIdT, CompanyDriverDetailsT | null>;\n\nexport type CompanyDriversStateT = PaginationStateT<CompanyDriverT, FetchCompanyDriversPageQueryT> & {\n    inviteRequest: RequestStatusT;\n    addRequest: RequestStatusT;\n    deleteRequest: RequestStatusT;\n    updateRequest: RequestStatusT;\n    fetchDetailsRequest: RequestStatusT;\n    detailsById: DriverDetailsByIdT;\n};\n\nexport type DriversStateT = Record<CompanyIdT, CompanyDriversStateT | null>;\n","import isNil from 'lodash/isNil';\n\nexport const useMoneyDiff = (baseValue: number | null | undefined, value: number | null | undefined): number | null => {\n    return isNil(value) || isNil(baseValue) ? null : value - baseValue;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"Card__wrap___FAqns\",\"wrap--is-highlighted\":\"Card__wrap--is-highlighted___vzboz\",\"shadow-blink\":\"Card__shadow-blink___Ym7oz\",\"title\":\"Card__title___eOfgx\",\"header\":\"Card__header___GTZb1\",\"right-node\":\"Card__right-node___ueGjD\",\"left-node\":\"Card__left-node___iyKzq\",\"content\":\"Card__content___ByoiH\",\"content--has-top-border\":\"Card__content--has-top-border___MBjkg\",\"tooltip\":\"Card__tooltip___YfbL5\",\"fadeIn\":\"Card__fadeIn___hdWg2\",\"blinking\":\"Card__blinking___qQdqo\"};","import { PartnerRFQStatsStateT, RFQStatsStateT } from './types';\nimport { StateT } from 'broker-admin/store/models';\nimport { initialPartnerState } from 'broker-admin/store/partner/rfq-stats/reducer';\n\nexport const selectRFQStatsRequest = (state: StateT): RFQStatsStateT['fetchRequest'] =>\n    state.partner.rfqStats.fetchRequest;\n\nexport const selectCompanyDocumentsGroup =\n    (companyId: CompanyIdT | null) =>\n    (state: StateT): PartnerRFQStatsStateT => {\n        if (!companyId) {\n            return initialPartnerState;\n        }\n        return state.partner.rfqStats.byId[companyId] || initialPartnerState;\n    };\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ExpiredPartnerShipperLaneContractCard.scss';\nimport { Trans } from 'react-i18next';\nimport ShipperContractLaneId from 'broker-admin/components/notification-cards/entities/ShipperContractLaneId/ShipperContractLaneId';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    id: string;\n};\n\nconst ExpiredPartnerShipperLaneContractCard: React.FC<PropsT> = React.memo((props) => {\n    const { id } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"notifications.partner-shipper-contract-lane-expired\"\n                components={{\n                    id: <ShipperContractLaneId id={id} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default ExpiredPartnerShipperLaneContractCard;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst Invoice2Icon: React.FC<PropsT> = (props) => {\n    const { size, fillColor, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" width={size} height={size}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M0 1h18v18H0z\" />\n                <path fill={fillColor} d=\"M5 4h10v12l-1 1H4l-1-1v-2h2z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M15.75 2.5v12.75a2.247 2.247 0 0 1-2.25 2.25h-9a2.247 2.247 0 0 1-2.25-2.25V13H4.5V2.5l1.125 1.125L6.75 2.5l1.125 1.125L9 2.5l1.125 1.125L11.25 2.5l1.125 1.125L13.5 2.5l1.125 1.125L15.75 2.5zm-4.5 12h-7.5v.75c0 .412.338.75.75.75h6.75v-1.5zm3-9.75H6V13h6.75v2.25c0 .412.338.75.75.75s.75-.338.75-.75V4.75zm-3 3.75V10h-4.5V8.5h4.5zm2.25 0V10H12V8.5h1.5zm-2.25-2.25v1.5h-4.5v-1.5h4.5zm2.25 0v1.5H12v-1.5h1.5z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nInvoice2Icon.displayName = 'Invoice2Icon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default Invoice2Icon;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ShipperContractLaneDetailsSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport ShipperContractLaneDetails from './ShipperContractLaneDetails/ShipperContractLaneDetails';\nimport {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport EditIcon from 'common/icons/EditIcon';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport { ShipperContractLaneStatusEnum } from 'common/utils/api/models';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport DeleteIcon from 'common/icons/DeleteIcon';\nimport { ShipperContractLaneDetailsT } from 'common/store/shipper-contract-lane-details/models';\nimport ShipperContractLaneOtherDetails from '../ShipperContractLaneOtherDetails/ShipperContractLaneOtherDetails';\nimport TeamDrivePill from 'common/components/status-pill/TeamDrivePill/TeamDrivePill';\nimport ShipperContractLaneStatusPill from 'common/components/status-pill/ShipperContractLaneStatusPill/ShipperContractLaneStatusPill';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    data: ShipperContractLaneDetailsT | null;\n    isReadOnly?: boolean;\n    onClose?: () => void;\n    onGoBack?: () => void;\n    onRevoke: () => void;\n    onEdit: () => void;\n    onOpenUserDetails?: (userId: UserIdT) => void;\n};\n\nconst ShipperContractLaneDetailsSidebarContent: React.FC<PropsT> = (props) => {\n    const { data, isReadOnly, onClose, onGoBack, onRevoke, onEdit, onOpenUserDetails } = props;\n\n    const { t } = useTranslation();\n\n    const options: Array<DropdownControlOptionT | SpecialOptionEnum | null> = React.useMemo(() => {\n        if (isReadOnly) {\n            return [];\n        }\n\n        return [\n            data?.status === ShipperContractLaneStatusEnum.active && onEdit\n                ? {\n                      label: (\n                          <DropdownControlOptionLabel\n                              label={t('common:shipper-lane-details.actions.edit')}\n                              icon={\n                                  <EditIcon\n                                      size={DEFAULT_ICON_SIZE}\n                                      fillColor={StyleGuideColorsEnum.brandAccent}\n                                      strokeColor={StyleGuideColorsEnum.brandDark}\n                                  />\n                              }\n                          />\n                      ),\n                      onSelect: () => {\n                          onEdit();\n                      },\n                  }\n                : null,\n            data?.status === ShipperContractLaneStatusEnum.active && onRevoke\n                ? {\n                      label: (\n                          <DropdownControlOptionLabel\n                              label={t('common:shipper-lane-details.actions.revoke')}\n                              icon={<DeleteIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                          />\n                      ),\n                      onSelect: () => {\n                          onRevoke();\n                      },\n                  }\n                : null,\n        ];\n    }, [t, onEdit, onRevoke, data, isReadOnly]);\n\n    return (\n        <>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent\n                    title={data?.tztLaneId || ''}\n                    afterTitleNode={\n                        <>\n                            <ShipperContractLaneStatusPill className={cx('status')} status={data?.status} />\n                            {data?.teamDrive && <TeamDrivePill />}\n                        </>\n                    }\n                    dropdownOptions={options}\n                    onClose={() => {\n                        if (onClose) {\n                            onClose();\n                        }\n                    }}\n                    onGoBack={onGoBack}\n                />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <ShipperContractLaneDetails data={data} />\n                <ShipperContractLaneOtherDetails data={data} onOpenUserDetails={onOpenUserDetails} />\n            </SideBarLayout>\n        </>\n    );\n};\nexport default ShipperContractLaneDetailsSidebarContent;\n","import { AsYouType, isPossiblePhoneNumber, CountryCode, getPhoneCode } from 'libphonenumber-js';\nimport { PHONE_NUMBER_PREFIX } from 'common/constants';\n\nconst NOT_NUMBER_REG_EXP = /\\D/g;\n\nexport const clearPhoneNumber = (rawPhoneNumber: string): string => {\n    const asYouType = new AsYouType();\n\n    if (!rawPhoneNumber) {\n        return '';\n    }\n\n    const formattedPhoneNumber = asYouType.input(rawPhoneNumber);\n\n    const clearedPhoneNumber = formattedPhoneNumber.startsWith(PHONE_NUMBER_PREFIX)\n        ? formattedPhoneNumber.replace(PHONE_NUMBER_PREFIX, '')\n        : formattedPhoneNumber;\n\n    return clearedPhoneNumber;\n};\n\nexport const parsePhoneNumber = (rawPhoneNumber: string): string => {\n    const phoneNumber = rawPhoneNumber.replace(NOT_NUMBER_REG_EXP, '');\n    return `${PHONE_NUMBER_PREFIX}${phoneNumber}`;\n};\n\nexport const getCountryCode = (phoneNumber: string): CountryCode | undefined => {\n    const asYouType = new AsYouType();\n    asYouType.input(parsePhoneNumber(phoneNumber));\n    return asYouType.country;\n};\n\nexport const getCountryPhoneNumberStart = (selectedCountryCode: string): string => {\n    const phoneCode = getPhoneCode(selectedCountryCode as CountryCode);\n\n    return `${PHONE_NUMBER_PREFIX}${phoneCode}`;\n};\n\nexport const checkIsPossiblePhoneNumber = (phoneNumber: string): boolean => {\n    return isPossiblePhoneNumber(phoneNumber);\n};\n\nexport const checkIsEmptyPhoneNumber = (phoneNumber: string): boolean => {\n    const parsedPhoneNumber = phoneNumber.trim();\n    return !parsedPhoneNumber || parsedPhoneNumber === PHONE_NUMBER_PREFIX;\n};\n","import * as React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useTranslation } from 'react-i18next';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport {\n    selectBrokerTeamsByIds,\n    selectBrokerTeamsPages,\n    selectBrokerTeamsTotal,\n} from 'broker-admin/store/broker-teams/selectors';\nimport ListPageLayout from 'common/layouts/ListPage/ListPageLayout/ListPageLayout';\nimport ListPageHeaderLayout from 'common/layouts/ListPage/ListPageHeaderLayout/ListPageHeaderLayout';\nimport { BrokerUsersTeamsSortEnum, QueryFiltersKeysEnum, QueryFiltersT, QueryKeysEnum } from './query-models';\nimport {\n    createJsonParams,\n    createPageNumberParam,\n    createSortParams,\n    PageSortT,\n    SortDirectionEnum,\n} from 'common/utils/query';\nimport { prepareFetchPageQuery } from './prepare-fetch-page-query';\nimport { fetchBrokerTeamsPage } from 'broker-admin/store/broker-teams/actions';\nimport { BrokerTeamShortT } from 'broker-admin/store/broker-teams/models';\nimport SortDropdown, {\n    SortDropdownOptionT,\n    SortDropdownOverlayPositionEnum,\n} from 'common/components/Table/SortDropdown/SortDropdown';\nimport BrokerTeamsTable from './BrokerTeamsTable/BrokerTeamsTable';\nimport Pagination from 'common/components/Table/Pagination/Pagination';\nimport TableMessage, { TableMessageIconsEnum } from 'common/components/Table/TableMessage/TableMessage';\nimport StickyFooter from 'common/layouts/LeftMenuLayout/StickyFooter/StickyFooter';\nimport SearchControl from 'common/components/Table/SearchControl/SearchControl';\nimport TableError from 'common/components/Table/TableError/TableError';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useQueryParams } from 'use-query-params';\nimport { checkNeedRenderEmptyState } from 'common/components/Table/utils/check-need-render-empty-state';\nimport { checkFilters } from 'common/components/Table/utils/check-filters';\nimport classNames from 'classnames/bind';\nimport styles from './BrokerTeamsLayout.scss';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport { deleteTeam } from 'broker-admin/store/broker-team-edit/actions';\nimport DeleteTeamConfirmation, {\n    DeleteTeamConfirmationDataT,\n} from './dialogs/DeleteTeamConfirmation/DeleteTeamConfirmation';\nimport { selectBrokerTeamEditDeleteRequestStatus } from 'broker-admin/store/broker-team-edit/selectors';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport SelectedFilters from './SelectedFilters/SelectedFilters';\nimport { useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport { BrokerSidebarsTypeEnum } from 'broker-admin/layouts/SideBars/constants';\nimport { useInitBrokerPartnersSuggestOptions } from 'broker-admin/components/dropdowns/BrokerPartnersSuggest/hooks/use-init-broker-partners-suggest-options';\nimport { isNonNil } from 'common/utils';\nimport { useInitBrokerUsersSuggestOptions } from 'broker-admin/components/dropdowns/BrokerUserSuggest/hooks/use-init-broker-users-suggest-options';\nimport { selectCurrentCompany } from 'common/store/company/selectors';\nimport keyBy from 'lodash/keyBy';\nimport BrokerUserControl, {\n    BrokerUserControlOptionT,\n    BrokerUserControlValueT,\n} from 'broker-admin/components/dropdowns/BrokerUserControl/BrokerUserControl';\nimport BrokerPartnersControl, {\n    BrokerPartnersControlOptionT,\n    BrokerPartnersControlValueT,\n} from 'broker-admin/components/dropdowns/BrokerPartnersControl/BrokerPartnersControl';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { brokerTeamsPaginationChannel, brokerTeamsRefreshChannel } from 'broker-admin/store/broker-teams/channels';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { logWarning } from 'common/utils/logger';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst BrokerTeamsLayout: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n\n    const currentCompany = useSelector(selectCurrentCompany);\n    const currentCompanyId = currentCompany?.id || null;\n\n    const permissions = useSelector(selectPermissions);\n\n    const total = useSelector(selectBrokerTeamsTotal);\n    const brokerTeamsPages = useSelector(selectBrokerTeamsPages);\n    const brokerTeamById = useSelector(selectBrokerTeamsByIds);\n\n    const [query, changeQuery] = useQueryParams({\n        [QueryKeysEnum.brokerUsersTeamsFilters]: createJsonParams<QueryFiltersT>({}),\n        [QueryKeysEnum.brokerUsersTeamsPage]: createPageNumberParam(),\n        [QueryKeysEnum.brokerUsersTeamsSort]: createSortParams<BrokerUsersTeamsSortEnum>({\n            value: BrokerUsersTeamsSortEnum.name,\n            direction: SortDirectionEnum.DESC,\n        }),\n    });\n\n    const pageNumber = query[QueryKeysEnum.brokerUsersTeamsPage];\n    const selectedSort = query[QueryKeysEnum.brokerUsersTeamsSort];\n    const queryFilters = query[QueryKeysEnum.brokerUsersTeamsFilters];\n\n    const page = brokerTeamsPages[pageNumber];\n    const { ids, requestStatus } = page || {};\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchBrokerTeamsPage({ pageNumber, query, options: { isForceUpdate: false } }));\n    }, [dispatch, pageNumber, selectedSort, queryFilters]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    React.useEffect(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchBrokerTeamsPage({ pageNumber, query }));\n\n        return (): void => {\n            // TODO reset\n        };\n    }, [dispatch, page, pageNumber, selectedSort, queryFilters]);\n\n    const brokerTeams = React.useMemo(() => {\n        return (ids || []).map((id): BrokerTeamShortT => brokerTeamById[id]);\n    }, [ids, brokerTeamById]);\n\n    const [initBrokerPartnersSuggestValues] = React.useState(queryFilters[QueryFiltersKeysEnum.partnerIds] || []);\n\n    const brokerPartnersSuggestValues = React.useMemo(() => {\n        return queryFilters[QueryFiltersKeysEnum.partnerIds] || [];\n    }, [queryFilters]);\n\n    const {\n        initOptions: initBrokerPartnersSuggestOptions,\n        initRequestStatus: initBrokerPartnersSuggestRequestStatus,\n        onUpdateInitOptions: onUpdateInitBrokerPartnersSuggestOptions,\n    } = useInitBrokerPartnersSuggestOptions(initBrokerPartnersSuggestValues);\n\n    const [initBrokerUsersSuggestValues] = React.useState(queryFilters[QueryFiltersKeysEnum.userIds] || []);\n\n    const brokerUsersSuggestValues = React.useMemo(() => {\n        return queryFilters[QueryFiltersKeysEnum.userIds] || [];\n    }, [queryFilters]);\n\n    const {\n        initOptions: initBrokerUsersSuggestOptions,\n        initRequestStatus: initBrokerUsersSuggestRequestStatus,\n        onUpdateInitOptions: onUpdateInitBrokerUsersSuggestOptions,\n    } = useInitBrokerUsersSuggestOptions(currentCompanyId, initBrokerUsersSuggestValues);\n\n    const goToPage = React.useCallback(\n        (pageNumber: PageNumberT) => {\n            changeQuery({\n                [QueryKeysEnum.brokerUsersTeamsPage]: pageNumber,\n            });\n        },\n        [changeQuery],\n    );\n\n    const refreshPageHandler = React.useCallback(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchBrokerTeamsPage({ pageNumber, query }));\n    }, [dispatch, pageNumber, selectedSort, queryFilters]);\n    useChannelSubscribe(brokerTeamsRefreshChannel, refreshPageHandler);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchBrokerTeamsPage({ pageNumber, query, options: { isForceUpdate: true } }));\n    }, [dispatch, pageNumber, selectedSort, queryFilters]);\n\n    const setPageHandler = React.useCallback(\n        ({ pageNumber }: InferChannelEventT<typeof brokerTeamsPaginationChannel>) => {\n            goToPage(pageNumber);\n        },\n        [goToPage],\n    );\n    useChannelSubscribe(brokerTeamsPaginationChannel, setPageHandler);\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const goToBrokerTeamDetails = (event: React.MouseEvent, teamId: TeamIdT) => {\n        openLeftSidebar({\n            type: BrokerSidebarsTypeEnum.editBrokerTeamDetails,\n            teamId,\n        });\n    };\n\n    const handleOpenUserDetails = (userId: UserIdT | null) => {\n        if (!userId) {\n            logWarning('Empty userId');\n            return;\n        }\n\n        if (!currentCompanyId) {\n            logWarning('Empty currentCompanyId');\n            return;\n        }\n\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId: currentCompanyId,\n            partnerType: PartnerTypeEnum.broker,\n            userId,\n        });\n    };\n\n    const sortOptions: Array<SortDropdownOptionT<BrokerUsersTeamsSortEnum>> = React.useMemo(\n        () => [\n            {\n                label: t('broker-users.teams.list.sorts.triggers.name'),\n                value: BrokerUsersTeamsSortEnum.name,\n            },\n            {\n                label: t('broker-users.teams.list.sorts.triggers.created-date'),\n                value: BrokerUsersTeamsSortEnum.createdDate,\n            },\n        ],\n        [t],\n    );\n\n    const deleteTeamConfirmation = useModalDialog<DeleteTeamConfirmationDataT>();\n\n    const deleteTeamRequestStatus = useSelector(\n        selectBrokerTeamEditDeleteRequestStatus(deleteTeamConfirmation.data?.id),\n    );\n\n    useCloseModalDialogAfterRequest(deleteTeamRequestStatus, [deleteTeamConfirmation]);\n\n    const handleDeleteTeam = (teamId: TeamIdT) => {\n        deleteTeamConfirmation.setData({\n            id: teamId,\n        });\n    };\n\n    const handleConfirmDeleteTeam = (data: DeleteTeamConfirmationDataT) => {\n        if (!data?.id) {\n            return;\n        }\n\n        dispatch(deleteTeam({ teamId: data.id }));\n    };\n\n    const handleSelectSort = (sort: PageSortT<BrokerUsersTeamsSortEnum>) => {\n        changeQuery({\n            [QueryKeysEnum.brokerUsersTeamsPage]: 0,\n            [QueryKeysEnum.brokerUsersTeamsSort]: sort,\n        });\n    };\n\n    const handleSelectBrokerPartners = (\n        values: BrokerPartnersControlValueT[],\n        options: BrokerPartnersControlOptionT[],\n    ) => {\n        onUpdateInitBrokerPartnersSuggestOptions(options);\n\n        const prevQueryFilters = query[QueryKeysEnum.brokerUsersTeamsFilters] || {};\n\n        const optionsById = keyBy(options, 'id');\n\n        const partnerIds = values.filter(isNonNil);\n        const partnerNames = partnerIds.map((partnerId) => {\n            const partner = optionsById[partnerId];\n            return partner?.name || '';\n        });\n\n        const queryFilters = {\n            ...prevQueryFilters,\n            [QueryFiltersKeysEnum.partnerIds]: partnerIds,\n            [QueryFiltersKeysEnum.partnerNames]: partnerNames,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.brokerUsersTeamsPage]: 0,\n            [QueryKeysEnum.brokerUsersTeamsFilters]: queryFilters,\n        });\n    };\n\n    const handleSelectBrokerUsers = (values: BrokerUserControlValueT[], options: BrokerUserControlOptionT[]) => {\n        onUpdateInitBrokerUsersSuggestOptions(options);\n\n        const prevQueryFilters = query[QueryKeysEnum.brokerUsersTeamsFilters] || {};\n\n        const optionsById = keyBy(options, 'id');\n\n        const userIds = values.filter(isNonNil);\n        const userFullNames = userIds.map((userId) => {\n            const option = optionsById[userId];\n            return option?.fullName || '';\n        });\n\n        const queryFilters = {\n            ...prevQueryFilters,\n            [QueryFiltersKeysEnum.userIds]: userIds,\n            [QueryFiltersKeysEnum.userFullNames]: userFullNames,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.brokerUsersTeamsPage]: 0,\n            [QueryKeysEnum.brokerUsersTeamsFilters]: queryFilters,\n        });\n    };\n\n    const updateQueryFilters = (queryFiltersChanges: QueryFiltersT) => {\n        const prevQueryFilters = query[QueryKeysEnum.brokerUsersTeamsFilters] || {};\n\n        const queryFilters = {\n            ...prevQueryFilters,\n            ...queryFiltersChanges,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.brokerUsersTeamsPage]: 0,\n            [QueryKeysEnum.brokerUsersTeamsFilters]: queryFilters,\n        });\n    };\n\n    const handleSetQueryFilters = (selectedQueryFilters: QueryFiltersT) => {\n        const queryFilters = {\n            ...selectedQueryFilters,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.brokerUsersTeamsPage]: 0,\n            [QueryKeysEnum.brokerUsersTeamsFilters]: queryFilters,\n        });\n    };\n\n    const handleSearch = (searchText: string) => {\n        updateQueryFilters({\n            [QueryFiltersKeysEnum.searchText]: searchText || undefined,\n        });\n    };\n\n    const handleAddTeam = () => {\n        openLeftSidebar({\n            type: BrokerSidebarsTypeEnum.editBrokerTeamDetails,\n            teamId: null,\n        });\n    };\n\n    const renderTableMessage = () => {\n        if (!checkNeedRenderEmptyState(brokerTeams, requestStatus)) {\n            return null;\n        }\n\n        if (requestStatus?.error) {\n            return <TableError error={requestStatus?.error} onRetry={handleRefreshOnError} />;\n        }\n\n        const { hasPrimaryQueryFilters, hasSecondaryQueryFilters } = checkFilters([], [queryFilters]);\n\n        if (requestStatus?.ok && hasSecondaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.notFound}\n                    title={t('broker-users.teams.list.table.messages.not-found.title')}\n                    description={t('broker-users.teams.list.table.messages.not-found.description')}\n                    isShowAction\n                    actionTitle={t('broker-users.teams.list.table.messages.not-found.action')}\n                    actionTheme={ButtonThemeEnum.secondary}\n                    onActionClick={() => handleSetQueryFilters({})}\n                    testSelector=\"empty-state-has-secondary-filters\"\n                />\n            );\n        }\n\n        if (requestStatus?.ok && hasPrimaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.empty}\n                    title={t('broker-users.teams.list.table.messages.empty-quick-filters.title')}\n                    testSelector=\"empty-state-has-primary-filters\"\n                    isShowAction={false}\n                />\n            );\n        }\n\n        return (\n            <TableMessage\n                iconType={TableMessageIconsEnum.empty}\n                title={t('broker-users.teams.list.table.messages.empty.title')}\n                testSelector=\"empty\"\n                isShowAction={false}\n            />\n        );\n    };\n\n    return (\n        <>\n            <ListPageLayout>\n                <ListPageHeaderLayout\n                    withTopPadding\n                    leftToolsNode={\n                        <>\n                            <BrokerPartnersControl\n                                values={brokerPartnersSuggestValues}\n                                onSelect={handleSelectBrokerPartners}\n                                initialOptions={initBrokerPartnersSuggestOptions}\n                                initialRequestStatus={initBrokerPartnersSuggestRequestStatus}\n                                placeholder={t('broker-users.teams.filters.all')}\n                                overlayClassName={cx('filter-overlay')}\n                                allowedQueryMinLength={0}\n                            />\n                            <BrokerUserControl\n                                companyId={currentCompanyId}\n                                values={brokerUsersSuggestValues}\n                                onSelect={handleSelectBrokerUsers}\n                                initialOptions={initBrokerUsersSuggestOptions}\n                                initialRequestStatus={initBrokerUsersSuggestRequestStatus}\n                                placeholder={t('broker-users.teams.filters.all')}\n                                overlayClassName={cx('filter-overlay')}\n                                allowedQueryMinLength={0}\n                            />\n                            <SortDropdown\n                                overlayPosition={SortDropdownOverlayPositionEnum.left}\n                                selectedValue={selectedSort}\n                                options={sortOptions}\n                                onSelect={handleSelectSort}\n                            />\n                            <SearchControl\n                                placeholder={t('broker-users.teams.list.search-placeholder')}\n                                searchText={queryFilters[QueryFiltersKeysEnum.searchText]}\n                                onChangeSearchText={handleSearch}\n                            />\n                        </>\n                    }\n                    filterTagsNode={\n                        <SelectedFilters\n                            isCompact\n                            queryFilters={queryFilters}\n                            setQueryFilters={handleSetQueryFilters}\n                        />\n                    }\n                    rightToolsNode={\n                        permissions.canAddBrokerUsersTeams ? (\n                            <Button theme={ButtonThemeEnum.primary} onClick={handleAddTeam} testSelector=\"add-team\">\n                                {t('broker-users.teams.list.actions.add-team')}\n                            </Button>\n                        ) : null\n                    }\n                />\n                {renderTableMessage()}\n                <BrokerTeamsTable\n                    brokerTeams={brokerTeams}\n                    className={cx('table')}\n                    goToBrokerTeamDetails={goToBrokerTeamDetails}\n                    onOpenUserDetails={handleOpenUserDetails}\n                    isLoading={requestStatus?.loading}\n                    onDelete={handleDeleteTeam}\n                />\n            </ListPageLayout>\n            <StickyFooter>\n                <Pagination current={pageNumber} count={total?.pageCount} goToPage={goToPage} />\n            </StickyFooter>\n            <DeleteTeamConfirmation\n                data={deleteTeamConfirmation.data}\n                onClose={deleteTeamConfirmation.onClose}\n                onCancel={deleteTeamConfirmation.onCancel}\n                requestStatus={deleteTeamRequestStatus}\n                onConfirm={handleConfirmDeleteTeam}\n            />\n        </>\n    );\n});\n\nexport default BrokerTeamsLayout;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    addDriverBegin,\n    addDriverError,\n    addDriverSuccess,\n    deleteDriverBegin,\n    deleteDriverError,\n    deleteDriverSuccess,\n    fetchDriverDetailsBegin,\n    fetchDriverDetailsError,\n    fetchDriverDetailsSuccess,\n    fetchDriversPageBegin,\n    fetchDriversPageError,\n    fetchDriversPageSuccess,\n    inviteDriverBegin,\n    inviteDriverError,\n    inviteDriverSuccess,\n    resetDrivers,\n    updateDriverBegin,\n    updateDriverError,\n    updateDriverSuccess,\n} from './actions';\n\nimport {\n    ACTIVATE_DRIVER,\n    ActivateDriverActionT,\n    ADD_DRIVER_REQUEST,\n    AddDriverActionT,\n    ARCHIVE_DRIVER,\n    ArchiveDriverActionT,\n    CANCEL_DRIVER_INVITE,\n    CancelDriverInviteActionT,\n    DELETE_DRIVER_REQUEST,\n    DeleteDriverActionT,\n    FETCH_DRIVER_DETAILS_REQUEST,\n    FETCH_DRIVERS_PAGE_REQUEST,\n    FetchDriverDetailsActionT,\n    FetchDriversPageActionT,\n    INVITE_DRIVER_REQUEST,\n    InviteDriverActionT,\n    UPDATE_DRIVER_REQUEST,\n    UpdateDriverActionT,\n} from './types';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { selectDriversPages, selectDriversQuery } from './selectors';\nimport { checkIsDefaultCompanyId } from 'common/utils';\nimport carrierTranziitApi from 'carrier/utils/api/carrier-tranziit/api';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { checkIsSameQuery, checkShouldEmitChangePage } from 'common/utils/pagination/utils';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport {\n    driverDetailsRefreshChannel,\n    driversPaginationChannel,\n    driversRefreshChannel,\n} from 'common/store/drivers/channels';\n\nfunction* fetchDriversSaga(action: FetchDriversPageActionT): WrapGeneratorT<void> {\n    const { pageNumber, query, options, companyId } = action;\n\n    const prevQuery: ReReturnT<typeof selectDriversQuery> = yield select(selectDriversQuery(companyId));\n    const pages: ReReturnT<typeof selectDriversPages> = yield select(selectDriversPages(companyId));\n\n    const isSameQuery = checkIsSameQuery(query, prevQuery);\n    const isNeedRequest = checkNeedRequest(pages[pageNumber]?.requestStatus, options);\n    if (isSameQuery && !isNeedRequest) {\n        return;\n    }\n\n    if (!isSameQuery) {\n        yield put(resetDrivers(companyId, { savingPageNumber: pageNumber }));\n    }\n\n    yield put(fetchDriversPageBegin(query, pageNumber, companyId));\n\n    let data: ReturnApiT<typeof carrierTranziitApi.fetchDriversPage | typeof brokerTranziitApi.fetchDriversPage>;\n    if (checkIsDefaultCompanyId(companyId)) {\n        data = yield carrierTranziitApi.fetchDriversPage({\n            ...query,\n            page: pageNumber,\n        });\n    } else {\n        data = yield brokerTranziitApi.fetchDriversPage(companyId, {\n            ...query,\n            page: pageNumber,\n        });\n    }\n    const [error, response] = data;\n    if (error) {\n        yield put(fetchDriversPageError(query, pageNumber, error, companyId));\n        return;\n    }\n\n    yield put(fetchDriversPageSuccess(query, pageNumber, response, companyId));\n\n    checkShouldEmitChangePage(pageNumber, response, driversPaginationChannel);\n}\n\nfunction* inviteDriverSaga(action: InviteDriverActionT): WrapGeneratorT<void> {\n    const { newDriver, companyId } = action;\n\n    yield put(inviteDriverBegin(companyId));\n\n    let response: ReturnApiT<typeof carrierTranziitApi.inviteDriver | typeof brokerTranziitApi.invitePartnerDriver>;\n    if (checkIsDefaultCompanyId(companyId)) {\n        response = yield carrierTranziitApi.inviteDriver(newDriver);\n    } else {\n        response = yield brokerTranziitApi.invitePartnerDriver(companyId, newDriver);\n    }\n    const [error] = response;\n\n    if (error) {\n        yield put(inviteDriverError(error, companyId));\n    } else {\n        yield put(inviteDriverSuccess(companyId));\n\n        driversRefreshChannel.emit({});\n    }\n}\n\nfunction* addDriverSaga(action: AddDriverActionT): WrapGeneratorT<void> {\n    const { newDriver, companyId } = action;\n\n    yield put(addDriverBegin(companyId));\n\n    const response: ReturnApiT<typeof carrierTranziitApi.addDriver> = yield carrierTranziitApi.addDriver(newDriver);\n    const [error] = response;\n\n    if (error) {\n        yield put(addDriverError(error, companyId));\n    } else {\n        yield put(addDriverSuccess(companyId));\n\n        driversRefreshChannel.emit({});\n    }\n}\n\nfunction* deleteDriverSaga(action: DeleteDriverActionT): WrapGeneratorT<void> {\n    const { companyId, driverId } = action;\n\n    yield put(deleteDriverBegin(companyId));\n\n    let response: ReturnApiT<typeof carrierTranziitApi.deleteDriver | typeof brokerTranziitApi.deletePartnerDriver>;\n    if (checkIsDefaultCompanyId(companyId)) {\n        response = yield carrierTranziitApi.deleteDriver(driverId);\n    } else {\n        response = yield brokerTranziitApi.deletePartnerDriver(companyId, driverId);\n    }\n    const [error] = response;\n\n    if (error) {\n        yield put(deleteDriverError(error, companyId));\n    } else {\n        yield put(deleteDriverSuccess(companyId));\n\n        driversRefreshChannel.emit({});\n        driverDetailsRefreshChannel.emit({\n            driverId,\n            partnerId: companyId,\n        });\n    }\n}\n\nfunction* updateDriverSaga(action: UpdateDriverActionT): WrapGeneratorT<void> {\n    const { companyId, driverId, driverChanges } = action;\n\n    yield put(updateDriverBegin(companyId));\n\n    let response: ReturnApiT<typeof carrierTranziitApi.updateDriver | typeof brokerTranziitApi.updatePartnerDriver>;\n    if (checkIsDefaultCompanyId(companyId)) {\n        response = yield carrierTranziitApi.updateDriver(driverId, driverChanges);\n    } else {\n        response = yield brokerTranziitApi.updatePartnerDriver(driverId, driverChanges);\n    }\n    const [error] = response;\n\n    if (error) {\n        yield put(updateDriverError(error, companyId));\n    } else {\n        yield put(updateDriverSuccess(companyId));\n\n        driversRefreshChannel.emit({});\n        driverDetailsRefreshChannel.emit({\n            driverId,\n            partnerId: companyId,\n        });\n    }\n}\n\nfunction* fetchDriverDetailsSaga(action: FetchDriverDetailsActionT): WrapGeneratorT<void> {\n    const { companyId, driverId } = action;\n\n    yield put(fetchDriverDetailsBegin(companyId));\n\n    let response: ReturnApiT<\n        typeof carrierTranziitApi.fetchDriverDetails | typeof brokerTranziitApi.fetchPartnerDriverDetails\n    >;\n    if (checkIsDefaultCompanyId(companyId)) {\n        response = yield carrierTranziitApi.fetchDriverDetails(driverId);\n    } else {\n        response = yield brokerTranziitApi.fetchPartnerDriverDetails(companyId, driverId);\n    }\n    const [error, details] = response;\n\n    if (error) {\n        yield put(fetchDriverDetailsError(error, companyId));\n    } else {\n        yield put(fetchDriverDetailsSuccess(driverId, details, companyId));\n    }\n}\n\nfunction* activateDriverSaga(action: ActivateDriverActionT): WrapGeneratorT<void> {\n    const { companyId, driverId } = action;\n\n    yield put(updateDriverBegin(companyId));\n\n    let response: ReturnApiT<typeof carrierTranziitApi.activateDriver | typeof brokerTranziitApi.activatePartnerDriver>;\n    if (checkIsDefaultCompanyId(companyId)) {\n        response = yield carrierTranziitApi.activateDriver(driverId);\n    } else {\n        response = yield brokerTranziitApi.activatePartnerDriver(companyId, driverId);\n    }\n    const [error] = response;\n\n    if (error) {\n        yield put(updateDriverError(error, companyId));\n    } else {\n        yield put(updateDriverSuccess(companyId));\n\n        driversRefreshChannel.emit({});\n        driverDetailsRefreshChannel.emit({\n            driverId,\n            partnerId: companyId,\n        });\n    }\n}\n\nfunction* cancelDriverInviteSaga(action: CancelDriverInviteActionT): WrapGeneratorT<void> {\n    const { driverUserId, companyId } = action;\n\n    yield put(updateDriverBegin(companyId));\n\n    let response: ReturnApiT<typeof commonTranziitApi.cancelUserInvite | typeof brokerTranziitApi.cancelUserInvite>;\n    if (checkIsDefaultCompanyId(companyId)) {\n        response = yield commonTranziitApi.cancelUserInvite(driverUserId);\n    } else {\n        response = yield brokerTranziitApi.cancelUserInvite(driverUserId);\n    }\n    const [error] = response;\n\n    if (error) {\n        yield put(updateDriverError(error, companyId));\n    } else {\n        yield put(updateDriverSuccess(companyId));\n\n        driversRefreshChannel.emit({});\n    }\n}\n\nfunction* archiveDriverSaga(action: ArchiveDriverActionT): WrapGeneratorT<void> {\n    const { companyId, driverId } = action;\n\n    yield put(updateDriverBegin(companyId));\n\n    let response: ReturnApiT<typeof carrierTranziitApi.archiveDriver | typeof brokerTranziitApi.archivePartnerDriver>;\n    if (checkIsDefaultCompanyId(companyId)) {\n        response = yield carrierTranziitApi.archiveDriver(driverId);\n    } else {\n        response = yield brokerTranziitApi.archivePartnerDriver(companyId, driverId);\n    }\n    const [error] = response;\n\n    if (error) {\n        yield put(updateDriverError(error, companyId));\n    } else {\n        yield put(updateDriverSuccess(companyId));\n\n        driversRefreshChannel.emit({});\n        driverDetailsRefreshChannel.emit({\n            driverId,\n            partnerId: companyId,\n        });\n    }\n}\n\nfunction* companyDriversSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_DRIVERS_PAGE_REQUEST, fetchDriversSaga);\n    yield takeEvery(INVITE_DRIVER_REQUEST, inviteDriverSaga);\n    yield takeEvery(ADD_DRIVER_REQUEST, addDriverSaga);\n    yield takeEvery(DELETE_DRIVER_REQUEST, deleteDriverSaga);\n    yield takeEvery(UPDATE_DRIVER_REQUEST, updateDriverSaga);\n    yield takeEvery(ACTIVATE_DRIVER, activateDriverSaga);\n    yield takeEvery(CANCEL_DRIVER_INVITE, cancelDriverInviteSaga);\n    yield takeEvery(ARCHIVE_DRIVER, archiveDriverSaga);\n    yield takeEvery(FETCH_DRIVER_DETAILS_REQUEST, fetchDriverDetailsSaga);\n}\n\nexport default companyDriversSaga;\n","import React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './TimeWindowZoneText.scss';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { RangeSelectorRangeT } from 'common/components/RangeSelector/models';\nimport { useTranslation } from 'react-i18next';\nimport StopWarningIcon from 'common/icons/StopWarningIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    currentRanges: RangeSelectorRangeT[];\n};\n\nconst TimeWindowZoneText: React.FC<PropsT> = React.memo((props) => {\n    const { currentRanges } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <Tooltip\n            position={TooltipPositionEnum.topLeft}\n            theme={TooltipThemeEnum.black}\n            tooltipNode={\n                <TooltipContent theme={TooltipContentThemeEnum.black}>\n                    <div className={cx('content')}>\n                        <div className={cx('content__left-icon')}>\n                            <StopWarningIcon opacity={0.7} fillColor={StyleGuideColorsEnum.orange} />\n                        </div>\n                        <div className={cx('content__content')}>\n                            {currentRanges?.map((range, rangeIndex) => {\n                                return (\n                                    <div key={rangeIndex} className={cx('text')}>\n                                        {range.label}\n                                    </div>\n                                );\n                            })}\n                        </div>\n                    </div>\n                </TooltipContent>\n            }\n        >\n            {() => (\n                <span className={cx('zone-title')} data-test-selector=\"zone-text\">\n                    {t('broker-order-route-edit.time-window-ranges.surcharge')}\n                </span>\n            )}\n        </Tooltip>\n    );\n});\n\nexport default TimeWindowZoneText;\n","import React, { useEffect } from 'react';\nimport classNames from 'classnames/bind';\nimport isEqual from 'lodash/isEqual';\nimport find from 'lodash/find';\n\nimport styles from './DropdownSearchInput.scss';\nimport SearchIcon from 'common/icons/SearchIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { DropdownOverlayPositionEnum, DropdownOverlayWidthEnum } from '../constants';\nimport DropdownBaseLayout from '../base/DropdownBaseLayout/DropdownBaseLayout';\nimport DropdownBaseButtonTrigger from '../base/DropdownBaseButtonTrigger/DropdownBaseButtonTrigger';\nimport cs from 'classnames';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport useDebouncedEffect from 'common/utils/hooks/useDebouncedEffect';\nimport {\n    checkIsSpecialOption,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { useTranslation } from 'react-i18next';\n\nconst cx = classNames.bind(styles);\n\nexport type DropdownSearchInputIconMetaT = {\n    isDisabled: boolean;\n    isLoading: boolean;\n    hasChanges: boolean;\n    hasWarning: boolean;\n    hasSuccess: boolean;\n    hasError: boolean;\n    hasValue: boolean;\n    isFocused: boolean;\n};\n\nexport type PropsT<OptionT, OptionValueT> = {\n    className?: string;\n    selectedValue: OptionValueT;\n    placeholder?: string;\n    inputPlaceholder?: string;\n    testSelector?: string;\n    isInline?: boolean;\n    isDisabled?: boolean;\n    isLoading?: boolean;\n    hasChanges?: boolean;\n    hasWarning?: boolean;\n    hasSuccess?: boolean;\n    hasError?: boolean;\n    renderLeftIcon?: (meta: DropdownSearchInputIconMetaT) => React.ReactNode;\n    renderRightIcon?: (meta: DropdownSearchInputIconMetaT) => React.ReactNode;\n    renderRightInputIcon?: (meta: DropdownSearchInputIconMetaT) => React.ReactNode;\n    options: Array<OptionT | SpecialOptionEnum>;\n    triggerClassName?: string;\n    onSelect: (value: OptionValueT) => void;\n    overlayPosition: DropdownOverlayPositionEnum;\n    overlayWidth?: DropdownOverlayWidthEnum;\n    renderOption: (\n        option: OptionT,\n        placeholder?: string, // for compatibility with renderTrigger\n        callbacks?: { onCloseOverlay: () => void }, // for custom action in options\n    ) => React.ReactNode;\n    renderTrigger: (option: OptionT | undefined, placeholder?: string) => React.ReactNode;\n    getOptionValue: (option: OptionT) => OptionValueT;\n    isOptionDisabled?: (option: OptionT) => boolean;\n    onChangeQuery: (query: string) => void;\n    overlayClassName?: string;\n    optionClassName?: string;\n    onBlur?: () => void;\n    onFocus?: () => void;\n    onReset?: () => void;\n};\n\nconst COLD_TIME_MS = 300;\n\nconst FLOATING_INPUT_POSITIONS = new Set([\n    DropdownOverlayPositionEnum.bottomLeft,\n    DropdownOverlayPositionEnum.bottomRight,\n]);\n\nconst DropdownSearchInput = <OptionT, OptionValueT>(props: PropsT<OptionT, OptionValueT>) => {\n    const {\n        className,\n        selectedValue,\n        testSelector,\n        onSelect,\n        options,\n        renderOption,\n        renderTrigger,\n        getOptionValue,\n        isOptionDisabled,\n        onChangeQuery,\n        isInline,\n        isDisabled,\n        isLoading,\n        renderLeftIcon,\n        hasWarning,\n        hasSuccess,\n        hasChanges,\n        hasError,\n        overlayPosition,\n        overlayWidth,\n        renderRightIcon,\n        renderRightInputIcon,\n        triggerClassName,\n        overlayClassName,\n        optionClassName,\n        onBlur,\n        onFocus,\n        onReset,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const placeholder = props.placeholder || t('common:common-components.any-select-input.placeholder');\n    const inputPlaceholder = props.inputPlaceholder || t('common:common-components.any-select-input.input-placeholder');\n\n    const inputRef = React.useRef<HTMLInputElement>();\n    const [inputValue, setInputValue] = React.useState<string>('');\n    const [isOpen, toggleOpen] = React.useState<boolean>(false);\n\n    useEffect(() => {\n        if (isDisabled) {\n            toggleOpen(false);\n        }\n    }, [isDisabled]);\n\n    const handleOpen = (): void => {\n        if (isDisabled) {\n            return;\n        }\n\n        if (onFocus) {\n            onFocus();\n        }\n\n        // already opened\n        if (isOpen) {\n            inputRef.current?.focus();\n        }\n\n        toggleOpen(true);\n    };\n\n    const handleClose = (): void => {\n        if (onBlur) {\n            onBlur();\n        }\n\n        toggleOpen(false);\n    };\n\n    const handleOuterEvent = (): void => {\n        if (onBlur) {\n            onBlur();\n        }\n\n        handleClose();\n    };\n\n    const selectedOptionRef = React.useRef<OptionT | undefined>();\n    if (selectedValue) {\n        const findedSelectedOption =\n            find(options, (option) => {\n                if (checkIsSpecialOption(option)) {\n                    return false;\n                }\n\n                return isEqual(getOptionValue(option), selectedValue);\n            }) || null;\n        if (findedSelectedOption) {\n            selectedOptionRef.current = findedSelectedOption as OptionT;\n        }\n    } else {\n        selectedOptionRef.current = undefined;\n    }\n\n    const selectedOption = selectedOptionRef.current;\n\n    const inputProps = {\n        onChange: (event: TODO) => setInputValue(event.target.value),\n        value: inputValue || '',\n        type: 'text',\n        className: cx('search-input', {\n            'search-input--isEmpty': !inputValue,\n            'search-input--isFocus': isOpen,\n        }),\n        placeholder: inputPlaceholder,\n        disabled: isDisabled,\n    };\n\n    useDebouncedEffect(\n        (): void => {\n            onChangeQuery(inputValue);\n        },\n        COLD_TIME_MS,\n        [inputValue],\n    );\n\n    const hasValue = !!selectedOption;\n\n    const searchInputNode = (\n        <div className={cx('search-input__wrap')}>\n            <input\n                ref={(node) => {\n                    node?.focus();\n\n                    // @ts-ignore\n                    inputRef.current = node;\n                }}\n                {...inputProps}\n            />\n            {renderRightInputIcon && (\n                <div className={cx('search-input__icon', 'search-input__icon--right-icon')}>\n                    {renderRightInputIcon({\n                        isDisabled: !!isDisabled,\n                        hasChanges: !!hasChanges,\n                        hasWarning: !!hasWarning,\n                        hasSuccess: !!hasSuccess,\n                        hasError: !!hasError,\n                        isLoading: !!isLoading,\n                        hasValue,\n                        isFocused: isOpen,\n                    })}\n                </div>\n            )}\n            <div className={cx('search-input__icon', 'search-input__icon--search')}>\n                {isLoading ? (\n                    <ControlLoaderIcon fillColor={StyleGuideColorsEnum.brandDark} size={DEFAULT_ICON_SIZE} />\n                ) : (\n                    <SearchIcon fillColor={StyleGuideColorsEnum.brandDark} />\n                )}\n            </div>\n        </div>\n    );\n\n    const isFloatingInput = FLOATING_INPUT_POSITIONS.has(overlayPosition) || !overlayPosition;\n\n    return (\n        <DropdownBaseLayout\n            isInline={isInline}\n            isOpen={isOpen}\n            className={className}\n            onClose={handleOuterEvent}\n            triggerNode={\n                <DropdownBaseButtonTrigger\n                    isEmpty={!selectedOption}\n                    isPressed={isOpen}\n                    renderLeftIcon={\n                        renderLeftIcon\n                            ? (iconMeta) =>\n                                  renderLeftIcon({\n                                      ...iconMeta,\n                                      isLoading: !!isLoading,\n                                      hasValue,\n                                      isFocused: isOpen,\n                                  })\n                            : undefined\n                    }\n                    isDisabled={isDisabled}\n                    hasWarning={hasWarning}\n                    hasSuccess={hasSuccess}\n                    hasChanges={hasChanges}\n                    hasError={hasError}\n                    className={triggerClassName}\n                    testSelector={testSelector}\n                    onClick={handleOpen}\n                    renderRightIcon={\n                        renderRightIcon\n                            ? (iconMeta) =>\n                                  renderRightIcon({\n                                      ...iconMeta,\n                                      isLoading: !!isLoading,\n                                      hasValue,\n                                      isFocused: isOpen,\n                                  })\n                            : undefined\n                    }\n                    isShowClearControl={!!onReset && !!selectedOption}\n                    onReset={() => {\n                        if (onReset) {\n                            onReset();\n                        }\n                    }}\n                >\n                    {renderTrigger(selectedOption, placeholder)}\n                </DropdownBaseButtonTrigger>\n            }\n            overlayPosition={overlayPosition}\n            overlayWidth={overlayWidth}\n            overlayClassName={cs(cx('overlay'), overlayClassName)}\n            overlayNode={\n                <>\n                    {isFloatingInput && searchInputNode}\n                    <div className={cx('options')}>\n                        {options.map((option, index): React.ReactElement | null => {\n                            if (checkIsSpecialOption(option)) {\n                                return <div key={index} className={cx('separator')} />;\n                            }\n\n                            const value = getOptionValue(option);\n\n                            const isSelected = selectedValue === value;\n                            const isDisabledOption = !!isOptionDisabled?.(option);\n\n                            return (\n                                <div\n                                    key={index}\n                                    className={cs(\n                                        cx('option', {\n                                            'option--isSelected': isSelected,\n                                            'option--isDisabled': isDisabledOption,\n                                        }),\n                                        optionClassName,\n                                    )}\n                                    aria-disabled={isDisabledOption}\n                                    onClick={(): void => {\n                                        if (isDisabled || isDisabledOption) {\n                                            return;\n                                        }\n\n                                        onSelect(value);\n                                        handleClose();\n                                        setInputValue('');\n                                    }}\n                                >\n                                    {renderOption(option, placeholder, { onCloseOverlay: handleClose })}\n                                </div>\n                            );\n                        })}\n                    </div>\n                    {!isFloatingInput && searchInputNode}\n                </>\n            }\n        />\n    );\n};\n\nexport default DropdownSearchInput;\n","// extracted by mini-css-extract-plugin\nexport default {\"table\":\"DocumentEventsSummary__table___xwQgM\",\"fadeIn\":\"DocumentEventsSummary__fadeIn___e6AFb\",\"blinking\":\"DocumentEventsSummary__blinking___D5W_5\"};","import { TFunction } from 'i18next';\nimport {\n    diffImpactStrategySet,\n    FieldsEnum,\n    FormErrorsT,\n    FormValuesT,\n    getAvailablePriceComponent,\n    getAvailableStrategies,\n    RepeatTypeEnum,\n} from './constants';\nimport { checkDateIsBeforeDay, checkMinValue, checkNotEmpty } from 'common/utils/form-validators';\n\nconst REQUIRED_FIELDS = [\n    FieldsEnum.name,\n    FieldsEnum.type,\n    FieldsEnum.validFrom,\n    FieldsEnum.trailerTypeIds,\n    FieldsEnum.fromCountryCodes,\n    FieldsEnum.toCountryCodes,\n    FieldsEnum.impactPriceComponent,\n];\n\nconst emptyImpactDiffValuesSet = new Set(['+', '-']);\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const impactStrategy = values[FieldsEnum.impactStrategy];\n    const isDiffImpactStrategy = diffImpactStrategySet.has(impactStrategy);\n\n    let errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n    };\n\n    if (isDiffImpactStrategy) {\n        errors = {\n            ...errors,\n            ...checkNotEmpty(t, [FieldsEnum.impactDiffValue], values),\n            ...checkMinValue(t, [FieldsEnum.impactDiffValue], values, -100),\n        };\n    } else {\n        errors = {\n            ...errors,\n            ...checkNotEmpty(t, [FieldsEnum.impactValue], values),\n        };\n    }\n\n    const impactDiffValue = (values[FieldsEnum.impactDiffValue] || '').trim();\n    if (isDiffImpactStrategy && emptyImpactDiffValuesSet.has(impactDiffValue)) {\n        errors[FieldsEnum.impactDiffValue] = t('common:form-errors.required');\n    }\n\n    const selectedPriceComponent = values[FieldsEnum.impactPriceComponent];\n    const selectedType = values[FieldsEnum.type];\n    const availablePriceComponents = getAvailablePriceComponent(selectedType);\n    if (selectedPriceComponent && !availablePriceComponents.includes(selectedPriceComponent)) {\n        errors[FieldsEnum.impactPriceComponent] = t('common:form-errors.invalid-value');\n    }\n\n    const availableStrategies = getAvailableStrategies(selectedType, selectedPriceComponent);\n    const selectedImpactStrategy = values[FieldsEnum.impactStrategy];\n    if (selectedImpactStrategy && !availableStrategies.includes(selectedImpactStrategy)) {\n        errors[FieldsEnum.impactStrategy] = t('common:form-errors.invalid-value');\n    }\n\n    const dates = values[FieldsEnum.dates];\n    if (values[FieldsEnum.repeatType] === RepeatTypeEnum.dates && !dates?.from && !dates?.to) {\n        errors[FieldsEnum.dates] = t('common:form-errors.required');\n    }\n\n    const days = values[FieldsEnum.days];\n    if (values[FieldsEnum.repeatType] === RepeatTypeEnum.weekdays && !days.length) {\n        errors[FieldsEnum.days] = t('common:form-errors.required');\n    }\n\n    errors = {\n        ...errors,\n        ...checkDateIsBeforeDay(t, [FieldsEnum.validFrom], values, values[FieldsEnum.validTill]),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","// extracted by mini-css-extract-plugin\nexport default {\"footer\":\"NotificationCardFooter__footer___AQGEP\",\"date\":\"NotificationCardFooter__date___RLM0y\",\"fadeIn\":\"NotificationCardFooter__fadeIn___MvapZ\",\"blinking\":\"NotificationCardFooter__blinking___oQWrf\"};","import * as React from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\nimport PartnerName from 'broker-admin/components/notification-cards/entities/PartnerName/PartnerName';\n\ntype PropsT = {\n    companyName?: string;\n    updatedFields?: Api2.Definitions.UpdatedBusinessPartnerFields[];\n    requiredToCheckProfile?: boolean;\n};\n\nconst FIELD_I18N_MAP: Record<Api2.Definitions.UpdatedBusinessPartnerFields, string> = {\n    NAME: 'notifications.business-partner-profile-updated.fields.name',\n    LEGAL_FORM: 'notifications.business-partner-profile-updated.fields.legal-form',\n    MAIN_CONTACT: 'notifications.business-partner-profile-updated.fields.main-contact',\n    LEGAL_ADDRESS: 'notifications.business-partner-profile-updated.fields.legal-address',\n    POSTAL_ADDRESS: 'notifications.business-partner-profile-updated.fields.postal-address',\n    BILLING_ADDRESS: 'notifications.business-partner-profile-updated.fields.billing-address',\n};\n\nconst ADDRESS_FIELDS: Api2.Definitions.UpdatedBusinessPartnerFields[] = [\n    'LEGAL_ADDRESS',\n    'POSTAL_ADDRESS',\n    'BILLING_ADDRESS',\n];\n\nconst BusinessPartnerProfileUpdatedCard: React.FC<PropsT> = React.memo((props) => {\n    const { companyName, updatedFields = [], requiredToCheckProfile } = props;\n    const { t } = useTranslation();\n\n    const hasAddressFields = updatedFields.some((field) => ADDRESS_FIELDS.includes(field));\n\n    // Show verification text if:\n    // 1. requiredToCheckProfile === true (explicitly indicates verification is needed)\n    // 2. Or there are addresses in updatedFields (addresses require verification)\n    const showVerificationText = requiredToCheckProfile || hasAddressFields;\n\n    // Determine notification text\n    // If updated by BA/BKAM (no companyName), then \"Your profile's ... got updated.\"\n    // Otherwise \"{{bp_name}} ... got updated.\" with possible addition about verification\n    const isSelfUpdate = !companyName;\n    let i18nKey: string;\n    if (isSelfUpdate) {\n        i18nKey = 'notifications.business-partner-profile-updated.self-updated';\n    } else if (showVerificationText) {\n        i18nKey = 'notifications.business-partner-profile-updated.updated-with-verification';\n    } else {\n        i18nKey = 'notifications.business-partner-profile-updated.updated';\n    }\n\n    const fieldLabels = updatedFields.map((field) => t(FIELD_I18N_MAP[field]));\n\n    // Format field list: \"field1, field2 and field3\" or just \"field1\"\n    const formattedFields = React.useMemo(() => {\n        if (fieldLabels.length === 0) {\n            return '';\n        }\n        if (fieldLabels.length === 1) {\n            return fieldLabels[0];\n        }\n        if (fieldLabels.length === 2) {\n            return `${fieldLabels[0]} and ${fieldLabels[1]}`;\n        }\n        const lastField = fieldLabels[fieldLabels.length - 1];\n        const otherFields = fieldLabels.slice(0, -1).join(', ');\n        return `${otherFields}, and ${lastField}`;\n    }, [fieldLabels]);\n\n    return (\n        <NotificationCardInnerLayout>\n            {isSelfUpdate ? (\n                <Trans\n                    i18nKey={i18nKey}\n                    components={{\n                        fields: <NotificationEntityLabel text={formattedFields} isBold />,\n                    }}\n                />\n            ) : (\n                <Trans\n                    i18nKey={i18nKey}\n                    components={{\n                        partnerName: <PartnerName partnerName={companyName || ''} />,\n                        fields: <NotificationEntityLabel text={formattedFields} isBold />,\n                    }}\n                />\n            )}\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default BusinessPartnerProfileUpdatedCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"pill\":\"PositionsCell__pill___H0Go_\",\"fadeIn\":\"PositionsCell__fadeIn___HHjdm\",\"blinking\":\"PositionsCell__blinking___qlOzV\"};","import * as React from 'react';\nimport SkeletonFormatter from 'design-system/components/InfoTable/formatters/SkeletonFormatter/SkeletonFormatter';\nimport { useSelector } from 'react-redux';\nimport { selectCountriesByCode, selectCountriesDictRequest } from 'common/store/countries-dict/selectors';\nimport { CountryCodeT } from 'common/utils/api/models';\n\ntype PropsT = {\n    countryCode?: CountryCodeT;\n};\n\nconst AsyncCountryFormatter: React.FC<PropsT> = React.memo((props) => {\n    const { countryCode } = props;\n\n    const countriesDictRequest = useSelector(selectCountriesDictRequest);\n    const countriesByCode = useSelector(selectCountriesByCode);\n\n    if (countriesDictRequest.loading) {\n        return <SkeletonFormatter />;\n    }\n\n    const country = countriesByCode[countryCode as CountryCodeT] || null;\n\n    return <span>{country?.userLangDisplayName}</span>;\n});\n\nexport default AsyncCountryFormatter;\n","// extracted by mini-css-extract-plugin\nexport default {\"table\":\"BrokerTeamsLayout__table___W_rmB\",\"filter-overlay\":\"BrokerTeamsLayout__filter-overlay___jRqCu\",\"fadeIn\":\"BrokerTeamsLayout__fadeIn___YaL1P\",\"blinking\":\"BrokerTeamsLayout__blinking___bZVGt\"};","import * as React from 'react';\nimport ControlsCell from 'common/components/Table/cell-renderers/ControlsCell/ControlsCell';\nimport { useSelector } from 'react-redux';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport { ContractsActionsT } from '../../../models';\nimport { useContractsActionOptions } from 'common/layouts/BaseCarrierContractsLayout/hooks/use-contracts-action-options';\nimport { ContractRowT } from '../../models';\n\ntype PropsT = {\n    row: ContractRowT;\n    className?: string;\n} & ContractsActionsT;\n\nconst ActionsCell: React.FC<PropsT> = React.memo((props) => {\n    const { className, row, onDownloadContract, onRevokeContract, onEditContractDetails } = props;\n\n    const permissions = useSelector(selectPermissions);\n\n    const options = useContractsActionOptions(row, permissions, {\n        onDownloadContract,\n        onRevokeContract,\n        onEditContractDetails,\n    });\n\n    return <ControlsCell className={className} options={options} />;\n});\n\nexport default ActionsCell;\n","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { BrokerTeamDetailsT } from './models';\nimport isEqual from 'lodash/isEqual';\n\nexport type BrokerTeamDetailsStateT = {\n    details: BrokerTeamDetailsT | null;\n    requestStatus: RequestStatusT;\n};\n\nexport type BrokerTeamDetailsByIdStateT = Record<TeamIdT, BrokerTeamDetailsStateT>;\n\nexport const initialBrokerTeamDetailsState: BrokerTeamDetailsStateT = {\n    details: null,\n    requestStatus: requestStatus.initial,\n};\n\nconst initialState: BrokerTeamDetailsByIdStateT = {};\n\nexport const brokerTeamDetailsSlice = createSlice({\n    name: 'brokerTeamDetails',\n    initialState,\n    reducers: {\n        fetchBrokerTeamDetails: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                id: TeamIdT;\n                options?: FetchOptionsT;\n            }>,\n        ) => {\n            // nothing - handled by saga\n        },\n        fetchBrokerTeamDetailsBegin: (\n            state,\n            action: PayloadAction<{\n                id: TeamIdT;\n            }>,\n        ) => {\n            const { id } = action.payload;\n            const brokerTeamDetailsState = state[id] || initialBrokerTeamDetailsState;\n\n            state[id] = {\n                ...brokerTeamDetailsState,\n                requestStatus: requestStatus.loading,\n            };\n        },\n        fetchBrokerTeamDetailsSuccess: (\n            state,\n            action: PayloadAction<{\n                id: TeamIdT;\n                details: BrokerTeamDetailsT | null;\n            }>,\n        ) => {\n            const { details, id } = action.payload;\n            const brokerTeamDetailsState = state[id] || initialBrokerTeamDetailsState;\n\n            state[id] = {\n                ...brokerTeamDetailsState,\n                requestStatus: requestStatus.ok,\n                details: isEqual(details, brokerTeamDetailsState.details) ? brokerTeamDetailsState.details : details,\n            };\n        },\n        fetchBrokerTeamDetailsError: (\n            state,\n            action: PayloadAction<{\n                id: TeamIdT;\n                error: Error;\n            }>,\n        ) => {\n            const { error, id } = action.payload;\n            const brokerTeamDetailsState = state[id] || initialBrokerTeamDetailsState;\n\n            state[id] = {\n                ...brokerTeamDetailsState,\n                requestStatus: requestStatus.setError(error),\n            };\n        },\n        resetBrokerTeamDetails: () => {\n            return {};\n        },\n    },\n    extraReducers: (builder) => {\n        builder.addCase('auth/destroySession', () => {\n            return initialState;\n        });\n    },\n});\n\nexport const {\n    fetchBrokerTeamDetails,\n    fetchBrokerTeamDetailsBegin,\n    fetchBrokerTeamDetailsSuccess,\n    fetchBrokerTeamDetailsError,\n    resetBrokerTeamDetails,\n} = brokerTeamDetailsSlice.actions;\n\nexport default brokerTeamDetailsSlice.reducer;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PartnerTransportOrders.scss';\nimport TransportOrderListPageLayout from 'common/layouts/TransportOrderListPageLayout/TransportOrderListPageLayout';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport { useHistoryPush } from 'common/utils/hooks/useHistoryPush';\nimport { logWarning } from 'common/utils/logger';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst emptyIndexes: number[] = [];\n\nconst PartnerTransportOrders: React.FC<PropsT> = React.memo(() => {\n    const { partnerId, partnerType } = usePartnerContext();\n\n    const { historyPush } = useHistoryPush();\n\n    const handleOpenTransportOrderDetails = (event: React.MouseEvent, transportOrderId: TransportOrderIdT | null) => {\n        if (!transportOrderId) {\n            return;\n        }\n        if (!partnerType || !partnerId) {\n            logWarning('Empty partnerType or partnerId in handleOpenTransportOrderDetails');\n            return;\n        }\n\n        const url = urlFactory.partnerTransportOrderDetails(partnerType, partnerId, transportOrderId);\n        historyPush(event, url);\n    };\n\n    return (\n        <TransportOrderListPageLayout\n            stat={null}\n            onOpenTransportOrderDetails={handleOpenTransportOrderDetails}\n            orderQuickFilterOptionSeparators={emptyIndexes}\n            orderQuickFilterOptions={null}\n        />\n    );\n});\n\nexport default PartnerTransportOrders;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './DevLocalizationLanguageSwitcher.scss';\nimport FeaturesContext from 'common/contexts/features';\nimport { ClientFeatureEnum } from 'common/utils/features/client-features-config';\nimport LanguageSwitcher from 'common/components/LanguageSwitcher/LanguageSwitcher';\nimport { CIMODE, LangEnum } from 'common/constants';\nimport { changeLanguage } from 'common/locales/i18n';\nimport { useTranslation } from 'react-i18next';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n};\n\nconst DevLocalizationLanguageSwitcher: React.FC<PropsT> = React.memo((props) => {\n    const { className } = props;\n\n    const { i18n } = useTranslation();\n\n    const [lang, setLang] = React.useState<LangEnum | typeof CIMODE>(i18n.language as LangEnum);\n\n    const featuresContext = React.useContext(FeaturesContext);\n    if (!featuresContext?.checkActiveClientFeature?.(ClientFeatureEnum.i18nLanguageSwitcher)) {\n        return null;\n    }\n\n    return (\n        <div className={className}>\n            <LanguageSwitcher\n                lang={lang}\n                isShowCIMCode\n                overlayPosition={DropdownOverlayPositionEnum.topRight}\n                onChange={(language) => {\n                    if (!language) {\n                        return;\n                    }\n\n                    changeLanguage(language);\n                    setLang(language);\n                }}\n            />\n        </div>\n    );\n});\n\nexport default DevLocalizationLanguageSwitcher;\n","import * as React from 'react';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport HorizontalColumnsLayout from 'common/layouts/HorizontalColumnsLayout/HorizontalColumnsLayout';\nimport { useTranslation } from 'react-i18next';\n\nimport { useParams } from 'react-router-dom';\nimport { ExtractRouterRouteParamsT } from 'common/utils/extract-router-route-params-t';\nimport { SettingsRuleRoutesEnum } from 'broker-admin/constants';\nimport history, { goBackIfHasRePath } from 'common/utils/history';\nimport PriceSettingsEditRuleLayout from 'broker-admin/layouts/PriceSettingsEditRuleLayout/PriceSettingsEditRuleLayout';\nimport PriceSettingsRulePreviewLayout from 'broker-admin/layouts/PriceSettingsRulePreviewLayout/PriceSettingsRulePreviewLayout';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport { PreviewCurrentRuleT } from 'broker-admin/store/price-settings/rules/models';\nimport SideBarLayoutContextWrap from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayoutContextWrap/SideBarLayoutContextWrap';\nimport classNames from 'classnames/bind';\nimport styles from './PriceSettingsEditRuleDetailsPage.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst PriceSettingsEditRuleDetailsPage: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n\n    const params = useParams<ExtractRouterRouteParamsT<SettingsRuleRoutesEnum.ruleDetails>>();\n    const { ruleId } = params;\n\n    const handleClose = () => {\n        goBackIfHasRePath(() => {\n            history.push(urlFactory.settingsRules());\n        });\n    };\n\n    const [previewCurrentRule, setPreviewCurrentRule] = React.useState<PreviewCurrentRuleT | null>(null);\n\n    return (\n        <>\n            <PageTitle title={t('common:page-titles.order-creation')} />\n            <HorizontalColumnsLayout\n                leftColumnTitle={t('common:new-order-page.tabs.form')}\n                leftColumnNode={\n                    <SideBarLayoutContextWrap>\n                        <PriceSettingsEditRuleLayout\n                            editableRuleId={ruleId}\n                            onCancel={handleClose}\n                            onClose={handleClose}\n                            onChangePreviewCurrentRule={setPreviewCurrentRule}\n                        />\n                    </SideBarLayoutContextWrap>\n                }\n                rightColumnTitle={t('broker-order-details.main-tabs.info')}\n                rightColumnNode={\n                    <SideBarLayoutContextWrap>\n                        <div className={cx('preview')}>\n                            <PriceSettingsRulePreviewLayout ruleId={ruleId} previewCurrentRule={previewCurrentRule} />\n                        </div>\n                    </SideBarLayoutContextWrap>\n                }\n            />\n        </>\n    );\n});\n\nexport default PriceSettingsEditRuleDetailsPage;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './RatesTable.scss';\nimport { useTranslation } from 'react-i18next';\nimport DateCell from 'common/components/Table/cell-renderers/DateCell/DateCell';\nimport Table, { TableColumnT, TableRowMetaT } from 'common/components/Table/Table';\nimport { RateT } from 'broker-admin/store/price-settings/rates/models';\nimport CheckboxHeader from 'common/components/Table/header-renderers/CheckboxHeader/CheckboxHeader';\nimport CheckboxCell from 'common/components/Table/cell-renderers/CheckboxCell/CheckboxCell';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport MemoizedTable from 'common/components/Table/MemoizedTable/MemoizedTable';\nimport EditableCostCell from 'common/components/Table/cell-renderers/EditableCostCell/EditableCostCell';\nimport EventAuthorCell from 'common/components/Table/cell-renderers/EventAuthorCell/EventAuthorCell';\nimport CountryCell from 'common/components/Table/cell-renderers/CountryCell/CountryCell';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    rates: Array<RateT>;\n    isDisabled: boolean;\n    isLoading: boolean;\n    className?: string;\n    selectedRatesSet: Set<RateT>;\n    onSelectRates: (selectedRatesSet: Set<RateT>) => void;\n    onUpdateRate: (id: RateT['id'], value: number) => void;\n    onOpenUserDetails: (userId: UserIdT | null) => void;\n};\n\nconst RatesTable: React.FC<PropsT> = React.memo((props) => {\n    const {\n        rates,\n        className,\n        selectedRatesSet,\n        onSelectRates,\n        onUpdateRate,\n        onOpenUserDetails,\n        isDisabled,\n        isLoading,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const columns: Array<TableColumnT<RateT, void>> = [\n        {\n            renderHeader: () => (\n                <CheckboxHeader<RateT> selectedRowsSet={selectedRatesSet} rows={rates} onChange={onSelectRates} />\n            ),\n            headerClassName: cx('table__header', 'table__header--checkbox'),\n            render: (rate: RateT) => (\n                <CheckboxCell<RateT> row={rate} selectedRowsSet={selectedRatesSet} onChange={onSelectRates} />\n            ),\n            className: cx('table__column', 'table__column--checkbox'),\n        },\n        {\n            renderHeader: () => <span>{t('price-settings.rate-matrix.table.columns.from')}</span>,\n            headerClassName: cx('table__header', 'table__header--country'),\n            render: (rate: RateT) => <CountryCell countryCode={rate.countryFrom} />,\n            className: cx('table__column', 'table__column--country'),\n        },\n        {\n            renderHeader: () => <span>{t('price-settings.rate-matrix.table.columns.to')}</span>,\n            headerClassName: cx('table__header', 'table__header--country'),\n            render: (rate: RateT) => <CountryCell countryCode={rate.countryTo} />,\n            className: cx('table__column', 'table__column--country'),\n        },\n        {\n            renderHeader: () => <span>{t('price-settings.rate-matrix.table.columns.cost')}</span>,\n            headerClassName: cx('table__header', 'table__header--cost'),\n            render: (rate: RateT, meta) => (\n                <EditableCostCell\n                    cost={rate.costKm}\n                    isHoveredRow={meta.isHovered}\n                    onUpdate={(cost) => {\n                        onUpdateRate(rate.id, cost);\n                    }}\n                />\n            ),\n            className: cx('table__column', 'table__column--cost'),\n        },\n        {\n            renderHeader: () => <span>{t('price-settings.rate-matrix.table.columns.update-date')}</span>,\n            headerClassName: cx('table__header', 'table__header--date'),\n            render: (rate: RateT) => <DateCell isBigFont isBold className={cx('update-date')} date={rate.updated} />,\n            className: cx('table__column', 'table__column--date'),\n        },\n        {\n            renderHeader: () => <span>{t('price-settings.rate-matrix.table.columns.update-author')}</span>,\n            headerClassName: cx('table__header'),\n            render: (rate: RateT) => (\n                <EventAuthorCell\n                    onOpenUserDetails={onOpenUserDetails}\n                    userFullName={rate.updatedByName}\n                    userId={rate.updatedById}\n                />\n            ),\n            className: cx('table__column', 'table__column--update'),\n        },\n    ];\n\n    const getRowMods = (meta: TableRowMetaT) => ({\n        isSelected: meta.isSelected,\n    });\n\n    return (\n        <div className={cx('table')}>\n            <MemoizedTable<RateT> tableName=\"rates\" isLoading={isLoading} rows={rates}>\n                {(rows, isUsedPrevRows) => (\n                    <Table<RateT, void>\n                        className={className}\n                        selectedRowsSet={selectedRatesSet}\n                        columns={columns}\n                        rows={rows}\n                        getRowMods={getRowMods}\n                        isLoading={isLoading}\n                        isUsedPrevRows={isUsedPrevRows}\n                    />\n                )}\n            </MemoizedTable>\n            {isDisabled && <LoaderOverlay />}\n        </div>\n    );\n});\n\nexport default RatesTable;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n    size: number;\n};\n\nconst TollIcon: React.FC<PropsT> = (props) => {\n    const { size, className, fillColor, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\" className={className}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={fillColor}\n                    d=\"M12.25 5.5a4.504 4.504 0 00-4.5 4.5c0 2.482 2.018 4.5 4.5 4.5s4.5-2.018 4.5-4.5-2.018-4.5-4.5-4.5z\"\n                />\n                <path\n                    fill={strokeColor}\n                    d=\"M12.25 4c-3.315 0-6 2.685-6 6s2.685 6 6 6 6-2.685 6-6-2.685-6-6-6zm0 10.5a4.504 4.504 0 01-4.5-4.5c0-2.482 2.018-4.5 4.5-4.5s4.5 2.018 4.5 4.5-2.018 4.5-4.5 4.5zm-9-4.5a4.493 4.493 0 013-4.237V4.194A5.996 5.996 0 001.75 10a5.996 5.996 0 004.5 5.805v-1.567a4.493 4.493 0 01-3-4.238z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nTollIcon.displayName = 'TollIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.light,\n    strokeColor: StyleGuideColorsEnum.gray,\n};\n\nexport { storyProps };\nexport default TollIcon;\n","import { FetchConfigT } from 'common/utils/api/do-fetch-models';\n\nexport class FetchError<TResponseData = any, TRequestConfig = any> extends Error {\n    httpStatusCode: number;\n\n    message: string;\n\n    requestConfig: FetchConfigT<TRequestConfig>;\n\n    response: TResponseData;\n\n    constructor({\n        message,\n        httpStatusCode,\n        requestConfig,\n        response,\n    }: {\n        message: string;\n        httpStatusCode: number;\n        requestConfig: FetchConfigT<TRequestConfig>;\n        response: TResponseData;\n    }) {\n        super(message);\n\n        this.message = message;\n        this.httpStatusCode = httpStatusCode;\n\n        if (requestConfig.headers?.Authorization) {\n            this.requestConfig = {\n                ...requestConfig,\n                headers: {\n                    ...requestConfig.headers,\n                    Authorization: '***',\n                },\n            };\n        } else {\n            this.requestConfig = requestConfig;\n        }\n\n        this.response = response;\n\n        // fix for instanceof\n        // https://github.com/microsoft/TypeScript/issues/13965\n        // https://github.com/Microsoft/TypeScript/wiki/Breaking-Changes#extending-built-ins-like-error-array-and-map-may-no-longer-work\n        Object.setPrototypeOf(this, FetchError.prototype);\n    }\n}\n\nexport const checkIsFetchError = (error: Error | null | undefined): error is FetchError => {\n    return error instanceof FetchError;\n};\n","import {\n    FETCH_PARTNERS_STATS_REQUEST,\n    FETCH_PARTNERS_STATS_REQUEST_BEGIN,\n    FETCH_PARTNERS_STATS_REQUEST_ERROR,\n    FETCH_PARTNERS_STATS_REQUEST_SUCCESS,\n    FetchPartnersStatsActionT,\n    FetchPartnersStatsBeginActionT,\n    FetchPartnersStatsErrorActionT,\n    FetchPartnersStatsSuccessActionT,\n} from './types';\nimport { PartnersStatsT } from './models';\n\nexport const fetchPartnersStats = (options?: FetchOptionsT): FetchPartnersStatsActionT => ({\n    type: FETCH_PARTNERS_STATS_REQUEST,\n    options,\n});\n\nexport const fetchPartnersStatsBegin = (): FetchPartnersStatsBeginActionT => ({\n    type: FETCH_PARTNERS_STATS_REQUEST_BEGIN,\n});\n\nexport const createPartnerRequestError = (error: Error): FetchPartnersStatsErrorActionT => ({\n    type: FETCH_PARTNERS_STATS_REQUEST_ERROR,\n    error,\n});\n\nexport const fetchPartnersStatsSuccess = (stats: PartnersStatsT): FetchPartnersStatsSuccessActionT => ({\n    type: FETCH_PARTNERS_STATS_REQUEST_SUCCESS,\n    stats,\n});\n","import React from 'react';\n\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownMultipleInput from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInput';\nimport DropdownMultipleInputCountLabel from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInputCountLabel/DropdownMultipleInputCountLabel';\nimport { useTranslation } from 'react-i18next';\nimport { ApiRFQBrokerSourceT, RFQBrokerSourceEnum } from 'common/utils/api/models';\n\ntype OptionT = {\n    value: ApiRFQBrokerSourceT;\n    label: React.ReactNode;\n};\n\ntype ValueT = OptionT['value'];\n\ntype PropsT = {\n    className?: string;\n    values: Array<ValueT>;\n    onSelect: (values: Array<ValueT>) => void;\n    overlayPosition: DropdownOverlayPositionEnum;\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    placeholder?: InputPropsT['placeholder'];\n    onBlur: InputPropsT['onBlur'];\n    onFocus: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasChanges?: boolean;\n    hasClearControl?: boolean;\n    excludedSourcesSet?: Set<ApiRFQBrokerSourceT>;\n};\n\nconst RFQ_BROKER_SOURCE_T_MAP: Record<ApiRFQBrokerSourceT, string> = {\n    CARLO: 'common:rfq-source.carlo',\n    TENDER: 'common:rfq-source.tender',\n    INTERNAL: 'common:rfq-source.internal',\n    CONTRACT_LANE: 'common:rfq-source.contract-lane',\n};\n\nconst ALL_SOURCES: Array<ApiRFQBrokerSourceT> = [\n    RFQBrokerSourceEnum.carlo,\n    RFQBrokerSourceEnum.tender,\n    RFQBrokerSourceEnum.internal,\n    RFQBrokerSourceEnum.contractLane,\n];\n\nconst RFQBrokerSourceMultipleDropdown: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        values,\n        onSelect,\n        hasWarning,\n        hasError,\n        overlayPosition,\n        isDisabled,\n        placeholder,\n        onBlur,\n        onFocus,\n        hasChanges,\n        hasClearControl,\n        excludedSourcesSet,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const options = React.useMemo((): Array<OptionT> => {\n        return ALL_SOURCES.filter((source) => {\n            if (!excludedSourcesSet) {\n                return true;\n            }\n\n            return !excludedSourcesSet.has(source);\n        }).map((value) => ({\n            label: t(RFQ_BROKER_SOURCE_T_MAP[value]),\n            value,\n        }));\n    }, [t, excludedSourcesSet]);\n\n    const renderTriggerContent = (options: Array<OptionT>, placeholder: string | undefined) => {\n        if (!options?.length) {\n            return placeholder;\n        }\n\n        if (options.length === 1) {\n            const option = options[0];\n            return option?.label || null;\n        }\n\n        return <DropdownMultipleInputCountLabel count={options?.length} />;\n    };\n\n    const renderOption = (option: OptionT | null | undefined): React.ReactNode => {\n        if (!option) {\n            return null;\n        }\n\n        return option?.label || '';\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option.value;\n\n    const handleReset = () => {\n        onSelect([]);\n    };\n\n    return (\n        <DropdownMultipleInput<OptionT, ValueT>\n            className={className}\n            options={options}\n            selectedValues={values}\n            getOptionValue={getOptionValue}\n            placeholder={placeholder}\n            isDisabled={isDisabled}\n            onSelect={onSelect}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            renderOption={renderOption}\n            renderTriggerContent={renderTriggerContent}\n            overlayPosition={overlayPosition}\n            onReset={hasClearControl ? handleReset : undefined}\n        />\n    );\n};\n\nexport default RFQBrokerSourceMultipleDropdown;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PriceSettingsRules.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport RulesTable from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/RulesTable/RulesTable';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { ApiPriceRuleTypeRequestT, RulesSortEnum } from 'common/utils/api/models';\nimport SortDropdown, {\n    SortDropdownOptionT,\n    SortDropdownOverlayPositionEnum,\n} from 'common/components/Table/SortDropdown/SortDropdown';\nimport {\n    selectCreateRuleRequest,\n    selectDeleteRulesRequest,\n    selectRulesByIds,\n    selectRulesPages,\n    selectRulesTotal,\n    selectUpdateRulesRequest,\n} from 'broker-admin/store/price-settings/rules/selectors';\nimport {\n    activateRules,\n    deactivateRules,\n    deleteRules,\n    fetchRulesPage,\n} from 'broker-admin/store/price-settings/rules/actions';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\nimport FiltersTrigger from 'common/components/Table/FiltersTrigger/FiltersTrigger';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport TableMessage, { TableMessageIconsEnum } from 'common/components/Table/TableMessage/TableMessage';\nimport Pagination from 'common/components/Table/Pagination/Pagination';\nimport TableActions, { TableActionOptionT } from 'common/components/Table/TableActions/TableActions';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport DeleteIcon from 'common/icons/DeleteIcon';\nimport { RuleT } from 'broker-admin/store/price-settings/rules/models';\nimport {\n    createJsonParams,\n    createPageNumberParam,\n    createSortParams,\n    PageSortT,\n    SortDirectionEnum,\n} from 'common/utils/query';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport StickyFooter from 'common/layouts/LeftMenuLayout/StickyFooter/StickyFooter';\nimport TableError from 'common/components/Table/TableError/TableError';\nimport { prepareFetchPageQuery } from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/prepare-fetch-page-query';\nimport ListPageHeaderLayout from 'common/layouts/ListPage/ListPageHeaderLayout/ListPageHeaderLayout';\nimport ListPageLayout from 'common/layouts/ListPage/ListPageLayout/ListPageLayout';\nimport { useCheckOpenedSidebar, useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport { logWarning } from 'common/utils/logger';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { rulesPaginationChannel, rulesRefreshChannel } from 'broker-admin/store/price-settings/rules/channels';\nimport { useQueryParams } from 'use-query-params';\nimport { QueryFiltersKeysEnum, QueryFiltersT, QueryKeysEnum } from './query-models';\nimport { BrokerSidebarsTypeEnum } from 'broker-admin/layouts/SideBars/constants';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { checkNeedRenderEmptyState } from 'common/components/Table/utils/check-need-render-empty-state';\nimport isEmpty from 'lodash/isEmpty';\nimport { SpecialOptionEnum } from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport DoneIcon from 'common/icons/DoneIcon';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport { useHistoryPush } from 'common/utils/hooks/useHistoryPush';\nimport history from 'common/utils/history';\nimport SearchControl from 'common/components/Table/SearchControl/SearchControl';\nimport RuleStateControl from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/RuleStateControl/RuleStateControl';\nimport { PriceSettingsRuleStateEnum } from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/constants';\nimport RuleTypeMultipleControl from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/RuleTypeMultipleControl/RuleTypeMultipleControl';\nimport SelectedFilters from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/SelectedFilters/SelectedFilters';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst PriceSettingsRules: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n\n    const { partnerId, partnerType } = usePartnerContext();\n\n    const { historyPush } = useHistoryPush();\n\n    const openLeftSidebar = useOpenLeftSidebar();\n    const handleOpenUserDetails = (userId: UserIdT | null) => {\n        if (!userId) {\n            logWarning('failed to open user details in price settings rules, empty userId');\n            return;\n        }\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in handleOpenUserDetails');\n            return;\n        }\n\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId,\n            partnerType,\n            userId,\n        });\n    };\n\n    const [selectedRulesSet, setSelectedRulesSet] = React.useState<Set<RuleT>>(new Set());\n\n    const total = useSelector(selectRulesTotal);\n    const rulesPages = useSelector(selectRulesPages);\n    const rulesById = useSelector(selectRulesByIds);\n    const deleteRulesRequest = useSelector(selectDeleteRulesRequest);\n    const createRuleRequest = useSelector(selectCreateRuleRequest);\n    const updateRulesRequest = useSelector(selectUpdateRulesRequest);\n\n    const isOpenedFilters = useCheckOpenedSidebar(BrokerSidebarsTypeEnum.priceSettingsRuleFilter);\n    const openFilters = React.useCallback(() => {\n        openLeftSidebar({\n            type: BrokerSidebarsTypeEnum.priceSettingsRuleFilter,\n        });\n    }, [openLeftSidebar]);\n\n    const [query, changeQuery] = useQueryParams({\n        [QueryKeysEnum.rulesPage]: createPageNumberParam(),\n        [QueryKeysEnum.rulesSort]: createSortParams<RulesSortEnum>({\n            value: RulesSortEnum.name,\n            direction: SortDirectionEnum.DESC,\n        }),\n        [QueryKeysEnum.rulesFilters]: createJsonParams<QueryFiltersT>({}),\n    });\n\n    const selectedSort = query[QueryKeysEnum.rulesSort];\n    const pageNumber = query[QueryKeysEnum.rulesPage];\n    const queryFilters = query[QueryKeysEnum.rulesFilters];\n    const page = rulesPages[pageNumber];\n\n    const { ids, requestStatus } = page || {};\n\n    React.useEffect(() => {\n        dispatch(fetchCountriesDict());\n    }, [dispatch]);\n\n    React.useEffect(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchRulesPage(pageNumber, query));\n    }, [dispatch, pageNumber, selectedSort, queryFilters]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchRulesPage(pageNumber, query, { isForceUpdate: false }));\n    }, [dispatch, pageNumber, selectedSort, queryFilters]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const refreshPageHandler = React.useCallback(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchRulesPage(pageNumber, query, { isForceUpdate: true }));\n    }, [dispatch, pageNumber, selectedSort, queryFilters]);\n    useChannelSubscribe(rulesRefreshChannel, refreshPageHandler);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchRulesPage(pageNumber, query, { isForceUpdate: true }));\n    }, [dispatch, pageNumber, selectedSort, queryFilters]);\n\n    React.useEffect(() => {\n        setSelectedRulesSet(new Set());\n    }, [ids]);\n\n    const rules = React.useMemo(() => {\n        return (ids || []).map((id): RuleT => rulesById[id]);\n    }, [ids, rulesById]);\n\n    const goToPage = React.useCallback(\n        (pageNumber: PageNumberT) => {\n            setSelectedRulesSet(new Set());\n\n            changeQuery({\n                [QueryKeysEnum.rulesPage]: pageNumber,\n            });\n        },\n        [setSelectedRulesSet, changeQuery],\n    );\n\n    const setPageHandler = React.useCallback(\n        ({ pageNumber }: InferChannelEventT<typeof rulesPaginationChannel>) => {\n            goToPage(pageNumber);\n        },\n        [goToPage],\n    );\n    useChannelSubscribe(rulesPaginationChannel, setPageHandler);\n\n    const sortOptions: Array<SortDropdownOptionT<RulesSortEnum>> = React.useMemo(\n        () => [\n            {\n                label: t('price-settings.rules.sorts.triggers.name'),\n                value: RulesSortEnum.name,\n            },\n            {\n                label: t('price-settings.rules.sorts.triggers.created-date'),\n                value: RulesSortEnum.createdDate,\n            },\n            {\n                label: t('price-settings.rules.sorts.triggers.update-date'),\n                value: RulesSortEnum.updateDate,\n            },\n            {\n                label: t('price-settings.rules.sorts.triggers.valid-from'),\n                value: RulesSortEnum.validFrom,\n            },\n            {\n                label: t('price-settings.rules.sorts.triggers.valid-till'),\n                value: RulesSortEnum.validTill,\n            },\n        ],\n        [t],\n    );\n\n    const handleSelectSort = (sort: PageSortT<RulesSortEnum>) => {\n        changeQuery({\n            [QueryKeysEnum.rulesPage]: 0,\n            [QueryKeysEnum.rulesSort]: sort,\n        });\n    };\n\n    const updateQueryFilters = (queryFiltersChanges: QueryFiltersT) => {\n        const prevQueryFilters = query[QueryKeysEnum.rulesFilters] || {};\n\n        const queryFilters = {\n            ...prevQueryFilters,\n            ...queryFiltersChanges,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.rulesPage]: 0,\n            [QueryKeysEnum.rulesFilters]: queryFilters,\n        });\n    };\n\n    const handleSearch = (searchText: string) => {\n        updateQueryFilters({\n            [QueryFiltersKeysEnum.rulesSearchText]: searchText || undefined,\n        });\n    };\n\n    const handleChangeStateFilter = (state: PriceSettingsRuleStateEnum | null) => {\n        updateQueryFilters({\n            [QueryFiltersKeysEnum.rulesState]: state || undefined,\n        });\n    };\n\n    const handleChangeTypeFilter = (types: Array<ApiPriceRuleTypeRequestT>) => {\n        updateQueryFilters({\n            [QueryFiltersKeysEnum.rulesTypes]: types?.length ? types : undefined,\n        });\n    };\n\n    const handleSetQueryFilters = (selectedQueryFilters: QueryFiltersT) => {\n        changeQuery({\n            [QueryKeysEnum.rulesPage]: 0,\n            [QueryKeysEnum.rulesFilters]: selectedQueryFilters,\n        });\n    };\n\n    const resetQueryFilters = () => {\n        changeQuery({\n            [QueryKeysEnum.rulesFilters]: undefined,\n        });\n    };\n\n    const showAddRuleForm = (): void => {\n        const url = urlFactory.settingsRuleCreation();\n        history.push(url);\n    };\n\n    const tableActionOptions: Array<TableActionOptionT | SpecialOptionEnum> = [\n        {\n            label: (\n                <DropdownControlOptionLabel\n                    icon={<DoneIcon fillColor={StyleGuideColorsEnum.brandAccent} size={DEFAULT_ICON_SIZE} />}\n                    label={t('price-settings.rules.actions.activate')}\n                />\n            ),\n            onSelect: () => {\n                const ruleIds = [...selectedRulesSet].map((rule) => String(rule.id));\n                dispatch(activateRules(ruleIds));\n            },\n            testSelector: 'activate',\n        },\n        SpecialOptionEnum.separator,\n        {\n            label: (\n                <DropdownControlOptionLabel\n                    icon={<CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                    label={t('price-settings.rules.actions.deactivate')}\n                />\n            ),\n            onSelect: () => {\n                const ruleIds = [...selectedRulesSet].map((rule) => String(rule.id));\n                dispatch(deactivateRules(ruleIds));\n            },\n            testSelector: 'deactivate',\n        },\n        SpecialOptionEnum.separator,\n        {\n            label: (\n                <DropdownControlOptionLabel\n                    icon={<DeleteIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                    label={t('price-settings.rules.actions.delete')}\n                />\n            ),\n            onSelect: () => {\n                const ruleIds = [...selectedRulesSet].map((rule) => String(rule.id));\n                dispatch(deleteRules(ruleIds));\n            },\n            testSelector: 'delete',\n        },\n    ];\n\n    const isDisabled = updateRulesRequest.loading || deleteRulesRequest.loading || createRuleRequest.loading;\n\n    const handleActiveRule = (ruleId: RuleIdT) => {\n        dispatch(activateRules([ruleId]));\n    };\n\n    const handleDeactiveRule = (ruleId: RuleIdT) => {\n        dispatch(deactivateRules([ruleId]));\n    };\n\n    const handleDeleteRule = (ruleId: RuleIdT) => {\n        dispatch(deleteRules([ruleId]));\n    };\n\n    const handleEditRule = (event: React.MouseEvent, rule: RuleT) => {\n        const ruleId = rule.id;\n\n        if (!ruleId) {\n            logWarning(`failed to edit rule, empty rule.id`);\n            return;\n        }\n\n        const url = urlFactory.settingsRuleDetails(String(ruleId));\n        historyPush(event, url);\n    };\n\n    const renderTableMessage = () => {\n        if (!checkNeedRenderEmptyState(rules, requestStatus)) {\n            return null;\n        }\n\n        if (requestStatus?.error) {\n            return <TableError error={requestStatus?.error} onRetry={handleRefreshOnError} />;\n        }\n\n        if (requestStatus?.ok && !isEmpty(queryFilters)) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.notFound}\n                    title={t('price-settings.rules.table.messages.not-found.title')}\n                    description={t('price-settings.rules.table.messages.not-found.description')}\n                    isShowAction\n                    actionTitle={t('price-settings.rules.table.messages.not-found.action')}\n                    actionTheme={ButtonThemeEnum.secondary}\n                    onActionClick={resetQueryFilters}\n                    testSelector=\"not-found\"\n                />\n            );\n        }\n\n        return (\n            <TableMessage\n                iconType={TableMessageIconsEnum.empty}\n                title={t('price-settings.rules.table.messages.empty.title')}\n                description={t('price-settings.rules.table.messages.empty.description')}\n                isShowAction\n                actionTitle={t('price-settings.rules.table.messages.empty.action')}\n                onActionClick={showAddRuleForm}\n                testSelector=\"empty\"\n            />\n        );\n    };\n\n    return (\n        <>\n            <ContentMargins>\n                <ListPageLayout>\n                    <ListPageHeaderLayout\n                        withTopPadding\n                        leftToolsNode={\n                            <>\n                                <FiltersTrigger\n                                    testSelector=\"rules\"\n                                    title={t('price-settings.rules.filters.trigger')}\n                                    isActive={isOpenedFilters}\n                                    onClick={openFilters}\n                                />\n                                <SortDropdown\n                                    testSelector=\"rules\"\n                                    overlayPosition={SortDropdownOverlayPositionEnum.left}\n                                    selectedValue={selectedSort}\n                                    options={sortOptions}\n                                    onSelect={handleSelectSort}\n                                />\n                                <RuleTypeMultipleControl\n                                    selectedValues={queryFilters[QueryFiltersKeysEnum.rulesTypes] || []}\n                                    onSelect={handleChangeTypeFilter}\n                                />\n                                <RuleStateControl\n                                    value={queryFilters[QueryFiltersKeysEnum.rulesState] || null}\n                                    onSelect={handleChangeStateFilter}\n                                />\n                                <SearchControl\n                                    placeholder={t('broker-orders.list.search-placeholder')}\n                                    searchText={queryFilters[QueryFiltersKeysEnum.rulesSearchText]}\n                                    onChangeSearchText={handleSearch}\n                                />\n                            </>\n                        }\n                        rightToolsNode={\n                            <>\n                                {!!selectedRulesSet.size && (\n                                    <TableActions\n                                        options={tableActionOptions}\n                                        trigger={t('common:actions-trigger')}\n                                        isDisabled={isDisabled}\n                                        testSelector=\"rule\"\n                                    />\n                                )}\n                                <Button\n                                    theme={ButtonThemeEnum.primary}\n                                    onClick={showAddRuleForm}\n                                    testSelector=\"add-rule\"\n                                >\n                                    {t('price-settings.rules.form.add-trigger')}\n                                </Button>\n                            </>\n                        }\n                        filterTagsNode={\n                            <SelectedFilters\n                                isCompact\n                                queryFilters={queryFilters}\n                                setQueryFilters={handleSetQueryFilters}\n                            />\n                        }\n                    />\n                    {renderTableMessage()}\n                    <RulesTable\n                        rules={rules}\n                        isDisabled={isDisabled}\n                        isLoading={requestStatus?.loading}\n                        selectedRulesSet={selectedRulesSet}\n                        onSelectRules={setSelectedRulesSet}\n                        onClickRow={handleEditRule}\n                        onActiveRule={handleActiveRule}\n                        onDeactiveRule={handleDeactiveRule}\n                        onDeleteRule={handleDeleteRule}\n                        onOpenUserDetails={handleOpenUserDetails}\n                    />\n                </ListPageLayout>\n            </ContentMargins>\n            <StickyFooter>\n                <Pagination current={pageNumber} count={total?.pageCount} goToPage={goToPage} />\n            </StickyFooter>\n        </>\n    );\n});\n\nexport default PriceSettingsRules;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    fillOpacity?: number;\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n    size: number;\n};\n\nconst TrailerIcon: React.FC<PropsT> = (props) => {\n    const { size, className, fillColor, fillOpacity, strokeColor } = props;\n\n    return (\n        <svg width={size} height={size} viewBox=\"0 0 20 20\" className={className}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path fill={fillColor} fillOpacity={fillOpacity || 1} d=\"M2 3h15v8l-1 1v2h-2l-3-2-3 2H2z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M11.182 13.462c1.45 0 2.625 1.197 2.625 2.671 0 1.474-1.175 2.67-2.625 2.67s-2.627-1.196-2.627-2.67c0-1.475 1.178-2.67 2.627-2.67zm0 1.5c-.636 0-1.153.527-1.153 1.171 0 .647.518 1.173 1.153 1.173.634 0 1.152-.528 1.152-1.173 0-.646-.518-1.17-1.152-1.17zm-3.212.778a3.196 3.196 0 00-.026.784H2v-.784h5.97zm9.478-.279v.783h-2.93a3.041 3.041 0 00-.028-.783h2.958zM18 2v10.235h-.844v3.004h-2.7l-.13-.084c-.442-1.314-1.669-2.265-3.109-2.265-1.572 0-2.888 1.129-3.21 2.628H2L1.999 14H6.5c.642-1.926 2.057-2.925 4.244-2.996L11 11h5V4H1.999L2 2h16zm-1.585 10.234h-.41v1.662h.41v-1.662z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nTrailerIcon.displayName = 'TrailerIcon';\n\nexport const TrailerIconProps = {\n    getControlProps: ({\n        isDisabled,\n        isFocused,\n        isPressed,\n        hasError,\n        hasWarning,\n        hasSuccess,\n        hasValue,\n    }: {\n        isDisabled?: boolean;\n        isFocused?: boolean;\n        isPressed?: boolean;\n        hasError?: boolean;\n        hasWarning?: boolean;\n        hasSuccess?: boolean;\n        hasValue?: boolean;\n    }): PropsT => {\n        if (hasError) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.tomatoRed,\n            };\n        }\n\n        if (hasWarning) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.orange,\n            };\n        }\n\n        if (hasSuccess) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n\n        if (isDisabled) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.slate,\n            };\n        }\n\n        return {\n            size: DEFAULT_ICON_SIZE,\n            fillColor:\n                hasValue || isFocused || isPressed\n                    ? StyleGuideColorsEnum.brandAccent\n                    : StyleGuideColorsEnum.transparent,\n            strokeColor:\n                hasValue || isFocused || isPressed ? StyleGuideColorsEnum.brandDark : StyleGuideColorsEnum.light,\n        };\n    },\n};\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default TrailerIcon;\n\n/**\n *  @deprecated create/use ...Props class\n * */\nexport const getTrailerIconProps = (\n    preset:\n        | 'default'\n        | 'selected'\n        | 'assignment-events'\n        | 'assignment-normal'\n        | 'assignment-selected'\n        | 'assignment-not-in-time-normal'\n        | 'assignment-not-in-time-selected',\n): PropsT => {\n    switch (preset) {\n        case 'selected': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.brandAccent,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        case 'assignment-normal': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.white,\n            };\n        }\n        case 'assignment-events': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.white,\n            };\n        }\n        case 'assignment-selected': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.brandAccent,\n            };\n        }\n        case 'assignment-not-in-time-normal': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.slate,\n            };\n        }\n        case 'assignment-not-in-time-selected': {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.transparent,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        default: {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.white,\n                strokeColor: StyleGuideColorsEnum.light,\n            };\n        }\n    }\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"table__header\":\"BaseDocumentsTable__table__header___zEiNu\",\"table__header--type\":\"BaseDocumentsTable__table__header--type___e9u3g\",\"table__header--expire-date\":\"BaseDocumentsTable__table__header--expire-date___PzLqZ\",\"table__column\":\"BaseDocumentsTable__table__column___oLDBV\",\"table__column--type\":\"BaseDocumentsTable__table__column--type___Ge4NZ\",\"table__column--upload\":\"BaseDocumentsTable__table__column--upload___YkC9z\",\"table__column--review\":\"BaseDocumentsTable__table__column--review___PBYCu\",\"table__column--expire-date\":\"BaseDocumentsTable__table__column--expire-date___fRZfh\",\"table__column--actions\":\"BaseDocumentsTable__table__column--actions___5NmfZ\",\"fadeIn\":\"BaseDocumentsTable__fadeIn___meMmT\",\"blinking\":\"BaseDocumentsTable__blinking____wdS4\"};","import * as React from 'react';\nimport { hot } from 'react-hot-loader';\n\nimport Loadable from 'react-loadable';\nimport { Redirect, Route, Router, Switch } from 'react-router-dom';\nimport { Provider } from 'react-redux';\n\nimport history from 'common/utils/history';\nimport Loader from 'common/components/LoaderTitle/LoaderTitle';\nimport { routesEnum } from 'broker-admin/constants';\n\nimport store from 'broker-admin/store';\n\nimport '@animated-burgers/burger-squeeze/dist/styles.css';\n\nimport classNames from 'classnames/bind';\nimport styles from './App.scss';\nimport ChangePasswordPage from 'common/layouts/ChangePasswordPage/ChangePasswordPage';\nimport ErrorModal from 'common/components/ErrorModal/ErrorModal';\nimport AuthLoader from 'common/layouts/AuthLoader/AuthLoader';\nimport UiContext from 'common/contexts/ui-context';\nimport useMenuVisibility from 'common/utils/hooks/useMenuVisibility';\nimport {\n    getNotificationLink,\n    renderNotificationText,\n    renderAlertToast,\n    renderNotification,\n    renderLog,\n    renderLogText,\n} from '../../components/toasts/utils';\nimport OverlaysManager from 'common/components/OverlaysManager/OverlaysManager';\nimport ErrorBoundary from 'common/components/ErrorBoundary/ErrorBoundary';\nimport { QueryParamProvider } from 'use-query-params';\nimport { ReactRouter5Adapter } from 'use-query-params/adapters/react-router-5';\nimport PartnerContext from 'common/contexts/partner-context';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { DEFAULT_BROKER_COMPANY_ID } from 'common/constants';\nimport NotificationSidebarContext from 'common/contexts/notification-sidebar-context';\nimport CommonUrlFactoryContext, { CommonUrlFactoryContextT } from 'common/contexts/common-url-factory-context';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport { useFeaturesContextValue } from 'common/utils/hooks/useFeaturesContextValue';\nimport FeaturesContext from 'common/contexts/features';\nimport PartnerPermissionsContextProvider from 'common/components/PartnerPermissionsContextProvider/PartnerPermissionsContextProvider';\nimport RenderLogContextProvider from 'common/components/RenderLogContextProvider/RenderLogContextProvider';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst SignInPage = Loadable({\n    loader: () => import(/* webpackChunkName: \"SignInPage\" */ 'common/layouts/SignInPage/SignInPage'),\n    loading() {\n        return <Loader />;\n    },\n});\n\nconst SignUpPage = Loadable({\n    loader: () => import(/* webpackChunkName: \"SignUpPage\" */ '../SignUpPage/SignUpPage'),\n    loading() {\n        return <Loader />;\n    },\n});\n\nconst ContinueSignUpPage = Loadable({\n    loader: () =>\n        import(/* webpackChunkName: \"ContinueSignUpPage\" */ 'common/layouts/ContinueSignUpPage/ContinueSignUpPage'),\n    loading() {\n        return <Loader />;\n    },\n});\n\nconst SelfCreateCompanyPage = Loadable({\n    loader: () =>\n        import(\n            /* webpackChunkName: \"SelfCreateCompanyPage\" */ 'common/layouts/SelfCreateCompanyPage/SelfCreateCompanyPage'\n        ),\n    loading() {\n        return <Loader />;\n    },\n});\n\nconst ForgotPasswordPage = Loadable({\n    loader: () =>\n        import(/* webpackChunkName: \"ForgotPasswordPage\" */ 'common/layouts/ForgotPasswordPage/ForgotPasswordPage'),\n    loading() {\n        return <Loader />;\n    },\n});\n\nconst ConfirmEmailPage = Loadable({\n    loader: () => import(/* webpackChunkName: \"ConfirmEmailPage\" */ 'common/layouts/ConfirmEmailPage/ConfirmEmailPage'),\n    loading() {\n        return <Loader />;\n    },\n});\n\nconst ClientPage = Loadable({\n    loader: () => import(/* webpackChunkName: \"ClientPage\" */ '../ClientPage/ClientPage'),\n    loading() {\n        return <Loader />;\n    },\n});\n\nconst NotFoundPage = Loadable({\n    loader: () => import(/* webpackChunkName: \"NotFoundPage\" */ 'common/layouts/NotFoundPage/NotFoundPage'),\n    loading() {\n        return <Loader />;\n    },\n});\n\nconst AccessDeniedPage = Loadable({\n    loader: () => import(/* webpackChunkName: \"AccessDeniedPage\" */ 'common/layouts/AccessDeniedPage/AccessDeniedPage'),\n    loading() {\n        return <Loader />;\n    },\n});\n\nconst App: React.FC<PropsT> = () => {\n    const menu = useMenuVisibility();\n\n    const contextValue = React.useMemo(() => {\n        return {\n            menu,\n        };\n    }, [menu]);\n\n    const partnerContextValue = React.useMemo(() => {\n        return {\n            partnerType: PartnerTypeEnum.broker,\n            partnerId: DEFAULT_BROKER_COMPANY_ID,\n        };\n    }, []);\n\n    const notificationBarContextValue = React.useMemo(() => {\n        return {\n            renderNotification,\n            getNotificationLink,\n            renderNotificationText,\n        };\n    }, []);\n\n    const commonUrlFactoryContextValue = React.useMemo((): CommonUrlFactoryContextT => {\n        return {\n            ...urlFactory,\n            transportOrderDetails: (partnerId, transportOrderId) => {\n                return partnerId\n                    ? urlFactory.partnerTransportOrderDetails(PartnerTypeEnum.carrier, partnerId, transportOrderId)\n                    : null;\n            },\n        };\n    }, []);\n\n    const featureContextValue = useFeaturesContextValue();\n\n    return (\n        <ErrorBoundary>\n            <FeaturesContext.Provider value={featureContextValue}>\n                <UiContext.Provider value={contextValue}>\n                    <NotificationSidebarContext.Provider value={notificationBarContextValue}>\n                        <PartnerContext.Provider value={partnerContextValue}>\n                            <CommonUrlFactoryContext.Provider value={commonUrlFactoryContextValue}>\n                                <RenderLogContextProvider renderLogText={renderLogText} renderLog={renderLog}>\n                                    <Provider store={store}>\n                                        <PartnerPermissionsContextProvider>\n                                            <Router history={history}>\n                                                <QueryParamProvider adapter={ReactRouter5Adapter}>\n                                                    <div className={cx('app')}>\n                                                        <AuthLoader>\n                                                            <Switch>\n                                                                <Route path={routesEnum.deprecateSignUp}>\n                                                                    <Redirect to={{ pathname: routesEnum.home }} />\n                                                                </Route>\n                                                                <Route path={routesEnum.signIn}>\n                                                                    <SignInPage />\n                                                                </Route>\n                                                                <Route path={routesEnum.signUp}>\n                                                                    <SignUpPage />\n                                                                </Route>\n                                                                <Route path={routesEnum.continueSignUp}>\n                                                                    <ContinueSignUpPage />\n                                                                </Route>\n                                                                <Route path={routesEnum.selfCreateCompany}>\n                                                                    <SelfCreateCompanyPage />\n                                                                </Route>\n                                                                <Route path={routesEnum.forgotPassword}>\n                                                                    <ForgotPasswordPage />\n                                                                </Route>\n                                                                <Route path={routesEnum.changePassword}>\n                                                                    <ChangePasswordPage />\n                                                                </Route>\n                                                                <Route path={routesEnum.confirmEmail}>\n                                                                    <ConfirmEmailPage />\n                                                                </Route>\n                                                                <Route path={routesEnum.notFound}>\n                                                                    <NotFoundPage />\n                                                                </Route>\n                                                                <Route path={routesEnum.accessDenied}>\n                                                                    <AccessDeniedPage />\n                                                                </Route>\n                                                                <Route path=\"*\">\n                                                                    <ClientPage />\n                                                                </Route>\n                                                            </Switch>\n                                                        </AuthLoader>\n                                                        <OverlaysManager\n                                                            renderAlertToast={renderAlertToast}\n                                                            renderNotification={renderNotification}\n                                                            renderNotificationText={renderNotificationText}\n                                                            getNotificationLink={getNotificationLink}\n                                                        />\n                                                        <ErrorModal />\n                                                    </div>\n                                                </QueryParamProvider>\n                                            </Router>\n                                        </PartnerPermissionsContextProvider>\n                                    </Provider>\n                                </RenderLogContextProvider>\n                            </CommonUrlFactoryContext.Provider>\n                        </PartnerContext.Provider>\n                    </NotificationSidebarContext.Provider>\n                </UiContext.Provider>\n            </FeaturesContext.Provider>\n        </ErrorBoundary>\n    );\n};\n\nexport default hot(module)(App);\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './TableSkeleton.scss';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport ControlLoaderWithShadow from 'common/components/ControlLoaderWithShadow/ControlLoaderWithShadow';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n};\n\nconst TableSkeleton: React.FC<PropsT> = React.memo((props) => {\n    const { className } = props;\n\n    return (\n        <div className={className} data-test-selector=\"table-loader\">\n            <div className={cx('skeleton__box', 'skeleton__box--table-head')} />\n            <div className={cx('skeleton__box', 'skeleton__box--table-row')} />\n            <div className={cx('skeleton__box', 'skeleton__box--table-row')} />\n            <div className={cx('skeleton__box', 'skeleton__box--table-row')} />\n            <div className={cx('loader')}>\n                <ControlLoaderWithShadow fillColor={StyleGuideColorsEnum.light} />\n            </div>\n        </div>\n    );\n});\n\nexport default TableSkeleton;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PriceDetails.scss';\nimport cs from 'classnames';\n\nimport Money from 'common/components/Money/Money';\n\nimport isNumber from 'lodash/isNumber';\nimport { CurrencyEnum, StyleGuideColorsEnum } from 'common/constants';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipIconTrigger from 'design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger';\nimport ColoredDiff from 'common/components/ColoredDiff/ColoredDiff';\nimport TransparentTriggerWithTooltip from '../ExpandTrigger/TransparentTriggerWithTooltip';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { useTranslation } from 'react-i18next';\nimport ExpandIcon from 'common/icons/ExpandIcon';\n\nconst cx = classNames.bind(styles);\n\nexport type PriceDetailT = {\n    className?: string;\n    title?: React.ReactNode;\n    placeholder?: React.ReactNode;\n    quantity?: number | null;\n    price?: number | null;\n    priceDiff?: number | null;\n    notActualPrice?: number | null;\n    customPriceDiffNegativeColor?: StyleGuideColorsEnum;\n    isInvertedPriceDiff?: boolean | null;\n    isLoading?: boolean | null;\n    tooltipNode?: React.ReactNode;\n    pillLabelNode?: React.ReactNode;\n    pillLabelTooltipNode?: React.ReactNode;\n    pillLabelTheme?: PillLabelThemeEnum;\n    shouldRenderIcon?: boolean;\n    iconNode?: React.ReactNode;\n    leftNode?: React.ReactNode;\n    rawLeftNode?: React.ReactNode;\n    rightNode?: React.ReactNode;\n    rawRightNode?: React.ReactNode;\n    customActionNode?: React.ReactNode;\n    footerNode?: React.ReactNode;\n    list?: Array<PriceDetailT | null>;\n    initialOpen?: boolean;\n    shouldRenderExpandTrigger?: boolean;\n    isDisabledHover?: boolean;\n};\n\ntype PriceDetailPropsT = PriceDetailT & {\n    nestLevel: number;\n};\n\nconst SHOW_TOOLTIP_DELAY = 300;\n\nconst STEP_MARGIN_LEFT_PX = 30; // px\n\nconst PriceDetail: React.FC<PriceDetailPropsT> = (props) => {\n    const {\n        className,\n        title,\n        placeholder,\n        quantity,\n        price,\n        priceDiff,\n        customPriceDiffNegativeColor,\n        notActualPrice,\n        pillLabelNode,\n        pillLabelTooltipNode,\n        pillLabelTheme,\n        isInvertedPriceDiff,\n        shouldRenderIcon,\n        iconNode,\n        leftNode,\n        rawLeftNode,\n        rightNode,\n        rawRightNode,\n        footerNode,\n        list,\n        tooltipNode,\n        customActionNode,\n        nestLevel,\n        initialOpen,\n        shouldRenderExpandTrigger,\n        isLoading,\n        isDisabledHover,\n    } = props;\n\n    const isShowRow = !!title;\n\n    const { t } = useTranslation();\n\n    const [isOpen, setOpen] = React.useState<boolean>(!!initialOpen || !isShowRow);\n\n    const isClickable = !!list?.length;\n\n    const pillNode = pillLabelNode ? (\n        <PillLabel className={cx('pill')} isSymmetrical theme={pillLabelTheme || PillLabelThemeEnum.charcoal}>\n            {pillLabelNode}\n        </PillLabel>\n    ) : null;\n\n    const toggle = (event: React.MouseEvent): void => {\n        setOpen(!isOpen);\n        event.stopPropagation();\n    };\n\n    const moneyNode = isNumber(price) ? <Money amount={price} currency={CurrencyEnum.EUR} /> : null;\n\n    return (\n        <>\n            {isShowRow && (\n                <div\n                    className={cs(\n                        cx('row', {\n                            'row--isClickable': isClickable,\n                        }),\n                        isOpen ? null : className,\n                    )}\n                    onClick={toggle}\n                    style={{\n                        marginLeft: `${nestLevel * STEP_MARGIN_LEFT_PX}px`,\n                    }}\n                >\n                    <div className={cx('column', 'column--content')}>\n                        <div\n                            className={cx('content', {\n                                'content--isHoverable': !isDisabledHover,\n                            })}\n                        >\n                            {shouldRenderIcon && (\n                                <div className={cx('content-column', 'content-column--icon')}>{iconNode}</div>\n                            )}\n                            {!!leftNode && (\n                                <div className={cx('content-column', 'content-column--left-node')}>{leftNode}</div>\n                            )}\n                            {rawLeftNode}\n                            <div\n                                className={cx('content-column', {\n                                    'content-column--title': true,\n                                })}\n                            >\n                                {title}\n                                {!!tooltipNode && (\n                                    <Tooltip\n                                        className={cx('tooltip')}\n                                        position={TooltipPositionEnum.topCenter}\n                                        theme={TooltipThemeEnum.black}\n                                        tooltipNode={tooltipNode}\n                                        delay={SHOW_TOOLTIP_DELAY}\n                                    >\n                                        {(isShow) => <TooltipIconTrigger isShow={isShow} />}\n                                    </Tooltip>\n                                )}\n                                {pillNode &&\n                                    (pillLabelTooltipNode ? (\n                                        <Tooltip\n                                            isInline\n                                            position={TooltipPositionEnum.topCenter}\n                                            theme={TooltipThemeEnum.black}\n                                            tooltipNode={pillLabelTooltipNode}\n                                            delay={SHOW_TOOLTIP_DELAY}\n                                        >\n                                            {() => pillNode}\n                                        </Tooltip>\n                                    ) : (\n                                        pillNode\n                                    ))}\n                                {!!footerNode && <div className={cx('footer')}>{footerNode}</div>}\n                            </div>\n                            {moneyNode ? (\n                                <div\n                                    className={cx('content-column', {\n                                        'content-column--price': true,\n                                        'content-column--isLoading': !!isLoading,\n                                    })}\n                                >\n                                    {isNumber(quantity) && quantity > 1 && (\n                                        <span>\n                                            {quantity}\n                                            {' x '}\n                                        </span>\n                                    )}\n                                    {isNumber(notActualPrice) && isNumber(price) && notActualPrice !== price ? (\n                                        <Money\n                                            className={cx('not-actual-price')}\n                                            amount={notActualPrice}\n                                            currency={CurrencyEnum.EUR}\n                                        />\n                                    ) : null}\n                                    {isNumber(priceDiff) ? (\n                                        <ColoredDiff\n                                            diff={-1 * priceDiff}\n                                            isInverted={!!isInvertedPriceDiff}\n                                            customNegativeColor={customPriceDiffNegativeColor}\n                                        >\n                                            {moneyNode}\n                                        </ColoredDiff>\n                                    ) : (\n                                        moneyNode\n                                    )}\n                                </div>\n                            ) : (\n                                <div className={cx('content-column', 'content-column--placeholder')}>\n                                    {placeholder || ''}\n                                </div>\n                            )}\n                            {!!rightNode && (\n                                <div className={cx('content-column', 'content-column--right-node')}>{rightNode}</div>\n                            )}\n                            {rawRightNode}\n                        </div>\n                    </div>\n                    {(shouldRenderExpandTrigger || customActionNode) && (\n                        <div className={cx('column', 'column--trigger')}>\n                            {customActionNode}\n                            {isClickable && (\n                                <TransparentTriggerWithTooltip\n                                    transparentTriggerProps={{\n                                        spaces: 'xs',\n                                        leftIcon: (\n                                            <ExpandIcon\n                                                fillColor={StyleGuideColorsEnum.brandAccent}\n                                                isInvert={isOpen}\n                                            />\n                                        ),\n                                    }}\n                                    tooltipContent={t(isOpen ? 'common:tooltips.collapse' : 'common:tooltips.expand')}\n                                    onClick={() => {\n                                        // nothing, use common handler\n                                    }}\n                                />\n                            )}\n                        </div>\n                    )}\n                </div>\n            )}\n            {!!list?.length && isOpen && (\n                <PriceDetails\n                    list={list}\n                    hasVerticalPaddings={isShowRow}\n                    nestLevel={nestLevel + 1}\n                    className={cs(cx('nested-list'), className)}\n                />\n            )}\n        </>\n    );\n};\n\nexport type PriceDetailsPropsT = {\n    className?: string;\n    list: Array<PriceDetailT | null>;\n    shouldAlwaysRenderExpandTrigger?: boolean;\n    nestLevel?: number; // inner field\n    hasVerticalPaddings?: boolean; // inner field\n};\n\nconst PriceDetails: React.FC<PriceDetailsPropsT> = React.memo((props) => {\n    const { list, nestLevel = 0, shouldAlwaysRenderExpandTrigger, hasVerticalPaddings, className } = props;\n\n    const hasIcons = list.some((item) => !!item?.iconNode);\n\n    const shouldRenderExpandTrigger =\n        shouldAlwaysRenderExpandTrigger || !(nestLevel === 0 && list.every((item) => !item?.list?.length));\n\n    return (\n        <div\n            className={cs(\n                cx('list', {\n                    'list--hasVerticalPaddings': hasVerticalPaddings,\n                }),\n                className,\n            )}\n        >\n            {list.map((item, itemIndex) => {\n                if (!item) {\n                    return null;\n                }\n\n                return (\n                    <PriceDetail\n                        key={itemIndex}\n                        shouldRenderIcon={hasIcons}\n                        iconNode={item.iconNode}\n                        className={item.className}\n                        title={item.title}\n                        price={item.price}\n                        priceDiff={item.priceDiff}\n                        quantity={item.quantity}\n                        isInvertedPriceDiff={item.isInvertedPriceDiff}\n                        notActualPrice={item.notActualPrice}\n                        customPriceDiffNegativeColor={item.customPriceDiffNegativeColor}\n                        placeholder={item.placeholder}\n                        leftNode={item.leftNode}\n                        rawLeftNode={item.rawLeftNode}\n                        rightNode={item.rightNode}\n                        rawRightNode={item.rawRightNode}\n                        customActionNode={item.customActionNode}\n                        footerNode={item.footerNode}\n                        tooltipNode={item.tooltipNode}\n                        pillLabelNode={item.pillLabelNode}\n                        pillLabelTooltipNode={item.pillLabelTooltipNode}\n                        pillLabelTheme={item.pillLabelTheme}\n                        isLoading={item.isLoading}\n                        list={item.list}\n                        initialOpen={item.initialOpen}\n                        isDisabledHover={item.isDisabledHover}\n                        nestLevel={nestLevel}\n                        shouldRenderExpandTrigger={shouldRenderExpandTrigger}\n                    />\n                );\n            })}\n        </div>\n    );\n});\n\nexport default PriceDetails;\n","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { ApiAvailableStepsResponseT, ConsistentStateMachineDescriptorT, StateMachineEntityHashT } from './models';\n\nexport type ConsistentStateMachineItemStateT = {\n    fetchRequest: RequestStatusT;\n    data: ApiAvailableStepsResponseT | null;\n    updateRequest: RequestStatusT;\n};\n\nexport const initialConsistentStateMachineItemState: ConsistentStateMachineItemStateT = {\n    fetchRequest: requestStatus.initial,\n    data: null,\n    updateRequest: requestStatus.initial,\n};\n\nexport type ConsistentStateMachineStateT = Record<StateMachineEntityHashT, ConsistentStateMachineItemStateT>;\n\nconst initialState: ConsistentStateMachineStateT = {};\n\nexport const consistentStateMachineSlice = createSlice({\n    name: 'consistent-state-machine',\n    initialState,\n    reducers: {\n        fetchStateMachineSteps: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                descriptor: ConsistentStateMachineDescriptorT;\n                options?: FetchOptionsT;\n            }>,\n        ) => {\n            // nothing\n        },\n        fetchStateMachineStepsBegin: (\n            state,\n            action: PayloadAction<{\n                hash: StateMachineEntityHashT;\n            }>,\n        ) => {\n            const { hash } = action.payload;\n\n            const itemState = state[hash] || initialConsistentStateMachineItemState;\n\n            state[hash] = {\n                ...itemState,\n                fetchRequest: requestStatus.loading,\n            };\n        },\n        fetchStateMachineStepsSuccess: (\n            state,\n            action: PayloadAction<{\n                hash: StateMachineEntityHashT;\n                data: ApiAvailableStepsResponseT | null;\n            }>,\n        ) => {\n            const { hash, data } = action.payload;\n\n            const itemState = state[hash] || initialConsistentStateMachineItemState;\n\n            state[hash] = {\n                ...itemState,\n                fetchRequest: requestStatus.ok,\n                data,\n            };\n        },\n        fetchStateMachineStepsError: (\n            state,\n            action: PayloadAction<{\n                hash: StateMachineEntityHashT;\n                error: Error;\n            }>,\n        ) => {\n            const { hash, error } = action.payload;\n\n            const itemState = state[hash] || initialConsistentStateMachineItemState;\n\n            state[hash] = {\n                ...itemState,\n                fetchRequest: requestStatus.setError(error),\n            };\n        },\n        toursWaypointsArrived: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                tourId: TourIdT;\n                waypointId: WaypointIdT;\n                descriptor: ConsistentStateMachineDescriptorT;\n            }>,\n        ) => {\n            // nothing\n        },\n        toursWaypointsLeft: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                tourId: TourIdT;\n                waypointId: WaypointIdT;\n                descriptor: ConsistentStateMachineDescriptorT;\n            }>,\n        ) => {\n            // nothing\n        },\n        toursWaypointsUndoArrived: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                tourId: TourIdT;\n                waypointId: WaypointIdT;\n                descriptor: ConsistentStateMachineDescriptorT;\n            }>,\n        ) => {\n            // nothing\n        },\n        toursWaypointsUndoLeft: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                tourId: TourIdT;\n                waypointId: WaypointIdT;\n                descriptor: ConsistentStateMachineDescriptorT;\n            }>,\n        ) => {\n            // nothing\n        },\n        updateEntityStatusBegin: (\n            state,\n            action: PayloadAction<{\n                hash: StateMachineEntityHashT;\n            }>,\n        ) => {\n            const { hash } = action.payload;\n\n            const itemState = state[hash] || initialConsistentStateMachineItemState;\n\n            state[hash] = {\n                ...itemState,\n                updateRequest: requestStatus.loading,\n            };\n        },\n        updateEntityStatusSuccess: (\n            state,\n            action: PayloadAction<{\n                hash: StateMachineEntityHashT;\n            }>,\n        ) => {\n            const { hash } = action.payload;\n\n            const itemState = state[hash] || initialConsistentStateMachineItemState;\n\n            state[hash] = {\n                ...itemState,\n                updateRequest: requestStatus.ok,\n            };\n        },\n        updateEntityStatusError: (\n            state,\n            action: PayloadAction<{\n                hash: StateMachineEntityHashT;\n                error: Error;\n            }>,\n        ) => {\n            const { hash, error } = action.payload;\n\n            const itemState = state[hash] || initialConsistentStateMachineItemState;\n\n            state[hash] = {\n                ...itemState,\n                updateRequest: requestStatus.setError(error),\n            };\n        },\n    },\n});\n\nexport const {\n    fetchStateMachineSteps,\n    fetchStateMachineStepsBegin,\n    fetchStateMachineStepsSuccess,\n    fetchStateMachineStepsError,\n    toursWaypointsLeft,\n    toursWaypointsArrived,\n    toursWaypointsUndoLeft,\n    toursWaypointsUndoArrived,\n    updateEntityStatusBegin,\n    updateEntityStatusSuccess,\n    updateEntityStatusError,\n} = consistentStateMachineSlice.actions;\n\nexport default consistentStateMachineSlice.reducer;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { RFQStatisticsSidebarDataT } from '../models';\n\nconst getInitialValues = (data: RFQStatisticsSidebarDataT): FormValuesT => ({\n    [FieldsEnum.dates]:\n        data.dateFrom || data.dateTo\n            ? {\n                  from: data.dateFrom ? new Date(data.dateFrom) : null,\n                  to: data.dateTo ? new Date(data.dateTo) : null,\n              }\n            : null,\n    [FieldsEnum.shipperId]: data.shipperId || null,\n    [FieldsEnum.shipperName]: data.shipperName || null,\n    [FieldsEnum.userId]: data.userId || null,\n    [FieldsEnum.userName]: data.userName || null,\n});\n\nexport default getInitialValues;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './Radio.scss';\nimport cs from 'classnames';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT<ValueT> = {\n    className?: string;\n    value: ValueT;\n    selectedValue: ValueT;\n    onChange?: (value: ValueT, event: React.MouseEvent<HTMLDivElement>) => void;\n    isDisabled?: boolean;\n    label?: React.ReactNode;\n    rightIcon?: React.ReactNode;\n    testSelector?: string;\n};\n\nconst Radio = <ValueT,>(props: PropsT<ValueT>): React.ReactElement => {\n    const { className, value, selectedValue, onChange, isDisabled, label, rightIcon, testSelector } = props;\n\n    const [isHover, setHover] = React.useState<boolean>(false);\n\n    const handleChange = (event: React.MouseEvent<HTMLDivElement>) => {\n        if (isDisabled) {\n            return;\n        }\n\n        if (onChange) {\n            onChange(value, event);\n        }\n    };\n\n    const handleMouseMove = () => {\n        if (isHover) {\n            return;\n        }\n\n        setHover(true);\n    };\n\n    const handleMouseLeave = () => {\n        setHover(false);\n    };\n\n    const isSelected = value === selectedValue;\n\n    const fullTestSelector = `${testSelector}_radio`;\n\n    return (\n        <div className={cs(cx('wrap'), className)}>\n            <div\n                className={cx('radio', {\n                    'radio--isHover': isHover,\n                    'radio--isClickable': !isDisabled,\n                    'radio--isSelected': isSelected,\n                    'radio--isDisabled': isDisabled,\n                })}\n                onMouseMove={handleMouseMove}\n                onMouseLeave={handleMouseLeave}\n                onClick={handleChange}\n                data-test-selector={fullTestSelector}\n            />\n            <div\n                className={cx('label', {\n                    'label--isClickable': !isDisabled,\n                    'label--isDisabled': isDisabled,\n                    'label--hasRightIcon': !!rightIcon,\n                })}\n                onMouseMove={handleMouseMove}\n                onMouseLeave={handleMouseLeave}\n                onClick={handleChange}\n                data-test-selector={`${fullTestSelector}_label`}\n            >\n                {label}\n            </div>\n            {rightIcon}\n        </div>\n    );\n};\n\nexport default React.memo(Radio) as typeof Radio;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".burger .burger-lines,\\n.burger .burger-lines:after,\\n.burger .burger-lines:before { background-color: #3e3f42; }\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./common/components/NavBurger/override.css\"],\"names\":[],\"mappings\":\"AAAA;;+BAE+B,yBAAyB,EAAE\",\"sourcesContent\":[\".burger .burger-lines,\\n.burger .burger-lines:after,\\n.burger .burger-lines:before { background-color: #3e3f42; }\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import { TFunction } from 'i18next';\n\nimport { FormErrorsT, FormValuesT } from './constants';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {};\n\n    return errors;\n};\n\nexport default validate;\n","// extracted by mini-css-extract-plugin\nexport default {\"dropdown\":\"AddOtherMessengerDropdown__dropdown___CBd5P\",\"fadeIn\":\"AddOtherMessengerDropdown__fadeIn___MyBM7\",\"blinking\":\"AddOtherMessengerDropdown__blinking___k7CV_\"};","import { FormErrorsT } from './constants';\n\nconst validateForm = (): FormErrorsT => ({});\n\nexport default validateForm;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"GroupedLogsLayout__inner___JP8FR\",\"loader\":\"GroupedLogsLayout__loader___eeLob\",\"loader__container\":\"GroupedLogsLayout__loader__container___LTqZg\",\"date-group__title\":\"GroupedLogsLayout__date-group__title___PUsAQ\",\"log\":\"GroupedLogsLayout__log___Xdx1N\",\"empty\":\"GroupedLogsLayout__empty___YPS1h\",\"fadeIn\":\"GroupedLogsLayout__fadeIn___c7g04\",\"blinking\":\"GroupedLogsLayout__blinking___kgOGi\"};","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport { TimeZonesT } from './models';\n\nexport type TimeZonesStateT = {\n    timeZones: TimeZonesT | null;\n    fetchRequest: RequestStatusT;\n};\n\nconst initialState: TimeZonesStateT = {\n    timeZones: null,\n    fetchRequest: requestStatus.initial,\n};\n\nexport const timeZonesSlice = createSlice({\n    name: 'timeZones',\n    initialState,\n    reducers: {\n        fetchTimeZones: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n        ) => {\n            // nothing - handled by saga\n        },\n        fetchTimeZonesBegin: (state) => {\n            state.fetchRequest = requestStatus.loading;\n        },\n        fetchTimeZonesSuccess: (\n            state,\n            action: PayloadAction<{\n                timeZones: TimeZonesT | null;\n            }>,\n        ) => {\n            const { timeZones } = action.payload;\n            state.timeZones = timeZones;\n            state.fetchRequest = requestStatus.ok;\n        },\n        fetchTimeZonesError: (\n            state,\n            action: PayloadAction<{\n                error: Error;\n            }>,\n        ) => {\n            const { error } = action.payload;\n            state.fetchRequest = requestStatus.setError(error);\n        },\n    },\n    extraReducers: (builder) => {\n        builder.addCase('auth/destroySession', () => {\n            return initialState;\n        });\n    },\n});\n\nexport const { fetchTimeZones, fetchTimeZonesBegin, fetchTimeZonesSuccess, fetchTimeZonesError } =\n    timeZonesSlice.actions;\n\nexport default timeZonesSlice.reducer;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ActionOverlay.scss';\nimport cs from 'classnames';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\n\nconst cx = classNames.bind(styles);\n\nexport type ActionOverlayPropsT = {\n    className?: string;\n    isActive: boolean;\n    tooltipPosition?: TooltipPositionEnum;\n    tooltipNode?: React.ReactNode;\n};\n\nconst ActionOverlay: React.FC<ActionOverlayPropsT> = (props) => {\n    const { className, children, tooltipNode, tooltipPosition, isActive } = props;\n\n    return (\n        <Tooltip\n            position={tooltipPosition || TooltipPositionEnum.topCenter}\n            theme={TooltipThemeEnum.black}\n            tooltipNode={isActive ? tooltipNode : null}\n        >\n            {() => (\n                <div className={cs(cx('wrap'), className)}>\n                    {children}\n                    {isActive ? <div className={cx('overlay')} /> : null}\n                </div>\n            )}\n        </Tooltip>\n    );\n};\n\nexport default ActionOverlay;\n","import * as React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\n\nconst OrderWasCanceledCard: React.FC = React.memo(() => {\n    const { t } = useTranslation();\n\n    return <NotificationCardInnerLayout>{t('common:notifications.order-was-canceled')}</NotificationCardInnerLayout>;\n});\n\nexport default OrderWasCanceledCard;\n","import { FieldsEnum, FormValuesT } from './constants';\n\nexport type FormDataT = {\n    reason: string;\n};\n\nconst prepareData = (formValues: FormValuesT): FormDataT => {\n    return {\n        reason: formValues[FieldsEnum.reason],\n    };\n};\n\nexport { prepareData };\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './StatisticsPage.scss';\nimport { useTranslation } from 'react-i18next';\nimport TopBar from 'common/layouts/LeftMenuLayout/TopBar/TopBar';\nimport ScrollableContent from 'common/layouts/LeftMenuLayout/ScrollableContent/ScrollableContent';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport NotificationsBarTrigger from 'common/components/notifications/NotificationsBarTrigger/NotificationsBarTrigger';\nimport TopBarContent from 'common/layouts/LeftMenuLayout/TopBarContent/TopBarContent';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport Widget from 'common/components/Widget/Widget';\nimport FiltersTrigger from 'common/components/Table/FiltersTrigger/FiltersTrigger';\nimport SelectedFilters from './SelectedFilters/SelectedFilters';\nimport { QueryFiltersKeysEnum, QueryFiltersT, QueryKeysEnum } from './query-models';\nimport { createJsonParams } from 'common/utils/query';\nimport Checkbox from 'design-system/components/Checkbox/Checkbox';\nimport { CurrencyEnum, DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport Money from 'common/components/Money/Money';\nimport HollowCircleIcon from 'common/icons/HollowCircleIcon';\nimport LinearScaleIcon from 'common/icons/LinearScaleIcon';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport { DatePickerOverlayPositionEnum } from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport TwinDatePicker from 'design-system/components/date-pickers/TwinDatePicker/TwinDatePicker';\nimport StatisticsChart from 'broker-admin/layouts/StatisticsPage/StatisticsChart/StatisticsChart';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { StatisticGranularityEnum, StatisticSourceEnum } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { prepareFetchQuery } from 'broker-admin/layouts/StatisticsPage/prepare-fetch-query';\nimport { fetchStatistics } from 'broker-admin/store/statistics/actions';\nimport moment from 'moment';\nimport { getDateFromDate } from 'common/utils/time';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport {\n    selectDoneStatistics,\n    selectDoneStatisticsStatus,\n    selectRejectStatistics,\n    selectRejectStatisticsStatus,\n} from 'broker-admin/store/statistics/selectors';\nimport { AggregateEnum, DEFAULT_DATA_SOURCE } from './constants';\nimport { GraphSettingsT } from './models';\nimport isNil from 'lodash/isNil';\nimport InlineLoader from 'common/components/InlineLoader/InlineLoader';\nimport CalendarIcon from 'common/icons/CalendarIcon';\nimport { StringParam, useQueryParams } from 'use-query-params';\nimport { useCheckOpenedSidebar, useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport { BrokerSidebarsTypeEnum } from 'broker-admin/layouts/SideBars/constants';\nimport SideBars from 'broker-admin/layouts/SideBars/SideBars';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst DATE_FORMAT = 'YYYY-MM-DD';\n\nconst AGGREGATE_LABEL_T: Record<AggregateEnum, string> = {\n    [AggregateEnum.rejectedShipperRate]: 'statistics.aggregate.rejected-shipper-rate',\n    [AggregateEnum.acceptedShipperRate]: 'statistics.aggregate.accepted-shipper-rate',\n    [AggregateEnum.estimatedCarrierRate]: 'statistics.aggregate.estimated-carrier-rate',\n    [AggregateEnum.realCarrierRate]: 'statistics.aggregate.real-carrier-rate',\n    [AggregateEnum.margin]: 'statistics.aggregate.margin',\n};\n\nconst AGGREGATE_COLOR: Record<AggregateEnum, StyleGuideColorsEnum | null> = {\n    [AggregateEnum.rejectedShipperRate]: StyleGuideColorsEnum.tomatoRed,\n    [AggregateEnum.acceptedShipperRate]: StyleGuideColorsEnum.mediumGreen,\n    [AggregateEnum.estimatedCarrierRate]: StyleGuideColorsEnum.light,\n    [AggregateEnum.realCarrierRate]: StyleGuideColorsEnum.orange,\n    [AggregateEnum.margin]: null,\n};\n\ntype GranularityOptionT = {\n    label: React.ReactNode;\n    value: StatisticGranularityEnum;\n};\n\nconst availablePresetMap: Record<StatisticSourceEnum, GraphSettingsT['available']> = {\n    [StatisticSourceEnum.import]: {\n        [AggregateEnum.rejectedShipperRate]: false,\n        [AggregateEnum.acceptedShipperRate]: false,\n        [AggregateEnum.estimatedCarrierRate]: true,\n        [AggregateEnum.realCarrierRate]: true,\n        [AggregateEnum.margin]: false,\n    },\n    [StatisticSourceEnum.native]: {\n        [AggregateEnum.rejectedShipperRate]: true,\n        [AggregateEnum.acceptedShipperRate]: true,\n        [AggregateEnum.estimatedCarrierRate]: true,\n        [AggregateEnum.realCarrierRate]: true,\n        [AggregateEnum.margin]: true,\n    },\n};\n\nconst StatisticsPage: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const [query, changeQuery] = useQueryParams({\n        [QueryKeysEnum.statsFilters]: createJsonParams<QueryFiltersT>({}),\n        [QueryKeysEnum.statsGranularity]: StringParam,\n        [QueryKeysEnum.statsFrom]: StringParam,\n        [QueryKeysEnum.statsTo]: StringParam,\n    });\n\n    const queryFilters = query[QueryKeysEnum.statsFilters];\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const isOpenedFilters = useCheckOpenedSidebar(BrokerSidebarsTypeEnum.statisticsFilter);\n    const showFilters = () => {\n        openLeftSidebar({\n            type: BrokerSidebarsTypeEnum.statisticsFilter,\n        });\n    };\n\n    const handleSetQueryFilters = (selectedQueryFilters: QueryFiltersT) => {\n        changeQuery({\n            [QueryKeysEnum.statsFilters]: selectedQueryFilters,\n        });\n    };\n\n    const doneStatistics = useSelector(selectDoneStatistics);\n    const rejectStatistics = useSelector(selectRejectStatistics);\n\n    const aggregateAmounts = React.useMemo((): Record<AggregateEnum, number | null> => {\n        const avgDoneShipperRate = doneStatistics?.aggregate.avgShipperRate;\n        const avgRejectShipperRate = rejectStatistics?.aggregate.avgShipperRate;\n        const avgCarrierRateEstimate = doneStatistics?.aggregate?.avgCarrierRateEstimate;\n        const avgMarginRate = doneStatistics?.aggregate?.avgMarginRate;\n        const avgCarrierRate = doneStatistics?.aggregate?.avgCarrierRate;\n\n        const prepareValue = (value: number | undefined) => (isNil(value) ? null : value);\n\n        return {\n            [AggregateEnum.rejectedShipperRate]: prepareValue(avgRejectShipperRate),\n            [AggregateEnum.acceptedShipperRate]: prepareValue(avgDoneShipperRate),\n            [AggregateEnum.estimatedCarrierRate]: prepareValue(avgCarrierRateEstimate),\n            [AggregateEnum.realCarrierRate]: prepareValue(avgCarrierRate),\n            [AggregateEnum.margin]: prepareValue(avgMarginRate),\n        };\n    }, [doneStatistics, rejectStatistics]);\n\n    const selecedDataSource =\n        (queryFilters?.[QueryFiltersKeysEnum.dataSource] as StatisticSourceEnum) || DEFAULT_DATA_SOURCE;\n\n    const [graphSettings, setGraphSettings] = React.useState<GraphSettingsT>({\n        available: availablePresetMap[selecedDataSource],\n        show: {\n            [AggregateEnum.rejectedShipperRate]: true,\n            [AggregateEnum.acceptedShipperRate]: true,\n            [AggregateEnum.estimatedCarrierRate]: true,\n            [AggregateEnum.realCarrierRate]: true,\n            [AggregateEnum.margin]: true,\n        },\n    });\n\n    React.useEffect(() => {\n        setGraphSettings({\n            ...graphSettings,\n            available: availablePresetMap[selecedDataSource],\n        });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [selecedDataSource]);\n\n    const aggregates = React.useMemo(() => {\n        return [\n            AggregateEnum.rejectedShipperRate,\n            AggregateEnum.acceptedShipperRate,\n            AggregateEnum.estimatedCarrierRate,\n            AggregateEnum.realCarrierRate,\n            AggregateEnum.margin,\n        ].map((type) => ({\n            type,\n            label: t(AGGREGATE_LABEL_T[type]),\n            color: AGGREGATE_COLOR[type],\n            amount: aggregateAmounts[type],\n        }));\n    }, [aggregateAmounts, t]);\n\n    const [selectedGranularity, setGranularity] = React.useState<StatisticGranularityEnum>(\n        (): StatisticGranularityEnum => {\n            const queryStatsGranularity = query[QueryKeysEnum.statsGranularity] as StatisticGranularityEnum;\n            return queryStatsGranularity || StatisticGranularityEnum.week;\n        },\n    );\n    React.useEffect(() => {\n        changeQuery({\n            [QueryKeysEnum.statsGranularity]: selectedGranularity,\n        });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [selectedGranularity]);\n\n    const options: GranularityOptionT[] = React.useMemo(\n        () => [\n            {\n                label: t('statistics.unit.month'),\n                value: StatisticGranularityEnum.month,\n            },\n            {\n                label: t('statistics.unit.week'),\n                value: StatisticGranularityEnum.week,\n            },\n            {\n                label: t('statistics.unit.day'),\n                value: StatisticGranularityEnum.day,\n            },\n        ],\n        [t],\n    );\n\n    const renderOption = (option?: GranularityOptionT, placeholder?: string): React.ReactNode => {\n        if (!option) {\n            return placeholder;\n        }\n        return <span className={cx('option')}>{option.label}</span>;\n    };\n\n    const [dates, setDates] = React.useState<DateRangeT | null>(() => {\n        const queryStatisticsFrom = query[QueryKeysEnum.statsFrom];\n        const queryStatisticsTo = query[QueryKeysEnum.statsTo];\n        if (queryStatisticsFrom && queryStatisticsTo) {\n            const parsedStatisticsFrom = moment(queryStatisticsFrom, DATE_FORMAT);\n            const parsedStatisticsTo = moment(queryStatisticsTo, DATE_FORMAT);\n            if (\n                parsedStatisticsFrom.isValid() &&\n                parsedStatisticsTo.isValid() &&\n                parsedStatisticsTo.isAfter(parsedStatisticsFrom)\n            ) {\n                return {\n                    from: parsedStatisticsFrom.toDate(),\n                    to: moment(queryStatisticsTo, DATE_FORMAT).toDate(),\n                };\n            }\n        }\n\n        const defaultDateFrom = moment().toDate();\n        const defaultDateTo = moment().add(1, 'month').toDate();\n\n        return {\n            from: defaultDateFrom,\n            to: defaultDateTo,\n        };\n    });\n\n    React.useEffect(() => {\n        if (!dates?.from || !dates?.to) {\n            return;\n        }\n\n        changeQuery({\n            [QueryKeysEnum.statsTo]: getDateFromDate(dates.to),\n            [QueryKeysEnum.statsFrom]: getDateFromDate(dates.from),\n        });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [dates]);\n\n    React.useEffect(() => {\n        const query = prepareFetchQuery(queryFilters, selectedGranularity, dates);\n        if (!query) {\n            return;\n        }\n\n        dispatch(fetchStatistics(query));\n    }, [queryFilters, selectedGranularity, dates, dispatch]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        const query = prepareFetchQuery(queryFilters, selectedGranularity, dates);\n        if (!query) {\n            return;\n        }\n\n        dispatch(fetchStatistics(query, { isForceUpdate: false }));\n    }, [queryFilters, selectedGranularity, dates, dispatch]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const doneStatisticsStatus = useSelector(selectDoneStatisticsStatus);\n    const rejectStatisticsStatus = useSelector(selectRejectStatisticsStatus);\n\n    const isLoading = doneStatisticsStatus.loading || rejectStatisticsStatus.loading;\n    const isError = doneStatisticsStatus.error || rejectStatisticsStatus.error;\n    const isEmptyData = !isError && !isLoading && !doneStatistics?.series?.length && !rejectStatistics?.series?.length;\n\n    return (\n        <ScrollableContent>\n            <PageTitle title={t('page-titles.statistics')} />\n            <ContentMargins>\n                <TopBar>\n                    <TopBarContent title={t('statistics.title')} rightNode={<NotificationsBarTrigger />} />\n                </TopBar>\n                <div>\n                    <div className={cx('actions')}>\n                        <FiltersTrigger\n                            title={t('statistics.filters.trigger')}\n                            isActive={isOpenedFilters}\n                            onClick={showFilters}\n                        />\n                    </div>\n                    <div className={cx('filter-tags')}>\n                        <SelectedFilters\n                            isCompact\n                            queryFilters={queryFilters}\n                            setQueryFilters={handleSetQueryFilters}\n                        />\n                    </div>\n                    <Widget\n                        className={cx('widget')}\n                        title={t('statistics.sections.rate-history')}\n                        rightNode={\n                            <>\n                                <DropdownInput<GranularityOptionT, GranularityOptionT['value']>\n                                    className={cx('unit')}\n                                    selectedValue={selectedGranularity}\n                                    options={options}\n                                    onSelect={setGranularity}\n                                    renderLeftIcon={() => (\n                                        <LinearScaleIcon strokeColor={StyleGuideColorsEnum.brandDark} />\n                                    )}\n                                    renderOption={renderOption}\n                                    getOptionValue={(option) => option.value}\n                                    overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                />\n                                <TwinDatePicker\n                                    className={cx('dates')}\n                                    value={dates}\n                                    hasYearMonthForm\n                                    placeholder={t('statistics.empty-dates')}\n                                    onChange={setDates}\n                                    overlayPosition={DatePickerOverlayPositionEnum.bottomRight}\n                                    hasClearControl\n                                    renderLeftIcon={(isEmpty) => (\n                                        <CalendarIcon\n                                            size={DEFAULT_ICON_SIZE}\n                                            fillColor={\n                                                isEmpty ? StyleGuideColorsEnum.white : StyleGuideColorsEnum.brandAccent\n                                            }\n                                            strokeColor={\n                                                isEmpty ? StyleGuideColorsEnum.light : StyleGuideColorsEnum.brandDark\n                                            }\n                                        />\n                                    )}\n                                />\n                            </>\n                        }\n                    >\n                        {isEmptyData && <div className={cx('message')}>{t('common:no-data')}</div>}\n                        {isError && <div className={cx('message')}>{t('common:something-went-wrong')}</div>}\n                        {!isError && (\n                            <div className={cx('widget__inner')}>\n                                <div className={cx('widget__aggregates')}>\n                                    {aggregates.map((aggregate) => {\n                                        const isAvailable = graphSettings.available[aggregate.type];\n                                        const isChecked = graphSettings.show[aggregate.type];\n                                        const hasAmount = !isNil(aggregate.amount);\n\n                                        return (\n                                            <div className={cx('aggregate')} key={aggregate.type}>\n                                                <Checkbox\n                                                    className={cx('aggregate__checkbox')}\n                                                    isDisabled={!isAvailable}\n                                                    checked={isChecked}\n                                                    onChange={() => {\n                                                        setGraphSettings({\n                                                            ...graphSettings,\n                                                            show: {\n                                                                ...graphSettings.show,\n                                                                [aggregate.type]: !isChecked,\n                                                            },\n                                                        });\n                                                    }}\n                                                    label={\n                                                        <div className={cx('aggregate__label')}>\n                                                            {aggregate.color ? (\n                                                                <HollowCircleIcon\n                                                                    borderColor={aggregate.color}\n                                                                    className={cx('aggregate__circle')}\n                                                                />\n                                                            ) : null}\n                                                            <span className={cx('aggregate__text')}>\n                                                                {aggregate.label}\n                                                            </span>\n                                                        </div>\n                                                    }\n                                                />\n                                                <div className={cx('aggregate__price')}>\n                                                    {isAvailable && !hasAmount && <InlineLoader lineHeight={20} />}\n                                                    {isAvailable && hasAmount && (\n                                                        <Money amount={aggregate.amount} currency={CurrencyEnum.EUR} />\n                                                    )}\n                                                    {!isAvailable && (\n                                                        <div className={cx('not-number')}>{t('common:not-number')}</div>\n                                                    )}\n                                                </div>\n                                            </div>\n                                        );\n                                    })}\n                                </div>\n                                <div>\n                                    <StatisticsChart\n                                        settings={graphSettings}\n                                        granularity={selectedGranularity}\n                                        doneStatistics={doneStatistics}\n                                        rejectStatistics={rejectStatistics}\n                                    />\n                                </div>\n                                {isLoading && <LoaderOverlay />}\n                            </div>\n                        )}\n                    </Widget>\n                </div>\n            </ContentMargins>\n            <SideBars />\n        </ScrollableContent>\n    );\n});\n\nexport default StatisticsPage;\n","import {\n    checkIsTranziitApiRequestError,\n    TranziitApiRequestError,\n    TranziitApiRequestErrorSubTypeEnum,\n} from 'common/utils/api/tranziit/errors/tranziit-api-errors';\n\nexport type ResponseDataMapT = {\n    [TranziitApiRequestErrorSubTypeEnum.accessDeniedToApi]: Api2.Definitions.ServerErrorResponse;\n    [TranziitApiRequestErrorSubTypeEnum.accessDeniedToEntity]: Api2.Definitions.ServerErrorResponse;\n    [TranziitApiRequestErrorSubTypeEnum.notFoundCompany]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.emailAlreadyExist]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.phoneAlreadyExist]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.canNotDowngradeLastAdminInTeam]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.canNotDeleteHimself]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.orderCreationExpiredRFQ]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.orderCreation_ExpiredPriceOffer]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedCompleteRFQ_CapacityExcess]: Api2.Definitions.ShipmentValidationResponse;\n    [TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedCompleteRFQ_Overweight]: Api2.Definitions.ShipmentValidationResponse;\n    [TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedPreviewRoute_RouteNotFound]: Api2.Definitions.RouteErrorResponse;\n    [TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedPreviewRoute_RouteWaypointNotLinkable]: Api2.Definitions.RouteErrorResponse;\n    [TranziitApiRequestErrorSubTypeEnum.orderCreation_FailedPreviewRoute_ProhibitedCountry]: Api2.Definitions.RouteErrorResponse;\n    [TranziitApiRequestErrorSubTypeEnum.orderCreation_ShipperNotAllowedToHaveNewOrders]: Api2.Definitions.CommonErrorResponse;\n    [TranziitApiRequestErrorSubTypeEnum.orderCreation_ShipperNotAvailable]: Api2.Definitions.CommonErrorResponse;\n    [TranziitApiRequestErrorSubTypeEnum.orderCreation_AlreadyCompletedRFQ]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.noRouteFound]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.successorHasNotActiveStatus]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.couldNotUnLockCompany]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.notAuthorizedUser]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.alreadyAssignedDrivers]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.firebaseTooManyResendInviteRequests]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.expiredContextPreviewReserve]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.failedArchiveInTransitDriver]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.assignmentSelfCostPrediction]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.brokerOrderEdit_ExpirationContext]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.evidenceOfTaxDetails_WrongVat]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.deadheadCreation_InvalidVehicle]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.manualRateRuleCreation_InvalidZipsFrom]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.manualRateRuleUpdate_InvalidZipsFrom]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.manualRateRuleCreation_InvalidZipsTo]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.manualRateRuleUpdate_InvalidZipsTo]: unknown;\n    [TranziitApiRequestErrorSubTypeEnum.documents_unsupportedFileType]: Api2.Definitions.UnsupportedFileTypeErrorDto;\n    [TranziitApiRequestErrorSubTypeEnum.attachedPapers_unsupportedFileType]: Api2.Definitions.UnsupportedFileTypeErrorDto;\n};\n\nexport const checkIsTranziitApiErrorResponse = <TSubType extends keyof ResponseDataMapT>(\n    error: Error | null | undefined,\n    type: TSubType,\n): error is TranziitApiRequestError<ResponseDataMapT[TSubType]> => {\n    if (!checkIsTranziitApiRequestError(error)) {\n        return false;\n    }\n\n    return error.subType === type;\n};\n","import {\n    ACTIVATION_TRAILERS_REQUEST,\n    ActivationTrailersRequestActionT,\n    ADD_TRAILER_REQUEST,\n    ADD_TRAILER_REQUEST_BEGIN,\n    ADD_TRAILER_REQUEST_ERROR,\n    ADD_TRAILER_REQUEST_SUCCESS,\n    AddTrailerRequestActionT,\n    AddTrailerRequestBeginActionT,\n    AddTrailerRequestErrorActionT,\n    AddTrailerRequestSuccessActionT,\n    ARCHIVE_TRAILERS_REQUEST,\n    ArchiveTrailersRequestActionT,\n    ASSIGN_TO_CONTRACT_TRAILERS_REQUEST,\n    AssignToContractRequestActionT,\n    CHANGE_RATE_TRAILERS_REQUEST,\n    DELETE_TRAILERS_REQUEST,\n    DELETE_TRAILERS_REQUEST_BEGIN,\n    DELETE_TRAILERS_REQUEST_ERROR,\n    DELETE_TRAILERS_REQUEST_SUCCESS,\n    DeleteTrailersRequestActionT,\n    DeleteTrailersRequestBeginActionT,\n    DeleteTrailersRequestErrorActionT,\n    DeleteTrailersRequestSuccessActionT,\n    EXPORT_XLS_TRAILERS_REQUEST,\n    EXPORT_XLS_TRAILERS_REQUEST_BEGIN,\n    EXPORT_XLS_TRAILERS_REQUEST_ERROR,\n    EXPORT_XLS_TRAILERS_REQUEST_SUCCESS,\n    ExportXLSTrailersActionT,\n    ExportXLSTrailersBeginActionT,\n    ExportXLSTrailersErrorActionT,\n    ExportXLSTrailersSuccessActionT,\n    FETCH_TRAILER_DETAILS_REQUEST,\n    FETCH_TRAILER_DETAILS_REQUEST_BEGIN,\n    FETCH_TRAILER_DETAILS_REQUEST_ERROR,\n    FETCH_TRAILER_DETAILS_REQUEST_SUCCESS,\n    FETCH_TRAILERS_PAGE_REQUEST,\n    FETCH_TRAILERS_PAGE_REQUEST_BEGIN,\n    FETCH_TRAILERS_PAGE_REQUEST_ERROR,\n    FETCH_TRAILERS_PAGE_REQUEST_SUCCESS,\n    FETCH_TRAILERS_STATS_REQUEST,\n    FETCH_TRAILERS_STATS_REQUEST_BEGIN,\n    FETCH_TRAILERS_STATS_REQUEST_ERROR,\n    FETCH_TRAILERS_STATS_REQUEST_SUCCESS,\n    FetchTrailerDetailsActionT,\n    FetchTrailerDetailsBeginActionT,\n    FetchTrailerDetailsErrorActionT,\n    FetchTrailerDetailsSuccessActionT,\n    FetchTrailersPageActionT,\n    FetchTrailersPageBeginActionT,\n    FetchTrailersPageErrorActionT,\n    FetchTrailersPageSuccessActionT,\n    FetchTrailersStatsActionT,\n    FetchTrailersStatsBeginActionT,\n    FetchTrailersStatsErrorActionT,\n    FetchTrailersStatsSuccessActionT,\n    IMPORT_XLS_TRAILERS_REQUEST,\n    IMPORT_XLS_TRAILERS_REQUEST_BEGIN,\n    IMPORT_XLS_TRAILERS_REQUEST_ERROR,\n    IMPORT_XLS_TRAILERS_REQUEST_SUCCESS,\n    ImportXLSTrailersActionT,\n    ImportXLSTrailersBeginActionT,\n    ImportXLSTrailersErrorActionT,\n    ImportXLSTrailersSuccessActionT,\n    RESET_TRAILERS,\n    ResetTrailersActionT,\n    UPDATE_TRAILERS_REQUEST,\n    UPDATE_TRAILERS_REQUEST_BEGIN,\n    UPDATE_TRAILERS_REQUEST_ERROR,\n    UPDATE_TRAILERS_REQUEST_SUCCESS,\n    UpdateTrailerActionT,\n    UpdateTrailersRequestBeginActionT,\n    UpdateTrailersRequestErrorActionT,\n    UpdateTrailersRequestSuccessActionT,\n    ChangeRateTrailersRequestActionT,\n} from './types';\nimport {\n    ActivateTrailersRequestT,\n    ApiTrailerDetailsT,\n    ApiTrailerT,\n    CompanyTrailersStatsT,\n    FetchTrailersPageQueryT,\n} from './models';\nimport {\n    ApiChangeContractVehiclesRequestT,\n    ApiChangeRateVehiclesRequestT,\n    ApiTrailerAddRequestT,\n    ApiTrailerUpdateRequestT,\n} from 'common/utils/api/models';\nimport { PageResponseT } from 'common/utils/pagination/models';\n\nexport const fetchTrailersPage = (\n    pageNumber: PageNumberT,\n    query: FetchTrailersPageQueryT,\n    companyId: CompanyIdT,\n    options?: FetchOptionsT,\n): FetchTrailersPageActionT => {\n    return {\n        type: FETCH_TRAILERS_PAGE_REQUEST,\n        query,\n        pageNumber,\n        companyId,\n        options,\n    };\n};\n\nexport const fetchTrailersPageBegin = (\n    query: FetchTrailersPageQueryT,\n    pageNumber: PageNumberT,\n    companyId: CompanyIdT,\n): FetchTrailersPageBeginActionT => ({\n    type: FETCH_TRAILERS_PAGE_REQUEST_BEGIN,\n    query,\n    pageNumber,\n    companyId,\n});\n\nexport const fetchTrailersPageSuccess = (\n    query: FetchTrailersPageQueryT,\n    pageNumber: PageNumberT,\n    companyId: CompanyIdT,\n    pageResponse: PageResponseT<ApiTrailerT>,\n): FetchTrailersPageSuccessActionT => ({\n    type: FETCH_TRAILERS_PAGE_REQUEST_SUCCESS,\n    query,\n    pageNumber,\n    companyId,\n    pageResponse,\n});\n\nexport const fetchTrailersPageError = (\n    query: FetchTrailersPageQueryT,\n    pageNumber: PageNumberT,\n    error: Error,\n    companyId: CompanyIdT,\n): FetchTrailersPageErrorActionT => ({\n    type: FETCH_TRAILERS_PAGE_REQUEST_ERROR,\n    query,\n    error,\n    pageNumber,\n    companyId,\n});\n\nexport const resetTrailers = (\n    companyId: CompanyIdT,\n    mutationListOptions: MutationListOptionsT,\n): ResetTrailersActionT => ({\n    type: RESET_TRAILERS,\n    companyId,\n    mutationListOptions,\n});\n\nexport const addTrailerRequest = (data: ApiTrailerAddRequestT, companyId: CompanyIdT): AddTrailerRequestActionT => ({\n    type: ADD_TRAILER_REQUEST,\n    data,\n    companyId,\n});\n\nexport const addTrailerRequestBegin = (companyId: CompanyIdT): AddTrailerRequestBeginActionT => ({\n    type: ADD_TRAILER_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const addTrailerRequestError = (error: Error, companyId: CompanyIdT): AddTrailerRequestErrorActionT => ({\n    type: ADD_TRAILER_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const addTrailerRequestSuccess = (companyId: CompanyIdT): AddTrailerRequestSuccessActionT => ({\n    type: ADD_TRAILER_REQUEST_SUCCESS,\n    companyId,\n});\n\nexport const deleteTrailersRequest = (\n    trailerIds: TrailerIdT[],\n    companyId: CompanyIdT,\n): DeleteTrailersRequestActionT => ({\n    type: DELETE_TRAILERS_REQUEST,\n    trailerIds,\n    companyId,\n});\n\nexport const deleteTrailersRequestBegin = (companyId: CompanyIdT): DeleteTrailersRequestBeginActionT => ({\n    type: DELETE_TRAILERS_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const deleteTrailersRequestError = (error: Error, companyId: CompanyIdT): DeleteTrailersRequestErrorActionT => ({\n    type: DELETE_TRAILERS_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const deleteTrailersRequestSuccess = (companyId: CompanyIdT): DeleteTrailersRequestSuccessActionT => ({\n    type: DELETE_TRAILERS_REQUEST_SUCCESS,\n    companyId,\n});\n\nexport const updateTrailer = (\n    trailerId: TrailerIdT,\n    updateTrailer: ApiTrailerUpdateRequestT,\n    companyId: CompanyIdT,\n): UpdateTrailerActionT => ({\n    type: UPDATE_TRAILERS_REQUEST,\n    trailerId,\n    updateTrailer,\n    companyId,\n});\n\nexport const assignToContractRequest = ({\n    contractName,\n    changeContractRequest,\n    companyId,\n}: {\n    contractName: string | null;\n    changeContractRequest: ApiChangeContractVehiclesRequestT;\n    companyId: CompanyIdT;\n}): AssignToContractRequestActionT => ({\n    type: ASSIGN_TO_CONTRACT_TRAILERS_REQUEST,\n    contractName,\n    changeContractRequest,\n    companyId,\n});\n\nexport const changeRateTrailersRequest = ({\n    companyId,\n    changeRateVehiclesRequest,\n}: {\n    companyId: CompanyIdT;\n    changeRateVehiclesRequest: ApiChangeRateVehiclesRequestT;\n}): ChangeRateTrailersRequestActionT => ({\n    type: CHANGE_RATE_TRAILERS_REQUEST,\n    changeRateVehiclesRequest,\n    companyId,\n});\n\nexport const activationTrailersRequest = (\n    companyId: CompanyIdT,\n    activateTrailersRequest: ActivateTrailersRequestT,\n): ActivationTrailersRequestActionT => ({\n    type: ACTIVATION_TRAILERS_REQUEST,\n    activateTrailersRequest,\n    companyId,\n});\n\nexport const archiveTrailersRequest = (\n    trailerIds: TrailerIdT[],\n    companyId: CompanyIdT,\n    reason: string,\n): ArchiveTrailersRequestActionT => ({\n    type: ARCHIVE_TRAILERS_REQUEST,\n    trailerIds,\n    companyId,\n    reason,\n});\n\nexport const updateTrailersRequestBegin = (companyId: CompanyIdT): UpdateTrailersRequestBeginActionT => ({\n    type: UPDATE_TRAILERS_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const updateTrailersRequestError = (error: Error, companyId: CompanyIdT): UpdateTrailersRequestErrorActionT => ({\n    type: UPDATE_TRAILERS_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const updateTrailersRequestSuccess = (companyId: CompanyIdT): UpdateTrailersRequestSuccessActionT => ({\n    type: UPDATE_TRAILERS_REQUEST_SUCCESS,\n    companyId,\n});\n\nexport const fetchTrailerDetails = (\n    trailerId: TrailerIdT,\n    companyId: CompanyIdT,\n    options?: FetchOptionsT,\n): FetchTrailerDetailsActionT => ({\n    type: FETCH_TRAILER_DETAILS_REQUEST,\n    trailerId,\n    companyId,\n    options,\n});\n\nexport const fetchTrailerDetailsRequestBegin = (companyId: CompanyIdT): FetchTrailerDetailsBeginActionT => ({\n    type: FETCH_TRAILER_DETAILS_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const fetchTrailerDetailsRequestError = (\n    error: Error,\n    companyId: CompanyIdT,\n): FetchTrailerDetailsErrorActionT => ({\n    type: FETCH_TRAILER_DETAILS_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const fetchTrailerDetailsRequestSuccess = (\n    trailerId: TrailerIdT,\n    details: ApiTrailerDetailsT | null,\n    companyId: CompanyIdT,\n): FetchTrailerDetailsSuccessActionT => ({\n    type: FETCH_TRAILER_DETAILS_REQUEST_SUCCESS,\n    trailerId,\n    details,\n    companyId,\n});\n\nexport const fetchTrailersStats = (companyId: CompanyIdT, options?: FetchOptionsT): FetchTrailersStatsActionT => ({\n    type: FETCH_TRAILERS_STATS_REQUEST,\n    companyId,\n    options,\n});\n\nexport const fetchTrailersStatsRequestBegin = (companyId: CompanyIdT): FetchTrailersStatsBeginActionT => ({\n    type: FETCH_TRAILERS_STATS_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const fetchTrailersStatsRequestError = (\n    error: Error,\n    companyId: CompanyIdT,\n): FetchTrailersStatsErrorActionT => ({\n    type: FETCH_TRAILERS_STATS_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const fetchTrailersStatsRequestSuccess = (\n    stats: CompanyTrailersStatsT | null,\n    companyId: CompanyIdT,\n): FetchTrailersStatsSuccessActionT => ({\n    type: FETCH_TRAILERS_STATS_REQUEST_SUCCESS,\n    stats,\n    companyId,\n});\n\nexport const importXLSTrailers = (companyId: CompanyIdT, file: File): ImportXLSTrailersActionT => ({\n    type: IMPORT_XLS_TRAILERS_REQUEST,\n    companyId,\n    file,\n});\n\nexport const importXLSTrailersRequestBegin = (companyId: CompanyIdT): ImportXLSTrailersBeginActionT => ({\n    type: IMPORT_XLS_TRAILERS_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const importXLSTrailersRequestError = (error: Error, companyId: CompanyIdT): ImportXLSTrailersErrorActionT => ({\n    type: IMPORT_XLS_TRAILERS_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const importXLSTrailersRequestSuccess = (companyId: CompanyIdT): ImportXLSTrailersSuccessActionT => ({\n    type: IMPORT_XLS_TRAILERS_REQUEST_SUCCESS,\n    companyId,\n});\n\nexport const exportXLSTrailers = (companyId: CompanyIdT, query: FetchTrailersPageQueryT): ExportXLSTrailersActionT => ({\n    type: EXPORT_XLS_TRAILERS_REQUEST,\n    companyId,\n    query,\n});\n\nexport const exportXLSTrailersRequestBegin = (companyId: CompanyIdT): ExportXLSTrailersBeginActionT => ({\n    type: EXPORT_XLS_TRAILERS_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const exportXLSTrailersRequestError = (error: Error, companyId: CompanyIdT): ExportXLSTrailersErrorActionT => ({\n    type: EXPORT_XLS_TRAILERS_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const exportXLSTrailersRequestSuccess = (companyId: CompanyIdT): ExportXLSTrailersSuccessActionT => ({\n    type: EXPORT_XLS_TRAILERS_REQUEST_SUCCESS,\n    companyId,\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"table--carrier\":\"TransportOrderDetailsCard__table--carrier___gNkdO\",\"table--move\":\"TransportOrderDetailsCard__table--move___X6ctJ\",\"table\":\"TransportOrderDetailsCard__table___kq1YF\",\"fadeIn\":\"TransportOrderDetailsCard__fadeIn___JhZkd\",\"blinking\":\"TransportOrderDetailsCard__blinking___VpxVO\"};","import React, { useCallback } from 'react';\n\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport {\n    AsyncRequestFactoryT,\n    useAsyncOptionsRequest,\n} from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-options-request';\nimport { checkIsDefaultCompanyId } from 'common/utils';\nimport isNil from 'lodash/isNil';\nimport UserDropdownOptionLabel from 'common/components/dropdowns/options/UserDropdownOptionLabel/UserDropdownOptionLabel';\n\nimport DropdownSearchMultipleInput from 'design-system/components/dropdowns/DropdownSearchMultipleInput/DropdownSearchMultipleInput';\nimport { useTranslation } from 'react-i18next';\nimport { SpecialOptionEnum } from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { ALL_BROKER_USERS_VALUE } from 'common/components/dropdowns/UserMultipleDropdown/constants';\nimport classNames from 'classnames/bind';\nimport styles from './UserMultipleDropdown.scss';\nimport DropdownMultipleInputCountLabel from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInputCountLabel/DropdownMultipleInputCountLabel';\nimport TeamDriveIcon from 'common/icons/TeamDriveIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { prepareSearchQuery } from 'common/utils/search';\nimport { logWarning } from 'common/utils/logger';\n\nconst cx = classNames.bind(styles);\n\ntype OptionT = {\n    label?: string;\n    value: UserIdT | typeof ALL_BROKER_USERS_VALUE;\n};\n\ntype ValueT = OptionT['value'];\n\nexport type PropsT = {\n    className?: string;\n    companyId: CompanyIdT | null;\n    onSelect: (values: Array<ValueT>, labels?: Array<string>) => void;\n    values: Array<ValueT>;\n    initialValues: Array<ValueT>;\n    initialLabels: Array<string>;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    placeholder?: InputPropsT['placeholder'];\n    onBlur: InputPropsT['onBlur'];\n    onFocus: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasChanges?: boolean;\n    hasClearControl?: boolean;\n    isShowAllBrokerUsersOption?: boolean;\n};\n\nconst UserMultipleDropdown: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        companyId,\n        values,\n        onSelect,\n        hasWarning,\n        hasError,\n        overlayPosition,\n        isDisabled,\n        onBlur,\n        onFocus,\n        hasChanges,\n        hasClearControl,\n        initialLabels,\n        initialValues,\n        isShowAllBrokerUsersOption,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const requestFactory: AsyncRequestFactoryT<OptionT | SpecialOptionEnum> = useCallback(\n        (query) => {\n            if (!companyId) {\n                logWarning('Empty companyId in requestFactory');\n                return Promise.resolve([null, null]);\n            }\n\n            let promise: ReturnType<\n                typeof brokerTranziitApi.findPartnerUsersByName | typeof commonTranziitApi.findCompanyUsersByName\n            >;\n\n            const isPartner = !checkIsDefaultCompanyId(companyId);\n            if (isPartner) {\n                promise = brokerTranziitApi.findPartnerUsersByName(companyId, {\n                    userName: query || undefined,\n                });\n            } else {\n                promise = commonTranziitApi.findCompanyUsersByName(query).then((results) => {\n                    const error = results?.[0] || null;\n                    if (error) {\n                        return [error, null];\n                    }\n\n                    const preparedQuery = prepareSearchQuery(query);\n\n                    const users = results?.[1] || [];\n                    const filteredUsers = users.filter((user) => {\n                        const preparedText = prepareSearchQuery(user.fullName || '');\n                        return preparedText.includes(preparedQuery);\n                    });\n\n                    return [null, filteredUsers];\n                });\n            }\n\n            return promise.then((results) => {\n                const users = results?.[1] || [];\n\n                const userOptions = users.reduce<Array<OptionT>>((acc, user) => {\n                    if (user.userId) {\n                        acc.push({\n                            label: user.fullName,\n                            value: user.userId,\n                        });\n                    }\n\n                    return acc;\n                }, []);\n\n                if (isShowAllBrokerUsersOption) {\n                    const userOptionsWithBroker: Array<OptionT | SpecialOptionEnum> = [\n                        {\n                            label: t('common:broker-name'),\n                            value: ALL_BROKER_USERS_VALUE,\n                        },\n                        SpecialOptionEnum.separator,\n                        ...userOptions,\n                    ];\n\n                    return [null, userOptionsWithBroker];\n                }\n\n                return [null, userOptions];\n            });\n        },\n        [t, companyId, isShowAllBrokerUsersOption],\n    );\n\n    const initialOptions = React.useMemo(() => {\n        return initialValues.map((initialValue, index): OptionT => {\n            return {\n                value: initialValue,\n                label: initialLabels[index],\n            };\n        });\n    }, [initialValues, initialLabels]);\n\n    const asyncFilterOptionsRequest = useAsyncOptionsRequest<OptionT | SpecialOptionEnum>({\n        initialOptions,\n        requestFactory,\n        settings: {},\n    });\n\n    const renderOption = (option?: OptionT, placeholder?: string): React.ReactNode => {\n        if (isNil(option)) {\n            return <UserDropdownOptionLabel className={cx('option')} label={placeholder || ''} isPlaceholder />;\n        }\n\n        return (\n            <UserDropdownOptionLabel\n                className={cx('option')}\n                isAllBrokerUsers={option?.value === ALL_BROKER_USERS_VALUE}\n                label={option?.label || ''}\n            />\n        );\n    };\n\n    const handleFocus = useCallback(() => {\n        if (onFocus) {\n            onFocus();\n        }\n    }, [onFocus]);\n\n    const renderTrigger = (options: Array<OptionT>, placeholder: string | undefined) => {\n        if (!options?.length) {\n            return <UserDropdownOptionLabel label={placeholder || ''} isPlaceholder />;\n        }\n\n        if (options.length === 1) {\n            const firstOption = options?.[0];\n            return (\n                <UserDropdownOptionLabel\n                    isAllBrokerUsers={firstOption?.value === ALL_BROKER_USERS_VALUE}\n                    label={firstOption?.label || ''}\n                />\n            );\n        }\n\n        return <DropdownMultipleInputCountLabel count={options?.length} />;\n    };\n\n    const renderLeftIcon = () => {\n        if (values?.length < 2) {\n            return null;\n        }\n\n        return (\n            <TeamDriveIcon\n                size={DEFAULT_ICON_SIZE}\n                fillColor={StyleGuideColorsEnum.brandAccent}\n                strokeColor={StyleGuideColorsEnum.brandDark}\n            />\n        );\n    };\n\n    const handleReset = () => {\n        onSelect([]);\n    };\n\n    const placeholder = props.placeholder || t('common:common-components.users-select.placeholder');\n\n    return (\n        <DropdownSearchMultipleInput<OptionT, ValueT>\n            className={className}\n            selectedValues={values}\n            placeholder={placeholder}\n            options={asyncFilterOptionsRequest.options}\n            isDisabled={isDisabled}\n            onSelect={(values, options) => {\n                const labels = options.map((option) => {\n                    return option?.label || '';\n                });\n\n                onSelect(values, labels);\n            }}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            onChangeQuery={asyncFilterOptionsRequest.onChangeQuery}\n            isLoading={asyncFilterOptionsRequest.requestStatus.loading}\n            renderOption={renderOption}\n            renderTriggerContent={renderTrigger}\n            renderLeftIcon={renderLeftIcon}\n            getOptionValue={(option) => option?.value}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={handleFocus}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            onReset={hasClearControl ? handleReset : undefined}\n            inputPlaceholder={t('common:common-components.dropdown-multiple-input.input-placeholder')}\n        />\n    );\n};\n\nexport default UserMultipleDropdown;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { SystemSettingsT } from 'broker-admin/store/price-settings/system-settings/models';\n\nconst getInitialValues = (systemSettings: SystemSettingsT | null | undefined): FormValuesT => {\n    return {\n        [FieldsEnum.firstRadiusOfAssignmentFilter]: systemSettings?.FIRST_RADIUS_OF_ASSIGNMENT_FILTER || '',\n        [FieldsEnum.secondRadiusOfAssignmentFilter]: systemSettings?.SECOND_RADIUS_OF_ASSIGNMENT_FILTER || '',\n        [FieldsEnum.thirdRadiusOfAssignmentFilter]: systemSettings?.THIRD_RADIUS_OF_ASSIGNMENT_FILTER || '',\n        [FieldsEnum.timeToDropTrailer]: systemSettings?.TIME_TO_DROP_TRAILER || '',\n        [FieldsEnum.timeToHookTrailer]: systemSettings?.TIME_TO_HOOK_TRAILER || '',\n        [FieldsEnum.timeToPickupTruck]: systemSettings?.TIME_TO_PICKUP_TRUCK || '',\n        [FieldsEnum.timeToDropTruck]: systemSettings?.TIME_TO_DROP_TRUCK || '',\n        [FieldsEnum.geoMatrixCoefficient]: systemSettings?.GEO_MATRIX_COEFFICIENT || '',\n        [FieldsEnum.averageTruckSpeed]: systemSettings?.AVERAGE_TRUCK_SPEED || '',\n    };\n};\n\nexport default getInitialValues;\n","// extracted by mini-css-extract-plugin\nexport default {\"emission-class\":\"EmissionClassCell__emission-class___O5b2D\",\"fadeIn\":\"EmissionClassCell__fadeIn___aXaFt\",\"blinking\":\"EmissionClassCell__blinking___ZWb_v\"};","import React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './TabLabel.scss';\nimport { TabsThemesEnum, TabLabelSizeEnum } from './constants';\n\nconst cx = classNames.bind(styles);\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport type PropsT<ValueT> = {\n    className?: string;\n    onClick: () => void;\n    isActive: boolean;\n    isCompact?: boolean;\n    testSelector?: string;\n    theme: TabsThemesEnum;\n    children: React.ReactNode | string;\n    size?: TabLabelSizeEnum;\n    badge?: React.ReactNode;\n};\n\nconst TabLabel = <ValueT,>(props: PropsT<ValueT>): React.ReactElement => {\n    const { className, children, onClick, isActive, isCompact, theme, testSelector, size, badge } = props;\n\n    let content = children;\n\n    if (badge) {\n        content = (\n            <div className={cx('inner')}>\n                <div className={cx('inner__badge')}>{badge}</div>\n                <div className={cx('inner__content')}>{children}</div>\n            </div>\n        );\n    }\n\n    return (\n        <div\n            className={cs(\n                cx('tab', {\n                    'tab--isActive': isActive,\n                    'tab--isCompact': isCompact,\n                    [`tab--size-${size || TabLabelSizeEnum.normal}`]: true,\n                    [`tab--theme-${theme}`]: true,\n                }),\n                className,\n            )}\n            onClick={onClick}\n            data-test-selector={`${testSelector}_tab`}\n        >\n            {content}\n        </div>\n    );\n};\n\nexport default TabLabel;\n","import * as React from 'react';\nimport { CommonSidebarsTypeEnum, SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { SpotRequestDetailsSidebarDataT } from './models';\nimport BaseSpotRequestDetailsSidebarContent from 'broker-admin/components/BaseSpotRequestDetailsSidebarContent/BaseSpotRequestDetailsSidebarContent';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport history from 'common/utils/history';\nimport { BrokerSidebarDataT } from 'broker-admin/layouts/SideBars/models';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { logWarning } from 'common/utils/logger';\n\ntype PropsT = SidebarContentPropsT<SpotRequestDetailsSidebarDataT, BrokerSidebarDataT>;\n\nconst SpotRequestDetailsSidebarContent: React.FC<PropsT> = React.memo((props) => {\n    const { data, onClose, onOpenNextSidebar } = props;\n\n    const handleOpenMap = () => {\n        const url = urlFactory.spotRequestDetails(data.id);\n        history.push(url);\n    };\n\n    const handleOpenUserDetails = (params: {\n        partnerType: PartnerTypeEnum;\n        partnerId: PartnerIdT;\n        userId: UserIdT | null;\n    }) => {\n        const { userId, partnerType, partnerId } = params;\n        if (!userId) {\n            logWarning('failed to open user details in spot request details sidebar, empty userId');\n            return;\n        }\n\n        onOpenNextSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId,\n            partnerType,\n            userId,\n        });\n    };\n\n    return (\n        <BaseSpotRequestDetailsSidebarContent\n            id={data.id}\n            onClose={onClose}\n            toggleMap={handleOpenMap}\n            onOpenUserDetails={handleOpenUserDetails}\n        />\n    );\n});\n\nexport default SpotRequestDetailsSidebarContent;\n","import * as React from 'react';\n\nimport cs from 'classnames';\n\nimport classNames from 'classnames/bind';\nimport styles from './Logo.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    isSmall?: boolean;\n};\n\nconst Logo: React.FC<PropsT> = React.memo((props) => {\n    const { className, isSmall } = props;\n\n    return <div className={cs(cx('logo', { 'logo--isSmall': isSmall }), className)} />;\n});\n\nexport default Logo;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './PointContactsPicker.scss';\nimport { FieldsEnum, FormValuesT, PointContactsFieldsEnum } from '../constants';\nimport { useTranslation } from 'react-i18next';\nimport Input from 'common/components/Input/Input';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport PhoneNumberInput from 'common/components/PhoneNumberInput/PhoneNumberInput';\nimport FormikConnectContextField from 'common/components/forms/FormikConnectContextField/FormikConnectContextField';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    contactIndex: number;\n};\n\nconst PointContactsPicker: React.FC<PropsT> = React.memo((props) => {\n    const { contactIndex, className } = props;\n\n    const { t } = useTranslation();\n\n    const companyNameFieldName =\n        `${FieldsEnum.contacts}.${contactIndex}.${PointContactsFieldsEnum.companyName}` as const;\n    const fullNameFieldName = `${FieldsEnum.contacts}.${contactIndex}.${PointContactsFieldsEnum.fullName}` as const;\n    const emailFieldName = `${FieldsEnum.contacts}.${contactIndex}.${PointContactsFieldsEnum.email}` as const;\n    const phoneNumberFieldName =\n        `${FieldsEnum.contacts}.${contactIndex}.${PointContactsFieldsEnum.phoneNumber}` as const;\n    const commentFieldName = `${FieldsEnum.contacts}.${contactIndex}.${PointContactsFieldsEnum.comment}` as const;\n\n    return (\n        <div className={className}>\n            <FieldGroup spaces={2}>\n                <FormikConnectContextField<FormValuesT, typeof companyNameFieldName>\n                    name={companyNameFieldName}\n                    label={t('common:new-order-details.fields.company-name.label')}\n                    className={cx('field', 'field--company-name')}\n                >\n                    {(props, extendsProps) => (\n                        <Input\n                            name={extendsProps.name}\n                            value={extendsProps.value}\n                            placeholder={t('common:new-order-details.fields.company-name.placeholder')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikConnectContextField>\n                <FormikConnectContextField<FormValuesT, typeof fullNameFieldName>\n                    name={fullNameFieldName}\n                    label={t('common:new-order-details.fields.full-name.label')}\n                    className={cx('field', 'field--full-name')}\n                >\n                    {(props, extendsProps) => (\n                        <Input\n                            name={extendsProps.name}\n                            value={extendsProps.value}\n                            placeholder={t('common:new-order-details.fields.full-name.placeholder')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikConnectContextField>\n            </FieldGroup>\n            <FieldGroup spaces={2}>\n                <FormikConnectContextField<FormValuesT, typeof phoneNumberFieldName>\n                    name={phoneNumberFieldName}\n                    label={t('common:new-order-details.fields.phone-number.label')}\n                    className={cx('field', 'field--phone-number')}\n                >\n                    {(props, extendsProps) => (\n                        <PhoneNumberInput\n                            name={extendsProps.name}\n                            value={extendsProps.value}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikConnectContextField>\n                <FormikConnectContextField<FormValuesT, typeof emailFieldName>\n                    name={emailFieldName}\n                    label={t('common:new-order-details.fields.email.label')}\n                    className={cx('field', 'field--email')}\n                >\n                    {(props, extendsProps) => (\n                        <Input\n                            name={extendsProps.name}\n                            value={extendsProps.value}\n                            placeholder={t('common:new-order-details.fields.email.placeholder')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikConnectContextField>\n            </FieldGroup>\n            <FormikConnectContextField<FormValuesT, typeof commentFieldName>\n                name={commentFieldName}\n                label={t('common:new-order-details.fields.comment.label')}\n                className={cx('field', 'field--comment')}\n            >\n                {(props, extendsProps) => (\n                    <Input\n                        name={extendsProps.name}\n                        value={extendsProps.value}\n                        placeholder={t('common:new-order-details.fields.comment.placeholder')}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                    />\n                )}\n            </FormikConnectContextField>\n        </div>\n    );\n});\n\nexport default PointContactsPicker;\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"DropdownTreeInput__option___r6K7T\",\"tag\":\"DropdownTreeInput__tag___UdHwx\",\"fadeIn\":\"DropdownTreeInput__fadeIn___I4vIU\",\"blinking\":\"DropdownTreeInput__blinking___Sf98O\"};","export enum SpotRequestsQuickFilterEnum {\n    open = 'open',\n    accepted = 'accepted',\n    newBids = 'new-bids',\n    assigned = 'assigned',\n    expireSoon = 'expire-soon',\n    expired = 'expired',\n    canceled = 'canceled',\n}\n","export enum RateSourceEnum {\n    current = '__current__',\n    new = '__new__',\n}\n\nexport const rateSourceSet = new Set<string>(Object.values(RateSourceEnum));\n\nexport enum FieldsEnum {\n    source = 'source',\n    rate = 'rate',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.source]: RateSourceEnum | CarrierContractIdT;\n    [FieldsEnum.rate]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","export const checkIsProduction = () => {\n    // eslint-disable-next-line no-restricted-globals\n    return !/\\.test\\./.test(location.hostname) && !/localhost/.test(location.hostname);\n};\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { getDateFromDate } from 'common/utils/time';\nimport { parseSimpleNumber, parseStringFormatter } from 'common/utils/input-parsers';\nimport { UpdateShipperContractLaneChangesT } from 'common/store/shipper-contract-lane-details/models';\n\nconst prepareApRequest = (values: FormValuesT): UpdateShipperContractLaneChangesT | null => {\n    const validFrom = values[FieldsEnum.validFrom];\n    const validTill = values[FieldsEnum.validTill];\n    const originRadius = parseSimpleNumber(values[FieldsEnum.pickUpLocationRadius]);\n    const destinationRadius = parseSimpleNumber(values[FieldsEnum.dropOffLocationRadius]);\n    const maximumLayover = parseSimpleNumber(values[FieldsEnum.layoverLimit]);\n\n    if (!validFrom || !validTill) {\n        return null;\n    }\n\n    return {\n        externalLaneId: parseStringFormatter(values[FieldsEnum.externalLaneId]),\n        originRadius: originRadius || 0,\n        destinationRadius: destinationRadius || 0,\n        validFrom: getDateFromDate(validFrom),\n        validTill: getDateFromDate(validTill),\n        maximumLayover: maximumLayover || 0,\n    };\n};\n\nexport { prepareApRequest };\n","import React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './ListPageLayout.scss';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    className?: string;\n};\n\nconst ListPageLayout: React.FC<PropsT> = React.memo((props) => {\n    const { children, className } = props;\n\n    return <div className={cs(cx('content'), className)}>{children}</div>;\n});\n\nexport default ListPageLayout;\n","// extracted by mini-css-extract-plugin\nexport default {\"action\":\"ContinueRFQ__action___k9ZV1\",\"fadeIn\":\"ContinueRFQ__fadeIn___gIe0P\",\"blinking\":\"ContinueRFQ__blinking___fm7R8\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './ErrorPlaceholder.scss';\nimport cs from 'classnames';\nimport Button, { ButtonPropsT } from 'common/components/Button/Button';\nimport { ClientFeatureEnum } from 'common/utils/features/client-features-config';\nimport FeaturesContext from 'common/contexts/features';\nimport { TraceIdLabel } from '../TraceIdLabel/TraceIdLabel';\n\nconst cx = classNames.bind(styles);\n\ntype ErrorPlaceholderActionConfigT = Partial<ButtonPropsT>;\n\nexport type ErrorPlaceholderPropsT = {\n    className?: string;\n    icon?: React.ReactNode;\n    title?: React.ReactNode;\n    message?: React.ReactNode;\n    body?: React.ReactNode;\n    traceId?: TraceIdT | null;\n    testSelector?: string;\n    children?: React.ReactNode;\n    actionsConfig?: Array<ErrorPlaceholderActionConfigT | null>;\n};\n\nconst ErrorPlaceholder: React.FC<ErrorPlaceholderPropsT> = React.memo((props) => {\n    const { testSelector, icon, title, message, body, children, actionsConfig, className, traceId } = props;\n\n    const featuresContext = React.useContext(FeaturesContext);\n    const isShowTraceId = featuresContext?.checkActiveClientFeature?.(ClientFeatureEnum.showTraceId);\n\n    return (\n        <div\n            className={cs(cx('wrap'), className)}\n            data-test-selector={testSelector && `${testSelector}-error-placeholder`}\n        >\n            <div className={cx('content')}>\n                <div className={cx('icon')}>{icon}</div>\n                <div className={cx('title')}>{title}</div>\n                {!!message && <div className={cx('message')}>{message}</div>}\n                {body}\n                {isShowTraceId && traceId && (\n                    <div className={cx('trace-id')}>\n                        <TraceIdLabel traceId={traceId} />\n                    </div>\n                )}\n            </div>\n            {Boolean(actionsConfig?.length) && (\n                <div className={cs(cx('actions'), className)}>\n                    {actionsConfig?.map((actionConfig, actionIndex) => {\n                        if (!actionConfig) {\n                            return null;\n                        }\n\n                        return <Button key={actionIndex} type=\"button\" {...actionConfig} />;\n                    })}\n                </div>\n            )}\n            {children}\n        </div>\n    );\n});\n\nexport default ErrorPlaceholder;\n","import { SharableStateT } from '../models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { DictDocumentByIdT, DictDocumentByTypeT, DictDocumentT } from './models';\nimport { DocumentRequiredEnum, ApiPartnerTypeT } from 'common/utils/api/models';\nimport { PartnerTypeDocumentsStateT } from 'common/store/documents-dict/types';\nimport { initialPartnerTypeDocumentsState } from './reducer';\n\nconst selectDocumentsState = (\n    partnerType: ApiPartnerTypeT | null,\n    state: SharableStateT,\n): PartnerTypeDocumentsStateT => {\n    if (!partnerType) {\n        return initialPartnerTypeDocumentsState;\n    }\n\n    return state.documentsDict[partnerType] || initialPartnerTypeDocumentsState;\n};\n\nexport const selectDocumentsDict = (partnerType: ApiPartnerTypeT | null) => {\n    return (state: SharableStateT): DictDocumentT[] => {\n        const { ids, byId } = selectDocumentsState(partnerType, state);\n\n        return ids.map((id) => byId[id]);\n    };\n};\n\nexport const selectDocumentsDictById = (partnerType: ApiPartnerTypeT | null) => {\n    return (state: SharableStateT): DictDocumentByIdT => {\n        return selectDocumentsState(partnerType, state).byId;\n    };\n};\n\nexport const selectDocumentsDictByType = (partnerType: ApiPartnerTypeT | null) => {\n    return (state: SharableStateT): DictDocumentByTypeT => {\n        return selectDocumentsState(partnerType, state).byType;\n    };\n};\n\nexport const selectRequiredDocumentIds =\n    (partnerType: ApiPartnerTypeT | null) =>\n    (state: SharableStateT): DictDocumentFakeIdT[] => {\n        if (!partnerType) {\n            return [];\n        }\n\n        const { ids, byId } = selectDocumentsState(partnerType, state);\n\n        return ids.filter((documentId) => {\n            return byId[documentId]?.required === DocumentRequiredEnum.must;\n        });\n    };\n\nexport const selectDocumentsDictRequest = (partnerType: ApiPartnerTypeT | null) => {\n    return (state: SharableStateT): RequestStatusT => {\n        if (!partnerType) {\n            return initialPartnerTypeDocumentsState.fetchRequest;\n        }\n\n        return selectDocumentsState(partnerType, state).fetchRequest;\n    };\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"DropdownMultipleInput__option___iORP2\",\"option__checkbox\":\"DropdownMultipleInput__option__checkbox___mOOUp\",\"option__label\":\"DropdownMultipleInput__option__label___c3B9q\",\"separator\":\"DropdownMultipleInput__separator___CXCSZ\",\"fadeIn\":\"DropdownMultipleInput__fadeIn___McwcI\",\"blinking\":\"DropdownMultipleInput__blinking___PSa83\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ExpireSoonPartnerShipperContractCard.scss';\nimport { Trans } from 'react-i18next';\nimport ContractName from 'broker-admin/components/notification-cards/entities/ContractName/ContractName';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    contractName: string;\n};\n\nconst ExpireSoonPartnerShipperContractCard: React.FC<PropsT> = React.memo((props) => {\n    const { contractName } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"notifications.partner-shipper-contract-expire-soon\"\n                components={{\n                    contractName: <ContractName contractName={contractName} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default ExpireSoonPartnerShipperContractCard;\n","export const ALL_SHIPPERS_ID = 'all-shippers-id';\n","// extracted by mini-css-extract-plugin\nexport default {\"menu\":\"LeftMenuLayout__menu___ttSAX\",\"menu--isOpen\":\"LeftMenuLayout__menu--isOpen___VaEY0\",\"content\":\"LeftMenuLayout__content___iHt8F\",\"wrap\":\"LeftMenuLayout__wrap___CE7av\",\"inner\":\"LeftMenuLayout__inner___YWVEL\",\"fadeIn\":\"LeftMenuLayout__fadeIn___pHPfd\",\"blinking\":\"LeftMenuLayout__blinking___bz4hb\"};","import { TemperatureModeEnum, temperatureRanges } from 'common/constants';\nimport values from 'lodash/values';\nimport isNil from 'lodash/isNil';\n\nexport const parseTemperatureMode = (\n    lowestTemperature: number | null | undefined,\n    highestTemperature: number | null | undefined,\n): TemperatureModeEnum | null => {\n    if (isNil(lowestTemperature) || isNil(highestTemperature)) {\n        return null;\n    }\n\n    return (\n        values(TemperatureModeEnum).find((temperatureMode) => {\n            const range = temperatureRanges[temperatureMode] || [];\n\n            return (\n                range[0] === lowestTemperature &&\n                lowestTemperature <= highestTemperature &&\n                highestTemperature === range[1]\n            );\n        }) || null\n    );\n};\n","import React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport Modal from 'common/components/Modal/Modal';\nimport { AssetTypeEnum, StyleGuideColorsEnum } from 'common/constants';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport ActivateAssetForm from './ActivateAssetForm/ActivateAssetForm';\nimport { AssetDataT } from './models';\nimport { ApiActivateVehiclesRequestT } from 'common/utils/api/models';\n\nexport type ActivateAssetConfirmationDataT = {\n    companyId: CompanyIdT;\n    assets: Array<AssetDataT>;\n};\n\ntype PropsT = {\n    companyId: CompanyIdT | null;\n    assetType: AssetTypeEnum;\n    data: ActivateAssetConfirmationDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onConfirm: (data: ActivateAssetConfirmationDataT, activateVehiclesRequest: ApiActivateVehiclesRequestT) => void;\n    requestStatus: RequestStatusT;\n};\n\nconst TEST_SELECTOR = 'activate-assets';\n\nconst T_MAP: Record<\n    AssetTypeEnum,\n    {\n        oneAssetTitle: string;\n        manyAssetsTitle: string;\n        oneAssetMessage: string;\n        manyAssetsMessage: string;\n    }\n> = {\n    [AssetTypeEnum.truck]: {\n        oneAssetTitle: 'common:trucks-page.active-confirmation.one-asset-title',\n        manyAssetsTitle: 'common:trucks-page.active-confirmation.many-assets-title',\n        oneAssetMessage: 'common:trucks-page.active-confirmation.one-asset-message',\n        manyAssetsMessage: 'common:trucks-page.active-confirmation.many-assets-message',\n    },\n    [AssetTypeEnum.trailer]: {\n        oneAssetTitle: 'common:trailers-page.active-confirmation.one-asset-title',\n        manyAssetsTitle: 'common:trailers-page.active-confirmation.many-assets-title',\n        oneAssetMessage: 'common:trailers-page.active-confirmation.one-asset-message',\n        manyAssetsMessage: 'common:trailers-page.active-confirmation.many-assets-message',\n    },\n};\n\nconst ActivateAssetDialogModal: React.FC<PropsT> = React.memo((props) => {\n    const { companyId, data, onClose, onCancel, requestStatus, onConfirm, assetType } = props;\n\n    const { t } = useTranslation();\n\n    if (!data || !companyId) {\n        return null;\n    }\n\n    const { assets } = data;\n\n    const tSet = T_MAP[assetType];\n\n    let message = null;\n    let title = null;\n    if (assets.length === 1) {\n        message = t(tSet.oneAssetMessage, {\n            plateNumber: assets[0]?.plateNumber,\n        });\n        title = t(tSet.oneAssetTitle);\n    } else {\n        message = t(tSet.manyAssetsMessage, {\n            count: assets.length,\n        });\n        title = t(tSet.manyAssetsTitle);\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.brandAccent} />}\n                    title={title}\n                    message={message}\n                >\n                    <ActivateAssetForm\n                        companyId={companyId}\n                        assets={assets}\n                        onCancel={onCancel}\n                        requestStatus={requestStatus}\n                        onSubmit={(activateVehiclesRequest) => {\n                            onConfirm(data, activateVehiclesRequest);\n                        }}\n                    />\n                </ModalDialog>\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default ActivateAssetDialogModal;\n","import { ApiShipperContractLaneStatusT } from 'common/utils/api/models';\n\nexport enum QueryFiltersKeysEnum {\n    text = 'text',\n    status = 'status',\n\n    dictTrailerId = 'dictTrailerId',\n\n    address = 'address',\n\n    validFromStart = 'validFromStart',\n    validFromFinish = 'validFromFinish',\n\n    validTillStart = 'validTillStart',\n    validTillFinish = 'validTillFinish',\n\n    createdDateStart = 'createdDateStart',\n    createdDateFinish = 'createdDateFinish',\n\n    createdById = 'createdById',\n    createdByName = 'createdByName',\n}\n\nexport type QueryFiltersT = Partial<{\n    [QueryFiltersKeysEnum.text]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.status]: ApiShipperContractLaneStatusT;\n\n    [QueryFiltersKeysEnum.dictTrailerId]: QueryParam.StringT;\n\n    [QueryFiltersKeysEnum.address]: QueryParam.StringT;\n\n    [QueryFiltersKeysEnum.validFromStart]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.validFromFinish]: QueryParam.StringT;\n\n    [QueryFiltersKeysEnum.validTillStart]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.validTillFinish]: QueryParam.StringT;\n\n    [QueryFiltersKeysEnum.createdDateStart]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdDateFinish]: QueryParam.StringT;\n\n    [QueryFiltersKeysEnum.createdById]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdByName]: QueryParam.StringT;\n}>;\n\nexport enum QueryKeysEnum {\n    shipperContractLanesPage = 'shipper-contract-lanes-page',\n    shipperContractLanesSort = 'shipper-contracts-sort',\n    shipperContractLanesFilters = 'shipper-contracts-filters',\n}\n","import {\n    FETCH_NOTIFICATIONS_PAGE_REQUEST,\n    FETCH_NOTIFICATIONS_PAGE_REQUEST_BEGIN,\n    FETCH_NOTIFICATIONS_PAGE_REQUEST_ERROR,\n    FETCH_NOTIFICATIONS_PAGE_REQUEST_SUCCESS,\n    FETCH_UNREAD_NOTIFICATIONS_REQUEST,\n    FETCH_UNREAD_NOTIFICATIONS_REQUEST_BEGIN,\n    FETCH_UNREAD_NOTIFICATIONS_REQUEST_ERROR,\n    FETCH_UNREAD_NOTIFICATIONS_REQUEST_SUCCESS,\n    FetchNotificationsErrorActionT,\n    FetchNotificationsPageActionT,\n    FetchNotificationsPageBeginActionT,\n    FetchNotificationsPageSuccessActionT,\n    FetchUnreadNotificationsActionT,\n    FetchUnreadNotificationsBeginActionT,\n    FetchUnreadNotificationsErrorActionT,\n    FetchUnreadNotificationsSuccessActionT,\n    MARK_AS_READ_REQUEST,\n    MARK_AS_READ_REQUEST_BEGIN,\n    MARK_AS_READ_REQUEST_ERROR,\n    MARK_AS_READ_REQUEST_SUCCESS,\n    MarkAsReadActionT,\n    MarkAsReadBeginActionT,\n    MarkAsReadErrorActionT,\n    MarkAsReadSuccessActionT,\n    RESET_NOTIFICATION_PAGES,\n    ResetNotificationPagesT,\n    SEND_TEST_NOTIFICATION,\n    SendTestNotificationActionT,\n} from './types';\n\nimport { AnyNotificationT, FetchNotificationsPageQueryT } from 'common/store/notifications/models';\nimport { PageResponseT } from 'common/utils/pagination/models';\n\nexport const sendTestNotification = (text: string): SendTestNotificationActionT => ({\n    type: SEND_TEST_NOTIFICATION,\n    text,\n});\n\nexport const fetchNotificationsPage = (\n    pageNumber: PageNumberT,\n    query: FetchNotificationsPageQueryT,\n    options: FetchOptionsT,\n): FetchNotificationsPageActionT => ({\n    type: FETCH_NOTIFICATIONS_PAGE_REQUEST,\n    pageNumber,\n    query,\n    options,\n});\n\nexport const fetchNotificationsPageBegin = (\n    query: FetchNotificationsPageQueryT,\n    pageNumber: PageNumberT,\n): FetchNotificationsPageBeginActionT => ({\n    type: FETCH_NOTIFICATIONS_PAGE_REQUEST_BEGIN,\n    pageNumber,\n    query,\n});\n\nexport const fetchNotificationsPageSuccess = (\n    query: FetchNotificationsPageQueryT,\n    pageNumber: PageNumberT,\n    pageResponse: PageResponseT<AnyNotificationT> | null,\n): FetchNotificationsPageSuccessActionT => ({\n    type: FETCH_NOTIFICATIONS_PAGE_REQUEST_SUCCESS,\n    pageNumber,\n    query,\n    pageResponse,\n});\n\nexport const fetchNotificationsError = (\n    query: FetchNotificationsPageQueryT,\n    pageNumber: PageNumberT,\n    error: Error,\n): FetchNotificationsErrorActionT => ({\n    type: FETCH_NOTIFICATIONS_PAGE_REQUEST_ERROR,\n    query,\n    pageNumber,\n    error,\n});\n\nexport const markAsRead = (ids: NotificationIdT[], isAll?: boolean): MarkAsReadActionT => ({\n    type: MARK_AS_READ_REQUEST,\n    ids,\n    isAll,\n});\n\nexport const markAsReadBegin = (): MarkAsReadBeginActionT => ({\n    type: MARK_AS_READ_REQUEST_BEGIN,\n});\n\nexport const markAsReadSuccess = (ids: NotificationIdT[]): MarkAsReadSuccessActionT => ({\n    type: MARK_AS_READ_REQUEST_SUCCESS,\n    ids,\n});\n\nexport const markAsReadError = (error: Error): MarkAsReadErrorActionT => ({\n    type: MARK_AS_READ_REQUEST_ERROR,\n    error,\n});\n\nexport const fetchUnreadNotifications = (): FetchUnreadNotificationsActionT => ({\n    type: FETCH_UNREAD_NOTIFICATIONS_REQUEST,\n});\n\nexport const fetchUnreadNotificationsBegin = (): FetchUnreadNotificationsBeginActionT => ({\n    type: FETCH_UNREAD_NOTIFICATIONS_REQUEST_BEGIN,\n});\n\nexport const fetchUnreadNotificationsSuccess = (\n    notifications: AnyNotificationT[] | null,\n): FetchUnreadNotificationsSuccessActionT => ({\n    type: FETCH_UNREAD_NOTIFICATIONS_REQUEST_SUCCESS,\n    notifications,\n});\n\nexport const fetchUnreadNotificationsError = (error: Error): FetchUnreadNotificationsErrorActionT => ({\n    type: FETCH_UNREAD_NOTIFICATIONS_REQUEST_ERROR,\n    error,\n});\n\nexport const resetNotificationPages = (): ResetNotificationPagesT => ({\n    type: RESET_NOTIFICATION_PAGES,\n});\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './TrucksTable.scss';\nimport { useTranslation } from 'react-i18next';\nimport Table, { TableColumnT, TableRowMetaT, TableRowModsEnum } from 'common/components/Table/Table';\nimport { ApiTruckT } from 'common/store/trucks/models';\nimport StatusCell from './cell-renderers/StatusCell/StatusCell';\nimport ModelCell from './cell-renderers/ModelCell/ModelCell';\nimport CheckboxCell from 'common/components/Table/cell-renderers/CheckboxCell/CheckboxCell';\nimport CheckboxHeader from 'common/components/Table/header-renderers/CheckboxHeader/CheckboxHeader';\nimport MemoizedTable from 'common/components/Table/MemoizedTable/MemoizedTable';\nimport EventCell from 'common/components/Table/cell-renderers/EventCell/EventCell';\nimport PlateNumberCell from 'common/components/Table/cell-renderers/PlateNumberCell/PlateNumberCell';\nimport FlagCell from 'common/components/Table/cell-renderers/FlagCell/FlagCell';\nimport EmissionClassCell from 'common/layouts/TrucksPageLayout/TrucksTable/cell-renderers/EmissionClassCell/EmissionClassCell';\nimport { TabEnum } from 'common/layouts/TrucksPageLayout/constants';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipIconTrigger from 'design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport TelematicUpdateDateCell from 'common/components/Table/cell-renderers/TelematicUpdateDateCell/TelematicUpdateDateCell';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    trucks: Array<ApiTruckT>;\n    className?: string;\n    selectedTrucksSet: Set<ApiTruckT>;\n    onSelectTrucks: (selectedTrucksSet: Set<ApiTruckT>) => void;\n    onSelectRow: (event: React.MouseEvent, truck: ApiTruckT) => void;\n    onOpenUserDetails: (userId: UserIdT | null, isBrokerUser?: boolean) => void;\n    isLoading: boolean;\n    canEditTrucks: boolean;\n    activeTab: TabEnum;\n};\n\nconst TrucksTable: React.FC<PropsT> = React.memo((props) => {\n    const {\n        trucks,\n        canEditTrucks,\n        className,\n        selectedTrucksSet,\n        onSelectRow,\n        onSelectTrucks,\n        isLoading,\n        onOpenUserDetails,\n        activeTab,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const columns: Array<TableColumnT<ApiTruckT, void> | null> = [\n        canEditTrucks\n            ? {\n                  renderHeader: () => (\n                      <CheckboxHeader<ApiTruckT>\n                          selectedRowsSet={selectedTrucksSet}\n                          rows={trucks}\n                          onChange={onSelectTrucks}\n                      />\n                  ),\n                  headerClassName: cx('table__header', 'table__header--checkbox'),\n                  render: (truck: ApiTruckT) => (\n                      <CheckboxCell<ApiTruckT>\n                          row={truck}\n                          selectedRowsSet={selectedTrucksSet}\n                          onChange={onSelectTrucks}\n                      />\n                  ),\n                  className: cx('table__column--checkbox'),\n              }\n            : null,\n        {\n            renderHeader: () => t('common:trucks-page.table.columns.plate-number'),\n            headerClassName: cx('table__header'),\n            render: (truck: ApiTruckT) => <PlateNumberCell plateNumber={truck?.plateNumber} />,\n            className: cx('table__column', 'table__column--plate-number'),\n        },\n        {\n            renderHeader: () => t('common:trucks-page.table.columns.model'),\n            headerClassName: cx('table__header'),\n            render: (truck: ApiTruckT) => <ModelCell truck={truck} />,\n            className: cx('table__column', 'table__column--any'),\n        },\n        {\n            renderHeader: () => t('common:trucks-page.table.columns.added-date'),\n            headerClassName: cx('table__header'),\n            render: (truck: ApiTruckT) => (\n                <EventCell\n                    userFullName={truck.createdBy?.fullName}\n                    userId={truck.createdBy?.id}\n                    date={truck.createdDate}\n                    byBroker={truck.addedByBroker}\n                    openUserDetails={onOpenUserDetails}\n                />\n            ),\n            className: cx('table__column', 'table__column--created'),\n        },\n        {\n            renderHeader: () => t('common:trucks-page.table.columns.emission-class'),\n            headerClassName: cx('table__header', 'table__header--emission-class'),\n            render: (truck: ApiTruckT) => <EmissionClassCell truck={truck} />,\n            className: cx('table__column', 'table__column--model'),\n        },\n        // linked\n    ];\n\n    if (activeTab === TabEnum.active) {\n        columns.push({\n            renderHeader: () => t('common:trucks-page.table.columns.linked'),\n            headerClassName: cx('table__header', 'table__header--linked'),\n            render: (truck: ApiTruckT) => <FlagCell isShowFlag={!!truck.linked} />,\n            className: cx('table__column', 'table__column--any'),\n        });\n\n        columns.push({\n            renderHeader: () => t('common:trucks-page.table.columns.dedicated'),\n            headerClassName: cx('table__header', 'table__header--dedicated'),\n            render: (truck: ApiTruckT) => <FlagCell isShowFlag={!!truck.dedicated} />,\n            className: cx('table__column', 'table__column--any'),\n        });\n\n        columns.push({\n            renderHeader: () => (\n                <span>\n                    {t('common:trucks-page.table.columns.GPS')}\n                    <Tooltip\n                        position={TooltipPositionEnum.topCenter}\n                        theme={TooltipThemeEnum.black}\n                        isInline\n                        tooltipNode={\n                            <TooltipContent isCenter theme={TooltipContentThemeEnum.black} isNoWrap>\n                                {t('common:trucks-page.table.tooltips.GPS')}\n                            </TooltipContent>\n                        }\n                    >\n                        {(isShow) => <TooltipIconTrigger isShow={isShow} />}\n                    </Tooltip>\n                </span>\n            ),\n            headerClassName: cx('table__header', 'table__header--gps'),\n            render: (truck: ApiTruckT) => (\n                <TelematicUpdateDateCell\n                    placeholder={t('common:trucks-page.GPS.empty-update-date')}\n                    telematicUpdatedDate={truck.telematicUpdatedDate}\n                />\n            ),\n            className: cx('table__column', 'table__column--any'),\n        });\n\n        columns.push({\n            renderHeader: () => t('common:trucks-page.table.columns.status'),\n            headerClassName: cx('table__header'),\n            render: (truck: ApiTruckT) => <StatusCell truck={truck} />,\n            className: cx('table__column', 'table__column--status'),\n        });\n    }\n\n    if (activeTab === TabEnum.archive) {\n        columns.push({\n            renderHeader: () => t('common:trucks-page.table.columns.archived'),\n            headerClassName: cx('table__header'),\n            render: (truck: ApiTruckT) => (\n                <EventCell\n                    userFullName={truck.archivedBy?.fullName}\n                    userId={truck.archivedBy?.id}\n                    byBroker={truck.archivedByBroker}\n                    date={truck.archivedDate}\n                    openUserDetails={onOpenUserDetails}\n                />\n            ),\n            className: cx('table__column', 'table__column--any'),\n        });\n    }\n\n    const getRowMods = (meta: TableRowMetaT) => {\n        return {\n            [TableRowModsEnum.isSelected]: meta.isSelected,\n        };\n    };\n\n    return (\n        <div className={cx('table')}>\n            <MemoizedTable<ApiTruckT> tableName=\"trucks\" isLoading={isLoading} rows={trucks}>\n                {(rows, isUsedPrevRows) => (\n                    <Table<ApiTruckT, void>\n                        className={className}\n                        selectedRowsSet={selectedTrucksSet}\n                        columns={columns}\n                        rows={rows}\n                        getRowMods={getRowMods}\n                        isLoading={isLoading}\n                        onSelectRow={onSelectRow}\n                        isUsedPrevRows={isUsedPrevRows}\n                    />\n                )}\n            </MemoizedTable>\n        </div>\n    );\n});\n\nexport default TrucksTable;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport {\n    calculateCostRequest,\n    calculateCostRequestBegin,\n    calculateCostRequestError,\n    calculateCostRequestFetchRouteError,\n    calculateCostRequestSetRoute,\n    calculateCostRequestSuccess,\n    createLaneRequest,\n    createLaneRequestBegin,\n    createLaneRequestError,\n    createLaneRequestSuccess,\n} from './slice';\nimport { CalculateCostRequestActionT, CreateLaneRequestActionT } from './types';\nimport { selectCalculateCostRequest } from './selectors';\nimport history from 'common/utils/history';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAlertTypeEnum, CommonAnyAlert } from 'common/components/toasts/AlertToastsManager/models';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\n\nfunction* calculateCostSaga(action: CalculateCostRequestActionT): WrapGeneratorT<void> {\n    const { partnerId, query } = action.payload;\n\n    const requestStatus: ReReturnT<typeof selectCalculateCostRequest> = yield select(selectCalculateCostRequest);\n    if (requestStatus.loading) {\n        return;\n    }\n\n    yield put(calculateCostRequestBegin({ query }));\n\n    const { skipRules, skipCommission, ...createShipperContractLaneRFQQuery } = query;\n\n    const [error, data]: ReturnApiT<typeof brokerTranziitApi.createShipperContractLaneRFQ> =\n        yield brokerTranziitApi.createShipperContractLaneRFQ(partnerId, createShipperContractLaneRFQQuery);\n    if (error) {\n        yield put(calculateCostRequestError({ query, error }));\n        return;\n    }\n\n    const rfqId = data?.rfqId || null;\n    if (!rfqId) {\n        yield put(calculateCostRequestError({ query, error: new Error('empty rfqId!') }));\n        return;\n    }\n\n    const [error2, data2]: ReturnApiT<typeof brokerTranziitApi.fetchShipperContractLaneRFQOffersAverage> =\n        yield brokerTranziitApi.fetchShipperContractLaneRFQOffersAverage(rfqId, {\n            skipRules,\n            skipCommission,\n        });\n    if (error2) {\n        yield put(calculateCostRequestError({ query, error: error2 }));\n        return;\n    }\n\n    if (!data2) {\n        yield put(calculateCostRequestError({ query, error: new Error('empty data3!') }));\n        return;\n    }\n\n    const [error3, data3]: ReturnApiT<typeof brokerTranziitApi.fetchRFQDetails> =\n        yield brokerTranziitApi.fetchRFQDetails(rfqId);\n\n    if (error3) {\n        yield put(calculateCostRequestError({ query, error: error3 }));\n        return;\n    }\n\n    const polylineId = data3?.polylineId || null;\n    if (!polylineId) {\n        yield put(calculateCostRequestError({ query, error: new Error('empty polylineId!') }));\n        return;\n    }\n\n    const [error4, data4]: ReturnApiT<typeof commonTranziitApi.fetchRouteGeometryGoogle> =\n        yield commonTranziitApi.fetchRouteGeometryGoogle(polylineId);\n\n    if (data4) {\n        const polylines = data4 || [];\n\n        yield put(calculateCostRequestSetRoute({ query, polylines }));\n    }\n\n    if (error4) {\n        yield put(calculateCostRequestFetchRouteError({ query, error: error4 }));\n    }\n\n    yield put(calculateCostRequestSuccess({ query, averagePriceOffer: data2 }));\n}\n\nfunction* createLaneSaga(action: CreateLaneRequestActionT): WrapGeneratorT<void> {\n    const { partnerId, contractId, query } = action.payload;\n\n    const requestStatus: ReReturnT<typeof selectCalculateCostRequest> = yield select(selectCalculateCostRequest);\n    if (requestStatus.loading) {\n        return;\n    }\n\n    yield put(createLaneRequestBegin({ query }));\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.createShipperContractLane> =\n        yield brokerTranziitApi.createShipperContractLane(partnerId, contractId, query);\n    if (error) {\n        yield put(createLaneRequestError({ query, error }));\n    }\n\n    yield put(createLaneRequestSuccess({ query }));\n\n    yield put(\n        addAlert(\n            new CommonAnyAlert({\n                type: CommonAlertTypeEnum.shipperContractLaneAdded,\n                data: {},\n            }),\n        ),\n    );\n\n    history.push(\n        urlFactory.partnerShipperContactLanes({\n            partnerId,\n            partnerType: PartnerTypeEnum.shipper,\n            contractId,\n        }),\n    );\n}\n\nfunction* shipperContractLaneCreationSaga(): WrapGeneratorT<void> {\n    yield takeEvery(calculateCostRequest.type, calculateCostSaga);\n    yield takeEvery(createLaneRequest.type, createLaneSaga);\n}\n\nexport { shipperContractLaneCreationSaga };\n","import * as React from 'react';\n\nimport { Redirect } from 'react-router-dom';\nimport { useSelector } from 'react-redux';\n\nimport { QueryKeysEnum } from 'common/constants';\nimport { urlFactory } from 'common/utils/urls';\nimport { checkRegisteredUser } from 'common/store/auth/selectors';\nimport useQuery from 'common/utils/hooks/useQuery';\n\ntype PropsT = {};\n\ntype QueryT = {\n    [QueryKeysEnum.returnUrl]: string;\n};\n\nconst RedirectSignedUser: React.FC<PropsT> = React.memo(() => {\n    const query = useQuery<QueryT>();\n\n    const isRegisteredUser = useSelector(checkRegisteredUser);\n    if (isRegisteredUser) {\n        const returnUrl = query[QueryKeysEnum.returnUrl];\n\n        return <Redirect to={urlFactory.toReturnUrl(returnUrl)} />;\n    }\n\n    return null;\n});\n\nexport default RedirectSignedUser;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './CreatePartnerSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useFormik } from 'formik';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport Input from 'common/components/Input/Input';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { CountryCodeT, PartnerTypeEnum } from 'common/utils/api/models';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport {\n    selectFetchRuleDetailsRequest,\n    selectUpdateRulesRequest,\n} from 'broker-admin/store/price-settings/rules/selectors';\nimport CountryDropdown from 'common/components/dropdowns/CountryDropdown/CountryDropdown';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport { SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { BrokerSidebarDataT } from 'broker-admin/layouts/SideBars/models';\nimport { PartherCreationSidebarDataT } from 'broker-admin/layouts/SideBars/CreatePartnerSidebarContent/models';\nimport { createPartnerRequest } from 'broker-admin/store/partners/actions';\nimport { selectPartnerCreationRequest } from 'broker-admin/store/partners/selectors';\nimport useCloseSidebarAfterRequest from 'common/utils/hooks/useCloseSidebarAfterRequest';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport { logWarning } from 'common/utils/logger';\n\nconst cx = classNames.bind(styles);\n\ntype PartnerOptionT = {\n    label: string;\n    value: PartnerTypeEnum;\n};\n\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(Object.values(FieldsEnum));\n\ntype PropsT = SidebarContentPropsT<PartherCreationSidebarDataT, BrokerSidebarDataT>;\n\nconst CreatePartnerSidebarContent: React.FC<PropsT> = (props) => {\n    const { onGoBack, onClose, setNeedCloseConfirmation } = props;\n\n    const dispatch = useDispatch();\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const creationRequestStatus = useSelector(selectPartnerCreationRequest);\n\n    const fetchRuleDetailsRequest = useSelector(selectFetchRuleDetailsRequest);\n    const updateRulesRequest = useSelector(selectUpdateRulesRequest);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues();\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const partnerType = values[FieldsEnum.partnerType];\n            if (partnerType !== PartnerTypeEnum.broker) {\n                dispatch(\n                    createPartnerRequest({\n                        name: values[FieldsEnum.name],\n                        legalAddress: {\n                            street1: values[FieldsEnum.street1],\n                            street2: values[FieldsEnum.street2],\n                            country: values[FieldsEnum.countryCode] as CountryCodeT,\n                            zipCode: values[FieldsEnum.zipCode],\n                            city: values[FieldsEnum.city],\n                        },\n                        type: partnerType,\n                    }),\n                );\n            } else {\n                logWarning('failed to create partner, unknown partnerType');\n            }\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n    React.useEffect(() => {\n        if (hasAnyFieldValueChanges) {\n            setNeedCloseConfirmation(hasAnyFieldValueChanges);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasAnyFieldValueChanges]);\n\n    useCloseSidebarAfterRequest(creationRequestStatus, onGoBack || onClose);\n\n    const isShowLoader = fetchRuleDetailsRequest.loading || updateRulesRequest.loading;\n\n    const options = React.useMemo(\n        (): Array<PartnerOptionT> => [\n            {\n                label: t('common:company-type.SHIPPER'),\n                value: PartnerTypeEnum.shipper,\n            },\n            {\n                label: t('common:company-type.CARRIER'),\n                value: PartnerTypeEnum.carrier,\n            },\n        ],\n        [t],\n    );\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('form')}>\n            {isShowLoader && <LoaderOverlay />}\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent title={t('partners-table.create-form.title')} onClose={onClose} />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <div className={cx('section')}>\n                    <div className={cx('section__block')}>\n                        <FormikField\n                            className={cx('field--name')}\n                            name={FieldsEnum.name}\n                            error={formik.errors[FieldsEnum.name]}\n                            meta={formik.getFieldMeta(FieldsEnum.name)}\n                            label={t('partners-table.create-form.fields.name.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <Input\n                                    name={FieldsEnum.name}\n                                    value={formik.values[FieldsEnum.name]}\n                                    onChange={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                />\n                            )}\n                        </FormikField>\n                        <FormikField\n                            className={cx('field--type')}\n                            name={FieldsEnum.partnerType}\n                            error={formik.errors[FieldsEnum.partnerType]}\n                            meta={formik.getFieldMeta(FieldsEnum.partnerType)}\n                            label={t('partners-table.create-form.fields.type.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <DropdownInput<PartnerOptionT, PartnerTypeEnum>\n                                    selectedValue={formik.values[FieldsEnum.partnerType]}\n                                    options={options}\n                                    onSelect={props.onChange}\n                                    renderOption={(option) => <span>{option?.label}</span>}\n                                    getOptionValue={(option) => option?.value}\n                                    overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                    hasWarning={props.hasWarning}\n                                    hasError={props.hasError}\n                                />\n                            )}\n                        </FormikField>\n                        <FormikField\n                            className={cx('field--street1')}\n                            name={FieldsEnum.street1}\n                            error={formik.errors[FieldsEnum.street1]}\n                            meta={formik.getFieldMeta(FieldsEnum.street1)}\n                            label={t('partners-table.create-form.fields.street1.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <Input\n                                    name={FieldsEnum.street1}\n                                    value={formik.values[FieldsEnum.street1]}\n                                    onChange={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                />\n                            )}\n                        </FormikField>\n                        <FormikField\n                            className={cx('field--street1')}\n                            name={FieldsEnum.countryCode}\n                            error={formik.errors[FieldsEnum.countryCode]}\n                            label={t('partners-table.create-form.fields.country.label')}\n                            meta={formik.getFieldMeta(FieldsEnum.countryCode)}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <CountryDropdown\n                                    value={formik.values[FieldsEnum.countryCode]}\n                                    onChange={props.onChange}\n                                    overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                />\n                            )}\n                        </FormikField>\n                        <FieldGroup spaces={1}>\n                            <FormikField\n                                className={cx('field--zip')}\n                                name={FieldsEnum.zipCode}\n                                error={formik.errors[FieldsEnum.zipCode]}\n                                meta={formik.getFieldMeta(FieldsEnum.zipCode)}\n                                label={t('partners-table.create-form.fields.zip.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <Input\n                                        name={FieldsEnum.zipCode}\n                                        value={formik.values[FieldsEnum.zipCode]}\n                                        onChange={props.onChange}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                    />\n                                )}\n                            </FormikField>\n                            <FormikField\n                                className={cx('field--city')}\n                                name={FieldsEnum.city}\n                                error={formik.errors[FieldsEnum.city]}\n                                meta={formik.getFieldMeta(FieldsEnum.city)}\n                                label={t('partners-table.create-form.fields.city.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <Input\n                                        name={FieldsEnum.city}\n                                        value={formik.values[FieldsEnum.city]}\n                                        onChange={props.onChange}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                    />\n                                )}\n                            </FormikField>\n                        </FieldGroup>\n                        <FormikField\n                            name={FieldsEnum.street2}\n                            error={formik.errors[FieldsEnum.street2]}\n                            meta={formik.getFieldMeta(FieldsEnum.street2)}\n                            label={t('partners-table.create-form.fields.street2.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <Input\n                                    name={FieldsEnum.street2}\n                                    value={formik.values[FieldsEnum.street2]}\n                                    onChange={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                />\n                            )}\n                        </FormikField>\n                    </div>\n                </div>\n                <FooterSideBarLayout hasPaddings hasTopBorder>\n                    <Button\n                        theme={ButtonThemeEnum.primary}\n                        isLoading={creationRequestStatus.loading}\n                        className={cx('button--add')}\n                        type=\"submit\"\n                    >\n                        {t('partners-table.create-form.submit')}\n                    </Button>\n                </FooterSideBarLayout>\n            </SideBarLayout>\n        </form>\n    );\n};\n\nexport default CreatePartnerSidebarContent;\n","import * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport classNames from 'classnames/bind';\n\nimport scrollIntoView from 'scroll-into-view';\n\nimport MultiPointOrderDraftDetails, {\n    MultiPointOrderDraftDetailsPropsT,\n} from '../MultiPointOrderDraftDetails/MultiPointOrderDraftDetails';\nimport OfferDetails from '../OfferDetails/OfferDetails';\nimport { useSelectedShipperCreditLimit } from 'common/layouts/NewOrderPage/hooks/use-selected-shipper-credit-limit';\n\nimport styles from './CargoDetailsForm.scss';\nimport {\n    CARGO_DETAILS_FORM_NAME,\n    FieldsEnum,\n    FormTouchedT,\n    FormValuesT,\n    PointContactsFieldsEnum,\n    PointContactsFormValuesT,\n    RoutePointT,\n    ShipmentFieldsEnum,\n    ShipmentFormValuesT,\n} from './constants';\nimport ValuesStorage from 'common/utils/form-values-storage';\nimport { FormikContext, useFormik } from 'formik';\nimport { useTranslation } from 'react-i18next';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport validateForm from './validate-form';\nimport { useParams } from 'react-router-dom';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { createOrder, ensureCreatedRFQ } from 'common/store/order-creation/actions';\nimport {\n    selectCreateOrderRequest,\n    selectLanePriceOffer,\n    selectPriceOffersById,\n    selectRFQ,\n} from 'common/store/order-creation/selectors';\nimport { formatAddressComponents } from 'common/utils/google-places';\nimport getterFormFillPercent from 'common/layouts/NewOrderPage/getter-form-fill-percent';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport {\n    DEFAULT_ICON_SIZE,\n    OMSRoutesEnum,\n    PHONE_NUMBER_PREFIX,\n    QueryKeysEnum,\n    StyleGuideColorsEnum,\n    UnitTypeEnum,\n} from 'common/constants';\nimport useQuery from 'common/utils/hooks/useQuery';\nimport { fetchTrailersDict } from 'common/store/trailers-dict/actions';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport { fetchAdditionalServices } from 'common/store/additional-services-dict/slice';\nimport { selectTrailersDictById } from 'common/store/trailers-dict/selectors';\nimport isNumber from 'lodash/isNumber';\nimport { MS_IN_MIN } from 'common/utils/time';\n\nimport history from 'common/utils/history';\nimport OrderCreationPercentContext from 'common/layouts/NewOrderPage/contexts/order-creation-percent-context';\nimport { isNonNil } from 'common/utils';\nimport times from 'lodash/times';\nimport ShipmentPicker from 'common/layouts/NewOrderPage/CargoDetailsForm/ShipmentPicker/ShipmentPicker';\nimport FormikFieldArray from 'common/components/forms/FormikFieldArray/FormikFieldArray';\nimport PointContactsPicker from 'common/layouts/NewOrderPage/CargoDetailsForm/PointContactsPicker/PointContactsPicker';\nimport Card from 'design-system/components/Card/Card';\nimport CargoUnitIcon from 'common/icons/CargoUnitIcon';\nimport NumberIcon from 'common/icons/NumberIcon';\nimport ErrorIndicatorLabel from 'common/layouts/NewOrderPage/CargoDetailsForm/ErrorIndicatorLabel/ErrorIndicatorLabel';\nimport PlusSignIcon from 'common/icons/PlusSignIcon';\nimport { getApiLoadUnitType } from 'common/utils/units';\nimport { parsePhoneNumber, parseSimpleNumber, parseStringFormatter } from 'common/utils/input-parsers';\nimport {\n    ApiCreateOrderRequestT,\n    ApiDictCarrierAdditionalServiceTypeT,\n    OrderCreationReservePointTypeEnum,\n} from 'common/utils/api/models';\nimport NotUsedRoutePointValidationAlertContent from 'common/layouts/NewOrderPage/CargoDetailsForm/footer-alert-contents/NotUsedRoutePointValidationAlertContent/NotUsedRoutePointValidationAlertContent';\nimport OverloadingTrailerValidationAlertContent from 'common/layouts/NewOrderPage/CargoDetailsForm/footer-alert-contents/OverloadingTrailerValidationAlertContent/OverloadingTrailerValidationAlertContent';\nimport { validateNotUsedRoutePoint } from 'common/layouts/NewOrderPage/CargoDetailsForm/validations/not-used-route-points';\nimport { validateOverloadingTrailer } from 'common/layouts/NewOrderPage/CargoDetailsForm/validations/overloading-check';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport DeleteIcon from 'common/icons/DeleteIcon';\nimport TemperatureRangesCompatibleValidationAlertContent from './footer-alert-contents/TemperatureRangesCompatibleValidationAlertContent/TemperatureRangesCompatibleValidationAlertContent';\nimport { checkTemperatureRangesCompatible } from 'common/layouts/NewOrderPage/CargoDetailsForm/validations/check-temperature-ranges-compatible';\nimport SideBarFooterAlertsContext from 'common/layouts/LeftMenuLayout/SideBarLayout/contexts/side-bar-footer-alerts-context';\nimport { AlertThemeEnum } from 'common/components/Alert/Alert';\nimport FooterSideBarAlertsLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarAlertsLayout/FooterSideBarAlertsLayout';\nimport { CloseSideBarFooterAlertCallbackT } from 'common/utils/hooks/useSideBarFooterAlertsContextValue';\nimport ExpirationRFQAlertContent from 'common/layouts/NewOrderPage/CargoDetailsForm/footer-alert-contents/ExpirationRFQAlertContent/ExpirationRFQAlertContent';\nimport asyncValidate from './async-validations';\nimport useAsyncFormErrors from 'common/utils/hooks/useAsyncFormErrors';\nimport FormAsyncErrorsContext from 'common/components/forms/contexts/form-async-errors-context';\nimport { formatQueryCustomLineHaulMap, parseQueryCustomLineHaulMap } from 'common/layouts/NewOrderPage/query';\nimport { formatQuery } from 'common/utils/query';\nimport { selectAdditionalServicesMap } from 'common/store/additional-services-dict/selectors';\nimport ContactFilledIndicator from 'common/layouts/NewOrderPage/CargoDetailsForm/ContactFilledIndicator/ContactFilledIndicator';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst storage = new ValuesStorage(CARGO_DETAILS_FORM_NAME);\n\nconst DEFAULT_POINT_CONTACTS_VALUES: PointContactsFormValuesT = {\n    [PointContactsFieldsEnum.companyName]: '',\n    [PointContactsFieldsEnum.fullName]: '',\n    [PointContactsFieldsEnum.email]: '',\n    [PointContactsFieldsEnum.phoneNumber]: PHONE_NUMBER_PREFIX,\n    [PointContactsFieldsEnum.comment]: '',\n};\n\nconst DEFAULT_SHIPMENT_VALUES: ShipmentFormValuesT = {\n    [ShipmentFieldsEnum.fakeId]: null,\n    [ShipmentFieldsEnum.pickUpPointId]: null,\n    [ShipmentFieldsEnum.dropOffPointId]: null,\n    [ShipmentFieldsEnum.cargoUnitsCount]: '',\n    [ShipmentFieldsEnum.cargoUnitType]: UnitTypeEnum.eur1Pallets,\n    [ShipmentFieldsEnum.cargoWeight]: '',\n    [ShipmentFieldsEnum.cargoTemperatureRange]: [-25, 0],\n    [ShipmentFieldsEnum.cargoDescription]: '',\n    [ShipmentFieldsEnum.poNumber]: '',\n    [ShipmentFieldsEnum.pickUpReferenceNumber]: '',\n    [ShipmentFieldsEnum.dropOffReferenceNumber]: '',\n};\n\nconst getInitialValues = (routePoints: Array<RoutePointT>, isFinallyFetchInitializedData: boolean): FormValuesT => {\n    if (!isFinallyFetchInitializedData) {\n        return {\n            [FieldsEnum.contacts]: [],\n            [FieldsEnum.shipments]: [],\n        };\n    }\n\n    const prevValues: FormValuesT = storage.getValues();\n\n    const isSameContactsSizes = routePoints?.length === prevValues?.[FieldsEnum.contacts]?.length;\n\n    const prevPointIds =\n        prevValues?.[FieldsEnum.shipments]?.flatMap((shipmentValues) => {\n            return [\n                shipmentValues[ShipmentFieldsEnum.pickUpPointId],\n                shipmentValues[ShipmentFieldsEnum.dropOffPointId],\n            ].filter(isNonNil);\n        }) || [];\n    const routePointIds = routePoints?.map((point) => point.id);\n    const hasEveryPointIds = prevPointIds.every((pointId) => {\n        return routePointIds.includes(pointId);\n    });\n\n    const shouldUsePrevValues = isSameContactsSizes && hasEveryPointIds;\n    if (shouldUsePrevValues) {\n        return {\n            [FieldsEnum.contacts]: prevValues[FieldsEnum.contacts] || [],\n            [FieldsEnum.shipments]: prevValues[FieldsEnum.shipments] || [],\n        };\n    }\n\n    const pickupDeliveryPoints = routePoints?.filter((routePoint) => {\n        return routePoint.type === OrderCreationReservePointTypeEnum.shipment;\n    });\n    const autoSelectPickUpPointId = (pickupDeliveryPoints?.length === 2 && pickupDeliveryPoints[0]?.id) || null;\n    const autoSelectDropOffPointId = (pickupDeliveryPoints?.length === 2 && pickupDeliveryPoints[1]?.id) || null;\n    return {\n        [FieldsEnum.contacts]: times(routePoints?.length || 0).map(() => {\n            return {\n                ...DEFAULT_POINT_CONTACTS_VALUES,\n            };\n        }),\n        [FieldsEnum.shipments]: [\n            {\n                ...DEFAULT_SHIPMENT_VALUES,\n                [ShipmentFieldsEnum.pickUpPointId]: autoSelectPickUpPointId || null,\n                [ShipmentFieldsEnum.dropOffPointId]: autoSelectDropOffPointId || null,\n            },\n        ],\n    };\n};\n\ntype QueryT = {\n    [QueryKeysEnum.orderCreationAdditionalServices]: ApiDictCarrierAdditionalServiceTypeT[];\n    [QueryKeysEnum.orderCreationCustomLineHauls]: string;\n};\n\nconst CargoDetailsForm: React.FC<PropsT> = React.memo(() => {\n    const creditLimit = useSelectedShipperCreditLimit();\n    const { t } = useTranslation();\n\n    const orderCreationPercentContext = useContext(OrderCreationPercentContext);\n    const sideBarFooterAlertsContext = useContext(SideBarFooterAlertsContext);\n    const showFooterAlert = sideBarFooterAlertsContext?.showAlert;\n\n    const ref = React.createRef<HTMLDivElement>();\n\n    const isCreateNextOrderRef = React.useRef<boolean>(false);\n\n    const rfq = useSelector(selectRFQ);\n    const lanePriceOffer = useSelector(selectLanePriceOffer);\n    const reserveExpireTime = rfq?.expireTime || lanePriceOffer?.expirationMs || null;\n\n    const multiPointOrderDraftDetailPoints = useMemo((): MultiPointOrderDraftDetailsPropsT['points'] => {\n        if (rfq) {\n            return rfq.points.map((point, index) => {\n                return {\n                    address: point.address,\n                    type: point.type,\n                    index,\n                };\n            });\n        }\n\n        return null;\n    }, [rfq]);\n\n    const trailerTypeId = isNumber(rfq?.trailerTypeId) ? String(rfq?.trailerTypeId) : null;\n\n    const trailersDictById = useSelector(selectTrailersDictById);\n    const dictTrailerInfo = trailersDictById[trailerTypeId as TrailerDictIdT] || null;\n\n    const additionalServiceMap = useSelector(selectAdditionalServicesMap(dictTrailerInfo?.trailerType || null));\n\n    const query = useQuery<QueryT>();\n    const selectedAdditionalServiceEnums = query[QueryKeysEnum.orderCreationAdditionalServices] || [];\n    const rawCustomLineHaul = query[QueryKeysEnum.orderCreationCustomLineHauls];\n    const customLineHaulMap = React.useMemo(() => {\n        return parseQueryCustomLineHaulMap(rawCustomLineHaul);\n    }, [rawCustomLineHaul]);\n\n    const handleChangeCustomLineHaul = (priceOfferId: PriceOfferIdT, customLineHaul: number | null) => {\n        history.push({\n            search: formatQuery({\n                ...query,\n                [QueryKeysEnum.orderCreationCustomLineHauls]: formatQueryCustomLineHaulMap({\n                    ...customLineHaulMap,\n                    [priceOfferId]: isNumber(customLineHaul) ? customLineHaul : undefined,\n                }),\n            }),\n        });\n    };\n\n    React.useEffect((): void => {\n        if (!ref.current) {\n            return;\n        }\n\n        scrollIntoView(ref.current, {\n            time: 300,\n        });\n\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const params = useParams<{ rfqId: string; laneId?: string; offerId: string }>();\n    const dispatch = useDispatch();\n    React.useEffect(() => {\n        if (params.rfqId) {\n            dispatch(ensureCreatedRFQ(params.rfqId));\n        }\n\n        dispatch(fetchAdditionalServices());\n        dispatch(fetchTrailersDict());\n    }, [dispatch, params.rfqId]);\n\n    const priceOffersById = useSelector(selectPriceOffersById);\n    const selectedOffer = priceOffersById[params.offerId];\n\n    const offer = lanePriceOffer || selectedOffer || null;\n\n    const routePoints = useMemo((): Array<RoutePointT> => {\n        if (rfq) {\n            return rfq.points\n                .map((point, index) => {\n                    return {\n                        id: point.id,\n                        address: point.address,\n                        type: point.type,\n                        index,\n                    };\n                })\n                .filter(isNonNil);\n        }\n\n        return [];\n    }, [rfq]);\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) =>\n            validateForm(t, values, {\n                trailerType: dictTrailerInfo,\n                routePoints,\n            });\n    }, [t, routePoints, dictTrailerInfo]);\n\n    const isFinallyFetchInitializedData = !!routePoints?.length;\n\n    const [initialValues, initialTouched, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues(routePoints, isFinallyFetchInitializedData);\n        const errors = validateForm(t, values, {\n            trailerType: dictTrailerInfo,\n            routePoints,\n        });\n\n        const touched: FormTouchedT = {};\n\n        values?.shipments.forEach((shipmentValue, index) => {\n            const shipmentFields = Object.keys(shipmentValue) as ShipmentFieldsEnum[];\n\n            if (!touched.shipments) {\n                touched.shipments = [];\n            }\n\n            touched.shipments[index] = shipmentFields.reduce<NonNullable<FormTouchedT['shipments']>[number]>(\n                (acc, key) => {\n                    acc[key] = DEFAULT_SHIPMENT_VALUES[key] !== shipmentValue[key];\n\n                    return acc;\n                },\n                {},\n            );\n        });\n\n        values?.contacts.forEach((pointContactsValue, index) => {\n            const pointContactsFields = Object.keys(pointContactsValue) as PointContactsFieldsEnum[];\n\n            if (!touched.contacts) {\n                touched.contacts = [];\n            }\n\n            touched.contacts[index] = pointContactsFields.reduce<NonNullable<FormTouchedT['contacts']>[number]>(\n                (acc, key) => {\n                    if (key === PointContactsFieldsEnum.fullName || key === PointContactsFieldsEnum.phoneNumber) {\n                        acc[key] = true;\n                    } else {\n                        acc[key] = DEFAULT_POINT_CONTACTS_VALUES[key] !== pointContactsValue[key];\n                    }\n\n                    return acc;\n                },\n                {},\n            );\n        });\n\n        return [values, touched, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [routePoints, dictTrailerInfo]);\n\n    const [closeOverloadingAlert, setCloseOverloadingAlert] = React.useState<{\n        callback: CloseSideBarFooterAlertCallbackT | null;\n    }>({ callback: null });\n    const [closeNotUsedPointAlert, setCloseNotUsedPointAlert] = React.useState<{\n        callback: CloseSideBarFooterAlertCallbackT | null;\n    }>({ callback: null });\n    const [closeTemperatureRangesCompatibleAlert, setCloseTemperatureRangesCompatibleAlert] = React.useState<{\n        callback: CloseSideBarFooterAlertCallbackT | null;\n    }>({ callback: null });\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        initialTouched,\n        validate,\n        onSubmit: (values): void => {\n            const notUsedRoutePointValidationResult = validateNotUsedRoutePoint(formik.values, {\n                routePoints,\n            });\n            if (notUsedRoutePointValidationResult) {\n                setCloseNotUsedPointAlert({\n                    callback:\n                        showFooterAlert?.({\n                            theme: AlertThemeEnum.tomatoRed,\n                            content: (\n                                <NotUsedRoutePointValidationAlertContent\n                                    validationResult={notUsedRoutePointValidationResult}\n                                />\n                            ),\n                        }) || null,\n                });\n                return;\n            }\n\n            const overloadingTrailerValidationResult = validateOverloadingTrailer(formik.values, {\n                routePoints,\n                trailerType: dictTrailerInfo,\n            });\n            if (overloadingTrailerValidationResult) {\n                setCloseOverloadingAlert({\n                    callback:\n                        showFooterAlert?.({\n                            theme: AlertThemeEnum.tomatoRed,\n                            content: (\n                                <OverloadingTrailerValidationAlertContent\n                                    validationResult={overloadingTrailerValidationResult}\n                                />\n                            ),\n                        }) || null,\n                });\n                return;\n            }\n\n            const temperatureRangesCompatibleValidationResult = checkTemperatureRangesCompatible(formik.values, {\n                trailerType: dictTrailerInfo,\n            });\n            if (temperatureRangesCompatibleValidationResult) {\n                setCloseTemperatureRangesCompatibleAlert({\n                    callback:\n                        showFooterAlert?.({\n                            theme: AlertThemeEnum.tomatoRed,\n                            content: (\n                                <TemperatureRangesCompatibleValidationAlertContent\n                                    validationResult={temperatureRangesCompatibleValidationResult}\n                                />\n                            ),\n                        }) || null,\n                });\n                return;\n            }\n\n            const shipmentsFormValues = values[FieldsEnum.shipments];\n            const contactsFormValues = values[FieldsEnum.contacts];\n            const isCreateNextOrder = isCreateNextOrderRef.current;\n            const isReefer = !!dictTrailerInfo?.reefer;\n\n            const existedSelectedAdditionalServiceEnums = selectedAdditionalServiceEnums.filter((type) => {\n                return Boolean(additionalServiceMap?.[type]);\n            });\n\n            const createOrderRequest: ApiCreateOrderRequestT = {\n                priceOfferId: params.offerId,\n                contacts: contactsFormValues.map((contactFormValues, index) => {\n                    const routePoint = routePoints[index];\n\n                    return {\n                        contact: {\n                            fullName: contactsFormValues?.[index]?.[PointContactsFieldsEnum.fullName].trim(),\n                            companyName: contactsFormValues?.[index]?.[PointContactsFieldsEnum.companyName].trim(),\n                            email: contactsFormValues?.[index]?.[PointContactsFieldsEnum.email].trim() || undefined,\n                            phone:\n                                parsePhoneNumber(contactsFormValues?.[index]?.[PointContactsFieldsEnum.phoneNumber]) ||\n                                undefined,\n                            comment: contactsFormValues?.[index]?.[PointContactsFieldsEnum.comment].trim() || undefined,\n                        },\n                        pointId: routePoint.id,\n                    };\n                }),\n                customLineHaul: isNumber(customLineHaulMap?.[params.offerId])\n                    ? customLineHaulMap[params.offerId]\n                    : undefined,\n                shipments: shipmentsFormValues.map((shipmentFormValues) => {\n                    return {\n                        description: shipmentFormValues?.[ShipmentFieldsEnum.cargoDescription].trim(),\n                        lowestTemperature: isReefer\n                            ? shipmentFormValues?.[ShipmentFieldsEnum.cargoTemperatureRange]?.[0]\n                            : undefined,\n                        highestTemperature: isReefer\n                            ? shipmentFormValues?.[ShipmentFieldsEnum.cargoTemperatureRange]?.[1]\n                            : undefined,\n                        numberOfUnits: parseSimpleNumber(shipmentFormValues?.[ShipmentFieldsEnum.cargoUnitsCount]) || 0,\n                        maxNumberOfUnits: 0, // TODO\n                        unitsType:\n                            getApiLoadUnitType(shipmentFormValues?.[ShipmentFieldsEnum.cargoUnitType]) || 'OTHER',\n                        weight: parseSimpleNumber(shipmentFormValues?.[ShipmentFieldsEnum.cargoWeight]) || 0,\n                        poNumber: parseStringFormatter(shipmentFormValues?.[ShipmentFieldsEnum.poNumber]) || '',\n                        dropOffReference:\n                            parseStringFormatter(shipmentFormValues?.[ShipmentFieldsEnum.dropOffReferenceNumber]) || '',\n                        pickupReference:\n                            parseStringFormatter(shipmentFormValues?.[ShipmentFieldsEnum.pickUpReferenceNumber]) || '',\n                        pickupPointId: shipmentFormValues?.[ShipmentFieldsEnum.pickUpPointId] || '',\n                        dropOffPointId: shipmentFormValues?.[ShipmentFieldsEnum.dropOffPointId] || '',\n                    };\n                }),\n                carrierAdditionalServices: existedSelectedAdditionalServiceEnums,\n            };\n\n            dispatch(createOrder(params.rfqId, createOrderRequest, isCreateNextOrder));\n        },\n    });\n\n    React.useEffect(() => {\n        const shipmentsLength = formik.values[FieldsEnum.shipments]?.length || 0;\n\n        const percent = getterFormFillPercent([\n            ...times(shipmentsLength).flatMap((index) => {\n                return [\n                    `${FieldsEnum.shipments}.${index}.${ShipmentFieldsEnum.pickUpPointId}`,\n                    `${FieldsEnum.shipments}.${index}.${ShipmentFieldsEnum.dropOffPointId}`,\n                ];\n            }),\n        ])(formik.values);\n\n        orderCreationPercentContext.setPercent(percent);\n\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.values]);\n\n    React.useEffect(() => {\n        if (isFinallyFetchInitializedData) {\n            storage.saveValues(formik.values);\n        }\n    }, [formik.values, isFinallyFetchInitializedData]);\n\n    const createOrderRequestStatus = useSelector(selectCreateOrderRequest);\n\n    const pointContactsFormValues = formik.values[FieldsEnum.contacts];\n\n    const asyncErrors = React.useMemo(() => {\n        return asyncValidate(t, createOrderRequestStatus);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [t, createOrderRequestStatus.error]);\n\n    const asyncFormErrors = useAsyncFormErrors(asyncErrors);\n\n    return (\n        <FormAsyncErrorsContext.Provider value={asyncFormErrors}>\n            <FormikContext.Provider value={formik}>\n                <form onSubmit={formik.handleSubmit}>\n                    <div className={cx('inner')} data-test-selector=\"new-order-cargo-details\">\n                        <div ref={ref} />\n                        <MultiPointOrderDraftDetails\n                            offer={offer}\n                            trailerType={dictTrailerInfo}\n                            points={multiPointOrderDraftDetailPoints}\n                        />\n                        <OfferDetails\n                            className={cx('offer')}\n                            offer={offer}\n                            selectedAdditionalServiceEnums={selectedAdditionalServiceEnums}\n                            hasSelectedLane={!!params.laneId}\n                            customLineHaulMap={customLineHaulMap}\n                            onChangeCustomLineHaul={handleChangeCustomLineHaul}\n                            dictTrailerInfo={dictTrailerInfo}\n                            creditLimit={creditLimit}\n                        />\n                        {!!offer && (\n                            <>\n                                <div className={cx('block')}>\n                                    <div className={cx('block__content')}>\n                                        <FormikFieldArray<FormValuesT, typeof FieldsEnum.shipments>\n                                            name={FieldsEnum.shipments}\n                                        >\n                                            {(values, { push, remove }) => {\n                                                const isAllowRemove = values?.length > 1;\n                                                return (\n                                                    <>\n                                                        {values.map((value, index) => {\n                                                            return (\n                                                                <Card\n                                                                    key={`shipment-card-${\n                                                                        value?.[ShipmentFieldsEnum.fakeId]\n                                                                    }`}\n                                                                    initIsOpen\n                                                                    titleNode={t(\n                                                                        'common:new-order-form.shipment-title',\n                                                                        {\n                                                                            number: index + 1,\n                                                                        },\n                                                                    )}\n                                                                    className={cx('shipments-card')}\n                                                                    afterTitleNode={\n                                                                        <CargoUnitIcon\n                                                                            size={DEFAULT_ICON_SIZE}\n                                                                            strokeColor={StyleGuideColorsEnum.gray}\n                                                                            fillColor={StyleGuideColorsEnum.light}\n                                                                        />\n                                                                    }\n                                                                    rightNode={\n                                                                        <>\n                                                                            <ErrorIndicatorLabel\n                                                                                fieldNamesPrefix={FieldsEnum.shipments}\n                                                                                index={index}\n                                                                            />\n                                                                            {isAllowRemove && (\n                                                                                <Tooltip\n                                                                                    position={\n                                                                                        TooltipPositionEnum.topCenter\n                                                                                    }\n                                                                                    theme={TooltipThemeEnum.black}\n                                                                                    tooltipNode={\n                                                                                        <TooltipContent\n                                                                                            theme={\n                                                                                                TooltipContentThemeEnum.black\n                                                                                            }\n                                                                                            isNoWrap\n                                                                                        >\n                                                                                            {t(\n                                                                                                'common:new-order-form.delete-shipment-tooltip',\n                                                                                            )}\n                                                                                        </TooltipContent>\n                                                                                    }\n                                                                                >\n                                                                                    {() => (\n                                                                                        <TransparentTrigger\n                                                                                            onClick={() => {\n                                                                                                remove(index);\n                                                                                            }}\n                                                                                            reflectionTheme={\n                                                                                                ReflectionThemeEnum.light\n                                                                                            }\n                                                                                            leftIcon={\n                                                                                                <DeleteIcon\n                                                                                                    fillColor={\n                                                                                                        StyleGuideColorsEnum.tomatoRed\n                                                                                                    }\n                                                                                                />\n                                                                                            }\n                                                                                        />\n                                                                                    )}\n                                                                                </Tooltip>\n                                                                            )}\n                                                                        </>\n                                                                    }\n                                                                >\n                                                                    <ShipmentPicker\n                                                                        shipmentIndex={index}\n                                                                        trailerType={dictTrailerInfo}\n                                                                        routePoints={routePoints}\n                                                                        closeNotUsedPointValidationAlertCallback={\n                                                                            closeNotUsedPointAlert?.callback\n                                                                        }\n                                                                        closeOverloadingValidationAlertCallback={\n                                                                            closeOverloadingAlert?.callback\n                                                                        }\n                                                                        closeTemperatureRangesValidationAlertCallback={\n                                                                            closeTemperatureRangesCompatibleAlert?.callback\n                                                                        }\n                                                                    />\n                                                                </Card>\n                                                            );\n                                                        })}\n                                                        <Button\n                                                            theme={ButtonThemeEnum.transparent}\n                                                            type=\"button\"\n                                                            onClick={() => {\n                                                                const pickupDeliveryPoints = routePoints?.filter(\n                                                                    (routePoint) =>\n                                                                        routePoint?.type ===\n                                                                        OrderCreationReservePointTypeEnum.shipment,\n                                                                );\n                                                                const autoSelectPickUpPointId =\n                                                                    (pickupDeliveryPoints?.length === 2 &&\n                                                                        pickupDeliveryPoints?.[0]?.id) ||\n                                                                    null;\n                                                                const autoSelectDropOffPointId =\n                                                                    (pickupDeliveryPoints?.length === 2 &&\n                                                                        pickupDeliveryPoints?.[1]?.id) ||\n                                                                    null;\n\n                                                                push({\n                                                                    ...DEFAULT_SHIPMENT_VALUES,\n                                                                    [ShipmentFieldsEnum.fakeId]: uuidv4(),\n                                                                    [ShipmentFieldsEnum.pickUpPointId]:\n                                                                        autoSelectPickUpPointId,\n                                                                    [ShipmentFieldsEnum.dropOffPointId]:\n                                                                        autoSelectDropOffPointId,\n                                                                });\n                                                            }}\n                                                            leftIcon={\n                                                                <PlusSignIcon\n                                                                    size={DEFAULT_ICON_SIZE}\n                                                                    strokeColor={StyleGuideColorsEnum.charcoal}\n                                                                />\n                                                            }\n                                                        >\n                                                            {t('common:new-order-form.actions.add-shipment')}\n                                                        </Button>\n                                                    </>\n                                                );\n                                            }}\n                                        </FormikFieldArray>\n                                    </div>\n                                </div>\n                                <div className={cx('block')}>\n                                    <div className={cx('block__title')}>\n                                        {t('common:new-order-details.field-group.contact')}\n                                    </div>\n                                    <div className={cx('block__content')}>\n                                        {pointContactsFormValues.map((pointContactFormValues, index) => {\n                                            const routePoint = routePoints[index];\n                                            if (routePoint?.type !== OrderCreationReservePointTypeEnum.shipment) {\n                                                return null;\n                                            }\n\n                                            return (\n                                                <Card\n                                                    key={`point-contacts-card-${index}`}\n                                                    initIsOpen\n                                                    className={cx('contacts-card')}\n                                                    iconNode={\n                                                        <NumberIcon\n                                                            number={(routePoint?.index || 0) + 1}\n                                                            fillColor={StyleGuideColorsEnum.charcoal}\n                                                        />\n                                                    }\n                                                    titleNode={formatAddressComponents(routePoint.address)}\n                                                    titleClassName={cx('contacts-card-title')}\n                                                    rightNode={\n                                                        <ContactFilledIndicator\n                                                            fieldNamesPrefix={FieldsEnum.contacts}\n                                                            index={index}\n                                                        />\n                                                    }\n                                                >\n                                                    <PointContactsPicker contactIndex={index} />\n                                                </Card>\n                                            );\n                                        })}\n                                    </div>\n                                </div>\n                            </>\n                        )}\n                        <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n                        <FooterSideBarLayout hasPaddings topNode={<FooterSideBarAlertsLayout />}>\n                            <div className={cx('actions')}>\n                                <Button\n                                    theme={ButtonThemeEnum.secondary}\n                                    className={cx('actions__action', 'actions__action--place-and-next-new-order')}\n                                    onClick={() => {\n                                        isCreateNextOrderRef.current = true;\n                                        formik.handleSubmit();\n                                    }}\n                                    type=\"submit\"\n                                    testSelector=\"next-step\"\n                                    isLoading={createOrderRequestStatus.loading}\n                                >\n                                    {t('common:new-order-details.submit.place-and-next-new-order')}\n                                </Button>\n                                <Button.Container className={cx('actions__action', 'actions__action--place')}>\n                                    <Button\n                                        theme={ButtonThemeEnum.primary}\n                                        type=\"submit\"\n                                        testSelector=\"next-step\"\n                                        isLoading={createOrderRequestStatus.loading}\n                                        isCenterContent\n                                        isFullWidth\n                                    >\n                                        {t('common:new-order-details.submit.place')}\n                                    </Button>\n                                    {isNumber(reserveExpireTime) && (\n                                        <Button.Timer\n                                            showTime={10 * MS_IN_MIN}\n                                            expireTime={reserveExpireTime}\n                                            tooltipMessage={t('common:new-order-form.price-offer-expiration.tooltip')}\n                                            onExpire={() => {\n                                                showFooterAlert?.({\n                                                    deduplicationKey: 'order-creation-rfq-expiration',\n                                                    theme: AlertThemeEnum.orange,\n                                                    content: <ExpirationRFQAlertContent />,\n                                                });\n\n                                                history.push(OMSRoutesEnum.newOrder);\n                                            }}\n                                        />\n                                    )}\n                                </Button.Container>\n                            </div>\n                        </FooterSideBarLayout>\n                    </div>\n                </form>\n            </FormikContext.Provider>\n        </FormAsyncErrorsContext.Provider>\n    );\n});\n\nexport default CargoDetailsForm;\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"BrokerTeamsSuggest__option___eOeX4\",\"fadeIn\":\"BrokerTeamsSuggest__fadeIn___AaUFj\",\"blinking\":\"BrokerTeamsSuggest__blinking___cPprI\"};","import {\n    FETCH_RATES_PAGE_REQUEST_BEGIN,\n    FETCH_RATES_PAGE_REQUEST_ERROR,\n    FETCH_RATES_PAGE_REQUEST_SUCCESS,\n    RatesActionT,\n    RatesStateT,\n    RESET_RATES,\n    UPDATE_RATES_REQUEST_BEGIN,\n    UPDATE_RATES_REQUEST_ERROR,\n    UPDATE_RATES_REQUEST_SUCCESS,\n    UPLOAD_CSV_FILE_REQUEST_BEGIN,\n    UPLOAD_CSV_FILE_REQUEST_FAIL,\n    UPLOAD_CSV_FILE_REQUEST_SUCCESS,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport {\n    pageBeginReducer,\n    pageErrorReducer,\n    pageSuccessReducer,\n    resetPagesCacheReducer,\n} from 'common/utils/pagination/reducers';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: RatesStateT = {\n    pages: [],\n    query: null,\n    total: null,\n    byId: {},\n    updateRequest: requestStatus.initial,\n    uploadCSVRequest: requestStatus.initial,\n};\n\nexport default (state = initialState, action: RatesActionT | DestroySessionActionT): RatesStateT => {\n    switch (action.type) {\n        case FETCH_RATES_PAGE_REQUEST_BEGIN: {\n            const { pageNumber, query } = action;\n\n            const newPages = [...state.pages];\n            newPages.splice(pageNumber, 1, {\n                ...state.pages[pageNumber],\n                requestStatus: requestStatus.loading,\n            });\n\n            return {\n                ...state,\n                ...pageBeginReducer(state, pageNumber, query),\n            };\n        }\n        case FETCH_RATES_PAGE_REQUEST_SUCCESS: {\n            const { query, pageNumber, pageResponse } = action;\n\n            return {\n                ...state,\n                ...pageSuccessReducer(state, pageNumber, query, pageResponse),\n            };\n        }\n        case FETCH_RATES_PAGE_REQUEST_ERROR: {\n            const { query, error, pageNumber } = action;\n\n            return {\n                ...state,\n                ...pageErrorReducer(state, pageNumber, query, error),\n            };\n        }\n        case UPLOAD_CSV_FILE_REQUEST_BEGIN: {\n            return {\n                ...state,\n                uploadCSVRequest: requestStatus.loading,\n            };\n        }\n        case UPLOAD_CSV_FILE_REQUEST_SUCCESS: {\n            return {\n                ...state,\n                uploadCSVRequest: requestStatus.ok,\n            };\n        }\n        case UPLOAD_CSV_FILE_REQUEST_FAIL: {\n            const { error } = action;\n\n            return {\n                ...state,\n                uploadCSVRequest: requestStatus.setError(error),\n            };\n        }\n        case UPDATE_RATES_REQUEST_BEGIN: {\n            return {\n                ...state,\n                updateRequest: requestStatus.loading,\n            };\n        }\n        case UPDATE_RATES_REQUEST_SUCCESS: {\n            return {\n                ...state,\n                updateRequest: requestStatus.ok,\n            };\n        }\n        case UPDATE_RATES_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                updateRequest: requestStatus.setError(error),\n            };\n        }\n        case RESET_RATES: {\n            const { mutationListOptions } = action;\n\n            return {\n                ...initialState,\n                ...resetPagesCacheReducer(initialState, state, mutationListOptions),\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default:\n            return state;\n    }\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"LanguageSelector__fadeIn___aljUo\",\"blinking\":\"LanguageSelector__blinking___Zt3zT\"};","import { SharableStateT } from '../models';\nimport { ConsistentStateMachineItemStateT, initialConsistentStateMachineItemState } from './slice';\nimport { ConsistentStateMachineDescriptorT } from './models';\nimport { getStateMachineEntityHash } from './utils';\n\nexport const selectConsistentStateMachineItemState = (descriptor: ConsistentStateMachineDescriptorT | null) => {\n    return (state: SharableStateT): ConsistentStateMachineItemStateT => {\n        if (!descriptor) {\n            return initialConsistentStateMachineItemState;\n        }\n\n        const hash = getStateMachineEntityHash(descriptor);\n\n        return state.consistentStateMachine[hash] || initialConsistentStateMachineItemState;\n    };\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"input\":\"FilePickerInput__input___wY9zc\",\"input--isEmpty\":\"FilePickerInput__input--isEmpty___OLTqh\",\"input--isClickable\":\"FilePickerInput__input--isClickable___DjMeZ\",\"input--hasWarning\":\"FilePickerInput__input--hasWarning___dGodQ\",\"input--hasChanges\":\"FilePickerInput__input--hasChanges___IxP84\",\"input--hasError\":\"FilePickerInput__input--hasError___RB3p8\",\"input--isDisabled\":\"FilePickerInput__input--isDisabled___oXxnY\",\"input--hasRightNode\":\"FilePickerInput__input--hasRightNode___VQWfv\",\"icon\":\"FilePickerInput__icon___A3lN6\",\"icon--isLeft\":\"FilePickerInput__icon--isLeft___g3EHC\",\"label\":\"FilePickerInput__label___zsJl7\",\"label--isEmpty\":\"FilePickerInput__label--isEmpty___EVNpa\",\"label--isDisabled\":\"FilePickerInput__label--isDisabled___MSYcc\",\"upload-trigger\":\"FilePickerInput__upload-trigger___lZmLE\",\"fadeIn\":\"FilePickerInput__fadeIn___IGCjd\",\"blinking\":\"FilePickerInput__blinking___nWWjJ\"};","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport NumberIcon from 'common/icons/NumberIcon';\n\ntype PropsT = {\n    className?: string;\n    routePointIndex: number;\n    isDriveThroughRoutePointPicker?: boolean;\n    isPickupOrDeliveryRoutePointPicker?: boolean;\n    hasValue?: boolean;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    isDisabled?: boolean;\n};\n\nconst WaypointNumberIcon: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        routePointIndex,\n        isDriveThroughRoutePointPicker,\n        isPickupOrDeliveryRoutePointPicker,\n        hasValue,\n        hasError,\n        hasWarning,\n        isDisabled,\n    } = props;\n\n    let fillColor = StyleGuideColorsEnum.light;\n\n    if (isDriveThroughRoutePointPicker && hasValue) {\n        fillColor = StyleGuideColorsEnum.gray;\n    }\n\n    if (isPickupOrDeliveryRoutePointPicker && hasValue) {\n        fillColor = StyleGuideColorsEnum.charcoal;\n    }\n\n    if (hasError && hasValue) {\n        fillColor = StyleGuideColorsEnum.tomatoRed;\n    }\n\n    if (hasWarning && hasValue) {\n        fillColor = StyleGuideColorsEnum.orange;\n    }\n\n    if (isDisabled) {\n        fillColor = StyleGuideColorsEnum.slate;\n    }\n\n    return <NumberIcon className={className} number={routePointIndex + 1} fillColor={fillColor} />;\n});\n\nexport default WaypointNumberIcon;\n","import * as React from 'react';\n\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport classNames from 'classnames/bind';\nimport styles from './ImageLoader.scss';\nimport { logWarning } from 'common/utils/logger';\n\nconst cx = classNames.bind(styles);\n\ntype StateT = {\n    isLoaded: boolean;\n};\n\ntype PropsT = {\n    src: string | null;\n    alt: string | null;\n    className?: string;\n    style?: React.CSSProperties;\n};\n\nclass ImageLoader extends React.Component<PropsT, StateT> {\n    imageNode: HTMLImageElement | null = null;\n\n    constructor(props: PropsT) {\n        super(props);\n\n        this.state = {\n            isLoaded: false,\n        };\n    }\n\n    componentDidMount() {\n        const { src } = this.props;\n\n        if (src) {\n            this.fetchImage(src);\n        }\n    }\n\n    componentDidUpdate(prevProps: PropsT) {\n        const { src } = this.props;\n\n        if (src && prevProps.src !== src) {\n            this.fetchImage(src);\n        }\n    }\n\n    fetchImage(src: string) {\n        commonTranziitApi\n            .fetchImage(src)\n            .then((response) => {\n                const [error, blob] = response;\n\n                if (!blob || error) {\n                    return;\n                }\n\n                // @ts-expect-error\n                const imageObjectURL = URL.createObjectURL(blob);\n\n                if (this.imageNode) {\n                    this.imageNode.src = imageObjectURL;\n                }\n            })\n            .catch((error) => {\n                logWarning('Failed to fetch image:', error);\n            })\n            .finally(() => {\n                this.setState({\n                    isLoaded: true,\n                });\n            });\n    }\n\n    render() {\n        const { className, alt, style } = this.props;\n        const { isLoaded } = this.state;\n\n        return (\n            <>\n                <img\n                    className={className}\n                    src=\"\"\n                    style={{\n                        ...style,\n                        display: isLoaded ? 'block' : 'none',\n                        opacity: isLoaded ? 1 : 0,\n                    }}\n                    alt={alt || undefined}\n                    ref={(node) => {\n                        if (node) {\n                            this.imageNode = node;\n                        }\n                    }}\n                />\n                {!isLoaded && (\n                    <ControlLoaderIcon\n                        className={cx('placeholder')}\n                        fillColor={StyleGuideColorsEnum.brandAccent}\n                        size={DEFAULT_ICON_SIZE}\n                    />\n                )}\n            </>\n        );\n    }\n}\n\nexport default ImageLoader;\n","// extracted by mini-css-extract-plugin\nexport default {\"side-bar\":\"SideBarLayout__side-bar___ZZKja\",\"side-bar--position-left\":\"SideBarLayout__side-bar--position-left___uKvQX\",\"side-bar--size-l\":\"SideBarLayout__side-bar--size-l___AF142\",\"side-bar--size-m\":\"SideBarLayout__side-bar--size-m___iMxzA\",\"side-bar--size-s\":\"SideBarLayout__side-bar--size-s___O8SCR\",\"side-bar--isShow\":\"SideBarLayout__side-bar--isShow___rmxzm\",\"side-bar--position-right\":\"SideBarLayout__side-bar--position-right___UvCEJ\",\"content\":\"SideBarLayout__content___Fg2KU\",\"fadeIn\":\"SideBarLayout__fadeIn___cKwjz\",\"blinking\":\"SideBarLayout__blinking___oEkKk\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './AssignTriggerLabel.scss';\nimport { CurrencyEnum, StyleGuideColorsEnum } from 'common/constants';\nimport Money from 'common/components/Money/Money';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport DetailsIcon from 'common/icons/DetailsIcon';\nimport ClickInterceptorLabel from 'common/components/ClickInterceptorLabel/ClickInterceptorLabel';\nimport isNumber from 'lodash/isNumber';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { useTranslation } from 'react-i18next';\nimport { ApiTruckRateModeT, TruckRateModeEnum } from 'common/utils/api/models';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    model?: string;\n    plateNumber?: string;\n    ratePerKm: number | null | undefined;\n    rateMode: ApiTruckRateModeT | null | undefined;\n    isDisabled: boolean;\n    resetTooltipNode?: React.ReactNode;\n    onReset: () => void;\n    onOpenDetails: () => void;\n};\n\nconst rateModeI18nMap: Record<ApiTruckRateModeT, string> = {\n    [TruckRateModeEnum.brutto]: 'assignment.rate-mode.brutto',\n    [TruckRateModeEnum.netto]: 'assignment.rate-mode.netto',\n};\n\nconst AssignTriggerLabel: React.FC<PropsT> = React.memo((props) => {\n    const { model, plateNumber, ratePerKm, rateMode, isDisabled, onReset, onOpenDetails, resetTooltipNode } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <div className={cx('option')}>\n            <div\n                className={cx('model-and-plate-number', {\n                    'model-and-plate-number--isDisabled': isDisabled,\n                })}\n            >\n                {[plateNumber, model].filter(Boolean).join(' / ')}\n            </div>\n            <div className={cx('spacer')} />\n            {isNumber(ratePerKm) && (\n                <div\n                    className={cx('price', {\n                        'price--isDisabled': isDisabled,\n                    })}\n                >\n                    <Money amount={ratePerKm} currency={CurrencyEnum.EUR} />\n                    {!!rateMode && <span className={cx('trigger-rate-mode')}>({t(rateModeI18nMap[rateMode])})</span>}\n                </div>\n            )}\n            <ClickInterceptorLabel className={cx('reset')}>\n                <Tooltip\n                    className={cx('tooltip')}\n                    position={TooltipPositionEnum.centerLeft}\n                    theme={TooltipThemeEnum.black}\n                    tooltipNode={\n                        resetTooltipNode ? (\n                            <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                {resetTooltipNode}\n                            </TooltipContent>\n                        ) : null\n                    }\n                >\n                    {() => (\n                        <TransparentTrigger\n                            spaces=\"xxs\"\n                            onClick={onReset}\n                            leftIcon={<CloseIcon fillColor={StyleGuideColorsEnum.gray} />}\n                            reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                        />\n                    )}\n                </Tooltip>\n            </ClickInterceptorLabel>\n            <ClickInterceptorLabel className={cx('details')}>\n                <Tooltip\n                    className={cx('tooltip')}\n                    position={TooltipPositionEnum.centerLeft}\n                    theme={TooltipThemeEnum.black}\n                    tooltipNode={\n                        <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                            {t('common:tooltips.open-details')}\n                        </TooltipContent>\n                    }\n                >\n                    {() => (\n                        <TransparentTrigger\n                            spaces=\"xxs\"\n                            onClick={onOpenDetails}\n                            leftIcon={<DetailsIcon strokeColor={StyleGuideColorsEnum.gray} />}\n                            reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                        />\n                    )}\n                </Tooltip>\n            </ClickInterceptorLabel>\n        </div>\n    );\n});\n\nexport default AssignTriggerLabel;\n","import * as React from 'react';\n\nimport styles from './EntitySidebarSkeleton.scss';\nimport classNames from 'classnames/bind';\n\nimport RouteLocationsOverview from 'common/components/entity-details/RouteLocationsOverview/RouteLocationsOverview';\n\nexport type PropsT = {};\n\nconst cx = classNames.bind(styles);\n\nconst EntitySidebarSkeleton: React.FC<PropsT> = React.memo(() => {\n    return (\n        <>\n            <RouteLocationsOverview className={cx('route')} />\n            <div className={cx('skeleton__box', 'skeleton__box--first')} />\n            <div className={cx('skeleton__box', 'skeleton__box--secondary')} />\n        </>\n    );\n});\n\nexport default EntitySidebarSkeleton;\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"ActivateAssetForm__form___HKgGm\",\"field--source\":\"ActivateAssetForm__field--source___hMcol\",\"field--rate\":\"ActivateAssetForm__field--rate___ywvbW\",\"fadeIn\":\"ActivateAssetForm__fadeIn___GWXSP\",\"blinking\":\"ActivateAssetForm__blinking___Avt_A\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"TimelineAutoSizer__wrap___Ql2Q0\",\"fadeIn\":\"TimelineAutoSizer__fadeIn___hpRi4\",\"blinking\":\"TimelineAutoSizer__blinking___COGGL\"};","import { FetchTransportOrdersPageQueryT, TransportOrderT } from './models';\nimport { PageResponseT, PaginationStateT } from 'common/utils/pagination/models';\n\nexport const FETCH_ORDERS_PAGE_REQUEST = 'common/transport-orders/FETCH_ORDERS_PAGE_REQUEST';\nexport const FETCH_ORDERS_PAGE_REQUEST_BEGIN = 'common/transport-orders/FETCH_ORDERS_PAGE_REQUEST_BEGIN';\nexport const FETCH_ORDERS_PAGE_REQUEST_ERROR = 'common/transport-orders/FETCH_ORDERS_PAGE_REQUEST_ERROR';\nexport const FETCH_ORDERS_PAGE_REQUEST_SUCCESS = 'common/transport-orders/FETCH_ORDERS_PAGE_REQUEST_SUCCESS';\n\nexport const RESET_ORDERS = 'common/transport-orders/RESET_ORDERS';\n\nexport type TransportOrdersStateT = Record<PartnerIdT, CompanyTransportOrdersStateT>;\n\nexport type CompanyTransportOrdersStateT = PaginationStateT<TransportOrderT, FetchTransportOrdersPageQueryT>;\n\nexport type FetchTransportOrdersPageActionT = {\n    type: typeof FETCH_ORDERS_PAGE_REQUEST;\n    pageNumber: PageNumberT;\n    query: FetchTransportOrdersPageQueryT;\n    companyId: CompanyIdT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchTransportOrdersPageBeginActionT = {\n    type: typeof FETCH_ORDERS_PAGE_REQUEST_BEGIN;\n    pageNumber: PageNumberT;\n    query: FetchTransportOrdersPageQueryT;\n    companyId: CompanyIdT;\n};\n\nexport type FetchTransportOrdersPageSuccessActionT = {\n    type: typeof FETCH_ORDERS_PAGE_REQUEST_SUCCESS;\n    query: FetchTransportOrdersPageQueryT;\n    pageNumber: PageNumberT;\n    pageResponse: PageResponseT<TransportOrderT> | null;\n    companyId: CompanyIdT;\n};\n\nexport type FetchTransportOrdersPageErrorActionT = {\n    type: typeof FETCH_ORDERS_PAGE_REQUEST_ERROR;\n    query: FetchTransportOrdersPageQueryT;\n    pageNumber: PageNumberT;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type ResetTransportOrdersActionT = {\n    type: typeof RESET_ORDERS;\n    companyId: CompanyIdT;\n    mutationListOptions: MutationListOptionsT;\n};\n\nexport type TransportOrdersActionT =\n    | FetchTransportOrdersPageActionT\n    | FetchTransportOrdersPageBeginActionT\n    | FetchTransportOrdersPageSuccessActionT\n    | FetchTransportOrdersPageErrorActionT\n    | ResetTransportOrdersActionT;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    strokeColor: StyleGuideColorsEnum;\n    size: number;\n};\n\nconst TuneIcon: React.FC<PropsT> = (props) => {\n    const { size, className, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\" className={className}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M3.25 4.75h7.5v1.5h-7.5v-1.5zm3 4.5h-3v1.5h3v1.5h1.5v-4.5h-1.5v1.5zm4.5 3h-1.5v4.5h1.5v-1.5h6v-1.5h-6v-1.5zm-7.5 1.5h4.5v1.5h-4.5v-1.5zm6-4.5h7.5v1.5h-7.5v-1.5zm4.5-6h-1.5v4.5h1.5v-1.5h3v-1.5h-3v-1.5z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nTuneIcon.displayName = 'TuneIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default TuneIcon;\n","import { TrailersDictT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport const TRAILERS_DICT_REQUEST = 'common/trailers-dict/TRAILERS_DICT_REQUEST';\nexport const TRAILERS_DICT_REQUEST_BEGIN = 'common/trailers-dict/TRAILERS_DICT_REQUEST_BEGIN';\nexport const TRAILERS_DICT_REQUEST_SUCCESS = 'common/trailers-dict/TRAILERS_DICT_REQUEST_SUCCESS';\nexport const TRAILERS_DICT_REQUEST_ERROR = 'common/trailers-dict/TRAILERS_DICT_REQUEST_ERROR';\n\nexport type FetchTrailersDictActionT = {\n    type: typeof TRAILERS_DICT_REQUEST;\n};\n\nexport type FetchTrailersDictBeginActionT = {\n    type: typeof TRAILERS_DICT_REQUEST_BEGIN;\n};\n\nexport type FetchTrailersDictSuccessActionT = {\n    type: typeof TRAILERS_DICT_REQUEST_SUCCESS;\n    trailersDict: TrailersDictT;\n};\n\nexport type FetchTrailersDictErrorActionT = {\n    type: typeof TRAILERS_DICT_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type TrailersDictActionT =\n    | FetchTrailersDictActionT\n    | FetchTrailersDictBeginActionT\n    | FetchTrailersDictSuccessActionT\n    | FetchTrailersDictErrorActionT;\n\nexport type TrailersDictStateT = {\n    trailersDict: TrailersDictT | null;\n    trailersDictRequest: RequestStatusT;\n};\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { SystemSettingsT } from 'broker-admin/store/price-settings/system-settings/models';\n\nconst getInitialValues = (systemSettings: SystemSettingsT | null | undefined): FormValuesT => {\n    return {\n        [FieldsEnum.transportationOrderHasNoDriverAlertTime]:\n            systemSettings?.TRANSPORTATION_ORDER_HAS_NO_DRIVER_ALERT_TIME || '',\n        [FieldsEnum.assignDriverLimitAlert]: systemSettings?.RUN_OUT_OF_TIME_TO_ASSIGN_DRIVER_LIMIT || '',\n        [FieldsEnum.allowedGAPToBeDelayed]: systemSettings?.ALLOWED_GAP_TO_BE_DELAYED || '',\n        [FieldsEnum.deleteNotificationsOlderDays]: systemSettings?.DELETE_NOTIFICATIONS_OLDER_DAYS || '',\n        [FieldsEnum.docExpiresSoonAlert]: systemSettings?.DOC_EXPIRES_SOON_ALERT || '',\n        [FieldsEnum.assignAssetLimitAlert]: systemSettings?.RUN_OUT_OF_TIME_TO_ASSIGN_ASSETS_LIMIT || '',\n        [FieldsEnum.transportationOrderHasNoAssetsAlertTime]:\n            systemSettings?.TRANSPORTATION_ORDER_HAS_NO_ASSETS_ALERT_TIME || '',\n        [FieldsEnum.radiusAroundWaypointM]: systemSettings?.RADIUS_AROUND_WAYPOINT_METERS || '',\n        [FieldsEnum.timeLimitToCancelOrderHours]: systemSettings?.TIME_LIMIT_TO_CANCEL_ORDER_HOURS || '',\n        [FieldsEnum.timeLimitToCancelTransportationOrderHours]:\n            systemSettings?.TIME_LIMIT_TO_CANCEL_TRANSPORTATION_ORDER_HOURS || '',\n    };\n};\n\nexport default getInitialValues;\n","import * as React from 'react';\nimport PillLabel, { colorCodingPillLabelTheme, PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { ApiTruckRateModeT, TruckRateModeEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    rateMode: ApiTruckRateModeT;\n};\n\nconst RateModeStatusPill: React.FC<PropsT> = React.memo((props) => {\n    const { rateMode, ...restProps } = props;\n\n    const { t } = useTranslation();\n\n    let label: React.ReactNode;\n    let pillTheme: PillLabelThemeEnum = colorCodingPillLabelTheme.normal;\n\n    if (rateMode === TruckRateModeEnum.brutto) {\n        pillTheme = PillLabelThemeEnum.light30;\n        label = t('assignment.rate-mode.brutto');\n    }\n\n    if (rateMode === TruckRateModeEnum.netto) {\n        pillTheme = PillLabelThemeEnum.brandAccent30;\n        label = t('assignment.rate-mode.netto');\n    }\n\n    return (\n        <PillLabel isNoWrap isSymmetrical {...restProps} theme={pillTheme}>\n            {label}\n        </PillLabel>\n    );\n});\n\nexport default RateModeStatusPill;\n","export enum FieldsEnum {\n    reason = 'reason',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.reason]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","// extracted by mini-css-extract-plugin\nexport default {\"tabs\":\"TrailersPageLayout__tabs___rMOr8\",\"tabs--isPartner\":\"TrailersPageLayout__tabs--isPartner___rDDD7\",\"tabs__tab\":\"TrailersPageLayout__tabs__tab___L1bM_\",\"tabs__tab-content\":\"TrailersPageLayout__tabs__tab-content___S0Mdt\",\"fadeIn\":\"TrailersPageLayout__fadeIn___wIrRO\",\"blinking\":\"TrailersPageLayout__blinking___zRc0i\"};","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const brokerTeamDetailsRefreshChannel = new ViewEventChannel<{\n    teamId: TeamIdT;\n}>();\n","import { PartnerTypeEnum } from 'common/utils/api/models';\n\nexport enum QueryKeysEnum {\n    partnersPage = 'partners-page',\n    partnersFilters = 'partners-filters',\n    partnersSort = 'partners-sort',\n}\n\nexport enum QueryFiltersKeysEnum {\n    withUpdates = 'withUpdates',\n    keyAccountManagerId = 'keyAccountManagerId',\n    keyAccountManagerName = 'keyAccountManagerName',\n    dispatcherId = 'dispatcherId',\n    dispatcherName = 'dispatcherName',\n    countryCode = 'countryCode',\n    partnerType = 'partnerType',\n    searchText = 'searchText',\n}\n\nexport enum PartnersSortEnum {\n    name = 'name',\n}\n\nexport type QueryFiltersT = Partial<{\n    [QueryFiltersKeysEnum.withUpdates]: QueryParam.BooleanT;\n    [QueryFiltersKeysEnum.keyAccountManagerId]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.keyAccountManagerName]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.dispatcherId]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.dispatcherName]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.countryCode]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.partnerType]: PartnerTypeEnum;\n    [QueryFiltersKeysEnum.searchText]: QueryParam.StringT;\n}>;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"ExcludeCountriesMapWidget__wrap___lSJbe\",\"countries\":\"ExcludeCountriesMapWidget__countries___hTa6D\",\"country\":\"ExcludeCountriesMapWidget__country___mQqTO\",\"countries-overlay\":\"ExcludeCountriesMapWidget__countries-overlay___pfgyl\",\"option\":\"ExcludeCountriesMapWidget__option___CpsV1\",\"fadeIn\":\"ExcludeCountriesMapWidget__fadeIn___HbzMW\",\"blinking\":\"ExcludeCountriesMapWidget__blinking___Uw6Xk\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './PartnerName.scss';\n\nconst cx = classNames.bind(styles);\n\nconst PartnerName: React.FC<{ partnerName: string }> = ({ partnerName }) => (\n    <span className={cx('partner-name')}>{partnerName}</span>\n);\n\nexport default PartnerName;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillOpacity?: number;\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n    className?: string;\n};\n\nconst ChartIcon: React.FC<PropsT> = (props) => {\n    const { strokeColor, fillColor, fillOpacity, ...rest } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" {...rest}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={fillColor}\n                    fillOpacity={fillOpacity || 1}\n                    d=\"M8.5 4.75h3v10.5h-3V4.75zM4 9.25h3v6H4v-6zm12 6h-3v-4.5h3v4.5z\"\n                />\n                <path\n                    fill={strokeColor}\n                    d=\"M13 9.25v-6H7v4.5H2.5v9h15v-7.5H13zm-4.5-4.5h3v10.5h-3V4.75zM4 9.25h3v6H4v-6zm12 6h-3v-4.5h3v4.5z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nChartIcon.displayName = 'ChartIcon';\n\nconst storyProps: PropsT = {\n    strokeColor: StyleGuideColorsEnum.brandDark,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n};\n\nexport { storyProps };\nexport default ChartIcon;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './UpdatedPartnerShipperContractCard.scss';\nimport { Trans } from 'react-i18next';\nimport ContractName from 'broker-admin/components/notification-cards/entities/ContractName/ContractName';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    contractName: string;\n};\n\nconst UpdatedPartnerContractCard: React.FC<PropsT> = React.memo((props) => {\n    const { contractName } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"notifications.partner-shipper-contract-updated\"\n                components={{\n                    contractName: <ContractName contractName={contractName} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default UpdatedPartnerContractCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"TransportationOrderDeclinedCard__inner___SIF08\",\"transport-order-number\":\"TransportationOrderDeclinedCard__transport-order-number___blQER\",\"order-number\":\"TransportationOrderDeclinedCard__order-number___aI4Xj\",\"carrier-name\":\"TransportationOrderDeclinedCard__carrier-name___owuEZ\",\"fadeIn\":\"TransportationOrderDeclinedCard__fadeIn___QKiEs\",\"blinking\":\"TransportationOrderDeclinedCard__blinking___iJDKG\"};","import React from 'react';\nimport {\n    NotificationLinkFactoryT,\n    NotificationRendererT,\n} from 'common/components/notifications/NotificationsBarContent/models';\nimport { NotificationTextRendererT } from 'common/components/toasts/NotificationToastsManager/models';\n\nexport type NotificationSidebarContextT = {\n    renderNotification: NotificationRendererT | null;\n    getNotificationLink: NotificationLinkFactoryT | null;\n    renderNotificationText: NotificationTextRendererT | null;\n};\n\nconst NotificationSidebarContext = React.createContext<NotificationSidebarContextT>({\n    renderNotification: null,\n    getNotificationLink: null,\n    renderNotificationText: null,\n});\n\nexport default NotificationSidebarContext;\n","import * as React from 'react';\nimport { useMemo } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './TourDetailsCard.scss';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport Card from 'design-system/components/Card/Card';\nimport { useTranslation } from 'react-i18next';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport CarrierIcon from 'common/icons/CarrierIcon';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport TruckIcon from 'common/icons/TruckIcon';\nimport AssetLinkFormatter from 'design-system/components/InfoTable/formatters/AssetLinkFormatter/AssetLinkFormatter';\nimport AssetLabelFormatter from 'design-system/components/InfoTable/formatters/AssetLabelFormatter/AssetLabelFormatter';\nimport TrailerIcon from 'common/icons/TrailerIcon';\nimport { BrokerOrderDetailsT } from 'broker-admin/store/broker-order-details/models';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport {\n    ApiBrokerOrderWaypointT,\n    ApiStopTypeT,\n    ApiTransportationOrderFullT,\n    ApiTourAttachedPaperTypeT,\n    PartnerTypeEnum,\n    StopTypeEnum,\n} from 'common/utils/api/models';\nimport { logWarning } from 'common/utils/logger';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport DriverIcon from 'common/icons/DriverIcon';\nimport TeamDrive2Icon from 'common/icons/TeamDrive2Icon';\nimport DocIcon from 'common/icons/DocIcon';\nimport TeamDrivePill from 'common/components/status-pill/TeamDrivePill/TeamDrivePill';\nimport TourStatusPill from 'common/components/status-pill/TourStatusPill/TourStatusPill';\nimport RadarIcon from 'common/icons/RadarIcon';\nimport WarningTextFormatter from 'design-system/components/InfoTable/formatters/WarningTextFormatter/WarningTextFormatter';\nimport { checkIsInDateRange, formatDate, formatTimeInterval } from 'common/utils/time';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport NumberIcon from 'common/icons/NumberIcon';\nimport LocationLabel, { LocationLabelAddressFormatT } from 'common/components/LocationLabel/LocationLabel';\nimport SimpleDriverFormatter from 'design-system/components/InfoTable/formatters/SimpleDriverFormatter/SimpleDriverFormatter';\nimport CancelSpotRequestFooter from 'broker-admin/components/status-machine/footers/ChangeTourStatusFooter/CancelSpotRequestFooter/CancelSpotRequestFooter';\nimport StartAssignmentFooter from 'broker-admin/components/status-machine/footers/ChangeTourStatusFooter/StartAssignmentFooter/StartAssignmentFooter';\nimport StartEditTimeWindowsFooter from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderDetails/TourDetailsCard/footers/StartEditTimeWindowsFooter/StartEditTimeWindowsFooter';\nimport AsyncSpotRequestDetailsLinkFormatter from 'broker-admin/components/InfoTable/formatters/AsyncSpotRequestDetailsLinkFormatter/AsyncSpotRequestDetailsLinkFormatter';\nimport { BrokerSidebarsTypeEnum } from 'broker-admin/layouts/SideBars/constants';\nimport AsyncSpotRequestDetailsStatusFormatter from 'broker-admin/components/InfoTable/formatters/AsyncSpotRequestDetailsStatusFormatter/AsyncSpotRequestDetailsStatusFormatter';\nimport DriverWrongCheckPointPill from 'common/components/pills/DriverWrongCheckPointPill/DriverWrongCheckPointPill';\nimport TrailerPickUpIcon from 'common/icons/TrailerPickUpIcon';\nimport LinkDropOffIcon from 'common/icons/LinkDropOffIcon';\nimport TruckPickUpIcon from 'common/icons/TruckPickUpIcon';\nimport TruckDropOffIcon from 'common/icons/TruckDropOffIcon';\nimport TrailerDropOffIcon from 'common/icons/TrailerDropOffIcon';\nimport { TFunction } from 'i18next';\nimport LinkPickUpIcon from 'common/icons/LinkPickUpIcon';\nimport { findTourActualTransportOrders } from 'broker-admin/store/broker-order-details/utils/find-actual-transport-order';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport TimeWindowIcon from 'common/icons/TimeWindowIcon';\nimport AttentionTextFormatter from 'design-system/components/InfoTable/formatters/AttentionTextFormatter/AttentionTextFormatter';\nimport ChangeTourStatusFooter from 'broker-admin/components/status-machine/footers/ChangeTourStatusFooter/ChangeTourStatusFooter/ChangeTourStatusFooter';\nimport { checkBrokerAppointmentStatus } from 'common/utils/broker-appointment';\nimport { useSelector } from 'react-redux';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport BoatIcon from 'common/icons/BoatIcon';\nimport DetailsOrPapersTabs from 'common/components/entity-details/DetailsOrPapersTabs/DetailsOrPapersTabs';\nimport { TourPapersTabContent } from 'common/components/entity-details/TourPapersTabContent/TourPapersTabContent';\nimport { TourPaperAttachPapersDropdownControl } from 'common/components/papers/TourPaperAttachPapersDropdownControl/TourPaperAttachPapersDropdownControl';\nimport { selectTourChangesById } from 'common/store/papers-edit/selectors';\nimport { useRenderPapersTabCount } from 'common/components/papers/hooks/use-render-papers-tab-count';\nimport { hideLoaderStatusSet } from 'broker-admin/components/status-machine/footers/ChangeTourStatusFooter/constants';\nimport ContactBadgeIcon from 'common/icons/ContactBadgeIcon';\nimport TransparentTriggerWithTooltip from 'design-system/components/ExpandTrigger/TransparentTriggerWithTooltip';\n\nexport type PropsT = {\n    tourNumber: number;\n    tour: BrokerOrderDetailsT['tours'][number] | null;\n    transportationOrders: Array<ApiTransportationOrderFullT> | null;\n    className?: string;\n    onStartAssignment: (tourId: TourIdT) => void;\n    onStartSendToSpot: (tourId: TourIdT) => void;\n    onStartEditTimeWindows: (tourId: TourIdT) => void;\n    isDisableAnyActions: boolean;\n    keyboardShortcut?: string;\n    onManageShipment: (shipmentId: ShipmentIdT) => void;\n    onAttachTourPaper: (tourId: TourIdT, paperType: ApiTourAttachedPaperTypeT, comment?: string) => void;\n    getTourPaperThumbnailUrl: (tourId: TourIdT | null, paperId: PaperIdT | null) => string | null;\n    onOpenGalleryTourPaper: (tourId: TourIdT, paperId: PaperIdT) => void;\n    onDownloadTourPaper: (tourId: TourIdT, paperId: PaperIdT) => void;\n    onDeleteTourPaper: (tourId: TourIdT, paperId: PaperIdT) => void;\n    onOpenUserDetails: (params: {\n        userId: UserIdT | null;\n        partnerType?: PartnerTypeEnum;\n        partnerId?: PartnerIdT;\n    }) => void;\n    onStartEditStopContact: (waypoint: ApiBrokerOrderWaypointT) => void;\n};\n\nconst cx = classNames.bind(styles);\n\nconst contactEditableWaypointTypeSet = new Set<ApiStopTypeT>([StopTypeEnum.pickupDeliveryShipment]);\n\nconst detailedWaypointStopTypeSet = new Set<ApiStopTypeT>([StopTypeEnum.pickupDeliveryShipment]);\n\nconst renderWaypointName = (t: TFunction, waypoint: ApiBrokerOrderWaypointT | null | undefined) => {\n    if (!waypoint) {\n        return null;\n    }\n\n    switch (waypoint.type) {\n        case StopTypeEnum.pickupTrailer: {\n            return t('common:waypoint-details.by-type.hook-trailer');\n        }\n        case StopTypeEnum.pickupTruck: {\n            return t('common:waypoint-details.by-type.initial-truck');\n        }\n        case StopTypeEnum.pickupRoadTrain: {\n            return t('common:waypoint-details.by-type.initial-truck-and-trailer');\n        }\n        case StopTypeEnum.dropTrailer: {\n            return t('common:waypoint-details.by-type.drop-trailer');\n        }\n        case StopTypeEnum.dropTruck: {\n            return t('common:waypoint-details.by-type.drop-truck');\n        }\n        case StopTypeEnum.dropRoadTrain: {\n            return t('common:waypoint-details.by-type.drop-truck-and-trailer');\n        }\n        case StopTypeEnum.ferryOnboard: {\n            return t('common:waypoint-details.columns.ferry-onboard');\n        }\n        case StopTypeEnum.ferryDisembark: {\n            return t('common:waypoint-details.columns.ferry-disembark');\n        }\n        case StopTypeEnum.driveThrough: {\n            return t('common:waypoint-details.by-type.drive-through', {\n                number: (waypoint?.index || 0) + 1,\n            });\n        }\n        case StopTypeEnum.dropAndHook:\n        case StopTypeEnum.pickupDeliveryShipment:\n        default: {\n            return t('common:waypoint-details.by-type.pickup-delivery', {\n                number: (waypoint?.index || 0) + 1,\n            });\n        }\n    }\n};\n\nconst renderWaypointStopIcon = (waypoint: ApiBrokerOrderWaypointT | null | undefined) => {\n    if (!waypoint) {\n        return null;\n    }\n\n    switch (waypoint.type) {\n        case StopTypeEnum.pickupTrailer: {\n            return (\n                <TrailerPickUpIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                    fillColor={StyleGuideColorsEnum.light}\n                />\n            );\n        }\n        case StopTypeEnum.pickupTruck: {\n            return (\n                <TruckPickUpIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                    fillColor={StyleGuideColorsEnum.light}\n                />\n            );\n        }\n        case StopTypeEnum.pickupRoadTrain: {\n            return <LinkPickUpIcon strokeColor={StyleGuideColorsEnum.gray} />;\n        }\n        case StopTypeEnum.dropTrailer: {\n            return (\n                <TrailerDropOffIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                    fillColor={StyleGuideColorsEnum.light}\n                />\n            );\n        }\n        case StopTypeEnum.dropTruck: {\n            return (\n                <TruckDropOffIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                    fillColor={StyleGuideColorsEnum.light}\n                />\n            );\n        }\n        case StopTypeEnum.dropRoadTrain: {\n            return <LinkDropOffIcon strokeColor={StyleGuideColorsEnum.gray} />;\n        }\n        case StopTypeEnum.ferryOnboard:\n        case StopTypeEnum.ferryDisembark: {\n            return (\n                <BoatIcon\n                    size={DEFAULT_ICON_SIZE}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                    fillColor={StyleGuideColorsEnum.light}\n                />\n            );\n        }\n        case StopTypeEnum.driveThrough: {\n            return <NumberIcon number={(waypoint?.index || 0) + 1} fillColor={StyleGuideColorsEnum.gray} />;\n        }\n        case StopTypeEnum.dropAndHook: {\n            return <NumberIcon number={(waypoint?.index || 0) + 1} fillColor={StyleGuideColorsEnum.gray} />;\n        }\n        case StopTypeEnum.pickupDeliveryShipment:\n        default: {\n            return <NumberIcon number={(waypoint?.index || 0) + 1} fillColor={StyleGuideColorsEnum.charcoal} />;\n        }\n    }\n};\n\nconst renderWaypointLocationAddressFormat = (\n    waypoint: ApiBrokerOrderWaypointT | null | undefined,\n): LocationLabelAddressFormatT => {\n    if (!waypoint) {\n        return 's1_s2_zip_city_country';\n    }\n\n    switch (waypoint.type) {\n        case StopTypeEnum.pickupTrailer:\n        case StopTypeEnum.pickupTruck:\n        case StopTypeEnum.pickupRoadTrain: {\n            return 'pickup_asset_s1_s2_zip_city_country';\n        }\n        case StopTypeEnum.dropTrailer:\n        case StopTypeEnum.dropTruck:\n        case StopTypeEnum.dropRoadTrain: {\n            return 'dropoff_asset_s1_s2_zip_city_country';\n        }\n        default: {\n            return 's1_s2_zip_city_country';\n        }\n    }\n};\n\nconst TourDetailsCard: React.FC<PropsT> = React.memo((props) => {\n    const {\n        tourNumber,\n        tour,\n        transportationOrders,\n        className,\n        onStartAssignment,\n        onStartEditTimeWindows,\n        onStartSendToSpot,\n        isDisableAnyActions,\n        keyboardShortcut,\n        onManageShipment,\n        onAttachTourPaper,\n        getTourPaperThumbnailUrl,\n        onOpenGalleryTourPaper,\n        onDownloadTourPaper,\n        onDeleteTourPaper,\n        onOpenUserDetails,\n        onStartEditStopContact,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const permissions = useSelector(selectPermissions);\n\n    const tourId = tour?.id || null;\n    const tourChanges = useSelector(selectTourChangesById(tourId));\n\n    const { truckTransportOrder, trailerTransportOrder, carrierTransportOrder } = findTourActualTransportOrders(\n        transportationOrders,\n        tourId,\n    );\n\n    const truck = truckTransportOrder?.truck || null;\n    const trailer = trailerTransportOrder?.trailer || null;\n    const carrier = carrierTransportOrder?.carrier || null;\n    const truckCarrier = truckTransportOrder?.carrier || null;\n    const trailerCarrier = trailerTransportOrder?.carrier || null;\n    const waypoints = tour?.waypoints || [];\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const handleOpenTrailerDetails = () => {\n        if (!trailer?.id || !trailerCarrier?.id) {\n            logWarning('failed to open trailer details, empty firstTrailer');\n            return;\n        }\n\n        openLeftSidebar(\n            {\n                type: CommonSidebarsTypeEnum.trailerDetails,\n                trailerId: trailer.id,\n                partnerId: trailerCarrier.id,\n            },\n            {\n                isForceShowBackAction: true,\n            },\n        );\n    };\n\n    const handleOpenSpotRequestDetails = (spotRequestId: SpotRequestIdT | null) => {\n        if (!spotRequestId) {\n            logWarning('failed to open spot details, empty spotRequestId');\n            return;\n        }\n\n        openLeftSidebar(\n            {\n                type: BrokerSidebarsTypeEnum.spotRequestDetails,\n                id: spotRequestId,\n            },\n            {\n                isForceShowBackAction: true,\n            },\n        );\n    };\n\n    const handleOpenTruckDetails = () => {\n        if (!truck?.id || !truckCarrier?.id) {\n            logWarning('failed to open trailer details, empty firstTruck');\n            return;\n        }\n\n        openLeftSidebar(\n            {\n                type: CommonSidebarsTypeEnum.truckDetails,\n                truckId: truck.id,\n                partnerId: truckCarrier.id,\n            },\n            {\n                isForceShowBackAction: true,\n            },\n        );\n    };\n\n    const idDetailRows: Array<InfoTableRowT> = [\n        {\n            icon: null,\n            name: t('broker-order-details.tour-details.columns.tour-number'),\n            value: tour?.number,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.carrier-not-assigned'), isBold: true },\n        },\n    ];\n\n    const spotDetails: Array<InfoTableRowT | null> = [\n        tour?.spotId\n            ? {\n                  icon: <RadarIcon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.slate} />,\n                  name: t('broker-order-details.tour-details.columns.spot-request'),\n                  value: (\n                      <AsyncSpotRequestDetailsLinkFormatter\n                          spotRequestId={tour?.spotId || null}\n                          onOpenSpotRequestDetails={handleOpenSpotRequestDetails}\n                      />\n                  ),\n                  rightNode: <AsyncSpotRequestDetailsStatusFormatter spotRequestId={tour?.spotId || null} />,\n                  valueMods: {\n                      emptyPlaceholder: t('common:info-table.placeholders.carrier-not-assigned'),\n                      isBold: true,\n                  },\n              }\n            : null,\n    ];\n\n    const brokerWindowAppointmentWarning = (\n        <Tooltip\n            position={TooltipPositionEnum.topLeft}\n            theme={TooltipThemeEnum.black}\n            tooltipNode={\n                <TooltipContent theme={TooltipContentThemeEnum.black} width={150}>\n                    {t('broker-orders.details.broke-window-appointment-warning')}\n                </TooltipContent>\n            }\n        >\n            {(isShow, childrenClassName) => (\n                <TimeWindowIcon\n                    className={childrenClassName}\n                    fillColor={StyleGuideColorsEnum.transparent}\n                    strokeColor={StyleGuideColorsEnum.orange}\n                />\n            )}\n        </Tooltip>\n    );\n\n    const getWaypointDetailRows = (waypoint: ApiBrokerOrderWaypointT): Array<InfoTableRowT | null> => {\n        const driverRows: Array<InfoTableRowT> = [\n            {\n                icon: null,\n                name: t('common:waypoint-details.columns.driver-arriver-at'),\n                value: waypoint?.driverArrivedTimeStamp ? (\n                    <WarningTextFormatter\n                        isActive={checkIsInDateRange(\n                            waypoint?.correctedDateTimeFrom || waypoint?.originalDateTimeFrom,\n                            waypoint?.correctedDateTimeTo || waypoint?.originalDateTimeTo,\n                            waypoint?.driverArrivedTimeStamp,\n                        )}\n                    >\n                        {formatDate('DD MMM YYYY, HH:mm', waypoint?.driverArrivedTimeStamp)}\n                    </WarningTextFormatter>\n                ) : null,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.driver-not-arrived'), isBold: true },\n                testSelector: 'contact-company-name',\n                hasBottomBorder: true,\n                rightNode: waypoint?.driverArrivedFalse ? <DriverWrongCheckPointPill /> : null,\n            },\n            {\n                icon: null,\n                name: t('common:waypoint-details.columns.driver-left-at'),\n                value: waypoint?.driverLeftTimeStamp ? (\n                    <WarningTextFormatter\n                        isActive={checkIsInDateRange(\n                            waypoint?.correctedDateTimeFrom || waypoint?.originalDateTimeFrom,\n                            waypoint?.correctedDateTimeTo || waypoint?.originalDateTimeTo,\n                            waypoint?.driverLeftTimeStamp,\n                        )}\n                    >\n                        {formatDate('DD MMM YYYY, HH:mm', waypoint?.driverLeftTimeStamp)}\n                    </WarningTextFormatter>\n                ) : null,\n                valueMods: {\n                    emptyPlaceholder: waypoint?.driverArrivedTimeStamp\n                        ? t('common:info-table.placeholders.driver-not-leave')\n                        : t('common:info-table.placeholders.driver-not-arrived'),\n                    isBold: true,\n                },\n                testSelector: 'contact-company-name',\n                rightNode: waypoint?.driverLeftFalse ? <DriverWrongCheckPointPill /> : null,\n            },\n        ];\n\n        const isDetailedWaypoint = detailedWaypointStopTypeSet.has(waypoint?.type);\n        if (!isDetailedWaypoint) {\n            return [\n                {\n                    icon: renderWaypointStopIcon(waypoint),\n                    name: renderWaypointName(t, waypoint),\n                    value: (\n                        <LocationLabel\n                            format={renderWaypointLocationAddressFormat(waypoint)}\n                            location={waypoint?.address}\n                        />\n                    ),\n                    valueMods: {\n                        emptyPlaceholder: t('common:info-table.placeholders.carrier-not-assigned'),\n                        isBold: true,\n                    },\n                    rows: [\n                        {\n                            icon: null,\n                            name: t('common:waypoint-details.columns.time-slot'),\n                            value: formatTimeInterval(\n                                waypoint?.correctedDateTimeFrom || waypoint?.originalDateTimeFrom,\n                                waypoint?.correctedDateTimeTo || waypoint?.originalDateTimeTo,\n                            ),\n                            valueMods: {\n                                emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                isBold: true,\n                            },\n                            hasBottomBorder: true,\n                        },\n                        ...driverRows,\n                    ],\n                },\n            ];\n        }\n\n        const brokerAppointmentStatus = checkBrokerAppointmentStatus({\n            shouldBrokerWindowAppointment: waypoint?.appointmentByBroker,\n            originalDateTimeFrom: waypoint?.originalDateTimeFrom,\n            originalDateTimeTo: waypoint?.originalDateTimeTo,\n            correctedDateTimeFrom: waypoint?.correctedDateTimeFrom,\n            correctedDateTimeTo: waypoint?.correctedDateTimeTo,\n        });\n\n        return [\n            {\n                icon: renderWaypointStopIcon(waypoint),\n                name: renderWaypointName(t, waypoint),\n                value: (\n                    <LocationLabel\n                        format={renderWaypointLocationAddressFormat(waypoint)}\n                        location={waypoint?.address}\n                    />\n                ),\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.carrier-not-assigned'), isBold: true },\n                rightNode: contactEditableWaypointTypeSet.has(waypoint.type) ? (\n                    <TransparentTriggerWithTooltip\n                        tooltipContent={t('broker-order-details.tooltips.edit-contacts')}\n                        onClick={() => onStartEditStopContact(waypoint)}\n                        transparentTriggerProps={{\n                            spaces: 'xs',\n                            leftIcon: (\n                                <ContactBadgeIcon\n                                    fillColor={StyleGuideColorsEnum.light}\n                                    strokeColor={StyleGuideColorsEnum.slate}\n                                />\n                            ),\n                        }}\n                    />\n                ) : null,\n                rightNodeMods: { withoutPadding: true },\n                rows: [\n                    ...(brokerAppointmentStatus.shouldShowCorrectedDateTime\n                        ? [\n                              {\n                                  icon: null,\n                                  name: t('common:waypoint-details.columns.original-time-slot'),\n                                  value: formatTimeInterval(\n                                      waypoint?.originalDateTimeFrom,\n                                      waypoint?.originalDateTimeTo,\n                                  ),\n                                  valueMods: {\n                                      emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                      isBold: true,\n                                  },\n                                  hasBottomBorder: true,\n                              },\n                              {\n                                  icon: brokerAppointmentStatus.shouldBrokerWindowAppointment\n                                      ? brokerWindowAppointmentWarning\n                                      : null,\n                                  name: (\n                                      <AttentionTextFormatter\n                                          isActive={brokerAppointmentStatus.shouldBrokerWindowAppointment}\n                                      >\n                                          {t('common:waypoint-details.columns.corrected-time-slot')}\n                                      </AttentionTextFormatter>\n                                  ),\n                                  value: (\n                                      <AttentionTextFormatter\n                                          isActive={brokerAppointmentStatus.shouldBrokerWindowAppointment}\n                                      >\n                                          {formatTimeInterval(\n                                              waypoint?.correctedDateTimeFrom,\n                                              waypoint?.correctedDateTimeTo,\n                                          )}\n                                      </AttentionTextFormatter>\n                                  ),\n                                  valueMods: {\n                                      emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                      isBold: true,\n                                  },\n                                  hasBottomBorder: true,\n                              },\n                          ]\n                        : [\n                              {\n                                  icon: brokerAppointmentStatus.shouldBrokerWindowAppointment\n                                      ? brokerWindowAppointmentWarning\n                                      : null,\n                                  name: (\n                                      <AttentionTextFormatter\n                                          isActive={brokerAppointmentStatus.shouldBrokerWindowAppointment}\n                                      >\n                                          {t('common:waypoint-details.columns.time-slot')}\n                                      </AttentionTextFormatter>\n                                  ),\n                                  value: (\n                                      <AttentionTextFormatter\n                                          isActive={brokerAppointmentStatus.shouldBrokerWindowAppointment}\n                                      >\n                                          {formatTimeInterval(\n                                              waypoint?.correctedDateTimeFrom || waypoint?.originalDateTimeFrom,\n                                              waypoint?.correctedDateTimeTo || waypoint?.originalDateTimeTo,\n                                          )}\n                                      </AttentionTextFormatter>\n                                  ),\n                                  valueMods: {\n                                      emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                      isBold: true,\n                                  },\n                                  hasBottomBorder: true,\n                              },\n                          ]),\n                    ...driverRows,\n                    {\n                        icon: null,\n                        name: t('common:waypoint-details.columns.company-name'),\n                        value: waypoint?.contact?.companyName,\n                        valueMods: {\n                            emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                            isBold: true,\n                        },\n                        testSelector: 'contact-company-name',\n                        hasBottomBorder: true,\n                    },\n                    {\n                        icon: null,\n                        name: t('common:waypoint-details.columns.contact-name'),\n                        value: waypoint?.contact?.fullName,\n                        valueMods: {\n                            emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                            isBold: true,\n                        },\n                        hasBottomBorder: true,\n                    },\n                    {\n                        icon: null,\n                        name: t('common:waypoint-details.columns.contact-phone'),\n                        value: waypoint?.contact?.phone,\n                        valueMods: {\n                            emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                            isBold: true,\n                        },\n                        hasBottomBorder: true,\n                    },\n                    {\n                        icon: null,\n                        name: t('common:waypoint-details.columns.contact-email'),\n                        value: waypoint?.contact?.email,\n                        valueMods: {\n                            emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                            isBold: true,\n                        },\n                        hasBottomBorder: true,\n                    },\n                    {\n                        icon: null,\n                        name: t('common:waypoint-details.columns.comments'),\n                        value: waypoint?.contact?.comment,\n                        valueMods: {\n                            emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                            isBold: true,\n                        },\n                    },\n                ],\n            },\n        ];\n    };\n\n    const teamDrivers = useMemo(() => {\n        const shouldShowTeamDrivers = !!tour?.teamDrive;\n        if (!shouldShowTeamDrivers) {\n            return [];\n        }\n\n        const drivers = carrierTransportOrder?.drivers?.slice(1) || [];\n        return drivers?.length ? drivers : [null];\n    }, [tour, carrierTransportOrder?.drivers]);\n\n    const carrierDetails: Array<InfoTableRowT | null> = [\n        {\n            icon: <CarrierIcon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.gray} />,\n            name: t('broker-order-details.tour-details.columns.carrier'),\n            value: carrier?.id ? (\n                <Link\n                    to={urlFactory.partnerDetails(PartnerTypeEnum.carrier, carrier.id)}\n                    className={cx('link')}\n                    theme={LinkThemeEnum.boldBrandDark}\n                >\n                    {carrier?.name}\n                </Link>\n            ) : null,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.carrier-not-assigned'), isBold: true },\n            rows: [\n                {\n                    icon: (\n                        <TruckIcon\n                            size={DEFAULT_ICON_SIZE}\n                            strokeColor={StyleGuideColorsEnum.gray}\n                            fillColor={StyleGuideColorsEnum.light}\n                        />\n                    ),\n                    name: t('broker-order-details.tour-details.columns.truck'),\n                    value: truck ? (\n                        <AssetLinkFormatter assetId={truck?.id} onOpenAssetDetails={handleOpenTruckDetails}>\n                            <AssetLabelFormatter model={truck?.dictTruckInfo?.model} plateNumber={truck?.plateNumber} />\n                        </AssetLinkFormatter>\n                    ) : null,\n                    valueMods: {\n                        emptyPlaceholder: t('common:info-table.placeholders.truck-not-assigned'),\n                        isBold: true,\n                    },\n                },\n                {\n                    icon: (\n                        <TrailerIcon\n                            size={DEFAULT_ICON_SIZE}\n                            strokeColor={StyleGuideColorsEnum.gray}\n                            fillColor={StyleGuideColorsEnum.light}\n                        />\n                    ),\n                    name: t('broker-order-details.tour-details.columns.trailer'),\n                    value: trailer ? (\n                        <AssetLinkFormatter assetId={trailer?.id} onOpenAssetDetails={handleOpenTrailerDetails}>\n                            <AssetLabelFormatter\n                                model={trailer?.dictTrailerInfo?.model}\n                                plateNumber={trailer?.plateNumber}\n                            />\n                        </AssetLinkFormatter>\n                    ) : null,\n                    valueMods: {\n                        emptyPlaceholder: t('common:info-table.placeholders.trailer-not-assigned'),\n                        isBold: true,\n                    },\n                },\n                {\n                    icon: <DriverIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.gray} />,\n                    name: t('broker-order-details.tour-details.columns.driver'),\n                    value: carrierTransportOrder?.drivers?.[0] ? (\n                        <SimpleDriverFormatter driver={carrierTransportOrder?.drivers?.[0]} />\n                    ) : null,\n                    valueMods: {\n                        emptyPlaceholder: t('common:info-table.placeholders.driver-not-assigned'),\n                        isBold: true,\n                    },\n                },\n                ...teamDrivers.map((driver) => {\n                    return {\n                        icon: <TeamDrive2Icon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.gray} />,\n                        name: t('broker-order-details.tour-details.columns.team-driver'),\n                        value: driver ? <SimpleDriverFormatter driver={driver} /> : null,\n                        valueMods: {\n                            emptyPlaceholder: t('common:info-table.placeholders.driver-not-assigned'),\n                            isBold: true,\n                        },\n                    };\n                }),\n                {\n                    icon: <DocIcon strokeColor={StyleGuideColorsEnum.gray} />,\n                    name: t('broker-order-details.tour-details.columns.transport-order'),\n                    value: carrierTransportOrder?.number,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-created'), isBold: true },\n                },\n            ],\n        },\n    ];\n\n    const getCardFooterNode = (): React.ReactNode => {\n        const waypoints = tour?.waypoints || [];\n\n        const isNeedAppointmentTimeWindow = waypoints?.some((waypoint) => {\n            return waypoint.appointmentByBroker;\n        });\n\n        const assignAssetsUnavailableReason = tour?.assignAssetsUnavailableReason;\n\n        const sendToSpotUnavailableReason = tour?.sendToSpotUnavailableReason;\n\n        const isNeedAssignment =\n            !isNeedAppointmentTimeWindow && (!assignAssetsUnavailableReason || !sendToSpotUnavailableReason);\n\n        const hasSpotRequests = !!tour?.spotId;\n\n        if (isNeedAssignment && hasSpotRequests) {\n            return <CancelSpotRequestFooter tour={tour} isDisableAnyActions={isDisableAnyActions} />;\n        }\n\n        if (isNeedAssignment && !hasSpotRequests) {\n            return (\n                <StartAssignmentFooter\n                    tour={tour}\n                    canAssignTour={permissions.canAssignmentBrokerOrder}\n                    assignAssetsUnavailableReason={assignAssetsUnavailableReason || null}\n                    onStartAssignment={() => {\n                        if (tourId) {\n                            onStartAssignment(tourId);\n                        } else {\n                            logWarning('Empty tour id!');\n                        }\n                    }}\n                    sendToSpotUnavailableReason={sendToSpotUnavailableReason || null}\n                    onStartSendToSpot={() => {\n                        if (tourId) {\n                            onStartSendToSpot(tourId);\n                        } else {\n                            logWarning('Empty tour id!');\n                        }\n                    }}\n                    isDisableAnyActions={isDisableAnyActions}\n                />\n            );\n        }\n\n        if (isNeedAppointmentTimeWindow) {\n            return (\n                <StartEditTimeWindowsFooter\n                    tour={tour}\n                    onStartEditTimeWindows={() => {\n                        if (tourId) {\n                            onStartEditTimeWindows(tourId);\n                        } else {\n                            logWarning('Empty tour id!');\n                        }\n                    }}\n                    isDisableAnyActions={isDisableAnyActions}\n                />\n            );\n        }\n\n        if (permissions.canChangeTourStatusOnBrokerOrder) {\n            return (\n                <ChangeTourStatusFooter\n                    tourId={tourId}\n                    tour={tour}\n                    isShowLoading={!!tour && !hideLoaderStatusSet.has(tour?.calculatedStatus)}\n                    onManageShipment={onManageShipment}\n                />\n            );\n        }\n\n        return null;\n    };\n\n    const handleAttachNew = React.useCallback(\n        (paperType: ApiTourAttachedPaperTypeT) => {\n            if (!tourId) {\n                logWarning('failed to attach paper, empty tourId');\n                return;\n            }\n\n            onAttachTourPaper(tourId, paperType);\n        },\n        [tourId, onAttachTourPaper],\n    );\n\n    const papersBadge = useRenderPapersTabCount({\n        optimisticPapers: tourChanges?.optimisticPapers,\n        entityPapers: tour?.attachedPapers,\n    });\n\n    return (\n        <>\n            <Card\n                titleNode={t('broker-order-details.tour-details.title', {\n                    number: tourNumber,\n                })}\n                rightNode={\n                    <>\n                        {tour?.teamDrive && <TeamDrivePill isSymmetrical />}\n                        <TourStatusPill isSymmetrical status={tour?.calculatedStatus} />\n                    </>\n                }\n                className={className}\n                hasHeaderBottomBorder\n                footerNode={getCardFooterNode()}\n                keyboardShortcut={keyboardShortcut}\n            >\n                <div>\n                    <DetailsOrPapersTabs\n                        papersBadge={papersBadge}\n                        papersTabRightNode={<TourPaperAttachPapersDropdownControl onAttachNew={handleAttachNew} />}\n                    >\n                        <div className={cx('content')}>\n                            <InfoTable shouldRenderIcons rows={idDetailRows} className={cx('table', 'table--id')} />\n                            <InfoTable\n                                shouldRenderIcons\n                                rows={carrierDetails}\n                                className={cx('table', 'table--carrier')}\n                            />\n                            <InfoTable shouldRenderIcons rows={spotDetails} className={cx('table', 'table--spot')} />\n                            {waypoints.map((waypoint, index) => {\n                                return (\n                                    <InfoTable\n                                        key={`${index}-${waypoint.id}`}\n                                        shouldRenderIcons\n                                        rows={getWaypointDetailRows(waypoint)}\n                                        className={cx('table', 'table--waypoint')}\n                                    />\n                                );\n                            })}\n                        </div>\n                        <TourPapersTabContent\n                            attachedPapers={tour?.attachedPapers || null}\n                            tourId={tourId}\n                            onOpenUserDetails={onOpenUserDetails}\n                            getTourPaperThumbnailUrl={getTourPaperThumbnailUrl}\n                            onOpenGalleryTourPaper={onOpenGalleryTourPaper}\n                            onDownloadTourPaper={onDownloadTourPaper}\n                            onDeleteTourPaper={onDeleteTourPaper}\n                        />\n                    </DetailsOrPapersTabs>\n                </div>\n            </Card>\n        </>\n    );\n});\n\nexport default TourDetailsCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"logo\":\"Logo__logo___cP71o\",\"logo--isSmall\":\"Logo__logo--isSmall___A6rNW\",\"fadeIn\":\"Logo__fadeIn___rIg_w\",\"blinking\":\"Logo__blinking___c4fHU\"};","import * as React from 'react';\nimport { TrailerStatusEnum, ApiTrailerStatusT } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    status: ApiTrailerStatusT | null | undefined;\n};\n\nexport const TRAILER_STATUS_T_MAP: Record<ApiTrailerStatusT, string> = {\n    [TrailerStatusEnum.free]: 'common:trailer-status.FREE',\n    [TrailerStatusEnum.inTransit]: 'common:trailer-status.IN_TRANSIT',\n    [TrailerStatusEnum.unavailable]: 'common:trailer-status.UNAVAILABLE',\n    [TrailerStatusEnum.archived]: 'common:trailer-status.ARCHIVED',\n};\n\nconst TrailerStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return null;\n    }\n\n    return t(TRAILER_STATUS_T_MAP[status]);\n});\n\nexport default TrailerStatus;\n","import { ApiLocationT } from 'common/utils/api/models';\n\n// in address can be an object like `{ city: \"\", country: \"\" }`\nexport const checkIsFilledPartnerAddress = (address: ApiLocationT | null | undefined): boolean => {\n    if (!address) {\n        return false;\n    }\n\n    return Object.values(address).some((value) => Boolean(value));\n};\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './RFQStatusPill.scss';\n\nimport { useTranslation } from 'react-i18next';\nimport PillLabel, { colorCodingPillLabelTheme, PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport RFQSourcePill from 'common/components/pills/RFQSourcePill/RFQSourcePill';\nimport { ApiRFQBrokerSourceT, ApiRFQStatusT, RFQStatusEnum } from 'common/utils/api/models';\nimport { RFQ_STATUS_T_MAP } from 'common/components/status/RFQStatus/RFQStatus';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    status?: ApiRFQStatusT | null;\n    isSymmetrical?: boolean;\n    source?: ApiRFQBrokerSourceT | null;\n};\n\nconst PILL_THEME_BY_STATUS: Record<ApiRFQStatusT, PillLabelThemeEnum> = {\n    [RFQStatusEnum.open]: colorCodingPillLabelTheme.normal,\n    [RFQStatusEnum.expireSoon]: colorCodingPillLabelTheme.attention,\n    [RFQStatusEnum.expired]: colorCodingPillLabelTheme.normal,\n    [RFQStatusEnum.completed]: colorCodingPillLabelTheme.normal,\n    [RFQStatusEnum.closed]: colorCodingPillLabelTheme.normal,\n};\n\nconst RFQStatusPill: React.FC<PropsT> = React.memo((props) => {\n    const { status, isSymmetrical, source } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return null;\n    }\n\n    const theme = PILL_THEME_BY_STATUS[status] || PillLabelThemeEnum.charcoal;\n\n    return (\n        <>\n            <PillLabel\n                isNoWrap\n                isSymmetrical={isSymmetrical}\n                theme={theme}\n                testSelector=\"rfq-status\"\n                className={cx('status')}\n            >\n                {t(RFQ_STATUS_T_MAP[status])}\n            </PillLabel>\n            {source && <RFQSourcePill source={source} isSymmetrical={isSymmetrical} />}\n        </>\n    );\n});\n\nexport default RFQStatusPill;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { RevokeShipperContractConfirmationDataT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport Textarea from 'common/components/Textarea/Textarea';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport { useFormik } from 'formik';\nimport { prepareData } from './prepare-reject-data';\nimport { logWarning } from 'common/utils/logger';\nimport classNames from 'classnames/bind';\nimport styles from './RevokeShipperContractConfirmation.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    data: RevokeShipperContractConfirmationDataT | null;\n    requestStatus: RequestStatusT;\n    onClose: () => void;\n    onCancel: () => void;\n    onConfirm: (reason: string, data: RevokeShipperContractConfirmationDataT | null) => void;\n};\n\nconst TEST_SELECTOR = 'revoke-shipper-contract-confirmation';\n\nconst RevokeShipperContractConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, requestStatus, onClose, onCancel, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues();\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const preparedData = prepareData(values);\n\n            if (!data) {\n                logWarning('failed to reject document, empty data');\n                return;\n            }\n\n            onConfirm(preparedData.reason, data);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <form onSubmit={formik.handleSubmit}>\n                    <ModalDialog\n                        width={DEFAULT_MODAL_DIALOG_WIDTH}\n                        testSelector={TEST_SELECTOR}\n                        actions={[\n                            {\n                                children: t('common:error-modal.actions.keep'),\n                                theme: ButtonThemeEnum.secondary,\n                                testSelector: `${TEST_SELECTOR}_cancel`,\n                                isDisabled: requestStatus.loading,\n                                onClick: onCancel,\n                            },\n                            {\n                                children: t('common:error-modal.actions.revoke'),\n                                theme: ButtonThemeEnum.danger,\n                                isDisabled: requestStatus.loading,\n                                isLoading: requestStatus.loading,\n                                testSelector: `${TEST_SELECTOR}_ok`,\n                                type: 'submit',\n                            },\n                        ]}\n                        icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                        title={t('common:shipper-contract-details.revoke-shipper-contract-confirmation.title', {\n                            name: data.shipperContractName,\n                        })}\n                        message={t('common:shipper-contract-details.revoke-shipper-contract-confirmation.description')}\n                        body={\n                            <>\n                                <FormikField\n                                    name={FieldsEnum.reason}\n                                    error={formik.errors[FieldsEnum.reason]}\n                                    meta={formik.getFieldMeta(FieldsEnum.reason)}\n                                    label={t(\n                                        'common:shipper-contract-details.revoke-shipper-contract-confirmation.fields.reason.label',\n                                    )}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                >\n                                    {(props) => (\n                                        <Textarea\n                                            className={cx('textarea')}\n                                            name={FieldsEnum.reason}\n                                            value={formik.values[FieldsEnum.reason]}\n                                            placeholder={t(\n                                                'common:shipper-contract-details.revoke-shipper-contract-confirmation.fields.reason.placeholder',\n                                            )}\n                                            onChange={props.onChange}\n                                            hasWarning={props.hasWarning}\n                                            hasError={props.hasError}\n                                        />\n                                    )}\n                                </FormikField>\n                            </>\n                        }\n                    />\n                </form>\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default RevokeShipperContractConfirmation;\n","import * as React from 'react';\nimport styles from './WarningFilterOptionsDropdown.scss';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport NotificationLabel, {\n    NotificationLabelThemeEnum,\n    NotificationPropsT,\n} from 'common/components/notifications/NotificationLabel/NotificationLabel';\nimport DropdownMultipleInput from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInput';\nimport { useTranslation } from 'react-i18next';\nimport { SpecialOptionEnum } from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport classNames from 'classnames/bind';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport ArrowsIcon from 'common/icons/ArrowsIcon';\n\nconst cx = classNames.bind(styles);\n\nexport enum SpecialValueEnum {\n    all = 'all',\n}\n\nexport type WarningFilterOptionT<Value> = {\n    id: Value;\n    label: React.ReactNode;\n    notificationProps?: NotificationPropsT | null;\n    testSelector?: string;\n};\n\nexport type PropsT<ValueT> = {\n    className?: string;\n    value: Array<ValueT | SpecialValueEnum> | null | undefined;\n    onSelect: (selectedIds: Array<ValueT>) => void;\n    options: Array<WarningFilterOptionT<ValueT> | SpecialOptionEnum>;\n    testSelector?: string;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    allLabelKey?: string;\n};\n\nconst WarningFilterOptionsDropdown = <Value extends string>(props: PropsT<Value>) => {\n    const { className, value, onSelect, options, testSelector, overlayPosition, allLabelKey } = props;\n\n    const { t } = useTranslation();\n\n    const isAllOptionsSelected = React.useMemo(() => {\n        const valueSet = new Set(value || []);\n\n        return (\n            !!options?.length &&\n            options?.every((option) => {\n                if (option === SpecialOptionEnum.separator) {\n                    return true;\n                }\n\n                return option?.id && valueSet.has(option.id);\n            })\n        );\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [value]);\n\n    const selectedOptionValues = React.useMemo((): Array<Value | SpecialValueEnum> => {\n        const result = [...(value || [])];\n\n        if (isAllOptionsSelected) {\n            result.unshift(SpecialValueEnum.all);\n        }\n\n        return result;\n    }, [value, isAllOptionsSelected]);\n\n    const allOption = React.useMemo((): WarningFilterOptionT<SpecialValueEnum> => {\n        const summaryCount = options.reduce<number>((acc, option) => {\n            if (option === SpecialOptionEnum.separator) {\n                return acc;\n            }\n\n            return acc + (option.notificationProps?.count || 0);\n        }, 0);\n\n        return {\n            id: SpecialValueEnum.all,\n            label: t(allLabelKey || 'common:table.warning-filter.all'),\n            notificationProps: summaryCount\n                ? {\n                      count: summaryCount,\n                      theme: NotificationLabelThemeEnum.red,\n                  }\n                : null,\n            testSelector: 'all',\n        };\n    }, [options, t, allLabelKey]);\n\n    const allOptions = React.useMemo((): Array<WarningFilterOptionT<Value | SpecialValueEnum> | SpecialOptionEnum> => {\n        return [allOption, ...options];\n    }, [allOption, options]);\n\n    const handleChange = React.useCallback(\n        (values: Array<Value | SpecialValueEnum>) => {\n            const isSelectedAll = values?.includes(SpecialValueEnum.all);\n            if (isSelectedAll && !isAllOptionsSelected) {\n                const newAllValues = options.reduce<Array<Value>>((acc, option) => {\n                    if (option === SpecialOptionEnum.separator) {\n                        return acc;\n                    }\n\n                    acc.push(option.id);\n\n                    return acc;\n                }, []);\n\n                onSelect(newAllValues);\n                return;\n            }\n\n            if (!isSelectedAll && isAllOptionsSelected) {\n                onSelect([]);\n                return;\n            }\n\n            const newValues = values.reduce<Array<Value>>((acc, value) => {\n                if (value === SpecialValueEnum.all) {\n                    return acc;\n                }\n\n                acc.push(value);\n\n                return acc;\n            }, []);\n            onSelect(newValues);\n        },\n        [onSelect, options, isAllOptionsSelected],\n    );\n\n    const summarySelectedNotificationProps = React.useMemo((): NotificationPropsT | null => {\n        const summaryCount = options.reduce<number>((acc, option) => {\n            if (option === SpecialOptionEnum.separator) {\n                return acc;\n            }\n\n            if (!option?.id) {\n                return acc;\n            }\n\n            return acc + (option.notificationProps?.count || 0);\n        }, 0);\n\n        if (!summaryCount) {\n            return null;\n        }\n\n        return {\n            count: summaryCount,\n            theme: NotificationLabelThemeEnum.red,\n        };\n    }, [options]);\n\n    return (\n        <DropdownMultipleInput<WarningFilterOptionT<Value | SpecialValueEnum>, Value | SpecialValueEnum>\n            className={className}\n            selectedValues={selectedOptionValues}\n            options={allOptions}\n            onSelect={handleChange}\n            renderOption={(option) => {\n                if (!option) {\n                    return null;\n                }\n\n                return (\n                    <DropdownControlOptionLabel\n                        withoutPaddings\n                        icon={\n                            option.notificationProps?.count ? <NotificationLabel {...option.notificationProps} /> : null\n                        }\n                        label={option.label}\n                    />\n                );\n            }}\n            renderTrigger={(props) => {\n                let icon;\n\n                if (summarySelectedNotificationProps) {\n                    icon = <NotificationLabel {...summarySelectedNotificationProps} />;\n                }\n\n                return (\n                    <TransparentTrigger\n                        testSelector={`${testSelector}_filters`}\n                        onClick={props.onClick}\n                        isPressed={props.isPressed}\n                        label={t('common:table.warning-filter.trigger')}\n                        leftIcon={icon}\n                        rightIcon={<ArrowsIcon />}\n                        reflectionTheme={ReflectionThemeEnum.light}\n                    />\n                );\n            }}\n            overlayClassName={cx('overlay')}\n            getOptionValue={(option) => option?.id}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n        />\n    );\n};\n\nexport default WarningFilterOptionsDropdown;\n","import { DriversSortEnum, QueryFiltersKeysEnum, QueryFiltersT } from './query-models';\nimport { FetchCompanyDriversPageQueryT } from 'common/store/drivers/models';\nimport { TabEnum } from './constants';\nimport { UserStatusEnum } from 'common/utils/api/models';\nimport difference from 'lodash/difference';\nimport { PageSortT, SortDirectionEnum } from 'common/utils/query';\n\nconst allDriverStatuses = Object.values(UserStatusEnum);\n\nconst formatSort = (sort: PageSortT<DriversSortEnum> | null): FetchCompanyDriversPageQueryT['sortBy'] | undefined => {\n    switch (sort?.value) {\n        case DriversSortEnum.name: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'NAME_ASC';\n            }\n            return 'NAME_DESC';\n        }\n        case DriversSortEnum.surname: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'SURNAME_ASC';\n            }\n            return 'SURNAME_DESC';\n        }\n        case DriversSortEnum.createdDate: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'CREATED_DATE_ASC';\n            }\n            return 'CREATED_DATE_DESC';\n        }\n        default: {\n            return undefined;\n        }\n    }\n};\n\nconst prepareFetchPageQuery = (\n    queryFilters: QueryFiltersT,\n    activeTab: TabEnum | null | undefined,\n    sort: PageSortT<DriversSortEnum> | null,\n): FetchCompanyDriversPageQueryT => {\n    let statuses: UserStatusEnum[] = [];\n\n    if (activeTab === TabEnum.active) {\n        statuses = difference(allDriverStatuses, [UserStatusEnum.archived]);\n    } else {\n        statuses = [UserStatusEnum.archived];\n    }\n\n    return {\n        name: queryFilters[QueryFiltersKeysEnum.searchText] || queryFilters[QueryFiltersKeysEnum.name] || undefined,\n        statuses,\n        sortBy: formatSort(sort),\n    };\n};\n\nexport { prepareFetchPageQuery };\n","import { StateT } from 'broker-admin/store/models';\nimport { BrokerOrderDetailsStateT, initialBrokerOrderDetailsState } from './slice';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport const selectBrokerOrderDetails =\n    (id: BrokerOrderIdT | null | undefined) =>\n    (state: StateT): BrokerOrderDetailsStateT['details'] =>\n        state.brokerOrderDetails[id as string]?.details || initialBrokerOrderDetailsState.details;\n\nexport const selectBrokerOrderDetailsRequestStatus =\n    (id?: BrokerOrderIdT | null | undefined) =>\n    (state: StateT): RequestStatusT =>\n        state.brokerOrderDetails[id as string]?.requestStatus || initialBrokerOrderDetailsState.requestStatus;\n","import { useContext } from 'react';\nimport CommonUrlFactoryContext, { CommonUrlFactoryContextT } from 'common/contexts/common-url-factory-context';\n\nconst useCommonUrlFactoryContext = (): CommonUrlFactoryContextT => {\n    return useContext(CommonUrlFactoryContext);\n};\n\nexport default useCommonUrlFactoryContext;\n","import React from 'react';\nimport noop from 'lodash/noop';\n\ntype HighlightedEntityContextT = {\n    highlightedEntityId: EntityIdT | null;\n    setHighlightedEntityId: (id: EntityIdT | null) => void;\n};\n\nconst HighlightedEntityContext = React.createContext<HighlightedEntityContextT>({\n    highlightedEntityId: null,\n    setHighlightedEntityId: noop,\n});\n\nconst HighlightedEntityContextProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n    const [highlightedEntityId, setHighlightedEntityId] = React.useState<EntityIdT | null>(null);\n\n    const value = React.useMemo(\n        (): HighlightedEntityContextT => ({\n            highlightedEntityId,\n            setHighlightedEntityId,\n        }),\n        [highlightedEntityId],\n    );\n\n    return <HighlightedEntityContext.Provider value={value}>{children}</HighlightedEntityContext.Provider>;\n};\n\nexport { HighlightedEntityContextProvider };\nexport default HighlightedEntityContext;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './UploadFooterContent.scss';\nimport { DictDocumentT } from 'common/store/documents-dict/models';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useSelector } from 'react-redux';\nimport { selectUploadCompanyDocumentsRequest } from 'common/store/documents/selectors';\nimport { useTranslation } from 'react-i18next';\nimport { logWarning } from 'common/utils/logger';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    onUploadDocument: (dictDocumentId: DictDocumentFakeIdT) => void;\n    dictDocument: DictDocumentT | null;\n    partnerId: PartnerIdT | null;\n};\n\nconst UploadFooterContent: React.FC<PropsT> = React.memo((props) => {\n    const { dictDocument, onUploadDocument, partnerId } = props;\n\n    const { t } = useTranslation();\n    const uploadRequest = useSelector(selectUploadCompanyDocumentsRequest(partnerId));\n\n    const handleUploadDocument = () => {\n        if (!dictDocument) {\n            logWarning('failed to upload document, empty dictDocument');\n            return;\n        }\n\n        onUploadDocument(dictDocument.id);\n    };\n\n    return (\n        <div className={cx('content')}>\n            <Button\n                theme={ButtonThemeEnum.primary}\n                className={cx('action')}\n                onClick={handleUploadDocument}\n                isLoading={uploadRequest.loading}\n            >\n                {t('common:documents.table.actions.upload')}\n            </Button>\n        </div>\n    );\n});\n\nexport default UploadFooterContent;\n","import React from 'react';\nimport { concatTestSelectors } from 'common/utils/test-selectors';\n\nconst useTestSelector = (...testSelectors: Array<string | null | undefined>): string => {\n    return React.useMemo(() => {\n        return concatTestSelectors(testSelectors);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [...testSelectors]);\n};\n\nexport default useTestSelector;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    strokeColor: StyleGuideColorsEnum;\n    fillColor: StyleGuideColorsEnum;\n    size: number;\n};\n\nconst UnavailableTrailerIcon: React.FC<PropsT> = (props) => {\n    const { size, className, fillColor, strokeColor } = props;\n\n    return (\n        <svg\n            xmlns=\"http://www.w3.org/2000/svg\"\n            xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n            width={size}\n            height={size}\n            viewBox=\"0 0 20 20\"\n            className={className}\n        >\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path\n                    fill={fillColor}\n                    d=\"M17 3v8l-1 1v2h-2l-3-2V8c0-1-1-2-2-2h-.25v-.5c0-.96-.362-1.837-.957-2.501L17 3z\"\n                />\n                <path\n                    fill={strokeColor}\n                    d=\"M11.182 13.462c1.45 0 2.625 1.197 2.625 2.671 0 1.474-1.175 2.67-2.625 2.67a2.602 2.602 0 01-1.913-.84c.428-.112.9-.462 1.243-.876.189.138.42.22.67.22.634 0 1.152-.529 1.152-1.174A1.163 1.163 0 0011 14.978v-1.51c.06-.003.122-.006.183-.006zM3 1.75c2.07 0 3.75 1.68 3.75 3.75V7h.75C8.325 7 9 7.675 9 8.5V16c0 .825-.675 1.5-1.5 1.5h-9c-.825 0-1.5-.675-1.5-1.5V8.5c0-.825.675-1.5 1.5-1.5h.75V5.5C-.75 3.43.93 1.75 3 1.75zm14.448 13.711v.783h-2.93a2.969 2.969 0 00-.027-.783h2.957zM18 2v10.235h-.844v3.004h-2.7l-.13-.084c-.442-1.314-1.669-2.265-3.109-2.265-.073 0-.146.002-.218.007V11H16V4H8.494a5.872 5.872 0 00-1.12-2H18zm-1.585 10.234h-.41v1.662h.41v-1.662zM3 10.75c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5 1.5-.675 1.5-1.5-.675-1.5-1.5-1.5zm0-7.575A2.327 2.327 0 00.675 5.5V7h4.65V5.5A2.327 2.327 0 003 3.175z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nUnavailableTrailerIcon.displayName = 'UnavailableTrailerIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.light,\n    strokeColor: StyleGuideColorsEnum.slate,\n};\n\nexport { storyProps };\nexport default UnavailableTrailerIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"checkbox\":\"UserSignUpForm__checkbox___qYs4e\",\"terms\":\"UserSignUpForm__terms___PTAPQ\",\"submit\":\"UserSignUpForm__submit___O6LRC\",\"footer-links\":\"UserSignUpForm__footer-links___d9E_7\",\"footer-links__link\":\"UserSignUpForm__footer-links__link___VqyhT\",\"fadeIn\":\"UserSignUpForm__fadeIn___jDZZz\",\"blinking\":\"UserSignUpForm__blinking___XkxB6\"};","// extracted by mini-css-extract-plugin\nexport default {\"overlay\":\"MapTooltipMenu__overlay___RmwXd\",\"option\":\"MapTooltipMenu__option___tlwET\",\"option--isSelected\":\"MapTooltipMenu__option--isSelected___c79ff\",\"option--isDisabled\":\"MapTooltipMenu__option--isDisabled___Z4AOh\",\"fadeIn\":\"MapTooltipMenu__fadeIn___sXhMJ\",\"blinking\":\"MapTooltipMenu__blinking___PZmpu\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './TenderCalculator.scss';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport Widget from 'common/components/Widget/Widget';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector, useDispatch } from 'react-redux';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport XLSIcon from 'common/icons/XLSIcon';\nimport InfoIcon from 'common/icons/InfoIcon';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport FileIcon from 'common/icons/FileIcon';\nimport StartIcon from 'common/icons/StartIcon';\nimport StopIcon from 'common/icons/StopIcon';\nimport TodoListIcon from 'common/icons/TodoListIcon';\nimport DownloadIcon from 'common/icons/DownloadIcon';\nimport { formatDate, MS_IN_SEC } from 'common/utils/time';\nimport { pickFile } from 'common/utils/pick-file';\nimport useDocumentVisibilityEffect from 'common/utils/hooks/useDocumentVisibilityEffect';\nimport useOnlyChangesEffect from 'common/utils/hooks/useOnlyChangesEffect';\nimport {\n    downloadTenderXLSFile,\n    importTenderXLSFile,\n    fetchTenderStatus,\n    deleteTender,\n} from 'broker-admin/store/tenders/actions';\nimport {\n    selectTendersLastStatus,\n    selectTendersDownloadRequestStatus,\n    selectTendersImportRequestStatus,\n    selectTendersDeleteRequestStatus,\n    selectTendersFetchStatusRequestStatus,\n} from 'broker-admin/store/tenders/selectors';\nimport { logWarning } from 'common/utils/logger';\nimport usePollingCallback from 'common/utils/hooks/usePollingCallback';\nimport {\n    checkIsTranziitApiRequestError,\n    TranziitApiRequestErrorSubTypeEnum,\n} from 'common/utils/api/tranziit/errors/tranziit-api-errors';\nimport WarningIcon from 'common/icons/WarningIcon';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst POLLING_INTERVAL_MS = 3 * MS_IN_SEC;\n\nconst TenderCalculator: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n\n    const lastStatus = useSelector(selectTendersLastStatus);\n    const fetchLastStatusRequestStatus = useSelector(selectTendersFetchStatusRequestStatus);\n    const downloadRequestStatus = useSelector(selectTendersDownloadRequestStatus);\n    const importRequestStatus = useSelector(selectTendersImportRequestStatus);\n    const deleteRequestStatus = useSelector(selectTendersDeleteRequestStatus);\n\n    const isJobNotFoundError =\n        fetchLastStatusRequestStatus.error &&\n        checkIsTranziitApiRequestError(fetchLastStatusRequestStatus.error) &&\n        fetchLastStatusRequestStatus.error?.subType === TranziitApiRequestErrorSubTypeEnum.tenderJobNotFound;\n\n    // check boolean value for detect processing status\n    const isSuccessCompleteTender = lastStatus && lastStatus.status === 'DONE';\n    const isFailedCompleteTender = lastStatus && lastStatus.status === 'FAILED';\n    // check boolean value for detect processing status\n    const inProgressTender = lastStatus && lastStatus.status === 'PROCESSING';\n\n    const [shouldPollTenderStatus, setShouldPollTenderStatus] = React.useState(false);\n\n    useDocumentVisibilityEffect((isVisible) => {\n        setShouldPollTenderStatus(isVisible);\n    });\n\n    useOnlyChangesEffect(() => {\n        setShouldPollTenderStatus(!isSuccessCompleteTender && !isFailedCompleteTender && !isJobNotFoundError);\n    }, [isSuccessCompleteTender, isFailedCompleteTender, isJobNotFoundError]);\n\n    const handlePollTenderStatus = React.useCallback(() => {\n        dispatch(fetchTenderStatus({}));\n    }, [dispatch]);\n\n    usePollingCallback({\n        callback: handlePollTenderStatus,\n        intervalMs: POLLING_INTERVAL_MS,\n        isEnabled: shouldPollTenderStatus,\n    });\n\n    React.useEffect(() => {\n        dispatch(fetchTenderStatus({}));\n    }, [dispatch]);\n\n    const isAvailableResetPickedXLSFileRef = React.useRef<boolean>(false);\n    const [pickedXLSFile, setPickedXLSFile] = React.useState<File | null>(null);\n\n    React.useEffect(() => {\n        if (!isAvailableResetPickedXLSFileRef.current) {\n            return;\n        }\n\n        isAvailableResetPickedXLSFileRef.current = false;\n        setPickedXLSFile(null);\n    }, [lastStatus?.status]);\n\n    const handlePickXLSFile = React.useCallback(() => {\n        pickFile(\n            '.csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel',\n            (file) => {\n                setPickedXLSFile(file);\n            },\n        );\n    }, []);\n\n    const handleClearPickedXLSFile = React.useCallback(() => {\n        setPickedXLSFile(null);\n    }, []);\n\n    const handleDownloadTenderXLSFile = React.useCallback(() => {\n        dispatch(downloadTenderXLSFile({}));\n    }, [dispatch]);\n\n    const handleStartCalculation = React.useCallback(() => {\n        if (!pickedXLSFile) {\n            logWarning('Failed to start calculation: no file picked');\n            return;\n        }\n\n        dispatch(importTenderXLSFile({ file: pickedXLSFile }));\n        isAvailableResetPickedXLSFileRef.current = true;\n    }, [dispatch, pickedXLSFile]);\n\n    const handleStopCalculation = React.useCallback(() => {\n        dispatch(deleteTender({}));\n    }, [dispatch]);\n\n    let actionNode: React.ReactNode;\n    let statusNode: React.ReactNode;\n\n    if (pickedXLSFile) {\n        actionNode = (\n            <Button\n                theme={ButtonThemeEnum.primary}\n                type=\"button\"\n                onClick={handleStartCalculation}\n                leftIcon={<StartIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />}\n                isFullWidth\n                isLoading={importRequestStatus.loading}\n                isDisabled={importRequestStatus.loading}\n            >\n                {t('tender-calculator.actions.start-calculation')}\n            </Button>\n        );\n\n        statusNode = (\n            <Alert\n                icon={<FileIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />}\n                size={AlertSizeEnum.small}\n                theme={AlertThemeEnum.slate}\n                className={cx('alert')}\n                onClose={handleClearPickedXLSFile}\n            >\n                <div className={cx('alert__inner-limited-text')}>{pickedXLSFile.name}</div>\n            </Alert>\n        );\n    } else if (lastStatus && inProgressTender) {\n        actionNode = (\n            <Button\n                theme={ButtonThemeEnum.danger}\n                type=\"button\"\n                onClick={handleStopCalculation}\n                leftIcon={<StopIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />}\n                isFullWidth\n                isLoading={deleteRequestStatus.loading}\n                isDisabled={deleteRequestStatus.loading}\n            >\n                {t('tender-calculator.actions.stop-calculation')}\n            </Button>\n        );\n\n        const calculated = lastStatus?.doneRowsCount || 0;\n        const total = lastStatus?.totalRowsCount || 0;\n        const progress = total > 0 ? Math.round((calculated / total) * 100) : 0;\n\n        statusNode = (\n            <Alert.Container>\n                <Alert\n                    icon={<TodoListIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />}\n                    size={AlertSizeEnum.small}\n                    theme={AlertThemeEnum.slate}\n                    className={cx('alert')}\n                >\n                    {t('tender-calculator.messages.in-progress', { calculated, total })}\n                </Alert>\n                <Alert.ProgressBar isShow progress={progress} />\n            </Alert.Container>\n        );\n    } else if (lastStatus && isSuccessCompleteTender) {\n        actionNode = (\n            <Button\n                theme={ButtonThemeEnum.primary}\n                type=\"button\"\n                onClick={handlePickXLSFile}\n                leftIcon={<XLSIcon fillColor={StyleGuideColorsEnum.white} />}\n                isFullWidth\n            >\n                {t('tender-calculator.actions.upload-new-xls-file')}\n            </Button>\n        );\n\n        statusNode = (\n            <Alert\n                icon={<DownloadIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />}\n                size={AlertSizeEnum.small}\n                theme={AlertThemeEnum.slate}\n                className={cx('alert')}\n                controlsNode={\n                    <div className={cx('alert__controls')}>\n                        <Button\n                            theme={ButtonThemeEnum.transparentLightAlpha}\n                            type=\"button\"\n                            onClick={handleDownloadTenderXLSFile}\n                            noPaddings\n                            isLoading={downloadRequestStatus.loading}\n                            isDisabled={downloadRequestStatus.loading}\n                            className={cx('alert__control')}\n                            contentClassName={cx('alert__control-inner')}\n                        >\n                            {t('tender-calculator.actions.download')}\n                        </Button>\n                    </div>\n                }\n            >\n                <div className={cx('alert__inner-limited-text')}>\n                    {t('tender-calculator.messages.success', {\n                        fileName: lastStatus.fileName,\n                        count: lastStatus.doneRowsCount,\n                        date: formatDate('DD MMM YYYY', lastStatus.timestamp),\n                    })}\n                </div>\n            </Alert>\n        );\n    } else if (lastStatus && isFailedCompleteTender) {\n        actionNode = (\n            <Button\n                theme={ButtonThemeEnum.primary}\n                type=\"button\"\n                onClick={handlePickXLSFile}\n                leftIcon={<XLSIcon fillColor={StyleGuideColorsEnum.white} />}\n                isFullWidth\n            >\n                {t('tender-calculator.actions.upload-new-xls-file')}\n            </Button>\n        );\n\n        statusNode = (\n            <Alert\n                icon={<WarningIcon fillColor={StyleGuideColorsEnum.white} />}\n                size={AlertSizeEnum.small}\n                theme={AlertThemeEnum.tomatoRed}\n                className={cx('alert')}\n            >\n                {t('tender-calculator.messages.failed')}\n            </Alert>\n        );\n    } else {\n        actionNode = (\n            <Button\n                theme={ButtonThemeEnum.primary}\n                type=\"button\"\n                onClick={handlePickXLSFile}\n                leftIcon={<XLSIcon fillColor={StyleGuideColorsEnum.white} />}\n                isFullWidth\n            >\n                {t('tender-calculator.actions.upload-xls-file')}\n            </Button>\n        );\n\n        statusNode = (\n            <Alert\n                icon={<InfoIcon fillColor={StyleGuideColorsEnum.light} />}\n                size={AlertSizeEnum.small}\n                theme={AlertThemeEnum.gray}\n                className={cx('alert')}\n            >\n                {t('tender-calculator.messages.guide')}\n            </Alert>\n        );\n    }\n\n    const isShowLoader = !fetchLastStatusRequestStatus?.error && !fetchLastStatusRequestStatus?.ok && !lastStatus;\n\n    return (\n        <ContentMargins className={cx('wrap')}>\n            <Widget className={cx('widget')} title={t('tender-calculator.title')}>\n                <div className={cx('widget__inner')}>\n                    {isShowLoader ? (\n                        <div className={cx('widget__loader')}>\n                            <ControlLoaderIcon fillColor={StyleGuideColorsEnum.light} size={DEFAULT_ICON_SIZE} />\n                        </div>\n                    ) : (\n                        <div className={cx('row')}>\n                            <div className={cx('row__column', 'row__column--action')}>{actionNode}</div>\n                            <div className={cx('row__column', 'row__column--status')}>{statusNode}</div>\n                        </div>\n                    )}\n                </div>\n            </Widget>\n        </ContentMargins>\n    );\n});\n\nexport default TenderCalculator;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    APPROVE_DOCUMENT_REQUEST,\n    APPROVE_EVIDENCE_OF_TAX_DOCUMENT_REQUEST,\n    ApproveDocumentActionT,\n    ApproveEvidenceOfTaxDocumentActionT,\n    DOWNLOAD_DOCUMENT_REQUEST,\n    DownloadDocumentActionT,\n    FETCH_DOCUMENTS_REQUEST,\n    FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST,\n    FetchDocumentsActionT,\n    FetchEvidenceOfTaxDetailsActionT,\n    REJECT_DOCUMENT_REQUEST,\n    RejectDocumentActionT,\n    REVOKE_DOCUMENT_REQUEST,\n    RevokeDocumentActionT,\n    UPDATE_DOCUMENT_REQUEST,\n    UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST,\n    UpdateDocumentActionT,\n    UpdateEvidenceOfTaxDetailsActionT,\n    UPLOAD_DOCUMENT_REQUEST,\n    UploadDocumentActionT,\n} from './types';\nimport {\n    downloadDocumentBegin,\n    downloadDocumentError,\n    downloadDocumentSuccess,\n    fetchDocumentsBegin,\n    fetchDocumentsError,\n    fetchDocumentsSuccess,\n    fetchEvidenceOfTaxDetails,\n    fetchEvidenceOfTaxDetailsBegin,\n    fetchEvidenceOfTaxDetailsError,\n    fetchEvidenceOfTaxDetailsSuccess,\n    updateDocumentBegin,\n    updateDocumentError,\n    updateDocumentSuccess,\n    updateEvidenceOfTaxDetailsBegin,\n    updateEvidenceOfTaxDetailsError,\n    updateEvidenceOfTaxDetailsSuccess,\n    uploadDocumentBegin,\n    uploadDocumentError,\n    uploadDocumentSuccess,\n} from './actions';\n\nimport mapValues from 'lodash/mapValues';\nimport flatten from 'lodash/flatten';\nimport values from 'lodash/values';\nimport prepareDocument from './utils/prepare-document';\nimport { DocumentIdsByTypeT, DocumentIdsT, EvidenceOfTaxDetailsT } from 'common/store/documents/models';\nimport downloadFile from 'common/utils/download-file';\nimport { ApiDocumentT, DocumentStatusEnum } from 'common/utils/api/models';\nimport { checkIsDefaultCompanyId, isNonNil } from 'common/utils';\n\nimport { logWarning } from 'common/utils/logger';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { selectDocumentsDictById } from 'common/store/documents-dict/selectors';\nimport { selectCompanyDocumentsById, selectFetchCompanyDocumentsRequest } from 'common/store/documents/selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAlertTypeEnum, CommonAnyAlert } from 'common/components/toasts/AlertToastsManager/models';\nimport { companyRefreshChannel } from 'common/store/company/channels';\nimport { partnerDetailsRefreshChannel } from 'broker-admin/store/partner/details/channels';\nimport { documentsRefreshChannel, partnerDocumentsRefreshChannel } from 'common/store/documents/channels';\nimport { HEADERS, parseContentDispositionFilename } from 'common/utils/download-headers';\n\nconst STATUSES_RANK: Record<DocumentStatusEnum, number> = {\n    [DocumentStatusEnum.waitingForApprove]: 6,\n    [DocumentStatusEnum.approved]: 5,\n    [DocumentStatusEnum.expired]: 4,\n    [DocumentStatusEnum.rejected]: 3,\n    [DocumentStatusEnum.revoked]: 2,\n    [DocumentStatusEnum.archived]: 1,\n};\n\nconst byStatusDesc = (documentA: ApiDocumentT, documentB: ApiDocumentT) => {\n    const aRank = documentA.status ? STATUSES_RANK[documentA.status] : 0;\n    const bRank = documentB.status ? STATUSES_RANK[documentB.status] : 0;\n    return bRank - aRank;\n};\n\nfunction* fetchDocumentsSaga(action: FetchDocumentsActionT): WrapGeneratorT<void> {\n    const { companyId, options } = action;\n\n    const requestStatus: ReReturnT<typeof selectFetchCompanyDocumentsRequest> = yield select(\n        selectFetchCompanyDocumentsRequest(companyId),\n    );\n    if (!checkNeedRequest(requestStatus, options)) {\n        return;\n    }\n\n    yield put(fetchDocumentsBegin(companyId));\n\n    let response: ReturnApiT<typeof commonTranziitApi.fetchDocuments | typeof brokerTranziitApi.fetchDocuments>;\n    if (checkIsDefaultCompanyId(companyId)) {\n        response = yield commonTranziitApi.fetchDocuments();\n    } else {\n        response = yield brokerTranziitApi.fetchDocuments(companyId);\n    }\n    const [error, documentsByType] = response;\n\n    if (error) {\n        yield put(fetchDocumentsError(error, companyId));\n        return;\n    }\n\n    const documentIdsByType = mapValues(documentsByType, (documents): DocumentIdsT => {\n        return documents\n            .sort(byStatusDesc)\n            .map((document) => document.id)\n            .filter(isNonNil);\n    }) as DocumentIdsByTypeT;\n\n    const documents = flatten(values(documentsByType));\n    const preparedDocuments = documents.map(prepareDocument).filter(isNonNil);\n\n    yield put(fetchDocumentsSuccess(documentIdsByType, preparedDocuments, companyId));\n}\n\nfunction* uploadDocumentSaga(action: UploadDocumentActionT): WrapGeneratorT<void> {\n    const { partnerType, companyId, dictDocumentId, file } = action;\n\n    const documentsDictById: ReReturnT<typeof selectDocumentsDictById> = yield select(\n        selectDocumentsDictById(partnerType),\n    );\n    const dictDocument = documentsDictById[dictDocumentId as DictDocumentFakeIdT];\n    if (!dictDocument) {\n        logWarning(`failed to upload document, empty dictDocument! id: ${dictDocumentId} partner type: ${partnerType}`);\n        return;\n    }\n\n    yield put(uploadDocumentBegin(companyId, dictDocument.id));\n\n    let response: ReturnApiT<typeof commonTranziitApi.uploadDocument | typeof brokerTranziitApi.uploadDocument>;\n    if (checkIsDefaultCompanyId(companyId)) {\n        response = yield commonTranziitApi.uploadDocument(dictDocument.type, file);\n    } else {\n        response = yield brokerTranziitApi.uploadDocument(dictDocument.type, file, companyId);\n    }\n    const [error] = response;\n\n    if (error) {\n        yield put(uploadDocumentError(error, companyId));\n        return;\n    }\n\n    yield put(uploadDocumentSuccess(companyId));\n\n    companyRefreshChannel.emit({});\n    documentsRefreshChannel.emit({});\n    partnerDetailsRefreshChannel.emit({});\n    partnerDocumentsRefreshChannel.emit({});\n\n    yield put(\n        addAlert(\n            new CommonAnyAlert({\n                type: CommonAlertTypeEnum.documentUploaded,\n                data: {\n                    dictDocumentName: dictDocument.name,\n                },\n            }),\n        ),\n    );\n}\n\nfunction* downloadDocumentSaga(action: DownloadDocumentActionT): WrapGeneratorT<void> {\n    const { companyId, documentId } = action;\n\n    yield put(downloadDocumentBegin(companyId));\n\n    let response: ReturnApiT<typeof commonTranziitApi.fetchDocument | typeof brokerTranziitApi.fetchDocument>;\n    if (checkIsDefaultCompanyId(companyId)) {\n        response = yield commonTranziitApi.fetchDocument(documentId);\n    } else {\n        response = yield brokerTranziitApi.fetchDocument(documentId);\n    }\n    const [error, result, rawResponse] = response;\n\n    if (error) {\n        yield put(downloadDocumentError(error, companyId));\n        return;\n    }\n\n    if (!rawResponse) {\n        logWarning('empty rawResponse for document download', { companyId, documentId });\n    }\n\n    const contentDispositionHeader = rawResponse?.headers.get(HEADERS.CONTENT_DISPOSITION);\n    const filename = parseContentDispositionFilename(contentDispositionHeader || '');\n    if (!filename) {\n        logWarning('empty filename for document download', { companyId, documentId, contentDispositionHeader });\n    }\n\n    const fileTypeHeader = rawResponse?.headers.get(HEADERS.CONTENT_TYPE);\n    if (!fileTypeHeader) {\n        logWarning('empty file type for document download', { companyId, documentId, fileTypeHeader });\n    }\n\n    if (result && filename && fileTypeHeader) {\n        downloadFile({\n            name: filename,\n            data: result,\n            type: fileTypeHeader,\n        });\n    }\n\n    yield put(downloadDocumentSuccess(companyId));\n}\n\nfunction* approveEvidenceOfTaxDocumentSaga(action: ApproveEvidenceOfTaxDocumentActionT): WrapGeneratorT<void> {\n    const { detailsChanges, companyId, documentId, validTill, partnerType } = action;\n\n    if (!validTill) {\n        logWarning('empty validTill');\n        return;\n    }\n\n    yield put(updateEvidenceOfTaxDetailsBegin(companyId));\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.approvePartnerEvidenceOfTax> =\n        yield brokerTranziitApi.approvePartnerEvidenceOfTax(documentId, {\n            validTill,\n            ...detailsChanges,\n        });\n\n    if (error) {\n        yield put(updateEvidenceOfTaxDetailsError(error, companyId));\n        return;\n    }\n\n    yield put(updateEvidenceOfTaxDetailsSuccess(companyId));\n\n    companyRefreshChannel.emit({});\n    documentsRefreshChannel.emit({});\n    partnerDetailsRefreshChannel.emit({});\n    partnerDocumentsRefreshChannel.emit({});\n\n    const documentsDictById: ReReturnT<typeof selectDocumentsDictById> = yield select(\n        selectDocumentsDictById(partnerType),\n    );\n    const documentsById: ReReturnT<typeof selectCompanyDocumentsById> = yield select(\n        selectCompanyDocumentsById(companyId),\n    );\n    const dictDocumentId = documentsById?.[documentId]?.dictDocumentId || null;\n    const dictDocument = documentsDictById[dictDocumentId as DictDocumentFakeIdT];\n    if (dictDocument) {\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.documentApproved,\n                    data: {\n                        dictDocumentName: dictDocument.name,\n                    },\n                }),\n            ),\n        );\n    }\n}\n\nfunction* approveDocumentSaga(action: ApproveDocumentActionT): WrapGeneratorT<void> {\n    const { companyId, documentId, validTill, partnerType } = action;\n\n    if (!validTill) {\n        logWarning('empty validTill');\n        return;\n    }\n\n    yield put(updateDocumentBegin(companyId, documentId));\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.approvePartnerDocument> =\n        yield brokerTranziitApi.approvePartnerDocument(documentId, validTill);\n\n    if (error) {\n        yield put(updateDocumentError(error, companyId));\n        return;\n    }\n\n    yield put(updateDocumentSuccess(companyId));\n\n    companyRefreshChannel.emit({});\n    documentsRefreshChannel.emit({});\n    partnerDetailsRefreshChannel.emit({});\n    partnerDocumentsRefreshChannel.emit({});\n\n    const documentsDictById: ReReturnT<typeof selectDocumentsDictById> = yield select(\n        selectDocumentsDictById(partnerType),\n    );\n    const documentsById: ReReturnT<typeof selectCompanyDocumentsById> = yield select(\n        selectCompanyDocumentsById(companyId),\n    );\n    const dictDocumentId = documentsById?.[documentId]?.dictDocumentId || null;\n    const dictDocument = documentsDictById[dictDocumentId as DictDocumentFakeIdT];\n    if (dictDocument) {\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.documentApproved,\n                    data: {\n                        dictDocumentName: dictDocument.name,\n                    },\n                }),\n            ),\n        );\n    }\n}\n\nfunction* rejectDocumentSaga(action: RejectDocumentActionT): WrapGeneratorT<void> {\n    const { companyId, documentId, reason, partnerType } = action;\n\n    yield put(updateDocumentBegin(companyId, documentId));\n    const [error]: ReturnApiT<typeof brokerTranziitApi.rejectPartnerDocument> =\n        yield brokerTranziitApi.rejectPartnerDocument(documentId, reason);\n\n    if (error) {\n        yield put(updateDocumentError(error, companyId));\n        return;\n    }\n\n    yield put(updateDocumentSuccess(companyId));\n\n    companyRefreshChannel.emit({});\n    documentsRefreshChannel.emit({});\n    partnerDetailsRefreshChannel.emit({});\n    partnerDocumentsRefreshChannel.emit({});\n\n    const documentsDictById: ReReturnT<typeof selectDocumentsDictById> = yield select(\n        selectDocumentsDictById(partnerType),\n    );\n    const documentsById: ReReturnT<typeof selectCompanyDocumentsById> = yield select(\n        selectCompanyDocumentsById(companyId),\n    );\n    const dictDocumentId = documentsById?.[documentId]?.dictDocumentId || null;\n    const dictDocument = documentsDictById[dictDocumentId as DictDocumentFakeIdT];\n    if (dictDocument) {\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.documentRejected,\n                    data: {\n                        dictDocumentName: dictDocument.name,\n                    },\n                }),\n            ),\n        );\n    }\n}\n\nfunction* revokeDocumentSaga(action: RevokeDocumentActionT): WrapGeneratorT<void> {\n    const { companyId, documentId, partnerType } = action;\n\n    yield put(updateDocumentBegin(companyId, documentId));\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.revokePartnerDocument> =\n        yield brokerTranziitApi.revokePartnerDocument(documentId);\n    if (error) {\n        yield put(updateDocumentError(error, companyId));\n        return;\n    }\n\n    yield put(updateDocumentSuccess(companyId));\n\n    companyRefreshChannel.emit({});\n    documentsRefreshChannel.emit({});\n    partnerDetailsRefreshChannel.emit({});\n    partnerDocumentsRefreshChannel.emit({});\n\n    const documentsDictById: ReReturnT<typeof selectDocumentsDictById> = yield select(\n        selectDocumentsDictById(partnerType),\n    );\n    const documentsById: ReReturnT<typeof selectCompanyDocumentsById> = yield select(\n        selectCompanyDocumentsById(companyId),\n    );\n    const dictDocumentId = documentsById?.[documentId]?.dictDocumentId || null;\n    const dictDocument = documentsDictById[dictDocumentId as DictDocumentFakeIdT];\n    if (dictDocument) {\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.documentRevoked,\n                    data: {\n                        dictDocumentName: dictDocument.name,\n                    },\n                }),\n            ),\n        );\n    }\n}\n\nfunction* updateDocumentSaga(action: UpdateDocumentActionT): WrapGeneratorT<void> {\n    const { companyId, documentId, detailChanges } = action;\n\n    yield put(updateDocumentBegin(companyId, documentId));\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.updatePartnerDocument> =\n        yield brokerTranziitApi.updatePartnerDocument(documentId, detailChanges);\n    if (error) {\n        yield put(updateDocumentError(error, companyId));\n        return;\n    }\n\n    yield put(updateDocumentSuccess(companyId));\n\n    yield put(\n        addAlert(\n            new CommonAnyAlert({\n                type: CommonAlertTypeEnum.documentUpdated,\n                data: {},\n            }),\n        ),\n    );\n\n    companyRefreshChannel.emit({});\n    documentsRefreshChannel.emit({});\n    partnerDetailsRefreshChannel.emit({});\n    partnerDocumentsRefreshChannel.emit({});\n}\n\nfunction* updateEvidenceOfTaxDetailsSaga(action: UpdateEvidenceOfTaxDetailsActionT): WrapGeneratorT<void> {\n    const { documentId, companyId, detailsChanges } = action;\n\n    yield put(updateEvidenceOfTaxDetailsBegin(companyId));\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.updateEvidenceOfTax> =\n        yield brokerTranziitApi.updateEvidenceOfTax(documentId, detailsChanges);\n\n    if (error) {\n        yield put(updateEvidenceOfTaxDetailsError(error, companyId));\n        return;\n    }\n\n    yield put(updateEvidenceOfTaxDetailsSuccess(companyId));\n\n    yield put(fetchEvidenceOfTaxDetails(companyId));\n\n    companyRefreshChannel.emit({});\n    documentsRefreshChannel.emit({});\n    partnerDetailsRefreshChannel.emit({});\n    partnerDocumentsRefreshChannel.emit({});\n}\n\nfunction* fetchEvidenceOfTaxDetailsSaga(action: FetchEvidenceOfTaxDetailsActionT): WrapGeneratorT<void> {\n    const { companyId } = action;\n\n    yield put(fetchEvidenceOfTaxDetailsBegin(companyId));\n\n    let error: Error | null = null;\n    let evidenceOfTaxDetails: EvidenceOfTaxDetailsT | null = null;\n\n    if (checkIsDefaultCompanyId(companyId)) {\n        const response: ReturnApiT<typeof commonTranziitApi.fetchCurrentCompany> =\n            yield commonTranziitApi.fetchCurrentCompany();\n\n        error = response[0] || null;\n        evidenceOfTaxDetails = response[1] || null;\n    } else {\n        const response: ReturnApiT<typeof brokerTranziitApi.fetchPartnerDetails> =\n            yield brokerTranziitApi.fetchPartnerDetails(companyId);\n        error = response[0] || null;\n\n        evidenceOfTaxDetails = response[1] || null;\n    }\n\n    if (error) {\n        yield put(fetchEvidenceOfTaxDetailsError(companyId, error));\n    }\n\n    if (evidenceOfTaxDetails) {\n        yield put(fetchEvidenceOfTaxDetailsSuccess(companyId, evidenceOfTaxDetails));\n    }\n}\n\nfunction* documentsSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_DOCUMENTS_REQUEST, fetchDocumentsSaga);\n    yield takeEvery(UPLOAD_DOCUMENT_REQUEST, uploadDocumentSaga);\n    yield takeEvery(DOWNLOAD_DOCUMENT_REQUEST, downloadDocumentSaga);\n    yield takeEvery(APPROVE_DOCUMENT_REQUEST, approveDocumentSaga);\n    yield takeEvery(APPROVE_EVIDENCE_OF_TAX_DOCUMENT_REQUEST, approveEvidenceOfTaxDocumentSaga);\n    yield takeEvery(REJECT_DOCUMENT_REQUEST, rejectDocumentSaga);\n    yield takeEvery(REVOKE_DOCUMENT_REQUEST, revokeDocumentSaga);\n    yield takeEvery(UPDATE_DOCUMENT_REQUEST, updateDocumentSaga);\n    yield takeEvery(FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST, fetchEvidenceOfTaxDetailsSaga);\n    yield takeEvery(UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST, updateEvidenceOfTaxDetailsSaga);\n}\n\nexport default documentsSaga;\n","import React, { useEffect } from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport { AssetTypeEnum, StyleGuideColorsEnum } from 'common/constants';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport { useFormik } from 'formik';\nimport { prepareData } from './prepare-reject-data';\nimport { logWarning } from 'common/utils/logger';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport Input from 'common/components/Input/Input';\nimport BigQuestionReversedIcon from 'common/icons/BigQuestionReversedIcon';\n\nexport type ArchiveAssetConfirmationDataT = {\n    companyId: CompanyIdT;\n    assets: Array<{\n        plateNumber: string;\n        id: AssetIdT;\n    }>;\n};\n\ntype PropsT = {\n    assetType: AssetTypeEnum;\n    data: ArchiveAssetConfirmationDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onConfirm: (data: ArchiveAssetConfirmationDataT, reason: string) => void;\n    requestStatus: RequestStatusT;\n};\n\nconst TEST_SELECTOR = 'archive-assets';\n\nconst T_MAP: Record<\n    AssetTypeEnum,\n    {\n        oneAssetTitle: string;\n        manyAssetsTitle: string;\n        oneAssetMessage: string;\n        manyAssetsMessage: string;\n        reasonFieldTitle: string;\n        reasonFieldPlaceholder: string;\n    }\n> = {\n    [AssetTypeEnum.truck]: {\n        oneAssetTitle: 'common:trucks-page.archive-confirmation.one-asset-title',\n        manyAssetsTitle: 'common:trucks-page.archive-confirmation.many-assets-title',\n        oneAssetMessage: 'common:trucks-page.archive-confirmation.one-asset-message',\n        manyAssetsMessage: 'common:trucks-page.archive-confirmation.many-assets-message',\n        reasonFieldTitle: 'common:trucks-page.archive-confirmation.fields.reason.label',\n        reasonFieldPlaceholder: 'common:trucks-page.archive-confirmation.fields.reason.placeholder',\n    },\n    [AssetTypeEnum.trailer]: {\n        oneAssetTitle: 'common:trailers-page.archive-confirmation.one-asset-title',\n        manyAssetsTitle: 'common:trailers-page.archive-confirmation.many-assets-title',\n        oneAssetMessage: 'common:trailers-page.archive-confirmation.one-asset-message',\n        manyAssetsMessage: 'common:trailers-page.archive-confirmation.many-assets-message',\n        reasonFieldTitle: 'common:trailers-page.archive-confirmation.fields.reason.label',\n        reasonFieldPlaceholder: 'common:trailers-page.archive-confirmation.fields.reason.placeholder',\n    },\n};\n\nconst ArchiveAssetConfirmationModal: React.FC<PropsT> = React.memo((props) => {\n    const { data, onCancel, onClose, requestStatus, onConfirm, assetType } = props;\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues();\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const preparedData = prepareData(values);\n\n            if (!data) {\n                logWarning('failed to reject contract, empty data');\n                return;\n            }\n\n            onConfirm(data, preparedData.reason);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    useEffect(() => {\n        formik.resetForm();\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [data]);\n\n    if (!data) {\n        return null;\n    }\n\n    const { assets } = data;\n\n    const tSet = T_MAP[assetType];\n\n    let message = null;\n    let title = null;\n    if (assets.length === 1) {\n        message = t(tSet.oneAssetMessage, {\n            plateNumber: assets?.[0]?.plateNumber || '',\n        });\n        title = t(tSet.oneAssetTitle);\n    } else {\n        message = t(tSet.manyAssetsMessage, {\n            count: assets.length,\n        });\n        title = t(tSet.manyAssetsTitle);\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <form onSubmit={formik.handleSubmit}>\n                    <ModalDialog\n                        width={DEFAULT_MODAL_DIALOG_WIDTH}\n                        testSelector={TEST_SELECTOR}\n                        actions={[\n                            {\n                                children: t('common:error-modal.actions.cancel'),\n                                theme: ButtonThemeEnum.secondary,\n                                isDisabled: requestStatus.loading,\n                                testSelector: `${TEST_SELECTOR}_cancel`,\n                                onClick: () => {\n                                    onCancel();\n                                },\n                            },\n                            {\n                                children: t('common:error-modal.actions.archive'),\n                                theme: ButtonThemeEnum.danger,\n                                isDisabled: requestStatus.loading,\n                                isLoading: requestStatus.loading,\n                                testSelector: `${TEST_SELECTOR}_ok`,\n                                type: 'submit',\n                            },\n                        ]}\n                        icon={<BigQuestionReversedIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                        title={title}\n                        message={message}\n                        body={\n                            <>\n                                <FormikField\n                                    name={FieldsEnum.reason}\n                                    error={formik.errors[FieldsEnum.reason]}\n                                    meta={formik.getFieldMeta(FieldsEnum.reason)}\n                                    label={t(tSet.reasonFieldTitle)}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                >\n                                    {(props) => (\n                                        <Input\n                                            name={FieldsEnum.reason}\n                                            value={formik.values[FieldsEnum.reason]}\n                                            placeholder={t(tSet.reasonFieldPlaceholder)}\n                                            onChange={props.onChange}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                            hasWarning={props.hasWarning}\n                                            hasError={props.hasError}\n                                        />\n                                    )}\n                                </FormikField>\n                            </>\n                        }\n                    />\n                </form>\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default ArchiveAssetConfirmationModal;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './Switcher.scss';\nimport cs from 'classnames';\n\nconst cx = classNames.bind(styles);\n\nexport enum SwitcherThemeEnum {\n    primary = 'primary',\n    danger = 'danger',\n}\n\nexport type PropsT = {\n    className?: string;\n    checked: boolean;\n    onToggle?: (value: boolean, event: React.MouseEvent<HTMLDivElement>) => void;\n    isDisabled?: boolean;\n    label?: React.ReactNode;\n    rightIcon?: React.ReactNode;\n    theme?: SwitcherThemeEnum;\n};\n\nconst Switcher: React.FC<PropsT> = React.memo((props) => {\n    const { className, checked, theme, onToggle, isDisabled, label, rightIcon } = props;\n\n    const [isHover, setHover] = React.useState<boolean>(false);\n\n    const handleChange = (event: React.MouseEvent<HTMLDivElement>) => {\n        if (isDisabled) {\n            return;\n        }\n\n        if (onToggle) {\n            onToggle(!checked, event);\n        }\n    };\n\n    const handleMouseMove = () => {\n        if (isHover) {\n            return;\n        }\n\n        setHover(true);\n    };\n\n    const handleMouseLeave = () => {\n        setHover(false);\n    };\n\n    return (\n        <div className={cs(cx('wrap'), className)}>\n            <div\n                className={cx('switcher', {\n                    [`switcher--theme-${theme || SwitcherThemeEnum.primary}`]: true,\n                    'switcher--isHover': isHover,\n                    'switcher--isClickable': !isDisabled,\n                    'switcher--isChecked': checked,\n                    'switcher--isDisabled': isDisabled,\n                })}\n                onMouseMove={handleMouseMove}\n                onMouseLeave={handleMouseLeave}\n                onClick={handleChange}\n            />\n            <div\n                className={cx('label', {\n                    'label--isClickable': !isDisabled,\n                    'label--isDisabled': isDisabled,\n                    'label--hasRightIcon': !!rightIcon,\n                })}\n                onMouseMove={handleMouseMove}\n                onMouseLeave={handleMouseLeave}\n                onClick={handleChange}\n            >\n                {label}\n            </div>\n            {rightIcon}\n        </div>\n    );\n});\n\nexport default Switcher;\n","import * as React from 'react';\n\nimport { useDispatch } from 'react-redux';\n\nimport { fetchUser } from 'common/store/user/actions';\n\ntype PropsT = {};\n\nconst User: React.FC<PropsT> = React.memo(() => {\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchUser());\n    }, [dispatch]);\n\n    return null;\n});\n\nexport default User;\n","// extracted by mini-css-extract-plugin\nexport default {\"divider\":\"Divider__divider___LW1px\",\"fadeIn\":\"Divider__fadeIn___QGwy9\",\"blinking\":\"Divider__blinking___zzcI6\"};","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst MapIcon: React.FC<PropsT> = (props) => {\n    const { size, fillColor, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={fillColor}\n                    fillOpacity=\"0.3\"\n                    d=\"M4.75 14.732l2.25-.87V5.089l-2.25.757v8.887zm8.25.18l2.25-.757V5.268L13 6.144v8.768z\"\n                />\n                <path\n                    fill={strokeColor}\n                    d=\"M16.375 3.25l-.12.022-4.005 1.553-4.5-1.575-4.23 1.425a.378.378 0 00-.27.36v11.34c0 .21.165.375.375.375l.12-.023 4.005-1.552 4.5 1.575 4.23-1.425a.378.378 0 00.27-.36V3.625a.371.371 0 00-.375-.375zM7 13.863l-2.25.87V5.845L7 5.088v8.774zm4.5 1.035l-3-1.05V5.101l3 1.05v8.745zm3.75-.743l-2.25.758V6.144l2.25-.87v8.88z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nMapIcon.displayName = 'MapIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default MapIcon;\n","import * as React from 'react';\nimport { useMemo } from 'react';\nimport DropdownControl, {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch } from 'react-redux';\nimport { updateEntityStatus } from 'common/store/state-machine/slice';\nimport {\n    ApiShipmentAttachedPaperTypeT,\n    ApiShipmentDetailsT,\n    ApiShipmentEventTypeT,\n    ApiShipmentStatusT,\n    ApiTourShipmentEventT,\n    ShipmentStatusEnum,\n} from 'common/utils/api/models';\nimport {\n    AvailableSubjectStatusesResponseT,\n    StateMachineEntityDescriptorT,\n    TypedAvailableSubjectStatusesResponseT,\n} from 'common/store/state-machine/models';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport CancelLastShipmentConfirmation, {\n    CancelLastShipmentConfirmationDataT,\n} from 'common/layouts/dialogs/CancelLastShipmentConfirmation/CancelLastShipmentConfirmation';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\n\nimport ClickInterceptorLabel from 'common/components/ClickInterceptorLabel/ClickInterceptorLabel';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport { useStateMachine } from 'common/utils/hooks/useStateMachine';\nimport classNames from 'classnames/bind';\n\nimport styles from './ChangeShipmentStatusFooter.scss';\nimport TimeLeftForStart from 'common/layouts/sidebar-footers/TimeLeftForStart/TimeLeftForStart';\nimport MoreIcon from 'common/icons/MoreIcon';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport InfoIcon from 'common/icons/InfoIcon';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport { logWarning } from 'common/utils/logger';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport RestoreIcon from 'common/icons/RestoreIcon';\nimport { isNonNil } from 'common/utils';\nimport DeleteIcon from 'common/icons/DeleteIcon';\nimport { LOAD_STATUS_T_MAP } from 'common/components/status-pill/ShipmentStatusPill/ShipmentStatusPill';\nimport { ShipmentPaperAttachPapersDropdownControl } from 'common/components/papers/ShipmentPaperAttachPapersDropdownControl/ShipmentPaperAttachPapersDropdownControl';\nimport { useAttachPaperForStateMachineRenderTrigger } from 'common/components/papers/ShipmentPaperAttachPapersDropdownControl/hooks';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    isCancelAllowed: boolean;\n    isChangeStatusAllowed: boolean;\n    isShowLoading: boolean;\n    shipmentId: ShipmentIdT | null;\n    shipment: ApiShipmentDetailsT | null | undefined;\n    onAttachShipmentPaper: (\n        shipmentId: ShipmentIdT,\n        paperType: ApiShipmentAttachedPaperTypeT,\n        comment?: string,\n    ) => void;\n    shouldConfirmForCancelLastShipment: boolean;\n    takeShotsOfPapersTourShipmentEvent: ApiTourShipmentEventT | null;\n};\n\nconst blockedI18nMap: Record<NonNullable<AvailableSubjectStatusesResponseT['description']>, string> = {\n    HAS_LOADING_UNLOADING_SHIPMENT: 'change-shipment-status.blocked.HAS_LOADING_UNLOADING_SHIPMENT',\n    NOT_FULLY_ASSIGN: 'change-shipment-status.blocked.NOT_FULLY_ASSIGN',\n    ALL_SHIPMENTS_NOT_DELIVERED: 'change-shipment-status.blocked.ALL_SHIPMENTS_NOT_DELIVERED',\n    DRIVER_NOT_ARRIVED_AT_STOP: 'change-shipment-status.blocked.DRIVER_NOT_ARRIVED_AT_STOP',\n    ATTACH_DOCUMENT: 'change-shipment-status.blocked.ATTACH_DOCUMENT',\n};\n\nconst deadlineGuideI18nMap: Record<ApiShipmentEventTypeT, string> = {\n    LOADING: 'change-shipment-status.deadline-guide.LOADING',\n    UNLOADING: 'change-shipment-status.deadline-guide.UNLOADING',\n};\n\nconst shipmentActionI18nMap: Record<ApiShipmentStatusT, string> = {\n    LOADING: 'change-shipment-status.actions.LOADING',\n    AWAITING_LOADING: 'change-shipment-status.actions.AWAITING_LOADING',\n    IN_TRANSIT: 'change-shipment-status.actions.IN_TRANSIT',\n    UNLOADING: 'change-shipment-status.actions.UNLOADING',\n    DELIVERED: 'change-shipment-status.actions.DELIVERED',\n    CANCELED: 'change-shipment-status.actions.CANCELED',\n};\n\nconst ChangeShipmentStatusFooter: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        isCancelAllowed,\n        isChangeStatusAllowed,\n        isShowLoading,\n        shipment,\n        shipmentId,\n        onAttachShipmentPaper,\n        shouldConfirmForCancelLastShipment,\n        takeShotsOfPapersTourShipmentEvent,\n    } = props;\n\n    const cancelLastShipmentConfirmation = useModalDialog<CancelLastShipmentConfirmationDataT>();\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const descriptor = useMemo((): StateMachineEntityDescriptorT | null => {\n        if (!shipmentId) {\n            return null;\n        }\n\n        return {\n            entityType: 'SHIPMENT',\n            entityId: shipmentId,\n        };\n    }, [shipmentId]);\n\n    const { updateRequest } = useStateMachine<ApiShipmentStatusT>(descriptor, { isAllowFetch: false });\n\n    useCloseModalDialogAfterRequest(updateRequest, [cancelLastShipmentConfirmation]);\n\n    const availableStatuses = (shipment?.availableStatuses ||\n        null) as TypedAvailableSubjectStatusesResponseT<ApiShipmentStatusT> | null;\n\n    const firstForwardAvailableStatus = React.useMemo(() => {\n        return (\n            availableStatuses?.forward?.find((status) => {\n                return status !== ShipmentStatusEnum.canceled;\n            }) || null\n        );\n    }, [availableStatuses]);\n\n    const forwardDescription = availableStatuses?.description || null;\n\n    const isShowCancelAction = isCancelAllowed && !shipment?.cancelUnavailableReason;\n\n    const firstBackwardAvailableStatus = React.useMemo(() => {\n        return (\n            availableStatuses?.backward?.find((status) => {\n                return status !== ShipmentStatusEnum.canceled;\n            }) || null\n        );\n    }, [availableStatuses]);\n\n    const backwardDescription = availableStatuses?.backwardDescription || null;\n\n    const options = useMemo((): Array<DropdownControlOptionT | SpecialOptionEnum> => {\n        const baseOptions: Array<DropdownControlOptionT | SpecialOptionEnum> = (\n            isChangeStatusAllowed\n                ? [\n                      firstBackwardAvailableStatus\n                          ? {\n                                label: (\n                                    <Tooltip\n                                        position={TooltipPositionEnum.topCenter}\n                                        theme={TooltipThemeEnum.black}\n                                        tooltipNode={\n                                            backwardDescription ? (\n                                                <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                                    {t(blockedI18nMap[backwardDescription])}\n                                                </TooltipContent>\n                                            ) : null\n                                        }\n                                    >\n                                        {() => (\n                                            <DropdownControlOptionLabel\n                                                isDisabled={!!backwardDescription}\n                                                label={\n                                                    backwardDescription\n                                                        ? t('change-shipment-status.unable-undo', {\n                                                              action: t(\n                                                                  LOAD_STATUS_T_MAP[firstBackwardAvailableStatus],\n                                                              ),\n                                                          })\n                                                        : t('change-shipment-status.undo', {\n                                                              action: t(\n                                                                  LOAD_STATUS_T_MAP[firstBackwardAvailableStatus],\n                                                              ),\n                                                          })\n                                                }\n                                                icon={<RestoreIcon strokeColor={StyleGuideColorsEnum.tomatoRed} />}\n                                            />\n                                        )}\n                                    </Tooltip>\n                                ),\n                                isDisabled: !!backwardDescription,\n                                onSelect: () => {\n                                    if (!descriptor) {\n                                        logWarning('Empty tour id or waypoint id or descriptor');\n                                        return;\n                                    }\n\n                                    if (firstBackwardAvailableStatus && shipmentId) {\n                                        dispatch(\n                                            updateEntityStatus({\n                                                update: {\n                                                    status: firstBackwardAvailableStatus,\n                                                    entityType: 'SHIPMENT',\n                                                    entityId: shipmentId,\n                                                },\n                                                descriptor,\n                                            }),\n                                        );\n                                    }\n                                },\n                            }\n                          : null,\n                  ]\n                : []\n        ).filter(isNonNil);\n\n        const result = [...baseOptions];\n        if (isShowCancelAction) {\n            result.push(...(baseOptions.length ? [SpecialOptionEnum.separator] : []), {\n                label: (\n                    <DropdownControlOptionLabel\n                        label={t('change-shipment-status.cancel')}\n                        icon={<DeleteIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                    />\n                ),\n                onSelect: () => {\n                    if (!shipmentId || !descriptor) {\n                        return;\n                    }\n\n                    const data = {\n                        update: {\n                            status: ShipmentStatusEnum.canceled,\n                            entityType: 'SHIPMENT',\n                            entityId: shipmentId,\n                        },\n                        descriptor,\n                    } as const;\n\n                    if (shouldConfirmForCancelLastShipment) {\n                        cancelLastShipmentConfirmation.setData(data);\n                    } else {\n                        dispatch(updateEntityStatus(data));\n                    }\n                },\n            });\n        }\n\n        return result;\n    }, [\n        backwardDescription,\n        cancelLastShipmentConfirmation,\n        descriptor,\n        dispatch,\n        firstBackwardAvailableStatus,\n        isShowCancelAction,\n        isChangeStatusAllowed,\n        shipmentId,\n        shouldConfirmForCancelLastShipment,\n        t,\n    ]);\n\n    const isLoading = updateRequest?.loading;\n\n    const handleConfirmCancelLastShipment = (data: CancelLastShipmentConfirmationDataT) => {\n        dispatch(updateEntityStatus(data));\n    };\n\n    const handleDoCurrentFirstDoAction = () => {\n        if (firstForwardAvailableStatus && shipmentId && descriptor) {\n            dispatch(\n                updateEntityStatus({\n                    update: {\n                        entityType: 'SHIPMENT',\n                        entityId: shipmentId,\n                        status: firstForwardAvailableStatus,\n                    },\n                    descriptor,\n                }),\n            );\n            return;\n        }\n\n        logWarning('Empty action');\n    };\n\n    const { attachPaperRenderTrigger } = useAttachPaperForStateMachineRenderTrigger({\n        requiredDocuments: takeShotsOfPapersTourShipmentEvent?.requiredDocuments || [],\n        triggerText: t('change-shipment-status.attach-papers'),\n    });\n\n    const renderCurrentShipmentAction = ({ isDisabled }: { isDisabled: boolean }) => {\n        if (!isChangeStatusAllowed) {\n            return null;\n        }\n\n        if (forwardDescription === 'ATTACH_DOCUMENT') {\n            return (\n                <ShipmentPaperAttachPapersDropdownControl\n                    isFullWidth\n                    shipmentId={shipmentId}\n                    onAttachShipmentPaper={onAttachShipmentPaper}\n                    renderTrigger={attachPaperRenderTrigger}\n                />\n            );\n        }\n\n        if (forwardDescription) {\n            return (\n                <Alert\n                    icon={<InfoIcon fillColor={StyleGuideColorsEnum.light} />}\n                    size={AlertSizeEnum.small}\n                    theme={AlertThemeEnum.gray}\n                    className={cx('alert')}\n                >\n                    {t(blockedI18nMap[forwardDescription])}\n                </Alert>\n            );\n        }\n\n        if (firstForwardAvailableStatus) {\n            return (\n                <Button\n                    className={cx('action', 'action--next')}\n                    theme={ButtonThemeEnum.secondaryPositive}\n                    onClick={handleDoCurrentFirstDoAction}\n                    isDisabled={isDisabled}\n                    isLoading={isLoading}\n                >\n                    {t(shipmentActionI18nMap[firstForwardAvailableStatus])}\n                </Button>\n            );\n        }\n\n        return null;\n    };\n\n    const deadline = shipment?.eventDateTime?.timeStamp;\n    const deadlineLabel = shipment?.eventDateTime?.type ? t(deadlineGuideI18nMap[shipment?.eventDateTime?.type]) : null;\n\n    const alreadyStartedLabel = t('change-shipment-status.out-of-time', {\n        toAction: deadlineLabel,\n    });\n\n    if (!isShowLoading || (!isChangeStatusAllowed && !isShowCancelAction)) {\n        return null;\n    }\n\n    return (\n        <>\n            <TimeLeftForStart\n                deadline={deadline}\n                alreadyStartedLabel={alreadyStartedLabel}\n                deadlineLabel={deadlineLabel}\n                renderActions={(isDisabled) => {\n                    return (\n                        <>\n                            {renderCurrentShipmentAction({ isDisabled })}\n                            <DropdownControl\n                                className={className}\n                                options={options}\n                                isDisabled={isLoading}\n                                isShowTriggerForEmptyOptions={isLoading}\n                                renderTrigger={(isActive, onClick) => (\n                                    <TransparentTrigger\n                                        isPressed={isActive}\n                                        onClick={onClick}\n                                        leftIcon={<MoreIcon />}\n                                        reflectionTheme={ReflectionThemeEnum.light}\n                                    />\n                                )}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                            />\n                        </>\n                    );\n                }}\n            />\n            <ClickInterceptorLabel>\n                <CancelLastShipmentConfirmation\n                    requestStatus={updateRequest}\n                    data={cancelLastShipmentConfirmation.data}\n                    onClose={cancelLastShipmentConfirmation.onClose}\n                    onCancel={cancelLastShipmentConfirmation.onCancel}\n                    onConfirm={handleConfirmCancelLastShipment}\n                />\n            </ClickInterceptorLabel>\n        </>\n    );\n});\nexport default ChangeShipmentStatusFooter;\n","import { RequestStatusT } from 'common/utils/request-status';\n\nimport { FetchRatesPageQueryT, RateT } from './models';\nimport { UpdateRateStrategyEnum } from 'common/utils/api/models';\nimport { PageResponseT, PaginationStateT } from 'common/utils/pagination/models';\n\nexport const FETCH_RATES_PAGE_REQUEST = 'broker-admin/price-settings/rates/FETCH_RATES_PAGE_REQUEST';\nexport const FETCH_RATES_PAGE_REQUEST_BEGIN = 'broker-admin/price-settings/rates/FETCH_RATES_PAGE_REQUEST_BEGIN';\nexport const FETCH_RATES_PAGE_REQUEST_ERROR = 'broker-admin/price-settings/rates/FETCH_RATES_PAGE_REQUEST_ERROR';\nexport const FETCH_RATES_PAGE_REQUEST_SUCCESS = 'broker-admin/price-settings/rates/FETCH_RATES_PAGE_REQUEST_SUCCESS';\nexport const RESET_RATES = 'broker-admin/price-settings/rates/RESET_RATES';\nexport const UPDATE_RATES_REQUEST = 'broker-admin/price-settings/rates/UPDATE_RATES_REQUEST';\nexport const UPDATE_RATES_REQUEST_BEGIN = 'broker-admin/price-settings/rates/UPDATE_RATES_REQUEST_BEGIN';\nexport const UPDATE_RATES_REQUEST_ERROR = 'broker-admin/price-settings/rates/UPDATE_RATES_REQUEST_ERROR';\nexport const UPDATE_RATES_REQUEST_SUCCESS = 'broker-admin/price-settings/rates/UPDATE_RATES_REQUEST_SUCCESS';\nexport const UPLOAD_CSV_FILE_REQUEST = 'broker-admin/price-settings/rates/UPLOAD_CSV_FILE_REQUEST';\nexport const UPLOAD_CSV_FILE_REQUEST_BEGIN = 'broker-admin/price-settings/rates/UPLOAD_CSV_FILE_REQUEST_BEGIN';\nexport const UPLOAD_CSV_FILE_REQUEST_FAIL = 'broker-admin/price-settings/rates/UPLOAD_CSV_FILE_REQUEST_FAIL';\nexport const UPLOAD_CSV_FILE_REQUEST_SUCCESS = 'broker-admin/price-settings/rates/UPLOAD_CSV_FILE_REQUEST_SUCCESS';\n\nexport type RatesStateT = PaginationStateT<RateT, FetchRatesPageQueryT> & {\n    updateRequest: RequestStatusT;\n    uploadCSVRequest: RequestStatusT;\n};\n\nexport type FetchRatesPageActionT = {\n    type: typeof FETCH_RATES_PAGE_REQUEST;\n    pageNumber: PageNumberT;\n    query: FetchRatesPageQueryT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchRatesPageBeginActionT = {\n    type: typeof FETCH_RATES_PAGE_REQUEST_BEGIN;\n    query: FetchRatesPageQueryT;\n    pageNumber: PageNumberT;\n};\n\nexport type FetchRatesPageSuccessActionT = {\n    type: typeof FETCH_RATES_PAGE_REQUEST_SUCCESS;\n    pageNumber: PageNumberT;\n    query: FetchRatesPageQueryT;\n    pageResponse: PageResponseT<RateT> | null;\n};\n\nexport type FetchRatesPageErrorActionT = {\n    type: typeof FETCH_RATES_PAGE_REQUEST_ERROR;\n    query: FetchRatesPageQueryT;\n    pageNumber: PageNumberT;\n    error: Error;\n};\n\nexport type ResetRatesActionT = {\n    type: typeof RESET_RATES;\n    mutationListOptions: MutationListOptionsT;\n};\n\nexport type UpdateRatesActionT = {\n    type: typeof UPDATE_RATES_REQUEST;\n    ids: Array<RateT['id']>;\n    value: number;\n    strategy: UpdateRateStrategyEnum;\n};\n\nexport type UpdateRatesBeginActionT = {\n    type: typeof UPDATE_RATES_REQUEST_BEGIN;\n};\n\nexport type UpdateRatesSuccessActionT = {\n    type: typeof UPDATE_RATES_REQUEST_SUCCESS;\n};\n\nexport type UpdateRatesErrorActionT = {\n    type: typeof UPDATE_RATES_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type UploadCsvFileActionT = {\n    type: typeof UPLOAD_CSV_FILE_REQUEST;\n    file: File;\n};\n\nexport type UploadCsvFileBeginActionT = {\n    type: typeof UPLOAD_CSV_FILE_REQUEST_BEGIN;\n};\n\nexport type UploadCsvFileSuccessActionT = {\n    type: typeof UPLOAD_CSV_FILE_REQUEST_SUCCESS;\n};\n\nexport type UploadCsvFileFailActionT = {\n    type: typeof UPLOAD_CSV_FILE_REQUEST_FAIL;\n    error: Error;\n};\n\nexport type RatesActionT =\n    | FetchRatesPageActionT\n    | FetchRatesPageBeginActionT\n    | FetchRatesPageSuccessActionT\n    | FetchRatesPageErrorActionT\n    | UpdateRatesActionT\n    | UpdateRatesBeginActionT\n    | UpdateRatesSuccessActionT\n    | UpdateRatesErrorActionT\n    | UploadCsvFileActionT\n    | UploadCsvFileBeginActionT\n    | UploadCsvFileSuccessActionT\n    | UploadCsvFileFailActionT\n    | ResetRatesActionT;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './NewOrderParametersSettingsForm.scss';\n\nimport { useFormik } from 'formik';\nimport { useTranslation } from 'react-i18next';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm, { MAX_MAP_PRECISION_DELTA_METERS, MIN_MAP_PRECISION_DELTA_METERS } from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport prepareApiSystemSettings from './prepare-system-settings';\nimport NumberInput from 'common/components/NumberInput/NumberInput';\nimport withWidgetChangesDetector from 'common/components/SaveChangesNotification/withWidgetChangesDetector';\nimport { StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport Widget from 'common/components/Widget/Widget';\nimport values from 'lodash/values';\nimport { getMaskByType } from '../utils';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { getTimeRelativeStartDay, MS_IN_HOUR } from 'common/utils/time';\nimport RangeSelector, {\n    RangeSelectorLabelsConfigT,\n    RangeSelectorRangeT,\n} from 'common/components/RangeSelector/RangeSelector';\nimport TimeWindowIcon from 'common/icons/TimeWindowIcon';\nimport TimeIntervalDurationPillLabel from 'common/layouts/NewOrderPage/ShipmentDetailsForm/TimeIntervalDurationPillLabel/TimeIntervalDurationPillLabel';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport HiddenSubmitButtonForKeyboardEnter from 'common/components/HiddenEnterSubmitButton/HiddenSubmitButtonForKeyboardEnter';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\nimport { SystemSettingsFormCommonPropsT } from 'broker-admin/layouts/SettingsPage/SystemSettings/models';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport { useWatchFormAnyErrors } from 'common/utils/hooks/useWatchFormFormHasErrors';\n\nconst cx = classNames.bind(styles);\n\nconst UNIT_TYPE_MAP = {\n    [FieldsEnum.urgentOrderProcessingDelay]: UnitTypeEnum.hoursAbbreviation,\n    [FieldsEnum.regularOrderProcessingDelay]: UnitTypeEnum.hoursAbbreviation,\n    [FieldsEnum.minWindowSize]: UnitTypeEnum.minutesAbbreviation,\n    [FieldsEnum.maxWindowSize]: UnitTypeEnum.minutesAbbreviation,\n    [FieldsEnum.orderCreationSeconds]: UnitTypeEnum.secondsAbbreviation,\n    [FieldsEnum.hvoEmissionPercent]: UnitTypeEnum.percentsAbbreviation,\n};\n\nconst STEP_MAP = {\n    [FieldsEnum.urgentOrderProcessingDelay]: 1,\n    [FieldsEnum.regularOrderProcessingDelay]: 1,\n    [FieldsEnum.minWindowSize]: 30,\n    [FieldsEnum.maxWindowSize]: 30,\n    [FieldsEnum.orderCreationSeconds]: 1,\n    [FieldsEnum.hvoEmissionPercent]: 1,\n};\n\nconst FIELD_LABEL_T_MAP = {\n    [FieldsEnum.urgentOrderProcessingDelay]:\n        'price-settings.new-order-parameters-form.fields.urgentOrderProcessingDelay.label',\n    [FieldsEnum.regularOrderProcessingDelay]:\n        'price-settings.new-order-parameters-form.fields.regularOrderProcessingDelay.label',\n    [FieldsEnum.minWindowSize]: 'price-settings.new-order-parameters-form.fields.minWindowSize.label',\n    [FieldsEnum.maxWindowSize]: 'price-settings.new-order-parameters-form.fields.maxWindowSize.label',\n    [FieldsEnum.brokerWorkingHours]: 'price-settings.new-order-parameters-form.fields.brokerWorkingHours.label',\n    [FieldsEnum.orderCreationSeconds]: 'price-settings.new-order-parameters-form.fields.orderCreationSeconds.label',\n    [FieldsEnum.quantumMinutes]: 'price-settings.new-order-parameters-form.fields.quantumMinutes.label',\n    [FieldsEnum.hvoEmissionPercent]: 'price-settings.new-order-parameters-form.fields.hvoEmissionPercent.label',\n};\n\nconst FIELD_DESCRIPTION_T_MAP = {\n    [FieldsEnum.urgentOrderProcessingDelay]:\n        'price-settings.new-order-parameters-form.fields.urgentOrderProcessingDelay.description',\n    [FieldsEnum.regularOrderProcessingDelay]:\n        'price-settings.new-order-parameters-form.fields.regularOrderProcessingDelay.description',\n    [FieldsEnum.minWindowSize]: 'price-settings.new-order-parameters-form.fields.minWindowSize.description',\n    [FieldsEnum.maxWindowSize]: 'price-settings.new-order-parameters-form.fields.maxWindowSize.description',\n    [FieldsEnum.brokerWorkingHours]: 'price-settings.new-order-parameters-form.fields.brokerWorkingHours.description',\n    [FieldsEnum.orderCreationSeconds]:\n        'price-settings.new-order-parameters-form.fields.orderCreationSeconds.description',\n    [FieldsEnum.quantumMinutes]: 'price-settings.new-order-parameters-form.fields.quantumMinutes.description',\n    [FieldsEnum.hvoEmissionPercent]: 'price-settings.new-order-parameters-form.fields.hvoEmissionPercent.description',\n};\n\ntype PropsT = SystemSettingsFormCommonPropsT;\n\ntype QuantumT = '15' | '30' | '60';\ntype QuantumOptionT = {\n    label: React.ReactNode;\n    value: QuantumT;\n};\n\nconst quantumAvailableValues: QuantumT[] = ['15', '30', '60'];\n\nconst ALL_FIELDS = values(FieldsEnum);\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(ALL_FIELDS);\n\ntype NumberFieldsT =\n    | FieldsEnum.minWindowSize\n    | FieldsEnum.maxWindowSize\n    | FieldsEnum.orderCreationSeconds\n    | FieldsEnum.urgentOrderProcessingDelay\n    | FieldsEnum.hvoEmissionPercent\n    | FieldsEnum.regularOrderProcessingDelay;\n\nconst BROKER_WORKING_HOURS_RANGE: TimeWindowT = [0, 23 * MS_IN_HOUR];\nconst BROKER_WORKING_HOURS_RANGES: Array<RangeSelectorRangeT> = [];\n\nconst labelsConfig: RangeSelectorLabelsConfigT = {\n    shownLabelCount: 6,\n    shownStepCount: 2,\n    hasStartStep: true,\n    hasEndStep: true,\n};\n\nconst NewOrderParametersSettingsForm: React.FC<PropsT> = (props) => {\n    const { systemSettings, isLoading, title, onUpdate } = props;\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values, { systemSettings });\n    }, [t, systemSettings]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues(systemSettings);\n        const errors = validateForm(t, values, { systemSettings });\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [systemSettings]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const apiSystemSettings = prepareApiSystemSettings(values);\n            onUpdate(apiSystemSettings);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormCallbacks) {\n            remoteFormActionsContext.setRemoteFormCallbacks({\n                submit: formik.submitForm,\n                reset: formik.resetForm,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.submitForm, formik.resetForm]);\n\n    const hasFormAnyErros = useWatchFormAnyErrors(formik.errors);\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormState) {\n            remoteFormActionsContext.setRemoteFormState({\n                hasChanges: hasAnyFieldValueChanges,\n                hasErrors: hasFormAnyErros,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasFormAnyErros, hasAnyFieldValueChanges]);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormRequest) {\n            remoteFormActionsContext.setRemoteFormRequest({\n                isLoading,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isLoading]);\n\n    const WidgetChangesDetector = withWidgetChangesDetector(formik.values, initialValues);\n\n    const renderNumberField = (name: NumberFieldsT): React.ReactNode => {\n        return (\n            <FormikField\n                className={cx('field')}\n                name={name}\n                error={formik.errors[name]}\n                meta={formik.getFieldMeta(name)}\n                label={t(FIELD_LABEL_T_MAP[name])}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n                tooltipNode={\n                    <TooltipContent theme={TooltipContentThemeEnum.black} width={150}>\n                        {t(FIELD_DESCRIPTION_T_MAP[name])}\n                    </TooltipContent>\n                }\n            >\n                {(props) => (\n                    <NumberInput\n                        name={name}\n                        unitType={UNIT_TYPE_MAP[name]}\n                        mask={getMaskByType(UNIT_TYPE_MAP[name])}\n                        step={STEP_MAP[name]}\n                        value={formik.values[name]}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                        hasChanges={props.hasChanges}\n                    />\n                )}\n            </FormikField>\n        );\n    };\n\n    const quantumOptions: QuantumOptionT[] = quantumAvailableValues.map((value) => {\n        return {\n            label: <UnitTypeCount count={+value} type={UnitTypeEnum.minutesAbbreviation} />,\n            value,\n        };\n    });\n\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <Widget className={cx('widget')} title={title} rightNode={<WidgetChangesDetector fields={ALL_FIELDS} />}>\n                <div className={cx('widget__inner')}>\n                    <FieldGroup className={cx('field-group')}>\n                        {renderNumberField(FieldsEnum.minWindowSize)}\n                        {renderNumberField(FieldsEnum.maxWindowSize)}\n                    </FieldGroup>\n                    <FieldGroup className={cx('field-group')}>\n                        {renderNumberField(FieldsEnum.urgentOrderProcessingDelay)}\n                        {renderNumberField(FieldsEnum.regularOrderProcessingDelay)}\n                    </FieldGroup>\n                    <FieldGroup className={cx('field-group')}>\n                        {renderNumberField(FieldsEnum.orderCreationSeconds)}\n                        <FormikField\n                            className={cx('field')}\n                            label={t(FIELD_LABEL_T_MAP[FieldsEnum.quantumMinutes])}\n                            name={FieldsEnum.quantumMinutes}\n                            error={formik.errors[FieldsEnum.quantumMinutes]}\n                            meta={formik.getFieldMeta(FieldsEnum.quantumMinutes)}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                            tooltipNode={\n                                <TooltipContent theme={TooltipContentThemeEnum.black} width={150}>\n                                    {t(FIELD_DESCRIPTION_T_MAP[FieldsEnum.quantumMinutes])}\n                                </TooltipContent>\n                            }\n                        >\n                            {(props) => (\n                                <DropdownInput<QuantumOptionT, QuantumT>\n                                    selectedValue={formik.values[FieldsEnum.quantumMinutes] as QuantumT}\n                                    options={quantumOptions}\n                                    onSelect={props.onChange}\n                                    renderOption={(option) => (option ? <span>{option.label}</span> : null)}\n                                    getOptionValue={(option) => option.value}\n                                    overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasChanges={props.hasChanges}\n                                />\n                            )}\n                        </FormikField>\n                    </FieldGroup>\n                    <FieldGroup className={cx('field-group')}>\n                        <FormikField\n                            className={cx('field')}\n                            name={FieldsEnum.mapPrecisionDelta}\n                            error={formik.errors[FieldsEnum.mapPrecisionDelta]}\n                            meta={formik.getFieldMeta(FieldsEnum.mapPrecisionDelta)}\n                            label={t('price-settings.new-order-parameters-form.fields.mapPrecisionDelta.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                            tooltipNode={\n                                <TooltipContent theme={TooltipContentThemeEnum.black} width={150}>\n                                    {t(\n                                        'price-settings.new-order-parameters-form.fields.mapPrecisionDelta.description',\n                                        {\n                                            minValidValue: MIN_MAP_PRECISION_DELTA_METERS.toString(),\n                                            maxValidValue: MAX_MAP_PRECISION_DELTA_METERS.toString(),\n                                        },\n                                    )}\n                                </TooltipContent>\n                            }\n                        >\n                            {(props) => (\n                                <NumberInput\n                                    name={FieldsEnum.mapPrecisionDelta}\n                                    unitType={UnitTypeEnum.metersAbbreviation}\n                                    mask={getMaskByType(UnitTypeEnum.metersAbbreviation)}\n                                    step={50}\n                                    value={formik.values[FieldsEnum.mapPrecisionDelta]}\n                                    onChange={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasError={props.hasError}\n                                    hasWarning={props.hasWarning}\n                                    hasChanges={props.hasChanges}\n                                />\n                            )}\n                        </FormikField>\n                        {renderNumberField(FieldsEnum.hvoEmissionPercent)}\n                    </FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--range')}\n                        name={FieldsEnum.brokerWorkingHours}\n                        error={formik.errors[FieldsEnum.brokerWorkingHours]}\n                        meta={formik.getFieldMeta(FieldsEnum.brokerWorkingHours)}\n                        label={\n                            <>\n                                <TimeWindowIcon\n                                    className={cx('icon')}\n                                    fillColor={StyleGuideColorsEnum.brandAccent}\n                                    strokeColor={StyleGuideColorsEnum.brandDark}\n                                />\n                                {t(FIELD_LABEL_T_MAP[FieldsEnum.brokerWorkingHours])}\n                            </>\n                        }\n                        subLabel={\n                            <TimeIntervalDurationPillLabel\n                                className={cx('duration')}\n                                isDayRelative\n                                timeWindow={formik.values[FieldsEnum.brokerWorkingHours]}\n                            />\n                        }\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                        tooltipNode={\n                            <TooltipContent theme={TooltipContentThemeEnum.black} width={150}>\n                                {t(FIELD_DESCRIPTION_T_MAP[FieldsEnum.brokerWorkingHours])}\n                            </TooltipContent>\n                        }\n                    >\n                        {(props) => (\n                            <RangeSelector\n                                valuesRange={BROKER_WORKING_HOURS_RANGE}\n                                availableValues={BROKER_WORKING_HOURS_RANGE}\n                                ranges={BROKER_WORKING_HOURS_RANGES}\n                                values={formik.values[FieldsEnum.brokerWorkingHours]}\n                                valueStep={MS_IN_HOUR / 2}\n                                labelsConfig={labelsConfig}\n                                renderLabel={(value: number) => {\n                                    const relativeTime = getTimeRelativeStartDay(value);\n                                    if (value && relativeTime === '00:00') {\n                                        return '23:59';\n                                    }\n\n                                    return relativeTime;\n                                }}\n                                onSelect={props.onChange}\n                            />\n                        )}\n                    </FormikField>\n                    <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n                    <HiddenSubmitButtonForKeyboardEnter />\n                </div>\n            </Widget>\n        </form>\n    );\n};\n\nexport default React.memo(NewOrderParametersSettingsForm) as typeof NewOrderParametersSettingsForm;\n","import React from 'react';\nimport { DocumentTypeEnum } from 'common/utils/api/models';\nimport CommonDocumentParamsDetails from './CommonDocumentParamsDetails/CommonDocumentParamsDetails';\nimport EvidenceOfTaxDetails from './EvidenceOfTaxDetails/EvidenceOfTaxDetails';\nimport { DocumentVersionT } from 'common/store/documents/models';\nimport { DictDocumentT } from 'common/store/documents-dict/models';\n\ntype PropsT = {\n    dictDocument: DictDocumentT | null;\n    actualVersion: DocumentVersionT | null;\n    partnerId: PartnerIdT | null;\n};\n\nconst DocumentParamsDetails: React.FC<PropsT> = (props) => {\n    const { actualVersion, dictDocument, partnerId } = props;\n\n    switch (dictDocument?.type) {\n        case DocumentTypeEnum.evidenceOfTaxVat: {\n            return <EvidenceOfTaxDetails actualVersion={actualVersion} partnerId={partnerId} />;\n        }\n        default: {\n            return <CommonDocumentParamsDetails actualVersion={actualVersion} />;\n        }\n    }\n};\n\nexport default DocumentParamsDetails;\n","import React from 'react';\n\nexport type SideBarFooterHeightContextT = {\n    value: number;\n    setValue: (value: number) => void;\n};\n\nconst useSideBarFooterHeight = (): SideBarFooterHeightContextT => {\n    const [value, setValue] = React.useState<number>(0);\n\n    return {\n        value,\n        setValue,\n    };\n};\n\nexport default useSideBarFooterHeight;\n","import { ContextRouteStopFakeIdT, DeadheadPreviewContextResponseT } from '../models';\n\nexport const getDeletedStopFakeIds = (\n    previewContext: DeadheadPreviewContextResponseT | null,\n    previewContextAfterModify: DeadheadPreviewContextResponseT | null,\n): Array<ContextRouteStopFakeIdT> => {\n    const prevStopsIds = previewContext?.stops?.slice(1)?.map((stop) => stop.fakeId) || [];\n\n    const stopsIdsAfterModify = previewContextAfterModify?.stops?.slice(1)?.map((stop) => stop.fakeId) || [];\n\n    return prevStopsIds.filter((id) => !stopsIdsAfterModify.includes(id));\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"progress-bar\":\"AlertProgressBar__progress-bar___sZuSd\",\"line\":\"AlertProgressBar__line___btoEA\",\"line--isBackground\":\"AlertProgressBar__line--isBackground___BeGvc\",\"line--isProgress\":\"AlertProgressBar__line--isProgress___sOeWa\",\"fadeIn\":\"AlertProgressBar__fadeIn___DOEVG\",\"blinking\":\"AlertProgressBar__blinking___VjU3y\"};","import isNumber from 'lodash/isNumber';\n\nimport { PartnerDetailsT } from 'broker-admin/store/partner/details/models';\nimport { EditUnavailableReasonEnum, PartnerTypeEnum } from 'common/utils/api/models';\n\nexport const checkNeedShowCreditLimit = (partnerDetails: PartnerDetailsT | null): partnerDetails is PartnerDetailsT =>\n    partnerDetails?.type === PartnerTypeEnum.shipper &&\n    partnerDetails.editUnavailableReason === EditUnavailableReasonEnum.externallyManaged &&\n    isNumber(partnerDetails.creditLimit);\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport { Trans } from 'react-i18next';\nimport { ApiDocumentTypeT } from 'common/utils/api/models';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport AsyncDictDocumentNameLabel from 'common/components/AsyncDictDocumentNameLabel/AsyncDictDocumentNameLabel';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\nimport styles from './RejectedDocumentCard.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    documentType: ApiDocumentTypeT;\n};\n\nconst RejectedDocumentCard: React.FC<PropsT> = React.memo(({ documentType }) => {\n    const { partnerType } = usePartnerContext();\n\n    return (\n        <NotificationCardInnerLayout className={cx('inner')}>\n            <Trans\n                i18nKey=\"common:notifications.document-rejected\"\n                components={{\n                    documentName: (\n                        <NotificationEntityLabel\n                            isBold\n                            text={<AsyncDictDocumentNameLabel partnerType={partnerType} documentType={documentType} />}\n                        />\n                    ),\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default RejectedDocumentCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"type\":\"TrailerTypeCell__type___GVbHa\",\"fadeIn\":\"TrailerTypeCell__fadeIn___nR6og\",\"blinking\":\"TrailerTypeCell__blinking___CVNWz\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './Pagination.scss';\nimport { useTranslation } from 'react-i18next';\nimport isNil from 'lodash/isNil';\nimport noop from 'lodash/noop';\nimport LeftArrowIcon from 'common/icons/LeftArrowIcon';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport RightArrowIcon from 'common/icons/RightArrowIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport Input from 'common/components/Input/Input';\n\nexport type PropsT = {\n    current: number | null | undefined;\n    count: number | null | undefined;\n    goToPage: (pageNumber: PageNumberT) => void;\n};\n\nconst cx = classNames.bind(styles);\n\nconst ENTER_KEY = 'Enter';\n\nconst colorsMap = {\n    disabled: StyleGuideColorsEnum.light,\n    active: StyleGuideColorsEnum.charcoal,\n};\n\nconst Pagination: React.FC<PropsT> = React.memo((props) => {\n    const { current, count, goToPage } = props;\n    const { t } = useTranslation();\n\n    const getInputText = (current: PropsT['current'], count: PropsT['count']): string => {\n        return t('common:pagination', {\n            currentPage: (current || 0) + 1,\n            pages: count,\n        });\n    };\n\n    const [inputValue, setInputValue] = React.useState(getInputText(current, count));\n\n    React.useEffect(() => {\n        setInputValue(getInputText(current, count));\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [current, count]);\n\n    const isShowPagination = !!(count && count > 1);\n\n    if (isNil(current) || isNil(count) || !isShowPagination) {\n        return null;\n    }\n\n    const isDisabledPrevPage = current === 0;\n    const isDisabledNextPage = current === count - 1;\n\n    const goToPrevPage = () => {\n        if (isDisabledPrevPage) {\n            return;\n        }\n        goToPage(current - 1);\n    };\n\n    const goToNextPage = () => {\n        if (isDisabledNextPage) {\n            return;\n        }\n\n        goToPage(current + 1);\n    };\n\n    const tryChangePageByInputValue = () => {\n        const separator = t('common:pagination', {\n            currentPage: '',\n            pages: '',\n        }).trim();\n\n        const [rawPage, rawCount] = inputValue.split(separator);\n\n        const parsedPage = +rawPage;\n        const parsedCount = +rawCount;\n        const isValidPage = !Number.isNaN(parsedPage) && parsedPage > 0 && parsedPage <= count;\n        const isSamePage = current === parsedPage - 1;\n        const isSameCount = parsedCount === count;\n\n        if (isValidPage && !isSamePage) {\n            goToPage(parsedPage - 1);\n        }\n\n        if (!isValidPage || (!isSameCount && isSamePage)) {\n            setInputValue(getInputText(current, count));\n        }\n    };\n\n    const handleBlur = (): void => {\n        tryChangePageByInputValue();\n    };\n\n    const handleKeyUp = (event: React.KeyboardEvent<HTMLInputElement>): void => {\n        if (event.key === ENTER_KEY) {\n            tryChangePageByInputValue();\n        }\n    };\n\n    const testSelector = 'pagination';\n\n    return (\n        <div className={cx('pagination')} data-test-selector={testSelector}>\n            <TransparentTrigger\n                withoutBorderRadius\n                isDisabled={isDisabledPrevPage}\n                onClick={isDisabledPrevPage ? noop : goToPrevPage}\n                testSelector={`${testSelector}_prev-page`}\n                leftIcon={<LeftArrowIcon fillColor={isDisabledPrevPage ? colorsMap.disabled : colorsMap.active} />}\n                reflectionTheme={ReflectionThemeEnum.light}\n            />\n            <span className={cx('input-wrap')}>\n                <span className={cx('width-machine')}>{inputValue}</span>\n                <Input\n                    className={cx('input')}\n                    name=\"page\"\n                    testSelectorPrefix={testSelector}\n                    value={inputValue}\n                    onChange={setInputValue}\n                    onBlur={handleBlur}\n                    onKeyUp={handleKeyUp}\n                />\n            </span>\n            <TransparentTrigger\n                withoutBorderRadius\n                isDisabled={isDisabledNextPage}\n                onClick={isDisabledNextPage ? noop : goToNextPage}\n                testSelector={`${testSelector}_next-page`}\n                leftIcon={<RightArrowIcon fillColor={isDisabledNextPage ? colorsMap.disabled : colorsMap.active} />}\n                reflectionTheme={ReflectionThemeEnum.light}\n            />\n        </div>\n    );\n});\n\nexport default Pagination;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './RevokedDocumentCard.scss';\nimport { Trans } from 'react-i18next';\nimport { ApiDocumentTypeT } from 'common/utils/api/models';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport AsyncDictDocumentNameLabel from 'common/components/AsyncDictDocumentNameLabel/AsyncDictDocumentNameLabel';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    documentType: ApiDocumentTypeT;\n};\n\nconst RevokedDocumentCard: React.FC<PropsT> = React.memo((props) => {\n    const { documentType } = props;\n\n    const { partnerType } = usePartnerContext();\n\n    return (\n        <NotificationCardInnerLayout className={cx('inner')}>\n            <Trans\n                i18nKey=\"common:notifications.document-revoked\"\n                components={{\n                    documentName: (\n                        <NotificationEntityLabel\n                            isBold\n                            text={<AsyncDictDocumentNameLabel partnerType={partnerType} documentType={documentType} />}\n                        />\n                    ),\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default RevokedDocumentCard;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { FetchBrokerTeamsPageActionT } from './types';\nimport { BrokerTeamShortT } from './models';\nimport {\n    fetchBrokerTeamsPage,\n    fetchBrokerTeamsPageBegin,\n    fetchBrokerTeamsPageError,\n    fetchBrokerTeamsPageSuccess,\n    resetBrokerTeams,\n} from './slice';\nimport { selectBrokerTeamsPages, selectBrokerTeamsQuery } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { checkIsSameQuery, checkShouldEmitChangePage } from 'common/utils/pagination/utils';\nimport { brokerTeamsPaginationChannel } from 'broker-admin/store/broker-teams/channels';\n\nfunction* fetchBrokerTeamsSaga(action: FetchBrokerTeamsPageActionT): WrapGeneratorT<void> {\n    const { pageNumber, query, options } = action.payload;\n\n    const prevQuery: ReturnType<typeof selectBrokerTeamsQuery> = yield select(selectBrokerTeamsQuery);\n    const pages: ReturnType<typeof selectBrokerTeamsPages> = yield select(selectBrokerTeamsPages);\n    const isSameQuery = checkIsSameQuery(query, prevQuery);\n    const isNeedRequest = checkNeedRequest(pages[pageNumber]?.requestStatus, options);\n    if (isSameQuery && !isNeedRequest) {\n        return;\n    }\n    if (!isSameQuery) {\n        yield put(resetBrokerTeams({ mutationListOptions: { savingPageNumber: pageNumber } }));\n    }\n\n    yield put(fetchBrokerTeamsPageBegin({ query, pageNumber }));\n\n    const [error, response]: ReturnApiT<typeof brokerTranziitApi.getTeamsFilter> =\n        yield brokerTranziitApi.getTeamsFilter({\n            ...query,\n            page: pageNumber,\n        });\n\n    if (error) {\n        yield put(fetchBrokerTeamsPageError({ query, pageNumber, error }));\n        return;\n    }\n\n    const pageResponse = response\n        ? {\n              content: response.content?.map(\n                  (item): BrokerTeamShortT => ({\n                      ...item,\n                      id: item.id || '-',\n                  }),\n              ),\n              totalElements: response.totalElements,\n              totalPages: response.totalPages,\n              page: pageNumber,\n          }\n        : null;\n\n    yield put(fetchBrokerTeamsPageSuccess({ query, pageNumber, pageResponse }));\n\n    checkShouldEmitChangePage(pageNumber, response, brokerTeamsPaginationChannel);\n}\n\nfunction* brokerTeamsSaga(): WrapGeneratorT<void> {\n    yield takeEvery(fetchBrokerTeamsPage.type, fetchBrokerTeamsSaga);\n}\n\nexport default brokerTeamsSaga;\n","import React from 'react';\nimport classNames from 'classnames/bind';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { useFormik } from 'formik';\n\nimport styles from './CreateExternalPartnerSidebarContent.scss';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport { ExternalPartnerCreationSidebarDataT } from './models';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport ExternalBusinessPartnerSuggest, {\n    ExternalBusinessPartnerOptionT,\n} from 'broker-admin/components/suggests/ExternalBusinessPartnerSuggest/ExternalBusinessPartnerSuggest';\nimport { SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { BrokerSidebarDataT } from 'broker-admin/layouts/SideBars/models';\nimport { createFromExternalPlatformPartner } from 'broker-admin/store/partners/actions';\nimport { selectPartnerCreationRequest } from 'broker-admin/store/partners/selectors';\nimport useCloseSidebarAfterRequest from 'common/utils/hooks/useCloseSidebarAfterRequest';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { ApiAllowedCompanyTypeT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport MapIcon from 'common/icons/MapIcon';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { logWarning } from 'common/utils/logger';\n\nconst cx = classNames.bind(styles);\n\ntype PartnerOptionT = {\n    label: string;\n    value: PartnerTypeEnum;\n};\n\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(Object.values(FieldsEnum));\n\ntype PropsT = SidebarContentPropsT<ExternalPartnerCreationSidebarDataT, BrokerSidebarDataT>;\n\nconst CreateExternalPartnerSidebarContent: React.FC<PropsT> = (props) => {\n    const { onGoBack, onClose, setNeedCloseConfirmation } = props;\n    const dispatch = useDispatch();\n    const { t } = useTranslation();\n    const creationRequestStatus = useSelector(selectPartnerCreationRequest);\n    const [selectedPartner, setSelectedPartner] = React.useState<ExternalBusinessPartnerOptionT | null>(null);\n\n    const validate = React.useMemo(() => (values: FormValuesT) => validateForm(t, values), [t]);\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues();\n        return [values, validateForm(t, values)];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            if (!selectedPartner) {\n                return;\n            }\n\n            const partnerId = values[FieldsEnum.partnerId];\n            if (!partnerId) {\n                logWarning('Failed to create external partner, empty partnerId');\n                return;\n            }\n\n            dispatch(createFromExternalPlatformPartner(partnerId));\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const handleSelectPartnerType = React.useCallback(\n        (partnerType: PartnerTypeEnum | null) => {\n            formik.setFieldValue(FieldsEnum.partnerType, partnerType);\n            formik.setFieldValue(FieldsEnum.partnerId, '');\n            setSelectedPartner(null);\n        },\n        [formik],\n    );\n\n    const handleSelectPartner = React.useCallback(\n        (partnerId: PartnerIdT | null | undefined, option?: ExternalBusinessPartnerOptionT) => {\n            setSelectedPartner(option || null);\n            formik.setFieldValue(FieldsEnum.partnerId, partnerId || '');\n        },\n        [formik],\n    );\n\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n    React.useEffect(() => {\n        setNeedCloseConfirmation(hasAnyFieldValueChanges);\n    }, [hasAnyFieldValueChanges, setNeedCloseConfirmation]);\n\n    useCloseSidebarAfterRequest(creationRequestStatus, onGoBack || onClose);\n\n    const partnerTypeOptions = React.useMemo(\n        (): Array<PartnerOptionT> => [\n            { label: t('common:company-type.SHIPPER'), value: PartnerTypeEnum.shipper },\n            { label: t('common:company-type.CARRIER'), value: PartnerTypeEnum.carrier },\n        ],\n        [t],\n    );\n    const legalAddress = selectedPartner?.legalAddress;\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('form')}>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent title={t('partners-table.create-form.title')} onClose={onClose} />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <div className={cx('section')}>\n                    <div className={cx('section__block')}>\n                        <Alert\n                            className={cx('alert')}\n                            icon={\n                                <MapIcon\n                                    size={DEFAULT_ICON_SIZE}\n                                    fillColor={StyleGuideColorsEnum.white}\n                                    strokeColor={StyleGuideColorsEnum.white}\n                                />\n                            }\n                            size={AlertSizeEnum.small}\n                            theme={AlertThemeEnum.slate}\n                        >\n                            {t('partners-table.create-form.external-management-partner-address-details-alert')}\n                        </Alert>\n                        <FormikField\n                            className={cx('field--type')}\n                            name={FieldsEnum.partnerType}\n                            error={formik.errors[FieldsEnum.partnerType]}\n                            meta={formik.getFieldMeta(FieldsEnum.partnerType)}\n                            label={t('partners-table.create-form.fields.type.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(fieldProps) => (\n                                <DropdownInput<PartnerOptionT, PartnerTypeEnum | null>\n                                    selectedValue={formik.values[FieldsEnum.partnerType]}\n                                    placeholder={t('partners-table.create-form.fields.type.placeholder')}\n                                    options={partnerTypeOptions}\n                                    onSelect={handleSelectPartnerType}\n                                    renderOption={(option) => <span>{option?.label}</span>}\n                                    getOptionValue={(option) => option?.value}\n                                    overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                    hasWarning={fieldProps.hasWarning}\n                                    hasError={fieldProps.hasError}\n                                />\n                            )}\n                        </FormikField>\n                        <FormikField\n                            className={cx('field--partner')}\n                            name={FieldsEnum.partnerId}\n                            error={formik.errors[FieldsEnum.partnerId]}\n                            meta={formik.getFieldMeta(FieldsEnum.partnerId)}\n                            label={t('partners-table.create-form.fields.name.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(fieldProps) => (\n                                <ExternalBusinessPartnerSuggest\n                                    companyType={\n                                        (formik.values[FieldsEnum.partnerType] as ApiAllowedCompanyTypeT) || undefined\n                                    }\n                                    initialOption={null}\n                                    value={formik.values[FieldsEnum.partnerId]}\n                                    onSelect={handleSelectPartner}\n                                    placeholder={\n                                        formik.values[FieldsEnum.partnerType]\n                                            ? t('partners-table.create-form.fields.name.placeholder')\n                                            : t('partners-table.create-form.fields.name.select-type-first-placeholder')\n                                    }\n                                    overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                    isDisabled={!formik.values[FieldsEnum.partnerType]}\n                                    hasClearControl\n                                    hasError={fieldProps.hasError}\n                                    hasWarning={fieldProps.hasWarning}\n                                    onBlur={fieldProps.onBlur}\n                                    onFocus={fieldProps.onFocus}\n                                />\n                            )}\n                        </FormikField>\n                        <ReadOnlyField\n                            label={t('partners-table.create-form.fields.street1.label')}\n                            value={legalAddress?.street1 || ''}\n                            placeholder={t('partners-table.create-form.auto-filled')}\n                        />\n                        <ReadOnlyField\n                            label={t('partners-table.create-form.fields.street2.label')}\n                            value={legalAddress?.street2 || ''}\n                            placeholder={t('partners-table.create-form.auto-filled')}\n                        />\n                        <ReadOnlyField\n                            label={t('partners-table.create-form.fields.country.label')}\n                            value={legalAddress?.country || ''}\n                            icon={<FlagIcon countryCode={legalAddress?.country} />}\n                            placeholder={t('partners-table.create-form.auto-filled')}\n                        />\n                        <FieldGroup spaces={1}>\n                            <ReadOnlyField\n                                className={cx('field--zip')}\n                                label={t('partners-table.create-form.fields.zip.label')}\n                                value={legalAddress?.zipCode || ''}\n                                placeholder={t('partners-table.create-form.auto-filled')}\n                            />\n                            <ReadOnlyField\n                                className={cx('field--city')}\n                                label={t('partners-table.create-form.fields.city.label')}\n                                value={legalAddress?.city || ''}\n                                placeholder={t('partners-table.create-form.auto-filled')}\n                            />\n                        </FieldGroup>\n                    </div>\n                </div>\n                <FooterSideBarLayout hasPaddings>\n                    <Button\n                        theme={ButtonThemeEnum.primary}\n                        isLoading={creationRequestStatus.loading}\n                        className={cx('button--add')}\n                        type=\"submit\"\n                    >\n                        {t('partners-table.create-form.submit')}\n                    </Button>\n                </FooterSideBarLayout>\n            </SideBarLayout>\n        </form>\n    );\n};\n\nexport default CreateExternalPartnerSidebarContent;\n","// extracted by mini-css-extract-plugin\nexport default {\"location\":\"LocationCell__location___rGV9f\",\"fadeIn\":\"LocationCell__fadeIn___aKsjO\",\"blinking\":\"LocationCell__blinking___NOy6_\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './BaseDocumentsLayout.scss';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { downloadDocument, revokeDocument, uploadDocument } from 'common/store/documents/actions';\nimport { DocumentRequiredEnum, DocumentStatusEnum, ApiDocumentTypeT } from 'common/utils/api/models';\nimport { selectDocumentsDictById } from 'common/store/documents-dict/selectors';\nimport {\n    selectUpdateCompanyDocumentsRequest,\n    selectUploadCompanyDocumentsRequest,\n} from 'common/store/documents/selectors';\nimport { logWarning } from 'common/utils/logger';\nimport UploadDocumentConfirmation, {\n    ConfirmUploadDocumentModalDataT,\n} from 'common/layouts/BaseDocumentsLayout/dialogs/UploadDocumentConfirmation/UploadDocumentConfirmation';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport BaseDocumentsTable, {\n    DocumentRowT,\n} from 'common/layouts/BaseDocumentsLayout/BaseDocumentsTable/BaseDocumentsTable';\nimport { useOpenLeftSidebar } from 'common/layouts/SideBars/hooks';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { pickFile } from 'common/utils/pick-file';\nimport RevokeDocumentsConfirmation, {\n    ConfirmRevokeDocumentModalDataT,\n} from 'common/layouts/BaseDocumentsLayout/dialogs/RevokeDocumentsConfirmation/RevokeDocumentsConfirmation';\n\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport usePartnerPermissionsContext from 'common/utils/hooks/usePartnerPermissionsContext';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    isAllDocumentsVerified: boolean;\n\n    isShowReviewUser: boolean;\n\n    tableName: string;\n    isLoading: boolean;\n\n    rows: Array<DocumentRowT>;\n    testSelector?: string;\n    documentStatusesAttentionSet?: Set<DocumentStatusEnum | null>;\n\n    navigationTabs: React.ReactNode;\n};\n\nconst BaseDocumentsLayout: React.FC<PropsT> = React.memo((props) => {\n    const {\n        isAllDocumentsVerified,\n        isLoading,\n        isShowReviewUser,\n        rows,\n        tableName,\n        testSelector,\n        documentStatusesAttentionSet,\n        navigationTabs,\n    } = props;\n\n    const { partnerId, partnerType } = usePartnerContext();\n\n    const partnerPermissions = usePartnerPermissionsContext();\n\n    const dispatch = useDispatch();\n\n    const confirmUploadDocumentModalDialog = useModalDialog<ConfirmUploadDocumentModalDataT>();\n    const confirmRevokeDocumentModalDialog = useModalDialog<ConfirmRevokeDocumentModalDataT>();\n\n    const uploadRequest = useSelector(selectUploadCompanyDocumentsRequest(partnerId));\n    const updateRequest = useSelector(selectUpdateCompanyDocumentsRequest(partnerId));\n\n    const isWaitAction = uploadRequest.loading || updateRequest.loading;\n\n    const documentsDictById = useSelector(selectDocumentsDictById(partnerType));\n\n    const handleDownloadDocument = (documentId: DocumentIdT) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleDownloadDocument');\n            return;\n        }\n        dispatch(downloadDocument(documentId, partnerId));\n    };\n\n    const onConfirmRevokeDocument = (id: DocumentIdT) => {\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in onConfirmRevokeDocument');\n            return;\n        }\n        dispatch(revokeDocument(id, partnerId, partnerType));\n    };\n\n    const onConfirmUploadDocument = (data: ConfirmUploadDocumentModalDataT): void => {\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in onConfirmUploadDocument');\n            return;\n        }\n        pickFile('image/*,application/pdf', (file) => {\n            dispatch(uploadDocument(data.dictDocumentId, file, partnerId, partnerType));\n        });\n    };\n\n    const handleUploadDocument = (dictDocumentId: DictDocumentFakeIdT) => {\n        const dictDocument = documentsDictById[dictDocumentId];\n\n        const shouldConfirm = dictDocument?.required === DocumentRequiredEnum.must && isAllDocumentsVerified;\n        if (shouldConfirm) {\n            confirmUploadDocumentModalDialog.setData({\n                dictDocumentId,\n            });\n        } else {\n            onConfirmUploadDocument({ dictDocumentId });\n        }\n    };\n\n    const handleRevokeDocument = (dictDocumentId: DictDocumentFakeIdT, id: DocumentIdT) => {\n        if (!partnerType) {\n            logWarning('Empty partnerType in handleRevokeDocument');\n            return;\n        }\n        confirmRevokeDocumentModalDialog.setData({\n            id,\n            dictDocumentId,\n            partnerType,\n        });\n    };\n\n    const handleEditDocumentInfo = (documentType: ApiDocumentTypeT) => {\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in handleEditDocumentInfo');\n            return;\n        }\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.document,\n            partnerId,\n            partnerType,\n            documentType,\n            initIsEditing: true,\n        });\n    };\n\n    useCloseModalDialogAfterRequest(uploadRequest, [confirmUploadDocumentModalDialog]);\n    useCloseModalDialogAfterRequest(updateRequest, [confirmRevokeDocumentModalDialog]);\n\n    const openLeftSidebar = useOpenLeftSidebar();\n    const handleOpenUserDetails = (userId: UserIdT | null) => {\n        if (!userId) {\n            logWarning('failed to open user details in dispatch details, empty user id');\n            return;\n        }\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in handleOpenUserDetails');\n            return;\n        }\n\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId,\n            partnerType,\n            userId,\n        });\n    };\n\n    const handleSelectTableRow = (row: DocumentRowT) => {\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in handleSelectTableRow');\n            return;\n        }\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.document,\n            documentType: row.dictDocument.type,\n            partnerId,\n            partnerType,\n            initIsEditing:\n                Boolean(partnerPermissions.canReviewDocuments) &&\n                row?.actualVersion?.status === DocumentStatusEnum.waitingForApprove,\n        });\n    };\n\n    return (\n        <>\n            <div className={cx('navigation-tabs')}>{navigationTabs}</div>\n            {isWaitAction && <LoaderOverlay />}\n            <BaseDocumentsTable\n                tableName={tableName}\n                testSelector={testSelector}\n                isLoading={isLoading}\n                rows={rows}\n                isShowReviewUser={isShowReviewUser}\n                documentStatusesAttentionSet={documentStatusesAttentionSet}\n                onSelectRow={handleSelectTableRow}\n                onOpenUserDetails={handleOpenUserDetails}\n                onRevokeDocument={handleRevokeDocument}\n                onEditDocumentInfo={handleEditDocumentInfo}\n                onDownloadDocument={handleDownloadDocument}\n                onUploadDocument={handleUploadDocument}\n            />\n            <RevokeDocumentsConfirmation\n                data={confirmRevokeDocumentModalDialog.data}\n                onCancel={confirmRevokeDocumentModalDialog.onCancel}\n                onClose={confirmRevokeDocumentModalDialog.onClose}\n                onConfirm={onConfirmRevokeDocument}\n                requestStatus={updateRequest}\n            />\n            <UploadDocumentConfirmation\n                data={confirmUploadDocumentModalDialog.data}\n                onCancel={confirmUploadDocumentModalDialog.onCancel}\n                onClose={confirmUploadDocumentModalDialog.onClose}\n                requestStatus={uploadRequest}\n                documentsDictById={documentsDictById}\n                onConfirm={onConfirmUploadDocument}\n            />\n        </>\n    );\n});\n\nexport default BaseDocumentsLayout;\n","import { ApiTruckDictTypeT, CountryCodeT } from 'common/utils/api/models';\n\nexport enum FieldsEnum {\n    truckModel = 'truckModel',\n    cabinColor = 'cabinColor',\n    countryCode = 'countryCode',\n    plateNumber = 'plateNumber',\n    vin = 'vin',\n    contract = 'contract',\n    ratePerKm = 'ratePerKm',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.truckModel]: ApiTruckDictTypeT['id'] | null;\n    [FieldsEnum.cabinColor]: string;\n    [FieldsEnum.countryCode]: CountryCodeT | null;\n    [FieldsEnum.plateNumber]: string;\n    [FieldsEnum.vin]: string;\n    [FieldsEnum.contract]: CarrierContractIdT | null;\n    [FieldsEnum.ratePerKm]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ReadOnlyFieldValue.scss';\nimport { UnitTypeEnum } from 'common/constants';\nimport UnitType from 'common/components/units/UnitType/UnitType';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    value: React.ReactNode;\n    unitType?: UnitTypeEnum;\n    icon?: React.ReactNode;\n    placeholder?: React.ReactNode;\n    rightNode?: React.ReactNode;\n    withInputLayout?: boolean;\n};\n\nexport const EMPTY_VALUE_PLACEHOLDER = '—';\n\nconst checkIsEmptyValue = (value: PropsT['value']): boolean => {\n    if (value || value === 0) {\n        return false;\n    }\n\n    return true;\n};\n\nconst ReadOnlyFieldValue: React.FC<PropsT> = React.memo((props) => {\n    const { withInputLayout, value, unitType, icon, rightNode } = props;\n\n    const placeholder = props.placeholder || EMPTY_VALUE_PLACEHOLDER;\n\n    return (\n        <div\n            className={cx('field-value', {\n                'field-value--withInputLayout': !!withInputLayout,\n            })}\n        >\n            {icon && <div className={cx('field-value__icon')}>{icon}</div>}\n            <div\n                className={cx('field-value__label', {\n                    'field-value__label--hasValue': !checkIsEmptyValue(value),\n                })}\n                title={typeof value === 'string' ? value : undefined}\n            >\n                {checkIsEmptyValue(value) ? placeholder : value}\n                {unitType ? <UnitType className={cx('unit')} type={unitType} /> : null}\n            </div>\n            {rightNode && <div className={cx('field-value__right-node')}>{rightNode}</div>}\n        </div>\n    );\n});\n\nexport { ReadOnlyFieldValue };\n","import React from 'react';\nimport GoogleMapContext from 'common/contexts/google-map-context';\n\nconst useGoogleMapsApiLoader = ({ onGoogleApiLoaded }: { onGoogleApiLoaded?: OnGoogleApiLoadedT }) => {\n    const googleMapContext = React.useContext(GoogleMapContext);\n\n    const onGoogleApiLoadedRef = React.useRef(onGoogleApiLoaded);\n    onGoogleApiLoadedRef.current = onGoogleApiLoaded;\n\n    const handleGoogleApiLoaded: OnGoogleApiLoadedT = React.useCallback(\n        (api) => {\n            const { map, maps } = api;\n\n            googleMapContext.googleMaps?.set(maps, map, ['geometry']);\n\n            if (onGoogleApiLoadedRef.current) {\n                onGoogleApiLoadedRef.current(api);\n            }\n        },\n        [googleMapContext],\n    );\n\n    return {\n        onGoogleApiLoaded: handleGoogleApiLoaded,\n    };\n};\n\nexport default useGoogleMapsApiLoader;\n","import { useState } from 'react';\nimport { OrderCreationPercentContextT } from '../contexts/order-creation-percent-context';\n\nexport const useOrderCreationPercentContextValue = (): OrderCreationPercentContextT => {\n    const [percent, setPercent] = useState<number>(0);\n\n    return {\n        percent,\n        setPercent,\n    };\n};\n","import { PageSortT, SortDirectionEnum } from 'common/utils/query';\nimport { FetchBrokerToursPageQueryT } from 'broker-admin/store/broker-tours/models';\nimport { BrokerToursQuickFilterEnum, BrokerToursSortEnum, QueryFiltersKeysEnum, QueryFiltersT } from './query-models';\n\nconst formatSort = (sort: PageSortT<BrokerToursSortEnum> | null): FetchBrokerToursPageQueryT['sort'] | null => {\n    switch (sort?.value) {\n        case BrokerToursSortEnum.createdDate: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'CREATED_DATE_ASC';\n            }\n            return 'CREATED_DATE_DESC';\n        }\n        case BrokerToursSortEnum.originDate: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'ORIGIN_DATE_ASC';\n            }\n            return 'ORIGIN_DATE_DESC';\n        }\n        case BrokerToursSortEnum.destinationDate: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'DESTINATION_DATE_ASC';\n            }\n            return 'DESTINATION_DATE_DESC';\n        }\n        default: {\n            return null;\n        }\n    }\n};\n\nconst getQueryFromQuickFilters = (quickFilter?: BrokerToursQuickFilterEnum): FetchBrokerToursPageQueryT => {\n    switch (quickFilter) {\n        case BrokerToursQuickFilterEnum.carrierUnassigned: {\n            return {\n                statusBar: 'CARRIER_UNASSIGNED',\n            };\n        }\n        case BrokerToursQuickFilterEnum.assetUnassigned: {\n            return {\n                statusBar: 'ASSETS_UNASSIGNED',\n            };\n        }\n        case BrokerToursQuickFilterEnum.driverUnassigned: {\n            return {\n                statusBar: 'DRIVER_UNASSIGNED',\n            };\n        }\n        case BrokerToursQuickFilterEnum.assigned: {\n            return {\n                statusBar: 'ASSIGNED',\n            };\n        }\n        case BrokerToursQuickFilterEnum.inTransit: {\n            return {\n                statusBar: 'IN_TRANSIT',\n            };\n        }\n        case BrokerToursQuickFilterEnum.canceled: {\n            return {\n                statusBar: 'CANCELED',\n            };\n        }\n        case BrokerToursQuickFilterEnum.finished: {\n            return {\n                statusBar: 'FINISHED',\n            };\n        }\n        default: {\n            return {};\n        }\n    }\n};\n\nexport const prepareFetchPageQuery = (\n    queryFilters: QueryFiltersT,\n    sort: PageSortT<BrokerToursSortEnum>,\n): FetchBrokerToursPageQueryT => {\n    const carrierIds = queryFilters[QueryFiltersKeysEnum.carrierIds] || [];\n    const tourTypes = queryFilters[QueryFiltersKeysEnum.tourTypes] || [];\n\n    const plateNumber = queryFilters[QueryFiltersKeysEnum.plateNumber];\n    return {\n        textSearch: queryFilters[QueryFiltersKeysEnum.searchText] || undefined,\n\n        originAddress: queryFilters[QueryFiltersKeysEnum.originAddress] || undefined,\n\n        destinationAddress: queryFilters[QueryFiltersKeysEnum.destinationAddress] || undefined,\n\n        plateNumber: plateNumber ? [plateNumber] : undefined,\n\n        createdDateFrom: queryFilters[QueryFiltersKeysEnum.dateCreatedFrom] || undefined,\n        createdDateTo: queryFilters[QueryFiltersKeysEnum.dateCreatedTo] || undefined,\n\n        originDateFrom: queryFilters[QueryFiltersKeysEnum.originDateFrom] || undefined,\n        originDateTo: queryFilters[QueryFiltersKeysEnum.originDateTo] || undefined,\n\n        destinationDateFrom: queryFilters[QueryFiltersKeysEnum.destinationDateFrom] || undefined,\n        destinationDateTo: queryFilters[QueryFiltersKeysEnum.destinationDateTo] || undefined,\n\n        declined: queryFilters[QueryFiltersKeysEnum.transportOrderDeclined] || undefined,\n        runningOutOfTimeToAssignCarrier:\n            queryFilters[QueryFiltersKeysEnum.runningOutOfTimeToAssignCarrier] || undefined,\n        runOutOfTimeToAssignCarrier: queryFilters[QueryFiltersKeysEnum.runOutOfTimeToAssignCarrier] || undefined,\n        runningOutOfTimeToAssignAssets: queryFilters[QueryFiltersKeysEnum.runningOutOfTimeToAssignAssets] || undefined,\n        runOutOfTimeToAssignAssets: queryFilters[QueryFiltersKeysEnum.runOutOfTimeToAssignAssets] || undefined,\n        runningOutOfTimeToAssignDriver: queryFilters[QueryFiltersKeysEnum.runningOutOfTimeToAssignDriver] || undefined,\n        runOutOfTimeToAssignDriver: queryFilters[QueryFiltersKeysEnum.runOutOfTimeToAssignDriver] || undefined,\n        noShow: queryFilters[QueryFiltersKeysEnum.noShow] || undefined,\n        missed: queryFilters[QueryFiltersKeysEnum.shipmentMissed] || undefined,\n        delaying: queryFilters[QueryFiltersKeysEnum.tourDelaying] || undefined,\n\n        carrierId: carrierIds?.length ? carrierIds : undefined,\n\n        type: tourTypes?.length ? tourTypes : undefined,\n\n        ...getQueryFromQuickFilters(queryFilters[QueryFiltersKeysEnum.quickFilter]),\n\n        sort: formatSort(sort) || undefined,\n    };\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"PhoneNumberDropdownOption__option___J8GtV\",\"option--isSelectable\":\"PhoneNumberDropdownOption__option--isSelectable___twUbv\",\"option--isSelected\":\"PhoneNumberDropdownOption__option--isSelected___UpfCp\",\"option__flag\":\"PhoneNumberDropdownOption__option__flag___r5558\",\"option__label\":\"PhoneNumberDropdownOption__option__label___lFvt_\",\"option__icon\":\"PhoneNumberDropdownOption__option__icon___pnwCB\",\"fadeIn\":\"PhoneNumberDropdownOption__fadeIn___J3q2U\",\"blinking\":\"PhoneNumberDropdownOption__blinking___lHw3j\"};","import { fetchStateMachineSteps } from 'common/store/consistent-state-machine/slice';\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { consistentStateMachineRefreshChannel } from 'common/store/consistent-state-machine/channels';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ConsistentStateMachineDescriptorT } from 'common/store/consistent-state-machine/models';\nimport { selectConsistentStateMachineItemState } from 'common/store/consistent-state-machine/selectors';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\n\nexport const useConsistentStateMachine = (\n    descriptor: ConsistentStateMachineDescriptorT | null,\n    { isAllowFetch }: { isAllowFetch: boolean },\n) => {\n    const dispatch = useDispatch();\n\n    useEffect(() => {\n        if (!descriptor || !isAllowFetch) {\n            return;\n        }\n\n        dispatch(\n            fetchStateMachineSteps({\n                descriptor,\n            }),\n        );\n    }, [dispatch, descriptor, isAllowFetch]);\n\n    const refreshPageHandler = React.useCallback(() => {\n        if (!descriptor || !isAllowFetch) {\n            return;\n        }\n\n        dispatch(\n            fetchStateMachineSteps({\n                descriptor,\n                options: {\n                    isForceUpdate: true,\n                },\n            }),\n        );\n    }, [dispatch, descriptor, isAllowFetch]);\n    useChannelSubscribe(consistentStateMachineRefreshChannel, refreshPageHandler);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        if (!descriptor || !isAllowFetch) {\n            return;\n        }\n\n        dispatch(\n            fetchStateMachineSteps({\n                descriptor,\n            }),\n        );\n    }, [dispatch, descriptor, isAllowFetch]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    return useSelector(selectConsistentStateMachineItemState(descriptor));\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"DriveThroughRoutePointPicker__wrap___zII1W\",\"geo-suggest\":\"DriveThroughRoutePointPicker__geo-suggest___X1CmI\",\"fadeIn\":\"DriveThroughRoutePointPicker__fadeIn___yxQlp\",\"blinking\":\"DriveThroughRoutePointPicker__blinking___R6oKx\"};","import { ApiTrailerTypeT, CountryCodeT } from 'common/utils/api/models';\n\nexport enum FieldsEnum {\n    trailerType = 'trailerType',\n    trailerDictId = 'trailerDictId',\n\n    countryCode = 'countryCode',\n    vin = 'vin',\n    plateNumber = 'plateNumber',\n\n    contract = 'contract',\n    ratePerKm = 'ratePerKm',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.trailerType]: ApiTrailerTypeT;\n    [FieldsEnum.trailerDictId]: TrailerDictIdT | null;\n    [FieldsEnum.countryCode]: CountryCodeT | null;\n    [FieldsEnum.plateNumber]: string;\n    [FieldsEnum.vin]: string;\n    [FieldsEnum.contract]: CarrierContractIdT | null;\n    [FieldsEnum.ratePerKm]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","// extracted by mini-css-extract-plugin\nexport default {\"field--company-name\":\"PointContactsPicker__field--company-name___IEJ_c\",\"field--full-name\":\"PointContactsPicker__field--full-name___hAopw\",\"field--email\":\"PointContactsPicker__field--email___ed6ol\",\"field--phone-number\":\"PointContactsPicker__field--phone-number___d1c0i\",\"fadeIn\":\"PointContactsPicker__fadeIn___b5iAf\",\"blinking\":\"PointContactsPicker__blinking___tzN7B\"};","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillOpacity?: number;\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst DatabaseIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, fillOpacity, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 18 18\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M.9.9h16.2v16.2H.9z\" />\n                <path\n                    fill={fillColor}\n                    fillOpacity={fillOpacity || 1}\n                    d=\"M4.275 6.975h9.45v-2.7h-9.45v2.7zm1.35-2.362a1.011 1.011 0 110 2.025 1.012 1.012 0 110-2.026zm-1.35 9.112h9.45v-2.7h-9.45v2.7zm1.35-2.362a1.011 1.011 0 110 2.024 1.011 1.011 0 110-2.024z\"\n                />\n                <path\n                    fill={strokeColor}\n                    d=\"M14.4 9.675H3.6a.677.677 0 00-.675.675v4.05c0 .371.304.675.675.675h10.8a.677.677 0 00.675-.675v-4.05a.677.677 0 00-.675-.675zm-.675 4.05h-9.45v-2.7h9.45v2.7zm-8.1-.338a1.011 1.011 0 100-2.024 1.011 1.011 0 100 2.024zM14.4 2.925H3.6a.677.677 0 00-.675.675v4.05c0 .371.304.675.675.675h10.8a.677.677 0 00.675-.675V3.6a.677.677 0 00-.675-.675zm-.675 4.05h-9.45v-2.7h9.45v2.7zm-8.1-.337a1.012 1.012 0 10.001-2.025 1.012 1.012 0 00-.001 2.025z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nDatabaseIcon.displayName = 'DatabaseIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default DatabaseIcon;\n","import React from 'react';\nimport styles from './TimeIntervalDurationPillLabel.scss';\nimport classNames from 'classnames/bind';\nimport { checkMidnightTime, getDateTime, getHours, getMinutes, getTimeRelativeStartDay } from 'common/utils/time';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { isNonNil } from 'common/utils';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    i18nKey?: string | null;\n    timeWindow: TimeWindowT | null | undefined;\n    className?: string;\n    isDayRelative: boolean;\n};\n\nconst TimeIntervalDurationPillLabel: React.FC<PropsT> = (props) => {\n    const { timeWindow, className, isDayRelative, i18nKey } = props;\n\n    const { t } = useTranslation();\n\n    if (!timeWindow) {\n        return null;\n    }\n\n    const [start, end] = timeWindow;\n    const diff = timeWindow[1] - timeWindow[0];\n\n    const formatter = isDayRelative ? getTimeRelativeStartDay : getDateTime;\n\n    const hours = getHours(diff);\n    const formattedHours = hours\n        ? `${hours} ${t('common:hours', {\n              postProcess: 'interval',\n              count: hours,\n          })}`\n        : null;\n\n    const minutes = getMinutes(diff);\n    const formattedMinutes = minutes\n        ? `${minutes} ${t('common:minutes', {\n              postProcess: 'interval',\n              count: minutes,\n          })}`\n        : null;\n\n    const formattedDiff = [formattedHours, formattedMinutes].filter(isNonNil).join(' ');\n\n    const duration = `${formatter(start)} - ${checkMidnightTime(formatter(end))}`;\n\n    return (\n        <PillLabel isSymmetrical theme={PillLabelThemeEnum.charcoal} className={className}>\n            <span className={cx('text')}>\n                {i18nKey ? (\n                    <Trans\n                        i18nKey={i18nKey}\n                        components={\n                            {\n                                duration,\n                                formattedDiff,\n                            } as TODO\n                        }\n                    />\n                ) : (\n                    `${duration} (${formattedDiff})`\n                )}\n            </span>\n        </PillLabel>\n    );\n};\n\nexport default TimeIntervalDurationPillLabel;\n","import * as React from 'react';\nimport { useMemo } from 'react';\nimport { useDispatch } from 'react-redux';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './BrokerTourDetails.scss';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\nimport RouteLocationsOverview from 'common/components/entity-details/RouteLocationsOverview/RouteLocationsOverview';\nimport {\n    ApiBrokerTourWaypointT,\n    ApiTourAttachedPaperTypeT,\n    ApiTourShipmentEventT,\n    PartnerTypeEnum,\n    ShipmentWarningEnum,\n    TransportOrderStatusEnum,\n} from 'common/utils/api/models';\nimport { finallyStatusSet } from 'broker-admin/components/status-machine/footers/ChangeShipmentStatusFooter/constants';\nimport { urlFactory } from '../../../../utils/urls';\nimport ExcludedCountries from 'common/components/entity-details/ExcludedCountries/ExcludedCountries';\nimport ShipperIcon from 'common/icons/ShipperIcon';\nimport { convertToKm } from 'common/utils/distance';\nimport DateFormatter from 'design-system/components/InfoTable/formatters/DateFormatter/DateFormatter';\nimport CarrierCostPriceInfoTable from 'broker-admin/components/info-tables/CarrierCostPriceInfoTable/CarrierCostPriceInfoTable';\nimport LinkFormatter from 'design-system/components/InfoTable/formatters/LinkFormatter/LinkFormatter';\n\nimport ButtonTabs, { ButtonTabCountThemeEnum, ButtonTabT } from 'common/components/tabs/ButtonTabs/ButtonTabs';\nimport { useTabs } from 'common/components/tabs/hooks';\nimport TabTourDetails from 'broker-admin/layouts/BrokerToursPage/BrokerTourDetailsPage/BrokerTourDetails/TabTourDetails/TabTourDetails';\nimport ShipmentDetailsCard from './ShipmentDetailsCard/ShipmentDetailsCard';\nimport TransportOrderDetailsCard from './TransportOrderDetailsCard/TransportOrderDetailsCard';\nimport EntityWarningAlert from 'common/components/entity-details/alerts/EntityWarningAlert';\n\nimport keyBy from 'lodash/keyBy';\n\nimport { formatISOTime, formatISOTimeWithoutTimezone } from 'common/utils/time';\nimport isNumber from 'lodash/isNumber';\nimport max from 'lodash/max';\nimport min from 'lodash/min';\nimport { useDistanceByCountryRows } from 'common/components/entity-details/hooks/distanceByCountry';\nimport { useDistanceRowsFactory } from 'common/components/entity-details/hooks/distance-rows-factory';\nimport { isNonNil } from 'common/utils';\nimport { BrokerTourDetailsT } from 'broker-admin/store/broker-tour-details/models';\nimport { useAttachShipmentPapers } from 'common/components/papers/hooks/use-attach-shipment-papers';\nimport { brokerShipmentPapersUrlFactory } from 'broker-admin/utils/shipment-papers-url-factory';\nimport { useAttachTourPapers } from 'common/components/papers/hooks/use-attach-tour-papers';\nimport { brokerTourPapersUrlFactory } from 'broker-admin/utils/tour-papers-url-factory';\nimport TourPapersCard from 'common/components/papers/TourPapersCard/TourPapersCard';\nimport { logWarning } from 'common/utils/logger';\nimport ImageGalleryModal from 'common/components/papers/modals/ImageGalleryModal/ImageGalleryModal';\nimport DeletePaperConfirmation from 'common/components/papers/dialogs/DeletePaperConfirmation/DeletePaperConfirmation';\nimport { useBrokerTourPayloadWaypoints } from 'broker-admin/utils/hooks/useBrokerTourPayloadWaypoints';\nimport { AlertGroup } from 'common/layouts/AlertGroup/AlertGroup';\nimport EntityCriticalWarningAlert from 'common/components/entity-details/alerts/EntityCriticalWarningAlert';\nimport DelayingWarningAlert from 'common/components/entity-details/alerts/DelayingWarningAlert';\nimport CurrentTemperatureAlert from 'common/components/entity-details/alerts/CurrentTemperatureAlert';\nimport { checkTemperatureViolation } from 'common/components/entity-details/utils/check-temperature-violation';\nimport EntityEtaAlert from 'common/components/entity-details/alerts/EntityEtaAlert';\nimport ViolationTemperatureAlert from 'common/components/entity-details/alerts/ViolationTemperatureAlert';\nimport { updateTourShipment } from 'broker-admin/store/broker-tour-edit/actions';\nimport { BrokerStopChangesSourceEnum, UpdateTourShipmentRequestT } from 'broker-admin/store/broker-tour-edit/types';\n\ntype PropsT = {\n    brokerTourId: BrokerTourIdT;\n    brokerTourDetails: BrokerTourDetailsT | null;\n    managedShipmentId: ShipmentIdT | null;\n    onManagedShipmentRendered: (shipmentId: ShipmentIdT) => void;\n    onOpenUserDetails: (params: {\n        partnerType?: PartnerTypeEnum;\n        partnerId?: PartnerIdT;\n        userId: UserIdT | null;\n    }) => void;\n    onStartEditStopContact: (waypoint: ApiBrokerTourWaypointT, source: BrokerStopChangesSourceEnum) => void;\n};\n\nconst cx = classNames.bind(styles);\n\nenum TabEnum {\n    tourDetails = 'tour-details',\n    transportOrders = 'transport-orders',\n    shipments = 'shipments',\n}\n\nconst BrokerTourDetails: React.FC<PropsT> = React.memo((props) => {\n    const {\n        brokerTourId,\n        brokerTourDetails,\n        managedShipmentId,\n        onManagedShipmentRendered,\n        onOpenUserDetails,\n        onStartEditStopContact,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const handleUpdateShipment = React.useCallback(\n        (shipmentId: ShipmentIdT, data: UpdateTourShipmentRequestT) => {\n            dispatch(updateTourShipment({ brokerTourId, shipmentId, data }));\n        },\n        [brokerTourId, dispatch],\n    );\n\n    const {\n        onAttachTourPaper,\n        onDeleteTourPaper,\n        onConfirmDeleteTourPaper,\n        deleteTourPaperRequestStatus,\n        onDownloadTourPaper,\n        onOpenGalleryTourPaper,\n        getTourPaperThumbnailUrl,\n        deleteTourPaperConfirmationDialog,\n        tourPaperGalleryModal,\n    } = useAttachTourPapers(brokerTourPapersUrlFactory);\n\n    const {\n        onAttachShipmentPaper,\n        onDeleteShipmentPaper,\n        onConfirmDeleteShipmentPaper,\n        deleteShipmentPaperRequestStatus,\n        onDownloadShipmentPaper,\n        onOpenGalleryShipmentPaper,\n        getShipmentPaperThumbnailUrl,\n        deleteShipmentPaperConfirmationDialog,\n        shipmentPaperGalleryModal,\n    } = useAttachShipmentPapers(brokerShipmentPapersUrlFactory);\n\n    const { activeTabType, setActiveTabType } = useTabs<TabEnum>(TabEnum.tourDetails);\n\n    React.useEffect(() => {\n        if (managedShipmentId) {\n            setActiveTabType(TabEnum.shipments);\n        }\n    }, [managedShipmentId, setActiveTabType]);\n\n    React.useEffect(() => {\n        if (managedShipmentId && activeTabType === TabEnum.shipments) {\n            onManagedShipmentRendered(managedShipmentId);\n        }\n    }, [activeTabType, managedShipmentId, onManagedShipmentRendered]);\n\n    const ref = React.useRef<HTMLDivElement>(null);\n\n    const allWaypoints = useMemo(() => {\n        return brokerTourDetails?.waypoints?.filter(isNonNil) || [];\n    }, [brokerTourDetails]);\n\n    const waypointById = useMemo(() => {\n        return keyBy(allWaypoints, 'id');\n    }, [allWaypoints]);\n\n    const allShipments = useMemo(() => {\n        return brokerTourDetails?.shipments?.filter(isNonNil) || [];\n    }, [brokerTourDetails]);\n\n    const isLastNotFinallyShipment = useMemo(() => {\n        return (\n            allShipments?.filter((shipment) => {\n                return !finallyStatusSet.has(shipment.status);\n            })?.length === 1\n        );\n    }, [allShipments]);\n\n    const carrierTransportOrders = useMemo(() => {\n        return brokerTourDetails?.transportationOrders?.filter(isNonNil) || [];\n    }, [brokerTourDetails]);\n\n    const fullCarrierCost = brokerTourDetails?.fullCarrierCost || null;\n\n    const summaryDistance = fullCarrierCost?.distances?.totalDistance;\n\n    const payloadDistanceByCountryRows = useDistanceByCountryRows(fullCarrierCost?.distances?.byCountry);\n    const summaryPayloadDistance = Math.round(fullCarrierCost?.distances?.totalDistance || 0);\n\n    const deadheadDistanceByCountryRows = useDistanceByCountryRows(fullCarrierCost?.deadhead?.distances?.byCountry);\n    const summaryDeadheadDistance = Math.round(fullCarrierCost?.deadhead?.distances?.totalDistance || 0);\n\n    const distanceRowsFactory = useDistanceRowsFactory();\n\n    const mileageDetails: Array<InfoTableRowT | null> = [\n        {\n            ...distanceRowsFactory.totalDistance(convertToKm(summaryDistance)),\n            rows: [\n                isNumber(summaryPayloadDistance)\n                    ? {\n                          ...distanceRowsFactory.summaryPayloadDistance(convertToKm(summaryPayloadDistance)),\n                          rows: payloadDistanceByCountryRows,\n                      }\n                    : null,\n                isNumber(summaryDeadheadDistance)\n                    ? {\n                          ...distanceRowsFactory.summaryDeadheadDistance(convertToKm(summaryDeadheadDistance)),\n                          rows: deadheadDistanceByCountryRows,\n                      }\n                    : null,\n            ],\n        },\n    ];\n\n    const shipperOrderDetails: Array<InfoTableRowT | null> = React.useMemo(() => {\n        const shipperId = brokerTourDetails?.shipper?.id;\n        const brokerOrderId = brokerTourDetails?.order?.id;\n        const createdBy = brokerTourDetails?.createdBy;\n\n        return [\n            {\n                icon: <ShipperIcon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.gray} />,\n                name: t('broker-entity-details.columns.shipper'),\n                value: shipperId ? (\n                    <LinkFormatter to={urlFactory.partnerDetails(PartnerTypeEnum.shipper, shipperId)}>\n                        {brokerTourDetails?.shipper?.name}\n                    </LinkFormatter>\n                ) : null,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                testSelector: 'shipper',\n                rows: [\n                    {\n                        icon: null,\n                        name: t('broker-tour-details.columns.order'),\n                        value: brokerOrderId ? (\n                            <LinkFormatter to={urlFactory.brokerOrderDetails(brokerOrderId)}>\n                                {brokerTourDetails?.order?.number}\n                            </LinkFormatter>\n                        ) : null,\n                        valueMods: {\n                            emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                            isBold: true,\n                        },\n                        testSelector: 'order',\n                    },\n                    {\n                        icon: null,\n                        name: t('broker-entity-details.columns.order-created-on'),\n                        value: <DateFormatter date={brokerTourDetails?.createdDate} format=\"DD MMM YYYY, HH:mm\" />,\n                        valueMods: {\n                            emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                            isBold: true,\n                        },\n                        testSelector: 'order-created-on',\n                    },\n                    {\n                        icon: null,\n                        name: t('broker-entity-details.columns.order-created-by'),\n                        value:\n                            createdBy && shipperId ? (\n                                <LinkFormatter\n                                    onClick={() => {\n                                        onOpenUserDetails({\n                                            partnerType: PartnerTypeEnum.shipper,\n                                            partnerId: shipperId,\n                                            userId: createdBy.id,\n                                        });\n                                    }}\n                                >\n                                    {createdBy?.fullName}\n                                </LinkFormatter>\n                            ) : null,\n                        valueMods: {\n                            emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                            isBold: true,\n                        },\n                        testSelector: 'order-created-by',\n                    },\n                ],\n            },\n        ];\n    }, [brokerTourDetails, t, onOpenUserDetails]);\n\n    const tabs = useMemo((): Array<ButtonTabT<TabEnum> | null> => {\n        const transportOrderCount = brokerTourDetails?.transportationOrders?.length || 0;\n\n        const shipmentCount = brokerTourDetails?.shipments?.length || 0;\n\n        return [\n            {\n                type: TabEnum.tourDetails,\n                label: t('broker-tour-details.tab-titles.tour-details'),\n            },\n            shipmentCount\n                ? {\n                      type: TabEnum.shipments,\n                      label: t('broker-tour-details.tab-titles.shipments'),\n                      counter: {\n                          value: shipmentCount,\n                          theme: ButtonTabCountThemeEnum.normal,\n                      },\n                  }\n                : null,\n            transportOrderCount\n                ? {\n                      type: TabEnum.transportOrders,\n                      label: t('broker-tour-details.tab-titles.transport-orders'),\n                      counter: {\n                          value: transportOrderCount,\n                          theme: ButtonTabCountThemeEnum.normal,\n                      },\n                  }\n                : null,\n        ];\n    }, [t, brokerTourDetails]);\n\n    const { originWaypoint, destinationWaypoint } = useBrokerTourPayloadWaypoints(allWaypoints);\n\n    const requiredTemperatureMin = useMemo(() => {\n        return max(\n            allShipments.map((shipment) => {\n                return shipment?.lowestTemperature;\n            }),\n        );\n    }, [allShipments]);\n\n    const requiredTemperatureMax = useMemo(() => {\n        return min(\n            allShipments.map((shipment) => {\n                return shipment?.highestTemperature;\n            }),\n        );\n    }, [allShipments]);\n\n    const hasNotShowShipments = useMemo(() => {\n        return allShipments.some((shipment) => {\n            return shipment?.warning === ShipmentWarningEnum.noShow;\n        });\n    }, [allShipments]);\n\n    const hasMissedShipments = useMemo(() => {\n        return allShipments.some((shipment) => {\n            return shipment?.warning === ShipmentWarningEnum.missed;\n        });\n    }, [allShipments]);\n\n    const handleAttachTourPaper = React.useCallback(\n        (paperType: ApiTourAttachedPaperTypeT) => {\n            if (!brokerTourId) {\n                logWarning('failed to attach paper, empty brokerTourId');\n                return;\n            }\n\n            onAttachTourPaper(brokerTourId, paperType);\n        },\n        [brokerTourId, onAttachTourPaper],\n    );\n\n    const reeferTemperatureMin = brokerTourDetails?.trailerTemperature?.reeferTemperatureMin;\n    const reeferTemperatureMax = brokerTourDetails?.trailerTemperature?.reeferTemperatureMax;\n    const hasTemperatureViolation = checkTemperatureViolation({\n        reeferTemperatureMin,\n        reeferTemperatureMax,\n        requiredTemperatureMin,\n        requiredTemperatureMax,\n    });\n\n    const tourShipmentActionsByShipmentId = React.useMemo((): Record<ShipmentIdT, ApiTourShipmentEventT[]> => {\n        const resultById: Record<ShipmentIdT, ApiTourShipmentEventT[]> = {};\n\n        brokerTourDetails?.availableSteps?.current?.shipments?.forEach((tourShipmentAction) => {\n            const { shipmentId } = tourShipmentAction;\n\n            if (!resultById[shipmentId]) {\n                resultById[shipmentId] = [];\n            }\n\n            resultById[shipmentId].push(tourShipmentAction);\n        });\n\n        return resultById;\n    }, [brokerTourDetails]);\n\n    if (!brokerTourDetails) {\n        return null;\n    }\n\n    return (\n        <div ref={ref}>\n            <RouteLocationsOverview\n                className={cx('route')}\n                origin={originWaypoint?.address}\n                pickupDockingHoursFrom={originWaypoint?.correctedDateTimeFrom || originWaypoint?.originalDateTimeFrom}\n                pickupDockingHoursTo={originWaypoint?.correctedDateTimeTo || originWaypoint?.originalDateTimeTo}\n                destination={destinationWaypoint?.address}\n                dropOffDockingHoursFrom={\n                    destinationWaypoint?.correctedDateTimeFrom || destinationWaypoint?.originalDateTimeFrom\n                }\n                dropOffDockingHoursTo={\n                    destinationWaypoint?.correctedDateTimeTo || destinationWaypoint?.originalDateTimeTo\n                }\n            />\n            <ExcludedCountries\n                className={cx('excluded-countries')}\n                titleNode={t('common:entity-details.excluded-countries.title')}\n                countryCodes={brokerTourDetails?.prohibitedCountries || []}\n                tooltipNode={t('common:entity-details.excluded-countries.tooltip')}\n            />\n            <AlertGroup className={cx('alerts')}>\n                {brokerTourDetails?.runningOutOfTimeToAssignAsset && (\n                    <EntityWarningAlert key={`runningOutOfTimeToAssignAsset-${brokerTourDetails?.id}`}>\n                        {t('broker-entity-details.alerts.running-out-of-time-assign-assets')}\n                    </EntityWarningAlert>\n                )}\n                {brokerTourDetails?.runOutOfTimeToAssignAsset && (\n                    <EntityCriticalWarningAlert key={`runOutOfTimeToAssignAsset-${brokerTourDetails?.id}`}>\n                        {t('broker-entity-details.alerts.run-out-of-time-assign-assets')}\n                    </EntityCriticalWarningAlert>\n                )}\n                {brokerTourDetails?.runningOutOfTimeToAssignDriver && (\n                    <EntityWarningAlert key={`runningOutOfTimeToAssignDriver-${brokerTourDetails?.id}`}>\n                        {t('broker-entity-details.alerts.running-out-of-time-assign-driver')}\n                    </EntityWarningAlert>\n                )}\n                {brokerTourDetails?.runOutOfTimeToAssignDriver && (\n                    <EntityCriticalWarningAlert key={`runOutOfTimeToAssignDriver-${brokerTourDetails?.id}`}>\n                        {t('broker-entity-details.alerts.run-out-of-time-assign-driver')}\n                    </EntityCriticalWarningAlert>\n                )}\n                {brokerTourDetails?.runningOutOfTimeToAssignCarrier && (\n                    <EntityWarningAlert key={`runningOutOfTimeToAssignCarrier-${brokerTourDetails?.id}`}>\n                        {t('broker-entity-details.alerts.running-out-of-time-assign-carrier')}\n                    </EntityWarningAlert>\n                )}\n                {brokerTourDetails?.runOutOfTimeToAssignCarrier && (\n                    <EntityCriticalWarningAlert key={`runOutOfTimeToAssignCarrier-${brokerTourDetails?.id}`}>\n                        {t('broker-entity-details.alerts.run-out-of-time-assign-carrier')}\n                    </EntityCriticalWarningAlert>\n                )}\n                {brokerTourDetails?.delaying && (\n                    <DelayingWarningAlert key={`delaying-${brokerTourDetails?.id}`}>\n                        {t('broker-entity-details.alerts.delaying', {\n                            time: brokerTourDetails?.etaToNextWaypoint\n                                ? formatISOTime(brokerTourDetails?.etaToNextWaypoint)\n                                : '',\n                        })}\n                    </DelayingWarningAlert>\n                )}\n                {hasTemperatureViolation && (\n                    <ViolationTemperatureAlert key=\"violation-temperature\">\n                        {t('broker-entity-details.alerts.violation-temperature-mode', {\n                            currentMin: reeferTemperatureMin,\n                            currentMax: reeferTemperatureMax,\n                            requiredMin: requiredTemperatureMin,\n                            requiredMax: requiredTemperatureMax,\n                        })}\n                    </ViolationTemperatureAlert>\n                )}\n                {carrierTransportOrders?.map((carrierTransportOrder) => {\n                    return (\n                        <>\n                            {carrierTransportOrder?.status === TransportOrderStatusEnum.declined && (\n                                <EntityWarningAlert key={`declined-transport-order-${carrierTransportOrder.id}`}>\n                                    {t('broker-entity-details.alerts.carrier-declined-transport-order')}\n                                </EntityWarningAlert>\n                            )}\n                            {isNumber(reeferTemperatureMin) && isNumber(reeferTemperatureMax) && (\n                                <CurrentTemperatureAlert key={`current-temperature-${carrierTransportOrder.id}`}>\n                                    {t('broker-entity-details.alerts.current-temperature', {\n                                        min: reeferTemperatureMin,\n                                        max: reeferTemperatureMax,\n                                    })}\n                                </CurrentTemperatureAlert>\n                            )}\n                        </>\n                    );\n                })}\n                {hasMissedShipments && (\n                    <EntityCriticalWarningAlert key=\"missed-shipments\">\n                        {t('broker-entity-details.alerts.missed-shipments')}\n                    </EntityCriticalWarningAlert>\n                )}\n                {hasNotShowShipments && (\n                    <EntityCriticalWarningAlert key=\"no-show-shipments\">\n                        {t('broker-entity-details.alerts.no-show-shipments')}\n                    </EntityCriticalWarningAlert>\n                )}\n                {brokerTourDetails?.etaToNextWaypoint && (\n                    <EntityEtaAlert\n                        tooltipContent={\n                            brokerTourDetails?.truckCoordinatesUpdatedAt\n                                ? t('broker-entity-details.alerts.sync-time', {\n                                      time: formatISOTimeWithoutTimezone(brokerTourDetails?.truckCoordinatesUpdatedAt),\n                                  })\n                                : null\n                        }\n                    >\n                        {t('broker-entity-details.alerts.eta', {\n                            time: formatISOTime(brokerTourDetails?.etaToNextWaypoint),\n                        })}\n                    </EntityEtaAlert>\n                )}\n            </AlertGroup>\n            {brokerTourDetails?.order && (\n                <InfoTable\n                    shouldRenderIcons\n                    className={cx('table', 'table--shipper-order')}\n                    rows={shipperOrderDetails}\n                    testSelector=\"shipper-order\"\n                />\n            )}\n            <InfoTable\n                shouldRenderIcons\n                className={cx('table', 'table--mileages')}\n                rows={mileageDetails}\n                testSelector=\"mileages\"\n            />\n            <CarrierCostPriceInfoTable\n                className={cx('table')}\n                totalPrice={brokerTourDetails?.estimateCarrierCost?.totalCost}\n                totalPriceLabel={t('broker-entity-details.columns.carrier-estimated-cost')}\n                totalPriceTooltip={t('broker-entity-details.column-placeholders.carrier-estimated-cost')}\n                lineHaulCost={brokerTourDetails?.estimateCarrierCost?.lineHaul}\n                tollCost={brokerTourDetails?.estimateCarrierCost?.toll?.totalCost}\n                tollByRoadType={brokerTourDetails?.estimateCarrierCost?.toll?.byRoadType}\n                co2={brokerTourDetails?.estimateCarrierCost?.co2}\n                layoverCost={brokerTourDetails?.estimateCarrierCost?.layover?.totalCost}\n                layoverSeconds={brokerTourDetails?.estimateCarrierCost?.layover?.totalSeconds}\n                layoverPaidHours={brokerTourDetails?.estimateCarrierCost?.layover?.paidHours}\n                fuelDetails={brokerTourDetails?.estimateCarrierCost?.fuel}\n                teamDriveCost={brokerTourDetails?.estimateCarrierCost?.teamDriveCost}\n                travelHours={brokerTourDetails?.estimateCarrierCost?.teamDriveHours}\n                additionalServiceItems={brokerTourDetails?.estimateCarrierCost?.additionalServices?.items}\n                appliedRules={brokerTourDetails?.estimateCarrierCost?.appliedRules}\n                testSelector=\"estimated-carrier-cost\"\n                shouldAlwaysRenderExpandTrigger\n            />\n            <div className={cx('separator')} />\n            <CarrierCostPriceInfoTable\n                className={cx('table', 'table--carrier-cost')}\n                totalPrice={brokerTourDetails?.fullCarrierCost?.totalCost}\n                totalPriceLabel={t('broker-entity-details.columns.carrier-cost')}\n                lineHaulCost={brokerTourDetails?.fullCarrierCost?.lineHaul}\n                tollCost={brokerTourDetails?.fullCarrierCost?.toll?.totalCost}\n                tollByRoadType={brokerTourDetails?.fullCarrierCost?.toll?.byRoadType}\n                co2={brokerTourDetails?.fullCarrierCost?.co2}\n                layoverCost={brokerTourDetails?.fullCarrierCost?.layover?.totalCost}\n                layoverSeconds={brokerTourDetails?.fullCarrierCost?.layover?.totalSeconds}\n                layoverPaidHours={brokerTourDetails?.fullCarrierCost?.layover?.paidHours}\n                fuelDetails={brokerTourDetails?.fullCarrierCost?.fuel}\n                teamDriveCost={brokerTourDetails?.fullCarrierCost?.teamDriveCost}\n                travelHours={brokerTourDetails?.fullCarrierCost?.teamDriveHours}\n                additionalServiceItems={brokerTourDetails?.fullCarrierCost?.additionalServices?.items}\n                deadheadLineHaulCost={brokerTourDetails?.fullCarrierCost?.deadhead?.lineHaul}\n                payloadLineHaulCost={brokerTourDetails?.fullCarrierCost?.payload?.lineHaul}\n                appliedRules={brokerTourDetails?.fullCarrierCost?.appliedRules}\n                testSelector=\"carrier-cost\"\n                shouldAlwaysRenderExpandTrigger\n            />\n            <ButtonTabs\n                className={cx('tabs')}\n                activeTabType={activeTabType}\n                setActiveTabType={setActiveTabType}\n                tabs={tabs}\n            />\n            {activeTabType === TabEnum.tourDetails && (\n                <TabTourDetails\n                    tour={brokerTourDetails}\n                    transportationOrders={brokerTourDetails?.transportationOrders}\n                    className={cx('entry-card')}\n                    onStartEditStopContact={(waypoint) =>\n                        onStartEditStopContact(waypoint, BrokerStopChangesSourceEnum.waypoint)\n                    }\n                />\n            )}\n            {activeTabType === TabEnum.transportOrders && (\n                <>\n                    {brokerTourDetails?.transportationOrders?.map((transportationOrder, transportationOrderIndex) => {\n                        return (\n                            <TransportOrderDetailsCard\n                                key={`transportationOrderIndex-${transportationOrderIndex}`}\n                                transportOrderDetails={transportationOrder}\n                                transportOrderNumber={transportationOrder.number}\n                                className={cx('entry-card')}\n                                keyboardShortcut={String(transportationOrderIndex + 1)}\n                            />\n                        );\n                    })}\n                </>\n            )}\n            {activeTabType === TabEnum.shipments && (\n                <>\n                    {brokerTourDetails?.shipments?.map((shipment, shipmentIndex) => {\n                        return (\n                            <ShipmentDetailsCard\n                                key={shipmentIndex}\n                                shipment={shipment}\n                                waypointById={waypointById}\n                                shipmentNumber={shipmentIndex + 1}\n                                className={cx('entry-card')}\n                                keyboardShortcut={String(shipmentIndex + 1)}\n                                isReeferTrailer={!!brokerTourDetails?.trailerTemperature}\n                                shouldConfirmForCancelLastShipment={isLastNotFinallyShipment}\n                                onAttachShipmentPaper={onAttachShipmentPaper}\n                                getShipmentPaperThumbnailUrl={getShipmentPaperThumbnailUrl}\n                                onOpenGalleryShipmentPaper={onOpenGalleryShipmentPaper}\n                                onDownloadShipmentPaper={onDownloadShipmentPaper}\n                                onDeleteShipmentPaper={onDeleteShipmentPaper}\n                                onOpenUserDetails={onOpenUserDetails}\n                                tourShipmentActions={tourShipmentActionsByShipmentId[shipment.id] || null}\n                                onStartEditStopContact={(waypoint) =>\n                                    onStartEditStopContact(waypoint, BrokerStopChangesSourceEnum.shipment)\n                                }\n                                onUpdateShipment={handleUpdateShipment}\n                            />\n                        );\n                    })}\n                </>\n            )}\n            <TourPapersCard\n                className={cx('papers-card')}\n                tourId={brokerTourId}\n                attachedPapers={brokerTourDetails?.attachedPapers || null}\n                onOpenUserDetails={onOpenUserDetails}\n                getTourPaperThumbnailUrl={getTourPaperThumbnailUrl}\n                onOpenGalleryTourPaper={onOpenGalleryTourPaper}\n                onDownloadTourPaper={onDownloadTourPaper}\n                onDeleteTourPaper={onDeleteTourPaper}\n                onAttachTourPaper={handleAttachTourPaper}\n            />\n            <ImageGalleryModal data={shipmentPaperGalleryModal.data} onClose={shipmentPaperGalleryModal.onClose} />\n            <ImageGalleryModal data={tourPaperGalleryModal.data} onClose={tourPaperGalleryModal.onClose} />\n            <DeletePaperConfirmation\n                requestStatus={deleteShipmentPaperRequestStatus}\n                data={deleteShipmentPaperConfirmationDialog.data}\n                onConfirm={onConfirmDeleteShipmentPaper}\n                onCancel={deleteShipmentPaperConfirmationDialog.onCancel}\n                onClose={deleteShipmentPaperConfirmationDialog.onClose}\n            />\n            <DeletePaperConfirmation\n                requestStatus={deleteTourPaperRequestStatus}\n                data={deleteTourPaperConfirmationDialog.data}\n                onConfirm={onConfirmDeleteTourPaper}\n                onCancel={deleteTourPaperConfirmationDialog.onCancel}\n                onClose={deleteTourPaperConfirmationDialog.onClose}\n            />\n        </div>\n    );\n});\n\nexport default BrokerTourDetails;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { QueryFiltersT, QueryFiltersKeysEnum } from 'broker-admin/layouts/PartnersPage/query-models';\n\nconst getQueryFilters = (values: FormValuesT): QueryFiltersT => {\n    return {\n        [QueryFiltersKeysEnum.keyAccountManagerId]: values[FieldsEnum.keyAccountManagerId] || undefined,\n        [QueryFiltersKeysEnum.keyAccountManagerName]: values[FieldsEnum.keyAccountManagerName] || undefined,\n        [QueryFiltersKeysEnum.dispatcherId]: values[FieldsEnum.dispatcherId] || undefined,\n        [QueryFiltersKeysEnum.dispatcherName]: values[FieldsEnum.dispatcherName] || undefined,\n        [QueryFiltersKeysEnum.countryCode]: values[FieldsEnum.countryCode] || undefined,\n    };\n};\n\nexport default getQueryFilters;\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"ShipperContractLaneDetailsPage__fadeIn___d_z2b\",\"blinking\":\"ShipperContractLaneDetailsPage__blinking___FTT0t\"};","import * as React from 'react';\nimport debounce from 'lodash/debounce';\nimport { useMemo } from 'react';\n\nfunction useContainerScroll() {\n    const [scrollTop, setScrollTop] = React.useState<number>(0);\n\n    const containerRef = React.useRef<HTMLDivElement>(null);\n\n    const onContainerScroll = useMemo(() => {\n        return debounce(\n            () => {\n                setScrollTop(containerRef?.current?.scrollTop || 0);\n            },\n            100,\n            { maxWait: 100 },\n        );\n    }, [setScrollTop]);\n\n    return {\n        containerRef,\n        onContainerScroll,\n        scrollTop,\n    };\n}\n\nexport default useContainerScroll;\n","import { CompanyTypeEnum } from '../../constants';\n\nexport type ApiCountryT = Api2.Definitions.CountryDto;\n\nexport type ApiUserT = Api.Definitions.UserInfo;\nexport type ApiUserUpdateT = Api.Definitions.UpdateUserInfoDto;\n\nexport type ApiUserStatusT = Api2.Definitions.UserStatus;\nexport enum UserStatusEnum {\n    active = 'ACTIVE',\n    pending = 'PENDING',\n    archived = 'ARCHIVED',\n}\n\nexport type ApiCompanyT = Api2.Definitions.CommonCompanyInfo;\nexport type ApiPartnerCompanyT = Api2.Definitions.BrokerCompanyInfo;\nexport type ApiCompanyChangesT = Api2.Definitions.UpdateCurrentCompanyRequest;\nexport type ApiBrokerCompanyChangesT = Api2.Definitions.UpdateCompanyRequest;\nexport type ApiLocationT = Api.Definitions.Address;\n\nexport type ApiActualOrderRequestT = Api2.Definitions.RfqRequest;\n\nexport type ApiAddressPointT = Api2.Definitions.AddressPoint;\n\nexport type ApiOrderWaypointT = Api2.Definitions.OrderWaypointDto;\n\nexport type ApiRFQDetailsT = Api2.Definitions.RFQFullDto;\nexport type ApiOrderDetailsT = Api2.Definitions.OrderFullDto;\n\nexport type ApiBrokerCommonTourDetailsT = Api2.Definitions.BrokerCommonTourFullDto;\n\nexport type ApiDistanceByCountryT = Api2.Definitions.DistanceDetailsDto['byCountry'];\n\nexport type ApiMultiPointPriceOfferT = Api2.Definitions.PriceOfferMultipointDto;\nexport type ApiContractLaneT = Api2.Definitions.ReservedOrderDto['contractLanes'][number];\n\nexport type ApiAppliedRuleT = Api2.Definitions.AppliedRuleDto;\n\nexport type ApiRuleTargetT = Api2.Definitions.ManualRateRuleDto['target'];\nexport type ApiRuleOperatorT = Api2.Definitions.ManualRateRuleDto['operator'];\nexport enum RuleOperatorEnum {\n    percents = 'PERCENTS',\n    value = 'VALUE',\n}\nexport type ApiRuleValueT = Api2.Definitions.ManualRateRuleDto['value'];\n\nexport type ApiPriceRuleTypeRequestT = Api2.Definitions.RuleTypeRequest;\n\nexport type ApiPriceRuleTypeT = Api2.Definitions.RuleType;\nexport enum PriceRuleTypeEnum {\n    basic = 'BASIC',\n    carrier = 'CARRIER',\n    shipper = 'SHIPPER',\n    custom = 'CUSTOM',\n}\n\nexport type ApiCreateOrderRequestT = Api2.Definitions.CompleteRFQDto;\n\nexport type ApiTransportationOrderTypeT = Api2.Definitions.TransportationOrderType;\nexport enum TransportationOrderTypeEnum {\n    trailer = 'TRAILER',\n    truck = 'TRUCK',\n    train = 'TRAIN',\n}\n\nexport type ApiTrailerDictTypeT = Api.Definitions.DictTrailerInfoDto;\nexport type ApiTrailerTypeT = NonNullable<Api.Definitions.DictTrailerInfoDto['trailerType']>;\n\nexport type ApiTrailersDictT = Record<TrailerDictIdT, Array<ApiTrailerDictTypeT>>;\n\nexport type ApiActivateVehiclesRequestT = Api2.Definitions.ActivateVehicleRequest;\nexport type ApiArchiveVehiclesRequestT = Api2.Definitions.ArchivedVehicleRequest;\nexport type ApiChangeContractVehiclesRequestT = Api2.Definitions.ChangeContractRequest;\nexport type ApiChangeRateVehiclesRequestT = Api2.Definitions.ChangeRateRequest;\n\n// patch query, query parameters \"page\" and \"sort\" is missing in backend docs\nexport type OverwritePageRequestWithSortQueryT<T> = OverwriteT<\n    T,\n    {\n        sort?: string;\n    }\n>;\nexport type OverwritePageRequestWithSortT<T> = OverwritePageRequestWithSortQueryT<T> & {\n    page: number;\n};\n\nexport type OverwritePageRequestT<T> = T & {\n    page: number;\n};\n\nexport type FixPageableCommonQueryT = {\n    page?: Api2.Parameters.PageNumber;\n    size?: Api2.Parameters.PageSize;\n    sort?: string;\n};\n\nexport enum ShipperOrdersQuickFilterEnum {\n    placed = 'placed',\n    inProgress = 'in-progress',\n    delivered = 'delivered',\n    done = 'done',\n    withIssues = 'with-issues',\n    cancelled = 'cancelled',\n}\n\nexport type ApiOrderSourceT = Api2.Definitions.OrderSource;\nexport enum ApiOrdersSourceEnum {\n    all = 'ALL',\n    imported = 'IMPORTED',\n    internal = 'INTERNAL',\n}\n\nexport enum BrokerOrdersQuickFilterEnum {\n    new = 'new',\n    carrierUnassigned = 'carrier-unassigned',\n    carrierAssigned = 'carrier-assigned',\n    inTransit = 'in-transit',\n    canceled = 'canceled',\n    delivered = 'delivered',\n}\n\nexport enum OrderSourceEnum {\n    imported = 'imported',\n    internal = 'internal',\n}\nexport type OrderSourceT = `${OrderSourceEnum}`;\n\nexport type ApiOrderStatusT = Api2.Definitions.OrderStatus;\nexport enum OrderStatusEnum {\n    placed = 'PLACED',\n    inProgress = 'IN_PROGRESS',\n    canceled = 'CANCELED',\n    delivered = 'DELIVERED',\n    done = 'DONE',\n}\n\nexport type ApiBrokerOrderStatusT = Api2.Definitions.OrderCalculatedStatus;\nexport enum BrokerOrderStatusEnum {\n    newOrder = 'NEW_ORDER',\n    carrierUnassigned = 'CARRIER_UNASSIGNED',\n    carrierAssigned = 'CARRIER_ASSIGNED',\n    inTransit = 'IN_TRANSIT',\n    delivered = 'DELIVERED',\n    canceled = 'CANCELED',\n    unknown = 'UNKNOWN',\n}\n\nexport type ApiSpotBidStatusT = SpotApi.Definitions.BidDto['status'];\n\nexport enum SpotBidStatusEnum {\n    new = 'NEW',\n    open = 'OPEN',\n    accepted = 'ACCEPTED',\n    rejected = 'REJECTED',\n    expired = 'EXPIRED',\n    won = 'WON',\n    lost = 'LOST',\n    missed = 'MISSED',\n    canceled = 'CANCELED',\n}\n\nexport enum TransportOrderQuickFilterEnum {\n    new = 'new',\n    noAssets = 'no-assets',\n    noDriver = 'no-driver',\n\n    declined = 'declined',\n    assigned = 'assigned',\n    inTransit = 'in-transit',\n    done = 'done',\n    canceled = 'canceled',\n}\n\nexport type ApiTransportOrderStatusT = Api2.Definitions.TransportationOrderInfoStatus;\nexport enum TransportOrderStatusEnum {\n    assetsUnassigned = 'ASSETS_UNASSIGNED',\n    driverUnassigned = 'DRIVER_UNASSIGNED',\n    assigned = 'ASSIGNED',\n    inTransit = 'IN_TRANSIT',\n    declined = 'DECLINED',\n    done = 'DONE',\n    canceled = 'CANCELED',\n    unknown = 'UNKNOWN',\n}\n\nexport type ApiOrderT = Api2.Definitions.OrderShipperFiltrationResult;\n\nexport enum OrderSortEnum {\n    createdDate = `createdDate`,\n    dropOffDateFrom = `loads.destination.stayFrom`,\n    pickupDateFrom = `loads.origin.stayFrom`,\n    cost = `broker-orders.priceOffer.totalPrice`,\n}\n\nexport type ApiShipperContractT = Api2.Definitions.ShipperContractShortDto;\nexport type ApiShipperContractBrokerT = Api.Definitions.ApiShipperContractBrokerShortDto;\nexport type ApiShipperContractLaneBrokerT = Api2.Definitions.ShipperContractLaneShortDto;\n\nexport type ApiTransportOrderT = Api2.Definitions.TransportationOrderListDto;\n\nexport type ApiShipperContractDetailsT = Api.Definitions.ApiShipperContractDto;\nexport type ApiBrokerShipperContractDetailsT = Api.Definitions.ApiShipperContractBrokerDto;\n\nexport type ApiShipperContractLaneDetailsT = Api2.Definitions.ShipperContractLaneBrokerDto;\nexport type ApiBrokerShipperContractLaneDetailsT = Api2.Definitions.ShipperContractLaneBrokerDto;\n\nexport type ApiTransportOrderStatsT = Api2.Definitions.TransportationOrderStatisticDto;\n\nexport type ApiBrokerOrderStatsT = Api2.Definitions.BrokerOrderStatisticDto;\nexport type ApiOrdersStatsT = Api2.Definitions.OrderShipperStatistic;\n\nexport enum TransportOrderSortEnum {\n    dropOffDate = 'destinationDockingHoursFrom',\n    pickupDate = 'originDockingHoursFrom',\n    receiveDate = 'receiveDate',\n    price = 'totalCost',\n}\n\nexport enum TransportOrderTypeEnum {\n    truck = 'TRUCK',\n    trailer = 'TRAILER',\n    train = 'TRAIN',\n}\n\nexport type ApiDictCarrierAdditionalServiceGroupT = Api2.Definitions.DictCarrierAdditionalServiceGroup;\nexport type ApiDictCarrierAdditionalServiceT = Api2.Definitions.DictCarrierAdditionalServiceDto;\nexport type ApiDictCarrierAdditionalServiceTypeT = Api2.Definitions.CarrierAdditionalServiceType;\n\nexport type ApiTrailerStatusT = NonNullable<Api2.Definitions.CarrierTrailerFullInfo['status']>;\n\nexport enum TrailerStatusEnum {\n    free = 'FREE',\n    inTransit = 'IN_TRANSIT',\n    unavailable = 'UNAVAILABLE',\n    archived = 'ARCHIVED',\n}\n\nexport type ApiTrailerAddRequestT = Api2.Definitions.CreateTrailerRequest;\nexport type ApiTrailerUpdateRequestT = Api2.Definitions.UpdateTrailerRequest;\n\nexport type ApiTruckStatusT = NonNullable<Api2.Definitions.BrokerTruckFullInfo['status']>;\n\nexport enum TruckStatusEnum {\n    free = 'FREE',\n    inTransit = 'IN_TRANSIT',\n    unavailable = 'UNAVAILABLE',\n    archived = 'ARCHIVED',\n}\n\nexport type ApiTruckAddRequestT = Api2.Definitions.CreateTruckRequest;\nexport type ApiTruckUpdateRequestT = Api2.Definitions.UpdateTruckRequest;\n\nexport type ApiTruckT = Api2.Definitions.TruckShortDto;\n\nexport type ApiTruckDictTypeT = Api.Definitions.DictTruckListDto;\n\nexport type ApiTrucksDictT = Api.Definitions.DictTruckListDto[];\n\nexport enum ContactPositionsEnum {\n    operator = 'operator',\n    management = 'management',\n    sales = 'sales',\n    owner = 'owner',\n    it = 'it',\n}\n\nexport type UserRoleT = Api2.Definitions.UserRole;\n\nexport type ApiNewUserRoleT = Api2.Definitions.NewUserRole;\n\nexport enum RolesEnum {\n    companyAdmin = 'COMPANY_ADMIN',\n    serviceUser = 'SERVICE_USER',\n    driver = 'DRIVER',\n    user = 'USER',\n    keyAccountManager = 'KEY_ACCOUNT_MANAGER',\n    dispatcher = 'DISPATCHER',\n}\n\nexport type AuthUserClaimRoleT = CompanyTypeEnum | RolesEnum;\n\nexport type ApiInviteUserRequestT = Api2.Definitions.InviteUserDto;\nexport type ApiInviteUserRoleT = Api2.Definitions.InviteUserRole;\nexport type ApiPartnerInviteUserRequestT = Api2.Definitions.InviteUserDto;\n\nexport type ApiCompanyContactRequestT = Api.Definitions.ContactDto;\nexport type ApiCompanyContactMediaT = Api.Definitions.ContactMediaDto;\n\nexport type ApiCompanyContactT = Api2.Definitions.CompanyContact;\n\nexport type ApiCompanyContactDetailsT = Api.Definitions.ContactDto;\n\nexport type ApiMainContactUnavailableReasonT = NonNullable<Api.Definitions.ContactDto['mainContactUnavailableReason']>;\n\nexport type ApiCompanyDriverT = Api2.Definitions.DriverListDto;\n\nexport type ApiCompanyDriverDetailsT = Api2.Definitions.DriverDto;\n\nexport type ApiInviteDriverRequestT = { phone: string };\nexport type ApiAddDriverRequestT = Api2Paths.ApiV2CarrierDriversAddDriver.Post.RequestBody;\nexport type ApiUpdateDriverRequestT = Api2.Definitions.DriverUpdateDto;\n\nexport type ApiPartnerTypeT = Api2.Definitions.CompanyType;\nexport enum PartnerTypeEnum {\n    shipper = 'SHIPPER',\n    carrier = 'CARRIER',\n    broker = 'BROKER',\n}\n\nexport type ApiPartnerT = Api2.Definitions.BrokerCompanyInfo;\n\nexport type ApiCarrierContractStatusT = Api2.Definitions.CarrierContractStatus;\n\nexport enum CarrierContractStatusEnum {\n    waitingForApprove = 'WAITING_FOR_APPROVE',\n    approved = 'APPROVED',\n    rejected = 'REJECTED',\n    revoked = 'REVOKED',\n    expired = 'EXPIRED',\n}\n\nexport type ApiDocumentStatusT = NonNullable<Api.Definitions.DocumentShortDto['status']>;\n\nexport enum DocumentStatusEnum {\n    waitingForApprove = 'WAITING_FOR_APPROVE',\n    approved = 'APPROVED',\n    rejected = 'REJECTED',\n    archived = 'ARCHIVED',\n    revoked = 'REVOKED',\n    expired = 'EXPIRED',\n}\n\nexport type ApiInvoiceStatusT = NonNullable<Api.Definitions.BrokerInvoiceDto['status']>;\n\nexport enum InvoiceStatusEnum {\n    draft = 'DRAFT',\n    open = 'OPEN',\n    void = 'VOID',\n    paid = 'PAID',\n    uncollectible = 'UNCOLLECTIBLE',\n}\n\nexport type ApiDocumentTypeT = Api.Definitions.DocumentShortDto['documentType'];\n\nexport enum DocumentTypeEnum {\n    certificateOfIncorportion = 'CERTIFICATE_OF_INCORPORATION',\n    evidenceOfTaxVat = 'EVIDENCE_OF_TAX_VAT',\n    transportationAgreement = 'TRANSPORTATION_AGREEMENT',\n    termsAndConditions = 'TERMS_AND_CONDITIONS',\n    creditScoreCheck = 'CREDIT_SCORE_CHECK',\n    GDP = 'GDP',\n    IFS = 'IFS',\n    SQAS = 'SQAS',\n    wasteManagement = 'WASTE_MANAGEMENT',\n    ISO_9001 = 'ISO_9001',\n    ISO_14001 = 'ISO_14001',\n    goodsVehicleOperatorLicenseForNationalTransportation = 'GOODS_VEHICLE_OPERATOR_LICENSE_FOR_NATIONAL_TRANSPORTATION',\n    goodsVehicleOperatorLicenseForInternationalTransportation = 'GOODS_VEHICLE_OPERATOR_LICENSE_FOR_INTERNATIONAL_TRANSPORTATION',\n    cargoInsurancePolicy = 'CARGO_INSURANCE_POLICY',\n}\n\nexport enum DocumentRequiredEnum {\n    must = 'MUST',\n    optional = 'OPTIONAL',\n    notApplicable = 'NOT_APPLICABLE',\n}\n\nexport type ApiDictDocumentT = Api.Definitions.DictDocumentDto;\n\nexport type ApiDocumentT = Api.Definitions.DocumentShortDto;\n\nexport type ApiContactFormalT = NonNullable<Api.Definitions.ContactDto['formal']>;\n\nexport enum ApiContactFormalEnum {\n    mr = 'MR',\n    mrs = 'MRS',\n    dr = 'DR',\n    prof = 'PROF',\n    mag = 'MAG',\n}\n\nexport type ApiPartnerDetailsT = Api2.Definitions.BrokerCompanyInfo;\nexport type CountryCodeT = Api2.Definitions.Countries;\nexport type ApiPartnerContractT = Api2.Definitions.CarrierContractShortDto;\nexport type ApiPartnerContractDetailsT = Api2.Definitions.CarrierContractDto;\n\nexport type ApiRevokePartnerContractInfoT = Api2.Definitions.RevokeCarrierContractRequest;\n\nexport enum RevokeContractActionEnum {\n    setNewContract = 'SET_NEW_CONTRACT',\n    keepOldRate = 'KEEP_OLD_RATE',\n    setNewRate = 'SET_NEW_RATE',\n}\n\nexport type AddressTypeT = Api2.Definitions.CompanyAddressType;\nexport enum AddressTypeEnum {\n    legal = 'LEGAL',\n    postal = 'POSTAL',\n    billing = 'BILLING',\n}\n\nexport type ApiEmployeeT = Api.Definitions.UserShortDto;\n\nexport type ApiRateT = Api.Definitions.ManualRateDto;\n\nexport type ApiRatesT = Array<ApiRateT>;\n\nexport enum UpdateRateStrategyEnum {\n    exactValue = 'EXACT_VALUE',\n    diff = 'PLUS',\n    percent = 'PLUS_PERCENTS',\n}\n\nexport enum RulesSortEnum {\n    name = 'name',\n    updateDate = 'update-date',\n    createdDate = 'created-date',\n    validFrom = 'valid-from',\n    validTill = 'valid-till',\n}\n\nexport type ApiRuleDraftT = Api2.Definitions.UpdateManualRateRuleDto;\nexport type ApiRuleDetailsT = Api2.Definitions.ManualRateRuleDto;\nexport type ApiRuleT = Api2.Definitions.ManualRateRuleFilterDto;\n\nexport type ApiRulePreviewRequestT = Api2.Definitions.ManualRatesPreviewRequest;\nexport type ApiRulePreviewResponseT = Api2.Definitions.ManualRatesPreviewResponse;\nexport type ApiPreviewRuleT = Api2.Definitions.PreviewManualRateRuleDto;\n\nexport type ApiSettingNameT = Api2.Definitions.SettingName;\nexport type ApiSystemSettingsT = Partial<Record<ApiSettingNameT, string>>;\nexport type ApiSettingT = Api2.Definitions.SettingInfo;\n\nexport type ApiCountrySettingsT = Api2.Definitions.SupportedCountries;\n\nexport enum BrokerOrdersSortEnum {\n    pickupDate = `pickUpDateFrom`,\n    dropOffDate = `dropOffDateFrom`,\n    createdDate = `createdDate`,\n}\n\nexport type ApiBrokerOrderShortT = Api2.Definitions.OrderListDto;\n\nexport type ApiPartnerCreationRequestT = Api2.Definitions.CreateCompanyRequest;\nexport type ApiInvitePartnerRequestT = Api2.Definitions.SendCompanyInviteRequest;\n\nexport type ApiAssignmentVehicleT = Api2.Definitions.AssetWithAvailableHooks;\n\nexport type ApiCarrierUtilizationT = Api.Definitions.CarrierUtilization;\n\nexport type ApiTransportationOrderFullT = Api2.Definitions.TransportationOrderTourFullDto;\nexport type ApiShipmentDetailsT = Api2.Definitions.ShipmentFullInfo;\n\nexport type ApiBrokerTourDetailsT = Api2Paths.ApiV1BrokerTours$TourId.Get.Responses.$200;\nexport type ApiBrokerTourWaypointT = Api2.Definitions.BrokerTourWaypointDto;\nexport type ApiCanBeCanceledUnavailableReasonT = Api2.Definitions.TourCanBeCanceledUnavailableReason;\n\nexport type ApiBrokerOrderWaypointT = Api2.Definitions.BrokerTourWaypointDto;\nexport type ApiBrokerOrderDetailsT = Api2.Definitions.BrokerOrderFullDto;\nexport type ApiRouteEditBlockReasonT = NonNullable<Api2.Definitions.BrokerOrderFullDto['editBlockReason']>;\n\nexport type ApiTransportationOrderWaypointT = Api2.Definitions.TransportationOrderWaypointDto;\nexport type ApiCarrierTransportOrderDetailsT = Api2.Definitions.CarrierTransportationOrderFullDto;\nexport type ApiBrokerTransportOrderDetailsT = Api2.Definitions.BrokerTransportationOrderFullDto;\nexport type ApiTransportOrderDetailsT =\n    | Api2.Definitions.BrokerTransportationOrderFullDto\n    | Api2.Definitions.CarrierTransportationOrderFullDto;\n\nexport type ApiCarrierAdditionalServiceT = Api2.Definitions.AdditionalServiceDto &\n    Api2.Definitions.CarrierAdditionalServiceDto;\nexport type ApiCarrierAdditionalServiceTypeT = Api2.Definitions.CarrierAdditionalServiceType;\n\nexport type ApiBrokerAdditionalServiceT = Api2.Definitions.AdditionalServiceDto &\n    Api2.Definitions.BrokerAdditionalServiceDto;\nexport type ApiBrokerAdditionalServiceTypeT = Api2.Definitions.BrokerAdditionalServiceType;\n\nexport type ApiAdditionalServicesT = Api2.Definitions.AdditionalServices;\n\nexport type ApiStopTypeT = Api2.Definitions.StopType;\nexport enum StopTypeEnum {\n    pickupTrailer = 'PICKUP_TRAILER',\n    pickupTruck = 'PICKUP_TRUCK',\n    pickupRoadTrain = 'PICKUP_ROAD_TRAIN',\n    pickupDeliveryShipment = 'PICKUP_DELIVERY_SHIPMENT',\n    driveThrough = 'DRIVE_THROUGH',\n    dropAndHook = 'DROP_AND_HOOK',\n    dropTrailer = 'DROP_TRAILER',\n    dropTruck = 'DROP_TRUCK',\n    dropRoadTrain = 'DROP_ROAD_TRAIN',\n    ferryOnboard = 'FERRY_ONBOARD',\n    ferryDisembark = 'FERRY_DISEMBARK',\n}\n\nexport type ApiUnitTypeT = Api2.Definitions.UnitsType;\n\nexport type ApiTourStatusT = Api2.Definitions.TourCalculatedStatus;\nexport enum TourStatusEnum {\n    inTransit = 'IN_TRANSIT',\n    finished = 'FINISHED',\n    canceled = 'CANCELED',\n    carrierUnassigned = 'CARRIER_UNASSIGNED',\n    carrierAssigned = 'CARRIER_ASSIGNED',\n}\n\nexport type ApiShipmentStatusT = Api2.Definitions.ShipmentStatus;\nexport enum ShipmentStatusEnum {\n    awaitingLoading = 'AWAITING_LOADING',\n    loading = 'LOADING',\n    inTransit = 'IN_TRANSIT',\n    unloading = 'UNLOADING',\n    delivered = 'DELIVERED',\n    canceled = 'CANCELED',\n}\n\nexport type ApiShortDriverT = Api2.Definitions.DriverListDto;\n\nexport type ApiNotificationT = Api2.Definitions.NotificationDto & {\n    data: any; // see descriptor\n};\n\nexport type ApiLogRecordT = Api2.Definitions.LogRecordDto & {\n    data: any; // see descriptor\n};\n\nexport type ApiNotificationSubjectTypeT = NonNullable<Api2.Definitions.NotificationDto['subjectType']>;\n\nexport enum SubjectTypeEnum {\n    order = 'ORDER',\n    tour = 'TOUR',\n    shipment = 'SHIPMENT',\n    transportationOrder = 'TRANSPORTATION_ORDER',\n    rfq = 'RFQ',\n    document = 'DOCUMENT',\n    carrierContract = 'CARRIER_CONTRACT',\n    shipperContract = 'SHIPPER_CONTRACT',\n    shipperContractLane = 'SHIPPER_CONTRACT_LANE',\n    trailer = 'TRAILER',\n    truck = 'TRUCK',\n    team = 'TEAM',\n    businessPartner = 'BUSINESS_PARTNER',\n}\n\nexport type ApiRuleImpactStrategyTypeT = NonNullable<Api2.Definitions.ManualRateRuleDto['operator']>;\n\nexport type ApiUpdateDockingHoursQueryT = Array<Api2.Definitions.StopWindowDto>;\n\nexport type ApiGroupedNotificationCountsT = NonNullable<\n    Api2Paths.ApiV1NotificationsUnreadCountByActionByStatus.Get.Responses.$200['byAction']\n>;\nexport type GroupedNotificationCountsT = {\n    DISPATCH_STATUS_CHANGED?: {\n        CANCELED?: number;\n        DELIVERED?: number;\n    };\n    TRANSPORTATION_ORDER_STATUS_CHANGED?: {\n        DECLINED?: number;\n        CANCELED?: number;\n        DONE?: number;\n    };\n    ORDER_STATUS_CHANGED?: {\n        DONE?: number;\n        CANCELED?: number;\n    };\n    // TODO check if this is correct\n    TOUR_STATUS_CHANGED?: {\n        CANCELED?: number;\n        FINISHED?: number;\n    };\n};\n\nexport enum TollTypeEnum {\n    general = 'GENERAL',\n    marketCorrection = 'MARKET_CORRECTION',\n    intermodal = 'INTERMODAL',\n    city = 'CITY',\n    bridge = 'BRIDGE',\n    tunnel = 'TUNNEL',\n    ferry = 'FERRY',\n    mountainPass = 'MOUNTAIN_PASS',\n    unspecified = 'UNSPECIFIED',\n}\nexport const ALL_TOLL_TYPES = [\n    TollTypeEnum.general,\n    TollTypeEnum.marketCorrection,\n    TollTypeEnum.intermodal,\n    TollTypeEnum.mountainPass,\n    TollTypeEnum.city,\n    TollTypeEnum.bridge,\n    TollTypeEnum.tunnel,\n    TollTypeEnum.ferry,\n    TollTypeEnum.unspecified,\n] as const;\n\nexport type ApiTollByRoadTypeT = Api2.Definitions.TollByRoadType;\n\nexport type APIFuelDetailsT = Api2.Definitions.FuelDetailsDto;\nexport type APIFuelByCountryT = Api2.Definitions.FuelDetailsDto['byCountry'];\n\nexport type CancelUnavailableVehicleQueryT = {\n    truckId?: string;\n    trailerId?: string;\n    id?: string;\n};\nexport type SetUnavailableVehicleQueryT = Api.Definitions.ApiCreateVehicleSchedule;\nexport type ApiScheduleAddressT = Api.Definitions.ApiScheduleAddressDto;\n\nexport enum VehicleScheduleEventTypeEnum {\n    shipment = 'SHIPMENT',\n    serviceMaintenance = 'SERVICE_MAINTENANCE',\n    deadhead = 'DEADHEAD',\n    teleport = 'TELEPORT',\n}\n\nexport enum RFQShipperSourceEnum {\n    imported = 'imported',\n    internal = 'internal',\n}\n\nexport type ApiRFQBrokerSourceT = Api2.Definitions.RfqSource;\nexport enum RFQBrokerSourceEnum {\n    carlo = 'CARLO',\n    tender = 'TENDER',\n    internal = 'INTERNAL',\n    contractLane = 'CONTRACT_LANE',\n}\n\nexport type ApiRFQStatusT = Api2.Definitions.RFQStatus;\nexport enum RFQStatusEnum {\n    open = 'OPEN',\n    expireSoon = 'EXPIRE_SOON',\n    expired = 'EXPIRED',\n    completed = 'COMPLETED',\n    closed = 'CLOSED',\n}\n\nexport enum RFQsSortEnum {\n    creationDate = 'createdDate',\n    deadline = 'expiration',\n}\n\nexport enum RFQsQuickFilterEnum {\n    open = 'open',\n    preExpire = 'expireSoon',\n    expired = 'expired',\n    completed = 'completed',\n    closed = 'closed',\n}\n\nexport type ApiRFQsStatsT = Api2Paths.ApiV2RfqsCounts.Get.Responses.$200;\n\nexport type ApiSpotCarrierProfileT = SpotApi.Definitions.CarrierProfileDto;\n\nexport type ApiCountriesT = Api2.Definitions.Countries;\n\nexport enum ShipperContractsSortEnum {\n    addedDate = 'createdDate',\n    validTillDate = 'validTill',\n}\n\nexport enum ShipperContractLanesSortEnum {\n    addedDate = 'createdDate',\n    validTillDate = 'validTill',\n}\n\nexport enum ApiAdditionalServiceTypeEnum {\n    broker = 'BROKER',\n    carrier = 'CARRIER',\n}\n\nexport type ApiCompleteRegistrationT = Api2.Definitions.CompleteRegistrationDto;\n\nexport type ApiRegistrationCompanyRequestDraftT = Omit<\n    Api2.Definitions.RegistrationCompanyRequest,\n    'language' | 'companyType'\n>;\n\nexport type ApiShipperContractStatusT = Api.Definitions.ApiShipperContractDto['status'];\n\nexport enum ShipperContractStatusEnum {\n    active = 'ACTIVE',\n    revoked = 'REVOKED',\n    expired = 'EXPIRED',\n}\n\nexport type ApiShipperContractLaneStatusT = Api2.Definitions.ShipperContractLaneStatus;\n\nexport enum ShipperContractLaneStatusEnum {\n    active = 'ACTIVE',\n    completed = 'COMPLETED',\n    revoked = 'REVOKED',\n    expired = 'EXPIRED',\n}\n\nexport type ApiOrderWaypointTypeT = Api2.Definitions.OrderWaypointDto['type'];\nexport enum OrderWaypointTypeEnum {\n    ferryOnboard = 'FERRY_ONBOARD',\n    ferryDisembark = 'FERRY_DISEMBARK',\n    pickupDeliveryWaypoint = 'PICKUP_DELIVERY_WAYPOINT',\n    driveThroughWaypoint = 'DRIVE_THROUGH_WAYPOINT',\n    dropAndHook = 'DROP_AND_HOOK',\n}\n\nexport type ApiShipmentWarningT = NonNullable<Api2.Definitions.TransportationOrderShipmentInfo['warning']>;\nexport enum ShipmentWarningEnum {\n    noShow = 'NO_SHOW',\n    missed = 'MISSED',\n}\n\nexport type ApiOrderCreationShipperInfoT = Api2.Definitions.OrderCreationShipperInfo;\n\nexport type ApiTruckRateModeT = NonNullable<Api2.Definitions.Asset['rateMode']>;\nexport enum TruckRateModeEnum {\n    brutto = 'BRUTTO',\n    netto = 'NETTO',\n}\n\nexport type ApiOrderContextNoteT = Api2.Definitions.Notes;\n\nexport type ApiShipmentEventTypeT = Api2.Definitions.ShipmentEventType;\n\nexport type ApiOrderCreationReservePointTypeT = Api2.Definitions.ReservationPointType;\nexport enum OrderCreationReservePointTypeEnum {\n    shipment = 'SHIPMENT',\n    driveThrough = 'DRIVE_THROUGH',\n    ferryOnboard = 'FERRY_ONBOARD',\n    ferryDisembark = 'FERRY_DISEMBARK',\n}\n\nexport type ApiBrokerTourShortT = Api2.Definitions.BrokerTourListDto;\n\nexport type ApiTimeZoneInfoT = Api2.Definitions.TimeZoneDto;\n\nexport type ApiTimeZoneT = Api2.Definitions.TimeZone;\n\nexport type ApiNotificationAlertLevelT = Api2.Definitions.AlertLevel;\nexport enum NotificationAlertLevelEnum {\n    normal = 'NORMAL',\n    positive = 'POSITIVE',\n    attention = 'ATTENTION',\n    warning = 'WARNING',\n}\n\nexport type ApiShipmentAttachedPaperTypeT = Api2.Definitions.ShipmentAttachedPaperType;\nexport type ApiTourAttachedPaperTypeT = Api2.Definitions.TourAttachedPaperType;\nexport type ApiAttachPaperRequestT = Api2.RequestBodies.AttachPaperRequest;\n\nexport type ApiTourPaperT = Api2.Definitions.TourAttachedPaper;\nexport type ApiShipmentPaperT = Api2.Definitions.ShipmentAttachedPaper;\nexport type ApiPaperCreatedByRoleT = Api2.Definitions.CreatedByRole;\n\nexport type ApiDeleteUnavailableReasonT = Api2.Definitions.DeleteUnavailableReason;\n\nexport type ApiAttachPapersUnavailableReasonT = NonNullable<\n    Api2.Definitions.CarrierTransportationOrderFullDto['attachPapersUnavailableReason']\n>;\n\nexport type ApiReadShipmentAttachedPapersUnavailableReasonT = NonNullable<\n    Api2.Definitions.CarrierTransportationOrderFullDto['readShipmentAttachedPapersUnavailableReason']\n>;\n\nexport type ApiTeleportAssetUnavailableReasonT = Api2.Definitions.TeleportAssetUnavailableReason;\n\nexport type ApiTourShipmentEventT = Api2.Definitions.TourShipmentEvent;\n\nexport type ApiShipmentEditUnavailableReasonT = Api2.Definitions.ShipmentEditUnavailableReason;\nexport enum ShipmentEditUnavailableReasonEnum {\n    noAccess = 'NO_ACCESS',\n}\n\nexport type ApiEditUnavailableReasonT = Api2.Definitions.EditUnavailableReason;\nexport enum EditUnavailableReasonEnum {\n    externallyManaged = 'EXTERNALLY_MANAGED',\n}\n\nexport type ApiLogInitiatorTypeT = Api2.Definitions.TransportationOrderStatusChangedLogRecordDto['initiatorType'];\n\nexport type ApiSubjectTypeT = Api2.Definitions.SubjectType;\n\nexport type OperationUnavailableReasonT = Api2.Definitions.OperationUnavailableReason;\n\nexport type SettingGroupT = Api2.Definitions.SettingGroup;\n\nexport type ApiUpdatedFieldCodeT = Api2.Definitions.UpdatedFieldCode;\n","// extracted by mini-css-extract-plugin\nexport default {\"header__controls\":\"SettingsPage__header__controls___dQ5uH\",\"controls\":\"SettingsPage__controls___Wuqtb\",\"fadeIn\":\"SettingsPage__fadeIn___Sww1P\",\"blinking\":\"SettingsPage__blinking___NO6iB\"};","import { RequestStatusT } from 'common/utils/request-status';\nimport { CloseCallbackOptionsT } from 'common/layouts/SideBars/models';\nimport useAfterSuccessRequest from 'common/utils/hooks/useAfterSuccessRequest';\n\ntype CloseCallbackT = (options?: CloseCallbackOptionsT) => void;\n\nconst useCloseSidebarAfterRequest = (\n    requestStatus: RequestStatusT | null | undefined,\n    closeCallback: CloseCallbackT | null | undefined,\n) => {\n    useAfterSuccessRequest(requestStatus, () => {\n        if (closeCallback) {\n            closeCallback({ needCloseConfirmation: false });\n        }\n    });\n};\n\nexport default useCloseSidebarAfterRequest;\n","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport ChangedFieldLabel from 'common/components/notification-cards/shared/ChangedFieldLabel/ChangedFieldLabel';\nimport ChangedStopFieldLabel from 'common/components/notification-cards/shared/ChangedStopFieldLabel/ChangedStopFieldLabel';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\nimport NotificationVerticalRow from 'common/components/notification-cards/shared/NotificationVerticalRow/NotificationVerticalRow';\nimport NotificationVerticalRowsLayout from 'common/components/notification-cards/shared/NotificationVerticalRowsLayout/NotificationVerticalRowsLayout';\n\ntype PropsT = {\n    orderNumber: React.ReactNode;\n    originCity: React.ReactNode;\n    destinationCity: React.ReactNode;\n    updatedFields?: Api2.Definitions.FieldChangeDto[];\n    updatedStops?: Api2.Definitions.StopChangeDto[];\n};\n\nconst OrderRouteWasUpdatedCard: React.FC<PropsT> = React.memo((props) => {\n    const { orderNumber, originCity, destinationCity, updatedFields = [], updatedStops = [] } = props;\n\n    const stopFieldRows = updatedStops.flatMap((stop, stopIndex) =>\n        (stop.updatedFields ?? []).map((field, fieldIndex) => (\n            <NotificationVerticalRow\n                key={`stop-${stop.stopId ?? stop.sequenceNumber}-${stopIndex}-${field.fieldCode}-${fieldIndex}`}\n            >\n                <ChangedStopFieldLabel\n                    stop={stop}\n                    code={field.fieldCode}\n                    oldValue={field.oldValue}\n                    newValue={field.newValue}\n                />\n            </NotificationVerticalRow>\n        )),\n    );\n\n    return (\n        <NotificationCardInnerLayout>\n            <NotificationVerticalRowsLayout>\n                {[\n                    <NotificationVerticalRow key=\"summary\">\n                        <Trans\n                            i18nKey=\"common:notifications.order-route-was-updated\"\n                            components={{\n                                orderNumber: <NotificationEntityLabel isBold isUnderline text={orderNumber} />,\n                                cityFrom: <NotificationEntityLabel isBold text={originCity} />,\n                                cityTo: <NotificationEntityLabel isBold text={destinationCity} />,\n                            }}\n                        />\n                    </NotificationVerticalRow>,\n                    ...updatedFields.map((field, index) => (\n                        <NotificationVerticalRow key={`${field.fieldCode}-${index}`}>\n                            <ChangedFieldLabel\n                                code={field.fieldCode}\n                                oldValue={field.oldValue}\n                                newValue={field.newValue}\n                            />\n                        </NotificationVerticalRow>\n                    )),\n                    ...stopFieldRows,\n                ]}\n            </NotificationVerticalRowsLayout>\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default OrderRouteWasUpdatedCard;\n","import React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport { useDispatch, useSelector } from 'react-redux';\nimport TrailerDetails from './TrailerDetails/TrailerDetails';\nimport { selectFetchTrailerDetailsRequestStatus, selectTrailersDetailsByIds } from 'common/store/trailers/selectors';\nimport {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport { fetchTrailerDetails } from 'common/store/trailers/actions';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport ParanjaSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/ParanjaSideBarLayout/ParanjaSideBarLayout';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport SetUnavailableFooterContent from 'common/components/AssetSidebarContent/SetUnavailableFooterContent/SetUnavailableFooterContent';\nimport { AssetTypeEnum, DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport HollowCircleIcon from 'common/icons/HollowCircleIcon';\nimport {\n    ApiTeleportAssetUnavailableReasonT,\n    SetUnavailableVehicleQueryT,\n    TrailerStatusEnum,\n} from 'common/utils/api/models';\nimport DeleteIcon from 'common/icons/DeleteIcon';\nimport { selectSetUnavailableVehicleRequestStatus } from 'common/store/vehicle-schedules/selectors';\nimport EditIcon from 'common/icons/EditIcon';\nimport TrailerStatusPill from 'common/components/status-pill/TrailerStatusPill/TrailerStatusPill';\nimport WrenchIcon from 'common/icons/WrenchIcon';\nimport MapTrigger from 'common/components/MapTrigger/MapTrigger';\nimport { trailerDetailsRefreshChannel } from 'common/store/trailers/channels';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport usePartnerPermissionsContext from 'common/utils/hooks/usePartnerPermissionsContext';\nimport {\n    selectExecuteTeleportStatus,\n    selectValidateTeleportData,\n    selectValidateTeleportStatus,\n} from 'common/store/assets/selectors';\nimport { executeAssetTeleport, validateAssetTeleport } from 'common/store/assets/slice';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport TeleportIcon from 'common/icons/TeleportIcon';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\n\nconst unavailableTeleportReasonI18nMap: Record<ApiTeleportAssetUnavailableReasonT, string> = {\n    NO_ACCESS: 'common:trailers-page.teleport-unavailable-reason.NO_ACCESS',\n    ASSET_IS_BUSY: 'common:trailers-page.teleport-unavailable-reason.ASSET_IS_BUSY',\n    NO_GPS_DATA: 'common:trailers-page.teleport-unavailable-reason.NO_GPS_DATA',\n    GPS_DATA_IS_OUTDATED: 'common:trailers-page.teleport-unavailable-reason.GPS_DATA_IS_OUTDATED',\n    NOT_ACTIVE: 'common:trailers-page.teleport-unavailable-reason.NOT_ACTIVE',\n};\n\ntype PropsT = {\n    trailerId: TrailerIdT | null;\n    partnerId: PartnerIdT;\n    onGoBack?: () => void;\n    onClose?: () => void;\n    onEdit: () => void;\n    onActivate: (trailerId: TrailerIdT | null) => void;\n    onArchive: (trailerId: TrailerIdT | null) => void;\n    onSetUnavailable: (trailerId: TrailerIdT, query: SetUnavailableVehicleQueryT) => void;\n    isShowMap?: boolean;\n    onToggleShowMap?: () => void;\n    isReadOnly?: boolean;\n    isDisableShowOnMap?: boolean;\n    onOpenTruckDetails: (truckId: TruckIdT) => void;\n    onOpenContactDetails: (contractId: CarrierContractIdT) => void;\n    onOpenUserDetails: (userId: UserIdT, isBrokerUser?: boolean) => void;\n};\n\nconst TrailerDetailsSidebarContent: React.FC<PropsT> = (props) => {\n    const {\n        isReadOnly,\n        isDisableShowOnMap,\n        onEdit,\n        onGoBack,\n        onClose,\n        isShowMap,\n        onToggleShowMap,\n        trailerId,\n        onActivate,\n        onArchive,\n        onSetUnavailable,\n        partnerId,\n        onOpenTruckDetails,\n        onOpenContactDetails,\n        onOpenUserDetails,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const { canArchiveTrailers, canEditTrailers, canActivateTrailers, canSetUnavailableTrailers, canTeleportAssets } =\n        usePartnerPermissionsContext();\n\n    const fetchDetailsRequestStatus = useSelector(selectFetchTrailerDetailsRequestStatus(partnerId));\n    const detailsById = useSelector(selectTrailersDetailsByIds(partnerId));\n\n    const trailerDetails = detailsById[trailerId as string];\n\n    const [isShowUnavailableForm, setIsShowUnavailableForm] = React.useState<boolean>(false);\n\n    const dispatch = useDispatch();\n\n    const executeTeleportRequestStatus = useSelector(selectExecuteTeleportStatus(trailerId));\n    const isExecutingTeleport = executeTeleportRequestStatus.loading;\n\n    const validateTeleportRequestStatus = useSelector(selectValidateTeleportStatus(trailerId));\n    const isValidatingTeleport = validateTeleportRequestStatus.loading;\n\n    const validateTeleportData = useSelector(selectValidateTeleportData(trailerId));\n\n    React.useEffect(() => {\n        if (!trailerId || !canTeleportAssets) {\n            return;\n        }\n\n        dispatch(validateAssetTeleport({ assetId: trailerId }));\n    }, [dispatch, trailerId, canTeleportAssets]);\n\n    const handleExecuteAssetTeleport = React.useCallback(() => {\n        if (!trailerId) {\n            return;\n        }\n\n        dispatch(executeAssetTeleport({ assetId: trailerId }));\n    }, [dispatch, trailerId]);\n\n    const status = trailerDetails?.status;\n    const actionOptions: Array<DropdownControlOptionT | SpecialOptionEnum | null> = React.useMemo(() => {\n        if (isReadOnly) {\n            return [];\n        }\n\n        if (status === TrailerStatusEnum.archived && canArchiveTrailers) {\n            return [\n                {\n                    label: (\n                        <DropdownControlOptionLabel\n                            label={t('common:trailers-page.actions.activate')}\n                            icon={<HollowCircleIcon borderColor={StyleGuideColorsEnum.brandAccent} />}\n                        />\n                    ),\n                    onSelect: () => {\n                        onActivate(trailerId);\n                    },\n                },\n            ];\n        }\n\n        const unavailableTeleportTooltipContent = validateTeleportData?.unavailableReason ? (\n            <TooltipContent theme={TooltipContentThemeEnum.black} width={150} isCenter>\n                {t(unavailableTeleportReasonI18nMap[validateTeleportData.unavailableReason])}\n            </TooltipContent>\n        ) : null;\n\n        const isTeleportShowLoading = isValidatingTeleport || isExecutingTeleport;\n        const isTeleportDisabled = isTeleportShowLoading || Boolean(unavailableTeleportTooltipContent);\n\n        return [\n            ...(canEditTrailers\n                ? [\n                      {\n                          label: (\n                              <DropdownControlOptionLabel\n                                  label={t('common:trailers-page.actions.edit')}\n                                  icon={\n                                      <EditIcon\n                                          size={DEFAULT_ICON_SIZE}\n                                          fillColor={StyleGuideColorsEnum.brandAccent}\n                                          strokeColor={StyleGuideColorsEnum.brandDark}\n                                      />\n                                  }\n                              />\n                          ),\n                          onSelect: () => {\n                              onEdit();\n                          },\n                      },\n                      SpecialOptionEnum.separator,\n                  ]\n                : []),\n            ...(canTeleportAssets\n                ? [\n                      {\n                          label: (\n                              <Tooltip\n                                  position={TooltipPositionEnum.centerLeft}\n                                  theme={TooltipThemeEnum.black}\n                                  tooltipNode={unavailableTeleportTooltipContent}\n                              >\n                                  {() => (\n                                      <DropdownControlOptionLabel\n                                          label={t('common:trailers-page.actions.teleport')}\n                                          isDisabled={isTeleportDisabled}\n                                          icon={\n                                              isTeleportShowLoading ? (\n                                                  <ControlLoaderIcon\n                                                      fillColor={StyleGuideColorsEnum.brandAccent}\n                                                      size={DEFAULT_ICON_SIZE}\n                                                  />\n                                              ) : (\n                                                  <TeleportIcon size={DEFAULT_ICON_SIZE} />\n                                              )\n                                          }\n                                      />\n                                  )}\n                              </Tooltip>\n                          ),\n                          isDisabled: isTeleportDisabled,\n                          onSelect: handleExecuteAssetTeleport,\n                      },\n                  ]\n                : []),\n            status !== TrailerStatusEnum.archived && canSetUnavailableTrailers\n                ? {\n                      label: (\n                          <DropdownControlOptionLabel\n                              label={t('common:trailers-page.actions.add-maintenance-event')}\n                              icon={<WrenchIcon fillColor={StyleGuideColorsEnum.orange} />}\n                          />\n                      ),\n                      onSelect: () => {\n                          setIsShowUnavailableForm(true);\n                      },\n                  }\n                : null,\n            ...(canActivateTrailers\n                ? [\n                      SpecialOptionEnum.separator,\n                      {\n                          label: (\n                              <DropdownControlOptionLabel\n                                  label={t('common:trailers-page.actions.archive')}\n                                  icon={<DeleteIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                              />\n                          ),\n                          onSelect: () => {\n                              onArchive(trailerId);\n                          },\n                      },\n                  ]\n                : []),\n        ];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [\n        t,\n        onArchive,\n        trailerId,\n        onEdit,\n        onActivate,\n        canEditTrailers,\n        canActivateTrailers,\n        canSetUnavailableTrailers,\n        canArchiveTrailers,\n        isReadOnly,\n        canTeleportAssets,\n        isValidatingTeleport,\n        isExecutingTeleport,\n        handleExecuteAssetTeleport,\n        validateTeleportData,\n    ]);\n\n    React.useEffect(() => {\n        if (!trailerId) {\n            return;\n        }\n\n        dispatch(fetchTrailerDetails(trailerId, partnerId));\n    }, [dispatch, trailerId, partnerId]);\n\n    const refreshPageHandler = React.useCallback(() => {\n        if (!trailerId) {\n            return;\n        }\n\n        dispatch(fetchTrailerDetails(trailerId, partnerId, { isForceUpdate: true }));\n    }, [dispatch, trailerId, partnerId]);\n    useChannelSubscribe(trailerDetailsRefreshChannel, refreshPageHandler);\n\n    const setUnavailableStatus = useSelector(selectSetUnavailableVehicleRequestStatus);\n    React.useEffect(() => {\n        if (setUnavailableStatus.ok) {\n            setIsShowUnavailableForm(false);\n        }\n    }, [setUnavailableStatus.ok]);\n\n    let footerNode: React.ReactNode = null;\n\n    if (isShowUnavailableForm) {\n        footerNode = (\n            <>\n                <ParanjaSideBarLayout />\n                <FooterSideBarLayout isTransparent hasShadow>\n                    <SetUnavailableFooterContent\n                        assetId={trailerId}\n                        onClose={() => {\n                            setIsShowUnavailableForm(false);\n                        }}\n                        isLoading={setUnavailableStatus.loading}\n                        onSetUnavailable={onSetUnavailable}\n                        assetType={AssetTypeEnum.trailer}\n                    />\n                </FooterSideBarLayout>\n            </>\n        );\n    }\n\n    return (\n        <>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent\n                    title={t('common:trailers-page.edit-trailer.title', {\n                        plateNumber: trailerDetails?.plateNumber || '',\n                    })}\n                    afterTitleNode={<TrailerStatusPill isSymmetrical status={trailerDetails?.status || null} />}\n                    dropdownOptions={actionOptions}\n                    onGoBack={onGoBack}\n                    onClose={() => {\n                        if (onClose) {\n                            onClose();\n                        }\n                    }}\n                    afterDropdownNode={\n                        onToggleShowMap && !isDisableShowOnMap ? (\n                            <MapTrigger\n                                toggleMap={() => {\n                                    if (onToggleShowMap) {\n                                        onToggleShowMap();\n                                    }\n                                }}\n                                isActiveMapTrigger={isShowMap}\n                            />\n                        ) : null\n                    }\n                />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <TrailerDetails\n                    onOpenTruckDetails={onOpenTruckDetails}\n                    onOpenContactDetails={onOpenContactDetails}\n                    partnerId={partnerId}\n                    isLoading={fetchDetailsRequestStatus.loading}\n                    trailerDetails={trailerDetails}\n                    onOpenUserDetails={onOpenUserDetails}\n                />\n            </SideBarLayout>\n            {footerNode}\n        </>\n    );\n};\n\nexport default TrailerDetailsSidebarContent;\n","import * as React from 'react';\nimport FilterPills, { FilterPillsConfigT } from 'common/components/FilterPills/FilterPills';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from '../query-models';\nimport { Trans, useTranslation } from 'react-i18next';\nimport TrailerDictIdFilterPill from 'common/components/filter-pills/TrailerDictIdFilterPill/TrailerDictIdFilterPill';\nimport { FilterPillThemeEnum } from 'common/components/FilterPills/FilterPill/FilterPill';\nimport { formatDateRangeFilterValue, pillIconRendererMap } from 'common/components/FilterPills/pill-renderers';\n\ntype PropsT = {\n    isCompact?: boolean;\n    className?: string;\n    queryFilters: QueryFiltersT;\n    setQueryFilters: (queryFilters: QueryFiltersT) => void;\n};\n\nconst SelectedFilters: React.FC<PropsT> = React.memo((props) => {\n    const { isCompact, queryFilters, setQueryFilters } = props;\n\n    const { t } = useTranslation();\n\n    const filterPillsConfig = React.useMemo(\n        (): FilterPillsConfigT<QueryFiltersT> => [\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                renderIcon: (queryFilters, isCompact) => {\n                    return pillIconRendererMap.avatar(\n                        queryFilters[QueryFiltersKeysEnum.keyAccountManagerName],\n                        isCompact,\n                    );\n                },\n                render: (queryFilters) => {\n                    return t('broker-orders.list.filters.pills.key-account-manager', {\n                        value: queryFilters[QueryFiltersKeysEnum.keyAccountManagerName],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.keyAccountManagerId, QueryFiltersKeysEnum.keyAccountManagerName],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                renderIcon: (queryFilters, isCompact) => {\n                    return pillIconRendererMap.avatar(queryFilters[QueryFiltersKeysEnum.dispatcherName], isCompact);\n                },\n                render: (queryFilters) => {\n                    return t('broker-orders.list.filters.pills.dispatcher', {\n                        value: queryFilters[QueryFiltersKeysEnum.dispatcherName],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.dispatcherId, QueryFiltersKeysEnum.dispatcherName],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('broker-orders.list.filters.pills.search', {\n                        value: queryFilters[QueryFiltersKeysEnum.searchText],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.searchText],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    return t('broker-orders.list.filters.pills.shipper', {\n                        value: queryFilters[QueryFiltersKeysEnum.shipperName],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.shipperId, QueryFiltersKeysEnum.shipperName],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    return t('broker-orders.list.filters.pills.carrier', {\n                        value: queryFilters[QueryFiltersKeysEnum.carrierName],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.carrierId, QueryFiltersKeysEnum.carrierName],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: (queryFilters) => {\n                    const selectedTrailerId = queryFilters[QueryFiltersKeysEnum.dictTrailerId];\n\n                    return (\n                        <Trans\n                            i18nKey=\"broker-orders.list.filters.pills.trailer\"\n                            components={{\n                                value: <TrailerDictIdFilterPill trailerDictId={selectedTrailerId} />,\n                            }}\n                        />\n                    );\n                },\n                clearKeys: [QueryFiltersKeysEnum.dictTrailerId],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('broker-orders.list.filters.pills.origin-address', {\n                        value: queryFilters[QueryFiltersKeysEnum.originAddress],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.originAddress],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) => {\n                    return t('broker-orders.list.filters.pills.destination-address', {\n                        value: queryFilters[QueryFiltersKeysEnum.dropoffAddress],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.dropoffAddress],\n            },\n            {\n                theme: FilterPillThemeEnum.tomatoRed,\n                render: () => {\n                    return t('broker-orders.list.filters.pills.has-unpaid-orders');\n                },\n                clearKeys: [QueryFiltersKeysEnum.hasUnpaidOrders],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: () => {\n                    return t('broker-orders.list.filters.pills.spot-transport-orders');\n                },\n                clearKeys: [QueryFiltersKeysEnum.spotTransportOrder],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: () => {\n                    return t('broker-orders.list.filters.pills.contract-transport-orders');\n                },\n                clearKeys: [QueryFiltersKeysEnum.contractedTransportOrder],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: () => {\n                    return t('broker-orders.list.filters.pills.spot-orders');\n                },\n                clearKeys: [QueryFiltersKeysEnum.spotOrder],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: () => {\n                    return t('broker-orders.list.filters.pills.contract-orders');\n                },\n                clearKeys: [QueryFiltersKeysEnum.contractedOrder],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const pickupDateFrom = queryFilters[QueryFiltersKeysEnum.pickupDateFrom];\n                    const pickupDateTo = queryFilters[QueryFiltersKeysEnum.pickupDateTo];\n\n                    return t('broker-orders.list.filters.pills.pickup', {\n                        value: formatDateRangeFilterValue(pickupDateFrom, pickupDateTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.pickupDateFrom, QueryFiltersKeysEnum.pickupDateTo],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const dropOffDateFrom = queryFilters[QueryFiltersKeysEnum.dropOffDateFrom];\n                    const dropOffDateTo = queryFilters[QueryFiltersKeysEnum.dropOffDateTo];\n\n                    return t('broker-orders.list.filters.pills.drop-off', {\n                        value: formatDateRangeFilterValue(dropOffDateFrom, dropOffDateTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.dropOffDateFrom, QueryFiltersKeysEnum.dropOffDateTo],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const createdDateFrom = queryFilters[QueryFiltersKeysEnum.createdDateFrom];\n                    const createdDateTo = queryFilters[QueryFiltersKeysEnum.createdDateTo];\n\n                    return t('broker-orders.list.filters.pills.created', {\n                        value: formatDateRangeFilterValue(createdDateFrom, createdDateTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.createdDateFrom, QueryFiltersKeysEnum.createdDateTo],\n            },\n            {\n                theme: FilterPillThemeEnum.attention,\n                render: () => {\n                    return t('broker-orders.list.warning-filters.running-out-of-time-to-assign-carrier');\n                },\n                clearKeys: [QueryFiltersKeysEnum.runningOutOfTimeToAssignCarrier],\n            },\n            {\n                theme: FilterPillThemeEnum.tomatoRed,\n                render: () => {\n                    return t('broker-orders.list.warning-filters.run-out-of-time-to-assign-carrier');\n                },\n                clearKeys: [QueryFiltersKeysEnum.runOutOfTimeToAssignCarrier],\n            },\n            {\n                theme: FilterPillThemeEnum.attention,\n                render: () => {\n                    return t('broker-orders.list.warning-filters.running-out-of-time-to-assign-assets');\n                },\n                clearKeys: [QueryFiltersKeysEnum.runningOutOfTimeToAssignAssets],\n            },\n            {\n                theme: FilterPillThemeEnum.tomatoRed,\n                render: () => {\n                    return t('broker-orders.list.warning-filters.run-out-of-time-to-assign-assets');\n                },\n                clearKeys: [QueryFiltersKeysEnum.runOutOfTimeToAssignAssets],\n            },\n            {\n                theme: FilterPillThemeEnum.attention,\n                render: () => {\n                    return t('broker-orders.list.warning-filters.running-out-of-time-to-assign-driver');\n                },\n                clearKeys: [QueryFiltersKeysEnum.runningOutOfTimeToAssignDriver],\n            },\n            {\n                theme: FilterPillThemeEnum.tomatoRed,\n                render: () => {\n                    return t('broker-orders.list.warning-filters.run-out-of-time-to-assign-driver');\n                },\n                clearKeys: [QueryFiltersKeysEnum.runOutOfTimeToAssignDriver],\n            },\n            {\n                theme: FilterPillThemeEnum.attention,\n                render: () => {\n                    return t('broker-orders.list.warning-filters.tour-delaying');\n                },\n                clearKeys: [QueryFiltersKeysEnum.tourDelaying],\n            },\n            {\n                theme: FilterPillThemeEnum.tomatoRed,\n                render: () => {\n                    return t('broker-orders.list.warning-filters.no-show');\n                },\n                clearKeys: [QueryFiltersKeysEnum.noShow],\n            },\n            {\n                theme: FilterPillThemeEnum.tomatoRed,\n                render: () => {\n                    return t('broker-orders.list.warning-filters.shipment-missed');\n                },\n                clearKeys: [QueryFiltersKeysEnum.shipmentMissed],\n            },\n        ],\n        [t],\n    );\n\n    return (\n        <FilterPills<QueryFiltersT>\n            isCompact={isCompact}\n            queryFilters={queryFilters}\n            setQueryFilters={setQueryFilters}\n            config={filterPillsConfig}\n        />\n    );\n});\n\nexport default SelectedFilters;\n","import React, { useState } from 'react';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport { CommonSidebarDataT, CommonSidebarsTypeEnum, SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { ContractDetailsSidebarDataT } from './models';\nimport { ApiRevokePartnerContractInfoT, CarrierContractStatusEnum } from 'common/utils/api/models';\nimport { useDispatch, useSelector } from 'react-redux';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport SideBarRequestStatus from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarRequestStatus/SideBarRequestStatus';\nimport SideBarHeaderRequestStatus from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarHeaderRequestStatus/SideBarHeaderRequestStatus';\nimport isEmpty from 'lodash/isEmpty';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport useRemoteFormActions from 'common/utils/hooks/useRemoteFormActions';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport ReviewFooterContent from './footers/ReviewFooterContent/ReviewFooterContent';\nimport SaveFooterContent from './footers/SaveFooterContent/SaveFooterContent';\nimport DocumentSummary from 'common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentDetailsLayout/DocumentSummary/DocumentSummary';\nimport DocumentEventsSummary from '../DocumentDetailsSidebarContent/DocumentDetailsLayout/DocumentEventsSummary/DocumentEventsSummary';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport {\n    selectUpdateCarrierContractRequest,\n    selectUploadCarrierContractRequest,\n} from 'common/store/carrier-contracts/selectors';\nimport { selectCarrierContractStateById } from 'common/store/carrier-contract-details/selectors';\nimport ContractDetailsForm from 'common/layouts/SideBars/contents/ContractDetailsSidebarContent/ContractDetailsForm/ContractDetailsForm';\nimport ContractDetails from './ContractDetails/ContractDetails';\nimport {\n    downloadCarrierContract,\n    rejectCarrierContract,\n    revokeCarrierContract,\n} from 'common/store/carrier-contracts/actions';\nimport { fetchCarrierContractDetails } from 'common/store/carrier-contract-details/actions';\nimport classNames from 'classnames/bind';\nimport styles from './ContractDetailsSidebarContent.scss';\nimport { useContractsActionOptions } from 'common/layouts/BaseCarrierContractsLayout/hooks/use-contracts-action-options';\nimport RevokeContractConfirmation, {\n    ConfirmRevokeContractModalDataT,\n} from 'common/layouts/BaseCarrierContractsLayout/dialogs/RevokeContractConfirmation/RevokeContractConfirmation';\nimport ContractName from 'common/components/ContractName/ContractName';\nimport { useTranslation } from 'react-i18next';\nimport RejectContractConfirmation, {\n    ConfirmRejectContractModalDataT,\n} from 'common/layouts/BaseCarrierContractsLayout/dialogs/RejectContractConfirmation/RejectContractConfirmation';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { carrierContractDetailsRefreshChannel } from 'common/store/carrier-contract-details/channels';\nimport { logWarning } from 'common/utils/logger';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport CarrierContractStatusPill from 'common/components/status-pill/CarrierContractStatusPill/CarrierContractStatusPill';\nimport useAfterSuccessRequest from 'common/utils/hooks/useAfterSuccessRequest';\nimport PartnerContext from 'common/contexts/partner-context';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = SidebarContentPropsT<ContractDetailsSidebarDataT, CommonSidebarDataT>;\n\nconst ContractDetailsSidebarContent: React.FC<PropsT> = (props) => {\n    const { data, onClose, onGoBack, onOpenNextSidebar, setNeedCloseConfirmation } = props;\n\n    const { initIsEditing, contractId } = data;\n\n    const { t } = useTranslation();\n\n    const { partnerId: defaultPartnerId, partnerType } = usePartnerContext();\n    const partnerId = data.partnerId ?? defaultPartnerId;\n\n    const [isEditing, setIsEditing] = useState(initIsEditing);\n\n    const remoteFormActions = useRemoteFormActions();\n\n    const uploadRequest = useSelector(selectUploadCarrierContractRequest(partnerId));\n    const updateRequest = useSelector(selectUpdateCarrierContractRequest(partnerId));\n\n    const { data: contractDetails, fetchRequest: fetchContractDetailsRequest } = useSelector(\n        selectCarrierContractStateById(contractId),\n    );\n\n    const confirmRevokeContractModalDialog = useModalDialog<ConfirmRevokeContractModalDataT>();\n    const confirmRejectContractModalDialog = useModalDialog<ConfirmRejectContractModalDataT>();\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        if (contractId) {\n            if (!partnerId) {\n                logWarning('Empty partnerId in ContractDetailsSidebarContent useEffect');\n                return;\n            }\n            dispatch(fetchCarrierContractDetails(partnerId, contractId));\n        }\n    }, [contractId, partnerId, dispatch]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        if (contractId) {\n            if (!partnerId) {\n                logWarning('Empty partnerId in documentVisibilityChangeHandler');\n                return;\n            }\n            dispatch(fetchCarrierContractDetails(partnerId, contractId));\n        }\n    }, [contractId, partnerId, dispatch]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const refreshPageHandler = React.useCallback(\n        ({ contractId }: InferChannelEventT<typeof carrierContractDetailsRefreshChannel>) => {\n            if (data.contractId === contractId) {\n                if (!partnerId) {\n                    logWarning('Empty partnerId in refreshPageHandler');\n                    return;\n                }\n                dispatch(fetchCarrierContractDetails(partnerId, contractId, { isForceUpdate: true }));\n            }\n        },\n        [partnerId, data, dispatch],\n    );\n    useChannelSubscribe(carrierContractDetailsRefreshChannel, refreshPageHandler);\n\n    const permissions = useSelector(selectPermissions);\n\n    const handleDownloadContract = (contractId: CarrierContractIdT) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleDownloadContract');\n            return;\n        }\n        dispatch(downloadCarrierContract(contractId, partnerId));\n    };\n\n    const handleEditContractInfo = () => {\n        setIsEditing(true);\n    };\n\n    const handleRevokeContract = () => {\n        if (!contractDetails) {\n            logWarning(`failed to revoke contract, failed contractDetails`);\n            return;\n        }\n\n        confirmRevokeContractModalDialog.setData({\n            id: contractDetails.id,\n            name: contractDetails.name,\n            truckRateKm: contractDetails.truckRateKm,\n            tiltRateKm: contractDetails.tiltRateKm,\n            boxRateKm: contractDetails.boxRateKm,\n        });\n    };\n\n    const handleRejectContract = () => {\n        if (!contractDetails) {\n            logWarning(`failed to reject contract, failed contractDetails`);\n            return;\n        }\n\n        confirmRejectContractModalDialog.setData({\n            contractId: contractDetails.id,\n            contractName: contractDetails.name || '',\n        });\n    };\n\n    const headerDropdownOptions = useContractsActionOptions(\n        contractDetails,\n        {\n            ...permissions,\n            canEditCarrierContracts: isEditing ? false : permissions.canEditCarrierContracts,\n        },\n        {\n            onDownloadContract: handleDownloadContract,\n            onEditContractDetails: handleEditContractInfo,\n            onRevokeContract: handleRevokeContract,\n        },\n    );\n\n    const handleConfirmRevokeContract = (contractId: CarrierContractIdT, revokeInfo: ApiRevokePartnerContractInfoT) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleConfirmRevokeContract');\n            return;\n        }\n        dispatch(revokeCarrierContract({ partnerId, contractId, revokeInfo }));\n    };\n\n    const handleConfirmRejectContract = (data: ConfirmRejectContractModalDataT, reason: string) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleConfirmRejectContract');\n            return;\n        }\n        dispatch(rejectCarrierContract({ contractId: data.contractId, reason, partnerId }));\n    };\n\n    useCloseModalDialogAfterRequest(updateRequest, [\n        confirmRevokeContractModalDialog,\n        confirmRejectContractModalDialog,\n    ]);\n\n    useCloseModalDialogAfterRequest(updateRequest, [confirmRevokeContractModalDialog]);\n\n    useAfterSuccessRequest(updateRequest, () => {\n        setIsEditing(false);\n    });\n\n    const handleOpenUserDetails = (userId: UserIdT) => {\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in handleOpenUserDetails');\n            return;\n        }\n        onOpenNextSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId,\n            partnerType,\n            userId,\n        });\n    };\n\n    const shouldReview = contractDetails?.status === CarrierContractStatusEnum.waitingForApprove;\n\n    const handleRetryFetchContractDetails = React.useCallback(() => {\n        if (partnerId && contractId) {\n            dispatch(fetchCarrierContractDetails(partnerId, contractId));\n        }\n    }, [partnerId, contractId, dispatch]);\n\n    const partnerContextValue = React.useMemo(() => {\n        return {\n            partnerType,\n            partnerId,\n        };\n    }, [partnerId, partnerType]);\n\n    return (\n        <PartnerContext.Provider value={partnerContextValue}>\n            <RemoteFormActionsContext.Provider value={remoteFormActions}>\n                <HeaderSideBarLayout>\n                    <HeaderSideBarContent\n                        onGoBack={onGoBack}\n                        title={\n                            contractDetails?.status ? (\n                                <CarrierContractStatusPill isSymmetrical status={contractDetails?.status} />\n                            ) : null\n                        }\n                        onClose={onClose}\n                        dropdownOptions={headerDropdownOptions}\n                    />\n                    <SideBarHeaderRequestStatus\n                        requestStatus={fetchContractDetailsRequest}\n                        hasCachedData={!isEmpty(contractDetails)}\n                        isForceShowLoader={updateRequest.loading || uploadRequest.loading}\n                    />\n                </HeaderSideBarLayout>\n                <SideBarLayout>\n                    <SideBarRequestStatus\n                        requestStatus={fetchContractDetailsRequest}\n                        hasCachedData={!isEmpty(contractDetails)}\n                        onRetry={handleRetryFetchContractDetails}\n                    >\n                        <DocumentSummary\n                            className={cx('document-summary')}\n                            title={<ContractName name={contractDetails?.name} />}\n                            tooltipContentNode={t('common:carrier-contracts.actions.download')}\n                            id={contractDetails?.id || null}\n                            onDownloadFile={handleDownloadContract}\n                            canDownload={permissions.canDownloadCarrierContracts}\n                        />\n                        <DocumentEventsSummary\n                            className={cx('document-events')}\n                            version={contractDetails}\n                            onOpenUserDetails={handleOpenUserDetails}\n                        />\n                        {isEditing ? (\n                            <ContractDetailsForm\n                                partnerId={partnerId}\n                                isReview={shouldReview}\n                                contractDetails={contractDetails}\n                                setNeedCloseConfirmation={setNeedCloseConfirmation}\n                            />\n                        ) : (\n                            <ContractDetails contract={contractDetails} />\n                        )}\n                    </SideBarRequestStatus>\n                </SideBarLayout>\n                {!!contractDetails && isEditing && shouldReview && (\n                    <FooterSideBarLayout>\n                        <ReviewFooterContent partnerId={partnerId} onReject={handleRejectContract} />\n                    </FooterSideBarLayout>\n                )}\n                {!!contractDetails && isEditing && !shouldReview && (\n                    <FooterSideBarLayout>\n                        <SaveFooterContent partnerId={partnerId} />\n                    </FooterSideBarLayout>\n                )}\n                <RejectContractConfirmation\n                    data={confirmRejectContractModalDialog.data}\n                    onCancel={confirmRejectContractModalDialog.onCancel}\n                    onClose={confirmRejectContractModalDialog.onClose}\n                    onConfirm={handleConfirmRejectContract}\n                    requestStatus={updateRequest}\n                />\n                <RevokeContractConfirmation\n                    data={confirmRevokeContractModalDialog.data}\n                    onCancel={confirmRevokeContractModalDialog.onCancel}\n                    onClose={confirmRevokeContractModalDialog.onClose}\n                    onConfirm={handleConfirmRevokeContract}\n                    requestStatus={updateRequest}\n                />\n            </RemoteFormActionsContext.Provider>\n        </PartnerContext.Provider>\n    );\n};\n\nexport default ContractDetailsSidebarContent;\n","// extracted by mini-css-extract-plugin\nexport default {\"limiter\":\"ContentLimiter__limiter___UvdMs\",\"fadeIn\":\"ContentLimiter__fadeIn___AvK0N\",\"blinking\":\"ContentLimiter__blinking___fv92n\"};","import * as React from 'react';\n\ntype PropsT = {\n    className?: string;\n};\n\nconst BigEmptyIcon: React.FC<PropsT> = (props) => {\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"200\" height=\"130\" viewBox=\"0 0 200 130\" {...props}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M15 20h170v90H15z\" />\n                <path\n                    fill=\"#8ABA2E\"\n                    fillOpacity=\"0.05\"\n                    d=\"M176 32a7 7 0 110 14h-40a7 7 0 110 14h22a7 7 0 110 14h-10.174c-4.874 0-8.826 3.134-8.826 7 0 2.577 2 4.91 6 7a7 7 0 110 14H62a7 7 0 110-14H23a7 7 0 110-14h40a7 7 0 100-14H38a7 7 0 110-14h40a7 7 0 110-14h98zm0 28a7 7 0 110 14 7 7 0 010-14z\"\n                />\n                <path\n                    fill=\"#FFF\"\n                    d=\"M87.119 80.307A11.964 11.964 0 0087 82c0 6.627 5.373 12 12 12s12-5.373 12-12c0-.575-.04-1.14-.119-1.693H140V107a3 3 0 01-3 3H61a3 3 0 01-3-3V80.307h29.119z\"\n                />\n                <path\n                    fill=\"#FFF\"\n                    d=\"M112 80c0 7.18-5.82 13-13 13s-13-5.82-13-13c0-.233.006-.464.018-.693H58l9.56-28.268A3.001 3.001 0 0170.402 49h57.196a3 3 0 012.842 2.039L140 79.307h-28.018c.012.23.018.46.018.693z\"\n                />\n                <path\n                    fill=\"#8ABA2E\"\n                    fillOpacity=\"0.3\"\n                    d=\"M110.098 80.955C110.098 86.502 105.129 92 99 92c-6.129 0-11.098-5.498-11.098-11.045 0-.18.006-1.359.016-1.536H67l8.161-19.844C75.513 58.634 76.49 58 77.587 58h42.826c1.098 0 2.074.634 2.426 1.575L131 79.42h-20.918c.01.177.016 1.356.016 1.536z\"\n                />\n                <path\n                    stroke=\"#8ABA2E\"\n                    strokeWidth=\"2.5\"\n                    d=\"M127.598 50.25a1.75 1.75 0 011.657 1.189h0l9.495 28.073V106c0 .483-.196.92-.513 1.237a1.742 1.742 0 01-1.237.513h0-76c-.483 0-.92-.196-1.237-.513A1.742 1.742 0 0159.25 106h0V79.512l9.495-28.073a1.745 1.745 0 011.657-1.189h0z\"\n                />\n                <path\n                    stroke=\"#8ABA2E\"\n                    strokeLinecap=\"round\"\n                    strokeLinejoin=\"round\"\n                    strokeWidth=\"2.5\"\n                    d=\"M64.574 79H67h-2.426zM72 79h12.745c1.876 0 1.876 1.319 1.876 2 0 6.627 5.496 12 12.276 12 6.78 0 12.276-5.373 12.276-12 0-.681 0-2 1.877-2H138\"\n                />\n                <path\n                    stroke=\"#8ABA2E\"\n                    strokeLinecap=\"round\"\n                    strokeLinejoin=\"round\"\n                    strokeOpacity=\"0.3\"\n                    strokeWidth=\"2.5\"\n                    d=\"M98.1 22v16.756M72 26.303l11.1 12.453m41-12.453L113 38.756\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nBigEmptyIcon.displayName = 'BigEmptyIcon';\n\nconst storyProps: PropsT = {};\n\nexport { storyProps };\nexport default BigEmptyIcon;\n","import React from 'react';\nimport DayPicker, { DateUtils } from 'react-day-picker';\nimport moment from 'moment';\n\nimport times from 'lodash/times';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './Calendar.scss';\n\nimport { useTranslation } from 'react-i18next';\nimport YearMonthForm from './YearMonthForm/YearMonthForm';\n\n/* eslint-disable import/no-unresolved */\nimport { ClassNames } from 'react-day-picker/types/ClassNames';\nimport {\n    AfterModifier,\n    BeforeAfterModifier,\n    BeforeModifier,\n    FunctionModifier,\n    Modifier,\n    Modifiers,\n} from 'react-day-picker/types/Modifiers';\nimport { checkIsSameDay, clearDateTimezone, getDateFromISO, parseISOString } from 'common/utils/time';\nimport { concatTestSelectors } from 'common/utils/test-selectors';\n\nconst cx = classNames.bind(styles);\n\nconst EMPTY_RANGE = { from: null, to: null };\n\nexport type CalendarDateValueT = Date | null;\nexport type CalendarDateRangeValueT = DateRangeT | null;\n\nexport type CalendarBasePropsT = {\n    minDate?: string | null;\n    maxDate?: string | null;\n    hasYearMonthForm?: boolean;\n    testSelectorPrefix?: string;\n    className?: string;\n    allowedDates?: string[];\n    // react-day-calendar does not check the dates before minDate and after maxDate, in case the allowed dates may be before minDate\n    allowedDatesStartDate?: string | null;\n    disabledDates?: string[];\n};\n\nexport type CalendarDateValuePropsT = {\n    isRange?: false;\n    value: CalendarDateValueT;\n    initialValue?: CalendarDateValueT;\n    focusInitialDate?: CalendarDateValueT;\n    onChange: (value: CalendarDateValueT, selectedDate: CalendarDateValueT) => void;\n};\n\nexport type CalendarDateRangeValuePropsT = {\n    isRange: true;\n    value: CalendarDateRangeValueT;\n    initialValue?: CalendarDateRangeValueT;\n    focusInitialDate?: CalendarDateValueT;\n    onChange: (value: CalendarDateRangeValueT, selectedDate: CalendarDateValueT) => void;\n};\n\nexport type CalendarPropsT =\n    | (CalendarBasePropsT & CalendarDateValuePropsT)\n    | (CalendarBasePropsT & CalendarDateRangeValuePropsT);\n\nconst ISO_DATE_FORMAT = 'YYYY-MM-DD';\n\nconst Calendar: React.FC<CalendarPropsT> = React.memo((props) => {\n    const { hasYearMonthForm, allowedDates, allowedDatesStartDate, disabledDates, testSelectorPrefix, className } =\n        props;\n\n    const minDate = props.minDate ? clearDateTimezone(props.minDate) : null;\n    const maxDate = props.maxDate ? clearDateTimezone(props.maxDate) : null;\n\n    const { t } = useTranslation();\n\n    const limitMinDate = minDate ? parseISOString(minDate) : undefined;\n    const limitMaxDate = maxDate ? parseISOString(maxDate) : undefined;\n\n    const classNames: ClassNames = React.useMemo(\n        () => ({\n            container: cs(cx('ReactDayPicker'), className),\n            wrapper: cx('ReactDayPicker__wrapper'),\n            interactionDisabled: cx('ReactDayPicker__interactionDisabled'),\n            navBar: cx('ReactDayPicker__NavBar'),\n            navButtonPrev: cx('ReactDayPicker__NavButton', 'ReactDayPicker__NavButton--prev'),\n            navButtonNext: cx('ReactDayPicker__NavButton', 'ReactDayPicker__NavButton--next'),\n            navButtonInteractionDisabled: cx('ReactDayPicker__NavButton--interactionDisabled'),\n\n            months: cx('ReactDayPicker__Months'),\n            month: cx('ReactDayPicker__Month'),\n            caption: cx('ReactDayPicker__Caption'),\n            weekdays: cx('ReactDayPicker__Weekdays'),\n            weekdaysRow: cx('ReactDayPicker__WeekdaysRow'),\n            weekday: cx('ReactDayPicker__Weekday'),\n            weekNumber: cx('ReactDayPicker__WeekNumber'),\n            body: cx('ReactDayPicker__Body'),\n            week: cx('ReactDayPicker__Week'),\n            day: cx('ReactDayPicker__Day'),\n            footer: cx('ReactDayPicker__Footer'),\n            todayButton: cx('ReactDayPicker__TodayButton'),\n\n            today: cx('ReactDayPicker__Day--today'),\n            selected: cx('ReactDayPicker__Day--selected'),\n            disabled: cx('ReactDayPicker__Day--disabled'),\n            outside: cx('ReactDayPicker__Day--outside'),\n        }),\n        [className],\n    );\n\n    const disabledObjDates = React.useMemo(() => {\n        if (!disabledDates) {\n            return [];\n        }\n\n        return disabledDates.map((date) => {\n            return new Date(getDateFromISO(date));\n        });\n    }, [disabledDates]);\n\n    const checkIsDisabledDateByAllowed = React.useMemo((): FunctionModifier | null => {\n        if (!allowedDates) {\n            return null;\n        }\n\n        const allowedDatesStartMomentDate = allowedDatesStartDate ? moment.parseZone(allowedDatesStartDate) : null;\n        return (date) => {\n            const isAllowedDate =\n                allowedDates?.some((allowedDate) => {\n                    return checkIsSameDay(date, allowedDate);\n                }) ||\n                (allowedDatesStartMomentDate && allowedDatesStartMomentDate.isSameOrBefore(date, 'day'));\n\n            return !isAllowedDate;\n        };\n    }, [allowedDates, allowedDatesStartDate]);\n\n    const disabledDays = React.useMemo(() => {\n        let limits: BeforeModifier | AfterModifier | BeforeAfterModifier | FunctionModifier | undefined;\n\n        if (limitMaxDate) {\n            limits = {\n                after: limitMaxDate,\n            };\n        }\n\n        if (limitMinDate) {\n            limits = {\n                ...(limits || {}),\n                before: limitMinDate,\n            };\n        }\n\n        return [limits, ...disabledObjDates, checkIsDisabledDateByAllowed || undefined];\n    }, [limitMaxDate, limitMinDate, disabledObjDates, checkIsDisabledDateByAllowed]);\n\n    const selectedDays = React.useMemo((): Modifier | Modifier[] => {\n        return [props.value || EMPTY_RANGE];\n    }, [props.value]);\n\n    const containerProps = React.useMemo((): Record<string, string> => {\n        return {\n            'data-test-selector': concatTestSelectors([testSelectorPrefix, 'calendar']),\n        };\n    }, [testSelectorPrefix]);\n\n    const weekdaysShort = React.useMemo(() => {\n        const arr = times(7).map((index) => t(`common:day-name.${index}`));\n\n        return [arr[arr.length - 1], ...arr.slice(0, -1)];\n    }, [t]);\n\n    const modifiers = React.useMemo((): Partial<Modifiers> => {\n        if (!props.isRange) {\n            return {\n                [cx('startAndEnd')]: props.value || undefined,\n            };\n        }\n\n        // eslint-disable-next-line prefer-destructuring\n        const value = props.value;\n\n        if (\n            (value?.from && !value?.to) ||\n            (!value?.from && value?.to) ||\n            value?.from?.valueOf() === value?.to?.valueOf()\n        ) {\n            return {\n                [cx('startAndEnd')]: value?.from || value?.to || undefined,\n            };\n        }\n\n        return {\n            [cx('start')]: value?.from || undefined,\n            [cx('end')]: value?.to || undefined,\n        };\n    }, [props.isRange, props.value]);\n\n    const getFocusDate = (): Date | undefined => {\n        let focusDate;\n\n        let limitDate: Date | null = new Date();\n\n        const parsedMinDate = parseISOString(minDate);\n        if (parsedMinDate && limitDate <= parsedMinDate) {\n            limitDate = parsedMinDate;\n        }\n\n        const parsedMaxDate = parseISOString(maxDate);\n        if (parsedMaxDate && parsedMaxDate <= limitDate) {\n            limitDate = parsedMaxDate;\n        }\n\n        if (props.isRange) {\n            focusDate = props.focusInitialDate || props.initialValue?.from || limitDate;\n        } else {\n            focusDate = props.focusInitialDate || props.initialValue || limitDate;\n        }\n\n        return focusDate || undefined;\n    };\n\n    const [month, setMonth] = React.useState<Date | undefined>(() => {\n        const focusDate = getFocusDate();\n\n        return focusDate;\n    });\n\n    React.useEffect(() => {\n        const focusDate = getFocusDate();\n\n        setMonth(focusDate);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [props.initialValue, props.focusInitialDate]);\n\n    const handleYearMonthChange = (month: Date) => {\n        setMonth(month);\n    };\n\n    const handleDateChange = (selectedDate: Date): void => {\n        if (\n            limitMinDate &&\n            moment(limitMinDate).format(ISO_DATE_FORMAT) > moment(selectedDate).format(ISO_DATE_FORMAT)\n        ) {\n            return;\n        }\n\n        if (\n            limitMaxDate &&\n            moment(limitMaxDate).format(ISO_DATE_FORMAT) < moment(selectedDate).format(ISO_DATE_FORMAT)\n        ) {\n            return;\n        }\n\n        const allowedDatesStartMomentDate = allowedDatesStartDate ? moment.parseZone(allowedDatesStartDate) : null;\n        const checkIsDisabledDate = (date: Date) => {\n            const isDisabled = disabledObjDates.some((disabledObjDate) => {\n                const momentDisabledDate = moment(disabledObjDate);\n                return momentDisabledDate.isSame(date, 'day');\n            });\n            if (isDisabled) {\n                return true;\n            }\n\n            if (allowedDates || allowedDatesStartMomentDate) {\n                const isAllowedDate =\n                    allowedDates?.some((allowedDate) => {\n                        return checkIsSameDay(date, allowedDate);\n                    }) ||\n                    (allowedDatesStartMomentDate && allowedDatesStartMomentDate.isSameOrBefore(date, 'day'));\n                if (!isAllowedDate) {\n                    return true;\n                }\n            }\n\n            return false;\n        };\n\n        if (props.isRange) {\n            const range: CalendarDateRangeValueT = DateUtils.addDayToRange(selectedDate, props.value || EMPTY_RANGE);\n\n            const isDisabled =\n                (range.to && checkIsDisabledDate(range.to)) || (range.from && checkIsDisabledDate(range.from));\n            if (isDisabled) {\n                return;\n            }\n\n            props.onChange(range, selectedDate);\n        } else {\n            const isDisabled = checkIsDisabledDate(selectedDate);\n            if (isDisabled) {\n                return;\n            }\n\n            props.onChange(selectedDate, selectedDate);\n        }\n    };\n\n    return (\n        <DayPicker\n            firstDayOfWeek={1}\n            numberOfMonths={1}\n            modifiers={modifiers}\n            classNames={classNames}\n            disabledDays={disabledDays}\n            month={month}\n            showOutsideDays\n            selectedDays={selectedDays}\n            fromMonth={limitMinDate || undefined}\n            toMonth={limitMaxDate || undefined}\n            onDayClick={handleDateChange}\n            weekdaysShort={weekdaysShort}\n            containerProps={containerProps}\n            captionElement={\n                hasYearMonthForm\n                    ? ({ date }) => (\n                          <YearMonthForm\n                              date={date}\n                              onChange={handleYearMonthChange}\n                              minDate={minDate}\n                              maxDate={maxDate}\n                          />\n                      )\n                    : undefined\n            }\n        />\n    );\n});\n\nexport default Calendar;\n","import { ContextRouteStopHashT } from '../models';\n\nexport const getContextRouteStopAddressHash = ({\n    latitude,\n    longitude,\n}: {\n    latitude?: number;\n    longitude?: number;\n}): ContextRouteStopHashT => {\n    return `#/${latitude}/${longitude}`;\n};\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './SignUpForm.scss';\n\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectSignUpRequestStatus } from 'common/store/auth/selectors';\nimport { FormValuesT as UserFormDataT } from './UserSignUpForm/constants';\nimport UserSignUpForm from './UserSignUpForm/UserSignUpForm';\nimport { FormValuesT as CompanyFormDataT } from './CompanySignUpForm/constants';\nimport CompanySignUpForm from './CompanySignUpForm/CompanySignUpForm';\nimport { signUp } from 'common/store/auth/actions';\nimport { prepareSignUpParams } from './prepare-sign-up-params';\nimport { useTranslation } from 'react-i18next';\nimport AuthLayoutMessage, { AuthMessageIconsEnum } from 'common/layouts/AuthLayout/AuthLayoutMessage/AuthLayoutMessage';\n\nconst cx = classNames.bind(styles);\n\nenum FormStepEnum {\n    user = 'user',\n    company = 'company',\n}\n\ntype PropsT = {\n    titleSignUpUser: string;\n    titleSignUpCompany: string;\n};\n\nconst SignUpForm: React.FC<PropsT> = React.memo((props) => {\n    const { titleSignUpUser, titleSignUpCompany } = props;\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const [step, setStep] = React.useState(FormStepEnum.user);\n    const [userFormData, setUserFormData] = React.useState<UserFormDataT | null>(null);\n\n    const signUpRequest = useSelector(selectSignUpRequestStatus);\n\n    if (signUpRequest.ok) {\n        return (\n            <AuthLayoutMessage\n                iconType={AuthMessageIconsEnum.success}\n                title={t('common:sign-up.success-message.title')}\n                description={t('common:sign-up.success-message.description')}\n                testSelector=\"success\"\n            />\n        );\n    }\n\n    return (\n        <>\n            <div className={cx('title')}>\n                {step === FormStepEnum.user && titleSignUpUser}\n                {step === FormStepEnum.company && titleSignUpCompany}\n            </div>\n            {step === FormStepEnum.user && (\n                <UserSignUpForm\n                    loading={signUpRequest.loading}\n                    onSubmit={(userFormData: UserFormDataT): void => {\n                        setUserFormData(userFormData);\n                        setStep(FormStepEnum.company);\n                    }}\n                />\n            )}\n            {step === FormStepEnum.company && (\n                <CompanySignUpForm\n                    loading={signUpRequest.loading}\n                    error={signUpRequest.error}\n                    onSubmit={(companyFormData: CompanyFormDataT): void => {\n                        const params = prepareSignUpParams(userFormData, companyFormData);\n                        if (!params) {\n                            return;\n                        }\n\n                        dispatch(signUp(params));\n                    }}\n                />\n            )}\n        </>\n    );\n});\n\nexport default SignUpForm;\n","// extracted by mini-css-extract-plugin\nexport default {\"widget\":\"PartnerDetailsLayout__widget___sfY5B\",\"widget__inner\":\"PartnerDetailsLayout__widget__inner___SkwZd\",\"widget-group\":\"PartnerDetailsLayout__widget-group___ELDlf\",\"widget-group__widget\":\"PartnerDetailsLayout__widget-group__widget___Shzd5\",\"stats-widget-group\":\"PartnerDetailsLayout__stats-widget-group___WI9_b\",\"stats-widget-group__widget\":\"PartnerDetailsLayout__stats-widget-group__widget___la5Ws\",\"wrap\":\"PartnerDetailsLayout__wrap___Tp0nz\",\"field__label\":\"PartnerDetailsLayout__field__label___AiuRK\",\"field--name\":\"PartnerDetailsLayout__field--name___nu472\",\"field--teams\":\"PartnerDetailsLayout__field--teams___IkVQO\",\"field--main-contact\":\"PartnerDetailsLayout__field--main-contact___gOUj8\",\"fadeIn\":\"PartnerDetailsLayout__fadeIn___DNX_Y\",\"blinking\":\"PartnerDetailsLayout__blinking___Keqfv\"};","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"InviteUserForm__form___FCxqZ\",\"fadeIn\":\"InviteUserForm__fadeIn___vjG2F\",\"blinking\":\"InviteUserForm__blinking___q5ELV\"};","// extracted by mini-css-extract-plugin\nexport default {\"zip-codes\":\"LocationsCell__zip-codes___KiZSH\",\"fadeIn\":\"LocationsCell__fadeIn___kehVo\",\"blinking\":\"LocationsCell__blinking___LkAoC\"};","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"OrderStatusPill__fadeIn___O_qq3\",\"blinking\":\"OrderStatusPill__blinking___NuEfN\"};","import { DictDocumentT } from 'common/store/documents-dict/models';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { useSelector } from 'react-redux';\nimport { selectDocumentsDictById } from 'common/store/documents-dict/selectors';\n\nconst useDictDocumentById = (\n    partnerType: PartnerTypeEnum | null | undefined,\n    dictDocumentId: DictDocumentFakeIdT | null | undefined,\n): DictDocumentT | null => {\n    const documentsDictById = useSelector(selectDocumentsDictById(partnerType as PartnerTypeEnum));\n\n    return documentsDictById?.[dictDocumentId as DictDocumentFakeIdT] || null;\n};\n\nexport { useDictDocumentById };\n","import {\n    CompanyActionT,\n    CompanyStateT,\n    FETCH_COMPANY_REQUEST_BEGIN,\n    FETCH_COMPANY_REQUEST_ERROR,\n    FETCH_COMPANY_REQUEST_SUCCESS,\n    UPDATE_COMPANY_REQUEST_BEGIN,\n    UPDATE_COMPANY_REQUEST_ERROR,\n    UPDATE_COMPANY_REQUEST_SUCCESS,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: CompanyStateT = {\n    currentCompanyRequest: requestStatus.initial,\n    updateCompanyRequest: requestStatus.initial,\n    currentCompany: null,\n};\n\nexport default (state = initialState, action: CompanyActionT | DestroySessionActionT): CompanyStateT => {\n    switch (action.type) {\n        case FETCH_COMPANY_REQUEST_BEGIN: {\n            return {\n                ...state,\n                currentCompanyRequest: requestStatus.loading,\n            };\n        }\n        case FETCH_COMPANY_REQUEST_SUCCESS: {\n            const { currentCompany } = action;\n            return {\n                ...state,\n                currentCompany,\n                currentCompanyRequest: requestStatus.ok,\n            };\n        }\n        case FETCH_COMPANY_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                currentCompanyRequest: requestStatus.setError(error),\n            };\n        }\n        case UPDATE_COMPANY_REQUEST_BEGIN: {\n            return {\n                ...state,\n                updateCompanyRequest: requestStatus.loading,\n            };\n        }\n        case UPDATE_COMPANY_REQUEST_SUCCESS: {\n            const { companyChanges } = action;\n            return {\n                ...state,\n                currentCompany: state.currentCompany\n                    ? {\n                          ...state.currentCompany,\n                          ...companyChanges,\n                      }\n                    : null,\n                updateCompanyRequest: requestStatus.ok,\n            };\n        }\n        case UPDATE_COMPANY_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                updateCompanyRequest: requestStatus.setError(error),\n            };\n        }\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n        default:\n            return state;\n    }\n};\n","import RouteIcon from 'common/icons/RouteIcon';\nimport { CURRENCY_SYMBOLS, DEFAULT_ICON_SIZE, KeyEnum, StyleGuideColorsEnum } from 'common/constants';\nimport * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport isNumber from 'lodash/isNumber';\n\nimport Input from 'common/components/Input/Input';\nimport { getMoneyMaskAllowNegative } from 'common/utils/input-masks';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport { costToString } from 'common/components/price-details/utils';\nimport EditIcon from 'common/icons/EditIcon';\nimport DoneIcon from 'common/icons/DoneIcon';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport RestoreIcon from 'common/icons/RestoreIcon';\nimport { commonPriceDetailsCX } from 'common/components/price-details/hooks/styles';\n\nexport type EditablePriceDetailsI18nKeysT = {\n    startEditingTooltip: string;\n    restorePriceTooltip: string;\n};\n\ntype ParamsT = {\n    sourcePrice: number | null;\n    price: number | null;\n    onChangePrice: (price: number | null) => void;\n    i18nKeys: EditablePriceDetailsI18nKeysT;\n    isAllowEditPrice: boolean;\n};\n\nexport const useEditablePriceDetails = (params: ParamsT) => {\n    const { sourcePrice, price, onChangePrice, i18nKeys, isAllowEditPrice } = params;\n\n    const { t } = useTranslation();\n\n    const moneyMask = React.useMemo(() => getMoneyMaskAllowNegative(), []);\n\n    const [isActiveEditing, setIsActiveEditing] = React.useState<boolean>(false);\n\n    const [inputValue, setInputValue] = React.useState<string>(costToString(price));\n\n    const handleActiveEditing = React.useCallback(() => {\n        setIsActiveEditing(true);\n    }, []);\n\n    const handleCancelEditing = React.useCallback(() => {\n        setInputValue(costToString(price));\n\n        onChangePrice(price);\n\n        setIsActiveEditing(false);\n    }, [onChangePrice, price]);\n\n    const handleRestore = React.useCallback(() => {\n        setInputValue(costToString(sourcePrice));\n\n        onChangePrice(null);\n\n        setIsActiveEditing(false);\n    }, [onChangePrice, sourcePrice]);\n\n    const handleConfirmEditing = React.useCallback(() => {\n        const parsedInputValue = parseSimpleNumber(inputValue) || 0;\n\n        if (!inputValue || parsedInputValue === sourcePrice) {\n            handleRestore();\n        } else if (parsedInputValue !== price) {\n            onChangePrice(parsedInputValue);\n        }\n\n        setIsActiveEditing(false);\n    }, [onChangePrice, price, sourcePrice, inputValue, handleRestore]);\n\n    React.useEffect(() => {\n        setInputValue(costToString(price));\n    }, [price]);\n\n    const isChangedPrice = isNumber(sourcePrice) && isNumber(price) && sourcePrice !== price;\n\n    const handleKeyUp = React.useCallback(\n        (event: React.KeyboardEvent<HTMLInputElement>) => {\n            if (event.key === KeyEnum.enter) {\n                handleConfirmEditing();\n            }\n\n            if (event.key === KeyEnum.escape) {\n                handleCancelEditing();\n            }\n        },\n        [handleConfirmEditing, handleCancelEditing],\n    );\n\n    const handleKeyDownRightNode = React.useCallback((event: React.KeyboardEvent<HTMLInputElement>) => {\n        if (event.key === KeyEnum.enter || event.key === KeyEnum.escape) {\n            event.preventDefault();\n            event.stopPropagation();\n        }\n    }, []);\n\n    return {\n        iconNode: <RouteIcon fillColor={StyleGuideColorsEnum.gray} />,\n        title: t('common:price-details.line-haul.title'),\n        tooltipNode: (\n            <TooltipContent theme={TooltipContentThemeEnum.black} width={150}>\n                {t('common:price-details.line-haul.tooltip')}\n            </TooltipContent>\n        ),\n        notActualPrice: sourcePrice,\n        price: isActiveEditing ? null : price,\n        priceDiff: !isActiveEditing && isNumber(price) && isNumber(sourcePrice) ? price - sourcePrice : null,\n        rightNode: isActiveEditing ? (\n            <div className={commonPriceDetailsCX('right-node-controls')} onKeyDown={handleKeyDownRightNode}>\n                <Input\n                    className={commonPriceDetailsCX('input')}\n                    name=\"custom-value\"\n                    value={inputValue}\n                    spaces=\"xs\"\n                    onChange={setInputValue}\n                    mask={moneyMask}\n                    rightNode={CURRENCY_SYMBOLS.EUR}\n                    onKeyUp={handleKeyUp}\n                    autoFocus\n                />\n                {isChangedPrice && (\n                    <Tooltip\n                        position={TooltipPositionEnum.topCenter}\n                        theme={TooltipThemeEnum.black}\n                        tooltipNode={\n                            <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                                {t(i18nKeys.restorePriceTooltip)}\n                            </TooltipContent>\n                        }\n                    >\n                        {() => (\n                            <TransparentTrigger\n                                spaces=\"xs\"\n                                onClick={handleRestore}\n                                leftIcon={<RestoreIcon strokeColor={StyleGuideColorsEnum.charcoal} />}\n                                reflectionTheme={ReflectionThemeEnum.light}\n                            />\n                        )}\n                    </Tooltip>\n                )}\n                <TransparentTrigger\n                    spaces=\"xs\"\n                    onClick={handleCancelEditing}\n                    leftIcon={<CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                    reflectionTheme={ReflectionThemeEnum.light}\n                />\n                <TransparentTrigger\n                    spaces=\"xs\"\n                    onClick={handleConfirmEditing}\n                    leftIcon={<DoneIcon fillColor={StyleGuideColorsEnum.brandAccent} size={DEFAULT_ICON_SIZE} />}\n                    reflectionTheme={ReflectionThemeEnum.light}\n                />\n            </div>\n        ) : null,\n        rightNodeMods: { withoutPadding: true },\n        isDisabledHover: isActiveEditing,\n        customActionNode:\n            !isActiveEditing && isAllowEditPrice ? (\n                <Tooltip\n                    position={TooltipPositionEnum.topCenter}\n                    theme={TooltipThemeEnum.black}\n                    tooltipNode={\n                        <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                            {t(i18nKeys.startEditingTooltip)}\n                        </TooltipContent>\n                    }\n                >\n                    {() => (\n                        <TransparentTrigger\n                            spaces=\"xs\"\n                            onClick={handleActiveEditing}\n                            leftIcon={\n                                <EditIcon\n                                    size={DEFAULT_ICON_SIZE}\n                                    fillColor={StyleGuideColorsEnum.light}\n                                    strokeColor={StyleGuideColorsEnum.charcoal}\n                                />\n                            }\n                            reflectionTheme={ReflectionThemeEnum.light}\n                        />\n                    )}\n                </Tooltip>\n            ) : null,\n    };\n};\n","import { SharableStateT } from '../models';\nimport { initialPartnerShipperContractLanesState, PartnerShipperContractLanesStateT } from './slice';\n\nconst selectCompanyState = (\n    state: SharableStateT,\n    partnerId: PartnerIdT | null,\n    contractId: ShipperContractIdT | null,\n): PartnerShipperContractLanesStateT => {\n    if (!partnerId || !contractId) {\n        return initialPartnerShipperContractLanesState;\n    }\n\n    return state.shipperContractLanes?.[partnerId]?.[contractId] || initialPartnerShipperContractLanesState;\n};\n\nexport const selectShipperContractLanesPages = (\n    partnerId: PartnerIdT | null,\n    contractId: ShipperContractIdT | null,\n) => {\n    return (state: SharableStateT): PartnerShipperContractLanesStateT['pages'] => {\n        return selectCompanyState(state, partnerId, contractId).pages;\n    };\n};\n\nexport const selectShipperContractLanesQuery = (\n    partnerId: PartnerIdT | null,\n    contractId: ShipperContractIdT | null,\n) => {\n    return (state: SharableStateT): PartnerShipperContractLanesStateT['query'] =>\n        selectCompanyState(state, partnerId, contractId).query;\n};\n\nexport const selectShipperContractLanesTotal = (\n    partnerId: PartnerIdT | null,\n    contractId: ShipperContractIdT | null,\n) => {\n    return (state: SharableStateT): PartnerShipperContractLanesStateT['total'] =>\n        selectCompanyState(state, partnerId, contractId).total;\n};\n\nexport const selectShipperContractLanesByIds = (\n    partnerId: PartnerIdT | null,\n    contractId: ShipperContractIdT | null,\n) => {\n    return (state: SharableStateT): PartnerShipperContractLanesStateT['byId'] =>\n        selectCompanyState(state, partnerId, contractId).byId;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"BrokerOrderStatusPill__fadeIn___qiiMY\",\"blinking\":\"BrokerOrderStatusPill__blinking___iZK4q\"};","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"InvitePartnerForm__wrap___Q4N52\",\"title\":\"InvitePartnerForm__title___s1sU1\",\"image\":\"InvitePartnerForm__image___wl3Y0\",\"form\":\"InvitePartnerForm__form___YcHvn\",\"field--email\":\"InvitePartnerForm__field--email___MTLk7\",\"field--partner-type\":\"InvitePartnerForm__field--partner-type___cctaY\",\"fadeIn\":\"InvitePartnerForm__fadeIn___okpFh\",\"blinking\":\"InvitePartnerForm__blinking___CrVWj\"};","export enum QueryFiltersKeysEnum {\n    text = 'text',\n}\n\nexport type QueryFiltersT = Partial<{\n    [QueryFiltersKeysEnum.text]: QueryParam.StringT;\n}>;\n\nexport enum QueryKeysEnum {\n    shipperContractsPage = 'shipper-contracts-page',\n    shipperContractsSort = 'shipper-contracts-sort',\n    shipperContractsFilters = 'shipper-contracts-filters',\n}\n","import * as React from 'react';\nimport { ApiRuleOperatorT, ApiRuleTargetT, ApiRuleValueT } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport isNumber from 'lodash/isNumber';\n\nimport styles from './PriceRuleTargetLabel.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    ruleTarget: ApiRuleTargetT | null | undefined;\n    ruleOperator: ApiRuleOperatorT | null | undefined;\n    ruleValue: ApiRuleValueT | null | undefined;\n};\n\nconst PriceRuleTargetLabel: React.FC<PropsT> = React.memo((props) => {\n    const { ruleTarget, ruleOperator, ruleValue, className } = props;\n\n    const { t } = useTranslation();\n\n    if (!ruleTarget || !ruleOperator) {\n        return null;\n    }\n\n    const targetI18nKey: ApiRuleTargetT = ruleTarget;\n    let targetPostfixI18nKey: 'value' | 'discount' | 'surcharge' = 'value';\n    if (ruleOperator === 'PERCENTS') {\n        targetPostfixI18nKey = isNumber(ruleValue) && ruleValue > 0 ? 'surcharge' : 'discount';\n    }\n\n    return (\n        <span className={cs(cx('target'), className)}>\n            {t(`price-settings.rules.impact.${targetI18nKey}.${targetPostfixI18nKey}`)}\n        </span>\n    );\n});\n\nexport default PriceRuleTargetLabel;\n","import * as React from 'react';\nimport GoogleMapContext from 'common/contexts/google-map-context';\nimport useGoogleMapsContextValue from '../../../utils/hooks/maps/useGoogleMapsContextValue';\n\ntype PropsT = {\n    children?: React.ReactNode;\n};\n\nconst GoogleMapContextProvider: React.FC<PropsT> = React.memo((props) => {\n    const { children } = props;\n\n    const googleMaps = useGoogleMapsContextValue();\n    const googleMapsContextValue = React.useMemo(() => {\n        return {\n            googleMaps,\n        };\n    }, [googleMaps]);\n\n    return <GoogleMapContext.Provider value={googleMapsContextValue}>{children}</GoogleMapContext.Provider>;\n});\n\nexport default GoogleMapContextProvider;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    fillColor?: StyleGuideColorsEnum;\n    size?: number;\n};\n\nconst ArrowForwardIcon: React.FC<PropsT> = (props) => {\n    const { size, className, fillColor = StyleGuideColorsEnum.charcoal } = props;\n\n    return (\n        <svg\n            width={size || DEFAULT_ICON_SIZE}\n            height={size || DEFAULT_ICON_SIZE}\n            viewBox=\"0 0 20 20\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            className={className}\n        >\n            <path\n                d=\"M4 9.25h9.128L8.935 5.058 10 4l6 6-6 6-1.057-1.057 4.185-4.193H4z\"\n                fill={fillColor}\n                fillRule=\"evenodd\"\n            />\n        </svg>\n    );\n};\n\nArrowForwardIcon.displayName = 'ArrowForwardIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n};\n\nexport { storyProps };\nexport default ArrowForwardIcon;\n","import * as React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './TourTypeTabsLayout.scss';\nimport Money from 'common/components/Money/Money';\nimport { CurrencyEnum, StyleGuideColorsEnum, UNIT, UnitTypeEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\nimport MoneyDiff, { MoneyDiffPropsT } from 'common/components/MoneyDiff/MoneyDiff';\nimport ColoredDiff, { ColoredDiffPropsT } from 'common/components/ColoredDiff/ColoredDiff';\nimport isNumber from 'lodash/isNumber';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport TooltipIconTrigger from 'design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\n\nconst cx = classNames.bind(styles);\n\ntype BaseTourTypeT = string;\n\nexport type TourTypeTabConfigT<T extends BaseTourTypeT> = {\n    type: T;\n    title: React.ReactNode;\n    titleTooltip?: React.ReactNode;\n    rows: Array<{\n        moneyDiffProps: Omit<MoneyDiffPropsT, 'children'>;\n        coloredDiffProps?: Partial<ColoredDiffPropsT>;\n        title: React.ReactNode;\n        cost: number | null | undefined;\n        percentDiffPill?: {\n            percentDiff: number;\n            isNotActual?: boolean;\n        } | null;\n    } | null>;\n};\n\ntype PropsT<T extends BaseTourTypeT> = {\n    className?: string;\n    selectedType: T | null;\n    onSelectType: (type: T) => void;\n    tabsConfig: TourTypeTabConfigT<T>[];\n};\n\nconst TourTypeTabsLayout = <T extends BaseTourTypeT>(props: PropsT<T>) => {\n    const { className, selectedType, onSelectType, tabsConfig } = props;\n\n    const { t } = useTranslation();\n\n    const renderSafetyMoney = (amount: number | null | undefined) => {\n        if (!isNumber(amount)) {\n            return t('common:not-applicable');\n        }\n\n        return <Money amount={amount} currency={CurrencyEnum.EUR} />;\n    };\n\n    const renderPercentDiffPill = <T extends BaseTourTypeT>(\n        percentDiffPill: NonNullable<TourTypeTabConfigT<T>['rows'][number]>['percentDiffPill'],\n    ) => {\n        if (!percentDiffPill) {\n            return null;\n        }\n\n        const percentDiff = percentDiffPill?.percentDiff;\n\n        const isPositiveDiff = isNumber(percentDiff) && percentDiff < 0;\n\n        let diffPercentPillTheme = isPositiveDiff ? PillLabelThemeEnum.brandDark : PillLabelThemeEnum.orange;\n        if (percentDiffPill?.isNotActual) {\n            diffPercentPillTheme = PillLabelThemeEnum.light;\n        }\n\n        return (\n            <div className={cx('diff-wrap')}>\n                <PillLabel isSymmetrical className={cx('diff')} theme={diffPercentPillTheme}>\n                    {isPositiveDiff ? '-' : '+'}\n                    <UnitTypeCount type={UnitTypeEnum.percentsAbbreviation} count={percentDiff} />\n                </PillLabel>\n            </div>\n        );\n    };\n\n    return (\n        <div className={cs(cx('wrap'), className)}>\n            <div className={cx('columns')}>\n                {tabsConfig.map((tabConfig) => {\n                    return (\n                        <div\n                            key={tabConfig.type}\n                            className={cx('tab', {\n                                'tab--isActive': tabConfig.type === selectedType,\n                            })}\n                            onClick={() => {\n                                onSelectType(tabConfig.type);\n                            }}\n                            data-test-selector={tabConfig.type}\n                        >\n                            <div className={cx('head')}>\n                                {tabConfig.title}\n                                {Boolean(tabConfig.titleTooltip) && (\n                                    <Tooltip\n                                        position={TooltipPositionEnum.topCenter}\n                                        theme={TooltipThemeEnum.black}\n                                        isInline\n                                        tooltipNode={\n                                            <TooltipContent width={50 * UNIT} theme={TooltipContentThemeEnum.black}>\n                                                {tabConfig.titleTooltip}\n                                            </TooltipContent>\n                                        }\n                                    >\n                                        {(isShow) => <TooltipIconTrigger isShow={isShow} />}\n                                    </Tooltip>\n                                )}\n                            </div>\n                            {tabConfig.rows.map((row, rowIndex) => {\n                                return row ? (\n                                    <MoneyDiff {...row.moneyDiffProps} key={rowIndex}>\n                                        {(diff) => (\n                                            <ColoredDiff\n                                                isInverted\n                                                diff={diff}\n                                                customNotNumberColor={StyleGuideColorsEnum.light}\n                                                customNegativeColor={StyleGuideColorsEnum.orange}\n                                                {...row.coloredDiffProps}\n                                            >\n                                                <div className={cx('row')}>\n                                                    <div>{row.title}</div>\n                                                    <div>{renderSafetyMoney(row.cost)}</div>\n                                                    {renderPercentDiffPill(row.percentDiffPill)}\n                                                </div>\n                                            </ColoredDiff>\n                                        )}\n                                    </MoneyDiff>\n                                ) : (\n                                    <div className={cx('row')} key={rowIndex} />\n                                );\n                            })}\n                        </div>\n                    );\n                })}\n            </div>\n        </div>\n    );\n};\n\nexport default React.memo(TourTypeTabsLayout) as typeof TourTypeTabsLayout;\n","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\nimport TransportOrderColoredStatus from 'common/components/status-colored/TransportOrderColoredStatus/TransportOrderColoredStatus';\nimport { ApiTransportOrderStatusT } from 'common/utils/api/models';\n\ntype PropsT = {\n    transportationOrderNumber: React.ReactNode;\n    status: ApiTransportOrderStatusT | null | undefined;\n};\n\nconst TransportationOrderStatusChangedCard: React.FC<PropsT> = React.memo((props) => {\n    const { transportationOrderNumber, status } = props;\n\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey=\"common:notifications.transportation-order-status-changed\"\n                components={{\n                    transportationOrderNumber: (\n                        <NotificationEntityLabel isBold isUnderline text={transportationOrderNumber} />\n                    ),\n                    status: <TransportOrderColoredStatus status={status} isInline />,\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default TransportationOrderStatusChangedCard;\n","const getDefaultAdditionalServices = (): number[] => {\n    const services: number[] = [];\n\n    // add additional services by default\n\n    return services;\n};\n\nexport { getDefaultAdditionalServices };\n","// extracted by mini-css-extract-plugin\nexport default {\"table--carrier\":\"TabTourDetails__table--carrier___p0Fg5\",\"table--waypoint\":\"TabTourDetails__table--waypoint___fPKWk\",\"table--spot\":\"TabTourDetails__table--spot___J5f0P\",\"table\":\"TabTourDetails__table___f5pKs\",\"fadeIn\":\"TabTourDetails__fadeIn___LCwtg\",\"blinking\":\"TabTourDetails__blinking___APLgB\"};","import React, { memo } from 'react';\nimport { DocumentTypeEnum, PartnerTypeEnum } from 'common/utils/api/models';\nimport CommonDocumentParamsDetailsForm from './CommonDocumentParamsDetailsForm/CommonDocumentParamsDetailsForm';\nimport EvidenceOfTaxDetailsForm from 'common/layouts/SideBars/contents/DocumentDetailsSidebarContent/DocumentParamsDetailsForm/EvidenceOfTaxDetailsForm/EvidenceOfTaxDetailsForm';\nimport { DocumentVersionT } from 'common/store/documents/models';\nimport { DictDocumentT } from 'common/store/documents-dict/models';\n\ntype PropsT = {\n    isReview: boolean;\n    actualVersion: DocumentVersionT | null;\n    dictDocument: DictDocumentT | null;\n    setNeedCloseConfirmation: (needCloseConfirmation: boolean) => void;\n    partnerId: PartnerIdT | null;\n    partnerType: PartnerTypeEnum | null;\n};\n\nconst DocumentParamsDetailsForm: React.FC<PropsT> = memo((props) => {\n    const { isReview, actualVersion, dictDocument, setNeedCloseConfirmation, partnerId, partnerType } = props;\n\n    switch (dictDocument?.type) {\n        case DocumentTypeEnum.evidenceOfTaxVat: {\n            return (\n                <EvidenceOfTaxDetailsForm\n                    isReview={isReview}\n                    dictDocument={dictDocument}\n                    actualVersion={actualVersion}\n                    setNeedCloseConfirmation={setNeedCloseConfirmation}\n                    partnerId={partnerId}\n                    partnerType={partnerType}\n                />\n            );\n        }\n        default: {\n            return (\n                <CommonDocumentParamsDetailsForm\n                    isReview={isReview}\n                    dictDocument={dictDocument}\n                    actualVersion={actualVersion}\n                    setNeedCloseConfirmation={setNeedCloseConfirmation}\n                    partnerId={partnerId}\n                    partnerType={partnerType}\n                />\n            );\n        }\n    }\n});\n\nexport default DocumentParamsDetailsForm;\n","import { SharableStateT } from '../models';\nimport { AlertsStateT } from 'common/store/alerts/types';\n\nconst NEW_ALERTS_LIMIT = 6;\n\nexport const selectNewAlertsIds = (state: SharableStateT): AlertsStateT['ids'] => {\n    return state.alerts.ids.slice(0, NEW_ALERTS_LIMIT);\n};\n\nexport const selectAlertsById = (state: SharableStateT): AlertsStateT['byId'] => {\n    return state.alerts.byId;\n};\n","import React from 'react';\n\nimport isEqual from 'lodash/isEqual';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\nimport styles from './RangeSelector.scss';\nimport Zone from './Zone/Zone';\nimport ZoneText from './ZoneText/ZoneText';\nimport Steps from './Steps/Steps';\nimport Trigger from './Trigger/Trigger';\nimport { RangeSelectorZoneThemeEnum } from './constants';\nimport DnDIconWrap from './DnDIconWrap/DnDIconWrap';\nimport min from 'lodash/min';\nimport max from 'lodash/max';\nimport isNumber from 'lodash/isNumber';\nimport { checkValuesIsAllowed } from './utils';\nimport CustomZoneTextWrap from 'common/components/RangeSelector/CustomZoneTextWrap/CustomZoneTextWrap';\nimport { RangeSelectorLabelsConfigT, RangeSelectorMarkT, RangeSelectorRangeT } from './models';\nimport ZoneMark from './ZoneMark/ZoneMark';\n\nconst cx = classNames.bind(styles);\n\nexport { RangeSelectorLabelsConfigT, RangeSelectorRangeT, RangeSelectorMarkT };\n\nexport type PropsT = {\n    className?: string;\n    minValuesRangeWidth?: number;\n    maxValuesRangeWidth?: number;\n    valuesRange: number[];\n    valueStep: number;\n    values: number[] | null;\n    availableValues: number[];\n\n    ranges: Array<RangeSelectorRangeT>;\n    isDisabled?: boolean;\n    isLocked?: boolean;\n    isAllowOnlyDragRange?: boolean;\n    isLockedLeftRangeControl?: boolean;\n    isLockedRightRangeControl?: boolean;\n    renderLabel: (value: number) => string | number;\n    onSelect: (selectedRange: [number, number]) => void;\n    labelsConfig: RangeSelectorLabelsConfigT;\n\n    marks?: Array<RangeSelectorMarkT>;\n    renderZoneTextNode?: (currentRanges: RangeSelectorRangeT[] | null, values: number[] | null) => React.ReactNode;\n};\n\nconst checkCursorOnTrigger = (triggerRef: React.RefObject<HTMLDivElement>, event: MouseEvent) => {\n    if (!triggerRef?.current) {\n        return false;\n    }\n\n    const bounds = triggerRef?.current.getBoundingClientRect();\n\n    return (\n        bounds.left <= event.clientX &&\n        event.clientX <= bounds.right &&\n        bounds.top <= event.clientY &&\n        event.clientY <= bounds.bottom\n    );\n};\n\nconst POSITIONS_RANGE: [number, number] = [0, 100];\nconst POSITIONS_RANGE_WIDTH = POSITIONS_RANGE[1] - POSITIONS_RANGE[0];\n\nconst checkIsSamePositions = (positionA: number, positionB: number): boolean => {\n    return positionA.toFixed(2) === positionB.toFixed(2);\n};\n\ntype DraggingLimitPositionsT = {\n    min: number;\n    max: number;\n};\n\nconst isNumberLimit = (limit: number | null | undefined): boolean => !Number.isNaN(limit);\n\nconst RangeSelector: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        valuesRange,\n        valueStep,\n        values,\n        renderLabel,\n        onSelect,\n        isAllowOnlyDragRange,\n        isLockedLeftRangeControl,\n        isLockedRightRangeControl,\n        availableValues,\n        ranges,\n        minValuesRangeWidth,\n        maxValuesRangeWidth,\n        labelsConfig,\n        renderZoneTextNode,\n        marks,\n    } = props;\n\n    const isLocked = props.isLocked || props.isDisabled;\n    const isAllowDragSelectedZone = (!isLockedLeftRangeControl && !isLockedRightRangeControl) || isAllowOnlyDragRange;\n\n    const prevPositionXRef = React.useRef<number>(0);\n\n    const [isHovered, setHovered] = React.useState<boolean>(false);\n\n    const valuesRangeWidth = valuesRange[1] - valuesRange[0];\n    const stepsCount = valuesRangeWidth / valueStep;\n    const positionStepWidth = POSITIONS_RANGE_WIDTH / stepsCount;\n\n    const getPosition = React.useCallback(\n        (value: number): number => {\n            const relativeValue = value - valuesRange[0];\n            return (relativeValue / valuesRangeWidth) * POSITIONS_RANGE_WIDTH;\n        },\n        [valuesRange, valuesRangeWidth],\n    );\n\n    const availablePositions = React.useMemo(() => {\n        return availableValues.map(getPosition);\n    }, [availableValues, getPosition]);\n\n    const rangesPositions = React.useMemo(() => {\n        return ranges.map((range) => range.values.map(getPosition));\n    }, [ranges, getPosition]);\n\n    const marksPositions = React.useMemo(() => {\n        if (!marks) {\n            return [];\n        }\n\n        return marks.map((mark) => getPosition(mark.value));\n    }, [marks, getPosition]);\n\n    const selectionRangeRef = React.useRef<HTMLDivElement>(null);\n\n    const draggingLeftPositionRef = React.useRef<DraggingLimitPositionsT | null>(null);\n    const draggingRightPositionRef = React.useRef<DraggingLimitPositionsT | null>(null);\n\n    // dragging left & right cursor\n    const isDraggingRef = React.useRef<boolean>(false);\n\n    // dragging left cursor\n    const leftTriggerRef = React.useRef<HTMLDivElement>(null);\n    const isDraggingLeftRef = React.useRef<boolean>(false);\n    const initialLeftPosition = React.useMemo<number>(() => {\n        if (typeof values?.[0] === 'number') {\n            return getPosition(Math.max(values[0], availableValues[0]));\n        }\n\n        return availableValues[0];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n    const leftPositionRef = React.useRef<number>(initialLeftPosition);\n\n    // dragging right cursor\n    const rightTriggerRef = React.useRef<HTMLDivElement>(null);\n    const isDraggingRightRef = React.useRef<boolean>(false);\n    const initialRightPosition = React.useMemo<number>(() => {\n        if (typeof values?.[1] === 'number') {\n            return getPosition(Math.max(values[1], availableValues[1]));\n        }\n\n        return availableValues[1];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n    const rightPositionRef = React.useRef<number>(initialRightPosition);\n\n    const [currentRanges, setCurrentRanges] = React.useState<RangeSelectorRangeT[]>([]);\n\n    React.useEffect(() => {\n        const leftPosition = leftPositionRef.current;\n\n        const newCurrentRanges: RangeSelectorRangeT[] = [];\n\n        rangesPositions.forEach((rangePosition, rangePositionIndex) => {\n            const isCurrent = rangePosition[0] <= leftPosition && leftPosition < rangePosition[1];\n            if (isCurrent) {\n                newCurrentRanges.push(ranges[rangePositionIndex]);\n            }\n        });\n\n        setCurrentRanges(newCurrentRanges);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [rangesPositions]);\n\n    const updateLeftPosition = React.useCallback(\n        (newLeftPosition: number) => {\n            const newCurrentRanges: RangeSelectorRangeT[] = [];\n\n            rangesPositions.forEach((rangePosition, rangePositionIndex) => {\n                const isCurrent = rangePosition[0] <= newLeftPosition && newLeftPosition < rangePosition[1];\n                if (isCurrent) {\n                    newCurrentRanges.push(ranges[rangePositionIndex]);\n                }\n            });\n\n            setCurrentRanges(newCurrentRanges);\n\n            if (selectionRangeRef.current) {\n                selectionRangeRef.current.style.left = `${newLeftPosition}%`;\n            }\n            leftPositionRef.current = newLeftPosition;\n        },\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        [rangesPositions],\n    );\n\n    const updateRightPosition = React.useCallback((newRightPosition: number) => {\n        if (selectionRangeRef.current) {\n            selectionRangeRef.current.style.right = `${POSITIONS_RANGE_WIDTH - newRightPosition}%`;\n        }\n        rightPositionRef.current = newRightPosition;\n    }, []);\n\n    const minRangePositions = minValuesRangeWidth\n        ? (minValuesRangeWidth / valuesRangeWidth) * POSITIONS_RANGE_WIDTH\n        : null;\n\n    const maxRangePositions = maxValuesRangeWidth\n        ? (maxValuesRangeWidth / valuesRangeWidth) * POSITIONS_RANGE_WIDTH\n        : null;\n\n    React.useEffect(() => {\n        if (!values) {\n            return;\n        }\n\n        const [newLeftPosition, newRightPosition] = values.map(getPosition);\n        updateLeftPosition(newLeftPosition);\n        updateRightPosition(newRightPosition);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [values, minRangePositions, maxRangePositions]);\n\n    const containerRef = React.useRef<HTMLDivElement>(null);\n    const [containerSize, setContainerSize] = React.useState<DivSizeT>({\n        width: 0,\n        height: 0,\n    });\n\n    React.useEffect(() => {\n        if (!containerRef.current) {\n            return;\n        }\n\n        setContainerSize({\n            width: containerRef.current.offsetWidth,\n            height: containerRef.current.offsetHeight,\n        });\n    }, []);\n\n    const handleMouseMove = React.useCallback(\n        (event: MouseEvent) => {\n            if (!isDraggingRef.current && !isDraggingLeftRef.current && !isDraggingRightRef.current) {\n                return;\n            }\n\n            if (isLocked) {\n                return;\n            }\n\n            const positionX = event.clientX;\n            const diff = positionX - prevPositionXRef.current;\n            if (Number.isNaN(diff)) {\n                return;\n            }\n\n            prevPositionXRef.current = positionX;\n\n            const leftPosition = leftPositionRef.current;\n            const rightPosition = rightPositionRef.current;\n\n            if (isDraggingRef.current && isAllowOnlyDragRange) {\n                // When isAllowOnlyDragRange is true, the range must preserve its width\n                const rangeWidth = rightPosition - leftPosition;\n                const newLeftPosition = leftPosition + (diff / containerSize.width) * POSITIONS_RANGE_WIDTH;\n                const newRightPosition = newLeftPosition + rangeWidth;\n\n                const isAllowedNewLeftPosition =\n                    (typeof draggingLeftPositionRef.current?.min === 'number'\n                        ? newLeftPosition >= draggingLeftPositionRef.current.min\n                        : true) &&\n                    (typeof draggingLeftPositionRef.current?.max === 'number'\n                        ? newLeftPosition <= draggingLeftPositionRef.current.max\n                        : true);\n\n                const isAllowedNewRightPosition =\n                    (typeof draggingRightPositionRef.current?.min === 'number'\n                        ? newRightPosition >= draggingRightPositionRef.current.min\n                        : true) &&\n                    (typeof draggingRightPositionRef.current?.max === 'number'\n                        ? newRightPosition <= draggingRightPositionRef.current.max\n                        : true);\n\n                // Update both positions only if both are allowed to preserve the width\n                if (isAllowedNewLeftPosition && isAllowedNewRightPosition) {\n                    updateLeftPosition(newLeftPosition);\n                    updateRightPosition(newRightPosition);\n                }\n            } else {\n                if (isDraggingRef.current || isDraggingLeftRef.current) {\n                    const newLeftPosition = leftPosition + (diff / containerSize.width) * POSITIONS_RANGE_WIDTH;\n\n                    const isAllowedNewLeftPosition =\n                        (typeof draggingLeftPositionRef.current?.min === 'number'\n                            ? newLeftPosition >= draggingLeftPositionRef.current.min\n                            : true) &&\n                        (typeof draggingLeftPositionRef.current?.max === 'number'\n                            ? newLeftPosition <= draggingLeftPositionRef.current.max\n                            : true);\n\n                    if (isAllowedNewLeftPosition) {\n                        updateLeftPosition(newLeftPosition);\n                    }\n                }\n\n                if (isDraggingRef.current || isDraggingRightRef.current) {\n                    const newRightPosition = rightPosition + (diff / containerSize.width) * POSITIONS_RANGE_WIDTH;\n\n                    const isAllowedNewRightPosition =\n                        (typeof draggingRightPositionRef.current?.min === 'number'\n                            ? newRightPosition >= draggingRightPositionRef.current.min\n                            : true) &&\n                        (typeof draggingRightPositionRef.current?.max === 'number'\n                            ? newRightPosition <= draggingRightPositionRef.current.max\n                            : true);\n\n                    if (isAllowedNewRightPosition) {\n                        updateRightPosition(newRightPosition);\n                    }\n                }\n            }\n        },\n        [isLocked, containerSize, updateLeftPosition, updateRightPosition, isAllowOnlyDragRange],\n    );\n\n    const handleMouseDown = React.useCallback(\n        (event: MouseEvent) => {\n            if (isLocked) {\n                return;\n            }\n\n            const isLeftTriggerClick = checkCursorOnTrigger(leftTriggerRef, event);\n            const isRightTriggerClick = checkCursorOnTrigger(rightTriggerRef, event);\n            const isRangeClick = checkCursorOnTrigger(selectionRangeRef, event);\n            if (!isLeftTriggerClick && !isRightTriggerClick && !isRangeClick) {\n                return;\n            }\n\n            const leftPosition = leftPositionRef.current;\n            const rightPosition = rightPositionRef.current;\n\n            const positionX = event.clientX;\n            if (isNumber(positionX)) {\n                prevPositionXRef.current = positionX;\n            }\n\n            if (isLeftTriggerClick) {\n                isDraggingLeftRef.current = true;\n\n                draggingLeftPositionRef.current = {\n                    min: max(\n                        [\n                            maxRangePositions ? rightPosition - maxRangePositions : null,\n                            availablePositions[0] || POSITIONS_RANGE[0],\n                        ].filter(isNumberLimit),\n                    ) as number,\n                    max: min(\n                        [\n                            minRangePositions ? rightPosition - minRangePositions : null,\n                            availablePositions[1] || POSITIONS_RANGE[1],\n                        ].filter(isNumberLimit),\n                    ) as number,\n                };\n            }\n\n            if (isRightTriggerClick) {\n                isDraggingRightRef.current = true;\n                draggingRightPositionRef.current = {\n                    min: max(\n                        [\n                            minRangePositions ? leftPosition + minRangePositions : null,\n                            availablePositions[0] || POSITIONS_RANGE[0],\n                        ].filter(isNumberLimit),\n                    ) as number,\n                    max: min(\n                        [\n                            maxRangePositions ? leftPosition + maxRangePositions : null,\n                            availablePositions[1] || POSITIONS_RANGE[1],\n                        ].filter(isNumberLimit),\n                    ) as number,\n                };\n            }\n\n            if (!isLeftTriggerClick && !isRightTriggerClick && isRangeClick && isAllowDragSelectedZone) {\n                isDraggingRef.current = true;\n\n                if (isAllowOnlyDragRange) {\n                    const rangeWidth = rightPosition - leftPosition;\n                    const minAvailablePosition = availablePositions[0] || POSITIONS_RANGE[0];\n                    const maxAvailablePosition = availablePositions[1] || POSITIONS_RANGE[1];\n\n                    // When isAllowOnlyDragRange is true, the range must preserve its width\n                    // Left position is limited so that the right position doesn't exceed maxAvailablePosition\n                    draggingLeftPositionRef.current = {\n                        min: minAvailablePosition,\n                        max: maxAvailablePosition - rangeWidth,\n                    };\n\n                    // Right position is limited so that the left position doesn't exceed minAvailablePosition\n                    draggingRightPositionRef.current = {\n                        min: minAvailablePosition + rangeWidth,\n                        max: maxAvailablePosition,\n                    };\n                } else {\n                    draggingLeftPositionRef.current = {\n                        min: availablePositions[0] || POSITIONS_RANGE[0],\n                        max: (availablePositions[1] || POSITIONS_RANGE[1]) - (minRangePositions || 0),\n                    };\n\n                    draggingRightPositionRef.current = {\n                        min: (availablePositions[0] || POSITIONS_RANGE[0]) + (minRangePositions || 0),\n                        max: availablePositions[1] || POSITIONS_RANGE[1],\n                    };\n                }\n            }\n        },\n        [\n            maxRangePositions,\n            isLocked,\n            isAllowDragSelectedZone,\n            availablePositions,\n            minRangePositions,\n            isAllowOnlyDragRange,\n        ],\n    );\n\n    const onSelectRef = React.useRef<typeof onSelect>(onSelect);\n    onSelectRef.current = onSelect;\n\n    const handleMouseUp = React.useCallback(() => {\n        if (isLocked) {\n            return;\n        }\n\n        if (!isDraggingRightRef.current && !isDraggingLeftRef.current && !isDraggingRef.current) {\n            return;\n        }\n\n        const leftPosition = leftPositionRef.current;\n        const rightPosition = rightPositionRef.current;\n\n        const currentLeftStep = Math.round(leftPosition / positionStepWidth);\n        const newLeftPosition = Math.max(getPosition(availableValues[0]), currentLeftStep * positionStepWidth);\n        if (!checkIsSamePositions(leftPosition, newLeftPosition) && selectionRangeRef.current) {\n            updateLeftPosition(newLeftPosition);\n        }\n\n        const currentRightStep = Math.round(rightPosition / positionStepWidth);\n        const newRightPosition = Math.min(getPosition(availableValues[1]), currentRightStep * positionStepWidth);\n        if (!checkIsSamePositions(rightPosition, newRightPosition) && selectionRangeRef.current) {\n            updateRightPosition(newRightPosition);\n        }\n\n        const [minValue] = valuesRange;\n        const selectedRange: [number, number] = [\n            minValue + currentLeftStep * valueStep,\n            minValue + currentRightStep * valueStep,\n        ];\n\n        if (selectedRange[1] - selectedRange[0] < valueStep) {\n            if (isDraggingLeftRef.current) {\n                selectedRange[0] -= valueStep;\n            } else {\n                selectedRange[1] += valueStep;\n            }\n        }\n\n        const isSameValue = isEqual(selectedRange, values);\n        if (!isSameValue) {\n            onSelectRef.current(selectedRange);\n        }\n\n        isDraggingLeftRef.current = false;\n        isDraggingRightRef.current = false;\n        isDraggingRef.current = false;\n    }, [\n        values,\n        isLocked,\n        positionStepWidth,\n        availableValues,\n        getPosition,\n        valuesRange,\n        valueStep,\n        updateLeftPosition,\n        updateRightPosition,\n    ]);\n\n    const handleMouseLeave = React.useCallback(() => {\n        if (isLocked) {\n            return;\n        }\n\n        handleMouseUp();\n    }, [isLocked, handleMouseUp]);\n\n    const firstCurrentRange = currentRanges?.[0] || null;\n\n    const currentRangeTheme = firstCurrentRange?.theme || RangeSelectorZoneThemeEnum.green;\n\n    const handleTriggerMouseLeave = React.useCallback(() => {\n        if (isLocked) {\n            return;\n        }\n\n        if (isHovered) {\n            setHovered(false);\n        }\n    }, [isLocked, isHovered, setHovered]);\n\n    const handleTriggerMouseEnter = React.useCallback(() => {\n        if (isLocked) {\n            return;\n        }\n\n        if (!isHovered) {\n            setHovered(true);\n        }\n    }, [isLocked, isHovered, setHovered]);\n\n    const leftDisableRange = React.useMemo(() => {\n        return [POSITIONS_RANGE[0], availablePositions[0]];\n    }, [availablePositions]);\n    const isEmptyLeftDisableRange = leftDisableRange[0] === leftDisableRange[1];\n\n    const rightDisableRange = React.useMemo(() => {\n        return [availablePositions[1], POSITIONS_RANGE[1]];\n    }, [availablePositions]);\n    const isEmptyRightDisableRange = rightDisableRange[0] === rightDisableRange[1];\n\n    const filledPositions = React.useMemo(() => {\n        const leftRanges = rangesPositions.map((position) => position[0]);\n        const rightRanges = rangesPositions.map((position) => position[1]);\n\n        if (!isEmptyLeftDisableRange) {\n            leftRanges.push(leftDisableRange[0]);\n            rightRanges.push(leftDisableRange[1]);\n        }\n\n        if (!isEmptyRightDisableRange) {\n            leftRanges.push(rightDisableRange[0]);\n            rightRanges.push(rightDisableRange[1]);\n        }\n\n        return [min(leftRanges) || 0, max(rightRanges) || 0];\n    }, [rangesPositions, leftDisableRange, rightDisableRange, isEmptyLeftDisableRange, isEmptyRightDisableRange]);\n\n    const isAllowedSelectedValues = checkValuesIsAllowed(values, {\n        availableValues,\n        minValuesRangeWidth,\n        maxValuesRangeWidth,\n    });\n\n    React.useEffect(() => {\n        if (!isAllowedSelectedValues) {\n            return () => {\n                // nothing\n            };\n        }\n\n        document.addEventListener('mousemove', handleMouseMove);\n        document.addEventListener('mouseup', handleMouseUp);\n        document.addEventListener('mousedown', handleMouseDown);\n        document.addEventListener('mouseleave', handleMouseLeave);\n\n        return () => {\n            document.removeEventListener('mousemove', handleMouseMove);\n            document.removeEventListener('mouseup', handleMouseUp);\n            document.removeEventListener('mousedown', handleMouseDown);\n            document.removeEventListener('mouseleave', handleMouseLeave);\n        };\n    }, [isAllowedSelectedValues, handleMouseMove, handleMouseUp, handleMouseDown, handleMouseLeave]);\n\n    const isDragging = isDraggingRef.current || isDraggingRightRef.current || isDraggingLeftRef.current;\n    return (\n        <div\n            className={cs(\n                cx('container', {\n                    'container--isDisabled': props.isDisabled,\n                }),\n                className,\n            )}\n            ref={containerRef}\n            data-test-selector=\"range-selector\"\n        >\n            <Zone\n                key=\"all-range\"\n                theme={RangeSelectorZoneThemeEnum.light}\n                left={POSITIONS_RANGE[0]}\n                width={POSITIONS_RANGE_WIDTH}\n                hasLeftBorder\n                hasRightBorder\n            />\n            {!isEmptyLeftDisableRange && (\n                <Zone\n                    isDisabled\n                    hasLeftBorder\n                    left={leftDisableRange[0]}\n                    width={leftDisableRange[1] - leftDisableRange[0]}\n                />\n            )}\n            {!isEmptyRightDisableRange && (\n                <Zone\n                    isDisabled\n                    hasRightBorder\n                    left={rightDisableRange[0]}\n                    width={rightDisableRange[1] - rightDisableRange[0]}\n                />\n            )}\n            {ranges.map((range, rangeIndex) => {\n                const positions = rangesPositions[rangeIndex];\n                const isOutsideAvailableValues =\n                    range.values[1] < availableValues[0] || availableValues[1] < range.values[0];\n                const isHidden = (isOutsideAvailableValues && !range?.isShowOutsideAvailableValues) || range?.isHidden;\n                if (isHidden) {\n                    return null;\n                }\n\n                return (\n                    <>\n                        <Zone\n                            key={`range-${rangeIndex}`}\n                            theme={range.theme}\n                            // eslint-disable-next-line react/no-children-prop\n                            children={range.children}\n                            hasLeftBorder={positions[0] === POSITIONS_RANGE[0]}\n                            hasRightBorder={positions[1] === POSITIONS_RANGE[1]}\n                            left={positions[0]}\n                            width={positions[1] - positions[0]}\n                        />\n                        {range?.marks?.map((mark, markIndex) => {\n                            let left = getPosition(mark.value);\n\n                            if (positions[0] < POSITIONS_RANGE[0]) {\n                                // eslint-disable-next-line prefer-destructuring\n                                left = POSITIONS_RANGE[0];\n                            }\n\n                            const hasLeftBorder = left !== POSITIONS_RANGE[0];\n\n                            const isHiddenMark = availableValues[1] < mark.value;\n                            if (isHiddenMark) {\n                                return null;\n                            }\n\n                            return (\n                                <ZoneMark\n                                    key={`range-${rangeIndex}/mark-${markIndex}`}\n                                    theme={mark.borderTheme || range.theme || null}\n                                    isActive\n                                    hasLeftBorder={hasLeftBorder}\n                                    left={left}\n                                >\n                                    {mark?.icon}\n                                </ZoneMark>\n                            );\n                        })}\n                    </>\n                );\n            })}\n            {marks?.map((mark, markIndex) => {\n                const positions = marksPositions[markIndex];\n                const hasLeftBorder = positions !== POSITIONS_RANGE[0];\n\n                return (\n                    <ZoneMark\n                        key={`mark-${markIndex}`}\n                        theme={mark.borderTheme || null}\n                        hasLeftBorder={hasLeftBorder}\n                        left={positions}\n                    >\n                        {mark?.icon}\n                    </ZoneMark>\n                );\n            })}\n            <Steps\n                minValue={valuesRange[0]}\n                stepsCount={stepsCount}\n                step={valueStep}\n                shownLabelCount={labelsConfig.shownLabelCount}\n                shownStepCount={labelsConfig.shownStepCount}\n                hasStartStep={labelsConfig.hasStartStep}\n                hasEndStep={labelsConfig.hasEndStep}\n                renderLabel={renderLabel}\n                filledPositions={filledPositions}\n            />\n            {values && (\n                <div\n                    className={cx('selection-range', {\n                        'selection-range--isDragable': isAllowDragSelectedZone && !isLocked,\n                        'selection-range--isDragging': isDragging,\n                        'selection-range--isLocked': isLocked,\n                        'selection-range--isOutOffValues': !isAllowedSelectedValues,\n                    })}\n                    onMouseEnter={handleTriggerMouseEnter}\n                    onMouseLeave={handleTriggerMouseLeave}\n                    ref={selectionRangeRef}\n                >\n                    <Zone\n                        isSelected\n                        isHovered={isHovered}\n                        theme={currentRangeTheme}\n                        left={POSITIONS_RANGE[0]}\n                        width={POSITIONS_RANGE_WIDTH}\n                    />\n                    {firstCurrentRange && !renderZoneTextNode && (\n                        <ZoneText\n                            containerRef={containerRef}\n                            selectionRangeRef={selectionRangeRef}\n                            theme={currentRangeTheme}\n                            text={firstCurrentRange.label || ''}\n                            values={values}\n                        />\n                    )}\n                    {isAllowDragSelectedZone && <DnDIconWrap values={values} />}\n                    <Trigger\n                        isLeft\n                        isDisabled={isLocked}\n                        isInteractive={!isLockedLeftRangeControl}\n                        divRef={leftTriggerRef}\n                        theme={currentRangeTheme}\n                    />\n                    <Trigger\n                        isRight\n                        isDisabled={isLocked}\n                        isInteractive={!isLockedRightRangeControl}\n                        divRef={rightTriggerRef}\n                        theme={currentRangeTheme}\n                    />\n                </div>\n            )}\n            {renderZoneTextNode && (\n                <CustomZoneTextWrap\n                    values={values}\n                    currentRanges={currentRanges}\n                    renderZoneTextNode={renderZoneTextNode}\n                />\n            )}\n        </div>\n    );\n});\nexport default RangeSelector;\n","import * as React from 'react';\nimport { createPortal } from 'react-dom';\n\nconst modalRoot = document.getElementById('modal');\n\ntype PropsT = {};\n\nclass Modal extends React.Component<PropsT> {\n    element: HTMLDivElement;\n\n    constructor(props: PropsT) {\n        super(props);\n\n        this.element = document.createElement('div');\n    }\n\n    componentDidMount(): void {\n        if (modalRoot) {\n            modalRoot.appendChild(this.element);\n        }\n    }\n\n    componentWillUnmount(): void {\n        if (modalRoot) {\n            modalRoot.removeChild(this.element);\n        }\n    }\n\n    render(): React.ReactElement {\n        const { children } = this.props;\n\n        return createPortal(children, this.element);\n    }\n}\nexport default Modal;\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport type AcceptDeclinedOrderConfirmationDataT = {};\n\ntype PropsT = {\n    requestStatus: RequestStatusT | null;\n    data: AcceptDeclinedOrderConfirmationDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onConfirm: (data: AcceptDeclinedOrderConfirmationDataT) => void;\n};\n\nconst TEST_SELECTOR = 'accept-decline-confirmation';\n\nconst AcceptDeclinedOrderConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { requestStatus, data, onCancel, onClose, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: requestStatus?.loading,\n                            onClick: onCancel,\n                        },\n                        {\n                            children: t('common:error-modal.actions.accept'),\n                            theme: ButtonThemeEnum.primary,\n                            testSelector: `${TEST_SELECTOR}_accept`,\n                            isDisabled: requestStatus?.loading,\n                            isLoading: requestStatus?.loading,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.brandAccent} />}\n                    title={t('common:transport-order-details.dialogs.accept-declined.title')}\n                    message={t('common:transport-order-details.dialogs.accept-declined.description')}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default AcceptDeclinedOrderConfirmation;\n","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\n\ntype PropsT = {\n    shipmentNumber: React.ReactNode;\n};\n\nconst MissedDeliveryForShipmentCard: React.FC<PropsT> = React.memo((props) => {\n    const { shipmentNumber } = props;\n\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey=\"common:notifications.missed-delivery-for-shipment\"\n                components={{\n                    shipmentNumber: <NotificationEntityLabel isBold isUnderline text={shipmentNumber} />,\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default MissedDeliveryForShipmentCard;\n","import { ApiMultiPointPriceOfferT } from 'common/utils/api/models';\nimport { AppliedRuleT, PriceOfferT } from '../models';\nimport { checkIsPastDate, getDateFromISO, parseDateString } from 'common/utils/time';\nimport { convertToKm } from 'common/utils/distance';\nimport map from 'lodash/map';\nimport { isNonNil } from 'common/utils';\nimport { findAdditionalServiceByType } from 'common/utils/additional-services';\nimport { BROKER_ADDITIONAL_SERVICES_TYPE } from 'common/constants';\n\nexport default (apiPriceOffer: ApiMultiPointPriceOfferT): PriceOfferT => {\n    const expirationMs = parseDateString(apiPriceOffer.expiration);\n\n    const firstPoint = apiPriceOffer?.points?.[0];\n    const lastPoint = apiPriceOffer?.points ? apiPriceOffer.points[apiPriceOffer.points.length - 1] : null;\n\n    return {\n        id: apiPriceOffer.id,\n        dropOffDockingHoursFrom: lastPoint?.from || '',\n        dropOffDockingHoursTo: lastPoint?.to || '',\n        pickupDockingHoursFrom: firstPoint?.from || '',\n        pickupDockingHoursTo: firstPoint?.to || '',\n        dropOffDate: getDateFromISO(lastPoint?.from),\n        pickUpDate: getDateFromISO(firstPoint?.from),\n        isGreenTruck: !!findAdditionalServiceByType(\n            apiPriceOffer?.additionalServices,\n            BROKER_ADDITIONAL_SERVICES_TYPE.LOW_EMISSIONS,\n        ),\n        isUrgentShipment: !!findAdditionalServiceByType(\n            apiPriceOffer?.additionalServices,\n            BROKER_ADDITIONAL_SERVICES_TYPE.URGENT_PICKUP,\n        ),\n        isTeamDrive: apiPriceOffer.teamDriveCost !== null,\n        hasLayover: Boolean(apiPriceOffer.layover?.totalSeconds),\n        layoverSeconds: apiPriceOffer.layover?.totalSeconds || 0,\n        layoverPaidHours: apiPriceOffer.layover?.paidHours || 0,\n        distanceKm: convertToKm(apiPriceOffer.distances?.totalDistance) || 0,\n        co2: apiPriceOffer.co2 || 0,\n        emissionClass: apiPriceOffer.emissionClass,\n        travelSeconds: apiPriceOffer.travelSeconds || 0,\n        price: apiPriceOffer.totalPrice,\n        expiration: apiPriceOffer.expiration || null,\n        expirationMs: parseDateString(apiPriceOffer.expiration),\n        isExpired: checkIsPastDate(expirationMs),\n        brokerInfo: apiPriceOffer.brokerInfo\n            ? {\n                  ...apiPriceOffer.brokerInfo,\n                  appliedRules: map(apiPriceOffer.brokerInfo?.appliedRules, (rule): AppliedRuleT | null => {\n                      if (!rule.valueType) {\n                          return null;\n                      }\n\n                      return {\n                          ...rule,\n                      };\n                  }).filter(isNonNil),\n              }\n            : undefined,\n        teamDriveHours: apiPriceOffer.teamDriveHours,\n        fuelOptionType: apiPriceOffer?.fuel?.fuelType,\n        priceComponents: {\n            lineHaul: apiPriceOffer.lineHaul,\n            toll: apiPriceOffer.toll?.totalCost,\n            fuel: apiPriceOffer.fuel?.totalCost,\n            fuelByCountry: apiPriceOffer.fuel?.byCountry,\n            additionalServicesItems: apiPriceOffer.additionalServices?.items,\n            tranziitServiceFee: apiPriceOffer?.serviceFee,\n            layover: apiPriceOffer.layover?.totalCost,\n            teamDriveCost: apiPriceOffer.teamDriveCost,\n            tollByRoadType: apiPriceOffer.toll?.byRoadType,\n            totalRate: apiPriceOffer.totalRate,\n            costOfOperation: apiPriceOffer.costOfOperation,\n        },\n    };\n};\n","import * as React from 'react';\nimport { useContext, useMemo } from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport scrollIntoView from 'scroll-into-view';\n\nimport styles from './RouteDetailsForm.scss';\nimport {\n    FieldsEnum,\n    PointContactsFieldsEnum,\n    PointContactsFormValuesT,\n    requiredContactsStopTypeSet,\n    RouteDetailsFormValuesT,\n} from './constants';\nimport { FormikContext, useFormik } from 'formik';\nimport { useTranslation } from 'react-i18next';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport validateForm from './validate-form';\nimport { useSelector } from 'react-redux';\nimport { formatAddressComponents } from 'common/utils/google-places';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport { PHONE_NUMBER_PREFIX, StyleGuideColorsEnum } from 'common/constants';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport { MS_IN_HOUR } from 'common/utils/time';\n\nimport { isNonNil } from 'common/utils';\nimport times from 'lodash/times';\nimport PointContactsPicker from 'common/layouts/NewOrderPage/CargoDetailsForm/PointContactsPicker/PointContactsPicker';\nimport Card from 'design-system/components/Card/Card';\nimport NumberIcon from 'common/icons/NumberIcon';\nimport FooterSideBarAlertsLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarAlertsLayout/FooterSideBarAlertsLayout';\nimport {\n    selectDeadheadApplyRequest,\n    selectDeadheadContext,\n    selectDeadheadPreviewResponse,\n} from 'broker-admin/store/deadhead-creation/selectors';\nimport {\n    MapRoutePointT,\n    SyncRouteEditFormMapStateContext,\n} from 'broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/contexts/sync-map-state';\nimport { DeadheadRouteStopT, DeadheadRouteStopTypeEnum } from 'broker-admin/store/deadhead-creation/models';\nimport { convertPointToLocation } from 'broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/utils/convert-point-to-location';\nimport { routePointTypeMap } from 'broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/utils/stop-type';\nimport { TooltipPositionEnum } from 'design-system/components/Tooltip/Tooltip';\nimport { prepareValues } from './prepare-values';\nimport ContactFilledIndicator from 'common/layouts/NewOrderPage/CargoDetailsForm/ContactFilledIndicator/ContactFilledIndicator';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    onSubmit: (formValues: RouteDetailsFormValuesT) => void;\n    onExpireContext: () => void;\n};\n\nconst DEFAULT_POINT_CONTACTS_VALUES: PointContactsFormValuesT = {\n    [PointContactsFieldsEnum.companyName]: '',\n    [PointContactsFieldsEnum.fullName]: '',\n    [PointContactsFieldsEnum.email]: '',\n    [PointContactsFieldsEnum.phoneNumber]: PHONE_NUMBER_PREFIX,\n    [PointContactsFieldsEnum.comment]: '',\n};\n\nconst getInitialValues = ({ stops }: { stops: Array<DeadheadRouteStopT> }): RouteDetailsFormValuesT => {\n    return {\n        [FieldsEnum.contacts]: times(stops?.length || 0).map(() => {\n            return {\n                ...DEFAULT_POINT_CONTACTS_VALUES,\n            };\n        }),\n    };\n};\n\nconst RouteDetailsForm: React.FC<PropsT> = React.memo((props) => {\n    const { onSubmit, onExpireContext } = props;\n\n    const { t } = useTranslation();\n\n    const ref = React.createRef<HTMLDivElement>();\n\n    const applyRequestStatus = useSelector(selectDeadheadApplyRequest);\n\n    const context = useSelector(selectDeadheadContext);\n    const contextPreview = useSelector(selectDeadheadPreviewResponse);\n\n    React.useEffect((): void => {\n        if (!ref.current) {\n            return;\n        }\n\n        scrollIntoView(ref.current, {\n            time: 300,\n        });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const stops = React.useMemo(() => {\n        return contextPreview?.stops || [];\n    }, [contextPreview]);\n\n    const routePoints = useMemo((): Array<MapRoutePointT> => {\n        return stops\n            .map((stop, index) => {\n                return {\n                    id: `${stop.type}-${index}`,\n                    location: convertPointToLocation(stop.address || null) || null,\n                    type: stop.type ? routePointTypeMap[stop.type] : DeadheadRouteStopTypeEnum.unknown,\n                    number: (stop.index || 0) + 1,\n                    isDraggable: false,\n                    hasError: false,\n                };\n            })\n            .filter(isNonNil);\n    }, [stops]);\n\n    const syncMapStateContext = useContext(SyncRouteEditFormMapStateContext);\n    React.useEffect(() => {\n        syncMapStateContext.setMapRoutePoints(routePoints);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [routePoints]);\n\n    const validate = React.useMemo(() => {\n        return (values: RouteDetailsFormValuesT) =>\n            validateForm(t, values, {\n                stops,\n            });\n    }, [t, stops]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues({ stops });\n        const errors = validateForm(t, values, {\n            stops,\n        });\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [stops]);\n\n    const formik = useFormik<RouteDetailsFormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const preparedValues = prepareValues(values, stops);\n            onSubmit(preparedValues);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const pointContactsFormValues = formik.values[FieldsEnum.contacts];\n\n    const timerPlaceholderNode = <div style={{ width: 50 }} />;\n\n    return (\n        <FormikContext.Provider value={formik}>\n            <form onSubmit={formik.handleSubmit}>\n                <div className={cx('inner')} data-test-selector=\"contacts-form\">\n                    <div ref={ref} />\n                    <div>\n                        {pointContactsFormValues.map((_, index) => {\n                            const stop = stops[index];\n                            if (!stop || !requiredContactsStopTypeSet.has(stop.type)) {\n                                return null;\n                            }\n\n                            return (\n                                <Card\n                                    key={`point-contacts-card-${index}`}\n                                    initIsOpen\n                                    className={cx('contacts-card')}\n                                    iconNode={\n                                        <NumberIcon\n                                            number={(stop?.index || 0) + 1}\n                                            fillColor={StyleGuideColorsEnum.charcoal}\n                                        />\n                                    }\n                                    titleNode={formatAddressComponents(stop.address)}\n                                    titleClassName={cx('contacts-card-title')}\n                                    rightNode={\n                                        <ContactFilledIndicator fieldNamesPrefix={FieldsEnum.contacts} index={index} />\n                                    }\n                                >\n                                    <PointContactsPicker contactIndex={index} />\n                                </Card>\n                            );\n                        })}\n                    </div>\n                    <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n                    <FooterSideBarLayout hasPaddings topNode={<FooterSideBarAlertsLayout />}>\n                        <div className={cx('actions')}>\n                            <Button.Container className={cx('action')}>\n                                <Button\n                                    isFullWidth\n                                    isCenterContent\n                                    theme={ButtonThemeEnum.primary}\n                                    type=\"submit\"\n                                    testSelector=\"apply-context\"\n                                    isLoading={applyRequestStatus.loading}\n                                    leftIcon={timerPlaceholderNode}\n                                    rightIcon={!context?.expireTime && timerPlaceholderNode}\n                                >\n                                    {t('deadhead-creation.submit.confirm')}\n                                </Button>\n                                {context?.expireTime && (\n                                    <Button.Timer\n                                        showTime={MS_IN_HOUR}\n                                        expireTime={context?.expireTime || null}\n                                        tooltipPosition={TooltipPositionEnum.topRight}\n                                        tooltipMessage={t('deadhead-creation.context-expiration.tooltip')}\n                                        onExpire={onExpireContext}\n                                    />\n                                )}\n                            </Button.Container>\n                        </div>\n                    </FooterSideBarLayout>\n                </div>\n            </form>\n        </FormikContext.Provider>\n    );\n});\n\nexport default RouteDetailsForm;\n","// extracted by mini-css-extract-plugin\nexport default {\"row--price\":\"ShipperPriceOfferInfoTable__row--price____a5ca\",\"fadeIn\":\"ShipperPriceOfferInfoTable__fadeIn___egx2M\",\"blinking\":\"ShipperPriceOfferInfoTable__blinking___i2ZBg\"};","// extracted by mini-css-extract-plugin\nexport default {\"widget\":\"RoutingSettingsForm__widget___spTRy\",\"widget__inner\":\"RoutingSettingsForm__widget__inner___qPl0N\",\"field\":\"RoutingSettingsForm__field___f4_c8\",\"checkbox\":\"RoutingSettingsForm__checkbox___Wz91N\",\"fadeIn\":\"RoutingSettingsForm__fadeIn___yie4w\",\"blinking\":\"RoutingSettingsForm__blinking___RDFa8\"};","import { VehicleIdT, VehicleScheduleHashT } from '../models';\n\nexport const getVehicleScheduleHash = (\n    vehicleId: VehicleIdT,\n    aroundDate?: ISODateTimeT | null,\n): VehicleScheduleHashT => {\n    if (aroundDate) {\n        return `${vehicleId}/${aroundDate}`;\n    }\n\n    return vehicleId;\n};\n","export enum TabEnum {\n    active = 'active',\n    archive = 'archive',\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"delimiter\":\"Delimeter__delimiter___isIcr\",\"delimiter--step\":\"Delimeter__delimiter--step___RZCe1\",\"delimiter--halfStep\":\"Delimeter__delimiter--halfStep___ObHSo\",\"delimiter--now\":\"Delimeter__delimiter--now___Hs_3n\",\"delimiter__text\":\"Delimeter__delimiter__text___nqbAh\",\"delimiter__text--now\":\"Delimeter__delimiter__text--now___POVXJ\",\"fadeIn\":\"Delimeter__fadeIn___vK1pu\",\"blinking\":\"Delimeter__blinking___yYcFE\"};","// extracted by mini-css-extract-plugin\nexport default {\"option--is-invalid\":\"TruckOptionLabel__option--is-invalid___wCypX\",\"asset\":\"TruckOptionLabel__asset___ucWqq\",\"rate-mode\":\"TruckOptionLabel__rate-mode___FaGFv\",\"model-and-plate-number\":\"TruckOptionLabel__model-and-plate-number___Hx3aS\",\"price\":\"TruckOptionLabel__price___LJwfG\",\"location\":\"TruckOptionLabel__location___zT9q7\",\"utilization\":\"TruckOptionLabel__utilization___XWGmL\",\"utilization__label\":\"TruckOptionLabel__utilization__label___uyBr7\",\"fadeIn\":\"TruckOptionLabel__fadeIn___uj37e\",\"blinking\":\"TruckOptionLabel__blinking___JxRD0\"};","import { NotificationEmotionEnum } from 'common/store/notifications/models';\nimport { ApiNotificationAlertLevelT } from 'common/utils/api/models';\nimport { MS_IN_SEC } from 'common/utils/time';\n\nexport const notificationEmotionMapByAlertLevel: Record<ApiNotificationAlertLevelT, NotificationEmotionEnum> = {\n    NORMAL: NotificationEmotionEnum.neutral,\n    POSITIVE: NotificationEmotionEnum.positive,\n    ATTENTION: NotificationEmotionEnum.attention,\n    WARNING: NotificationEmotionEnum.negative,\n};\n\nexport const UNREAD_NOTIFICATIONS_REFRESH_INTERVAL_MS = 3 * MS_IN_SEC;\n","import { OrderTypeEnum } from './OrderTypeDropdown/OrderTypeDropdown';\nimport { TransportOrderTypeEnum } from './TransportOrderTypeDropdown/TransportOrderTypeDropdown';\n\nexport enum FieldsEnum {\n    originAddress = 'originAddress',\n    dropOffAddress = 'dropOffAddress',\n\n    pickupDates = 'pickupDates',\n    dropoffDates = 'dropoffDates',\n\n    createDates = 'createDates',\n    dictTrailerId = 'dictTrailerId',\n\n    shipperId = 'shipperId',\n    shipperName = 'shipperName',\n\n    carrierId = 'carrierId',\n    carrierName = 'carrierName',\n\n    ordersType = 'ordersType',\n    transportOrdersType = 'transportOrdersType',\n\n    dispatcherId = 'dispatcherId',\n    dispatcherName = 'dispatcherName',\n\n    keyAccountManagerId = 'keyAccountManagerId',\n    keyAccountManagerName = 'keyAccountManagerName',\n\n    hasUnpaidOrders = 'hasUnpaidOrders',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.originAddress]: string | null;\n    [FieldsEnum.dropOffAddress]: string | null;\n\n    [FieldsEnum.pickupDates]: DateRangeT | null;\n    [FieldsEnum.dropoffDates]: DateRangeT | null;\n\n    [FieldsEnum.createDates]: DateRangeT | null;\n    [FieldsEnum.dictTrailerId]: string | null;\n\n    [FieldsEnum.dispatcherId]: string | null;\n    [FieldsEnum.dispatcherName]: string | null;\n\n    [FieldsEnum.keyAccountManagerId]: string | null;\n    [FieldsEnum.keyAccountManagerName]: string | null;\n\n    [FieldsEnum.shipperId]: string | null;\n    [FieldsEnum.shipperName]: string | null;\n\n    [FieldsEnum.carrierId]: string | null;\n    [FieldsEnum.carrierName]: string | null;\n\n    [FieldsEnum.ordersType]: OrderTypeEnum;\n    [FieldsEnum.transportOrdersType]: TransportOrderTypeEnum;\n\n    [FieldsEnum.hasUnpaidOrders]: boolean | null;\n};\n","export const MIN_VALID_FROM_VALID_TILL_DAYS = 7;\n\nexport enum FieldsEnum {\n    name = 'name',\n    number = 'number',\n\n    activateDate = 'activate-date',\n    validTillDate = 'valid-till-date',\n\n    file = 'file',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.name]: string;\n    [FieldsEnum.number]: string;\n\n    [FieldsEnum.activateDate]: Date | null;\n    [FieldsEnum.validTillDate]: Date | null;\n\n    [FieldsEnum.file]: File | null;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './FerryLocationPin.scss';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport MapPin, { MapPinThemeEnum } from 'common/components/maps/MapPin/MapPin';\nimport BoatIcon from 'common/icons/BoatIcon';\n\nconst cx = classNames.bind(styles);\n\nconst getIconColorsByTheme = (theme: MapPinThemeEnum) => {\n    if (theme === MapPinThemeEnum.charcoal) {\n        return {\n            fillColor: StyleGuideColorsEnum.brandDark,\n            strokeColor: StyleGuideColorsEnum.white,\n        };\n    }\n\n    if (\n        theme === MapPinThemeEnum.blazeOrange ||\n        theme === MapPinThemeEnum.tomatoRed ||\n        theme === MapPinThemeEnum.brandDark\n    ) {\n        return {\n            fillColor: StyleGuideColorsEnum.gray,\n            strokeColor: StyleGuideColorsEnum.white,\n        };\n    }\n\n    return {\n        fillColor: StyleGuideColorsEnum.brandAccent,\n        strokeColor: StyleGuideColorsEnum.brandDark,\n    };\n};\n\ntype PropsT = {\n    className?: string;\n    // eslint-disable-next-line react/no-unused-prop-types\n    lat?: number | undefined;\n    // eslint-disable-next-line react/no-unused-prop-types\n    lng?: number | undefined;\n    theme?: MapPinThemeEnum;\n};\n\nconst FerryLocationPin: React.FC<PropsT> = React.memo((props) => {\n    const { className, lat, lng } = props;\n\n    const theme = props.theme || MapPinThemeEnum.charcoal;\n\n    const iconColors = getIconColorsByTheme(theme);\n\n    return (\n        <MapPin hasPaddings className={cs(cx('asset-tooltip'), className)} lat={lat} lng={lng} theme={theme}>\n            <BoatIcon size={DEFAULT_ICON_SIZE} fillColor={iconColors.fillColor} strokeColor={iconColors.strokeColor} />\n        </MapPin>\n    );\n});\n\nexport default FerryLocationPin;\n","// extracted by mini-css-extract-plugin\nexport default {\"location\":\"AssetDetailsMap__location___BWC5k\",\"last-point\":\"AssetDetailsMap__last-point___yX5sT\",\"fadeIn\":\"AssetDetailsMap__fadeIn___uK404\",\"blinking\":\"AssetDetailsMap__blinking___oZUb_\"};","// extracted by mini-css-extract-plugin\nexport default {\"table\":\"BrokerToursListPage__table___f7pi2\",\"fadeIn\":\"BrokerToursListPage__fadeIn___F_s6i\",\"blinking\":\"BrokerToursListPage__blinking___LZaqW\"};","import {\n    OMSRoutesEnum,\n    ProfileDocumentsRoutesEnum,\n    QueryKeysEnum,\n    ShipperContractRoutesEnum,\n    ShipperContractsRoutesEnum,\n} from 'common/constants';\nimport history from 'common/utils/history';\nimport { parseAuthReturnUrl } from './auth-return-url';\nimport { LocationDescriptor } from 'history';\nimport { generatePath } from 'react-router';\nimport { formatQuery } from 'common/utils/query';\nimport qs from 'qs';\n\nexport type RePathOptionsT = {\n    rePath?: string;\n};\n\nexport const getRePath = () => {\n    const query = qs.parse(history.location.search.slice(1));\n\n    return [\n        history.location.pathname,\n        `${query ? `?` : ''}${qs.stringify(query)}`,\n        history.location.hash ? `#${history.location.hash}` : '',\n    ]\n        .filter(Boolean)\n        .join('');\n};\n\nexport const urlFactory = {\n    completeRFQ: ({\n        id,\n        offerId,\n        dropoffDate,\n        pickupDate,\n    }: {\n        id: string;\n        offerId: string | null;\n        dropoffDate: string | null;\n        pickupDate: string | null;\n    }) => {\n        return {\n            pathname: generatePath(OMSRoutesEnum.newOrderOffers, {\n                rfqId: id,\n            }),\n            search: formatQuery({\n                [QueryKeysEnum.orderCreationComplete]: '1',\n                [QueryKeysEnum.orderCreationPriceOfferId]: offerId,\n                [QueryKeysEnum.orderCreationDropOffDate]: dropoffDate,\n                [QueryKeysEnum.orderCreationPickUpDate]: pickupDate,\n            }),\n            state: {\n                rePath: getRePath(),\n            },\n        };\n    },\n    orderCreation: () => {\n        return OMSRoutesEnum.newOrder;\n    },\n    shipperContracts: () => {\n        return ProfileDocumentsRoutesEnum.shipperContracts;\n    },\n    shipperContractDetails: ({ shipperContractId }: { shipperContractId: ShipperContractIdT }) => {\n        return {\n            pathname: generatePath(ShipperContractRoutesEnum.shipperContractDetails, {\n                contractId: shipperContractId,\n            }),\n        };\n    },\n    shipperContractLanes: ({ shipperContractId }: { shipperContractId: ShipperContractIdT }) => {\n        return {\n            pathname: generatePath(ShipperContractRoutesEnum.shipperContractLanes, {\n                contractId: shipperContractId,\n            }),\n        };\n    },\n    shipperContractLaneDetails: ({\n        shipperContractId,\n        shipperContractLaneId,\n    }: {\n        shipperContractId: ShipperContractIdT;\n        shipperContractLaneId: ShipperContractLaneIdT;\n    }) => {\n        return {\n            pathname: generatePath(ShipperContractsRoutesEnum.shipperContractLaneDetails, {\n                contractId: shipperContractId,\n                laneId: shipperContractLaneId,\n            }),\n            state: {\n                rePath: getRePath(),\n            },\n        };\n    },\n    toReturnUrl: (returnUrl: string | undefined): LocationDescriptor => {\n        const parsedReturnUrl = parseAuthReturnUrl(returnUrl);\n\n        return parsedReturnUrl;\n    },\n};\n","import * as React from 'react';\nimport { useMemo } from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './Bids.scss';\nimport SortDropdown, {\n    SortDropdownOptionT,\n    SortDropdownOverlayPositionEnum,\n} from 'common/components/Table/SortDropdown/SortDropdown';\nimport { useTranslation } from 'react-i18next';\nimport { BidsQuickFilterEnum, BidsSortEnum } from './constants';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport ButtonGroup from 'design-system/components/ButtonGroup/ButtonGroup';\nimport BidDetails from '../BidDetails/BidDetails';\nimport BidMessage from '../BidMessage/BidMessage';\nimport BigEmptyIcon from 'common/icons/BigEmptyIcon';\nimport { SpotBidT } from 'broker-admin/utils/api/spot-broker-tranziit/models';\nimport { getBidQuickFilterCounts, getBidsFilter } from './hooks/bids-filter';\nimport { getBidsSort } from './hooks/bids-sort';\nimport { ApiSpotBidStatusT, PartnerTypeEnum, SpotBidStatusEnum } from 'common/utils/api/models';\nimport { PageSortT, SortDirectionEnum } from 'common/utils/query';\n\ntype PropsT = {\n    className?: string;\n    bids: Array<SpotBidT | null | undefined>;\n    isDisabledSelectBid?: boolean;\n    selectedBidId: BidIdT | null;\n    onSelectBid: (bid: SpotBidT) => void;\n    estimateSpotRequestPrice: number | null;\n    onOpenUserDetails: (params: {\n        partnerType: PartnerTypeEnum;\n        partnerId: PartnerIdT;\n        userId: UserIdT | null;\n    }) => void;\n};\n\nconst cx = classNames.bind(styles);\n\nconst DEFAULT_SORT: PageSortT<BidsSortEnum> = {\n    value: BidsSortEnum.price,\n    direction: SortDirectionEnum.ASC,\n};\n\nconst QUICK_FILTER_ORDER: Array<BidsQuickFilterEnum> = [\n    BidsQuickFilterEnum.accepted,\n    BidsQuickFilterEnum.match,\n    BidsQuickFilterEnum.inactive,\n];\n\nconst quickFilterLabels: Record<BidsQuickFilterEnum, string> = {\n    [BidsQuickFilterEnum.accepted]: 'spot-request-details.bids.quick-filters.accepted',\n    [BidsQuickFilterEnum.match]: 'spot-request-details.bids.quick-filters.match',\n    [BidsQuickFilterEnum.inactive]: 'spot-request-details.bids.quick-filters.inactive',\n};\n\nconst quickFilterPillTheme: Record<BidsQuickFilterEnum, PillLabelThemeEnum> = {\n    [BidsQuickFilterEnum.accepted]: PillLabelThemeEnum.orange,\n    [BidsQuickFilterEnum.match]: PillLabelThemeEnum.slate,\n    [BidsQuickFilterEnum.inactive]: PillLabelThemeEnum.grey,\n};\n\nconst availableSelectBidStatusSet = new Set<ApiSpotBidStatusT>([SpotBidStatusEnum.accepted]);\n\nconst Bids: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        bids,\n        isDisabledSelectBid,\n        selectedBidId,\n        onSelectBid,\n        estimateSpotRequestPrice,\n        onOpenUserDetails,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const [selectedSort, setSort] = React.useState<PageSortT<BidsSortEnum>>(DEFAULT_SORT);\n\n    const [selectedQuickFilter, setQuickFilter] = React.useState<BidsQuickFilterEnum>(BidsQuickFilterEnum.accepted);\n\n    const bidCounts = useMemo(() => {\n        return getBidQuickFilterCounts(bids);\n    }, [bids]);\n\n    const filteredBids = useMemo(() => {\n        return getBidsFilter(selectedQuickFilter, bids);\n    }, [selectedQuickFilter, bids]);\n\n    const sortedBids = useMemo(() => {\n        return getBidsSort(selectedSort, filteredBids);\n    }, [selectedSort, filteredBids]);\n\n    const sortOptions: Array<SortDropdownOptionT<BidsSortEnum>> = React.useMemo(\n        () => [\n            {\n                label: t('spot-request-details.bids.sorts.date'),\n                value: BidsSortEnum.date,\n            },\n            {\n                label: t('spot-request-details.bids.sorts.price'),\n                value: BidsSortEnum.price,\n            },\n        ],\n        [t],\n    );\n\n    const handleSelectSort = (sort: PageSortT<BidsSortEnum>) => {\n        setSort(sort);\n    };\n\n    return (\n        <div className={cs(cx('inner'), className)}>\n            <div className={cx('header')}>\n                <div className={cx('header_tabs', 'filters')}>\n                    <ButtonGroup>\n                        {QUICK_FILTER_ORDER.map((quickFilter) => {\n                            return (\n                                <Button\n                                    key={quickFilter}\n                                    className={cx('filters__button')}\n                                    theme={ButtonThemeEnum.transparent}\n                                    onClick={() => {\n                                        setQuickFilter(quickFilter);\n                                    }}\n                                    isToggled={quickFilter === selectedQuickFilter}\n                                    leftIcon={\n                                        <PillLabel isSymmetrical theme={quickFilterPillTheme[quickFilter]} isRounded>\n                                            <span className={cx('filters__count')}>{bidCounts[quickFilter]}</span>\n                                        </PillLabel>\n                                    }\n                                >\n                                    {t(quickFilterLabels[quickFilter])}\n                                </Button>\n                            );\n                        })}\n                    </ButtonGroup>\n                </div>\n                <SortDropdown\n                    className={cx('header_sort')}\n                    testSelector=\"bids\"\n                    overlayPosition={SortDropdownOverlayPositionEnum.right}\n                    selectedValue={selectedSort}\n                    options={sortOptions}\n                    onSelect={handleSelectSort}\n                />\n            </div>\n            {sortedBids.map((bid) => {\n                const isDisabledBid = !bid?.status || !availableSelectBidStatusSet.has(bid.status);\n\n                return (\n                    <BidDetails\n                        key={bid?.id}\n                        className={cx('bid')}\n                        isDisabled={isDisabledSelectBid || isDisabledBid}\n                        isSelected={selectedBidId === bid?.id}\n                        bid={bid}\n                        onSelect={onSelectBid}\n                        estimateSpotRequestPrice={estimateSpotRequestPrice}\n                        onOpenUserDetails={onOpenUserDetails}\n                    />\n                );\n            })}\n            {!sortedBids.length && selectedQuickFilter === BidsQuickFilterEnum.accepted && (\n                <BidMessage\n                    key={`empty-bids-${BidsQuickFilterEnum.accepted}`}\n                    icon={<BigEmptyIcon />}\n                    title={t('spot-request-details.bids.messages.empty-accepted.title')}\n                    description={t('spot-request-details.bids.messages.empty-accepted.description')}\n                />\n            )}\n            {!sortedBids.length && selectedQuickFilter === BidsQuickFilterEnum.match && (\n                <BidMessage\n                    key={`empty-bids-${BidsQuickFilterEnum.match}`}\n                    icon={<BigEmptyIcon />}\n                    title={t('spot-request-details.bids.messages.empty-match.title')}\n                    description={t('spot-request-details.bids.messages.empty-match.description')}\n                />\n            )}\n            {!sortedBids.length && selectedQuickFilter === BidsQuickFilterEnum.inactive && (\n                <BidMessage\n                    key={`empty-bids-${BidsQuickFilterEnum.inactive}`}\n                    icon={<BigEmptyIcon />}\n                    title={t('spot-request-details.bids.messages.empty-inactive.title')}\n                />\n            )}\n        </div>\n    );\n});\n\nexport default Bids;\n","import * as React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './TimelineAutoSizer.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    children: (height: number, width: number) => React.ReactNode;\n};\n\nconst TimelineAutoSizer: React.FC<PropsT> = React.memo((props) => {\n    const { className, children } = props;\n\n    const [containerSize, setContainerSize] = React.useState<DivSizeT | null>(null);\n\n    const [containerNode, setContainerNode] = React.useState<HTMLDivElement | null>(null);\n    const containerRef = React.useCallback((containerNode) => {\n        if (containerNode !== null) {\n            setContainerNode(containerNode);\n            setContainerSize({\n                height: containerNode.offsetHeight,\n                width: containerNode.offsetWidth,\n            });\n        }\n    }, []);\n\n    React.useLayoutEffect(() => {\n        const measureContainer = () => {\n            if (!containerNode) {\n                return;\n            }\n\n            setContainerSize({\n                height: containerNode.offsetHeight,\n                width: containerNode.offsetWidth,\n            });\n        };\n\n        window.addEventListener('resize', measureContainer);\n\n        return () => {\n            window.removeEventListener('resize', measureContainer);\n        };\n    }, [containerNode]);\n\n    return (\n        <div className={cs(cx('wrap'), className)} ref={containerRef}>\n            {containerSize && children(containerSize.height, containerSize.width)}\n        </div>\n    );\n});\n\nexport default TimelineAutoSizer;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './AlertGroup.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n};\n\nconst AlertGroup: React.FC<PropsT> = React.memo((props) => {\n    return <div className={cs(cx('alerts'), props.className)}>{props.children}</div>;\n});\n\nexport { AlertGroup };\n","// extracted by mini-css-extract-plugin\nexport default {\"offer\":\"OffersForm__offer___TIFSM\",\"offers\":\"OffersForm__offers___7yd6X\",\"subtitle\":\"OffersForm__subtitle___Tw2vv\",\"inner\":\"OffersForm__inner___GME7g\",\"quick-actions\":\"OffersForm__quick-actions___qBQD6\",\"progress-bar\":\"OffersForm__progress-bar___qB6nB\",\"actions\":\"OffersForm__actions___oBCaC\",\"actions__action\":\"OffersForm__actions__action___qZoAD\",\"actions__action--additional-services\":\"OffersForm__actions__action--additional-services___eE9IT\",\"fadeIn\":\"OffersForm__fadeIn___SmQvG\",\"blinking\":\"OffersForm__blinking____RC30\"};","// eslint-disable-next-line no-restricted-exports\nexport { default } from './slice';\n","import { FieldsEnum, FormValuesT } from './TrailerDetailsForm/constants';\nimport { ApiTrailerAddRequestT, ApiTrailerUpdateRequestT, CountryCodeT } from 'common/utils/api/models';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport { FieldsEnum as DetailsFieldsEnum } from 'common/layouts/CommonEditableTruckDetailsLayout/EditTruckSidebarContent/TruckDetailsForm/constants';\nimport isNumber from 'lodash/isNumber';\n\nconst prepareApiCreateTrailer = (detailsFormValues: FormValuesT): ApiTrailerAddRequestT | null => {\n    const dictTrailerId = detailsFormValues[FieldsEnum.trailerDictId];\n    const parsedDictTrailerId = dictTrailerId ? parseInt(dictTrailerId, 10) : undefined;\n    if (!isNumber(parsedDictTrailerId) || !dictTrailerId) {\n        return null;\n    }\n\n    let pricing: Partial<ApiTrailerAddRequestT> = {};\n    if (detailsFormValues[DetailsFieldsEnum.contract] === null) {\n        pricing = {\n            ratePerKm: parseSimpleNumber(detailsFormValues[FieldsEnum.ratePerKm]),\n        };\n    } else {\n        pricing = {\n            contractId: detailsFormValues[DetailsFieldsEnum.contract] || undefined,\n        };\n    }\n\n    return {\n        dictTrailerId: parsedDictTrailerId,\n        vin: detailsFormValues[FieldsEnum.vin] || '',\n        plateNumber: detailsFormValues[FieldsEnum.plateNumber] || '',\n        countryOfRegistration: (detailsFormValues[FieldsEnum.countryCode] as CountryCodeT) || undefined,\n        ...pricing,\n    };\n};\n\nconst prepareApiModifyTrailer = (trailerId: TrailerIdT, detailsFormValues: FormValuesT): ApiTrailerUpdateRequestT => {\n    let pricing: Partial<ApiTrailerUpdateRequestT> = {};\n    if (detailsFormValues[DetailsFieldsEnum.contract] === null) {\n        pricing = {\n            ratePerKm: parseSimpleNumber(detailsFormValues[FieldsEnum.ratePerKm]),\n        };\n    } else {\n        pricing = {\n            contractId: detailsFormValues[DetailsFieldsEnum.contract] || undefined,\n        };\n    }\n\n    return {\n        ...pricing,\n    };\n};\n\nexport { prepareApiCreateTrailer, prepareApiModifyTrailer };\n","import {\n    QueryFiltersKeysEnum,\n    QueryFiltersT,\n} from 'broker-admin/layouts/SpotRequestsPage/SpotRequestListPage/query-models';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport {\n    getDateFromDate,\n    getEndDayFromDate,\n    getEndDayFromDateZero,\n    getStartDayFromDate,\n    getStartDayFromDateZero,\n} from 'common/utils/time';\n\nconst getQueryFilters = (values: FormValuesT): QueryFiltersT => {\n    const queryFilters: QueryFiltersT = {};\n\n    const createdByShipperId = values[FieldsEnum.createdByShipperId];\n    if (createdByShipperId) {\n        queryFilters[QueryFiltersKeysEnum.createdByShipperId] = createdByShipperId;\n        queryFilters[QueryFiltersKeysEnum.createdByShipperName] = values[FieldsEnum.createdByShipperName];\n    }\n\n    const createdByUserId = values[FieldsEnum.createdByUserId];\n    if (createdByUserId) {\n        queryFilters[QueryFiltersKeysEnum.createdByUserId] = createdByUserId;\n        queryFilters[QueryFiltersKeysEnum.createdByUserName] = values[FieldsEnum.createdByUserName];\n    }\n\n    const dictTrailerTypeId = values[FieldsEnum.dictTrailerTypeId];\n    if (dictTrailerTypeId) {\n        queryFilters[QueryFiltersKeysEnum.dictTrailerTypeId] = dictTrailerTypeId;\n    }\n\n    const pickupAddress = values[FieldsEnum.pickupAddress];\n    if (pickupAddress) {\n        queryFilters[QueryFiltersKeysEnum.pickupAddress] = pickupAddress;\n    }\n\n    const dropoffAddress = values[FieldsEnum.dropoffAddress];\n    if (dropoffAddress) {\n        queryFilters[QueryFiltersKeysEnum.dropOffAddress] = dropoffAddress;\n    }\n\n    const pickupDates = values[FieldsEnum.pickupDates];\n    if (pickupDates?.from) {\n        const date = getDateFromDate(pickupDates.from);\n        queryFilters[QueryFiltersKeysEnum.pickupDateFrom] = getStartDayFromDateZero(date);\n    }\n\n    if (pickupDates?.to) {\n        const date = getDateFromDate(pickupDates.to);\n        queryFilters[QueryFiltersKeysEnum.pickupDateTo] = getEndDayFromDateZero(date);\n    }\n\n    const dropoffDates = values[FieldsEnum.dropoffDates];\n    if (dropoffDates?.from) {\n        const date = getDateFromDate(dropoffDates.from);\n        queryFilters[QueryFiltersKeysEnum.dropOffDateFrom] = getStartDayFromDateZero(date);\n    }\n\n    if (dropoffDates?.to) {\n        const date = getDateFromDate(dropoffDates.to);\n        queryFilters[QueryFiltersKeysEnum.dropOffDateTo] = getEndDayFromDateZero(date);\n    }\n\n    const createDates = values[FieldsEnum.createDates];\n    if (createDates?.from) {\n        const date = getDateFromDate(createDates.from);\n        queryFilters[QueryFiltersKeysEnum.createdDateFrom] = getStartDayFromDate(date);\n    }\n\n    if (createDates?.to) {\n        const date = getDateFromDate(createDates.to);\n        queryFilters[QueryFiltersKeysEnum.createdDateTo] = getEndDayFromDate(date);\n    }\n\n    return queryFilters;\n};\n\nexport default getQueryFilters;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './EmailCell.scss';\n\ntype PropsT = {\n    email: string;\n};\n\nconst cx = classNames.bind(styles);\n\nconst EmailCell: React.FC<PropsT> = React.memo((props) => {\n    const { email } = props;\n\n    return <div className={cx('email')}>{email}</div>;\n});\n\nexport default EmailCell;\n","// extracted by mini-css-extract-plugin\nexport default {\"text\":\"TimeIntervalDurationPillLabel__text___nlZgi\",\"fadeIn\":\"TimeIntervalDurationPillLabel__fadeIn___YcK_g\",\"blinking\":\"TimeIntervalDurationPillLabel__blinking___u7Enh\"};","import React, { memo, useCallback } from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './TimeWindowPicker.scss';\nimport RangeSelector, { RangeSelectorRangeT } from 'common/components/RangeSelector/RangeSelector';\nimport { getTimeRelativeStartDay, MS_IN_DAY, MS_IN_HOUR } from 'common/utils/time';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipIconTrigger from 'design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger';\nimport TimeWindowIcon from 'common/icons/TimeWindowIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT<NameT> = {\n    name: NameT;\n    isDisabled?: boolean;\n    isDisableLeftRangeControl?: boolean;\n    isDisableRightRangeControl?: boolean;\n    icon?: React.ReactNode;\n    label: React.ReactNode;\n    values: TimeWindowT | null;\n    className?: string;\n    setFieldValue: (name: NameT, value: TimeWindowT) => void;\n    range: TimeWindowT;\n    step?: number;\n    minRangeWidth?: number;\n    maxRangeWidth?: number;\n    availableValues: TimeWindowT;\n    ranges: RangeSelectorRangeT[];\n    duration?: React.ReactElement;\n    link?: React.ReactElement;\n    hasStartStep?: boolean;\n    hasEndStep?: boolean;\n    tooltipNode?: string;\n};\n\nconst SHOW_TOOLTIP_DELAY = 300;\n\nconst BaseTimeWindowPicker = <NameT extends string>(props: PropsT<NameT>): React.ReactElement | null => {\n    const {\n        label,\n        values,\n        name,\n        icon,\n        setFieldValue,\n        isDisabled,\n        isDisableLeftRangeControl,\n        isDisableRightRangeControl,\n        className,\n        range,\n        duration,\n        minRangeWidth,\n        maxRangeWidth,\n        step: forceStep,\n        link,\n        availableValues,\n        ranges,\n        hasStartStep,\n        hasEndStep,\n        tooltipNode,\n    } = props;\n\n    const handleSelect = useCallback(\n        (selectedValue: TimeWindowT) => {\n            if (isDisabled) {\n                return;\n            }\n\n            setFieldValue(name, selectedValue);\n        },\n        [isDisabled, name, setFieldValue],\n    );\n\n    const step = forceStep || MS_IN_HOUR / 2;\n\n    const shownStepCount = MS_IN_DAY / (step * 24);\n    const shownLabelCount = shownStepCount * 3;\n\n    const labelsConfig = React.useMemo(() => {\n        return {\n            shownStepCount,\n            shownLabelCount,\n            hasStartStep,\n            hasEndStep,\n        };\n    }, [shownStepCount, shownLabelCount, hasStartStep, hasEndStep]);\n\n    return (\n        <div className={cs(cx('time-picker'), className)}>\n            <div className={cx('head')}>\n                <div className={cx('label')}>\n                    {icon || (\n                        <TimeWindowIcon\n                            className={cx('label__icon')}\n                            fillColor={StyleGuideColorsEnum.brandAccent}\n                            strokeColor={StyleGuideColorsEnum.brandDark}\n                        />\n                    )}\n                    <div className={cx('label__label')}>{label}</div>\n                    {tooltipNode && (\n                        <Tooltip\n                            className={cx('tooltip')}\n                            position={TooltipPositionEnum.topCenter}\n                            theme={TooltipThemeEnum.black}\n                            tooltipNode={<div className={cs(cx('tooltip__inner'))}>{tooltipNode}</div>}\n                            delay={SHOW_TOOLTIP_DELAY}\n                        >\n                            {(isShow) => <TooltipIconTrigger className={cx('tooltip__icon')} isShow={isShow} />}\n                        </Tooltip>\n                    )}\n                    {duration}\n                </div>\n                {!!link && <div className={cx('link')}>{link}</div>}\n            </div>\n            <RangeSelector\n                isLocked={isDisabled}\n                valuesRange={range}\n                availableValues={availableValues || range}\n                ranges={ranges || []}\n                values={values}\n                valueStep={step}\n                isLockedLeftRangeControl={isDisableLeftRangeControl}\n                isLockedRightRangeControl={isDisableRightRangeControl}\n                minValuesRangeWidth={minRangeWidth}\n                maxValuesRangeWidth={maxRangeWidth}\n                labelsConfig={labelsConfig}\n                renderLabel={(value: number) => {\n                    const relativeTime = getTimeRelativeStartDay(value);\n                    if (value && relativeTime === '00:00') {\n                        return '23:59';\n                    }\n\n                    return relativeTime;\n                }}\n                onSelect={handleSelect}\n            />\n        </div>\n    );\n};\n\nconst TimeWindowPicker = memo(BaseTimeWindowPicker) as typeof BaseTimeWindowPicker;\n\nexport default TimeWindowPicker;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './AssignmentSettingsForm.scss';\n\nimport { useFormik } from 'formik';\nimport { useTranslation } from 'react-i18next';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport FieldGroup, { FieldGroupEmptyItem } from 'common/components/FieldGroup/FieldGroup';\nimport prepareApiSystemSettings from './prepare-system-settings';\nimport NumberInput from 'common/components/NumberInput/NumberInput';\nimport withWidgetChangesDetector from 'common/components/SaveChangesNotification/withWidgetChangesDetector';\nimport { UnitTypeEnum } from 'common/constants';\nimport Widget from 'common/components/Widget/Widget';\nimport values from 'lodash/values';\nimport { getMaskByType } from '../utils';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport HiddenSubmitButtonForKeyboardEnter from 'common/components/HiddenEnterSubmitButton/HiddenSubmitButtonForKeyboardEnter';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport { SystemSettingsFormCommonPropsT } from 'broker-admin/layouts/SettingsPage/SystemSettings/models';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport { useWatchFormAnyErrors } from 'common/utils/hooks/useWatchFormFormHasErrors';\n\nconst cx = classNames.bind(styles);\n\ntype NumberFieldsT =\n    | FieldsEnum.firstRadiusOfAssignmentFilter\n    | FieldsEnum.secondRadiusOfAssignmentFilter\n    | FieldsEnum.thirdRadiusOfAssignmentFilter\n    | FieldsEnum.timeToHookTrailer\n    | FieldsEnum.timeToDropTrailer\n    | FieldsEnum.timeToPickupTruck\n    | FieldsEnum.timeToDropTruck\n    | FieldsEnum.geoMatrixCoefficient\n    | FieldsEnum.averageTruckSpeed;\n\nconst UNIT_TYPE_MAP: Record<NumberFieldsT, UnitTypeEnum | null> = {\n    [FieldsEnum.firstRadiusOfAssignmentFilter]: UnitTypeEnum.kilometersAbbreviation,\n    [FieldsEnum.secondRadiusOfAssignmentFilter]: UnitTypeEnum.kilometersAbbreviation,\n    [FieldsEnum.thirdRadiusOfAssignmentFilter]: UnitTypeEnum.kilometersAbbreviation,\n    [FieldsEnum.timeToHookTrailer]: UnitTypeEnum.minutesAbbreviation,\n    [FieldsEnum.timeToDropTrailer]: UnitTypeEnum.minutesAbbreviation,\n    [FieldsEnum.timeToPickupTruck]: UnitTypeEnum.minutesAbbreviation,\n    [FieldsEnum.timeToDropTruck]: UnitTypeEnum.minutesAbbreviation,\n    [FieldsEnum.geoMatrixCoefficient]: null,\n    [FieldsEnum.averageTruckSpeed]: UnitTypeEnum.kilometersPerHourAbbreviation,\n};\n\nconst STEP_MAP: Record<NumberFieldsT, number> = {\n    [FieldsEnum.firstRadiusOfAssignmentFilter]: 5,\n    [FieldsEnum.secondRadiusOfAssignmentFilter]: 5,\n    [FieldsEnum.thirdRadiusOfAssignmentFilter]: 5,\n    [FieldsEnum.timeToHookTrailer]: 1,\n    [FieldsEnum.timeToDropTrailer]: 1,\n    [FieldsEnum.timeToPickupTruck]: 1,\n    [FieldsEnum.timeToDropTruck]: 1,\n    [FieldsEnum.geoMatrixCoefficient]: 0.1,\n    [FieldsEnum.averageTruckSpeed]: 1,\n};\n\nconst FIELD_LABEL_T_MAP: Record<NumberFieldsT, string> = {\n    [FieldsEnum.firstRadiusOfAssignmentFilter]:\n        'price-settings.assignment-form.fields.firstRadiusOfAssignmentFilter.label',\n    [FieldsEnum.secondRadiusOfAssignmentFilter]:\n        'price-settings.assignment-form.fields.secondRadiusOfAssignmentFilter.label',\n    [FieldsEnum.thirdRadiusOfAssignmentFilter]:\n        'price-settings.assignment-form.fields.thirdRadiusOfAssignmentFilter.label',\n    [FieldsEnum.timeToDropTrailer]: 'price-settings.assignment-form.fields.timeToDropTrailer.label',\n    [FieldsEnum.timeToHookTrailer]: 'price-settings.assignment-form.fields.timeToHookTrailer.label',\n    [FieldsEnum.timeToPickupTruck]: 'price-settings.assignment-form.fields.timeToPickupTruck.label',\n    [FieldsEnum.timeToDropTruck]: 'price-settings.assignment-form.fields.timeToDropTruck.label',\n    [FieldsEnum.geoMatrixCoefficient]: 'price-settings.assignment-form.fields.geoMatrixCoefficient.label',\n    [FieldsEnum.averageTruckSpeed]: 'price-settings.assignment-form.fields.averageTruckSpeed.label',\n};\n\nconst FIELD_DESCRIPTION_T_MAP: Record<NumberFieldsT, string> = {\n    [FieldsEnum.firstRadiusOfAssignmentFilter]:\n        'price-settings.assignment-form.fields.firstRadiusOfAssignmentFilter.description',\n    [FieldsEnum.secondRadiusOfAssignmentFilter]:\n        'price-settings.assignment-form.fields.secondRadiusOfAssignmentFilter.description',\n    [FieldsEnum.thirdRadiusOfAssignmentFilter]:\n        'price-settings.assignment-form.fields.thirdRadiusOfAssignmentFilter.description',\n    [FieldsEnum.timeToDropTrailer]: 'price-settings.assignment-form.fields.timeToDropTrailer.description',\n    [FieldsEnum.timeToHookTrailer]: 'price-settings.assignment-form.fields.timeToHookTrailer.description',\n    [FieldsEnum.timeToPickupTruck]: 'price-settings.assignment-form.fields.timeToPickupTruck.description',\n    [FieldsEnum.timeToDropTruck]: 'price-settings.assignment-form.fields.timeToDropTruck.description',\n    [FieldsEnum.geoMatrixCoefficient]: 'price-settings.assignment-form.fields.geoMatrixCoefficient.description',\n    [FieldsEnum.averageTruckSpeed]: 'price-settings.assignment-form.fields.averageTruckSpeed.description',\n};\n\ntype PropsT = SystemSettingsFormCommonPropsT;\n\nconst ALL_FIELDS = values(FieldsEnum);\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(ALL_FIELDS);\n\nconst AssignmentSettingsForm: React.FC<PropsT> = (props) => {\n    const { systemSettings, title, onUpdate, isLoading } = props;\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues(systemSettings);\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [systemSettings]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const apiSystemSettings = prepareApiSystemSettings(values);\n            onUpdate(apiSystemSettings);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormCallbacks) {\n            remoteFormActionsContext.setRemoteFormCallbacks({\n                submit: formik.submitForm,\n                reset: formik.resetForm,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.submitForm, formik.resetForm]);\n\n    const hasFormAnyErros = useWatchFormAnyErrors(formik.errors);\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormState) {\n            remoteFormActionsContext.setRemoteFormState({\n                hasChanges: hasAnyFieldValueChanges,\n                hasErrors: hasFormAnyErros,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasFormAnyErros, hasAnyFieldValueChanges]);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormRequest) {\n            remoteFormActionsContext.setRemoteFormRequest({\n                isLoading,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isLoading]);\n\n    const WidgetChangesDetector = withWidgetChangesDetector(formik.values, initialValues);\n\n    const renderNumberField = (name: NumberFieldsT): React.ReactNode => {\n        return (\n            <FormikField\n                className={cx('field')}\n                name={name}\n                error={formik.errors[name]}\n                meta={formik.getFieldMeta(name)}\n                label={t(FIELD_LABEL_T_MAP[name])}\n                setFieldValue={formik.setFieldValue}\n                setFieldTouched={formik.setFieldTouched}\n                tooltipNode={\n                    <TooltipContent theme={TooltipContentThemeEnum.black} width={150}>\n                        {t(FIELD_DESCRIPTION_T_MAP[name])}\n                    </TooltipContent>\n                }\n            >\n                {(props) => (\n                    <NumberInput\n                        name={name}\n                        unitType={UNIT_TYPE_MAP[name] || undefined}\n                        mask={getMaskByType(UNIT_TYPE_MAP[name])}\n                        step={STEP_MAP[name]}\n                        value={formik.values[name]}\n                        onChange={props.onChange}\n                        onBlur={props.onBlur}\n                        onFocus={props.onFocus}\n                        hasError={props.hasError}\n                        hasWarning={props.hasWarning}\n                        hasChanges={props.hasChanges}\n                    />\n                )}\n            </FormikField>\n        );\n    };\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <Widget className={cx('widget')} title={title} rightNode={<WidgetChangesDetector fields={ALL_FIELDS} />}>\n                <div className={cx('widget__inner')}>\n                    <FieldGroup className={cx('field-group')}>\n                        {renderNumberField(FieldsEnum.firstRadiusOfAssignmentFilter)}\n                        {renderNumberField(FieldsEnum.secondRadiusOfAssignmentFilter)}\n                    </FieldGroup>\n                    <FieldGroup className={cx('field-group')}>\n                        {renderNumberField(FieldsEnum.thirdRadiusOfAssignmentFilter)}\n                        <FieldGroupEmptyItem className={cx('field')} />\n                    </FieldGroup>\n                    <FieldGroup className={cx('field-group')}>\n                        {renderNumberField(FieldsEnum.timeToPickupTruck)}\n                        {renderNumberField(FieldsEnum.timeToDropTruck)}\n                    </FieldGroup>\n                    <FieldGroup className={cx('field-group')}>\n                        {renderNumberField(FieldsEnum.timeToHookTrailer)}\n                        {renderNumberField(FieldsEnum.timeToDropTrailer)}\n                    </FieldGroup>\n                    <FieldGroup className={cx('field-group')}>\n                        {renderNumberField(FieldsEnum.geoMatrixCoefficient)}\n                        {renderNumberField(FieldsEnum.averageTruckSpeed)}\n                    </FieldGroup>\n                    <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n                    <HiddenSubmitButtonForKeyboardEnter />\n                </div>\n            </Widget>\n        </form>\n    );\n};\n\nexport default React.memo(AssignmentSettingsForm) as typeof AssignmentSettingsForm;\n","import { PartnerDetailsT } from 'broker-admin/store/partner/details/models';\nimport { isNonNil } from 'common/utils';\nimport { FieldsEnum, FormValuesT } from './constants';\n\nconst getInitialValues = (partnerDetails: PartnerDetailsT | null): FormValuesT => ({\n    [FieldsEnum.externalBusinessPartnerId]: partnerDetails?.externalBusinessPartnerId || null,\n    [FieldsEnum.teamIds]: partnerDetails?.teams?.map((team) => team.id) || [],\n    [FieldsEnum.mainContactId]: partnerDetails?.mainContactInfo?.id || null,\n    [FieldsEnum.mainContactFullName]:\n        (partnerDetails?.mainContactInfo &&\n            [partnerDetails.mainContactInfo.name, partnerDetails.mainContactInfo.surname].filter(isNonNil).join(' ')) ||\n        null,\n});\n\nexport default getInitialValues;\n","import { CarrierContractStateT } from './types';\nimport { SharableStateT } from '../models';\nimport { initialCarrierContractState } from './reducer';\n\nexport const selectCarrierContractStateById = (contractId: CarrierContractIdT | null | undefined) => {\n    return (state: SharableStateT): CarrierContractStateT => {\n        return state.carrierContractDetails[contractId as CarrierContractIdT] || initialCarrierContractState;\n    };\n};\n","import React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    fillOpacity?: number;\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst FilledWrenchIcon: React.FC<PropsT> = (props) => {\n    const { size, fillOpacity, fillColor, strokeColor } = props;\n\n    return (\n        <svg width={size} height={size} viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path\n                    d=\"M8 1.829A6.176 6.176 0 0 0 1.829 8 6.176 6.176 0 0 0 8 14.171 6.176 6.176 0 0 0 14.171 8 6.176 6.176 0 0 0 8 1.829zm2.078 9.771L7.753 9.275c-.864.268-1.841.083-2.52-.606a2.49 2.49 0 0 1-.442-2.922l1.676 1.677 1.06-1.06L5.85 4.689a2.49 2.49 0 0 1 3.415 3.26l2.232 2.233-1.42 1.419z\"\n                    fillOpacity={fillOpacity || 1}\n                    fill={fillColor}\n                />\n                <path\n                    d=\"M8 .8c3.97 0 7.2 3.23 7.2 7.2s-3.23 7.2-7.2 7.2S.8 11.97.8 8 4.03.8 8 .8zm0 1.029A6.176 6.176 0 0 0 1.829 8 6.176 6.176 0 0 0 8 14.171 6.176 6.176 0 0 0 14.171 8 6.176 6.176 0 0 0 8 1.829zM5.85 4.688a2.49 2.49 0 0 1 2.921.442 2.51 2.51 0 0 1 .494 2.819l2.232 2.232-1.42 1.419-2.324-2.325a2.505 2.505 0 0 1-2.52-.606 2.49 2.49 0 0 1-.442-2.922l1.676 1.677 1.06-1.06z\"\n                    fill={strokeColor}\n                />\n            </g>\n        </svg>\n    );\n};\n\nFilledWrenchIcon.displayName = 'FilledWrenchIcon';\n\nconst storyProps: PropsT = {\n    size: 20,\n    fillColor: StyleGuideColorsEnum.slate,\n    strokeColor: StyleGuideColorsEnum.orange,\n};\n\nexport { storyProps };\n\nexport default FilledWrenchIcon;\n","import { ApiReservePointT } from 'common/store/order-creation/models';\n\nexport const createFakeIdFromPoint = (point: Pick<ApiReservePointT, 'id'>) => {\n    return point.id;\n};\n","import {\n    FETCH_NOTIFICATIONS_PAGE_REQUEST_BEGIN,\n    FETCH_NOTIFICATIONS_PAGE_REQUEST_ERROR,\n    FETCH_NOTIFICATIONS_PAGE_REQUEST_SUCCESS,\n    FETCH_UNREAD_NOTIFICATIONS_REQUEST_BEGIN,\n    FETCH_UNREAD_NOTIFICATIONS_REQUEST_ERROR,\n    FETCH_UNREAD_NOTIFICATIONS_REQUEST_SUCCESS,\n    MARK_AS_READ_REQUEST,\n    NotificationsActionT,\n    NotificationsStateT,\n    RESET_NOTIFICATION_PAGES,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { isNonNil } from 'common/utils';\nimport keyBy from 'lodash/keyBy';\nimport flatten from 'lodash/flatten';\nimport { AnyNotificationT } from 'common/store/notifications/models';\nimport { pageBeginReducer, pageErrorReducer, pageSuccessReducer } from 'common/utils/pagination/reducers';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: NotificationsStateT = {\n    unreadNotifications: {\n        ids: [],\n        byId: {},\n        fetchRequest: requestStatus.initial,\n    },\n\n    currentPageNumber: 0,\n    pages: [],\n    query: null,\n    total: null,\n    byId: {},\n\n    markAsReadRequest: requestStatus.initial,\n};\n\nconst mergeNotificationsById = (\n    oldNotificationsById: Record<NotificationIdT, AnyNotificationT>,\n    newNotificationsById: Record<NotificationIdT, AnyNotificationT>,\n) => {\n    return {\n        ...oldNotificationsById,\n        ...newNotificationsById,\n    };\n};\n\nexport default (state = initialState, action: NotificationsActionT | DestroySessionActionT): NotificationsStateT => {\n    switch (action.type) {\n        case FETCH_NOTIFICATIONS_PAGE_REQUEST_BEGIN: {\n            const { pageNumber, query } = action;\n\n            const newPages = [...state.pages];\n            newPages.splice(pageNumber, 1, {\n                ...state.pages[pageNumber],\n                requestStatus: requestStatus.loading,\n            });\n\n            return {\n                ...state,\n                ...pageBeginReducer(state, pageNumber, query),\n                currentPageNumber: Math.max(state.currentPageNumber, pageNumber),\n            };\n        }\n\n        case FETCH_NOTIFICATIONS_PAGE_REQUEST_SUCCESS: {\n            const { query, pageNumber, pageResponse } = action;\n\n            return {\n                ...state,\n                ...pageSuccessReducer(state, pageNumber, query, pageResponse),\n            };\n        }\n\n        case FETCH_NOTIFICATIONS_PAGE_REQUEST_ERROR: {\n            const { query, error, pageNumber } = action;\n\n            return {\n                ...state,\n                ...pageErrorReducer(state, pageNumber, query, error),\n            };\n        }\n\n        case FETCH_UNREAD_NOTIFICATIONS_REQUEST_BEGIN: {\n            return {\n                ...state,\n                unreadNotifications: {\n                    ...state.unreadNotifications,\n                    fetchRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case FETCH_UNREAD_NOTIFICATIONS_REQUEST_SUCCESS: {\n            const { notifications } = action;\n\n            const byId = notifications ? keyBy(notifications, 'id') : state.unreadNotifications.byId;\n\n            return {\n                ...state,\n                unreadNotifications: {\n                    ...state.unreadNotifications,\n                    ids: (notifications || []).map((notification) => notification.id),\n                    byId: mergeNotificationsById(state.unreadNotifications.byId, byId),\n                    fetchRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case FETCH_UNREAD_NOTIFICATIONS_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                unreadNotifications: {\n                    ...state.unreadNotifications,\n                    fetchRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case MARK_AS_READ_REQUEST: {\n            const { ids, isAll } = action;\n\n            const newById = { ...state.byId };\n\n            ids.forEach((id) => {\n                newById[id] = {\n                    ...newById[id],\n                    readAlready: true,\n                };\n            });\n\n            if (isAll) {\n                const pageNotificationIds = state.pages.map((page) => page.ids);\n                const allNotificationsIds = flatten(pageNotificationIds).filter(isNonNil);\n\n                allNotificationsIds.forEach((id) => {\n                    newById[id] = {\n                        ...newById[id],\n                        readAlready: true,\n                    };\n                });\n            }\n\n            return {\n                ...state,\n                byId: newById,\n            };\n        }\n\n        case RESET_NOTIFICATION_PAGES: {\n            return {\n                ...state,\n                pages: [],\n                query: null,\n                total: null,\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default: {\n            return state;\n        }\n    }\n};\n","import { ApiCarrierTruckDetailsT, ApiTruckDetailsT } from 'common/store/trucks/models';\n\nexport const checkIsApiCarrierTruckDetails = (details: ApiTruckDetailsT | null): details is ApiCarrierTruckDetailsT => {\n    return !!details;\n};\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkEmail, checkPhoneNumber } from 'common/utils/form-validators';\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...(values[FieldsEnum.email] ? checkEmail(t, [FieldsEnum.email], values) : {}),\n        ...(values[FieldsEnum.phoneNumber] ? checkPhoneNumber(t, [FieldsEnum.phoneNumber], values) : {}),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const stateMachineRefreshChannel = new ViewEventChannel<{}>();\n","// extracted by mini-css-extract-plugin\nexport default {\"table\":\"RatesTable__table___vKETS\",\"table__header\":\"RatesTable__table__header___TYvcz\",\"table__header--checkbox\":\"RatesTable__table__header--checkbox___x1x_A\",\"table__header--country\":\"RatesTable__table__header--country___NLtXu\",\"table__header--cost\":\"RatesTable__table__header--cost___Sy5WM\",\"table__header--date\":\"RatesTable__table__header--date___UROPM\",\"table__column\":\"RatesTable__table__column___KTcQU\",\"table__column--checkbox\":\"RatesTable__table__column--checkbox___gThLT\",\"table__column--country\":\"RatesTable__table__column--country___FkEXL\",\"table__column--cost\":\"RatesTable__table__column--cost___RstBK\",\"table__column--date\":\"RatesTable__table__column--date___fcxSl\",\"table__column--update\":\"RatesTable__table__column--update___uga4M\",\"fadeIn\":\"RatesTable__fadeIn___CG2Xc\",\"blinking\":\"RatesTable__blinking___B9jhR\"};","import React from 'react';\n\ntype SidedBarHeaderLayoutContextT = React.RefObject<HTMLDivElement>;\n\nconst SidedBarHeaderLayoutContext = React.createContext<SidedBarHeaderLayoutContextT | null>(null);\n\nexport default SidedBarHeaderLayoutContext;\n","// extracted by mini-css-extract-plugin\nexport default {\"action--next\":\"ChangeTourStatusControls__action--next___hW9OU\",\"tooltip\":\"ChangeTourStatusControls__tooltip___KaH4z\",\"fadeIn\":\"ChangeTourStatusControls__fadeIn___rNJEo\",\"blinking\":\"ChangeTourStatusControls__blinking___s4GnX\"};","import React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport Modal from 'common/components/Modal/Modal';\nimport { AssetTypeEnum, StyleGuideColorsEnum } from 'common/constants';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport ChangeRateOrContractAssetForm from './ChangeRateOrContractAssetForm/ChangeRateOrContractAssetForm';\nimport { AssetDataT } from './models';\nimport { ApiChangeContractVehiclesRequestT, ApiChangeRateVehiclesRequestT } from 'common/utils/api/models';\nimport BigWarningIcon from 'common/icons/BigWarningIcon';\n\nexport type ChangeRateOrContractAssetDialogModalDataT = {\n    companyId: CompanyIdT;\n    assets: Array<AssetDataT>;\n};\n\ntype PropsT = {\n    companyId: CompanyIdT | null;\n    assetType: AssetTypeEnum;\n    data: ChangeRateOrContractAssetDialogModalDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onChangeRate: (changeRateRequest: ApiChangeRateVehiclesRequestT) => void;\n    onChangeContract: (changeContractRequest: ApiChangeContractVehiclesRequestT, contractName: string) => void;\n    requestStatus: RequestStatusT;\n};\n\nconst TEST_SELECTOR = 'change-rate-or-contract-assets';\n\nconst T_MAP: Record<\n    AssetTypeEnum,\n    {\n        title: string;\n        message: string;\n    }\n> = {\n    [AssetTypeEnum.truck]: {\n        title: 'common:trucks-page.change-rate-or-contract-assets-confirmation.title',\n        message: 'common:trucks-page.change-rate-or-contract-assets-confirmation.message',\n    },\n    [AssetTypeEnum.trailer]: {\n        title: 'common:trailers-page.change-rate-or-contract-assets-confirmation.title',\n        message: 'common:trailers-page.change-rate-or-contract-assets-confirmation.message',\n    },\n};\n\nconst ChangeRateOrContractAssetDialogModal: React.FC<PropsT> = React.memo((props) => {\n    const { companyId, data, onClose, onCancel, requestStatus, onChangeRate, onChangeContract, assetType } = props;\n\n    const { t } = useTranslation();\n\n    if (!data || !companyId) {\n        return null;\n    }\n\n    const { assets } = data;\n\n    const tSet = T_MAP[assetType];\n    const message = t(tSet.message);\n    const title = t(tSet.title);\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    icon={<BigWarningIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                    title={title}\n                    message={message}\n                >\n                    <ChangeRateOrContractAssetForm\n                        companyId={companyId}\n                        assets={assets}\n                        onCancel={onCancel}\n                        requestStatus={requestStatus}\n                        onChangeRate={onChangeRate}\n                        onChangeContract={onChangeContract}\n                    />\n                </ModalDialog>\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default ChangeRateOrContractAssetDialogModal;\n","// extracted by mini-css-extract-plugin\nexport default {\"route\":\"BrokerTourDetails__route___eCaoo\",\"excluded-countries\":\"BrokerTourDetails__excluded-countries___L4_Ou\",\"alert\":\"BrokerTourDetails__alert___rnI9s\",\"table--shipper-order\":\"BrokerTourDetails__table--shipper-order___s0bTO\",\"table--carrier-cost\":\"BrokerTourDetails__table--carrier-cost___NYxlR\",\"table--mileages\":\"BrokerTourDetails__table--mileages___HAIdF\",\"tabs\":\"BrokerTourDetails__tabs___MgiRS\",\"entry-card\":\"BrokerTourDetails__entry-card___IKJq7\",\"papers-card\":\"BrokerTourDetails__papers-card___OKekm\",\"separator\":\"BrokerTourDetails__separator___UKy2M\",\"pill\":\"BrokerTourDetails__pill___TNveI\",\"tooltip__inner\":\"BrokerTourDetails__tooltip__inner___mjV34\",\"info-table-row--origin\":\"BrokerTourDetails__info-table-row--origin___QRUoz\",\"info-table-row--destination\":\"BrokerTourDetails__info-table-row--destination___fhLF8\",\"info-table-row--carrier\":\"BrokerTourDetails__info-table-row--carrier___tz3Kb\",\"info-table-row--price-offer\":\"BrokerTourDetails__info-table-row--price-offer___bRmjs\",\"info-table-row--self-cost\":\"BrokerTourDetails__info-table-row--self-cost___mAL5Q\",\"info-table-row--additinal-services\":\"BrokerTourDetails__info-table-row--additinal-services___x6UMU\",\"info-table-row--shipper\":\"BrokerTourDetails__info-table-row--shipper___TIwov\",\"team-driver\":\"BrokerTourDetails__team-driver___FcMC_\",\"alerts\":\"BrokerTourDetails__alerts___x7lof\",\"fadeIn\":\"BrokerTourDetails__fadeIn___cxBx1\",\"blinking\":\"BrokerTourDetails__blinking___FCHJk\"};","import { TranziitApiRequestErrorSubTypeEnum } from 'common/utils/api/tranziit/errors/tranziit-api-errors';\n\nexport enum FieldsEnum {\n    phone = 'phone',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.phone]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n\nexport type AsyncFormErrorsT = Partial<{\n    [FieldsEnum.phone]: TranziitApiRequestErrorSubTypeEnum.phoneAlreadyExist | string;\n}>;\n","import * as React from 'react';\n\nimport styles from './FooterSideBarAlert.scss';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport InfoIcon from 'common/icons/InfoIcon';\n\ntype OnCloseAlertCallbackT = (id: SidebarFooterAlertIdT) => void;\n\ntype PropsT = {\n    className?: string;\n    id: SidebarFooterAlertIdT;\n    onCloseAlert: OnCloseAlertCallbackT | null;\n    theme: AlertThemeEnum;\n};\n\nconst cx = classNames.bind(styles);\n\nconst FooterSideBarAlert: React.FC<PropsT> = React.memo((props) => {\n    const { className, id, children, onCloseAlert, theme } = props;\n\n    return (\n        <Alert\n            className={cs(cx('wrap'), className)}\n            icon={<InfoIcon className={cx('icon')} fillColor={StyleGuideColorsEnum.white} />}\n            size={AlertSizeEnum.medium}\n            theme={theme}\n            onClose={() => {\n                if (onCloseAlert) {\n                    onCloseAlert(id);\n                }\n            }}\n        >\n            {children}\n        </Alert>\n    );\n});\n\nexport default FooterSideBarAlert;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { FIND_CARRIERS_REQUEST, FindCarriersActionT } from './types';\nimport { findCarriersBegin, findCarriersError, findCarriersSuccess } from './actions';\nimport { selectFindCarriersQuery } from './selectors';\nimport isEqual from 'lodash/isEqual';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\n\nfunction* findCarriersSaga(action: FindCarriersActionT): WrapGeneratorT<void> {\n    const { query: rawQuery } = action;\n\n    const query = rawQuery.trim();\n    if (!query) {\n        return;\n    }\n\n    const prevQuery: ReturnType<typeof selectFindCarriersQuery> = yield select(selectFindCarriersQuery);\n    const isSameQuery = isEqual(query, prevQuery);\n    if (isSameQuery) {\n        return;\n    }\n\n    yield put(findCarriersBegin(query));\n\n    const [error, partners]: ReturnApiT<typeof brokerTranziitApi.findCarriersByName> =\n        yield brokerTranziitApi.findCarriersByName(query);\n\n    if (error) {\n        yield put(findCarriersError(error));\n        return;\n    }\n\n    yield put(findCarriersSuccess(partners?.content || []));\n}\n\nfunction* carrierSuggestSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FIND_CARRIERS_REQUEST, findCarriersSaga);\n}\n\nexport default carrierSuggestSaga;\n","import { SpotRequestsStateT } from './types';\nimport { StateT } from '../models';\n\nexport const selectSpotRequestsPages = (state: StateT): SpotRequestsStateT['pages'] => state.spotRequests.pages;\n\nexport const selectSpotRequestsQuery = (state: StateT): SpotRequestsStateT['query'] => state.spotRequests.query;\n\nexport const selectSpotRequestsTotal = (state: StateT): SpotRequestsStateT['total'] => state.spotRequests.total;\n\nexport const selectSpotRequestsByIds = (state: StateT): SpotRequestsStateT['byId'] => state.spotRequests.byId;\n","import { FieldsEnum, FormValuesT, RoutePointFormValuesT } from './constants';\nimport { ApiLocationT, ApiStopTypeT } from 'common/utils/api/models';\nimport { EditOrderContextT, RoutePointTypeEnum } from '../../../../store/order-edit-context/models';\nimport { formatLocation } from 'common/utils/formatters';\nimport { generatePointFakeId } from './utils';\nimport { ApiTourUpdateStopDataT } from 'broker-admin/utils/api/broker-tranziit/models';\n\nexport const getInitialRouteFormValues = (stop: ApiTourUpdateStopDataT): RoutePointFormValuesT => {\n    const typeMap: Record<ApiStopTypeT, RoutePointTypeEnum> = {\n        PICKUP_TRAILER: RoutePointTypeEnum.unknown,\n        PICKUP_TRUCK: RoutePointTypeEnum.unknown,\n        PICKUP_ROAD_TRAIN: RoutePointTypeEnum.unknown,\n        PICKUP_DELIVERY_SHIPMENT: RoutePointTypeEnum.pickupOrDelivery,\n        DRIVE_THROUGH: RoutePointTypeEnum.driveThrough,\n        DROP_AND_HOOK: RoutePointTypeEnum.dropAndHook,\n        DROP_TRAILER: RoutePointTypeEnum.unknown,\n        DROP_TRUCK: RoutePointTypeEnum.unknown,\n        DROP_ROAD_TRAIN: RoutePointTypeEnum.unknown,\n        FERRY_ONBOARD: RoutePointTypeEnum.ferryOnboard,\n        FERRY_DISEMBARK: RoutePointTypeEnum.ferryDisembark,\n    };\n\n    const { type, originalDateTimeFrom, originalDateTimeTo, correctedFrom, correctedTo } = stop;\n\n    const timeWindowFrom = correctedFrom || originalDateTimeFrom || null;\n    const timeWindowTo = correctedTo || originalDateTimeTo || null;\n\n    const convertPointToLocation = (address: ApiLocationT | null): LocationT | null => {\n        if (!address) {\n            return null;\n        }\n\n        return {\n            address: formatLocation(address),\n            utcOffsetMinutes: null,\n            addressComponents: {\n                countryCode: address.country,\n                street1: address?.street1,\n                street2: address?.street2,\n                zipCode: address?.zipCode,\n                city: address?.city,\n            },\n            point: {\n                lat: address.latitude || 0,\n                lng: address.longitude || 0,\n            },\n        };\n    };\n\n    return {\n        fakePointId: stop?.alias || generatePointFakeId(),\n        contextRoutePointId: stop?.id || null,\n        type: type ? typeMap[type] : RoutePointTypeEnum.unknown,\n        location: convertPointToLocation(stop.address || null) || null,\n        timeWindow:\n            timeWindowFrom && timeWindowTo\n                ? {\n                      start: timeWindowFrom,\n                      end: timeWindowTo,\n                  }\n                : null,\n    };\n};\n\nexport const getInitialValues = (context: EditOrderContextT | null): FormValuesT => {\n    const stops =\n        context?.tours?.flatMap((tour) => {\n            const stops = tour?.stops || [];\n            if (stops[0]?.type === 'DROP_AND_HOOK') {\n                return stops.slice(1);\n            }\n\n            return stops;\n        }) || [];\n\n    const values: FormValuesT = {\n        [FieldsEnum.route]: stops.map(getInitialRouteFormValues) || [],\n        [FieldsEnum.updateShipperPrice]: false,\n    };\n\n    return values;\n};\n","import { saveAs } from 'file-saver';\n\ntype DownloadParamsT = {\n    data: string[] | string;\n    type: string;\n    name: string;\n};\n\nconst downloadFile = ({ data, type, name }: DownloadParamsT): void => {\n    // @ts-ignore string[] is not compatible with BlobPart\n    const blob = new Blob([data], { type });\n\n    saveAs(blob, name);\n};\n\nexport default downloadFile;\n","import * as React from 'react';\nimport { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport SkeletonFormatter from 'design-system/components/InfoTable/formatters/SkeletonFormatter/SkeletonFormatter';\nimport { fetchSpotRequestDetails } from 'broker-admin/store/spot-request-details/actions';\nimport { selectSpotRequestDetails } from 'broker-admin/store/spot-request-details/selectors';\nimport SpotRequestStatusPill from 'common/components/status-pill/SpotRequestStatusPill/SpotRequestStatusPill';\n\ntype PropsT = {\n    spotRequestId: SpotRequestIdT | null;\n};\n\nconst AsyncSpotRequestDetailsStatusFormatter: React.FC<PropsT> = React.memo((props) => {\n    const { spotRequestId } = props;\n\n    const dispatch = useDispatch();\n\n    const { fetchDetailsRequestStatus, details } = useSelector(selectSpotRequestDetails(spotRequestId));\n\n    useEffect(() => {\n        if (!spotRequestId) {\n            return;\n        }\n\n        dispatch(fetchSpotRequestDetails(spotRequestId));\n    }, [spotRequestId, dispatch]);\n\n    if (fetchDetailsRequestStatus.loading || !details) {\n        return <SkeletonFormatter />;\n    }\n\n    return <SpotRequestStatusPill isSymmetrical status={details.status} />;\n});\n\nexport default AsyncSpotRequestDetailsStatusFormatter;\n","import { StateT } from '../models';\nimport { PartnersStatsStateT } from './types';\n\nexport const selectPartnersStatsRequest = (state: StateT): PartnersStatsStateT['fetchRequest'] =>\n    state.partnersStats.fetchRequest;\n\nexport const selectPartnersStats = (state: StateT): PartnersStatsStateT['stats'] => state.partnersStats.stats;\n","// extracted by mini-css-extract-plugin\nexport default {\"date-time\":\"DateTimeCell__date-time___ldjzf\",\"date-time__date\":\"DateTimeCell__date-time__date___SCaJw\",\"date-time__time\":\"DateTimeCell__date-time__time___aqzRg\",\"fadeIn\":\"DateTimeCell__fadeIn___kpNgY\",\"blinking\":\"DateTimeCell__blinking___sIDR4\"};","import { SharableStateT } from '../models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nexport const selectCreateCompanyRequest = (state: SharableStateT): RequestStatusT => {\n    return state.createCompany.requestStatus;\n};\n\nexport const selectCreatedCompanyIsLocked = (state: SharableStateT): boolean | null => {\n    return state.createCompany.isLocked;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"TruckModelDropdown__option___C3StB\",\"fadeIn\":\"TruckModelDropdown__fadeIn___xh9_R\",\"blinking\":\"TruckModelDropdown__blinking___OiN04\"};","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './DateTimeCell.scss';\n\nimport isNil from 'lodash/isNil';\nimport { formatDate, formatHumanReadableDate } from 'common/utils/time';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    date: string | null | undefined;\n    className?: string;\n    dateFormat?: string;\n    timeFormat?: string;\n    isHumanReadableDate?: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nconst DEFAULT_DATE_FORMAT = 'DD MMM YYYY';\nconst DEFAULT_TIME_FORMAT = 'HH:mm';\n\nconst DateTimeCell: React.FC<PropsT> = React.memo((props) => {\n    const { date, className, dateFormat, timeFormat, isHumanReadableDate } = props;\n\n    const { t } = useTranslation();\n\n    if (isNil(date)) {\n        return null;\n    }\n\n    const dateText = isHumanReadableDate\n        ? formatHumanReadableDate(t, date)\n        : formatDate(dateFormat || DEFAULT_DATE_FORMAT, date);\n\n    const timeText = formatDate(timeFormat || DEFAULT_TIME_FORMAT, date);\n\n    return (\n        <div className={cs(cx('date-time'), className)}>\n            <div className={cx('date-time__date')}>{dateText}</div>\n            <div className={cx('date-time__time')}>{timeText}</div>\n        </div>\n    );\n});\n\nexport default DateTimeCell;\n","import React from 'react';\n\nimport { PropsT as InputPropsT } from 'common/components/Input/Input';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { findCarriers } from 'common/store/carrier-suggest/actions';\nimport {\n    selectCarriersById,\n    selectCarriersIds,\n    selectFindCarriersRequest,\n} from 'common/store/carrier-suggest/selectors';\nimport { PartnerT } from 'common/store/carrier-suggest/models';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport CarrierIcon, { CarrierIconProps } from 'common/icons/CarrierIcon';\nimport DropdownSearchInput from 'design-system/components/dropdowns/DropdownSearchInput/DropdownSearchInput';\nimport { CountryCodeT } from 'common/utils/api/models';\n\ntype PartnerIdT = PartnerT['id'];\n\ntype ValueT = PartnerIdT | null;\n\ntype OptionT = {\n    id: ValueT;\n    name: string;\n    number: string;\n    countryCode: CountryCodeT | null;\n};\n\nexport type PropsT = {\n    className?: string;\n    initialValue: ValueT;\n    initialLabel: string;\n    onSelect: (value: ValueT, name: string) => void;\n    value: ValueT;\n    overlayPosition: DropdownOverlayPositionEnum;\n    hasError: InputPropsT['hasError'];\n    hasWarning: InputPropsT['hasWarning'];\n    placeholder: InputPropsT['placeholder'];\n    onBlur: InputPropsT['onBlur'];\n    onFocus: InputPropsT['onFocus'];\n    isDisabled?: InputPropsT['isDisabled'];\n    hasClearControl?: InputPropsT['hasClearControl'];\n    hasChanges?: boolean;\n};\n\nconst CarrierDropdown: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        initialValue,\n        initialLabel,\n        value,\n        onSelect,\n        hasWarning,\n        hasError,\n        overlayPosition,\n        isDisabled,\n        placeholder,\n        onBlur,\n        onFocus,\n        hasChanges,\n        hasClearControl,\n    } = props;\n\n    const [options, setOptions] = React.useState<OptionT[]>([]);\n\n    const dispatch = useDispatch();\n\n    const ids = useSelector(selectCarriersIds);\n    const byId = useSelector(selectCarriersById);\n    const requestStatus = useSelector(selectFindCarriersRequest);\n\n    React.useEffect(() => {\n        const options = ids\n            .filter((id) => byId[id])\n            .map((id): OptionT => {\n                const partner = byId[id];\n\n                return {\n                    id: partner.id || null,\n                    name: partner.name || '',\n                    number: partner.number || '',\n                    countryCode: partner.legalAddress?.country || null,\n                };\n            });\n\n        setOptions(options);\n    }, [ids, byId]);\n\n    React.useEffect(() => {\n        if (!initialValue) {\n            return;\n        }\n\n        const initialOption: OptionT = {\n            id: initialValue,\n            name: initialLabel,\n            countryCode: null,\n            number: '',\n        };\n\n        setOptions([initialOption]);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const handleChangeQuery = React.useCallback(\n        (query: string): void => {\n            dispatch(findCarriers(query));\n        },\n        [dispatch],\n    );\n\n    const handleSelect = (value: ValueT) => {\n        const partner = byId[value as string];\n\n        onSelect(value || null, partner?.name || '');\n    };\n\n    const handleReset = () => {\n        onSelect(null, '');\n    };\n\n    const renderOption = (option: OptionT | undefined, placeholder?: string): React.ReactNode => {\n        if (!option) {\n            return placeholder;\n        }\n\n        return (\n            <DropdownControlOptionLabel\n                withoutPaddings\n                icon={option.countryCode ? <FlagIcon countryCode={option.countryCode} /> : null}\n                label={option.name || ''}\n                description={option.number || ''}\n            />\n        );\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option.id;\n\n    return (\n        <DropdownSearchInput<OptionT, ValueT>\n            className={className}\n            selectedValue={value}\n            placeholder={placeholder}\n            options={options}\n            isDisabled={isDisabled}\n            onSelect={handleSelect}\n            hasError={hasError}\n            hasWarning={hasWarning}\n            onChangeQuery={handleChangeQuery}\n            renderOption={renderOption}\n            renderTrigger={renderOption}\n            getOptionValue={getOptionValue}\n            hasChanges={hasChanges}\n            renderLeftIcon={(iconMeta) => <CarrierIcon {...CarrierIconProps.getControlProps(iconMeta)} />}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            overlayPosition={overlayPosition}\n            isLoading={requestStatus.loading}\n            onReset={hasClearControl ? handleReset : undefined}\n        />\n    );\n};\n\nexport default CarrierDropdown;\n","// extracted by mini-css-extract-plugin\nexport default {\"description\":\"ExternalBusinessPartnerSuggest__description___NOcr3\",\"description__details--isDisabled\":\"ExternalBusinessPartnerSuggest__description__details--isDisabled___kdsuP\",\"fadeIn\":\"ExternalBusinessPartnerSuggest__fadeIn___c6P5W\",\"blinking\":\"ExternalBusinessPartnerSuggest__blinking___jyX_V\"};","import React, { useEffect } from 'react';\nimport classNames from 'classnames/bind';\nimport {\n    autoUpdate,\n    flip,\n    FloatingPortal,\n    offset,\n    type Placement,\n    shift,\n    size,\n    useDismiss,\n    useFloating,\n    useInteractions,\n} from '@floating-ui/react';\n\nimport styles from './GeoSuggest.scss';\nimport { useGoogleMapContext } from 'common/utils/hooks/maps/useGoogleMapContext';\nimport { prepareAddressComponents } from 'common/utils/google-places';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport { GoogleMapsAutocompleteApi } from 'common/utils/google-maps-api/google-maps-autocomplete-api';\nimport { GoogleMapsPlacesApi } from 'common/utils/google-maps-api/google-maps-places-api';\nimport { GoogleMapsGeocoderApi } from 'common/utils/google-maps-api/google-maps-geocoder-api';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport { AUTO_COMPLETE_OFF_FIX, DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport ClickInterceptorLabel from 'common/components/ClickInterceptorLabel/ClickInterceptorLabel';\nimport cs from 'classnames';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport isEmpty from 'lodash/isEmpty';\nimport { isNonNil } from 'common/utils';\n\nconst cx = classNames.bind(styles);\n\ntype ValueT = LocationT | null;\n\nexport type IconMetaT = {\n    isLoading: boolean;\n    hasError: boolean;\n    hasWarning: boolean;\n    hasChanges: boolean;\n    isDisabled: boolean;\n    hasValue: boolean;\n};\n\ntype PropsT = {\n    className?: string;\n    name: string;\n    placeholder: string;\n    value: ValueT;\n    renderLeftIcon: (meta: IconMetaT) => React.ReactNode;\n    onChange: (value: ValueT) => void;\n    onFocus?: (name: string) => void;\n    onBlur?: (name: string) => void;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    hasChanges?: boolean;\n    testSelector?: string;\n    showClearControl?: boolean;\n    isRedTriangle?: boolean;\n    overlayPosition?: 'top' | 'bottom';\n    isLoading?: boolean;\n    renderRightNode?: (meta: IconMetaT) => React.ReactNode;\n    triangleClassName?: string;\n    isDisabled?: boolean;\n    hasTriangle?: boolean;\n};\n\ntype PlacesSearchResultT = {\n    address: string;\n    placeId: string;\n};\n\nconst prepareSuggestions = (item: google.maps.places.QueryAutocompletePrediction): PlacesSearchResultT | null => {\n    if (!item.place_id) {\n        return null;\n    }\n\n    return {\n        address: item.description,\n        placeId: item.place_id,\n    };\n};\n\nconst EUROPE_BOUNDS: MapBoundsT = [\n    [35.746178, -12.780298],\n    [71.566289, 44.937383],\n];\n\nconst getSuggestionLabel = (suggestion: PlacesSearchResultT): string => suggestion.address;\n\nconst POSITION_TO_PLACEMENT: Record<string, Placement> = {\n    top: 'top-start',\n    bottom: 'bottom-start',\n};\n\nconst GeoSuggest: React.FC<PropsT> = (props) => {\n    const {\n        className,\n        name,\n        value,\n        placeholder,\n        renderLeftIcon,\n        onFocus,\n        onBlur,\n        onChange,\n        hasError,\n        hasWarning,\n        hasChanges,\n        testSelector,\n        showClearControl,\n        isRedTriangle,\n        overlayPosition,\n        isLoading,\n        renderRightNode,\n        triangleClassName,\n        isDisabled,\n        hasTriangle,\n    } = props;\n\n    const isMouseOverlayFocusRef = React.useRef<boolean>(false);\n\n    const [isOpen, toggleOpen] = React.useState<boolean>(false);\n    useEffect(() => {\n        if (!isOpen) {\n            isMouseOverlayFocusRef.current = false;\n        }\n    }, [isOpen]);\n\n    const [suggestions, setSuggestions] = React.useState<PlacesSearchResultT[]>([]);\n    const lastSuggestionsQueryRef = React.useRef<string>('');\n\n    const [text, setText] = React.useState<string>(value?.address || '');\n    const [isFocused, setFocus] = React.useState<boolean>(false);\n\n    React.useEffect(() => {\n        const newText = value?.address;\n        if (newText !== text) {\n            setText(newText || '');\n            setSuggestions([]);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [value]);\n\n    const { googleMaps } = useGoogleMapContext();\n    const { maps, map } = googleMaps;\n\n    const autocomplete = React.useMemo((): GoogleMapsAutocompleteApi | null => {\n        return new GoogleMapsAutocompleteApi(maps);\n    }, [maps]);\n\n    const geocoderApi = React.useMemo(() => {\n        return new GoogleMapsGeocoderApi(maps);\n    }, [maps]);\n\n    const placesApi = React.useMemo(() => {\n        return new GoogleMapsPlacesApi(map, maps);\n    }, [map, maps]);\n\n    const handleChange = async (event: React.FormEvent<HTMLInputElement>): Promise<void> => {\n        const eventText = event.currentTarget.value;\n\n        setText(eventText);\n\n        if (!eventText) {\n            onChange(null);\n        }\n\n        lastSuggestionsQueryRef.current = eventText;\n\n        if (!autocomplete) {\n            return;\n        }\n\n        const [resultQuery, rawSuggestions] = await autocomplete.getQueryPredictions(eventText, EUROPE_BOUNDS);\n        if (lastSuggestionsQueryRef.current !== resultQuery) {\n            return;\n        }\n\n        toggleOpen(true);\n\n        const suggestions = rawSuggestions.map(prepareSuggestions).filter(isNonNil);\n        setSuggestions(suggestions);\n    };\n\n    const handleOptionClick = async (suggestion: PlacesSearchResultT): Promise<void> => {\n        const result = await placesApi.getPlaceDetails(suggestion.placeId);\n        if (!result || !result.geometry.location) {\n            return;\n        }\n\n        const addressComponents = prepareAddressComponents(result.address_components);\n\n        const point: GeoPointT = {\n            lat: result.geometry.location.lat(),\n            lng: result.geometry.location.lng(),\n        };\n\n        const location: LocationT = {\n            point,\n            address: suggestion.address,\n            utcOffsetMinutes: result.utc_offset_minutes,\n            addressComponents,\n        };\n\n        if (!location?.addressComponents?.zipCode) {\n            const geocodeResult = await geocoderApi.geocode(point);\n\n            const geocodeAddressComponents = prepareAddressComponents(geocodeResult?.address_components || []);\n            location.addressComponents = {\n                ...location.addressComponents,\n                zipCode: geocodeAddressComponents?.zipCode || null,\n            };\n        }\n\n        onChange(location);\n\n        const suggestionLabel = getSuggestionLabel(suggestion);\n        setText(suggestionLabel);\n\n        toggleOpen(false);\n\n        if (onBlur) {\n            onBlur(name);\n        }\n    };\n\n    const handleBlur = (\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        event: React.FocusEvent<HTMLInputElement>,\n    ): void => {\n        setFocus(false);\n\n        if (!isMouseOverlayFocusRef.current) {\n            if (value) {\n                setText(value.address || '');\n            }\n\n            if (onBlur) {\n                onBlur(name);\n            }\n        }\n    };\n\n    const handleFocus = (): void => {\n        setFocus(true);\n\n        if (onFocus) {\n            onFocus(name);\n        }\n    };\n\n    const handleReset = (): void => {\n        if (isDisabled) {\n            return;\n        }\n\n        onChange(null);\n    };\n\n    const fullTestSelector = `${testSelector}_geo-suggest`;\n\n    const { refs, floatingStyles, context } = useFloating({\n        open: isOpen && !!suggestions.length,\n        onOpenChange: (open) => {\n            if (!open) {\n                toggleOpen(false);\n                if (onBlur) {\n                    onBlur(name);\n                }\n            }\n        },\n        placement: POSITION_TO_PLACEMENT[overlayPosition || 'bottom'],\n        middleware: [\n            offset(0),\n            flip({ padding: 8 }),\n            shift({ padding: 8 }),\n            size({\n                padding: 8,\n                apply({ rects, elements }) {\n                    Object.assign(elements.floating.style, {\n                        width: `${rects.reference.width}px`,\n                    });\n                },\n            }),\n        ],\n        strategy: 'fixed',\n        transform: false,\n        whileElementsMounted: autoUpdate,\n    });\n\n    const dismiss = useDismiss(context, {\n        outsidePressEvent: 'mousedown',\n    });\n\n    const { getReferenceProps, getFloatingProps } = useInteractions([dismiss]);\n\n    return (\n        <div className={cs(cx('dropdown'), className)} data-field-name={name}>\n            <div className={cx('input')}>\n                <div className={cx('trigger')} ref={refs.setReference} {...getReferenceProps()}>\n                    <input\n                        name={name}\n                        onChange={handleChange}\n                        onFocus={handleFocus}\n                        onBlur={handleBlur}\n                        value={text}\n                        disabled={isDisabled}\n                        data-test-selector={`${fullTestSelector}_input`}\n                        className={cx('trigger-input', {\n                            'trigger-input--hasIcon': !!renderLeftIcon,\n                            'trigger-input--hasClearControl': showClearControl,\n                            'trigger-input--isEmpty': !text,\n                            'trigger-input--isDisabled': isDisabled,\n                            'trigger-input--isFocused': isFocused,\n                            'trigger-input--hasError': hasError,\n                            'trigger-input--hasWarning': hasWarning,\n                            'trigger-input--hasChanges': hasChanges,\n                        })}\n                        placeholder={placeholder}\n                        autoComplete={AUTO_COMPLETE_OFF_FIX}\n                    />\n                    {renderLeftIcon && (\n                        <div className={cx('trigger-input__icon')}>\n                            {renderLeftIcon({\n                                isDisabled: !!isDisabled,\n                                isLoading: !!isLoading,\n                                hasWarning: !!hasWarning,\n                                hasError: !!hasError,\n                                hasChanges: !!hasChanges,\n                                hasValue: !isEmpty(value),\n                            })}\n                        </div>\n                    )}\n                    {(showClearControl || renderRightNode) && (\n                        <div className={cx('right-node')}>\n                            {isLoading && (\n                                <ControlLoaderIcon fillColor={StyleGuideColorsEnum.gray} size={DEFAULT_ICON_SIZE} />\n                            )}\n                            {showClearControl && (\n                                <ClickInterceptorLabel>\n                                    <TransparentTrigger\n                                        spaces=\"xs\"\n                                        isDisabled={isDisabled}\n                                        onClick={handleReset}\n                                        leftIcon={<CloseIcon fillColor={StyleGuideColorsEnum.gray} />}\n                                        reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                                    />\n                                </ClickInterceptorLabel>\n                            )}\n                            {renderRightNode && (\n                                <ClickInterceptorLabel>\n                                    {renderRightNode({\n                                        isDisabled: !!isDisabled,\n                                        isLoading: !!isLoading,\n                                        hasWarning: !!hasWarning,\n                                        hasError: !!hasError,\n                                        hasChanges: !!hasChanges,\n                                        hasValue: !isEmpty(value),\n                                    })}\n                                </ClickInterceptorLabel>\n                            )}\n                        </div>\n                    )}\n                </div>\n                {isOpen && !!suggestions.length && (\n                    <FloatingPortal>\n                        <div\n                            ref={refs.setFloating}\n                            style={floatingStyles}\n                            className={cx('overlay')}\n                            onMouseLeave={() => {\n                                isMouseOverlayFocusRef.current = false;\n                            }}\n                            onMouseEnter={() => {\n                                isMouseOverlayFocusRef.current = true;\n                            }}\n                            {...getFloatingProps()}\n                        >\n                            {suggestions.map((suggestion, index) => {\n                                const isSelected = value?.address === suggestion.address;\n                                const suggestionLabel = getSuggestionLabel(suggestion);\n\n                                return (\n                                    <div\n                                        key={index}\n                                        className={cx('overlay__option', {\n                                            'overlay__option--isSelected': isSelected,\n                                        })}\n                                        data-test-selector={`${fullTestSelector}_option_${index}`}\n                                        onClick={(): void => {\n                                            handleOptionClick(suggestion);\n                                        }}\n                                    >\n                                        {suggestionLabel}\n                                    </div>\n                                );\n                            })}\n                        </div>\n                    </FloatingPortal>\n                )}\n            </div>\n            {hasTriangle && (\n                <div\n                    className={cs(\n                        cx('triangle', {\n                            'triangle--isHide': !isFocused,\n                            'triangle--isRed': isRedTriangle,\n                        }),\n                        triangleClassName,\n                    )}\n                />\n            )}\n        </div>\n    );\n};\n\nexport default GeoSuggest;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './CountyFlagsLabel.scss';\nimport { CountryT } from 'common/store/countries-dict/models';\nimport { useTranslation } from 'react-i18next';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport cs from 'classnames';\nimport { useSelector } from 'react-redux';\nimport { selectCountriesCount, selectCountriesDictRequest } from 'common/store/countries-dict/selectors';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport FewCountriesIcon from 'common/icons/FewCountriesIcon';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    className?: string;\n    showCountiesLimit?: number;\n    countries?: Array<CountryT | null>;\n    allowRestCountriesPopover?: boolean;\n};\n\nconst CountyFlagsLabel: React.FC<PropsT> = (props) => {\n    const { countries, showCountiesLimit = 3, className, allowRestCountriesPopover } = props;\n\n    const { t } = useTranslation();\n\n    const dictCountriesCount = useSelector(selectCountriesCount);\n    const requestStatus = useSelector(selectCountriesDictRequest);\n\n    if (!countries?.length) {\n        return null;\n    }\n\n    if (requestStatus?.loading || dictCountriesCount === null) {\n        return <ControlLoaderIcon fillColor={StyleGuideColorsEnum.slate} size={DEFAULT_ICON_SIZE} />;\n    }\n\n    if (countries?.length === 1) {\n        const firstCountry = countries?.[0] || null;\n\n        return (\n            <div className={cx('wrap')} key={firstCountry?.code}>\n                <FlagIcon countryCode={firstCountry?.code} className={cx('icon')} />\n                <div className={cx('label')}>{firstCountry?.userLangDisplayName}</div>\n            </div>\n        );\n    }\n\n    if (countries?.length === dictCountriesCount) {\n        return (\n            <div className={cx('wrap')} key=\"all\">\n                <FewCountriesIcon\n                    size={DEFAULT_ICON_SIZE}\n                    fillColor={StyleGuideColorsEnum.slate}\n                    className={cx('icon')}\n                />\n                <div className={cx('label')}>{t('common:all-countries')}</div>\n            </div>\n        );\n    }\n\n    const limitedCountries = countries.slice(0, showCountiesLimit);\n    const restLimitedCounties = countries.slice(showCountiesLimit);\n\n    return (\n        <div className={cs(cx('wrap'), className)}>\n            {limitedCountries.map((country) => {\n                return (\n                    <Tooltip\n                        position={TooltipPositionEnum.topCenter}\n                        theme={TooltipThemeEnum.black}\n                        tooltipNode={\n                            <TooltipContent theme={TooltipContentThemeEnum.black}>\n                                {country?.userLangDisplayName}\n                            </TooltipContent>\n                        }\n                        className={cx('icon')}\n                        key={country?.code}\n                    >\n                        {() => <FlagIcon countryCode={country?.code} />}\n                    </Tooltip>\n                );\n            })}\n            {Boolean(restLimitedCounties?.length) && (\n                <Tooltip\n                    position={TooltipPositionEnum.topCenter}\n                    theme={TooltipThemeEnum.black}\n                    tooltipNode={\n                        allowRestCountriesPopover ? (\n                            <TooltipContent theme={TooltipContentThemeEnum.black}>\n                                {restLimitedCounties.map((country) => (\n                                    <div className={cx('wrap')} key={country?.code}>\n                                        <FlagIcon countryCode={country?.code} className={cx('icon')} />\n                                        <div className={cx('label')}>{country?.userLangDisplayName}</div>\n                                    </div>\n                                ))}\n                            </TooltipContent>\n                        ) : null\n                    }\n                >\n                    {() => <div className={cx('label')}>+{restLimitedCounties?.length}</div>}\n                </Tooltip>\n            )}\n        </div>\n    );\n};\n\nexport default React.memo(CountyFlagsLabel) as typeof CountyFlagsLabel;\n","import {\n    CHANGE_RFQ_REQUEST_BEGIN,\n    CHANGE_RFQ_REQUEST_ERROR,\n    CHANGE_RFQ_REQUEST_SUCCESS,\n    RFQsChangesActionT,\n    RFQsChangesStateT,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: RFQsChangesStateT = {\n    id: null,\n    request: requestStatus.initial,\n};\n\nexport default (state = initialState, action: RFQsChangesActionT | DestroySessionActionT): RFQsChangesStateT => {\n    switch (action.type) {\n        case CHANGE_RFQ_REQUEST_BEGIN: {\n            const { id } = action;\n\n            return {\n                ...state,\n                id,\n                request: requestStatus.loading,\n            };\n        }\n\n        case CHANGE_RFQ_REQUEST_ERROR: {\n            const { id, error } = action;\n\n            if (id !== state.id) {\n                return state;\n            }\n\n            return {\n                ...state,\n                request: requestStatus.setError(error),\n            };\n        }\n\n        case CHANGE_RFQ_REQUEST_SUCCESS: {\n            const { id } = action;\n\n            if (id !== state.id) {\n                return state;\n            }\n\n            return {\n                ...state,\n                request: requestStatus.ok,\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default:\n            return state;\n    }\n};\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { ApiCreateUpdateTeamRequestT } from 'broker-admin/utils/api/broker-tranziit/models';\n\nexport const prepareQuery = (formValues: FormValuesT): ApiCreateUpdateTeamRequestT | null => {\n    const timezone = formValues[FieldsEnum.timeZone];\n    if (!timezone) {\n        return null;\n    }\n\n    return {\n        name: formValues[FieldsEnum.name],\n        timezone,\n        users: formValues[FieldsEnum.users].map((user) => user.id) || [],\n        companies: formValues[FieldsEnum.partners]?.map((partner) => partner.id) || [],\n    };\n};\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst AttachIcon: React.FC<PropsT> = (props) => {\n    const { className, strokeColor, ...restProps } = props;\n\n    return (\n        <svg\n            xmlns=\"http://www.w3.org/2000/svg\"\n            width={20}\n            height={20}\n            viewBox=\"0 0 26 26\"\n            className={className}\n            {...restProps}\n        >\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M13 .272L25.728 13 13 25.728.272 13z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M7.432 19.099a4.123 4.123 0 005.833 0L19.364 13l-.796-.795-6.098 6.098a3 3 0 11-4.243-4.242l6.63-6.63a1.876 1.876 0 012.65 2.652l-5.568 5.569a.752.752 0 01-1.06 0 .752.752 0 010-1.061l5.038-5.038-.796-.796-5.038 5.038a1.876 1.876 0 002.652 2.652l5.568-5.568a3 3 0 10-4.242-4.243l-6.63 6.63a4.123 4.123 0 000 5.833z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nAttachIcon.displayName = 'AttachIcon';\n\nconst storyProps: PropsT = {\n    strokeColor: StyleGuideColorsEnum.charcoal,\n};\n\nexport { storyProps };\nexport default AttachIcon;\n","import { TFunction } from 'i18next';\nimport { AsyncFormErrorsT, FieldsEnum, FormValuesT, reasonI18nMap } from './constants';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport {\n    checkIsTranziitApiRequestError,\n    TranziitApiRequestErrorSubTypeEnum,\n} from 'common/utils/api/tranziit/errors/tranziit-api-errors';\nimport { ApiSelfCostErrorReasonT } from 'broker-admin/store/broker-order-assigment/models';\nimport { AssetAssignmentInfoT } from 'common/utils/assignment';\n\nconst selfCostInvalidReasonI18nMap: Record<ApiSelfCostErrorReasonT, string> = {\n    // TODO check enum\n    CARRIER_DOESNT_HAVE_REQUIRED_CERTIFICATES:\n        'assignment.validation.reasons.CARRIER_DOESNT_HAVE_REQUIRED_CERTIFICATES',\n    COMPANY_CANT_OPERATE: 'assignment.validation.reasons.COMPANY_CANT_OPERATE',\n    INCAPABLE_EMISSION_STANDARD: 'assignment.validation.reasons.INCAPABLE_EMISSION_STANDARD',\n    INCAPABLE_TRAILER_TYPE: 'assignment.validation.reasons.INCAPABLE_TRAILER_TYPE',\n    // TRAILER_LINKED_WITH_ANOTHER_TRUCK: 'assignment.validation.reasons.TRAILER_LINKED_WITH_ANOTHER_TRUCK',\n    // TRUCK_LINKED_WITH_ANOTHER_TRAILER: 'assignment.validation.reasons.TRUCK_LINKED_WITH_ANOTHER_TRAILER',\n    TRAILER_CANT_BE_ON_TIME_FOR_NEXT_TOUR: 'assignment.validation.reasons.TRAILER_CANT_BE_ON_TIME_FOR_NEXT_TOUR',\n    TRAILER_IS_NOT_CONTRACTED: 'assignment.validation.reasons.TRAILER_IS_NOT_CONTRACTED',\n    TRUCK_CANT_BE_ON_TIME_FOR_NEXT_TOUR: 'assignment.validation.reasons.TRUCK_CANT_BE_ON_TIME_FOR_NEXT_TOUR',\n    TRUCK_IS_NOT_CONTRACTED: 'assignment.validation.reasons.TRUCK_IS_NOT_CONTRACTED',\n    TRUCK_IS_NOT_IN_FREE_STATUS: 'assignment.validation.reasons.TRUCK_IS_NOT_IN_FREE_STATUS',\n    // TOUR_ORIGIN_IN_PROHIBITED_COUNTRIES: 'assignment.validation.reasons.TOUR_ORIGIN_IN_PROHIBITED_COUNTRIES',\n    // TOUR_DESTINATION_IN_PROHIBITED_COUNTRIES: 'assignment.validation.reasons.TOUR_DESTINATION_IN_PROHIBITED_COUNTRIES',\n    TRAILER_CANT_BE_ON_TIME_FOR_TOUR: 'assignment.validation.reasons.TRAILER_CANT_BE_ON_TIME_FOR_TOUR',\n    TRAILER_IS_NOT_IN_FREE_STATUS: 'assignment.validation.reasons.TRAILER_IS_NOT_IN_FREE_STATUS',\n    // TRAILER_HAS_SCHEDULE_ON_TRIP_DATES: 'assignment.validation.reasons.TRAILER_HAS_SCHEDULE_ON_TRIP_DATES',\n    TRUCK_CANT_BE_ON_TIME_FOR_TOUR: 'assignment.validation.reasons.TRUCK_CANT_BE_ON_TIME_FOR_TOUR',\n    // TRUCK_HAS_SCHEDULE_ON_TRIP_DATES: 'assignment.validation.reasons.TRUCK_HAS_SCHEDULE_ON_TRIP_DATES',\n    // ASSIGNED_ASSET_CONTRACT_IS_INACTIVE: 'assignment.validation.reasons.ASSIGNED_ASSET_CONTRACT_IS_INACTIVE',\n    AT_LEAST_MUST_BE_ONE_ASSET: 'assignment.validation.reasons.AT_LEAST_MUST_BE_ONE_ASSET',\n    TRAILER_ALREADY_ASSIGNED: 'assignment.validation.reasons.TRAILER_ALREADY_ASSIGNED',\n    TRUCK_ALREADY_ASSIGNED: 'assignment.validation.reasons.TRUCK_ALREADY_ASSIGNED',\n    TRAILER_CONTRACTED_INACTIVE: 'assignment.validation.reasons.TRAILER_CONTRACTED_INACTIVE',\n    TRUCK_CONTRACTED_INACTIVE: 'assignment.validation.reasons.TRUCK_CONTRACTED_INACTIVE',\n    // COULD_NOT_RESOLVE_ADDRESS: 'assignment.validation.reasons.COULD_NOT_RESOLVE_ADDRESS',\n    DROP_POINT_IS_IN_NOT_AVAILABLE_TO_SHIP_COUNTRY:\n        'assignment.validation.reasons.DROP_POINT_IS_IN_NOT_AVAILABLE_TO_SHIP_COUNTRY',\n    OTHER: 'assignment.validation.reasons.OTHER',\n    TRAILER_START_TIME_BEFORE_NOW: 'assignment.validation.reasons.TRAILER_START_TIME_BEFORE_NOW',\n    TRUCK_START_TIME_BEFORE_NOW: 'assignment.validation.reasons.TRUCK_START_TIME_BEFORE_NOW',\n};\n\ntype MetaT = {\n    trailerById: Record<TrailerIdT, AssetAssignmentInfoT>;\n    truckById: Record<TruckIdT, AssetAssignmentInfoT>;\n    isPrioritySelfCostPredictionStatus: boolean;\n    selfCostPredictionRequestStatus: RequestStatusT;\n    shouldValidateTruck: boolean;\n    shouldValidateTrailer: boolean;\n};\n\nconst asyncValidations = (t: TFunction, values: FormValuesT, meta: MetaT): AsyncFormErrorsT => {\n    const errors: AsyncFormErrorsT = {};\n\n    const {\n        selfCostPredictionRequestStatus,\n        isPrioritySelfCostPredictionStatus,\n        trailerById,\n        truckById,\n        shouldValidateTruck,\n        shouldValidateTrailer,\n    } = meta;\n\n    const selectedTrailerId = values[FieldsEnum.trailerId];\n    const selectedTrailer = selectedTrailerId ? trailerById[selectedTrailerId] : null;\n    if (shouldValidateTrailer && selectedTrailer?.invalidReason && !isPrioritySelfCostPredictionStatus) {\n        errors[FieldsEnum.trailerId] = t(reasonI18nMap[selectedTrailer.invalidReason]);\n    }\n\n    const selectedTruckId = values[FieldsEnum.truckId];\n    const selectedTruck = selectedTruckId ? truckById[selectedTruckId] : null;\n    if (shouldValidateTruck && selectedTruck?.invalidReason && !isPrioritySelfCostPredictionStatus) {\n        errors[FieldsEnum.truckId] = t(reasonI18nMap[selectedTruck.invalidReason]);\n    }\n\n    if (\n        checkIsTranziitApiRequestError(selfCostPredictionRequestStatus.error) &&\n        selfCostPredictionRequestStatus?.error?.subType ===\n            TranziitApiRequestErrorSubTypeEnum.assignmentSelfCostPrediction &&\n        selfCostPredictionRequestStatus?.error?.response?.reason\n    ) {\n        const errorCode = selfCostPredictionRequestStatus.error.response.reason;\n\n        if (!errorCode.includes('TRUCK')) {\n            errors[FieldsEnum.trailerId] = t(selfCostInvalidReasonI18nMap[errorCode as ApiSelfCostErrorReasonT]);\n        }\n\n        if (!errorCode.includes('TRAILER')) {\n            errors[FieldsEnum.truckId] = t(selfCostInvalidReasonI18nMap[errorCode as ApiSelfCostErrorReasonT]);\n        }\n    }\n\n    return errors;\n};\n\nexport default asyncValidations;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './AssetFailedActionFooter.scss';\nimport CopyTextButton from 'common/components/CopyTextButton/CopyTextButton';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    plateNumbers: Array<string>;\n};\n\nconst AssetFailedActionFooter: React.FC<PropsT> = (props) => {\n    const { plateNumbers } = props;\n\n    return (\n        <div className={cx('footer')}>\n            <CopyTextButton\n                className={cx('copy-button')}\n                theme={ButtonThemeEnum.danger}\n                textForClipboard={plateNumbers.join(',')}\n            />\n        </div>\n    );\n};\n\nexport default AssetFailedActionFooter;\n","import React from 'react';\n\nimport { TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\n\nexport enum DelimiterThemeEnum {\n    step = 'step',\n    halfStep = 'halfStep',\n    now = 'now',\n}\n\nexport enum TimeWindowThemeEnum {\n    charcoal = 'charcoal',\n    pewterBlue = 'pewter-blue',\n    lightSlateGray = 'light-slate-gray',\n    tumbleweed = 'tumbleweed',\n    light = 'light',\n    brandAccent = 'brand-accent',\n    tomatoRed70 = 'tomato-red-70',\n    attention = 'attention',\n}\n\nexport type TimeWindowT<T> = {\n    id: string;\n    data: T;\n    start: number;\n    end: number;\n    label: string;\n    icon: React.ReactNode;\n    theme: TimeWindowThemeEnum;\n    isTransparent: boolean;\n    tooltipTheme?: TooltipThemeEnum;\n    renderTooltip?: (data: T) => React.ReactNode;\n};\n\nexport type TimelineLevelT<T> = {\n    label?: string;\n    timeWindows: Array<TimeWindowT<T>>;\n};\n\nexport enum FlagThemeEnum {\n    attention = 'attention',\n}\n\nexport type FlagT<T = unknown> = {\n    id: string;\n    data: T;\n    start: number;\n    end: number;\n    label: string;\n    theme: FlagThemeEnum;\n    iconNode?: React.ReactNode;\n    tooltipTheme?: TooltipThemeEnum;\n    renderTooltip?: (data: T) => React.ReactNode;\n};\n","import * as React from 'react';\nimport { useEffect, useMemo, useState } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './BaseShipperContractDetailsLayout.scss';\nimport { PartnerTypeEnum, ShipperContractStatusEnum } from 'common/utils/api/models';\nimport Widget from 'common/components/Widget/Widget';\nimport { useTranslation } from 'react-i18next';\nimport ShipperContractStatusPill from 'common/components/status-pill/ShipperContractStatusPill/ShipperContractStatusPill';\nimport RemoteFormActions from 'common/components/forms/RemoteFormActions/RemoteFormActions';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport MoreIcon from 'common/icons/MoreIcon';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControl, {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport DeleteIcon from 'common/icons/DeleteIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport EditIcon from 'common/icons/EditIcon';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport { RevokeShipperContractConfirmationDataT } from './dialogs/RevokeShipperContractConfirmation/models';\nimport RevokeShipperContractConfirmation from './dialogs/RevokeShipperContractConfirmation/RevokeShipperContractConfirmation';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectShipperContractDetailsState,\n    selectUpdateShipperContractRequest,\n} from 'common/store/shipper-contract-details/selectors';\nimport {\n    downloadShipperContract,\n    revokeShipperContract,\n    updateShipperContract,\n} from 'common/store/shipper-contract-details/slice';\nimport { UpdateShipperContractChangesT } from 'common/store/shipper-contract-details/models';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport DateFormatter from 'design-system/components/InfoTable/formatters/DateFormatter/DateFormatter';\nimport UserLinkFormatter from 'common/components/InfoTable/formatters/UserLinkFormatter/UserLinkFormatter';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { useOpenLeftSidebar } from 'common/layouts/SideBars/hooks';\nimport { checkIsApiBrokerShipperContractDetails } from 'common/store/shipper-contract-details/type-guards';\nimport EditShipperContractDetailsForm from './EditShipperContractDetailsForm/EditShipperContractDetailsForm';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport ShipperContractDetails from './ShipperContractDetails/ShipperContractDetails';\nimport { DownloadDataT } from './EditShipperContractDetailsForm/models';\nimport cs from 'classnames';\nimport { logWarning } from 'common/utils/logger';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    partnerId: PartnerIdT | null;\n    partnerType: PartnerTypeEnum | null;\n    contractId: ShipperContractIdT;\n    isAllowEditing: boolean;\n    className?: string;\n};\n\nconst HISTORY_DATE_FORMAT = 'DD MMM YYYY, HH:mm';\n\nconst BaseShipperContractDetailsLayout: React.FC<PropsT> = React.memo((props) => {\n    const { partnerId, partnerType, contractId, isAllowEditing, className } = props;\n\n    const dispatch = useDispatch();\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const contractDetailsState = useSelector(selectShipperContractDetailsState(contractId));\n    const updateRequestStatus = useSelector(selectUpdateShipperContractRequest);\n    const contractDetails = contractDetailsState.data;\n    const fetchRequestStatus = contractDetailsState.fetchRequest;\n\n    const isShowLoaderOverlay = !(fetchRequestStatus.ok || fetchRequestStatus.error) || updateRequestStatus.loading;\n\n    const { t } = useTranslation();\n\n    const revokeShipperContractConfirmation = useModalDialog<RevokeShipperContractConfirmationDataT>();\n    useCloseModalDialogAfterRequest(updateRequestStatus, [revokeShipperContractConfirmation]);\n\n    const [isEditing, setIsEditing] = useState<boolean>(false);\n    useEffect(() => {\n        if (updateRequestStatus.ok) {\n            setIsEditing(false);\n        }\n    }, [updateRequestStatus.ok]);\n\n    const options = useMemo((): Array<DropdownControlOptionT | SpecialOptionEnum | null> => {\n        if (!isAllowEditing) {\n            return [];\n        }\n\n        return [\n            contractDetails?.status === ShipperContractStatusEnum.active\n                ? {\n                      label: (\n                          <DropdownControlOptionLabel\n                              icon={\n                                  <EditIcon\n                                      size={DEFAULT_ICON_SIZE}\n                                      fillColor={StyleGuideColorsEnum.brandAccent}\n                                      strokeColor={StyleGuideColorsEnum.brandDark}\n                                  />\n                              }\n                              label={t('common:shipper-contract-details.actions.edit')}\n                          />\n                      ),\n                      onSelect: () => {\n                          setIsEditing(true);\n                      },\n                  }\n                : null,\n            contractDetails?.status === ShipperContractStatusEnum.active\n                ? {\n                      label: (\n                          <DropdownControlOptionLabel\n                              icon={<DeleteIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                              label={t('common:shipper-contract-details.actions.revoke')}\n                          />\n                      ),\n                      onSelect: () => {\n                          if (!partnerId) {\n                              logWarning('Empty partnerId in handleRevokeShipperContract');\n                              return;\n                          }\n\n                          revokeShipperContractConfirmation.setData({\n                              partnerId,\n                              shipperContractId: contractId,\n                              shipperContractName: contractDetails?.name || '',\n                          });\n                      },\n                  }\n                : null,\n        ];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [partnerId, contractId, contractDetails, isAllowEditing]);\n\n    const handleDownloadShipperContract = (data: DownloadDataT) => {\n        dispatch(\n            downloadShipperContract({\n                partnerId: data.partnerId,\n                shipperContractId: data.shipperContractId,\n                fileName: contractDetails?.fileName || null,\n            }),\n        );\n    };\n\n    const handleUpdateShipperContract = ({\n        partnerId,\n        shipperContractId,\n        detailsChanges,\n        file,\n    }: {\n        partnerId: PartnerIdT;\n        shipperContractId: ShipperContractIdT;\n        detailsChanges: UpdateShipperContractChangesT;\n        file: File | null;\n    }) => {\n        dispatch(\n            updateShipperContract({\n                partnerId,\n                shipperContractId,\n                detailsChanges,\n                file,\n            }),\n        );\n    };\n\n    const handleRevokeShipperContract = (reason: string, data: RevokeShipperContractConfirmationDataT | null) => {\n        if (!data) {\n            return;\n        }\n\n        dispatch(\n            revokeShipperContract({\n                partnerId: data.partnerId,\n                shipperContractId: data.shipperContractId,\n                reason,\n            }),\n        );\n    };\n\n    const handleOpenUserDetails = (userId: UserIdT): void => {\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in handleOpenUserDetails');\n            return;\n        }\n\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId,\n            partnerType,\n            userId,\n        });\n    };\n\n    const createDetails: Array<InfoTableRowT | null> = [\n        contractDetails?.createdDate\n            ? {\n                  icon: null,\n                  name: t('common:shipper-contract-details.history.date-added'),\n                  value: <DateFormatter date={contractDetails?.createdDate} format={HISTORY_DATE_FORMAT} />,\n                  valueMods: { emptyPlaceholder: null, isBold: true },\n                  testSelector: 'date-added',\n              }\n            : null,\n        checkIsApiBrokerShipperContractDetails(contractDetails)\n            ? {\n                  icon: null,\n                  name: t('common:shipper-contract-details.history.added-by'),\n                  value: (\n                      <UserLinkFormatter\n                          fullName={contractDetails?.createdByName}\n                          userId={contractDetails?.createdById}\n                          byBroker\n                          onOpenUserDetails={handleOpenUserDetails}\n                      />\n                  ),\n                  valueMods: { emptyPlaceholder: null, isBold: true },\n                  testSelector: 'added-by',\n              }\n            : null,\n    ];\n\n    const modifyDetails: Array<InfoTableRowT | null> = [\n        contractDetails?.lastEditDate\n            ? {\n                  icon: null,\n                  name: t('common:shipper-contract-details.history.date-modified'),\n                  value: <DateFormatter date={contractDetails?.lastEditDate} format={HISTORY_DATE_FORMAT} />,\n                  valueMods: { emptyPlaceholder: null, isBold: true },\n                  testSelector: 'date-modify',\n              }\n            : null,\n        checkIsApiBrokerShipperContractDetails(contractDetails)\n            ? {\n                  icon: null,\n                  name: t('common:shipper-contract-details.history.modified-by'),\n                  value: (\n                      <UserLinkFormatter\n                          fullName={contractDetails?.lastEditByName}\n                          userId={contractDetails?.lastEditById}\n                          byBroker\n                          onOpenUserDetails={handleOpenUserDetails}\n                      />\n                  ),\n                  valueMods: { emptyPlaceholder: null, isBold: true },\n                  testSelector: 'modified-by',\n              }\n            : null,\n    ];\n\n    const revokeDetails: Array<InfoTableRowT | null> = [\n        contractDetails?.revokedDate\n            ? {\n                  icon: null,\n                  name: t('common:shipper-contract-details.history.date-revoked'),\n                  value: <DateFormatter date={contractDetails?.revokedDate} format={HISTORY_DATE_FORMAT} />,\n                  valueMods: { emptyPlaceholder: null, isBold: true },\n                  testSelector: 'date-revoked',\n              }\n            : null,\n        checkIsApiBrokerShipperContractDetails(contractDetails)\n            ? {\n                  icon: null,\n                  name: t('common:shipper-contract-details.history.revoked-by'),\n                  value: (\n                      <UserLinkFormatter\n                          fullName={contractDetails?.revokedByName}\n                          userId={contractDetails?.revokedById}\n                          byBroker\n                          onOpenUserDetails={handleOpenUserDetails}\n                      />\n                  ),\n                  valueMods: { emptyPlaceholder: null, isBold: true },\n                  testSelector: 'revoked-by',\n              }\n            : null,\n    ];\n\n    const expireDetails: Array<InfoTableRowT | null> = [\n        contractDetails?.validTill\n            ? {\n                  icon: null,\n                  name: t('common:shipper-contract-details.history.date-expired'),\n                  value: <DateFormatter date={contractDetails?.validTill} format={HISTORY_DATE_FORMAT} />,\n                  valueMods: { emptyPlaceholder: null, isBold: true },\n                  testSelector: 'date-expired',\n              }\n            : null,\n    ];\n\n    if (!partnerId || !partnerType) {\n        return null;\n    }\n\n    return (\n        <>\n            <div className={cs(cx('widget-group'), className)}>\n                <Widget\n                    className={cx('widget', 'widget-group__widget')}\n                    title={t('common:shipper-contract-details.widgets.basic-information')}\n                    afterTitleNode={<ShipperContractStatusPill status={contractDetails?.status} isSymmetrical />}\n                    rightNode={\n                        <>\n                            {isEditing ? (\n                                <RemoteFormActions\n                                    onClose={() => {\n                                        setIsEditing(false);\n                                    }}\n                                />\n                            ) : (\n                                <DropdownControl\n                                    options={options}\n                                    renderTrigger={(isActive, onClick) => (\n                                        <TransparentTrigger\n                                            isPressed={isActive}\n                                            onClick={onClick}\n                                            leftIcon={<MoreIcon />}\n                                            reflectionTheme={ReflectionThemeEnum.light}\n                                        />\n                                    )}\n                                    overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                                />\n                            )}\n                        </>\n                    }\n                >\n                    <div className={cx('details')}>\n                        {isEditing ? (\n                            <EditShipperContractDetailsForm\n                                partnerId={partnerId}\n                                shipperContractId={contractId}\n                                shipperContractDetails={contractDetails}\n                                onDownloadShipperContract={handleDownloadShipperContract}\n                                onUpdateShipperContract={handleUpdateShipperContract}\n                            />\n                        ) : (\n                            <ShipperContractDetails\n                                partnerId={partnerId}\n                                shipperContractId={contractId}\n                                shipperContractDetails={contractDetails}\n                                onDownloadShipperContract={handleDownloadShipperContract}\n                            />\n                        )}\n                    </div>\n                </Widget>\n                <Widget\n                    className={cx('widget', 'widget-group__widget')}\n                    title={t('common:shipper-contract-details.widgets.history')}\n                >\n                    <div className={cx('history')}>\n                        <InfoTable className={cx('history-table')} rows={createDetails} testSelector=\"create-details\" />\n                        <InfoTable className={cx('history-table')} rows={modifyDetails} testSelector=\"modify-details\" />\n                        <InfoTable className={cx('history-table')} rows={revokeDetails} testSelector=\"revoke-details\" />\n                        <InfoTable className={cx('history-table')} rows={expireDetails} testSelector=\"expire-details\" />\n                    </div>\n                </Widget>\n            </div>\n            <RevokeShipperContractConfirmation\n                data={revokeShipperContractConfirmation.data}\n                requestStatus={updateRequestStatus}\n                onClose={revokeShipperContractConfirmation.onClose}\n                onCancel={revokeShipperContractConfirmation.onCancel}\n                onConfirm={handleRevokeShipperContract}\n            />\n            {isShowLoaderOverlay && <LoaderOverlay />}\n        </>\n    );\n});\n\nexport default BaseShipperContractDetailsLayout;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport TimeWindowIcon from 'common/icons/TimeWindowIcon';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\n\nexport type PropsT = {\n    className?: string;\n    children?: React.ReactNode;\n    tooltipContent?: React.ReactNode;\n};\n\nconst EntityEtaAlert: React.FC<PropsT> = React.memo(({ className, tooltipContent, children }) => {\n    return (\n        <Alert\n            icon={\n                <TimeWindowIcon strokeColor={StyleGuideColorsEnum.white} fillColor={StyleGuideColorsEnum.transparent} />\n            }\n            size={AlertSizeEnum.small}\n            theme={AlertThemeEnum.gray}\n            className={className}\n            tooltipNode={\n                tooltipContent ? (\n                    <TooltipContent width={150} isCenter theme={TooltipContentThemeEnum.black}>\n                        {tooltipContent}\n                    </TooltipContent>\n                ) : null\n            }\n        >\n            {children}\n        </Alert>\n    );\n});\n\nexport default EntityEtaAlert;\n","import { PHONE_NUMBER_PREFIX } from 'common/constants';\n\nexport const parseStringFormatter = (value: string | null | undefined): string => {\n    return (value || '').trim();\n};\n\nexport const parseSimpleNumber = (sourceValue: string | null | undefined): number | undefined => {\n    if (sourceValue === null) {\n        return undefined;\n    }\n\n    if (sourceValue === undefined) {\n        return undefined;\n    }\n\n    if (sourceValue === '') {\n        return undefined;\n    }\n\n    const rawValue = sourceValue.trim().replace(/,/g, '').replace(/ /g, '');\n\n    return +rawValue;\n};\n\nexport const parsePhoneNumber = (sourceValue: string | null | undefined): string => {\n    const rawValue = (sourceValue || '').trim();\n\n    if (!rawValue || rawValue === PHONE_NUMBER_PREFIX) {\n        return '';\n    }\n\n    return rawValue;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"margin--positive\":\"ColoredDiff__margin--positive___Mh1TP\",\"margin--negative\":\"ColoredDiff__margin--negative___auhFh\",\"margin--not-actual\":\"ColoredDiff__margin--not-actual___J0LD4\",\"not-number\":\"ColoredDiff__not-number___RcXRj\",\"fadeIn\":\"ColoredDiff__fadeIn___uoLGW\",\"blinking\":\"ColoredDiff__blinking___AM5Qd\"};","import React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './TimeWindowZoneText.scss';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { RangeSelectorRangeT } from 'common/components/RangeSelector/models';\nimport { useTranslation } from 'react-i18next';\nimport StopWarningIcon from 'common/icons/StopWarningIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    currentRanges: RangeSelectorRangeT[];\n};\n\nconst TimeWindowZoneText: React.FC<PropsT> = React.memo((props) => {\n    const { currentRanges } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <Tooltip\n            position={TooltipPositionEnum.topLeft}\n            theme={TooltipThemeEnum.black}\n            tooltipNode={\n                <TooltipContent theme={TooltipContentThemeEnum.black}>\n                    <div className={cx('content')}>\n                        <StopWarningIcon opacity={0.7} fillColor={StyleGuideColorsEnum.orange} />\n                        <div className={cx('content__content')}>\n                            {currentRanges?.map((range, rangeIndex) => {\n                                return (\n                                    <div key={rangeIndex} className={cx('text')}>\n                                        {range.label}\n                                    </div>\n                                );\n                            })}\n                        </div>\n                    </div>\n                </TooltipContent>\n            }\n        >\n            {() => (\n                <span className={cx('zone-title')} data-test-selector=\"zone-text\">\n                    {t('common:new-order-form.surcharge')}\n                </span>\n            )}\n        </Tooltip>\n    );\n});\n\nexport default TimeWindowZoneText;\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const updateSpotRefreshChannel = new ViewEventChannel<{}>();\n","import * as React from 'react';\nimport { useMemo } from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './TransportOrderDetailsPageLayout.scss';\n\nimport { useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { goBackIfHasRePath } from 'common/utils/history';\nimport GoogleMapContextProvider from 'common/components/maps/GoogleMapContextProvider/GoogleMapContextProvider';\nimport HorizontalColumnsLayout from 'common/layouts/HorizontalColumnsLayout/HorizontalColumnsLayout';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport {\n    selectTransportOrderDetails,\n    selectTransportOrderDetailsRequestStatus,\n} from 'common/store/transport-order-details/selectors';\nimport { fetchTransportOrderDetails } from 'common/store/transport-order-details/actions';\nimport TransportOrderDetails from './TransportOrderDetails/TransportOrderDetails';\nimport TransportOrderStatusPill from 'common/components/status-pill/TransportOrderStatusPill/TransportOrderStatusPill';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport DriversAssignmentFooterContent from './footers/DriversAssignmentFooterContent/DriversAssignmentFooterContent';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport {\n    selectAssignmentRequestStatus as selectDriverAssignmentRequestStatus,\n    selectReAssignmentRequestStatus,\n} from 'common/store/driver-assigment/selectors';\nimport { selectAssignmentRequestStatus as selectSpotAssetsAssignmentRequestStatus } from 'common/store/spot-assets-assigment/selectors';\nimport StatusFooterContent from './footers/StatusFooterContent/StatusFooterContent';\nimport {\n    ApiTransportOrderStatusT,\n    PartnerTypeEnum,\n    TransportOrderStatusEnum,\n    TransportOrderTypeEnum,\n} from 'common/utils/api/models';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport MoreIcon from 'common/icons/MoreIcon';\nimport DropdownControl, {\n    DropdownControlOptionT,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\n\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport DeclineOrderConfirmation, {\n    DeclineOrderConfirmationDataT,\n} from './dialogs/DeclineOrderConfirmation/DeclineOrderConfirmation';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport SideBarLayoutContextWrap from '../LeftMenuLayout/SideBarLayout/SideBarLayoutContextWrap/SideBarLayoutContextWrap';\nimport EntitySidebarSkeleton from 'common/components/entity-details/EntitySidebarSkeleton/EntitySidebarSkeleton';\nimport SideBarRequestStatus from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarRequestStatus/SideBarRequestStatus';\nimport SideBarHeaderRequestStatus from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarHeaderRequestStatus/SideBarHeaderRequestStatus';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport UnassignDriversConfirmation, {\n    UnassignDriversConfirmationDataT,\n} from 'common/layouts/TransportOrderDetailsPageLayout/dialogs/UnassignDriversConfirmation/UnassignDriversConfirmation';\nimport { reAssign } from 'common/store/driver-assigment/actions';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport AcceptDeclinedOrderConfirmation, {\n    AcceptDeclinedOrderConfirmationDataT,\n} from './dialogs/AcceptDeclinedOrderConfirmation/AcceptDeclinedOrderConfirmation';\nimport { BooleanParam, useQueryParams } from 'use-query-params';\nimport SpotAssetsAssignmentFooterContent from 'common/layouts/TransportOrderDetailsPageLayout/footers/SpotAssetsAssignmentFooterContent/SpotAssetsAssignmentFooterContent';\nimport ParanjaSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/ParanjaSideBarLayout/ParanjaSideBarLayout';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport { isNonNil } from 'common/utils';\nimport { logWarning } from 'common/utils/logger';\n\nimport { StateMachineEntityDescriptorT } from 'common/store/state-machine/models';\nimport { updateEntityStatus } from 'common/store/state-machine/slice';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { stateMachineRefreshChannel } from 'common/store/state-machine/channels';\nimport { transportOrderRefreshChannel } from 'common/store/transport-order-details/channels';\nimport TransportOrderRouteMap from './TransportOrderRouteMap/TransportOrderRouteMap';\nimport {\n    checkIsBrokerTransportOrderDetails,\n    checkIsCarrierTransportOrderDetails,\n} from 'common/store/transport-order-details/type-guards';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport { useStateMachine } from 'common/utils/hooks/useStateMachine';\nimport useAfterSuccessRequest from 'common/utils/hooks/useAfterSuccessRequest';\nimport UnassignAssetsConfirmation, {\n    UnassignAssetsConfirmationDataT,\n} from './dialogs/UnassignAssetsConfirmation/UnassignAssetsConfirmation';\nimport { assign, unassign } from 'common/store/spot-assets-assigment/actions';\nimport { getShipmentAnchor } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderDetailsPage/BrokerOrderDetails/ShipmentDetailsCard/utils';\nimport scrollIntoView from 'scroll-into-view';\nimport { consistentStateMachineRefreshChannel } from 'common/store/consistent-state-machine/channels';\nimport { papersEditRefreshChannel } from 'common/store/papers-edit/channels';\nimport HighlightedEntityContext, {\n    HighlightedEntityContextProvider,\n} from 'common/components/status-machine/contexts/HighlightedEntityContext';\nimport { SubjectLogs } from 'common/layouts/SubjectLogs/SubjectLogs';\nimport { SwitchableView } from 'common/components/SwitchableView/SwitchableView';\nimport { LogsSwitchableViewLayout } from 'common/layouts/switchable-views/LogsSwitchableViewLayout/LogsSwitchableViewLayout';\nimport { AnyAlert } from 'common/store/alerts/models';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype DeclineUnavailableReasonT = Api2.Definitions.DeclineUnavailableReason;\ntype TOCancelByBrokerUnavailableReasonT = Api2.Definitions.TOCancelByBrokerUnavailableReason;\ntype UnassignDriverUnavailableReasonT = Api2.Definitions.UnassignDriverUnavailableReason;\ntype CarrierUnassignAssetsUnavailableReasonT = Api2.Definitions.CarrierUnassignAssetsUnavailableReason;\n\nconst declineUnavailableReasonI18nMap: Record<DeclineUnavailableReasonT, string> = {\n    TO_BELONGS_TO_ANOTHER_CARRIER:\n        'common:transport-order-details.decline-unavailable-reason.TO_BELONGS_TO_ANOTHER_CARRIER',\n    UNAVAILABLE_STATUS: 'common:transport-order-details.decline-unavailable-reason.UNAVAILABLE_STATUS',\n    TIME_LIMIT_TO_DECLINE_HAS_PASSED:\n        'common:transport-order-details.decline-unavailable-reason.TIME_LIMIT_TO_DECLINE_HAS_PASSED',\n    CARRIER_CANT_DECLINE_DEADHEAD_TO:\n        'common:transport-order-details.decline-unavailable-reason.CARRIER_CANT_DECLINE_DEADHEAD_TO',\n};\n\ntype DeprecatedT = 'PICKUP_ALREADY_STARTED' | 'TRANSPORTATION_ORDER_IS_ON_SPOT';\n\nconst cancelByBrokerUnavailableReasonI18nMap: Record<TOCancelByBrokerUnavailableReasonT | DeprecatedT, string> = {\n    PICKUP_ALREADY_STARTED: 'common:transport-order-details.cancel-unavailable-reason.PICKUP_ALREADY_STARTED',\n    TRANSPORTATION_IS_NOT_IN_AVAILABLE_STATUS:\n        'common:transport-order-details.cancel-unavailable-reason.TRANSPORTATION_IS_NOT_IN_AVAILABLE_STATUS',\n    TRANSPORTATION_ORDER_IS_ON_SPOT:\n        'common:transport-order-details.cancel-unavailable-reason.TRANSPORTATION_ORDER_IS_ON_SPOT',\n    BROKER_CANT_CANCEL_DEADHEAD_TO:\n        'common:transport-order-details.cancel-unavailable-reason.BROKER_CANT_CANCEL_DEADHEAD_TO',\n};\n\nconst unassignDriverUnavailableReasonI18nMap: Record<UnassignDriverUnavailableReasonT, string> = {\n    UNAVAILABLE_STATUS: 'common:transport-order-details.unassign-driver-unavailable-reason.UNAVAILABLE_STATUS',\n    NO_ASSIGNED_DRIVERS: 'common:transport-order-details.unassign-driver-unavailable-reason.NO_ASSIGNED_DRIVERS',\n};\n\nconst carrierUnassignAssetsUnavailableReasonI18nMap: Record<CarrierUnassignAssetsUnavailableReasonT, string> = {\n    TO_IS_NOT_ON_SPOT: 'common:transport-order-details.carrier-unassign-assets-unavailable-reason.TO_IS_NOT_ON_SPOT',\n    UNAVAILABLE_STATUS: 'common:transport-order-details.carrier-unassign-assets-unavailable-reason.UNAVAILABLE_STATUS',\n    PICKUP_ALREADY_STARTED:\n        'common:transport-order-details.carrier-unassign-assets-unavailable-reason.PICKUP_ALREADY_STARTED',\n};\n\ntype PropsT = {\n    isReadOnly?: boolean;\n    declineSuccessAlert?: AnyAlert;\n    goToBack: () => void;\n    goToTrailerDetails: (trailerId: TrailerIdT | null) => void;\n    goToTruckDetails: (truckId: TruckIdT | null) => void;\n    goToDriverDetails?: (driverId: DriverIdT | null) => void;\n    goToSpotRequestDetails: (spotRequestId: SpotRequestIdT | null) => void;\n    onOpenUserDetails: (params: {\n        userId: UserIdT | null;\n        partnerType?: PartnerTypeEnum;\n        partnerId?: PartnerIdT;\n    }) => void;\n    onOpenDriverDetails?: (params: { driverId: DriverIdT; partnerId: PartnerIdT }) => void;\n};\n\nenum QueryKeysEnum {\n    driversAssignment = 'drivers-assignment',\n    spotAssetsAssignment = 'spot-assets-assignment',\n}\n\nconst TransportOrderDetailsPageLayoutContent: React.FC<PropsT> = React.memo((props) => {\n    const {\n        goToBack,\n        goToTrailerDetails,\n        goToTruckDetails,\n        goToDriverDetails,\n        goToSpotRequestDetails,\n        onOpenUserDetails,\n        onOpenDriverDetails,\n    } = props;\n\n    const { partnerId } = usePartnerContext();\n\n    const params = useParams<{ transportOrderId: string }>();\n    const { transportOrderId } = params;\n\n    const ref = React.useRef<HTMLDivElement>(null);\n\n    const { setHighlightedEntityId: setHighlightedShipmentId } = React.useContext(HighlightedEntityContext);\n\n    const { t } = useTranslation();\n\n    const [query, changeQuery] = useQueryParams({\n        [QueryKeysEnum.driversAssignment]: BooleanParam,\n        [QueryKeysEnum.spotAssetsAssignment]: BooleanParam,\n    });\n\n    const acceptDeclinedOrderConfirmation = useModalDialog<AcceptDeclinedOrderConfirmationDataT>();\n    const declineOrderConfirmation = useModalDialog<DeclineOrderConfirmationDataT>();\n    const unassignDriversConfirmation = useModalDialog<UnassignDriversConfirmationDataT>();\n    const unassignAssetsConfirmation = useModalDialog<UnassignAssetsConfirmationDataT>();\n\n    const permissions = useSelector(selectPermissions);\n\n    const transportOrderDetails = useSelector(selectTransportOrderDetails(transportOrderId));\n    const transportOrderDetailsRequestStatus = useSelector(selectTransportOrderDetailsRequestStatus(transportOrderId));\n\n    const isReadOnly = props.isReadOnly || transportOrderDetails?.type === TransportOrderTypeEnum.trailer;\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in TransportOrderDetailsPageLayout useEffect');\n            return;\n        }\n        dispatch(fetchTransportOrderDetails(partnerId, transportOrderId, { isForceUpdate: false }));\n    }, [dispatch, partnerId, transportOrderId]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in documentVisibilityChangeHandler');\n            return;\n        }\n        dispatch(fetchTransportOrderDetails(partnerId, transportOrderId, { isForceUpdate: false }));\n    }, [dispatch, partnerId, transportOrderId]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const refreshTransportPageHandler = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in refreshTransportPageHandler');\n            return;\n        }\n        dispatch(fetchTransportOrderDetails(partnerId, transportOrderId, { isForceUpdate: true }));\n    }, [dispatch, partnerId, transportOrderId]);\n    useChannelSubscribe(stateMachineRefreshChannel, refreshTransportPageHandler);\n    useChannelSubscribe(consistentStateMachineRefreshChannel, refreshTransportPageHandler);\n    useChannelSubscribe(papersEditRefreshChannel, refreshTransportPageHandler);\n    useChannelSubscribe(transportOrderRefreshChannel, refreshTransportPageHandler);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleRefreshOnError');\n            return;\n        }\n        dispatch(fetchTransportOrderDetails(partnerId, transportOrderId, { isForceUpdate: true }));\n    }, [dispatch, partnerId, transportOrderId]);\n\n    const closeOrderDetails = () => {\n        goBackIfHasRePath(() => {\n            goToBack();\n        });\n    };\n\n    const isActiveDriversAssignment = !!query[QueryKeysEnum.driversAssignment];\n    const closeDriversAssignments = () => {\n        changeQuery({\n            [QueryKeysEnum.driversAssignment]: null,\n        });\n    };\n\n    const openDriversAssignments = () => {\n        changeQuery({\n            [QueryKeysEnum.driversAssignment]: true,\n        });\n    };\n\n    const assignmentDriverRequestStatus = useSelector(selectDriverAssignmentRequestStatus);\n    useAfterSuccessRequest(assignmentDriverRequestStatus, () => {\n        closeDriversAssignments();\n    });\n\n    const isActiveSpotAssetsAssignment = !!query[QueryKeysEnum.spotAssetsAssignment];\n    const closeSpotAssetsAssignments = () => {\n        changeQuery({\n            [QueryKeysEnum.spotAssetsAssignment]: null,\n        });\n    };\n\n    const openSpotAssetsAssignments = () => {\n        changeQuery({\n            [QueryKeysEnum.spotAssetsAssignment]: true,\n        });\n    };\n\n    const spotAssetsAssignmentRequestStatus = useSelector(selectSpotAssetsAssignmentRequestStatus);\n    useCloseModalDialogAfterRequest(spotAssetsAssignmentRequestStatus, [unassignAssetsConfirmation]);\n    useAfterSuccessRequest(spotAssetsAssignmentRequestStatus, () => {\n        closeSpotAssetsAssignments();\n    });\n\n    const descriptor = useMemo((): StateMachineEntityDescriptorT | null => {\n        if (!transportOrderId) {\n            return null;\n        }\n\n        return {\n            entityType: 'TRANSPORTATION_ORDER',\n            entityId: transportOrderId,\n        };\n    }, [transportOrderId]);\n\n    const { updateRequest } = useStateMachine<ApiTransportOrderStatusT>(descriptor, { isAllowFetch: false });\n\n    useCloseModalDialogAfterRequest(updateRequest, [declineOrderConfirmation, acceptDeclinedOrderConfirmation]);\n\n    const unassignDriverUnavailableReason = useMemo(() => {\n        if (checkIsCarrierTransportOrderDetails(transportOrderDetails)) {\n            return transportOrderDetails?.unassignDriverUnavailableReason || null;\n        }\n        return null;\n    }, [transportOrderDetails]);\n\n    const unassignDriverTooltipContent = useMemo(() => {\n        if (!unassignDriverUnavailableReason) {\n            return null;\n        }\n\n        return (\n            <TooltipContent theme={TooltipContentThemeEnum.black} width={150} isCenter>\n                {t(\n                    unassignDriverUnavailableReasonI18nMap[\n                        unassignDriverUnavailableReason as UnassignDriverUnavailableReasonT\n                    ],\n                )}\n            </TooltipContent>\n        );\n    }, [unassignDriverUnavailableReason, t]);\n\n    const isAvailableToUnassignDriver = Boolean(\n        checkIsCarrierTransportOrderDetails(transportOrderDetails) && !unassignDriverUnavailableReason,\n    );\n\n    const unassignAssetsUnavailableReason = useMemo(() => {\n        if (checkIsCarrierTransportOrderDetails(transportOrderDetails)) {\n            return transportOrderDetails?.unassignAssetsUnavailableReason || null;\n        }\n        return null;\n    }, [transportOrderDetails]);\n\n    const unassignAssetsUnavailableTooltipContent = useMemo(() => {\n        if (!unassignAssetsUnavailableReason) {\n            return null;\n        }\n\n        return (\n            <TooltipContent theme={TooltipContentThemeEnum.black} width={150} isCenter>\n                {t(\n                    carrierUnassignAssetsUnavailableReasonI18nMap[\n                        unassignAssetsUnavailableReason as CarrierUnassignAssetsUnavailableReasonT\n                    ],\n                )}\n            </TooltipContent>\n        );\n    }, [unassignAssetsUnavailableReason, t]);\n\n    const declineUnavailableReason = useMemo(() => {\n        if (checkIsCarrierTransportOrderDetails(transportOrderDetails)) {\n            return transportOrderDetails?.declineUnavailableReason || null;\n        }\n        if (checkIsBrokerTransportOrderDetails(transportOrderDetails)) {\n            return transportOrderDetails?.cancelUnavailableReason || null;\n        }\n        return null;\n    }, [transportOrderDetails]);\n\n    const declineTooltipContent = useMemo(() => {\n        if (!declineUnavailableReason) {\n            return null;\n        }\n\n        if (checkIsCarrierTransportOrderDetails(transportOrderDetails)) {\n            return (\n                <TooltipContent theme={TooltipContentThemeEnum.black} width={150} isCenter>\n                    {t(declineUnavailableReasonI18nMap[declineUnavailableReason as DeclineUnavailableReasonT])}\n                </TooltipContent>\n            );\n        }\n\n        if (checkIsBrokerTransportOrderDetails(transportOrderDetails)) {\n            return (\n                <TooltipContent theme={TooltipContentThemeEnum.black} width={150} isCenter>\n                    {t(\n                        cancelByBrokerUnavailableReasonI18nMap[\n                            declineUnavailableReason as TOCancelByBrokerUnavailableReasonT\n                        ],\n                    )}\n                </TooltipContent>\n            );\n        }\n\n        return null;\n    }, [declineUnavailableReason, transportOrderDetails, t]);\n\n    const isAvailableDecline = permissions.canDeclineTransportOrders && !declineUnavailableReason;\n\n    const options: Array<DropdownControlOptionT | null> = [\n        permissions.canDeclineTransportOrders\n            ? {\n                  label: (\n                      <Tooltip\n                          position={TooltipPositionEnum.centerLeft}\n                          theme={TooltipThemeEnum.black}\n                          tooltipNode={declineTooltipContent}\n                      >\n                          {() => (\n                              <DropdownControlOptionLabel\n                                  icon={<CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                                  label={t('common:transport-order-details.actions.decline')}\n                                  isDisabled={!!declineUnavailableReason}\n                              />\n                          )}\n                      </Tooltip>\n                  ),\n                  isDisabled: !!declineUnavailableReason,\n                  onSelect: () => {\n                      if (!isAvailableDecline) {\n                          return;\n                      }\n                      declineOrderConfirmation.setData({});\n                  },\n              }\n            : null,\n    ];\n\n    const handleConfirmDecline = () => {\n        if (!transportOrderId) {\n            logWarning('Empty transportOrderId');\n            return;\n        }\n\n        if (!descriptor) {\n            logWarning('Empty descriptor');\n            return;\n        }\n\n        dispatch(\n            updateEntityStatus({\n                update: {\n                    entityType: 'TRANSPORTATION_ORDER',\n                    entityId: transportOrderId,\n                    status: TransportOrderStatusEnum.canceled,\n                },\n                descriptor,\n                successAlert: props.declineSuccessAlert,\n            }),\n        );\n    };\n\n    const handleConfirmAcceptDeclined = () => {\n        if (!transportOrderId) {\n            logWarning('Empty transportOrderId');\n            return;\n        }\n\n        if (!descriptor) {\n            logWarning('Empty descriptor');\n            return;\n        }\n\n        dispatch(\n            updateEntityStatus({\n                update: {\n                    entityType: 'TRANSPORTATION_ORDER',\n                    entityId: transportOrderId,\n                    status: TransportOrderStatusEnum.assigned,\n                },\n                descriptor,\n            }),\n        );\n    };\n\n    const reAssignRequest = useSelector(selectReAssignmentRequestStatus);\n    useCloseModalDialogAfterRequest(reAssignRequest, [unassignDriversConfirmation]);\n    useAfterSuccessRequest(reAssignRequest, () => {\n        closeDriversAssignments();\n    });\n    const handleReAssignment = (): void => {\n        const driverIds = (transportOrderDetails?.drivers || []).map((driver) => driver.id).filter(isNonNil);\n\n        dispatch(reAssign(transportOrderId, driverIds));\n    };\n\n    const handleAssignAssets = ({\n        transportOrderId,\n        truckId,\n        trailerId,\n    }: {\n        transportOrderId: TransportOrderIdT;\n        truckId: AssetIdT;\n        trailerId: AssetIdT;\n    }): void => {\n        dispatch(assign(transportOrderId, truckId, trailerId));\n    };\n\n    const handleConfirmUnnassignAssets = ({ transportOrderId }: UnassignAssetsConfirmationDataT): void => {\n        dispatch(unassign(transportOrderId));\n    };\n\n    const handleUnnassignAssets = ({ transportOrderId }: { transportOrderId: TransportOrderIdT }): void => {\n        unassignAssetsConfirmation.setData({\n            transportOrderId,\n        });\n    };\n\n    const renderFooter = () => {\n        if (isReadOnly) {\n            return null;\n        }\n\n        if (isActiveDriversAssignment) {\n            return (\n                <>\n                    <ParanjaSideBarLayout />\n                    <FooterSideBarLayout isTransparent hasShadow>\n                        <DriversAssignmentFooterContent\n                            transportOrderId={transportOrderId}\n                            transportOrderDetails={transportOrderDetails}\n                            onCancel={closeDriversAssignments}\n                            isAvailableToUnassignDriver={isAvailableToUnassignDriver}\n                            unnassignDriversRequestStatus={reAssignRequest}\n                            onUnnasignDrivers={() => {\n                                unassignDriversConfirmation.setData({});\n                            }}\n                        />\n                    </FooterSideBarLayout>\n                </>\n            );\n        }\n\n        if (isActiveSpotAssetsAssignment) {\n            return (\n                <>\n                    <ParanjaSideBarLayout />\n                    <FooterSideBarLayout isTransparent hasShadow>\n                        <SpotAssetsAssignmentFooterContent\n                            transportOrderId={transportOrderId}\n                            transportOrderDetails={transportOrderDetails}\n                            onCancel={closeSpotAssetsAssignments}\n                            assignmentRequestStatus={spotAssetsAssignmentRequestStatus}\n                            onAssignAssets={handleAssignAssets}\n                            onClearAssets={handleUnnassignAssets}\n                            unassignAssetsUnavailableTooltipContent={unassignAssetsUnavailableTooltipContent}\n                        />\n                    </FooterSideBarLayout>\n                </>\n            );\n        }\n\n        return (\n            <FooterSideBarLayout hasPaddings>\n                <StatusFooterContent\n                    transportOrderDetails={transportOrderDetails}\n                    onUnassignedAssets={() => {\n                        handleUnnassignAssets({\n                            transportOrderId,\n                        });\n                    }}\n                    unassignAssetsUnavailableTooltipContent={unassignAssetsUnavailableTooltipContent}\n                    onStartAssignAssets={openSpotAssetsAssignments}\n                    isAvailableToUnassignDriver={isAvailableToUnassignDriver}\n                    onUnassignedDrivers={() => {\n                        unassignDriversConfirmation.setData({});\n                    }}\n                    onStartAssignDrivers={openDriversAssignments}\n                    onManageShipment={(shipmentId) => {\n                        const anchor = getShipmentAnchor(shipmentId);\n                        const targetNode = ref?.current?.querySelector(`[data-anchor=\"${anchor}\"]`);\n                        if (!targetNode) {\n                            return;\n                        }\n\n                        setHighlightedShipmentId(shipmentId);\n\n                        scrollIntoView(targetNode as HTMLElement, {\n                            align: {\n                                top: 0.2,\n                            },\n                        });\n                    }}\n                    unassignDriverTooltipContent={unassignDriverTooltipContent}\n                />\n            </FooterSideBarLayout>\n        );\n    };\n\n    const isSetStateLoading = updateRequest.loading;\n\n    return (\n        <GoogleMapContextProvider>\n            <HorizontalColumnsLayout\n                testSelector=\"transport-order-details\"\n                leftColumnTitle={t('common:transport-order-details.main-tabs.details')}\n                leftColumnNode={\n                    <SideBarLayoutContextWrap>\n                        {isSetStateLoading && <LoaderOverlay />}\n                        <HeaderSideBarLayout>\n                            <HeaderSideBarContent\n                                title={\n                                    transportOrderDetails\n                                        ? t('common:transport-order-details.title', {\n                                              number: transportOrderDetails.number || '',\n                                          })\n                                        : null\n                                }\n                                onClose={closeOrderDetails}\n                                afterTitleNode={\n                                    <TransportOrderStatusPill\n                                        status={transportOrderDetails?.status}\n                                        isArchived={transportOrderDetails?.archivedByCarrier}\n                                        isSpot={!!transportOrderDetails?.spotInfo?.id}\n                                    />\n                                }\n                                rightNode={\n                                    !isReadOnly ? (\n                                        <DropdownControl\n                                            options={options}\n                                            renderTrigger={(isActive, onClick) => (\n                                                <TransparentTrigger\n                                                    isPressed={isActive}\n                                                    onClick={onClick}\n                                                    leftIcon={<MoreIcon />}\n                                                    reflectionTheme={ReflectionThemeEnum.light}\n                                                />\n                                            )}\n                                            overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                                        />\n                                    ) : null\n                                }\n                            />\n                            <SideBarHeaderRequestStatus\n                                requestStatus={transportOrderDetailsRequestStatus}\n                                hasCachedData={Boolean(transportOrderDetails)}\n                                isForceShowLoader={updateRequest.loading}\n                            />\n                        </HeaderSideBarLayout>\n                        <SideBarLayout>\n                            <div ref={ref}>\n                                <SideBarRequestStatus\n                                    requestStatus={transportOrderDetailsRequestStatus}\n                                    hasCachedData={Boolean(transportOrderDetails)}\n                                    onRetry={handleRefreshOnError}\n                                    SkeletonComponent={EntitySidebarSkeleton}\n                                >\n                                    {transportOrderDetails ? (\n                                        <TransportOrderDetails\n                                            isReadOnly={isReadOnly}\n                                            transportOrderDetails={transportOrderDetails}\n                                            goToTrailerDetails={goToTrailerDetails}\n                                            goToTruckDetails={goToTruckDetails}\n                                            goToDriverDetails={goToDriverDetails}\n                                            goToSpotRequestDetails={goToSpotRequestDetails}\n                                            onOpenUserDetails={onOpenUserDetails}\n                                            onOpenDriverDetails={onOpenDriverDetails}\n                                        />\n                                    ) : null}\n                                </SideBarRequestStatus>\n                            </div>\n                        </SideBarLayout>\n                        {renderFooter()}\n                    </SideBarLayoutContextWrap>\n                }\n                rightColumnTitle={t('common:transport-order-details.main-tabs.info')}\n                rightColumnNode={\n                    <SwitchableView.Container>\n                        <SwitchableView.Tab title={t('common:views.map')}>\n                            <TransportOrderRouteMap\n                                key={transportOrderId}\n                                transportOrderId={transportOrderId}\n                                transportOrderDetails={transportOrderDetails}\n                            />\n                        </SwitchableView.Tab>\n                        <SwitchableView.Tab title={t('common:views.logs')}>\n                            <SubjectLogs subjectType=\"TRANSPORTATION_ORDER\" subjectId={transportOrderId}>\n                                {({ logs, requestStatus }) => (\n                                    <LogsSwitchableViewLayout logs={logs} requestStatus={requestStatus} />\n                                )}\n                            </SubjectLogs>\n                        </SwitchableView.Tab>\n                    </SwitchableView.Container>\n                }\n            />\n            <AcceptDeclinedOrderConfirmation\n                requestStatus={updateRequest}\n                data={acceptDeclinedOrderConfirmation.data}\n                onCancel={acceptDeclinedOrderConfirmation.onCancel}\n                onClose={acceptDeclinedOrderConfirmation.onClose}\n                onConfirm={handleConfirmAcceptDeclined}\n            />\n            <DeclineOrderConfirmation\n                requestStatus={updateRequest}\n                data={declineOrderConfirmation.data}\n                onCancel={declineOrderConfirmation.onCancel}\n                onClose={declineOrderConfirmation.onClose}\n                onConfirm={handleConfirmDecline}\n            />\n            <UnassignDriversConfirmation\n                data={unassignDriversConfirmation.data}\n                onClose={unassignDriversConfirmation.onClose}\n                onCancel={unassignDriversConfirmation.onCancel}\n                requestStatus={reAssignRequest}\n                onConfirm={handleReAssignment}\n            />\n            <UnassignAssetsConfirmation\n                data={unassignAssetsConfirmation.data}\n                onClose={unassignAssetsConfirmation.onClose}\n                onCancel={unassignAssetsConfirmation.onCancel}\n                requestStatus={spotAssetsAssignmentRequestStatus}\n                onConfirm={handleConfirmUnnassignAssets}\n            />\n        </GoogleMapContextProvider>\n    );\n});\n\nconst TransportOrderDetailsPageLayout: React.FC<PropsT> = React.memo((props) => {\n    return (\n        <HighlightedEntityContextProvider>\n            <TransportOrderDetailsPageLayoutContent {...props} />\n        </HighlightedEntityContextProvider>\n    );\n});\n\nexport default TransportOrderDetailsPageLayout;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './BrokerTeamsTable.scss';\nimport { useTranslation } from 'react-i18next';\nimport Table, { TableColumnT, TableRowMetaT } from 'common/components/Table/Table';\nimport MemoizedTable from 'common/components/Table/MemoizedTable/MemoizedTable';\nimport { BrokerTeamShortT } from 'broker-admin/store/broker-teams/models';\nimport IdCell from 'common/components/Table/cell-renderers/IdCell/IdCell';\nimport EventCell from 'common/components/Table/cell-renderers/EventCell/EventCell';\nimport UsersCountCell from './cell-renderers/UsersCountCell/UsersCountCell';\nimport PartnersCountCell from './cell-renderers/PartnersCountCell/PartnersCountCell';\nimport ControlsCell from './cell-renderers/ControlsCell/ControlsCell';\nimport { TeamActionsCallbacksT } from './hooks/actions';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = TeamActionsCallbacksT & {\n    brokerTeams: Array<BrokerTeamShortT>;\n    className: string;\n    goToBrokerTeamDetails?: (event: React.MouseEvent, brokerTeamId: TeamIdT) => void;\n    onOpenUserDetails: (userId: UserIdT | null) => void;\n    isLoading: boolean;\n};\n\nconst BrokerTeamsTable: React.FC<PropsT> = React.memo((props) => {\n    const { brokerTeams, className, goToBrokerTeamDetails, isLoading, onDelete, onOpenUserDetails } = props;\n\n    const { t } = useTranslation();\n\n    const columns: Array<TableColumnT<BrokerTeamShortT, void>> = [\n        {\n            renderHeader: () => <span>{t('broker-users.teams.list.table.columns.name')}</span>,\n            headerClassName: cx('table__header', 'table__header--name'),\n            render: (brokerTeamShort) => <IdCell id={brokerTeamShort?.name} />,\n            className: cx('table__column', 'table__column--name'),\n            testSelector: 'name',\n        },\n        {\n            renderHeader: () => <span>{t('broker-users.teams.list.table.columns.added')}</span>,\n            headerClassName: cx('table__header', 'table__header--added'),\n            render: (brokerTeamShort) => (\n                <EventCell\n                    userFullName={brokerTeamShort?.createdByName}\n                    userId={brokerTeamShort?.createdById}\n                    date={brokerTeamShort?.createdDate}\n                    openUserDetails={onOpenUserDetails}\n                />\n            ),\n            className: cx('table__column', 'table__column--added'),\n            testSelector: 'added',\n        },\n        {\n            renderHeader: () => <span>{t('broker-users.teams.list.table.columns.modified')}</span>,\n            headerClassName: cx('table__header', 'table__header--modified'),\n            render: (brokerTeamShort) => (\n                <EventCell\n                    userFullName={brokerTeamShort?.modifiedByName}\n                    userId={brokerTeamShort?.modifiedById}\n                    date={brokerTeamShort?.modifiedDate}\n                    openUserDetails={onOpenUserDetails}\n                />\n            ),\n            className: cx('table__column', 'table__column--modified'),\n            testSelector: 'modified',\n        },\n        {\n            renderHeader: () => <span>{t('broker-users.teams.list.table.columns.users-count')}</span>,\n            headerClassName: cx('table__header', 'table__header--users-count'),\n            render: (brokerTeamShort) => <UsersCountCell brokerTeamShort={brokerTeamShort} />,\n            className: cx('table__column', 'table__column--users-count'),\n            testSelector: 'users-count',\n        },\n        {\n            renderHeader: () => <span>{t('broker-users.teams.list.table.columns.partners-count')}</span>,\n            headerClassName: cx('table__header', 'table__header--partners-count'),\n            render: (brokerTeamShort) => <PartnersCountCell brokerTeamShort={brokerTeamShort} />,\n            className: cx('table__column', 'table__column--partners-count'),\n            testSelector: 'partners-count',\n        },\n        {\n            renderHeader: () => null,\n            headerClassName: cx('table__header', 'table__header--controls'),\n            render: (brokerTeamShort) => <ControlsCell brokerTeamShort={brokerTeamShort} onDelete={onDelete} />,\n            className: cx('table__column', 'table__column--controls'),\n            testSelector: 'controls',\n        },\n    ];\n\n    const handleSelectRow = (event: React.MouseEvent, brokerTeamShort: BrokerTeamShortT) => {\n        if (!brokerTeamShort.id || !goToBrokerTeamDetails) {\n            return;\n        }\n\n        goToBrokerTeamDetails(event, brokerTeamShort.id);\n    };\n\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const getRowMods = (meta: TableRowMetaT, brokerTeamShort: BrokerTeamShortT) => {\n        return {};\n    };\n\n    return (\n        <div className={cx('table')}>\n            <MemoizedTable<BrokerTeamShortT> tableName=\"broker-teams\" isLoading={isLoading} rows={brokerTeams}>\n                {(rows, isUsedPrevRows) => (\n                    <Table<BrokerTeamShortT, void>\n                        testSelector=\"broker-teams\"\n                        className={className}\n                        columns={columns}\n                        rows={rows}\n                        getRowMods={getRowMods}\n                        onSelectRow={handleSelectRow}\n                        isLoading={isLoading}\n                        isUsedPrevRows={isUsedPrevRows}\n                    />\n                )}\n            </MemoizedTable>\n        </div>\n    );\n});\n\nexport default BrokerTeamsTable;\n","import requestStatus from 'common/utils/request-status';\nimport {\n    FETCH_DRIVERS_REQUEST_BEGIN,\n    FETCH_DRIVERS_REQUEST_ERROR,\n    FETCH_DRIVERS_REQUEST_SUCCESS,\n    DriverSearchActionT,\n    DriverSearchStateT,\n} from './types';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\nimport keyBy from 'lodash/keyBy';\nimport { checkIsSameQuery } from 'common/utils/pagination/utils';\n\nconst initialState: DriverSearchStateT = {\n    request: requestStatus.initial,\n    query: null,\n    allIds: [],\n    byId: {},\n};\n\nexport default (state = initialState, action: DriverSearchActionT | DestroySessionActionT): DriverSearchStateT => {\n    switch (action.type) {\n        case FETCH_DRIVERS_REQUEST_BEGIN: {\n            const { query } = action;\n            return {\n                ...state,\n                query,\n                request: requestStatus.loading,\n            };\n        }\n        case FETCH_DRIVERS_REQUEST_SUCCESS: {\n            const { drivers, query } = action;\n\n            if (!checkIsSameQuery(state.query, query)) {\n                return state;\n            }\n\n            const allIds = drivers.map((driver) => driver.id);\n            const byId = keyBy(drivers, 'id');\n\n            return {\n                ...state,\n                allIds,\n                byId,\n                request: requestStatus.ok,\n            };\n        }\n        case FETCH_DRIVERS_REQUEST_ERROR: {\n            const { error, query } = action;\n\n            if (!checkIsSameQuery(state.query, query)) {\n                return state;\n            }\n\n            return {\n                ...state,\n                request: requestStatus.setError(error),\n            };\n        }\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n        default:\n            return state;\n    }\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"location\":\"TransportOrderRouteMap__location___dOQ20\",\"fadeIn\":\"TransportOrderRouteMap__fadeIn___C0bpQ\",\"blinking\":\"TransportOrderRouteMap__blinking___n0OqQ\"};","export const ALL_BROKER_USERS_VALUE = 'broker-users' as const;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './TrailerDetailsForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport { fetchTrailersDict } from 'common/store/trailers-dict/actions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectTrailersDict, selectTrailersDictById } from 'common/store/trailers-dict/selectors';\nimport { AssetTypeEnum, CurrencyEnum, StyleGuideColorsEnum, TrailerTypeEnum, UnitTypeEnum } from 'common/constants';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport DictTrailerDropdown from 'common/components/dropdowns/DictTrailerDropdown/DictTrailerDropdown';\nimport TrailerTypeSwitcher from 'common/components/TrailerTypeSwitcher/TrailerTypeSwitcher';\nimport validateForm from './validate-form';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { uppercaseFormatter } from 'common/utils/form-formatters';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport CountryDropdown from 'common/components/dropdowns/CountryDropdown/CountryDropdown';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport Input from 'common/components/Input/Input';\nimport ActiveContractDropdown from 'common/components/dropdowns/ActiveContractDropdown/ActiveContractDropdown';\nimport NumberInput from 'common/components/NumberInput/NumberInput';\nimport { ApiTrailerDetailsT } from 'common/store/trailers/models';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport GPSTrackingStatusAlert from 'common/components/GPSTrackingStatusAlert/GPSTrackingStatusAlert';\nimport LastGPSPositionAlert from 'common/components/LastGPSPositionAlert/LastGPSPositionAlert';\nimport { GPStatusEnum } from 'common/store/gps-tracking-status/constants';\nimport { selectGPSIsChecking, selectGPSStatus } from 'common/store/gps-tracking-status/selectors';\nimport TrailerIcon from 'common/icons/TrailerIcon';\nimport { selectCarrierContractById } from 'common/store/carrier-contracts/selectors';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { usePlateNumberUniqCheck } from 'common/components/AssetSidebarContent/hooks/usePlateNumberUniqCheck';\nimport useOnceShow from 'common/utils/hooks/useOnceShow';\nimport TrailerType from 'common/layouts/CommonEditableTrailerDetailsLayout/TrailerType/TrailerType';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport values from 'lodash/values';\nimport LinkedTruckAlert from 'common/layouts/CommonEditableTrailerDetailsLayout/LinkedTruckAlert/LinkedTruckAlert';\nimport { TooltipPositionEnum } from 'design-system/components/Tooltip/Tooltip';\nimport { ApiTrailerTypeT, CountryCodeT, TrailerStatusEnum } from 'common/utils/api/models';\nimport { AlertGroup } from 'common/layouts/AlertGroup/AlertGroup';\nimport ChangeRateOrContractWarning from '../ChangeRateOrContractWarning/ChangeRateOrContractWarning';\nimport TrailerActionHistory from '../../TrailerActionHistory/TrailerActionHistory';\nimport { checkIsApiCarrierTrailerDetails } from 'common/store/trailers/type-guards';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport { selectCountriesByCode } from 'common/store/countries-dict/selectors';\nimport isNumber from 'lodash/isNumber';\nimport Money from 'common/components/Money/Money';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\nimport InfoIcon from 'common/icons/InfoIcon';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    partnerId: PartnerIdT;\n    onSubmit: (values: FormValuesT) => void;\n    isNewTrailer: boolean;\n    isLoading: boolean;\n    trailerDetails: ApiTrailerDetailsT | null;\n    onCancel: () => void;\n    setNeedCloseConfirmation?: (needCloseConfirmation: boolean) => void;\n    onOpenTruckDetails: (truckId: TruckIdT) => void;\n    onOpenTrailerDetails: (trailerId: TrailerIdT) => void;\n    onOpenUserDetails: (userId: UserIdT, isBrokerUser?: boolean) => void;\n};\n\nconst DEFAULT_TRAILERS_DICT = {\n    [TrailerTypeEnum.tilt]: [],\n    [TrailerTypeEnum.box]: [],\n};\n\nconst INITIAL_VALUES: FormValuesT = {\n    [FieldsEnum.trailerType]: TrailerTypeEnum.tilt,\n    [FieldsEnum.trailerDictId]: null,\n    [FieldsEnum.countryCode]: null,\n    [FieldsEnum.plateNumber]: '',\n    [FieldsEnum.vin]: '',\n    [FieldsEnum.contract]: null,\n    [FieldsEnum.ratePerKm]: '',\n};\n\nconst ALL_FIELDS = values(FieldsEnum);\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(ALL_FIELDS);\n\nconst TrailerDetailsForm: React.FC<PropsT> = (props) => {\n    const {\n        partnerId,\n        onSubmit,\n        isNewTrailer,\n        trailerDetails,\n        isLoading,\n        onCancel,\n        setNeedCloseConfirmation,\n        onOpenTrailerDetails,\n        onOpenTruckDetails,\n        onOpenUserDetails,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const trailersDictById = useSelector(selectTrailersDictById);\n    const trailersDict = useSelector(selectTrailersDict);\n\n    const countryByCode = useSelector(selectCountriesByCode);\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchTrailersDict());\n    }, [dispatch]);\n\n    React.useEffect(() => {\n        return () => {\n            if (setNeedCloseConfirmation) {\n                setNeedCloseConfirmation(false);\n            }\n        };\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values, { isCreation: isNewTrailer });\n    }, [t, isNewTrailer]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        let values = {\n            ...INITIAL_VALUES,\n        };\n\n        if (trailerDetails && trailersDictById) {\n            values = {\n                ...values,\n                [FieldsEnum.trailerType]: trailerDetails.dictTrailerInfo?.trailerType || values[FieldsEnum.trailerType],\n                [FieldsEnum.trailerDictId]: String(trailerDetails.dictTrailerInfo?.id),\n                [FieldsEnum.countryCode]: trailerDetails.countryCode || null,\n                [FieldsEnum.vin]: trailerDetails.vin || '',\n                [FieldsEnum.plateNumber]: trailerDetails.plateNumber || '',\n                [FieldsEnum.contract]: trailerDetails.contractId || null,\n                [FieldsEnum.ratePerKm]: String(trailerDetails.ratePerKm),\n            };\n        }\n\n        const errors = validateForm(t, values, { isCreation: isNewTrailer });\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [trailerDetails, trailersDictById, isNewTrailer]);\n\n    const formik = useFormik<FormValuesT>({\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            onSubmit(values);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n\n    React.useEffect(() => {\n        if (hasAnyFieldValueChanges && setNeedCloseConfirmation) {\n            setNeedCloseConfirmation(hasAnyFieldValueChanges);\n        }\n    }, [setNeedCloseConfirmation, hasAnyFieldValueChanges]);\n\n    const isCheckingGPSTracking = useSelector(selectGPSIsChecking);\n    const gpsStatus = useSelector(selectGPSStatus);\n\n    const isAllowContract = gpsStatus === GPStatusEnum.enabled || !gpsStatus;\n\n    const selectedTrailerType = formik.values[FieldsEnum.trailerType];\n\n    const availableTrailersTypes = React.useMemo(() => {\n        return Object.keys(trailersDict || DEFAULT_TRAILERS_DICT) as Array<TrailerTypeEnum>;\n    }, [trailersDict]);\n\n    const handleChangeTrailerTypeValue = React.useCallback(\n        (field: string, value: ApiTrailerTypeT): void => {\n            formik.setFieldValue(FieldsEnum.trailerType, value);\n            formik.setFieldValue(FieldsEnum.trailerDictId, null);\n        },\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        [dispatch, formik],\n    );\n\n    const contractById = useSelector(selectCarrierContractById(partnerId));\n    const selectedContractId = formik.values[FieldsEnum.contract];\n    const contract = contractById[selectedContractId as string] || null;\n\n    const contractRatePerKm =\n        formik.values[FieldsEnum.trailerType] === TrailerTypeEnum.box ? contract?.boxRateKm : contract?.tiltRateKm;\n\n    const isAvailableChangeContract = isAllowContract || isCheckingGPSTracking;\n    const isAvailableChangeRate = formik.values[FieldsEnum.contract] === null;\n\n    const contractValue = formik.values[FieldsEnum.contract];\n    React.useEffect(() => {\n        if (!isAllowContract && contractValue !== null) {\n            formik.setFieldValue(FieldsEnum.contract, null);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isAllowContract, contractValue]);\n\n    const trailerDictModel = trailerDetails?.dictTrailerInfo || null;\n\n    const trailerTypeLabel = trailerDictModel\n        ? t(`common:trailers-page.add-trailer.fields.trailer.${trailerDictModel?.trailerType}.label`)\n        : '';\n\n    const plateNumber = formik.values[FieldsEnum.plateNumber];\n    const trailerPlateNumberUniqCheck = usePlateNumberUniqCheck({\n        plateNumber,\n        companyId: partnerId,\n        assetType: AssetTypeEnum.trailer,\n    });\n\n    let plateNumberAsyncError: React.ReactNode = null;\n\n    const duplicateTrailerId = trailerPlateNumberUniqCheck.duplicateId;\n    if (duplicateTrailerId) {\n        plateNumberAsyncError = t('common:form-errors.already-exist');\n    }\n\n    const isRateContract = initialValues[FieldsEnum.ratePerKm] !== formik.values[FieldsEnum.ratePerKm];\n    const isContractChanged = initialValues[FieldsEnum.contract] !== formik.values[FieldsEnum.contract];\n    const isRateOrContractChanged = isRateContract || isContractChanged;\n    const isAvailableRateOrContractWarning = !isNewTrailer;\n    const rateOrContractWarning = useOnceShow(isRateOrContractChanged);\n\n    const hasAsyncErrors = !!plateNumberAsyncError;\n\n    const isSubmitLoading = isLoading || isCheckingGPSTracking;\n\n    const isAllowShowChanges = !isNewTrailer;\n\n    const contractTooltipNode = (\n        <TooltipContent theme={TooltipContentThemeEnum.black} width={200}>\n            {t('common:trailers-page.add-trailer.fields.contract.tooltip')}\n        </TooltipContent>\n    );\n\n    const linkedTruckAlertNode = trailerDetails?.linkedTruckId ? (\n        <LinkedTruckAlert\n            plateNumber={trailerDetails?.linkedTruckPlateNumber}\n            truckId={trailerDetails.linkedTruckId}\n            onOpenTruckDetails={onOpenTruckDetails}\n        />\n    ) : null;\n\n    const duplicatedTrailerAlertNode = duplicateTrailerId ? (\n        <Alert\n            icon={<InfoIcon fillColor={StyleGuideColorsEnum.white} />}\n            size={AlertSizeEnum.small}\n            theme={AlertThemeEnum.tomatoRed}\n            actionText={t('common:inline-alerts.actions.open')}\n            onClickAction={() => {\n                onOpenTrailerDetails(duplicateTrailerId);\n            }}\n        >\n            {t('common:trailers-page.add-trailer.alerts.trailer-already-exist')}\n        </Alert>\n    ) : null;\n\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <div className={cx('fields')}>\n                {isNewTrailer ? (\n                    <>\n                        <AlertGroup className={cx('alerts')}>{linkedTruckAlertNode}</AlertGroup>\n                        <div className={cx('field', 'field--trailer-type')}>\n                            <TrailerTypeSwitcher\n                                value={formik.values[FieldsEnum.trailerType]}\n                                name={FieldsEnum.trailerType}\n                                availableTypes={availableTrailersTypes}\n                                setFieldValue={handleChangeTrailerTypeValue}\n                            />\n                        </div>\n                        <FormikField\n                            name={FieldsEnum.trailerDictId}\n                            error={formik.errors[FieldsEnum.trailerDictId]}\n                            meta={formik.getFieldMeta(FieldsEnum.trailerDictId)}\n                            label={t(`common:trailers-page.add-trailer.fields.trailer.${selectedTrailerType}.label`)}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <DictTrailerDropdown\n                                    placeholder={t(\n                                        `common:trailers-page.add-trailer.fields.trailer.${selectedTrailerType}.placeholder`,\n                                    )}\n                                    selectedTrailerType={formik.values[FieldsEnum.trailerType]}\n                                    value={formik.values[FieldsEnum.trailerDictId]}\n                                    onChange={props.onChange}\n                                    hasWarning={props.hasWarning}\n                                    hasError={props.hasError}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasChanges={isAllowShowChanges && props.hasChanges}\n                                />\n                            )}\n                        </FormikField>\n                        <AlertGroup className={cx('alerts')}>\n                            {duplicatedTrailerAlertNode}\n                            {trailerDetails?.status !== TrailerStatusEnum.archived && (\n                                <GPSTrackingStatusAlert\n                                    companyId={partnerId}\n                                    assetType={AssetTypeEnum.trailer}\n                                    plateNumber={formik.values[FieldsEnum.plateNumber]}\n                                    className={cx('gps-tracking-status-alert')}\n                                />\n                            )}\n                        </AlertGroup>\n                        <FieldGroup>\n                            <FormikField\n                                className={cx('field', 'field--plate-number')}\n                                name={FieldsEnum.plateNumber}\n                                error={formik.errors[FieldsEnum.plateNumber]}\n                                meta={formik.getFieldMeta(FieldsEnum.plateNumber)}\n                                asyncError={plateNumberAsyncError}\n                                label={t('common:trailers-page.add-trailer.fields.plate-number.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <Input\n                                        name={FieldsEnum.plateNumber}\n                                        value={formik.values[FieldsEnum.plateNumber]}\n                                        placeholder={t(\n                                            'common:trailers-page.add-trailer.fields.plate-number.placeholder',\n                                        )}\n                                        formatter={uppercaseFormatter}\n                                        onChange={props.onChange}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                        isLoading={trailerPlateNumberUniqCheck.requestStatus.loading}\n                                    />\n                                )}\n                            </FormikField>\n                            <FormikField\n                                className={cx('field', 'field--vin')}\n                                name={FieldsEnum.vin}\n                                error={formik.errors[FieldsEnum.vin]}\n                                meta={formik.getFieldMeta(FieldsEnum.vin)}\n                                label={t('common:trailers-page.add-trailer.fields.trailer-vin.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) => (\n                                    <Input\n                                        name={FieldsEnum.vin}\n                                        value={formik.values[FieldsEnum.vin]}\n                                        placeholder={t(\n                                            'common:trailers-page.add-trailer.fields.trailer-vin.placeholder',\n                                        )}\n                                        onChange={props.onChange}\n                                        onBlur={props.onBlur}\n                                        onFocus={props.onFocus}\n                                        hasError={props.hasError}\n                                        hasWarning={props.hasWarning}\n                                        hasChanges={isAllowShowChanges && props.hasChanges}\n                                    />\n                                )}\n                            </FormikField>\n                        </FieldGroup>\n                    </>\n                ) : (\n                    <>\n                        <AlertGroup className={cx('alerts')}>\n                            {linkedTruckAlertNode}\n                            {duplicatedTrailerAlertNode}\n                            {trailerDetails?.status !== TrailerStatusEnum.archived && (\n                                <LastGPSPositionAlert\n                                    companyId={partnerId}\n                                    assetType={AssetTypeEnum.trailer}\n                                    plateNumber={trailerDetails?.plateNumber || ''}\n                                    className={cx('last-gps-position-alert')}\n                                    isDedicated={!!trailerDetails?.contractId}\n                                />\n                            )}\n                        </AlertGroup>\n                        <TrailerType className={cx('trailer-type')} trailerType={trailerDictModel?.trailerType} />\n                        <ReadOnlyField\n                            label={trailerTypeLabel}\n                            icon={\n                                <TrailerIcon\n                                    size={20}\n                                    fillColor={StyleGuideColorsEnum.brandAccent}\n                                    strokeColor={StyleGuideColorsEnum.brandDark}\n                                />\n                            }\n                            value={\n                                trailerDictModel\n                                    ? t('common:trailer-subtype-template', {\n                                          length: trailerDictModel.length,\n                                          model: trailerDictModel.model,\n                                          eur1Pallets: trailerDictModel.eur1Pallets,\n                                          eur2Pallets: trailerDictModel.eur2Pallets,\n                                      })\n                                    : ''\n                            }\n                        />\n                        <FieldGroup>\n                            <ReadOnlyField\n                                className={cx('field', 'field--plate-number')}\n                                label={t('common:trailers-page.add-trailer.fields.plate-number.label')}\n                                value={trailerDetails?.plateNumber || ''}\n                            />\n                            <ReadOnlyField\n                                className={cx('field', 'field--vin')}\n                                label={t('common:trailers-page.add-trailer.fields.trailer-vin.label')}\n                                value={trailerDetails?.vin}\n                            />\n                        </FieldGroup>\n                    </>\n                )}\n                {isNewTrailer ? (\n                    <FormikField\n                        className={cx('field', 'field--country')}\n                        name={FieldsEnum.countryCode}\n                        error={formik.errors[FieldsEnum.countryCode]}\n                        label={t('common:trailers-page.add-trailer.fields.country.label')}\n                        meta={formik.getFieldMeta(FieldsEnum.countryCode)}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <CountryDropdown\n                                value={formik.values[FieldsEnum.countryCode]}\n                                onChange={props.onChange}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasChanges={isAllowShowChanges && props.hasChanges}\n                            />\n                        )}\n                    </FormikField>\n                ) : (\n                    <ReadOnlyField\n                        className={cx('field', 'field--country')}\n                        icon={<FlagIcon countryCode={trailerDetails?.countryCode} />}\n                        label={t('common:trucks-page.add-truck.fields.country.label')}\n                        value={countryByCode?.[trailerDetails?.countryCode as CountryCodeT]?.userLangDisplayName}\n                    />\n                )}\n                <FieldGroup>\n                    {isAvailableChangeContract ? (\n                        <FormikField\n                            className={cx('field', 'field--contract')}\n                            name={FieldsEnum.contract}\n                            error={formik.errors[FieldsEnum.contract]}\n                            meta={formik.getFieldMeta(FieldsEnum.contract)}\n                            label={t('common:trailers-page.add-trailer.fields.contract.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                            tooltipPosition={TooltipPositionEnum.centerRight}\n                            tooltipNode={contractTooltipNode}\n                        >\n                            {(props) => (\n                                <ActiveContractDropdown\n                                    hasNoneOption\n                                    value={formik.values[FieldsEnum.contract]}\n                                    isDisabled={false}\n                                    onChange={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    companyId={partnerId}\n                                    hasChanges={isAllowShowChanges && props.hasChanges}\n                                />\n                            )}\n                        </FormikField>\n                    ) : (\n                        <ReadOnlyField\n                            withInputLayout\n                            className={cx('field', 'field--contract')}\n                            label={t('common:trailers-page.add-trailer.fields.contract.label')}\n                            tooltipPosition={TooltipPositionEnum.centerRight}\n                            tooltipNode={contractTooltipNode}\n                            value={t('common:dedicated.none')}\n                        />\n                    )}\n                    {isAvailableChangeRate ? (\n                        <FormikField\n                            className={cx('field', 'field--rate')}\n                            name={FieldsEnum.ratePerKm}\n                            error={formik.errors[FieldsEnum.ratePerKm]}\n                            meta={formik.getFieldMeta(FieldsEnum.ratePerKm)}\n                            label={t('common:trailers-page.add-trailer.fields.rate.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <NumberInput\n                                    name={FieldsEnum.ratePerKm}\n                                    unitType={UnitTypeEnum.euroAbbreviation}\n                                    placeholder={t('common:trailers-page.add-trailer.fields.rate.placeholder')}\n                                    value={formik.values[FieldsEnum.ratePerKm]}\n                                    onChange={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasError={props.hasError}\n                                    hasChanges={props.hasChanges}\n                                    step={1}\n                                />\n                            )}\n                        </FormikField>\n                    ) : (\n                        <ReadOnlyField\n                            withInputLayout\n                            className={cx('field--rate')}\n                            label={t('common:trucks-page.add-truck.fields.rate.label')}\n                            value={\n                                isNumber(contractRatePerKm) ? (\n                                    <Money amount={contractRatePerKm} currency={CurrencyEnum.EUR} />\n                                ) : null\n                            }\n                        />\n                    )}\n                </FieldGroup>\n            </div>\n            <TrailerActionHistory\n                onOpenUserDetails={onOpenUserDetails}\n                createdDate={trailerDetails?.createdDate}\n                createdByBroker={checkIsApiCarrierTrailerDetails(trailerDetails) && trailerDetails?.addedByBroker}\n                createdByName={trailerDetails?.createdBy?.fullName}\n                createdById={trailerDetails?.createdBy?.id}\n                modifiedDate={trailerDetails?.lastModifiedDate}\n                modifiedByBroker={\n                    checkIsApiCarrierTrailerDetails(trailerDetails) && trailerDetails?.lastModifiedByBroker\n                }\n                modifiedByName={trailerDetails?.lastModifiedBy?.fullName}\n                modifiedById={trailerDetails?.lastModifiedBy?.id}\n            />\n            <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n            <FooterSideBarLayout\n                hasPaddings\n                topNode={\n                    <>\n                        {isAvailableRateOrContractWarning && rateOrContractWarning.isShow ? (\n                            <ChangeRateOrContractWarning\n                                className={cx('footer-warning')}\n                                onClose={rateOrContractWarning.close}\n                            />\n                        ) : null}\n                    </>\n                }\n            >\n                {isNewTrailer && (\n                    <Button\n                        theme={ButtonThemeEnum.primary}\n                        isLoading={isSubmitLoading}\n                        isDisabled={hasAsyncErrors}\n                        isFullWidth\n                        isCenterContent\n                        type=\"submit\"\n                    >\n                        {t('common:trailers-page.add-trailer.submit')}\n                    </Button>\n                )}\n                {!isNewTrailer && (\n                    <div className={cx('actions')}>\n                        <Button\n                            theme={ButtonThemeEnum.secondary}\n                            className={cx('actions__action', 'actions__action--cancel')}\n                            onClick={() => {\n                                formik.resetForm();\n                                onCancel();\n                            }}\n                        >\n                            {t('common:trailers-page.actions.discard-changes')}\n                        </Button>\n                        <Button\n                            theme={ButtonThemeEnum.primary}\n                            isLoading={isSubmitLoading}\n                            isDisabled={hasAsyncErrors}\n                            className={cx('actions__action', 'actions__action--delete')}\n                            type=\"submit\"\n                        >\n                            {t('common:trailers-page.actions.save')}\n                        </Button>\n                    </div>\n                )}\n            </FooterSideBarLayout>\n        </form>\n    );\n};\nexport default TrailerDetailsForm;\n","import React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './TruckFiltersSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport DatePicker, { DatePickerOverlayPositionEnum } from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport getQueryFilters from './get-query-filters';\nimport getInitialValues from './get-initial-values';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport Input from 'common/components/Input/Input';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { isDeepEqual } from 'common/utils/deep-equal';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport { createJsonParams, createPageNumberParam, mergeQueryFilters } from 'common/utils/query';\nimport { CommonSidebarDataT, SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { TruckFiltersSidebarDataT } from 'common/layouts/SideBars/contents/TruckFiltersSidebarContent/models';\nimport { useQueryParams } from 'use-query-params';\nimport { QueryFiltersT, QueryKeysEnum } from 'common/layouts/TrucksPageLayout/query-models';\nimport { CarrierContractStatusEnum, TruckStatusEnum } from 'common/utils/api/models';\nimport TruckStatusMultipleDropdown from 'common/components/dropdowns/TruckStatusMultipleDropdown/TruckStatusMultipleDropdown';\nimport TruckModelMultipleDropdown from 'common/components/dropdowns/TruckModelMultipleDropdown/TruckModelMultipleDropdown';\nimport EmissionClassMultipleDropdown from 'common/components/dropdowns/EmissionClassMultipleDropdown/EmissionClassMultipleDropdown';\nimport ContractMultipleDropdown from 'common/components/dropdowns/ContractMultipleDropdown/ContractMultipleDropdown';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport CountryMultipleDropdown from 'common/components/dropdowns/CountryMultipleDropdown/CountryMultipleDropdown';\nimport UserMultipleDropdown from 'common/components/dropdowns/UserMultipleDropdown/UserMultipleDropdown';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport SelectedFilters from 'common/layouts/TrucksPageLayout/SelectedFilters/SelectedFilters';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = SidebarContentPropsT<TruckFiltersSidebarDataT, CommonSidebarDataT>;\n\nconst TRUCK_EXCLUDE_STATUSES: Array<TruckStatusEnum> = [TruckStatusEnum.archived];\n\nconst EXCLUDED_STATUSES_SET = new Set([\n    CarrierContractStatusEnum.waitingForApprove,\n    CarrierContractStatusEnum.rejected,\n]);\n\nconst TruckFiltersSidebarContent: React.FC<PropsT> = (props) => {\n    const { onClose } = props;\n    const { t } = useTranslation();\n\n    const { partnerId } = usePartnerContext();\n\n    const [query, changeQuery] = useQueryParams({\n        [QueryKeysEnum.trucksPage]: createPageNumberParam(),\n        [QueryKeysEnum.trucksFilters]: createJsonParams<QueryFiltersT>({}),\n    });\n    const queryFilters = query[QueryKeysEnum.trucksFilters];\n\n    const [initialQueryFilters, setInitialQueryFilters] = React.useState<QueryFiltersT>(queryFilters);\n\n    React.useEffect(() => {\n        setInitialQueryFilters(queryFilters);\n    }, [queryFilters]);\n\n    const initialValues = React.useMemo(() => getInitialValues(queryFilters), [queryFilters]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialValues,\n        onSubmit: (values, formikHelpers): void => {\n            const newQueryFilters = getQueryFilters(values);\n            const mergedQueryFilters = mergeQueryFilters(initialQueryFilters, newQueryFilters);\n\n            changeQuery({\n                [QueryKeysEnum.trucksPage]: 0,\n                [QueryKeysEnum.trucksFilters]: mergedQueryFilters,\n            });\n\n            formikHelpers.setTouched({});\n\n            if (onClose) {\n                onClose();\n            }\n        },\n    });\n\n    const isSameValues = React.useMemo(() => {\n        return isDeepEqual(initialValues, formik.values) && isDeepEqual(initialQueryFilters, queryFilters);\n    }, [initialValues, formik.values, initialQueryFilters, queryFilters]);\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('form')}>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent title={t('common:trucks-page.filters.title')} onClose={onClose} />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <FormikField\n                    className={cx('field', 'field--truck-model')}\n                    name={FieldsEnum.model}\n                    error={formik.errors[FieldsEnum.model]}\n                    meta={formik.getFieldMeta(FieldsEnum.model)}\n                    label={t('common:trucks-page.filters.fields.truck-model.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <TruckModelMultipleDropdown\n                            values={formik.values[FieldsEnum.model]}\n                            onChange={props.onChange}\n                            hasWarning={props.hasWarning}\n                            hasError={props.hasError}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasClearControl\n                        />\n                    )}\n                </FormikField>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--plate-number')}\n                        name={FieldsEnum.plateNumber}\n                        error={formik.errors[FieldsEnum.plateNumber]}\n                        meta={formik.getFieldMeta(FieldsEnum.plateNumber)}\n                        label={t('common:trucks-page.filters.fields.plate-number.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <Input\n                                name={FieldsEnum.plateNumber}\n                                value={formik.values[FieldsEnum.plateNumber]}\n                                placeholder={t('common:trucks-page.filters.fields.plate-number.placeholder')}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--country')}\n                        name={FieldsEnum.country}\n                        error={formik.errors[FieldsEnum.country]}\n                        meta={formik.getFieldMeta(FieldsEnum.country)}\n                        label={t('common:trucks-page.filters.fields.country.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <CountryMultipleDropdown\n                                values={formik.values[FieldsEnum.country]}\n                                onChange={props.onChange}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--emission-class')}\n                        name={FieldsEnum.emissionClass}\n                        error={formik.errors[FieldsEnum.emissionClass]}\n                        meta={formik.getFieldMeta(FieldsEnum.emissionClass)}\n                        label={t('common:trucks-page.filters.fields.emission-class.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <EmissionClassMultipleDropdown\n                                values={formik.values[FieldsEnum.emissionClass]}\n                                onChange={props.onChange}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--status')}\n                        name={FieldsEnum.status}\n                        error={formik.errors[FieldsEnum.status]}\n                        meta={formik.getFieldMeta(FieldsEnum.status)}\n                        label={t('common:trucks-page.filters.fields.status.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <TruckStatusMultipleDropdown\n                                excludeStatuses={TRUCK_EXCLUDE_STATUSES}\n                                value={formik.values[FieldsEnum.status]}\n                                onChange={props.onChange}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--date')}\n                        name={FieldsEnum.lastTelematicUpdateDates}\n                        error={formik.errors[FieldsEnum.lastTelematicUpdateDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.lastTelematicUpdateDates)}\n                        label={t('common:trucks-page.filters.fields.telematic-update-dates.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                        tooltipNode={\n                            <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                {t('common:trucks-page.filters.fields.telematic-update-dates.tooltip')}\n                            </TooltipContent>\n                        }\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.lastTelematicUpdateDates]}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--contract')}\n                        name={FieldsEnum.contractId}\n                        error={formik.errors[FieldsEnum.contractId]}\n                        meta={formik.getFieldMeta(FieldsEnum.contractId)}\n                        label={t('common:trucks-page.filters.fields.contract.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                        tooltipNode={\n                            <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                {t('common:trucks-page.filters.fields.contract.tooltip')}\n                            </TooltipContent>\n                        }\n                    >\n                        {(props) => (\n                            <ContractMultipleDropdown\n                                hasNoneOption\n                                values={formik.values[FieldsEnum.contractId]}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                                onChange={(values, labels) => {\n                                    props.onChange(values);\n                                    formik.setFieldValue(FieldsEnum.contractName, labels);\n                                }}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                companyId={partnerId}\n                                hasClearControl\n                                excludedStatusesSet={EXCLUDED_STATUSES_SET}\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--date')}\n                        name={FieldsEnum.createDates}\n                        error={formik.errors[FieldsEnum.createDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.createDates)}\n                        label={t('common:trucks-page.filters.fields.creation-dates.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.createDates]}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--user')}\n                        name={FieldsEnum.createdByUserId}\n                        error={formik.errors[FieldsEnum.createdByUserId]}\n                        meta={formik.getFieldMeta(FieldsEnum.createdByUserId)}\n                        label={t('common:trucks-page.filters.fields.creation-user.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <UserMultipleDropdown\n                                companyId={partnerId}\n                                initialValues={formik.values[FieldsEnum.createdByUserId]}\n                                initialLabels={formik.values[FieldsEnum.createdByUserName]}\n                                values={formik.values[FieldsEnum.createdByUserId]}\n                                onSelect={(userIds, userNames) => {\n                                    props.onChange(userIds);\n                                    formik.setFieldValue(FieldsEnum.createdByUserName, userNames);\n                                }}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasClearControl\n                                isShowAllBrokerUsersOption\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--date')}\n                        name={FieldsEnum.lastModifyDates}\n                        error={formik.errors[FieldsEnum.lastModifyDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.lastModifyDates)}\n                        label={t('common:trucks-page.filters.fields.last-modify-dates.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.lastModifyDates]}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--user')}\n                        name={FieldsEnum.lastModifyByUserId}\n                        error={formik.errors[FieldsEnum.lastModifyByUserId]}\n                        meta={formik.getFieldMeta(FieldsEnum.lastModifyByUserId)}\n                        label={t('common:trucks-page.filters.fields.last-modify-user.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <UserMultipleDropdown\n                                companyId={partnerId}\n                                initialValues={formik.values[FieldsEnum.lastModifyByUserId]}\n                                initialLabels={formik.values[FieldsEnum.lastModifyByUserName]}\n                                values={formik.values[FieldsEnum.lastModifyByUserId]}\n                                onSelect={(userId, userNames) => {\n                                    props.onChange(userId);\n                                    formik.setFieldValue(FieldsEnum.lastModifyByUserName, userNames);\n                                }}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasClearControl\n                                isShowAllBrokerUsersOption\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n            </SideBarLayout>\n            <FooterSideBarLayout hasPaddings>\n                <div className={cx('selected-filters')}>\n                    <SelectedFilters queryFilters={initialQueryFilters} setQueryFilters={setInitialQueryFilters} />\n                </div>\n                <Button\n                    theme={ButtonThemeEnum.primary}\n                    isDisabled={isSameValues}\n                    isFullWidth\n                    isCenterContent\n                    type=\"submit\"\n                >\n                    {t('common:trucks-page.filters.submit')}\n                </Button>\n            </FooterSideBarLayout>\n        </form>\n    );\n};\n\nexport default TruckFiltersSidebarContent;\n","import React from 'react';\nimport { createPortal } from 'react-dom';\nimport classNames from 'classnames/bind';\n\nimport styles from './SideBar.scss';\nimport ContentRootContext from 'common/layouts/LeftMenuLayout/contexts/content-root-context';\nimport OutsideClickHandler from 'design-system/components/OutsideClickHandler/OutsideClickHandler';\nimport { isInsideFloatingUiPortal } from 'common/utils/floating-ui';\nimport SideBarLayoutContextWrap from '../SideBarLayout/SideBarLayoutContextWrap/SideBarLayoutContextWrap';\nimport { KeyEnum } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\nexport enum SideBarPositionEnum {\n    left = 'left',\n    right = 'right',\n}\n\ntype PropsT = {\n    isShow: boolean;\n    isWide?: boolean;\n    isNarrow?: boolean;\n    onClose: () => void;\n    children: (closeSidebar: () => void) => React.ReactNode;\n    position?: SideBarPositionEnum;\n};\n\nconst SideBar: React.FC<PropsT> = React.memo((props) => {\n    const { children, isShow, isNarrow, isWide, onClose } = props;\n\n    const position = props.position || SideBarPositionEnum.left;\n\n    const contentRootNode = React.useContext(ContentRootContext);\n\n    const onCloseRef = React.useRef<typeof onClose>(onClose);\n    onCloseRef.current = onClose;\n\n    React.useEffect(() => {\n        const handleKeyDown = (event: KeyboardEvent): void => {\n            if (event.key === KeyEnum.escape) {\n                onCloseRef.current();\n            }\n        };\n\n        document.addEventListener('keydown', handleKeyDown);\n\n        return () => {\n            document.removeEventListener('keydown', handleKeyDown);\n        };\n    }, []);\n\n    const handleClose = React.useCallback(\n        (event: any) => {\n            if (position === SideBarPositionEnum.left) {\n                const navigationNode = document.querySelector('div[data-dismiss=\"navigation\"]');\n                if (navigationNode?.contains(event.target)) {\n                    return;\n                }\n\n                const alertToastsManagerNode = document.querySelector('div[data-dismiss=\"alert-toasts-manager\"]');\n                if (alertToastsManagerNode?.contains(event.target)) {\n                    return;\n                }\n            }\n\n            if (isInsideFloatingUiPortal(event.target)) {\n                return;\n            }\n\n            onClose();\n        },\n        [position, onClose],\n    );\n\n    if (!contentRootNode) {\n        return null;\n    }\n\n    return createPortal(\n        <OutsideClickHandler onOutsideClick={handleClose} isDisabled={!isShow}>\n            <div\n                className={cx('side-bar', {\n                    'side-bar--isShow': isShow,\n                    'side-bar--isNarrow': isNarrow,\n                    'side-bar--isWide': isWide,\n                    [`side-bar--position-${position}`]: true,\n                })}\n            >\n                <div className={cx('content')}>\n                    <SideBarLayoutContextWrap>{isShow ? children(onClose) : null}</SideBarLayoutContextWrap>\n                </div>\n            </div>\n        </OutsideClickHandler>,\n        contentRootNode,\n    );\n});\n\nexport default SideBar;\n","// extracted by mini-css-extract-plugin\nexport default {\"status\":\"AddressWidgetHeaderActions__status___Zuc7S\",\"copy\":\"AddressWidgetHeaderActions__copy___vKocc\",\"fadeIn\":\"AddressWidgetHeaderActions__fadeIn___JRRvN\",\"blinking\":\"AddressWidgetHeaderActions__blinking___EUXiT\"};","// extracted by mini-css-extract-plugin\nexport default {\"asset-tooltip\":\"AssetPickUpLocationPin__asset-tooltip_____vPM\",\"fadeIn\":\"AssetPickUpLocationPin__fadeIn___koZ3E\",\"blinking\":\"AssetPickUpLocationPin__blinking___mf1eu\"};","import {\n    AsyncRequestFactoryT,\n    useAsyncInitOptionsRequest,\n} from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-init-options-request';\nimport { useCallback } from 'react';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { TranziitApiResultT } from 'common/utils/api/tranziit/base-tranziit-api';\nimport {\n    BrokerPartnersSuggestOptionT,\n    BrokerPartnersSuggestValueT,\n} from 'broker-admin/components/dropdowns/BrokerPartnersSuggest/BrokerPartnersSuggest';\nimport { isNonNil } from 'common/utils';\n\nexport const useInitBrokerPartnersSuggestOptions = (partnerIds: Array<BrokerPartnersSuggestValueT> | null) => {\n    const initRequestFactory: AsyncRequestFactoryT<BrokerPartnersSuggestOptionT> = useCallback(async () => {\n        if (!partnerIds?.length) {\n            return [null, null];\n        }\n\n        const promises = partnerIds.filter(isNonNil).map((partnerId) => {\n            return brokerTranziitApi.fetchPartnerDetails(partnerId);\n        });\n\n        const results = await Promise.all(promises);\n\n        const resultOptions =\n            results?.reduce<Array<BrokerPartnersSuggestOptionT>>((acc, [, data]) => {\n                const id = data?.id || null;\n                if (!id || !data) {\n                    return acc;\n                }\n\n                // convert entity\n                acc.push({\n                    ...data,\n                    id,\n                });\n\n                return acc;\n            }, []) || [];\n\n        const result: TranziitApiResultT<Array<BrokerPartnersSuggestOptionT>> = [null, resultOptions];\n\n        return result;\n    }, [partnerIds]);\n\n    const { initOptions, initRequestStatus, onUpdateInitOptions } =\n        useAsyncInitOptionsRequest<BrokerPartnersSuggestOptionT>({\n            initRequestFactory,\n        });\n\n    return {\n        initOptions,\n        initRequestStatus,\n        onUpdateInitOptions,\n    };\n};\n","import { put, takeEvery } from 'redux-saga/effects';\nimport { changeRFQBegin, changeRFQError, changeRFQSuccess } from './actions';\nimport { CLOSE_RFQ, CloseRFQActionT } from './types';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAlertTypeEnum, CommonAnyAlert } from 'common/components/toasts/AlertToastsManager/models';\nimport { rfqsRefreshChannel } from 'common/store/rfqs/channels';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\n\nfunction* closeRFQSaga(action: CloseRFQActionT): WrapGeneratorT<void> {\n    const { id } = action;\n\n    yield put(changeRFQBegin(id));\n\n    const [error]: ReturnApiT<typeof commonTranziitApi.closeRFQ> = yield commonTranziitApi.closeRFQ(id);\n    if (error) {\n        yield put(changeRFQError(id, error));\n        return;\n    }\n\n    yield put(changeRFQSuccess(id));\n\n    yield put(\n        addAlert(\n            new CommonAnyAlert({\n                type: CommonAlertTypeEnum.rfqSuccessfulClosed,\n                data: {},\n            }),\n        ),\n    );\n\n    rfqsRefreshChannel.emit({});\n}\n\nfunction* rfqsChangesSaga(): WrapGeneratorT<void> {\n    yield takeEvery([CLOSE_RFQ], closeRFQSaga);\n}\n\nexport default rfqsChangesSaga;\n","import * as React from 'react';\nimport TourStatusPill from 'common/components/status-pill/TourStatusPill/TourStatusPill';\nimport { BrokerTourShortT } from 'broker-admin/store/broker-tours/models';\n\ntype PropsT = {\n    brokerTourShort?: BrokerTourShortT | null;\n};\n\nconst StatusCell: React.FC<PropsT> = React.memo(({ brokerTourShort }) => {\n    return <TourStatusPill status={brokerTourShort?.status} isSymmetrical />;\n});\n\nexport default StatusCell;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './AssignOptionLabel.scss';\nimport HollowCircleIcon from 'common/icons/HollowCircleIcon';\nimport getUtilizationColor from 'common/utils/get-utilization-color';\nimport { useTranslation } from 'react-i18next';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport isNil from 'lodash/isNil';\nimport AssetLinkIcon from 'common/icons/AssetLinkIcon';\nimport Link, { LinkSizeEnum, LinkThemeEnum } from 'common/components/Link/Link';\nimport { AssetAssignmentInfoT } from 'common/utils/assignment';\nimport { ApiTruckRateModeT, TruckRateModeEnum } from 'common/utils/api/models';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    assetId: string;\n    model?: string;\n    plateNumber?: string;\n    price?: string;\n    rateMode: ApiTruckRateModeT | null;\n    assetUtilizationPercent: number | null | undefined;\n    isAssetUtilizationLoading: boolean;\n    carrierUtilizationPercent: number | null;\n    isCarrierUtilizationLoading: boolean;\n    isInvalid?: boolean;\n    linkedAsset: AssetAssignmentInfoT | null;\n    onSelectLink: (assetId: AssetIdT) => void;\n    onCloseOverlay?: () => void;\n};\n\nconst rateModeI18nMap: Record<ApiTruckRateModeT, string> = {\n    [TruckRateModeEnum.brutto]: 'assignment.rate-mode.brutto',\n    [TruckRateModeEnum.netto]: 'assignment.rate-mode.netto',\n};\n\nconst AssignOptionLabel: React.FC<PropsT> = React.memo((props) => {\n    const {\n        assetId,\n        model,\n        plateNumber,\n        price,\n        rateMode,\n        assetUtilizationPercent,\n        isAssetUtilizationLoading,\n        carrierUtilizationPercent,\n        isCarrierUtilizationLoading,\n        isInvalid,\n        linkedAsset,\n        onSelectLink,\n        onCloseOverlay,\n    } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <div\n            className={cx('option', {\n                'option--is-invalid': !!isInvalid,\n            })}\n        >\n            <div className={cx('asset')}>\n                <div className={cx('asset-column')}>\n                    <div className={cx('model-and-plate-number')}>\n                        {[plateNumber, model].filter(Boolean).join(' / ')}\n                    </div>\n                    <div className={cx('price')}>\n                        {price || ''}\n                        {!!rateMode && <span className={cx('rate-mode')}>({t(rateModeI18nMap[rateMode])})</span>}\n                    </div>\n                </div>\n                <div className={cx('asset-column')}>\n                    <div className={cx('utilization')}>\n                        {!isNil(assetUtilizationPercent) && (\n                            <>\n                                <HollowCircleIcon borderColor={getUtilizationColor(assetUtilizationPercent)} />\n                                <div className={cx('utilization__label')}>\n                                    {t('assignment.asset-utilization', { percent: assetUtilizationPercent })}\n                                </div>\n                            </>\n                        )}\n                        {isNil(assetUtilizationPercent) && isAssetUtilizationLoading && (\n                            <ControlLoaderIcon fillColor={StyleGuideColorsEnum.brandAccent} size={DEFAULT_ICON_SIZE} />\n                        )}\n                    </div>\n                    <div className={cx('utilization')}>\n                        {carrierUtilizationPercent !== null && (\n                            <>\n                                <HollowCircleIcon borderColor={getUtilizationColor(carrierUtilizationPercent)} />\n                                <div className={cx('utilization__label')}>\n                                    {t('assignment.carrier-utilization', { percent: carrierUtilizationPercent })}\n                                </div>\n                            </>\n                        )}\n                        {carrierUtilizationPercent === null && isCarrierUtilizationLoading && (\n                            <ControlLoaderIcon fillColor={StyleGuideColorsEnum.brandAccent} size={DEFAULT_ICON_SIZE} />\n                        )}\n                    </div>\n                </div>\n            </div>\n            {linkedAsset && (\n                <div className={cx('link')}>\n                    <div className={cx('link__inner')}>\n                        <AssetLinkIcon\n                            strokeColor={StyleGuideColorsEnum.orange}\n                            size={DEFAULT_ICON_SIZE}\n                            className={cx('link__icon')}\n                        />\n                        <div className={cx('link__text')}>\n                            {[linkedAsset.plateNumber, linkedAsset.model].filter(Boolean).join(' / ')}\n                        </div>\n                        <Link\n                            className={cx('link__trigger')}\n                            size={LinkSizeEnum.extraSmall}\n                            isUppercase\n                            onClick={(event) => {\n                                event.stopPropagation();\n\n                                onSelectLink(assetId);\n\n                                if (onCloseOverlay) {\n                                    onCloseOverlay();\n                                }\n                            }}\n                            theme={LinkThemeEnum.boldBrandDark}\n                        >\n                            {t('assignment.assign-full-train')}\n                        </Link>\n                        {!isNil(linkedAsset.utilization) && (\n                            <div className={cx('utilization')}>\n                                <HollowCircleIcon borderColor={getUtilizationColor(linkedAsset.utilization)} />\n                                <div className={cx('utilization__label')}>\n                                    {t('assignment.asset-utilization', { percent: linkedAsset.utilization })}\n                                </div>\n                            </div>\n                        )}\n                    </div>\n                </div>\n            )}\n        </div>\n    );\n});\n\nexport default AssignOptionLabel;\n","import {\n    FETCH_SPOT_REQUEST_DETAILS_REQUEST_BEGIN,\n    FETCH_SPOT_REQUEST_DETAILS_REQUEST_ERROR,\n    FETCH_SPOT_REQUEST_DETAILS_REQUEST_SUCCESS,\n    SpotRequestDetailsActionT,\n    SpotRequestDetailsByIdStateT,\n    SpotRequestDetailsStateT,\n    UPDATE_SPOT_REQUEST_REQUEST_BEGIN,\n    UPDATE_SPOT_REQUEST_REQUEST_ERROR,\n    UPDATE_SPOT_REQUEST_REQUEST_SUCCESS,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: SpotRequestDetailsByIdStateT = {};\n\nexport const initialSpotRequestDetailsState: SpotRequestDetailsStateT = {\n    details: null,\n    fetchDetailsRequestStatus: requestStatus.initial,\n    updateRequestStatus: requestStatus.initial,\n};\n\nexport default (\n    state = initialState,\n    action: SpotRequestDetailsActionT | DestroySessionActionT,\n): SpotRequestDetailsByIdStateT => {\n    switch (action.type) {\n        case FETCH_SPOT_REQUEST_DETAILS_REQUEST_BEGIN: {\n            const { id } = action;\n\n            const spotRequestDetailsState = state[id] || initialSpotRequestDetailsState;\n\n            return {\n                ...state,\n                [id]: {\n                    ...spotRequestDetailsState,\n                    fetchDetailsRequestStatus: requestStatus.loading,\n                },\n            };\n        }\n\n        case FETCH_SPOT_REQUEST_DETAILS_REQUEST_ERROR: {\n            const { error, id } = action;\n\n            const spotRequestDetailsState = state[id] || initialSpotRequestDetailsState;\n\n            return {\n                ...state,\n                [id]: {\n                    ...spotRequestDetailsState,\n                    fetchDetailsRequestStatus: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case FETCH_SPOT_REQUEST_DETAILS_REQUEST_SUCCESS: {\n            const { details, id } = action;\n\n            const spotRequestDetailsState = state[id] || initialSpotRequestDetailsState;\n\n            return {\n                ...state,\n                [id]: {\n                    ...spotRequestDetailsState,\n                    fetchDetailsRequestStatus: requestStatus.ok,\n                    details,\n                },\n            };\n        }\n\n        case UPDATE_SPOT_REQUEST_REQUEST_BEGIN: {\n            const { id } = action;\n\n            const spotRequestDetailsState = state[id] || initialSpotRequestDetailsState;\n\n            return {\n                ...state,\n                [id]: {\n                    ...spotRequestDetailsState,\n                    updateRequestStatus: requestStatus.loading,\n                },\n            };\n        }\n\n        case UPDATE_SPOT_REQUEST_REQUEST_ERROR: {\n            const { error, id } = action;\n\n            const spotRequestDetailsState = state[id] || initialSpotRequestDetailsState;\n\n            return {\n                ...state,\n                [id]: {\n                    ...spotRequestDetailsState,\n                    updateRequestStatus: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case UPDATE_SPOT_REQUEST_REQUEST_SUCCESS: {\n            const { id } = action;\n\n            const spotRequestDetailsState = state[id] || initialSpotRequestDetailsState;\n\n            return {\n                ...state,\n                [id]: {\n                    ...spotRequestDetailsState,\n                    updateRequestStatus: requestStatus.ok,\n                },\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default: {\n            return state;\n        }\n    }\n};\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    borderColor: StyleGuideColorsEnum;\n    size?: number;\n    className?: string;\n};\n\nconst HollowCircleIcon: React.FC<PropsT> = (props) => {\n    const { borderColor, className } = props;\n\n    const size = props.size || DEFAULT_ICON_SIZE;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\" className={className}>\n            <path\n                fill={borderColor}\n                fillRule=\"evenodd\"\n                d=\"M10 13a3 3 0 100-6 3 3 0 000 6zm0 2a5 5 0 11.001-10.001A5 5 0 0110 15z\"\n            />\n        </svg>\n    );\n};\n\nHollowCircleIcon.displayName = 'HollowCircleIcon';\n\nconst storyProps: PropsT = {\n    borderColor: StyleGuideColorsEnum.charcoal,\n};\n\nexport { storyProps };\nexport default HollowCircleIcon;\n","import {\n    FETCH_CARRIER_CONTRACT_DETAILS_REQUEST,\n    FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_BEGIN,\n    FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_ERROR,\n    FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_SUCCESS,\n    FetchCarrierContractDetailsActionT,\n    FetchCarrierContractDetailsBeginActionT,\n    FetchCarrierContractDetailsErrorActionT,\n    FetchCarrierContractDetailsSuccessActionT,\n} from './types';\nimport { PartnerContractDetailsT } from './models';\n\nexport const fetchCarrierContractDetails = (\n    partnerId: PartnerIdT,\n    contractId: CarrierContractIdT,\n    options?: FetchOptionsT,\n): FetchCarrierContractDetailsActionT => ({\n    type: FETCH_CARRIER_CONTRACT_DETAILS_REQUEST,\n    partnerId,\n    contractId,\n    options,\n});\n\nexport const fetchCarrierContractDetailsBegin = (\n    contractId: CarrierContractIdT,\n): FetchCarrierContractDetailsBeginActionT => ({\n    type: FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_BEGIN,\n    contractId,\n});\n\nexport const fetchCarrierContractDetailsSuccess = (\n    contractId: CarrierContractIdT,\n    contractDetails: PartnerContractDetailsT | null,\n): FetchCarrierContractDetailsSuccessActionT => ({\n    type: FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_SUCCESS,\n    contractId,\n    contractDetails,\n});\n\nexport const fetchCarrierContractDetailsError = (\n    contractId: CarrierContractIdT,\n    error: Error,\n): FetchCarrierContractDetailsErrorActionT => ({\n    type: FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_ERROR,\n    error,\n    contractId,\n});\n","// extracted by mini-css-extract-plugin\nexport default {\"alert\":\"AlertToastsManager__alert___CgblJ\",\"fadeIn\":\"AlertToastsManager__fadeIn___b6AuF\",\"blinking\":\"AlertToastsManager__blinking___AmuKy\"};","/** Portal container node created by `FloatingPortal` from `@floating-ui/react`. */\nexport const FLOATING_UI_PORTAL_SELECTOR = '[data-floating-ui-portal]' as const;\n\nexport function isInsideFloatingUiPortal(node: EventTarget | null): boolean {\n    return node instanceof Element && !!node.closest(FLOATING_UI_PORTAL_SELECTOR);\n}\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './DateLinkTrigger.scss';\nimport LinkButton, { LinkButtonHeightEnum, LinkButtonThemeEnum } from 'common/components/LinkButton/LinkButton';\nimport { CalendarDateRangeValueT, CalendarDateValueT } from 'design-system/components/Calendar/Calendar';\nimport { formatDate } from 'common/utils/time';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype BasePropsT = {\n    isDisabled?: boolean;\n    placeholder?: React.ReactNode;\n    dateFormat?: string;\n    onClick?: () => void;\n    className?: string;\n    leftIcon?: React.ReactNode;\n    rightIcon?: React.ReactNode;\n};\n\nexport type DateLinkTriggerPropsT = {\n    isRange?: false;\n    value: CalendarDateValueT;\n};\n\nexport type DateLinkTriggerRangePropsT = {\n    isRange: true;\n    value: CalendarDateRangeValueT;\n};\n\nexport type DateInputPropsT = (BasePropsT & DateLinkTriggerPropsT) | (BasePropsT & DateLinkTriggerRangePropsT);\n\nconst DATES_SEPARATOR = ' - ';\n\nconst formatDateValue = (value: CalendarDateValueT, format: string): string | null => {\n    return formatDate(format, value);\n};\n\nconst formatDateRangeValue = (value: CalendarDateRangeValueT, format: string): string | null => {\n    const startDate = formatDate(format, value?.from);\n    const endDate = formatDate(format, value?.to);\n\n    if (!startDate && !endDate) {\n        return '';\n    }\n\n    return [startDate || '', startDate ? DATES_SEPARATOR : '', endDate || ''].join('');\n};\n\nconst checkIsEmptyDateValue = (value: CalendarDateValueT): boolean => {\n    return !value;\n};\n\nconst checkIsEmptyDateRangeValue = (value: CalendarDateRangeValueT): boolean => {\n    return !value?.from && !value?.to;\n};\n\nconst DEFAULT_DATE_FORMAT = 'DD MMM YYYY';\nconst DEFAULT_PLACEHOLDER = ' - ';\n\n/* eslint-disable react/destructuring-assignment */\nconst DateLinkTrigger: React.FC<DateInputPropsT> = (props) => {\n    const { className, onClick, placeholder, leftIcon, rightIcon, isDisabled } = props;\n\n    const dateFormat = props.dateFormat || DEFAULT_DATE_FORMAT;\n\n    const isEmpty = props.isRange ? checkIsEmptyDateRangeValue(props.value) : checkIsEmptyDateValue(props.value);\n    const formattedValue = props.isRange\n        ? formatDateRangeValue(props.value, dateFormat)\n        : formatDateValue(props.value, dateFormat);\n\n    const label = isEmpty ? placeholder || DEFAULT_PLACEHOLDER : formattedValue;\n\n    return (\n        <LinkButton\n            isDisabled={isDisabled}\n            className={className}\n            leftIcon={leftIcon}\n            rightIcon={rightIcon}\n            theme={LinkButtonThemeEnum.brandDark}\n            height={LinkButtonHeightEnum.narrow}\n            onClick={onClick}\n        >\n            {label}\n        </LinkButton>\n    );\n};\n\nexport default DateLinkTrigger;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './NotificationCardFooter.scss';\nimport { formatDate } from 'common/utils/time';\nimport { ApiLogInitiatorTypeT, PartnerTypeEnum } from 'common/utils/api/models';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport FilledCircleIcon from 'common/icons/FilledCircleIcon';\nimport Link, { LinkSizeEnum, LinkThemeEnum } from 'common/components/Link/Link';\nimport { useOpenLeftSidebar } from 'common/layouts/SideBars/hooks';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { useSelector } from 'react-redux';\nimport { selectCurrentCompany } from 'common/store/company/selectors';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\n\nconst cx = classNames.bind(styles);\n\nconst DATE_FORMAT = 'DD MMM YYYY, HH:mm';\n\nexport type NotificationCardFooterPropsT = {\n    className?: string;\n    initiatorType?: ApiLogInitiatorTypeT;\n    userFullName?: React.ReactNode;\n    userId?: UserIdT | null;\n    timestamp: string;\n};\n\nconst NotificationCardFooter: React.FC<NotificationCardFooterPropsT> = React.memo((props) => {\n    const { className, initiatorType, userFullName, timestamp, userId } = props;\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const formattedDate = formatDate(DATE_FORMAT, timestamp);\n\n    const company = useSelector(selectCurrentCompany);\n    const companyId = company?.id || null;\n\n    const { partnerType } = usePartnerContext();\n\n    return (\n        <div className={cs(cx('footer'), className)}>\n            {initiatorType === 'USER' && (\n                <>\n                    {userId ? (\n                        <Link\n                            onClick={(event) => {\n                                event.stopPropagation();\n\n                                if (partnerType === PartnerTypeEnum.carrier && companyId) {\n                                    openLeftSidebar({\n                                        type: CommonSidebarsTypeEnum.contact,\n                                        userId,\n                                        partnerType: PartnerTypeEnum.carrier,\n                                        partnerId: companyId,\n                                    });\n                                } else if (partnerType === PartnerTypeEnum.shipper && companyId) {\n                                    openLeftSidebar({\n                                        type: CommonSidebarsTypeEnum.contact,\n                                        userId,\n                                        partnerType: PartnerTypeEnum.shipper,\n                                        partnerId: companyId,\n                                    });\n                                } else if (partnerType === PartnerTypeEnum.broker) {\n                                    openLeftSidebar({\n                                        type: CommonSidebarsTypeEnum.contact,\n                                        userId,\n                                    });\n                                }\n                            }}\n                            theme={LinkThemeEnum.boldBrandDark}\n                            size={LinkSizeEnum.small}\n                        >\n                            {userFullName}\n                        </Link>\n                    ) : (\n                        <span>{userFullName}</span>\n                    )}\n                    <FilledCircleIcon size={10} fillColor={StyleGuideColorsEnum.light} />\n                </>\n            )}\n            <span className={cx('date')}>{formattedDate}</span>\n        </div>\n    );\n});\n\nexport default NotificationCardFooter;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport Alert, { AlertSizeEnum, AlertThemeEnum } from 'common/components/Alert/Alert';\n\nimport SnowflakeIcon from 'common/icons/SnowflakeIcon';\n\nexport type PropsT = {\n    className?: string;\n    children?: React.ReactNode;\n};\n\nconst ViolationTemperatureAlert: React.FC<PropsT> = React.memo(({ className, children }) => {\n    return (\n        <Alert\n            icon={<SnowflakeIcon fillColor={StyleGuideColorsEnum.white} />}\n            size={AlertSizeEnum.small}\n            theme={AlertThemeEnum.tomatoRed}\n            className={className}\n        >\n            {children}\n        </Alert>\n    );\n});\n\nexport default ViolationTemperatureAlert;\n","import requestStatus from 'common/utils/request-status';\nimport {\n    CarrierSuggestActionT,\n    CarrierSuggestStateT,\n    FIND_CARRIERS_REQUEST_BEGIN,\n    FIND_CARRIERS_REQUEST_ERROR,\n    FIND_CARRIERS_REQUEST_SUCCESS,\n    RESET,\n} from './types';\nimport { PartnerT } from 'common/store/carrier-suggest/models';\nimport { isNonNil } from 'common/utils';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: CarrierSuggestStateT = {\n    query: null,\n    requestStatus: requestStatus.initial,\n    ids: [],\n    byId: {},\n};\n\nexport default (state = initialState, action: CarrierSuggestActionT | DestroySessionActionT): CarrierSuggestStateT => {\n    switch (action.type) {\n        case FIND_CARRIERS_REQUEST_BEGIN: {\n            const { query } = action;\n\n            return {\n                ...state,\n                query,\n                requestStatus: requestStatus.loading,\n            };\n        }\n\n        case FIND_CARRIERS_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                requestStatus: requestStatus.setError(error),\n            };\n        }\n\n        case FIND_CARRIERS_REQUEST_SUCCESS: {\n            const { partners } = action;\n\n            const byId = partners.reduce<Record<string, PartnerT>>((acc, partner) => {\n                if (!partner?.id) {\n                    return acc;\n                }\n\n                return {\n                    ...acc,\n                    [partner.id]: {\n                        ...partner,\n                    },\n                };\n            }, {});\n\n            const ids = partners.map((partner) => partner.id).filter(isNonNil);\n\n            return {\n                ...state,\n                requestStatus: requestStatus.ok,\n                ids,\n                byId,\n            };\n        }\n\n        case DESTROY_SESSION:\n        case RESET: {\n            return {\n                ...initialState,\n            };\n        }\n\n        default:\n            return state;\n    }\n};\n","import 'common/base';\n\nimport './locales/i18n';\n\nimport * as React from 'react';\nimport { render } from 'react-dom';\n\nimport App from './layouts/App/App';\n\nconst rootNode = document.getElementById('root');\n\nrender(<App />, rootNode);\n","import * as React from 'react';\nimport { ApiAttachPapersUnavailableReasonT } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    reason: ApiAttachPapersUnavailableReasonT | null;\n};\n\nexport const ATTACH_PAPERS_UNAVAILABLE_REASON_MAP_T: Record<ApiAttachPapersUnavailableReasonT, string> = {\n    TYPE_IS_TRAILER: 'common:papers-card.attach-papers-unavailable-reason.TYPE_IS_TRAILER',\n    TO_IS_DONE: 'common:papers-card.attach-papers-unavailable-reason.TO_IS_DONE',\n    TO_IS_CANCELED: 'common:papers-card.attach-papers-unavailable-reason.TO_IS_CANCELED',\n};\n\nconst AttachPapersUnavailableReasonLabel: React.FC<PropsT> = React.memo((props) => {\n    const { reason } = props;\n    const { t } = useTranslation();\n\n    if (!reason) {\n        return null;\n    }\n\n    return <span>{t(ATTACH_PAPERS_UNAVAILABLE_REASON_MAP_T[reason])}</span>;\n});\n\nexport default AttachPapersUnavailableReasonLabel;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    strokeColor: StyleGuideColorsEnum;\n    fillColor: StyleGuideColorsEnum;\n};\n\nconst OptionsIcon: React.FC<PropsT> = (props) => {\n    const { strokeColor, fillColor, ...restProps } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} {...restProps}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M0 0h20v20H0z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M15 5h3.333v9.167H15V5zM5.833 15.833h8.334v-12.5H5.833v12.5zM7.5 5h5v9.167h-5V5zM1.667 5H5v9.167H1.667V5z\"\n                />\n                <path fill={fillColor} d=\"M7.5 5h5v9.167h-5z\" />\n            </g>\n        </svg>\n    );\n};\n\nOptionsIcon.displayName = 'OptionsIcon';\n\nconst storyProps: PropsT = {\n    strokeColor: StyleGuideColorsEnum.slate,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n};\n\nexport { storyProps };\nexport default OptionsIcon;\n","import { SharableStateT } from 'common/store/models';\nimport { initialRoutingGeometryState } from './slice';\nimport { RoutingGeometrySliceT } from './types';\n\nexport const selectRoutingGeometryState =\n    (polylineId: PolylineIdT | null | undefined) =>\n    (state: SharableStateT): RoutingGeometrySliceT => {\n        if (!polylineId) {\n            return initialRoutingGeometryState;\n        }\n\n        return state.routingGeometry[polylineId] || initialRoutingGeometryState;\n    };\n\nexport const selectRoutingGeometryStates =\n    (polylineIds: Array<PolylineIdT>) =>\n    (state: SharableStateT): Array<RoutingGeometrySliceT> => {\n        return polylineIds.map((polylineId) => {\n            if (!polylineId) {\n                return initialRoutingGeometryState;\n            }\n\n            return state.routingGeometry[polylineId] || initialRoutingGeometryState;\n        });\n    };\n","import { ApiSystemSettingsT } from 'common/utils/api/models';\nimport { ApiSpotSystemSettingsT } from 'broker-admin/utils/api/spot-broker-tranziit/models';\n\nexport type SystemSettingsT = ApiSystemSettingsT & ApiSpotSystemSettingsT;\n\nexport type SystemSettingsChangesT = Partial<SystemSettingsT>;\n\nexport enum ServiceFeeTypeEnum {\n    percent = 'false',\n    fixed = 'true',\n}\n\nexport enum PricingTypeEnum {\n    rateMatrix = 'RATE_MATRIX',\n    mlBased = 'ML_BASED',\n    combined = 'COMBINED',\n}\n\nexport enum AssigmentTypeEnum {\n    basic = 'BASIC',\n}\n\nexport enum BooleanSettingValueEnum {\n    true = 'true',\n    false = 'false',\n}\n","import {\n    APPROVE_CARRIER_CONTRACT_REQUEST,\n    ApproveCarrierContractActionT,\n    DOWNLOAD_CARRIER_CONTRACT_REQUEST,\n    DOWNLOAD_CARRIER_CONTRACT_REQUEST_BEGIN,\n    DOWNLOAD_CARRIER_CONTRACT_REQUEST_ERROR,\n    DOWNLOAD_CARRIER_CONTRACT_REQUEST_SUCCESS,\n    DownloadCarrierContractActionT,\n    DownloadCarrierContractBeginActionT,\n    DownloadCarrierContractErrorActionT,\n    DownloadCarrierContractSuccessActionT,\n    FETCH_CARRIER_CONTRACTS_REQUEST,\n    FETCH_CARRIER_CONTRACTS_REQUEST_BEGIN,\n    FETCH_CARRIER_CONTRACTS_REQUEST_ERROR,\n    FETCH_CARRIER_CONTRACTS_REQUEST_SUCCESS,\n    FetchCarrierContractsActionT,\n    FetchCarrierContractsBeginActionT,\n    FetchCarrierContractsErrorActionT,\n    FetchCarrierContractsSuccessActionT,\n    REJECT_CARRIER_CONTRACT_REQUEST,\n    RejectCarrierContractActionT,\n    REVOKE_CARRIER_CONTRACT_REQUEST,\n    RevokeCarrierContractActionT,\n    UPDATE_CARRIER_CONTRACT_REQUEST,\n    UPDATE_CARRIER_CONTRACT_REQUEST_BEGIN,\n    UPDATE_CARRIER_CONTRACT_REQUEST_ERROR,\n    UPDATE_CARRIER_CONTRACT_REQUEST_SUCCESS,\n    UpdateCarrierContractActionT,\n    UpdateCarrierContractBeginActionT,\n    UpdateCarrierContractErrorActionT,\n    UpdateCarrierContractSuccessActionT,\n    UPLOAD_CARRIER_CONTRACT_REQUEST,\n    UPLOAD_CARRIER_CONTRACT_REQUEST_BEGIN,\n    UPLOAD_CARRIER_CONTRACT_REQUEST_ERROR,\n    UPLOAD_CARRIER_CONTRACT_REQUEST_SUCCESS,\n    UploadCarrierContractActionT,\n    UploadCarrierContractBeginActionT,\n    UploadCarrierContractErrorActionT,\n    UploadCarrierContractSuccessActionT,\n} from './types';\nimport { ContractDetailsChangesT, PartnerContractT } from './models';\nimport { ApiRevokePartnerContractInfoT } from 'common/utils/api/models';\n\nexport const fetchCarrierContracts = (\n    partnerId: PartnerIdT,\n    options?: FetchOptionsT,\n): FetchCarrierContractsActionT => ({\n    type: FETCH_CARRIER_CONTRACTS_REQUEST,\n    partnerId,\n    options,\n});\n\nexport const fetchCarrierContractsBegin = (partnerId: PartnerIdT): FetchCarrierContractsBeginActionT => ({\n    type: FETCH_CARRIER_CONTRACTS_REQUEST_BEGIN,\n    partnerId,\n});\n\nexport const fetchCarrierContractsSuccess = (\n    partnerId: PartnerIdT,\n    partnerContracts: Array<PartnerContractT>,\n): FetchCarrierContractsSuccessActionT => ({\n    type: FETCH_CARRIER_CONTRACTS_REQUEST_SUCCESS,\n    partnerId,\n    partnerContracts,\n});\n\nexport const fetchCarrierContractsError = (partnerId: PartnerIdT, error: Error): FetchCarrierContractsErrorActionT => ({\n    type: FETCH_CARRIER_CONTRACTS_REQUEST_ERROR,\n    error,\n    partnerId,\n});\n\nexport const revokeCarrierContract = ({\n    partnerId,\n    contractId,\n    revokeInfo,\n}: {\n    partnerId: PartnerIdT;\n    contractId: CarrierContractIdT;\n    revokeInfo: ApiRevokePartnerContractInfoT;\n}): RevokeCarrierContractActionT => ({\n    type: REVOKE_CARRIER_CONTRACT_REQUEST,\n    revokeInfo,\n    contractId,\n    partnerId,\n});\n\nexport const approveCarrierContract = ({\n    partnerId,\n    contractId,\n    contractChanges,\n}: {\n    partnerId: PartnerIdT;\n    contractId: CarrierContractIdT;\n    contractChanges: ContractDetailsChangesT;\n}): ApproveCarrierContractActionT => ({\n    type: APPROVE_CARRIER_CONTRACT_REQUEST,\n    partnerId,\n    contractId,\n    contractChanges,\n});\n\nexport const rejectCarrierContract = ({\n    partnerId,\n    contractId,\n    reason,\n}: {\n    partnerId: PartnerIdT;\n    contractId: CarrierContractIdT;\n    reason: string;\n}): RejectCarrierContractActionT => ({\n    type: REJECT_CARRIER_CONTRACT_REQUEST,\n    reason,\n    contractId,\n    partnerId,\n});\n\nexport const updateCarrierContract = ({\n    partnerId,\n    contractId,\n    contractChanges,\n}: {\n    partnerId: PartnerIdT;\n    contractId: CarrierContractIdT;\n    contractChanges: ContractDetailsChangesT;\n}): UpdateCarrierContractActionT => ({\n    type: UPDATE_CARRIER_CONTRACT_REQUEST,\n    contractChanges,\n    contractId,\n    partnerId,\n});\n\nexport const updateCarrierContractBegin = (\n    partnerId: PartnerIdT,\n    updatingContractId: CarrierContractIdT | null,\n): UpdateCarrierContractBeginActionT => ({\n    type: UPDATE_CARRIER_CONTRACT_REQUEST_BEGIN,\n    partnerId,\n    updatingContractId,\n});\n\nexport const updateCarrierContractSuccess = (partnerId: PartnerIdT): UpdateCarrierContractSuccessActionT => ({\n    type: UPDATE_CARRIER_CONTRACT_REQUEST_SUCCESS,\n    partnerId,\n});\n\nexport const updateCarrierContractError = (partnerId: PartnerIdT, error: Error): UpdateCarrierContractErrorActionT => ({\n    type: UPDATE_CARRIER_CONTRACT_REQUEST_ERROR,\n    error,\n    partnerId,\n});\n\nexport const uploadCarrierContract = (partnerId: PartnerIdT, file: File): UploadCarrierContractActionT => ({\n    type: UPLOAD_CARRIER_CONTRACT_REQUEST,\n    file,\n    partnerId,\n});\n\nexport const uploadCarrierContractBegin = (partnerId: PartnerIdT): UploadCarrierContractBeginActionT => ({\n    type: UPLOAD_CARRIER_CONTRACT_REQUEST_BEGIN,\n    partnerId,\n});\n\nexport const uploadCarrierContractSuccess = (partnerId: PartnerIdT): UploadCarrierContractSuccessActionT => ({\n    type: UPLOAD_CARRIER_CONTRACT_REQUEST_SUCCESS,\n    partnerId,\n});\n\nexport const uploadCarrierContractError = (error: Error, partnerId: PartnerIdT): UploadCarrierContractErrorActionT => ({\n    type: UPLOAD_CARRIER_CONTRACT_REQUEST_ERROR,\n    error,\n    partnerId,\n});\n\nexport const downloadCarrierContract = (\n    contractId: CarrierContractIdT,\n    partnerId: PartnerIdT,\n): DownloadCarrierContractActionT => ({\n    type: DOWNLOAD_CARRIER_CONTRACT_REQUEST,\n    contractId,\n    partnerId,\n});\n\nexport const downloadCarrierContractBegin = (partnerId: PartnerIdT): DownloadCarrierContractBeginActionT => ({\n    type: DOWNLOAD_CARRIER_CONTRACT_REQUEST_BEGIN,\n    partnerId,\n});\n\nexport const downloadCarrierContractSuccess = (partnerId: PartnerIdT): DownloadCarrierContractSuccessActionT => ({\n    type: DOWNLOAD_CARRIER_CONTRACT_REQUEST_SUCCESS,\n    partnerId,\n});\n\nexport const downloadCarrierContractError = (\n    error: Error,\n    partnerId: PartnerIdT,\n): DownloadCarrierContractErrorActionT => ({\n    type: DOWNLOAD_CARRIER_CONTRACT_REQUEST_ERROR,\n    error,\n    partnerId,\n});\n","import { TFunction } from 'i18next';\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkNotEmpty } from 'common/utils/form-validators';\n\nconst validate = (\n    t: TFunction,\n    values: FormValuesT,\n    { isShowExpirationDate }: { isShowExpirationDate: boolean },\n): FormErrorsT => {\n    let errors: FormErrorsT = {};\n\n    if (isShowExpirationDate) {\n        errors = {\n            ...errors,\n            ...checkNotEmpty(t, [FieldsEnum.expiration], values),\n        };\n    }\n\n    return errors;\n};\n\nexport default validate;\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\nimport { BrokerOrderDetailsRefreshChannelEventT } from './models';\n\nexport const brokerOrderDetailsRefreshChannel = new ViewEventChannel<BrokerOrderDetailsRefreshChannelEventT>();\n","import * as React from 'react';\n\ntype PropsT = {\n    children: React.ReactNode;\n    className?: string;\n};\n\nconst NotificationVerticalRow: React.FC<PropsT> = React.memo((props) => {\n    const { children, className } = props;\n\n    return <div className={className}>{children}</div>;\n});\n\nexport default NotificationVerticalRow;\n","import React from 'react';\n\nimport moment from 'moment';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './TwinDatePicker.scss';\n/* eslint-disable import/no-unresolved */\nimport Calendar, { CalendarDateRangeValuePropsT } from 'design-system/components/Calendar/Calendar';\nimport ArrowsIcon from 'common/icons/ArrowsIcon';\nimport DateInputTrigger from 'design-system/components/date-pickers/internals/DateInputTrigger/DateInputTrigger';\nimport DatePickerOverlay, { DatePickerOverlayPositionEnum } from '../internals/DatePickerOverlay/DatePickerOverlay';\nimport useTestSelector from 'common/utils/hooks/useTestSelector';\n\nconst cx = classNames.bind(styles);\n\nexport type IconMetaT = {\n    isLoading: boolean;\n    isDisabled: boolean;\n    isFocused: boolean;\n    hasError: boolean;\n    hasWarning: boolean;\n    hasSuccess: boolean;\n    isHighlighted: boolean;\n    hasValue: boolean;\n};\n\nexport type TwinDateBasePropsT = {\n    name?: string;\n    placeholder?: string;\n    isDisabled?: boolean;\n    minDate?: string;\n    maxDate?: string;\n    overlayPosition?: DatePickerOverlayPositionEnum;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    hasYearMonthForm?: boolean;\n    autoComplete?: string;\n    testSelectorPrefix?: string;\n    hasChanges?: boolean;\n    onBlur?: () => void;\n    onFocus?: () => void;\n    inputClassName?: string;\n    className?: string;\n    renderLeftIcon?: (iconMeta: IconMetaT) => React.ReactNode;\n    hasClearControl?: boolean;\n    isTransparent?: boolean;\n};\n\nexport type TwinDatePickerPropsT = TwinDateBasePropsT & {\n    value: CalendarDateRangeValuePropsT['value'];\n    initialValue?: CalendarDateRangeValuePropsT['initialValue'];\n    // eslint-disable-next-line react/no-unused-prop-types\n    focusInitialDate?: CalendarDateRangeValuePropsT['focusInitialDate'];\n    onChange: CalendarDateRangeValuePropsT['onChange'];\n};\n\nconst ISO_DATE_FORMAT = 'YYYY-MM-DD';\n\nconst ENTER_KEY = 'Enter';\n\nconst formatMinMaxDate = (date: Date | null | undefined): string | undefined => {\n    if (!date) {\n        return undefined;\n    }\n\n    return moment(date).format(ISO_DATE_FORMAT);\n};\n\nconst getMonthDate = (monthOffset: number): Date => {\n    const date = new Date();\n\n    date.setMonth(date.getMonth() + monthOffset);\n\n    return date;\n};\n\n/* eslint-disable react/destructuring-assignment */\nconst TwinDatePicker: React.FC<TwinDatePickerPropsT> = (props) => {\n    const {\n        name,\n        value,\n        placeholder,\n        onFocus,\n        onBlur,\n        isDisabled,\n        minDate,\n        maxDate,\n        overlayPosition,\n        hasError,\n        hasWarning,\n        hasYearMonthForm,\n        hasChanges,\n        autoComplete,\n        testSelectorPrefix,\n        inputClassName,\n        className,\n        renderLeftIcon,\n        hasClearControl,\n        isTransparent,\n    } = props;\n\n    const [isOpen, toggleOpen] = React.useState(false);\n    const triggerRef = React.useRef<HTMLDivElement>(null);\n\n    const handleFromDateRangeChange: CalendarDateRangeValuePropsT['onChange'] = (selectedRange, selectedDate) => {\n        const range = selectedRange;\n        // TODO check UX experience\n        // selectedDate ? {\n        //     to: props.value?.to,\n        //     from: selectedDate,\n        // } : selectedRange;\n\n        props.onChange(range, selectedDate);\n    };\n\n    const handleToDateRangeChange: CalendarDateRangeValuePropsT['onChange'] = (selectedRange, selectedDate) => {\n        const range = selectedRange;\n        // TODO check UX experience\n        // selectedDate ? {\n        //     from: props.value?.from,\n        //     to: selectedDate,\n        // } : selectedRange;\n\n        props.onChange(range, selectedDate);\n    };\n\n    const handleOpen = () => {\n        if (isDisabled) {\n            return;\n        }\n\n        toggleOpen(true);\n    };\n\n    const handleOuterEvent = () => {\n        toggleOpen(false);\n    };\n\n    const handleChangeInputValue: CalendarDateRangeValuePropsT['onChange'] = (value, selectedDate) => {\n        props.onChange(value, selectedDate);\n    };\n\n    const handleInputKeyUp = (event: React.KeyboardEvent<HTMLInputElement>) => {\n        if (event.key === ENTER_KEY) {\n            toggleOpen(false);\n        }\n    };\n\n    const testSelector = useTestSelector(testSelectorPrefix, 'twin-date-picker');\n\n    const focusDateFrom = props.value?.from || getMonthDate(0);\n    const focusDateTo = props.value?.to || getMonthDate(1);\n\n    return (\n        <div className={cs(cx('dropdown'), className)} data-test-selector={testSelector}>\n            <div className={cx('input')}>\n                <div className={cx('trigger')} ref={triggerRef} onClick={handleOpen}>\n                    <DateInputTrigger\n                        isRange\n                        value={value}\n                        className={inputClassName}\n                        name={name || 'datepicker'}\n                        minDate={minDate}\n                        maxDate={maxDate}\n                        placeholder={placeholder}\n                        onChange={handleChangeInputValue}\n                        hasError={hasError}\n                        onKeyUp={handleInputKeyUp}\n                        onFocus={onFocus}\n                        onBlur={onBlur}\n                        hasWarning={hasWarning}\n                        isDisabled={isDisabled}\n                        isForcedFocused={isOpen}\n                        hasChanges={hasChanges}\n                        autoComplete={autoComplete}\n                        renderLeftIcon={renderLeftIcon}\n                        renderRightIcon={() => <ArrowsIcon />}\n                        hasClearControl={hasClearControl}\n                        isTransparent={isTransparent}\n                    />\n                </div>\n                <DatePickerOverlay\n                    isOpen={isOpen}\n                    position={overlayPosition}\n                    referenceElement={triggerRef.current}\n                    onClose={handleOuterEvent}\n                    className={cx('overlay')}\n                >\n                    <Calendar\n                        className={cx('calendar')}\n                        minDate={minDate}\n                        maxDate={formatMinMaxDate(props.value?.to)}\n                        hasYearMonthForm={hasYearMonthForm}\n                        testSelectorPrefix=\"twin-date-picker_left\"\n                        isRange\n                        value={props.value}\n                        initialValue={props.initialValue}\n                        focusInitialDate={focusDateFrom}\n                        onChange={handleFromDateRangeChange}\n                    />\n                    <Calendar\n                        className={cx('calendar')}\n                        minDate={formatMinMaxDate(props.value?.from)}\n                        maxDate={maxDate}\n                        hasYearMonthForm={hasYearMonthForm}\n                        testSelectorPrefix=\"twin-date-picker_right\"\n                        isRange\n                        value={props.value}\n                        initialValue={props.initialValue}\n                        focusInitialDate={focusDateTo}\n                        onChange={handleToDateRangeChange}\n                    />\n                </DatePickerOverlay>\n            </div>\n        </div>\n    );\n};\n\nexport default TwinDatePicker;\nexport { DatePickerOverlayPositionEnum };\n","import React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PartnerTypeControl.scss';\n\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport NotificationLabel, {\n    NotificationLabelThemeEnum,\n} from 'common/components/notifications/NotificationLabel/NotificationLabel';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport DropdownControl, {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { useTranslation } from 'react-i18next';\nimport DropdownControlTriggerLabel from 'design-system/components/dropdowns/option/DropdownControlTriggerLabel/DropdownControlTriggerLabel';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport ArrowsIcon from 'common/icons/ArrowsIcon';\nimport { fetchPartnersStats } from 'broker-admin/store/partners-stats/actions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectPartnersStats, selectPartnersStatsRequest } from 'broker-admin/store/partners-stats/selectors';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { partnersRefreshChannel } from 'broker-admin/store/partners/channels';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype TypeT = PartnerTypeEnum | null;\n\ntype PropsT = {\n    selectedType: TypeT;\n    onSelect: (type: TypeT) => void;\n    className?: string;\n};\n\nconst PartnerTypeControl: React.FC<PropsT> = (props) => {\n    const { selectedType, onSelect, className } = props;\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchPartnersStats());\n    }, [dispatch]);\n\n    const refreshPageHandler = React.useCallback(() => {\n        dispatch(fetchPartnersStats({ isForceUpdate: true }));\n    }, [dispatch]);\n    useChannelSubscribe(partnersRefreshChannel, refreshPageHandler);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        dispatch(fetchPartnersStats({ isForceUpdate: false }));\n    }, [dispatch]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const partnersStats = useSelector(selectPartnersStats);\n    const partnersStatsRequest = useSelector(selectPartnersStatsRequest);\n\n    const allUpdateCount =\n        (partnersStats?.[PartnerTypeEnum.shipper]?.notVerifiedCount || 0) +\n        (partnersStats?.[PartnerTypeEnum.carrier]?.notVerifiedCount || 0) +\n        (partnersStats?.[PartnerTypeEnum.broker]?.notVerifiedCount || 0);\n\n    const shippersUpdateCount = partnersStats?.[PartnerTypeEnum.shipper]?.notVerifiedCount || null;\n    const carriersUpdateCount = partnersStats?.[PartnerTypeEnum.carrier]?.notVerifiedCount || null;\n\n    const { t } = useTranslation();\n\n    const renderNotificationIcon = (notificationsCount: number | null): React.ReactNode => {\n        if (!notificationsCount) {\n            return null;\n        }\n\n        if (partnersStatsRequest.loading) {\n            return <ControlLoaderIcon fillColor={StyleGuideColorsEnum.gray} size={DEFAULT_ICON_SIZE} />;\n        }\n\n        return (\n            <NotificationLabel isShowPlusSign count={notificationsCount} theme={NotificationLabelThemeEnum.charcoal} />\n        );\n    };\n    const renderOption = (title: string, notificationsCount: number | null): React.ReactElement | null => {\n        return <DropdownControlOptionLabel icon={renderNotificationIcon(notificationsCount)} label={title} />;\n    };\n\n    const options: Array<DropdownControlOptionT | SpecialOptionEnum> = [\n        {\n            label: renderOption(t('partner.filters.types.all'), allUpdateCount),\n            onSelect: () => onSelect(null),\n        },\n        SpecialOptionEnum.separator,\n        {\n            label: renderOption(t('partner.filters.types.shippers'), shippersUpdateCount),\n            onSelect: () => onSelect(PartnerTypeEnum.shipper),\n        },\n        {\n            label: renderOption(t('partner.filters.types.carrier'), carriersUpdateCount),\n            onSelect: () => onSelect(PartnerTypeEnum.carrier),\n        },\n    ];\n\n    let triggerNode: React.ReactNode = null;\n    if (selectedType === null) {\n        triggerNode = (\n            <DropdownControlTriggerLabel\n                icon={renderNotificationIcon(allUpdateCount)}\n                label={t('partner.filters.types.all')}\n            />\n        );\n    }\n\n    if (selectedType === PartnerTypeEnum.shipper) {\n        triggerNode = (\n            <DropdownControlTriggerLabel\n                icon={renderNotificationIcon(shippersUpdateCount)}\n                label={t('partner.filters.types.shippers')}\n            />\n        );\n    }\n\n    if (selectedType === PartnerTypeEnum.carrier) {\n        triggerNode = (\n            <DropdownControlTriggerLabel\n                icon={renderNotificationIcon(carriersUpdateCount)}\n                label={t('partner.filters.types.carrier')}\n            />\n        );\n    }\n\n    return (\n        <DropdownControl\n            className={className}\n            options={options}\n            renderTrigger={(isActive, onClick) => (\n                <TransparentTrigger\n                    label={triggerNode}\n                    isPressed={isActive}\n                    onClick={onClick}\n                    reflectionTheme={ReflectionThemeEnum.light}\n                    rightIcon={<ArrowsIcon />}\n                />\n            )}\n            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n        />\n    );\n};\n\nexport default PartnerTypeControl;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"CountyFlagsLabel__wrap___ZPNzs\",\"icon\":\"CountyFlagsLabel__icon___sLGlu\",\"label\":\"CountyFlagsLabel__label___XLz4L\",\"fadeIn\":\"CountyFlagsLabel__fadeIn___AWdGA\",\"blinking\":\"CountyFlagsLabel__blinking___HqTrM\"};","import React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './ContentLimiter.scss';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    children: React.ReactNode;\n    className?: string;\n};\n\nconst ContentLimiter: React.FC<PropsT> = React.memo((props) => {\n    const { children, className } = props;\n\n    return <div className={cs(cx('limiter'), className)}>{children}</div>;\n});\n\nexport default ContentLimiter;\n","import * as React from 'react';\n\ntype PropsT = {};\n\nconst MoreIcon: React.FC<PropsT> = () => {\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill=\"#3E3F42\"\n                    d=\"M5.5 8.5C4.675 8.5 4 9.175 4 10s.675 1.5 1.5 1.5S7 10.825 7 10s-.675-1.5-1.5-1.5zm9 0c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5S16 10.825 16 10s-.675-1.5-1.5-1.5zm-4.5 0c-.825 0-1.5.675-1.5 1.5s.675 1.5 1.5 1.5 1.5-.675 1.5-1.5-.675-1.5-1.5-1.5z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nMoreIcon.displayName = 'MoreIcon';\n\nconst storyProps: PropsT = {};\n\nexport { storyProps };\nexport default MoreIcon;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ReceivedCell.scss';\nimport { TransportOrderT } from 'common/store/transport-orders/models';\nimport HumanReadableDateCell from 'common/components/Table/cell-renderers/HumanReadableDateCell/HumanReadableDateCell';\nimport { clearDateTimezone } from 'common/utils/time';\n\ntype PropsT = {\n    order: TransportOrderT;\n};\n\nconst cx = classNames.bind(styles);\n\nconst ReceivedCell: React.FC<PropsT> = React.memo((props) => {\n    const { order } = props;\n\n    return (\n        <HumanReadableDateCell className={cx('wrap')} isBold isBigFont date={clearDateTimezone(order.receiveDate)} />\n    );\n});\n\nexport default ReceivedCell;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ManagementControl.scss';\nimport DropdownControl, {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { useTranslation } from 'react-i18next';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum, UNIT } from 'common/constants';\nimport { TransportOrderDetailsT } from 'common/store/transport-order-details/models';\nimport MoreIcon from 'common/icons/MoreIcon';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport EditIcon from 'common/icons/EditIcon';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { isNonNil } from 'common/utils';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    transportOrderDetails: TransportOrderDetailsT | null | undefined;\n    isShowAssignAssets: boolean;\n    isAllowAssignAssets: boolean;\n    onUnassignedAssets: () => void;\n    unassignAssetsUnavailableTooltipContent?: React.ReactNode | null;\n    onStartAssignAssets: () => void;\n    isShowAssignDrivers: boolean;\n    isAllowAssignDrivers: boolean;\n    onUnassignedDrivers: () => void;\n    onStartAssignDrivers: () => void;\n    overlayTooltipPosition?: TooltipPositionEnum;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    unassignDriverTooltipContent?: React.ReactNode | null;\n};\n\nconst ManagementControl: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        transportOrderDetails,\n        isShowAssignAssets,\n        isAllowAssignAssets,\n        onUnassignedAssets,\n        onStartAssignAssets,\n        isShowAssignDrivers,\n        isAllowAssignDrivers,\n        onUnassignedDrivers,\n        onStartAssignDrivers,\n        overlayTooltipPosition,\n        overlayPosition,\n        unassignDriverTooltipContent,\n        unassignAssetsUnavailableTooltipContent,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const isSpotOrder = !!transportOrderDetails?.spotInfo;\n\n    const disableChangeAssetsTooltipNode = (\n        <TooltipContent width={30 * UNIT} isCenter theme={TooltipContentThemeEnum.black}>\n            {t(\n                isSpotOrder\n                    ? 'common:transport-order-details.disabled-change-status-spot-order-tooltip'\n                    : 'common:transport-order-details.disabled-change-status-dedicated-order-tooltip',\n            )}\n        </TooltipContent>\n    );\n\n    const disableChangeDriverTooltipNode = (\n        <TooltipContent width={30 * UNIT} isCenter theme={TooltipContentThemeEnum.black}>\n            {t('common:transport-order-details.disabled-change-drivers-tooltip')}\n        </TooltipContent>\n    );\n\n    const managementOptions: Array<DropdownControlOptionT | SpecialOptionEnum | null> = [\n        isShowAssignAssets\n            ? {\n                  label: (\n                      <Tooltip\n                          position={overlayTooltipPosition || TooltipPositionEnum.centerLeft}\n                          theme={TooltipThemeEnum.black}\n                          tooltipNode={isAllowAssignAssets ? null : disableChangeAssetsTooltipNode}\n                      >\n                          {() => (\n                              <DropdownControlOptionLabel\n                                  isDisabled={!isAllowAssignAssets}\n                                  icon={\n                                      <EditIcon\n                                          size={DEFAULT_ICON_SIZE}\n                                          fillColor={StyleGuideColorsEnum.brandAccent}\n                                          strokeColor={StyleGuideColorsEnum.brandDark}\n                                      />\n                                  }\n                                  label={\n                                      <span className={cx('option')}>\n                                          {t('common:transport-order-details.actions.manage-assets')}\n                                      </span>\n                                  }\n                              />\n                          )}\n                      </Tooltip>\n                  ),\n                  onSelect: () => {\n                      if (isAllowAssignAssets) {\n                          onStartAssignAssets();\n                      }\n                  },\n              }\n            : null,\n        isShowAssignAssets\n            ? {\n                  label: (\n                      <Tooltip\n                          position={overlayTooltipPosition || TooltipPositionEnum.centerLeft}\n                          theme={TooltipThemeEnum.black}\n                          tooltipNode={\n                              (isAllowAssignAssets ? null : disableChangeAssetsTooltipNode) ||\n                              unassignAssetsUnavailableTooltipContent\n                          }\n                      >\n                          {() => (\n                              <DropdownControlOptionLabel\n                                  isDisabled={!isAllowAssignAssets || !!unassignAssetsUnavailableTooltipContent}\n                                  icon={<CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                                  label={\n                                      <span className={cx('option', 'option--clear')}>\n                                          {t('common:transport-order-details.actions.clear-assets')}\n                                      </span>\n                                  }\n                              />\n                          )}\n                      </Tooltip>\n                  ),\n                  isDisabled: !isAllowAssignAssets || !!unassignAssetsUnavailableTooltipContent,\n                  onSelect: () => {\n                      if (isAllowAssignAssets) {\n                          onUnassignedAssets();\n                      }\n                  },\n              }\n            : null,\n        isShowAssignAssets && isShowAssignDrivers ? SpecialOptionEnum.separator : null,\n        isShowAssignDrivers\n            ? {\n                  label: (\n                      <Tooltip\n                          position={overlayTooltipPosition || TooltipPositionEnum.centerLeft}\n                          theme={TooltipThemeEnum.black}\n                          tooltipNode={isAllowAssignDrivers ? null : disableChangeDriverTooltipNode}\n                      >\n                          {() => (\n                              <DropdownControlOptionLabel\n                                  isDisabled={!isAllowAssignDrivers}\n                                  icon={\n                                      <EditIcon\n                                          size={DEFAULT_ICON_SIZE}\n                                          fillColor={StyleGuideColorsEnum.brandAccent}\n                                          strokeColor={StyleGuideColorsEnum.brandDark}\n                                      />\n                                  }\n                                  label={\n                                      <span className={cx('option')}>\n                                          {t('common:transport-order-details.actions.manage-drivers', {\n                                              postProcess: 'interval',\n                                              count: transportOrderDetails?.drivers?.length || 0,\n                                          })}\n                                      </span>\n                                  }\n                              />\n                          )}\n                      </Tooltip>\n                  ),\n                  onSelect: () => {\n                      if (isAllowAssignDrivers) {\n                          onStartAssignDrivers();\n                      }\n                  },\n              }\n            : null,\n        isShowAssignDrivers\n            ? {\n                  label: (\n                      <Tooltip\n                          position={overlayTooltipPosition || TooltipPositionEnum.centerLeft}\n                          theme={TooltipThemeEnum.black}\n                          tooltipNode={\n                              isAllowAssignDrivers\n                                  ? null\n                                  : unassignDriverTooltipContent || disableChangeDriverTooltipNode\n                          }\n                      >\n                          {() => (\n                              <DropdownControlOptionLabel\n                                  isDisabled={!isAllowAssignDrivers}\n                                  icon={<CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                                  label={\n                                      <span className={cx('option', 'option--clear')}>\n                                          {t('common:transport-order-details.actions.clear-drivers', {\n                                              postProcess: 'interval',\n                                              count: transportOrderDetails?.drivers?.length || 0,\n                                          })}\n                                      </span>\n                                  }\n                              />\n                          )}\n                      </Tooltip>\n                  ),\n                  onSelect: () => {\n                      if (isAllowAssignDrivers) {\n                          onUnassignedDrivers();\n                      }\n                  },\n              }\n            : null,\n    ].filter(isNonNil);\n\n    if (!managementOptions?.length) {\n        return null;\n    }\n\n    return (\n        <DropdownControl\n            className={className}\n            options={managementOptions}\n            renderTrigger={(isActive, onClick) => (\n                <TransparentTrigger\n                    isPressed={isActive}\n                    onClick={onClick}\n                    leftIcon={<MoreIcon />}\n                    reflectionTheme={ReflectionThemeEnum.light}\n                />\n            )}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.topRight}\n        />\n    );\n});\n\nexport default ManagementControl;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { UpdateStopContactRequestT } from 'broker-admin/store/broker-order-edit/types';\nimport { parsePhoneNumber } from 'common/utils/input-parsers';\n\nexport const prepareQuery = (formValues: FormValuesT): UpdateStopContactRequestT => {\n    return {\n        fullName: formValues[FieldsEnum.fullName],\n        companyName: formValues[FieldsEnum.companyName] || undefined,\n        email: formValues[FieldsEnum.email] || undefined,\n        phone: parsePhoneNumber(formValues[FieldsEnum.phoneNumber]) || undefined,\n        comment: formValues[FieldsEnum.comments] || undefined,\n    };\n};\n","import { findTourById } from 'broker-admin/store/broker-order-details/utils/find-tour-by-id';\nimport isNumber from 'lodash/isNumber';\nimport { formatLocation } from 'common/utils/formatters';\nimport { BrokerOrderDetailsT } from 'broker-admin/store/broker-order-details/models';\nimport { InitDropPointT } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/models';\nimport { StopTypeEnum } from 'common/utils/api/models';\n\nexport const createInitPayloadDropPoint = (\n    brokerOrderDetails: BrokerOrderDetailsT | null,\n    tourId: TourIdT | null,\n): InitDropPointT | null => {\n    const tour = findTourById(brokerOrderDetails, tourId);\n    const waypoints = tour?.waypoints || [];\n\n    const payloadWaypoints =\n        waypoints?.filter((waypoint) => {\n            return (\n                waypoint.type === StopTypeEnum.dropAndHook ||\n                waypoint.type === StopTypeEnum.driveThrough ||\n                waypoint.type === StopTypeEnum.pickupDeliveryShipment\n            );\n        }) || [];\n\n    const lastPayloadWaypoint = payloadWaypoints[payloadWaypoints.length - 1] || null;\n\n    const waypoint = lastPayloadWaypoint || null;\n    if (!waypoint) {\n        return null;\n    }\n\n    const waypointAddress = waypoint?.address || null;\n    if (!waypointAddress) {\n        return null;\n    }\n\n    if (!isNumber(waypointAddress?.latitude) || !isNumber(waypointAddress?.longitude)) {\n        return null;\n    }\n\n    return {\n        location: {\n            address: formatLocation(waypointAddress),\n            utcOffsetMinutes: null,\n            addressComponents: {\n                countryCode: waypointAddress.country,\n                street1: waypointAddress?.street1,\n                street2: waypointAddress?.street2,\n                zipCode: waypointAddress?.zipCode,\n                city: waypointAddress?.city,\n            },\n            point: {\n                lat: waypointAddress.latitude || 0,\n                lng: waypointAddress.longitude || 0,\n            },\n        },\n        index: isNumber(waypoint?.index) ? waypoint?.index : null,\n    };\n};\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './NotificationLabel.scss';\n\nconst cx = classNames.bind(styles);\n\nexport enum NotificationLabelThemeEnum {\n    slate = 'slate',\n    charcoal = 'charcoal',\n    orange = 'orange',\n    green = 'green',\n    red = 'red',\n}\n\n// confluence entity\nexport const colorCodingNotificationLabelTheme = {\n    normal: NotificationLabelThemeEnum.slate,\n    attention: NotificationLabelThemeEnum.orange,\n    warning: NotificationLabelThemeEnum.red,\n    notImportant: NotificationLabelThemeEnum.charcoal,\n    success: NotificationLabelThemeEnum.green,\n    positive: NotificationLabelThemeEnum.green,\n    focus: NotificationLabelThemeEnum.charcoal,\n} as const;\n\nexport type NotificationPropsT = {\n    count?: number | null | undefined;\n    theme: NotificationLabelThemeEnum;\n    className?: string;\n    isShowPlusSign?: boolean;\n    isShowWarning?: boolean;\n};\n\nconst NotificationLabel: React.FC<NotificationPropsT> = React.memo((props) => {\n    const { count, className, theme, isShowPlusSign, isShowWarning } = props;\n\n    if (!count && !isShowWarning) {\n        return null;\n    }\n\n    return (\n        <div\n            className={cs(\n                cx('notification', {\n                    [`notification--theme-${theme}`]: true,\n                }),\n                className,\n            )}\n        >\n            {isShowWarning ? '!' : ''}\n            {isShowPlusSign ? '+' : ''}\n            {count}\n        </div>\n    );\n});\n\nexport default NotificationLabel;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst LinkPickUpIcon: React.FC<PropsT> = (props) => {\n    const { strokeColor } = props;\n\n    return (\n        <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\">\n            <path\n                fill={strokeColor}\n                d=\"M14.75 6.25c2.07 0 3.75 1.68 3.75 3.75 0 2.07-1.68 3.75-3.75 3.75h-3v-1.425h3A2.327 2.327 0 0 0 17.075 10a2.327 2.327 0 0 0-2.325-2.325h-3V6.25zm-.75 3v1.5h-3.001v-1.5H14zM2.552 8.194h1.192v3.75c0 .413.338.75.75.75h3c.413 0 .75-.337.75-.75v-3.75h1.193c.667 0 1.005-.81.532-1.282L6.527 3.469a.747.747 0 0 0-1.058 0L2.027 6.912c-.473.472-.143 1.282.525 1.282zm4.942 6.056c.41 0 .744.331.75.739v1.955c0 .413-.337.75-.75.75h-3a.752.752 0 0 1-.75-.75V15c0-.412.338-.75.75-.75h3z\"\n                fillRule=\"evenodd\"\n            />\n        </svg>\n    );\n};\n\nLinkPickUpIcon.displayName = 'LinkPickUpIcon';\n\nconst storyProps: PropsT = {\n    strokeColor: StyleGuideColorsEnum.brandAccent,\n};\n\n/**\n *  @deprecated create/use ...Props class\n * */\nexport const getLinkPickUpIconProps = (\n    preset:\n        | 'default'\n        | 'assignment-normal'\n        | 'assignment-selected'\n        | 'assignment-input-normal'\n        | 'assignment-input-selected',\n): PropsT => {\n    switch (preset) {\n        case 'assignment-normal': {\n            return {\n                strokeColor: StyleGuideColorsEnum.light,\n            };\n        }\n        case 'assignment-selected': {\n            return {\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        case 'assignment-input-normal': {\n            return {\n                strokeColor: StyleGuideColorsEnum.light,\n            };\n        }\n        case 'assignment-input-selected': {\n            return {\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        case 'default':\n        default: {\n            return {\n                strokeColor: StyleGuideColorsEnum.light,\n            };\n        }\n    }\n};\n\nexport { storyProps };\nexport default LinkPickUpIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"ApprovedDocumentCard__inner___qSYbs\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './Notification.scss';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    title: string;\n    message?: string;\n    testSelector?: string;\n};\n\nconst Notification: React.FC<PropsT> = React.memo((props) => {\n    const { title, message, testSelector } = props;\n    const [isClosed, setClosed] = React.useState(false);\n\n    if (isClosed) {\n        return null;\n    }\n\n    return (\n        <div className={cx('notification', 'content')}>\n            <div className={cx('content__left')}>\n                <div className={cx('inner')} data-test-selector={testSelector}>\n                    <div className={cx('title')}>{title}</div>\n                    {!!message && <p className={cx('message')}>{message}</p>}\n                </div>\n            </div>\n            <div className={cx('content__right')}>\n                <button\n                    className={cx('close')}\n                    data-dismiss=\"alert\"\n                    type=\"button\"\n                    data-test-selector={`${testSelector}-close`}\n                    onClick={(): void => {\n                        setClosed(true);\n                    }}\n                >\n                    <CloseIcon fillColor={StyleGuideColorsEnum.white} />\n                </button>\n            </div>\n        </div>\n    );\n});\n\nexport default Notification;\n","import React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport { AssetTypeEnum, StyleGuideColorsEnum } from 'common/constants';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { CancelUnavailableVehicleQueryT } from 'common/utils/api/models';\n\nexport type CancelServiceMaintanceConfirmationDataT = {\n    companyId: CompanyIdT;\n    assets: Array<{\n        plateNumber: string;\n    }>;\n    query: CancelUnavailableVehicleQueryT;\n};\n\ntype PropsT = {\n    assetType: `${AssetTypeEnum}`;\n    data: CancelServiceMaintanceConfirmationDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onConfirm: (data: CancelServiceMaintanceConfirmationDataT) => void;\n    requestStatus: RequestStatusT;\n};\n\nconst TEST_SELECTOR = 'cancel-service-maintance-confirmation';\n\nconst T_MAP: Record<AssetTypeEnum, { title: string; message: string }> = {\n    [AssetTypeEnum.truck]: {\n        title: 'common:trucks-page.cancel-service-maintance-confirmation.title',\n        message: 'common:trucks-page.cancel-service-maintance-confirmation.message',\n    },\n    [AssetTypeEnum.trailer]: {\n        title: 'common:trailers-page.cancel-service-maintance-confirmation.title',\n        message: 'common:trailers-page.cancel-service-maintance-confirmation.message',\n    },\n};\n\nconst CancelServiceMaintanceConfirmationModal: React.FC<PropsT> = React.memo((props) => {\n    const { data, onCancel, onClose, requestStatus, onConfirm, assetType } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    const { assets } = data;\n\n    const tSet = T_MAP[assetType];\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.keep'),\n                            theme: ButtonThemeEnum.secondary,\n                            isDisabled: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            onClick: () => {\n                                onCancel();\n                            },\n                        },\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.danger,\n                            isDisabled: requestStatus.loading,\n                            isLoading: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                    title={t(tSet.title)}\n                    message={t(tSet.message, {\n                        plateNumber: assets?.[0]?.plateNumber || '',\n                    })}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default CancelServiceMaintanceConfirmationModal;\n","export type SpotBidT = Api2.Definitions.BrokerBidFullDetails;\n\nexport type ApiSpotRequestT = SpotApi.Definitions.ApiFilterResult;\n\nexport type ApiSpotRequestStatusT = NonNullable<SpotApi.Definitions.ApiFilterResult['status']>;\nexport enum SpotRequestStatusEnum {\n    open = 'OPEN',\n    expired = 'EXPIRED',\n    accepted = 'ACCEPTED',\n    assigned = 'ASSIGNED',\n    canceled = 'CANCELED',\n}\n\nexport type ApiSpotRequestStatStatusT = NonNullable<SpotApi.Definitions.ApiSpotStatuses200ResponseInner['status']>;\nexport enum SpotRequestStatStatusEnum {\n    open = 'OPEN',\n    accepted = 'ACCEPTED',\n    expireSoon = 'EXPIRE_SOON',\n    newBids = 'NEW_BIDS',\n    assigned = 'ASSIGNED',\n    expired = 'EXPIRED',\n    canceled = 'CANCELED',\n    unknown = 'UNKNOWN',\n}\n\nexport type ApiSpotRequestsStatsT = Array<SpotApi.Definitions.ApiSpotStatuses200ResponseInner>;\n\nexport enum SpotRequestsSortEnum {\n    expirationTime = 'deadline',\n    placedTime = 'createdDate',\n    originTime = 'originTimeSlotFrom',\n    destinationTime = 'destinationTimeSlotFrom',\n}\n\nexport type ApiSpotRequestDetailsT = Api2.Definitions.BrokerSpotFullDetails;\nexport type ApiSpotStopT = Api2.Definitions.BrokerSpotStop;\nexport type ApiBrokerSpotShipmentT = Api2.Definitions.BrokerSpotShipment;\n\nexport type ApiSpotSettingsKeysT = SpotApi.Definitions.SettingDto['name'];\nexport type ApiSpotSystemSettingsT = Partial<Record<ApiSpotSettingsKeysT, string>>;\n","import { FetchTrucksPageQueryT } from 'common/store/trucks/models';\nimport { TabEnum } from './constants';\nimport { QueryFiltersKeysEnum, QueryFiltersT, TrucksSortEnum } from './query-models';\nimport { TruckStatusEnum } from 'common/utils/api/models';\nimport { PageSortT, SortDirectionEnum } from 'common/utils/query';\nimport { ALL_BROKER_USERS_VALUE } from 'common/components/dropdowns/UserMultipleDropdown/constants';\n\nconst formatSort = (sort: PageSortT<TrucksSortEnum> | null): FetchTrucksPageQueryT['sorts'] | undefined => {\n    switch (sort?.value) {\n        case TrucksSortEnum.createdDate: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'CREATED_DATE_ASC';\n            }\n            return 'CREATED_DATE_DESC';\n        }\n        case TrucksSortEnum.archiveDate: {\n            if (sort?.direction === SortDirectionEnum.ASC) {\n                return 'ARCHIVED_DATE_ASC';\n            }\n            return 'ARCHIVED_DATE_DESC';\n        }\n        default: {\n            return undefined;\n        }\n    }\n};\n\nconst prepareFetchPageQuery = (\n    queryFilters: QueryFiltersT,\n    sort: PageSortT<TrucksSortEnum> | null,\n    activeTab: TabEnum,\n): FetchTrucksPageQueryT => {\n    const statuses: TruckStatusEnum[] = [];\n    const status = queryFilters?.[QueryFiltersKeysEnum.status] as Array<TruckStatusEnum>;\n    if (status?.length) {\n        statuses.push(...status);\n    }\n\n    let emissionClasses;\n    if (queryFilters?.[QueryFiltersKeysEnum.emissionClass]) {\n        emissionClasses = queryFilters[QueryFiltersKeysEnum.emissionClass];\n    }\n\n    const lastModifiedByUsers = queryFilters[QueryFiltersKeysEnum.lastModifyByUserId]?.filter((userId) => {\n        return userId !== ALL_BROKER_USERS_VALUE;\n    });\n\n    const lastModifiedByBroker = !!queryFilters[QueryFiltersKeysEnum.lastModifyByUserId]?.some((userId) => {\n        return userId === ALL_BROKER_USERS_VALUE;\n    });\n\n    const addedByUsers = queryFilters[QueryFiltersKeysEnum.createdByUserId]?.filter((userId) => {\n        return userId !== ALL_BROKER_USERS_VALUE;\n    });\n\n    const addedByBroker = !!queryFilters[QueryFiltersKeysEnum.createdByUserId]?.some((userId) => {\n        return userId === ALL_BROKER_USERS_VALUE;\n    });\n\n    return {\n        truckModels: queryFilters?.[QueryFiltersKeysEnum.model] || undefined,\n        plateNumber: queryFilters?.[QueryFiltersKeysEnum.plateNumber] || undefined,\n        countriesOfRegistration: queryFilters?.[QueryFiltersKeysEnum.country] || undefined,\n        contractIds: queryFilters?.[QueryFiltersKeysEnum.contractId] || undefined,\n        emissionClasses,\n\n        statuses,\n        archived: activeTab === TabEnum.archive,\n\n        createdDateFrom: queryFilters?.[QueryFiltersKeysEnum.createdDateFrom] || undefined,\n        createdDateTo: queryFilters?.[QueryFiltersKeysEnum.createdDateTo] || undefined,\n\n        updatedDateFrom: queryFilters[QueryFiltersKeysEnum.lastModifyDateFrom] || undefined,\n        updatedDateTo: queryFilters[QueryFiltersKeysEnum.lastModifyDateTo] || undefined,\n\n        telematicUpdatedDateFrom: queryFilters[QueryFiltersKeysEnum.lastTelematicUpdateDateFrom] || undefined,\n        telematicUpdatedDateTo: queryFilters[QueryFiltersKeysEnum.lastTelematicUpdateDateTo] || undefined,\n\n        addedByBroker: addedByBroker || undefined,\n        addedByUsers: addedByUsers?.length ? addedByUsers : undefined,\n\n        lastModifiedByBroker: lastModifiedByBroker || undefined,\n        lastModifiedByUsers: lastModifiedByUsers?.length ? lastModifiedByUsers : undefined,\n\n        sorts: formatSort(sort),\n    };\n};\n\nexport { prepareFetchPageQuery };\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"CheckboxHeader__fadeIn___QJo8B\",\"blinking\":\"CheckboxHeader__blinking___fWAOU\"};","import {\n    FETCH_VEHICLE_SCHEDULE_REQUEST_BEGIN,\n    FETCH_VEHICLE_SCHEDULE_REQUEST_ERROR,\n    FETCH_VEHICLE_SCHEDULE_REQUEST_SUCCESS,\n    CANCEL_UNAVAILABLE_VEHICLE_REQUEST_BEGIN,\n    CANCEL_UNAVAILABLE_VEHICLE_REQUEST_ERROR,\n    CANCEL_UNAVAILABLE_VEHICLE_REQUEST_SUCCESS,\n    SET_UNAVAILABLE_VEHICLE_REQUEST_BEGIN,\n    SET_UNAVAILABLE_VEHICLE_REQUEST_ERROR,\n    SET_UNAVAILABLE_VEHICLE_REQUEST_SUCCESS,\n    VehicleSchedulesActionT,\n    VehicleSchedulesStateT,\n    VehicleScheduleStateT,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: VehicleSchedulesStateT = {\n    byHash: {},\n    setUnavailableRequest: requestStatus.initial,\n    cancelUnavailableRequest: requestStatus.initial,\n};\n\nexport const initialVehicleState: VehicleScheduleStateT = {\n    schedule: [],\n    fetchRequestStatus: requestStatus.initial,\n};\n\nexport default (\n    state = initialState,\n    action: VehicleSchedulesActionT | DestroySessionActionT,\n): VehicleSchedulesStateT => {\n    switch (action.type) {\n        case FETCH_VEHICLE_SCHEDULE_REQUEST_BEGIN: {\n            const { hash } = action;\n\n            const vehicleState = state.byHash[hash] || initialVehicleState;\n\n            return {\n                ...state,\n                byHash: {\n                    ...state.byHash,\n                    [hash]: {\n                        ...vehicleState,\n                        fetchRequestStatus: requestStatus.loading,\n                    },\n                },\n            };\n        }\n\n        case FETCH_VEHICLE_SCHEDULE_REQUEST_SUCCESS: {\n            const { schedule, hash } = action;\n\n            const vehicleState = state.byHash[hash] || initialVehicleState;\n\n            return {\n                ...state,\n                byHash: {\n                    ...state.byHash,\n                    [hash]: {\n                        ...vehicleState,\n                        schedule,\n                        fetchRequestStatus: requestStatus.ok,\n                    },\n                },\n            };\n        }\n\n        case FETCH_VEHICLE_SCHEDULE_REQUEST_ERROR: {\n            const { hash, error } = action;\n\n            const vehicleState = state.byHash[hash] || initialVehicleState;\n\n            return {\n                ...state,\n                byHash: {\n                    ...state.byHash,\n                    [hash]: {\n                        ...vehicleState,\n                        fetchRequestStatus: requestStatus.setError(error),\n                    },\n                },\n            };\n        }\n\n        case SET_UNAVAILABLE_VEHICLE_REQUEST_BEGIN: {\n            return {\n                ...state,\n                setUnavailableRequest: requestStatus.loading,\n            };\n        }\n\n        case SET_UNAVAILABLE_VEHICLE_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                setUnavailableRequest: requestStatus.setError(error),\n            };\n        }\n\n        case SET_UNAVAILABLE_VEHICLE_REQUEST_SUCCESS: {\n            return {\n                ...state,\n                setUnavailableRequest: requestStatus.ok,\n            };\n        }\n\n        case CANCEL_UNAVAILABLE_VEHICLE_REQUEST_BEGIN: {\n            return {\n                ...state,\n                cancelUnavailableRequest: requestStatus.loading,\n            };\n        }\n\n        case CANCEL_UNAVAILABLE_VEHICLE_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                cancelUnavailableRequest: requestStatus.setError(error),\n            };\n        }\n\n        case CANCEL_UNAVAILABLE_VEHICLE_REQUEST_SUCCESS: {\n            return {\n                ...state,\n                cancelUnavailableRequest: requestStatus.ok,\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default: {\n            return state;\n        }\n    }\n};\n","import * as React from 'react';\n\nimport { Trans, useTranslation } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\nimport NotificationVerticalRow from 'common/components/notification-cards/shared/NotificationVerticalRow/NotificationVerticalRow';\nimport NotificationVerticalRowsLayout from 'common/components/notification-cards/shared/NotificationVerticalRowsLayout/NotificationVerticalRowsLayout';\n\ntype PropsT = {\n    transportationOrderNumber: React.ReactNode;\n    driverName?: React.ReactNode;\n    teamDriverName?: React.ReactNode;\n};\n\nconst TransportationOrderDriverAssignedCard: React.FC<PropsT> = React.memo((props) => {\n    const { transportationOrderNumber, driverName, teamDriverName } = props;\n    const { t } = useTranslation();\n\n    const rows = [\n        <NotificationVerticalRow key=\"summary\">\n            <Trans\n                i18nKey=\"common:notifications.transportation-order-driver-assigned\"\n                components={{\n                    transportationOrderNumber: (\n                        <NotificationEntityLabel isBold isUnderline text={transportationOrderNumber} />\n                    ),\n                }}\n            />\n        </NotificationVerticalRow>,\n    ];\n\n    if (driverName) {\n        rows.push(\n            <NotificationVerticalRow key=\"driver\">\n                <Trans\n                    i18nKey=\"common:notifications.transportation-order-driver-assigned-driver\"\n                    components={{\n                        driverLabel: <NotificationEntityLabel isBold text={t('common:notifications.drivers.driver')} />,\n                        driverName: <NotificationEntityLabel text={driverName} />,\n                    }}\n                />\n            </NotificationVerticalRow>,\n        );\n    }\n\n    if (teamDriverName) {\n        rows.push(\n            <NotificationVerticalRow key=\"team-driver\">\n                <Trans\n                    i18nKey=\"common:notifications.transportation-order-driver-assigned-team-driver\"\n                    components={{\n                        teamDriverLabel: (\n                            <NotificationEntityLabel isBold text={t('common:notifications.drivers.team-driver')} />\n                        ),\n                        teamDriverName: <NotificationEntityLabel text={teamDriverName} />,\n                    }}\n                />\n            </NotificationVerticalRow>,\n        );\n    }\n\n    return (\n        <NotificationCardInnerLayout>\n            <NotificationVerticalRowsLayout>{rows}</NotificationVerticalRowsLayout>\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default TransportationOrderDriverAssignedCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"field--trailer-type\":\"ShipperContractLaneEditForm__field--trailer-type___smTbg\",\"field--emission-class\":\"ShipperContractLaneEditForm__field--emission-class___NU_Wd\",\"field--location\":\"ShipperContractLaneEditForm__field--location___yUKsD\",\"field--radius\":\"ShipperContractLaneEditForm__field--radius___WITwO\",\"field--date\":\"ShipperContractLaneEditForm__field--date___W7h3_\",\"field--limit\":\"ShipperContractLaneEditForm__field--limit___QRxKe\",\"field--external-lane-id\":\"ShipperContractLaneEditForm__field--external-lane-id___HUP_3\",\"actions\":\"ShipperContractLaneEditForm__actions___fJqDo\",\"actions__action\":\"ShipperContractLaneEditForm__actions__action___E9jml\",\"fadeIn\":\"ShipperContractLaneEditForm__fadeIn___KDA29\",\"blinking\":\"ShipperContractLaneEditForm__blinking___gLEjt\"};","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useCommonPriceDetails } from 'common/components/price-details/hooks/common';\nimport PriceDetails, { PriceDetailT } from 'design-system/components/PriceDetails/PriceDetails';\nimport EuroSymbolIcon from 'common/icons/EuroSymbolIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { isNonNil } from 'common/utils';\nimport { SelfCostPredictionT } from 'broker-admin/store/broker-order-assigment/models';\nimport isNumber from 'lodash/isNumber';\n\ntype CostsT = SelfCostPredictionT['calculatedTrailerCost'] | SelfCostPredictionT['trailerNextTourOldCostDetails'];\n\ntype PropsT = {\n    className?: string;\n    label: React.ReactNode;\n    isHideFuelPrice?: boolean;\n    prevCosts?: CostsT;\n    costs: CostsT;\n};\n\nconst getDiff = (price: number | null | undefined, notActualPrice: number | null | undefined): number | null => {\n    if (!isNumber(price) || !isNumber(notActualPrice)) {\n        return null;\n    }\n\n    return price - notActualPrice;\n};\n\nconst CUSTOM_PRICE_DIFF_NEGATIVE_COLOR = StyleGuideColorsEnum.orange;\n\nconst ReceiptPriceDetails: React.FC<PropsT> = React.memo((props) => {\n    const { className, label, prevCosts, costs, isHideFuelPrice } = props;\n\n    const { t } = useTranslation();\n\n    const commonPriceDetails = useCommonPriceDetails();\n\n    const list: Array<PriceDetailT | null> = [\n        {\n            iconNode: <EuroSymbolIcon strokeColor={StyleGuideColorsEnum.gray} />,\n            title: label,\n            price: costs?.totalCost,\n            priceDiff: getDiff(costs?.totalCost, prevCosts?.totalCost),\n            notActualPrice: prevCosts?.totalCost,\n            customPriceDiffNegativeColor: CUSTOM_PRICE_DIFF_NEGATIVE_COLOR,\n            placeholder: t('common:info-table.placeholders.carrier-not-assigned'),\n            initialOpen: true,\n            list: [\n                {\n                    ...commonPriceDetails.lineHaul,\n                    price: costs?.lineHaul,\n                    priceDiff: getDiff(costs?.lineHaul, prevCosts?.lineHaul),\n                    notActualPrice: prevCosts?.lineHaul,\n                    customPriceDiffNegativeColor: CUSTOM_PRICE_DIFF_NEGATIVE_COLOR,\n                    footerNode: commonPriceDetails.getAppliedRulesFooterNode(['LINE_HAUL'], costs?.appliedRules),\n                },\n                {\n                    ...commonPriceDetails.getRoadTaxesRow(costs?.co2),\n                    price: costs?.toll?.totalCost,\n                    priceDiff: getDiff(costs?.toll?.totalCost, prevCosts?.toll?.totalCost),\n                    customPriceDiffNegativeColor: CUSTOM_PRICE_DIFF_NEGATIVE_COLOR,\n                    notActualPrice: prevCosts?.toll?.totalCost,\n                    list: commonPriceDetails.getRoadTaxesList(costs?.toll?.byRoadType, costs?.appliedRules),\n                    footerNode: commonPriceDetails.getAppliedRulesFooterNode(['ROAD_TAXES'], costs?.appliedRules),\n                },\n                !isHideFuelPrice\n                    ? {\n                          ...commonPriceDetails.getFuelCostRow(costs?.fuel?.fuelType),\n                          price: costs?.fuel?.totalCost,\n                          priceDiff: getDiff(costs?.fuel?.totalCost, prevCosts?.fuel?.totalCost),\n                          customPriceDiffNegativeColor: CUSTOM_PRICE_DIFF_NEGATIVE_COLOR,\n                          notActualPrice: prevCosts?.fuel?.totalCost,\n                          list: commonPriceDetails.getFuelCostsByCountryList(costs?.fuel?.byCountry),\n                          footerNode: commonPriceDetails.getAppliedRulesFooterNode(['FUEL'], costs?.appliedRules),\n                      }\n                    : null,\n                isNumber(costs?.teamDriveCost)\n                    ? {\n                          ...commonPriceDetails.getTeamDrive({ travelHours: costs?.teamDriveCost }),\n                          price: costs?.teamDriveCost,\n                          priceDiff: getDiff(costs?.teamDriveCost, prevCosts?.teamDriveCost),\n                          customPriceDiffNegativeColor: CUSTOM_PRICE_DIFF_NEGATIVE_COLOR,\n                          notActualPrice: prevCosts?.teamDriveCost,\n                      }\n                    : null,\n                {\n                    ...commonPriceDetails.getLayoverCostRow(costs?.layover?.totalSeconds, costs?.layover?.paidHours),\n                    price: costs?.layover?.totalCost,\n                    priceDiff: getDiff(costs?.layover?.totalCost, prevCosts?.layover?.totalCost),\n                    customPriceDiffNegativeColor: CUSTOM_PRICE_DIFF_NEGATIVE_COLOR,\n                    notActualPrice: prevCosts?.layover?.totalCost,\n                },\n                isNumber(costs?.additionalServices?.totalCost)\n                    ? {\n                          ...commonPriceDetails.otherCosts,\n                          price: costs?.additionalServices?.totalCost,\n                          priceDiff: getDiff(\n                              costs?.additionalServices?.totalCost,\n                              prevCosts?.additionalServices?.totalCost,\n                          ),\n                          customPriceDiffNegativeColor: CUSTOM_PRICE_DIFF_NEGATIVE_COLOR,\n                          notActualPrice: prevCosts?.additionalServices?.totalCost,\n                      }\n                    : null,\n            ].filter(isNonNil),\n        },\n    ].filter(isNonNil);\n\n    if (!costs) {\n        return null;\n    }\n\n    return <PriceDetails className={className} list={list} />;\n});\n\nexport default ReceiptPriceDetails;\n","import {\n    ApiSystemSettingsT,\n    DocumentTypeEnum,\n    FixPageableCommonQueryT,\n    OverwritePageRequestT,\n    OverwritePageRequestWithSortQueryT,\n    OverwritePageRequestWithSortT,\n    PartnerTypeEnum,\n    ApiPartnerTypeT,\n    UpdateRateStrategyEnum,\n} from 'common/utils/api/models';\nimport BaseTranziitApi, {\n    throwNotImplementedError,\n    TranziitApiResultT,\n} from 'common/utils/api/tranziit/base-tranziit-api';\nimport { authApi } from 'common/utils/api/auth/factory';\nimport { MS_IN_MIN } from 'common/utils/time';\nimport { isNonNil } from 'common/utils';\n\nclass BrokerTranziitApi extends BaseTranziitApi {\n    private static instance: BrokerTranziitApi;\n\n    private constructor() {\n        super(authApi, {\n            basepath: '/api',\n            timeout: MS_IN_MIN,\n        });\n    }\n\n    public static getInstance(): BrokerTranziitApi {\n        if (!BrokerTranziitApi.instance) {\n            BrokerTranziitApi.instance = new BrokerTranziitApi();\n        }\n\n        return BrokerTranziitApi.instance;\n    }\n\n    getRFQSuggestedOffer = async (\n        rfqId: Api2Paths.ApiV2Rfqs$RfqIdOffersSuggested.Get.Parameters.RfqId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2Rfqs$RfqIdOffersSuggested.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2Rfqs$RfqIdOffersSuggested.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/rfqs/${rfqId}/offers/suggested`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchAssetTracksByTransportOrder = async (\n        transportationOrderId: Api2Paths.ApiV2BrokerOrders$TransportationOrderIdAssetsCoordinates.Get.Parameters.TransportationOrderId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerOrders$TransportationOrderIdAssetsCoordinates.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2BrokerOrders$TransportationOrderIdAssetsCoordinates.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/orders/${transportationOrderId}/assets-coordinates`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchTransportOrdersPage = async (\n        carrierId: Api2Paths.ApiV2BrokerTransportationOrders$CarrierId.Get.Parameters.CarrierId,\n        apiFetchOrdersRequest: OverwritePageRequestWithSortT<Api2Paths.ApiV2BrokerTransportationOrders$CarrierId.Get.QueryParameters>,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerTransportationOrders$CarrierId.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerTransportationOrders$CarrierId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/transportation-orders/${carrierId}`,\n            query: apiFetchOrdersRequest,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchShipperContractDetails = async (\n        partnerId: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractId.Get.Parameters.ShipperId,\n        shipperContractId: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractId.Get.Parameters.ContractId,\n    ): Promise<\n        TranziitApiResultT<ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractId.Get.Responses.$200>\n    > => {\n        return this.doFetch<ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/companies/${partnerId}/shipper-contracts/${shipperContractId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchShipperContractLaneDetails = async (\n        partnerId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Get.Parameters.ShipperId,\n        shipperContractId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Get.Parameters.ContractId,\n        laneId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Get.Parameters.LaneId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Get.Responses.$200>(\n            {\n                method: 'GET',\n                path: `/v1/broker/companies/${partnerId}/shipper-contracts/${shipperContractId}/lanes/${laneId}`,\n                expectedResponseContentType: 'json',\n            },\n        );\n    };\n\n    uploadShipperContract = async (\n        partnerId: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts.Post.Parameters.ShipperId,\n        query: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts.Post.QueryParameters,\n        file: File,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts.Post.Responses.$201>> => {\n        const formData = new FormData();\n        formData.append('file', file);\n\n        return this.doFetch<ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts.Post.Responses.$201>({\n            headers: {\n                'Content-Type': 'multipart/form-data',\n            },\n            method: 'POST',\n            path: `/v1/broker/companies/${partnerId}/shipper-contracts`,\n            query,\n            data: formData,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    updateShipperContract = async (\n        partnerId: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractId.Put.Parameters.ShipperId,\n        contractId: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractId.Put.Parameters.ContractId,\n        query: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractId.Put.QueryParameters,\n        file: File | null,\n    ): Promise<\n        TranziitApiResultT<ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractId.Put.Responses.$200>\n    > => {\n        const formData = new FormData();\n\n        if (file) {\n            formData.append('file', file);\n        }\n\n        return this.doFetch<ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractId.Put.Responses.$200>({\n            headers: {\n                'Content-Type': 'multipart/form-data',\n            },\n            method: 'PUT',\n            path: `/v1/broker/companies/${partnerId}/shipper-contracts/${contractId}`,\n            query,\n            data: formData,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    updateShipperContractLane = async (\n        companyId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Put.Parameters.ShipperId,\n        contractId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Put.Parameters.ContractId,\n        laneId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Put.Parameters.LaneId,\n        data: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Put.RequestBody,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Put.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneId.Put.Responses.$200>(\n            {\n                method: 'PUT',\n                path: `/v1/broker/companies/${companyId}/shipper-contracts/${contractId}/lanes/${laneId}`,\n                data,\n                expectedResponseContentType: 'unknown',\n            },\n        );\n    };\n\n    revokeShipperContractLane = async (\n        companyId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneIdRevoke.Put.Parameters.ShipperId,\n        contractId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneIdRevoke.Put.Parameters.ContractId,\n        laneId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneIdRevoke.Put.Parameters.LaneId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneIdRevoke.Put.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes$LaneIdRevoke.Put.Responses.$200>(\n            {\n                method: 'PUT',\n                path: `/v1/broker/companies/${companyId}/shipper-contracts/${contractId}/lanes/${laneId}/revoke`,\n                expectedResponseContentType: 'unknown',\n            },\n        );\n    };\n\n    revokeShipperContract = async (\n        partnerId: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdRevoke.Put.Parameters.ShipperId,\n        contractId: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdRevoke.Put.Parameters.ContractId,\n        reason: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdRevoke.Put.Parameters.Reason,\n    ): Promise<\n        TranziitApiResultT<ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdRevoke.Put.Responses.$200>\n    > => {\n        const query: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdRevoke.Put.QueryParameters = {};\n        if (reason) {\n            query.reason = reason;\n        }\n\n        return this.doFetch<ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdRevoke.Put.Responses.$200>(\n            {\n                method: 'PUT',\n                path: `/v1/broker/companies/${partnerId}/shipper-contracts/${contractId}/revoke`,\n                query,\n                expectedResponseContentType: 'unknown',\n            },\n        );\n    };\n\n    fetchTrailersPage = async (\n        apiFetchTrailersRequest: OverwritePageRequestWithSortT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers.Get.QueryParameters>,\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers.Get.Parameters.CarrierId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/companies/${carrierId}/trailers`,\n            query: apiFetchTrailersRequest,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    addPartnerTrailer = async (\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers.Post.RequestBody,\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers.Post.Parameters.CarrierId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers.Post.Responses.$201>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers.Post.Responses.$201>({\n            data,\n            method: 'POST',\n            path: `/v2/broker/companies/${carrierId}/trailers`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    deleteTrailer = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Delete.Parameters.CarrierId,\n        trailerId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Delete.Parameters.Id,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Delete.Responses.$204>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Delete.Responses.$204>({\n            method: 'DELETE',\n            path: `/v2/broker/companies/${carrierId}/trailers/${trailerId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    assignTruckToContract = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksChangeContract.Post.Parameters.CarrierId,\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksChangeContract.Post.RequestBody,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksChangeContract.Post.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksChangeContract.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/broker/companies/${carrierId}/trucks/change-contract`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    assignTrailersToContract = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersChangeContract.Post.Parameters.CarrierId,\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersChangeContract.Post.RequestBody,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersChangeContract.Post.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersChangeContract.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/broker/companies/${carrierId}/trailers/change-contract`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    changeRateTrailers = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersChangeRate.Post.Parameters.CarrierId,\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersChangeRate.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersChangeRate.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersChangeRate.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/broker/companies/${carrierId}/trailers/change-rate`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    changeRateTrucks = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksChangeRate.Post.Parameters.CarrierId,\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksChangeRate.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksChangeRate.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksChangeRate.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/broker/companies/${carrierId}/trucks/change-rate`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    activateTrailers = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersActivate.Put.Parameters.CarrierId,\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersActivate.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersActivate.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersActivate.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/broker/companies/${carrierId}/trailers/activate`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    archiveTrailers = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersArchive.Put.Parameters.CarrierId,\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersArchive.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersArchive.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersArchive.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/broker/companies/${carrierId}/trailers/archive`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchTrailerDetails = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Get.Parameters.CarrierId,\n        trailerId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Get.Parameters.Id,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/companies/${carrierId}/trailers/${trailerId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchTrailersActiveFleetCount = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersActiveFleetCount.Get.Parameters.CarrierId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersActiveFleetCount.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersActiveFleetCount.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/companies/${carrierId}/trailers/active-fleet-count`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    updateTrailer = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Put.Parameters.CarrierId,\n        trailerId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Put.Parameters.Id,\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailers$Id.Put.Responses.$200>({\n            data,\n            method: 'PUT',\n            path: `/v2/broker/companies/${carrierId}/trailers/${trailerId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    fetchActiveTrucksByIdPlateNumber = async (\n        plateNumber: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Get.Parameters.PlateNumber,\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Get.Parameters.CarrierId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Get.Responses.$200>> => {\n        const apiFetchTrucksRequest: OverwritePageRequestWithSortQueryT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Get.QueryParameters> =\n            {\n                plateNumber,\n                archived: false,\n            };\n\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/companies/${carrierId}/trucks`,\n            query: apiFetchTrucksRequest,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchTrucksPage = async (\n        apiFetchTrucksRequest: OverwritePageRequestWithSortT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Get.QueryParameters>,\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Get.Parameters.CarrierId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/companies/${carrierId}/trucks`,\n            query: apiFetchTrucksRequest,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    addPartnerTruck = async (\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Post.RequestBody,\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Post.Parameters.CarrierId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Post.Responses.$201>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks.Post.Responses.$201>({\n            method: 'POST',\n            path: `/v2/broker/companies/${carrierId}/trucks`,\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    activateTrucks = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActivate.Put.Parameters.CarrierId,\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActivate.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActivate.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActivate.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/broker/companies/${carrierId}/trucks/activate`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    updatePartnerTruck = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Put.Parameters.CarrierId,\n        truckId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Put.Parameters.Id,\n        truckUpdate: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/broker/companies/${carrierId}/trucks/${truckId}`,\n            data: truckUpdate,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    archiveTrucks = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActivate.Put.Parameters.CarrierId,\n        data: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActivate.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActivate.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActivate.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/broker/companies/${carrierId}/trucks/archive`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchPartnerTruckDetails = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Get.Parameters.CarrierId,\n        truckId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Get.Parameters.Id,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/companies/${carrierId}/trucks/${truckId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchTrucksActiveFleetCount = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActiveFleetCount.Get.Parameters.CarrierId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActiveFleetCount.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksActiveFleetCount.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/companies/${carrierId}/trucks/active-fleet-count`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    deleteTruck = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Delete.Parameters.Id,\n        truckId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Delete.Parameters.Id,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Delete.Responses.$204>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucks$Id.Delete.Responses.$204>({\n            method: 'DELETE',\n            path: `/v2/broker/companies/${carrierId}/trucks/${truckId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    fetchCompanyContacts = async (\n        companyId: Api2Paths.ApiV2BrokerCompany$CompanyIdContacts.Get.Parameters.CompanyId,\n        query?: Api2Paths.ApiV2BrokerCompany$CompanyIdContacts.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompany$CompanyIdContacts.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompany$CompanyIdContacts.Get.Responses.$200>({\n            method: 'GET',\n            query,\n            path: `/v2/broker/company/${companyId}/contacts`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    addUserToPartner = async (\n        newUser: Api2Paths.ApiV2BrokerCompany$CompanyIdRegistrationUserInvite.Post.RequestBody,\n        companyId: Api2Paths.ApiV2BrokerCompany$CompanyIdRegistrationUserInvite.Post.Parameters.CompanyId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerCompany$CompanyIdRegistrationUserInvite.Post.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompany$CompanyIdRegistrationUserInvite.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/broker/company/${companyId}/registration/user/invite`,\n            data: newUser,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    addContactToPartner = async (): Promise<TranziitApiResultT<unknown>> => {\n        return throwNotImplementedError();\n    };\n\n    fetchPartnersPage = async (\n        apiFetchPartnersRequest: FixPageableCommonQueryT & Api2Paths.ApiV2BrokerCompanyFilter.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyFilter.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyFilter.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v2/broker/company/filter',\n            query: apiFetchPartnersRequest,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchPartnersStatistics = async (): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyNotVerifiedCount.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyNotVerifiedCount.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v2/broker/company/not-verified-count',\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchPartnerDetails = async (\n        companyId: Api2Paths.ApiV2BrokerCompany$CompanyId.Get.Parameters.CompanyId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompany$CompanyId.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompany$CompanyId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/company/${companyId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    verifyPartnerAddress = async (\n        companyId: Api2Paths.ApiV2BrokerCompanyVerifyAddress$CompanyId.Put.Parameters.CompanyId,\n        addressType: Api2Paths.ApiV2BrokerCompanyVerifyAddress$CompanyId.Put.Parameters.AddressType,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyVerifyAddress$CompanyId.Put.Responses.$204>> => {\n        const query: Api2Paths.ApiV2BrokerCompanyVerifyAddress$CompanyId.Put.QueryParameters = {\n            addressType,\n        };\n\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyVerifyAddress$CompanyId.Put.Responses.$204>({\n            method: 'PUT',\n            path: `/v2/broker/company/verify-address/${companyId}`,\n            query,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    unVerifyPartnerAddress = async (\n        companyId: Api2Paths.ApiV2BrokerCompanyUnVerifyAddress$CompanyId.Put.Parameters.CompanyId,\n        addressType: Api2Paths.ApiV2BrokerCompanyUnVerifyAddress$CompanyId.Put.Parameters.AddressType,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyUnVerifyAddress$CompanyId.Put.Responses.$204>> => {\n        const query: Api2Paths.ApiV2BrokerCompanyUnVerifyAddress$CompanyId.Put.QueryParameters = {\n            addressType,\n        };\n\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyUnVerifyAddress$CompanyId.Put.Responses.$204>({\n            method: 'PUT',\n            path: `/v2/broker/company/un-verify-address/${companyId}`,\n            query,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    lockPartner = async (\n        companyId: Api2Paths.ApiV2BrokerCompanyLock$CompanyId.Post.Parameters.CompanyId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyLock$CompanyId.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyLock$CompanyId.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/broker/company/lock/${companyId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    unlockPartner = async (\n        companyId: Api2Paths.ApiV2BrokerCompanyUnlock$CompanyId.Post.Parameters.CompanyId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyUnlock$CompanyId.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyUnlock$CompanyId.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/broker/company/unlock/${companyId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    linkWithExternalPlatformPartner = async ({\n        businessPartnerId,\n        internalCompanyId,\n    }: {\n        businessPartnerId: Api2Paths.ApiV2BrokerCompanyLinkWithExternalPlatform$BusinessPartnerId.Post.Parameters.BusinessPartnerId;\n        internalCompanyId: Api2Paths.ApiV2BrokerCompanyLinkWithExternalPlatform$BusinessPartnerId.Post.Parameters.InternalCompanyId;\n    }): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyLinkWithExternalPlatform$BusinessPartnerId.Post.Responses.$200>\n    > => {\n        const query: Api2Paths.ApiV2BrokerCompanyLinkWithExternalPlatform$BusinessPartnerId.Post.QueryParameters = {\n            internalCompanyId,\n        };\n\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyLinkWithExternalPlatform$BusinessPartnerId.Post.Responses.$200>(\n            {\n                method: 'POST',\n                path: `/v2/broker/company/link-with-external-platform/${businessPartnerId}`,\n                expectedResponseContentType: 'unknown',\n                query,\n            },\n        );\n    };\n\n    unlinkWithExternalPlatformPartner = async (\n        internalCompanyId: Api2Paths.ApiV2BrokerCompanyUnlinkFromExternalPlatform$InternalCompanyId.Post.Parameters.InternalCompanyId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyUnlinkFromExternalPlatform$InternalCompanyId.Post.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyUnlinkFromExternalPlatform$InternalCompanyId.Post.Responses.$200>(\n            {\n                method: 'POST',\n                path: `/v2/broker/company/unlink-from-external-platform/${internalCompanyId}`,\n                expectedResponseContentType: 'unknown',\n            },\n        );\n    };\n\n    updatePartnerDetails = async (\n        companyId: Api2Paths.ApiV2BrokerCompanyUpdate$CompanyId.Put.Parameters.CompanyId,\n        partnerDetails: Api2Paths.ApiV2BrokerCompanyUpdate$CompanyId.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyUpdate$CompanyId.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyUpdate$CompanyId.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/broker/company/update/${companyId}`,\n            data: partnerDetails,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    assignTeamsForPartner = async (\n        companyId: Api2Paths.ApiV2BrokerCompanyAssignTeams$CompanyId.Post.Parameters.CompanyId,\n        data: Api2Paths.ApiV2BrokerCompanyAssignTeams$CompanyId.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyAssignTeams$CompanyId.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyAssignTeams$CompanyId.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/broker/company/assign-teams/${companyId}`,\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    updateEvidenceOfTax = async (\n        documentId: ApiPaths.ApiV1BrokerDocument$DocumentIdUpdateEvidenceOfTax.Post.Parameters.DocumentId,\n        evidenceOfTaxDocumentUpdate: ApiPaths.ApiV1BrokerDocument$DocumentIdUpdateEvidenceOfTax.Post.RequestBody,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerDocument$DocumentIdUpdateEvidenceOfTax.Post.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1BrokerDocument$DocumentIdUpdateEvidenceOfTax.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/broker/document/${documentId}/update-evidence-of-tax`,\n            data: evidenceOfTaxDocumentUpdate,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    searchAssetsForAssigment = async (\n        tourId: Api2Paths.ApiV1BrokerTours$TourIdSearchAssetsForAssignment.Post.Parameters.TourId,\n        radiusM: Api2Paths.ApiV1BrokerTours$TourIdSearchAssetsForAssignment.Post.Parameters.Radius,\n        data: Api2Paths.ApiV1BrokerTours$TourIdSearchAssetsForAssignment.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerTours$TourIdSearchAssetsForAssignment.Post.Responses.$200>> => {\n        const query: Api2Paths.ApiV1BrokerTours$TourIdSearchAssetsForAssignment.Post.QueryParameters = {\n            radius: radiusM,\n        };\n\n        return this.doFetch<Api2Paths.ApiV1BrokerTours$TourIdSearchAssetsForAssignment.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/broker/tours/${tourId}/search-assets-for-assignment`,\n            query,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    findTrailersByPlateNumber = async (\n        tourId: Api2Paths.ApiV1BrokerTours$TourIdSearchTrailersForAssignment.Post.Parameters.TourId,\n        query: Api2Paths.ApiV1BrokerTours$TourIdSearchTrailersForAssignment.Post.QueryParameters,\n        data: Api2Paths.ApiV1BrokerTours$TourIdSearchTrailersForAssignment.Post.RequestBody,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerTours$TourIdSearchTrailersForAssignment.Post.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerTours$TourIdSearchTrailersForAssignment.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/broker/tours/${tourId}/search-trailers-for-assignment`,\n            query,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    calculateTourCostsForAssets = async (\n        tourId: Api2Paths.ApiV1BrokerTours$TourIdCalculateTourCostsForAssets.Post.Parameters.TourId,\n        query: Api2Paths.ApiV1BrokerTours$TourIdCalculateTourCostsForAssets.Post.QueryParameters,\n        data: Api2Paths.ApiV1BrokerTours$TourIdCalculateTourCostsForAssets.Post.RequestBody,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerTours$TourIdCalculateTourCostsForAssets.Post.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerTours$TourIdCalculateTourCostsForAssets.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/broker/tours/${tourId}/calculate-tour-costs-for-assets`,\n            query,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchTourAssignDetails = async (\n        tourId: Api2Paths.ApiV1BrokerTours$TourIdAssignDetails.Get.Parameters.TourId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerTours$TourIdAssignDetails.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerTours$TourIdAssignDetails.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/tours/${tourId}/assign/details`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    findTrucksByPlateNumber = async (\n        tourId: Api2Paths.ApiV1BrokerTours$TourIdSearchTrucksForAssignment.Post.Parameters.TourId,\n        query: Api2Paths.ApiV1BrokerTours$TourIdSearchTrucksForAssignment.Post.QueryParameters,\n        data: Api2Paths.ApiV1BrokerTours$TourIdSearchTrucksForAssignment.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerTours$TourIdSearchTrucksForAssignment.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerTours$TourIdSearchTrucksForAssignment.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/broker/tours/${tourId}/search-trucks-for-assignment`,\n            query,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    assignOrder = async (\n        tourId: Api2Paths.ApiV1BrokerTours$TourIdAssign$AssignmentContextId.Put.Parameters.TourId,\n        assignmentContextId: Api2Paths.ApiV1BrokerTours$TourIdAssign$AssignmentContextId.Put.Parameters.AssignmentContextId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerTours$TourIdAssign$AssignmentContextId.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerTours$TourIdAssign$AssignmentContextId.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v1/broker/tours/${tourId}/assign/${assignmentContextId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    updateBrokerWindowAppointment = async (\n        orderId: Api2Paths.ApiV2BrokerOrder$OrderIdWindows.Put.Parameters.OrderId,\n        data: Api2Paths.ApiV2BrokerOrder$OrderIdWindows.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerOrder$OrderIdWindows.Put.Responses.$204>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerOrder$OrderIdWindows.Put.Responses.$204>({\n            method: 'PUT',\n            path: `/v2/broker/order/${orderId}/windows`,\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    fetchAvailableCarriers = async (): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyFilter.Get.Responses.$200>\n    > => {\n        const query: FixPageableCommonQueryT & Api2Paths.ApiV2BrokerCompanyFilter.Get.QueryParameters = {\n            size: 9999,\n            page: 0,\n            includeProfileTypes: ['CARRIER'],\n        };\n\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyFilter.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v2/broker/company/filter',\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchBrokerAdminUsers = async (): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerUsers.Get.Responses.$200>> => {\n        const query: ApiPaths.ApiV1BrokerUsers.Get.QueryParameters = {\n            roles: ['COMPANY_ADMIN'],\n        };\n        return this.doFetch<ApiPaths.ApiV1BrokerUsers.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/users`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchPartnerDispatchers = async (): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerUsers.Get.Responses.$200>> => {\n        const query: ApiPaths.ApiV1BrokerUsers.Get.QueryParameters = {\n            roles: ['DISPATCHER', 'COMPANY_ADMIN'],\n        };\n        return this.doFetch<ApiPaths.ApiV1BrokerUsers.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/users`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchPartnerManagers = async (): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerUsers.Get.Responses.$200>> => {\n        const query: ApiPaths.ApiV1BrokerUsers.Get.QueryParameters = {\n            roles: ['KEY_ACCOUNT_MANAGER', 'COMPANY_ADMIN'],\n        };\n\n        return this.doFetch<ApiPaths.ApiV1BrokerUsers.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/users`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    createPartner = async (\n        data: Api2Paths.ApiV2BrokerCompanyCreate.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyCreate.Post.Responses.$201>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyCreate.Post.Responses.$201>({\n            method: 'POST',\n            path: '/v2/broker/company/create',\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    createFromExternalPlatformPartner = async (\n        businessPartnerId: Api2Paths.ApiV2BrokerCompanyCreateFromExternalPlatform$BusinessPartnerId.Post.Parameters.BusinessPartnerId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyCreateFromExternalPlatform$BusinessPartnerId.Post.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyCreateFromExternalPlatform$BusinessPartnerId.Post.Responses.$200>(\n            {\n                method: 'POST',\n                path: `/v2/broker/company/create-from-external-platform/${businessPartnerId}`,\n                expectedResponseContentType: 'json',\n            },\n        );\n    };\n\n    fetchRatesPage = async (\n        query: OverwritePageRequestWithSortT<ApiPaths.ApiV1Manualrates.Get.QueryParameters>,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1Manualrates.Get.Responses.$200>> => {\n        if (!query.countriesFrom?.length && !query.countriesTo?.length) {\n            return [\n                null,\n                {\n                    content: [],\n                    totalPages: 0,\n                    totalElements: 0,\n                },\n            ];\n        }\n\n        return this.doFetch<ApiPaths.ApiV1Manualrates.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/manualrates`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    updateRates = async (\n        ids: Array<number | undefined>,\n        value: number,\n        strategy: UpdateRateStrategyEnum,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1Manualrates.Put.Responses.$200>> => {\n        const apiUpdateRateRequest: ApiPaths.ApiV1Manualrates.Put.RequestBody = {\n            ids: ids.filter(isNonNil),\n            value,\n            strategy,\n        };\n\n        return this.doFetch<ApiPaths.ApiV1Manualrates.Put.Responses.$200>({\n            method: 'PUT',\n            path: '/v1/manualrates',\n            data: apiUpdateRateRequest,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    uploadRatesCSVFile = async (\n        file: File,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1ManualratesFile.Put.Responses.$200>> => {\n        const formData = new FormData();\n        formData.append('file', file);\n\n        return this.doFetch<ApiPaths.ApiV1ManualratesFile.Put.Responses.$200>({\n            method: 'PUT',\n            path: '/v1/manualrates/file',\n            headers: {\n                'Content-Type': 'multipart/form-data',\n            },\n            data: formData,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    fetchRulesPage = async (\n        query: OverwritePageRequestT<Api2Paths.ApiV2ManualRateRuleFilter.Get.QueryParameters>,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2ManualRateRuleFilter.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2ManualRateRuleFilter.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/manual-rate-rule/filter`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchRuleDetails = async (\n        ruleId: Api2Paths.ApiV2ManualRateRule$RuleIdGet.Get.Parameters.RuleId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2ManualRateRule$RuleIdGet.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2ManualRateRule$RuleIdGet.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/manual-rate-rule/${ruleId}/get`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    updateRule = async (\n        ruleId: Api2Paths.ApiV2ManualRateRule$RuleIdUpdate.Put.Parameters.RuleId,\n        ruleDraft: Api2Paths.ApiV2ManualRateRule$RuleIdUpdate.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2ManualRateRule$RuleIdUpdate.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2ManualRateRule$RuleIdUpdate.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/manual-rate-rule/${ruleId}/update`,\n            data: ruleDraft,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    activateRule = async (\n        ruleId: Api2Paths.ApiV2ManualRateRule$RuleIdActivate.Put.Parameters.RuleId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2ManualRateRule$RuleIdActivate.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2ManualRateRule$RuleIdActivate.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/manual-rate-rule/${ruleId}/activate`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    deactivateRule = async (\n        ruleId: Api2Paths.ApiV2ManualRateRule$RuleIdDeactivate.Put.Parameters.RuleId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2ManualRateRule$RuleIdDeactivate.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2ManualRateRule$RuleIdDeactivate.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/manual-rate-rule/${ruleId}/deactivate`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    deleteRule = async (\n        ruleId: Api2Paths.ApiV2ManualRateRule$RuleIdDelete.Delete.Parameters.RuleId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2ManualRateRule$RuleIdDelete.Delete.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2ManualRateRule$RuleIdDelete.Delete.Responses.$200>({\n            method: 'DELETE',\n            path: `/v2/manual-rate-rule/${ruleId}/delete`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    rulePreview = async (\n        data: Api2Paths.ApiV2ManualRateRulePreview.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2ManualRateRulePreview.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2ManualRateRulePreview.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/manual-rate-rule/preview`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    createRule = async (\n        ruleDraft: Api2Paths.ApiV2ManualRateRuleCreate.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2ManualRateRuleCreate.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2ManualRateRuleCreate.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/manual-rate-rule/create`,\n            data: ruleDraft,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    fetchSystemSettings = async (): Promise<TranziitApiResultT<ApiSystemSettingsT>> => {\n        const query: Api2Paths.ApiV2Settings.Get.QueryParameters = {\n            groups: [\n                'RATE_STRATEGIES',\n                'NEW_ORDER',\n                'ASSIGNMENT',\n                'PRICING',\n                'DRIVER',\n                'ALERTS',\n                'SPOT',\n                'FERRY',\n                'ROUTING',\n            ],\n        };\n\n        const [error, response] = await this.doFetch<Api2Paths.ApiV2Settings.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/settings`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n\n        if (error) {\n            return [error, null];\n        }\n\n        const apiSettings = response?.reduce<ApiSystemSettingsT>((acc, item) => {\n            const { name, value } = item;\n\n            if (name) {\n                acc[name] = value;\n            }\n\n            return acc;\n        }, {});\n\n        return [null, apiSettings || null];\n    };\n\n    updateSystemSettings = async (\n        settingsChanges: Partial<ApiSystemSettingsT>,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2Settings.Put.Responses.$204>> => {\n        const body = Object.entries(settingsChanges).reduce<Api2Paths.ApiV2Settings.Put.RequestBody>(\n            (acc, [key, value]) => {\n                acc.push({\n                    // @ts-ignore\n                    name: key,\n                    // @ts-ignore\n                    value,\n                });\n\n                return acc;\n            },\n            [],\n        );\n\n        return this.doFetch<Api2Paths.ApiV2Settings.Put.Responses.$204>({\n            method: 'PUT',\n            path: '/v2/settings',\n            data: body,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    fetchBrokerOrdersPage = async (\n        query: FixPageableCommonQueryT & Api2Paths.ApiV2BrokerOrderFilter.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerOrderFilter.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerOrderFilter.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/order/filter`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    getBrokerOrderDetails = async (\n        orderId: Api2Paths.ApiV2BrokerOrder$OrderId.Get.Parameters.OrderId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerOrder$OrderId.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerOrder$OrderId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/order/${orderId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    getDoneStatistics = async (\n        query: ApiPaths.ApiV1BrokerStatisticsRatesDone.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerStatisticsRatesDone.Get.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1BrokerStatisticsRatesDone.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/statistics/rates/done`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    getRejectStatistics = async (\n        query: ApiPaths.ApiV1BrokerStatisticsRatesReject.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerStatisticsRatesReject.Get.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1BrokerStatisticsRatesReject.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/statistics/rates/reject`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    deleteContact = async (\n        contactId: ApiPaths.ApiV1BrokerContact$Id.Delete.Parameters.Id,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerContact$Id.Delete.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1BrokerContact$Id.Delete.Responses.$200>({\n            method: 'DELETE',\n            path: `/v1/broker/contact/${contactId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    deleteUser = async (\n        userId: ApiPaths.ApiV1BrokerUser$Id.Delete.Parameters.Id,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerUser$Id.Delete.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1BrokerUser$Id.Delete.Responses.$200>({\n            method: 'DELETE',\n            path: `/v1/broker/user/${userId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    cancelUserInvite = async (\n        userId: ApiPaths.ApiV1BrokerUser$UserIdCancelInvite.Delete.Parameters.UserId,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerUser$UserIdCancelInvite.Delete.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1BrokerUser$UserIdCancelInvite.Delete.Responses.$200>({\n            method: 'DELETE',\n            path: `/v1/broker/user/${userId}/cancel-invite`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    restoreUser = async (\n        userId: ApiPaths.ApiV1BrokerUser$IdRestore.Put.Parameters.Id,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerUser$IdRestore.Put.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1BrokerUser$IdRestore.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v1/broker/user/${userId}/restore`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    updateContact = async (\n        contactId: ApiPaths.ApiV1BrokerContact$ContactId.Put.Parameters.ContactId,\n        contactChanges: ApiPaths.ApiV1BrokerContact$ContactId.Put.RequestBody,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerContact$ContactId.Put.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1BrokerContact$ContactId.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v1/broker/contact/${contactId}`,\n            data: contactChanges,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    assignUserRole = async (\n        userId: Api2Paths.ApiV2BrokerUsers$UserIdAssignRole.Post.Parameters.UserId,\n        newRole: Api2Paths.ApiV2BrokerUsers$UserIdAssignRole.Post.Parameters.NewRole,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerUsers$UserIdAssignRole.Post.Responses.$200>> => {\n        const query: Api2Paths.ApiV2BrokerUsers$UserIdAssignRole.Post.QueryParameters = {\n            newRole,\n        };\n        return this.doFetch<Api2Paths.ApiV2BrokerUsers$UserIdAssignRole.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/broker/users/${userId}/assign-role`,\n            query,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    fetchContactDetails = async (\n        contactId: ApiPaths.ApiV1BrokerContact$Id.Get.Parameters.Id,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerContact$Id.Get.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1BrokerContact$Id.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/contact/${contactId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchContactDetailsByUserId = async (\n        userId: ApiPaths.ApiV1BrokerUser$IdContact.Put.Parameters.Id,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerUser$IdContact.Put.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1BrokerUser$IdContact.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v1/broker/user/${userId}/contact`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchDocuments = async (\n        companyId: ApiPaths.ApiV1Broker$CompanyIdDocuments.Get.Parameters.CompanyId,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1Broker$CompanyIdDocuments.Get.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1Broker$CompanyIdDocuments.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/${companyId}/documents`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchDocument = async (\n        documentId: ApiPaths.ApiV1BrokerDocument$DocumentIdGetFile.Get.Parameters.DocumentId,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerDocument$DocumentIdGetFile.Get.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1BrokerDocument$DocumentIdGetFile.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/document/${documentId}/getFile`,\n            expectedResponseContentType: 'blob',\n        });\n    };\n\n    approvePartnerDocument = async (\n        documentId: ApiPaths.ApiV1BrokerDocument$DocumentIdApprove.Put.Parameters.DocumentId,\n        validTill: ApiPaths.ApiV1BrokerDocument$DocumentIdApprove.Put.Parameters.ValidTill,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerDocument$DocumentIdApprove.Put.Responses.$200>> => {\n        const query: ApiPaths.ApiV1BrokerDocument$DocumentIdApprove.Put.QueryParameters = {\n            validTill,\n        };\n\n        return this.doFetch<ApiPaths.ApiV1BrokerDocument$DocumentIdApprove.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v1/broker/document/${documentId}/approve`,\n            query,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    approvePartnerEvidenceOfTax = async (\n        documentId: ApiPaths.ApiV1BrokerDocument$DocumentIdApproveEvidenceOfTax.Put.Parameters.DocumentId,\n        data: ApiPaths.ApiV1BrokerDocument$DocumentIdApproveEvidenceOfTax.Put.RequestBody,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerDocument$DocumentIdApproveEvidenceOfTax.Put.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1BrokerDocument$DocumentIdApproveEvidenceOfTax.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v1/broker/document/${documentId}/approve-evidence-of-tax`,\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    uploadDocument = async (\n        documentType: DocumentTypeEnum,\n        file: File,\n        companyId: ApiPaths.ApiV1BrokerCompany$CompanyIdDocument.Post.Parameters.CompanyId,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerCompany$CompanyIdDocument.Post.Responses.$201>> => {\n        const formData = new FormData();\n        formData.append('file', file);\n\n        const query: ApiPaths.ApiV1BrokerCompany$CompanyIdDocument.Post.QueryParameters = {\n            documentType,\n        };\n        return this.doFetch<ApiPaths.ApiV1BrokerCompany$CompanyIdDocument.Post.Responses.$201>({\n            headers: {\n                'Content-Type': 'multipart/form-data',\n            },\n            expectedResponseContentType: 'unknown',\n            data: formData,\n            method: 'POST',\n            path: `/v1/broker/company/${companyId}/document`,\n            query,\n        });\n    };\n\n    rejectPartnerDocument = async (\n        documentId: ApiPaths.ApiV1BrokerDocument$DocumentIdReject.Put.Parameters.DocumentId,\n        reason: ApiPaths.ApiV1BrokerDocument$DocumentIdReject.Put.Parameters.Reason,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerDocument$DocumentIdReject.Put.Responses.$200>> => {\n        const query: ApiPaths.ApiV1BrokerDocument$DocumentIdReject.Put.QueryParameters = {\n            reason,\n        };\n\n        return this.doFetch<ApiPaths.ApiV1BrokerDocument$DocumentIdReject.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v1/broker/document/${documentId}/reject`,\n            query,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    revokePartnerDocument = async (\n        documentId: ApiPaths.ApiV1BrokerDocument$DocumentIdRevoke.Put.Parameters.DocumentId,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerDocument$DocumentIdRevoke.Put.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1BrokerDocument$DocumentIdRevoke.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v1/broker/document/${documentId}/revoke`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    updatePartnerDocument = async (\n        documentId: ApiPaths.ApiV1BrokerDocument$DocumentIdUpdate.Post.Parameters.DocumentId,\n        data: ApiPaths.ApiV1BrokerDocument$DocumentIdUpdate.Post.RequestBody,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerDocument$DocumentIdUpdate.Post.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1BrokerDocument$DocumentIdUpdate.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/broker/document/${documentId}/update`,\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    findCarriersByName = async (\n        textSearch: Api2Paths.ApiV2BrokerCompanyFilter.Get.Parameters.TextSearch,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyFilter.Get.Responses.$200>> => {\n        const query: FixPageableCommonQueryT & Api2Paths.ApiV2BrokerCompanyFilter.Get.QueryParameters = {\n            size: 100,\n            includeProfileTypes: [PartnerTypeEnum.carrier],\n            textSearch,\n        };\n\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyFilter.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v2/broker/company/filter',\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    findShippersByName = async (\n        textSearch: Api2Paths.ApiV2BrokerCompanyFilter.Get.Parameters.TextSearch,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyFilter.Get.Responses.$200>> => {\n        const query: FixPageableCommonQueryT & Api2Paths.ApiV2BrokerCompanyFilter.Get.QueryParameters = {\n            size: 100,\n            includeProfileTypes: [PartnerTypeEnum.shipper],\n            textSearch,\n        };\n\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyFilter.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v2/broker/company/filter',\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    findPartnersByName = async (\n        textSearch: Api2Paths.ApiV2BrokerCompanyFilter.Get.Parameters.TextSearch,\n        includeProfileTypes?: Api2Paths.ApiV2BrokerCompanyFilter.Get.Parameters.IncludeProfileTypes,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanyFilter.Get.Responses.$200>> => {\n        const query: FixPageableCommonQueryT & Api2Paths.ApiV2BrokerCompanyFilter.Get.QueryParameters = {\n            size: 100,\n            includeProfileTypes,\n            textSearch,\n        };\n\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanyFilter.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v2/broker/company/filter',\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    findPartnerUsersByName = async (\n        companyId: Api2Paths.ApiV2BrokerCompany$CompanyIdContacts.Get.Parameters.CompanyId,\n        query: Api2Paths.ApiV2BrokerCompany$CompanyIdContacts.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompany$CompanyIdContacts.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompany$CompanyIdContacts.Get.Responses.$200>({\n            method: 'GET',\n            query,\n            path: `/v2/broker/company/${companyId}/contacts`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchCarrierContracts = async (\n        partnerId: Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts.Get.Parameters.CarrierId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/companies/${partnerId}/carrier-contracts`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchCarrierApprovedContracts = async (\n        partnerId: Api2Paths.ApiV1BrokerCompanies$CarrierIdApprovedCarrierContracts.Get.Parameters.CarrierId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerCompanies$CarrierIdApprovedCarrierContracts.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerCompanies$CarrierIdApprovedCarrierContracts.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/companies/${partnerId}/approved-carrier-contracts`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchCarrierContractDetails = async (\n        carrierId: Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractId.Get.Parameters.CarrierId,\n        contractId: Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractId.Get.Parameters.ContractId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractId.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/companies/${carrierId}/carrier-contracts/${contractId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    updateCarrierContract = async (\n        carrierId: Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractId.Put.Parameters.CarrierId,\n        contractId: Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractId.Put.Parameters.ContractId,\n        data: Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractId.Put.RequestBody,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractId.Put.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractId.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v1/broker/companies/${carrierId}/carrier-contracts/${contractId}`,\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    revokeCarrierContract = async (\n        carrierId: Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractIdRevoke.Put.Parameters.CarrierId,\n        contractId: Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractIdRevoke.Put.Parameters.ContractId,\n        data: Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractIdRevoke.Put.RequestBody,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractIdRevoke.Put.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractIdRevoke.Put.Responses.$200>(\n            {\n                method: 'PUT',\n                path: `/v1/broker/companies/${carrierId}/carrier-contracts/${contractId}/revoke`,\n                data,\n                expectedResponseContentType: 'unknown',\n            },\n        );\n    };\n\n    rejectCarrierContract = async (\n        carrierId: Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractIdReject.Put.Parameters.CarrierId,\n        contractId: Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractIdReject.Put.Parameters.ContractId,\n        query: Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractIdReject.Put.QueryParameters,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractIdReject.Put.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractIdReject.Put.Responses.$200>(\n            {\n                method: 'PUT',\n                path: `/v1/broker/companies/${carrierId}/carrier-contracts/${contractId}/reject`,\n                query,\n                expectedResponseContentType: 'unknown',\n            },\n        );\n    };\n\n    approveCarrierContract = async (\n        carrierId: Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractIdApprove.Put.Parameters.CarrierId,\n        contractId: Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractIdApprove.Put.Parameters.ContractId,\n        body: Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractIdApprove.Put.RequestBody,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractIdApprove.Put.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractIdApprove.Put.Responses.$200>(\n            {\n                method: 'PUT',\n                path: `/v1/broker/companies/${carrierId}/carrier-contracts/${contractId}/approve`,\n                data: body,\n                expectedResponseContentType: 'unknown',\n            },\n        );\n    };\n\n    fetchVehicleSchedule = async (\n        vehicleId: ApiPaths.ApiV2CarrierVehiclescheduleVehicle$VehicleId.Get.Parameters.VehicleId,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV2CarrierVehiclescheduleVehicle$VehicleId.Get.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV2CarrierVehiclescheduleVehicle$VehicleId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/vehicleschedule/vehicle/${vehicleId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchVehicleScheduleAroundDate = async (\n        vehicleId: ApiPaths.ApiV2BrokerVehiclescheduleVehicle$VehicleIdAroundDate.Get.Parameters.VehicleId,\n        date: ApiPaths.ApiV2BrokerVehiclescheduleVehicle$VehicleIdAroundDate.Get.Parameters.DateOfInterest,\n    ): Promise<\n        TranziitApiResultT<ApiPaths.ApiV2BrokerVehiclescheduleVehicle$VehicleIdAroundDate.Get.Responses.$200>\n    > => {\n        const query: ApiPaths.ApiV2BrokerVehiclescheduleVehicle$VehicleIdAroundDate.Get.QueryParameters = {\n            dateOfInterest: date,\n        };\n\n        return this.doFetch<ApiPaths.ApiV2BrokerVehiclescheduleVehicle$VehicleIdAroundDate.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/vehicleschedule/vehicle/${vehicleId}/around-date`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    getTransportOrderDetails = async (\n        carrierId: Api2Paths.ApiV2BrokerTransportationOrders$CarrierId$TransportationOrderId.Get.Parameters.CarrierId,\n        transportOrderId: Api2Paths.ApiV2BrokerTransportationOrders$CarrierId$TransportationOrderId.Get.Parameters.TransportationOrderId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerTransportationOrders$CarrierId$TransportationOrderId.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2BrokerTransportationOrders$CarrierId$TransportationOrderId.Get.Responses.$200>(\n            {\n                method: 'GET',\n                path: `/v2/broker/transportation-orders/${carrierId}/${transportOrderId}`,\n                expectedResponseContentType: 'json',\n            },\n        );\n    };\n\n    fetchRFQDetails = async (\n        id: Api2Paths.ApiV2BrokerRfqs$RfqId.Get.Parameters.RfqId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerRfqs$RfqId.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerRfqs$RfqId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/rfqs/${id}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchRFQsStats = async (): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerRfqsCounts.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerRfqsCounts.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/rfqs/counts`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchDocumentsDict = async (\n        partnerType: ApiPartnerTypeT,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerDictdocuments.Get.Responses.$200>> => {\n        const query: ApiPaths.ApiV1BrokerDictdocuments.Get.QueryParameters = {\n            companyType: partnerType,\n        };\n\n        return this.doFetch<ApiPaths.ApiV1BrokerDictdocuments.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/dictdocuments`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    invitePartnerDriver = async (\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        companyId: TODO,\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        newDriver: TODO,\n    ): Promise<TranziitApiResultT<NOT_IMPLEMENTED_TYPE>> => {\n        return throwNotImplementedError();\n    };\n\n    deletePartnerDriver = async (\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        companyId: TODO,\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        driverId: TODO,\n    ): Promise<TranziitApiResultT<NOT_IMPLEMENTED_TYPE>> => {\n        return throwNotImplementedError();\n    };\n\n    archivePartnerDriver = async (\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        companyId: TODO,\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        driverId: TODO,\n    ): Promise<TranziitApiResultT<NOT_IMPLEMENTED_TYPE>> => {\n        return throwNotImplementedError();\n    };\n\n    activatePartnerDriver = async (\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        companyId: TODO,\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        driverId: TODO,\n    ): Promise<TranziitApiResultT<NOT_IMPLEMENTED_TYPE>> => {\n        return throwNotImplementedError();\n    };\n\n    updatePartnerDriver = async (\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        driverId: TODO,\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        driverChanges: TODO,\n    ): Promise<TranziitApiResultT<NOT_IMPLEMENTED_TYPE>> => {\n        return throwNotImplementedError();\n    };\n\n    fetchDriversPage = async (\n        companyId: Api2Paths.ApiV2BrokerDrivers$CarrierCompanyId.Get.Parameters.CarrierCompanyId,\n        query: OverwritePageRequestT<Api2Paths.ApiV2BrokerDrivers$CarrierCompanyId.Get.QueryParameters>,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerDrivers$CarrierCompanyId.Get.Responses.$200>> => {\n        // conflict statuses in filters\n        if (query.statuses?.length === 0) {\n            return [null, { content: [] }];\n        }\n\n        return this.doFetch<Api2Paths.ApiV2BrokerDrivers$CarrierCompanyId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/drivers/${companyId}`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchPartnerDriverDetails = async (\n        companyId: Api2Paths.ApiV2BrokerDrivers$CarrierCompanyId$DriverId.Get.Parameters.CarrierCompanyId,\n        driverId: Api2Paths.ApiV2BrokerDrivers$CarrierCompanyId$DriverId.Get.Parameters.DriverId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerDrivers$CarrierCompanyId$DriverId.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerDrivers$CarrierCompanyId$DriverId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/drivers/${companyId}/${driverId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    searchDriver = async (\n        companyId: Api2Paths.ApiV2BrokerDrivers$CarrierCompanyId.Get.Parameters.CarrierCompanyId,\n        query: OverwritePageRequestWithSortT<Api2Paths.ApiV2BrokerDrivers$CarrierCompanyId.Get.QueryParameters>,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerDrivers$CarrierCompanyId.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerDrivers$CarrierCompanyId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/drivers/${companyId}`,\n            expectedResponseContentType: 'json',\n            query,\n        });\n    };\n\n    invitePartner = async (\n        data: Api2Paths.ApiV2BrokerCompanySendInvite.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanySendInvite.Post.Responses.$204>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanySendInvite.Post.Responses.$204>({\n            method: 'POST',\n            path: '/v2/broker/company/send-invite',\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    fetchBrokerOrdersStatistics = async (): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2BrokerOrderStatistic.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2BrokerOrderStatistic.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/order/statistic`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    updateAdditionalService = async (\n        bodyData: Api2Paths.ApiV2DictCarrierAddservices.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2DictCarrierAddservices.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2DictCarrierAddservices.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v2/dict-carrier-addservices`,\n            data: bodyData,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    fetchAdditionalServices = async (): Promise<\n        TranziitApiResultT<Api2Paths.ApiV2DictCarrierAddservicesByType.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV2DictCarrierAddservicesByType.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v2/dict-carrier-addservices/by-type',\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    checkPartnerTrailerGPSStatus = async (\n        plateNumber: Api2Paths.ApiV2CarrierTrailersHasGps.Get.Parameters.PlateNumber,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrailersHasGps.Get.Responses.$200>> => {\n        const query: Api2Paths.ApiV2CarrierTrailersHasGps.Get.QueryParameters = {\n            plateNumber,\n        };\n\n        return this.doFetch<Api2Paths.ApiV2CarrierTrailersHasGps.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v2/carrier/trailers/has-gps',\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    checkPartnerTruckGPSStatus = async (\n        plateNumber: Api2Paths.ApiV2CarrierTrucksHasGps.Get.Parameters.PlateNumber,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2CarrierTrucksHasGps.Get.Responses.$200>> => {\n        const query: Api2Paths.ApiV2CarrierTrucksHasGps.Get.QueryParameters = {\n            plateNumber,\n        };\n\n        return this.doFetch<Api2Paths.ApiV2CarrierTrucksHasGps.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v2/carrier/trucks/has-gps',\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    addVehicleScheduleEvent = async (\n        data: ApiPaths.ApiV2BrokerVehiclescheduleVehicle.Post.RequestBody,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV2BrokerVehiclescheduleVehicle.Post.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV2BrokerVehiclescheduleVehicle.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v2/broker/vehicleschedule/vehicle`,\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    cancelVehicleScheduleEvent = async (data: any): Promise<TranziitApiResultT<any>> => {\n        // TODO wait backend api\n        await new Promise<void>((resolve) => {\n            setTimeout(() => {\n                resolve();\n            }, 1000);\n        });\n        return Promise.resolve([null, null]);\n    };\n\n    fetchPartnerRFQCount = async (\n        companyId: ApiPaths.ApiV1BrokerCompanies$CompanyIdRfqCount.Get.PathParameters['companyId'],\n        query: ApiPaths.ApiV1BrokerCompanies$CompanyIdRfqCount.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerCompanies$CompanyIdRfqCount.Get.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1BrokerCompanies$CompanyIdRfqCount.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/companies/${companyId}/rfq/count`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    sentTransportOrderToSpot = async (\n        tourId: Api2Paths.ApiV2SpotTours$TourIdSendToSpot.Post.Parameters.TourId,\n        data: Api2Paths.ApiV2SpotTours$TourIdSendToSpot.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2SpotTours$TourIdSendToSpot.Post.Responses.$204>> => {\n        return this.doFetch<Api2Paths.ApiV2SpotTours$TourIdSendToSpot.Post.Responses.$204>({\n            method: 'POST',\n            path: `/v2/spot/tours/${tourId}/send-to-spot`,\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    fetchRFQsPage = async (\n        query: OverwritePageRequestWithSortT<Api2Paths.ApiV2BrokerRfqs.Get.QueryParameters>,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerRfqs.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerRfqs.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v2/broker/rfqs',\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchBrokerInvoicesPage = async (\n        apiFetchOrdersRequest: OverwritePageRequestWithSortT<ApiPaths.ApiV1BrokerStripeInvoices.Get.QueryParameters>,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerStripeInvoices.Get.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1BrokerStripeInvoices.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/stripe/invoices`,\n            query: apiFetchOrdersRequest,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchCarrierContract = async (\n        carrierId: Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractIdSourceFile.Get.Parameters.CarrierId,\n        contractId: Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractIdSourceFile.Get.Parameters.ContractId,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractIdSourceFile.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts$ContractIdSourceFile.Get.Responses.$200>(\n            {\n                method: 'GET',\n                path: `/v1/broker/companies/${carrierId}/carrier-contracts/${contractId}/source-file`,\n                expectedResponseContentType: 'blob',\n            },\n        );\n    };\n\n    fetchShipperContract = async (\n        shipperId: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdSourceFile.Get.Parameters.ShipperId,\n        contractId: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdSourceFile.Get.Parameters.ContractId,\n    ): Promise<\n        TranziitApiResultT<ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdSourceFile.Get.Responses.$200>\n    > => {\n        return this.doFetch<ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdSourceFile.Get.Responses.$200>(\n            {\n                method: 'GET',\n                path: `/v1/broker/companies/${shipperId}/shipper-contracts/${contractId}/source-file`,\n                expectedResponseContentType: 'blob',\n            },\n        );\n    };\n\n    uploadCarrierContract = async (\n        file: File,\n        carrierId: Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts.Post.Parameters.CarrierId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts.Post.Responses.$200>> => {\n        const formData = new FormData();\n        formData.append('file', file);\n\n        return this.doFetch<Api2Paths.ApiV1BrokerCompanies$CarrierIdCarrierContracts.Post.Responses.$200>({\n            headers: {\n                'Content-Type': 'multipart/form-data',\n            },\n            expectedResponseContentType: 'unknown',\n            data: formData,\n            method: 'POST',\n            path: `/v1/broker/companies/${carrierId}/carrier-contracts`,\n        });\n    };\n\n    fetchPartnerShipperContracts = async (\n        shipperId: ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts.Get.Parameters.ShipperId,\n        query: OverwritePageRequestWithSortT<ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts.Get.QueryParameters>,\n    ): Promise<TranziitApiResultT<ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts.Get.Responses.$200>> => {\n        return this.doFetch<ApiPaths.ApiV1BrokerCompanies$ShipperIdShipperContracts.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/companies/${shipperId}/shipper-contracts`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    createShipperContractLaneRFQ = async (\n        shipperId: Api2Paths.ApiV1BrokerCompanies$ShipperIdLaneQuotationsSync.Post.Parameters.ShipperId,\n        data: Api2Paths.ApiV1BrokerCompanies$ShipperIdLaneQuotationsSync.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerCompanies$ShipperIdLaneQuotationsSync.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerCompanies$ShipperIdLaneQuotationsSync.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/broker/companies/${shipperId}/lane-quotations-sync`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    fetchShipperContractLaneRFQOffersAverage = async (\n        rfqId: Api2Paths.ApiV2Rfqs$RfqIdOffersAverage.Get.Parameters.RfqId,\n        query: Api2Paths.ApiV2Rfqs$RfqIdOffersAverage.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2Rfqs$RfqIdOffersAverage.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2Rfqs$RfqIdOffersAverage.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/rfqs/${rfqId}/offers/average`,\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    createShipperContractLane = async (\n        shipperId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes.Post.Parameters.ShipperId,\n        contractId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes.Post.Parameters.ContractId,\n        data: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes.Post.RequestBody,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes.Post.Responses.$201>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes.Post.Responses.$201>(\n            {\n                method: 'POST',\n                path: `/v1/broker/companies/${shipperId}/shipper-contracts/${contractId}/lanes`,\n                data,\n                expectedResponseContentType: 'unknown',\n            },\n        );\n    };\n\n    fetchPartnerShipperContractLanes = async (\n        shipperId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes.Get.Parameters.ShipperId,\n        contractId: Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes.Get.Parameters.ContractId,\n        query: OverwritePageRequestWithSortT<Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes.Get.QueryParameters>,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerCompanies$ShipperIdShipperContracts$ContractIdLanes.Get.Responses.$200>(\n            {\n                method: 'GET',\n                path: `/v1/broker/companies/${shipperId}/shipper-contracts/${contractId}/lanes`,\n                query,\n                expectedResponseContentType: 'json',\n            },\n        );\n    };\n\n    importPartnerXLSTrailers = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersImport.Post.Parameters.CarrierId,\n        file: File,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersImport.Post.Responses.$201>> => {\n        const formData = new FormData();\n        formData.append('file', file);\n\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersImport.Post.Responses.$201>({\n            headers: {\n                'Content-Type': 'multipart/form-data',\n            },\n            data: formData,\n            method: 'POST',\n            path: `/v2/broker/companies/${carrierId}/trailers/import`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    importPartnerXLSTrucks = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksImport.Post.Parameters.CarrierId,\n        file: File,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksImport.Post.Responses.$201>> => {\n        const formData = new FormData();\n        formData.append('file', file);\n\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksImport.Post.Responses.$201>({\n            headers: {\n                'Content-Type': 'multipart/form-data',\n            },\n            data: formData,\n            method: 'POST',\n            path: `/v2/broker/companies/${carrierId}/trucks/import`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    exportPartnerXLSTrailers = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersExport.Get.Parameters.CarrierId,\n        query: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersExport.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersExport.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrailersExport.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/companies/${carrierId}/trailers/export`,\n            query,\n            expectedResponseContentType: 'blob',\n        });\n    };\n\n    exportPartnerXLSTrucks = async (\n        carrierId: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksExport.Get.Parameters.CarrierId,\n        query: Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksExport.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksExport.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanies$CarrierIdTrucksExport.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v2/broker/companies/${carrierId}/trucks/export`,\n            query,\n            expectedResponseContentType: 'blob',\n        });\n    };\n\n    editOrderCreateOrGetContext = async (\n        orderId: Api2Paths.ApiV1OrderEditCreateOrGet$OrderId.Get.Parameters.OrderId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1OrderEditCreateOrGet$OrderId.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1OrderEditCreateOrGet$OrderId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/order-edit/create-or-get/${orderId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    editOrderContextAddStop = async (\n        orderId: Api2Paths.ApiV1OrderEdit$OrderIdAddStop.Post.Parameters.OrderId,\n        data: Api2Paths.ApiV1OrderEdit$OrderIdAddStop.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1OrderEdit$OrderIdAddStop.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1OrderEdit$OrderIdAddStop.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/order-edit/${orderId}/add-stop`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    editOrderContextUpdateStop = async (\n        orderId: Api2Paths.ApiV1OrderEdit$OrderIdStopByAlias$Alias.Put.Parameters.OrderId,\n        alias: Api2Paths.ApiV1OrderEdit$OrderIdStopByAlias$Alias.Put.Parameters.Alias,\n        data: Api2Paths.ApiV1OrderEdit$OrderIdStopByAlias$Alias.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1OrderEdit$OrderIdStopByAlias$Alias.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1OrderEdit$OrderIdStopByAlias$Alias.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v1/order-edit/${orderId}/stop-by-alias/${alias}`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    editOrderContextDeleteStop = async (\n        orderId: Api2Paths.ApiV1OrderEdit$OrderIdStopByAlias$Alias.Delete.Parameters.OrderId,\n        alias: Api2Paths.ApiV1OrderEdit$OrderIdStopByAlias$Alias.Delete.Parameters.Alias,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1OrderEdit$OrderIdStopByAlias$Alias.Delete.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1OrderEdit$OrderIdStopByAlias$Alias.Delete.Responses.$200>({\n            method: 'DELETE',\n            path: `/v1/order-edit/${orderId}/stop-by-alias/${alias}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    editOrderApplyContext = async (\n        orderId: Api2Paths.ApiV1OrderEdit$OrderIdApplyContext.Post.Parameters.OrderId,\n        query: Api2Paths.ApiV1OrderEdit$OrderIdApplyContext.Post.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1OrderEdit$OrderIdApplyContext.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1OrderEdit$OrderIdApplyContext.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/order-edit/${orderId}/apply-context`,\n            expectedResponseContentType: 'unknown',\n            query,\n        });\n    };\n\n    editOrderDeleteContext = async (\n        orderId: Api2Paths.ApiV1OrderEdit$OrderId.Delete.Parameters.OrderId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1OrderEdit$OrderId.Delete.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1OrderEdit$OrderId.Delete.Responses.$200>({\n            method: 'DELETE',\n            path: `/v1/order-edit/${orderId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    editOrderUpdateShipment = async (\n        shipmentId: Api2Paths.ApiV1OrderEditUpdateShipment$ShipmentId.Post.Parameters.ShipmentId,\n        data: Api2Paths.ApiV1OrderEditUpdateShipment$ShipmentId.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1OrderEditUpdateShipment$ShipmentId.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1OrderEditUpdateShipment$ShipmentId.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/order-edit/update-shipment/${shipmentId}`,\n            expectedResponseContentType: 'unknown',\n            data,\n        });\n    };\n\n    editOrderUpdateStopContact = async (\n        stopId: Api2Paths.ApiV1OrderEditUpdateStopContact$StopId.Post.Parameters.StopId,\n        data: Api2Paths.ApiV1OrderEditUpdateStopContact$StopId.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1OrderEditUpdateStopContact$StopId.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1OrderEditUpdateStopContact$StopId.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/order-edit/update-stop-contact/${stopId}`,\n            expectedResponseContentType: 'unknown',\n            data,\n        });\n    };\n\n    getBrokerTourDetails = async (\n        tourId: Api2Paths.ApiV1BrokerTours$TourId.Get.Parameters.TourId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerTours$TourId.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerTours$TourId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/tours/${tourId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    getBrokerToursFilter = async (\n        query?: FixPageableCommonQueryT & Api2Paths.ApiV1BrokerToursFilter.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerToursFilter.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerToursFilter.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v1/broker/tours/filter',\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    getBrokerToursStatistic = async (): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerToursStatistic.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerToursStatistic.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v1/broker/tours/statistic',\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    getDeadheadTrucks = async (\n        query: Api2Paths.ApiV1BrokerToursDeadheadTrucks.Post.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerToursDeadheadTrucks.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerToursDeadheadTrucks.Post.Responses.$200>({\n            method: 'POST',\n            path: '/v1/broker/tours/deadhead/trucks',\n            expectedResponseContentType: 'json',\n            query,\n        });\n    };\n\n    initDeadheadContext = async (\n        data: Api2Paths.ApiV1BrokerToursDeadheadInitContext.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerToursDeadheadInitContext.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerToursDeadheadInitContext.Post.Responses.$200>({\n            method: 'POST',\n            path: '/v1/broker/tours/deadhead/init-context',\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    chooseDeadheadArrivalDateTime = async (\n        contextId: Api2Paths.ApiV1BrokerToursDeadhead$ContextIdChooseArrivalDateTime.Post.Parameters.ContextId,\n        data: Api2Paths.ApiV1BrokerToursDeadhead$ContextIdChooseArrivalDateTime.Post.RequestBody,\n    ): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerToursDeadhead$ContextIdChooseArrivalDateTime.Post.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerToursDeadhead$ContextIdChooseArrivalDateTime.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/broker/tours/deadhead/${contextId}/choose-arrival-date-time`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    applyDeadheadContext = async (\n        contextId: Api2Paths.ApiV1BrokerToursDeadhead$ContextIdApplyContext.Post.Parameters.ContextId,\n        data: Api2Paths.ApiV1BrokerToursDeadhead$ContextIdApplyContext.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerToursDeadhead$ContextIdApplyContext.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerToursDeadhead$ContextIdApplyContext.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/broker/tours/deadhead/${contextId}/apply-context`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    createTeam = async (\n        data: Api2Paths.ApiV1BrokerTeamsCreate.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerTeamsCreate.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerTeamsCreate.Post.Responses.$200>({\n            method: 'POST',\n            path: '/v1/broker/teams/create',\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    updateTeam = async (\n        teamId: Api2Paths.ApiV1BrokerTeamsUpdate$TeamId.Put.Parameters.TeamId,\n        data: Api2Paths.ApiV1BrokerTeamsUpdate$TeamId.Put.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerTeamsUpdate$TeamId.Put.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerTeamsUpdate$TeamId.Put.Responses.$200>({\n            method: 'PUT',\n            path: `/v1/broker/teams/update/${teamId}`,\n            data,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    getTeamsFilter = async (\n        query: FixPageableCommonQueryT & Api2Paths.ApiV1BrokerTeamsFilter.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerTeamsFilter.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerTeamsFilter.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v1/broker/teams/filter',\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    getTeamDetails = async (\n        teamId: Api2Paths.ApiV1BrokerTeamsGet$TeamId.Get.Parameters.TeamId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerTeamsGet$TeamId.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerTeamsGet$TeamId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/teams/get/${teamId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    deleteTeam = async (\n        teamId: Api2Paths.ApiV1BrokerTeamsDelete$TeamId.Delete.Parameters.TeamId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerTeamsDelete$TeamId.Delete.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerTeamsDelete$TeamId.Delete.Responses.$200>({\n            method: 'DELETE',\n            path: `/v1/broker/teams/delete/${teamId}`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    attachPaperToShipment = async (\n        shipmentId: Api2Paths.ApiV1BrokerAttachedPapersShipment$ShipmentId.Post.Parameters.ShipmentId,\n        query: Api2Paths.ApiV1BrokerAttachedPapersShipment$ShipmentId.Post.QueryParameters,\n        data: Api2Paths.ApiV1BrokerAttachedPapersShipment$ShipmentId.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerAttachedPapersShipment$ShipmentId.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerAttachedPapersShipment$ShipmentId.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/broker/attached-papers/shipment/${shipmentId}`,\n            query,\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    attachPaperToTour = async (\n        tourId: Api2Paths.ApiV1BrokerAttachedPapersTour$TourId.Post.Parameters.TourId,\n        query: Api2Paths.ApiV1BrokerAttachedPapersTour$TourId.Post.QueryParameters,\n        data: Api2Paths.ApiV1BrokerAttachedPapersTour$TourId.Post.RequestBody,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerAttachedPapersTour$TourId.Post.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerAttachedPapersTour$TourId.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/broker/attached-papers/tour/${tourId}`,\n            query,\n            data,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    deleteAttachedPaper = async (\n        paperId: Api2Paths.ApiV1BrokerAttachedPapers$PaperIdDelete.Delete.Parameters.PaperId,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerAttachedPapers$PaperIdDelete.Delete.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerAttachedPapers$PaperIdDelete.Delete.Responses.$200>({\n            method: 'DELETE',\n            path: `/v1/broker/attached-papers/${paperId}/delete`,\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    importTenderXLSFile = async (\n        file: File,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerSimpleTender.Post.Responses.$200>> => {\n        const formData = new FormData();\n        formData.append('file', file);\n\n        return this.doFetch<Api2Paths.ApiV1BrokerSimpleTender.Post.Responses.$200>({\n            method: 'POST',\n            path: '/v1/broker/simple-tender',\n            headers: {\n                'Content-Type': 'multipart/form-data',\n            },\n            data: formData,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    getTenderStatus = async (): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerSimpleTender.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerSimpleTender.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v1/broker/simple-tender',\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    deleteTender = async (): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerSimpleTender.Delete.Responses.$204>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerSimpleTender.Delete.Responses.$204>({\n            method: 'DELETE',\n            path: '/v1/broker/simple-tender',\n            expectedResponseContentType: 'unknown',\n        });\n    };\n\n    downloadTenderXLSFile = async (): Promise<\n        TranziitApiResultT<Api2Paths.ApiV1BrokerSimpleTenderResult.Get.Responses.$200>\n    > => {\n        return this.doFetch<Api2Paths.ApiV1BrokerSimpleTenderResult.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v1/broker/simple-tender/result',\n            expectedResponseContentType: 'blob',\n        });\n    };\n\n    validateAssetTeleport = (\n        assetId: Api2Paths.ApiV1BrokerAssetsTeleportValidate$AssetId.Get.PathParameters['assetId'],\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV1BrokerAssetsTeleportValidate$AssetId.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV1BrokerAssetsTeleportValidate$AssetId.Get.Responses.$200>({\n            method: 'GET',\n            path: `/v1/broker/assets/teleport/validate/${assetId}`,\n            expectedResponseContentType: 'json',\n        });\n    };\n\n    executeAssetTeleport = (\n        assetId: Api2Paths.ApiV1BrokerAssetsTeleportExecute$AssetId.Post.PathParameters['assetId'],\n        teleportLinkedAsset?: Api2Paths.ApiV1BrokerAssetsTeleportExecute$AssetId.Post.Parameters.TeleportLinkedAsset,\n    ) => {\n        const query: Api2Paths.ApiV1BrokerAssetsTeleportExecute$AssetId.Post.QueryParameters = {\n            teleportLinkedAsset,\n        };\n\n        return this.doFetch<Api2Paths.ApiV1BrokerAssetsTeleportExecute$AssetId.Post.Responses.$200>({\n            method: 'POST',\n            path: `/v1/broker/assets/teleport/execute/${assetId}`,\n            expectedResponseContentType: 'json',\n            query,\n        });\n    };\n\n    searchExternalBusinessPartners = async (\n        query: Api2Paths.ApiV2BrokerCompanySearchBusinessPartners.Get.QueryParameters,\n    ): Promise<TranziitApiResultT<Api2Paths.ApiV2BrokerCompanySearchBusinessPartners.Get.Responses.$200>> => {\n        return this.doFetch<Api2Paths.ApiV2BrokerCompanySearchBusinessPartners.Get.Responses.$200>({\n            method: 'GET',\n            path: '/v2/broker/company/search-business-partners',\n            query,\n            expectedResponseContentType: 'json',\n        });\n    };\n}\n\nconst brokerTranziitApi = BrokerTranziitApi.getInstance();\n\nexport default brokerTranziitApi;\n","// extracted by mini-css-extract-plugin\nexport default {\"input\":\"styles__input___HHliM\",\"right-node-controls\":\"styles__right-node-controls___CURY_\",\"fadeIn\":\"styles__fadeIn___jJrti\",\"blinking\":\"styles__blinking___bJfp1\"};","import React from 'react';\nimport { RemoteFormActionsT } from 'common/utils/hooks/useRemoteFormActions';\n\nconst RemoteFormActionsContext = React.createContext<RemoteFormActionsT>({});\n\nexport default RemoteFormActionsContext;\n","export const getAssetsTrackHashByOrderId = (orderId?: OrderIdT): string => {\n    return `${orderId || ''}`;\n};\n\nexport const getAssetTrackHashByOrderId = (orderId?: OrderIdT | null, assetId?: AssetIdT | null): string => {\n    return `${orderId || ''}_${assetId || ''}`;\n};\n\nexport const getAssetsTrackHashByTransportOrderId = (transportOrderId?: TransportOrderIdT): string => {\n    return `${transportOrderId || ''}`;\n};\n\nexport const getAssetTrackHashByTransportOrderId = (\n    transportOrderId?: TransportOrderIdT | null,\n    assetId?: AssetIdT | null,\n): string => {\n    return `${transportOrderId || ''}_${assetId || ''}`;\n};\n","import { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport AsyncCountryFormatter from 'design-system/components/InfoTable/formatters/AsyncCountryFormatter/AsyncCountryFormatter';\nimport { ApiDistanceByCountryT, CountryCodeT } from 'common/utils/api/models';\nimport UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\nimport { UnitTypeEnum } from 'common/constants';\nimport { convertToKm } from 'common/utils/distance';\nimport * as React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nexport const useDistanceByCountryRows = (distanceByCountry: ApiDistanceByCountryT | null | undefined) => {\n    const { t } = useTranslation();\n\n    return React.useMemo(() => {\n        return (\n            distanceByCountry?.map(({ country, distance }): InfoTableRowT => {\n                // @ts-expect-error This comparison appears to be unintentional because the types 'Countries' and '\"null\"' have no overlap.\n                const isUnspecified = country === 'null';\n\n                return {\n                    icon: <FlagIcon countryCode={country} />,\n                    name:\n                        !country || isUnspecified ? (\n                            t('common:info-table.placeholders.unspecified')\n                        ) : (\n                            <AsyncCountryFormatter countryCode={country as CountryCodeT} />\n                        ),\n                    value: <UnitTypeCount type={UnitTypeEnum.kilometersAbbreviation} count={convertToKm(distance)} />,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.empty'), isBold: true },\n                    testSelector: `mileage-${country}`,\n                };\n            }) || []\n        );\n    }, [t, distanceByCountry]);\n};\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { FetchBrokerTeamDetailsRequestActionT } from './types';\nimport {\n    fetchBrokerTeamDetails,\n    fetchBrokerTeamDetailsBegin,\n    fetchBrokerTeamDetailsError,\n    fetchBrokerTeamDetailsSuccess,\n} from './slice';\nimport { selectBrokerTeamDetailsRequestStatus } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { normalizeTeamDetails } from 'broker-admin/store/broker-team-details/utils/normalize-team-details';\n\nfunction* fetchBrokerTeamDetailsSaga(action: FetchBrokerTeamDetailsRequestActionT): WrapGeneratorT<void> {\n    const { id, options } = action.payload;\n\n    const requestStatus: ReReturnT<typeof selectBrokerTeamDetailsRequestStatus> = yield select(\n        selectBrokerTeamDetailsRequestStatus(id),\n    );\n    if (!checkNeedRequest(requestStatus, options)) {\n        return;\n    }\n\n    yield put(fetchBrokerTeamDetailsBegin({ id }));\n\n    const [error, details]: ReturnApiT<typeof brokerTranziitApi.getTeamDetails> =\n        yield brokerTranziitApi.getTeamDetails(id);\n    if (error) {\n        yield put(fetchBrokerTeamDetailsError({ id, error }));\n    } else {\n        yield put(fetchBrokerTeamDetailsSuccess({ id, details: normalizeTeamDetails(details) }));\n    }\n}\n\nfunction* brokerTeamDetailsSaga(): WrapGeneratorT<void> {\n    yield takeEvery(fetchBrokerTeamDetails.type, fetchBrokerTeamDetailsSaga);\n}\n\nexport default brokerTeamDetailsSaga;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\nimport styles from './QuickFilters.scss';\n\nimport isEmpty from 'lodash/isEmpty';\nimport TabLabel from 'common/components/tabs/TabLabel/TabLabel';\nimport { TabsThemesEnum, TabLabelSizeEnum } from 'common/components/tabs/TabLabel/constants';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControl, {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport ArrowsIcon from 'common/icons/ArrowsIcon';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport NotificationLabel, {\n    NotificationLabelThemeEnum,\n    NotificationPropsT,\n} from '../../notifications/NotificationLabel/NotificationLabel';\nimport groupBy from 'lodash/groupBy';\nimport isEqual from 'lodash/isEqual';\nimport Button, { ButtonThemeEnum } from '../../Button/Button';\n\nconst cx = classNames.bind(styles);\n\nexport type QuickFiltersOptionT<ValueT> = {\n    id: ValueT | undefined;\n    showPriority: number;\n    hidePriority: number;\n    label: string;\n    notificationProps?: NotificationPropsT | null;\n    testSelector: string;\n};\n\nexport type PropsT<ValueT> = {\n    className?: string;\n    selectedId: ValueT | undefined;\n    onSelect: (id: ValueT | undefined) => void;\n    options: Array<QuickFiltersOptionT<ValueT>>;\n    revertSeparatorIndexes?: number[];\n    moreStatusesLabel: string;\n    testSelector?: string;\n};\n\nconst sortByShowPriorityAsc = <ValueT extends string>(\n    optionA: QuickFiltersOptionT<ValueT>,\n    optionB: QuickFiltersOptionT<ValueT>,\n): number => {\n    return optionA.showPriority - optionB.showPriority;\n};\n\ntype OptionWidthByIdT = Record<string, number>;\n\nconst getFullWidth = <ValueT extends string>(\n    options: Array<QuickFiltersOptionT<ValueT>>,\n    optionWidthById: OptionWidthByIdT,\n): number => {\n    return options.reduce((summaryWidth, option) => {\n        return summaryWidth + (optionWidthById[option.id as string] || 0);\n    }, 0);\n};\n\nconst reduceTriggerNotificationProps = <ValueT extends string>(\n    options: Array<QuickFiltersOptionT<ValueT>>,\n): null | NotificationPropsT => {\n    const notificationGroups = groupBy(options, 'notificationProps.theme');\n\n    const reduceNotificationGroup = (options: Array<QuickFiltersOptionT<ValueT>>) => {\n        return options.reduce((summary, option) => {\n            return summary + (option?.notificationProps?.count || 0);\n        }, 0);\n    };\n\n    if (notificationGroups[NotificationLabelThemeEnum.red]) {\n        return {\n            count: reduceNotificationGroup(notificationGroups[NotificationLabelThemeEnum.red]),\n            theme: NotificationLabelThemeEnum.red,\n            isShowPlusSign: true,\n        };\n    }\n\n    if (notificationGroups[NotificationLabelThemeEnum.orange]) {\n        return {\n            count: reduceNotificationGroup(notificationGroups[NotificationLabelThemeEnum.orange]),\n            theme: NotificationLabelThemeEnum.orange,\n            isShowPlusSign: true,\n        };\n    }\n\n    if (notificationGroups[NotificationLabelThemeEnum.green]) {\n        return {\n            count: reduceNotificationGroup(notificationGroups[NotificationLabelThemeEnum.green]),\n            theme: NotificationLabelThemeEnum.green,\n        };\n    }\n\n    return null;\n};\n\nconst PROXIMITY = 10;\n\n/**\n *  @deprecated use QuickFiltersButtonGroups\n * */\nconst QuickFilters = <ValueT extends string>(props: PropsT<ValueT>): React.ReactElement | null => {\n    const { selectedId, onSelect, options, className, moreStatusesLabel, testSelector, revertSeparatorIndexes } = props;\n\n    const [optionWidthById, setOptionWidthById] = React.useState<OptionWidthByIdT>({});\n\n    const [containerWidth, setContainerWidth] = React.useState<number | null>(null);\n\n    const [containerNode, setContainerNode] = React.useState<HTMLDivElement | null>(null);\n    const containerRef = React.useCallback((containerNode) => {\n        if (containerNode !== null) {\n            setContainerNode(containerNode);\n            setContainerWidth(containerNode.offsetWidth);\n        }\n    }, []);\n\n    React.useEffect(() => {\n        if (!containerNode || !containerNode.firstChild) {\n            return;\n        }\n\n        // @ts-ignore Property 'children' does not exist on type 'ChildNode'.\n        const { children } = containerNode.firstChild;\n        if (!children) {\n            return;\n        }\n\n        const widthById: Record<string, number> = {};\n\n        for (let index = 0; index < children.length; index += 1) {\n            const child = children[index];\n            const id = child?.getAttribute('data-id') || 'undefined';\n            widthById[id] = (child?.offsetWidth || 0) + 0.5; // fix subpixel problem\n        }\n\n        const newOptionWidthById = {\n            ...optionWidthById,\n            ...widthById,\n        };\n\n        if (!isEqual(newOptionWidthById, optionWidthById)) {\n            setOptionWidthById(newOptionWidthById);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [containerNode, options, moreStatusesLabel]);\n\n    React.useLayoutEffect(() => {\n        const measureContainer = () => {\n            if (!containerNode) {\n                return;\n            }\n\n            setContainerWidth(containerNode.offsetWidth);\n        };\n\n        window.addEventListener('resize', measureContainer);\n\n        return () => {\n            window.removeEventListener('resize', measureContainer);\n        };\n    }, [containerNode]);\n\n    const moreRef = React.createRef<HTMLDivElement>();\n    const [moreWidth, setMoreWidth] = React.useState<number | null>(null);\n    React.useEffect(() => {\n        setMoreWidth(moreRef.current?.offsetWidth || 0);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [moreRef.current]);\n\n    const sortedOptionsByHidePriority = options.sort((optionA, optionB) => {\n        return optionA.hidePriority - optionB.hidePriority;\n    });\n\n    const isMeasuring = isEmpty(optionWidthById) || containerWidth === null;\n\n    let optionsWidthLimit = isMeasuring || containerWidth === null ? Infinity : containerWidth - PROXIMITY;\n\n    const optionsForShow = [...sortedOptionsByHidePriority];\n    const optionsForHide = [];\n\n    let optionsWidth = getFullWidth(optionsForShow, optionWidthById);\n\n    if (optionsWidth > optionsWidthLimit && moreWidth !== null) {\n        optionsWidthLimit -= moreWidth;\n    }\n\n    while (optionsWidth > optionsWidthLimit) {\n        const option = optionsForShow.pop();\n        if (option) {\n            optionsForHide.push(option);\n            const optionWidth = optionWidthById[option?.id as string];\n            optionsWidth -= optionWidth;\n        }\n    }\n\n    const sortedOptionsForShow = isMeasuring ? options : optionsForShow.sort(sortByShowPriorityAsc);\n\n    const optionsForMeasure: Array<QuickFiltersOptionT<ValueT>> = [\n        {\n            // @ts-ignore\n            id: '',\n            showPriority: 0,\n            hidePriority: 0,\n            label: '',\n        },\n    ];\n\n    const rawDropdownOptions = isMeasuring ? optionsForMeasure : optionsForHide.sort(sortByShowPriorityAsc);\n\n    const dropdownOptions = rawDropdownOptions.map((option, optionIndex) => ({\n        label: (\n            <DropdownControlOptionLabel\n                key={optionIndex}\n                isSelected={selectedId === option.id}\n                label={\n                    <>\n                        {option.notificationProps && (\n                            <NotificationLabel className={cx('notification')} {...option.notificationProps} />\n                        )}\n                        {option.label}\n                    </>\n                }\n            />\n        ),\n        onSelect: () => {\n            onSelect(option.id);\n        },\n    }));\n\n    const triggerNotificationProps = reduceTriggerNotificationProps(rawDropdownOptions);\n\n    React.useEffect(() => {\n        setMoreWidth(moreRef.current?.offsetWidth || 0);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [`${triggerNotificationProps?.count}-${triggerNotificationProps?.theme}`, moreRef.current]);\n\n    const dropdownOptionsWithSeparators = React.useMemo(() => {\n        const { length } = dropdownOptions;\n        const options: Array<DropdownControlOptionT | SpecialOptionEnum> = [...dropdownOptions];\n\n        (revertSeparatorIndexes || []).forEach((separatorIndex) => {\n            if (separatorIndex >= length) {\n                return;\n            }\n\n            const originalIndex = length - separatorIndex;\n            const originalOptions = dropdownOptions[originalIndex];\n            const index = options.findIndex((option) => option === originalOptions);\n\n            options.splice(index, 0, SpecialOptionEnum.separator);\n        });\n\n        return options;\n    }, [dropdownOptions, revertSeparatorIndexes]);\n\n    return (\n        <div className={cs(cx('wrap'), className)} ref={containerRef}>\n            <div className={cx('container', { 'container--isMeasuring': isMeasuring })}>\n                {sortedOptionsForShow.map((option, optionIndex) => (\n                    <div className={cx('option')} key={optionIndex} data-id={String(option.id)}>\n                        <TabLabel\n                            isCompact\n                            size={TabLabelSizeEnum.small}\n                            theme={TabsThemesEnum.light}\n                            testSelector={`${testSelector}_${option.testSelector}`}\n                            isActive={selectedId === option.id}\n                            onClick={() => {\n                                onSelect(option.id);\n                            }}\n                            badge={\n                                option.notificationProps?.count ? (\n                                    <NotificationLabel {...option.notificationProps} />\n                                ) : null\n                            }\n                        >\n                            {option.label}\n                        </TabLabel>\n                    </div>\n                ))}\n                <div className={cx('toggle')} ref={moreRef} data-id=\"more-statuses\">\n                    <DropdownControl\n                        options={dropdownOptionsWithSeparators}\n                        testSelector={`${testSelector}_more-statuses`}\n                        renderTrigger={(isActive, onClick) => (\n                            <Button\n                                onClick={onClick}\n                                isPressed={isActive}\n                                testSelector={`${testSelector}_more-statuses`}\n                                leftIcon={\n                                    triggerNotificationProps ? (\n                                        <NotificationLabel {...triggerNotificationProps} />\n                                    ) : null\n                                }\n                                rightIcon={<ArrowsIcon />}\n                                theme={ButtonThemeEnum.transparent}\n                            >\n                                {moreStatusesLabel}\n                            </Button>\n                        )}\n                        overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                    />\n                </div>\n            </div>\n        </div>\n    );\n};\n\n/**\n *  @deprecated use QuickFiltersButtonGroups\n * */\nexport default React.memo(QuickFilters) as typeof QuickFilters;\n","import requestStatus from 'common/utils/request-status';\nimport {\n    CarrierContractDetailsActionT,\n    CarrierContractsDetailStateT,\n    CarrierContractStateT,\n    FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_BEGIN,\n    FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_ERROR,\n    FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_SUCCESS,\n} from './types';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nexport const initialCarrierContractState: CarrierContractStateT = {\n    data: null,\n    fetchRequest: requestStatus.initial,\n};\n\nconst initialState: CarrierContractsDetailStateT = {};\n\nexport default (\n    state = initialState,\n    action: CarrierContractDetailsActionT | DestroySessionActionT,\n): CarrierContractsDetailStateT => {\n    switch (action.type) {\n        case FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_BEGIN: {\n            const { contractId } = action;\n            const carrierContractState = state[contractId] || initialCarrierContractState;\n\n            return {\n                ...state,\n                [contractId]: {\n                    ...carrierContractState,\n                    fetchRequest: requestStatus.loading,\n                },\n            };\n        }\n\n        case FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_ERROR: {\n            const { contractId, error } = action;\n            const carrierContractState = state[contractId] || initialCarrierContractState;\n\n            return {\n                ...state,\n                [contractId]: {\n                    ...carrierContractState,\n                    fetchRequest: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_SUCCESS: {\n            const { contractId, contractDetails } = action;\n            const carrierContractState = state[contractId] || initialCarrierContractState;\n\n            return {\n                ...state,\n                [contractId]: {\n                    ...carrierContractState,\n                    data: contractDetails,\n                    fetchRequest: requestStatus.ok,\n                },\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default:\n            return state;\n    }\n};\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './CommonDocumentParamsDetails.scss';\nimport { useTranslation } from 'react-i18next';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport CalendarIcon from 'common/icons/CalendarIcon';\nimport { DEFAULT_ICON_SIZE, documentsWithoutExpirySet, StyleGuideColorsEnum } from 'common/constants';\nimport { formatDate } from 'common/utils/time';\nimport { DocumentVersionT } from 'common/store/documents/models';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    actualVersion: DocumentVersionT | null;\n};\n\nconst CommonDocumentParamsDetails: React.FC<PropsT> = (props) => {\n    const { actualVersion } = props;\n\n    const { t } = useTranslation();\n\n    const isShowExpirationDate =\n        !!actualVersion?.documentType && !documentsWithoutExpirySet.has(actualVersion?.documentType);\n\n    return (\n        <>\n            {isShowExpirationDate && (\n                <ReadOnlyField\n                    icon={\n                        <CalendarIcon\n                            size={DEFAULT_ICON_SIZE}\n                            fillColor={StyleGuideColorsEnum.brandAccent}\n                            strokeColor={StyleGuideColorsEnum.brandDark}\n                        />\n                    }\n                    label={t('common:documents.details.valid-till')}\n                    value={formatDate('DD.MM.YYYY', actualVersion?.validTill)}\n                    placeholder={t('common:fields.placeholder.empty')}\n                />\n            )}\n        </>\n    );\n};\n\nexport default CommonDocumentParamsDetails;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './BaseShipperContractsLayout.scss';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { ApiShipperContractStatusT, ShipperContractsSortEnum } from 'common/utils/api/models';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { QueryFiltersKeysEnum, QueryFiltersT, QueryKeysEnum } from './query-models';\nimport { prepareFetchPageQuery } from './prepare-fetch-page-query';\nimport {\n    createJsonParams,\n    createPageNumberParam,\n    createSortParams,\n    PageSortT,\n    SortDirectionEnum,\n} from 'common/utils/query';\nimport SortDropdown, {\n    SortDropdownOptionT,\n    SortDropdownOverlayPositionEnum,\n} from 'common/components/Table/SortDropdown/SortDropdown';\nimport ListPageLayout from 'common/layouts/ListPage/ListPageLayout/ListPageLayout';\nimport ListPageHeaderLayout from 'common/layouts/ListPage/ListPageHeaderLayout/ListPageHeaderLayout';\nimport SearchControl from 'common/components/Table/SearchControl/SearchControl';\nimport TableMessage, { TableMessageIconsEnum } from 'common/components/Table/TableMessage/TableMessage';\nimport TableError from 'common/components/Table/TableError/TableError';\nimport StickyFooter from 'common/layouts/LeftMenuLayout/StickyFooter/StickyFooter';\nimport Pagination from 'common/components/Table/Pagination/Pagination';\nimport BaseShipperContractsTable from './BaseShipperContractsTable/BaseShipperContractsTable';\nimport { useQueryParams } from 'use-query-params';\nimport {\n    selectShipperContractsByIds,\n    selectShipperContractsPages,\n    selectShipperContractsTotal,\n} from 'common/store/shipper-contracts/selectors';\nimport { fetchShipperContractsPage } from 'common/store/shipper-contracts/slice';\nimport {\n    shipperContractsPaginationChannel,\n    shipperContractsRefreshChannel,\n} from 'common/store/shipper-contracts/channels';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { useOpenLeftSidebar } from 'common/layouts/SideBars/hooks';\nimport { ShipperContractsTableRowT } from 'common/layouts/BaseShipperContractsLayout/BaseShipperContractsTable/models';\nimport SelectedFilters from './SelectedFilters/SelectedFilters';\nimport noop from 'lodash/noop';\nimport { isNonNil } from 'common/utils';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { checkNeedRenderEmptyState } from 'common/components/Table/utils/check-need-render-empty-state';\nimport { checkQueryFiltersKeys } from 'common/components/Table/utils/check-query-filters-keys';\nimport { logWarning } from 'common/utils/logger';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    contactStatusesAttentionSet?: Set<ApiShipperContractStatusT | null>;\n    onUploadShipperContract?: () => void;\n\n    navigationTabs: React.ReactNode;\n\n    onOpenShipperContractDetails: (shipperContractId: ShipperContractIdT) => void;\n};\n\nconst BaseShipperContractsLayout: React.FC<PropsT> = React.memo((props) => {\n    const { navigationTabs, contactStatusesAttentionSet, onUploadShipperContract, onOpenShipperContractDetails } =\n        props;\n\n    const { partnerId, partnerType } = usePartnerContext();\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const total = useSelector(selectShipperContractsTotal(partnerId));\n    const pages = useSelector(selectShipperContractsPages(partnerId));\n    const byId = useSelector(selectShipperContractsByIds(partnerId));\n\n    const [query, changeQuery] = useQueryParams({\n        [QueryKeysEnum.shipperContractsPage]: createPageNumberParam(),\n        [QueryKeysEnum.shipperContractsSort]: createSortParams<ShipperContractsSortEnum>({\n            value: ShipperContractsSortEnum.addedDate,\n            direction: SortDirectionEnum.DESC,\n        }),\n        [QueryKeysEnum.shipperContractsFilters]: createJsonParams<QueryFiltersT>({}),\n    });\n\n    const selectedSort = query[QueryKeysEnum.shipperContractsSort];\n    const pageNumber = query[QueryKeysEnum.shipperContractsPage];\n    const queryFilters = query[QueryKeysEnum.shipperContractsFilters];\n\n    const page = pages[pageNumber];\n    const { ids, requestStatus } = page || {};\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in documentVisibilityChangeHandler');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchShipperContractsPage({ pageNumber, query, partnerId, options: { isForceUpdate: false } }));\n    }, [pageNumber, selectedSort, queryFilters, partnerId, dispatch]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const refreshPageHandler = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in refreshPageHandler');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchShipperContractsPage({ pageNumber, query, partnerId, options: { isForceUpdate: true } }));\n    }, [pageNumber, selectedSort, queryFilters, partnerId, dispatch]);\n    useChannelSubscribe(shipperContractsRefreshChannel, refreshPageHandler);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleRefreshOnError');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchShipperContractsPage({ pageNumber, query, partnerId, options: { isForceUpdate: true } }));\n    }, [pageNumber, selectedSort, queryFilters, partnerId, dispatch]);\n\n    const goToPage = React.useCallback(\n        (pageNumber: PageNumberT) => {\n            changeQuery({\n                [QueryKeysEnum.shipperContractsPage]: pageNumber,\n            });\n        },\n        [changeQuery],\n    );\n\n    const setPageHandler = React.useCallback(\n        ({ pageNumber }: InferChannelEventT<typeof shipperContractsPaginationChannel>) => {\n            goToPage(pageNumber);\n        },\n        [goToPage],\n    );\n    useChannelSubscribe(shipperContractsPaginationChannel, setPageHandler);\n\n    React.useEffect(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in BaseShipperContractsLayout useEffect');\n            return (): void => {};\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchShipperContractsPage({ pageNumber, query, partnerId }));\n\n        return (): void => {\n            // TODO reset\n        };\n    }, [dispatch, pageNumber, selectedSort, queryFilters, partnerId]);\n\n    const shipperContractsTableRows = React.useMemo((): Array<ShipperContractsTableRowT> => {\n        return (ids || []).map((id) => byId[id]).filter(isNonNil);\n    }, [ids, byId]);\n\n    const sortOptions: Array<SortDropdownOptionT<ShipperContractsSortEnum>> = React.useMemo(\n        () => [\n            {\n                label: t('common:shipper-contracts.table.sorts.added-date'),\n                value: ShipperContractsSortEnum.addedDate,\n            },\n            {\n                label: t('common:shipper-contracts.table.sorts.valid-till-date'),\n                value: ShipperContractsSortEnum.validTillDate,\n            },\n        ],\n        [t],\n    );\n\n    const handleSelectSort = (sort: PageSortT<ShipperContractsSortEnum>) => {\n        changeQuery({\n            [QueryKeysEnum.shipperContractsPage]: 0,\n            [QueryKeysEnum.shipperContractsSort]: sort,\n        });\n    };\n\n    const handleSetQueryFilters = (selectedQueryFilters: QueryFiltersT) => {\n        changeQuery({\n            [QueryKeysEnum.shipperContractsPage]: 0,\n            [QueryKeysEnum.shipperContractsFilters]: selectedQueryFilters,\n        });\n    };\n\n    const updateQueryFilters = (queryFiltersChanges: QueryFiltersT) => {\n        const prevQueryFilters = query[QueryKeysEnum.shipperContractsFilters] || {};\n\n        const queryFilters = {\n            ...prevQueryFilters,\n            ...queryFiltersChanges,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.shipperContractsPage]: 0,\n            [QueryKeysEnum.shipperContractsFilters]: queryFilters,\n        });\n    };\n\n    const handleSearch = (searchText: string) => {\n        updateQueryFilters({\n            [QueryFiltersKeysEnum.text]: searchText || undefined,\n        });\n    };\n\n    const handleOpenShipperContractDetails = (row: ShipperContractsTableRowT) => {\n        onOpenShipperContractDetails(row.id);\n    };\n\n    const handleOpenUserDetails = (userId: UserIdT) => {\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in handleOpenUserDetails');\n            return;\n        }\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId,\n            partnerType,\n            userId,\n        });\n    };\n\n    const renderEmptyState = () => {\n        if (!checkNeedRenderEmptyState(shipperContractsTableRows, requestStatus)) {\n            return null;\n        }\n\n        if (requestStatus?.error) {\n            return <TableError error={requestStatus?.error} onRetry={handleRefreshOnError} />;\n        }\n\n        const { hasAnyFilters } = checkQueryFiltersKeys(queryFilters, [], []);\n        if (hasAnyFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.notFound}\n                    title={t('common:shipper-contracts.table.messages.not-found.title')}\n                    description={t('common:shipper-contracts.table.messages.not-found.description')}\n                    isShowAction\n                    actionTitle={t('common:shipper-contracts.table.messages.not-found.action')}\n                    actionTheme={ButtonThemeEnum.secondary}\n                    onActionClick={() => handleSetQueryFilters({})}\n                    testSelector=\"not-found\"\n                />\n            );\n        }\n\n        return (\n            <TableMessage\n                iconType={TableMessageIconsEnum.empty}\n                title={t('common:shipper-contracts.table.messages.empty.title')}\n                description={t('common:shipper-contracts.table.messages.empty.description')}\n                isShowAction={!!onUploadShipperContract}\n                actionTitle={t('common:shipper-contracts.table.messages.empty.action')}\n                actionTheme={ButtonThemeEnum.primary}\n                onActionClick={onUploadShipperContract || noop}\n                testSelector=\"empty\"\n            />\n        );\n    };\n\n    return (\n        <>\n            <ListPageLayout>\n                <ListPageHeaderLayout\n                    leftToolsNode={\n                        <>\n                            <div>{navigationTabs}</div>\n                            <SortDropdown\n                                overlayPosition={SortDropdownOverlayPositionEnum.left}\n                                selectedValue={selectedSort}\n                                options={sortOptions}\n                                onSelect={handleSelectSort}\n                            />\n                            <SearchControl\n                                placeholder={t('common:shipper-contracts.table.search.placeholder')}\n                                searchText={queryFilters[QueryFiltersKeysEnum.text]}\n                                onChangeSearchText={handleSearch}\n                            />\n                        </>\n                    }\n                    filterTagsNode={\n                        <SelectedFilters\n                            isCompact\n                            queryFilters={queryFilters}\n                            setQueryFilters={handleSetQueryFilters}\n                        />\n                    }\n                    rightToolsNode={\n                        onUploadShipperContract ? (\n                            <Button theme={ButtonThemeEnum.primary} onClick={onUploadShipperContract}>\n                                {t('common:shipper-contracts.actions.upload')}\n                            </Button>\n                        ) : null\n                    }\n                />\n                {renderEmptyState()}\n                <BaseShipperContractsTable\n                    tableName=\"shipper-contracts\"\n                    rows={shipperContractsTableRows}\n                    onSelectRow={handleOpenShipperContractDetails}\n                    onOpenUserDetails={handleOpenUserDetails}\n                    isLoading={requestStatus?.loading}\n                    contactStatusesAttentionSet={contactStatusesAttentionSet}\n                />\n            </ListPageLayout>\n            <StickyFooter>\n                <Pagination current={pageNumber} count={total?.pageCount} goToPage={goToPage} />\n            </StickyFooter>\n        </>\n    );\n});\n\nexport default BaseShipperContractsLayout;\n","import React from 'react';\n\nconst ContentRootContext = React.createContext<HTMLDivElement | null>(null);\n\nexport default ContentRootContext;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    fillOpacity?: number;\n    fillColor: StyleGuideColorsEnum;\n};\n\nconst DriverIcon: React.FC<PropsT> = (props) => {\n    const { size, fillColor, fillOpacity, ...rest } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\" {...rest}>\n            <path\n                fill={fillColor}\n                fillOpacity={fillOpacity || 1}\n                fillRule=\"evenodd\"\n                d=\"M10 2a8 8 0 100 16 8 8 0 000-16zm0 2a5.94 5.94 0 014.465 2.022A6.086 6.086 0 0115.633 8H4.367c.26-.727.653-1.39 1.151-1.959A5.942 5.942 0 0110 4zm0 7a1 1 0 110-2 1 1 0 110 2zm-6-1c2.732 0 4.945 2.633 4.992 5.899C6.164 15.414 4 12.963 4 10zm7.008 5.899C11.055 12.633 13.268 10 16 10c0 2.963-2.164 5.414-4.992 5.899z\"\n            />\n        </svg>\n    );\n};\n\nDriverIcon.displayName = 'DriverIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n};\n\nexport { storyProps };\nexport default DriverIcon;\n\nexport const DriverIconProps = {\n    getControlProps: ({\n        isDisabled,\n        isFocused,\n        hasError,\n        hasWarning,\n        hasSuccess,\n        hasValue,\n    }: {\n        isDisabled?: boolean;\n        isFocused?: boolean;\n        hasError?: boolean;\n        hasWarning?: boolean;\n        hasSuccess?: boolean;\n        hasValue?: boolean;\n    }): PropsT => {\n        if (hasError) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.tomatoRed,\n            };\n        }\n\n        if (hasWarning) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.orange,\n            };\n        }\n\n        if (hasSuccess) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n\n        if (isDisabled) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.slate,\n            };\n        }\n\n        return {\n            size: DEFAULT_ICON_SIZE,\n            fillColor: hasValue || isFocused ? StyleGuideColorsEnum.brandDark : StyleGuideColorsEnum.light,\n        };\n    },\n};\n\n/**\n *  @deprecated create/use ...Props class\n * */\nexport const getDriverIconProps = (preset: 'default' | 'selected'): Pick<PropsT, 'fillColor'> => {\n    switch (preset) {\n        case 'selected': {\n            return {\n                fillColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        default: {\n            return {\n                fillColor: StyleGuideColorsEnum.slate,\n            };\n        }\n    }\n};\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\n\nimport styles from './AlertContainer.scss';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    children: React.ReactNode;\n};\n\nexport const AlertContainer: React.FC<PropsT> = (props) => {\n    const { children, className } = props;\n\n    return <div className={cs(cx('container', className))}>{children}</div>;\n};\n","import * as React from 'react';\n\nconst useOnceShow = (isAllowShow: boolean) => {\n    const [isClosed, setClosed] = React.useState<boolean>(false);\n    const [isShow, setShow] = React.useState<boolean>(false);\n\n    React.useEffect(() => {\n        if (isAllowShow && !isClosed) {\n            setShow(true);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isAllowShow]);\n\n    const close = React.useCallback(() => {\n        setClosed(true);\n        setShow(false);\n    }, [setClosed, setShow]);\n\n    return {\n        isShow,\n        close,\n    };\n};\n\nexport default useOnceShow;\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const shipperContractLaneDetailsRefreshChannel = new ViewEventChannel<{\n    shipperContractId: ShipperContractIdT;\n    laneId: ShipperContractLaneIdT;\n}>();\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport ExcludeCountriesMapWidget from 'common/components/ExcludeCountriesMapWidget/ExcludeCountriesMapWidget';\nimport { CountryCodeT } from 'common/utils/api/models';\n\ntype PropsT<T extends CountryCodeT> = {\n    className?: string;\n    excludedCountries: Array<T>;\n    setExcludedCountries: (excludedCountries: Array<T>) => void;\n    additionalTagsNode?: React.ReactNode;\n};\n\nconst ExcludeCountries = <T extends CountryCodeT>(props: PropsT<T>) => {\n    const { className, excludedCountries, setExcludedCountries, additionalTagsNode } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <ExcludeCountriesMapWidget\n            className={className}\n            excludedCountries={excludedCountries}\n            setExcludedCountries={setExcludedCountries}\n            triggerLabel={t('assignment.search-form.excluded-countries.trigger')}\n            inputPlaceholder={t('assignment.search-form.excluded-countries.search-input-placeholder')}\n            additionalTagsNode={additionalTagsNode}\n        />\n    );\n};\n\nexport default React.memo(ExcludeCountries) as typeof ExcludeCountries;\n","// extracted by mini-css-extract-plugin\nexport default {\"side-bar\":\"SideBar__side-bar___tIpX8\",\"side-bar--position-left\":\"SideBar__side-bar--position-left___VRaG5\",\"side-bar--isShow\":\"SideBar__side-bar--isShow___QRFYX\",\"side-bar--position-right\":\"SideBar__side-bar--position-right___bslqo\",\"side-bar--isNarrow\":\"SideBar__side-bar--isNarrow___SCwCU\",\"side-bar--isWide\":\"SideBar__side-bar--isWide___Sk0XP\",\"content\":\"SideBar__content___f9wyb\",\"fadeIn\":\"SideBar__fadeIn___a6puv\",\"blinking\":\"SideBar__blinking___qFndy\"};","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    fetchShipperContractDetails,\n    fetchShipperContractDetailsBegin,\n    fetchShipperContractDetailsError,\n    fetchShipperContractDetailsSuccess,\n    updateShipperContractDetailsBegin,\n    updateShipperContractDetailsError,\n    updateShipperContractDetailsSuccess,\n    uploadShipperContract,\n    revokeShipperContract,\n    downloadShipperContract,\n    downloadShipperContractDetailsBegin,\n    downloadShipperContractDetailsSuccess,\n    downloadShipperContractDetailsError,\n    updateShipperContract,\n} from './slice';\nimport {\n    DownloadShipperContractActionT,\n    FetchShipperContractDetailsActionT,\n    RevokeShipperContractDetailsActionT,\n    UpdateShipperContractActionT,\n    UploadShipperContractDetailsActionT,\n} from './types';\nimport { CompanyTypeEnum } from 'common/constants';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { selectShipperContractDetailsState } from 'common/store/shipper-contract-details/selectors';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport shipperTranziitApi from 'shipper/utils/api/shipper-tranziit/api';\nimport { shipperContractsRefreshChannel } from 'common/store/shipper-contracts/channels';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAlertTypeEnum, CommonAnyAlert } from 'common/components/toasts/AlertToastsManager/models';\nimport downloadFile from 'common/utils/download-file';\nimport { carrierContractDetailsRefreshChannel } from 'common/store/carrier-contract-details/channels';\nimport { HEADERS, parseContentDispositionFilename } from 'common/utils/download-headers';\nimport { logWarning } from 'common/utils/logger';\n\nfunction getFetchShipperContractDetailsSaga(companyType: CompanyTypeEnum) {\n    return function* (action: FetchShipperContractDetailsActionT): WrapGeneratorT<void> {\n        const { partnerId, shipperContractId, options } = action.payload;\n\n        const { fetchRequest }: ReReturnT<typeof selectShipperContractDetailsState> = yield select(\n            selectShipperContractDetailsState(shipperContractId),\n        );\n        if (!checkNeedRequest(fetchRequest, options)) {\n            return;\n        }\n\n        yield put(fetchShipperContractDetailsBegin({ shipperContractId }));\n\n        let result: ReturnApiT<\n            typeof shipperTranziitApi.fetchShipperContractDetails | typeof brokerTranziitApi.fetchShipperContractDetails\n        >;\n        if (companyType === CompanyTypeEnum.shipper) {\n            result = yield shipperTranziitApi.fetchShipperContractDetails(shipperContractId);\n        } else {\n            result = yield brokerTranziitApi.fetchShipperContractDetails(partnerId, shipperContractId);\n        }\n\n        const [error, data] = result;\n\n        if (error) {\n            yield put(fetchShipperContractDetailsError({ shipperContractId, error }));\n        } else {\n            yield put(fetchShipperContractDetailsSuccess({ shipperContractId, data }));\n        }\n    };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getUploadShipperContractDetailsSaga(companyType: CompanyTypeEnum) {\n    return function* (action: UploadShipperContractDetailsActionT): WrapGeneratorT<void> {\n        const { partnerId, file, details } = action.payload;\n\n        yield put(updateShipperContractDetailsBegin({}));\n\n        const result: ReturnApiT<typeof brokerTranziitApi.uploadShipperContract> =\n            yield brokerTranziitApi.uploadShipperContract(partnerId, details, file);\n        const [error] = result;\n\n        if (error) {\n            yield put(updateShipperContractDetailsError({ error }));\n        } else {\n            yield put(updateShipperContractDetailsSuccess({}));\n\n            yield put(\n                addAlert(\n                    new CommonAnyAlert({\n                        type: CommonAlertTypeEnum.shipperContractUploaded,\n                        data: {},\n                    }),\n                ),\n            );\n        }\n\n        shipperContractsRefreshChannel.emit({});\n    };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getUpdateShipperContractDetailsSaga(companyType: CompanyTypeEnum) {\n    return function* (action: UpdateShipperContractActionT): WrapGeneratorT<void> {\n        const { partnerId, file, shipperContractId, detailsChanges } = action.payload;\n\n        yield put(updateShipperContractDetailsBegin({}));\n\n        const result: ReturnApiT<typeof brokerTranziitApi.updateShipperContract> =\n            yield brokerTranziitApi.updateShipperContract(partnerId, shipperContractId, detailsChanges, file);\n        const [error] = result;\n\n        if (error) {\n            yield put(updateShipperContractDetailsError({ error }));\n        } else {\n            yield put(updateShipperContractDetailsSuccess({}));\n\n            yield put(\n                addAlert(\n                    new CommonAnyAlert({\n                        type: CommonAlertTypeEnum.shipperContractUpdated,\n                        data: {},\n                    }),\n                ),\n            );\n        }\n\n        shipperContractsRefreshChannel.emit({});\n        carrierContractDetailsRefreshChannel.emit({ contractId: shipperContractId });\n    };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getRevokeShipperContractDetailsSaga(companyType: CompanyTypeEnum) {\n    return function* (action: RevokeShipperContractDetailsActionT): WrapGeneratorT<void> {\n        const { partnerId, shipperContractId, reason } = action.payload;\n\n        yield put(updateShipperContractDetailsBegin({}));\n\n        const result: ReturnApiT<typeof brokerTranziitApi.revokeShipperContract> =\n            yield brokerTranziitApi.revokeShipperContract(partnerId, shipperContractId, reason);\n        const [error] = result;\n\n        if (error) {\n            yield put(updateShipperContractDetailsError({ error }));\n        } else {\n            yield put(updateShipperContractDetailsSuccess({}));\n\n            yield put(\n                addAlert(\n                    new CommonAnyAlert({\n                        type: CommonAlertTypeEnum.shipperContractRevoked,\n                        data: {},\n                    }),\n                ),\n            );\n        }\n\n        shipperContractsRefreshChannel.emit({});\n        carrierContractDetailsRefreshChannel.emit({ contractId: shipperContractId });\n    };\n}\n\nfunction getDownloadShipperContractDetailsSaga(companyType: CompanyTypeEnum) {\n    return function* (action: DownloadShipperContractActionT): WrapGeneratorT<void> {\n        const { partnerId, shipperContractId } = action.payload;\n\n        yield put(downloadShipperContractDetailsBegin({}));\n\n        let response: ReturnApiT<\n            typeof shipperTranziitApi.fetchShipperContract | typeof brokerTranziitApi.fetchShipperContract\n        >;\n        if (companyType === CompanyTypeEnum.broker) {\n            response = yield brokerTranziitApi.fetchShipperContract(partnerId, shipperContractId);\n        } else {\n            response = yield shipperTranziitApi.fetchShipperContract(shipperContractId);\n        }\n        const [error, result, rawResponse] = response;\n\n        if (error) {\n            yield put(downloadShipperContractDetailsError({ error }));\n            return;\n        }\n\n        if (!rawResponse) {\n            logWarning('empty rawResponse for shipper contract download', { partnerId, shipperContractId });\n        }\n\n        const contentDispositionHeader = rawResponse?.headers.get(HEADERS.CONTENT_DISPOSITION);\n        const filename = parseContentDispositionFilename(contentDispositionHeader || '');\n        if (!filename) {\n            logWarning('empty filename for shipper contract download', {\n                partnerId,\n                shipperContractId,\n                contentDispositionHeader,\n            });\n        }\n\n        const fileTypeHeader = rawResponse?.headers.get(HEADERS.CONTENT_TYPE);\n        if (!fileTypeHeader) {\n            logWarning('empty file type for shipper contract download', {\n                partnerId,\n                shipperContractId,\n                fileTypeHeader,\n            });\n        }\n\n        if (result && filename && fileTypeHeader) {\n            downloadFile({\n                name: filename,\n                data: result,\n                type: fileTypeHeader,\n            });\n        }\n\n        yield put(downloadShipperContractDetailsSuccess({}));\n    };\n}\n\nfunction* shipperContractDetailsSaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery(fetchShipperContractDetails.type, getFetchShipperContractDetailsSaga(companyType));\n    yield takeEvery(uploadShipperContract.type, getUploadShipperContractDetailsSaga(companyType));\n    yield takeEvery(revokeShipperContract.type, getRevokeShipperContractDetailsSaga(companyType));\n    yield takeEvery(downloadShipperContract.type, getDownloadShipperContractDetailsSaga(companyType));\n    yield takeEvery(updateShipperContract.type, getUpdateShipperContractDetailsSaga(companyType));\n}\n\nexport { shipperContractDetailsSaga };\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n};\n\nconst LeftArrowIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, ...rest } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={20} height={20} viewBox=\"0 0 20 20\" {...rest}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path fill={fillColor} d=\"M16 9.25H6.872l4.193-4.192L10 4l-6 6 6 6 1.057-1.057-4.185-4.193H16z\" />\n            </g>\n        </svg>\n    );\n};\n\nLeftArrowIcon.displayName = 'LeftArrowIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default LeftArrowIcon;\n","import * as React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { USER_POSITIONS_T_MAP } from 'common/utils/users';\nimport { ContactPositionsEnum } from 'common/utils/api/models';\n\ntype PropsT = {\n    className?: string;\n    position: string;\n};\n\nconst UNKNOWN_LABEL_COLOR = PillLabelThemeEnum.light;\n\nconst UserPositionPill: React.FC<PropsT> = React.memo((props) => {\n    const { position } = props;\n\n    const { t } = useTranslation();\n\n    const positionKey = USER_POSITIONS_T_MAP[position as ContactPositionsEnum];\n\n    return (\n        <PillLabel\n            className={props.className}\n            theme={positionKey ? PillLabelThemeEnum.slate : UNKNOWN_LABEL_COLOR}\n            isSymmetrical\n        >\n            {positionKey ? t(positionKey) : position}\n        </PillLabel>\n    );\n});\n\nexport default UserPositionPill;\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"UserDropdownOptionLabel__option___Jctry\",\"option--disabled\":\"UserDropdownOptionLabel__option--disabled___IpO_5\",\"avatar\":\"UserDropdownOptionLabel__avatar___Z8TDh\",\"label\":\"UserDropdownOptionLabel__label___atAA4\",\"fadeIn\":\"UserDropdownOptionLabel__fadeIn___L9OLS\",\"blinking\":\"UserDropdownOptionLabel__blinking___TNuBZ\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PhoneCell.scss';\n\ntype PropsT = {\n    phone: string;\n    isHalfOpacity?: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nconst PhoneCell: React.FC<PropsT> = React.memo((props) => {\n    const { phone, isHalfOpacity } = props;\n\n    return <div className={cx('phone', { 'phone--isHalfOpacity': isHalfOpacity })}>{phone}</div>;\n});\n\nexport default PhoneCell;\n","import React, { MouseEvent } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './Timeline.scss';\nimport SmallDownArrow from 'common/icons/SmallDownArrow';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { getCurrentTimeOffsetMin, MS_IN_MIN } from 'common/utils/time';\nimport { EVENT_PADDING, EVENT_WIDTH, EVENTS_LEVEL_WIDTH, LEFT_PADDING, RIGHT_PADDING } from './constants';\nimport { DelimiterThemeEnum, FlagT, TimelineLevelT, TimeWindowT } from './models';\nimport { TimeWindow } from './TimeWindow/TimeWindow';\nimport { Flag } from './Flag/Flag';\nimport { Delimiter } from './Delimeter/Delimeter';\nimport { getTicksTimestamps, getHalfTicksTimestamps, TimelineTicksParamsT } from './utils';\nimport isNumber from 'lodash/isNumber';\n\nconst cx = classNames.bind(styles);\n\nconst getOffsetPx = ({\n    timestamp,\n    start,\n    viewHeight,\n    viewMs,\n}: {\n    timestamp: number;\n    start: number;\n    viewHeight: number;\n    viewMs: number;\n}): number => {\n    return ((timestamp - start) * viewHeight) / viewMs;\n};\n\nexport type PropsT<T> = {\n    start: number;\n    finish: number;\n    viewMs: number;\n    viewHeight: number;\n    delimeterMultipleMs: number;\n    utcOffset?: number | null;\n    formatter: (value: number, utcOffset: number | null) => string;\n    timeWindowLevels: Array<TimelineLevelT<T>>;\n    onTimeWindowClick: (timeWindow: TimeWindowT<T>, event: MouseEvent<HTMLDivElement>) => void;\n    onTimeWindowBlur: (timeWindow: TimeWindowT<T>, event: MouseEvent<HTMLDivElement>) => void;\n    onTimeWindowFocus: (timeWindow: TimeWindowT<T>, event: MouseEvent<HTMLDivElement>) => void;\n    flags?: Array<FlagT<T>>;\n    nowLabel: string;\n};\n\nconst Timeline = <T = unknown,>(props: PropsT<T>) => {\n    const {\n        finish,\n        start,\n        viewMs,\n        viewHeight,\n        delimeterMultipleMs,\n        formatter,\n        timeWindowLevels,\n        flags,\n        onTimeWindowClick,\n        onTimeWindowBlur,\n        onTimeWindowFocus,\n        nowLabel,\n    } = props;\n\n    const [now, setNow] = React.useState<number>(Date.now());\n\n    React.useEffect(() => {\n        const interval = setInterval(() => {\n            setNow(Date.now());\n        }, MS_IN_MIN);\n\n        return () => {\n            clearInterval(interval);\n        };\n    }, []);\n\n    const isShowNowDelimiter = start <= now && now <= finish;\n\n    const utcOffsetMin = props.utcOffset || getCurrentTimeOffsetMin();\n    const utcOffsetMs = utcOffsetMin * MS_IN_MIN;\n\n    const getHeightPx = React.useCallback(\n        (intervalMs: number): number => {\n            return (intervalMs * viewHeight) / viewMs;\n        },\n        [viewHeight, viewMs],\n    );\n\n    const getOffsetPxCallback = React.useCallback(\n        (timestamp: number): number => {\n            return getOffsetPx({ timestamp, start, viewHeight, viewMs });\n        },\n        [viewHeight, viewMs, start],\n    );\n\n    const fullTimeLineWidthPx = LEFT_PADDING + RIGHT_PADDING + EVENTS_LEVEL_WIDTH * timeWindowLevels.length;\n\n    const ticksParams = React.useMemo(\n        (): TimelineTicksParamsT => ({\n            minMs: start,\n            maxMs: finish,\n            stepMs: delimeterMultipleMs,\n            utcOffsetMs,\n        }),\n        [start, finish, delimeterMultipleMs, utcOffsetMs],\n    );\n\n    const ticks = React.useMemo(() => getTicksTimestamps(ticksParams), [ticksParams]);\n    const halfTicks = React.useMemo(() => getHalfTicksTimestamps(ticksParams), [ticksParams]);\n\n    const srcollContainerRef = React.useRef<HTMLDivElement>(null);\n    const skipScrollIntoViewRef = React.useRef<boolean>(false);\n    const topTimestampRef = React.useRef<number | null>(null);\n\n    React.useEffect(() => {\n        if (!srcollContainerRef.current || !isNumber(topTimestampRef.current)) {\n            return;\n        }\n\n        if (skipScrollIntoViewRef.current) {\n            skipScrollIntoViewRef.current = false;\n            return;\n        }\n\n        const topOffsetPx = getOffsetPx({ timestamp: topTimestampRef.current, start, viewHeight, viewMs });\n        srcollContainerRef.current.scrollTo({\n            top: topOffsetPx,\n        });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [viewMs]);\n\n    React.useEffect(() => {\n        topTimestampRef.current = null;\n    }, [start, finish]);\n\n    const handleScroll = React.useCallback(\n        (event: React.MouseEvent<HTMLDivElement>) => {\n            const top = event.currentTarget.scrollTop;\n\n            const topTimestamp = start + (top / viewHeight) * viewMs;\n\n            topTimestampRef.current = topTimestamp;\n        },\n        [start, viewHeight, viewMs],\n    );\n\n    const handleTimeWindowClick = React.useCallback(\n        (timeWindow: TimeWindowT<T>, event: MouseEvent<HTMLDivElement>) => {\n            if (onTimeWindowClick) {\n                onTimeWindowClick(timeWindow, event);\n            }\n\n            skipScrollIntoViewRef.current = true;\n        },\n        [onTimeWindowClick],\n    );\n\n    return (\n        <div\n            className={cx('timeline')}\n            style={{\n                width: `${fullTimeLineWidthPx}px`,\n            }}\n            onScroll={handleScroll}\n            ref={srcollContainerRef}\n        >\n            <div\n                className={cx('inner')}\n                style={{\n                    height: `${getHeightPx(finish - start)}px`,\n                }}\n            >\n                {ticks.map((timestamp) => {\n                    return (\n                        <Delimiter\n                            key={timestamp}\n                            theme={DelimiterThemeEnum.step}\n                            utcOffset={utcOffsetMin}\n                            label={formatter(timestamp, utcOffsetMin)}\n                            topOffsetPx={getOffsetPxCallback(timestamp)}\n                        />\n                    );\n                })}\n                {halfTicks.map((timestamp) => (\n                    <Delimiter\n                        key={timestamp}\n                        theme={DelimiterThemeEnum.halfStep}\n                        utcOffset={null}\n                        label={null}\n                        topOffsetPx={getOffsetPxCallback(timestamp)}\n                    />\n                ))}\n                {isShowNowDelimiter && (\n                    <Delimiter\n                        key=\"now\"\n                        theme={DelimiterThemeEnum.now}\n                        utcOffset={utcOffsetMin}\n                        label={\n                            <div className={cx('now')}>\n                                <span className={cx('now__text')}>{nowLabel}</span>\n                                <SmallDownArrow fillColor={StyleGuideColorsEnum.white} />\n                            </div>\n                        }\n                        topOffsetPx={getHeightPx(now - start)}\n                    />\n                )}\n                {timeWindowLevels.map((level, levelIndex) => {\n                    const levelLeftOffsetPx = LEFT_PADDING + EVENTS_LEVEL_WIDTH * levelIndex;\n\n                    return (\n                        <>\n                            {level.timeWindows.map((timeWindow, index) => {\n                                return (\n                                    <TimeWindow\n                                        key={`${timeWindow.id}-${index}`}\n                                        timeWindow={timeWindow}\n                                        start={start}\n                                        getHeight={getHeightPx}\n                                        onClick={handleTimeWindowClick}\n                                        onBlur={onTimeWindowBlur}\n                                        onFocus={onTimeWindowFocus}\n                                        style={{\n                                            left: `${levelLeftOffsetPx + EVENT_PADDING}px`,\n                                            minWidth: `${EVENT_WIDTH}px`,\n                                        }}\n                                    />\n                                );\n                            })}\n                        </>\n                    );\n                })}\n                {flags?.map((flag) => {\n                    return <Flag<T> key={flag.id} flag={flag} start={start} getHeight={getHeightPx} />;\n                })}\n            </div>\n        </div>\n    );\n};\n\nexport default Timeline;\n","import head from 'lodash/head';\nimport GeocoderResult = google.maps.GeocoderResult;\n\nclass GoogleMapsGeocoderApi {\n    private maps: MapsT | null;\n\n    constructor(maps: MapsT | null | undefined) {\n        this.maps = maps || null;\n    }\n\n    geocode = async (point: GeoPointT): Promise<GeocoderResult | null> => {\n        const { maps } = this;\n        if (!maps) {\n            return Promise.resolve(null);\n        }\n\n        const gLocation = new maps.LatLng(point.lat, point.lng);\n        const geocoder = new maps.Geocoder();\n\n        return new Promise((resolve) => {\n            if (!geocoder) {\n                resolve(null);\n                return;\n            }\n\n            geocoder.geocode({ location: gLocation }, (results): void => {\n                if (!results) {\n                    resolve(null);\n                    return;\n                }\n\n                const firstGeocodeResultWithPostalAddress = results.find((data) => {\n                    return data.address_components?.find((component) => component.types?.includes('postal_code'));\n                });\n                const firstGeocodeResultWithCountryCode = results.find((data) => {\n                    return data.address_components?.find((component) => component.types?.includes('country'));\n                });\n                const firstGeocodeResult = head(results);\n                const geocodeResult =\n                    firstGeocodeResultWithPostalAddress || firstGeocodeResultWithCountryCode || firstGeocodeResult;\n\n                resolve(geocodeResult || null);\n            });\n        });\n    };\n}\n\nexport { GoogleMapsGeocoderApi };\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    // eslint-disable-next-line react/no-unused-prop-types\n    key?: string;\n    // eslint-disable-next-line react/no-unused-prop-types\n    lat?: number;\n    // eslint-disable-next-line react/no-unused-prop-types\n    lng?: number;\n    isWrong?: boolean;\n    className?: string;\n};\n\nconst DestinationPinIcon: React.FC<PropsT> = (props) => {\n    const { isWrong, className } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"45\" viewBox=\"0 0 40 45\" className={className}>\n            <defs>\n                <filter\n                    id=\"r6d1i0clwa\"\n                    width=\"390%\"\n                    height=\"357.8%\"\n                    x=\"-145%\"\n                    y=\"-128.9%\"\n                    filterUnits=\"objectBoundingBox\"\n                >\n                    <feOffset in=\"SourceAlpha\" result=\"shadowOffsetOuter1\" />\n                    <feGaussianBlur in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\" stdDeviation=\"15\" />\n                    <feColorMatrix\n                        in=\"shadowBlurOuter1\"\n                        result=\"shadowMatrixOuter1\"\n                        values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0\"\n                    />\n                    <feMerge>\n                        <feMergeNode in=\"SourceGraphic\" />\n                    </feMerge>\n                </filter>\n            </defs>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <g>\n                    <g>\n                        <g\n                            filter=\"url(#r6d1i0clwa)\"\n                            transform=\"translate(-1160 -851) translate(569) translate(591 851)\"\n                        >\n                            <path\n                                fill={isWrong ? StyleGuideColorsEnum.tomatoRed : StyleGuideColorsEnum.blazeOrange}\n                                d=\"M25 0c8.284 0 15 6.716 15 15v10c0 8.284-6.716 15-15 15l-5 5-5-5C6.716 40 0 33.284 0 25V15C0 6.716 6.716 0 15 0h10z\"\n                            />\n                            <path\n                                fill=\"#FFF\"\n                                fillRule=\"nonzero\"\n                                d=\"M20.859 30c2.358-.018 4.138-.52 5.34-1.504C27.398 27.51 28 26.039 28 24.08c0-1.08-.27-1.997-.811-2.748-.541-.75-1.317-1.263-2.327-1.538.895-.348 1.573-.888 2.034-1.62.461-.734.692-1.617.692-2.652 0-1.795-.65-3.164-1.948-4.107-1.3-.943-3.194-1.415-5.685-1.415H13v20h7.859zm-.758-11.662h-2.433v-4.615h2.287c1.046 0 1.804.185 2.274.556.47.37.705.977.705 1.82 0 .733-.218 1.287-.652 1.662-.434.375-1.161.568-2.18.577zm.625 7.953h-3.058v-4.794h3.27c1.605.01 2.408.847 2.408 2.514 0 .723-.226 1.284-.678 1.683-.453.398-1.1.597-1.942.597z\"\n                            />\n                        </g>\n                    </g>\n                </g>\n            </g>\n        </svg>\n    );\n};\n\nDestinationPinIcon.displayName = 'DestinationPinIcon';\n\nconst storyProps: PropsT = {};\n\nexport { storyProps };\nexport default DestinationPinIcon;\n","import { combineReducers } from 'redux';\nimport { configureStore } from '@reduxjs/toolkit';\nimport createSagaMiddleware from 'redux-saga';\nimport { fork, ForkEffect } from 'redux-saga/effects';\n\nimport authSaga from 'common/store/auth/sagas';\nimport userSaga from 'common/store/user/sagas';\nimport companySaga from 'common/store/company/sagas';\nimport trailersDictSaga from 'common/store/trailers-dict/sagas';\nimport trailersSaga from 'common/store/trailers/sagas';\nimport trucksDictSaga from 'common/store/trucks-dict/sagas';\nimport trucksSaga from 'common/store/trucks/sagas';\nimport errorsSaga from 'common/store/errors/sagas';\nimport partnersSaga from './partners/sagas';\nimport partnersStatsSaga from './partners-stats/sagas';\nimport managersSaga from './managers/sagas';\nimport dispatchersSaga from './dispatchers/sagas';\nimport partnerSaga from './partner/sagas';\nimport countriesDictSaga from 'common/store/countries-dict/sagas';\nimport documentsSaga from 'common/store/documents/sagas';\nimport documentsDictSaga from 'common/store/documents-dict/sagas';\nimport priceSettingsSaga from './price-settings/sagas';\nimport brokerOrderAssigmentSaga from 'broker-admin/store/broker-order-assigment/sagas';\nimport vehicleSchedulesSaga from 'common/store/vehicle-schedules/sagas';\nimport carriersUtilizationSaga from 'common/store/carriers-utilization/sagas';\nimport carrierSuggestSaga from 'common/store/carrier-suggest/sagas';\nimport shipperSuggestSaga from 'common/store/shipper-suggest/sagas';\nimport additionalServicesDictSaga from 'common/store/additional-services-dict/sagas';\nimport orderCreationSaga from 'common/store/order-creation/sagas';\nimport brokerOrdersSaga from 'broker-admin/store/broker-orders/sagas';\nimport brokerOrderDetailsSaga from 'broker-admin/store/broker-order-details/sagas';\nimport brokerOrderStatsSaga from 'broker-admin/store/broker-order-stats/sagas';\nimport brokerToursSaga from 'broker-admin/store/broker-tours/sagas';\nimport brokerTeamsSaga from 'broker-admin/store/broker-teams/sagas';\nimport brokerTourStatsSaga from 'broker-admin/store/broker-tour-stats/sagas';\nimport brokerTourDetailsSaga from 'broker-admin/store/broker-tour-details/sagas';\nimport brokerTeamDetailsSaga from 'broker-admin/store/broker-team-details/sagas';\nimport membersSaga from 'common/store/members/sagas';\nimport driversSaga from 'common/store/drivers/sagas';\nimport notificationsSaga from 'common/store/notifications/sagas';\nimport notificationsAffectsSaga from './notifications/sagas';\nimport assetTrackSaga from 'common/store/asset-track/sagas';\nimport carrierContractsSaga from 'common/store/carrier-contracts/sagas';\nimport transportOrdersSaga from 'common/store/transport-orders/sagas';\nimport transportOrderDetailsSaga from 'common/store/transport-order-details/sagas';\nimport groupedNotificationCountsSaga from 'common/store/grouped-notification-counts/sagas';\nimport gpsTrackingStatusSaga from 'common/store/gps-tracking-status/sagas';\nimport alertsSaga from 'common/store/alerts/sagas';\nimport settingsSaga from 'common/store/settings/sagas';\nimport driverSearchSaga from 'common/store/driver-search/sagas';\nimport statisticsSaga from './statistics/sagas';\nimport spotRequestsSaga from 'broker-admin/store/spot-requests/sagas';\nimport spotRequestsStatsSaga from 'broker-admin/store/spot-requests-stats/sagas';\nimport spotRequestDetailsSaga from 'broker-admin/store/spot-request-details/sagas';\nimport spotSaga from './spot/sagas';\nimport spotAssetsAssigmentSaga from 'common/store/spot-assets-assigment/sagas';\nimport driverAssigmentSaga from 'common/store/driver-assigment/sagas';\nimport { invoicesSaga } from './invoices/sagas';\nimport { shipperContractsSaga } from 'common/store/shipper-contracts/sagas';\nimport { createCompanySaga } from 'common/store/create-company/sagas';\nimport { shipperContractLanesSaga } from 'common/store/shipper-contract-lanes/sagas';\nimport { shipperContractLaneCreationSaga } from 'common/store/shipper-contract-lane-creation/sagas';\nimport { shipperContractLaneDetailsSaga } from 'common/store/shipper-contract-lane-details/sagas';\nimport { countrySettingsDictSaga } from 'common/store/country-settings-dict/sagas';\nimport { consistentStateMachineSaga } from 'common/store/consistent-state-machine/sagas';\nimport rfqsSaga from 'common/store/rfqs/sagas';\nimport rfqsStatsSaga from 'common/store/rfqs-stats/sagas';\nimport rfqDetailsSaga from 'common/store/rfq-details/sagas';\nimport rfqsChangesSaga from 'common/store/rfqs-changes/sagas';\n\nimport authReducer from 'common/store/auth/reducer';\nimport userReducer from 'common/store/user/reducer';\nimport companyReducer from 'common/store/company/reducer';\nimport errorsReducer from 'common/store/errors/reducer';\nimport trailersDictReducer from 'common/store/trailers-dict/reducer';\nimport trailersReducer from 'common/store/trailers/reducer';\nimport trucksDictReducer from 'common/store/trucks-dict/reducer';\nimport trucksReducer from 'common/store/trucks/reducer';\nimport partnersReducer from './partners/reducer';\nimport partnersStatsReducer from './partners-stats/reducer';\nimport managersReducer from './managers/reducer';\nimport dispatchersReducer from './dispatchers/reducer';\nimport partnerReducer from './partner/reducer';\nimport countriesDictReducer from 'common/store/countries-dict/reducer';\nimport documentsReducer from 'common/store/documents/reducer';\nimport documentsDictReducer from 'common/store/documents-dict/reducer';\nimport priceSettingsReducer from './price-settings/reducer';\nimport brokerOrderAssigmentReducer from 'broker-admin/store/broker-order-assigment/reducer';\nimport brokerOrdersReducer from 'broker-admin/store/broker-orders/reducer';\nimport brokerToursReducer from 'broker-admin/store/broker-tours/reducer';\nimport brokerTeamsReducer from 'broker-admin/store/broker-teams/reducer';\nimport brokerTourStatsReducer from 'broker-admin/store/broker-tour-stats/reducer';\nimport brokerTourDetailsReducer from 'broker-admin/store/broker-tour-details/reducer';\nimport brokerTeamDetailsReducer from 'broker-admin/store/broker-team-details/slice';\nimport vehicleSchedulesReducer from 'common/store/vehicle-schedules/reducer';\nimport carriersUtilizationReducer from 'common/store/carriers-utilization/reducer';\nimport carrierSuggestReducer from 'common/store/carrier-suggest/reducer';\nimport shipperSuggestReducer from 'common/store/shipper-suggest/reducer';\nimport orderCreationReducer from 'common/store/order-creation/reducer';\nimport additionalServicesDictReducer from 'common/store/additional-services-dict/slice';\nimport brokerOrderDetailsReducer from 'broker-admin/store/broker-order-details/reducer';\nimport brokerOrderStatsReducer from 'broker-admin/store/broker-order-stats/reducer';\nimport membersReducer from 'common/store/members/reducer';\nimport driversReducer from 'common/store/drivers/reducer';\nimport notificationsReducer from 'common/store/notifications/reducer';\nimport assetTrackReducer from 'common/store/asset-track/reducer';\nimport carrierContractsReducer from 'common/store/carrier-contracts/reducer';\nimport carrierContractDetailsReducer from 'common/store/carrier-contract-details/reducer';\nimport transportOrdersReducer from 'common/store/transport-orders/reducer';\nimport transportOrderDetailsReducer from 'common/store/transport-order-details/reducer';\nimport groupedNotificationCountsReducer from 'common/store/grouped-notification-counts/reducer';\nimport gpsTrackingStatusReducer from 'common/store/gps-tracking-status/reducer';\nimport alertsReducer from 'common/store/alerts/reducer';\nimport settingsReducer from 'common/store/settings/reducer';\nimport driverSearchReducer from 'common/store/driver-search/reducer';\nimport statisticsReducer from './statistics/reducer';\nimport spotRequestsReducer from 'broker-admin/store/spot-requests/reducer';\nimport spotRequestsStatsReducer from 'broker-admin/store/spot-requests-stats/reducer';\nimport spotRequestDetailsReducer from './spot-request-details/reducer';\nimport spotReducer from './spot/reducer';\nimport spotAssetsAssigmentReducer from 'common/store/spot-assets-assigment/reducer';\nimport driverAssigmentReducer from 'common/store/driver-assigment/reducer';\nimport invoicesReducer from './invoices/reducer';\nimport shipperContractsReducer from 'common/store/shipper-contracts/slice';\nimport shipperContractLanesReducer from 'common/store/shipper-contract-lanes/slice';\nimport shipperContractDetailsReducer from 'common/store/shipper-contract-details/slice';\nimport createCompanyReducer from 'common/store/create-company/slice';\nimport shipperLaneCreationReducer from 'common/store/shipper-contract-lane-creation/slice';\nimport shipperContractLaneDetailsReducer from 'common/store/shipper-contract-lane-details/slice';\nimport routingGeometryReducer from 'common/store/routing-geometry/slice';\nimport consistentStateMachineReducer from 'common/store/consistent-state-machine/slice';\nimport partnerSuggestReducer from 'common/store/partner-suggest/slice';\nimport rfqsReducer from 'common/store/rfqs/reducer';\nimport rfqsStatsReducer from 'common/store/rfqs-stats/reducer';\nimport rfqDetailsReducer from 'common/store/rfq-details/reducer';\nimport rfqsChangesReducer from 'common/store/rfqs-changes/reducer';\nimport { subjectLogsReducer } from 'common/store/subject-logs/slice';\nimport { subjectLogsSaga } from 'common/store/subject-logs/sagas';\n\nimport { CompanyTypeEnum } from 'common/constants';\nimport { AuthProfileTypeEnum } from 'common/store/auth/constants';\nimport carrierContractDetailsSaga from 'common/store/carrier-contract-details/sagas';\nimport { shipperContractDetailsSaga } from 'common/store/shipper-contract-details/sagas';\nimport { routingGeometrySaga } from 'common/store/routing-geometry/sagas';\nimport stateMachineReducer from 'common/store/state-machine/slice';\nimport { stateMachineSaga } from 'common/store/state-machine/sagas';\nimport countrySettingsDictReducer from 'common/store/country-settings-dict/reducer';\nimport orderEditContextReducer from './order-edit-context/slice';\nimport { orderEditContextSaga } from './order-edit-context/sagas';\nimport brokerOrderEditReducer from './broker-order-edit/reducer';\nimport brokerOrderEditSaga from './broker-order-edit/sagas';\nimport brokerTourEditReducer from './broker-tour-edit/slice';\nimport brokerTourEditSaga from './broker-tour-edit/sagas';\nimport { partnerSuggestSaga } from 'common/store/partner-suggest/sagas';\nimport deadheadCreationReducer from 'broker-admin/store/deadhead-creation/slice';\nimport timeZonesReducer from 'common/store/time-zones/slice';\nimport { deadheadCreationSaga } from 'broker-admin/store/deadhead-creation/sagas';\nimport timeZonesSaga from 'common/store/time-zones/sagas';\nimport assetsSaga from 'common/store/assets/sagas';\nimport brokerTeamEditSaga from 'broker-admin/store/broker-team-edit/sagas';\nimport brokerTeamEditReducer from 'broker-admin/store/broker-team-edit/slice';\nimport { papersEditSaga } from 'common/store/papers-edit/sagas';\nimport papersEditReducer from 'common/store/papers-edit/slice';\nimport tendersSaga from 'broker-admin/store/tenders/sagas';\nimport tendersReducer from 'broker-admin/store/tenders/slice';\nimport assetsReducer from 'common/store/assets/slice';\n\nconst rootReducer = combineReducers({\n    auth: authReducer(AuthProfileTypeEnum.broker),\n    user: userReducer,\n    company: companyReducer,\n    errors: errorsReducer,\n    trailersDict: trailersDictReducer,\n    trailers: trailersReducer,\n    trucksDict: trucksDictReducer,\n    trucks: trucksReducer,\n    partners: partnersReducer,\n    partnersStats: partnersStatsReducer,\n    managers: managersReducer,\n    dispatchers: dispatchersReducer,\n    partner: partnerReducer,\n    members: membersReducer,\n    drivers: driversReducer,\n    countriesDict: countriesDictReducer,\n    countrySettingsDict: countrySettingsDictReducer,\n    documents: documentsReducer,\n    documentsDict: documentsDictReducer,\n    priceSettings: priceSettingsReducer,\n    vehicleSchedules: vehicleSchedulesReducer,\n    carriersUtilization: carriersUtilizationReducer,\n    carrierSuggest: carrierSuggestReducer,\n    shipperSuggest: shipperSuggestReducer,\n    orderCreation: orderCreationReducer,\n    additionalServicesDict: additionalServicesDictReducer,\n    brokerOrders: brokerOrdersReducer,\n    brokerTours: brokerToursReducer,\n    brokerTeams: brokerTeamsReducer,\n    brokerTourStats: brokerTourStatsReducer,\n    brokerTourDetails: brokerTourDetailsReducer,\n    brokerTeamDetails: brokerTeamDetailsReducer,\n    brokerOrderStats: brokerOrderStatsReducer,\n    brokerOrderDetails: brokerOrderDetailsReducer,\n    brokerOrderAssigment: brokerOrderAssigmentReducer,\n    notifications: notificationsReducer,\n    assetTrack: assetTrackReducer,\n    carrierContracts: carrierContractsReducer,\n    carrierContractDetails: carrierContractDetailsReducer,\n    transportOrders: transportOrdersReducer,\n    transportOrderDetails: transportOrderDetailsReducer,\n    groupedNotificationCounts: groupedNotificationCountsReducer,\n    gpsTrackingStatus: gpsTrackingStatusReducer,\n    alerts: alertsReducer,\n    settings: settingsReducer,\n    driverSearch: driverSearchReducer,\n    statistics: statisticsReducer,\n    spotRequests: spotRequestsReducer,\n    spotRequestsStats: spotRequestsStatsReducer,\n    spotRequestDetails: spotRequestDetailsReducer,\n    spot: spotReducer,\n    spotAssetsAssigment: spotAssetsAssigmentReducer,\n    driverAssignment: driverAssigmentReducer,\n    invoices: invoicesReducer,\n    createCompany: createCompanyReducer,\n    shipperContracts: shipperContractsReducer,\n    shipperContractLanes: shipperContractLanesReducer,\n    shipperContractDetails: shipperContractDetailsReducer,\n    shipperContractLaneCreation: shipperLaneCreationReducer,\n    shipperContractLaneDetails: shipperContractLaneDetailsReducer,\n    routingGeometry: routingGeometryReducer,\n    stateMachine: stateMachineReducer,\n    consistentStateMachine: consistentStateMachineReducer,\n    orderEditContext: orderEditContextReducer,\n    brokerOrderEdit: brokerOrderEditReducer,\n    brokerTourEdit: brokerTourEditReducer,\n    partnerSuggest: partnerSuggestReducer,\n    deadheadCreation: deadheadCreationReducer,\n    timeZones: timeZonesReducer,\n    brokerTeamEdit: brokerTeamEditReducer,\n    papersEdit: papersEditReducer,\n    tenders: tendersReducer,\n    assets: assetsReducer,\n    rfqs: rfqsReducer,\n    rfqsStats: rfqsStatsReducer,\n    rfqDetails: rfqDetailsReducer,\n    rfqsChanges: rfqsChangesReducer,\n    subjectLogs: subjectLogsReducer,\n});\n\nexport type RootStateT = ReturnType<typeof rootReducer>;\n\nfunction* rootSaga(): Generator<ForkEffect<TODO>, void, TODO> {\n    yield fork(authSaga, CompanyTypeEnum.broker);\n    yield fork(userSaga);\n    yield fork(companySaga);\n    yield fork(trailersDictSaga);\n    yield fork(trailersSaga);\n    yield fork(trucksDictSaga);\n    yield fork(trucksSaga);\n    yield fork(errorsSaga);\n    yield fork(partnersSaga);\n    yield fork(partnersStatsSaga);\n    yield fork(managersSaga);\n    yield fork(dispatchersSaga);\n    yield fork(partnerSaga);\n    yield fork(countriesDictSaga);\n    yield fork(countrySettingsDictSaga);\n    yield fork(documentsSaga);\n    yield fork(documentsDictSaga);\n    yield fork(priceSettingsSaga);\n    yield fork(driverSearchSaga);\n    yield fork(statisticsSaga);\n    yield fork(spotRequestsSaga);\n    yield fork(spotRequestsStatsSaga);\n    yield fork(spotRequestDetailsSaga);\n    yield fork(vehicleSchedulesSaga, CompanyTypeEnum.broker);\n    yield fork(carriersUtilizationSaga);\n    yield fork(carrierSuggestSaga);\n    yield fork(shipperSuggestSaga);\n    yield fork(brokerOrdersSaga);\n    yield fork(brokerToursSaga);\n    yield fork(brokerTeamsSaga);\n    yield fork(brokerTourStatsSaga);\n    yield fork(brokerTourDetailsSaga);\n    yield fork(brokerTeamDetailsSaga);\n    yield fork(brokerOrderDetailsSaga);\n    yield fork(brokerOrderStatsSaga);\n    yield fork(brokerOrderAssigmentSaga);\n    yield fork(membersSaga, CompanyTypeEnum.broker);\n    yield fork(driversSaga);\n    yield fork(additionalServicesDictSaga);\n    yield fork(orderCreationSaga, CompanyTypeEnum.broker);\n    yield fork(notificationsSaga, CompanyTypeEnum.broker);\n    yield fork(notificationsAffectsSaga);\n    yield fork(transportOrdersSaga);\n    yield fork(transportOrderDetailsSaga, CompanyTypeEnum.broker);\n    yield fork(assetTrackSaga, CompanyTypeEnum.broker);\n    yield fork(carrierContractsSaga);\n    yield fork(carrierContractDetailsSaga);\n    yield fork(groupedNotificationCountsSaga);\n    yield fork(gpsTrackingStatusSaga);\n    yield fork(alertsSaga);\n    yield fork(settingsSaga, CompanyTypeEnum.broker);\n    yield fork(spotSaga);\n    yield fork(spotAssetsAssigmentSaga);\n    yield fork(driverAssigmentSaga);\n    yield fork(invoicesSaga);\n    yield fork(shipperContractsSaga, CompanyTypeEnum.broker);\n    yield fork(shipperContractLanesSaga, CompanyTypeEnum.broker);\n    yield fork(shipperContractDetailsSaga, CompanyTypeEnum.broker);\n    yield fork(createCompanySaga, CompanyTypeEnum.broker);\n    yield fork(shipperContractLaneCreationSaga);\n    yield fork(shipperContractLaneDetailsSaga, CompanyTypeEnum.broker);\n    yield fork(routingGeometrySaga, CompanyTypeEnum.broker);\n    yield fork(stateMachineSaga, CompanyTypeEnum.broker);\n    yield fork(orderEditContextSaga, CompanyTypeEnum.broker);\n    yield fork(brokerOrderEditSaga);\n    yield fork(brokerTourEditSaga);\n    yield fork(consistentStateMachineSaga, CompanyTypeEnum.broker);\n    yield fork(partnerSuggestSaga, CompanyTypeEnum.broker);\n    yield fork(deadheadCreationSaga);\n    yield fork(timeZonesSaga);\n    yield fork(assetsSaga);\n    yield fork(brokerTeamEditSaga);\n    yield fork(papersEditSaga, CompanyTypeEnum.broker);\n    yield fork(tendersSaga);\n    yield fork(rfqsSaga, CompanyTypeEnum.broker);\n    yield fork(rfqsStatsSaga, CompanyTypeEnum.broker);\n    yield fork(rfqDetailsSaga, CompanyTypeEnum.broker);\n    yield fork(rfqsChangesSaga);\n    yield fork(subjectLogsSaga, CompanyTypeEnum.broker);\n}\n\nconst sagaMiddleware = createSagaMiddleware();\n\nconst store = configureStore({\n    reducer: rootReducer,\n    middleware: (getDefaultMiddleware) => {\n        return getDefaultMiddleware().concat(sagaMiddleware);\n    },\n});\n\nsagaMiddleware.run(rootSaga);\n\n// for dev\nwindow.store = store;\n\nexport default store;\n","import * as React from 'react';\nimport { FieldsEnum, RouteFormValuesT, RoutePointFieldsEnum } from '../constants';\nimport { useTranslation } from 'react-i18next';\nimport FormikConnectContextField from 'common/components/forms/FormikConnectContextField/FormikConnectContextField';\nimport GeoSuggest from 'common/components/GeoSuggest/GeoSuggest';\nimport classNames from 'classnames/bind';\nimport styles from './DriveThroughRoutePointPicker.scss';\nimport DeleteWaypointTrigger from '../DeleteWaypointTrigger/DeleteWaypointTrigger';\nimport WaypointNumberIcon from '../WaypointNumberIcon/WaypointNumberIcon';\nimport { getFieldFormValue } from 'common/utils/form-values';\nimport { useFormikContext } from 'formik';\nimport { OnChangeRouteStopAddressT, OnDeleteRouteStopReserveT } from '../models';\nimport { prepareLocation } from 'common/utils/prepare-location';\nimport TimePillLabel from 'broker-admin/layouts/BrokerToursPage/BrokerTourDedheadCreationPage/RouteForm/TimePillLabel/TimePillLabel';\n\ntype PropsT = {\n    className?: string;\n    routePointIndex: number;\n    onRemove: OnDeleteRouteStopReserveT;\n    onManualSelectLocation: (location: LocationT | null, routePointIndex: number) => void;\n    onChangeRoutePointAddress: OnChangeRouteStopAddressT;\n    isShowSuggestLoading?: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nconst DriveThroughRoutePointPicker: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        routePointIndex,\n        onRemove,\n        isShowSuggestLoading,\n        onManualSelectLocation,\n        onChangeRoutePointAddress,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const formik = useFormikContext<RouteFormValuesT>();\n\n    const locationFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.location}` as const;\n    const fakePointIdFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.fakePointId}` as const;\n    const typeFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.type}` as const;\n    const timeWindowFieldName = `${FieldsEnum.route}.${routePointIndex}.${RoutePointFieldsEnum.timeWindow}` as const;\n\n    const fakePointId = getFieldFormValue(formik.values, fakePointIdFieldName);\n    const type = getFieldFormValue(formik.values, typeFieldName);\n    const timeWindow = getFieldFormValue(formik.values, timeWindowFieldName);\n\n    return (\n        <>\n            <FormikConnectContextField<RouteFormValuesT, typeof locationFieldName>\n                className={className}\n                name={locationFieldName}\n                label={t('broker-order-route-edit.fields.drive-through-point.label')}\n                subLabel={<TimePillLabel dateTime={timeWindow?.start} />}\n            >\n                {(props, extendsProps) => (\n                    <div className={cx('wrap')} data-point-id={fakePointId}>\n                        <GeoSuggest\n                            className={cx('geo-suggest')}\n                            name={extendsProps.name}\n                            value={extendsProps.value}\n                            placeholder={t('broker-order-route-edit.fields.drive-through-point.placeholder')}\n                            renderLeftIcon={({ hasValue, hasError, hasWarning, isDisabled }) => (\n                                <WaypointNumberIcon\n                                    routePointIndex={routePointIndex}\n                                    hasValue={hasValue}\n                                    hasError={hasError}\n                                    hasWarning={hasWarning}\n                                    isDisabled={isDisabled}\n                                    isDriveThroughRoutePointPicker\n                                />\n                            )}\n                            onChange={(value) => {\n                                const location = prepareLocation(value);\n\n                                props.onChange(value);\n\n                                onManualSelectLocation(value, routePointIndex);\n\n                                onChangeRoutePointAddress(routePointIndex, fakePointId, {\n                                    address: location,\n                                    routeStopType: type,\n                                });\n                            }}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            onFocus={props.onFocus}\n                            onBlur={props.onBlur}\n                            isLoading={isShowSuggestLoading}\n                            testSelector={extendsProps.name}\n                            showClearControl\n                        />\n                        <DeleteWaypointTrigger\n                            onClick={() => {\n                                onRemove(routePointIndex, fakePointId);\n                            }}\n                        />\n                    </div>\n                )}\n            </FormikConnectContextField>\n        </>\n    );\n});\n\nexport default DriveThroughRoutePointPicker;\n","import React, { useContext, useEffect, useMemo } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './AssignmentForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport AssignOptionLabel from './AssignOptionLabel/AssignOptionLabel';\nimport TruckIcon, { TruckIconProps } from 'common/icons/TruckIcon';\nimport TrailerIcon, { TrailerIconProps } from 'common/icons/TrailerIcon';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectAssignmentRequestStatus,\n    selectSelfCostPrediction,\n    selectSelfCostPredictionRequestStatus,\n    selectTrailerAssignmentInfoById,\n    selectTrailerSuggestIds,\n    selectTrailerSuggestRequestStatus,\n    selectTruckAssignmentInfoById,\n    selectTruckSuggestIds,\n    selectTruckSuggestRequestStatus,\n    selectUserSelection,\n    selectVehicleLinks,\n} from 'broker-admin/store/broker-order-assigment/selectors';\nimport {\n    assign,\n    changeUserSelection,\n    fetchAssignDetails,\n    findTrailer,\n    findTruck,\n    initUserSelection,\n    setInitAssetsInfo,\n} from 'broker-admin/store/broker-order-assigment/actions';\nimport { getDateFromISO, MS_IN_MIN } from 'common/utils/time';\nimport {\n    selectCarriersUtilizationByHash,\n    selectFetchRequestStatus as selectCarriersUtilizationRequestStatus,\n} from 'common/store/carriers-utilization/selectors';\nimport { getHash } from 'common/store/carriers-utilization/utils';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport { useFormik } from 'formik';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { BrokerOrderDetailsT } from 'broker-admin/store/broker-order-details/models';\nimport asyncValidations from './async-validations';\nimport isEmpty from 'lodash/isEmpty';\nimport { PointToDropT, UserSelectionT } from 'broker-admin/store/broker-order-assigment/models';\nimport GeoSuggest from 'common/components/GeoSuggest/GeoSuggest';\nimport isEqual from 'lodash/isEqual';\nimport { logWarning } from 'common/utils/logger';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport isNumber from 'lodash/isNumber';\nimport useOnlyChangesEffect from 'common/utils/hooks/useOnlyChangesEffect';\nimport DropdownSearchInput, {\n    DropdownSearchInputIconMetaT,\n} from 'design-system/components/dropdowns/DropdownSearchInput/DropdownSearchInput';\nimport AssignTriggerLabel from './AssignTriggerLabel/AssignTriggerLabel';\nimport { AssetAssignmentInfoT } from 'common/utils/assignment';\nimport AssetLinkIcon, { AssetLinkIconProps } from 'common/icons/AssetLinkIcon';\nimport useAsyncFormErrors from 'common/utils/hooks/useAsyncFormErrors';\nimport { renderTrailerDropOffIcon, renderTruckDropOffIcon } from './icons';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport mapValues from 'lodash/mapValues';\nimport { findTourById } from 'broker-admin/store/broker-order-details/utils/find-tour-by-id';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport TourTypeTabs from './TourTypeTabs/TourTypeTabs';\nimport { TourTypeTabsEnum } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/TourTypeTabs/constants';\nimport LongDeadheadConfirmation from './LongDeadheadConfirmation/LongDeadheadConfirmation';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\n\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\n\nimport { LongDeadheadConfirmationDataT } from './LongDeadheadConfirmation/models';\nimport { LONG_DEADHEAD_PERCENT } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/constants';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport AssetTypeTabs from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/AssetTypeTabs/AssetTypeTabs';\nimport { AssetTypeTabsEnum } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/AssetTypeTabs/constants';\nimport ControlLoaderLabel from 'common/components/ControlLoaderLabel/ControlLoaderLabel';\nimport { findTourActualTransportOrders } from 'broker-admin/store/broker-order-details/utils/find-actual-transport-order';\nimport { CancelTruckTransportOrderConfirmationDataT } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/CancelTruckTransportOrderConfirmation/models';\nimport { CancelTrailerTransportOrderConfirmationDataT } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/CancelTrailerTransportOrderConfirmation/models';\nimport { updateEntityStatus } from 'common/store/state-machine/slice';\nimport { ApiTransportOrderStatusT, PartnerTypeEnum, TransportOrderStatusEnum } from 'common/utils/api/models';\nimport { selectStateMachineItemState } from 'common/store/state-machine/selectors';\nimport { StateMachineEntityDescriptorT } from 'common/store/state-machine/models';\nimport CancelTrailerTransportOrderConfirmation from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/CancelTrailerTransportOrderConfirmation/CancelTrailerTransportOrderConfirmation';\nimport CancelTruckTransportOrderConfirmation from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/CancelTruckTransportOrderConfirmation/CancelTruckTransportOrderConfirmation';\nimport Link, { LinkThemeEnum } from 'common/components/Link/Link';\nimport { createInitWaypointTruckDropPoint } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/hooks/createInitWaypointTruckDropPoint';\nimport { createInitWaypointTrailerDropPoint } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/hooks/createInitWaypointTrailerDropPoint';\nimport { createInitPayloadDropPoint } from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/hooks/createInitPayloadDropPoint';\nimport NumberIcon from 'common/icons/NumberIcon';\nimport AssetsSelectionContext from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/contexts/assets-selection-context';\nimport { fetchCountrySettingsDict } from 'common/store/country-settings-dict/actions';\nimport { selectCountrySettingsByCountryCode } from 'common/store/country-settings-dict/selectors';\nimport { SyncAssignmentFormMapStateContext } from '../contexts/sync-map-state';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport { OnMapClickCallbackT } from '../hooks/useSyncMapState';\nimport { useUtilizationRowsFactory } from 'broker-admin/components/tour-receipt-details/hooks/utilization-rows-factory';\nimport MileageInfoTable from 'broker-admin/components/tour-receipt-details/MileageInfoTable/MileageInfoTable';\nimport ReceiptPriceDetails from 'broker-admin/components/tour-receipt-details/ReceiptPriceDetails/ReceiptPriceDetails';\nimport FooterSideBarAlertsLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarAlertsLayout/FooterSideBarAlertsLayout';\nimport SideBarFooterAlertsContext from 'common/layouts/LeftMenuLayout/SideBarLayout/contexts/side-bar-footer-alerts-context';\nimport ExpirationContextAlertContent from './ExpirationContextAlertContent/ExpirationContextAlertContent';\nimport { AlertThemeEnum } from 'common/components/Alert/Alert';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    brokerOrderId: BrokerOrderIdT | null;\n    brokerOrderDetails: BrokerOrderDetailsT | null;\n    tourId: TourIdT | null;\n    onCancel: () => void;\n};\n\ntype TrailerOptionT = AssetAssignmentInfoT & {\n    linkedAssetId: AssetIdT | null;\n    carrierUtilizationPercent: number | null;\n    isCarrierUtilizationLoading: boolean;\n};\n\ntype TruckOptionT = AssetAssignmentInfoT & {\n    linkedAssetId: AssetIdT | null;\n    carrierUtilizationPercent: number | null;\n    isCarrierUtilizationLoading: boolean;\n};\n\nconst convertLocationToPoint = (location: LocationT | null): PointToDropT | null => {\n    if (!location || !location.point) {\n        return null;\n    }\n\n    return {\n        address: location.address || `${location.point?.lat},${location.point?.lng}`,\n        addressComponents: location.addressComponents,\n        point: location.point,\n    };\n};\n\nconst convertPointToLocation = (pointToDrop: PointToDropT | null): LocationT | null => {\n    if (!pointToDrop || !pointToDrop?.point) {\n        return null;\n    }\n\n    return {\n        point: pointToDrop?.point || null,\n        address: pointToDrop?.address || null,\n        addressComponents: pointToDrop?.addressComponents || null,\n        utcOffsetMinutes: null,\n    };\n};\n\nconst checkIsSameLocation = (\n    locationA: LocationT | PointToDropT | null,\n    locationB: LocationT | PointToDropT | null,\n): boolean => {\n    return isEqual(locationA?.point, locationB?.point);\n};\n\nconst AssignmentForm: React.FC<PropsT> = (props) => {\n    const { onCancel, brokerOrderId, brokerOrderDetails, tourId } = props;\n\n    const { t } = useTranslation();\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const syncMapStateContext = useContext(SyncAssignmentFormMapStateContext);\n\n    const [selectedAssetType, setSelectedAssetType] = React.useState<AssetTypeTabsEnum | null>(null);\n    const [selectedTourTypeTab, onSelectTourTypeTab] = React.useState<TourTypeTabsEnum>(TourTypeTabsEnum.current);\n\n    const assetsSelectionContext = useContext(AssetsSelectionContext);\n\n    const firstWaypoint = findTourById(brokerOrderDetails, tourId)?.waypoints?.[0] || null;\n    const firstWaypointDateTimeFrom =\n        firstWaypoint?.correctedDateTimeFrom || firstWaypoint?.originalDateTimeFrom || null;\n    const pickupDate = getDateFromISO(firstWaypointDateTimeFrom);\n\n    const dispatch = useDispatch();\n\n    const userSelection = useSelector(selectUserSelection);\n\n    const assignmentRequestStatus = useSelector(selectAssignmentRequestStatus);\n\n    const selfCostPrediction = useSelector(selectSelfCostPrediction);\n    const selfCostPredictionRequestStatus = useSelector(selectSelfCostPredictionRequestStatus);\n\n    const vehicleLinks = useSelector(selectVehicleLinks);\n\n    const truckSuggestRequestStatus = useSelector(selectTruckSuggestRequestStatus);\n    const truckIds = useSelector(selectTruckSuggestIds);\n    const truckById = useSelector(selectTruckAssignmentInfoById);\n\n    const trailerSuggestRequestStatus = useSelector(selectTrailerSuggestRequestStatus);\n    const trailerIds = useSelector(selectTrailerSuggestIds);\n    const trailerById = useSelector(selectTrailerAssignmentInfoById);\n\n    const carriersUtilizationFetchRequestStatus = useSelector(selectCarriersUtilizationRequestStatus);\n    const carriersUtilizationByHash = useSelector(selectCarriersUtilizationByHash);\n\n    const countriesSettingsByCode = useSelector(selectCountrySettingsByCountryCode);\n    React.useEffect(() => {\n        dispatch(fetchCountrySettingsDict());\n    }, [dispatch]);\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) =>\n            validateForm(t, values, {\n                trailerById,\n                truckById,\n                countriesSettingsByCode,\n            });\n    }, [t, trailerById, truckById, countriesSettingsByCode]);\n\n    const initPayloadDropPoint = useMemo(() => {\n        return createInitPayloadDropPoint(brokerOrderDetails, tourId);\n    }, [brokerOrderDetails, tourId]);\n\n    const initWaypointTruckDropPoint = useMemo(() => {\n        return createInitWaypointTruckDropPoint(brokerOrderDetails, tourId);\n    }, [brokerOrderDetails, tourId]);\n\n    const initWaypointTrailerDropPoint = useMemo(() => {\n        return createInitWaypointTrailerDropPoint(brokerOrderDetails, tourId);\n    }, [brokerOrderDetails, tourId]);\n\n    const initTruckDropPoint = initWaypointTruckDropPoint || initPayloadDropPoint || null;\n    const initTrailerDropPoint = initWaypointTrailerDropPoint || initPayloadDropPoint || null;\n\n    const { truckTransportOrder: initTruckTransportOrder, trailerTransportOrder: initTrailerTransportOrder } =\n        useMemo(() => {\n            return findTourActualTransportOrders(brokerOrderDetails?.transportationOrders, tourId);\n        }, [brokerOrderDetails, tourId]);\n\n    const initTruck = initTruckTransportOrder?.truck || null;\n    const initTrailer = initTrailerTransportOrder?.trailer || null;\n\n    const hasBrokerOrderDetails = !!brokerOrderDetails;\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values: FormValuesT = {\n            [FieldsEnum.trailerId]: initTrailer?.id || null,\n            [FieldsEnum.truckId]: initTruck?.id || null,\n            [FieldsEnum.locationToDropTrailer]: initTrailerDropPoint?.location || null,\n            [FieldsEnum.locationToDropTruck]: initTruckDropPoint?.location || null,\n        };\n\n        const errors = validateForm(t, values, { trailerById, truckById, countriesSettingsByCode });\n\n        return [values, errors];\n\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasBrokerOrderDetails]);\n\n    useEffect(() => {\n        dispatch(\n            setInitAssetsInfo(\n                {\n                    // TODO: Verify that `carrier.id` is always provided for the truck in the assignment case,\n                    // since the broker has access to all truck information.\n                    truck:\n                        initTruck?.id && initTruck?.carrier?.id\n                            ? {\n                                  carrierId: initTruck.carrier.id,\n                                  carrierName: initTruck.carrier?.name,\n                                  id: initTruck.id,\n                                  plateNumber: initTruck.plateNumber,\n                                  model: initTruck.dictTruckInfo?.model,\n                              }\n                            : undefined,\n                },\n                {\n                    // TODO: Verify that `carrier.id` is always provided for the trailer in the assignment case,\n                    // since the broker has access to all trailer information.\n                    trailer:\n                        initTrailer?.id && initTrailer?.carrier?.id\n                            ? {\n                                  carrierId: initTrailer.carrier.id,\n                                  carrierName: initTrailer.carrier?.name,\n                                  id: initTrailer.id,\n                                  plateNumber: initTrailer?.plateNumber,\n                                  model: initTrailer?.dictTrailerInfo?.model,\n                              }\n                            : undefined,\n                },\n            ),\n        );\n    }, [dispatch, initTruck, initTrailer]);\n\n    useEffect(() => {\n        dispatch(\n            initUserSelection(brokerOrderId, tourId, {\n                truckId: initialValues[FieldsEnum.truckId],\n                pointToDropTruck: convertLocationToPoint(initialValues[FieldsEnum.locationToDropTruck]),\n                trailerId: initialValues[FieldsEnum.trailerId],\n                pointToDropTrailer: convertLocationToPoint(initialValues[FieldsEnum.locationToDropTrailer]),\n            }),\n        );\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [initialValues]);\n\n    useEffect(() => {\n        if (tourId && brokerOrderId) {\n            dispatch(fetchAssignDetails(brokerOrderId, tourId));\n        }\n    }, [dispatch, brokerOrderId, tourId]);\n\n    const assignmentContextId = selfCostPrediction?.assignmentContextId || null;\n\n    const cancelTruckTransportOrderConfirmation = useModalDialog<CancelTruckTransportOrderConfirmationDataT>();\n    const cancelTruckTransportOrderDescriptor = React.useMemo((): StateMachineEntityDescriptorT | null => {\n        if (!initTruckTransportOrder?.id) {\n            return null;\n        }\n\n        return {\n            entityType: 'TRANSPORTATION_ORDER',\n            entityId: initTruckTransportOrder?.id,\n        };\n    }, [initTruckTransportOrder]);\n\n    const handleConfirmCancelTruckTransportOrder = (data: CancelTruckTransportOrderConfirmationDataT) => {\n        if (!cancelTruckTransportOrderDescriptor) {\n            return;\n        }\n\n        dispatch(\n            updateEntityStatus({\n                update: {\n                    entityType: 'TRANSPORTATION_ORDER',\n                    entityId: data.transportOrderId,\n                    status: TransportOrderStatusEnum.canceled,\n                },\n                descriptor: cancelTruckTransportOrderDescriptor,\n            }),\n        );\n    };\n    const { updateRequest: updateTruckTransportOrderStatusRequest } = useSelector(\n        selectStateMachineItemState<ApiTransportOrderStatusT>(cancelTruckTransportOrderDescriptor),\n    );\n    useCloseModalDialogAfterRequest(updateTruckTransportOrderStatusRequest, [cancelTruckTransportOrderConfirmation]);\n\n    const cancelTrailerTransportOrderConfirmation = useModalDialog<CancelTrailerTransportOrderConfirmationDataT>();\n    const cancelTrailerTransportOrderDescriptor = React.useMemo((): StateMachineEntityDescriptorT | null => {\n        if (!initTrailerTransportOrder?.id) {\n            return null;\n        }\n\n        return {\n            entityType: 'TRANSPORTATION_ORDER',\n            entityId: initTrailerTransportOrder.id,\n        };\n    }, [initTrailerTransportOrder]);\n    const handleConfirmCancelTrailerTransportOrder = (data: CancelTrailerTransportOrderConfirmationDataT) => {\n        if (!cancelTrailerTransportOrderDescriptor) {\n            return;\n        }\n\n        dispatch(\n            updateEntityStatus({\n                update: {\n                    entityType: 'TRANSPORTATION_ORDER',\n                    entityId: data.transportOrderId,\n                    status: TransportOrderStatusEnum.canceled,\n                },\n                descriptor: cancelTrailerTransportOrderDescriptor,\n            }),\n        );\n    };\n    const { updateRequest: updateTrailerTransportOrderStatusRequest } = useSelector(\n        selectStateMachineItemState<ApiTransportOrderStatusT>(cancelTrailerTransportOrderDescriptor),\n    );\n    useCloseModalDialogAfterRequest(updateTrailerTransportOrderStatusRequest, [\n        cancelTrailerTransportOrderConfirmation,\n    ]);\n\n    const longDeadheadConfirmation = useModalDialog<LongDeadheadConfirmationDataT>();\n    useCloseModalDialogAfterRequest(assignmentRequestStatus, [longDeadheadConfirmation]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            if (!assignmentContextId) {\n                logWarning(`Failed to assign, empty assignmentContextId`);\n                return;\n            }\n\n            if (!brokerOrderId) {\n                logWarning(`Failed to assign, empty brokerOrderId`);\n                return;\n            }\n\n            if (!tourId) {\n                logWarning(`Failed to assign, empty tourId`);\n                return;\n            }\n\n            const totalDeadheadDistance = selfCostPrediction?.calculatedSumCost?.deadhead?.distances?.totalDistance;\n            const payloadDistance = selfCostPrediction?.calculatedSumCost?.payload?.distances?.totalDistance;\n            const shouldConfirmLongDeadhead =\n                isNumber(totalDeadheadDistance) && isNumber(payloadDistance)\n                    ? totalDeadheadDistance / payloadDistance > LONG_DEADHEAD_PERCENT / 100\n                    : false;\n            if (shouldConfirmLongDeadhead) {\n                longDeadheadConfirmation.setData({\n                    brokerOrderId,\n                    tourId,\n                    assignmentContextId,\n                });\n            } else {\n                dispatch(assign(brokerOrderId, tourId, assignmentContextId));\n\n                formikHelpers.setTouched({});\n            }\n        },\n    });\n\n    const isDisabledTruckSuggest = initTruck?.id === formik.values[FieldsEnum.truckId];\n    const isDisabledTrailerSuggest = initTrailer?.id === formik.values[FieldsEnum.trailerId];\n    React.useEffect(() => {\n        if (!assetsSelectionContext?.setValue) {\n            return;\n        }\n\n        assetsSelectionContext.setValue({\n            isBlockedSelectTruck: isDisabledTruckSuggest,\n            isBlockedSelectTrailer: isDisabledTrailerSuggest,\n        });\n\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isDisabledTruckSuggest, isDisabledTrailerSuggest]);\n\n    const isPrioritySelfCostPredictionStatus =\n        !!selfCostPredictionRequestStatus.time &&\n        selfCostPredictionRequestStatus.ok &&\n        !!truckSuggestRequestStatus.time &&\n        truckSuggestRequestStatus.time < selfCostPredictionRequestStatus.time &&\n        !!trailerSuggestRequestStatus.time &&\n        trailerSuggestRequestStatus.time < selfCostPredictionRequestStatus.time;\n\n    const shouldValidateTruck = !initTruck;\n    const shouldValidateTrailer = !initTrailer;\n\n    const asyncErrors = React.useMemo(() => {\n        return asyncValidations(t, formik.values, {\n            trailerById,\n            truckById,\n            isPrioritySelfCostPredictionStatus,\n            selfCostPredictionRequestStatus,\n            shouldValidateTruck,\n            shouldValidateTrailer,\n        });\n    }, [\n        t,\n        formik.values,\n        trailerById,\n        truckById,\n        isPrioritySelfCostPredictionStatus,\n        selfCostPredictionRequestStatus,\n        shouldValidateTruck,\n        shouldValidateTrailer,\n    ]);\n\n    const { asyncFormErrors, resetAsyncFormErrors } = useAsyncFormErrors(asyncErrors);\n\n    React.useEffect(() => {\n        syncMapStateContext?.setHasDropTrailerPointError(\n            !!formik.errors?.[FieldsEnum.locationToDropTrailer] || !!asyncErrors?.[FieldsEnum.locationToDropTrailer],\n        );\n        syncMapStateContext?.setHasDropTruckPointError(\n            !!formik.errors?.[FieldsEnum.locationToDropTruck] || !!asyncErrors?.[FieldsEnum.locationToDropTruck],\n        );\n\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.errors, asyncErrors]);\n\n    const selectedTruckId = formik.values[FieldsEnum.truckId];\n    const selectedTrailerId = formik.values[FieldsEnum.trailerId];\n    useOnlyChangesEffect(() => {\n        const changes: Partial<FormValuesT> = {};\n        const touched: Partial<Record<FieldsEnum, boolean>> = {};\n        if (selectedTrailerId !== userSelection.trailerId) {\n            changes[FieldsEnum.trailerId] = userSelection.trailerId;\n            touched[FieldsEnum.trailerId] = true;\n        }\n        if (selectedTruckId !== userSelection.truckId) {\n            changes[FieldsEnum.truckId] = userSelection.truckId;\n            touched[FieldsEnum.truckId] = true;\n        }\n\n        if (!isEmpty(changes)) {\n            formik.setValues((prevValues) => ({\n                ...prevValues,\n                ...changes,\n            }));\n        }\n\n        if (!isEmpty(touched)) {\n            formik.setTouched({\n                ...formik.touched,\n                ...touched,\n            });\n        }\n    }, [userSelection.truckId, userSelection.trailerId]);\n\n    const selectedPointToDropTruck = formik.values[FieldsEnum.locationToDropTruck];\n    const selectedPointToDropTrailer = formik.values[FieldsEnum.locationToDropTrailer];\n    const isSelectedSameLocations = useMemo(() => {\n        return checkIsSameLocation(selectedPointToDropTruck, selectedPointToDropTrailer);\n    }, [selectedPointToDropTrailer, selectedPointToDropTruck]);\n\n    useOnlyChangesEffect(() => {\n        const changes: Partial<FormValuesT> = {};\n        const touched: Partial<Record<FieldsEnum, boolean>> = {};\n\n        if (!checkIsSameLocation(formik.values[FieldsEnum.locationToDropTruck], userSelection.pointToDropTruck)) {\n            changes[FieldsEnum.locationToDropTruck] = convertPointToLocation(userSelection.pointToDropTruck);\n            touched[FieldsEnum.locationToDropTruck] = true;\n        }\n\n        if (!checkIsSameLocation(formik.values[FieldsEnum.locationToDropTrailer], userSelection.pointToDropTrailer)) {\n            changes[FieldsEnum.locationToDropTrailer] = convertPointToLocation(userSelection.pointToDropTrailer);\n            touched[FieldsEnum.locationToDropTrailer] = true;\n\n            if (isSelectedSameLocations) {\n                changes[FieldsEnum.locationToDropTruck] = convertPointToLocation(userSelection.pointToDropTrailer);\n                touched[FieldsEnum.locationToDropTruck] = true;\n            }\n        }\n\n        if (!isEmpty(changes)) {\n            formik.setValues((prevValues) => ({\n                ...prevValues,\n                ...changes,\n            }));\n        }\n\n        if (!isEmpty(touched)) {\n            formik.setTouched({\n                ...formik.touched,\n                ...touched,\n            });\n        }\n    }, [userSelection.pointToDropTruck, userSelection.pointToDropTrailer]);\n\n    const { values } = formik;\n    const onMapClickCallback: OnMapClickCallbackT = React.useCallback(\n        (pointToDrop) => {\n            const location = convertPointToLocation(pointToDrop);\n\n            const formValueChanges: Partial<FormValuesT> = {};\n            const userSelectionChanges: Partial<UserSelectionT> = {};\n\n            if (!values[FieldsEnum.locationToDropTrailer]) {\n                formValueChanges[FieldsEnum.locationToDropTrailer] = location;\n                userSelectionChanges.pointToDropTrailer = convertLocationToPoint(location);\n            }\n\n            if (!values[FieldsEnum.locationToDropTruck]) {\n                formValueChanges[FieldsEnum.locationToDropTruck] = location;\n                userSelectionChanges.pointToDropTruck = convertLocationToPoint(location);\n            }\n\n            if (!isEmpty(formValueChanges)) {\n                formik.setValues((formValues) => ({ ...formValues, ...formValueChanges }));\n            }\n\n            if (!isEmpty(userSelectionChanges)) {\n                dispatch(changeUserSelection(brokerOrderId, tourId, userSelectionChanges));\n            }\n        },\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        [dispatch, values, brokerOrderId, tourId],\n    );\n\n    React.useEffect(() => {\n        syncMapStateContext?.setOnMapClickCallback({ callback: onMapClickCallback });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [onMapClickCallback, syncMapStateContext?.setOnMapClickCallback]);\n\n    const trailersOptions: TrailerOptionT[] = React.useMemo(() => {\n        const ids = [...trailerIds];\n\n        if (selectedTrailerId && !trailerIds.includes(selectedTrailerId)) {\n            ids.unshift(selectedTrailerId);\n        }\n\n        const options = ids.reduce((result, id) => {\n            const trailer = trailerById[id] || null;\n            if (!trailer) {\n                return result;\n            }\n\n            const carrierUtilizationHash = getHash(trailer.carrierId as string, pickupDate);\n\n            const carrierUtilization = carriersUtilizationByHash[carrierUtilizationHash];\n\n            result.push({\n                ...trailer,\n                linkedAssetId: vehicleLinks.byTrailerId[trailer?.id as TrailerIdT] || null,\n                carrierUtilizationPercent: carrierUtilization ? carrierUtilization.utilizationPercents : null,\n                isCarrierUtilizationLoading: carriersUtilizationFetchRequestStatus.loading,\n            });\n\n            return result;\n        }, [] as TrailerOptionT[]);\n\n        return options;\n    }, [\n        trailerById,\n        trailerIds,\n        selectedTrailerId,\n        pickupDate,\n        carriersUtilizationFetchRequestStatus,\n        carriersUtilizationByHash,\n        vehicleLinks.byTrailerId,\n    ]);\n\n    const trucksOptions: TruckOptionT[] = React.useMemo(() => {\n        const ids = [...truckIds];\n\n        if (selectedTruckId && !truckIds.includes(selectedTruckId)) {\n            ids.unshift(selectedTruckId);\n        }\n\n        const options = ids.reduce((options, id) => {\n            const truck = truckById[id] || null;\n            if (!truck) {\n                return options;\n            }\n\n            const carrierUtilizationHash = getHash(truck.carrierId as string, pickupDate);\n\n            const carrierUtilization = carriersUtilizationByHash[carrierUtilizationHash];\n\n            options.push({\n                ...truck,\n                linkedAssetId: vehicleLinks.byTruckId[truck?.id as TrailerIdT] || null,\n                carrierUtilizationPercent: carrierUtilization ? carrierUtilization.utilizationPercents : null,\n                isCarrierUtilizationLoading: carriersUtilizationFetchRequestStatus.loading,\n            });\n\n            return options;\n        }, [] as TruckOptionT[]);\n\n        return options;\n    }, [\n        truckById,\n        truckIds,\n        selectedTruckId,\n        pickupDate,\n        carriersUtilizationFetchRequestStatus,\n        carriersUtilizationByHash,\n        vehicleLinks.byTruckId,\n    ]);\n\n    const getOptionValue = (option: TruckOptionT | TrailerOptionT) => option?.id;\n\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    const handleSelectLinkByTruck = (truckId: TruckIdT) => {\n        const linkedTrailerId = vehicleLinks.byTruckId[truckId] || null;\n\n        formik.setValues((values) => {\n            return {\n                ...values,\n                [FieldsEnum.truckId]: truckId,\n                [FieldsEnum.trailerId]: linkedTrailerId || values[FieldsEnum.trailerId],\n            };\n        });\n\n        // Set meta => touched true\n        setTimeout(() => {\n            formik.setTouched({\n                ...formik.touched,\n                [FieldsEnum.truckId]: true,\n                [FieldsEnum.trailerId]: true,\n            });\n        }, 0);\n\n        const changes: Partial<UserSelectionT> = {\n            trailerId: linkedTrailerId,\n            truckId,\n        };\n\n        dispatch(changeUserSelection(brokerOrderId, tourId, changes));\n    };\n\n    const renderTruckOption = (option: TruckOptionT, _?: string, callbacks?: { onCloseOverlay: () => void }) => {\n        return (\n            <AssignOptionLabel\n                assetId={option.id}\n                isInvalid={!option?.valid}\n                model={option.model}\n                plateNumber={option.plateNumber}\n                price={t('assignment.rate', { rate: option.ratePerKm })}\n                rateMode={option.rateMode || null}\n                isAssetUtilizationLoading={false}\n                assetUtilizationPercent={option.utilization}\n                carrierUtilizationPercent={option.carrierUtilizationPercent}\n                isCarrierUtilizationLoading={option.isCarrierUtilizationLoading}\n                linkedAsset={trailerById[option.linkedAssetId as AssetIdT] || null}\n                onSelectLink={handleSelectLinkByTruck}\n                onCloseOverlay={callbacks?.onCloseOverlay}\n            />\n        );\n    };\n\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    const handleSelectLinkByTrailer = (trailerId: TrailerIdT) => {\n        const linkedTruckId = vehicleLinks.byTrailerId[trailerId] || null;\n\n        formik.setValues((values) => {\n            return {\n                ...values,\n                [FieldsEnum.truckId]: linkedTruckId || values[FieldsEnum.truckId],\n                [FieldsEnum.trailerId]: trailerId,\n            };\n        });\n\n        // Set meta => touched true\n        setTimeout(() => {\n            formik.setTouched({\n                ...formik.touched,\n                [FieldsEnum.truckId]: true,\n                [FieldsEnum.trailerId]: true,\n            });\n        }, 0);\n\n        const changes: Partial<UserSelectionT> = {\n            trailerId,\n            truckId: linkedTruckId,\n        };\n\n        dispatch(changeUserSelection(brokerOrderId, tourId, changes));\n    };\n\n    const renderTrailerOption = (option: TrailerOptionT, _?: string, callbacks?: { onCloseOverlay: () => void }) => {\n        return (\n            <AssignOptionLabel\n                assetId={option.id}\n                isInvalid={!option?.valid}\n                model={option.model}\n                plateNumber={option.plateNumber}\n                price={t('assignment.rate', { rate: option.ratePerKm })}\n                rateMode={option.rateMode || null}\n                isAssetUtilizationLoading={false}\n                assetUtilizationPercent={option.utilization}\n                carrierUtilizationPercent={option.carrierUtilizationPercent}\n                isCarrierUtilizationLoading={option.isCarrierUtilizationLoading}\n                linkedAsset={truckById[option.linkedAssetId as AssetIdT] || null}\n                onSelectLink={handleSelectLinkByTrailer}\n                onCloseOverlay={callbacks?.onCloseOverlay}\n            />\n        );\n    };\n\n    const handleSelectTruck = (truckId: TruckIdT | null) => {\n        const formValueChanges: Partial<FormValuesT> = {\n            [FieldsEnum.truckId]: truckId,\n        };\n\n        formik.setValues((prevValues) => {\n            return {\n                ...prevValues,\n                ...formValueChanges,\n            };\n        });\n\n        // Set meta => touched true\n        setTimeout(() => {\n            formik.setTouched({\n                ...formik.touched,\n                ...mapValues(formValueChanges, () => true),\n            });\n        }, 0);\n\n        const changes: Partial<UserSelectionT> = {\n            truckId,\n        };\n        dispatch(changeUserSelection(brokerOrderId, tourId, changes));\n    };\n\n    const renderTruckTriggerIcon =\n        (selectedTruckId: TruckIdT | null, selectedTrailerId: TrailerIdT | null) =>\n        (iconMeta: DropdownSearchInputIconMetaT) => {\n            const isLinked =\n                !!selectedTruckId &&\n                !!selectedTrailerId &&\n                vehicleLinks.byTruckId[selectedTruckId] === selectedTrailerId;\n            if (isLinked) {\n                return <AssetLinkIcon {...AssetLinkIconProps.getControlProps(iconMeta)} />;\n            }\n\n            return <TruckIcon {...TruckIconProps.getControlProps(iconMeta)} />;\n        };\n\n    const renderTruckTrigger = (option: TruckOptionT | undefined, placeholder?: React.ReactNode) => {\n        if (!option) {\n            return placeholder;\n        }\n\n        let resetTooltipNode: React.ReactNode;\n        if (isDisabledTruckSuggest) {\n            resetTooltipNode = t('assignment.tooltips.cancel-truck-transport-order');\n        } else if (selectedTrailerId === vehicleLinks.byTruckId[option.id]) {\n            resetTooltipNode = t('assignment.tooltips.unlink-truck');\n        } else {\n            resetTooltipNode = t('assignment.tooltips.clear-truck');\n        }\n\n        return (\n            <AssignTriggerLabel\n                model={option?.model}\n                plateNumber={option?.plateNumber}\n                ratePerKm={option?.ratePerKm}\n                rateMode={option?.rateMode}\n                resetTooltipNode={resetTooltipNode}\n                isDisabled={isDisabledTruckSuggest}\n                onReset={() => {\n                    if (isDisabledTruckSuggest) {\n                        if (initTruckTransportOrder?.id) {\n                            cancelTruckTransportOrderConfirmation.setData({\n                                transportOrderId: initTruckTransportOrder.id,\n                            });\n                        } else {\n                            logWarning('Empty initTruckTransportOrder.id!');\n                        }\n                    } else {\n                        handleSelectTruck(null);\n                    }\n                }}\n                onOpenDetails={() => {\n                    if (!option?.carrierId) {\n                        logWarning('Empty option?.carrierId');\n                        return;\n                    }\n\n                    openLeftSidebar(\n                        {\n                            type: CommonSidebarsTypeEnum.truckDetails,\n                            truckId: option?.id,\n                            partnerId: option?.carrierId,\n                            isReadOnly: true,\n                            isDisableShowOnMap: true,\n                        },\n                        {\n                            isForceShowBackAction: true,\n                        },\n                    );\n                }}\n            />\n        );\n    };\n\n    const handleSelectTrailer = (trailerId: TrailerIdT | null) => {\n        const formValueChanges: Partial<FormValuesT> = {\n            [FieldsEnum.trailerId]: trailerId,\n        };\n\n        formik.setValues((prevValues) => {\n            return {\n                ...prevValues,\n                ...formValueChanges,\n            };\n        });\n\n        // Set meta => touched true\n        setTimeout(() => {\n            formik.setTouched({\n                ...formik.touched,\n                ...mapValues(formValueChanges, () => true),\n            });\n        }, 0);\n\n        const changes: Partial<UserSelectionT> = { trailerId };\n        dispatch(changeUserSelection(brokerOrderId, tourId, changes));\n    };\n\n    const renderTrailerTriggerIcon =\n        (selectedTrailerId: TrailerIdT | null, selectedTruckId: TruckIdT | null) =>\n        (iconMeta: DropdownSearchInputIconMetaT) => {\n            const isLinked =\n                !!selectedTrailerId &&\n                !!selectedTruckId &&\n                vehicleLinks.byTrailerId[selectedTrailerId] === selectedTruckId;\n            if (isLinked) {\n                return <AssetLinkIcon {...AssetLinkIconProps.getControlProps(iconMeta)} />;\n            }\n\n            return <TrailerIcon {...TrailerIconProps.getControlProps(iconMeta)} />;\n        };\n\n    const renderTrailerTrigger = (option: TrailerOptionT | undefined, placeholder?: React.ReactNode) => {\n        if (!option) {\n            return placeholder;\n        }\n\n        let resetTooltipNode: React.ReactNode;\n        if (isDisabledTrailerSuggest) {\n            resetTooltipNode = t('assignment.tooltips.cancel-trailer-transport-order');\n        } else if (selectedTruckId === vehicleLinks.byTrailerId[option.id]) {\n            resetTooltipNode = t('assignment.tooltips.unlink-trailer');\n        } else {\n            resetTooltipNode = t('assignment.tooltips.clear-trailer');\n        }\n\n        return (\n            <AssignTriggerLabel\n                model={option?.model}\n                plateNumber={option?.plateNumber}\n                ratePerKm={option?.ratePerKm}\n                rateMode={option?.rateMode || null}\n                isDisabled={isDisabledTrailerSuggest}\n                onReset={() => {\n                    if (isDisabledTrailerSuggest) {\n                        if (initTrailerTransportOrder?.id) {\n                            cancelTrailerTransportOrderConfirmation.setData({\n                                transportOrderId: initTrailerTransportOrder.id,\n                            });\n                        } else {\n                            logWarning('Empty initTrailerTransportOrder.id!');\n                        }\n                    } else {\n                        handleSelectTrailer(null);\n                    }\n                }}\n                resetTooltipNode={resetTooltipNode}\n                onOpenDetails={() => {\n                    if (!option?.carrierId) {\n                        logWarning('Empty option?.carrierId');\n                        return;\n                    }\n\n                    openLeftSidebar(\n                        {\n                            type: CommonSidebarsTypeEnum.trailerDetails,\n                            trailerId: option?.id,\n                            partnerId: option?.carrierId,\n                            isReadOnly: true,\n                            isDisableShowOnMap: true,\n                        },\n                        {\n                            isForceShowBackAction: true,\n                        },\n                    );\n                }}\n            />\n        );\n    };\n\n    const handleSelectPointToDropTruck = (value: LocationT | null) => {\n        const formValueChanges: Partial<FormValuesT> = {\n            [FieldsEnum.locationToDropTruck]: value,\n        };\n\n        const userSelectionChanges: Partial<UserSelectionT> = {\n            pointToDropTruck: convertLocationToPoint(value),\n        };\n\n        formik.setValues((formValues) => ({ ...formValues, ...formValueChanges }));\n\n        dispatch(changeUserSelection(brokerOrderId, tourId, userSelectionChanges));\n    };\n\n    const handleSelectPointToDropTrailer = (value: LocationT | null) => {\n        const formValueChanges: Partial<FormValuesT> = {\n            [FieldsEnum.locationToDropTrailer]: value,\n        };\n        const userSelectionChanges: Partial<UserSelectionT> = {\n            pointToDropTrailer: convertLocationToPoint(value),\n        };\n\n        if (isSelectedSameLocations) {\n            formValueChanges[FieldsEnum.locationToDropTruck] = value;\n            userSelectionChanges.pointToDropTruck = convertLocationToPoint(value);\n        }\n\n        formik.setValues((formValues) => ({\n            ...formValues,\n            ...formValueChanges,\n        }));\n\n        dispatch(changeUserSelection(brokerOrderId, tourId, userSelectionChanges));\n    };\n\n    const sideBarFooterAlertsContext = useContext(SideBarFooterAlertsContext);\n    const showFooterAlert = sideBarFooterAlertsContext?.showAlert;\n\n    const handleExpire = React.useCallback(() => {\n        showFooterAlert?.({\n            theme: AlertThemeEnum.orange,\n            content: <ExpirationContextAlertContent />,\n        });\n\n        dispatch(changeUserSelection(brokerOrderId, tourId, {}));\n    }, [showFooterAlert, dispatch, brokerOrderId, tourId]);\n\n    const hasAsyncErrors = !isEmpty(asyncErrors);\n\n    const isLoadingSubmit = selfCostPredictionRequestStatus.loading || assignmentRequestStatus.loading;\n    const isDisabledSubmit = isLoadingSubmit || hasAsyncErrors;\n\n    const utilizationRowsFactory = useUtilizationRowsFactory();\n\n    const utilizationDetails: Array<InfoTableRowT> = React.useMemo(() => {\n        const rows: Array<InfoTableRowT> = [];\n\n        const isSameCompany =\n            !!selfCostPrediction?.truckCarrier?.id &&\n            !!selfCostPrediction?.trailerCarrier?.id &&\n            selfCostPrediction?.truckCarrier?.id === selfCostPrediction?.trailerCarrier?.id;\n\n        if (isSameCompany && selfCostPrediction?.truckCarrier) {\n            rows.push({\n                ...utilizationRowsFactory.trainCarrier({\n                    carrierCountryCode: selfCostPrediction?.truckCarrier?.country,\n                    carrierName: selfCostPrediction?.truckCarrier?.name || '',\n                    utilizationAfter: selfCostPrediction?.truckCarrierUtilizationAfter,\n                    utilizationBefore: selfCostPrediction?.truckCarrierUtilizationBefore,\n                }),\n            });\n        }\n\n        if (!isSameCompany && selfCostPrediction?.truckCarrier) {\n            rows.push({\n                ...utilizationRowsFactory.trainCarrier({\n                    carrierCountryCode: selfCostPrediction?.truckCarrier?.country,\n                    carrierName: selfCostPrediction?.truckCarrier?.name || '',\n                    utilizationAfter: selfCostPrediction?.truckCarrierUtilizationAfter,\n                    utilizationBefore: selfCostPrediction?.truckCarrierUtilizationBefore,\n                }),\n            });\n        }\n\n        if (!isSameCompany && selfCostPrediction?.trailerCarrier) {\n            rows.push({\n                ...utilizationRowsFactory.trailerCarrier({\n                    carrierCountryCode: selfCostPrediction?.trailerCarrier?.country,\n                    carrierName: selfCostPrediction?.trailerCarrier?.name || '',\n                    utilizationAfter: selfCostPrediction?.trailerCarrierUtilizationAfter,\n                    utilizationBefore: selfCostPrediction?.trailerCarrierUtilizationBefore,\n                }),\n            });\n        }\n\n        const truckCarrier = truckById[selectedTruckId as TruckIdT];\n        if (truckCarrier && isNumber(selfCostPrediction?.truckUtilizationBefore)) {\n            rows.push({\n                ...utilizationRowsFactory.truck({\n                    model: truckCarrier.model,\n                    plateNumber: truckCarrier.plateNumber,\n                    utilizationBefore: selfCostPrediction?.truckUtilizationBefore,\n                    utilizationAfter: selfCostPrediction?.truckUtilizationAfter,\n                }),\n            });\n        }\n\n        const trailerCarrier = trailerById[selectedTrailerId as TrailerIdT];\n        if (trailerCarrier && isNumber(selfCostPrediction?.trailerUtilizationBefore)) {\n            rows.push({\n                ...utilizationRowsFactory.trailer({\n                    model: trailerCarrier.model,\n                    plateNumber: trailerCarrier.plateNumber,\n                    utilizationBefore: selfCostPrediction?.trailerUtilizationBefore,\n                    utilizationAfter: selfCostPrediction?.trailerUtilizationAfter,\n                }),\n            });\n        }\n\n        return rows;\n    }, [selfCostPrediction, truckById, selectedTruckId, trailerById, selectedTrailerId, utilizationRowsFactory]);\n\n    const truckWarning = React.useMemo((): string | null => {\n        const linkedTruckId = vehicleLinks.byTrailerId[selectedTrailerId as TrailerIdT] || null;\n        if (!linkedTruckId) {\n            return null;\n        }\n\n        if (isDisabledTruckSuggest) {\n            return null;\n        }\n\n        if (linkedTruckId === selectedTruckId) {\n            return null;\n        }\n\n        const linkedTruck = truckById[linkedTruckId] || null;\n        if (!linkedTruck) {\n            return null;\n        }\n\n        // @ts-expect-error wrong types for formik\n        return (\n            <span>\n                {t('assignment.warnings.has-linked-truck', {\n                    truckLabel: [linkedTruck.plateNumber, linkedTruck.model].filter(Boolean).join(' / '),\n                })}{' '}\n                <Link\n                    onClick={() => {\n                        if (selectedTrailerId) {\n                            handleSelectLinkByTrailer(selectedTrailerId);\n                        }\n                    }}\n                    theme={LinkThemeEnum.boldOrange}\n                >\n                    {t('assignment.warnings.has-linked-truck-link')}\n                </Link>\n            </span>\n        );\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [\n        t,\n        selectedTruckId,\n        selectedTrailerId,\n        vehicleLinks,\n        truckById,\n        isDisabledTruckSuggest,\n        handleSelectLinkByTrailer,\n    ]);\n\n    const trailerWarning = React.useMemo((): string | null => {\n        const linkedTrailerId = vehicleLinks.byTruckId[selectedTruckId as TruckIdT] || null;\n        if (!linkedTrailerId) {\n            return null;\n        }\n\n        if (isDisabledTrailerSuggest) {\n            return null;\n        }\n\n        if (linkedTrailerId === selectedTrailerId) {\n            return null;\n        }\n\n        const linkedTrailer = trailerById[linkedTrailerId] || null;\n        if (!linkedTrailer) {\n            return null;\n        }\n\n        // @ts-expect-error wrong types for formik\n        return (\n            <span>\n                {t('assignment.warnings.has-linked-trailer', {\n                    trailerLabel: [linkedTrailer.plateNumber, linkedTrailer.model].filter(Boolean).join(' / '),\n                })}{' '}\n                <Link\n                    onClick={() => {\n                        if (selectedTruckId) {\n                            handleSelectLinkByTruck(selectedTruckId);\n                        }\n                    }}\n                    theme={LinkThemeEnum.boldOrange}\n                >\n                    {t('assignment.warnings.has-linked-trailer-link')}\n                </Link>\n            </span>\n        );\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [\n        t,\n        selectedTruckId,\n        selectedTrailerId,\n        vehicleLinks,\n        trailerById,\n        isDisabledTrailerSuggest,\n        handleSelectLinkByTruck,\n    ]);\n\n    const truckCarrierId = selfCostPrediction?.truckCarrier?.id || null;\n    const trailerCarrierId = selfCostPrediction?.trailerCarrier?.id || null;\n\n    return (\n        <div className={cx('wrap')}>\n            <form onSubmit={formik.handleSubmit}>\n                <div className={cx('form')}>\n                    <FormikField\n                        name={FieldsEnum.truckId}\n                        error={formik.errors[FieldsEnum.truckId]}\n                        meta={formik.getFieldMeta(FieldsEnum.truckId)}\n                        label={t('assignment.fields.truck.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                        asyncError={asyncFormErrors[FieldsEnum.truckId]}\n                        resetAsyncError={resetAsyncFormErrors}\n                        isForceShowWarning\n                        warning={truckWarning}\n                    >\n                        {(props) => (\n                            <DropdownSearchInput<TruckOptionT, TruckIdT | null>\n                                selectedValue={formik.values[FieldsEnum.truckId]}\n                                options={trucksOptions}\n                                onSelect={handleSelectTruck}\n                                renderTrigger={renderTruckTrigger}\n                                renderOption={renderTruckOption}\n                                getOptionValue={getOptionValue}\n                                isDisabled={isDisabledTruckSuggest}\n                                isLoading={truckSuggestRequestStatus.loading}\n                                onChangeQuery={(text) => {\n                                    if (!brokerOrderId || !tourId) {\n                                        return;\n                                    }\n\n                                    dispatch(\n                                        findTruck({\n                                            brokerOrderId,\n                                            tourId,\n                                            plateNumber: text,\n                                            trailerId: formik.values[FieldsEnum.trailerId],\n                                            isIgnoreCertificates: userSelection.isIgnoreCertificates,\n                                            isIgnoreEmissionStandard: userSelection.isIgnoreEmissionStandard,\n                                            pointToDropTrailer: userSelection.pointToDropTrailer,\n                                            pointToDropTruck: userSelection.pointToDropTruck,\n                                        }),\n                                    );\n                                }}\n                                renderLeftIcon={renderTruckTriggerIcon(selectedTruckId, selectedTrailerId)}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                inputPlaceholder={t('assignment.fields.truck.input-placeholder')}\n                                placeholder={t('assignment.fields.truck.placeholder')}\n                                optionClassName={cx('option')}\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        name={FieldsEnum.trailerId}\n                        error={formik.errors[FieldsEnum.trailerId]}\n                        meta={formik.getFieldMeta(FieldsEnum.trailerId)}\n                        label={t('assignment.fields.trailer.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                        asyncError={asyncFormErrors[FieldsEnum.trailerId]}\n                        resetAsyncError={resetAsyncFormErrors}\n                        isForceShowWarning\n                        warning={trailerWarning}\n                    >\n                        {(props) => (\n                            <DropdownSearchInput<TrailerOptionT, TrailerIdT | null>\n                                selectedValue={formik.values[FieldsEnum.trailerId]}\n                                options={trailersOptions}\n                                onSelect={handleSelectTrailer}\n                                renderTrigger={renderTrailerTrigger}\n                                renderOption={renderTrailerOption}\n                                isDisabled={isDisabledTrailerSuggest}\n                                isLoading={trailerSuggestRequestStatus.loading}\n                                getOptionValue={getOptionValue}\n                                onChangeQuery={(text) => {\n                                    if (!brokerOrderId || !tourId) {\n                                        return;\n                                    }\n\n                                    dispatch(\n                                        findTrailer({\n                                            brokerOrderId,\n                                            tourId,\n                                            plateNumber: text,\n                                            truckId: formik.values[FieldsEnum.truckId],\n                                            isIgnoreCertificates: userSelection.isIgnoreCertificates,\n                                            isIgnoreEmissionStandard: userSelection.isIgnoreEmissionStandard,\n                                            pointToDropTrailer: userSelection.pointToDropTrailer,\n                                            pointToDropTruck: userSelection.pointToDropTruck,\n                                        }),\n                                    );\n                                }}\n                                renderLeftIcon={renderTrailerTriggerIcon(selectedTrailerId, selectedTruckId)}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                inputPlaceholder={t('assignment.fields.trailer.input-placeholder')}\n                                placeholder={t('assignment.fields.trailer.placeholder')}\n                                optionClassName={cx('option')}\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        name={FieldsEnum.locationToDropTrailer}\n                        error={formik.errors[FieldsEnum.locationToDropTrailer]}\n                        meta={formik.getFieldMeta(FieldsEnum.locationToDropTrailer)}\n                        label={t('assignment.fields.point-to-drop-trailer.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <GeoSuggest\n                                name={FieldsEnum.locationToDropTrailer}\n                                value={formik.values[FieldsEnum.locationToDropTrailer]}\n                                placeholder={t('assignment.fields.point-to-drop-trailer.placeholder')}\n                                renderLeftIcon={renderTrailerDropOffIcon(\n                                    formik.values[FieldsEnum.locationToDropTrailer]\n                                        ? 'assignment-input-selected'\n                                        : 'assignment-input-normal',\n                                    initPayloadDropPoint,\n                                    formik.values[FieldsEnum.locationToDropTruck],\n                                    formik.values[FieldsEnum.locationToDropTrailer],\n                                )}\n                                onChange={handleSelectPointToDropTrailer}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onBlur={props.onBlur}\n                                testSelector=\"point-to-drop-trailer\"\n                                isDisabled={!formik.values[FieldsEnum.trailerId]}\n                                showClearControl={!!formik.values[FieldsEnum.locationToDropTrailer]}\n                                overlayPosition=\"top\"\n                                renderRightNode={() =>\n                                    !checkIsSameLocation(\n                                        initTrailerDropPoint?.location || null,\n                                        formik.values[FieldsEnum.locationToDropTrailer],\n                                    ) && (\n                                        <TransparentTrigger\n                                            spaces=\"xs\"\n                                            onClick={() => {\n                                                handleSelectPointToDropTrailer(initTrailerDropPoint?.location || null);\n                                            }}\n                                            leftIcon={\n                                                <NumberIcon\n                                                    fillColor={StyleGuideColorsEnum.charcoal}\n                                                    number={(initPayloadDropPoint?.index || 0) + 1}\n                                                />\n                                            }\n                                            reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                                        />\n                                    )\n                                }\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        name={FieldsEnum.locationToDropTruck}\n                        error={formik.errors[FieldsEnum.locationToDropTruck]}\n                        meta={formik.getFieldMeta(FieldsEnum.locationToDropTruck)}\n                        label={t('assignment.fields.point-to-drop-truck.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <GeoSuggest\n                                name={FieldsEnum.locationToDropTruck}\n                                value={formik.values[FieldsEnum.locationToDropTruck]}\n                                placeholder={t('assignment.fields.point-to-drop-truck.placeholder')}\n                                renderLeftIcon={renderTruckDropOffIcon(\n                                    formik.values[FieldsEnum.locationToDropTruck]\n                                        ? 'assignment-input-selected'\n                                        : 'assignment-input-normal',\n                                    initPayloadDropPoint,\n                                    formik.values[FieldsEnum.locationToDropTruck],\n                                    formik.values[FieldsEnum.locationToDropTrailer],\n                                )}\n                                onChange={handleSelectPointToDropTruck}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onBlur={props.onBlur}\n                                isDisabled={!formik.values[FieldsEnum.truckId]}\n                                testSelector=\"point-to-drop-truck\"\n                                showClearControl={!!formik.values[FieldsEnum.locationToDropTruck]}\n                                overlayPosition=\"top\"\n                                renderRightNode={() =>\n                                    !checkIsSameLocation(\n                                        initTruckDropPoint?.location || null,\n                                        formik.values[FieldsEnum.locationToDropTruck],\n                                    ) && (\n                                        <TransparentTrigger\n                                            spaces=\"xs\"\n                                            onClick={() => {\n                                                handleSelectPointToDropTruck(initTruckDropPoint?.location || null);\n                                            }}\n                                            leftIcon={\n                                                <NumberIcon\n                                                    fillColor={StyleGuideColorsEnum.charcoal}\n                                                    number={(initPayloadDropPoint?.index || 0) + 1}\n                                                />\n                                            }\n                                            reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                                        />\n                                    )\n                                }\n                            />\n                        )}\n                    </FormikField>\n                </div>\n                <TourTypeTabs\n                    className={cx('tout-type-tabs')}\n                    brokerOrderDetails={brokerOrderDetails}\n                    isLoading={selfCostPredictionRequestStatus.loading}\n                    selfCostPrediction={selfCostPrediction}\n                    selectedTourTypeTab={selectedTourTypeTab}\n                    onSelectTourTypeTab={onSelectTourTypeTab}\n                />\n                {(selfCostPrediction || selfCostPredictionRequestStatus.loading) && (\n                    <div className={cx('self-cost-prediction')}>\n                        <InfoTable\n                            shouldRenderIcons\n                            rows={utilizationDetails}\n                            className={cx('table', 'table--utilization')}\n                        />\n                        <AssetTypeTabs\n                            className={cx('asset-type-tabs')}\n                            selfCostPrediction={selfCostPrediction}\n                            selectedTourTypeTab={selectedTourTypeTab}\n                            selectedAssetType={selectedAssetType}\n                            onSelectAssetType={setSelectedAssetType}\n                        />\n                        {selectedAssetType === AssetTypeTabsEnum.train &&\n                            selectedTourTypeTab === TourTypeTabsEnum.current && (\n                                <ReceiptPriceDetails\n                                    label={t('assignment.costs-type.train')}\n                                    className={cx('receipt')}\n                                    costs={selfCostPrediction?.calculatedSumCost}\n                                />\n                            )}\n                        {selectedAssetType === AssetTypeTabsEnum.truck &&\n                            selectedTourTypeTab === TourTypeTabsEnum.current && (\n                                <ReceiptPriceDetails\n                                    label={t('assignment.costs-type.truck')}\n                                    className={cx('receipt')}\n                                    costs={selfCostPrediction?.calculatedTruckCost}\n                                />\n                            )}\n                        {selectedAssetType === AssetTypeTabsEnum.trailer &&\n                            selectedTourTypeTab === TourTypeTabsEnum.current && (\n                                <ReceiptPriceDetails\n                                    label={t('assignment.costs-type.trailer')}\n                                    className={cx('receipt')}\n                                    costs={selfCostPrediction?.calculatedTrailerCost}\n                                    isHideFuelPrice\n                                />\n                            )}\n                        {selectedAssetType === AssetTypeTabsEnum.truck &&\n                            selectedTourTypeTab === TourTypeTabsEnum.next && (\n                                <ReceiptPriceDetails\n                                    label={\n                                        truckCarrierId && selfCostPrediction?.truckNextTransportationOrderInfo ? (\n                                            <Link\n                                                target=\"_blank\"\n                                                theme={LinkThemeEnum.boldBrandDark}\n                                                to={urlFactory.partnerTransportOrderDetails(\n                                                    PartnerTypeEnum.carrier,\n                                                    truckCarrierId,\n                                                    selfCostPrediction.truckNextTransportationOrderInfo.id,\n                                                )}\n                                            >\n                                                {t('assignment.costs-type.transport-order', {\n                                                    transportOrderNumber:\n                                                        selfCostPrediction.truckNextTransportationOrderInfo.number ||\n                                                        '',\n                                                })}\n                                            </Link>\n                                        ) : null\n                                    }\n                                    className={cx('receipt')}\n                                    costs={selfCostPrediction?.truckNextTourNewCostDetails}\n                                    prevCosts={selfCostPrediction?.truckNextTourOldCostDetails}\n                                />\n                            )}\n                        {selectedAssetType === AssetTypeTabsEnum.trailer &&\n                            selectedTourTypeTab === TourTypeTabsEnum.next && (\n                                <ReceiptPriceDetails\n                                    label={\n                                        trailerCarrierId && selfCostPrediction?.trailerNextTransportationOrderInfo ? (\n                                            <Link\n                                                target=\"_blank\"\n                                                theme={LinkThemeEnum.boldBrandDark}\n                                                to={urlFactory.partnerTransportOrderDetails(\n                                                    PartnerTypeEnum.carrier,\n                                                    trailerCarrierId,\n                                                    selfCostPrediction.trailerNextTransportationOrderInfo.id,\n                                                )}\n                                            >\n                                                {t('assignment.costs-type.transport-order', {\n                                                    transportOrderNumber:\n                                                        selfCostPrediction.trailerNextTransportationOrderInfo.number ||\n                                                        '',\n                                                })}\n                                            </Link>\n                                        ) : null\n                                    }\n                                    className={cx('receipt')}\n                                    costs={selfCostPrediction?.trailerNextTourNewCostDetails}\n                                    prevCosts={selfCostPrediction?.trailerNextTourOldCostDetails}\n                                />\n                            )}\n                        {selectedAssetType === AssetTypeTabsEnum.train &&\n                            selectedTourTypeTab === TourTypeTabsEnum.next && (\n                                <ReceiptPriceDetails\n                                    label={\n                                        truckCarrierId && selfCostPrediction?.truckNextTransportationOrderInfo ? (\n                                            <Link\n                                                target=\"_blank\"\n                                                theme={LinkThemeEnum.boldBrandDark}\n                                                to={urlFactory.partnerTransportOrderDetails(\n                                                    PartnerTypeEnum.carrier,\n                                                    truckCarrierId,\n                                                    selfCostPrediction.truckNextTransportationOrderInfo.id,\n                                                )}\n                                            >\n                                                {t('assignment.costs-type.transport-order', {\n                                                    transportOrderNumber:\n                                                        selfCostPrediction.truckNextTransportationOrderInfo.number ||\n                                                        '',\n                                                })}\n                                            </Link>\n                                        ) : null\n                                    }\n                                    className={cx('receipt')}\n                                    costs={selfCostPrediction?.truckNextTourNewCostDetails}\n                                    prevCosts={selfCostPrediction?.truckNextTourOldCostDetails}\n                                />\n                            )}\n                        {selectedAssetType === AssetTypeTabsEnum.train && (\n                            <MileageInfoTable\n                                totalDistance={selfCostPrediction?.calculatedSumCost?.distances?.totalDistance || null}\n                                payloadDistance={selfCostPrediction?.calculatedSumCost?.payload?.distances || null}\n                                deadheadDistance={selfCostPrediction?.calculatedSumCost?.deadhead?.distances || null}\n                                isNotActual={!formik.values[FieldsEnum.truckId] || !formik.values[FieldsEnum.trailerId]}\n                            />\n                        )}\n                        {selectedAssetType === AssetTypeTabsEnum.truck && (\n                            <MileageInfoTable\n                                totalDistance={\n                                    selfCostPrediction?.calculatedTruckCost?.distances?.totalDistance || null\n                                }\n                                payloadDistance={selfCostPrediction?.calculatedTruckCost?.payload?.distances || null}\n                                deadheadDistance={selfCostPrediction?.calculatedTruckCost?.deadhead?.distances || null}\n                                isNotActual={!formik.values[FieldsEnum.truckId] || !formik.values[FieldsEnum.trailerId]}\n                            />\n                        )}\n                        {selectedAssetType === AssetTypeTabsEnum.trailer && (\n                            <MileageInfoTable\n                                totalDistance={\n                                    selfCostPrediction?.calculatedTrailerCost?.distances?.totalDistance || null\n                                }\n                                payloadDistance={selfCostPrediction?.calculatedTrailerCost?.payload?.distances || null}\n                                deadheadDistance={\n                                    selfCostPrediction?.calculatedTrailerCost?.deadhead?.distances || null\n                                }\n                                isNotActual={!formik.values[FieldsEnum.truckId] || !formik.values[FieldsEnum.trailerId]}\n                            />\n                        )}\n                        {(selfCostPredictionRequestStatus.loading || selfCostPredictionRequestStatus.error) && (\n                            <>\n                                <div className={cx('self-cost-prediction__overlay')} />\n                                {selfCostPredictionRequestStatus.loading && (\n                                    <div className={cx('self-cost-prediction__loader')}>\n                                        <ControlLoaderLabel isInvert>\n                                            {t(\n                                                !selfCostPrediction\n                                                    ? 'assignment.loader.calculating'\n                                                    : 'assignment.loader.re-calculating',\n                                            )}\n                                        </ControlLoaderLabel>\n                                    </div>\n                                )}\n                            </>\n                        )}\n                    </div>\n                )}\n                <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n                <FooterSideBarLayout hasPaddings topNode={<FooterSideBarAlertsLayout />}>\n                    <div className={cx('actions')}>\n                        <Button\n                            theme={ButtonThemeEnum.secondary}\n                            className={cx('action', 'action--cancel')}\n                            onClick={onCancel}\n                        >\n                            {t('assignment.actions.cancel')}\n                        </Button>\n                        <Button.Container className={cx('action', 'action--assign')}>\n                            <Button\n                                isFullWidth\n                                isCenterContent\n                                theme={ButtonThemeEnum.primary}\n                                isDisabled={isDisabledSubmit}\n                                isLoading={isLoadingSubmit}\n                                type=\"submit\"\n                            >\n                                {t('assignment.actions.assign')}\n                            </Button>\n                            <Button.Timer\n                                showTime={MS_IN_MIN}\n                                expireTime={selfCostPrediction?.expireTime || null}\n                                tooltipMessage={t('assignment.time-left-to-accept-cost')}\n                                onExpire={handleExpire}\n                            />\n                        </Button.Container>\n                    </div>\n                </FooterSideBarLayout>\n            </form>\n            <LongDeadheadConfirmation\n                data={longDeadheadConfirmation.data}\n                requestStatus={assignmentRequestStatus}\n                onClose={longDeadheadConfirmation.onClose}\n                onCancel={longDeadheadConfirmation.onCancel}\n                onConfirm={({ brokerOrderId, tourId, assignmentContextId }) => {\n                    dispatch(assign(brokerOrderId, tourId, assignmentContextId));\n                }}\n            />\n            <CancelTrailerTransportOrderConfirmation\n                data={cancelTrailerTransportOrderConfirmation.data}\n                requestStatus={updateTrailerTransportOrderStatusRequest}\n                onClose={cancelTrailerTransportOrderConfirmation.onClose}\n                onCancel={cancelTrailerTransportOrderConfirmation.onCancel}\n                onConfirm={handleConfirmCancelTrailerTransportOrder}\n            />\n            <CancelTruckTransportOrderConfirmation\n                data={cancelTruckTransportOrderConfirmation.data}\n                requestStatus={updateTruckTransportOrderStatusRequest}\n                onClose={cancelTruckTransportOrderConfirmation.onClose}\n                onCancel={cancelTruckTransportOrderConfirmation.onCancel}\n                onConfirm={handleConfirmCancelTruckTransportOrder}\n            />\n        </div>\n    );\n};\n\nexport default AssignmentForm;\n","import React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './TrailerType.scss';\nimport { ApiTrailerTypeT } from 'common/utils/api/models';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    trailerType: ApiTrailerTypeT | undefined;\n    className?: string;\n};\n\nconst TrailerType: React.FC<PropsT> = (props) => {\n    const { trailerType, className } = props;\n\n    return (\n        <div\n            className={cs(\n                cx('icon', {\n                    [`icon--${trailerType}`]: true,\n                }),\n                className,\n            )}\n        />\n    );\n};\n\nexport default TrailerType;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PricesCell.scss';\nimport Money from 'common/components/Money/Money';\nimport isNumber from 'lodash/isNumber';\nimport { CurrencyEnum } from 'common/constants';\nimport ColoredDiff from 'common/components/ColoredDiff/ColoredDiff';\nimport MoneyDiff from 'common/components/MoneyDiff/MoneyDiff';\n\ntype PropsT = {\n    price: number | null | undefined;\n    targetPrice: number | null | undefined;\n};\n\nconst cx = classNames.bind(styles);\n\nconst PricesCell: React.FC<PropsT> = React.memo((props) => {\n    const { price, targetPrice } = props;\n\n    return (\n        <div className={cx('cost')}>\n            {isNumber(targetPrice) ? (\n                <>\n                    <div>\n                        <Money testSelector=\"target-price\" amount={targetPrice} currency={CurrencyEnum.EUR} />\n                    </div>\n                    <div>\n                        <MoneyDiff value={price} baseValue={targetPrice}>\n                            {(diff) => (\n                                <ColoredDiff isInverted diff={diff}>\n                                    <Money testSelector=\"price\" amount={price} currency={CurrencyEnum.EUR} />\n                                </ColoredDiff>\n                            )}\n                        </MoneyDiff>\n                    </div>\n                </>\n            ) : (\n                <>\n                    <div>-</div>\n                    <div>\n                        <Money testSelector=\"price\" amount={price} currency={CurrencyEnum.EUR} />\n                    </div>\n                </>\n            )}\n        </div>\n    );\n});\n\nexport default PricesCell;\n","import { RequestStatusT } from 'common/utils/request-status';\nimport { initialSubjectLogsState, SubjectLogsStateT } from './slice';\nimport { SharableStateT } from 'common/store/models';\nimport { ApiSubjectTypeT } from 'common/utils/api/models';\nimport { getSubjectLogsKey } from './utils';\n\nexport const selectSubjectLogsRequestStatus =\n    (subjectType: ApiSubjectTypeT, subjectId: SubjectIdT) =>\n    (state: SharableStateT): RequestStatusT => {\n        const key = getSubjectLogsKey(subjectType, subjectId);\n        return state.subjectLogs[key]?.requestStatus || initialSubjectLogsState.requestStatus;\n    };\n\nexport const selectSubjectLogs =\n    (subjectType: ApiSubjectTypeT, subjectId: SubjectIdT) =>\n    (state: SharableStateT): SubjectLogsStateT['logs'] => {\n        const key = getSubjectLogsKey(subjectType, subjectId);\n        return state.subjectLogs[key]?.logs || initialSubjectLogsState.logs;\n    };\n","// extracted by mini-css-extract-plugin\nexport default {\"section\":\"DriverDetailsSidebarContent__section___jIYJq\",\"section--isLast\":\"DriverDetailsSidebarContent__section--isLast___bTXu0\",\"section__title\":\"DriverDetailsSidebarContent__section__title___zevUD\",\"field--formal\":\"DriverDetailsSidebarContent__field--formal___mAaKC\",\"field--first-name\":\"DriverDetailsSidebarContent__field--first-name___N57yx\",\"field--contact\":\"DriverDetailsSidebarContent__field--contact___pXHwV\",\"field--last-name\":\"DriverDetailsSidebarContent__field--last-name___HM7YS\",\"field--link\":\"DriverDetailsSidebarContent__field--link___cRLPT\",\"field--birthday\":\"DriverDetailsSidebarContent__field--birthday___I03OK\",\"field--country\":\"DriverDetailsSidebarContent__field--country___OceXH\",\"field--language\":\"DriverDetailsSidebarContent__field--language___gs3GI\",\"fadeIn\":\"DriverDetailsSidebarContent__fadeIn___Z_tl6\",\"blinking\":\"DriverDetailsSidebarContent__blinking___sTP_B\"};","// extracted by mini-css-extract-plugin\nexport default {\"date\":\"HumanReadableFullDateCell__date___fUtK6\",\"date--isBold\":\"HumanReadableFullDateCell__date--isBold___HP_ab\",\"date--isBigFont\":\"HumanReadableFullDateCell__date--isBigFont___oPAqz\",\"fadeIn\":\"HumanReadableFullDateCell__fadeIn___gqvFc\",\"blinking\":\"HumanReadableFullDateCell__blinking___IHcj1\"};","import * as React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\n\nimport TabGroup from 'common/components/tabs/TabGroup/TabGroup';\nimport TabLabel from 'common/components/tabs/TabLabel/TabLabel';\nimport { TabLabelSizeEnum, TabsThemesEnum } from 'common/components/tabs/TabLabel/constants';\nimport { useTabs } from 'common/components/tabs/hooks';\nimport styles from './DetailsOrPapersTabs.scss';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    className?: string;\n    children: React.ReactNode;\n    papersBadge?: React.ReactNode;\n    papersTabRightNode?: React.ReactNode;\n};\n\nenum TabTypeEnum {\n    details = 'details',\n    papers = 'papers',\n}\n\nconst DetailsOrPapersTabs: React.FC<PropsT> = React.memo((props) => {\n    const { children, className, papersBadge, papersTabRightNode } = props;\n    const { t } = useTranslation();\n    const { activeTabType, setActiveTabType } = useTabs<TabTypeEnum>(TabTypeEnum.details);\n\n    const childrenArray = React.Children.toArray(children).filter(Boolean);\n\n    if (childrenArray.length === 0) {\n        return null;\n    }\n\n    // TODO empty state for papers tab\n    // if (childrenArray.length === 1) {\n    //     return <>{childrenArray[0]}</>;\n    // }\n\n    const [detailsTabContent, papersTabContent] = childrenArray;\n\n    return (\n        <>\n            <div className={cs(cx('header'), className)}>\n                <TabGroup size={TabLabelSizeEnum.small}>\n                    {detailsTabContent && (\n                        <TabLabel\n                            theme={TabsThemesEnum.light}\n                            size={TabLabelSizeEnum.small}\n                            isCompact\n                            isActive={activeTabType === TabTypeEnum.details}\n                            onClick={() => {\n                                setActiveTabType(TabTypeEnum.details);\n                            }}\n                        >\n                            {t('common:info-table.tabs.details')}\n                        </TabLabel>\n                    )}\n                    {papersTabContent && (\n                        <TabLabel\n                            theme={TabsThemesEnum.light}\n                            size={TabLabelSizeEnum.small}\n                            isCompact\n                            isActive={activeTabType === TabTypeEnum.papers}\n                            onClick={() => {\n                                setActiveTabType(TabTypeEnum.papers);\n                            }}\n                            badge={papersBadge}\n                        >\n                            {t('common:info-table.tabs.papers')}\n                        </TabLabel>\n                    )}\n                </TabGroup>\n                <div>{activeTabType === TabTypeEnum.papers && papersTabRightNode}</div>\n            </div>\n            {activeTabType === TabTypeEnum.details && detailsTabContent}\n            {activeTabType === TabTypeEnum.papers && papersTabContent}\n        </>\n    );\n});\n\nexport default DetailsOrPapersTabs;\n","import React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport { AssetTypeEnum, StyleGuideColorsEnum } from 'common/constants';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { SetUnavailableVehicleQueryT } from 'common/utils/api/models';\nimport { checkIsSameDay, clearDateTimezone, formatDate } from 'common/utils/time';\nimport { formatDateInterval } from 'common/utils/formatters';\n\nexport type SetUnavailableAssetConfirmationDataT = {\n    companyId: CompanyIdT;\n    assets: Array<{\n        plateNumber: string;\n    }>;\n    query: SetUnavailableVehicleQueryT;\n};\n\ntype PropsT = {\n    assetType: AssetTypeEnum;\n    data: SetUnavailableAssetConfirmationDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onConfirm: (data: SetUnavailableAssetConfirmationDataT) => void;\n    requestStatus: RequestStatusT;\n};\n\nconst TEST_SELECTOR = 'set-unavailable-asset';\n\nconst T_MAP: Record<AssetTypeEnum, { title: string; message: string }> = {\n    [AssetTypeEnum.truck]: {\n        title: 'common:trucks-page.set-unavailable-confirmation.title',\n        message: 'common:trucks-page.set-unavailable-confirmation.message',\n    },\n    [AssetTypeEnum.trailer]: {\n        title: 'common:trailers-page.set-unavailable-confirmation.title',\n        message: 'common:trailers-page.set-unavailable-confirmation.message',\n    },\n};\n\nconst FORMAT_DATE = 'D MMM';\n\nconst SetUnavailableAssetConfirmationModal: React.FC<PropsT> = React.memo((props) => {\n    const { data, onCancel, onClose, requestStatus, onConfirm, assetType } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    const { assets, query } = data;\n\n    const tSet = T_MAP[assetType];\n\n    const dateFrom = assetType === AssetTypeEnum.truck ? query.truckDateFrom : query.trailerDateFrom;\n    const dateTo = assetType === AssetTypeEnum.trailer ? query.truckDateTo : query.trailerDateTo;\n\n    const isSameDay = checkIsSameDay(dateFrom, dateTo);\n    const formattedInterval = isSameDay\n        ? formatDate(FORMAT_DATE, clearDateTimezone(dateFrom))\n        : formatDateInterval(dateFrom, dateTo, FORMAT_DATE);\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            isDisabled: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            onClick: () => {\n                                onCancel();\n                            },\n                        },\n                        {\n                            children: t('common:error-modal.actions.set'),\n                            theme: ButtonThemeEnum.danger,\n                            isDisabled: requestStatus.loading,\n                            isLoading: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                    title={t(tSet.title)}\n                    message={t(tSet.message, {\n                        plateNumber: assets?.[0]?.plateNumber || '',\n                        interval: formattedInterval,\n                    })}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default SetUnavailableAssetConfirmationModal;\n","import { TFunction } from 'i18next';\n\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkNotEmpty } from 'common/utils/form-validators';\n\nconst REQUIRED_FIELDS = [FieldsEnum.roles] as const;\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","import { RevokeContractActionEnum } from 'common/utils/api/models';\n\nexport enum FieldsEnum {\n    action = 'action',\n\n    nextContractId = 'next-contract-id',\n\n    trucksRatePerKm = 'trucks-rate-per-km',\n    boxesRatePerKm = 'boxes-rate-per-km',\n    tiltsRatePerKm = 'tilts-rate-per-km',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.action]: RevokeContractActionEnum;\n\n    [FieldsEnum.nextContractId]: CarrierContractIdT | null;\n\n    [FieldsEnum.trucksRatePerKm]: string;\n    [FieldsEnum.boxesRatePerKm]: string;\n    [FieldsEnum.tiltsRatePerKm]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","// extracted by mini-css-extract-plugin\nexport default {\"time-interval\":\"FerryOnboardPointPicker__time-interval___TgRDc\",\"fadeIn\":\"FerryOnboardPointPicker__fadeIn___QYNkU\",\"blinking\":\"FerryOnboardPointPicker__blinking___Gk24r\"};","import React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n};\n\nconst SmallDownArrow: React.FC<PropsT> = (props) => {\n    const { fillColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={10} height={10} viewBox=\"0 0 10 10\" {...props}>\n            <path\n                d=\"M8.75 3.144L5.884 6.288V0H4.116v6.288L1.25 3.144 0 4.515 5 10l5-5.485z\"\n                fill={fillColor}\n                fillRule=\"evenodd\"\n            />\n        </svg>\n    );\n};\n\nSmallDownArrow.displayName = 'SmallDownArrow';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.light,\n};\n\nexport { storyProps };\nexport default SmallDownArrow;\n","import * as React from 'react';\nimport { useEffect, useMemo } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './AccessDeniedPage.scss';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport { useTranslation } from 'react-i18next';\nimport AuthLayout from '../AuthLayout/AuthLayout';\nimport { AuthProfileTypeEnum } from 'common/store/auth/constants';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport AuthLayoutMessage, { AuthMessageIconsEnum } from 'common/layouts/AuthLayout/AuthLayoutMessage/AuthLayoutMessage';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectProfileType, selectSignOutRequestStatus, selectUserClaims } from 'common/store/auth/selectors';\nimport { CommonRoutesEnum, CompanyTypeEnum } from 'common/constants';\nimport { AuthUserClaimRoleT } from 'common/utils/api/models';\nimport { signOut } from 'common/store/auth/actions';\nimport history from 'common/utils/history';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst tRoleMap: Record<AuthProfileTypeEnum, string> = {\n    [AuthProfileTypeEnum.shipper]: 'common:access-denied-page.wrong-account-role.roles.shipper',\n    [AuthProfileTypeEnum.carrier]: 'common:access-denied-page.wrong-account-role.roles.carrier',\n    [AuthProfileTypeEnum.broker]: 'common:access-denied-page.wrong-account-role.roles.broker',\n};\n\nconst tAuthProfileTypeMap: Record<CompanyTypeEnum, AuthProfileTypeEnum> = {\n    [CompanyTypeEnum.shipper]: AuthProfileTypeEnum.shipper,\n    [CompanyTypeEnum.carrier]: AuthProfileTypeEnum.carrier,\n    [CompanyTypeEnum.broker]: AuthProfileTypeEnum.broker,\n};\n\nconst ANY_COMPANY_TYPE_SET = new Set<AuthUserClaimRoleT>(Object.values(CompanyTypeEnum));\n\nconst getRedirectLink = (authProfileType: AuthProfileTypeEnum | null): string | null => {\n    if (!authProfileType) {\n        return null;\n    }\n\n    const currentHost = window.location.host;\n\n    if (/^(ds|dc|db)\\.test\\.tranziit\\.com/.test(currentHost)) {\n        const hostMap1: Record<AuthProfileTypeEnum, string> = {\n            [AuthProfileTypeEnum.shipper]: 'https://ds.test.tranziit.com/',\n            [AuthProfileTypeEnum.carrier]: 'https://dc.test.tranziit.com/',\n            [AuthProfileTypeEnum.broker]: 'https://db.test.tranziit.com/',\n        };\n\n        return hostMap1[authProfileType];\n    }\n\n    if (/^(qs|qc|qb)\\.test\\.tranziit\\.com/.test(currentHost)) {\n        const hostMap2: Record<AuthProfileTypeEnum, string> = {\n            [AuthProfileTypeEnum.shipper]: 'https://qs.test.tranziit.com/',\n            [AuthProfileTypeEnum.carrier]: 'https://qc.test.tranziit.com/',\n            [AuthProfileTypeEnum.broker]: 'https://qb.test.tranziit.com/',\n        };\n\n        return hostMap2[authProfileType];\n    }\n\n    if (/^(shipper|carrier|office)\\.test\\.tranziit\\.com/.test(currentHost)) {\n        const hostMap3: Record<AuthProfileTypeEnum, string> = {\n            [AuthProfileTypeEnum.shipper]: 'https://shipper.test.tranziit.com/',\n            [AuthProfileTypeEnum.carrier]: 'https://carrier.test.tranziit.com/',\n            [AuthProfileTypeEnum.broker]: 'https://office.test.tranziit.com/',\n        };\n\n        return hostMap3[authProfileType];\n    }\n\n    return null;\n};\n\nconst AccessDeniedPage: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const userClaims = useSelector(selectUserClaims);\n\n    const firstUserClaimCompanyType = useMemo(() => {\n        if (!userClaims) {\n            return null;\n        }\n\n        return userClaims.roles.find((role) => ANY_COMPANY_TYPE_SET.has(role));\n    }, [userClaims]);\n\n    const firstUserClaimAuthProfileType = firstUserClaimCompanyType\n        ? tAuthProfileTypeMap[firstUserClaimCompanyType as CompanyTypeEnum]\n        : null;\n\n    const currentProfileType = useSelector(selectProfileType);\n\n    const signOutRequest = useSelector(selectSignOutRequestStatus);\n\n    const onRelogin = () => {\n        dispatch(signOut());\n    };\n\n    const onOpenPageClick = () => {\n        const redirectLink = getRedirectLink(firstUserClaimAuthProfileType);\n        if (!redirectLink) {\n            return;\n        }\n\n        window.location.href = redirectLink;\n    };\n\n    useEffect(() => {\n        if (\n            firstUserClaimAuthProfileType &&\n            currentProfileType &&\n            firstUserClaimAuthProfileType === currentProfileType\n        ) {\n            history.push({\n                pathname: CommonRoutesEnum.home,\n            });\n        }\n    }, [firstUserClaimAuthProfileType, currentProfileType]);\n\n    const roleLabel = firstUserClaimAuthProfileType ? t(tRoleMap[firstUserClaimAuthProfileType]) : null;\n\n    return (\n        <>\n            <PageTitle title={t('common:page-titles.access-denied')} />\n            <AuthLayout testSelector=\"not-found-page\">\n                <AuthLayoutMessage\n                    iconType={AuthMessageIconsEnum.warning}\n                    title={t('common:access-denied-page.wrong-account-role.title')}\n                    description={t('common:access-denied-page.wrong-account-role.description', {\n                        role: roleLabel,\n                        currentRole: roleLabel,\n                    })}\n                    testSelector=\"access-denied\"\n                    actionsProps={[\n                        {\n                            theme: ButtonThemeEnum.secondary,\n                            onClick: onOpenPageClick,\n                            children: t('common:access-denied-page.wrong-account-role.actions.open-page', {\n                                role: roleLabel,\n                            }),\n                        },\n                        {\n                            theme: ButtonThemeEnum.secondary,\n                            onClick: onRelogin,\n                            isLoading: signOutRequest.loading,\n                            children: t('common:access-denied-page.wrong-account-role.actions.relogin'),\n                        },\n                    ]}\n                />\n            </AuthLayout>\n        </>\n    );\n});\n\nexport default AccessDeniedPage;\n","import { StateT } from 'carrier/store/models';\nimport { SpotAssetsAssignmentStateT } from './types';\n\nexport const selectUserSelection = (state: StateT): SpotAssetsAssignmentStateT['userSelection'] =>\n    state.spotAssetsAssigment.userSelection;\n\nexport const selectVehicleLinks = (state: StateT): SpotAssetsAssignmentStateT['links'] =>\n    state.spotAssetsAssigment.links;\n\nexport const selectTruckSuggestQuery = (state: StateT): SpotAssetsAssignmentStateT['truckSuggest']['query'] =>\n    state.spotAssetsAssigment.truckSuggest.query;\n\nexport const selectTruckSuggestRequestStatus = (\n    state: StateT,\n): SpotAssetsAssignmentStateT['truckSuggest']['requestStatus'] => state.spotAssetsAssigment.truckSuggest.requestStatus;\n\nexport const selectTruckSuggestIds = (state: StateT): SpotAssetsAssignmentStateT['truckSuggest']['ids'] =>\n    state.spotAssetsAssigment.truckSuggest.ids;\n\nexport const selectTruckAssignmentInfoById = (state: StateT): SpotAssetsAssignmentStateT['truckById'] =>\n    state.spotAssetsAssigment.truckById;\n\nexport const selectTrailerSuggestQuery = (state: StateT): SpotAssetsAssignmentStateT['trailerSuggest']['query'] =>\n    state.spotAssetsAssigment.trailerSuggest.query;\n\nexport const selectTrailerSuggestRequestStatus = (\n    state: StateT,\n): SpotAssetsAssignmentStateT['trailerSuggest']['requestStatus'] =>\n    state.spotAssetsAssigment.trailerSuggest.requestStatus;\n\nexport const selectTrailerSuggestIds = (state: StateT): SpotAssetsAssignmentStateT['trailerSuggest']['ids'] =>\n    state.spotAssetsAssigment.trailerSuggest.ids;\n\nexport const selectTrailerAssignmentInfoById = (state: StateT): SpotAssetsAssignmentStateT['trailerById'] =>\n    state.spotAssetsAssigment.trailerById;\n\nexport const selectAssignmentRequestStatus = (state: StateT): SpotAssetsAssignmentStateT['assigmentStatus'] =>\n    state.spotAssetsAssigment.assigmentStatus;\n","// extracted by mini-css-extract-plugin\nexport default {\"cost\":\"PricesCell__cost___KRl5e\",\"fadeIn\":\"PricesCell__fadeIn____UgGN\",\"blinking\":\"PricesCell__blinking___gSkUV\"};","import styles from './styles.scss';\nimport classNames from 'classnames/bind';\n\nexport const commonPriceDetailsCX = classNames.bind(styles);\n","import * as React from 'react';\n\nimport RFQDetailsPageLayout from 'common/layouts/RFQDetailsPageLayout/RFQDetailsPageLayout';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport history from 'common/utils/history';\nimport { useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport SideBars from 'broker-admin/layouts/SideBars/SideBars';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport { logWarning } from 'common/utils/logger';\n\ntype PropsT = {};\n\nconst BrokerRFQDetailsPage: React.FC<PropsT> = React.memo(() => {\n    const { partnerId, partnerType } = usePartnerContext();\n\n    const handleGoToBack = () => {\n        const url = urlFactory.brokerRFQList();\n        history.push(url);\n    };\n\n    const handleOpenOrderDetails = (orderId: OrderIdT) => {\n        history.push(urlFactory.brokerOrderDetails(orderId));\n    };\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const handleGoToUserDetails = (userId: UserIdT | null) => {\n        if (!userId || !partnerId || !partnerType) {\n            logWarning('failed to open contact details in rfq details, empty userId or partnerId or partnerType');\n            return;\n        }\n\n        openLeftSidebar(\n            {\n                type: CommonSidebarsTypeEnum.contact,\n                partnerId,\n                partnerType,\n                userId,\n            },\n            {\n                isForceShowBackAction: true,\n            },\n        );\n    };\n\n    return (\n        <>\n            <RFQDetailsPageLayout\n                goToBack={handleGoToBack}\n                goToUserDetails={handleGoToUserDetails}\n                onOpenOrderDetails={handleOpenOrderDetails}\n                shouldShowAppliedRules\n            />\n            <SideBars />\n        </>\n    );\n});\n\nexport default BrokerRFQDetailsPage;\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"ChangeRoleUserForm__form___TrHJZ\",\"fadeIn\":\"ChangeRoleUserForm__fadeIn___ZbqAy\",\"blinking\":\"ChangeRoleUserForm__blinking___XDxp1\"};","import React from 'react';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport Modal from 'common/components/Modal/Modal';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport InviteDriverForm from 'common/layouts/DriversPageLayout/InviteDriverForm/InviteDriverForm';\nimport { ApiInviteDriverRequestT } from 'common/utils/api/models';\n\nexport type DriverInviteModalDataT = {\n    // nothing\n};\n\ntype PropsT = {\n    data: DriverInviteModalDataT | null;\n    onClose: () => void;\n    onInviteUser: (newDriver: ApiInviteDriverRequestT) => void;\n    requestStatus: RequestStatusT;\n};\n\nconst DriverInviteModal: React.FC<PropsT> = React.memo((props) => {\n    const { data, onClose, requestStatus, onInviteUser } = props;\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent testSelector=\"driver-invite\" onClose={onClose}>\n                <InviteDriverForm requestStatus={requestStatus} onInviteUser={onInviteUser} />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default DriverInviteModal;\n","import { UserStateT } from './types';\nimport { SharableStateT } from '../models';\nimport { UserStatusEnum } from 'common/utils/api/models';\n\nexport const selectCurrentUserRequestStatus = (state: SharableStateT): UserStateT['currentUserRequest'] =>\n    state.user.currentUserRequest;\n\nexport const selectCurrentUser = (state: SharableStateT): UserStateT['currentUser'] | null =>\n    state.user.currentUser || null;\n\nexport const selectUserSignedUp = (state: SharableStateT): boolean => !!state.user.currentUser;\n\nexport const selectIsPendingUser = (state: SharableStateT): boolean => {\n    return state.user.currentUser?.status === UserStatusEnum.pending;\n};\n\nexport const selectPatchUserRequestStatus = (state: SharableStateT): UserStateT['patchUserRequest'] =>\n    state.user.patchUserRequest;\n","// extracted by mini-css-extract-plugin\nexport default {\"flag-wrap\":\"ExcludedCountry__flag-wrap___eWVwr\",\"flag-wrap--is-show\":\"ExcludedCountry__flag-wrap--is-show___xwoR2\",\"flag\":\"ExcludedCountry__flag___kmlUB\",\"fadeIn\":\"ExcludedCountry__fadeIn___PUFVa\",\"blinking\":\"ExcludedCountry__blinking___Fa5uZ\"};","// extracted by mini-css-extract-plugin\nexport default {\"divider\":\"EvidenceOfTaxDetails__divider___Na1JC\",\"fadeIn\":\"EvidenceOfTaxDetails__fadeIn___tht1d\",\"blinking\":\"EvidenceOfTaxDetails__blinking___A7Jb0\"};","// extracted by mini-css-extract-plugin\nexport default {\"button-group-item\":\"ButtonGroupItem__button-group-item___oWDyY\",\"button-group-item--isHovered\":\"ButtonGroupItem__button-group-item--isHovered___Inl4u\",\"button-group-item--isActive\":\"ButtonGroupItem__button-group-item--isActive___z9U6W\",\"fadeIn\":\"ButtonGroupItem__fadeIn___UUEbW\",\"blinking\":\"ButtonGroupItem__blinking___bDa2p\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ControlsCell.scss';\nimport DropdownControl, {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\n\nimport MoreIcon from 'common/icons/MoreIcon';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport { CompanyContactT } from 'common/store/members/models';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport AddUserIcon from 'common/icons/AddUserIcon';\nimport { useTranslation } from 'react-i18next';\nimport { UserRoleT, UserStatusEnum } from 'common/utils/api/models';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport UpdateUserIcon from 'common/icons/UpdateUserIcon';\nimport RestoreIcon from 'common/icons/RestoreIcon';\nimport DeleteUserIcon from 'common/icons/DeleteUserIcon';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport { logWarning } from 'common/utils/logger';\nimport { isNonNil } from 'common/utils';\n\ntype PropsT = {\n    className?: string;\n    contact: CompanyContactT;\n    onDeleteUser: (contact: CompanyContactT) => void;\n    onDeleteContact: (contact: CompanyContactT) => void;\n    onChangeUserRole: (contact: CompanyContactT) => void;\n    onCancelInvite: (contact: CompanyContactT) => void;\n    onRestoreUser: (contact: CompanyContactT) => void;\n    onInviteUser: (email: string) => void;\n    onResendInviteUser: (email: string, roles: UserRoleT[]) => void;\n    isLastRow: boolean;\n    canInviteUsers: boolean;\n};\n\nconst cx = classNames.bind(styles);\n\nenum ActionsEnum {\n    changeRole = 'change-role',\n    deactivateUser = 'deactivate-user',\n    inviteUser = 'invite-user',\n    resendInviteUser = 'resend-invite-user',\n    deleteContact = 'delete-contact',\n    cancelInvite = 'cancel-invite',\n    restoreUser = 'restore-user',\n}\n\ntype PermissionsT = {\n    canInviteUsers: boolean;\n};\n\nconst getActions = (contact: CompanyContactT, permissions: PermissionsT): Array<ActionsEnum | null> => {\n    if (contact.userStatus === UserStatusEnum.pending) {\n        const actions: Array<ActionsEnum | null> = [ActionsEnum.cancelInvite];\n\n        if (permissions.canInviteUsers) {\n            actions.push(ActionsEnum.resendInviteUser);\n        }\n\n        return actions;\n    }\n\n    if (contact.userStatus === UserStatusEnum.archived) {\n        return [ActionsEnum.restoreUser];\n    }\n\n    if (contact.userStatus === UserStatusEnum.active) {\n        const actions = [ActionsEnum.changeRole, null, ActionsEnum.deactivateUser];\n\n        return actions;\n    }\n\n    if (!contact.userId) {\n        const actions: Array<ActionsEnum | null> = [ActionsEnum.deleteContact];\n\n        if (permissions.canInviteUsers) {\n            actions.unshift(ActionsEnum.inviteUser, null);\n        }\n\n        return actions;\n    }\n\n    return [];\n};\n\nconst ControlsCell: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        onDeleteUser,\n        onDeleteContact,\n        onChangeUserRole,\n        onInviteUser,\n        onResendInviteUser,\n        contact,\n        onCancelInvite,\n        onRestoreUser,\n        isLastRow,\n        canInviteUsers,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const actionsMap: Record<ActionsEnum, DropdownControlOptionT> = {\n        [ActionsEnum.changeRole]: {\n            label: (\n                <DropdownControlOptionLabel\n                    icon={\n                        <UpdateUserIcon\n                            fillColor={StyleGuideColorsEnum.light}\n                            strokeColor={StyleGuideColorsEnum.slate}\n                        />\n                    }\n                    label={t('common:team-members.actions.change-user-role')}\n                />\n            ),\n            onSelect: () => {\n                onChangeUserRole(contact);\n            },\n        },\n        [ActionsEnum.inviteUser]: {\n            label: (\n                <DropdownControlOptionLabel\n                    icon={\n                        <AddUserIcon fillColor={StyleGuideColorsEnum.light} strokeColor={StyleGuideColorsEnum.slate} />\n                    }\n                    label={t('common:team-members.actions.invite')}\n                />\n            ),\n            onSelect: () => {\n                onInviteUser(contact.email || '');\n            },\n        },\n        [ActionsEnum.resendInviteUser]: {\n            label: (\n                <DropdownControlOptionLabel\n                    icon={\n                        <AddUserIcon fillColor={StyleGuideColorsEnum.light} strokeColor={StyleGuideColorsEnum.slate} />\n                    }\n                    label={t('common:team-members.actions.resend-invite')}\n                />\n            ),\n            onSelect: () => {\n                const roles = contact.roles.filter(isNonNil);\n                if (!roles?.length || !contact.email) {\n                    logWarning('empty role or email');\n                    return;\n                }\n\n                onResendInviteUser(contact.email, roles);\n            },\n        },\n        [ActionsEnum.deactivateUser]: {\n            label: (\n                <DropdownControlOptionLabel\n                    icon={\n                        <DeleteUserIcon\n                            fillColor={StyleGuideColorsEnum.white}\n                            strokeColor={StyleGuideColorsEnum.tomatoRed}\n                        />\n                    }\n                    label={t('common:team-members.actions.deactivate-user')}\n                />\n            ),\n            onSelect: () => {\n                onDeleteUser(contact);\n            },\n        },\n        [ActionsEnum.deleteContact]: {\n            label: (\n                <DropdownControlOptionLabel\n                    icon={\n                        <DeleteUserIcon\n                            fillColor={StyleGuideColorsEnum.white}\n                            strokeColor={StyleGuideColorsEnum.tomatoRed}\n                        />\n                    }\n                    label={t('common:team-members.actions.delete-contact')}\n                />\n            ),\n            onSelect: () => {\n                onDeleteContact(contact);\n            },\n        },\n        [ActionsEnum.cancelInvite]: {\n            label: (\n                <DropdownControlOptionLabel\n                    icon={<CloseIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                    label={t('common:team-members.actions.cancel-invite')}\n                />\n            ),\n            onSelect: () => {\n                onCancelInvite(contact);\n            },\n        },\n        [ActionsEnum.restoreUser]: {\n            label: (\n                <DropdownControlOptionLabel\n                    icon={<RestoreIcon strokeColor={StyleGuideColorsEnum.slate} />}\n                    label={t('common:team-members.actions.restore-user')}\n                />\n            ),\n            onSelect: () => {\n                onRestoreUser(contact);\n            },\n        },\n    };\n\n    const actions = getActions(contact, { canInviteUsers });\n\n    const options = actions.map((action) => {\n        if (action === null) {\n            return SpecialOptionEnum.separator;\n        }\n\n        return actionsMap[action];\n    });\n\n    return (\n        <div className={cx('wrap')}>\n            <DropdownControl\n                isInline\n                className={className}\n                options={options}\n                renderTrigger={(isActive, onClick) => (\n                    <TransparentTrigger\n                        isPressed={isActive}\n                        onClick={onClick}\n                        leftIcon={<MoreIcon />}\n                        reflectionTheme={ReflectionThemeEnum.light}\n                    />\n                )}\n                overlayPosition={\n                    isLastRow ? DropdownOverlayPositionEnum.topRight : DropdownOverlayPositionEnum.bottomRight\n                }\n            />\n        </div>\n    );\n});\n\nexport default ControlsCell;\n","import React from 'react';\nimport { MapRoutePointT, SyncAssignmentFormMapStateContextValueT } from '../contexts/sync-map-state';\n\nexport const useSyncMapStateContextValue = (): SyncAssignmentFormMapStateContextValueT => {\n    const [onSetMapBoundingBox, setOnSetMapBoundingBox] =\n        React.useState<SyncAssignmentFormMapStateContextValueT['onSetMapBoundingBox']>(null);\n    const [onMapClickCallback, setOnMapClickCallback] =\n        React.useState<SyncAssignmentFormMapStateContextValueT['onMapClickCallback']>(null);\n    const [onDragEndDnDCallback, setOnDragEndDnDCallback] =\n        React.useState<SyncAssignmentFormMapStateContextValueT['onDragEndDnDCallback']>(null);\n    const [mapRoutePoints, setMapRoutePoints] = React.useState<Array<MapRoutePointT>>([]);\n\n    return React.useMemo(() => {\n        return {\n            onSetMapBoundingBox,\n            setOnSetMapBoundingBox,\n\n            mapRoutePoints,\n            setMapRoutePoints,\n\n            onMapClickCallback,\n            setOnMapClickCallback,\n\n            onDragEndDnDCallback,\n            setOnDragEndDnDCallback,\n        };\n    }, [\n        onSetMapBoundingBox,\n        setOnSetMapBoundingBox,\n\n        mapRoutePoints,\n        setMapRoutePoints,\n\n        onMapClickCallback,\n        setOnMapClickCallback,\n\n        onDragEndDnDCallback,\n        setOnDragEndDnDCallback,\n    ]);\n};\n","import { UserRoleT } from 'common/utils/api/models';\n\nexport enum FieldsEnum {\n    roles = 'roles',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.roles]: Array<UserRoleT>;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","// extracted by mini-css-extract-plugin\nexport default {\"chart\":\"StatisticsChart__chart___NZ1Dh\",\"container\":\"StatisticsChart__container___ZDm1Y\",\"fadeIn\":\"StatisticsChart__fadeIn___ESFOZ\",\"blinking\":\"StatisticsChart__blinking___ob_y7\"};","import type { ReactNode } from 'react';\nimport { AnyNotificationT } from 'common/store/notifications/models';\n\nexport const getUnknownNotificationText = (notification: AnyNotificationT): ReactNode => {\n    return JSON.stringify(notification) || '';\n};\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './TableMessage.scss';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport BigWarningIcon from 'common/icons/BigWarningIcon';\nimport BigEmptyIcon from 'common/icons/BigEmptyIcon';\nimport BigSearchIcon from 'common/icons/BigSearchIcon';\nimport BigLaneIcon from 'common/icons/BigLaneIcon';\n\nconst cx = classNames.bind(styles);\n\nexport enum TableMessageIconsEnum {\n    notFound = 'notFound',\n    empty = 'empty',\n    warning = 'warning',\n    lane = 'lane',\n}\n\ntype PropsT = {\n    className?: string;\n    iconType: TableMessageIconsEnum;\n    title: string;\n    description?: string | null;\n    testSelector?: string;\n} & (\n    | {\n          isShowAction: true;\n          onActionClick: () => void;\n          actionTitle: string;\n          actionTheme?: ButtonThemeEnum;\n      }\n    | {\n          isShowAction: false;\n      }\n);\n\nconst TableMessage: React.FC<PropsT> = React.memo((props) => {\n    const { className, iconType, title, description, testSelector } = props;\n\n    const fullTestSelector = `${testSelector}_table-message`;\n\n    return (\n        <div className={cs(cx('wrap'), className)} data-test-selector={fullTestSelector}>\n            <div className={cx('container')}>\n                <div className={cx('icon')}>\n                    {iconType === TableMessageIconsEnum.warning && <BigWarningIcon />}\n                    {iconType === TableMessageIconsEnum.empty && <BigEmptyIcon />}\n                    {iconType === TableMessageIconsEnum.notFound && <BigSearchIcon />}\n                    {iconType === TableMessageIconsEnum.lane && <BigLaneIcon />}\n                </div>\n                <div className={cx('title')}>{title}</div>\n                <div className={cx('description')}>{description}</div>\n                {props.isShowAction && (\n                    <div className={cx('action')}>\n                        <Button\n                            theme={props.actionTheme || ButtonThemeEnum.primary}\n                            type=\"button\"\n                            className={cx('button')}\n                            testSelector={fullTestSelector}\n                            onClick={props.onActionClick}\n                        >\n                            {props.actionTitle}\n                        </Button>\n                    </div>\n                )}\n            </div>\n        </div>\n    );\n});\n\nexport default TableMessage;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './EditBrokerTeamSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport getInitialValues from './get-initial-values';\nimport validateForm from './validate-form';\nimport { FieldsEnum, FormValuesT, TeamComponentTabEnum } from './constants';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { isDeepEqual } from 'common/utils/deep-equal';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport Input from 'common/components/Input/Input';\nimport { CommonSidebarsTypeEnum, SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { BrokerSidebarDataT } from 'broker-admin/layouts/SideBars/models';\nimport { EditBrokerTeamSidebarDataT } from './models';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { createTeam, deleteTeam, updateTeam } from 'broker-admin/store/broker-team-edit/actions';\nimport { prepareQuery } from './prepare-query';\nimport { logWarning } from 'common/utils/logger';\nimport useCloseSidebarAfterRequest from 'common/utils/hooks/useCloseSidebarAfterRequest';\nimport values from 'lodash/values';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport {\n    selectBrokerTeamEditCreatedTeam,\n    selectBrokerTeamEditCreateRequestStatus,\n    selectBrokerTeamEditDeleteRequestStatus,\n    selectBrokerTeamEditUpdateRequestStatus,\n} from 'broker-admin/store/broker-team-edit/selectors';\nimport { BrokerSidebarsTypeEnum } from 'broker-admin/layouts/SideBars/constants';\nimport useOnlyChangesEffect from 'common/utils/hooks/useOnlyChangesEffect';\nimport SideBarHeaderRequestStatus from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarHeaderRequestStatus/SideBarHeaderRequestStatus';\nimport SideBarRequestStatus from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarRequestStatus/SideBarRequestStatus';\nimport {\n    selectBrokerTeamDetails,\n    selectBrokerTeamDetailsRequestStatus,\n} from 'broker-admin/store/broker-team-details/selectors';\nimport { useTeamActions } from 'broker-admin/layouts/BrokerUsersPage/BrokerTeamsLayout/BrokerTeamsTable/hooks/actions';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport DeleteTeamConfirmation, {\n    DeleteTeamConfirmationDataT,\n} from 'broker-admin/layouts/BrokerUsersPage/BrokerTeamsLayout/dialogs/DeleteTeamConfirmation/DeleteTeamConfirmation';\nimport { fetchBrokerTeamDetails } from 'broker-admin/store/broker-team-details/slice';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport TimeZoneDropdown from 'common/components/dropdowns/TimeZoneDropdown/TimeZoneDropdown';\nimport map from 'lodash/map';\nimport TabLabel from 'common/components/tabs/TabLabel/TabLabel';\nimport { TabsThemesEnum, TabLabelSizeEnum } from 'common/components/tabs/TabLabel/constants';\nimport UserSelectList from 'broker-admin/layouts/SideBars/EditBrokerTeamSidebarContent/UserSelectList/UserSelectList';\nimport { selectCurrentCompany } from 'common/store/company/selectors';\nimport PartnerSelectList from 'broker-admin/layouts/SideBars/EditBrokerTeamSidebarContent/PartnerSelectList/PartnerSelectList';\nimport FormUnsavedValuesColoredStatus from 'common/components/status-colored/FormUnsavedValuesColoredStatus/FormUnsavedValuesColoredStatus';\nimport ItemsCount from 'broker-admin/layouts/SideBars/EditBrokerTeamSidebarContent/ItemsCount/ItemsCount';\nimport { useUpdateOptionsIdsSet } from 'design-system/components/AsyncSearchScrollableList/hooks/use-update-options-ids-set';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { brokerTeamDetailsRefreshChannel } from 'broker-admin/store/broker-team-details/channels';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport TabGroup from 'common/components/tabs/TabGroup/TabGroup';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport { ReadOnlyFieldValue } from 'common/components/ReadOnlyFieldValue/ReadOnlyFieldValue';\nimport { ApiUserStatusT, UserStatusEnum } from 'common/utils/api/models';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport DateFormatter from 'design-system/components/InfoTable/formatters/DateFormatter/DateFormatter';\nimport UserLinkFormatter from 'common/components/InfoTable/formatters/UserLinkFormatter/UserLinkFormatter';\n\nconst ALL_FIELDS = values(FieldsEnum);\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(ALL_FIELDS);\n\nconst HISTORY_DATE_FORMAT = 'DD MMM YYYY, HH:mm';\n\nconst COMPONENT_TABS_ORDER = [TeamComponentTabEnum.users, TeamComponentTabEnum.partners];\n\nconst COMPONENT_TAB_LABEL_T: Record<TeamComponentTabEnum, string> = {\n    [TeamComponentTabEnum.users]: 'edit-broker-team.components-tab.users',\n    [TeamComponentTabEnum.partners]: 'edit-broker-team.components-tab.partners',\n};\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = SidebarContentPropsT<EditBrokerTeamSidebarDataT, BrokerSidebarDataT>;\n\nconst HIDE_USER_STATUS_SET = new Set<ApiUserStatusT>([UserStatusEnum.archived]);\n\nconst EditBrokerTeamSidebarContent: React.FC<PropsT> = (props) => {\n    const { onClose, onGoBack, data, setNeedCloseConfirmation, onOpenNextSidebar } = props;\n\n    const { t } = useTranslation();\n\n    const handleOpenUserDetails = React.useCallback(\n        (userId: UserIdT) => {\n            onOpenNextSidebar({\n                type: CommonSidebarsTypeEnum.contact,\n                userId,\n            });\n        },\n        [onOpenNextSidebar],\n    );\n\n    const currentCompany = useSelector(selectCurrentCompany);\n    const currentCompanyId = currentCompany?.id || null;\n\n    const dispatch = useDispatch();\n\n    const permissions = useSelector(selectPermissions);\n    const { canEditBrokerUsersTeams } = permissions;\n\n    const teamId = data?.teamId || null;\n    React.useEffect(() => {\n        if (!teamId) {\n            return;\n        }\n\n        dispatch(\n            fetchBrokerTeamDetails({\n                id: teamId,\n            }),\n        );\n    }, [dispatch, teamId]);\n\n    const deleteTeamConfirmation = useModalDialog<DeleteTeamConfirmationDataT>();\n\n    const onDelete = React.useCallback(() => {\n        if (!teamId) {\n            logWarning('empty teamId');\n            return;\n        }\n\n        deleteTeamConfirmation.setData({\n            id: teamId,\n        });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [teamId]);\n\n    const headerDropdownOptions = useTeamActions(\n        { id: teamId },\n        {\n            onDelete,\n        },\n    );\n\n    const teamDetails = useSelector(selectBrokerTeamDetails(teamId));\n    const teamDetailsRequestStatus = useSelector(selectBrokerTeamDetailsRequestStatus(teamId));\n\n    const initialValues = React.useMemo(() => {\n        return getInitialValues(data, teamDetails);\n    }, [data, teamDetails]);\n\n    const isCreation = !data?.teamId;\n\n    const [isSubmitting, setIsSubmitting] = React.useState(false);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialValues,\n        validate: (values) => validateForm(values, t),\n        onSubmit: (values, formikHelpers): void => {\n            const data = prepareQuery(values);\n            if (!data) {\n                logWarning('empty data');\n                return;\n            }\n\n            setIsSubmitting(true);\n\n            if (isCreation) {\n                dispatch(createTeam({ data }));\n            } else {\n                if (!teamId) {\n                    logWarning('empty teamId');\n                    return;\n                }\n\n                dispatch(updateTeam({ teamId, data }));\n            }\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n    React.useEffect(() => {\n        setNeedCloseConfirmation(hasAnyFieldValueChanges);\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasAnyFieldValueChanges]);\n\n    const isBlockBackgroundUpdate = !isCreation && hasAnyFieldValueChanges;\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        if (!teamId || isBlockBackgroundUpdate) {\n            return;\n        }\n\n        dispatch(\n            fetchBrokerTeamDetails({\n                id: teamId,\n            }),\n        );\n    }, [dispatch, teamId, isBlockBackgroundUpdate]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const refreshPageHandler = React.useCallback(\n        (event: InferChannelEventT<typeof brokerTeamDetailsRefreshChannel>) => {\n            if (teamId === event.teamId && teamId) {\n                dispatch(\n                    fetchBrokerTeamDetails({\n                        id: teamId,\n                    }),\n                );\n            }\n        },\n        [dispatch, teamId],\n    );\n    useChannelSubscribe(brokerTeamDetailsRefreshChannel, refreshPageHandler);\n\n    const deleteRequest = useSelector(selectBrokerTeamEditDeleteRequestStatus(teamId));\n    useCloseSidebarAfterRequest(deleteRequest, onGoBack || onClose);\n    useCloseModalDialogAfterRequest(deleteRequest, [deleteTeamConfirmation]);\n\n    const handleCancel = React.useCallback(() => {\n        formik.resetForm();\n    }, [formik.resetForm]); // eslint-disable-line react-hooks/exhaustive-deps\n\n    const createdTeam = useSelector(selectBrokerTeamEditCreatedTeam);\n    useOnlyChangesEffect(() => {\n        if (!createdTeam) {\n            return;\n        }\n\n        const closeCallback = onGoBack || onClose;\n        if (closeCallback) {\n            closeCallback({ needCloseConfirmation: false });\n        }\n\n        onOpenNextSidebar({\n            type: BrokerSidebarsTypeEnum.editBrokerTeamDetails,\n            teamId: createdTeam.id,\n        });\n    }, [createdTeam]);\n\n    const handleConfirmDeleteTeam = (data: DeleteTeamConfirmationDataT) => {\n        if (!data?.id) {\n            return;\n        }\n\n        dispatch(deleteTeam({ teamId: data.id }));\n    };\n\n    const handleRetryFetchTeamDetails = React.useCallback(() => {\n        if (teamId) {\n            dispatch(fetchBrokerTeamDetails({ id: teamId }));\n        }\n    }, [teamId, dispatch]);\n\n    const updateRequest = useSelector(selectBrokerTeamEditUpdateRequestStatus(teamId));\n    const createRequest = useSelector(selectBrokerTeamEditCreateRequestStatus);\n\n    const isSameValues = React.useMemo(() => {\n        return isDeepEqual(initialValues, formik.values);\n    }, [initialValues, formik.values]);\n\n    React.useEffect(() => {\n        if ((createRequest.ok || updateRequest.ok) && isSameValues) {\n            setIsSubmitting(false);\n        }\n    }, [createRequest.ok, updateRequest.ok, isSameValues]);\n\n    const hasChangeHighlight = !isCreation;\n\n    const initialTeamComponentTab = React.useMemo((): TeamComponentTabEnum => {\n        if (!teamDetails?.users?.length && teamDetails?.companies?.length) {\n            return TeamComponentTabEnum.partners;\n        }\n\n        return TeamComponentTabEnum.users;\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [teamDetailsRequestStatus, teamDetails]);\n\n    const [userSelectedTab, setUserSelectedTab] = React.useState<TeamComponentTabEnum | null>(null);\n\n    const selectedTab = userSelectedTab || initialTeamComponentTab;\n\n    const isFinallyFormInitialized = Boolean(teamDetails) || isCreation;\n\n    const usersHighlightedUserIdsSet = useUpdateOptionsIdsSet(\n        hasChangeHighlight,\n        'id',\n        initialValues[FieldsEnum.users],\n        formik.values[FieldsEnum.users],\n    );\n\n    const partnersHighlightedUserIdsSet = useUpdateOptionsIdsSet(\n        hasChangeHighlight,\n        'id',\n        initialValues[FieldsEnum.partners],\n        formik.values[FieldsEnum.partners],\n    );\n\n    const createDetails: Array<InfoTableRowT | null> = React.useMemo(\n        () => [\n            teamDetails?.createdDate\n                ? {\n                      icon: null,\n                      name: t('edit-broker-team.history.date-added'),\n                      rightNode: <DateFormatter date={teamDetails?.createdDate} format={HISTORY_DATE_FORMAT} />,\n                      valueMods: { emptyPlaceholder: null, isBold: true },\n                      hasBottomBorder: true,\n                      testSelector: 'date-added',\n                  }\n                : null,\n            teamDetails?.createdById\n                ? {\n                      icon: null,\n                      name: t('edit-broker-team.history.added-by'),\n                      rightNode: (\n                          <UserLinkFormatter\n                              fullName={teamDetails?.createdByName}\n                              userId={teamDetails?.createdById}\n                              byBroker\n                              onOpenUserDetails={handleOpenUserDetails}\n                          />\n                      ),\n                      valueMods: { emptyPlaceholder: null, isBold: true },\n                      testSelector: 'added-by',\n                  }\n                : null,\n        ],\n        [teamDetails, t, handleOpenUserDetails],\n    );\n\n    const lastModifiedDetails: Array<InfoTableRowT | null> = React.useMemo(\n        () => [\n            teamDetails?.modifiedDate\n                ? {\n                      icon: null,\n                      name: t('edit-broker-team.history.date-last-modified'),\n                      rightNode: <DateFormatter date={teamDetails?.modifiedDate} format={HISTORY_DATE_FORMAT} />,\n                      valueMods: { emptyPlaceholder: null, isBold: true },\n                      hasBottomBorder: true,\n                      testSelector: 'date-modify',\n                  }\n                : null,\n            teamDetails?.modifiedById\n                ? {\n                      icon: null,\n                      name: t('edit-broker-team.history.last-modified-by'),\n                      rightNode: (\n                          <UserLinkFormatter\n                              fullName={teamDetails?.modifiedByName}\n                              userId={teamDetails?.modifiedById}\n                              byBroker\n                              onOpenUserDetails={handleOpenUserDetails}\n                          />\n                      ),\n                      valueMods: { emptyPlaceholder: null, isBold: true },\n                      testSelector: 'last-modified-by',\n                  }\n                : null,\n        ],\n        [teamDetails, t, handleOpenUserDetails],\n    );\n\n    return (\n        <>\n            <form onSubmit={formik.handleSubmit} className={cx('form')}>\n                <HeaderSideBarLayout>\n                    <HeaderSideBarContent\n                        title={isCreation ? t('edit-broker-team.titles.new-team') : teamDetails?.name}\n                        onClose={onClose}\n                        onGoBack={onGoBack}\n                        dropdownOptions={headerDropdownOptions}\n                        rightNode={hasAnyFieldValueChanges && hasChangeHighlight && <FormUnsavedValuesColoredStatus />}\n                    />\n                    <SideBarHeaderRequestStatus\n                        requestStatus={teamDetailsRequestStatus}\n                        hasCachedData={Boolean(teamDetails) || isCreation}\n                        isForceShowLoader={updateRequest.loading || createRequest.loading || deleteRequest.loading}\n                    />\n                </HeaderSideBarLayout>\n                <SideBarLayout>\n                    <SideBarRequestStatus\n                        requestStatus={teamDetailsRequestStatus}\n                        hasCachedData={Boolean(teamDetails) || isCreation}\n                        onRetry={handleRetryFetchTeamDetails}\n                    >\n                        <div className={cx('content')}>\n                            <FormikField\n                                label={t('edit-broker-team.form.fields.name.label')}\n                                name={FieldsEnum.name}\n                                error={formik.errors[FieldsEnum.name]}\n                                meta={formik.getFieldMeta(FieldsEnum.name)}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) =>\n                                    canEditBrokerUsersTeams ? (\n                                        <Input\n                                            name={FieldsEnum.name}\n                                            value={formik.values[FieldsEnum.name]}\n                                            onChange={props.onChange}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                            hasError={props.hasError}\n                                            hasWarning={props.hasWarning}\n                                            hasChanges={hasChangeHighlight && props.hasChanges}\n                                            placeholder={t('edit-broker-team.form.fields.name.placeholder')}\n                                        />\n                                    ) : (\n                                        <ReadOnlyFieldValue value={formik.values[FieldsEnum.name]} />\n                                    )\n                                }\n                            </FormikField>\n                            <FormikField\n                                name={FieldsEnum.timeZone}\n                                error={formik.errors[FieldsEnum.timeZone]}\n                                meta={formik.getFieldMeta(FieldsEnum.timeZone)}\n                                label={t('edit-broker-team.form.fields.time-zone.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(props) =>\n                                    canEditBrokerUsersTeams ? (\n                                        <TimeZoneDropdown\n                                            value={formik.values[FieldsEnum.timeZone]}\n                                            placeholder={t('edit-broker-team.form.fields.time-zone.placeholder')}\n                                            onChange={props.onChange}\n                                            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                            hasError={props.hasError}\n                                            hasWarning={props.hasWarning}\n                                            hasChanges={hasChangeHighlight && props.hasChanges}\n                                            onBlur={props.onBlur}\n                                            onFocus={props.onFocus}\n                                        />\n                                    ) : (\n                                        <ReadOnlyFieldValue value={formik.values[FieldsEnum.timeZone]} />\n                                    )\n                                }\n                            </FormikField>\n                            {isFinallyFormInitialized && (\n                                <>\n                                    <TabGroup className={cx('tabs')} size={TabLabelSizeEnum.small}>\n                                        {map(COMPONENT_TABS_ORDER, (tab, tabIndex) => {\n                                            let itemsCountNode: React.ReactNode;\n\n                                            if (tab === TeamComponentTabEnum.users) {\n                                                itemsCountNode = (\n                                                    <ItemsCount\n                                                        className={cx('tabs__counter')}\n                                                        optionKey=\"id\"\n                                                        options={formik.values[FieldsEnum.users]}\n                                                        initialOptions={initialValues[FieldsEnum.users]}\n                                                    />\n                                                );\n                                            }\n\n                                            if (tab === TeamComponentTabEnum.partners) {\n                                                itemsCountNode = (\n                                                    <ItemsCount\n                                                        className={cx('tabs__counter')}\n                                                        optionKey=\"id\"\n                                                        options={formik.values[FieldsEnum.partners]}\n                                                        initialOptions={initialValues[FieldsEnum.partners]}\n                                                    />\n                                                );\n                                            }\n\n                                            return (\n                                                <TabLabel\n                                                    isCompact\n                                                    key={tabIndex}\n                                                    size={TabLabelSizeEnum.small}\n                                                    theme={TabsThemesEnum.light}\n                                                    onClick={() => {\n                                                        setUserSelectedTab(tab);\n                                                    }}\n                                                    isActive={tab === selectedTab}\n                                                    testSelector={tab}\n                                                >\n                                                    {itemsCountNode}\n                                                    {t(COMPONENT_TAB_LABEL_T[tab])}\n                                                </TabLabel>\n                                            );\n                                        })}\n                                    </TabGroup>\n                                    {selectedTab === TeamComponentTabEnum.users && (\n                                        <UserSelectList\n                                            className={cx('content__full-height-wrap')}\n                                            isViewOnly={!canEditBrokerUsersTeams}\n                                            companyId={currentCompanyId}\n                                            initialSelectedUsers={initialValues[FieldsEnum.users]}\n                                            selectedUsers={formik.values[FieldsEnum.users]}\n                                            onChangeUsers={(values) => {\n                                                formik.setFieldValue(FieldsEnum.users, values);\n                                            }}\n                                            highlightedUserIdsSet={usersHighlightedUserIdsSet}\n                                            hideUserStatusSet={HIDE_USER_STATUS_SET}\n                                        />\n                                    )}\n                                    {selectedTab === TeamComponentTabEnum.partners && (\n                                        <PartnerSelectList\n                                            className={cx('content__full-height-wrap')}\n                                            isViewOnly={!canEditBrokerUsersTeams}\n                                            initialSelectedPartners={initialValues[FieldsEnum.partners]}\n                                            selectedPartners={formik.values[FieldsEnum.partners]}\n                                            onChangePartners={(values) => {\n                                                formik.setFieldValue(FieldsEnum.partners, values);\n                                            }}\n                                            highlightedPartnerIdsSet={partnersHighlightedUserIdsSet}\n                                        />\n                                    )}\n                                </>\n                            )}\n                            <InfoTable\n                                className={cx('history-table')}\n                                rows={createDetails}\n                                testSelector=\"create-details\"\n                            />\n                            <InfoTable\n                                className={cx('history-table')}\n                                rows={lastModifiedDetails}\n                                testSelector=\"last-modified-details\"\n                            />\n                        </div>\n                    </SideBarRequestStatus>\n                </SideBarLayout>\n                {!isSameValues && canEditBrokerUsersTeams && (\n                    <FooterSideBarLayout hasPaddings>\n                        {isCreation ? (\n                            <Button\n                                theme={ButtonThemeEnum.primary}\n                                className={cx('button', 'button--create')}\n                                type=\"submit\"\n                                isDisabled={isSubmitting}\n                                isLoading={isSubmitting}\n                            >\n                                {t('edit-broker-team.form.actions.add-team')}\n                            </Button>\n                        ) : (\n                            <div className={cx('buttons')}>\n                                {onClose && (\n                                    <Button\n                                        theme={ButtonThemeEnum.secondary}\n                                        className={cx('button', 'button--cancel')}\n                                        type=\"button\"\n                                        onClick={handleCancel}\n                                        testSelector=\"cancel\"\n                                    >\n                                        {t('common:form-actions.reset-changes')}\n                                    </Button>\n                                )}\n                                <Button\n                                    theme={ButtonThemeEnum.primary}\n                                    className={cx('button', 'button--save')}\n                                    type=\"submit\"\n                                    isDisabled={isSubmitting}\n                                    isLoading={isSubmitting}\n                                >\n                                    {t('edit-broker-team.form.actions.update-team')}\n                                </Button>\n                            </div>\n                        )}\n                    </FooterSideBarLayout>\n                )}\n            </form>\n            <DeleteTeamConfirmation\n                data={deleteTeamConfirmation.data}\n                onClose={deleteTeamConfirmation.onClose}\n                onCancel={deleteTeamConfirmation.onCancel}\n                requestStatus={deleteRequest}\n                onConfirm={handleConfirmDeleteTeam}\n            />\n        </>\n    );\n};\n\nexport default EditBrokerTeamSidebarContent;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"DriveThroughRoutePointPicker__wrap___sPkCj\",\"geo-suggest\":\"DriveThroughRoutePointPicker__geo-suggest___PwhFM\",\"fadeIn\":\"DriveThroughRoutePointPicker__fadeIn___Z1DaK\",\"blinking\":\"DriveThroughRoutePointPicker__blinking___uyyOA\"};","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const spotRequestsRefreshChannel = new ViewEventChannel<{}>();\n\nexport const spotRequestsPaginationChannel = new ViewEventChannel<{\n    pageNumber: number;\n}>();\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\n\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { fetchTrucksDict } from 'common/store/trucks-dict/actions';\nimport { selectTrucksDictById, selectTrucksDictRequest } from 'common/store/trucks-dict/selectors';\nimport { getTruckDictTypeLabel } from 'common/store/trucks-dict/utils';\n\ntype PropsT = {\n    truckModel?: TruckModelIdT | null;\n};\n\nconst TruckModelFilterPill: React.FC<PropsT> = React.memo((props) => {\n    const { truckModel } = props;\n\n    const dispatch = useDispatch();\n    React.useEffect(() => {\n        dispatch(fetchTrucksDict());\n    }, [dispatch]);\n\n    const trucksDictById = useSelector(selectTrucksDictById);\n    const fetchRequest = useSelector(selectTrucksDictRequest);\n\n    if (!trucksDictById) {\n        return null;\n    }\n\n    if (fetchRequest.loading) {\n        return <ControlLoaderIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />;\n    }\n\n    const truck = trucksDictById[truckModel as string];\n    if (!truck) {\n        return null;\n    }\n\n    return <span>{getTruckDictTypeLabel(truck)}</span>;\n});\n\nexport default TruckModelFilterPill;\n","import React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ZoneMark.scss';\nimport { RangeSelectorZoneThemeEnum } from 'common/components/RangeSelector/constants';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    hasLeftBorder?: boolean;\n    left?: number | undefined;\n    right?: number | undefined;\n    isActive?: boolean;\n    theme: RangeSelectorZoneThemeEnum | null;\n    testSelector?: string;\n};\n\nconst ZoneMark: React.FC<PropsT> = React.memo((props) => {\n    const { hasLeftBorder, left, right, isActive, children } = props;\n\n    const theme = props.theme || RangeSelectorZoneThemeEnum.light;\n\n    return (\n        <div\n            className={cx('zone-mark', {\n                'zone-mark--isActive': isActive,\n                'zone-mark--hasLeftBorder': hasLeftBorder,\n                [`zone-mark--theme-${theme}`]: !!theme,\n            })}\n            style={{\n                left: left !== undefined ? `${left}%` : undefined,\n                right: right !== undefined ? `${right}%` : undefined,\n            }}\n            data-test-selector=\"zone-mark\"\n        >\n            {children}\n        </div>\n    );\n});\n\nexport default ZoneMark;\n","// extracted by mini-css-extract-plugin\nexport default {\"time-interval\":\"FerryDisembarkPointPicker__time-interval___Zqh1V\",\"fadeIn\":\"FerryDisembarkPointPicker__fadeIn___KkyZY\",\"blinking\":\"FerryDisembarkPointPicker__blinking___tOeYs\"};","// extracted by mini-css-extract-plugin\nexport default {\"actions\":\"ModalDialogActions__actions___LBiyi\",\"actions__action\":\"ModalDialogActions__actions__action___fW4yq\",\"fadeIn\":\"ModalDialogActions__fadeIn___kivbA\",\"blinking\":\"ModalDialogActions__blinking___VaMVy\"};","export const safeParseNumber = (value: unknown): number | null => {\n    if (typeof value !== 'string' && typeof value !== 'number') {\n        return null;\n    }\n\n    const trimmed = typeof value === 'string' ? value.trim() : String(value);\n\n    if (trimmed === '') {\n        return null;\n    }\n\n    const numericValue = Number(trimmed);\n\n    if (!Number.isFinite(numericValue)) {\n        return null;\n    }\n\n    return numericValue;\n};\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './StatusCell.scss';\nimport { ApiUserStatusT, UserStatusEnum } from 'common/utils/api/models';\n\ntype PropsT = {\n    userStatus: ApiUserStatusT | undefined;\n};\n\nconst cx = classNames.bind(styles);\n\nconst StatusCell: React.FC<PropsT> = React.memo((props) => {\n    const { children, userStatus } = props;\n\n    return (\n        <div\n            className={cx('status', {\n                'status--pending': userStatus === UserStatusEnum.pending,\n            })}\n        >\n            {children}\n        </div>\n    );\n});\n\nexport default StatusCell;\n","import React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\n\nimport styles from './TruckModelMultipleDropdown.scss';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectTrucksDict, selectTrucksDictRequest } from 'common/store/trucks-dict/selectors';\nimport { fetchTrucksDict } from 'common/store/trucks-dict/actions';\nimport { getTruckDictTypeLabel } from 'common/store/trucks-dict/utils';\nimport TruckIcon, { TruckIconProps } from 'common/icons/TruckIcon';\nimport DropdownMultipleInput, {\n    RenderTriggerPropsT,\n} from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInput';\nimport DropdownBaseButtonTrigger from 'design-system/components/dropdowns/base/DropdownBaseButtonTrigger/DropdownBaseButtonTrigger';\nimport { useTranslation } from 'react-i18next';\nimport DropdownMultipleInputCountLabel from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInputCountLabel/DropdownMultipleInputCountLabel';\n\nexport enum TruckIconTypesEnum {\n    default = 'default',\n}\n\nconst cx = classNames.bind(styles);\n\ntype ValueT = TruckModelIdT | null | undefined;\n\ntype PropsT = {\n    placeholder?: string;\n    values: Array<ValueT>;\n    isDisabled?: boolean;\n    onChange: (values: Array<ValueT>) => void;\n    hasWarning: boolean;\n    hasError: boolean;\n    hasChanges?: boolean;\n    onBlur: () => void;\n    onFocus: () => void;\n    hasClearControl?: boolean;\n};\n\nexport type OptionT = {\n    value: ValueT;\n    label: string;\n    iconType: TruckIconTypesEnum | null;\n};\n\nconst TruckModelMultipleDropdown: React.FC<PropsT> = React.memo((props) => {\n    const { values, onChange, isDisabled, hasWarning, hasError, hasChanges, onBlur, onFocus, hasClearControl } = props;\n\n    const { t } = useTranslation();\n\n    const trucksDict = useSelector(selectTrucksDict);\n    const trucksDictList = Object.values(trucksDict || {});\n    const fetchRequest = useSelector(selectTrucksDictRequest);\n\n    const dispatch = useDispatch();\n    React.useEffect(() => {\n        dispatch(fetchTrucksDict());\n    }, [dispatch]);\n\n    const trucksOptions = React.useMemo(\n        () =>\n            trucksDictList.map((truck) => {\n                return {\n                    value: truck.id,\n                    iconType: null,\n                    label: getTruckDictTypeLabel(truck),\n                };\n            }),\n        [trucksDictList],\n    );\n\n    const renderOption = (option: OptionT | null | undefined): React.ReactElement | null => {\n        if (!option) {\n            return null;\n        }\n\n        return (\n            <div className={cx('option')} key={option.label}>\n                {option.label}\n            </div>\n        );\n    };\n\n    const handleSelect = (values: Array<ValueT>): void => {\n        onChange(values);\n    };\n\n    const handleReset = (): void => {\n        onChange([]);\n    };\n\n    const getOptionValue = (option: OptionT): ValueT => option.value;\n\n    const renderTrigger = (\n        props: RenderTriggerPropsT,\n        options: Array<OptionT>,\n        placeholder: string | undefined,\n    ): React.ReactNode => {\n        if (!options?.length) {\n            return (\n                <DropdownBaseButtonTrigger\n                    {...props}\n                    isShowClearControl={false}\n                    renderLeftIcon={(iconMeta) => {\n                        return <TruckIcon {...TruckIconProps.getControlProps(iconMeta)} />;\n                    }}\n                >\n                    {placeholder || ''}\n                </DropdownBaseButtonTrigger>\n            );\n        }\n\n        if (options.length === 1) {\n            const firstOption = options?.[0];\n\n            return (\n                <DropdownBaseButtonTrigger\n                    {...props}\n                    renderLeftIcon={(iconMeta) => {\n                        return <TruckIcon {...TruckIconProps.getControlProps(iconMeta)} />;\n                    }}\n                >\n                    {firstOption?.label}\n                </DropdownBaseButtonTrigger>\n            );\n        }\n\n        return (\n            <DropdownBaseButtonTrigger\n                {...props}\n                renderLeftIcon={(iconMeta) => {\n                    return <TruckIcon {...TruckIconProps.getControlProps(iconMeta)} />;\n                }}\n            >\n                <DropdownMultipleInputCountLabel count={options?.length} />\n            </DropdownBaseButtonTrigger>\n        );\n    };\n\n    const placeholder = props.placeholder || t('common:common-components.any-select-input.placeholder');\n\n    return (\n        <DropdownMultipleInput<OptionT, ValueT>\n            selectedValues={values}\n            placeholder={placeholder}\n            options={trucksOptions}\n            onSelect={handleSelect}\n            isDisabled={isDisabled || fetchRequest.loading}\n            isLoading={fetchRequest.loading}\n            renderOption={renderOption}\n            getOptionValue={getOptionValue}\n            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n            hasWarning={hasWarning}\n            hasError={hasError}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            renderTrigger={renderTrigger}\n            onReset={hasClearControl ? handleReset : undefined}\n        />\n    );\n});\n\nexport default TruckModelMultipleDropdown;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor?: StyleGuideColorsEnum;\n    size: number;\n    className?: string;\n};\n\nconst DoubleCheckIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, size, ...restProps } = props;\n\n    return (\n        <svg width={size} height={size} viewBox=\"0 0 20 20\" {...restProps}>\n            <path\n                d=\"m11.38 7.106.513.513a.36.36 0 0 1 0 .512l-4.727 4.763a.365.365 0 0 1-.514 0l-2.546-2.563a.362.362 0 0 1 0-.513l.515-.512a.365.365 0 0 1 .514 0L6.909 11.1l3.956-3.994a.365.365 0 0 1 .514 0zm4 0 .513.513a.36.36 0 0 1 0 .512l-4.727 4.763a.365.365 0 0 1-.514 0l-1.244-1.252 1.02-1.028.481.486 3.956-3.994a.365.365 0 0 1 .514 0z\"\n                fill={fillColor}\n                fillRule=\"evenodd\"\n            />\n        </svg>\n    );\n};\n\nDoubleCheckIcon.displayName = 'DoubleCheckIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.charcoal,\n};\n\nexport { storyProps };\nexport default DoubleCheckIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"FullNameCell__content___QfDsO\",\"content--isHalfOpacity\":\"FullNameCell__content--isHalfOpacity___NjoHX\",\"fadeIn\":\"FullNameCell__fadeIn___ZTSZA\",\"blinking\":\"FullNameCell__blinking___v90sS\"};","import React from 'react';\nimport styles from './DocumentSummary.scss';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport DownloadIcon from 'common/icons/DownloadIcon';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    className?: string;\n    title: React.ReactNode;\n    tooltipContentNode: React.ReactNode;\n    id: DocumentIdT | CarrierContractIdT | null;\n    onDownloadFile: (id: DocumentIdT | CarrierContractIdT) => void;\n    canDownload: boolean;\n};\n\nconst DocumentSummary: React.FC<PropsT> = (props) => {\n    const { tooltipContentNode, className, title, canDownload, id, onDownloadFile } = props;\n\n    return (\n        <div className={cs(cx('info'), className)}>\n            {id && canDownload && (\n                <Tooltip\n                    className={cx('download')}\n                    position={TooltipPositionEnum.centerRight}\n                    theme={TooltipThemeEnum.black}\n                    tooltipNode={\n                        <TooltipContent isCenter theme={TooltipContentThemeEnum.black} width={80}>\n                            {tooltipContentNode}\n                        </TooltipContent>\n                    }\n                >\n                    {(isShow) => (\n                        <TransparentTrigger\n                            isPressed={isShow}\n                            onClick={() => {\n                                onDownloadFile(id);\n                            }}\n                            leftIcon={\n                                <DownloadIcon fillColor={StyleGuideColorsEnum.charcoal} size={DEFAULT_ICON_SIZE} />\n                            }\n                            reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                        />\n                    )}\n                </Tooltip>\n            )}\n            <div className={cx('title')}>{title}</div>\n        </div>\n    );\n};\n\nexport default DocumentSummary;\n","import {\n    FETCH_TRANSPORT_ORDER_DETAILS_REQUEST,\n    FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_BEGIN,\n    FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_ERROR,\n    FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_SUCCESS,\n    FetchTransportOrderDetailsRequestActionT,\n    FetchTransportOrderDetailsRequestBeginActionT,\n    FetchTransportOrderDetailsRequestErrorActionT,\n    FetchTransportOrderDetailsRequestSuccessActionT,\n} from './types';\nimport { TransportOrderDetailsT } from './models';\n\nexport const fetchTransportOrderDetails = (\n    companyId: CompanyIdT,\n    id: TransportOrderIdT,\n    options?: FetchOptionsT,\n): FetchTransportOrderDetailsRequestActionT => ({\n    type: FETCH_TRANSPORT_ORDER_DETAILS_REQUEST,\n    companyId,\n    id,\n    options,\n});\n\nexport const fetchTransportOrderDetailsBegin = (\n    id: TransportOrderIdT,\n): FetchTransportOrderDetailsRequestBeginActionT => ({\n    type: FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_BEGIN,\n    id,\n});\n\nexport const fetchTransportOrderDetailsSuccess = (\n    id: TransportOrderIdT,\n    transportOrderDetails: TransportOrderDetailsT | null,\n): FetchTransportOrderDetailsRequestSuccessActionT => ({\n    type: FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_SUCCESS,\n    transportOrderDetails,\n    id,\n});\n\nexport const fetchTransportOrderDetailsError = (\n    id: TransportOrderIdT,\n    error: Error,\n): FetchTransportOrderDetailsRequestErrorActionT => ({\n    type: FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_ERROR,\n    error,\n    id,\n});\n","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\nimport TourColoredStatus from 'common/components/status-colored/TourColoredStatus/TourColoredStatus';\nimport { ApiTourStatusT } from 'common/utils/api/models';\n\ntype PropsT = {\n    tourNumber: React.ReactNode;\n    status: ApiTourStatusT | null | undefined;\n};\n\nconst TourStatusChangedCard: React.FC<PropsT> = React.memo((props) => {\n    const { tourNumber, status } = props;\n\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey=\"common:notifications.tour-status-changed\"\n                components={{\n                    tourNumber: <NotificationEntityLabel isBold isUnderline text={tourNumber} />,\n                    status: <TourColoredStatus status={status} isInline />,\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default TourStatusChangedCard;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    strokeColor: StyleGuideColorsEnum;\n    fillColor: StyleGuideColorsEnum;\n    size: number;\n};\n\nconst TargetIcon: React.FC<PropsT> = (props) => {\n    const { size, className, strokeColor, fillColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\" className={className}>\n            <g fill=\"none\" fillRule=\"evenodd\" transform=\"translate(1 1)\">\n                <path d=\"M0 0h18v18H0z\" />\n                <circle cx=\"9\" cy=\"9\" r=\"1.5\" fill={fillColor} />\n                <path\n                    fill={strokeColor}\n                    d=\"M9 6a3 3 0 100 6 3 3 0 100-6zm0 4.5c-.825 0-1.5-.675-1.5-1.5S8.175 7.5 9 7.5s1.5.675 1.5 1.5-.675 1.5-1.5 1.5zm6.705-2.25A6.746 6.746 0 009.75 2.295V.75h-1.5v1.545A6.746 6.746 0 002.295 8.25H.75v1.5h1.545a6.746 6.746 0 005.955 5.955v1.545h1.5v-1.545a6.746 6.746 0 005.955-5.955h1.545v-1.5h-1.545zM9 14.25A5.246 5.246 0 013.75 9 5.246 5.246 0 019 3.75 5.246 5.246 0 0114.25 9 5.246 5.246 0 019 14.25z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nTargetIcon.displayName = 'TargetIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    strokeColor: StyleGuideColorsEnum.slate,\n    fillColor: StyleGuideColorsEnum.light,\n};\n\nexport { storyProps };\nexport default TargetIcon;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ShipperContractLaneOtherDetails.scss';\nimport { useTranslation } from 'react-i18next';\nimport { ShipperContractLaneDetailsT } from 'common/store/shipper-contract-lane-details/models';\nimport cs from 'classnames';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport DateFormatter from 'design-system/components/InfoTable/formatters/DateFormatter/DateFormatter';\nimport UserLinkFormatter from 'common/components/InfoTable/formatters/UserLinkFormatter/UserLinkFormatter';\nimport PriceDetails, { PriceDetailT } from 'design-system/components/PriceDetails/PriceDetails';\nimport FeeIcon from 'common/icons/FeeIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport EuroSymbolIcon from 'common/icons/EuroSymbolIcon';\nimport isNumber from 'lodash/isNumber';\n\nconst cx = classNames.bind(styles);\n\nconst HISTORY_DATE_FORMAT = 'DD MMM YYYY, HH:mm';\n\ntype PropsT = {\n    className?: string;\n    data: ShipperContractLaneDetailsT | null;\n    onOpenUserDetails?: (userId: UserIdT) => void;\n};\n\nconst ShipperContractLaneOtherDetails: React.FC<PropsT> = (props) => {\n    const { className, data, onOpenUserDetails } = props;\n\n    const { t } = useTranslation();\n\n    const createDetails: Array<InfoTableRowT | null> = data?.createdDate\n        ? [\n              {\n                  icon: null,\n                  name: t('common:shipper-lane-details.history.date-added'),\n                  value: <DateFormatter date={data?.createdDate} format={HISTORY_DATE_FORMAT} />,\n                  valueMods: { emptyPlaceholder: null, isBold: true },\n                  testSelector: 'date-added',\n              },\n              onOpenUserDetails\n                  ? {\n                        icon: null,\n                        name: t('common:shipper-lane-details.history.added-by'),\n                        value: (\n                            <UserLinkFormatter\n                                fullName={data?.createdByName}\n                                userId={data?.createdById}\n                                byBroker\n                                onOpenUserDetails={onOpenUserDetails}\n                            />\n                        ),\n                        valueMods: { emptyPlaceholder: null, isBold: true },\n                        testSelector: 'added-by',\n                    }\n                  : null,\n          ]\n        : [];\n\n    const modifyDetails: Array<InfoTableRowT | null> = data?.lastEditDate\n        ? [\n              {\n                  icon: null,\n                  name: t('common:shipper-lane-details.history.date-modified'),\n                  value: <DateFormatter date={data?.lastEditDate} format={HISTORY_DATE_FORMAT} />,\n                  valueMods: { emptyPlaceholder: null, isBold: true },\n                  testSelector: 'date-modify',\n              },\n              onOpenUserDetails\n                  ? {\n                        icon: null,\n                        name: t('common:shipper-lane-details.history.modified-by'),\n                        value: (\n                            <UserLinkFormatter\n                                fullName={data?.lastEditByName}\n                                userId={data?.lastEditById}\n                                byBroker\n                                onOpenUserDetails={onOpenUserDetails}\n                            />\n                        ),\n                        valueMods: { emptyPlaceholder: null, isBold: true },\n                        testSelector: 'modified-by',\n                    }\n                  : null,\n          ]\n        : [];\n\n    const revokeDetails: Array<InfoTableRowT | null> = data?.revokedDate\n        ? [\n              {\n                  icon: null,\n                  name: t('common:shipper-lane-details.history.date-revoked'),\n                  value: <DateFormatter date={data?.revokedDate} format={HISTORY_DATE_FORMAT} />,\n                  valueMods: { emptyPlaceholder: null, isBold: true },\n                  testSelector: 'date-revoked',\n              },\n              onOpenUserDetails\n                  ? {\n                        icon: null,\n                        name: t('common:shipper-lane-details.history.revoked-by'),\n                        value: (\n                            <UserLinkFormatter\n                                fullName={data?.revokedByName}\n                                userId={data?.revokedById}\n                                byBroker\n                                onOpenUserDetails={onOpenUserDetails}\n                            />\n                        ),\n                        valueMods: { emptyPlaceholder: null, isBold: true },\n                        testSelector: 'revoked-by',\n                    }\n                  : null,\n          ]\n        : [];\n\n    const otherPrices: Array<PriceDetailT | null> = React.useMemo(() => {\n        if (!data) {\n            return [];\n        }\n\n        return [\n            {\n                iconNode: <EuroSymbolIcon strokeColor={StyleGuideColorsEnum.slate} />,\n                title: t('common:shipper-lane-details.prices.total'),\n                price: data?.totalPrice,\n            },\n            isNumber(data?.serviceFee)\n                ? {\n                      iconNode: <FeeIcon strokeColor={StyleGuideColorsEnum.slate} />,\n                      title: t('common:shipper-lane-details.prices.service-fee'),\n                      price: data?.serviceFee,\n                  }\n                : null,\n        ];\n    }, [data, t]);\n\n    return (\n        <div className={cs(cx('wrap'), className)}>\n            <PriceDetails className={cx('prices')} list={otherPrices} />\n            <InfoTable className={cx('history-table')} rows={createDetails} testSelector=\"create-details\" />\n            <InfoTable className={cx('history-table')} rows={modifyDetails} testSelector=\"modify-details\" />\n            <InfoTable className={cx('history-table')} rows={revokeDetails} testSelector=\"revoke-details\" />\n        </div>\n    );\n};\n\nexport default ShipperContractLaneOtherDetails;\n","/**\n * @deprecated use \"use-query-params\" PageNumberParam\n */\nexport default (queryPageNumber: string | null | undefined): number =>\n    queryPageNumber ? parseInt(queryPageNumber, 10) : 0;\n","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\n\ntype PropsT = {\n    tourNumber: React.ReactNode;\n    originCity: React.ReactNode;\n    destinationCity: React.ReactNode;\n    isRunOut: boolean;\n};\n\nconst TourOutOfTimeToAssignCarrierCard: React.FC<PropsT> = React.memo((props) => {\n    const { tourNumber, originCity, destinationCity, isRunOut } = props;\n\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey={\n                    isRunOut\n                        ? 'common:notifications.tour-run-out-of-time-to-assign-carrier'\n                        : 'common:notifications.tour-running-out-of-time-to-assign-carrier'\n                }\n                components={{\n                    tourNumber: <NotificationEntityLabel isBold isUnderline text={tourNumber} />,\n                    cityFrom: <NotificationEntityLabel isBold text={originCity} />,\n                    cityTo: <NotificationEntityLabel isBold text={destinationCity} />,\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default TourOutOfTimeToAssignCarrierCard;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './StatusCell.scss';\nimport { TransportOrderT } from 'common/store/transport-orders/models';\nimport TransportOrderStatusPill from 'common/components/status-pill/TransportOrderStatusPill/TransportOrderStatusPill';\n\ntype PropsT = {\n    order: TransportOrderT;\n    className?: string;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\nconst StatusCell: React.FC<PropsT> = React.memo((props) => {\n    const { order, className } = props;\n\n    return <TransportOrderStatusPill isSymmetrical className={className} status={order?.status} />;\n});\n\nexport default StatusCell;\n","// extracted by mini-css-extract-plugin\nexport default {\"options\":\"SuggestInput__options___rDVrr\",\"option\":\"SuggestInput__option___hDu38\",\"option--isSelected\":\"SuggestInput__option--isSelected___ySNfU\",\"option--hasSeparator\":\"SuggestInput__option--hasSeparator___Y5MsU\",\"fadeIn\":\"SuggestInput__fadeIn___Gz4dG\",\"blinking\":\"SuggestInput__blinking___CLIZR\"};","import {\n    FETCH_INVOICES_PAGE_REQUEST,\n    FETCH_INVOICES_PAGE_REQUEST_BEGIN,\n    FETCH_INVOICES_PAGE_REQUEST_ERROR,\n    FETCH_INVOICES_PAGE_REQUEST_SUCCESS,\n    FetchInvoicesPageActionT,\n    FetchInvoicesPageBeginActionT,\n    FetchInvoicesPageErrorActionT,\n    FetchInvoicesPageSuccessActionT,\n    RESET_INVOICES,\n    ResetInvoicesActionT,\n} from './types';\nimport { FetchInvoicesPageQueryT, BrokerInvoiceT, DepreactedPagingStateT } from './models';\nimport { PageResponseT } from 'common/utils/pagination/models';\n\nexport const fetchInvoicesPage = (\n    pageNumber: PageNumberT,\n    query: FetchInvoicesPageQueryT,\n    options?: FetchOptionsT,\n): FetchInvoicesPageActionT => ({\n    type: FETCH_INVOICES_PAGE_REQUEST,\n    query,\n    pageNumber,\n    options,\n});\n\nexport const fetchInvoicesPageBegin = (\n    query: FetchInvoicesPageQueryT,\n    pageNumber: PageNumberT,\n): FetchInvoicesPageBeginActionT => ({\n    type: FETCH_INVOICES_PAGE_REQUEST_BEGIN,\n    query,\n    pageNumber,\n});\n\nexport const fetchInvoicesPageSuccess = (\n    query: FetchInvoicesPageQueryT,\n    pageNumber: PageNumberT,\n    pageResponse: PageResponseT<BrokerInvoiceT> | null,\n    pagingState: DepreactedPagingStateT | null,\n): FetchInvoicesPageSuccessActionT => ({\n    type: FETCH_INVOICES_PAGE_REQUEST_SUCCESS,\n    query,\n    pageResponse,\n    pageNumber,\n    pagingState,\n});\n\nexport const fetchInvoicesPageError = (\n    query: FetchInvoicesPageQueryT,\n    pageNumber: PageNumberT,\n    error: Error,\n): FetchInvoicesPageErrorActionT => ({\n    type: FETCH_INVOICES_PAGE_REQUEST_ERROR,\n    query,\n    error,\n    pageNumber,\n});\n\nexport const resetInvoices = (mutationListOptions: MutationListOptionsT): ResetInvoicesActionT => ({\n    type: RESET_INVOICES,\n    mutationListOptions,\n});\n","const stringifyLogSafely = (log: unknown): string => {\n    try {\n        return JSON.stringify(log) || '';\n    } catch {\n        return '';\n    }\n};\n\nexport { stringifyLogSafely };\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './Avatar.scss';\n\nexport enum AvatarSizeEnum {\n    small = 'small',\n    medium = 'medium',\n    large = 'large',\n    extraLarge = 'extra-large',\n}\n\ntype PropsT = {\n    className?: string;\n    hash: string | null;\n    size?: AvatarSizeEnum;\n};\n\nconst cx = classNames.bind(styles);\n\nconst Avatar: React.FC<PropsT> = React.memo((props) => {\n    const { className, hash, size = AvatarSizeEnum.small } = props;\n\n    const index = (hash || '').split('').reduce((summ, char) => summ + char.charCodeAt(0), 0) % 6;\n\n    return <div className={cs(cx('avatar', `avatar--${hash ? index : ''}`, `avatar--size-${size}`), className)} />;\n});\n\nexport default Avatar;\n","import React from 'react';\nimport styles from './TimeWindowPillLabel.scss';\nimport classNames from 'classnames/bind';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport moment from 'moment';\nimport { MS_IN_MIN } from 'common/utils/time';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    timeWindow: TimeWindowT | null | undefined;\n    className?: string;\n};\n\nconst TimeWindowPillLabel: React.FC<PropsT> = (props) => {\n    const { timeWindow, className } = props;\n\n    if (!timeWindow) {\n        return null;\n    }\n\n    const endTimeWindow = timeWindow[1];\n    const isMidnight = moment(endTimeWindow).format('HH:mm') === '00:00';\n    const formatter = moment(endTimeWindow - (isMidnight ? MS_IN_MIN : 0)).format('DD MMM YYYY, HH:mm');\n\n    return (\n        <PillLabel isSymmetrical theme={PillLabelThemeEnum.charcoal} className={className}>\n            <span className={cx('text')}>{formatter}</span>\n        </PillLabel>\n    );\n};\n\nexport default TimeWindowPillLabel;\n","// extracted by mini-css-extract-plugin\nexport default {\"actions\":\"StatusFooterContent__actions___R_siN\",\"action--assign\":\"StatusFooterContent__action--assign___XVNLG\",\"time-left\":\"StatusFooterContent__time-left___JGQQS\",\"spacer\":\"StatusFooterContent__spacer___gKzfV\",\"fadeIn\":\"StatusFooterContent__fadeIn___XNoBU\",\"blinking\":\"StatusFooterContent__blinking___Ay3k2\"};","import {\n    FETCH_INVOICES_PAGE_REQUEST_BEGIN,\n    FETCH_INVOICES_PAGE_REQUEST_ERROR,\n    FETCH_INVOICES_PAGE_REQUEST_SUCCESS,\n    InvoicesActionT,\n    InvoicesStateT,\n    RESET_INVOICES,\n} from './types';\nimport {\n    pageBeginReducer,\n    pageErrorReducer,\n    pageSuccessReducer,\n    resetPagesCacheReducer,\n} from 'common/utils/pagination/reducers';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: InvoicesStateT = {\n    pages: [],\n    query: null,\n    total: null,\n    byId: {},\n    pagingState: null,\n};\n\nexport default (state = initialState, action: InvoicesActionT | DestroySessionActionT): InvoicesStateT => {\n    switch (action.type) {\n        case FETCH_INVOICES_PAGE_REQUEST_BEGIN: {\n            const { pageNumber, query } = action;\n\n            return {\n                ...state,\n                ...pageBeginReducer(state, pageNumber, query),\n            };\n        }\n\n        case FETCH_INVOICES_PAGE_REQUEST_SUCCESS: {\n            const { query, pageResponse, pageNumber, pagingState } = action;\n\n            return {\n                ...state,\n                ...pageSuccessReducer(state, pageNumber, query, pageResponse),\n                pagingState,\n            };\n        }\n        case FETCH_INVOICES_PAGE_REQUEST_ERROR: {\n            const { query, error, pageNumber } = action;\n\n            return {\n                ...state,\n                ...pageErrorReducer(state, pageNumber, query, error),\n            };\n        }\n\n        case RESET_INVOICES: {\n            const { mutationListOptions } = action;\n\n            return {\n                ...initialState,\n                ...resetPagesCacheReducer(initialState, state, mutationListOptions),\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return {\n                ...initialState,\n            };\n        }\n        default:\n            return state;\n    }\n};\n","import React from 'react';\n\nimport { CompanyContactT } from 'common/store/members/models';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport Modal from 'common/components/Modal/Modal';\nimport { PartnerTypeEnum, RolesEnum, UserRoleT } from 'common/utils/api/models';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { USER_ROLE_T_MAP } from 'common/utils/users';\nimport { useSelector } from 'react-redux';\nimport { selectUpdateMemberRequest } from 'common/store/members/selectors';\nimport { ChangeUserRoleDataT } from '../../ChangeRoleUserForm/ChangeRoleUserForm';\n\nexport type ChangeUserRoleConfirmationDataT = {\n    contact: {\n        roles: CompanyContactT['roles'];\n        fullName: CompanyContactT['fullName'];\n        userId: CompanyContactT['userId'];\n    } | null;\n    partnerType: PartnerTypeEnum;\n    partnerId: PartnerIdT;\n    changes: ChangeUserRoleDataT;\n};\n\nexport type ChangeUserRoleConfirmationPropsT = {\n    data: ChangeUserRoleConfirmationDataT | null;\n    onClose: () => void;\n    onConfirm: (data: ChangeUserRoleConfirmationDataT) => void;\n};\n\nconst TEST_SELECTOR = 'change-user-role-confirmation';\n\nconst CONFIRMATION_MESSAGE_T: Record<PartnerTypeEnum, string> = {\n    [PartnerTypeEnum.shipper]: 'common:team-members.dialogs.change-user-roles-confirmation.description',\n    [PartnerTypeEnum.carrier]: 'common:team-members.dialogs.change-user-roles-confirmation.description',\n    [PartnerTypeEnum.broker]: 'common:team-members.dialogs.change-user-roles-confirmation.description',\n};\n\nconst CONFIRMATION_ADMIN_MESSAGE_T: Record<PartnerTypeEnum, string> = {\n    [PartnerTypeEnum.shipper]: 'common:team-members.dialogs.change-user-roles-confirmation.admin-description',\n    [PartnerTypeEnum.carrier]: 'common:team-members.dialogs.change-user-roles-confirmation.admin-description',\n    [PartnerTypeEnum.broker]: 'common:team-members.dialogs.change-user-roles-confirmation.partner-admin-description',\n};\n\nconst adminRolesSet = new Set<UserRoleT>([RolesEnum.companyAdmin]);\n\nconst ChangeUserRoleConfirmation: React.FC<ChangeUserRoleConfirmationPropsT> = React.memo((props) => {\n    const { data, onClose, onConfirm } = props;\n\n    const contact = data?.contact || null;\n    const partnerId = data?.partnerId || null;\n\n    const updateMemberRequest = useSelector(selectUpdateMemberRequest(partnerId));\n\n    const { t } = useTranslation();\n\n    const newRolesCount = data?.changes?.roles?.length || 0;\n\n    const hasAdminRoleInChanges = React.useMemo(() => {\n        if (!data) {\n            return false;\n        }\n\n        return data.changes.roles.some((role) => {\n            return adminRolesSet.has(role);\n        });\n    }, [data]);\n\n    const displayedRoles = React.useMemo(() => {\n        if (!data) {\n            return '';\n        }\n\n        return data.changes.roles\n            .map((role) => {\n                return t(USER_ROLE_T_MAP[role]).toLocaleLowerCase();\n            })\n            .join(', ');\n    }, [data, t]);\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                    title={t(\n                        hasAdminRoleInChanges\n                            ? 'common:team-members.dialogs.change-user-roles-confirmation.admin-title'\n                            : 'common:team-members.dialogs.change-user-roles-confirmation.title',\n                        {\n                            roles: displayedRoles,\n                            fullName: contact?.fullName,\n                            postProcess: 'interval',\n                            count: newRolesCount,\n                        },\n                    )}\n                    message={t(\n                        hasAdminRoleInChanges\n                            ? CONFIRMATION_ADMIN_MESSAGE_T[data.partnerType]\n                            : CONFIRMATION_MESSAGE_T[data.partnerType],\n                        {\n                            fullName: contact?.fullName,\n                            postProcess: 'interval',\n                            count: newRolesCount,\n                        },\n                    )}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: updateMemberRequest.loading,\n                            onClick: () => {\n                                onClose();\n                            },\n                        },\n                        {\n                            children: t('common:error-modal.actions.assign'),\n                            theme: ButtonThemeEnum.danger,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            isLoading: updateMemberRequest.loading,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default ChangeUserRoleConfirmation;\n","import { QueryFiltersT } from '../query-models';\nimport { FieldsEnum, FormValuesT } from './constants';\n\nconst getInitialValues = (\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    queryFilters: QueryFiltersT,\n): FormValuesT => {\n    const values: FormValuesT = {\n        [FieldsEnum.orderType]: null,\n        [FieldsEnum.receiveDates]: null,\n\n        [FieldsEnum.dictTrailerId]: null,\n        [FieldsEnum.plateNumber]: null,\n\n        [FieldsEnum.originAddress]: null,\n        [FieldsEnum.destinationAddress]: null,\n\n        [FieldsEnum.driverId]: null,\n        [FieldsEnum.driverName]: null,\n        [FieldsEnum.minPrice]: '',\n        [FieldsEnum.maxPrice]: '',\n\n        [FieldsEnum.pickupDates]: null,\n        [FieldsEnum.dropoffDates]: null,\n    };\n\n    return values;\n};\n\nexport default getInitialValues;\n","// extracted by mini-css-extract-plugin\nexport default {\"action--start\":\"StartEditTimeWindowsFooter__action--start___Nid4G\",\"fadeIn\":\"StartEditTimeWindowsFooter__fadeIn___uoPSr\",\"blinking\":\"StartEditTimeWindowsFooter__blinking___rfwWt\"};","// extracted by mini-css-extract-plugin\nexport default {\"icon\":\"AssetSchedulePin__icon___Ab982\",\"number\":\"AssetSchedulePin__number___yNsvj\",\"fadeIn\":\"AssetSchedulePin__fadeIn___HPYVk\",\"blinking\":\"AssetSchedulePin__blinking___wKUjm\"};","import {\n    COUNTRIES_DICT_REQUEST_BEGIN,\n    COUNTRIES_DICT_REQUEST_ERROR,\n    COUNTRIES_DICT_REQUEST_SUCCESS,\n    CountriesDictActionT,\n    CountriesDictStateT,\n} from './types';\nimport keyBy from 'lodash/keyBy';\nimport uniq from 'lodash/uniq';\nimport requestStatus from 'common/utils/request-status';\nimport { CountryLanguageT } from 'common/store/countries-dict/models';\n\nconst initialState: CountriesDictStateT = {\n    byLangCode: {},\n    allLangCodes: [],\n    list: [],\n    allCodes: [],\n    byCode: {},\n    request: requestStatus.initial,\n};\n\nexport default (state = initialState, action: CountriesDictActionT): CountriesDictStateT => {\n    switch (action.type) {\n        case COUNTRIES_DICT_REQUEST_BEGIN: {\n            return {\n                ...state,\n                request: requestStatus.loading,\n            };\n        }\n\n        case COUNTRIES_DICT_REQUEST_SUCCESS: {\n            const { countriesList } = action;\n\n            const countryLanguages: CountryLanguageT[] = countriesList.map((country) => {\n                return {\n                    code: country.langCode,\n                    name: country.language,\n                };\n            });\n            const byLangCode = keyBy(countryLanguages, 'code');\n            const allLangCodes = countryLanguages.map((country) => country.code);\n            const uniqAllLangCodes = uniq(allLangCodes);\n\n            const allCodes = countriesList.map((country) => country.code);\n            const byCode = keyBy(countriesList, 'code');\n\n            return {\n                ...state,\n                allCodes,\n                byCode,\n                list: countriesList,\n                allLangCodes: uniqAllLangCodes,\n                byLangCode,\n                request: requestStatus.ok,\n            };\n        }\n\n        case COUNTRIES_DICT_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                request: requestStatus.setError(error),\n            };\n        }\n\n        default: {\n            return state;\n        }\n    }\n};\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n};\n\nconst RouteIcon: React.FC<PropsT> = (props) => {\n    const { fillColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\">\n            <path\n                fill={fillColor}\n                fillRule=\"nonzero\"\n                d=\"M15 10c1.659 0 3 1.252 3 2.8 0 2.1-3 5.2-3 5.2s-3-3.1-3-5.2c0-1.548 1.341-2.8 3-2.8zm-.875-7c1.447 0 2.625 1.178 2.625 2.625S15.572 8.25 14.125 8.25H5c-.825 0-1.5.675-1.5 1.5v3c0 .825.675 1.5 1.5 1.5h5.5v1.5H5c-1.658 0-3-1.342-3-3v-3c0-1.658 1.342-3 3-3h9.125c.623 0 1.125-.503 1.125-1.125S14.748 4.5 14.125 4.5H3.5a.752.752 0 01-.75-.75c0-.413.337-.75.75-.75zM15 12a1 1 0 100 2 1 1 0 000-2z\"\n            />\n        </svg>\n    );\n};\n\nRouteIcon.displayName = 'RouteIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default RouteIcon;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Card from 'design-system/components/Card/Card';\nimport { TourPapersTabContent } from 'common/components/entity-details/TourPapersTabContent/TourPapersTabContent';\nimport {\n    ApiAttachPapersUnavailableReasonT,\n    ApiTourAttachedPaperTypeT,\n    ApiTourPaperT,\n    PartnerTypeEnum,\n} from 'common/utils/api/models';\nimport { TourPaperAttachPapersDropdownControl } from '../TourPaperAttachPapersDropdownControl/TourPaperAttachPapersDropdownControl';\nimport { useSelector } from 'react-redux';\nimport { selectTourChangesById } from 'common/store/papers-edit/selectors';\nimport { useRenderPapersTabCount } from '../hooks/use-render-papers-tab-count';\n\ntype PropsT = {\n    title?: React.ReactNode;\n    className?: string;\n    attachedPapers: Array<ApiTourPaperT> | null;\n    tourId: TourIdT | null;\n    onOpenUserDetails?: (params: {\n        userId: UserIdT | null;\n        partnerType?: PartnerTypeEnum;\n        partnerId?: PartnerIdT;\n    }) => void;\n    onOpenDriverDetails?: (params: { driverId: DriverIdT; partnerId: PartnerIdT }) => void;\n    getTourPaperThumbnailUrl: (tourId: TourIdT | null, paperId: PaperIdT | null) => string | null;\n    onOpenGalleryTourPaper: (tourId: TourIdT, paperId: PaperIdT) => void;\n    onDownloadTourPaper: (tourId: TourIdT, paperId: PaperIdT) => void;\n    onDeleteTourPaper?: (tourId: TourIdT, paperId: PaperIdT) => void;\n    onAttachTourPaper?: (paperType: ApiTourAttachedPaperTypeT) => void;\n    attachPapersUnavailableReason?: ApiAttachPapersUnavailableReasonT | null;\n};\n\nconst TourPapersCard: React.FC<PropsT> = React.memo((props) => {\n    const {\n        title,\n        className,\n        attachedPapers,\n        tourId,\n        onOpenUserDetails,\n        onOpenDriverDetails,\n        getTourPaperThumbnailUrl,\n        onOpenGalleryTourPaper,\n        onDownloadTourPaper,\n        onDeleteTourPaper,\n        onAttachTourPaper,\n        attachPapersUnavailableReason,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const tourChanges = useSelector(selectTourChangesById(tourId));\n\n    const papersBadge = useRenderPapersTabCount({\n        optimisticPapers: tourChanges?.optimisticPapers,\n        entityPapers: attachedPapers,\n    });\n\n    return (\n        <Card\n            titleNode={title ?? t('common:entity-details.papers')}\n            className={className}\n            hasHeaderBottomBorder\n            afterTitleNode={papersBadge}\n            rightNode={\n                onAttachTourPaper ? (\n                    <TourPaperAttachPapersDropdownControl\n                        onAttachNew={onAttachTourPaper}\n                        attachPapersUnavailableReason={attachPapersUnavailableReason || null}\n                    />\n                ) : null\n            }\n        >\n            <TourPapersTabContent\n                attachedPapers={attachedPapers}\n                tourId={tourId}\n                onOpenUserDetails={onOpenUserDetails}\n                onOpenDriverDetails={onOpenDriverDetails}\n                getTourPaperThumbnailUrl={getTourPaperThumbnailUrl}\n                onOpenGalleryTourPaper={onOpenGalleryTourPaper}\n                onDownloadTourPaper={onDownloadTourPaper}\n                onDeleteTourPaper={onDeleteTourPaper}\n            />\n        </Card>\n    );\n});\n\nexport default TourPapersCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"rates\":\"AveragePriceOfferDetails__rates___n4P1l\",\"price-details\":\"AveragePriceOfferDetails__price-details___kn7Hy\",\"price-details__list\":\"AveragePriceOfferDetails__price-details__list___yT7Wa\",\"price-details__list--isLast\":\"AveragePriceOfferDetails__price-details__list--isLast___LqHxz\",\"fadeIn\":\"AveragePriceOfferDetails__fadeIn___Ezy5a\",\"blinking\":\"AveragePriceOfferDetails__blinking___c3_GK\"};","// extracted by mini-css-extract-plugin\nexport default {\"options\":\"DropdownSearchMultipleInput__options___vVQhY\",\"search-input-wrap\":\"DropdownSearchMultipleInput__search-input-wrap___yXGBu\",\"icon\":\"DropdownSearchMultipleInput__icon___xXCWI\",\"icon--search\":\"DropdownSearchMultipleInput__icon--search___oqAOT\",\"icon--right-icon\":\"DropdownSearchMultipleInput__icon--right-icon___JZTxs\",\"search-input\":\"DropdownSearchMultipleInput__search-input___cZ3zn\",\"search-input--isFocus\":\"DropdownSearchMultipleInput__search-input--isFocus___bczXg\",\"search-input--isEmpty\":\"DropdownSearchMultipleInput__search-input--isEmpty___VnNqw\",\"option\":\"DropdownSearchMultipleInput__option___FENBL\",\"option__checkbox\":\"DropdownSearchMultipleInput__option__checkbox___ncpUD\",\"option__label\":\"DropdownSearchMultipleInput__option__label___YS3ji\",\"separator\":\"DropdownSearchMultipleInput__separator___dSCNJ\",\"fadeIn\":\"DropdownSearchMultipleInput__fadeIn___ko_RH\",\"blinking\":\"DropdownSearchMultipleInput__blinking___RSQxX\"};","// extracted by mini-css-extract-plugin\nexport default {\"checkbox\":\"Checkbox__checkbox___lnSuD\",\"checkbox--isFullWidth\":\"Checkbox__checkbox--isFullWidth___etrIK\",\"box\":\"Checkbox__box___Ru34B\",\"box--theme-orange\":\"Checkbox__box--theme-orange___Ejn93\",\"box--isClickable\":\"Checkbox__box--isClickable___OQYgq\",\"box--isHover\":\"Checkbox__box--isHover___qpzlx\",\"box--isChecked\":\"Checkbox__box--isChecked____9pDe\",\"box--isIndeterminated\":\"Checkbox__box--isIndeterminated___lLG4X\",\"box--isDisabled\":\"Checkbox__box--isDisabled___VhGtu\",\"label\":\"Checkbox__label___DHdnT\",\"label--isFullWidth\":\"Checkbox__label--isFullWidth___osPHz\",\"label--isClickable\":\"Checkbox__label--isClickable___cdygl\",\"label--isDisabled\":\"Checkbox__label--isDisabled___tNPVE\",\"label--hasRightIcon\":\"Checkbox__label--hasRightIcon___W7kDJ\",\"label--withoutBox\":\"Checkbox__label--withoutBox___FW_2L\",\"fadeIn\":\"Checkbox__fadeIn___sJq0R\",\"blinking\":\"Checkbox__blinking___AgnGh\"};","import React from 'react';\nimport CommonSideBars from 'common/layouts/SideBars/SideBars';\nimport { getSidebarCloseConfirmation, renderSidebarContent } from './utils';\n\ntype PropsT = {\n    paranjaShowLevel?: number;\n};\n\nconst SideBars: React.FC<PropsT> = React.memo((props) => {\n    return (\n        <CommonSideBars\n            {...props}\n            renderSidebarContent={renderSidebarContent}\n            getSidebarCloseConfirmation={getSidebarCloseConfirmation}\n        />\n    );\n});\n\nexport default SideBars;\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"BrokerPartnersControl__option___xj6GC\",\"count\":\"BrokerPartnersControl__count___9Y59b\",\"fadeIn\":\"BrokerPartnersControl__fadeIn___iKFib\",\"blinking\":\"BrokerPartnersControl__blinking___lqgkr\"};","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './RemoteFormActions.scss';\nimport { useTranslation } from 'react-i18next';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport noop from 'lodash/noop';\n\ntype PropsT = {\n    className?: string;\n    saveLabel?: React.ReactNode;\n    cancelLabel?: React.ReactNode;\n    closeLabel?: React.ReactNode;\n    onClose?: () => void;\n};\n\nconst cx = classNames.bind(styles);\n\nconst RemoteFormActions: React.FC<PropsT> = React.memo((props) => {\n    const { className, saveLabel, cancelLabel, closeLabel, onClose } = props;\n\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n\n    const { t } = useTranslation();\n\n    if (!remoteFormActionsContext?.remoteFormState?.hasChanges) {\n        if (onClose) {\n            return (\n                <Button className={cx('action')} testSelector=\"form-cancel\" onClick={onClose || noop}>\n                    {closeLabel || t('common:form-actions.cancel')}\n                </Button>\n            );\n        }\n\n        return null;\n    }\n\n    const isLoading = remoteFormActionsContext?.remoteFormRequest?.isLoading;\n\n    return (\n        <div className={cs(cx('actions'), className)}>\n            <Button\n                className={cx('action')}\n                isLoading={isLoading}\n                testSelector=\"form-submit\"\n                theme={ButtonThemeEnum.primary}\n                onClick={remoteFormActionsContext?.remoteFormCallbacks?.submit}\n            >\n                {saveLabel || t('common:form-actions.save-changes')}\n            </Button>\n            <Button\n                className={cx('action')}\n                testSelector=\"form-reset\"\n                onClick={isLoading ? noop : remoteFormActionsContext?.remoteFormCallbacks?.reset}\n            >\n                {cancelLabel || t('common:form-actions.reset-changes')}\n            </Button>\n        </div>\n    );\n});\n\nexport default RemoteFormActions;\n","import { SharableStateT } from '../models';\nimport requestStatus from 'common/utils/request-status';\n\nexport const selectPartnerSuggestById = (partnerId: PartnerIdT | null | undefined) => (state: SharableStateT) => {\n    return (\n        state.partnerSuggest.byId[partnerId as PartnerIdT] || {\n            data: null,\n            requestStatus: requestStatus.initial,\n        }\n    );\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"tabs\":\"TabGroup__tabs___RQob6\",\"tabs--size-normal\":\"TabGroup__tabs--size-normal___elt1G\",\"tabs--size-small\":\"TabGroup__tabs--size-small___i6h0H\",\"fadeIn\":\"TabGroup__fadeIn___DMcLU\",\"blinking\":\"TabGroup__blinking___Tn1rS\"};","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"TruckModelMultipleDropdown__option___dlzXg\",\"fadeIn\":\"TruckModelMultipleDropdown__fadeIn___qD1ZU\",\"blinking\":\"TruckModelMultipleDropdown__blinking___cAg0w\"};","// extracted by mini-css-extract-plugin\nexport default {\"cost\":\"CostCell__cost___IekFS\",\"fadeIn\":\"CostCell__fadeIn___xqgI1\",\"blinking\":\"CostCell__blinking___xhBf2\"};","import React from 'react';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { useTranslation } from 'react-i18next';\nimport DropdownControl, {\n    DropdownControlOptionT,\n    SpecialOptionEnum,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport XLSIcon from 'common/icons/XLSIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport ArrowsIcon from 'common/icons/ArrowsIcon';\n\ntype PropsT = {\n    className?: string;\n    testSelector?: string;\n\n    isLoading: boolean;\n\n    isAllowImport: boolean;\n    onImportAssets: () => void;\n\n    isAllowExport: boolean;\n    onExportAssets: () => void;\n    onExportFilteredAssets: () => void;\n\n    overlayPosition?: DropdownOverlayPositionEnum;\n};\n\nconst AssetsXLSDropdownControl: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        testSelector,\n        isLoading,\n        isAllowImport,\n        onImportAssets,\n        isAllowExport,\n        onExportAssets,\n        onExportFilteredAssets,\n        overlayPosition,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const options = React.useMemo((): Array<DropdownControlOptionT | SpecialOptionEnum | null> => {\n        return [\n            isAllowExport\n                ? {\n                      label: (\n                          <DropdownControlOptionLabel\n                              icon={<XLSIcon fillColor={StyleGuideColorsEnum.charcoal} />}\n                              label={t('common:trucks-page.actions.export-all')}\n                          />\n                      ),\n                      onSelect: onExportAssets,\n                  }\n                : null,\n            isAllowExport\n                ? {\n                      label: (\n                          <DropdownControlOptionLabel\n                              icon={<XLSIcon fillColor={StyleGuideColorsEnum.charcoal} />}\n                              label={t('common:trucks-page.actions.export-filtered')}\n                          />\n                      ),\n                      onSelect: onExportFilteredAssets,\n                  }\n                : null,\n            isAllowImport ? SpecialOptionEnum.separator : null,\n            isAllowImport\n                ? {\n                      label: (\n                          <DropdownControlOptionLabel\n                              icon={<XLSIcon fillColor={StyleGuideColorsEnum.charcoal} />}\n                              label={t('common:trucks-page.actions.import')}\n                          />\n                      ),\n                      onSelect: onImportAssets,\n                  }\n                : null,\n        ];\n    }, [t, isAllowImport, onImportAssets, isAllowExport, onExportAssets, onExportFilteredAssets]);\n\n    return (\n        <DropdownControl\n            className={className}\n            options={options}\n            isDisabled={isLoading}\n            testSelector={`${testSelector}_xls-actions`}\n            renderTrigger={(isActive, onClick) => (\n                <TransparentTrigger\n                    isPressed={isActive}\n                    onClick={onClick}\n                    isDisabled={isLoading}\n                    label={t('common:trucks-page.actions.xls')}\n                    leftIcon={\n                        isLoading ? (\n                            <ControlLoaderIcon fillColor={StyleGuideColorsEnum.light} size={DEFAULT_ICON_SIZE} />\n                        ) : (\n                            <XLSIcon fillColor={StyleGuideColorsEnum.charcoal} />\n                        )\n                    }\n                    rightIcon={<ArrowsIcon />}\n                    reflectionTheme={ReflectionThemeEnum.light}\n                />\n            )}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomRight}\n        />\n    );\n});\n\nexport default AssetsXLSDropdownControl;\n","import classNames from 'classnames/bind';\nimport styles from './MapTooltipMenu.scss';\nimport * as React from 'react';\nimport OutsideClickHandler from 'design-system/components/OutsideClickHandler/OutsideClickHandler';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport noop from 'lodash/noop';\n\nconst cx = classNames.bind(styles);\n\nexport type MapTooltipMenuItemT = {\n    label: React.ReactNode;\n    onSelect: () => void;\n    testSelector?: string;\n    isDisabled?: boolean;\n    tooltipContent?: React.ReactNode;\n};\n\ntype PropsT = {\n    className?: string;\n    onOutsideClick: () => void;\n    items: Array<MapTooltipMenuItemT>;\n};\n\nconst MapTooltipMenu: React.FC<PropsT> = React.memo((props) => {\n    const { className, onOutsideClick, items } = props;\n\n    return (\n        <OutsideClickHandler onOutsideClick={onOutsideClick}>\n            <div\n                className={cx('overlay', className)}\n                onClick={(event) => {\n                    event.preventDefault();\n                    event.stopPropagation();\n                }}\n            >\n                {items.map((item, index) => (\n                    <Tooltip\n                        key={index}\n                        position={TooltipPositionEnum.centerRight}\n                        theme={TooltipThemeEnum.black}\n                        tooltipNode={\n                            item?.tooltipContent ? (\n                                <TooltipContent width={200} theme={TooltipContentThemeEnum.black}>\n                                    {item?.tooltipContent}\n                                </TooltipContent>\n                            ) : null\n                        }\n                    >\n                        {() => (\n                            <div\n                                key={`option-${index}`}\n                                className={cx('option', {\n                                    'option--isDisabled': item.isDisabled,\n                                })}\n                                data-testid={`option-${item.testSelector}`}\n                                onClick={!item?.isDisabled ? item.onSelect : noop}\n                            >\n                                {item.label}\n                            </div>\n                        )}\n                    </Tooltip>\n                ))}\n            </div>\n        </OutsideClickHandler>\n    );\n});\n\nexport default MapTooltipMenu;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    size: number;\n    fillColor: StyleGuideColorsEnum;\n    opacity?: number;\n};\n\nconst TodoListIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, opacity, className, size } = props;\n\n    return (\n        <svg width={size} height={size} viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" className={className}>\n            <defs>\n                <path d=\"M0 0h18v18H0V0z\" id=\"lsiwk5mp9a\" />\n            </defs>\n            <path\n                d=\"M13.405 9.25 10.75 6.595l1.057-1.058 1.59 1.59 3.18-3.18 1.058 1.058-4.23 4.245zm-4.155-3H2.5v1.5h6.75v-1.5zm7.5 4.807L15.693 10l-1.943 1.943L11.807 10l-1.057 1.057L12.693 13l-1.943 1.943L11.807 16l1.943-1.943L15.693 16l1.057-1.057L14.807 13l1.943-1.943zm-7.5 1.193H2.5v1.5h6.75v-1.5z\"\n                xlinkHref=\"#lsiwk5mp9a\"\n                fill={fillColor}\n                fillOpacity={opacity || 1}\n                fillRule=\"evenodd\"\n            />\n        </svg>\n    );\n};\n\nTodoListIcon.displayName = 'TodoListIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandDark,\n    opacity: 1,\n    size: DEFAULT_ICON_SIZE,\n};\n\nexport { storyProps };\nexport default TodoListIcon;\n","import { ApiCountriesT, ApiLocationT } from 'common/utils/api/models';\nimport { ApiTourEditNewStopT } from 'broker-admin/utils/api/broker-tranziit/models';\n\nexport const convertToPointLocation = (location: ApiLocationT | null): ApiTourEditNewStopT['address'] | null => {\n    if (!location) {\n        return null;\n    }\n\n    const countyCode = location?.country;\n    const latitude = location?.latitude;\n    const longitude = location?.longitude;\n\n    if (!latitude || !longitude || !countyCode) {\n        return null;\n    }\n\n    return {\n        latitude,\n        longitude,\n        country: countyCode as ApiCountriesT,\n        city: location?.city || undefined,\n        street1: location?.street1 || undefined,\n        street2: location?.street2,\n        zipCode: location?.zipCode || undefined,\n    };\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"loader\":\"TableSkeleton__loader___OmA8N\",\"skeleton__box\":\"TableSkeleton__skeleton__box___ZHNKT\",\"skeleton__box--table-head\":\"TableSkeleton__skeleton__box--table-head___eGTpH\",\"skeleton__box--table-row\":\"TableSkeleton__skeleton__box--table-row___lRoxK\",\"fadeIn\":\"TableSkeleton__fadeIn___OMqWK\",\"blinking\":\"TableSkeleton__blinking___ZnykO\"};","import * as React from 'react';\nimport Link, { LinkPropsT, LinkThemeEnum } from 'common/components/Link/Link';\n\ntype PropsT = Omit<LinkPropsT, 'theme'>;\n\nconst LinkFormatter: React.FC<PropsT> = React.memo((props) => {\n    const { children, ...rest } = props;\n\n    return (\n        <Link {...rest} theme={LinkThemeEnum.boldBrandDark}>\n            {children}\n        </Link>\n    );\n});\n\nexport default LinkFormatter;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"PapersGroup__wrap___JlqJv\",\"header\":\"PapersGroup__header___jc4Qq\",\"count\":\"PapersGroup__count___SreG9\",\"title\":\"PapersGroup__title___KuROB\",\"controls\":\"PapersGroup__controls___uwXjD\",\"content\":\"PapersGroup__content___H_M0B\",\"fadeIn\":\"PapersGroup__fadeIn___lgnwj\",\"blinking\":\"PapersGroup__blinking___owAfh\"};","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    FETCH_RATES_PAGE_REQUEST,\n    FetchRatesPageActionT,\n    UPDATE_RATES_REQUEST,\n    UpdateRatesActionT,\n    UPLOAD_CSV_FILE_REQUEST,\n    UploadCsvFileActionT,\n} from './types';\nimport {\n    fetchRatesPageBegin,\n    fetchRatesPageError,\n    fetchRatesPageSuccess,\n    resetRates,\n    updateRatesBegin,\n    updateRatesError,\n    updateRatesSuccess,\n    uploadCSVFailError,\n    uploadCSVFileBegin,\n    uploadCSVFileSuccess,\n} from './actions';\nimport { selectRatesPages, selectRatesQuery, selectUpdateRatesRequest, selectUploadCSVFileRequest } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { checkIsSameQuery, checkShouldEmitChangePage } from 'common/utils/pagination/utils';\nimport { ratesPaginationChannel, ratesRefreshChannel } from 'broker-admin/store/price-settings/rates/channels';\n\nfunction* fetchRatesSaga(action: FetchRatesPageActionT): WrapGeneratorT<void> {\n    const { pageNumber, query, options } = action;\n\n    const prevQuery: ReturnType<typeof selectRatesQuery> = yield select(selectRatesQuery);\n    const pages: ReturnType<typeof selectRatesPages> = yield select(selectRatesPages);\n    const isSameQuery = checkIsSameQuery(query, prevQuery);\n    const isNeedRequest = checkNeedRequest(pages[pageNumber]?.requestStatus);\n    if (isSameQuery && !isNeedRequest && !options?.isForceUpdate) {\n        return;\n    }\n    if (!isSameQuery) {\n        yield put(resetRates({ savingPageNumber: pageNumber }));\n    }\n\n    yield put(fetchRatesPageBegin(query, pageNumber));\n\n    const [error, response]: ReturnApiT<typeof brokerTranziitApi.fetchRatesPage> =\n        yield brokerTranziitApi.fetchRatesPage({\n            ...query,\n            page: pageNumber,\n        });\n\n    if (error) {\n        yield put(fetchRatesPageError(query, pageNumber, error));\n        return;\n    }\n\n    yield put(fetchRatesPageSuccess(query, pageNumber, response));\n\n    checkShouldEmitChangePage(pageNumber, response, ratesPaginationChannel);\n}\n\nfunction* updateRatesSaga(action: UpdateRatesActionT): WrapGeneratorT<void> {\n    const request: ReturnType<typeof selectUpdateRatesRequest> = yield select(selectUpdateRatesRequest);\n    if (request.loading) {\n        return;\n    }\n\n    yield put(updateRatesBegin());\n\n    const { ids, value, strategy } = action;\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.updateRates> = yield brokerTranziitApi.updateRates(\n        ids,\n        value,\n        strategy,\n    );\n    if (error) {\n        yield put(updateRatesError(error));\n        return;\n    }\n\n    yield put(updateRatesSuccess());\n\n    ratesRefreshChannel.emit({});\n}\n\nfunction* uploadCsvFileSaga(action: UploadCsvFileActionT): WrapGeneratorT<void> {\n    const { file } = action;\n\n    const request: ReturnType<typeof selectUploadCSVFileRequest> = yield select(selectUploadCSVFileRequest);\n    if (request.loading) {\n        return;\n    }\n\n    yield put(uploadCSVFileBegin());\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.uploadRatesCSVFile> = yield brokerTranziitApi.uploadRatesCSVFile(\n        file,\n    );\n    if (error) {\n        yield put(uploadCSVFailError(error));\n        return;\n    }\n\n    yield put(uploadCSVFileSuccess());\n\n    ratesRefreshChannel.emit({});\n}\n\nfunction* ratesSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_RATES_PAGE_REQUEST, fetchRatesSaga);\n    yield takeEvery(UPDATE_RATES_REQUEST, updateRatesSaga);\n    yield takeEvery(UPLOAD_CSV_FILE_REQUEST, uploadCsvFileSaga);\n}\n\nexport default ratesSaga;\n","import * as React from 'react';\nimport { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport GoogleMapContextProvider from 'common/components/maps/GoogleMapContextProvider/GoogleMapContextProvider';\nimport HorizontalColumnsLayout from 'common/layouts/HorizontalColumnsLayout/HorizontalColumnsLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport {\n    calculateCostRequest,\n    createLaneRequest,\n    resetShipperLaneCreation,\n} from 'common/store/shipper-contract-lane-creation/slice';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport SideBarLayoutContextWrap from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayoutContextWrap/SideBarLayoutContextWrap';\nimport ShipperContractLaneCreationForm from 'broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/ShipperContractLaneCreationForm/ShipperContractLaneCreationForm';\nimport ShipperContractLaneCreationMap from 'broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/ShipperContractLaneCreationMap/ShipperContractLaneCreationMap';\nimport ParanjaSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/ParanjaSideBarLayout/ParanjaSideBarLayout';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport {\n    CalculateCostRequestQueryT,\n    CreateRequestQueryDraftT,\n} from 'common/store/shipper-contract-lane-creation/models';\nimport { logWarning } from 'common/utils/logger';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport ShipperContractLaneCreationConfirmForm from 'broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/ShipperContractLaneCreationConfirmForm/ShipperContractLaneCreationConfirmForm';\nimport { CreationLaneConfirmDataT } from 'broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/ShipperContractLaneCreationConfirmForm/models';\nimport useOnlyChangesEffect from 'common/utils/hooks/useOnlyChangesEffect';\nimport { selectCalculateCostRequest } from 'common/store/shipper-contract-lane-creation/selectors';\nimport { useSyncMapState } from './hooks/useSyncMapState';\nimport { SyncShipperContractLaneCreationFormMapStateContext } from 'broker-admin/layouts/ShipperContractLaneDetailsPage/ShipperContractLaneCreationPage/contexts/sync-map-state';\n\ntype PropsT = {\n    contractId: ShipperContractIdT | null;\n    onClose: () => void;\n};\n\nconst ShipperContractLaneCreationPage: React.FC<PropsT> = React.memo((props) => {\n    const { onClose, contractId } = props;\n\n    const { partnerId } = usePartnerContext();\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n    React.useEffect(() => {\n        dispatch(fetchCountriesDict());\n\n        return () => {\n            dispatch(resetShipperLaneCreation());\n        };\n    }, [dispatch]);\n\n    const [createRequestQueryDraft, setCreateRequestQueryDraft] = useState<CreateRequestQueryDraftT | null>(null);\n    const [calculateQuery, setCalculateQuery] = useState<CalculateCostRequestQueryT | null>(null);\n    const handleSubmit = (query: CalculateCostRequestQueryT, createQueryDraft: CreateRequestQueryDraftT) => {\n        if (!contractId) {\n            logWarning('failed to calculating cost, empty contractId');\n            return;\n        }\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleSubmit');\n            return;\n        }\n\n        setCalculateQuery(query);\n        setCreateRequestQueryDraft(createQueryDraft);\n\n        dispatch(\n            calculateCostRequest({\n                query,\n                partnerId,\n                contractId,\n            }),\n        );\n    };\n\n    const calculatingCostRequest = useSelector(selectCalculateCostRequest);\n    useOnlyChangesEffect(() => {\n        if (calculatingCostRequest.error) {\n            setCreateRequestQueryDraft(null);\n            setCalculateQuery(null);\n        }\n    }, [calculatingCostRequest]);\n\n    const handleCancel = () => {\n        setCalculateQuery(null);\n    };\n\n    const handleConfirm = (data: CreationLaneConfirmDataT) => {\n        if (!contractId) {\n            logWarning('failed to calculating cost, empty contractId');\n            return;\n        }\n        if (!createRequestQueryDraft) {\n            logWarning('failed to calculating cost, empty createRequestQueryDraft');\n            return;\n        }\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleConfirm');\n            return;\n        }\n\n        dispatch(\n            createLaneRequest({\n                query: {\n                    ...createRequestQueryDraft,\n                    totalPrice: data.totalPrice,\n                },\n                partnerId,\n                contractId,\n            }),\n        );\n    };\n\n    const syncShipperContractLaneCreationFormMapStateContextValue = useSyncMapState();\n\n    return (\n        <SyncShipperContractLaneCreationFormMapStateContext.Provider\n            value={syncShipperContractLaneCreationFormMapStateContextValue}\n        >\n            <GoogleMapContextProvider>\n                <PageTitle title={t('page-titles.shipper-lane-creation')} />\n                <HorizontalColumnsLayout\n                    leftColumnTitle={t('shipper-lane-creation.tabs.form')}\n                    leftColumnNode={\n                        <SideBarLayoutContextWrap>\n                            <HeaderSideBarLayout>\n                                <HeaderSideBarContent title={t('shipper-lane-creation.title')} onClose={onClose} />\n                            </HeaderSideBarLayout>\n                            <SideBarLayout>\n                                <ShipperContractLaneCreationForm contractId={contractId} onSubmit={handleSubmit} />\n                            </SideBarLayout>\n                            {!!calculateQuery && (\n                                <>\n                                    <ParanjaSideBarLayout />\n                                    <FooterSideBarLayout isTransparent hasShadow>\n                                        <ShipperContractLaneCreationConfirmForm\n                                            onCancel={handleCancel}\n                                            onConfirm={handleConfirm}\n                                        />\n                                    </FooterSideBarLayout>\n                                </>\n                            )}\n                        </SideBarLayoutContextWrap>\n                    }\n                    rightColumnTitle={t('shipper-lane-creation.tabs.map')}\n                    rightColumnNode={\n                        <ShipperContractLaneCreationMap\n                            isDisabledDraggable={!!calculateQuery}\n                            isAllowShowLoaders={!!calculateQuery}\n                        />\n                    }\n                />\n            </GoogleMapContextProvider>\n        </SyncShipperContractLaneCreationFormMapStateContext.Provider>\n    );\n});\n\nexport default ShipperContractLaneCreationPage;\n","import * as React from 'react';\nimport { BrokerTourShortT } from 'broker-admin/store/broker-tours/models';\nimport { formatTimeInterval } from 'common/utils/time';\nimport LocationCell from 'common/components/Table/cell-renderers/LocationCell/LocationCell';\nimport { CountryCodeT } from 'common/utils/api/models';\nimport LocationLabel from 'common/components/LocationLabel/LocationLabel';\n\ntype PropsT = {\n    brokerTourShort: BrokerTourShortT;\n};\n\nconst DestinationCell: React.FC<PropsT> = React.memo((props) => {\n    const { brokerTourShort } = props;\n\n    const timeWindow = formatTimeInterval(brokerTourShort.destinationFrom, brokerTourShort.destinationTo);\n\n    return (\n        <LocationCell\n            address={\n                <LocationLabel\n                    location={{\n                        zipCode: brokerTourShort.destination?.zipCode,\n                        city: brokerTourShort.destination?.city,\n                        country: brokerTourShort.destination?.country as CountryCodeT,\n                    }}\n                    format=\"zip_city_country\"\n                    allowShowCountryCode\n                />\n            }\n            time={timeWindow}\n        />\n    );\n});\n\nexport default DestinationCell;\n","// extracted by mini-css-extract-plugin\nexport default {\"action--next\":\"ChangeShipmentStatusSidebarFooter__action--next___Q0DCn\",\"tooltip\":\"ChangeShipmentStatusSidebarFooter__tooltip___t4_fh\",\"alert\":\"ChangeShipmentStatusSidebarFooter__alert___s44hR\",\"attach-papers\":\"ChangeShipmentStatusSidebarFooter__attach-papers___RjxeI\",\"fadeIn\":\"ChangeShipmentStatusSidebarFooter__fadeIn___rJxat\",\"blinking\":\"ChangeShipmentStatusSidebarFooter__blinking___AREoj\"};","import * as React from 'react';\nimport EditShipperContractLaneSidebarContent from './EditShipperContractLaneSidebarContent/EditShipperContractLaneSidebarContent';\nimport ShipperContractLaneDetailsSidebarContent from './ShipperContractLaneDetailsSidebarContent/ShipperContractLaneDetailsSidebarContent';\nimport { useDispatch, useSelector } from 'react-redux';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport {\n    selectShipperContractLaneDetailsState,\n    selectUpdateShipperContractLaneRequest,\n} from 'common/store/shipper-contract-lane-details/selectors';\nimport RevokeShipperLaneConfirmationModal, {\n    RevokeShipperLaneConfirmationDataT,\n} from './dialogs/RevokeShipperLaneConfirmationModal/RevokeShipperLaneConfirmationModal';\nimport {\n    fetchShipperContractLaneDetails,\n    revokeShipperContractLane,\n    updateShipperContractLane,\n} from 'common/store/shipper-contract-lane-details/slice';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { shipperContractLaneDetailsRefreshChannel } from 'common/store/shipper-contract-lane-details/channels';\nimport { UpdateShipperContractLaneChangesT } from 'common/store/shipper-contract-lane-details/models';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport { useEffect } from 'react';\nimport { fetchTrailersDict } from 'common/store/trailers-dict/actions';\nimport { fetchShipperContractDetails } from 'common/store/shipper-contract-details/slice';\nimport { selectShipperContractDetailsState } from 'common/store/shipper-contract-details/selectors';\n\ntype PropsT = {\n    partnerId: PartnerIdT;\n    shipperContractId: ShipperContractIdT;\n    shipperContractLaneId: ShipperContractLaneIdT;\n\n    onGoBack?: () => void;\n    onClose?: () => void;\n\n    onOpenUserDetails?: (userId: UserIdT) => void;\n\n    onChangeOriginRadiusKm?: (radiusKm: number) => void;\n    onChangeDestinationRadiusKm?: (radiusKm: number) => void;\n\n    setNeedCloseConfirmation?: (needCloseConfirmation: boolean) => void;\n\n    isReadOnly?: boolean;\n};\n\nconst CommonEditableShipperContractLaneDetailsLayout: React.FC<PropsT> = (props) => {\n    const {\n        partnerId,\n        shipperContractId,\n        shipperContractLaneId,\n\n        onGoBack,\n        onClose,\n\n        onOpenUserDetails,\n\n        onChangeOriginRadiusKm,\n        onChangeDestinationRadiusKm,\n\n        setNeedCloseConfirmation,\n\n        isReadOnly,\n    } = props;\n\n    const dispatch = useDispatch();\n    React.useEffect(() => {\n        dispatch(fetchTrailersDict());\n    }, [dispatch]);\n\n    useEffect(() => {\n        dispatch(\n            fetchShipperContractLaneDetails({\n                partnerId,\n                shipperContractId,\n                laneId: shipperContractLaneId,\n            }),\n        );\n\n        dispatch(\n            fetchShipperContractDetails({\n                partnerId,\n                shipperContractId,\n            }),\n        );\n    }, [dispatch, partnerId, shipperContractId, shipperContractLaneId]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        dispatch(\n            fetchShipperContractLaneDetails({\n                partnerId,\n                shipperContractId,\n                laneId: shipperContractLaneId,\n            }),\n        );\n\n        dispatch(\n            fetchShipperContractDetails({\n                partnerId,\n                shipperContractId,\n            }),\n        );\n    }, [dispatch, partnerId, shipperContractId, shipperContractLaneId]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const refreshPageHandler = React.useCallback(() => {\n        dispatch(\n            fetchShipperContractLaneDetails({\n                partnerId,\n                shipperContractId,\n                laneId: shipperContractLaneId,\n                options: { isForceUpdate: true },\n            }),\n        );\n\n        dispatch(\n            fetchShipperContractDetails({\n                partnerId,\n                shipperContractId,\n            }),\n        );\n    }, [dispatch, partnerId, shipperContractId, shipperContractLaneId]);\n    useChannelSubscribe(shipperContractLaneDetailsRefreshChannel, refreshPageHandler);\n\n    const contractDetailsState = useSelector(\n        selectShipperContractDetailsState(shipperContractId as ShipperContractIdT),\n    );\n\n    const [isActiveEditing, setActiveEditing] = React.useState<boolean>(false);\n\n    const updateRequestStatus = useSelector(selectUpdateShipperContractLaneRequest);\n\n    React.useEffect(() => {\n        if (updateRequestStatus.ok) {\n            setActiveEditing(false);\n        }\n    }, [updateRequestStatus.ok]);\n\n    const { data, fetchRequest } = useSelector(selectShipperContractLaneDetailsState(shipperContractLaneId));\n\n    const handleOpenEdit = () => {\n        setActiveEditing(true);\n    };\n\n    const handleEditShipperContractLane = (detailsChanges: UpdateShipperContractLaneChangesT) => {\n        dispatch(\n            updateShipperContractLane({\n                partnerId,\n                shipperContractId,\n                laneId: shipperContractLaneId,\n                detailsChanges,\n            }),\n        );\n    };\n\n    const revokeShipperLaneConfirmation = useModalDialog<RevokeShipperLaneConfirmationDataT>();\n    const handleRevokeConfirm = (data: RevokeShipperLaneConfirmationDataT): void => {\n        const { shipperContractId, partnerId, laneId } = data;\n\n        dispatch(\n            revokeShipperContractLane({\n                partnerId,\n                shipperContractId,\n                laneId,\n            }),\n        );\n    };\n\n    const handleRevoke = () => {\n        revokeShipperLaneConfirmation.setData({\n            partnerId,\n            shipperContractId,\n            laneId: shipperContractLaneId,\n            laneNumber: data?.tztLaneId || '',\n        });\n    };\n\n    useCloseModalDialogAfterRequest(updateRequestStatus, [revokeShipperLaneConfirmation]);\n\n    return (\n        <>\n            {isActiveEditing ? (\n                <EditShipperContractLaneSidebarContent\n                    data={data}\n                    onClose={onClose}\n                    onGoBack={onGoBack}\n                    onCancel={() => {\n                        setActiveEditing(false);\n                    }}\n                    setNeedCloseConfirmation={setNeedCloseConfirmation}\n                    onOpenUserDetails={onOpenUserDetails}\n                    onChangeOriginRadiusKm={onChangeOriginRadiusKm}\n                    onChangeDestinationRadiusKm={onChangeDestinationRadiusKm}\n                    onEditShipperContractLane={handleEditShipperContractLane}\n                    contractDetails={contractDetailsState?.data || null}\n                />\n            ) : (\n                <ShipperContractLaneDetailsSidebarContent\n                    data={data}\n                    isReadOnly={isReadOnly}\n                    onClose={onClose}\n                    onGoBack={onGoBack}\n                    onRevoke={handleRevoke}\n                    onEdit={handleOpenEdit}\n                    onOpenUserDetails={onOpenUserDetails}\n                />\n            )}\n            {fetchRequest.loading && <LoaderOverlay />}\n            <RevokeShipperLaneConfirmationModal\n                data={revokeShipperLaneConfirmation.data}\n                onCancel={revokeShipperLaneConfirmation.onCancel}\n                onClose={revokeShipperLaneConfirmation.onClose}\n                onConfirm={handleRevokeConfirm}\n                requestStatus={updateRequestStatus}\n            />\n        </>\n    );\n};\n\nexport default CommonEditableShipperContractLaneDetailsLayout;\n","import React, { useState } from 'react';\nimport { checkActiveFeature, ServerFeatureEnum } from 'common/utils/features/server-features-config';\nimport {\n    clearClientFeaturesConfig,\n    ClientFeatureEnum,\n    ClientFeaturesConfigT,\n    getClientFeaturesConfig,\n    saveClientFeaturesConfig,\n} from 'common/utils/features/client-features-config';\n\nexport { ServerFeatureEnum, ClientFeatureEnum };\n\nexport type FeaturesContextValueT = {\n    checkActiveServerFeature?: typeof checkActiveFeature;\n    checkActiveClientFeature?: (feature: ClientFeatureEnum) => boolean;\n    getClientFeatureValue?: <T extends ClientFeatureEnum>(feature: T) => ClientFeaturesConfigT[T] | undefined;\n    setClientFeature?: <T extends ClientFeatureEnum>(feature: T, value: ClientFeaturesConfigT[T]) => void;\n    clearClientFeatures?: () => void;\n};\n\nconst useFeaturesContextValue = (): FeaturesContextValueT => {\n    const [clientFeatures, setClientFeatures] = useState<ClientFeaturesConfigT>(getClientFeaturesConfig());\n\n    return React.useMemo((): FeaturesContextValueT => {\n        return {\n            checkActiveServerFeature: checkActiveFeature,\n            checkActiveClientFeature: (feature) => {\n                return !!clientFeatures[feature];\n            },\n            getClientFeatureValue: (feature) => {\n                return clientFeatures[feature];\n            },\n            setClientFeature: (feature, value) => {\n                saveClientFeaturesConfig({\n                    ...clientFeatures,\n                    [feature]: value,\n                });\n\n                const newClientFeature = getClientFeaturesConfig();\n                setClientFeatures(newClientFeature);\n            },\n            clearClientFeatures: () => {\n                clearClientFeaturesConfig();\n\n                const newClientFeature = getClientFeaturesConfig();\n                setClientFeatures(newClientFeature);\n            },\n        };\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [clientFeatures, checkActiveFeature]);\n};\n\nexport { useFeaturesContextValue };\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    strokeColor: StyleGuideColorsEnum;\n    fillColor: StyleGuideColorsEnum;\n    size: number;\n};\n\nconst EditIcon: React.FC<PropsT> = (props) => {\n    const { strokeColor, fillColor, size } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path fill={fillColor} fillOpacity=\"0.3\" d=\"M4.75 14.56v.69h.69l6.795-6.795-.69-.69z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M16.533 6.28a.748.748 0 000-1.058l-1.755-1.755c-.15-.15-.338-.217-.533-.217s-.382.075-.525.217L12.347 4.84l2.813 2.813 1.373-1.373zM3.25 13.937v2.813h2.813l8.294-8.295-2.812-2.813-8.295 8.296zm2.19 1.313h-.69v-.69l6.795-6.795.69.69L5.44 15.25z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nEditIcon.displayName = 'EditIcon';\n\nconst storyProps: PropsT = {\n    size: 20,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n};\n\nexport { storyProps };\nexport default EditIcon;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nconst CreditLimitExceedAlertContent: React.FC = React.memo(() => {\n    const { t } = useTranslation();\n\n    return <span>{t('common:new-order-offers.credit-limit-exceeded')}</span>;\n});\n\nexport default CreditLimitExceedAlertContent;\n","import React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './FieldGroup.scss';\nimport isNumber from 'lodash/isNumber';\n\nconst cx = classNames.bind(styles);\n\ntype FieldGroupEmptyItemPropsT = {\n    className?: string;\n};\n\nexport const FieldGroupEmptyItem: React.FC<FieldGroupEmptyItemPropsT> = (props) => {\n    const { className } = props;\n\n    return <div className={cs(cx('field-group__empty-item'), className)} />;\n};\n\nexport type PropsT = {\n    className?: string;\n    spaces?: number;\n    isFullWidth?: boolean;\n};\n\nconst FieldGroup: React.FC<PropsT> = (props) => {\n    const { isFullWidth, children, spaces, className } = props;\n\n    return (\n        <div\n            className={cs(\n                cx('field-group', {\n                    [`field-group--spaces-${isNumber(spaces) ? spaces : 3}`]: true,\n                    'field-group--is-full-width': isFullWidth,\n                }),\n                className,\n            )}\n        >\n            {children}\n        </div>\n    );\n};\n\nexport default React.memo(FieldGroup) as typeof FieldGroup;\n","import { RoutePointFieldsEnum, RoutePointFormValuesT } from '../constants';\nimport { InferChannelEventT, ViewEventChannel } from 'common/utils/view-event-channel';\nimport { useCallback } from 'react';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { ReserveT, ReserveTimeWindowT } from 'common/store/order-creation/models';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { ApiLocationT } from 'common/utils/api/models';\nimport { formatLocation } from 'common/utils/formatters';\nimport { createFakeIdFromPoint } from 'common/store/order-creation/utils/create-fake-id-from-point';\nimport { isNonNil } from 'common/utils';\nimport keyBy from 'lodash/keyBy';\nimport isBoolean from 'lodash/isBoolean';\n\nexport const reserveSyncPointsModifyChannel = new ViewEventChannel<{\n    correctedPoints: ReserveT['points'];\n    routeFormValues: Array<RoutePointFormValuesT>;\n    correctedTimeWindowsByPointId?: Record<RoutePointIdT, ReserveTimeWindowT | null>;\n    correctedBrokerWindowByPointId?: Record<RoutePointIdT, boolean | null>;\n}>();\n\nconst convertPointToLocation = (address: ApiLocationT | null): LocationT | null => {\n    if (!address) {\n        return null;\n    }\n\n    return {\n        address: formatLocation(address),\n        utcOffsetMinutes: null,\n        addressComponents: {\n            countryCode: address.country,\n            street1: address?.street1,\n            street2: address?.street2,\n            zipCode: address?.zipCode,\n            city: address?.city,\n        },\n        point: {\n            lat: address.latitude || 0,\n            lng: address.longitude || 0,\n        },\n    };\n};\n\nexport const useSyncPointsChannels = (formikArrayHelpers: {\n    insert: (index: number, value: RoutePointFormValuesT) => void;\n    remove: (index: number) => void;\n}) => {\n    // correction after reserve\n    const syncPointsModifyChannelHandler = useCallback(\n        (event: InferChannelEventT<typeof reserveSyncPointsModifyChannel>) => {\n            const { correctedPoints, routeFormValues, correctedTimeWindowsByPointId, correctedBrokerWindowByPointId } =\n                event;\n\n            const correctedPointsByFakeId = keyBy(event?.correctedPoints, (point) => {\n                return point.addressAlias || '';\n            });\n\n            const clonedRouteFormValues = cloneDeep(routeFormValues);\n\n            const newAliases = correctedPoints?.map((point) => point.addressAlias).filter(isNonNil);\n            const newAliasesSet = new Set(newAliases);\n\n            for (let index = clonedRouteFormValues.length - 1; index >= 0; index -= 1) {\n                const { fakeId } = clonedRouteFormValues[index];\n                if (!newAliasesSet.has(fakeId)) {\n                    formikArrayHelpers.remove(index);\n                    clonedRouteFormValues.splice(index, 1);\n                }\n            }\n\n            let formIndexPointer = 0;\n            correctedPoints?.forEach((point) => {\n                const idxInForm = clonedRouteFormValues.findIndex((values) => {\n                    return values.fakeId === point.addressAlias;\n                });\n\n                if (idxInForm === -1) {\n                    const fakeId = createFakeIdFromPoint(point);\n\n                    const newRoutePoint: RoutePointFormValuesT = {\n                        fakeId,\n                        type: point.type,\n                        location: convertPointToLocation(point.address || null) || null,\n                        timeWindow: point.defaultTimeWindow,\n                        isBrokerTimeWindow: false,\n                    };\n\n                    const eventCorrectedPoint = correctedPointsByFakeId?.[fakeId] || null;\n                    if (eventCorrectedPoint?.replacedCoordinate && newRoutePoint[RoutePointFieldsEnum.location]) {\n                        newRoutePoint[RoutePointFieldsEnum.location].point = {\n                            lng: eventCorrectedPoint.replacedCoordinate.longitude,\n                            lat: eventCorrectedPoint.replacedCoordinate.latitude,\n                        };\n                    }\n\n                    const correctedTimeWindow = correctedTimeWindowsByPointId?.[fakeId] || null;\n                    if (correctedTimeWindow) {\n                        newRoutePoint[RoutePointFieldsEnum.timeWindow] = correctedTimeWindow;\n                    }\n\n                    const correctedBrokerWindow = correctedBrokerWindowByPointId?.[fakeId];\n                    if (isBoolean(correctedBrokerWindow)) {\n                        newRoutePoint[RoutePointFieldsEnum.isBrokerTimeWindow] = correctedBrokerWindow;\n                    }\n\n                    formikArrayHelpers.insert(formIndexPointer, newRoutePoint);\n                }\n\n                formIndexPointer += 1;\n            });\n        },\n        [formikArrayHelpers],\n    );\n\n    useChannelSubscribe(reserveSyncPointsModifyChannel, syncPointsModifyChannelHandler);\n};\n","import {\n    ACTIVATE_RULES_REQUEST,\n    ActivationRulesActionT,\n    CREATE_RULE_REQUEST,\n    CREATE_RULE_REQUEST_BEGIN,\n    CREATE_RULE_REQUEST_ERROR,\n    CREATE_RULE_REQUEST_RESET,\n    CREATE_RULE_REQUEST_SUCCESS,\n    CreateRuleActionT,\n    CreateRuleBeginActionT,\n    CreateRuleErrorActionT,\n    CreateRuleResetActionT,\n    CreateRuleSuccessActionT,\n    DEACTIVATE_RULES_REQUEST,\n    DeactivationRulesActionT,\n    DELETE_RULES_REQUEST,\n    DELETE_RULES_REQUEST_BEGIN,\n    DELETE_RULES_REQUEST_ERROR,\n    DELETE_RULES_REQUEST_SUCCESS,\n    DeleteRulesActionT,\n    DeleteRulesBeginActionT,\n    DeleteRulesErrorActionT,\n    DeleteRulesSuccessActionT,\n    PREVIEW_RULE_REQUEST,\n    PREVIEW_RULE_REQUEST_BEGIN,\n    PREVIEW_RULE_REQUEST_ERROR,\n    PREVIEW_RULE_REQUEST_SUCCESS,\n    PreviewRuleActionT,\n    PreviewRuleBeginActionT,\n    PreviewRuleErrorActionT,\n    PreviewRuleSuccessActionT,\n    FETCH_RULE_DETAILS_REQUEST,\n    FETCH_RULE_DETAILS_REQUEST_BEGIN,\n    FETCH_RULE_DETAILS_REQUEST_ERROR,\n    FETCH_RULE_DETAILS_REQUEST_SUCCESS,\n    FETCH_RULES_PAGE_REQUEST,\n    FETCH_RULES_PAGE_REQUEST_BEGIN,\n    FETCH_RULES_PAGE_REQUEST_ERROR,\n    FETCH_RULES_PAGE_REQUEST_SUCCESS,\n    FetchRuleDetailsActionT,\n    FetchRuleDetailsBeginActionT,\n    FetchRuleDetailsErrorActionT,\n    FetchRuleDetailsSuccessActionT,\n    FetchRulesPageActionT,\n    FetchRulesPageBeginActionT,\n    FetchRulesPageErrorActionT,\n    FetchRulesPageSuccessActionT,\n    RESET_RULE_PAGES,\n    ResetRulePagesActionT,\n    UPDATE_RULE_REQUEST,\n    UPDATE_RULE_REQUEST_BEGIN,\n    UPDATE_RULE_REQUEST_ERROR,\n    UPDATE_RULE_REQUEST_RESET,\n    UPDATE_RULE_REQUEST_SUCCESS,\n    UpdateRuleActionT,\n    UpdateRuleBeginActionT,\n    UpdateRuleErrorActionT,\n    UpdateRuleResetActionT,\n    UpdateRuleSuccessActionT,\n    PreviewRuleResetActionT,\n    PREVIEW_RULE_REQUEST_RESET,\n} from './types';\nimport {\n    FetchRulePageQueryT,\n    RuleDetailsT,\n    RuleDraftT,\n    RulePreviewRequestT,\n    RulePreviewResponseT,\n    RuleT,\n} from './models';\nimport { PageResponseT } from 'common/utils/pagination/models';\n\nexport const fetchRuleDetails = (ruleId: RuleIdT): FetchRuleDetailsActionT => ({\n    type: FETCH_RULE_DETAILS_REQUEST,\n    ruleId,\n});\n\nexport const fetchRuleDetailsBegin = (ruleId: RuleIdT): FetchRuleDetailsBeginActionT => ({\n    type: FETCH_RULE_DETAILS_REQUEST_BEGIN,\n    ruleId,\n});\n\nexport const fetchRuleDetailsSuccess = (\n    ruleId: RuleIdT,\n    ruleDetails: RuleDetailsT | null,\n): FetchRuleDetailsSuccessActionT => ({\n    type: FETCH_RULE_DETAILS_REQUEST_SUCCESS,\n    ruleId,\n    ruleDetails,\n});\n\nexport const fetchRuleDetailsError = (ruleId: RuleIdT, error: Error): FetchRuleDetailsErrorActionT => ({\n    type: FETCH_RULE_DETAILS_REQUEST_ERROR,\n    ruleId,\n    error,\n});\n\nexport const fetchRulesPage = (\n    pageNumber: PageNumberT,\n    query: FetchRulePageQueryT,\n    options?: FetchOptionsT,\n): FetchRulesPageActionT => ({\n    type: FETCH_RULES_PAGE_REQUEST,\n    pageNumber,\n    query,\n    options,\n});\n\nexport const fetchRulesPageBegin = (\n    query: FetchRulePageQueryT,\n    pageNumber: PageNumberT,\n): FetchRulesPageBeginActionT => ({\n    type: FETCH_RULES_PAGE_REQUEST_BEGIN,\n    query,\n    pageNumber,\n});\n\nexport const fetchRulesPageSuccess = (\n    query: FetchRulePageQueryT,\n    pageNumber: PageNumberT,\n    pageResponse: PageResponseT<RuleT> | null,\n): FetchRulesPageSuccessActionT => ({\n    type: FETCH_RULES_PAGE_REQUEST_SUCCESS,\n    query,\n    pageResponse,\n    pageNumber,\n});\n\nexport const fetchRulesPageError = (\n    query: FetchRulePageQueryT,\n    pageNumber: PageNumberT,\n    error: Error,\n): FetchRulesPageErrorActionT => ({\n    type: FETCH_RULES_PAGE_REQUEST_ERROR,\n    query,\n    error,\n    pageNumber,\n});\n\nexport const updateRules = (ruleId: RuleIdT, ruleDraft: RuleDraftT): UpdateRuleActionT => ({\n    type: UPDATE_RULE_REQUEST,\n    ruleId,\n    ruleDraft,\n});\n\nexport const updateRuleBegin = (): UpdateRuleBeginActionT => ({\n    type: UPDATE_RULE_REQUEST_BEGIN,\n});\n\nexport const updateRuleSuccess = (): UpdateRuleSuccessActionT => ({\n    type: UPDATE_RULE_REQUEST_SUCCESS,\n});\n\nexport const updateRuleError = (error: Error): UpdateRuleErrorActionT => ({\n    type: UPDATE_RULE_REQUEST_ERROR,\n    error,\n});\n\nexport const createRule = (ruleDraft: RuleDraftT): CreateRuleActionT => ({\n    type: CREATE_RULE_REQUEST,\n    ruleDraft,\n});\n\nexport const createRuleBegin = (): CreateRuleBeginActionT => ({\n    type: CREATE_RULE_REQUEST_BEGIN,\n});\n\nexport const createRuleSuccess = (): CreateRuleSuccessActionT => ({\n    type: CREATE_RULE_REQUEST_SUCCESS,\n});\n\nexport const createRuleError = (error: Error): CreateRuleErrorActionT => ({\n    type: CREATE_RULE_REQUEST_ERROR,\n    error,\n});\n\nexport const deleteRules = (ids: Array<RuleIdT>): DeleteRulesActionT => ({\n    type: DELETE_RULES_REQUEST,\n    ids,\n});\n\nexport const deleteRulesBegin = (): DeleteRulesBeginActionT => ({\n    type: DELETE_RULES_REQUEST_BEGIN,\n});\n\nexport const deleteRulesSuccess = (): DeleteRulesSuccessActionT => ({\n    type: DELETE_RULES_REQUEST_SUCCESS,\n});\n\nexport const deleteRulesError = (error: Error): DeleteRulesErrorActionT => ({\n    type: DELETE_RULES_REQUEST_ERROR,\n    error,\n});\n\nexport const previewRule = (data: RulePreviewRequestT): PreviewRuleActionT => ({\n    type: PREVIEW_RULE_REQUEST,\n    data,\n});\n\nexport const previewRuleBegin = (): PreviewRuleBeginActionT => ({\n    type: PREVIEW_RULE_REQUEST_BEGIN,\n});\n\nexport const previewRuleSuccess = (data: RulePreviewResponseT | null): PreviewRuleSuccessActionT => ({\n    type: PREVIEW_RULE_REQUEST_SUCCESS,\n    data,\n});\n\nexport const previewRuleError = (error: Error): PreviewRuleErrorActionT => ({\n    type: PREVIEW_RULE_REQUEST_ERROR,\n    error,\n});\n\nexport const previewRuleReset = (): PreviewRuleResetActionT => ({\n    type: PREVIEW_RULE_REQUEST_RESET,\n});\n\nexport const activateRules = (ids: Array<RuleIdT>): ActivationRulesActionT => ({\n    type: ACTIVATE_RULES_REQUEST,\n    ids,\n});\n\nexport const deactivateRules = (ids: Array<RuleIdT>): DeactivationRulesActionT => ({\n    type: DEACTIVATE_RULES_REQUEST,\n    ids,\n});\n\nexport const resetRulePages = (mutationListOptions: MutationListOptionsT): ResetRulePagesActionT => ({\n    type: RESET_RULE_PAGES,\n    mutationListOptions,\n});\n\nexport const resetUpdateRuleRequest = (): UpdateRuleResetActionT => ({\n    type: UPDATE_RULE_REQUEST_RESET,\n});\n\nexport const resetCreateRuleRequest = (): CreateRuleResetActionT => ({\n    type: CREATE_RULE_REQUEST_RESET,\n});\n","import { put, select, takeEvery, takeLeading } from 'redux-saga/effects';\nimport { FETCH_COMPANY_REQUEST, UPDATE_COMPANY_REQUEST, UpdateCompanyActionT, FetchCompanyActionT } from './types';\nimport {\n    fetchCompanyBegin,\n    fetchCompanyError,\n    fetchCompanySuccess,\n    updateCompanyBegin,\n    updateCompanyError,\n    updateCompanySuccess,\n} from './actions';\n\nimport { logWarning } from 'common/utils/logger';\nimport { selectCurrentCompanyRequestStatus } from 'common/store/company/selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport { companyRefreshChannel } from 'common/store/company/channels';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAlertTypeEnum, CommonAnyAlert } from 'common/components/toasts/AlertToastsManager/models';\n\nfunction* fetchCompanySaga(action: FetchCompanyActionT): WrapGeneratorT<void> {\n    const { options } = action;\n\n    const requestStatus: ReturnType<typeof selectCurrentCompanyRequestStatus> = yield select(\n        selectCurrentCompanyRequestStatus,\n    );\n    const isNeedRequest = checkNeedRequest(requestStatus, options);\n    if (!isNeedRequest) {\n        return;\n    }\n\n    yield put(fetchCompanyBegin());\n    const [error, currentCompany]: ReturnApiT<typeof commonTranziitApi.fetchCurrentCompany> =\n        yield commonTranziitApi.fetchCurrentCompany();\n\n    if (!currentCompany) {\n        logWarning('fetched empty company', { error });\n    }\n\n    if (error) {\n        yield put(fetchCompanyError(error));\n    } else {\n        yield put(fetchCompanySuccess(currentCompany));\n    }\n}\n\nfunction* updateCompanySaga(action: UpdateCompanyActionT): WrapGeneratorT<void> {\n    const { companyChanges } = action;\n\n    yield put(updateCompanyBegin());\n\n    const [error]: ReturnApiT<typeof commonTranziitApi.patchCompany> = yield commonTranziitApi.patchCompany(\n        companyChanges,\n    );\n    if (error) {\n        yield put(updateCompanyError(error));\n        return;\n    }\n\n    yield put(updateCompanySuccess(null));\n    yield put(\n        addAlert(\n            new CommonAnyAlert({\n                type: CommonAlertTypeEnum.profileUpdated,\n                data: {},\n            }),\n        ),\n    );\n\n    companyRefreshChannel.emit({});\n}\n\nfunction* userSaga(): WrapGeneratorT<void> {\n    yield takeLeading(FETCH_COMPANY_REQUEST, fetchCompanySaga);\n    yield takeEvery(UPDATE_COMPANY_REQUEST, updateCompanySaga);\n}\n\nexport default userSaga;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst PaperIcon: React.FC<PropsT> = (props) => {\n    const { size, fillColor, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path fill={fillColor} d=\"M5 3v14h10V7l-4-4z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M7 13h6v1.5H7V13zm0-3h6v1.5H7V10zm4.5-7.5h-6C4.675 2.5 4 3.175 4 4v12c0 .825.668 1.5 1.492 1.5H14.5c.825 0 1.5-.675 1.5-1.5V7l-4.5-4.5zm3 13.5h-9V4h5.25v3.75h3.75V16z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nPaperIcon.displayName = 'PaperIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default PaperIcon;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { FETCH_RFQS_PAGE_REQUEST, FetchRFQsPageActionT } from './types';\nimport { fetchRFQsPageBegin, fetchRFQsPageError, fetchRFQsPageSuccess, resetRFQs } from './actions';\nimport { selectRFQsPages, selectRFQsQuery } from './selectors';\n\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport shipperTranziitApi from 'shipper/utils/api/shipper-tranziit/api';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { checkIsSameQuery, checkShouldEmitChangePage } from 'common/utils/pagination/utils';\nimport { rfqsPaginationChannel } from 'common/store/rfqs/channels';\nimport { CompanyTypeEnum } from 'common/constants';\n\nconst getFetchRFQsSaga = (companyType: CompanyTypeEnum) => {\n    return function* fetchRFQsSaga(action: FetchRFQsPageActionT): WrapGeneratorT<void> {\n        const { pageNumber, query: rawQuery, companyId } = action;\n\n        const query: typeof rawQuery = {\n            ...rawQuery,\n        };\n\n        const prevQuery: ReReturnT<typeof selectRFQsQuery> = yield select(selectRFQsQuery(companyId));\n        const pages: ReReturnT<typeof selectRFQsPages> = yield select(selectRFQsPages(companyId));\n        const isSameQuery = checkIsSameQuery(query, prevQuery);\n        const isNeedRequest = checkNeedRequest(pages[pageNumber]?.requestStatus);\n        if (isSameQuery && !isNeedRequest) {\n            return;\n        }\n        if (!isSameQuery) {\n            yield put(resetRFQs(companyId, { savingPageNumber: pageNumber }));\n        }\n\n        yield put(fetchRFQsPageBegin(query, pageNumber, companyId));\n\n        let result: ReturnApiT<typeof shipperTranziitApi.fetchRFQsPage | typeof brokerTranziitApi.fetchRFQsPage>;\n        if (companyType === CompanyTypeEnum.broker) {\n            result = yield brokerTranziitApi.fetchRFQsPage({\n                ...query,\n                page: pageNumber,\n            });\n        } else {\n            result = yield shipperTranziitApi.fetchRFQsPage({\n                ...query,\n                page: pageNumber,\n            });\n        }\n\n        const [error, response] = result;\n\n        if (error) {\n            yield put(fetchRFQsPageError(query, pageNumber, error, companyId));\n            return;\n        }\n\n        yield put(fetchRFQsPageSuccess(query, pageNumber, response, companyId));\n\n        checkShouldEmitChangePage(pageNumber, response, rfqsPaginationChannel);\n    };\n};\n\nfunction* rfqsSaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_RFQS_PAGE_REQUEST, getFetchRFQsSaga(companyType));\n}\n\nexport default rfqsSaga;\n","import { BrokerAssetsSearchRequestInvalidReasonT } from 'common/utils/assignment';\n\nexport enum FieldsEnum {\n    trailerId = 'trailerId',\n    truckId = 'truckId',\n    locationToDropTrailer = 'locationToDropTrailer',\n    locationToDropTruck = 'locationToDropTruck',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.trailerId]: TrailerIdT | null;\n    [FieldsEnum.truckId]: TruckIdT | null;\n\n    [FieldsEnum.locationToDropTrailer]: LocationT | null;\n    [FieldsEnum.locationToDropTruck]: LocationT | null;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\nexport type AsyncFormErrorsT = Partial<Record<FieldsEnum, string>>;\n\nexport const reasonI18nMap: Record<BrokerAssetsSearchRequestInvalidReasonT, string> = {\n    OTHER: 'assignment.validation.reasons.OTHER',\n    CARRIER_NOT_IN_LIST: 'assignment.validation.reasons.CARRIER_NOT_IN_LIST',\n    CARRIER_DOESNT_HAVE_REQUIRED_CERTIFICATES:\n        'assignment.validation.reasons.CARRIER_DOESNT_HAVE_REQUIRED_CERTIFICATES',\n    COMPANY_CANT_OPERATE: 'assignment.validation.reasons.COMPANY_CANT_OPERATE',\n    INCAPABLE_EMISSION_STANDARD: 'assignment.validation.reasons.INCAPABLE_EMISSION_STANDARD',\n    CANT_BE_ON_TIME_FOR_NEXT_TOUR: 'assignment.validation.reasons.CANT_BE_ON_TIME_FOR_NEXT_TOUR',\n    NO_AVAILABLE_HOOKS: 'assignment.validation.reasons.NO_AVAILABLE_HOOKS',\n    DIFFERENT_CARRIERS: 'assignment.validation.reasons.DIFFERENT_CARRIERS',\n    INCAPABLE_TRAILER_TYPE: 'assignment.validation.reasons.INCAPABLE_TRAILER_TYPE',\n    ASSET_IS_NOT_CONTRACTED: 'assignment.validation.reasons.ASSET_IS_NOT_CONTRACTED',\n    ASSET_CONTRACTED_INACTIVE: 'assignment.validation.reasons.ASSET_CONTRACTED_INACTIVE',\n    PLATE_NUMBER_DO_NOT_MATCH: 'assignment.validation.reasons.PLATE_NUMBER_DO_NOT_MATCH',\n    ASSET_BUSY_ON_TOUR_DATES: 'assignment.validation.reasons.ASSET_BUSY_ON_TOUR_DATES',\n};\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst TeamDriveIcon: React.FC<PropsT> = (props) => {\n    const { size, fillColor, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={fillColor}\n                    d=\"M7.75 8.5a1.125 1.125 0 100-2.25 1.125 1.125 0 000 2.25zm-3.172 5.25h3.21c.007-.045.09-.435.217-.742-.083 0-.173-.008-.255-.008-1.147 0-2.438.375-3.172.75z\"\n                />\n                <path\n                    fill={strokeColor}\n                    d=\"M7.75 10a2.628 2.628 0 002.625-2.625A2.628 2.628 0 007.75 4.75a2.628 2.628 0 00-2.625 2.625A2.628 2.628 0 007.75 10zm0-3.75a1.124 1.124 0 110 2.25 1.123 1.123 0 01-1.125-1.125c0-.622.503-1.125 1.125-1.125zm.037 7.5h-3.21C5.32 13.375 6.604 13 7.75 13c.082 0 .173.008.255.008.255-.548.697-.998 1.23-1.358a8.794 8.794 0 00-1.485-.15c-1.755 0-5.25.877-5.25 2.625v1.125h5.25v-1.125a2.1 2.1 0 01.037-.375zm5.588-1.875c-1.38 0-4.125.758-4.125 2.25v1.125h8.25v-1.125c0-1.492-2.745-2.25-4.125-2.25zm.908-1.365c.57-.322.967-.93.967-1.635a1.876 1.876 0 00-3.75 0 1.885 1.885 0 001.875 1.875c.33 0 .637-.09.908-.24z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nTeamDriveIcon.displayName = 'TeamDriveIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default TeamDriveIcon;\n\nexport const TeamDriveIconProps = {\n    getCreateOrder: (): PropsT => {\n        return {\n            size: DEFAULT_ICON_SIZE,\n            fillColor: StyleGuideColorsEnum.transparent,\n            strokeColor: StyleGuideColorsEnum.orange,\n        };\n    },\n};\n","import {\n    CHECK_GPS_STATUS_REQUEST_BEGIN,\n    CHECK_GPS_STATUS_REQUEST_ERROR,\n    CHECK_GPS_STATUS_REQUEST_SUCCESS,\n    GPSTrackingStatusActionT,\n    GPSTrackingStatusStateT,\n    RESET,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\nimport { checkIsSameQuery } from 'common/utils/pagination/utils';\n\nconst initialState: GPSTrackingStatusStateT = {\n    query: null,\n    requestStatus: requestStatus.initial,\n    data: null,\n};\n\nexport default (\n    state = initialState,\n    action: GPSTrackingStatusActionT | DestroySessionActionT,\n): GPSTrackingStatusStateT => {\n    switch (action.type) {\n        case CHECK_GPS_STATUS_REQUEST_BEGIN: {\n            const { query } = action;\n\n            return {\n                ...state,\n                query,\n                requestStatus: requestStatus.loading,\n            };\n        }\n\n        case CHECK_GPS_STATUS_REQUEST_SUCCESS: {\n            const { query, data } = action;\n\n            if (!checkIsSameQuery(query, state.query)) {\n                return state;\n            }\n\n            return {\n                ...state,\n                data,\n                requestStatus: requestStatus.ok,\n            };\n        }\n\n        case CHECK_GPS_STATUS_REQUEST_ERROR: {\n            const { error, query } = action;\n\n            if (!checkIsSameQuery(query, state.query)) {\n                return state;\n            }\n\n            return {\n                ...state,\n                data: null,\n                requestStatus: requestStatus.setError(error),\n            };\n        }\n\n        case DESTROY_SESSION:\n        case RESET: {\n            return {\n                ...initialState,\n            };\n        }\n\n        default:\n            return state;\n    }\n};\n","import * as React from 'react';\nimport { BrokerOrderShortT } from 'broker-admin/store/broker-orders/models';\nimport { formatTimeInterval } from 'common/utils/time';\nimport LocationCell from 'common/components/Table/cell-renderers/LocationCell/LocationCell';\nimport { CountryCodeT } from 'common/utils/api/models';\nimport LocationLabel from 'common/components/LocationLabel/LocationLabel';\n\ntype PropsT = {\n    brokerOrderShort: BrokerOrderShortT;\n};\n\nconst DropOffCell: React.FC<PropsT> = React.memo((props) => {\n    const { brokerOrderShort } = props;\n\n    const timeWindow = formatTimeInterval(brokerOrderShort.dropOffDateFrom, brokerOrderShort.dropOffDateTo);\n\n    return (\n        <LocationCell\n            address={\n                <LocationLabel\n                    location={{\n                        zipCode: brokerOrderShort.zipCodeTo,\n                        city: brokerOrderShort.cityTo,\n                        country: brokerOrderShort.countryCodeTo as CountryCodeT,\n                    }}\n                    format=\"zip_city_country\"\n                    allowShowCountryCode\n                />\n            }\n            time={timeWindow}\n        />\n    );\n});\n\nexport default DropOffCell;\n","// extracted by mini-css-extract-plugin\nexport default {\"version\":\"DocumentVersion__version___uoWmG\",\"status\":\"DocumentVersion__status___BqvNB\",\"header\":\"DocumentVersion__header___fhGoZ\",\"header__title\":\"DocumentVersion__header__title___F4U_A\",\"fadeIn\":\"DocumentVersion__fadeIn___EBbFb\",\"blinking\":\"DocumentVersion__blinking___wJojo\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './CheckboxCell.scss';\nimport Checkbox from 'design-system/components/Checkbox/Checkbox';\n\ntype PropsT<TableRowT> = {\n    row: TableRowT;\n    selectedRowsSet: Set<TableRowT>;\n    onChange: (selectedRows: Set<TableRowT>) => void;\n    className?: string;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\nconst CheckboxCell = <TableRowT extends {}>(props: PropsT<TableRowT>) => {\n    const { row, selectedRowsSet, onChange, className } = props;\n\n    return (\n        <span onClick={(event) => event.stopPropagation()} className={className}>\n            <Checkbox\n                testSelector=\"row\"\n                checked={selectedRowsSet?.has(row)}\n                onChange={() => {\n                    const newSelectedRowsSet = new Set(selectedRowsSet || []);\n\n                    if (selectedRowsSet?.has(row)) {\n                        newSelectedRowsSet.delete(row);\n                    } else {\n                        newSelectedRowsSet.add(row);\n                    }\n\n                    onChange(newSelectedRowsSet);\n                }}\n                label={null}\n            />\n        </span>\n    );\n};\n\nexport default React.memo(CheckboxCell) as typeof CheckboxCell;\n","import { ApiTourStatusT, TourStatusEnum } from 'common/utils/api/models';\n\nexport const hideLoaderStatusSet = new Set<ApiTourStatusT | null | undefined>([\n    TourStatusEnum.canceled,\n    TourStatusEnum.finished,\n]);\n","import { ApiEditOrderContextT, ApiTourUpdateStopDataT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { ApiLocationT } from 'common/utils/api/models';\n\nexport enum RoutePointTypeEnum {\n    pickupOrDelivery = 'pickup-or-delivery',\n    dropAndHook = 'drop-and-hook',\n    driveThrough = 'drive-through',\n    ferryOnboard = 'ferry-onboard',\n    ferryDisembark = 'ferry-disembark',\n    unknown = 'unknown', // pickup truck, trailer ....\n}\n\nexport type RoutePointTimeWindowT = {\n    start: ISODateTimeT;\n    end: ISODateTimeT;\n};\n\nexport type EditOrderContextT = ApiEditOrderContextT & {\n    expireTime: number | null;\n};\n\nexport type EditOrderQueryModifyChannelEventT = {\n    correctedStops?: Array<ApiTourUpdateStopDataT>;\n    addedStopAliases?: Array<ContextRoutePointAliasT>;\n    deletedStopAliases?: Array<ContextRoutePointAliasT>;\n    orderStopAliases?: Array<ContextRoutePointAliasT>;\n};\n\nexport type FakeSessionIdT = string;\nexport type ContextRoutePointAliasT = string;\n\nexport type ChangeContextPayloadT =\n    | {\n          type: 'change-route-point-location';\n          beforeContextRoutePointAliases: Array<ContextRoutePointAliasT>;\n          contextRoutePointAlias: ContextRoutePointAliasT;\n          address: ApiLocationT;\n          routePointType: RoutePointTypeEnum;\n      }\n    | {\n          type: 'change-route-point-time-window';\n          beforeContextRoutePointAliases: Array<ContextRoutePointAliasT>;\n          contextRoutePointAlias: ContextRoutePointAliasT;\n          timeWindow: RoutePointTimeWindowT;\n          address: ApiLocationT;\n          routePointType: RoutePointTypeEnum;\n      }\n    | {\n          type: 'delete-route-point';\n          contextRoutePointAlias: ContextRoutePointAliasT;\n      };\n\nexport type ApplyContextParamsT = {\n    updateShipperPrice?: boolean;\n};\n","import { FetchError } from './errors/fetch-error';\nimport { ApiRequestError, ApiRequestErrorTypeEnum } from './errors/api-request-error';\nimport { stringifyQuery } from '../stringify-query';\nimport { FetchConfigT } from './do-fetch-models';\nimport { logWarning } from 'common/utils/logger';\n\nconst tryParseJson = <D>(text: string, logAdditionalData: object): D | string => {\n    try {\n        return JSON.parse(text);\n    } catch (error) {\n        logWarning(`Couldn't parse JSON: \"${text}\". Error: \"${error.message}\"`, { text, ...logAdditionalData });\n        return text;\n    }\n};\n\nconst parseResponseContentType = (responseContentType: string | null): FetchConfigT['expectedResponseContentType'] => {\n    if (responseContentType?.includes('json')) {\n        return 'json';\n    }\n\n    if (\n        responseContentType?.includes('pdf') ||\n        responseContentType?.includes('image') ||\n        responseContentType?.includes('xml')\n    ) {\n        return 'blob';\n    }\n\n    return 'unknown';\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst doFetch = async <D, E>(config: FetchConfigT): Promise<[ApiRequestError | null, D | null, Response?]> => {\n    try {\n        const controller = new AbortController();\n        const timeoutId = setTimeout(() => controller.abort(), config.timeout);\n\n        const options: RequestInit = {\n            method: config.method,\n            headers: config.headers,\n            signal: controller.signal,\n        };\n\n        if (config.data instanceof FormData) {\n            // browser automatically add this header with boundary\n            // @ts-ignore\n            delete options.headers['Content-Type'];\n        }\n\n        if (config.data) {\n            if (config.data instanceof FormData) {\n                options.body = config.data;\n            } else if (config.isRawData) {\n                options.body = config.data;\n            } else {\n                options.body = JSON.stringify(config.data);\n            }\n        }\n\n        let url = `${config.basepath}${config.path}`;\n        if (config.query) {\n            url = `${url}${stringifyQuery(config.query)}`;\n        }\n\n        const response = await fetch(url, options);\n        clearTimeout(timeoutId);\n\n        if (response.status < 200 || response.status >= 400) {\n            const rawResponseText = await response.text();\n\n            const fetchError = new FetchError({\n                message: `${response.status} status code`,\n                httpStatusCode: response.status,\n                requestConfig: config,\n                response: tryParseJson<D>(rawResponseText, {\n                    reason: 'not 200 status code',\n                    url,\n                    method: config.method,\n                    query: config.query,\n                    expectedResponseContentType: config.expectedResponseContentType,\n                }),\n            });\n\n            const apiError = new ApiRequestError(fetchError, ApiRequestErrorTypeEnum.badRequest);\n            return [apiError, null, response];\n        }\n\n        const rawResponseContentType = response.headers.get('content-type');\n        const responseContentType = parseResponseContentType(rawResponseContentType);\n        if (\n            config.expectedResponseContentType !== responseContentType &&\n            config.expectedResponseContentType !== 'unknown'\n        ) {\n            const fetchError = new FetchError({\n                message: `Wrong response type: ${config.expectedResponseContentType} !== ${responseContentType}`,\n                httpStatusCode: response.status,\n                requestConfig: config,\n                response: '',\n            });\n\n            const apiError = new ApiRequestError(fetchError, ApiRequestErrorTypeEnum.badRequest);\n            return [apiError, null, response];\n        }\n\n        switch (config.expectedResponseContentType) {\n            case 'blob': {\n                const rawResponseBlob = await response.blob();\n                // @ts-ignore\n                return [null, rawResponseBlob, response];\n                break;\n            }\n            case 'json': {\n                const rawResponseText = await response.text();\n                const parsedResponse = tryParseJson<D>(rawResponseText, {\n                    reason: 'try parse response',\n                    url,\n                    method: config.method,\n                    query: config.query,\n                    expectedResponseContentType: config.expectedResponseContentType,\n                });\n                // @ts-ignore\n                return [null, parsedResponse, response];\n            }\n            case 'unknown':\n            default: {\n                const rawResponseText = await response.text();\n                // @ts-ignore\n                return [null, rawResponseText, response];\n                break;\n            }\n        }\n    } catch (error) {\n        const errorMessage = error.message || 'Something went wrong';\n\n        if (errorMessage.toLowerCase().includes('aborted')) {\n            const fetchError = new FetchError({\n                message: `Timeout error: ${errorMessage}`,\n                httpStatusCode: 0,\n                requestConfig: config,\n                response: {},\n            });\n            const apiError = new ApiRequestError(fetchError, ApiRequestErrorTypeEnum.timeoutError);\n            return [apiError, null];\n        }\n\n        if (errorMessage.toLowerCase().includes('network') || errorMessage.toLowerCase().includes('failed to fetch')) {\n            const fetchError = new FetchError({\n                message: `Network error: ${errorMessage}`,\n                httpStatusCode: 0,\n                requestConfig: config,\n                response: {},\n            });\n            const apiError = new ApiRequestError(fetchError, ApiRequestErrorTypeEnum.networkError);\n            return [apiError, null];\n        }\n\n        const fetchError = new FetchError({\n            message: errorMessage,\n            httpStatusCode: 0,\n            requestConfig: config,\n            response: {},\n        });\n        const apiError = new ApiRequestError(fetchError, ApiRequestErrorTypeEnum.badRequest);\n        return [apiError, null];\n    }\n};\n\nexport default doFetch;\n","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\n\ntype PropsT = {\n    shipmentNumber: React.ReactNode;\n};\n\nconst CarrierNoShowForShipmentCard: React.FC<PropsT> = React.memo((props) => {\n    const { shipmentNumber } = props;\n\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey=\"common:notifications.carrier-no-show-for-shipment\"\n                components={{\n                    shipmentNumber: <NotificationEntityLabel isBold isUnderline text={shipmentNumber} />,\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default CarrierNoShowForShipmentCard;\n","export enum FieldsEnum {\n    waypoints = 'waypoints',\n}\n\nexport enum WaypointsFieldEnum {\n    timeWindow = 'timeWindow',\n}\n\nexport type WaypointsFormValuesT = {\n    timeWindow: TimeWindowT | null;\n};\n\nexport type FormValuesT = {\n    waypoints: Array<WaypointsFormValuesT>;\n};\n\nexport type WaypointsFormErrorsT = Partial<{\n    timeWindow: FormErrorMessageT;\n}>;\n\nexport type FormErrorsT = Partial<{\n    waypoints: Array<WaypointsFormErrorsT>;\n}>;\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"PartnersSuggest__option___TbWk_\",\"fadeIn\":\"PartnersSuggest__fadeIn___e4R2K\",\"blinking\":\"PartnersSuggest__blinking___bueNH\"};","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { updateBegin, updateError, updateSuccess } from './actions';\nimport {\n    CANCEL_SPOT_REQUEST,\n    CANCEL_SPOT_REQUEST_BY_TOUR,\n    CancelSpotRequestActionT,\n    CancelSpotRequestByTourActionT,\n    SEND_TO_SPOT_BY_TOUR,\n    SendToSpotByTourActionT,\n} from './types';\nimport { selectSpotUpdateRequestStatus } from './selectors';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { fetchBrokerOrderDetails } from 'broker-admin/store/broker-order-details/slice';\nimport spotBrokerTranziitApi from 'broker-admin/utils/api/spot-broker-tranziit/api';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { BrokerAlertTypeEnum, BrokerAnyAlert } from 'broker-admin/components/toasts/models';\nimport { selectSpotRequestDetails } from 'broker-admin/store/spot-request-details/selectors';\nimport { fetchSpotRequestDetails } from 'broker-admin/store/spot-request-details/actions';\nimport { stateMachineRefreshChannel } from 'common/store/state-machine/channels';\nimport { spotRequestsRefreshChannel } from 'broker-admin/store/spot-requests/channels';\nimport { spotRequestsStatsRefreshChannel } from 'broker-admin/store/spot-requests-stats/channels';\nimport { updateSpotRefreshChannel } from 'broker-admin/store/spot/channels';\n\nfunction* refreshBrokerOrderDetails(brokerOrderId: BrokerOrderIdT): WrapGeneratorT<void> {\n    yield put(fetchBrokerOrderDetails({ id: brokerOrderId, options: { isForceUpdate: true } }));\n}\n\nfunction* refreshSpotRequestDetails(spotRequestId: SpotRequestIdT): WrapGeneratorT<void> {\n    yield put(fetchSpotRequestDetails(spotRequestId, { isForceUpdate: true }));\n}\n\nfunction* cancelSpotByTour(tourIds: Array<TourIdT>): WrapGeneratorT<boolean> {\n    yield put(updateBegin());\n\n    let error: Error | null = null;\n    for (const tourId of tourIds) {\n        const response: ReturnApiT<typeof spotBrokerTranziitApi.cancelSpotRequestByTour> =\n            yield spotBrokerTranziitApi.cancelSpotRequestByTour(tourId);\n\n        const responseError = response[0] || null;\n        if (responseError) {\n            error = responseError;\n            break;\n        }\n    }\n\n    if (error) {\n        yield put(updateError(error));\n        return false;\n    }\n\n    yield put(updateSuccess());\n    return true;\n}\n\nfunction* cancelSpotById(spotRequestId: SpotRequestIdT): WrapGeneratorT<boolean> {\n    yield put(updateBegin());\n\n    const [error]: ReturnApiT<typeof spotBrokerTranziitApi.cancelSpotRequest> =\n        yield spotBrokerTranziitApi.cancelSpotRequest(spotRequestId);\n\n    if (error) {\n        yield put(updateError(error));\n        return false;\n    }\n\n    yield put(updateSuccess());\n    return true;\n}\n\nfunction* cancelSpotSaga(action: CancelSpotRequestActionT): WrapGeneratorT<void> {\n    const { spotRequestId } = action;\n\n    const requestStatus: ReturnType<typeof selectSpotUpdateRequestStatus> = yield select(selectSpotUpdateRequestStatus);\n    if (requestStatus.loading) {\n        return;\n    }\n\n    const isSpotRequestCancelled: ReReturnT<typeof cancelSpotById> = yield cancelSpotById(spotRequestId);\n    if (!isSpotRequestCancelled) {\n        return;\n    }\n\n    yield put(\n        addAlert(\n            new BrokerAnyAlert({\n                type: BrokerAlertTypeEnum.spotRequestCancelled,\n                data: {},\n            }),\n        ),\n    );\n\n    const { details }: ReReturnT<typeof selectSpotRequestDetails> = yield select(\n        selectSpotRequestDetails(spotRequestId),\n    );\n    if (details?.orderId) {\n        yield refreshBrokerOrderDetails(details?.orderId);\n    }\n\n    spotRequestsRefreshChannel.emit({});\n    spotRequestsStatsRefreshChannel.emit({});\n\n    yield refreshSpotRequestDetails(spotRequestId);\n}\n\nfunction* cancelSpotByTourSaga(action: CancelSpotRequestByTourActionT): WrapGeneratorT<void> {\n    const { tourId } = action;\n\n    const requestStatus: ReturnType<typeof selectSpotUpdateRequestStatus> = yield select(selectSpotUpdateRequestStatus);\n    if (requestStatus.loading) {\n        return;\n    }\n\n    const isSpotRequestCancelled: ReReturnT<typeof cancelSpotByTour> = yield cancelSpotByTour([tourId]);\n    if (!isSpotRequestCancelled) {\n        return;\n    }\n\n    yield put(\n        addAlert(\n            new BrokerAnyAlert({\n                type: BrokerAlertTypeEnum.spotRequestCancelled,\n                data: {},\n            }),\n        ),\n    );\n\n    updateSpotRefreshChannel.emit({});\n}\n\nfunction* sendToSpotByTourSaga(action: SendToSpotByTourActionT): WrapGeneratorT<void> {\n    const requestStatus: ReturnType<typeof selectSpotUpdateRequestStatus> = yield select(selectSpotUpdateRequestStatus);\n    if (requestStatus.loading) {\n        return;\n    }\n\n    const { tourId, deadline, comment } = action;\n\n    yield put(updateBegin());\n\n    const response: ReturnApiT<typeof brokerTranziitApi.sentTransportOrderToSpot> =\n        yield brokerTranziitApi.sentTransportOrderToSpot(tourId, { comment, deadline });\n\n    const error = response[0] || null;\n    if (error) {\n        yield put(updateError(error));\n        return;\n    }\n\n    yield put(updateSuccess());\n\n    yield put(\n        addAlert(\n            new BrokerAnyAlert({\n                type: BrokerAlertTypeEnum.tourSentToSpot,\n                data: {},\n            }),\n        ),\n    );\n\n    stateMachineRefreshChannel.emit({});\n}\n\nfunction* spotSaga(): WrapGeneratorT<void> {\n    yield takeEvery(SEND_TO_SPOT_BY_TOUR, sendToSpotByTourSaga);\n    yield takeEvery(CANCEL_SPOT_REQUEST_BY_TOUR, cancelSpotByTourSaga);\n    yield takeEvery(CANCEL_SPOT_REQUEST, cancelSpotSaga);\n}\n\nexport default spotSaga;\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"PaperPlaceholder__content___c4t7h\",\"fadeIn\":\"PaperPlaceholder__fadeIn___YF9jE\",\"blinking\":\"PaperPlaceholder__blinking___pu48f\"};","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const trucksRefreshChannel = new ViewEventChannel<{}>();\n\nexport const truckDetailsRefreshChannel = new ViewEventChannel<{}>();\n\nexport const trucksPaginationChannel = new ViewEventChannel<{\n    pageNumber: number;\n}>();\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { useSelector } from 'react-redux';\nimport { selectSpotUpdateRequestStatus } from 'broker-admin/store/spot/selectors';\n\nexport type CancelSpotRequestConfirmationDataT = {\n    tourId: TourIdT;\n};\n\ntype PropsT = {\n    data: CancelSpotRequestConfirmationDataT | null;\n    onConfirmation: (data: CancelSpotRequestConfirmationDataT) => void;\n    onCancel: () => void;\n    onClose: () => void;\n};\n\nconst TEST_SELECTOR = 'clear-assets-confirmation';\n\nconst CancelSpotRequestConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, onConfirmation, onCancel, onClose } = props;\n\n    const requestStatus = useSelector(selectSpotUpdateRequestStatus);\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.keep'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: requestStatus.loading,\n                            onClick: () => {\n                                onCancel();\n                            },\n                        },\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.danger,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            isLoading: requestStatus.loading,\n                            isDisabled: requestStatus.loading,\n                            onClick: () => {\n                                onConfirmation(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                    title={t('broker-order-details.dialogs.cancel-spot-request.title')}\n                    message={t('broker-order-details.dialogs.cancel-spot-request.description')}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default CancelSpotRequestConfirmation;\n","import React from 'react';\nimport classNames from 'classnames/bind';\nimport moment from 'moment';\n\nimport styles from './ContactDetailsSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport { CompanyContactDetailsT } from 'common/store/members/models';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectCountriesByCode, selectCountriesByLangCode } from 'common/store/countries-dict/selectors';\nimport PhoneNumberIcon from 'common/components/PhoneNumberIcon/PhoneNumberIcon';\nimport { isNonNil } from 'common/utils';\nimport chunk from 'lodash/chunk';\nimport { FORMAL_T_MAP } from 'common/components/dropdowns/UserFormalDropdown/UserFormalDropdown';\nimport { logWarning } from 'common/utils/logger';\nimport { ApiNewUserRoleT, ContactPositionsEnum, CountryCodeT } from 'common/utils/api/models';\nimport Checkbox from 'design-system/components/Checkbox/Checkbox';\nimport PositionOption from 'common/layouts/Members/PositionOption/PositionOption';\nimport { CommonSidebarDataT, CommonSidebarsTypeEnum, SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { ContactDetailsSidebarDataT } from 'common/layouts/SideBars/contents/ContactDetailsSidebarContent/models';\nimport {\n    selectContactDetailsById,\n    selectContactIdByUserId,\n    selectDeleteMemberRequest,\n    selectFetchContactDetailsRequest,\n    selectUpdateMemberRequest,\n} from 'common/store/members/selectors';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport ContactSidebarHeader from 'common/layouts/Members/ContactSidebarHeader/ContactSidebarHeader';\nimport {\n    changeUserRole,\n    deleteContact,\n    deleteUser,\n    fetchContactDetails,\n    fetchContactDetailsByUserId,\n    restoreUser,\n} from 'common/store/members/actions';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport ChangeUserRoleModal, {\n    ChangeUserRoleModalDataT,\n    ChangeUserRoleModalPropsT,\n} from 'common/layouts/Members/dialogs/ChangeUserRoleModal/ChangeUserRoleModal';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport DeactivateUserModal, {\n    DeactivateUserModalDataT,\n    DeactivateUserModalPropsT,\n} from 'common/layouts/Members/dialogs/DeactivateUserModal/DeactivateUserModal';\nimport DeleteContactConfirmation, {\n    DeleteContactConfirmationDataT,\n    DeleteContactConfirmationPropsT,\n} from 'common/layouts/Members/dialogs/DeleteContactConfirmation/DeleteContactConfirmation';\nimport { useActionOptions } from 'common/layouts/SideBars/contents/ContactDetailsSidebarContent/hooks/use-action-options';\nimport RestoreUserConfirmation, {\n    RestoreUserConfirmationDataT,\n    RestoreUserConfirmationPropsT,\n} from 'common/layouts/Members/dialogs/RestoreUserConfirmation/RestoreUserConfirmation';\nimport ChangeUserRoleConfirmation, {\n    ChangeUserRoleConfirmationDataT,\n    ChangeUserRoleConfirmationPropsT,\n} from 'common/layouts/Members/dialogs/ChangeUserRoleConfirmation/ChangeUserRoleConfirmation';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport { contactDetailsCompanyTypeMap } from 'common/store/members/constants';\nimport { membersRefreshChannel } from 'common/store/members/channels';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { clientConfig } from 'common/utils/client-config';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = SidebarContentPropsT<ContactDetailsSidebarDataT, CommonSidebarDataT>;\n\nconst formatBirthday = (birthday: string) => moment(birthday, 'YYYY-MM-DD').format('DD.MM.YYYY');\n\nconst ContactDetailsSidebarContent: React.FC<PropsT> = (props) => {\n    const { data, onClose, onGoBack, onOpenNextSidebar } = props;\n\n    const { t } = useTranslation();\n\n    const { partnerId: contextPartnerId } = usePartnerContext();\n\n    const permissions = useSelector(selectPermissions);\n\n    const contactDetailsRequestStatus = useSelector(selectFetchContactDetailsRequest);\n    const isLoading = contactDetailsRequestStatus.loading;\n\n    const contactDetailsById = useSelector(selectContactDetailsById);\n    const contactIdByUserId = useSelector(selectContactIdByUserId);\n\n    let contactDetails: CompanyContactDetailsT | null = null;\n\n    if ('contactId' in data) {\n        contactDetails = contactDetailsById[data.contactId] || null;\n    }\n\n    if ('userId' in data) {\n        const contactId = contactIdByUserId[data.userId];\n        contactDetails = contactDetailsById[contactId] || null;\n    }\n\n    const contactCompanyType = contactDetails?.companyType || null;\n    const partnerType =\n        data?.partnerType || (contactCompanyType && contactDetailsCompanyTypeMap[contactCompanyType]) || null;\n\n    const contactCompanyId = clientConfig.isBrokerProject ? contactDetails?.companyId || null : contextPartnerId;\n    const partnerId = data?.partnerId || contactCompanyId || null;\n\n    const handleEditContact = () => {\n        if (!contactDetails?.id) {\n            logWarning('failed to open edit contact, empty contactDetails?.id');\n            return;\n        }\n\n        if (!partnerId) {\n            logWarning('failed to open edit contact, empty data.partnerId');\n            return;\n        }\n\n        onOpenNextSidebar({\n            contactId: contactDetails.id,\n            partnerId,\n            type: CommonSidebarsTypeEnum.editContact,\n        });\n    };\n\n    const deleteMemberRequestStatus = useSelector(selectDeleteMemberRequest(partnerId));\n    const updateMemberRequestStatus = useSelector(selectUpdateMemberRequest(partnerId));\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        if ('contactId' in data) {\n            dispatch(fetchContactDetails(data.contactId));\n        }\n        if ('userId' in data) {\n            dispatch(fetchContactDetailsByUserId(data.userId));\n        }\n    }, [dispatch, data]);\n\n    const refreshPageHandler = React.useCallback(() => {\n        if ('contactId' in data) {\n            dispatch(fetchContactDetails(data.contactId));\n        }\n        if ('userId' in data) {\n            dispatch(fetchContactDetailsByUserId(data.userId));\n        }\n    }, [dispatch, data]);\n    useChannelSubscribe(membersRefreshChannel, refreshPageHandler);\n\n    const changeUserRoleModalDialog = useModalDialog<ChangeUserRoleModalDataT>();\n    const handleShowChangeUserRoleModalDialog = React.useCallback(\n        (contact: CompanyContactDetailsT): void => {\n            if (!partnerType) {\n                logWarning('failed to show change user role modal, empty partnerType');\n                return;\n            }\n\n            if (!partnerId) {\n                logWarning('failed to show change user role modal, empty partnerId');\n                return;\n            }\n\n            changeUserRoleModalDialog.setData({\n                partnerType,\n                partnerId,\n                contact: {\n                    userId: contact.userId,\n                    roles: contact.roles.map((item) => item.role).filter(isNonNil),\n                    fullName: contact.fullName,\n                },\n            });\n        },\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        [partnerType, partnerId],\n    );\n\n    const changeUserRoleConfirmationDialog = useModalDialog<ChangeUserRoleConfirmationDataT>();\n    const handleChangeUserRole: ChangeUserRoleModalPropsT['onChangeUserRole'] = React.useCallback(\n        ({ data, changes }): void => {\n            if (!data?.partnerId) {\n                return;\n            }\n\n            changeUserRoleModalDialog.onClose();\n            changeUserRoleConfirmationDialog.setData({\n                ...data,\n                changes,\n            });\n        },\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        [],\n    );\n\n    const handleConfirmChangeUserRole: ChangeUserRoleConfirmationPropsT['onConfirm'] = React.useCallback(\n        (data) => {\n            if (!partnerId) {\n                logWarning('failed to confirm change user role, empty partnerId');\n                return;\n            }\n\n            dispatch(changeUserRole(data.changes.roles as ApiNewUserRoleT[], data.changes.userId, partnerId));\n        },\n        [dispatch, partnerId],\n    );\n\n    const deactivateUserModalDialog = useModalDialog<DeactivateUserModalDataT>();\n    const handleShowDeactivateUserModalDialog = React.useCallback(\n        (contact: CompanyContactDetailsT): void => {\n            if (!partnerType) {\n                logWarning('failed to show deactivate user modal, empty partnerType');\n                return;\n            }\n\n            if (!partnerId) {\n                logWarning('failed to show deactivate user modal, empty partnerId');\n                return;\n            }\n\n            deactivateUserModalDialog.setData({\n                partnerType,\n                partnerId,\n                contact: {\n                    userId: contact.userId,\n                    roles: contact.roles.map((item) => item.role).filter(isNonNil),\n                    fullName: contact.fullName,\n                },\n            });\n        },\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        [partnerType, partnerId],\n    );\n\n    const handleDeactivateUser: DeactivateUserModalPropsT['onDeactivateUser'] = React.useCallback(\n        ({ data, changes }): void => {\n            if (!data?.partnerId) {\n                return;\n            }\n\n            dispatch(deleteUser(changes.userId, data.partnerId));\n        },\n        [dispatch],\n    );\n\n    const deleteContactConfirmation = useModalDialog<DeleteContactConfirmationDataT>();\n    const handleDeleteContactModalDialog = (contact: CompanyContactDetailsT) => {\n        if (!contact?.id) {\n            logWarning('failed to show delete contact modal, empty contact?.id');\n            return;\n        }\n\n        if (!partnerId) {\n            logWarning('failed to show delete contact modal, empty partnerId');\n            return;\n        }\n\n        deleteContactConfirmation.setData({\n            contactId: contact.id,\n            partnerId,\n        });\n    };\n\n    const handleConfirmDeleteContact: DeleteContactConfirmationPropsT['onConfirm'] = React.useCallback(\n        (partnerId, contactId) => {\n            if (!contactId) {\n                logWarning('empty contactId');\n                return;\n            }\n\n            dispatch(deleteContact(contactId, partnerId));\n        },\n        [dispatch],\n    );\n\n    const restoreUserConfirmationDialog = useModalDialog<RestoreUserConfirmationDataT>();\n    const handleShowRestoreUserModalDialog = (contact: CompanyContactDetailsT) => {\n        if (!contact.id) {\n            logWarning('failed to show restore user modal, empty contact.id');\n            return;\n        }\n\n        if (!partnerId) {\n            logWarning('failed to show restore user modal, empty partnerId');\n            return;\n        }\n\n        restoreUserConfirmationDialog.setData({\n            contactId: contact.id,\n            partnerId,\n        });\n    };\n    const handleConfirmRestoreUser: RestoreUserConfirmationPropsT['onConfirm'] = React.useCallback(\n        (userId, partnerId): void => {\n            dispatch(restoreUser(userId, partnerId));\n        },\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        [dispatch, partnerId],\n    );\n\n    useCloseModalDialogAfterRequest(updateMemberRequestStatus, [\n        changeUserRoleModalDialog,\n        changeUserRoleConfirmationDialog,\n        deactivateUserModalDialog,\n        restoreUserConfirmationDialog,\n    ]);\n    useCloseModalDialogAfterRequest(deleteMemberRequestStatus, [deleteContactConfirmation]);\n\n    const headerActionOptions = useActionOptions(t, permissions, contactDetails, {\n        onChangeUserRole: handleShowChangeUserRoleModalDialog,\n        onDeactivateUser: handleShowDeactivateUserModalDialog,\n        onDeleteContact: handleDeleteContactModalDialog,\n        onEditContact: handleEditContact,\n        onRestoreUser: handleShowRestoreUserModalDialog,\n    });\n\n    const countryByCode = useSelector(selectCountriesByCode);\n    const countryByLangCode = useSelector(selectCountriesByLangCode);\n\n    const mediasNodes = [\n        <ReadOnlyField\n            key=\"email\"\n            className={cx('field--contact')}\n            label={t('common:team-members.edit-contact.fields.email.label')}\n            value={contactDetails?.email || ''}\n        />,\n        <ReadOnlyField\n            key=\"mobile-phone\"\n            icon={<PhoneNumberIcon phoneNumber={contactDetails?.mobilePhone} />}\n            className={cx('field--contact')}\n            label={t('common:team-members.edit-contact.fields.mobile-phone.label')}\n            value={contactDetails?.mobilePhone || ''}\n        />,\n        <ReadOnlyField\n            key=\"contact\"\n            icon={<PhoneNumberIcon phoneNumber={contactDetails?.deskPhone} />}\n            className={cx('field--contact')}\n            label={t('common:team-members.edit-contact.fields.desktop-phone.label')}\n            value={contactDetails?.deskPhone || ''}\n        />,\n        contactDetails?.fax ? (\n            <ReadOnlyField\n                key=\"fax\"\n                className={cx('field--contact')}\n                label={t('common:team-members.edit-contact.fields.fax-number.label')}\n                value={contactDetails?.fax || ''}\n            />\n        ) : null,\n        <ReadOnlyField\n            key=\"link\"\n            className={cx('field--link')}\n            label={t('common:team-members.edit-contact.fields.webpage-link.label')}\n            value={contactDetails?.website || ''}\n        />,\n        ...(contactDetails?.medias || []).map((media, index) => {\n            if (typeof media.login !== 'string') {\n                return null;\n            }\n\n            return (\n                <ReadOnlyField\n                    key={index}\n                    className={cx('field--contact')}\n                    label={t(`common:team-members.edit-contact.fields.${media.type}.label`)}\n                    value={media.login || ''}\n                />\n            );\n        }),\n    ].filter(isNonNil);\n\n    const mediaChunks = chunk(mediasNodes, 2);\n\n    return (\n        <>\n            {isLoading && <LoaderOverlay />}\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent\n                    onGoBack={onGoBack}\n                    title={contactDetails ? <ContactSidebarHeader contactDetails={contactDetails} /> : null}\n                    dropdownOptions={headerActionOptions}\n                    onClose={onClose}\n                />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <div className={cx('section')}>\n                    <div className={cx('section__title')}>{t('common:team-members.details.sections.name')}</div>\n                    <FieldGroup>\n                        <ReadOnlyField\n                            className={cx('field--formal')}\n                            label={t('common:team-members.edit-contact.fields.formal.label')}\n                            value={contactDetails?.formal ? t(FORMAL_T_MAP[contactDetails?.formal]) : ''}\n                            placeholder={t('common:team-members.edit-contact.fields.formal.placeholder')}\n                        />\n                        <ReadOnlyField\n                            className={cx('field--first-name')}\n                            label={t('common:team-members.edit-contact.fields.first-name.label')}\n                            value={contactDetails?.name || ''}\n                        />\n                        <ReadOnlyField\n                            className={cx('field--last-name')}\n                            label={t('common:team-members.edit-contact.fields.last-name.label')}\n                            value={contactDetails?.surname || ''}\n                        />\n                    </FieldGroup>\n                </div>\n                <div className={cx('section')}>\n                    <div className={cx('section__title')}>\n                        {t('common:team-members.edit-contact.sections.position')}\n                    </div>\n                    <div className={cx('section__block')}>\n                        <FieldGroup>\n                            {!!contactDetails?.position && (\n                                <PositionOption\n                                    isDisabled\n                                    value={contactDetails.position as ContactPositionsEnum}\n                                    selectedValue={contactDetails.position as ContactPositionsEnum}\n                                />\n                            )}\n                            {!!contactDetails && (\n                                <Checkbox\n                                    isDisabled\n                                    checked={!!contactDetails?.main}\n                                    label={\n                                        <span className={cx('checkbox__label')}>\n                                            {t('common:team-members.edit-contact.fields.default.label')}\n                                        </span>\n                                    }\n                                />\n                            )}\n                        </FieldGroup>\n                    </div>\n                </div>\n                <div className={cx('section')}>\n                    <div className={cx('section__title')}>{t('common:team-members.details.sections.contacts')}</div>\n                    {mediaChunks.map((chunk, chunkIndex) => (\n                        <FieldGroup key={chunkIndex}>{chunk}</FieldGroup>\n                    ))}\n                </div>\n                <div className={cx('section', 'section--isLast')}>\n                    <div className={cx('section__title')}>{t('common:team-members.details.sections.personals')}</div>\n                    <FieldGroup>\n                        <ReadOnlyField\n                            className={cx('field--birthday')}\n                            label={t('common:team-members.edit-contact.fields.birthday.label')}\n                            value={contactDetails?.birthday ? formatBirthday(contactDetails?.birthday) : ''}\n                            placeholder={t('common:team-members.edit-contact.fields.birthday.placeholder')}\n                        />\n                        <ReadOnlyField\n                            className={cx('field--country')}\n                            label={t('common:team-members.edit-contact.fields.residence.label')}\n                            icon={<FlagIcon countryCode={contactDetails?.residence} />}\n                            value={\n                                countryByCode[contactDetails?.residence as CountryCodeT]?.userLangDisplayName || null\n                            }\n                            placeholder={t('common:fields.placeholder.not-specified')}\n                        />\n                    </FieldGroup>\n                    <ReadOnlyField\n                        className={cx('field--language')}\n                        label={t('common:team-members.edit-contact.fields.language.label')}\n                        value={countryByLangCode[contactDetails?.language as string]?.name || null}\n                        placeholder={t('common:fields.placeholder.not-specified')}\n                    />\n                </div>\n            </SideBarLayout>\n            {deactivateUserModalDialog.data && (\n                <DeactivateUserModal\n                    data={deactivateUserModalDialog.data}\n                    onClose={deactivateUserModalDialog.onClose}\n                    onCancel={deactivateUserModalDialog.onCancel}\n                    onDeactivateUser={handleDeactivateUser}\n                />\n            )}\n            {changeUserRoleModalDialog.data && (\n                <ChangeUserRoleModal\n                    data={changeUserRoleModalDialog.data}\n                    onClose={changeUserRoleModalDialog.onClose}\n                    onChangeUserRole={handleChangeUserRole}\n                />\n            )}\n            <ChangeUserRoleConfirmation\n                data={changeUserRoleConfirmationDialog.data}\n                onClose={changeUserRoleConfirmationDialog.onClose}\n                onConfirm={handleConfirmChangeUserRole}\n            />\n            {restoreUserConfirmationDialog.data && (\n                <RestoreUserConfirmation\n                    data={restoreUserConfirmationDialog.data}\n                    onClose={restoreUserConfirmationDialog.onClose}\n                    onConfirm={handleConfirmRestoreUser}\n                />\n            )}\n            {deleteContactConfirmation.data && (\n                <DeleteContactConfirmation\n                    data={deleteContactConfirmation.data}\n                    onClose={deleteContactConfirmation.onClose}\n                    onCancel={deleteContactConfirmation.onCancel}\n                    onConfirm={handleConfirmDeleteContact}\n                />\n            )}\n        </>\n    );\n};\n\nexport default ContactDetailsSidebarContent;\n","import * as React from 'react';\nimport { useEffect } from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './TrailersPageLayout.scss';\nimport FiltersTrigger from 'common/components/Table/FiltersTrigger/FiltersTrigger';\nimport SortDropdown, {\n    SortDropdownOptionT,\n    SortDropdownOverlayPositionEnum,\n} from 'common/components/Table/SortDropdown/SortDropdown';\nimport Pagination from 'common/components/Table/Pagination/Pagination';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\nimport { AssetTypeEnum, DEFAULT_CARRIER_COMPANY_ID, DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport { ApiChangeContractVehiclesRequestT, ApiChangeRateVehiclesRequestT } from 'common/utils/api/models';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectAddTrailerRequestStatus,\n    selectTrailersByIds,\n    selectTrailersExportXLSRequest,\n    selectTrailersImportXLSRequest,\n    selectTrailersPages,\n    selectTrailersStats,\n    selectTrailersTotal,\n    selectUpdateTrailersRequestStatus,\n} from 'common/store/trailers/selectors';\nimport {\n    activationTrailersRequest,\n    archiveTrailersRequest,\n    assignToContractRequest,\n    changeRateTrailersRequest,\n    exportXLSTrailers,\n    fetchTrailersPage,\n    fetchTrailersStats,\n    importXLSTrailers,\n} from 'common/store/trailers/actions';\nimport { ActivateTrailersRequestT, ApiTrailerT } from 'common/store/trailers/models';\nimport TrailersTable from './TrailersTable/TrailersTable';\nimport TableMessage, { TableMessageIconsEnum } from 'common/components/Table/TableMessage/TableMessage';\nimport TableActions, { TableActionOptionT } from 'common/components/Table/TableActions/TableActions';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\n\nimport DeleteIcon from 'common/icons/DeleteIcon';\nimport { isNonNil } from 'common/utils';\nimport {\n    createJsonParams,\n    createPageNumberParam,\n    createSortParams,\n    PageSortT,\n    SortDirectionEnum,\n} from 'common/utils/query';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport StickyFooter from 'common/layouts/LeftMenuLayout/StickyFooter/StickyFooter';\nimport TableError from 'common/components/Table/TableError/TableError';\nimport { prepareFetchPageQuery } from './prepare-fetch-page-query';\nimport ListPageLayout from 'common/layouts/ListPage/ListPageLayout/ListPageLayout';\nimport ListPageHeaderLayout from 'common/layouts/ListPage/ListPageHeaderLayout/ListPageHeaderLayout';\nimport map from 'lodash/map';\nimport { QueryFiltersT, QueryKeysEnum, TrailersSortEnum } from './query-models';\nimport { TabEnum } from './constants';\nimport SelectedFilters from './SelectedFilters/SelectedFilters';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport ArchiveAssetConfirmationModal, {\n    ArchiveAssetConfirmationDataT,\n} from 'common/layouts/dialogs/ArchiveAssetConfirmationModal/ArchiveAssetConfirmationModal';\nimport ActivateAssetDialogModal, {\n    ActivateAssetConfirmationDataT,\n} from 'common/layouts/dialogs/ActivateAssetDialogModal/ActivateAssetDialogModal';\nimport { selectSetUnavailableVehicleRequestStatus } from 'common/store/vehicle-schedules/selectors';\nimport HollowCircleIcon from 'common/icons/HollowCircleIcon';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport { trailersPaginationChannel, trailersRefreshChannel } from 'common/store/trailers/channels';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport ActiveFleetCount from './ActiveFleetCount/ActiveFleetCount';\nimport { useQueryParams, withDefault } from 'use-query-params';\nimport { createEnumParam } from 'serialize-query-params/src/params';\nimport { useCheckOpenedSidebar, useOpenLeftSidebar } from 'common/layouts/SideBars/hooks';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { checkNeedRenderEmptyState } from 'common/components/Table/utils/check-need-render-empty-state';\nimport { checkFilters } from 'common/components/Table/utils/check-filters';\nimport ButtonGroup from 'design-system/components/ButtonGroup/ButtonGroup';\nimport AssetsXLSDropdownControl from 'common/components/controls/AssetsXLSDropdownControl/AssetsXLSDropdownControl';\nimport { useImportXLSAssetsModalDialog } from 'common/layouts/dialogs/ImportXLSAssetsDialogModal/hooks/useImportXLSAssetsModalDialog';\nimport ImportXLSAssetsDialogModal, {\n    ImportXLSAssetsDialogModalDataT,\n} from 'common/layouts/dialogs/ImportXLSAssetsDialogModal/ImportXLSAssetsDialogModal';\nimport ChangeRateOrContractAssetDialogModal, {\n    ChangeRateOrContractAssetDialogModalDataT,\n} from 'common/layouts/dialogs/ChangeRateOrContractAssetDialogModal/ChangeRateOrContractAssetDialogModal';\nimport { SpecialOptionEnum } from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport PaperIcon from 'common/icons/PaperIcon';\nimport usePartnerPermissionsContext from 'common/utils/hooks/usePartnerPermissionsContext';\nimport { logWarning } from 'common/utils/logger';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    onOpenUserDetails: (userId: UserIdT | null) => void;\n};\n\nconst getTrailerIds = (selectedTrailersSet: Set<ApiTrailerT>): Array<string> => {\n    return [...selectedTrailersSet].map((trailer) => trailer.id).filter(isNonNil);\n};\n\nconst TAB_LABEL_T: Record<TabEnum, string> = {\n    [TabEnum.active]: 'common:trailers-page.tabs.active',\n    [TabEnum.archive]: 'common:trailers-page.tabs.archive',\n};\n\nconst SORT_LABELS_T: Record<TrailersSortEnum, string> = {\n    [TrailersSortEnum.createdDate]: 'common:trailers-page.sorts.triggers.creation-date',\n    [TrailersSortEnum.archiveDate]: 'common:trailers-page.sorts.triggers.archive-date',\n};\n\nconst TrailersPageLayout: React.FC<PropsT> = React.memo((props) => {\n    const { onOpenUserDetails } = props;\n\n    const partnerPermissions = usePartnerPermissionsContext();\n\n    const { partnerId } = usePartnerContext();\n\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n\n    const [query, changeQuery] = useQueryParams({\n        [QueryKeysEnum.trailersPage]: createPageNumberParam(),\n        [QueryKeysEnum.trailersSort]: createSortParams<TrailersSortEnum>({\n            value: TrailersSortEnum.createdDate,\n            direction: SortDirectionEnum.DESC,\n        }),\n        [QueryKeysEnum.trailersFilters]: createJsonParams<QueryFiltersT>({}),\n        [QueryKeysEnum.trailersTab]: withDefault(createEnumParam<TabEnum>(Object.values(TabEnum)), TabEnum.active),\n    });\n\n    const [selectedTrailersSet, setSelectedTrailersSet] = React.useState<Set<ApiTrailerT>>(new Set());\n\n    const total = useSelector(selectTrailersTotal(partnerId));\n    const trailersPages = useSelector(selectTrailersPages(partnerId));\n    const trailerById = useSelector(selectTrailersByIds(partnerId));\n    const updateTrailersRequestStatus = useSelector(selectUpdateTrailersRequestStatus(partnerId));\n\n    const selectedSort = query[QueryKeysEnum.trailersSort];\n    const pageNumber = query[QueryKeysEnum.trailersPage];\n    const queryFilters = query[QueryKeysEnum.trailersFilters];\n\n    const activeTab = query[QueryKeysEnum.trailersTab];\n    const page = trailersPages[pageNumber];\n    const { ids, requestStatus } = page || {};\n\n    React.useEffect(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in TrailersPageLayout useEffect');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort, activeTab);\n        dispatch(fetchTrailersPage(pageNumber, query, partnerId));\n\n        dispatch(fetchTrailersStats(partnerId));\n    }, [dispatch, pageNumber, selectedSort, queryFilters, activeTab, partnerId]);\n\n    const refreshPageHandler = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in refreshPageHandler');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort, activeTab);\n        dispatch(fetchTrailersPage(pageNumber, query, partnerId, { isForceUpdate: true }));\n\n        dispatch(fetchTrailersStats(partnerId, { isForceUpdate: true }));\n    }, [dispatch, pageNumber, queryFilters, selectedSort, activeTab, partnerId]);\n    useChannelSubscribe(trailersRefreshChannel, refreshPageHandler);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleRefreshOnError');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort, activeTab);\n        dispatch(fetchTrailersPage(pageNumber, query, partnerId, { isForceUpdate: true }));\n    }, [dispatch, pageNumber, queryFilters, selectedSort, activeTab, partnerId]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in documentVisibilityChangeHandler');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort, activeTab);\n        dispatch(fetchTrailersPage(pageNumber, query, partnerId, { isForceUpdate: false }));\n\n        dispatch(fetchTrailersStats(partnerId, { isForceUpdate: false }));\n    }, [dispatch, pageNumber, queryFilters, selectedSort, activeTab, partnerId]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const trailers = React.useMemo(() => {\n        return (ids || []).map((id): ApiTrailerT => trailerById[id as string]).filter(isNonNil);\n    }, [ids, trailerById]);\n\n    React.useEffect(() => {\n        setSelectedTrailersSet(new Set());\n    }, [ids]);\n\n    const goToPage = React.useCallback(\n        (pageNumber: PageNumberT) => {\n            setSelectedTrailersSet(new Set());\n\n            changeQuery({\n                [QueryKeysEnum.trailersPage]: pageNumber,\n            });\n        },\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        [setSelectedTrailersSet, query],\n    );\n\n    const setPageHandler = React.useCallback(\n        ({ pageNumber }: InferChannelEventT<typeof trailersPaginationChannel>) => {\n            goToPage(pageNumber);\n        },\n        [goToPage],\n    );\n    useChannelSubscribe(trailersPaginationChannel, setPageHandler);\n\n    const sortOptions: Array<SortDropdownOptionT<TrailersSortEnum>> = React.useMemo(() => {\n        return [TrailersSortEnum.createdDate, activeTab === TabEnum.archive ? TrailersSortEnum.archiveDate : null]\n            .filter(isNonNil)\n            .map((sort) => {\n                return {\n                    label: t(SORT_LABELS_T[sort]),\n                    value: sort,\n                };\n            });\n    }, [t, activeTab]);\n\n    const handleSelectSort = (sort: PageSortT<TrailersSortEnum>) => {\n        changeQuery({\n            [QueryKeysEnum.trailersPage]: 0,\n            [QueryKeysEnum.trailersSort]: sort,\n        });\n    };\n\n    const handleSetQueryFilters = (selectedQueryFilters: QueryFiltersT) => {\n        changeQuery({\n            [QueryKeysEnum.trailersPage]: 0,\n            [QueryKeysEnum.trailersFilters]: selectedQueryFilters,\n        });\n    };\n\n    const resetQueryFilters = () => {\n        handleSetQueryFilters({});\n    };\n\n    const addRequestStatus = useSelector(selectAddTrailerRequestStatus(partnerId));\n    React.useEffect(() => {\n        if (addRequestStatus.ok) {\n            changeQuery({\n                [QueryKeysEnum.trailersFilters]: undefined,\n                [QueryKeysEnum.trailersPage]: 0,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [addRequestStatus.ok]);\n\n    const archiveAssetConfirmation = useModalDialog<ArchiveAssetConfirmationDataT>();\n    const activateAssetConfirmation = useModalDialog<ActivateAssetConfirmationDataT>();\n    const changeRateOrContractConfirmation = useModalDialog<ChangeRateOrContractAssetDialogModalDataT>();\n\n    const trailersStats = useSelector(selectTrailersStats(partnerId));\n\n    const tableActionOptions: Array<TableActionOptionT | SpecialOptionEnum | null> = [\n        ...(activeTab === TabEnum.active\n            ? [\n                  {\n                      label: (\n                          <DropdownControlOptionLabel\n                              icon={\n                                  <PaperIcon\n                                      size={DEFAULT_ICON_SIZE}\n                                      strokeColor={StyleGuideColorsEnum.charcoal}\n                                      fillColor={StyleGuideColorsEnum.transparent}\n                                  />\n                              }\n                              label={t('common:trucks-page.actions.change-rate-or-contract')}\n                          />\n                      ),\n                      onSelect: () => {\n                          if (!partnerId) {\n                              logWarning('Empty partnerId in changeRateOrContract onSelect');\n                              return;\n                          }\n                          const ids = getTrailerIds(selectedTrailersSet);\n\n                          changeRateOrContractConfirmation.setData({\n                              assets: ids.map((id) => {\n                                  return {\n                                      id,\n                                  };\n                              }),\n                              companyId: partnerId,\n                          });\n                      },\n                  },\n                  SpecialOptionEnum.separator,\n                  {\n                      label: (\n                          <DropdownControlOptionLabel\n                              icon={<DeleteIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                              label={t('common:trailers-page.actions.archive')}\n                          />\n                      ),\n                      onSelect: () => {\n                          if (!partnerId) {\n                              logWarning('Empty partnerId in archiveAsset onSelect');\n                              return;\n                          }\n                          const ids = getTrailerIds(selectedTrailersSet);\n\n                          archiveAssetConfirmation.setData({\n                              assets: ids.map((id) => {\n                                  return {\n                                      id,\n                                      plateNumber: trailerById[id]?.plateNumber || '',\n                                  };\n                              }),\n                              companyId: partnerId,\n                          });\n                      },\n                  },\n              ]\n            : []),\n        activeTab === TabEnum.archive\n            ? {\n                  label: (\n                      <DropdownControlOptionLabel\n                          icon={<HollowCircleIcon borderColor={StyleGuideColorsEnum.brandAccent} />}\n                          label={t('common:trailers-page.actions.activate')}\n                      />\n                  ),\n                  onSelect: () => {\n                      if (!partnerId) {\n                          logWarning('Empty partnerId in activateAsset onSelect');\n                          return;\n                      }\n                      const ids = getTrailerIds(selectedTrailersSet);\n\n                      activateAssetConfirmation.setData({\n                          assets: ids.map((id) => {\n                              const trailer = trailerById[id];\n\n                              return {\n                                  id,\n                                  plateNumber: trailer?.plateNumber || '',\n                                  ratePerKm: null,\n                                  contractId: null, // archived assets always have no contract\n                              };\n                          }),\n                          companyId: partnerId,\n                      });\n                  },\n              }\n            : null,\n    ];\n\n    const importXLSAssetsModalDialog = useImportXLSAssetsModalDialog();\n\n    const isDisabledTableActions = updateTrailersRequestStatus.loading;\n\n    const handleSelectRow = (event: React.MouseEvent, trailer: ApiTrailerT) => {\n        if (!trailer.id) {\n            return;\n        }\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleSelectRow');\n            return;\n        }\n\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.trailerDetails,\n            trailerId: trailer.id,\n            partnerId,\n        });\n    };\n\n    const isPartner = partnerId !== DEFAULT_CARRIER_COMPANY_ID;\n\n    const handleSelectTab = (tab: TabEnum): void => {\n        changeQuery({\n            [QueryKeysEnum.trailersPage]: 0,\n            [QueryKeysEnum.trailersTab]: tab,\n            [QueryKeysEnum.trailersSort]: undefined,\n        });\n    };\n\n    const tabsNode = (\n        <ButtonGroup\n            className={cx('tabs', {\n                'tabs--isPartner': isPartner,\n            })}\n        >\n            {map(TabEnum, (tab) => (\n                <Button\n                    noPaddings\n                    rowClassName={cx('tabs__tab-content')}\n                    key={tab}\n                    className={cx('tabs__tab')}\n                    leftIcon={tab === TabEnum.active && !!trailersStats?.actualTotalCount ? <ActiveFleetCount /> : null}\n                    theme={ButtonThemeEnum.transparent}\n                    onClick={() => {\n                        handleSelectTab(tab);\n                    }}\n                    isToggled={tab === activeTab}\n                >\n                    {t(TAB_LABEL_T[tab])}\n                </Button>\n            ))}\n        </ButtonGroup>\n    );\n\n    const setUnavailableStatus = useSelector(selectSetUnavailableVehicleRequestStatus);\n    const updateRequestStatus = useSelector(selectUpdateTrailersRequestStatus(partnerId));\n\n    useEffect(() => {\n        setSelectedTrailersSet(new Set());\n    }, [setUnavailableStatus, updateRequestStatus]);\n\n    useCloseModalDialogAfterRequest(updateRequestStatus, [\n        activateAssetConfirmation,\n        archiveAssetConfirmation,\n        changeRateOrContractConfirmation,\n    ]);\n\n    const importXLSRequestStatus = useSelector(selectTrailersImportXLSRequest(partnerId));\n    useCloseModalDialogAfterRequest(importXLSRequestStatus, [importXLSAssetsModalDialog]);\n\n    const handleImportXLS = (data: ImportXLSAssetsDialogModalDataT) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleImportXLS');\n            return;\n        }\n        dispatch(importXLSTrailers(partnerId, data.file));\n    };\n\n    const handleConfirmChangeContract = (\n        changeContractRequest: ApiChangeContractVehiclesRequestT,\n        contractName: string,\n    ) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleConfirmChangeContract');\n            return;\n        }\n        dispatch(\n            assignToContractRequest({\n                companyId: partnerId,\n                changeContractRequest,\n                contractName,\n            }),\n        );\n    };\n\n    const handleConfirmChangeRate = (changeRateRequest: ApiChangeRateVehiclesRequestT) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleConfirmChangeRate');\n            return;\n        }\n        dispatch(\n            changeRateTrailersRequest({\n                companyId: partnerId,\n                changeRateVehiclesRequest: changeRateRequest,\n            }),\n        );\n    };\n\n    const exportXLSRequestStatus = useSelector(selectTrailersExportXLSRequest(partnerId));\n\n    const handleExportXLS = () => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleExportXLS');\n            return;\n        }\n        dispatch(exportXLSTrailers(partnerId, {}));\n    };\n\n    const handleFilteredExportXLS = () => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleFilteredExportXLS');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, selectedSort, activeTab);\n        dispatch(exportXLSTrailers(partnerId, query));\n    };\n\n    const openLeftSidebar = useOpenLeftSidebar();\n    const isOpenedFilters = useCheckOpenedSidebar(CommonSidebarsTypeEnum.trailerFilters);\n    const openFilters = React.useCallback(() => {\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.trailerFilters,\n        });\n    }, [openLeftSidebar]);\n\n    const handleConfirmActivate = (\n        _: ActivateAssetConfirmationDataT,\n        activateVehicleRequest: ActivateTrailersRequestT,\n    ): void => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleConfirmActivate');\n            return;\n        }\n        dispatch(activationTrailersRequest(partnerId, activateVehicleRequest));\n    };\n\n    const handleConfirmArchive = (data: ArchiveAssetConfirmationDataT, reason: string): void => {\n        const ids = data.assets.map((asset) => asset.id);\n        dispatch(archiveTrailersRequest(ids, data.companyId, reason));\n    };\n\n    const showAddSidebar = () => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in showAddSidebar');\n            return;\n        }\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.addTrailer,\n            partnerId,\n        });\n    };\n\n    const renderTableMessage = () => {\n        if (!checkNeedRenderEmptyState(trailers, requestStatus)) {\n            return null;\n        }\n\n        if (requestStatus?.error) {\n            return <TableError error={requestStatus?.error} onRetry={handleRefreshOnError} />;\n        }\n\n        const { hasPrimaryQueryFilters, hasSecondaryQueryFilters } = checkFilters(\n            [query[QueryKeysEnum.trailersTab] !== TabEnum.active ? query[QueryKeysEnum.trailersTab] : null],\n            [query[QueryKeysEnum.trailersFilters]],\n        );\n\n        if (requestStatus?.ok && hasSecondaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.notFound}\n                    title={t('common:trailers-page.table.messages.not-found.title')}\n                    description={t('common:trailers-page.table.messages.not-found.description')}\n                    isShowAction\n                    actionTitle={t('common:trailers-page.table.messages.not-found.action')}\n                    actionTheme={ButtonThemeEnum.secondary}\n                    onActionClick={resetQueryFilters}\n                    testSelector=\"empty-state-has-secondary-filters\"\n                />\n            );\n        }\n\n        if (requestStatus?.ok && hasPrimaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.empty}\n                    title={t('common:trailers-page.table.messages.empty-quick-filters.title')}\n                    description=\"\"\n                    testSelector=\"empty-state-has-primary-filters\"\n                    isShowAction={false}\n                />\n            );\n        }\n\n        return (\n            <TableMessage\n                iconType={TableMessageIconsEnum.empty}\n                title={t('common:trailers-page.table.messages.empty.title')}\n                description={t('common:trailers-page.table.messages.empty.description')}\n                isShowAction={!!partnerPermissions?.canEditTrailers}\n                actionTitle={t('common:trailers-page.table.messages.empty.action')}\n                onActionClick={showAddSidebar}\n                testSelector=\"empty\"\n            />\n        );\n    };\n\n    return (\n        <>\n            <ContentMargins>\n                {!isPartner && tabsNode}\n                <ListPageLayout>\n                    <ListPageHeaderLayout\n                        withTopPadding\n                        leftToolsNode={\n                            <>\n                                {isPartner && tabsNode}\n                                <FiltersTrigger\n                                    title={t('common:trailers-page.filters.trigger')}\n                                    isActive={isOpenedFilters}\n                                    onClick={openFilters}\n                                />\n                                <SortDropdown\n                                    overlayPosition={SortDropdownOverlayPositionEnum.left}\n                                    selectedValue={selectedSort}\n                                    options={sortOptions}\n                                    onSelect={handleSelectSort}\n                                />\n                            </>\n                        }\n                        rightToolsNode={\n                            <>\n                                {!!selectedTrailersSet.size && (\n                                    <TableActions\n                                        options={tableActionOptions}\n                                        trigger={t('common:trailers-page.actions-trigger')}\n                                        isDisabled={isDisabledTableActions}\n                                    />\n                                )}\n                                <AssetsXLSDropdownControl\n                                    isAllowExport\n                                    isAllowImport={!!partnerPermissions.canImportTrailers}\n                                    isLoading={exportXLSRequestStatus.loading}\n                                    onExportFilteredAssets={handleFilteredExportXLS}\n                                    onExportAssets={handleExportXLS}\n                                    onImportAssets={importXLSAssetsModalDialog.onStartImportXLS}\n                                />\n                                {partnerPermissions?.canEditTrailers ? (\n                                    <Button theme={ButtonThemeEnum.primary} type=\"submit\" onClick={showAddSidebar}>\n                                        {t('common:trailers-page.add-trailer.trigger')}\n                                    </Button>\n                                ) : null}\n                            </>\n                        }\n                        filterTagsNode={\n                            <SelectedFilters\n                                isCompact\n                                queryFilters={queryFilters}\n                                setQueryFilters={handleSetQueryFilters}\n                            />\n                        }\n                    />\n                    {renderTableMessage()}\n                    <TrailersTable\n                        onOpenUserDetails={onOpenUserDetails}\n                        trailers={trailers}\n                        onSelectRow={handleSelectRow}\n                        selectedTrailersSet={selectedTrailersSet}\n                        onSelectTrailers={setSelectedTrailersSet}\n                        isLoading={requestStatus?.loading}\n                        allowedCheckboxes={!!partnerPermissions?.canEditTrailers}\n                        activeTab={activeTab}\n                    />\n                </ListPageLayout>\n            </ContentMargins>\n            <StickyFooter>\n                <Pagination current={pageNumber} count={total?.pageCount} goToPage={goToPage} />\n            </StickyFooter>\n            <ArchiveAssetConfirmationModal\n                assetType={AssetTypeEnum.trailer}\n                data={archiveAssetConfirmation.data}\n                onConfirm={handleConfirmArchive}\n                onCancel={archiveAssetConfirmation.onCancel}\n                onClose={archiveAssetConfirmation.onClose}\n                requestStatus={updateRequestStatus}\n            />\n            <ActivateAssetDialogModal\n                companyId={partnerId}\n                assetType={AssetTypeEnum.trailer}\n                data={activateAssetConfirmation.data}\n                onConfirm={handleConfirmActivate}\n                onCancel={activateAssetConfirmation.onCancel}\n                onClose={activateAssetConfirmation.onClose}\n                requestStatus={updateRequestStatus}\n            />\n            <ImportXLSAssetsDialogModal\n                assetType={AssetTypeEnum.trailer}\n                requestStatus={importXLSRequestStatus}\n                data={importXLSAssetsModalDialog.data}\n                onClose={importXLSAssetsModalDialog.onClose}\n                onCancel={importXLSAssetsModalDialog.onCancel}\n                onImportXLS={handleImportXLS}\n            />\n            <ChangeRateOrContractAssetDialogModal\n                companyId={partnerId}\n                assetType={AssetTypeEnum.trailer}\n                data={changeRateOrContractConfirmation.data}\n                onChangeContract={handleConfirmChangeContract}\n                onChangeRate={handleConfirmChangeRate}\n                onCancel={changeRateOrContractConfirmation.onCancel}\n                onClose={changeRateOrContractConfirmation.onClose}\n                requestStatus={updateRequestStatus}\n            />\n        </>\n    );\n});\n\nexport default TrailersPageLayout;\n","import { v4 as uuidv4 } from 'uuid';\n\nexport const generatePointFakeId = (prefix?: string): string => {\n    return `${prefix ? `${prefix}-` : ''}-fake-id-${uuidv4()}`;\n};\n","import * as React from 'react';\n\nimport styles from './Alert.scss';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\n\nimport TooltipIconTrigger from 'design-system/components/Tooltip/TooltipIconTrigger/TooltipIconTrigger';\nimport { AlertContainer } from './AlertContainer/AlertContainer';\nimport { AlertProgressBar } from './AlertProgressBar/AlertProgressBar';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\n\nexport enum AlertThemeEnum {\n    brandAccent = 'brand-accent',\n    tomatoRed = 'tomato-red',\n    charcoal = 'charcoal',\n    orange = 'orange',\n    gray = 'gray',\n    slate = 'slate',\n}\n\nexport enum AlertEmotionEnum {\n    positive = 'positive',\n    attention = 'attention',\n    normal = 'normal',\n}\n\nexport const alertThemeMapByEmotion: Record<AlertEmotionEnum, AlertThemeEnum> = {\n    [AlertEmotionEnum.positive]: AlertThemeEnum.brandAccent,\n    [AlertEmotionEnum.attention]: AlertThemeEnum.orange,\n    [AlertEmotionEnum.normal]: AlertThemeEnum.slate,\n};\n\nexport enum AlertSizeEnum {\n    small = 'small',\n    medium = 'medium',\n    mediumLarge = 'medium-large',\n}\n\nexport type PropsT = {\n    className?: string;\n    icon: React.ReactNode;\n    onClose?: () => void;\n    size: AlertSizeEnum;\n    theme: AlertThemeEnum;\n    actionText?: React.ReactNode;\n    onClickAction?: () => void;\n    isAlignItemsCenter?: boolean;\n    controlsNode?: React.ReactNode;\n    tooltipNode?: React.ReactNode;\n    footerNode?: React.ReactNode;\n};\n\nconst cx = classNames.bind(styles);\n\nconst closeIconFillColorMap: Record<AlertThemeEnum, StyleGuideColorsEnum> = {\n    [AlertThemeEnum.brandAccent]: StyleGuideColorsEnum.white,\n    [AlertThemeEnum.tomatoRed]: StyleGuideColorsEnum.white,\n    [AlertThemeEnum.charcoal]: StyleGuideColorsEnum.white,\n    [AlertThemeEnum.orange]: StyleGuideColorsEnum.white,\n    [AlertThemeEnum.gray]: StyleGuideColorsEnum.white,\n    [AlertThemeEnum.slate]: StyleGuideColorsEnum.white,\n};\n\nconst AlertInner: React.FC<PropsT> = React.memo((props) => {\n    const {\n        children,\n        className,\n        icon,\n        theme,\n        size,\n        onClose,\n        onClickAction,\n        actionText,\n        isAlignItemsCenter,\n        controlsNode,\n        tooltipNode,\n        footerNode,\n    } = props;\n\n    const closeIconFillColor = closeIconFillColorMap[theme];\n\n    return (\n        <div\n            className={cs(\n                cx('inner', {\n                    [`inner--theme-${theme}`]: true,\n                    [`inner__size-${size}`]: true,\n                }),\n                className,\n            )}\n        >\n            <div\n                className={cx('row', {\n                    'row--is-align-items-center': !!isAlignItemsCenter,\n                })}\n            >\n                <div\n                    className={cx('icon', {\n                        [`icon__size-${size}`]: true,\n                    })}\n                >\n                    {icon}\n                </div>\n                <div\n                    className={cx('text', {\n                        [`text__size-${size}`]: true,\n                    })}\n                >\n                    {children}\n                </div>\n                {actionText && onClickAction ? (\n                    <Button\n                        theme={ButtonThemeEnum.transparentDarkAlpha}\n                        noPaddings\n                        onClick={onClickAction}\n                        className={cx('action')}\n                        contentClassName={cx('action-text')}\n                    >\n                        {actionText}\n                    </Button>\n                ) : null}\n                {tooltipNode && (\n                    <Tooltip\n                        position={TooltipPositionEnum.centerLeft}\n                        theme={TooltipThemeEnum.black}\n                        tooltipNode={tooltipNode}\n                    >\n                        {(isShow) => <TooltipIconTrigger className={cx('tooltip')} isShow={isShow} />}\n                    </Tooltip>\n                )}\n                {controlsNode}\n                {onClose && (\n                    <Button\n                        theme={ButtonThemeEnum.transparentDarkAlpha}\n                        noPaddings\n                        onClick={onClose}\n                        className={cx('close')}\n                        contentClassName={cx('close-button-inner')}\n                    >\n                        <CloseIcon fillColor={closeIconFillColor} />\n                    </Button>\n                )}\n            </div>\n            {footerNode}\n        </div>\n    );\n});\n\nconst Alert = AlertInner as typeof AlertInner & {\n    Container: typeof AlertContainer;\n    ProgressBar: typeof AlertProgressBar;\n};\n\nAlert.Container = AlertContainer;\nAlert.ProgressBar = AlertProgressBar;\n\nexport default Alert;\n","import isNumber from 'lodash/isNumber';\n\nexport const uppercaseFormatter = (value: string): string => value.toUpperCase();\n\nexport const uppercaseFirstCharacterFormatter = (value: string): string => {\n    if (!value) {\n        return value;\n    }\n\n    return value[0].toUpperCase() + value.slice(1);\n};\n\nexport const simpleNumberFormatter = (value: number | null | undefined): string => {\n    if (!isNumber(value)) {\n        return '';\n    }\n\n    return String(value);\n};\n\nexport const simpleStringFormatter = (value: string | null | undefined): string => {\n    return (value || '').trim();\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"ChangeRateOrContractAssetForm__form___TVfw_\",\"fadeIn\":\"ChangeRateOrContractAssetForm__fadeIn___xWJNS\",\"blinking\":\"ChangeRateOrContractAssetForm__blinking___RWHso\"};","// extracted by mini-css-extract-plugin\nexport default {\"loader\":\"AdditionalServices__loader___RH9sC\",\"fadeIn\":\"AdditionalServices__fadeIn___sXRyi\",\"blinking\":\"AdditionalServices__blinking___YcZUE\"};","import {\n    FETCH_SETTINGS_BEGIN,\n    FETCH_SETTINGS_ERROR,\n    FETCH_SETTINGS_SUCCESS,\n    SettingsActionT,\n    SettingsStateT,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\n\nconst initialState: SettingsStateT = {\n    fetchRequest: requestStatus.initial,\n    data: {},\n};\n\nexport default (state = initialState, action: SettingsActionT): SettingsStateT => {\n    switch (action.type) {\n        case FETCH_SETTINGS_BEGIN: {\n            return {\n                ...state,\n                fetchRequest: requestStatus.loading,\n            };\n        }\n\n        case FETCH_SETTINGS_SUCCESS: {\n            const { settings } = action;\n\n            return {\n                ...state,\n                data: settings,\n                fetchRequest: requestStatus.ok,\n            };\n        }\n\n        case FETCH_SETTINGS_ERROR: {\n            const { error } = action;\n            return {\n                ...state,\n                fetchRequest: requestStatus.setError(error),\n            };\n        }\n\n        default: {\n            return state;\n        }\n    }\n};\n","import React from 'react';\n\nexport type OrderCreationPercentContextT = {\n    percent: number;\n    setPercent: (percent: number) => void;\n};\n\nconst OrderCreationPercentContext = React.createContext<OrderCreationPercentContextT>({\n    percent: 0,\n    setPercent: () => {\n        // nothing\n    },\n});\n\nexport default OrderCreationPercentContext;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './LinkButton.scss';\nimport cs from 'classnames';\n\nimport noop from 'lodash/noop';\n\nconst cx = classNames.bind(styles);\n\nexport enum LinkButtonThemeEnum {\n    brandDark = 'brand-dark',\n}\n\nexport enum LinkButtonHeightEnum {\n    regular = 'regular',\n    narrow = 'narrow',\n}\n\nexport type LinkButtonPropsT = {\n    className?: string;\n    theme?: LinkButtonThemeEnum;\n    height?: LinkButtonHeightEnum;\n    onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n    isDisabled?: boolean;\n    leftIcon?: React.ReactNode;\n    rightIcon?: React.ReactNode;\n    testSelector?: string;\n};\n\nconst LinkButton: React.FC<LinkButtonPropsT> = (props) => {\n    const {\n        className,\n        theme = LinkButtonThemeEnum.brandDark,\n        height = LinkButtonHeightEnum.regular,\n        onClick,\n        isDisabled,\n        children,\n        leftIcon,\n        rightIcon,\n        testSelector,\n    } = props;\n\n    const isClickable = !isDisabled;\n\n    return (\n        <div\n            className={cs(\n                cx('button', {\n                    'button--isClickable': isClickable,\n                    'button--isDisabled': isDisabled,\n                    [`button--height-${height}`]: true,\n                }),\n                className,\n            )}\n            data-test-selector={`${testSelector}_link`}\n            onClick={isClickable ? onClick : noop}\n        >\n            <div className={cx('inner')}>\n                {leftIcon && (\n                    <div\n                        className={cx('icon', {\n                            'icon--isLeft': true,\n                            'icon--isHidden': false,\n                        })}\n                    >\n                        {leftIcon}\n                    </div>\n                )}\n                <div\n                    className={cx('text', {\n                        [`text--theme-${theme}`]: true,\n                        'text--isHidden': false,\n                    })}\n                >\n                    {children}\n                    <div\n                        className={cx('border', {\n                            [`border--height-${height}`]: true,\n                            [`border--theme-${theme}`]: true,\n                        })}\n                    />\n                </div>\n                {rightIcon && (\n                    <div\n                        className={cx('icon', {\n                            'icon--isRight': true,\n                            'icon--isHidden': false,\n                        })}\n                    >\n                        {rightIcon}\n                    </div>\n                )}\n            </div>\n        </div>\n    );\n};\n\nexport default LinkButton;\n","import { ApiTransportationOrderFullT } from 'common/utils/api/models';\n\nexport const findTourActualTransportOrders = (\n    transportOrders: Array<ApiTransportationOrderFullT> | null | undefined,\n    tourId?: TourIdT | null | undefined,\n): {\n    carrierTransportOrder: ApiTransportationOrderFullT | null;\n    truckTransportOrder: ApiTransportationOrderFullT | null;\n    trailerTransportOrder: ApiTransportationOrderFullT | null;\n    trainTransportOrder: ApiTransportationOrderFullT | null;\n} => {\n    const truckTransportOrder =\n        transportOrders?.find((transportOrder) => {\n            return transportOrder?.tourId === tourId && transportOrder?.actual && transportOrder?.truck?.id;\n        }) || null;\n\n    const spotCarrierTransportOrder =\n        transportOrders?.find((transportOrder) => {\n            return (\n                transportOrder?.spot &&\n                transportOrder?.actual &&\n                transportOrder?.tourId === tourId &&\n                transportOrder?.carrier\n            );\n        }) || null;\n\n    const trailerTransportOrder =\n        transportOrders?.find((transportOrder) => {\n            return transportOrder?.tourId === tourId && transportOrder?.actual && transportOrder?.trailer?.id;\n        }) || null;\n\n    const trainTransportOrder =\n        transportOrders?.find((transportOrder) => {\n            return (\n                transportOrder?.tourId === tourId &&\n                transportOrder?.actual &&\n                transportOrder?.truck?.id &&\n                transportOrder?.trailer?.id\n            );\n        }) || null;\n\n    return {\n        carrierTransportOrder: truckTransportOrder || spotCarrierTransportOrder,\n        truckTransportOrder,\n        trailerTransportOrder,\n        trainTransportOrder,\n    };\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"ExpiredPartnerShipperContractCard__inner___KTseR\",\"fadeIn\":\"ExpiredPartnerShipperContractCard__fadeIn____3QdN\",\"blinking\":\"ExpiredPartnerShipperContractCard__blinking___eGAjm\"};","// extracted by mini-css-extract-plugin\nexport default {\"cards\":\"RFQStatisticsSidebarContent__cards___cjWzl\",\"actions\":\"RFQStatisticsSidebarContent__actions___wq7fn\",\"card\":\"RFQStatisticsSidebarContent__card___CnMyT\",\"card__title\":\"RFQStatisticsSidebarContent__card__title___hIMCb\",\"loader\":\"RFQStatisticsSidebarContent__loader___fHNXU\",\"empty-state\":\"RFQStatisticsSidebarContent__empty-state___UAyHn\",\"fadeIn\":\"RFQStatisticsSidebarContent__fadeIn___ff_vN\",\"blinking\":\"RFQStatisticsSidebarContent__blinking___YaqQ4\"};","import { RequestStatusT } from 'common/utils/request-status';\nimport { AnyNotificationT, FetchNotificationsPageQueryT } from './models';\nimport { PageResponseT, PaginationStateT } from 'common/utils/pagination/models';\n\nexport const SEND_TEST_NOTIFICATION = 'common/notifications/SEND_TEST_NOTIFICATION';\n\nexport const RECEIVED_NOTIFICATIONS = 'common/notifications/RECEIVED_NOTIFICATIONS';\n\nexport const FETCH_UNREAD_NOTIFICATIONS_REQUEST = 'common/notifications/FETCH_UNREAD_NOTIFICATIONS_REQUEST';\nexport const FETCH_UNREAD_NOTIFICATIONS_REQUEST_BEGIN = 'common/notifications/FETCH_UNREAD_NOTIFICATIONS_REQUEST_BEGIN';\nexport const FETCH_UNREAD_NOTIFICATIONS_REQUEST_SUCCESS =\n    'common/notifications/FETCH_UNREAD_NOTIFICATIONS_REQUEST_SUCCESS';\nexport const FETCH_UNREAD_NOTIFICATIONS_REQUEST_ERROR = 'common/notifications/FETCH_UNREAD_NOTIFICATIONS_REQUEST_ERROR';\n\nexport const FETCH_NOTIFICATIONS_PAGE_REQUEST = 'common/notifications/FETCH_NOTIFICATIONS_PAGE_REQUEST';\nexport const FETCH_NOTIFICATIONS_PAGE_REQUEST_BEGIN = 'common/notifications/FETCH_NOTIFICATIONS_PAGE_REQUEST_BEGIN';\nexport const FETCH_NOTIFICATIONS_PAGE_REQUEST_ERROR = 'common/notifications/FETCH_NOTIFICATIONS_PAGE_REQUEST_ERROR';\nexport const FETCH_NOTIFICATIONS_PAGE_REQUEST_SUCCESS = 'common/notifications/FETCH_NOTIFICATIONS_PAGE_REQUEST_SUCCESS';\n\nexport const MARK_AS_READ_REQUEST = 'common/notifications/MARK_AS_READ_REQUEST';\nexport const MARK_AS_READ_REQUEST_BEGIN = 'common/notifications/MARK_AS_READ_REQUEST_BEGIN';\nexport const MARK_AS_READ_REQUEST_SUCCESS = 'common/notifications/MARK_AS_READ_REQUEST_SUCCESS';\nexport const MARK_AS_READ_REQUEST_ERROR = 'common/notifications/MARK_AS_READ_REQUEST_ERROR';\n\nexport const RESET_NOTIFICATION_PAGES = 'common/notifications/RESET_NOTIFICATION_PAGES';\n\nexport type ReceivedNotificationsActionT = {\n    type: typeof RECEIVED_NOTIFICATIONS;\n    notifications: AnyNotificationT[];\n};\n\nexport type SendTestNotificationActionT = {\n    type: typeof SEND_TEST_NOTIFICATION;\n    text: string;\n};\n\nexport type FetchUnreadNotificationsActionT = {\n    type: typeof FETCH_UNREAD_NOTIFICATIONS_REQUEST;\n};\n\nexport type FetchUnreadNotificationsBeginActionT = {\n    type: typeof FETCH_UNREAD_NOTIFICATIONS_REQUEST_BEGIN;\n};\n\nexport type FetchUnreadNotificationsSuccessActionT = {\n    type: typeof FETCH_UNREAD_NOTIFICATIONS_REQUEST_SUCCESS;\n    notifications: AnyNotificationT[] | null;\n};\n\nexport type FetchUnreadNotificationsErrorActionT = {\n    type: typeof FETCH_UNREAD_NOTIFICATIONS_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type FetchNotificationsPageActionT = {\n    type: typeof FETCH_NOTIFICATIONS_PAGE_REQUEST;\n    pageNumber: PageNumberT;\n    query: FetchNotificationsPageQueryT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchNotificationsPageBeginActionT = {\n    type: typeof FETCH_NOTIFICATIONS_PAGE_REQUEST_BEGIN;\n    pageNumber: PageNumberT;\n    query: FetchNotificationsPageQueryT;\n};\n\nexport type FetchNotificationsPageSuccessActionT = {\n    type: typeof FETCH_NOTIFICATIONS_PAGE_REQUEST_SUCCESS;\n    query: FetchNotificationsPageQueryT;\n    pageNumber: PageNumberT;\n    pageResponse: PageResponseT<AnyNotificationT> | null;\n};\n\nexport type FetchNotificationsErrorActionT = {\n    type: typeof FETCH_NOTIFICATIONS_PAGE_REQUEST_ERROR;\n    query: FetchNotificationsPageQueryT;\n    pageNumber: PageNumberT;\n    error: Error;\n};\n\nexport type MarkAsReadActionT = {\n    type: typeof MARK_AS_READ_REQUEST;\n    ids: NotificationIdT[];\n    isAll?: boolean;\n};\n\nexport type MarkAsReadBeginActionT = {\n    type: typeof MARK_AS_READ_REQUEST_BEGIN;\n};\n\nexport type MarkAsReadSuccessActionT = {\n    type: typeof MARK_AS_READ_REQUEST_SUCCESS;\n    ids: NotificationIdT[];\n};\n\nexport type MarkAsReadErrorActionT = {\n    type: typeof MARK_AS_READ_REQUEST_ERROR;\n    error: Error;\n};\n\nexport type ResetNotificationPagesT = {\n    type: typeof RESET_NOTIFICATION_PAGES;\n};\n\nexport type NotificationsActionT =\n    | ReceivedNotificationsActionT\n    | SendTestNotificationActionT\n    | FetchUnreadNotificationsBeginActionT\n    | FetchUnreadNotificationsSuccessActionT\n    | FetchUnreadNotificationsErrorActionT\n    | FetchUnreadNotificationsActionT\n    | FetchNotificationsPageActionT\n    | FetchNotificationsPageBeginActionT\n    | FetchNotificationsPageSuccessActionT\n    | FetchNotificationsErrorActionT\n    | MarkAsReadActionT\n    | MarkAsReadBeginActionT\n    | MarkAsReadSuccessActionT\n    | MarkAsReadErrorActionT\n    | ResetNotificationPagesT;\n\nexport type NotificationsStateT = PaginationStateT<AnyNotificationT, FetchNotificationsPageQueryT> & {\n    unreadNotifications: {\n        ids: AnyNotificationT['id'][];\n        byId: Record<NonNullable<AnyNotificationT['id']>, AnyNotificationT>;\n        fetchRequest: RequestStatusT;\n    };\n    markAsReadRequest: RequestStatusT;\n    currentPageNumber: number;\n};\n","import * as React from 'react';\n\nimport { Route, Switch } from 'react-router-dom';\n\nimport { BrokerUsersRoutesEnum } from 'broker-admin/constants';\nimport ScrollableContent from 'common/layouts/LeftMenuLayout/ScrollableContent/ScrollableContent';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport TopBar from 'common/layouts/LeftMenuLayout/TopBar/TopBar';\nimport TopBarContent from 'common/layouts/LeftMenuLayout/TopBarContent/TopBarContent';\nimport NotificationsBarTrigger from 'common/components/notifications/NotificationsBarTrigger/NotificationsBarTrigger';\nimport SideBars from 'broker-admin/layouts/SideBars/SideBars';\nimport { useTranslation } from 'react-i18next';\nimport BrokerTeamsLayout from './BrokerTeamsLayout/BrokerTeamsLayout';\nimport BrokerUsersLayout from './BrokerUsersLayout/BrokerUsersLayout';\nimport BrokerUsersTab, { TabEnum } from './BrokerUsersTab/BrokerUsersTab';\nimport { useSelector } from 'react-redux';\nimport { selectCurrentCompany } from 'common/store/company/selectors';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport PartnerContext, { PartnerContextT } from 'common/contexts/partner-context';\n\ntype PropsT = {};\n\nconst BrokerUsersPage: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n\n    const company = useSelector(selectCurrentCompany);\n    const companyId = company?.id || null;\n\n    const partnerContextValue = React.useMemo((): PartnerContextT => {\n        return {\n            partnerType: PartnerTypeEnum.broker,\n            partnerId: companyId,\n        };\n    }, [companyId]);\n\n    return (\n        <PartnerContext.Provider value={partnerContextValue}>\n            <ScrollableContent>\n                <PageTitle title={t('page-titles.broker-users')} />\n                <ContentMargins>\n                    <TopBar>\n                        <TopBarContent title={t('broker-users.title')} rightNode={<NotificationsBarTrigger />} />\n                    </TopBar>\n                    <Switch>\n                        <Route path={BrokerUsersRoutesEnum.brokerTeams} exact>\n                            <>\n                                <BrokerUsersTab activeTab={TabEnum.teams} />\n                                <BrokerTeamsLayout />\n                            </>\n                        </Route>\n                        <Route path=\"*\">\n                            <>\n                                <BrokerUsersTab activeTab={TabEnum.users} />\n                                <BrokerUsersLayout />\n                            </>\n                        </Route>\n                    </Switch>\n                </ContentMargins>\n                <SideBars />\n            </ScrollableContent>\n        </PartnerContext.Provider>\n    );\n});\n\nexport default BrokerUsersPage;\n","import React from 'react';\nimport { RoutePointTypeEnum } from '../../../../store/order-edit-context/models';\nimport noop from 'lodash/noop';\nimport { BoundPointT } from 'common/components/maps/MapBound/MapBound';\n\nexport type MapRoutePointT = {\n    id: RoutePointIdT;\n    isNew: boolean;\n    type: RoutePointTypeEnum;\n    number: number;\n    location: LocationT | null;\n    isDraggable: boolean;\n    hasError: boolean;\n};\n\nexport type OnMapClickCallbackT = (location: LocationT | null) => void;\nexport type OnDragEndDnDCallbackT = (id: RoutePointIdT, location: LocationT | null) => void;\nexport type OnSetMapBoundingBoxCallbackT = (boundPoints: Array<BoundPointT> | null) => void;\n\nexport type SyncAssignmentFormMapStateContextValueT = {\n    onSetMapBoundingBox: { callback: OnSetMapBoundingBoxCallbackT } | null;\n    setOnSetMapBoundingBox: (params: { callback: OnSetMapBoundingBoxCallbackT }) => void;\n\n    mapRoutePoints: Array<MapRoutePointT>;\n    setMapRoutePoints: (routePoints: Array<MapRoutePointT>) => void;\n\n    onMapClickCallback: { callback: OnMapClickCallbackT } | null;\n    setOnMapClickCallback: (params: { callback: OnMapClickCallbackT }) => void;\n\n    onDragEndDnDCallback: { callback: OnDragEndDnDCallbackT } | null;\n    setOnDragEndDnDCallback: (params: { callback: OnDragEndDnDCallbackT }) => void;\n};\n\nconst SyncRouteEditFormMapStateContext = React.createContext<SyncAssignmentFormMapStateContextValueT>({\n    onSetMapBoundingBox: null,\n    setOnSetMapBoundingBox: noop,\n\n    mapRoutePoints: [],\n    setMapRoutePoints: noop,\n\n    onMapClickCallback: null,\n    setOnMapClickCallback: noop,\n\n    onDragEndDnDCallback: null,\n    setOnDragEndDnDCallback: noop,\n});\n\nexport { SyncRouteEditFormMapStateContext };\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    fillColor: StyleGuideColorsEnum;\n    className?: string;\n};\n\nconst FewCountriesIcon: React.FC<PropsT> = (props) => {\n    const { size, fillColor, className } = props;\n\n    return (\n        <svg width={size} height={size} viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\" className={className}>\n            <path\n                d=\"M18 4a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1h-4a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1h4zm-6 0a1 1 0 0 1 1 1v10a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h10z\"\n                fill={fillColor}\n                fillRule=\"evenodd\"\n            />\n        </svg>\n    );\n};\n\nFewCountriesIcon.displayName = 'FewCountriesIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n};\n\nexport { storyProps };\nexport default FewCountriesIcon;\n","import * as React from 'react';\nimport { useMemo, useState } from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './BrokerOrderAssignmentPage.scss';\n\nimport { useParams } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport history, { goBackIfHasRePath } from 'common/utils/history';\nimport useQuery from 'common/utils/hooks/useQuery';\nimport GoogleMapContextProvider from 'common/components/maps/GoogleMapContextProvider/GoogleMapContextProvider';\nimport HorizontalColumnsLayout from 'common/layouts/HorizontalColumnsLayout/HorizontalColumnsLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport {\n    selectBrokerOrderDetails,\n    selectBrokerOrderDetailsRequestStatus,\n} from 'broker-admin/store/broker-order-details/selectors';\nimport { fetchBrokerOrderDetails } from 'broker-admin/store/broker-order-details/slice';\nimport AssignmentMap from './AssignmentMap/AssignmentMap';\nimport {\n    initBrokerOrderAssignment,\n    resetBrokerOrderAssignment,\n} from 'broker-admin/store/broker-order-assigment/actions';\nimport { resetCarrierUtilization } from 'common/store/carriers-utilization/actions';\nimport {\n    selectAssignmentRequestStatus,\n    selectShowSelectedAssetSchedules,\n} from 'broker-admin/store/broker-order-assigment/selectors';\nimport SideBarLayoutContextWrap from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayoutContextWrap/SideBarLayoutContextWrap';\nimport SideBarHeaderRequestStatus from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarHeaderRequestStatus/SideBarHeaderRequestStatus';\nimport EntitySidebarSkeleton from 'common/components/entity-details/EntitySidebarSkeleton/EntitySidebarSkeleton';\nimport SideBarRequestStatus from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarRequestStatus/SideBarRequestStatus';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport RightSidebarLayout from 'common/layouts/RightSidebarLayout/RightSidebarLayout';\nimport AssignmentAssetSchedules from './AssignmentAssetSchedules/AssignmentAssetSchedules';\nimport SideBars from 'broker-admin/layouts/SideBars/SideBars';\nimport TimeZoneContext, { TimeZoneContextT, TimeZoneContextValueT, TimeZoneEnum } from './contexts/timezone-context';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport AssignmentForm from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/AssignmentForm/AssignmentForm';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { stateMachineRefreshChannel } from 'common/store/state-machine/channels';\nimport AssetsSelectionContext, {\n    AssetsSelectionContextT,\n    AssetsSelectionContextValueT,\n} from 'broker-admin/layouts/BrokerOrdersPage/BrokerOrderAssignmentPage/contexts/assets-selection-context';\nimport { SyncAssignmentFormMapStateContext } from './contexts/sync-map-state';\nimport { useSyncMapState } from './hooks/useSyncMapState';\nimport { BrokerOrdersRoutesEnum } from 'broker-admin/constants';\nimport { ExtractRouterRouteParamsT } from 'common/utils/extract-router-route-params-t';\nimport useOnlyChangesEffect from 'common/utils/hooks/useOnlyChangesEffect';\nimport { logWarning } from 'common/utils/logger';\nimport { QueryKeysEnum, QueryT } from './query-models';\nimport useSideBarFooterAlertsContextValue from 'common/utils/hooks/useSideBarFooterAlertsContextValue';\nimport SideBarFooterAlertsContext from 'common/layouts/LeftMenuLayout/SideBarLayout/contexts/side-bar-footer-alerts-context';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst BrokerOrderAssignmentPage: React.FC<PropsT> = React.memo(() => {\n    const params = useParams<ExtractRouterRouteParamsT<BrokerOrdersRoutesEnum.brokerOrderAssignment>>();\n    const { brokerOrderId, tourId } = params;\n\n    const query = useQuery<QueryT>();\n    const isFromBrokerTour = Boolean(query?.[QueryKeysEnum.fromBrokerTour]);\n\n    const mapStateContextValue = useSyncMapState();\n    const [timeZoneContextValue, setTimeZoneContextValue] = useState<TimeZoneContextValueT>({\n        utcOffsetMin: null,\n        timeZone: TimeZoneEnum.accountTimezone,\n    });\n\n    const timeZoneContext = useMemo((): TimeZoneContextT => {\n        return {\n            value: timeZoneContextValue,\n            setValue: setTimeZoneContextValue,\n        };\n    }, [timeZoneContextValue, setTimeZoneContextValue]);\n\n    const [assetsSelectionContextValue, setAssetsSelectionContextValue] = useState<AssetsSelectionContextValueT>({\n        isBlockedSelectTruck: false,\n        isBlockedSelectTrailer: false,\n    });\n\n    const assetsSelectionContext = useMemo((): AssetsSelectionContextT => {\n        return {\n            value: assetsSelectionContextValue,\n            setValue: setAssetsSelectionContextValue,\n        };\n    }, [assetsSelectionContextValue, setAssetsSelectionContextValue]);\n\n    const { t } = useTranslation();\n\n    const brokerOrderDetails = useSelector(selectBrokerOrderDetails(brokerOrderId));\n    const brokerOrderDetailsRequestStatus = useSelector(selectBrokerOrderDetailsRequestStatus(brokerOrderId));\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        if (brokerOrderDetails) {\n            return;\n        }\n\n        if (brokerOrderId) {\n            dispatch(fetchBrokerOrderDetails({ id: brokerOrderId }));\n        }\n    }, [dispatch, brokerOrderDetails, brokerOrderId]);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        if (brokerOrderId) {\n            dispatch(fetchBrokerOrderDetails({ id: brokerOrderId, options: { isForceUpdate: true } }));\n        }\n    }, [dispatch, brokerOrderId]);\n\n    const refreshBrokerOrderHandler = React.useCallback(() => {\n        if (brokerOrderId) {\n            dispatch(fetchBrokerOrderDetails({ id: brokerOrderId }));\n        }\n    }, [dispatch, brokerOrderId]);\n    useChannelSubscribe(stateMachineRefreshChannel, refreshBrokerOrderHandler);\n\n    const handleClose = () => {\n        goBackIfHasRePath(() => {\n            if (isFromBrokerTour && tourId) {\n                history.push(urlFactory.brokerTourDetails(tourId));\n                return;\n            }\n\n            if (!brokerOrderId) {\n                logWarning('Empty brokerOrderId');\n                return;\n            }\n            history.push(urlFactory.brokerOrderDetails(brokerOrderId));\n        });\n    };\n\n    React.useEffect(() => {\n        dispatch(initBrokerOrderAssignment());\n        dispatch(fetchCountriesDict());\n\n        return () => {\n            dispatch(resetCarrierUtilization());\n            dispatch(resetBrokerOrderAssignment());\n        };\n    }, [dispatch]);\n\n    const assignmentRequestStatus = useSelector(selectAssignmentRequestStatus);\n    useOnlyChangesEffect(() => {\n        if (assignmentRequestStatus.ok) {\n            handleClose();\n            dispatch(resetCarrierUtilization());\n            dispatch(resetBrokerOrderAssignment());\n            // reset\n        }\n    }, [assignmentRequestStatus.ok]);\n\n    const isShowSelectedAssetSchedules = useSelector(selectShowSelectedAssetSchedules);\n\n    const sideBarFooterAlertsContextValue = useSideBarFooterAlertsContextValue();\n\n    return (\n        <SideBarFooterAlertsContext.Provider value={sideBarFooterAlertsContextValue}>\n            <SyncAssignmentFormMapStateContext.Provider value={mapStateContextValue}>\n                <AssetsSelectionContext.Provider value={assetsSelectionContext}>\n                    <TimeZoneContext.Provider value={timeZoneContext}>\n                        <GoogleMapContextProvider>\n                            <PageTitle\n                                title={t('page-titles.broker-order-assignment', {\n                                    number: brokerOrderDetails?.number || '',\n                                })}\n                            />\n                            <HorizontalColumnsLayout\n                                testSelector=\"broker-order-assignment\"\n                                className={cx('wrap')}\n                                leftColumnTitle={t('broker-order-details.main-tabs.details')}\n                                leftColumnNode={\n                                    <SideBarLayoutContextWrap>\n                                        <HeaderSideBarLayout>\n                                            <HeaderSideBarContent title={t('assignment.title')} onClose={handleClose} />\n                                            <SideBarHeaderRequestStatus\n                                                requestStatus={brokerOrderDetailsRequestStatus}\n                                                hasCachedData={Boolean(brokerOrderDetails)}\n                                                isForceShowLoader={assignmentRequestStatus.loading}\n                                            />\n                                        </HeaderSideBarLayout>\n                                        <SideBarLayout>\n                                            <SideBarRequestStatus\n                                                requestStatus={brokerOrderDetailsRequestStatus}\n                                                hasCachedData={Boolean(brokerOrderDetails)}\n                                                onRetry={handleRefreshOnError}\n                                                SkeletonComponent={EntitySidebarSkeleton}\n                                            >\n                                                {brokerOrderDetails ? (\n                                                    <AssignmentForm\n                                                        brokerOrderId={brokerOrderId}\n                                                        brokerOrderDetails={brokerOrderDetails}\n                                                        tourId={tourId}\n                                                        onCancel={handleClose}\n                                                    />\n                                                ) : null}\n                                            </SideBarRequestStatus>\n                                        </SideBarLayout>\n                                    </SideBarLayoutContextWrap>\n                                }\n                                rightColumnTitle={t('broker-order-details.main-tabs.info')}\n                                rightColumnNode={\n                                    <div className={cx('tabs-wrap')}>\n                                        <div className={cx('tab')}>\n                                            <AssignmentMap\n                                                key={brokerOrderId}\n                                                brokerOrderId={brokerOrderId}\n                                                brokerOrderDetails={brokerOrderDetails}\n                                                tourId={tourId}\n                                            />\n                                        </div>\n                                    </div>\n                                }\n                            />\n                        </GoogleMapContextProvider>\n                        {isShowSelectedAssetSchedules && (\n                            <RightSidebarLayout>\n                                <AssignmentAssetSchedules tourId={tourId} brokerOrderDetails={brokerOrderDetails} />\n                            </RightSidebarLayout>\n                        )}\n                        <SideBars />\n                    </TimeZoneContext.Provider>\n                </AssetsSelectionContext.Provider>\n            </SyncAssignmentFormMapStateContext.Provider>\n        </SideBarFooterAlertsContext.Provider>\n    );\n});\n\nexport default BrokerOrderAssignmentPage;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './DeprecatedCountyFlagLabel.scss';\nimport { CountryT } from 'common/store/countries-dict/models';\nimport { useTranslation } from 'react-i18next';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport cs from 'classnames';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    className?: string;\n    country?: CountryT | null;\n    countries?: Array<CountryT | null>;\n    isThin?: boolean;\n};\n\n/**\n *  @deprecated use CountyFlagsLabel\n * */\nconst DeprecatedCountyFlagLabel: React.FC<PropsT> = (props) => {\n    const { t } = useTranslation();\n\n    const { country, countries, isThin, className } = props;\n\n    if (!country && !countries?.length) {\n        return null;\n    }\n\n    let icon: React.ReactElement | null = null;\n    let label: string | null = null;\n    if (country) {\n        icon = <FlagIcon countryCode={country.code} className={cx('flag-icon')} />;\n        label = country.userLangDisplayName || null;\n    }\n\n    if (countries?.length === 1) {\n        icon = <FlagIcon countryCode={countries[0]?.code} className={cx('flag-icon')} />;\n        label = countries[0]?.userLangDisplayName || null;\n    }\n\n    if (countries?.length && countries?.length > 1) {\n        icon = <div className={cx('count')}>{countries.length}</div>;\n\n        label = `${countries.length} ${t('common:countries', {\n            postProcess: 'interval',\n            count: countries.length,\n        })}`;\n    }\n\n    return (\n        <div className={cs(cx('wrap'), className)}>\n            <span className={cx('icon')}>{icon}</span>\n            <span\n                className={cx('label', {\n                    'label--isThin': isThin,\n                })}\n            >\n                {label}\n            </span>\n        </div>\n    );\n};\n\n/**\n *  @deprecated use CountyFlagsLabel\n * */\nexport default React.memo(DeprecatedCountyFlagLabel) as typeof DeprecatedCountyFlagLabel;\n","// extracted by mini-css-extract-plugin\nexport default {\"footer\":\"LogCardFooter__footer___vZlCm\",\"date\":\"LogCardFooter__date___aeCye\",\"fadeIn\":\"LogCardFooter__fadeIn___kACqk\",\"blinking\":\"LogCardFooter__blinking___hwaPX\"};","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    validateAssetTeleport,\n    validateAssetTeleportBegin,\n    validateAssetTeleportError,\n    validateAssetTeleportSuccess,\n    executeAssetTeleport,\n    executeAssetTeleportBegin,\n    executeAssetTeleportError,\n    executeAssetTeleportSuccess,\n} from './slice';\nimport { selectExecuteTeleportStatus, selectValidateTeleportStatus } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { vehicleSchedulesRefreshChannel } from 'common/store/vehicle-schedules/channels';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\n\nconst toError = (value: unknown): Error =>\n    value instanceof Error ? value : new Error(typeof value === 'string' ? value : 'Unknown error');\n\nfunction* validateAssetTeleportSaga(action: ReturnType<typeof validateAssetTeleport>): WrapGeneratorT<void> {\n    const { assetId, options } = action.payload;\n\n    const requestStatus: ReReturnT<typeof selectValidateTeleportStatus> = yield select(\n        selectValidateTeleportStatus(assetId),\n    );\n\n    const isNeedRequest = checkNeedRequest(requestStatus, options);\n    if (!isNeedRequest && !options?.isForceUpdate) {\n        return;\n    }\n\n    yield put(validateAssetTeleportBegin({ assetId }));\n\n    const [error, data]: ReturnApiT<typeof brokerTranziitApi.validateAssetTeleport> =\n        yield brokerTranziitApi.validateAssetTeleport(assetId);\n\n    if (error || data == null) {\n        yield put(validateAssetTeleportError({ assetId, error: toError(error) }));\n        return;\n    }\n\n    yield put(validateAssetTeleportSuccess({ assetId, data }));\n}\n\nfunction* executeAssetTeleportSaga(action: ReturnType<typeof executeAssetTeleport>): WrapGeneratorT<void> {\n    const { assetId, teleportLinkedAsset } = action.payload;\n\n    const requestStatus: ReReturnT<typeof selectExecuteTeleportStatus> = yield select(\n        selectExecuteTeleportStatus(assetId),\n    );\n    if (requestStatus.loading) {\n        return;\n    }\n\n    yield put(executeAssetTeleportBegin({ assetId }));\n\n    const [error, data]: ReturnApiT<typeof brokerTranziitApi.executeAssetTeleport> =\n        yield brokerTranziitApi.executeAssetTeleport(assetId, teleportLinkedAsset);\n\n    if (error || data == null) {\n        yield put(executeAssetTeleportError({ assetId, error: toError(error) }));\n        return;\n    }\n\n    yield put(executeAssetTeleportSuccess({ assetId }));\n\n    vehicleSchedulesRefreshChannel.emit({\n        vehicleId: assetId,\n    });\n}\n\nfunction* assetsSaga(): WrapGeneratorT<void> {\n    yield takeEvery(validateAssetTeleport.type, validateAssetTeleportSaga);\n    yield takeEvery(executeAssetTeleport.type, executeAssetTeleportSaga);\n}\n\nexport default assetsSaga;\n","import * as React from 'react';\nimport { TFunction } from 'i18next';\nimport { ContactDetailsSidebarDataT } from 'common/layouts/SideBars/contents/ContactDetailsSidebarContent/models';\nimport { EditContactDetailsSidebarDataT } from 'common/layouts/SideBars/contents/EditContactDetailsSidebarContent/models';\nimport { DocumentDetailsSidebarDataT } from 'common/layouts/SideBars/contents/DocumentDetailsSidebarContent/models';\nimport { ContractDetailsSidebarDataT } from 'common/layouts/SideBars/contents/ContractDetailsSidebarContent/models';\nimport { DriverFiltersSidebarDataT } from 'common/layouts/SideBars/contents/DriverFiltersSidebarContent/models';\nimport { DriverDetailsSidebarDataT } from 'common/layouts/SideBars/contents/DriverDetailsSidebarContent/models';\nimport { EditDriverDetailsSidebarDataT } from 'common/layouts/SideBars/contents/EditDriverSidebarContent/models';\nimport { TrailerFiltersSidebarDataT } from 'common/layouts/SideBars/contents/TrailerFiltersSidebarContent/models';\nimport { AddTrailerSidebarDataT } from 'common/layouts/SideBars/contents/AddTrailerSidebarContent/models';\nimport { TrailerDetailsSidebarDataT } from 'common/layouts/SideBars/contents/EditableTrailerDetailsSidebarContent/models';\nimport { TruckFiltersSidebarDataT } from 'common/layouts/SideBars/contents/TruckFiltersSidebarContent/models';\nimport { AddTruckSidebarDataT } from 'common/layouts/SideBars/contents/AddTruckSidebarContent/models';\nimport { TruckDetailsSidebarDataT } from 'common/layouts/SideBars/contents/EditableTruckDetailsSidebarContent/models';\nimport { AddDriverSidebarDataT } from 'common/layouts/SideBars/contents/AddDriverSidebarContent/models';\n\nexport enum CommonSidebarsTypeEnum {\n    contact = 'contact',\n    editContact = 'edit-contact',\n    document = 'document',\n    carrierContract = 'carrierContract',\n    driverFilters = 'driver-filters',\n    driverDetails = 'driver-details',\n    editDriverDetails = 'edit-driver-details',\n    addDriver = 'add-driver',\n    trailerFilters = 'trailer-filters',\n    trailerDetails = 'trailer-details',\n    addTrailer = 'add-trailer',\n    truckFilters = 'truck-filters',\n    truckDetails = 'truck-details',\n    addTruck = 'add-truck',\n}\n\nexport type CommonSidebarMetaT = Partial<{\n    // NB: try to use unique names for all data sidebars!\n    isForceShowBackAction: boolean;\n    size: SidebarSizeEnum;\n}>;\n\nexport enum SidebarSizeEnum {\n    s = 's',\n    m = 'm',\n    l = 'l',\n}\n\nexport type SidebarDataWithMetaT<T> = T & CommonSidebarMetaT;\n\nexport type AnySidebarDataT = {\n    type: string;\n};\n\nexport type CommonSidebarDataT =\n    | ContactDetailsSidebarDataT\n    | EditContactDetailsSidebarDataT\n    | DocumentDetailsSidebarDataT\n    | DriverFiltersSidebarDataT\n    | DriverDetailsSidebarDataT\n    | EditDriverDetailsSidebarDataT\n    | AddDriverSidebarDataT\n    | TrailerFiltersSidebarDataT\n    | AddTrailerSidebarDataT\n    | TrailerDetailsSidebarDataT\n    | TruckFiltersSidebarDataT\n    | AddTruckSidebarDataT\n    | TruckDetailsSidebarDataT\n    | ContractDetailsSidebarDataT;\n\nexport enum SideBarPositionEnum {\n    left = 'left',\n    right = 'right',\n}\n\nexport type SidebarContentPropsT<T, V> = CommonSidebarContentPropsT<V> & {\n    data: T;\n    setNeedCloseConfirmation: (needCloseConfirmation: boolean) => void;\n};\n\nexport type CloseCallbackOptionsT = { needCloseConfirmation: boolean };\n\nexport type CommonSidebarContentPropsT<T> = {\n    onOpenNextSidebar: (data: T) => void;\n    onUpdateSidebarData: (data: T) => void;\n    onClose?: ((options?: CloseCallbackOptionsT) => void) | null;\n    onGoBack?: ((options?: CloseCallbackOptionsT) => void) | null;\n    position: SideBarPositionEnum;\n};\n\nexport enum SidebarQueryKeysEnum {\n    leftSidebar = 'left-sidebar',\n    rightSidebar = 'right-sidebar',\n}\n\nexport enum SidebarDataDismissEnum {\n    trigger = 'sidebar-trigger',\n}\n\nexport type SidebarCloseConfirmationT = {\n    icon?: React.ReactNode;\n    title: React.ReactNode;\n    message: React.ReactNode;\n    confirmAction: React.ReactNode;\n    cancelAction: React.ReactNode;\n};\n\nexport type RenderSidebarContentT<T> = (props: SidebarContentPropsT<T, T>) => React.ReactNode;\n\nexport type GetSidebarCloseConfirmationT<T> = (t: TFunction, data: T) => SidebarCloseConfirmationT | null;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './EmissionClassCell.scss';\n\nimport { ApiTruckT } from 'common/store/trucks/models';\nimport EmissionClassPill from 'common/components/status-pill/EmissionClassPill/EmissionClassPill';\n\ntype PropsT = {\n    truck: ApiTruckT;\n};\n\nconst cx = classNames.bind(styles);\n\nconst EmissionClassCell: React.FC<PropsT> = React.memo((props) => {\n    const { truck } = props;\n\n    return (\n        <div className={cx('emission-class')}>\n            <EmissionClassPill isSymmetrical emissionClass={truck.emissionClass} />\n        </div>\n    );\n});\n\nexport default EmissionClassCell;\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { SystemSettingsChangesT } from 'broker-admin/store/price-settings/system-settings/models';\n\nconst prepareApiSystemSettings = (formValues: FormValuesT): SystemSettingsChangesT => {\n    return {\n        TIME_SLOT_TO_BOARD_FERRY: formValues[FieldsEnum.timeSlotToBoardFerry],\n        TIME_SLOT_DISEMBARK_FERRY: formValues[FieldsEnum.timeSlotDisembarkFerry],\n    };\n};\n\nexport default prepareApiSystemSettings;\n","import { isNonNil } from 'common/utils';\nimport requestStatus from 'common/utils/request-status';\nimport keyBy from 'lodash/keyBy';\nimport {\n    FETCH_DISPATCHERS_REQUEST_BEGIN,\n    FETCH_DISPATCHERS_REQUEST_ERROR,\n    FETCH_DISPATCHERS_REQUEST_SUCCESS,\n    DispatchersActionT,\n    DispatchersStateT,\n} from './types';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nconst initialState: DispatchersStateT = {\n    request: requestStatus.initial,\n    byId: {},\n    allIds: [],\n};\n\nexport default (state = initialState, action: DispatchersActionT | DestroySessionActionT): DispatchersStateT => {\n    switch (action.type) {\n        case FETCH_DISPATCHERS_REQUEST_BEGIN: {\n            return {\n                ...state,\n                request: requestStatus.loading,\n            };\n        }\n        case FETCH_DISPATCHERS_REQUEST_SUCCESS: {\n            const { dispatchers } = action;\n\n            const allIds: Array<string> = dispatchers.map((dispatcher) => dispatcher.id).filter(isNonNil);\n            const byId = keyBy(dispatchers, 'id');\n\n            return {\n                ...state,\n                byId,\n                allIds,\n                request: requestStatus.ok,\n            };\n        }\n        case FETCH_DISPATCHERS_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                request: requestStatus.setError(error),\n            };\n        }\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default:\n            return state;\n    }\n};\n","import { put, select, takeEvery } from 'redux-saga/effects';\n\nimport { FETCH_DISPATCHERS_REQUEST, FetchDispatchersActionT } from './types';\nimport { fetchDispatchersBegin, fetchDispatchersError, fetchDispatchersSuccess } from './actions';\nimport { selectFetchDispatchersRequest } from './selectors';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction* fetchDispatchersSaga(action: FetchDispatchersActionT): WrapGeneratorT<void> {\n    const request: ReturnType<typeof selectFetchDispatchersRequest> = yield select(selectFetchDispatchersRequest);\n    if (request.ok) {\n        return;\n    }\n\n    yield put(fetchDispatchersBegin());\n\n    const [error, dispatchers]: ReturnApiT<typeof brokerTranziitApi.fetchPartnerDispatchers> =\n        yield brokerTranziitApi.fetchPartnerDispatchers();\n    if (error) {\n        yield put(fetchDispatchersError(error));\n        return;\n    }\n\n    yield put(fetchDispatchersSuccess(dispatchers || []));\n}\n\nfunction* userSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_DISPATCHERS_REQUEST, fetchDispatchersSaga);\n}\n\nexport default userSaga;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './NotificationsBarTrigger.scss';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport NotificationLabel, {\n    NotificationLabelThemeEnum,\n} from 'common/components/notifications/NotificationLabel/NotificationLabel';\nimport BellIcon from 'common/icons/BellIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport SideBar, { SideBarPositionEnum } from 'common/layouts/LeftMenuLayout/SideBar/SideBar';\nimport { selectUnReadNotificationsCount } from 'common/store/notifications/selectors';\nimport { useDispatch, useSelector } from 'react-redux';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport MoreIcon from 'common/icons/MoreIcon';\nimport DropdownControl, {\n    DropdownControlOptionT,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport { useTranslation } from 'react-i18next';\nimport NotificationsBarContent from 'common/components/notifications/NotificationsBarContent/NotificationsBarContent';\n\nimport { markAsRead } from 'common/store/notifications/actions';\nimport useNotificationSideBarContext from 'common/utils/hooks/useNotificationSideBarContext';\nimport DoubleCheckIcon from 'common/icons/DoubleCheckIcon';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst NotificationsBarTrigger: React.FC<PropsT> = React.memo(() => {\n    const { renderNotification, getNotificationLink, renderNotificationText } = useNotificationSideBarContext();\n\n    const [isOpen, setOpen] = React.useState<boolean>(false);\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const unReadNotificationsCount = useSelector(selectUnReadNotificationsCount);\n\n    const options: Array<DropdownControlOptionT | null> = [\n        unReadNotificationsCount\n            ? {\n                  label: (\n                      <DropdownControlOptionLabel\n                          icon={<DoubleCheckIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.slate} />}\n                          label={t('common:notification-side-bar.mark-all-as-read')}\n                      />\n                  ),\n                  testSelector: 'mark-all-as-read',\n                  isDisabled: !unReadNotificationsCount,\n                  onSelect: () => {\n                      dispatch(markAsRead([], true));\n                  },\n              }\n            : null,\n    ];\n\n    const hasUnReadNotifications = !!unReadNotificationsCount;\n\n    return (\n        <>\n            <Button\n                noPaddings\n                contentClassName={cx('button-content')}\n                theme={ButtonThemeEnum.transparent}\n                onClick={() => {\n                    setOpen(true);\n                }}\n            >\n                <div className={cx('inner')}>\n                    {hasUnReadNotifications && (\n                        <NotificationLabel\n                            className={cx('count')}\n                            count={unReadNotificationsCount}\n                            theme={NotificationLabelThemeEnum.orange}\n                        />\n                    )}\n                    <BellIcon\n                        strokeColor={\n                            hasUnReadNotifications ? StyleGuideColorsEnum.brandDark : StyleGuideColorsEnum.gray\n                        }\n                        fillColor={\n                            hasUnReadNotifications ? StyleGuideColorsEnum.brandAccent : StyleGuideColorsEnum.light\n                        }\n                    />\n                </div>\n            </Button>\n            <SideBar\n                isShow={isOpen}\n                isWide\n                position={SideBarPositionEnum.right}\n                onClose={() => {\n                    setOpen(false);\n                }}\n            >\n                {(close) =>\n                    isOpen ? (\n                        <>\n                            <HeaderSideBarLayout>\n                                <HeaderSideBarContent\n                                    variant=\"right\"\n                                    title={\n                                        <div className={cx('header')}>\n                                            <div>{t('common:notification-side-bar.title')}</div>\n                                            {hasUnReadNotifications && (\n                                                <NotificationLabel\n                                                    className={cx('header-count')}\n                                                    count={unReadNotificationsCount}\n                                                    theme={NotificationLabelThemeEnum.orange}\n                                                />\n                                            )}\n                                        </div>\n                                    }\n                                    onClose={close}\n                                    rightNode={\n                                        <DropdownControl\n                                            overlayClassName={cx('overlay')}\n                                            options={options}\n                                            renderTrigger={(isActive, onClick) => (\n                                                <TransparentTrigger\n                                                    isPressed={isActive}\n                                                    onClick={onClick}\n                                                    leftIcon={<MoreIcon />}\n                                                    reflectionTheme={ReflectionThemeEnum.light}\n                                                    testSelector=\"notification-actions-trigger\"\n                                                />\n                                            )}\n                                            testSelector=\"notification-actions\"\n                                            overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                                        />\n                                    }\n                                />\n                            </HeaderSideBarLayout>\n                            <SideBarLayout withoutScrollbar isWide>\n                                <NotificationsBarContent\n                                    renderNotification={renderNotification}\n                                    getNotificationLink={getNotificationLink}\n                                    renderNotificationText={renderNotificationText}\n                                />\n                            </SideBarLayout>\n                        </>\n                    ) : null\n                }\n            </SideBar>\n        </>\n    );\n});\n\nexport default NotificationsBarTrigger;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n    size: number;\n};\n\nconst RFQIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, strokeColor, size } = props;\n\n    return (\n        <svg\n            width={size}\n            height={size}\n            viewBox=\"0 0 20 20\"\n            xmlns=\"http://www.w3.org/2000/svg\"\n            xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n        >\n            <defs>\n                <path d=\"M0 0h18v18H0V0z\" id=\"0pe2llqa4a\" />\n            </defs>\n            <g xlinkHref=\"#0pe2llqa4a\" fill=\"none\" fillRule=\"evenodd\">\n                <path\n                    d=\"M10.008 14.5c-1.11 0-2.063-.607-2.588-1.5H4.75v2.25h10.5V13h-2.662a2.985 2.985 0 0 1-2.58 1.5z\"\n                    fillOpacity=\".3\"\n                    fill={fillColor}\n                />\n                <path\n                    d=\"M13 7.75h-1.912V5.5H8.913v2.25H7l3 3 3-3zm2.25-4.5H4.742c-.832 0-1.492.675-1.492 1.5v10.5c0 .825.66 1.5 1.492 1.5H15.25c.825 0 1.5-.675 1.5-1.5V4.75c0-.825-.675-1.5-1.5-1.5zm0 12H4.75V13h2.67a2.988 2.988 0 0 0 2.588 1.5c1.11 0 2.062-.607 2.587-1.5h2.655v2.25zm0-3.75h-3.742c0 .825-.675 1.5-1.5 1.5s-1.5-.675-1.5-1.5H4.75l-.008-6.75H15.25v6.75z\"\n                    fill={strokeColor}\n                />\n            </g>\n        </svg>\n    );\n};\n\nRFQIcon.displayName = 'RFQIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandDark,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n    size: DEFAULT_ICON_SIZE,\n};\n\nexport { storyProps };\nexport default RFQIcon;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ButtonGroup.scss';\nimport cs from 'classnames';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    className?: string;\n};\n\nconst ButtonGroup: React.FC<PropsT> = React.memo((props) => {\n    const { className, children } = props;\n\n    return (\n        <div className={cs(cx('button-group'), className)} data-test-selector=\"button-group\">\n            {children}\n        </div>\n    );\n});\n\nexport default ButtonGroup;\n","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport { PageResponseT, PaginationStateT } from 'common/utils/pagination/models';\nimport {\n    pageBeginReducer,\n    pageErrorReducer,\n    pageSuccessReducer,\n    resetPagesCacheReducer,\n} from 'common/utils/pagination/reducers';\nimport { BrokerOrderShortT, FetchBrokerOrdersPageQueryT } from './models';\n\nexport type BrokerOrderStateT = PaginationStateT<BrokerOrderShortT, FetchBrokerOrdersPageQueryT>;\n\nconst initialState: BrokerOrderStateT = {\n    pages: [],\n    query: null,\n    total: null,\n    byId: {},\n};\n\nexport const brokerOrdersSlice = createSlice({\n    name: 'brokerOrders',\n    initialState,\n    reducers: {\n        fetchBrokerOrdersPage: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                pageNumber: PageNumberT;\n                query: FetchBrokerOrdersPageQueryT;\n                options?: FetchOptionsT;\n            }>,\n        ) => {\n            // nothing\n        },\n        fetchBrokerOrdersPageBegin: (\n            state,\n            action: PayloadAction<{\n                query: FetchBrokerOrdersPageQueryT;\n                pageNumber: PageNumberT;\n            }>,\n        ) => {\n            const { pageNumber, query } = action.payload;\n\n            Object.assign(state, pageBeginReducer(state, pageNumber, query));\n        },\n        fetchBrokerOrdersPageSuccess: (\n            state,\n            action: PayloadAction<{\n                query: FetchBrokerOrdersPageQueryT;\n                pageNumber: PageNumberT;\n                pageResponse: PageResponseT<BrokerOrderShortT> | null;\n            }>,\n        ) => {\n            const { query, pageNumber, pageResponse } = action.payload;\n\n            Object.assign(state, pageSuccessReducer(state, pageNumber, query, pageResponse));\n        },\n        fetchBrokerOrdersPageError: (\n            state,\n            action: PayloadAction<{\n                query: FetchBrokerOrdersPageQueryT;\n                pageNumber: PageNumberT;\n                error: Error;\n            }>,\n        ) => {\n            const { query, error, pageNumber } = action.payload;\n\n            Object.assign(state, pageErrorReducer(state, pageNumber, query, error));\n        },\n        resetBrokerOrders: (\n            state,\n            action: PayloadAction<{\n                mutationListOptions: MutationListOptionsT;\n            }>,\n        ) => {\n            const { mutationListOptions } = action.payload;\n\n            Object.assign(state, initialState, resetPagesCacheReducer(initialState, state, mutationListOptions));\n        },\n    },\n    extraReducers: (builder) => {\n        builder.addCase('auth/destroySession', () => {\n            return initialState;\n        });\n    },\n});\n\nexport const {\n    fetchBrokerOrdersPage,\n    fetchBrokerOrdersPageBegin,\n    fetchBrokerOrdersPageSuccess,\n    fetchBrokerOrdersPageError,\n    resetBrokerOrders,\n} = brokerOrdersSlice.actions;\n\nexport default brokerOrdersSlice.reducer;\n","import React from 'react';\n\nexport type ScrollTopContextT = {\n    value: number;\n    setValue: (value: number) => void;\n};\n\nconst useScrollTop = (): ScrollTopContextT => {\n    const [value, setValue] = React.useState<number>(0);\n\n    return {\n        value,\n        setValue,\n    };\n};\n\nexport default useScrollTop;\n","import { TransportOrderTypeEnum } from 'common/utils/api/models';\n\nexport enum FieldsEnum {\n    orderType = 'orderType',\n    receiveDates = 'receiveDates',\n\n    dictTrailerId = 'dictTrailerId',\n    plateNumber = 'plateNumber',\n\n    originAddress = 'originAddress',\n    destinationAddress = 'destinationAddress',\n\n    driverId = 'driverId',\n    driverName = 'driverName',\n    minPrice = 'minPrice',\n    maxPrice = 'maxPrice',\n\n    pickupDates = 'pickupDates',\n    dropoffDates = 'dropoffDates',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.orderType]: TransportOrderTypeEnum | null;\n    [FieldsEnum.receiveDates]: DateRangeT | null;\n\n    [FieldsEnum.dictTrailerId]: string | null;\n    [FieldsEnum.plateNumber]: string | null;\n\n    [FieldsEnum.originAddress]: string | null;\n    [FieldsEnum.destinationAddress]: string | null;\n\n    [FieldsEnum.driverId]: DriverIdT | null;\n    [FieldsEnum.driverName]: string | null;\n    [FieldsEnum.minPrice]: string;\n    [FieldsEnum.maxPrice]: string;\n\n    [FieldsEnum.pickupDates]: DateRangeT | null;\n    [FieldsEnum.dropoffDates]: DateRangeT | null;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"CreateCell__wrap___Dm_cY\",\"fadeIn\":\"CreateCell__fadeIn___pDWmt\",\"blinking\":\"CreateCell__blinking___gVFGU\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './ShipperContractLaneDetailsPage.scss';\nimport BaseShipperContractLaneDetailsLayout from 'common/layouts/BaseShipperContractLaneDetailsLayout/BaseShipperContractLaneDetailsLayout';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport { useParams } from 'react-router-dom';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { useOpenLeftSidebar } from 'common/layouts/SideBars/hooks';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport { useTranslation } from 'react-i18next';\nimport { useSelector } from 'react-redux';\nimport { selectShipperContractLaneDetailsState } from 'common/store/shipper-contract-lane-details/selectors';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport { ExtractRouterRouteParamsT } from 'common/utils/extract-router-route-params-t';\nimport { ShipperContractLaneRoutesEnum } from 'broker-admin/constants';\nimport { logWarning } from 'common/utils/logger';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    onClose: () => void;\n};\n\nconst ShipperContractLaneDetailsPage: React.FC<PropsT> = React.memo((props) => {\n    const { onClose } = props;\n\n    const permissions = useSelector(selectPermissions);\n\n    const { t } = useTranslation();\n\n    const params = useParams<ExtractRouterRouteParamsT<ShipperContractLaneRoutesEnum.laneDetails>>();\n    const { laneId, contractId } = params;\n\n    const { partnerId } = usePartnerContext();\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const handleOpenUserDetails = (userId: UserIdT) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleOpenUserDetails');\n            return;\n        }\n        openLeftSidebar(\n            {\n                type: CommonSidebarsTypeEnum.contact,\n                partnerId,\n                partnerType: PartnerTypeEnum.broker,\n                userId,\n            },\n            {\n                isForceShowBackAction: true,\n            },\n        );\n    };\n\n    const { data } = useSelector(selectShipperContractLaneDetailsState(laneId));\n\n    if (!partnerId) {\n        logWarning('Empty partnerId in ShipperContractLaneDetailsPage');\n        return null;\n    }\n\n    return (\n        <>\n            <PageTitle\n                title={t('page-titles.shipper-lane-details', {\n                    laneName: data?.tztLaneId || '',\n                })}\n            />\n            <BaseShipperContractLaneDetailsLayout\n                laneId={laneId}\n                contractId={contractId}\n                partnerId={partnerId}\n                onClose={onClose}\n                onOpenUserDetails={handleOpenUserDetails}\n                isReadOnly={!permissions.canEditShipperContracts}\n            />\n        </>\n    );\n});\n\nexport default ShipperContractLaneDetailsPage;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './DriversPageLayout.scss';\nimport FiltersTrigger from 'common/components/Table/FiltersTrigger/FiltersTrigger';\nimport SortDropdown, {\n    SortDropdownOptionT,\n    SortDropdownOverlayPositionEnum,\n} from 'common/components/Table/SortDropdown/SortDropdown';\nimport Pagination from 'common/components/Table/Pagination/Pagination';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport ExpandIcon from 'common/icons/ExpandIcon';\nimport DropdownControl, {\n    DropdownControlOptionT,\n} from 'design-system/components/dropdowns/DropdownControl/DropdownControl';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\nimport { DriversSortEnum, QueryFiltersKeysEnum, QueryFiltersT, QueryKeysEnum } from './query-models';\nimport { ApiInviteDriverRequestT } from 'common/utils/api/models';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectDriversById,\n    selectDriversPages,\n    selectDriversTotal,\n    selectInviteDriverRequest,\n    selectUpdateDriverRequest,\n} from 'common/store/drivers/selectors';\nimport { fetchDriversPage, inviteDriver } from 'common/store/drivers/actions';\nimport { CompanyDriverT } from 'common/store/drivers/models';\nimport DriversTable from './DriversTable/DriversTable';\nimport TableMessage, { TableMessageIconsEnum } from 'common/components/Table/TableMessage/TableMessage';\nimport { isNonNil } from 'common/utils';\nimport {\n    createJsonParams,\n    createPageNumberParam,\n    createSortParams,\n    PageSortT,\n    SortDirectionEnum,\n} from 'common/utils/query';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport StickyFooter from 'common/layouts/LeftMenuLayout/StickyFooter/StickyFooter';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\nimport TableError from 'common/components/Table/TableError/TableError';\nimport { prepareFetchPageQuery } from 'common/layouts/DriversPageLayout/prepare-fetch-page-query';\nimport ListPageLayout from 'common/layouts/ListPage/ListPageLayout/ListPageLayout';\nimport ListPageHeaderLayout from 'common/layouts/ListPage/ListPageHeaderLayout/ListPageHeaderLayout';\nimport { TabEnum } from './constants';\nimport TabLabel from 'common/components/tabs/TabLabel/TabLabel';\nimport { TabsThemesEnum, TabLabelSizeEnum } from 'common/components/tabs/TabLabel/constants';\nimport SearchControl from 'common/components/Table/SearchControl/SearchControl';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { driversPaginationChannel, driversRefreshChannel } from 'common/store/drivers/channels';\nimport { useQueryParams, withDefault } from 'use-query-params';\nimport { createEnumParam } from 'serialize-query-params/src/params';\nimport { useCheckOpenedSidebar, useOpenedSidebar, useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport DriverInviteModal, {\n    DriverInviteModalDataT,\n} from 'common/layouts/DriversPageLayout/dialogs/DriverInviteModal/DriverInviteModal';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport { logWarning } from 'common/utils/logger';\nimport { DriverDetailsSidebarDataT } from 'common/layouts/SideBars/contents/DriverDetailsSidebarContent/models';\nimport { EditDriverDetailsSidebarDataT } from 'common/layouts/SideBars/contents/EditDriverSidebarContent/models';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { checkNeedRenderEmptyState } from 'common/components/Table/utils/check-need-render-empty-state';\nimport { checkFilters } from 'common/components/Table/utils/check-filters';\nimport TabGroup from 'common/components/tabs/TabGroup/TabGroup';\nimport SelectedFilters from './SelectedFilters/SelectedFilters';\n\nconst cx = classNames.bind(styles);\n\nconst TAB_LABEL_T: Record<TabEnum, string> = {\n    [TabEnum.active]: 'common:drivers-page.tabs.active',\n    [TabEnum.archive]: 'common:drivers-page.tabs.archive',\n};\n\nconst TABS_ORDER: TabEnum[] = [TabEnum.active, TabEnum.archive];\n\ntype PropsT = {};\n\nconst DriversPageLayout: React.FC<PropsT> = React.memo(() => {\n    const { partnerId } = usePartnerContext();\n\n    const permissions = useSelector(selectPermissions);\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const [query, changeQuery] = useQueryParams({\n        [QueryKeysEnum.driversPage]: createPageNumberParam(),\n        [QueryKeysEnum.driversSort]: createSortParams<DriversSortEnum>({\n            value: DriversSortEnum.name,\n            direction: SortDirectionEnum.ASC,\n        }),\n        [QueryKeysEnum.driversFilters]: createJsonParams<QueryFiltersT>({}),\n        [QueryKeysEnum.driversTab]: withDefault(createEnumParam<TabEnum>(Object.values(TabEnum)), TabEnum.active),\n    });\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    const total = useSelector(selectDriversTotal(partnerId));\n    const driversPages = useSelector(selectDriversPages(partnerId));\n    const driverById = useSelector(selectDriversById(partnerId));\n\n    const driverInviteModal = useModalDialog<DriverInviteModalDataT>();\n\n    const selectedSort = query[QueryKeysEnum.driversSort];\n    const pageNumber = query[QueryKeysEnum.driversPage];\n    const activeTab = query[QueryKeysEnum.driversTab];\n\n    const queryFilters = query[QueryKeysEnum.driversFilters];\n    const page = driversPages[pageNumber];\n    const { ids, requestStatus } = page || {};\n\n    const updateDriversRequestStatus = useSelector(selectUpdateDriverRequest(partnerId));\n\n    React.useEffect(() => {\n        dispatch(fetchCountriesDict());\n    }, [dispatch]);\n\n    React.useEffect(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in DriversPageLayout useEffect');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, activeTab, selectedSort);\n\n        dispatch(fetchDriversPage(pageNumber, query, partnerId));\n    }, [dispatch, pageNumber, selectedSort, queryFilters, activeTab, partnerId]);\n\n    const refreshPageHandler = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in refreshPageHandler');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, activeTab, selectedSort);\n\n        dispatch(fetchDriversPage(pageNumber, query, partnerId, { isForceUpdate: true }));\n    }, [dispatch, pageNumber, selectedSort, queryFilters, activeTab, partnerId]);\n    useChannelSubscribe(driversRefreshChannel, refreshPageHandler);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleRefreshOnError');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, activeTab, selectedSort);\n        dispatch(fetchDriversPage(pageNumber, query, partnerId, { isForceUpdate: true }));\n    }, [dispatch, pageNumber, selectedSort, queryFilters, activeTab, partnerId]);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in documentVisibilityChangeHandler');\n            return;\n        }\n        const query = prepareFetchPageQuery(queryFilters, activeTab, selectedSort);\n\n        dispatch(fetchDriversPage(pageNumber, query, partnerId, { isForceUpdate: false }));\n    }, [dispatch, pageNumber, selectedSort, queryFilters, activeTab, partnerId]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const drivers = React.useMemo(() => {\n        return (ids || []).map((id) => driverById[id as string]).filter(isNonNil);\n    }, [ids, driverById]);\n\n    const goToPage = React.useCallback(\n        (pageNumber: PageNumberT) => {\n            changeQuery({\n                [QueryKeysEnum.driversPage]: pageNumber,\n            });\n        },\n        [changeQuery],\n    );\n\n    const setPageHandler = React.useCallback(\n        ({ pageNumber }: InferChannelEventT<typeof driversPaginationChannel>) => {\n            goToPage(pageNumber);\n        },\n        [goToPage],\n    );\n    useChannelSubscribe(driversPaginationChannel, setPageHandler);\n\n    const sortOptions: Array<SortDropdownOptionT<DriversSortEnum>> = React.useMemo(\n        () => [\n            {\n                label: t('common:drivers-page.sorts.triggers.name'),\n                value: DriversSortEnum.name,\n            },\n            {\n                label: t('common:drivers-page.sorts.triggers.surname'),\n                value: DriversSortEnum.surname,\n            },\n            {\n                label: t('common:drivers-page.sorts.triggers.created-date'),\n                value: DriversSortEnum.createdDate,\n            },\n        ],\n        [t],\n    );\n\n    const handleSelectSort = (sort: PageSortT<DriversSortEnum>) => {\n        changeQuery({\n            [QueryKeysEnum.driversPage]: 0,\n            [QueryKeysEnum.driversSort]: sort,\n        });\n    };\n\n    const handleSetQueryFilters = (selectedQueryFilters: QueryFiltersT) => {\n        changeQuery({\n            [QueryKeysEnum.driversPage]: 0,\n            [QueryKeysEnum.driversFilters]: selectedQueryFilters,\n        });\n    };\n\n    const inviteRequestStatus = useSelector(selectInviteDriverRequest(partnerId));\n\n    useCloseModalDialogAfterRequest(inviteRequestStatus, [driverInviteModal]);\n\n    const handleInviteUser = (newDriver: ApiInviteDriverRequestT): void => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleInviteUser');\n            return;\n        }\n        dispatch(inviteDriver(newDriver, partnerId));\n    };\n\n    const handleSelectRow = (event: React.MouseEvent, driver: CompanyDriverT) => {\n        if (!driver.id) {\n            return;\n        }\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleSelectRow');\n            return;\n        }\n\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.driverDetails,\n            driverId: driver.id,\n            partnerId,\n        });\n    };\n\n    const handleSelectTab = (tab: TabEnum): void => {\n        changeQuery({\n            [QueryKeysEnum.driversPage]: 0,\n            [QueryKeysEnum.driversTab]: tab,\n        });\n    };\n\n    const updateQueryFilters = (queryFiltersChanges: QueryFiltersT) => {\n        const prevQueryFilters = query[QueryKeysEnum.driversFilters] || {};\n\n        const queryFilters = {\n            ...prevQueryFilters,\n            ...queryFiltersChanges,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.driversPage]: 0,\n            [QueryKeysEnum.driversFilters]: queryFilters,\n        });\n    };\n\n    const handleSearch = (searchText: string) => {\n        updateQueryFilters({\n            [QueryFiltersKeysEnum.name]: undefined,\n            [QueryFiltersKeysEnum.searchText]: searchText || undefined,\n        });\n    };\n\n    const editDriverDetailsSidebarData = useOpenedSidebar<EditDriverDetailsSidebarDataT>(\n        CommonSidebarsTypeEnum.editDriverDetails,\n    );\n    const driverDetailsSidebarData = useOpenedSidebar<DriverDetailsSidebarDataT>(CommonSidebarsTypeEnum.driverDetails);\n\n    const selectedDriverId = editDriverDetailsSidebarData?.driverId || driverDetailsSidebarData?.driverId || null;\n\n    const driverCreationOptions: Array<DropdownControlOptionT> = [\n        {\n            label: <DropdownControlOptionLabel label={t('common:drivers-page.add-driver-trigger.add-manually')} />,\n            onSelect: () => {\n                if (!partnerId) {\n                    logWarning('Empty partnerId in addDriver');\n                    return;\n                }\n\n                openLeftSidebar({\n                    type: CommonSidebarsTypeEnum.addDriver,\n                    partnerId,\n                });\n            },\n        },\n        {\n            label: <DropdownControlOptionLabel label={t('common:drivers-page.add-driver-trigger.invite-via-phone')} />,\n            onSelect: () => {\n                driverInviteModal.setData({});\n            },\n        },\n    ];\n\n    const isOpenedFilters = useCheckOpenedSidebar(CommonSidebarsTypeEnum.driverFilters);\n    const openSpotRequestsFilter = React.useCallback(() => {\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.driverFilters,\n        });\n    }, [openLeftSidebar]);\n\n    const renderTableMessage = () => {\n        if (!checkNeedRenderEmptyState(drivers, requestStatus)) {\n            return null;\n        }\n\n        if (requestStatus?.error) {\n            return <TableError error={requestStatus?.error} onRetry={handleRefreshOnError} />;\n        }\n\n        const { hasPrimaryQueryFilters, hasSecondaryQueryFilters } = checkFilters(\n            [query[QueryKeysEnum.driversTab] !== TabEnum.active ? query[QueryKeysEnum.driversTab] : null],\n            [query[QueryKeysEnum.driversFilters]],\n        );\n\n        if (requestStatus?.ok && hasSecondaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.notFound}\n                    title={t('common:drivers-page.table.messages.not-found.title')}\n                    description={t('common:drivers-page.table.messages.not-found.description')}\n                    isShowAction\n                    actionTitle={t('common:drivers-page.table.messages.not-found.action')}\n                    actionTheme={ButtonThemeEnum.secondary}\n                    onActionClick={() => handleSetQueryFilters({})}\n                    testSelector=\"empty-state-has-secondary-filters\"\n                />\n            );\n        }\n\n        if (requestStatus?.ok && hasPrimaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.empty}\n                    title={t('common:drivers-page.table.messages.empty-quick-filters.title')}\n                    description=\"\"\n                    testSelector=\"empty-state-has-primary-filters\"\n                    isShowAction={false}\n                />\n            );\n        }\n\n        return (\n            <TableMessage\n                iconType={TableMessageIconsEnum.empty}\n                title={t('common:drivers-page.table.messages.empty.title')}\n                description={t('common:drivers-page.table.messages.empty.description')}\n                isShowAction\n                actionTitle={t('common:drivers-page.table.messages.empty.action')}\n                onActionClick={() => {\n                    driverInviteModal.setData({});\n                }}\n            />\n        );\n    };\n\n    return (\n        <>\n            <ContentMargins>\n                <TabGroup className={cx('tabs')} size={TabLabelSizeEnum.small}>\n                    {TABS_ORDER.map((tab, tabIndex) => (\n                        <TabLabel\n                            isCompact\n                            key={tabIndex}\n                            size={TabLabelSizeEnum.small}\n                            theme={TabsThemesEnum.light}\n                            onClick={() => {\n                                handleSelectTab(tab);\n                            }}\n                            isActive={tab === activeTab}\n                        >\n                            {t(TAB_LABEL_T[tab])}\n                        </TabLabel>\n                    ))}\n                </TabGroup>\n                <ListPageLayout>\n                    <ListPageHeaderLayout\n                        withTopPadding\n                        leftToolsNode={\n                            <>\n                                <FiltersTrigger\n                                    title={t('common:drivers-page.filters.trigger')}\n                                    isActive={isOpenedFilters}\n                                    onClick={openSpotRequestsFilter}\n                                />\n                                <SortDropdown\n                                    overlayPosition={SortDropdownOverlayPositionEnum.left}\n                                    selectedValue={selectedSort}\n                                    options={sortOptions}\n                                    onSelect={handleSelectSort}\n                                />\n                                <SearchControl\n                                    placeholder={t('common:drivers-page.search-placeholder')}\n                                    searchText={queryFilters[QueryFiltersKeysEnum.searchText]}\n                                    onChangeSearchText={handleSearch}\n                                />\n                            </>\n                        }\n                        rightToolsNode={\n                            permissions.canEditDrivers ? (\n                                <DropdownControl\n                                    options={driverCreationOptions}\n                                    renderTrigger={(isActive, onClick) => (\n                                        <Button\n                                            theme={ButtonThemeEnum.primary}\n                                            onClick={onClick}\n                                            rightIcon={<ExpandIcon fillColor={StyleGuideColorsEnum.white} />}\n                                            isPressed={isActive}\n                                        >\n                                            {t('common:drivers-page.add-driver-trigger.add')}\n                                        </Button>\n                                    )}\n                                    overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                                />\n                            ) : null\n                        }\n                        filterTagsNode={\n                            <SelectedFilters\n                                isCompact\n                                queryFilters={queryFilters}\n                                setQueryFilters={handleSetQueryFilters}\n                            />\n                        }\n                    />\n                    {renderTableMessage()}\n                    <DriversTable\n                        drivers={drivers}\n                        isShowStatus={activeTab === TabEnum.active}\n                        selectedDriverId={selectedDriverId}\n                        onSelectRow={handleSelectRow}\n                        isLoading={requestStatus?.loading || updateDriversRequestStatus?.loading}\n                    />\n                </ListPageLayout>\n            </ContentMargins>\n            <StickyFooter>\n                <Pagination current={pageNumber} count={total?.pageCount} goToPage={goToPage} />\n            </StickyFooter>\n            <DriverInviteModal\n                data={driverInviteModal.data}\n                onClose={driverInviteModal.onClose}\n                onInviteUser={handleInviteUser}\n                requestStatus={inviteRequestStatus}\n            />\n        </>\n    );\n});\n\nexport default DriversPageLayout;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"DevelopmentSettings__inner___tsALP\",\"control\":\"DevelopmentSettings__control___Anp6e\",\"fadeIn\":\"DevelopmentSettings__fadeIn___suuhX\",\"blinking\":\"DevelopmentSettings__blinking____X5zf\"};","import { StateT } from 'broker-admin/store/models';\nimport { DriverSearchStateT } from './types';\n\nexport const selectSearchDriverQuery = (state: StateT): DriverSearchStateT['query'] => state.driverSearch.query;\nexport const selectSearchDriverRequest = (state: StateT): DriverSearchStateT['request'] => state.driverSearch.request;\n\nexport const selectSearchDriverIds = (state: StateT): DriverSearchStateT['allIds'] => state.driverSearch.allIds;\nexport const selectSearchDriverById = (state: StateT): DriverSearchStateT['byId'] => state.driverSearch.byId;\n","// extracted by mini-css-extract-plugin\nexport default {\"table__header\":\"BrokerToursTable__table__header___dx5Fg\",\"table__header--id\":\"BrokerToursTable__table__header--id___fApmI\",\"table__header--status\":\"BrokerToursTable__table__header--status___hneZp\",\"table__column\":\"BrokerToursTable__table__column___Zbxcl\",\"table__column--id\":\"BrokerToursTable__table__column--id___Or9Ie\",\"table__column--created\":\"BrokerToursTable__table__column--created____0hBH\",\"table__column--type\":\"BrokerToursTable__table__column--type___b3pM6\",\"table__column--status\":\"BrokerToursTable__table__column--status___YqXbK\",\"table__column--has-warnings\":\"BrokerToursTable__table__column--has-warnings___LQueK\",\"table__column--origin\":\"BrokerToursTable__table__column--origin___wOZ2L\",\"table__column--destination\":\"BrokerToursTable__table__column--destination___Oeu6Z\",\"table__column--carrier\":\"BrokerToursTable__table__column--carrier___wa2PF\",\"fadeIn\":\"BrokerToursTable__fadeIn___dDMO9\",\"blinking\":\"BrokerToursTable__blinking___GVMKd\"};","import * as React from 'react';\nimport { ApiTourStatusT, TourStatusEnum } from 'common/utils/api/models';\nimport ColoredStatusLabel, {\n    colorCodingColoredStatusTheme,\n    PropsT as ColoredStatusLabelPropsT,\n} from 'common/components/ColoredStatusLabel/ColoredStatusLabel';\nimport TourStatus from 'common/components/status/TourStatus/TourStatus';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = Omit<ColoredStatusLabelPropsT, 'label' | 'color'> & {\n    status: ApiTourStatusT | null | undefined;\n};\n\nexport const TOUR_STATUS_COLOR_MAP: Record<ApiTourStatusT, StyleGuideColorsEnum> = {\n    [TourStatusEnum.carrierUnassigned]: colorCodingColoredStatusTheme.attention,\n    [TourStatusEnum.carrierAssigned]: colorCodingColoredStatusTheme.normal,\n    [TourStatusEnum.inTransit]: colorCodingColoredStatusTheme.normal,\n    [TourStatusEnum.finished]: colorCodingColoredStatusTheme.positive,\n    [TourStatusEnum.canceled]: colorCodingColoredStatusTheme.normal,\n};\n\nconst TourColoredStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status, ...restProps } = props;\n\n    if (!status) {\n        return null;\n    }\n\n    const color = TOUR_STATUS_COLOR_MAP[status];\n\n    return <ColoredStatusLabel {...restProps} label={<TourStatus status={status} />} color={color} />;\n});\n\nexport default TourColoredStatus;\n","import {\n    CompanyRFQsStateT,\n    FETCH_RFQS_PAGE_REQUEST_BEGIN,\n    FETCH_RFQS_PAGE_REQUEST_ERROR,\n    FETCH_RFQS_PAGE_REQUEST_SUCCESS,\n    RESET_RFQS,\n    RFQsActionT,\n    RFQsStateT,\n} from './types';\nimport requestStatus from 'common/utils/request-status';\nimport { pageBeginReducer, pageSuccessReducer, resetPagesCacheReducer } from 'common/utils/pagination/reducers';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\n\nexport const initialCompanyRFQsState: CompanyRFQsStateT = {\n    pages: [],\n    query: null,\n    total: null,\n    byId: {},\n};\n\nconst initialState: RFQsStateT = {};\n\nexport default (state = initialState, action: RFQsActionT | DestroySessionActionT): RFQsStateT => {\n    switch (action.type) {\n        case FETCH_RFQS_PAGE_REQUEST_BEGIN: {\n            const { pageNumber, query, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyRFQsState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    ...pageBeginReducer(companyState, pageNumber, query),\n                },\n            };\n        }\n        case FETCH_RFQS_PAGE_REQUEST_SUCCESS: {\n            const { query, pageNumber, pageResponse, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyRFQsState;\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    ...pageSuccessReducer(companyState, pageNumber, query, pageResponse),\n                },\n            };\n        }\n        case FETCH_RFQS_PAGE_REQUEST_ERROR: {\n            const { error, pageNumber, companyId } = action;\n\n            const companyState = state[companyId] || initialCompanyRFQsState;\n\n            const newPages = [...companyState.pages];\n            newPages.splice(pageNumber, 1, {\n                ...companyState.pages[pageNumber],\n                requestStatus: requestStatus.setError(error),\n            });\n\n            return {\n                ...state,\n                [companyId]: {\n                    ...companyState,\n                    pages: newPages,\n                },\n            };\n        }\n        case RESET_RFQS: {\n            const { companyId, mutationListOptions } = action;\n\n            const companyState = state[companyId] || initialCompanyRFQsState;\n\n            return {\n                ...initialState,\n                [companyId]: {\n                    ...initialCompanyRFQsState,\n                    ...resetPagesCacheReducer(initialCompanyRFQsState, companyState, mutationListOptions),\n                },\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return {\n                ...initialState,\n            };\n        }\n        default:\n            return state;\n    }\n};\n","import createBrowserHistory from 'history/createBrowserHistory';\n// import createHashHistory from 'history/createHashHistory';\nimport { SidebarQueryKeysEnum } from 'common/layouts/SideBars/models';\nimport qs from 'qs';\n\nconst customHistory = createBrowserHistory<HistoryStateT>();\nexport default customHistory;\n\ntype OptionsT = {\n    shouldCloseSidebars?: boolean;\n};\n\nexport const goBackIfHasRePath = (callback: () => void, options?: OptionsT) => {\n    if (customHistory.location.state?.rePath) {\n        let rePath = customHistory.location.state?.rePath;\n\n        if (options) {\n            const url = new URL(window.location.origin + rePath);\n\n            const query = qs.parse(url.search.slice(1));\n\n            if (options?.shouldCloseSidebars) {\n                delete query[SidebarQueryKeysEnum.rightSidebar];\n                delete query[SidebarQueryKeysEnum.leftSidebar];\n            }\n            rePath = [url.pathname, `${query ? `?` : ''}${qs.stringify(query)}`, url.hash ? `#${url.hash}` : '']\n                .filter(Boolean)\n                .join('');\n        }\n\n        customHistory.push(rePath);\n        return;\n    }\n\n    callback();\n};\n\nexport const goToPossiblyExternalUrl = (url: string | object) => {\n    if (typeof url === 'string' && url.startsWith('http')) {\n        window.location.href = url;\n        return;\n    }\n\n    customHistory.push(url);\n};\n\nconst ROOT_BASEPATH = ''; // or '/#'\n\nexport const createSelfExternalUrl = (relativePath: string) => {\n    return `${window.location.origin}${ROOT_BASEPATH}${relativePath}`;\n};\n\nexport const getCurrentRelativePath = (url: string): string => {\n    return url.replace(`${window.location.origin}${ROOT_BASEPATH}`, '');\n};\n\nexport const createExternalRelativePath = (restUrl: string): string => {\n    return `${ROOT_BASEPATH}${restUrl}`;\n};\n","import { FieldsEnum, FormValuesT } from '../EditDriverSidebarContent/EditDriverFormContent/constants';\nimport { ApiContactFormalEnum } from 'common/utils/api/models';\nimport { PHONE_NUMBER_PREFIX } from 'common/constants';\n\nconst getInitialValues = (): FormValuesT => {\n    return {\n        [FieldsEnum.id]: null,\n        [FieldsEnum.formal]: undefined as unknown as ApiContactFormalEnum,\n        [FieldsEnum.firstName]: '',\n        [FieldsEnum.lastName]: '',\n\n        [FieldsEnum.desktopPhone]: PHONE_NUMBER_PREFIX,\n\n        [FieldsEnum.address]: '',\n\n        [FieldsEnum.birthday]: null,\n        [FieldsEnum.countryCode]: null,\n        [FieldsEnum.language]: null,\n\n        [FieldsEnum.ratePerKm]: '',\n    };\n};\n\nexport default getInitialValues;\n","import React, { useCallback } from 'react';\nimport classNames from 'classnames/bind';\nimport moment from 'moment';\n\nimport styles from './DriverDetailsSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport LoaderOverlay from 'common/layouts/LoaderOverlay/LoaderOverlay';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectCountriesByCode, selectCountriesByLangCode } from 'common/store/countries-dict/selectors';\nimport PhoneNumberIcon from 'common/components/PhoneNumberIcon/PhoneNumberIcon';\nimport { CurrencyEnum, SocialMediaEnum } from 'common/constants';\nimport { isNonNil } from 'common/utils';\nimport chunk from 'lodash/chunk';\nimport isNumber from 'lodash/isNumber';\nimport { FORMAL_T_MAP } from 'common/components/dropdowns/UserFormalDropdown/UserFormalDropdown';\nimport { CommonSidebarDataT, CommonSidebarsTypeEnum, SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { DriverDetailsSidebarDataT } from 'common/layouts/SideBars/contents/DriverDetailsSidebarContent/models';\nimport { useDriverActionOptions } from './hooks/use-driver-action-options';\nimport {\n    selectDriverDetailsById,\n    selectFetchDriverDetailsRequest,\n    selectUpdateDriverRequest,\n} from 'common/store/drivers/selectors';\nimport { activateDriver, archiveDriver, cancelDriverInvite, fetchDriverDetails } from 'common/store/drivers/actions';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport ArchiveDriverConfirmation, {\n    ArchiveDriverConfirmationDataT,\n} from 'common/layouts/DriversPageLayout/dialogs/ArchiveDriverConfirmation/ArchiveDriverConfirmation';\nimport ActivateDriverConfirmation, {\n    ActivateDriverConfirmationDataT,\n} from 'common/layouts/DriversPageLayout/dialogs/ActivateDriverConfirmation/ActivateDriverConfirmation';\nimport CancelDriverInviteModal, {\n    CancelDriverInviteConfirmationDataT,\n} from 'common/layouts/DriversPageLayout/dialogs/CancelDriverInviteModal/CancelDriverInviteModal';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { driverDetailsRefreshChannel } from 'common/store/drivers/channels';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport DriverSidebarHeader from './DriverSidebarHeader/DriverSidebarHeader';\nimport Money from 'common/components/Money/Money';\nimport { CountryCodeT } from 'common/utils/api/models';\nimport DriverStatusPill from 'common/components/status-pill/DriverStatusPill/DriverStatusPill';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = SidebarContentPropsT<DriverDetailsSidebarDataT, CommonSidebarDataT>;\n\nconst formatBirthday = (birthday: string) => moment(birthday, 'YYYY-MM-DD').format('DD.MM.YYYY');\n\nconst DriverDetailsSidebarContent: React.FC<PropsT> = (props) => {\n    const { data, onClose, onGoBack, onOpenNextSidebar } = props;\n\n    const driverDetailsById = useSelector(selectDriverDetailsById(data.partnerId));\n    const driverDetails = driverDetailsById[data.driverId as DriverIdT];\n\n    const fetchDriverDetailsRequestStatus = useSelector(selectFetchDriverDetailsRequest(data.partnerId));\n    const updateDriversRequestStatus = useSelector(selectUpdateDriverRequest(data.partnerId));\n\n    const archiveDriverConfirmation = useModalDialog<ArchiveDriverConfirmationDataT>();\n    const activateDriverConfirmation = useModalDialog<ActivateDriverConfirmationDataT>();\n    const cancelDriverInviteConfirmation = useModalDialog<CancelDriverInviteConfirmationDataT>();\n\n    useCloseModalDialogAfterRequest(updateDriversRequestStatus, [\n        archiveDriverConfirmation,\n        activateDriverConfirmation,\n        cancelDriverInviteConfirmation,\n    ]);\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchDriverDetails(data.driverId, data.partnerId, { isForceUpdate: false }));\n    }, [data, dispatch]);\n\n    const refreshHandler = useCallback(\n        ({ driverId, partnerId }: InferChannelEventT<typeof driverDetailsRefreshChannel>) => {\n            if (driverId === data.driverId && partnerId === data.partnerId) {\n                dispatch(fetchDriverDetails(data.driverId, data.partnerId, { isForceUpdate: true }));\n            }\n        },\n        [data, dispatch],\n    );\n    useChannelSubscribe(driverDetailsRefreshChannel, refreshHandler);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        dispatch(fetchDriverDetails(data.driverId, data.partnerId, { isForceUpdate: false }));\n    }, [data, dispatch]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const handleEditDriverDetails = useCallback(() => {\n        onOpenNextSidebar({\n            type: CommonSidebarsTypeEnum.editDriverDetails,\n            driverId: data.driverId,\n            partnerId: data.partnerId,\n        });\n    }, [data, onOpenNextSidebar]);\n\n    const headerDropdownOptions = useDriverActionOptions(driverDetails, data.partnerId, {\n        onEdit: handleEditDriverDetails,\n        onCancelInvite: cancelDriverInviteConfirmation.setData,\n        onArchiveDriver: archiveDriverConfirmation.setData,\n        onActivateDriver: activateDriverConfirmation.setData,\n    });\n\n    const { t } = useTranslation();\n\n    const countryByCode = useSelector(selectCountriesByCode);\n    const countryByLangCode = useSelector(selectCountriesByLangCode);\n\n    const mediasNodes = [\n        <ReadOnlyField\n            key=\"contact\"\n            icon={<PhoneNumberIcon phoneNumber={driverDetails?.contact?.deskPhone} />}\n            className={cx('field--contact')}\n            label={t('common:driver-details.fields.desktop-phone.label')}\n            placeholder={t('common:driver-details.fields.desktop-phone.placeholder')}\n            value={driverDetails?.contact?.deskPhone || ''}\n        />,\n        ...(driverDetails?.hasAuthentication\n            ? [\n                  <ReadOnlyField\n                      key=\"mobile-phone\"\n                      icon={<PhoneNumberIcon phoneNumber={driverDetails?.contact?.mobilePhone} />}\n                      className={cx('field--contact')}\n                      label={t('common:driver-details.fields.mobile-phone.label')}\n                      placeholder={t('common:driver-details.fields.mobile-phone.placeholder')}\n                      value={driverDetails?.contact?.mobilePhone || ''}\n                  />,\n              ]\n            : []),\n        ...(driverDetails?.contact?.medias || []).map((media, index) => {\n            if (typeof media.login !== 'string') {\n                return null;\n            }\n\n            const isWellKnownSocialMedia = Object.values(SocialMediaEnum).includes(media.type as SocialMediaEnum);\n\n            return (\n                <ReadOnlyField\n                    key={index}\n                    className={cx('field--contact')}\n                    label={isWellKnownSocialMedia ? t(`common:driver-details.fields.${media.type}.label`) : media.type}\n                    value={media.login || ''}\n                />\n            );\n        }),\n    ].filter(isNonNil);\n\n    const handleConfirmArchive = (data: ArchiveDriverConfirmationDataT): void => {\n        dispatch(archiveDriver(data.driverId, data.companyId));\n    };\n\n    const handleConfirmActivate = (data: ActivateDriverConfirmationDataT): void => {\n        dispatch(activateDriver(data.driverId, data.companyId));\n    };\n\n    const handleConfirmCancelDriverInvite = (data: CancelDriverInviteConfirmationDataT): void => {\n        dispatch(cancelDriverInvite(data.driverUserId, data.companyId));\n\n        if (onClose) {\n            onClose();\n        }\n    };\n\n    const mediaChunks = chunk(mediasNodes, 2);\n\n    return (\n        <>\n            {fetchDriverDetailsRequestStatus.loading && <LoaderOverlay />}\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent\n                    title={driverDetails ? <DriverSidebarHeader driverDetails={driverDetails} /> : null}\n                    afterTitleNode={\n                        driverDetails ? <DriverStatusPill isSymmetrical status={driverDetails?.status || null} /> : null\n                    }\n                    dropdownOptions={headerDropdownOptions}\n                    onClose={onClose}\n                    onGoBack={onGoBack}\n                />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <div className={cx('section')}>\n                    <div className={cx('section__title')}>{t('common:driver-details.sections.name')}</div>\n                    <FieldGroup>\n                        <ReadOnlyField\n                            className={cx('field--formal')}\n                            label={t('common:driver-details.fields.formal.label')}\n                            value={\n                                driverDetails?.contact?.formal ? t(FORMAL_T_MAP[driverDetails?.contact?.formal]) : ''\n                            }\n                            placeholder={t('common:fields.placeholder.not-specified')}\n                        />\n                        <ReadOnlyField\n                            className={cx('field--first-name')}\n                            label={t('common:driver-details.fields.first-name.label')}\n                            value={driverDetails?.contact?.name || ''}\n                        />\n                        <ReadOnlyField\n                            className={cx('field--last-name')}\n                            label={t('common:driver-details.fields.last-name.label')}\n                            value={driverDetails?.contact?.surname || ''}\n                        />\n                    </FieldGroup>\n                </div>\n                <div className={cx('section')}>\n                    <div className={cx('section__title')}>{t('common:driver-details.sections.contacts')}</div>\n                    {mediaChunks.map((chunk, chunkIndex) => (\n                        <FieldGroup key={chunkIndex}>{chunk}</FieldGroup>\n                    ))}\n                </div>\n                <div className={cx('section', 'section--isLast')}>\n                    <div className={cx('section__title')}>{t('common:driver-details.sections.personals')}</div>\n                    <ReadOnlyField\n                        className={cx('field--birthday')}\n                        label={t('common:driver-details.fields.address.label')}\n                        value={driverDetails?.homeAddress || ''}\n                        placeholder={t('common:fields.placeholder.not-specified')}\n                    />\n                    <FieldGroup>\n                        <ReadOnlyField\n                            className={cx('field--birthday')}\n                            label={t('common:driver-details.fields.birthday.label')}\n                            value={\n                                driverDetails?.contact?.birthday ? formatBirthday(driverDetails?.contact?.birthday) : ''\n                            }\n                            placeholder={t('common:fields.placeholder.not-specified')}\n                        />\n                        <ReadOnlyField\n                            className={cx('field--country')}\n                            icon={<FlagIcon countryCode={driverDetails?.contact?.residence} />}\n                            label={t('common:driver-details.fields.residence.label')}\n                            value={\n                                countryByCode[driverDetails?.contact?.residence as CountryCodeT]?.userLangDisplayName ||\n                                ''\n                            }\n                            placeholder={t('common:fields.placeholder.not-specified')}\n                        />\n                    </FieldGroup>\n                    <FieldGroup>\n                        <ReadOnlyField\n                            className={cx('field--language')}\n                            label={t('common:driver-details.fields.language.label')}\n                            value={countryByLangCode[driverDetails?.contact?.language as string]?.name || null}\n                            placeholder={t('common:fields.placeholder.not-specified')}\n                        />\n                        <ReadOnlyField\n                            className={cx('field--country')}\n                            label={t('common:driver-details.fields.rate-per-hour.label')}\n                            placeholder={t('common:driver-details.fields.rate-per-hour.placeholder')}\n                            value={\n                                driverDetails && isNumber(driverDetails.rate) ? (\n                                    <Money amount={driverDetails.rate} currency={CurrencyEnum.EUR} />\n                                ) : null\n                            }\n                        />\n                    </FieldGroup>\n                </div>\n            </SideBarLayout>\n            <ArchiveDriverConfirmation\n                data={archiveDriverConfirmation.data}\n                onConfirm={handleConfirmArchive}\n                onCancel={archiveDriverConfirmation.onCancel}\n                onClose={archiveDriverConfirmation.onClose}\n                requestStatus={updateDriversRequestStatus}\n            />\n            <ActivateDriverConfirmation\n                data={activateDriverConfirmation.data}\n                onConfirm={handleConfirmActivate}\n                onCancel={activateDriverConfirmation.onCancel}\n                onClose={activateDriverConfirmation.onClose}\n                requestStatus={updateDriversRequestStatus}\n            />\n            <CancelDriverInviteModal\n                data={cancelDriverInviteConfirmation.data}\n                onConfirm={handleConfirmCancelDriverInvite}\n                onCancel={cancelDriverInviteConfirmation.onCancel}\n                onClose={cancelDriverInviteConfirmation.onClose}\n                requestStatus={updateDriversRequestStatus}\n            />\n        </>\n    );\n};\n\nexport default DriverDetailsSidebarContent;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './DriversAssignmentForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport { useFormik } from 'formik';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { TransportOrderDetailsT } from 'common/store/transport-order-details/models';\nimport { assign, resetDriverAssignment } from 'common/store/driver-assigment/actions';\nimport { logWarning } from 'common/utils/logger';\nimport { selectAssignmentRequestStatus } from 'common/store/driver-assigment/selectors';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport { isNonNil } from 'common/utils';\nimport DriverSuggestInput from 'common/layouts/TransportOrderDetailsPageLayout/DriversAssignmentForm/DriverSuggestInput/DriverSuggestInput';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { getDriverLabel } from 'common/layouts/TransportOrderDetailsPageLayout/DriversAssignmentForm/DriverSuggestInput/utils';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    transportOrderId: TransportOrderIdT;\n    transportOrderDetails: TransportOrderDetailsT | null | undefined;\n    onCancel: () => void;\n    isAllowUnassignDriver: boolean;\n    unnassignDriversRequestStatus: RequestStatusT;\n    onUnnasignDrivers: () => void;\n};\n\nconst INITIAL_VALUES: FormValuesT = {\n    [FieldsEnum.driverId]: null,\n    [FieldsEnum.teamDriverId]: null,\n};\n\nconst DriversAssignmentForm: React.FC<PropsT> = (props) => {\n    const {\n        onCancel,\n        transportOrderId,\n        transportOrderDetails,\n        isAllowUnassignDriver,\n        onUnnasignDrivers,\n        unnassignDriversRequestStatus,\n    } = props;\n\n    const driver = transportOrderDetails?.drivers?.[0] || null;\n    const driverId = driver?.id || null;\n    const teamDriver = transportOrderDetails?.drivers?.[1] || null;\n    const teamDriverId = teamDriver?.id || null;\n    const isTeamDrive = !!transportOrderDetails?.tourInfo?.teamDrive;\n\n    const { t } = useTranslation();\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        return () => {\n            dispatch(resetDriverAssignment());\n        };\n    }, [dispatch]);\n\n    const assignmentRequestStatus = useSelector(selectAssignmentRequestStatus);\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values, isTeamDrive);\n    }, [t, isTeamDrive]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = {\n            ...INITIAL_VALUES,\n            [FieldsEnum.driverId]: driverId || null,\n            [FieldsEnum.teamDriverId]: teamDriverId || null,\n        };\n\n        const errors = validateForm(t, values, isTeamDrive);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [driverId, teamDriverId]);\n\n    const hasInitialDrivers = driverId || teamDriverId;\n\n    const formik = useFormik<FormValuesT>({\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const driverIds: DriverIdT[] = [\n                values[FieldsEnum.driverId],\n                isTeamDrive ? values[FieldsEnum.teamDriverId] : null,\n            ].filter(isNonNil);\n\n            if (!driverIds.length) {\n                logWarning('empty driverIds!');\n                return;\n            }\n\n            dispatch(assign(transportOrderId, driverIds));\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const handleClearDrivers = () => {\n        onUnnasignDrivers();\n    };\n\n    const isLoading = unnassignDriversRequestStatus.loading || assignmentRequestStatus.loading;\n\n    return (\n        <div className={cx('wrap')}>\n            <form onSubmit={formik.handleSubmit}>\n                <div className={cx('title')}>{t('common:driver-assignment.title')}</div>\n                <div className={cx('form')}>\n                    <FormikField\n                        name={FieldsEnum.driverId}\n                        error={formik.errors[FieldsEnum.driverId]}\n                        meta={formik.getFieldMeta(FieldsEnum.driverId)}\n                        label={t('common:driver-assignment.fields.driver.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DriverSuggestInput\n                                value={formik.values[FieldsEnum.driverId]}\n                                initialLabel={getDriverLabel(driver)}\n                                initialValue={driver?.id}\n                                transportOrderId={transportOrderId}\n                                onSelect={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                overlayPosition={DropdownOverlayPositionEnum.topLeft}\n                                inputPlaceholder={t('common:driver-assignment.fields.driver.input-placeholder')}\n                                placeholder={t('common:driver-assignment.fields.driver.placeholder')}\n                            />\n                        )}\n                    </FormikField>\n                    {isTeamDrive && (\n                        <FormikField\n                            name={FieldsEnum.teamDriverId}\n                            error={formik.errors[FieldsEnum.teamDriverId]}\n                            meta={formik.getFieldMeta(FieldsEnum.teamDriverId)}\n                            label={t('common:driver-assignment.fields.team-driver.label')}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <DriverSuggestInput\n                                    value={formik.values[FieldsEnum.teamDriverId]}\n                                    initialLabel={getDriverLabel(teamDriver)}\n                                    initialValue={teamDriver?.id}\n                                    transportOrderId={transportOrderId}\n                                    onSelect={props.onChange}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    hasWarning={props.hasWarning}\n                                    hasError={props.hasError}\n                                    overlayPosition={DropdownOverlayPositionEnum.topLeft}\n                                    inputPlaceholder={t(\n                                        'common:driver-assignment.fields.team-driver.input-placeholder',\n                                    )}\n                                    placeholder={t('common:driver-assignment.fields.team-driver.placeholder')}\n                                />\n                            )}\n                        </FormikField>\n                    )}\n                </div>\n                {hasInitialDrivers ? (\n                    <div className={cx('actions')}>\n                        {isAllowUnassignDriver && (\n                            <Button\n                                theme={ButtonThemeEnum.secondaryDanger}\n                                className={cx('action', 'action--clear-assets')}\n                                onClick={handleClearDrivers}\n                                isLoading={assignmentRequestStatus.loading}\n                                isDisabled={assignmentRequestStatus.loading}\n                            >\n                                {t('common:driver-assignment.actions.clear-drivers', {\n                                    postProcess: 'interval',\n                                    count: transportOrderDetails?.drivers?.length || 0,\n                                })}\n                            </Button>\n                        )}\n                        <div className={cx('sub-actions')}>\n                            <Button\n                                theme={ButtonThemeEnum.secondary}\n                                className={cx('action', 'action--reassign-cancel')}\n                                onClick={onCancel}\n                            >\n                                {t('common:driver-assignment.actions.cancel')}\n                            </Button>\n                            <Button\n                                theme={ButtonThemeEnum.primary}\n                                className={cx('action', 'action--reassign')}\n                                isLoading={isLoading}\n                                isDisabled={isLoading}\n                                type=\"submit\"\n                            >\n                                {t('common:driver-assignment.actions.reassign')}\n                            </Button>\n                        </div>\n                    </div>\n                ) : (\n                    <div className={cx('actions')}>\n                        <Button\n                            theme={ButtonThemeEnum.secondary}\n                            className={cx('action', 'action--assign-cancel')}\n                            onClick={onCancel}\n                        >\n                            {t('common:driver-assignment.actions.cancel')}\n                        </Button>\n                        <Button\n                            theme={ButtonThemeEnum.primary}\n                            className={cx('action', 'action--assign')}\n                            isLoading={isLoading}\n                            isDisabled={isLoading}\n                            type=\"submit\"\n                        >\n                            {t('common:driver-assignment.actions.assign')}\n                        </Button>\n                    </div>\n                )}\n                <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n            </form>\n        </div>\n    );\n};\n\nexport default DriversAssignmentForm;\n","import * as React from 'react';\nimport { DocumentStatusEnum, ApiDocumentStatusT } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    status: ApiDocumentStatusT | null | undefined;\n};\n\nexport const DOCUMENT_STATUS_T_MAP: Record<ApiDocumentStatusT, string> = {\n    [DocumentStatusEnum.waitingForApprove]: 'common:document-status.WAITING_FOR_APPROVE',\n    [DocumentStatusEnum.approved]: 'common:document-status.APPROVED',\n    [DocumentStatusEnum.rejected]: 'common:document-status.REJECTED',\n    [DocumentStatusEnum.revoked]: 'common:document-status.REVOKED',\n    [DocumentStatusEnum.expired]: 'common:document-status.EXPIRED',\n    [DocumentStatusEnum.archived]: 'common:document-status.ARCHIVED',\n};\n\nconst DocumentStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return t('common:document-status.not-upload');\n    }\n\n    return t(DOCUMENT_STATUS_T_MAP[status]);\n});\n\nexport default DocumentStatus;\n","// extracted by mini-css-extract-plugin\nexport default {\"toast\":\"Toast__toast___xpU6q\",\"toast--is-show\":\"Toast__toast--is-show___Wyp8f\",\"fadeIn\":\"Toast__fadeIn___Lpajr\",\"blinking\":\"Toast__blinking___iIIGS\"};","import requestStatus from 'common/utils/request-status';\nimport {\n    ASSIGNMENT_REQUEST_BEGIN,\n    ASSIGNMENT_REQUEST_ERROR,\n    ASSIGNMENT_REQUEST_SUCCESS,\n    CHANGE_USER_SELECTION,\n    BrokerOrderAssigmentActionT,\n    BrokerOrderAssigmentStateT,\n    FETCH_ASSET_SCHEDULE_BEGIN,\n    FETCH_ASSET_SCHEDULE_ERROR,\n    FETCH_ASSET_SCHEDULE_SUCCESS,\n    FETCH_ASSIGN_DETAILS_REQUEST_BEGIN,\n    FETCH_ASSIGN_DETAILS_REQUEST_ERROR,\n    FETCH_ASSIGN_DETAILS_REQUEST_SUCCESS,\n    FETCH_AVAILABLE_CARRIERS_REQUEST_BEGIN,\n    FETCH_AVAILABLE_CARRIERS_REQUEST_ERROR,\n    FETCH_AVAILABLE_CARRIERS_REQUEST_SUCCESS,\n    FETCH_AVAILABLE_VEHICLES_REQUEST_BEGIN,\n    FETCH_AVAILABLE_VEHICLES_REQUEST_ERROR,\n    FETCH_AVAILABLE_VEHICLES_REQUEST_SUCCESS,\n    FIND_TRAILER_REQUEST_BEGIN,\n    FIND_TRAILER_REQUEST_ERROR,\n    FIND_TRAILER_REQUEST_SUCCESS,\n    FIND_TRUCK_REQUEST_BEGIN,\n    FIND_TRUCK_REQUEST_ERROR,\n    FIND_TRUCK_REQUEST_SUCCESS,\n    INIT_USER_SELECTION,\n    PREDICT_SELF_COST_REQUEST_BEGIN,\n    PREDICT_SELF_COST_REQUEST_ERROR,\n    PREDICT_SELF_COST_REQUEST_SUCCESS,\n    RESET,\n    ScheduleAssetT,\n    SET_ASSET_SCHEDULE,\n    SET_EVENT_LOAD_ROUTE,\n    SET_INIT_ASSETS_INFO,\n    SET_SELECTED_SCHEDULE_EVENT_ID,\n    SET_SHOW_SELECTED_ASSET_SCHEDULES,\n} from './types';\nimport { SelfCostPredictionT } from 'broker-admin/store/broker-order-assigment/models';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\nimport { ALL_CARRIERS_ID } from 'common/constants';\nimport { getAssignmentVehicleLinks, getTrailerById, getTruckById } from 'common/utils/assignment';\nimport { checkIsSameQuery } from 'common/utils/pagination/utils';\n\nconst initialUserSelectionValues: BrokerOrderAssigmentStateT['userSelection'] = {\n    truckId: null,\n    trailerId: null,\n    excludedCountries: [],\n    radiusKm: null,\n    carrierId: ALL_CARRIERS_ID,\n    isShowActualPlace: false,\n    isShowUnavailableAssets: false,\n    isShowAssetSchedule: false,\n    isIgnoreCertificates: false,\n    isIgnoreEmissionStandard: false,\n    pointToDropTrailer: null,\n    pointToDropTruck: null,\n};\n\nconst initialAssetSchedule: ScheduleAssetT = {\n    requestStatus: requestStatus.initial,\n    events: [],\n    routeById: {},\n    currentEventId: null,\n};\n\nconst initialState: BrokerOrderAssigmentStateT = {\n    userSelection: initialUserSelectionValues,\n    trailerById: {},\n    truckById: {},\n    truckSuggest: {\n        query: null,\n        requestStatus: requestStatus.initial,\n        ids: [],\n    },\n    trailerSuggest: {\n        query: null,\n        requestStatus: requestStatus.initial,\n        ids: [],\n    },\n    availableVehicles: {\n        query: null,\n        requestStatus: requestStatus.initial,\n        list: [],\n    },\n    links: {\n        byTruckId: {},\n        byTrailerId: {},\n    },\n    selfCostPrediction: {\n        query: null,\n        requestStatus: requestStatus.initial,\n        result: null,\n    },\n    availableCarriers: {\n        requestStatus: requestStatus.initial,\n        carriers: [],\n    },\n    assigmentStatus: requestStatus.initial,\n    currentPositionAssetById: {},\n    scheduleAssetById: {},\n    isShowSelectedAssetSchedules: false,\n    selectedScheduleEventId: null,\n    fetchAssignDetailsStatus: requestStatus.initial,\n};\n\nexport default (\n    state = initialState,\n    action: BrokerOrderAssigmentActionT | DestroySessionActionT,\n): BrokerOrderAssigmentStateT => {\n    switch (action.type) {\n        case INIT_USER_SELECTION:\n        case CHANGE_USER_SELECTION: {\n            const { changes } = action;\n            const { userSelection: prevUserSelection } = state;\n\n            const newUserSelection: typeof prevUserSelection = {\n                ...prevUserSelection,\n                ...changes,\n            };\n\n            return {\n                ...state,\n                userSelection: newUserSelection,\n            };\n        }\n\n        case FETCH_AVAILABLE_VEHICLES_REQUEST_BEGIN: {\n            const { query } = action;\n\n            return {\n                ...state,\n                availableVehicles: {\n                    ...state.availableVehicles,\n                    requestStatus: requestStatus.loading,\n                    query,\n                },\n            };\n        }\n\n        case FETCH_AVAILABLE_VEHICLES_REQUEST_SUCCESS: {\n            const { vehicles, query } = action;\n\n            if (!checkIsSameQuery(state.availableVehicles.query, query)) {\n                return state;\n            }\n\n            const trailerById = getTrailerById(vehicles, {});\n\n            const truckById = getTruckById(vehicles, {});\n\n            const list = vehicles.map((vehicle) => {\n                return {\n                    trailerId: vehicle?.trailer?.id || null,\n                    truckId: vehicle?.truck?.id || null,\n                };\n            });\n\n            const links = getAssignmentVehicleLinks(vehicles);\n\n            return {\n                ...state,\n                trailerById: {\n                    ...state.trailerById,\n                    ...trailerById,\n                },\n                truckById: {\n                    ...state.truckById,\n                    ...truckById,\n                },\n                links: {\n                    byTruckId: {\n                        ...state.links.byTruckId,\n                        ...links.byTruckId,\n                    },\n                    byTrailerId: {\n                        ...state.links.byTrailerId,\n                        ...links.byTrailerId,\n                    },\n                },\n                availableVehicles: {\n                    ...state.availableVehicles,\n                    list,\n                    requestStatus: requestStatus.ok,\n                },\n            };\n        }\n\n        case FETCH_AVAILABLE_VEHICLES_REQUEST_ERROR: {\n            const { error, query } = action;\n\n            if (!checkIsSameQuery(state.availableVehicles.query, query)) {\n                return state;\n            }\n\n            return {\n                ...state,\n                availableVehicles: {\n                    ...state.availableVehicles,\n                    requestStatus: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case FETCH_AVAILABLE_CARRIERS_REQUEST_BEGIN: {\n            return {\n                ...state,\n                availableCarriers: {\n                    ...state.availableCarriers,\n                    requestStatus: requestStatus.loading,\n                },\n            };\n        }\n\n        case FETCH_AVAILABLE_CARRIERS_REQUEST_SUCCESS: {\n            const { carriers } = action;\n\n            return {\n                ...state,\n                availableCarriers: {\n                    ...state.availableCarriers,\n                    carriers,\n                    requestStatus: requestStatus.ok,\n                },\n            };\n        }\n\n        case FETCH_AVAILABLE_CARRIERS_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                availableCarriers: {\n                    ...state.availableCarriers,\n                    requestStatus: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case FIND_TRAILER_REQUEST_BEGIN: {\n            const { query } = action;\n\n            return {\n                ...state,\n                trailerSuggest: {\n                    ...state.trailerSuggest,\n                    query,\n                    requestStatus: requestStatus.loading,\n                },\n            };\n        }\n\n        case FIND_TRAILER_REQUEST_ERROR: {\n            const { error, query } = action;\n\n            if (!checkIsSameQuery(state.trailerSuggest.query, query)) {\n                return state;\n            }\n\n            return {\n                ...state,\n                trailerSuggest: {\n                    ...state.trailerSuggest,\n                    requestStatus: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case FIND_TRAILER_REQUEST_SUCCESS: {\n            const { trailersSuggestItems, query } = action;\n\n            if (!checkIsSameQuery(state.trailerSuggest.query, query)) {\n                return state;\n            }\n\n            const ids = trailersSuggestItems.reduce((result, trailersSuggestItem) => {\n                const trailerId = trailersSuggestItem.trailer?.id;\n                if (trailerId) {\n                    result.push(trailerId);\n                }\n\n                return result;\n            }, [] as TrailerIdT[]);\n\n            const trailerById = getTrailerById(trailersSuggestItems, state.trailerById);\n            const truckById = getTruckById(trailersSuggestItems, state.truckById);\n            const links = getAssignmentVehicleLinks(trailersSuggestItems);\n\n            return {\n                ...state,\n                links: {\n                    byTruckId: {\n                        ...state.links.byTruckId,\n                        ...links.byTruckId,\n                    },\n                    byTrailerId: {\n                        ...state.links.byTrailerId,\n                        ...links.byTrailerId,\n                    },\n                },\n                trailerById: {\n                    ...state.trailerById,\n                    ...trailerById,\n                },\n                truckById: {\n                    ...state.truckById,\n                    ...truckById,\n                },\n                trailerSuggest: {\n                    ...state.trailerSuggest,\n                    requestStatus: requestStatus.ok,\n                    ids,\n                },\n            };\n        }\n\n        case SET_INIT_ASSETS_INFO: {\n            const { truck, trailer } = action;\n\n            const trailerById = getTrailerById(trailer ? [trailer] : [], state.trailerById);\n            const truckById = getTruckById(truck ? [truck] : [], state.truckById);\n\n            return {\n                ...state,\n                trailerById: {\n                    ...state.trailerById,\n                    ...trailerById,\n                },\n                truckById: {\n                    ...state.truckById,\n                    ...truckById,\n                },\n            };\n        }\n\n        case FIND_TRUCK_REQUEST_BEGIN: {\n            const { query } = action;\n\n            return {\n                ...state,\n                truckSuggest: {\n                    ...state.truckSuggest,\n                    query,\n                    requestStatus: requestStatus.loading,\n                },\n            };\n        }\n\n        case FIND_TRUCK_REQUEST_ERROR: {\n            const { error, query } = action;\n\n            if (!checkIsSameQuery(state.truckSuggest.query, query)) {\n                return state;\n            }\n\n            return {\n                ...state,\n                truckSuggest: {\n                    ...state.truckSuggest,\n                    requestStatus: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case FIND_TRUCK_REQUEST_SUCCESS: {\n            const { trucksSuggestItems, query } = action;\n\n            if (!checkIsSameQuery(state.truckSuggest.query, query)) {\n                return state;\n            }\n\n            const ids = trucksSuggestItems.reduce((result, trucksSuggestItem) => {\n                const truckId = trucksSuggestItem.truck?.id;\n                if (truckId) {\n                    result.push(truckId);\n                }\n\n                return result;\n            }, [] as TruckIdT[]);\n\n            const trailerById = getTrailerById(trucksSuggestItems, state.trailerById);\n            const truckById = getTruckById(trucksSuggestItems, state.truckById);\n            const links = getAssignmentVehicleLinks(trucksSuggestItems);\n\n            return {\n                ...state,\n                links: {\n                    byTruckId: {\n                        ...state.links.byTruckId,\n                        ...links.byTruckId,\n                    },\n                    byTrailerId: {\n                        ...state.links.byTrailerId,\n                        ...links.byTrailerId,\n                    },\n                },\n                trailerById: {\n                    ...state.trailerById,\n                    ...trailerById,\n                },\n                truckById: {\n                    ...state.truckById,\n                    ...truckById,\n                },\n                truckSuggest: {\n                    ...state.truckSuggest,\n                    requestStatus: requestStatus.ok,\n                    ids,\n                },\n            };\n        }\n\n        case PREDICT_SELF_COST_REQUEST_BEGIN: {\n            const { query } = action;\n\n            let newResult: SelfCostPredictionT | null = state.selfCostPrediction.result;\n            if (newResult) {\n                newResult = {\n                    ...newResult,\n                    truckToTrailerPolylineId: undefined,\n                    trailerToPickupPolylineId: undefined,\n                    payloadPolylineId: undefined,\n                    dropTrailerPolylineId: undefined,\n                    dropTruckPolylineId: undefined,\n                };\n            }\n\n            return {\n                ...state,\n                selfCostPrediction: {\n                    ...state.selfCostPrediction,\n                    query,\n                    requestStatus: requestStatus.loading,\n                    result: newResult,\n                },\n            };\n        }\n\n        case PREDICT_SELF_COST_REQUEST_ERROR: {\n            const { error, query } = action;\n\n            if (!checkIsSameQuery(state.selfCostPrediction.query, query)) {\n                return state;\n            }\n\n            return {\n                ...state,\n                selfCostPrediction: {\n                    ...state.selfCostPrediction,\n                    requestStatus: requestStatus.setError(error),\n                },\n            };\n        }\n\n        case PREDICT_SELF_COST_REQUEST_SUCCESS: {\n            const { selfCostPrediction, query } = action;\n\n            if (!checkIsSameQuery(state.selfCostPrediction.query, query)) {\n                return state;\n            }\n\n            return {\n                ...state,\n                selfCostPrediction: {\n                    ...state.selfCostPrediction,\n                    requestStatus: requestStatus.ok,\n                    result: selfCostPrediction,\n                },\n            };\n        }\n\n        case ASSIGNMENT_REQUEST_BEGIN: {\n            return {\n                ...state,\n                assigmentStatus: requestStatus.loading,\n            };\n        }\n\n        case ASSIGNMENT_REQUEST_SUCCESS: {\n            return {\n                ...state,\n                assigmentStatus: requestStatus.ok,\n            };\n        }\n\n        case ASSIGNMENT_REQUEST_ERROR: {\n            const { error } = action;\n            return {\n                ...state,\n                assigmentStatus: requestStatus.setError(error),\n            };\n        }\n\n        case FETCH_ASSET_SCHEDULE_BEGIN: {\n            const { assetId } = action;\n\n            const assetSchedule = state.scheduleAssetById[assetId] || initialAssetSchedule;\n\n            return {\n                ...state,\n                scheduleAssetById: {\n                    ...state.scheduleAssetById,\n                    [assetId]: {\n                        ...assetSchedule,\n                        requestStatus: requestStatus.loading,\n                    },\n                },\n            };\n        }\n\n        case FETCH_ASSET_SCHEDULE_ERROR: {\n            const { assetId, error } = action;\n\n            const assetSchedule = state.scheduleAssetById[assetId] || initialAssetSchedule;\n\n            return {\n                ...state,\n                scheduleAssetById: {\n                    ...state.scheduleAssetById,\n                    [assetId]: {\n                        ...assetSchedule,\n                        requestStatus: requestStatus.setError(error),\n                    },\n                },\n            };\n        }\n\n        case FETCH_ASSET_SCHEDULE_SUCCESS: {\n            const { assetId } = action;\n\n            const assetSchedule = state.scheduleAssetById[assetId] || initialAssetSchedule;\n\n            return {\n                ...state,\n                scheduleAssetById: {\n                    ...state.scheduleAssetById,\n                    [assetId]: {\n                        ...assetSchedule,\n                        requestStatus: requestStatus.ok,\n                    },\n                },\n            };\n        }\n\n        case FETCH_ASSIGN_DETAILS_REQUEST_BEGIN: {\n            return {\n                ...state,\n                fetchAssignDetailsStatus: requestStatus.initial,\n            };\n        }\n\n        case FETCH_ASSIGN_DETAILS_REQUEST_ERROR: {\n            const { error } = action;\n            return {\n                ...state,\n                fetchAssignDetailsStatus: requestStatus.setError(error),\n            };\n        }\n\n        case FETCH_ASSIGN_DETAILS_REQUEST_SUCCESS: {\n            const { details } = action;\n            if (!details) {\n                return state;\n            }\n\n            const { truck, trailer } = details;\n\n            const prevTrailerById = state.trailerById || {};\n\n            const trailerById: typeof state.trailerById = trailer?.id\n                ? {\n                      [trailer.id]: {\n                          assetsToHook: prevTrailerById[trailer.id]?.assetsToHook || (truck?.id ? [truck.id] : []),\n                          ...trailer,\n                      },\n                  }\n                : {};\n\n            const prevTruckById = state.truckById || {};\n\n            const truckById: typeof state.truckById = truck?.id\n                ? {\n                      [truck.id]: {\n                          assetsToHook: prevTruckById[truck.id]?.assetsToHook || (trailer?.id ? [trailer.id] : []),\n                          ...truck,\n                      },\n                  }\n                : {};\n\n            return {\n                ...state,\n                trailerById: {\n                    ...state.trailerById,\n                    ...trailerById,\n                },\n                truckById: {\n                    ...state.truckById,\n                    ...truckById,\n                },\n                fetchAssignDetailsStatus: requestStatus.ok,\n            };\n        }\n\n        case SET_ASSET_SCHEDULE: {\n            const { assetId, events, currentEventId } = action;\n\n            const assetSchedule = state.scheduleAssetById[assetId] || initialAssetSchedule;\n\n            return {\n                ...state,\n                scheduleAssetById: {\n                    ...state.scheduleAssetById,\n                    [assetId]: {\n                        ...assetSchedule,\n                        currentEventId,\n                        events,\n                    },\n                },\n            };\n        }\n\n        case SET_EVENT_LOAD_ROUTE: {\n            const { assetId, scheduleEventId, polylines } = action;\n\n            const assetSchedule = state.scheduleAssetById[assetId] || initialAssetSchedule;\n\n            return {\n                ...state,\n                scheduleAssetById: {\n                    ...state.scheduleAssetById,\n                    [assetId]: {\n                        ...assetSchedule,\n                        routeById: {\n                            ...assetSchedule.routeById,\n                            [scheduleEventId]: polylines,\n                        },\n                    },\n                },\n            };\n        }\n\n        case SET_SHOW_SELECTED_ASSET_SCHEDULES: {\n            const { isShowSelectedAssetSchedules } = action;\n            return {\n                ...state,\n                isShowSelectedAssetSchedules,\n                selectedScheduleEventId: isShowSelectedAssetSchedules ? state.selectedScheduleEventId : null,\n            };\n        }\n\n        case SET_SELECTED_SCHEDULE_EVENT_ID: {\n            const { selectedScheduleEventId } = action;\n\n            return {\n                ...state,\n                selectedScheduleEventId,\n            };\n        }\n\n        case RESET: {\n            return {\n                ...initialState,\n            };\n        }\n\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n\n        default:\n            return state;\n    }\n};\n","import * as React from 'react';\n\nimport { Route, Switch } from 'react-router-dom';\n\nimport { SettingsRuleRoutesEnum } from 'broker-admin/constants';\nimport PriceSettingsEditRuleDetailsPage from './PriceSettingsEditRuleDetailsPage/PriceSettingsEditRuleDetailsPage';\nimport PriceSettingsRuleCreationPage from './PriceSettingsRuleCreationPage/PriceSettingsRuleCreationPage';\n\ntype PropsT = {};\n\nconst PriceSettingsRulesPage: React.FC<PropsT> = React.memo(() => {\n    return (\n        <Switch>\n            <Route path={SettingsRuleRoutesEnum.newRule} exact>\n                <PriceSettingsRuleCreationPage />\n            </Route>\n            <Route path={SettingsRuleRoutesEnum.ruleDetails}>\n                <PriceSettingsEditRuleDetailsPage />\n            </Route>\n        </Switch>\n    );\n});\n\nexport default PriceSettingsRulesPage;\n","import * as React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport Modal from 'common/components/Modal/Modal';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\nimport { AssetTypeEnum, StyleGuideColorsEnum } from 'common/constants';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport useOnlyChangesEffect from 'common/utils/hooks/useOnlyChangesEffect';\n\nexport type ImportXLSAssetsDialogModalDataT = {\n    file: File;\n};\n\ntype PropsT = {\n    assetType: AssetTypeEnum;\n    data: ImportXLSAssetsDialogModalDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onImportXLS: (data: ImportXLSAssetsDialogModalDataT) => void;\n    requestStatus: RequestStatusT;\n};\n\nconst CONFIRMATION_T_MAP: Record<\n    AssetTypeEnum,\n    {\n        title: string;\n        message: string;\n    }\n> = {\n    [AssetTypeEnum.truck]: {\n        title: 'common:trucks-page.xls-import-confirmation.title',\n        message: 'common:trucks-page.xls-import-confirmation.message',\n    },\n    [AssetTypeEnum.trailer]: {\n        title: 'common:trailers-page.xls-import-confirmation.title',\n        message: 'common:trailers-page.xls-import-confirmation.message',\n    },\n};\n\nconst TEST_SELECTOR = 'import-xls-assets-dialog-modal';\n\nconst ImportXLSAssetsDialogModal: React.FC<PropsT> = React.memo((props) => {\n    const { assetType, data, onClose, onCancel, onImportXLS, requestStatus } = props;\n\n    const { t } = useTranslation();\n\n    useOnlyChangesEffect(() => {\n        if (requestStatus?.error) {\n            onClose();\n        }\n    }, [requestStatus?.error]);\n\n    if (!data) {\n        return null;\n    }\n\n    const isLoading = !!requestStatus?.loading;\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: isLoading,\n                            onClick: () => {\n                                onCancel();\n                            },\n                        },\n                        {\n                            children: t('common:error-modal.actions.update'),\n                            theme: ButtonThemeEnum.danger,\n                            testSelector: `${TEST_SELECTOR}_update`,\n                            isLoading,\n                            isDisabled: isLoading,\n                            onClick: () => {\n                                onImportXLS(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.tomatoRed} />}\n                    title={t(CONFIRMATION_T_MAP[assetType].title)}\n                    message={t(CONFIRMATION_T_MAP[assetType].message)}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default ImportXLSAssetsDialogModal;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './TimeLeftForStart.scss';\nimport { MS_IN_HOUR } from 'common/utils/time';\nimport TimeLeft from 'common/layouts/TimeLeft/TimeLeft';\nimport isNumber from 'lodash/isNumber';\nimport { useTimeMark } from 'common/utils/hooks/useTimeMark';\n\nconst cx = classNames.bind(styles);\n\nconst ASSIGNMENT_WARNING = 24 * MS_IN_HOUR;\n\ntype PropsT = {\n    className?: string;\n    deadline: string | null | undefined;\n    alreadyStartedLabel: React.ReactNode;\n    deadlineLabel: React.ReactNode;\n    renderActions: (isDisabled: boolean) => React.ReactNode | Array<React.ReactNode>;\n    shouldDisableAfterDeadline?: boolean;\n};\n\nconst TimeLeftForStart: React.FC<PropsT> = React.memo((props) => {\n    const { deadline, alreadyStartedLabel, deadlineLabel, shouldDisableAfterDeadline, renderActions } = props;\n\n    const { diff, formattedDiff } = useTimeMark({\n        timeMark: deadline,\n    });\n\n    const isDisabled = !!shouldDisableAfterDeadline && diff !== null && diff <= 0;\n\n    const actionsNode = renderActions(isDisabled);\n    const isEmptyActions = Array.isArray(actionsNode) && actionsNode?.every((item) => !item);\n    if (isEmptyActions) {\n        return null;\n    }\n\n    return (\n        <div className={cx('content')}>\n            {diff !== null && (\n                <div className={cx('status-wrap')}>\n                    <TimeLeft\n                        isWarning={isNumber(diff) && diff <= ASSIGNMENT_WARNING}\n                        isFailed={isNumber(diff) && diff <= 0}\n                        failedMessage={alreadyStartedLabel}\n                        time={formattedDiff}\n                        timeDescription={deadlineLabel}\n                    />\n                </div>\n            )}\n            <div className={cx('actions')}>{actionsNode}</div>\n        </div>\n    );\n});\n\nexport default TimeLeftForStart;\n","// extracted by mini-css-extract-plugin\nexport default {\"route\":\"RFQDetails__route___vWzZ_\",\"table\":\"RFQDetails__table___aEjK5\",\"applied-rules\":\"RFQDetails__applied-rules___k6iZX\",\"applied-rules__icon\":\"RFQDetails__applied-rules__icon___oVHU3\",\"applied-rules__name\":\"RFQDetails__applied-rules__name___r7deR\",\"applied-rules__value\":\"RFQDetails__applied-rules__value___rhNJQ\",\"price-details--target\":\"RFQDetails__price-details--target___FwJFm\",\"price-details--default\":\"RFQDetails__price-details--default___CIzD4\",\"price-details--selected\":\"RFQDetails__price-details--selected___CW5GJ\",\"excluded-countries\":\"RFQDetails__excluded-countries___A4uDZ\",\"separator\":\"RFQDetails__separator___owdWt\",\"fadeIn\":\"RFQDetails__fadeIn___uUc1m\",\"blinking\":\"RFQDetails__blinking___HorHO\"};","import { TrailerStatusEnum } from 'common/utils/api/models';\nimport { CountryCodeT } from 'common/store/countries-dict/models';\n\nexport enum FieldsEnum {\n    dictTrailerTypeId = 'dict-trailer-type-id',\n    status = 'status',\n    plateNumber = 'plate-number',\n    country = 'country',\n    lastTelematicUpdateDates = 'last-telematic-update-dates',\n    contractId = 'contractId',\n    contractName = 'contractName',\n    createDates = 'create-dates',\n    createdByUserId = 'create-dated-by-user-id',\n    createdByUserName = 'create-dated-by-user-name',\n    lastModifyDates = 'last-modify-dates',\n    lastModifyByUserId = 'last-modify-by-user-id',\n    lastModifyByUserName = 'last-modify-by-user-name',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.dictTrailerTypeId]: Array<TrailerDictIdT>;\n    [FieldsEnum.plateNumber]: string;\n    [FieldsEnum.status]: Array<TrailerStatusEnum>;\n    [FieldsEnum.country]: Array<CountryCodeT>;\n    [FieldsEnum.createDates]: DateRangeT | null;\n    [FieldsEnum.createdByUserId]: Array<UserIdT>;\n    [FieldsEnum.createdByUserName]: Array<string>;\n    [FieldsEnum.lastModifyDates]: DateRangeT | null;\n    [FieldsEnum.lastModifyByUserId]: Array<UserIdT>;\n    [FieldsEnum.lastModifyByUserName]: Array<string>;\n    [FieldsEnum.lastTelematicUpdateDates]: DateRangeT | null;\n    [FieldsEnum.contractId]: Array<CarrierContractIdT>;\n    [FieldsEnum.contractName]: Array<string>;\n};\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    className?: string;\n    strokeColor: StyleGuideColorsEnum;\n    size: number;\n};\n\nconst AssetLinkIcon: React.FC<PropsT> = (props) => {\n    const { size, className, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\" className={className}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M3.925 10A2.327 2.327 0 016.25 7.675h3V6.25h-3C4.18 6.25 2.5 7.93 2.5 10c0 2.07 1.68 3.75 3.75 3.75h3v-1.425h-3A2.327 2.327 0 013.925 10zM7 10.75h6v-1.5H7v1.5zm6.75-4.5h-3v1.425h3A2.327 2.327 0 0116.075 10a2.327 2.327 0 01-2.325 2.325h-3v1.425h3c2.07 0 3.75-1.68 3.75-3.75 0-2.07-1.68-3.75-3.75-3.75z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nAssetLinkIcon.displayName = 'AssetLinkIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default AssetLinkIcon;\n\nexport const AssetLinkIconProps = {\n    getControlProps: ({\n        isDisabled,\n        isFocused,\n        hasError,\n        hasWarning,\n        hasSuccess,\n        hasValue,\n    }: {\n        isDisabled?: boolean;\n        isFocused?: boolean;\n        hasError?: boolean;\n        hasWarning?: boolean;\n        hasSuccess?: boolean;\n        hasValue?: boolean;\n    }): PropsT => {\n        if (hasError) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                strokeColor: StyleGuideColorsEnum.tomatoRed,\n            };\n        }\n\n        if (hasWarning) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                strokeColor: StyleGuideColorsEnum.orange,\n            };\n        }\n\n        if (hasSuccess) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n\n        if (isDisabled) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                strokeColor: StyleGuideColorsEnum.slate,\n            };\n        }\n\n        return {\n            size: DEFAULT_ICON_SIZE,\n            strokeColor: hasValue || isFocused ? StyleGuideColorsEnum.brandDark : StyleGuideColorsEnum.light,\n        };\n    },\n};\n\n/**\n *  @deprecated create/use ...Props class\n * */\nexport const getAssetLinkIconProps = (\n    preset:\n        | 'default'\n        | 'selected'\n        | 'assignment-normal'\n        | 'assignment-selected'\n        | 'assignment-not-in-time-normal'\n        | 'assignment-not-in-time-selected',\n): PropsT => {\n    switch (preset) {\n        case 'assignment-normal': {\n            return {\n                strokeColor: StyleGuideColorsEnum.white,\n                size: DEFAULT_ICON_SIZE,\n            };\n        }\n        case 'assignment-selected': {\n            return {\n                strokeColor: StyleGuideColorsEnum.brandAccent,\n                size: DEFAULT_ICON_SIZE,\n            };\n        }\n        case 'assignment-not-in-time-normal': {\n            return {\n                strokeColor: StyleGuideColorsEnum.slate,\n                size: DEFAULT_ICON_SIZE,\n            };\n        }\n        case 'assignment-not-in-time-selected': {\n            return {\n                strokeColor: StyleGuideColorsEnum.brandDark,\n                size: DEFAULT_ICON_SIZE,\n            };\n        }\n        case 'selected': {\n            return {\n                strokeColor: StyleGuideColorsEnum.brandAccent,\n                size: DEFAULT_ICON_SIZE,\n            };\n        }\n        default: {\n            return {\n                strokeColor: StyleGuideColorsEnum.white,\n                size: DEFAULT_ICON_SIZE,\n            };\n        }\n    }\n};\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './SpotRequestListPage.scss';\nimport { useDispatch, useSelector } from 'react-redux';\nimport SpotRequestsTable from 'broker-admin/layouts/SpotRequestsPage/SpotRequestListPage/SpotRequestsTable/SpotRequestsTable';\nimport { useTranslation } from 'react-i18next';\nimport TopBar from 'common/layouts/LeftMenuLayout/TopBar/TopBar';\nimport FiltersTrigger from 'common/components/Table/FiltersTrigger/FiltersTrigger';\nimport SortDropdown, {\n    SortDropdownOptionT,\n    SortDropdownOverlayPositionEnum,\n} from 'common/components/Table/SortDropdown/SortDropdown';\nimport Pagination from 'common/components/Table/Pagination/Pagination';\nimport TableMessage, { TableMessageIconsEnum } from 'common/components/Table/TableMessage/TableMessage';\nimport {\n    createJsonParams,\n    createPageNumberParam,\n    createSortParams,\n    PageSortT,\n    SortDirectionEnum,\n} from 'common/utils/query';\nimport ScrollableContent from 'common/layouts/LeftMenuLayout/ScrollableContent/ScrollableContent';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport StickyFooter from 'common/layouts/LeftMenuLayout/StickyFooter/StickyFooter';\nimport { QuickFiltersOptionT } from 'common/components/Table/QuickFilters/QuickFilters';\nimport { colorCodingNotificationLabelTheme } from 'common/components/notifications/NotificationLabel/NotificationLabel';\nimport SearchControl from 'common/components/Table/SearchControl/SearchControl';\nimport { fetchTrailersDict } from 'common/store/trailers-dict/actions';\nimport NotificationsBarTrigger from 'common/components/notifications/NotificationsBarTrigger/NotificationsBarTrigger';\nimport TableError from 'common/components/Table/TableError/TableError';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\nimport TopBarContent from 'common/layouts/LeftMenuLayout/TopBarContent/TopBarContent';\nimport ListPageHeaderLayout from 'common/layouts/ListPage/ListPageHeaderLayout/ListPageHeaderLayout';\nimport ListPageHeaderTabsLayout from 'common/layouts/ListPage/ListPageHeaderTabsLayout/ListPageHeaderTabsLayout';\nimport ListPageLayout from 'common/layouts/ListPage/ListPageLayout/ListPageLayout';\nimport { fetchGroupedNotificationCounts } from 'common/store/grouped-notification-counts/actions';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport { SpotRequestsQuickFilterEnum } from './constants';\nimport { QueryFiltersKeysEnum, QueryFiltersT, QueryKeysEnum } from './query-models';\nimport { SpotRequestT } from 'broker-admin/store/spot-requests/models';\nimport {\n    selectSpotRequestsByIds,\n    selectSpotRequestsPages,\n    selectSpotRequestsTotal,\n} from 'broker-admin/store/spot-requests/selectors';\nimport { urlFactory as brokerUrlFactory } from 'broker-admin/utils/urls';\nimport { selectSpotRequestsStats } from 'broker-admin/store/spot-requests-stats/selectors';\nimport { fetchSpotRequestsPage } from 'broker-admin/store/spot-requests/actions';\nimport { SpotRequestsSortEnum, SpotRequestStatStatusEnum } from 'broker-admin/utils/api/spot-broker-tranziit/models';\nimport { prepareFetchPageQuery } from './prepare-fetch-page-query';\nimport SideBars from 'broker-admin/layouts/SideBars/SideBars';\nimport { useOpenLeftSidebar } from 'broker-admin/layouts/SideBars/hooks';\nimport { BrokerSidebarsTypeEnum } from 'broker-admin/layouts/SideBars/constants';\nimport SelectedFilters from './SelectedFilters/SelectedFilters';\nimport { useCheckOpenedSidebar } from 'shipper/layouts/SideBars/hooks';\nimport { useQueryParams } from 'use-query-params';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { LinkToT } from 'common/components/Link/Link';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { DEFAULT_BROKER_COMPANY_ID } from 'common/constants';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { spotRequestsPaginationChannel, spotRequestsRefreshChannel } from 'broker-admin/store/spot-requests/channels';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { checkNeedRenderEmptyState } from 'common/components/Table/utils/check-need-render-empty-state';\nimport { checkQueryFiltersKeys } from 'common/components/Table/utils/check-query-filters-keys';\nimport QuickFiltersButtonGroups from 'common/components/Table/QuickFiltersButtonGroups/QuickFiltersButtonGroups';\nimport { fetchSpotRequestsStats } from 'broker-admin/store/spot-requests-stats/actions';\nimport { spotRequestsStatsRefreshChannel } from 'broker-admin/store/spot-requests-stats/channels';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst SpotRequestListPage: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n\n    const total = useSelector(selectSpotRequestsTotal);\n    const spotRequestsPages = useSelector(selectSpotRequestsPages);\n    const spotRequestsById = useSelector(selectSpotRequestsByIds);\n\n    const spotRequestsStats = useSelector(selectSpotRequestsStats);\n\n    React.useEffect(() => {\n        dispatch(fetchTrailersDict());\n    }, [dispatch]);\n\n    const isOpenedFilters = useCheckOpenedSidebar(BrokerSidebarsTypeEnum.spotRequestsFilter);\n    const openLeftSidebar = useOpenLeftSidebar();\n    const openSpotRequestsFilter = React.useCallback(() => {\n        openLeftSidebar({\n            type: BrokerSidebarsTypeEnum.spotRequestsFilter,\n        });\n    }, [openLeftSidebar]);\n\n    const [query, changeQuery] = useQueryParams({\n        [QueryKeysEnum.spotRequestsFilters]: createJsonParams<QueryFiltersT>({}),\n        [QueryKeysEnum.spotRequestsPage]: createPageNumberParam(),\n        [QueryKeysEnum.spotRequestsSort]: createSortParams<SpotRequestsSortEnum>({\n            value: SpotRequestsSortEnum.expirationTime,\n            direction: SortDirectionEnum.DESC,\n        }),\n    });\n\n    const pageNumber = query[QueryKeysEnum.spotRequestsPage];\n    const queryFilters = query[QueryKeysEnum.spotRequestsFilters];\n    const selectedSort = query[QueryKeysEnum.spotRequestsSort];\n\n    const page = spotRequestsPages[pageNumber];\n    const { ids, requestStatus } = page || {};\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchSpotRequestsPage(pageNumber, query, { isForceUpdate: false }));\n\n        dispatch(fetchGroupedNotificationCounts({ isForceUpdate: false }));\n    }, [dispatch, pageNumber, selectedSort, queryFilters]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    const refreshPageHandler = React.useCallback(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchSpotRequestsPage(pageNumber, query, { isForceUpdate: true }));\n\n        dispatch(fetchGroupedNotificationCounts({ isForceUpdate: false }));\n\n        dispatch(fetchSpotRequestsStats({}));\n    }, [dispatch, pageNumber, selectedSort, queryFilters]);\n    useChannelSubscribe(spotRequestsRefreshChannel, refreshPageHandler);\n\n    const handleRefreshOnError = React.useCallback(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchSpotRequestsPage(pageNumber, query, { isForceUpdate: true }));\n    }, [dispatch, pageNumber, selectedSort, queryFilters]);\n\n    const refreshPageStatsHandler = React.useCallback(() => {\n        dispatch(fetchSpotRequestsStats({ isForceUpdate: true }));\n    }, [dispatch]);\n    useChannelSubscribe(spotRequestsStatsRefreshChannel, refreshPageStatsHandler);\n\n    React.useEffect(() => {\n        dispatch(fetchSpotRequestsStats({}));\n    }, [dispatch]);\n\n    React.useEffect(() => {\n        const query = prepareFetchPageQuery(queryFilters, selectedSort);\n        dispatch(fetchSpotRequestsPage(pageNumber, query));\n\n        dispatch(fetchGroupedNotificationCounts({ isForceUpdate: false }));\n\n        return (): void => {\n            // TODO reset\n        };\n    }, [dispatch, page, pageNumber, selectedSort, queryFilters]);\n\n    const spotRequests = React.useMemo(() => {\n        return (ids || []).map((id): SpotRequestT => spotRequestsById[id]);\n    }, [ids, spotRequestsById]);\n\n    const goToPage = React.useCallback(\n        (pageNumber: PageNumberT) => {\n            changeQuery({\n                [QueryKeysEnum.spotRequestsPage]: pageNumber,\n            });\n        },\n        [changeQuery],\n    );\n\n    const setPageHandler = React.useCallback(\n        ({ pageNumber }: InferChannelEventT<typeof spotRequestsPaginationChannel>) => {\n            goToPage(pageNumber);\n        },\n        [goToPage],\n    );\n    useChannelSubscribe(spotRequestsPaginationChannel, setPageHandler);\n\n    const goToSpotRequestDetails = (spotRequestId: SpotRequestIdT) => {\n        openLeftSidebar({\n            type: BrokerSidebarsTypeEnum.spotRequestDetails,\n            id: spotRequestId,\n        });\n    };\n\n    const openUserDetails = (userId: UserIdT): void => {\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId: DEFAULT_BROKER_COMPANY_ID,\n            partnerType: PartnerTypeEnum.broker,\n            userId,\n        });\n    };\n\n    const getPartnerLink = (partnerType: PartnerTypeEnum, partnerId: CompanyIdT): LinkToT => {\n        return brokerUrlFactory.partnerDetails(partnerType, partnerId);\n    };\n\n    const spotRequestsQuickFilterOptions: Array<QuickFiltersOptionT<SpotRequestsQuickFilterEnum>> = [\n        {\n            id: undefined,\n            showPriority: 0,\n            hidePriority: 0,\n            label: t('spot-requests.list.status-filter.all'),\n            testSelector: 'all',\n        },\n        {\n            id: SpotRequestsQuickFilterEnum.open,\n            showPriority: 1,\n            hidePriority: 1,\n            label: t('spot-requests.list.status-filter.open'),\n            testSelector: SpotRequestsQuickFilterEnum.open,\n            notificationProps: {\n                count: spotRequestsStats?.[SpotRequestStatStatusEnum.open],\n                theme: colorCodingNotificationLabelTheme.normal,\n            },\n        },\n        {\n            id: SpotRequestsQuickFilterEnum.accepted,\n            showPriority: 2,\n            hidePriority: 2,\n            label: t('spot-requests.list.status-filter.accepted'),\n            testSelector: SpotRequestsQuickFilterEnum.accepted,\n            notificationProps: {\n                count: spotRequestsStats?.[SpotRequestStatStatusEnum.accepted],\n                theme: colorCodingNotificationLabelTheme.attention,\n            },\n        },\n        {\n            id: SpotRequestsQuickFilterEnum.newBids,\n            showPriority: 3,\n            hidePriority: 3,\n            label: t('spot-requests.list.status-filter.new-bids'),\n            testSelector: SpotRequestsQuickFilterEnum.newBids,\n            notificationProps: {\n                count: spotRequestsStats?.[SpotRequestStatStatusEnum.newBids],\n                theme: colorCodingNotificationLabelTheme.attention,\n            },\n        },\n        {\n            id: SpotRequestsQuickFilterEnum.assigned,\n            showPriority: 4,\n            hidePriority: 4,\n            label: t('spot-requests.list.status-filter.assigned'),\n            testSelector: SpotRequestsQuickFilterEnum.assigned,\n            notificationProps: {\n                count: spotRequestsStats?.[SpotRequestStatStatusEnum.assigned],\n                theme: colorCodingNotificationLabelTheme.normal,\n            },\n        },\n        {\n            id: SpotRequestsQuickFilterEnum.expireSoon,\n            showPriority: 5,\n            hidePriority: 5,\n            label: t('spot-requests.list.status-filter.expire-soon'),\n            notificationProps: {\n                count: spotRequestsStats?.[SpotRequestStatStatusEnum.expireSoon],\n                theme: colorCodingNotificationLabelTheme.warning,\n            },\n            testSelector: SpotRequestsQuickFilterEnum.expireSoon,\n        },\n        {\n            id: SpotRequestsQuickFilterEnum.expired,\n            showPriority: 6,\n            hidePriority: 6,\n            label: t('spot-requests.list.status-filter.expired'),\n            testSelector: SpotRequestsQuickFilterEnum.expired,\n            notificationProps: {\n                isShowPlusSign: true,\n                count: spotRequestsStats?.[SpotRequestStatStatusEnum.expired],\n                theme: colorCodingNotificationLabelTheme.warning,\n            },\n        },\n        {\n            id: SpotRequestsQuickFilterEnum.canceled,\n            showPriority: 7,\n            hidePriority: 7,\n            label: t('spot-requests.list.status-filter.canceled'),\n            testSelector: SpotRequestsQuickFilterEnum.canceled,\n            notificationProps: {\n                isShowPlusSign: true,\n                count: spotRequestsStats?.[SpotRequestStatStatusEnum.canceled],\n                theme: colorCodingNotificationLabelTheme.normal,\n            },\n        },\n    ];\n\n    const sortOptions: Array<SortDropdownOptionT<SpotRequestsSortEnum>> = React.useMemo(\n        () => [\n            {\n                label: t('spot-requests.list.table.sorts.triggers.expiration-time'),\n                value: SpotRequestsSortEnum.expirationTime,\n            },\n            {\n                label: t('spot-requests.list.table.sorts.triggers.placed-time'),\n                value: SpotRequestsSortEnum.placedTime,\n            },\n            {\n                label: t('spot-requests.list.table.sorts.triggers.origin-time'),\n                value: SpotRequestsSortEnum.originTime,\n            },\n            {\n                label: t('spot-requests.list.table.sorts.triggers.destination-time'),\n                value: SpotRequestsSortEnum.destinationTime,\n            },\n        ],\n        [t],\n    );\n\n    const handleSelectSort = (sort: PageSortT<SpotRequestsSortEnum>) => {\n        changeQuery({\n            [QueryKeysEnum.spotRequestsPage]: 0,\n            [QueryKeysEnum.spotRequestsSort]: sort,\n        });\n    };\n\n    const handleSetStatusFilter = (quickFilterId: SpotRequestsQuickFilterEnum | undefined) => {\n        const prevQueryFilters = query[QueryKeysEnum.spotRequestsFilters] || {};\n\n        const queryFilters = {\n            ...prevQueryFilters,\n            [QueryFiltersKeysEnum.quickFilter]: quickFilterId,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.spotRequestsPage]: 0,\n            [QueryKeysEnum.spotRequestsFilters]: queryFilters,\n        });\n    };\n\n    const updateQueryFilters = (queryFiltersChanges: QueryFiltersT) => {\n        const prevQueryFilters = query[QueryKeysEnum.spotRequestsFilters] || {};\n\n        const queryFilters = {\n            ...prevQueryFilters,\n            ...queryFiltersChanges,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.spotRequestsPage]: 0,\n            [QueryKeysEnum.spotRequestsFilters]: queryFilters,\n        });\n    };\n\n    const handleSetQueryFilters = (selectedQueryFilters: QueryFiltersT) => {\n        const prevQueryFilters = query[QueryKeysEnum.spotRequestsFilters] || {};\n\n        const queryFilters = {\n            [QueryFiltersKeysEnum.quickFilter]: prevQueryFilters[QueryFiltersKeysEnum.quickFilter],\n            ...selectedQueryFilters,\n        };\n\n        changeQuery({\n            [QueryKeysEnum.spotRequestsPage]: 0,\n            [QueryKeysEnum.spotRequestsFilters]: queryFilters,\n        });\n    };\n\n    const handleSearch = (searchText: string) => {\n        updateQueryFilters({\n            [QueryFiltersKeysEnum.searchText]: searchText || undefined,\n        });\n    };\n\n    const renderTableMessage = () => {\n        if (!checkNeedRenderEmptyState(spotRequests, requestStatus)) {\n            return null;\n        }\n\n        if (requestStatus?.error) {\n            return <TableError error={requestStatus?.error} onRetry={handleRefreshOnError} />;\n        }\n\n        const { hasPrimaryQueryFilters, hasSecondaryQueryFilters } = checkQueryFiltersKeys(\n            queryFilters,\n            [QueryFiltersKeysEnum.quickFilter],\n            [\n                QueryFiltersKeysEnum.searchText,\n                QueryFiltersKeysEnum.createdByShipperId,\n                QueryFiltersKeysEnum.createdByShipperName,\n                QueryFiltersKeysEnum.dictTrailerTypeId,\n                QueryFiltersKeysEnum.pickupAddress,\n                QueryFiltersKeysEnum.pickupDateFrom,\n                QueryFiltersKeysEnum.pickupDateTo,\n                QueryFiltersKeysEnum.dropOffAddress,\n                QueryFiltersKeysEnum.dropOffDateFrom,\n                QueryFiltersKeysEnum.dropOffDateTo,\n                QueryFiltersKeysEnum.createdDateFrom,\n                QueryFiltersKeysEnum.createdDateTo,\n                QueryFiltersKeysEnum.createdByUserId,\n                QueryFiltersKeysEnum.createdByUserName,\n            ],\n        );\n\n        if (requestStatus?.ok && hasSecondaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.notFound}\n                    title={t('spot-requests.list.table.messages.not-found.title')}\n                    description={t('spot-requests.list.table.messages.not-found.description')}\n                    isShowAction\n                    actionTitle={t('spot-requests.list.table.messages.not-found.action')}\n                    actionTheme={ButtonThemeEnum.secondary}\n                    onActionClick={() => handleSetQueryFilters({})}\n                    testSelector=\"empty-state-has-secondary-filters\"\n                />\n            );\n        }\n\n        if (requestStatus?.ok && hasPrimaryQueryFilters) {\n            return (\n                <TableMessage\n                    iconType={TableMessageIconsEnum.empty}\n                    title={t('spot-requests.list.table.messages.empty-quick-filters.title')}\n                    testSelector=\"empty-state-has-primary-filters\"\n                    isShowAction={false}\n                />\n            );\n        }\n\n        return (\n            <TableMessage\n                iconType={TableMessageIconsEnum.empty}\n                title={t('spot-requests.list.table.messages.empty.title')}\n                testSelector=\"empty-state\"\n                isShowAction={false}\n            />\n        );\n    };\n\n    return (\n        <ScrollableContent>\n            <PageTitle title={t('page-titles.spot')} />\n            <ContentMargins>\n                <TopBar>\n                    <TopBarContent title={t('spot-requests.list.title')} rightNode={<NotificationsBarTrigger />} />\n                </TopBar>\n                <ListPageLayout>\n                    <ListPageHeaderTabsLayout>\n                        <QuickFiltersButtonGroups\n                            options={spotRequestsQuickFilterOptions}\n                            selectedId={queryFilters[QueryFiltersKeysEnum.quickFilter]}\n                            onSelect={handleSetStatusFilter}\n                            moreStatusesLabel={t('spot-requests.list.status-filter.more-statuses')}\n                        />\n                    </ListPageHeaderTabsLayout>\n                    <ListPageHeaderLayout\n                        withTopPadding\n                        leftToolsNode={\n                            <>\n                                <FiltersTrigger\n                                    title={t('spot-requests.list.filters.trigger')}\n                                    isActive={isOpenedFilters}\n                                    onClick={openSpotRequestsFilter}\n                                />\n                                <SortDropdown\n                                    overlayPosition={SortDropdownOverlayPositionEnum.left}\n                                    selectedValue={selectedSort}\n                                    options={sortOptions}\n                                    onSelect={handleSelectSort}\n                                />\n                                <SearchControl\n                                    placeholder={t('spot-requests.list.search-placeholder')}\n                                    searchText={queryFilters[QueryFiltersKeysEnum.searchText]}\n                                    onChangeSearchText={handleSearch}\n                                />\n                            </>\n                        }\n                        filterTagsNode={\n                            <SelectedFilters\n                                isCompact\n                                queryFilters={queryFilters}\n                                setQueryFilters={handleSetQueryFilters}\n                            />\n                        }\n                    />\n                    {renderTableMessage()}\n                    <SpotRequestsTable\n                        spotRequests={spotRequests}\n                        className={cx('table')}\n                        goToSpotRequestDetails={goToSpotRequestDetails}\n                        isLoading={requestStatus?.loading}\n                        getPartnerLink={getPartnerLink}\n                        openUserDetails={openUserDetails}\n                    />\n                </ListPageLayout>\n                <StickyFooter>\n                    <Pagination current={pageNumber} count={total?.pageCount} goToPage={goToPage} />\n                </StickyFooter>\n                <SideBars />\n            </ContentMargins>\n        </ScrollableContent>\n    );\n});\n\nexport default SpotRequestListPage;\n","import { parseSimpleNumber } from 'common/utils/input-parsers';\nimport isNumber from 'lodash/isNumber';\nimport { simpleNumberFormatter } from 'common/utils/form-formatters';\nimport { SEC_IN_HOUR, SEC_IN_MIN } from 'common/utils/time';\n\nexport const convertMsToHours = (msValue: string): string => {\n    const ms = parseSimpleNumber(msValue);\n    if (!isNumber(ms) || Number.isNaN(ms)) {\n        return '';\n    }\n\n    return simpleNumberFormatter(ms / SEC_IN_HOUR);\n};\n\nexport const convertHoursToMs = (hoursValue: string): string => {\n    const hours = parseSimpleNumber(hoursValue);\n    if (!isNumber(hours) || Number.isNaN(hours)) {\n        return '';\n    }\n\n    return simpleNumberFormatter(hours * SEC_IN_HOUR);\n};\n\nexport const convertSecToMin = (secValue: string): string => {\n    const sec = parseSimpleNumber(secValue);\n    if (!isNumber(sec) || Number.isNaN(sec)) {\n        return '';\n    }\n\n    return simpleNumberFormatter(sec / SEC_IN_MIN);\n};\n\nexport const convertMinToSec = (minValue: string): string => {\n    const min = parseSimpleNumber(minValue);\n    if (!isNumber(min) || Number.isNaN(min)) {\n        return '';\n    }\n\n    return simpleNumberFormatter(min * SEC_IN_MIN);\n};\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const rfqsRefreshChannel = new ViewEventChannel<{}>();\n\nexport const rfqsPaginationChannel = new ViewEventChannel<{\n    pageNumber: number;\n}>();\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './TrailerTypeCell.scss';\nimport parseTrailerModel from 'common/utils/parse-trailer-model';\nimport { RFQT } from 'common/store/rfqs/models';\n\ntype PropsT = {\n    rfq: RFQT;\n};\n\nconst cx = classNames.bind(styles);\n\nconst TrailerTypeCell: React.FC<PropsT> = React.memo((props) => {\n    const { rfq } = props;\n\n    const [trailer] = parseTrailerModel(rfq.trailerModel);\n\n    return <div className={cx('type')}>{trailer}</div>;\n});\n\nexport default TrailerTypeCell;\n","import { StateT } from 'broker-admin/store/models';\nimport { isNonNil } from 'common/utils';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport isNil from 'lodash/isNil';\nimport { MS_IN_HOUR } from 'common/utils/time';\n\nconst DEFAULT_RADIUSES = [1000];\n\nexport const selectAssignmentRadiuses = (state: StateT): number[] => {\n    const { data: settings, fetchRequest } = state.settings;\n\n    const settingsRadiuses: number[] = [\n        settings?.FIRST_RADIUS_OF_ASSIGNMENT_FILTER?.value,\n        settings?.SECOND_RADIUS_OF_ASSIGNMENT_FILTER?.value,\n        settings?.THIRD_RADIUS_OF_ASSIGNMENT_FILTER?.value,\n    ]\n        .map((rawValue) => {\n            return parseSimpleNumber(rawValue);\n        })\n        .filter(isNonNil);\n\n    if (fetchRequest.ok && settings && !settingsRadiuses.filter(isNonNil).length) {\n        return DEFAULT_RADIUSES;\n    }\n\n    return settingsRadiuses;\n};\n\nexport const selectSpotRequestLimitMs = (state: StateT): number => {\n    const value = state.settings.data?.SPOT_REQUEST_LIMIT?.value;\n    if (isNil(value)) {\n        return 0;\n    }\n\n    const parsedValue = parseSimpleNumber(value);\n    if (parsedValue) {\n        return parsedValue * MS_IN_HOUR;\n    }\n\n    return 0;\n};\n","export enum TourTypeTabsEnum {\n    current = 'current',\n    next = 'next',\n}\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { fetchSubjectLogs, fetchSubjectLogsBegin, fetchSubjectLogsError, fetchSubjectLogsSuccess } from './slice';\nimport { selectSubjectLogsRequestStatus } from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport { convertLogRecord } from 'common/store/subject-logs/converter';\nimport { ApiLogRecordT } from 'common/utils/api/models';\nimport { CompanyTypeEnum } from 'common/constants';\n\nfunction createFetchSubjectLogsSaga(companyType: CompanyTypeEnum) {\n    return function* fetchSubjectLogsSaga(action: ReturnType<typeof fetchSubjectLogs>): WrapGeneratorT<void> {\n        const { subjectType, subjectId, options } = action.payload;\n\n        const requestStatus: ReReturnT<typeof selectSubjectLogsRequestStatus> = yield select(\n            selectSubjectLogsRequestStatus(subjectType, subjectId),\n        );\n        if (!checkNeedRequest(requestStatus, options)) {\n            return;\n        }\n\n        yield put(fetchSubjectLogsBegin({ subjectType, subjectId }));\n\n        const [error, response]: ReturnApiT<typeof commonTranziitApi.getSubjectLogs> =\n            yield commonTranziitApi.getSubjectLogs(subjectType, subjectId);\n        if (error) {\n            yield put(fetchSubjectLogsError({ subjectType, subjectId, error }));\n            return;\n        }\n\n        const rawLogs = response || [];\n\n        const logs = rawLogs.map((rawLog) => {\n            return convertLogRecord(\n                rawLog as ApiLogRecordT, // WTF?!? bad TS types due to the use of the discriminator for field \"data\" from openapi\n                {\n                    companyType,\n                },\n            );\n        });\n\n        yield put(fetchSubjectLogsSuccess({ subjectType, subjectId, logs }));\n    };\n}\n\nfunction* subjectLogsSaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery([fetchSubjectLogs.type], createFetchSubjectLogsSaga(companyType));\n}\n\nexport { subjectLogsSaga };\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"EditStopContactFooterContent__content___K62aI\",\"head\":\"EditStopContactFooterContent__head___FFjuK\",\"head__icon\":\"EditStopContactFooterContent__head__icon___DbtFE\",\"head__title\":\"EditStopContactFooterContent__head__title___q6xMI\",\"fadeIn\":\"EditStopContactFooterContent__fadeIn___sSUcL\",\"blinking\":\"EditStopContactFooterContent__blinking___v0SIC\"};","import {\n    ApiDeadheadPreviewContextResponseT,\n    ApiDeadheadInitContextResponseT,\n    ApiDeadheadApplyContextResponseT,\n    ApiDeadheadApplyContextQueryT,\n    ApiContactT,\n    ApiDeadheadInitContextQueryT,\n    ApiDeadheadPreviewContextQueryT,\n} from 'broker-admin/utils/api/broker-tranziit/models';\n\nexport type DeadheadContextIdT = NonNullable<ApiDeadheadInitContextResponseT['contextId']>;\n\nexport type RawDeadheadInitContextQueryT = {\n    truckId?: DeadheadInitContextQueryT['truckId'];\n    excludedCountries?: DeadheadInitContextQueryT['excludedCountries'];\n    stops?: Array<\n        Partial<\n            DeadheadInitContextQueryT['stops'][number] & {\n                fakeId: ContextRouteStopFakeIdT;\n            }\n        >\n    >;\n};\nexport type DeadheadInitContextQueryT = ApiDeadheadInitContextQueryT;\nexport type DeadheadInitContextResponseT = ApiDeadheadInitContextResponseT & {\n    expireTime: number | null;\n};\nexport type DeadheadContextRangeT = DeadheadInitContextResponseT['ranges'][number];\n\nexport type RawDeadheadPreviewQueryT = {\n    arrivalDateTime?: DeadheadPreviewContextQueryT['arrivalDateTime'];\n    keepRoadTrain?: DeadheadPreviewContextQueryT['keepRoadTrain'];\n};\nexport type DeadheadPreviewContextQueryT = ApiDeadheadPreviewContextQueryT;\nexport type DeadheadPreviewContextResponseT = OverwriteT<\n    ApiDeadheadPreviewContextResponseT,\n    {\n        stops: Array<\n            DeadheadRouteStopT & {\n                fakeId: ContextRouteStopFakeIdT;\n            }\n        >;\n    }\n>;\n\nexport type DeadheadApplyContextQueryT = ApiDeadheadApplyContextQueryT;\nexport type DeadheadApplyContextResponseT = ApiDeadheadApplyContextResponseT;\n\nexport type DeadheadContactT = ApiContactT;\n\nexport type ApiDeadheadRouteStopT = ApiDeadheadPreviewContextResponseT['stops'][number];\nexport type DeadheadRouteStopT = ApiDeadheadPreviewContextResponseT['stops'][number] & {\n    fakeId: ContextRouteStopFakeIdT;\n};\n\nexport type ContextRouteStopHashT = string;\nexport type ContextRouteStopFakeIdT = string;\n\nexport type DeadheadRouteStopTimeWindowT = {\n    start: ISODateTimeT;\n    end: ISODateTimeT;\n};\n\nexport enum DeadheadRouteStopTypeEnum {\n    pickupTruck = 'pickup_truck',\n    pickupRoadTrain = 'pickup_road_train',\n    driveThrough = 'drive_through',\n    dropTruck = 'drop_truck',\n    dropRoadTrain = 'drop_road_train',\n    ferryOnboard = 'ferry_onboard',\n    ferryDisembark = 'ferry_disembark',\n    unknown = 'unknown', // pickup truck, trailer ....\n}\n\nexport type DeadheadCreationContextQueryModifyChannelEventT = {\n    correctedStops?: Array<DeadheadRouteStopT>;\n    addedStopFakeIds?: Array<ContextRouteStopFakeIdT>;\n    deletedStopFakeIds?: Array<ContextRouteStopFakeIdT>;\n    orderStopFakeIds?: Array<ContextRouteStopFakeIdT>;\n};\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\n\nexport type TemperatureRangesValidationResultT = {};\n\ntype PropsT = {\n    validationResult: TemperatureRangesValidationResultT | null;\n};\n\nconst TemperatureRangesCompatibleValidationAlertContent: React.FC<PropsT> = React.memo((props) => {\n    const { validationResult } = props;\n\n    const { t } = useTranslation();\n\n    if (!validationResult) {\n        return null;\n    }\n\n    return <span>{t('common:new-order-details.validate-messages.not-compatible-temperature-ranges')}</span>;\n});\n\nexport default TemperatureRangesCompatibleValidationAlertContent;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"SpotBidStatusCard__wrap___qH45Z\",\"accent\":\"SpotBidStatusCard__accent___q0uy6\",\"fadeIn\":\"SpotBidStatusCard__fadeIn___X6h5j\",\"blinking\":\"SpotBidStatusCard__blinking___Pqae4\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './TourStatusPill.scss';\nimport PillLabel, { colorCodingPillLabelTheme, PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { TourStatusEnum, ApiTourStatusT } from 'common/utils/api/models';\nimport TourStatus from 'common/components/status/TourStatus/TourStatus';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    status?: ApiTourStatusT;\n    isSymmetrical?: boolean;\n};\n\nconst PILL_THEME_BY_STATUS: Record<ApiTourStatusT, PillLabelThemeEnum> = {\n    [TourStatusEnum.carrierUnassigned]: colorCodingPillLabelTheme.attention,\n    [TourStatusEnum.carrierAssigned]: colorCodingPillLabelTheme.normal,\n    [TourStatusEnum.inTransit]: colorCodingPillLabelTheme.normal,\n    [TourStatusEnum.finished]: colorCodingPillLabelTheme.success,\n    [TourStatusEnum.canceled]: colorCodingPillLabelTheme.normal,\n};\n\nconst TourStatusPill: React.FC<PropsT> = React.memo((props) => {\n    const { status, className, isSymmetrical } = props;\n\n    if (!status) {\n        return null;\n    }\n\n    return (\n        <PillLabel isNoWrap className={className} isSymmetrical={isSymmetrical} theme={PILL_THEME_BY_STATUS[status]}>\n            <TourStatus status={status} />\n        </PillLabel>\n    );\n});\n\nexport default TourStatusPill;\n","import { call, put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    ACTIVATION_TRUCKS_REQUEST,\n    ActivationTrucksRequestActionT,\n    ADD_TRUCK_REQUEST,\n    AddTruckRequestActionT,\n    ARCHIVE_TRUCKS_REQUEST,\n    ArchiveTrucksRequestActionT,\n    ASSIGN_TO_CONTRACT_TRUCKS_REQUEST,\n    AssignToContractRequestActionT,\n    DELETE_TRUCKS_REQUEST,\n    DeleteTrucksRequestActionT,\n    EXPORT_XLS_TRUCKS_REQUEST,\n    FETCH_TRUCK_DETAILS_REQUEST,\n    FETCH_TRUCKS_PAGE_REQUEST,\n    FETCH_TRUCKS_STATS_REQUEST,\n    FetchTruckDetailsActionT,\n    FetchTrucksPageActionT,\n    FetchTrucksStatsActionT,\n    IMPORT_XLS_TRUCKS_REQUEST,\n    ImportXLSTrucksActionT,\n    UPDATE_TRUCK_REQUEST,\n    UpdateTruckActionT,\n    ExportXLSTrucksActionT,\n    CHANGE_RATE_TRUCKS_REQUEST,\n    ChangeRateTrucksRequestActionT,\n} from './types';\nimport {\n    addTruckRequestBegin,\n    addTruckRequestError,\n    addTruckRequestSuccess,\n    deleteTrucksRequestBegin,\n    deleteTrucksRequestError,\n    deleteTrucksRequestSuccess,\n    exportXLSTrucksRequestBegin,\n    exportXLSTrucksRequestError,\n    exportXLSTrucksRequestSuccess,\n    fetchTruckDetails,\n    fetchTruckDetailsRequestBegin,\n    fetchTruckDetailsRequestError,\n    fetchTruckDetailsRequestSuccess,\n    fetchTrucksPageBegin,\n    fetchTrucksPageError,\n    fetchTrucksPageSuccess,\n    fetchTrucksStatsRequestBegin,\n    fetchTrucksStatsRequestError,\n    fetchTrucksStatsRequestSuccess,\n    importXLSTrucksRequestBegin,\n    importXLSTrucksRequestError,\n    importXLSTrucksRequestSuccess,\n    resetTrucks,\n    updateTrucksRequestBegin,\n    updateTrucksRequestError,\n    updateTrucksRequestSuccess,\n} from './actions';\nimport {\n    selectFetchTrucksStatsRequestStatus,\n    selectTrucksByIds,\n    selectTrucksDetailsByIds,\n    selectTrucksPages,\n    selectTrucksQuery,\n} from './selectors';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport carrierTranziitApi from 'carrier/utils/api/carrier-tranziit/api';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { checkIsDefaultCompanyId } from 'common/utils';\nimport { checkIsSameQuery, checkShouldEmitChangePage } from 'common/utils/pagination/utils';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAlertTypeEnum, CommonAnyAlert } from 'common/components/toasts/AlertToastsManager/models';\nimport { ApiTruckDetailsT, CompanyTrucksStatsT } from 'common/store/trucks/models';\nimport {\n    truckDetailsRefreshChannel,\n    trucksPaginationChannel,\n    trucksRefreshChannel,\n} from 'common/store/trucks/channels';\nimport downloadFile from 'common/utils/download-file';\nimport moment from 'moment';\nimport { ApiArchiveVehiclesRequestT } from 'common/utils/api/models';\nimport keys from 'lodash/keys';\n\nfunction* fetchTrucksSaga(action: FetchTrucksPageActionT): WrapGeneratorT<void> {\n    const { pageNumber, query, options, companyId } = action;\n\n    const prevQuery: ReReturnT<typeof selectTrucksQuery> = yield select(selectTrucksQuery(companyId));\n    const pages: ReReturnT<typeof selectTrucksPages> = yield select(selectTrucksPages(companyId));\n    const isSameQuery = checkIsSameQuery(query, prevQuery);\n    const isNeedRequest = checkNeedRequest(pages[pageNumber]?.requestStatus, options);\n    if (isSameQuery && !isNeedRequest) {\n        return;\n    }\n    if (!isSameQuery) {\n        yield put(resetTrucks(companyId, { savingPageNumber: pageNumber }));\n    }\n\n    yield put(fetchTrucksPageBegin(query, pageNumber, companyId));\n\n    let result: ReturnApiT<\n        typeof brokerTranziitApi.fetchTrucksPage | typeof carrierTranziitApi.fetchTrucksPage\n    > | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        result = yield carrierTranziitApi.fetchTrucksPage({\n            ...query,\n            page: pageNumber,\n        });\n    } else {\n        result = yield brokerTranziitApi.fetchTrucksPage(\n            {\n                ...query,\n                page: pageNumber,\n            },\n            companyId,\n        );\n    }\n    if (!result) {\n        return;\n    }\n\n    const [error, response] = result;\n\n    if (error) {\n        yield put(fetchTrucksPageError(query, pageNumber, error, companyId));\n        return;\n    }\n\n    yield put(fetchTrucksPageSuccess(query, pageNumber, response, companyId));\n\n    checkShouldEmitChangePage(pageNumber, response, trucksPaginationChannel);\n}\n\nfunction* refreshTruckDetailsIfNeedSaga(companyId: CompanyIdT, truckId: TruckIdT): WrapGeneratorT<void> {\n    const detailsByIds: ReReturnT<typeof selectTrucksDetailsByIds> = yield select(selectTrucksDetailsByIds(companyId));\n\n    if (detailsByIds[truckId]) {\n        yield put(fetchTruckDetails(truckId, companyId, { isForceUpdate: true }));\n    }\n}\n\nfunction* addTruckSaga(action: AddTruckRequestActionT): WrapGeneratorT<void> {\n    const { data, companyId } = action;\n\n    yield put(addTruckRequestBegin(companyId));\n\n    let result: ReturnApiT<typeof brokerTranziitApi.addPartnerTruck | typeof carrierTranziitApi.addTruck> | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        result = yield carrierTranziitApi.addTruck(data);\n    } else {\n        result = yield brokerTranziitApi.addPartnerTruck(data, companyId);\n    }\n\n    if (!result) {\n        return;\n    }\n\n    const [error] = result;\n    if (error) {\n        yield put(addTruckRequestError(error, companyId));\n    } else {\n        yield put(addTruckRequestSuccess(companyId));\n    }\n\n    if (!error) {\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.truckAdded,\n                    data: {\n                        plateNumber: data.plateNumber || '',\n                    },\n                }),\n            ),\n        );\n    }\n\n    trucksRefreshChannel.emit({});\n}\n\nfunction* deleteTrucksSaga(action: DeleteTrucksRequestActionT): WrapGeneratorT<void> {\n    const { truckIds, companyId } = action;\n\n    yield put(deleteTrucksRequestBegin(companyId));\n\n    let error: ReturnApiT<typeof brokerTranziitApi.deleteTruck | typeof carrierTranziitApi.deleteTruck>[0] | null =\n        null;\n\n    for (const truckId of truckIds) {\n        let result: ReturnApiT<typeof brokerTranziitApi.deleteTruck | typeof carrierTranziitApi.deleteTruck> | null =\n            null;\n        if (checkIsDefaultCompanyId(companyId)) {\n            result = yield carrierTranziitApi.deleteTruck(truckId);\n        } else {\n            result = yield brokerTranziitApi.deleteTruck(companyId, truckId);\n        }\n\n        error = error || result?.[0] || null;\n    }\n\n    if (error) {\n        yield put(deleteTrucksRequestError(error, companyId));\n    } else {\n        yield put(deleteTrucksRequestSuccess(companyId));\n    }\n\n    trucksRefreshChannel.emit({});\n}\n\nfunction* activateTrucksSaga(action: ActivationTrucksRequestActionT): WrapGeneratorT<void> {\n    const { activateTrucksRequest, companyId } = action;\n\n    yield put(updateTrucksRequestBegin(companyId));\n\n    let response: ReturnApiT<\n        typeof brokerTranziitApi.activateTrucks | typeof carrierTranziitApi.activateTrucks\n    > | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        response = yield carrierTranziitApi.activateTrucks(activateTrucksRequest);\n    } else {\n        response = yield brokerTranziitApi.activateTrucks(companyId, activateTrucksRequest);\n    }\n\n    const error = response?.[0];\n    const result = response?.[1];\n    if (error) {\n        yield put(updateTrucksRequestError(error, companyId));\n    } else {\n        yield put(updateTrucksRequestSuccess(companyId));\n    }\n\n    const truckIds = activateTrucksRequest?.ids || [];\n    const allCount = truckIds.length;\n    const invalidAssetsMap = result?.invalidAssets || {};\n    const failedTruckIds = keys(invalidAssetsMap);\n    const failedCount = failedTruckIds.length;\n    const successfulCount = allCount - failedCount;\n\n    const byId: ReReturnT<typeof selectTrucksByIds> = yield select(selectTrucksByIds(companyId));\n\n    if (failedCount > 0 && allCount === 1) {\n        const truck = byId[failedTruckIds[0]] || null;\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.truckFailedActivate,\n                    data: {\n                        plateNumber: truck?.plateNumber || '',\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount > 0 && allCount > 1) {\n        const invalidAssetsPlateNumbers = failedTruckIds.map((truckId) => {\n            return byId[truckId]?.plateNumber || '';\n        });\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trucksFailedActivate,\n                    data: {\n                        allCount,\n                        successfulCount,\n                        plateNumbers: invalidAssetsPlateNumbers,\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount === 0 && successfulCount === 1) {\n        const truck = byId[truckIds[0]] || null;\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.truckSuccessfullyActivated,\n                    data: {\n                        plateNumber: truck?.plateNumber || '',\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount === 0 && successfulCount > 1) {\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trucksSuccessfullyActivated,\n                    data: {\n                        count: successfulCount,\n                    },\n                }),\n            ),\n        );\n    }\n\n    trucksRefreshChannel.emit({});\n\n    for (const truckId of truckIds) {\n        yield call(refreshTruckDetailsIfNeedSaga, companyId, truckId);\n    }\n\n    truckDetailsRefreshChannel.emit({});\n}\n\nfunction* archiveTrucksSaga(action: ArchiveTrucksRequestActionT): WrapGeneratorT<void> {\n    const { truckIds, companyId, reason } = action;\n\n    yield put(updateTrucksRequestBegin(companyId));\n\n    const data: ApiArchiveVehiclesRequestT = { ids: truckIds, comment: reason };\n    let response: ReturnApiT<typeof carrierTranziitApi.archiveTrucks | typeof brokerTranziitApi.archiveTrucks> | null =\n        null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        response = yield carrierTranziitApi.archiveTrucks(data);\n    } else {\n        response = yield brokerTranziitApi.archiveTrucks(companyId, data);\n    }\n\n    const error = response?.[0];\n    if (error) {\n        yield put(updateTrucksRequestError(error, companyId));\n    } else {\n        yield put(updateTrucksRequestSuccess(companyId));\n    }\n\n    const result = response?.[1];\n\n    const allCount = truckIds.length;\n    const invalidAssetsMap = result?.invalidAssets || {};\n    const failedTruckIds = keys(invalidAssetsMap);\n    const failedCount = failedTruckIds.length;\n    const successfulCount = allCount - failedCount;\n\n    const byId: ReReturnT<typeof selectTrucksByIds> = yield select(selectTrucksByIds(companyId));\n\n    if (failedCount > 0 && allCount === 1) {\n        const failedTruckId = failedTruckIds[0];\n        if (invalidAssetsMap[failedTruckId] === 'HAS_ASSIGNMENTS') {\n            yield put(\n                addAlert(\n                    new CommonAnyAlert({\n                        type: CommonAlertTypeEnum.truckFailedArchivedHasFutureAssignment,\n                        data: {},\n                    }),\n                ),\n            );\n        } else {\n            const truck = byId[failedTruckId] || null;\n\n            yield put(\n                addAlert(\n                    new CommonAnyAlert({\n                        type: CommonAlertTypeEnum.truckFailedArchived,\n                        data: {\n                            plateNumber: truck?.plateNumber || '',\n                        },\n                    }),\n                ),\n            );\n        }\n    } else if (failedCount > 0 && allCount > 1) {\n        const invalidAssetsPlateNumbers = failedTruckIds.map((truckId) => {\n            return byId[truckId]?.plateNumber || '';\n        });\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trucksFailedArchived,\n                    data: {\n                        allCount,\n                        successfulCount,\n                        plateNumbers: invalidAssetsPlateNumbers,\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount === 0 && successfulCount === 1) {\n        const truck = byId[truckIds[0]] || null;\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.truckSuccessfullyArchived,\n                    data: {\n                        plateNumber: truck?.plateNumber || '',\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount === 0 && successfulCount > 1) {\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trucksSuccessfullyArchived,\n                    data: {\n                        count: successfulCount,\n                    },\n                }),\n            ),\n        );\n    }\n\n    trucksRefreshChannel.emit({});\n\n    for (const truckId of truckIds) {\n        yield call(refreshTruckDetailsIfNeedSaga, companyId, truckId);\n    }\n\n    truckDetailsRefreshChannel.emit({});\n}\n\nfunction* assignTruckToContractSaga(action: AssignToContractRequestActionT): WrapGeneratorT<void> {\n    const { changeContractRequest, companyId, contractName } = action;\n\n    yield put(updateTrucksRequestBegin(companyId));\n\n    let response: ReturnApiT<\n        typeof brokerTranziitApi.assignTruckToContract | typeof carrierTranziitApi.assignTruckToContract\n    > | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        response = yield carrierTranziitApi.assignTruckToContract(changeContractRequest);\n    } else {\n        response = yield brokerTranziitApi.assignTruckToContract(companyId, changeContractRequest);\n    }\n\n    const error = response?.[0];\n    const result = response?.[1];\n\n    if (error) {\n        yield put(updateTrucksRequestError(error, companyId));\n    } else {\n        yield put(updateTrucksRequestSuccess(companyId));\n    }\n\n    const truckIds = changeContractRequest?.ids || [];\n    const allCount = truckIds.length;\n    const invalidAssetsMap = result?.invalidAssets || {};\n    const failedTruckIds = keys(invalidAssetsMap);\n    const failedCount = failedTruckIds.length;\n    const successfulCount = allCount - failedCount;\n\n    const byId: ReReturnT<typeof selectTrucksByIds> = yield select(selectTrucksByIds(companyId));\n\n    if (failedCount > 0 && allCount === 1) {\n        const truck = byId[failedTruckIds[0]] || null;\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.truckFailedUpdateContract,\n                    data: {\n                        plateNumber: truck?.plateNumber || '',\n                        contractName,\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount > 0 && allCount > 1) {\n        const invalidAssetsPlateNumbers = failedTruckIds.map((truckId) => {\n            return byId[truckId]?.plateNumber || '';\n        });\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trucksFailedUpdateContract,\n                    data: {\n                        allCount,\n                        successfulCount,\n                        plateNumbers: invalidAssetsPlateNumbers,\n                        contractName,\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount === 0 && successfulCount === 1) {\n        const truck = byId[truckIds[0]] || null;\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.truckSuccessfullyUpdatedContract,\n                    data: {\n                        plateNumber: truck?.plateNumber || '',\n                        contractName,\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount === 0 && successfulCount > 1) {\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trucksSuccessfullyUpdatedContract,\n                    data: {\n                        count: successfulCount,\n                        contractName,\n                    },\n                }),\n            ),\n        );\n    }\n\n    trucksRefreshChannel.emit({});\n\n    for (const truckId of truckIds) {\n        yield call(refreshTruckDetailsIfNeedSaga, companyId, truckId);\n    }\n\n    truckDetailsRefreshChannel.emit({});\n}\n\nfunction* changeRateTrucksSaga(action: ChangeRateTrucksRequestActionT): WrapGeneratorT<void> {\n    const { changeRateVehiclesRequest, companyId } = action;\n\n    yield put(updateTrucksRequestBegin(companyId));\n\n    let response: ReturnApiT<\n        typeof brokerTranziitApi.changeRateTrucks | typeof carrierTranziitApi.changeRateTrucks\n    > | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        response = yield carrierTranziitApi.changeRateTrucks(changeRateVehiclesRequest);\n    } else {\n        response = yield brokerTranziitApi.changeRateTrucks(companyId, changeRateVehiclesRequest);\n    }\n\n    const error = response?.[0];\n    const result = response?.[1];\n\n    if (error) {\n        yield put(updateTrucksRequestError(error, companyId));\n    } else {\n        yield put(updateTrucksRequestSuccess(companyId));\n    }\n\n    const truckIds = changeRateVehiclesRequest.ids || [];\n    const allCount = truckIds.length;\n    const invalidAssetsMap = result?.invalidAssets || {};\n    const failedTruckIds = keys(invalidAssetsMap);\n    const failedCount = failedTruckIds.length;\n    const successfulCount = allCount - failedCount;\n\n    const byId: ReReturnT<typeof selectTrucksByIds> = yield select(selectTrucksByIds(companyId));\n\n    if (failedCount > 0 && allCount === 1) {\n        const truck = byId[failedTruckIds[0]] || null;\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.truckFailedUpdateRate,\n                    data: {\n                        plateNumber: truck?.plateNumber || '',\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount > 0 && allCount > 1) {\n        const invalidAssetsPlateNumbers = failedTruckIds.map((truckId) => {\n            return byId[truckId]?.plateNumber || '';\n        });\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trucksFailedUpdateRate,\n                    data: {\n                        allCount,\n                        successfulCount,\n                        plateNumbers: invalidAssetsPlateNumbers,\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount === 0 && successfulCount === 1) {\n        const truck = byId[truckIds[0]] || null;\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.truckSuccessfullyUpdatedRate,\n                    data: {\n                        plateNumber: truck?.plateNumber || '',\n                    },\n                }),\n            ),\n        );\n    } else if (failedCount === 0 && successfulCount > 1) {\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.trucksSuccessfullyUpdatedRate,\n                    data: {\n                        count: successfulCount,\n                    },\n                }),\n            ),\n        );\n    }\n\n    trucksRefreshChannel.emit({});\n\n    for (const truckId of truckIds) {\n        yield call(refreshTruckDetailsIfNeedSaga, companyId, truckId);\n    }\n\n    truckDetailsRefreshChannel.emit({});\n}\n\nfunction* fetchTruckDetailsSaga(action: FetchTruckDetailsActionT): WrapGeneratorT<void> {\n    const { truckId, companyId, options } = action;\n\n    const detailsById = yield select(selectTrucksDetailsByIds(companyId));\n    if (detailsById[truckId] && !options?.isForceUpdate) {\n        return;\n    }\n\n    yield put(fetchTruckDetailsRequestBegin(companyId));\n\n    let error: Error | null = null;\n    let details: ApiTruckDetailsT | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        const result: ReturnApiT<typeof carrierTranziitApi.fetchTruckDetails> =\n            yield carrierTranziitApi.fetchTruckDetails(truckId);\n        const [resultError, data] = result;\n        if (resultError) {\n            error = resultError;\n        }\n        if (data) {\n            details = {\n                ...data,\n                countryCode: data.countryCode,\n            };\n        }\n    } else {\n        const result: ReturnApiT<typeof brokerTranziitApi.fetchPartnerTruckDetails> =\n            yield brokerTranziitApi.fetchPartnerTruckDetails(companyId, truckId);\n        const [resultError, data] = result;\n        if (resultError) {\n            error = resultError;\n        }\n        if (data) {\n            details = data;\n        }\n    }\n\n    if (error) {\n        yield put(fetchTruckDetailsRequestError(error, companyId));\n        return;\n    }\n\n    if (details) {\n        yield put(fetchTruckDetailsRequestSuccess(truckId, details, companyId));\n    }\n}\n\nfunction* fetchTrucksStatsSaga(action: FetchTrucksStatsActionT): WrapGeneratorT<void> {\n    const { companyId, options } = action;\n\n    const fetchStatsRequestStatus: ReReturnT<typeof selectFetchTrucksStatsRequestStatus> = yield select(\n        selectFetchTrucksStatsRequestStatus(companyId),\n    );\n\n    const isNeedRequest = checkNeedRequest(fetchStatsRequestStatus, options);\n    if (!isNeedRequest) {\n        return;\n    }\n\n    yield put(fetchTrucksStatsRequestBegin(companyId));\n\n    let error: Error | null = null;\n    let stats: CompanyTrucksStatsT | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        const result: ReturnApiT<typeof carrierTranziitApi.fetchTrucksActiveFleetCount> =\n            yield carrierTranziitApi.fetchTrucksActiveFleetCount();\n        const [resultError, data] = result;\n        if (resultError) {\n            error = resultError;\n        }\n        if (data) {\n            stats = {\n                actualTotalCount: data,\n            };\n        }\n    } else {\n        const result: ReturnApiT<typeof brokerTranziitApi.fetchTrucksActiveFleetCount> =\n            yield brokerTranziitApi.fetchTrucksActiveFleetCount(companyId);\n        const [resultError, data] = result;\n        if (resultError) {\n            error = resultError;\n        }\n        if (data) {\n            stats = {\n                actualTotalCount: data,\n            };\n        }\n    }\n\n    if (error) {\n        yield put(fetchTrucksStatsRequestError(error, companyId));\n        return;\n    }\n\n    yield put(fetchTrucksStatsRequestSuccess(stats, companyId));\n}\n\nfunction* updateTruckSaga(action: UpdateTruckActionT): WrapGeneratorT<void> {\n    const { companyId, truckId, updateTruck } = action;\n\n    yield put(updateTrucksRequestBegin(companyId));\n\n    let result: ReturnApiT<typeof carrierTranziitApi.updateTruck | typeof brokerTranziitApi.updatePartnerTruck> | null =\n        null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        result = yield carrierTranziitApi.updateTruck(truckId, updateTruck);\n    } else {\n        result = yield brokerTranziitApi.updatePartnerTruck(companyId, truckId, updateTruck);\n    }\n    if (!result) {\n        return;\n    }\n    const [error] = result;\n\n    if (error) {\n        yield put(updateTrucksRequestError(error, companyId));\n    } else {\n        yield put(updateTrucksRequestSuccess(companyId));\n    }\n\n    if (!error) {\n        const detailsById: ReReturnT<typeof selectTrucksDetailsByIds> = yield select(\n            selectTrucksDetailsByIds(companyId),\n        );\n        const truckDetails = detailsById[truckId as string];\n\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.truckSuccessfullyEdited,\n                    data: {\n                        plateNumber: truckDetails?.plateNumber || '',\n                    },\n                }),\n            ),\n        );\n    }\n\n    yield put(fetchTruckDetails(truckId, companyId, { isForceUpdate: true }));\n    trucksRefreshChannel.emit({});\n}\n\nfunction* importXLSTrucksSaga(action: ImportXLSTrucksActionT): WrapGeneratorT<void> {\n    const { companyId, file } = action;\n\n    yield put(importXLSTrucksRequestBegin(companyId));\n\n    let result: ReturnApiT<\n        typeof brokerTranziitApi.importPartnerXLSTrucks | typeof carrierTranziitApi.importXLSTrucks\n    > | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        result = yield carrierTranziitApi.importXLSTrucks(file);\n    } else {\n        result = yield brokerTranziitApi.importPartnerXLSTrucks(companyId, file);\n    }\n    if (!result) {\n        return;\n    }\n    const [error] = result;\n\n    if (error) {\n        yield put(importXLSTrucksRequestError(error, companyId));\n    } else {\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.truckSuccessfullyXLSImport,\n                    data: {},\n                }),\n            ),\n        );\n\n        yield put(importXLSTrucksRequestSuccess(companyId));\n    }\n}\n\nfunction* exportXLSTrucksSaga(action: ExportXLSTrucksActionT): WrapGeneratorT<void> {\n    const { companyId, query } = action;\n\n    yield put(exportXLSTrucksRequestBegin(companyId));\n\n    let result: ReturnApiT<\n        typeof brokerTranziitApi.exportPartnerXLSTrucks | typeof carrierTranziitApi.exportXLSTrucks\n    > | null = null;\n    if (checkIsDefaultCompanyId(companyId)) {\n        result = yield carrierTranziitApi.exportXLSTrucks(query);\n    } else {\n        result = yield brokerTranziitApi.exportPartnerXLSTrucks(companyId, query);\n    }\n    if (!result) {\n        return;\n    }\n    const [error, data] = result;\n\n    if (data) {\n        downloadFile({\n            name: `trucks-export-${moment().format('YYYY-MM-DD_HH:mm')}.xlsx`,\n            data,\n            type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n        });\n    }\n\n    if (error) {\n        yield put(exportXLSTrucksRequestError(error, companyId));\n    } else {\n        yield put(exportXLSTrucksRequestSuccess(companyId));\n    }\n}\n\nfunction* trucksSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_TRUCKS_PAGE_REQUEST, fetchTrucksSaga);\n    yield takeEvery(ADD_TRUCK_REQUEST, addTruckSaga);\n    yield takeEvery(DELETE_TRUCKS_REQUEST, deleteTrucksSaga);\n    yield takeEvery(ACTIVATION_TRUCKS_REQUEST, activateTrucksSaga);\n    yield takeEvery(ARCHIVE_TRUCKS_REQUEST, archiveTrucksSaga);\n    yield takeEvery(FETCH_TRUCK_DETAILS_REQUEST, fetchTruckDetailsSaga);\n    yield takeEvery(UPDATE_TRUCK_REQUEST, updateTruckSaga);\n    yield takeEvery(ASSIGN_TO_CONTRACT_TRUCKS_REQUEST, assignTruckToContractSaga);\n    yield takeEvery(CHANGE_RATE_TRUCKS_REQUEST, changeRateTrucksSaga);\n    yield takeEvery(FETCH_TRUCKS_STATS_REQUEST, fetchTrucksStatsSaga);\n    yield takeEvery(IMPORT_XLS_TRUCKS_REQUEST, importXLSTrucksSaga);\n    yield takeEvery(EXPORT_XLS_TRUCKS_REQUEST, exportXLSTrucksSaga);\n}\n\nexport default trucksSaga;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './SpotRequestsFiltersSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport getQueryFilters from './get-query-filters';\nimport getInitialValues from './get-initial-values';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { isDeepEqual } from 'common/utils/deep-equal';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport DictTrailerDropdown from 'common/components/dropdowns/DictTrailerDropdown/DictTrailerDropdown';\nimport Input from 'common/components/Input/Input';\nimport DatePicker, { DatePickerOverlayPositionEnum } from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport { useDispatch } from 'react-redux';\nimport { fetchTrailersDict } from 'common/store/trailers-dict/actions';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport ShipperSuggest from 'broker-admin/components/dropdowns/ShipperSuggest/ShipperSuggest';\nimport { TooltipPositionEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport PinIcon, { PinIconProps } from 'common/icons/PinIcon';\nimport { DEFAULT_BROKER_COMPANY_ID } from 'common/constants';\nimport SelectedFilters from 'broker-admin/layouts/SpotRequestsPage/SpotRequestListPage/SelectedFilters/SelectedFilters';\nimport { QueryFiltersT, QueryKeysEnum } from 'broker-admin/layouts/SpotRequestsPage/SpotRequestListPage/query-models';\nimport { SidebarContentPropsT } from 'common/layouts/SideBars/models';\nimport { useQueryParam } from 'use-query-params';\nimport { SpotRequestsFiltersSidebarDataT } from './models';\nimport { createJsonParams } from 'common/utils/query';\nimport { BrokerSidebarDataT } from 'broker-admin/layouts/SideBars/models';\nimport PartnerUserSuggest from '../../../../common/components/suggests/PartnerUserSuggest/PartnerUserSuggest';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = SidebarContentPropsT<SpotRequestsFiltersSidebarDataT, BrokerSidebarDataT>;\n\nconst SpotRequestsFiltersSidebarContent: React.FC<PropsT> = (props) => {\n    const { onClose } = props;\n    const { t } = useTranslation();\n\n    const [queryFilters, setQueryFilters] = useQueryParam<QueryFiltersT>(\n        QueryKeysEnum.spotRequestsFilters,\n        createJsonParams<QueryFiltersT>({}),\n    );\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchTrailersDict());\n    }, [dispatch]);\n\n    const [initialQueryFilters, setInitialQueryFilters] = React.useState<QueryFiltersT>(queryFilters);\n\n    React.useEffect(() => {\n        setInitialQueryFilters(queryFilters);\n    }, [queryFilters]);\n\n    const initialValues = React.useMemo(() => getInitialValues(queryFilters), [queryFilters]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialValues,\n        onSubmit: (values, formikHelpers): void => {\n            const queryFilters = getQueryFilters(values);\n            setQueryFilters({\n                ...initialQueryFilters,\n                ...queryFilters,\n            });\n\n            formikHelpers.setTouched({});\n\n            if (onClose) {\n                onClose();\n            }\n        },\n    });\n\n    const isSameValues = React.useMemo(() => {\n        return isDeepEqual(initialValues, formik.values) && isDeepEqual(initialQueryFilters, queryFilters);\n    }, [initialValues, formik.values, initialQueryFilters, queryFilters]);\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('form')}>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent title={t('spot-requests.list.filters.title')} onClose={onClose} />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <FormikField\n                    className={cx('field', 'field--address')}\n                    name={FieldsEnum.pickupAddress}\n                    error={formik.errors[FieldsEnum.pickupAddress]}\n                    meta={formik.getFieldMeta(FieldsEnum.pickupAddress)}\n                    label={t('spot-requests.list.filters.fields.pickup-address')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                    tooltipPosition={TooltipPositionEnum.topLeft}\n                    tooltipNode={\n                        <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                            {t('spot-requests.list.filters.tooltip.address')}\n                        </TooltipContent>\n                    }\n                >\n                    {(props) => (\n                        <Input\n                            renderLeftIcon={(iconMeta) => <PinIcon {...PinIconProps.getControlProps(iconMeta)} />}\n                            name={FieldsEnum.pickupAddress}\n                            value={formik.values[FieldsEnum.pickupAddress] || ''}\n                            placeholder={t('spot-requests.list.filters.placeholders.pickup-address')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            hasClearControl\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    className={cx('field', 'field--address')}\n                    name={FieldsEnum.dropoffAddress}\n                    error={formik.errors[FieldsEnum.dropoffAddress]}\n                    meta={formik.getFieldMeta(FieldsEnum.dropoffAddress)}\n                    label={t('spot-requests.list.filters.fields.drop-off-address')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                    tooltipPosition={TooltipPositionEnum.topLeft}\n                    tooltipNode={\n                        <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                            {t('spot-requests.list.filters.tooltip.address')}\n                        </TooltipContent>\n                    }\n                >\n                    {(props) => (\n                        <Input\n                            renderLeftIcon={(iconMeta) => <PinIcon {...PinIconProps.getControlProps(iconMeta)} />}\n                            name={FieldsEnum.dropoffAddress}\n                            value={formik.values[FieldsEnum.dropoffAddress] || ''}\n                            placeholder={t('spot-requests.list.filters.placeholders.dropoff-address')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            hasClearControl\n                        />\n                    )}\n                </FormikField>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.pickupDates}\n                        error={formik.errors[FieldsEnum.pickupDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.pickupDates)}\n                        label={t('spot-requests.list.filters.fields.pickup-dates')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.pickupDates]}\n                                placeholder={t('spot-requests.list.filters.placeholders.pickup-dates')}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.dropoffDates}\n                        error={formik.errors[FieldsEnum.dropoffDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.dropoffDates)}\n                        label={t('spot-requests.list.filters.fields.drop-off-dates')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.dropoffDates]}\n                                placeholder={t('spot-requests.list.filters.placeholders.drop-off-dates')}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomRight}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.createDates}\n                        error={formik.errors[FieldsEnum.createDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.createDates)}\n                        label={t('spot-requests.list.filters.fields.created-dates')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.createDates]}\n                                placeholder={t('spot-requests.list.filters.placeholders.created-dates')}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--user')}\n                        name={FieldsEnum.createdByUserId}\n                        error={formik.errors[FieldsEnum.createdByUserId]}\n                        meta={formik.getFieldMeta(FieldsEnum.createdByUserId)}\n                        label={t('spot-requests.list.filters.fields.created-by')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <PartnerUserSuggest\n                                companyId={DEFAULT_BROKER_COMPANY_ID}\n                                initialValue={formik.values[FieldsEnum.createdByUserId]}\n                                initialLabel={formik.values[FieldsEnum.createdByUserName]}\n                                value={formik.values[FieldsEnum.createdByUserId]}\n                                placeholder={t('spot-requests.list.filters.placeholders.created-by')}\n                                onSelect={(userId, userName) => {\n                                    props.onChange(userId);\n                                    formik.setFieldValue(FieldsEnum.createdByUserName, userName);\n                                }}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FormikField\n                    className={cx('field', 'field--shipper')}\n                    name={FieldsEnum.createdByShipperId}\n                    error={formik.errors[FieldsEnum.createdByShipperId]}\n                    meta={formik.getFieldMeta(FieldsEnum.createdByShipperId)}\n                    label={t('spot-requests.list.filters.fields.shipper')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <ShipperSuggest\n                            value={formik.values[FieldsEnum.createdByShipperId]}\n                            initialValue={initialValues[FieldsEnum.createdByShipperId]}\n                            initialLabel={initialValues[FieldsEnum.createdByShipperName] || ''}\n                            hasClearControl\n                            onSelect={(shipperId, shipperName) => {\n                                formik.setFieldValue(FieldsEnum.createdByShipperId, shipperId);\n                                formik.setFieldValue(FieldsEnum.createdByShipperName, shipperName);\n                            }}\n                            hasWarning={props.hasWarning}\n                            hasError={props.hasError}\n                            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                            placeholder={t('spot-requests.list.filters.placeholders.shipper')}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    className={cx('field', 'field--trailer-type')}\n                    name={FieldsEnum.dictTrailerTypeId}\n                    error={formik.errors[FieldsEnum.dictTrailerTypeId]}\n                    meta={formik.getFieldMeta(FieldsEnum.dictTrailerTypeId)}\n                    label={t('spot-requests.list.filters.fields.trailer-type')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <DictTrailerDropdown\n                            placeholder={t('spot-requests.list.filters.placeholders.trailer-type')}\n                            value={formik.values[FieldsEnum.dictTrailerTypeId]}\n                            onChange={props.onChange}\n                            hasWarning={props.hasWarning}\n                            hasError={props.hasError}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasClearControl\n                        />\n                    )}\n                </FormikField>\n            </SideBarLayout>\n            <FooterSideBarLayout hasPaddings>\n                <div className={cx('selected-filters')}>\n                    <SelectedFilters queryFilters={initialQueryFilters} setQueryFilters={setInitialQueryFilters} />\n                </div>\n                <Button\n                    theme={ButtonThemeEnum.primary}\n                    isDisabled={isSameValues}\n                    isFullWidth\n                    isCenterContent\n                    type=\"submit\"\n                >\n                    {t('spot-requests.list.filters.submit')}\n                </Button>\n            </FooterSideBarLayout>\n        </form>\n    );\n};\n\nexport default SpotRequestsFiltersSidebarContent;\n","import { AsyncFormErrorsT, FieldsEnum } from './constants';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport { AuthErrorTypeEnum, checkIsAuthApiError } from 'common/utils/api/auth/errors/auth-api-error';\n\nconst asyncValidate = (requestError: RequestStatusT): AsyncFormErrorsT => {\n    const asyncErrors: AsyncFormErrorsT = {};\n\n    if (!checkIsAuthApiError(requestError.error)) {\n        return asyncErrors;\n    }\n\n    if (\n        requestError.error?.type === AuthErrorTypeEnum.userNotFound ||\n        requestError.error?.type === AuthErrorTypeEnum.wrongRole ||\n        requestError.error?.type === AuthErrorTypeEnum.userDisabled\n    ) {\n        asyncErrors[FieldsEnum.email] = requestError.error?.type;\n    }\n\n    if (requestError.error?.type === AuthErrorTypeEnum.wrongPassword) {\n        asyncErrors[FieldsEnum.password] = requestError.error?.type;\n    }\n\n    return asyncErrors;\n};\n\nexport default asyncValidate;\n","import React from 'react';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\n\nimport { TruckStatusEnum } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\nimport { TRUCK_STATUS_T_MAP } from 'common/components/status/TruckStatus/TruckStatus';\nimport DropdownMultipleInput, {\n    RenderTriggerPropsT,\n} from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInput';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport DropdownBaseButtonTrigger from 'design-system/components/dropdowns/base/DropdownBaseButtonTrigger/DropdownBaseButtonTrigger';\nimport TruckStatusPill from 'common/components/status-pill/TruckStatusPill/TruckStatusPill';\nimport DropdownMultipleInputCountLabel from 'design-system/components/dropdowns/DropdownMultipleInput/DropdownMultipleInputCountLabel/DropdownMultipleInputCountLabel';\n\ntype OptionValueT = TruckStatusEnum | null;\n\ntype PropsT = {\n    placeholder?: string;\n    value: Array<OptionValueT>;\n    isDisabled?: boolean;\n    onChange: (value: Array<OptionValueT>) => void;\n    hasWarning: boolean;\n    hasError: boolean;\n    hasChanges?: boolean;\n    onBlur: () => void;\n    onFocus: () => void;\n    hasClearControl?: boolean;\n    overlayPosition?: DropdownOverlayPositionEnum;\n    excludeStatuses?: Array<TruckStatusEnum>;\n};\n\ntype TruckStatusDropdownOptionT = {\n    value: OptionValueT;\n    label: React.ReactNode;\n};\n\nconst TruckStatusMultipleDropdown: React.FC<PropsT> = React.memo((props) => {\n    const {\n        value,\n        placeholder,\n        onChange,\n        isDisabled,\n        hasWarning,\n        hasError,\n        hasChanges,\n        onBlur,\n        onFocus,\n        hasClearControl,\n        overlayPosition,\n        excludeStatuses,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const options = React.useMemo((): TruckStatusDropdownOptionT[] => {\n        return [TruckStatusEnum.free, TruckStatusEnum.inTransit, TruckStatusEnum.archived, TruckStatusEnum.unavailable]\n            .filter((status) => {\n                if (excludeStatuses) {\n                    return !excludeStatuses.includes(status);\n                }\n\n                return true;\n            })\n            .map((status: TruckStatusEnum): TruckStatusDropdownOptionT => {\n                return {\n                    label: t(TRUCK_STATUS_T_MAP[status]),\n                    value: status,\n                };\n            });\n    }, [t, excludeStatuses]);\n\n    const renderTrigger = (\n        props: RenderTriggerPropsT,\n        options: Array<TruckStatusDropdownOptionT>,\n        placeholder: string | undefined,\n    ): React.ReactNode => {\n        if (!options?.length) {\n            return (\n                <DropdownBaseButtonTrigger {...props} isShowClearControl={false}>\n                    {placeholder || ''}\n                </DropdownBaseButtonTrigger>\n            );\n        }\n\n        if (options.length === 1) {\n            const firstOption = options?.[0];\n\n            return <DropdownBaseButtonTrigger {...props}>{firstOption?.label}</DropdownBaseButtonTrigger>;\n        }\n\n        return (\n            <DropdownBaseButtonTrigger {...props}>\n                <DropdownMultipleInputCountLabel count={options?.length} />\n            </DropdownBaseButtonTrigger>\n        );\n    };\n\n    const renderOption = (option: TruckStatusDropdownOptionT | null | undefined): React.ReactNode => {\n        if (!option) {\n            return null;\n        }\n\n        return (\n            <DropdownControlOptionLabel\n                withoutPaddings\n                label={<TruckStatusPill status={option.value} isSymmetrical />}\n            />\n        );\n    };\n\n    const handleSelect = (value: Array<OptionValueT>): void => {\n        onChange(value);\n    };\n\n    const getOptionValue = (option: TruckStatusDropdownOptionT): OptionValueT => option.value;\n\n    return (\n        <DropdownMultipleInput<TruckStatusDropdownOptionT, OptionValueT>\n            selectedValues={value}\n            placeholder={placeholder}\n            options={options}\n            onSelect={handleSelect}\n            isDisabled={isDisabled}\n            renderOption={renderOption}\n            renderTrigger={renderTrigger}\n            getOptionValue={getOptionValue}\n            overlayPosition={overlayPosition || DropdownOverlayPositionEnum.bottomLeft}\n            hasWarning={hasWarning}\n            hasError={hasError}\n            hasChanges={hasChanges}\n            onBlur={onBlur}\n            onFocus={onFocus}\n            testSelector=\"truck-statuses\"\n            onReset={\n                hasClearControl\n                    ? () => {\n                          onChange([]);\n                      }\n                    : undefined\n            }\n        />\n    );\n});\n\nexport default TruckStatusMultipleDropdown;\n","import { TFunction } from 'i18next';\nimport { AsyncFormErrorsT, FieldsEnum } from './constants';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport {\n    checkIsTranziitApiRequestError,\n    TranziitApiRequestErrorSubTypeEnum,\n} from 'common/utils/api/tranziit/errors/tranziit-api-errors';\n\nconst asyncValidate = (t: TFunction, requestStatus: RequestStatusT): AsyncFormErrorsT => {\n    const errors: AsyncFormErrorsT = {};\n\n    const { error } = requestStatus;\n\n    if (\n        error &&\n        checkIsTranziitApiRequestError(error) &&\n        error?.subType === TranziitApiRequestErrorSubTypeEnum.evidenceOfTaxDetails_WrongVat\n    ) {\n        errors[FieldsEnum.vatNumber] = error.subType;\n    }\n\n    return errors;\n};\n\nexport default asyncValidate;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"EventCell__wrap___MXyiB\",\"wrap--isSmallFont\":\"EventCell__wrap--isSmallFont___JdXrT\",\"link\":\"EventCell__link___IjJMU\",\"fadeIn\":\"EventCell__fadeIn___wtEHy\",\"blinking\":\"EventCell__blinking___fq_eu\"};","// eslint-disable-next-line no-restricted-exports\nexport { default } from './slice';\n","import { eventChannel } from 'redux-saga';\nimport { call, put, select, take, takeEvery } from 'redux-saga/effects';\nimport isNil from 'lodash/isNil';\n\nimport {\n    CONTINUE_SIGN_UP_REQUEST,\n    ContinueSignUpActionT,\n    EMAIL_VERIFICATION_REQUEST,\n    EmailVerificationActionT,\n    RESET_PASSWORD_REQUEST,\n    ResetPasswordActionT,\n    SIGN_IN_REQUEST,\n    SIGN_OUT_REQUEST,\n    SIGN_UP_REQUEST,\n    SignInActionT,\n    SignUpActionT,\n    UPDATE_PASSWORD_REQUEST,\n    UpdatePasswordActionT,\n} from './types';\nimport {\n    destroySession,\n    emailVerificationBegin,\n    emailVerificationError,\n    emailVerificationSuccess,\n    resetPasswordBegin,\n    resetPasswordError,\n    resetPasswordSuccess,\n    setUser,\n    signInBegin,\n    signInError,\n    signInSuccess,\n    signOutBegin,\n    signOutError,\n    signOutSuccess,\n    signUpBegin,\n    signUpError,\n    signUpSuccess,\n    updatePasswordBegin,\n    updatePasswordError,\n    updatePasswordSuccess,\n} from './actions';\nimport { authApi } from 'common/utils/api/auth/factory';\nimport history, { goToPossiblyExternalUrl } from 'common/utils/history';\nimport { authRoutesEnum, CommonRoutesEnum, CompanyTypeEnum, externalRoutesSet, QueryKeysEnum } from '../../constants';\n\nimport { getAuthReturnUrl, parseAuthReturnUrl } from 'common/utils/auth-return-url';\nimport { logWarning } from 'common/utils/logger';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport { AuthApiError, AuthErrorTypeEnum } from 'common/utils/api/auth/errors/auth-api-error';\nimport i18n from 'i18next';\nimport moment from 'moment';\nimport { checkRegisteredUser } from 'common/store/auth/selectors';\nimport { forceRefreshCurrentUserSaga } from '../user/sagas';\nimport { ApiCompleteRegistrationT, CountryCodeT } from 'common/utils/api/models';\nimport { AuthUserClaimsT, AuthUserT } from 'common/utils/api/auth/base-auth-service';\nimport { formatQuery } from 'common/utils/query';\nimport { getRawClientFeaturesConfig, setRawClientFeaturesConfig } from 'common/utils/features/client-features-config';\n\nconst companyTypes: Array<string> = Object.values(CompanyTypeEnum);\n\nfunction* continueSignInErrorSaga(error: Error) {\n    yield put(emailVerificationError(error));\n    yield authApi.doSignOut();\n}\n\ntype ProtectedSignInResultT = {\n    user: AuthUserT;\n    userClaims: AuthUserClaimsT | null;\n};\n\nfunction* checkPasswordSaga(email: string, password: string): WrapGeneratorT<[AuthApiError | null, AuthUserT | null]> {\n    return yield authApi.signInWithEmailAndPassword(email, password);\n}\n\nfunction* protectedSignInSaga(\n    companyType: CompanyTypeEnum,\n    email: string,\n    password: string,\n): WrapGeneratorT<[AuthApiError | null, ProtectedSignInResultT | null]> {\n    const [signInError, signInResult]: ReturnApiT<typeof authApi.signInWithEmailAndPassword> =\n        yield authApi.signInWithEmailAndPassword(email, password);\n\n    if (signInError) {\n        return [signInError, null];\n    }\n\n    if (!signInResult) {\n        return [new AuthApiError(AuthErrorTypeEnum.unknown, 'empty signInResult'), null];\n    }\n\n    const [userClaimsError, userClaimsResult]: ReturnApiT<typeof authApi.getAuthUserClaims> =\n        yield authApi.getAuthUserClaims();\n\n    if (userClaimsError) {\n        return [userClaimsError, null];\n    }\n\n    if (!userClaimsResult) {\n        return [new AuthApiError(AuthErrorTypeEnum.unknown, 'empty idTokenResult'), null];\n    }\n\n    const roles = userClaimsResult?.roles || [];\n    const hasRequiredRole = roles.includes(companyType);\n    if (!hasRequiredRole) {\n        const authError = new AuthApiError(AuthErrorTypeEnum.wrongRole, 'wrong role');\n        return [authError, null];\n    }\n\n    return [\n        null,\n        {\n            user: signInResult,\n            userClaims: userClaimsResult,\n        },\n    ];\n}\n\nfunction getContinueSignInSaga(companyType: CompanyTypeEnum) {\n    return function* continueSignInSaga(action: ContinueSignUpActionT) {\n        const { firstName, lastName, phoneNumber, password, oobCode, email, returnUrl } = action;\n\n        const isRegisteredUser: ReturnType<typeof checkRegisteredUser> = yield select(checkRegisteredUser);\n\n        yield put(emailVerificationBegin());\n\n        if (!isRegisteredUser && email && password) {\n            const [checkPasswordError] = yield* checkPasswordSaga(email, password);\n            if (checkPasswordError) {\n                yield continueSignInErrorSaga(checkPasswordError);\n                return;\n            }\n        }\n\n        if (oobCode) {\n            const [verificationError]: ReturnApiT<typeof authApi.verificationEmail> = yield authApi.verificationEmail(\n                oobCode,\n            );\n            if (verificationError) {\n                yield continueSignInErrorSaga(verificationError);\n                return;\n            }\n        }\n\n        if (!isRegisteredUser && email && password) {\n            const [signInApiError, signInResult] = yield* protectedSignInSaga(companyType, email, password);\n            if (signInApiError?.type === AuthErrorTypeEnum.wrongRole) {\n                history.push(CommonRoutesEnum.accessDenied);\n                return;\n            }\n            if (signInApiError) {\n                yield continueSignInErrorSaga(signInApiError);\n                return;\n            }\n\n            if (!signInResult) {\n                const error = new AuthApiError(AuthErrorTypeEnum.unknown, 'empty signInResult');\n                yield continueSignInErrorSaga(error);\n                return;\n            }\n\n            yield put(signInSuccess(signInResult.user, signInResult.userClaims));\n        }\n\n        const [currentUserError, currentUser]: ReturnApiT<typeof commonTranziitApi.fetchCurrentUser> =\n            yield commonTranziitApi.fetchCurrentUser();\n        if (currentUserError) {\n            yield continueSignInErrorSaga(currentUserError);\n            return;\n        }\n\n        if (!currentUser) {\n            const error = new AuthApiError(AuthErrorTypeEnum.unknown, 'empty currentUser');\n            yield continueSignInErrorSaga(error);\n            return;\n        }\n\n        const patchedApiUserUpdate: ApiCompleteRegistrationT = {\n            language: i18n.language,\n            name: firstName,\n            phone: phoneNumber,\n            surname: lastName,\n        };\n        const [userPatchError]: ReturnApiT<typeof commonTranziitApi.completeUserRegistration> =\n            yield commonTranziitApi.completeUserRegistration(patchedApiUserUpdate);\n        if (userPatchError) {\n            yield continueSignInErrorSaga(userPatchError);\n            return;\n        }\n\n        yield put(emailVerificationSuccess());\n\n        yield forceRefreshCurrentUserSaga();\n\n        history.push(parseAuthReturnUrl(returnUrl));\n    };\n}\n\nfunction getSignInSaga(companyType: CompanyTypeEnum) {\n    return function* signInSaga(action: SignInActionT) {\n        const { email, password, returnUrl } = action;\n\n        yield put(signInBegin());\n\n        const [signInApiError, signInResult] = yield* protectedSignInSaga(companyType, email, password);\n\n        if (signInApiError?.type === AuthErrorTypeEnum.wrongRole) {\n            history.push(CommonRoutesEnum.accessDenied);\n            return;\n        }\n\n        if (signInApiError) {\n            yield put(signInError(signInApiError));\n            yield authApi.doSignOut();\n            return;\n        }\n\n        if (!signInResult) {\n            const error = new AuthApiError(AuthErrorTypeEnum.unknown, 'empty signInResult');\n            yield put(signInError(error));\n            return;\n        }\n\n        yield put(signInSuccess(signInResult.user, signInResult.userClaims));\n\n        history.push(parseAuthReturnUrl(returnUrl));\n    };\n}\n\nconst authUserStateChangeChannel = () =>\n    eventChannel((emit) => {\n        return authApi.onAuthStateChanged((user) => {\n            emit({ user });\n        });\n    });\n\nexport function* reAuthSaga(): WrapGeneratorT<void> {\n    const [, anonymouslyUser]: ReturnApiT<typeof authApi.createAnonymouslyUser> = yield authApi.createAnonymouslyUser();\n\n    if (anonymouslyUser) {\n        yield put(setUser(anonymouslyUser, null));\n    }\n\n    // commented - hot fix, redirect after logout with \"session_state\" in url\n    // const isContinueSignInRedirect = authApi.checkIsContinueSignInRedirect();\n    // if (isContinueSignInRedirect) {\n    //     return;\n    // }\n\n    const shouldRedirectToSignIn = !externalRoutesSet.has(history.location.pathname);\n    if (shouldRedirectToSignIn) {\n        authApi.destroySession();\n\n        const continueReturnUrl = getAuthReturnUrl();\n        const signInUrl = authApi.createSignInUrl(continueReturnUrl);\n        goToPossiblyExternalUrl(signInUrl);\n    }\n}\n\nfunction getAuthWatch(companyType: CompanyTypeEnum) {\n    return function* authWatch(): WrapGeneratorT<void> {\n        const userChannel = yield call(authUserStateChangeChannel);\n        let { user } = yield take(userChannel);\n\n        let [userClaimsError, userClaimsResult]: ReturnApiT<typeof authApi.getAuthUserClaims> =\n            yield authApi.getAuthUserClaims();\n        if (userClaimsError) {\n            yield put(signInError(userClaimsError));\n        }\n\n        const roles = userClaimsResult?.roles;\n        const isNotValidRole = !isNil(roles) && !roles.includes(companyType);\n        if (isNotValidRole) {\n            yield put(setUser(user, userClaimsResult));\n\n            const hasAnyRole = !!roles.find((role) => {\n                return companyTypes.includes(role);\n            });\n\n            if (hasAnyRole) {\n                history.push(CommonRoutesEnum.accessDenied);\n            } else {\n                history.push({\n                    pathname: authRoutesEnum.selfCreateCompany,\n                    search: formatQuery({\n                        [QueryKeysEnum.returnUrl]: getAuthReturnUrl(),\n                    }),\n                });\n            }\n            return;\n        }\n\n        const isNotValidUser = user && user.isAnonymous;\n        if (isNotValidUser || !user) {\n            yield reAuthSaga();\n        }\n\n        if (!user || isNotValidRole) {\n            const [error, anonymouslyUser]: ReturnApiT<typeof authApi.createAnonymouslyUser> =\n                yield authApi.createAnonymouslyUser();\n            if (error) {\n                yield put(signInError(error));\n            }\n            const result: ReturnApiT<typeof authApi.getAuthUserClaims> = yield authApi.getAuthUserClaims();\n            [userClaimsError, userClaimsResult] = result;\n            user = anonymouslyUser;\n        }\n\n        if (!userClaimsResult) {\n            logWarning('empty idTokenResult');\n            return;\n        }\n\n        yield put(setUser(user, userClaimsResult));\n    };\n}\n\nfunction* signOutSaga(): WrapGeneratorT<void> {\n    yield put(signOutBegin());\n\n    /* start clear user data */\n    const rawClientFeaturesConfig = getRawClientFeaturesConfig();\n\n    localStorage.clear();\n    sessionStorage.clear();\n\n    // save client feature config\n    if (rawClientFeaturesConfig) {\n        setRawClientFeaturesConfig(rawClientFeaturesConfig);\n    }\n    /* end clear user data */\n\n    const [apiError]: ReturnApiT<typeof authApi.doSignOut> = yield authApi.doSignOut();\n    if (apiError) {\n        yield put(signOutError(apiError));\n    }\n    const [error, anonymouslyUser]: ReturnApiT<typeof authApi.createAnonymouslyUser> =\n        yield authApi.createAnonymouslyUser();\n    if (error) {\n        yield put(signOutError(error));\n    }\n    if (anonymouslyUser) {\n        yield put(setUser(anonymouslyUser, null));\n    }\n    yield put(signOutSuccess());\n\n    authApi.destroySession();\n    history.push(authApi.createSignInUrl());\n    yield put(destroySession());\n}\n\nfunction* resetPasswordSaga(action: ResetPasswordActionT): WrapGeneratorT<void> {\n    yield put(resetPasswordBegin());\n    const { email } = action;\n    const origin = `${window.location.protocol}//${window.location.hostname}`;\n    const [error]: ReturnApiT<typeof commonTranziitApi.forgotPassword> = yield commonTranziitApi.forgotPassword(\n        email,\n        origin,\n    );\n    if (error) {\n        yield put(resetPasswordError(error));\n    } else {\n        yield put(resetPasswordSuccess());\n    }\n}\n\nfunction* updatePasswordSaga(action: UpdatePasswordActionT): WrapGeneratorT<void> {\n    yield put(updatePasswordBegin());\n    const { password, oobCode } = action;\n    const [error]: ReturnApiT<typeof authApi.updatePassword> = yield authApi.updatePassword(oobCode, password);\n    if (error) {\n        yield put(updatePasswordError(error));\n    } else {\n        yield put(updatePasswordSuccess());\n    }\n}\n\nconst getDefaultTimeZone = (): number => moment().utcOffset();\n\nfunction getSignUpSaga(companyType: CompanyTypeEnum) {\n    return function* signUpSaga(action: SignUpActionT): WrapGeneratorT<void> {\n        yield put(signUpBegin());\n\n        const { params } = action;\n\n        const [apiError]: ReturnApiT<typeof commonTranziitApi.createUser> = yield commonTranziitApi.createUser({\n            name: params.firstName,\n            surname: params.lastName,\n            email: params.email,\n            password: params.password,\n            companyName: params.companyName,\n            // TODO backend task https://tranziit.atlassian.net/browse/TZT-2854\n            timezone: getDefaultTimeZone(),\n            phoneNumber: params.phone,\n            companyType,\n            address: {\n                city: params.city,\n                country: params.countryCode as CountryCodeT,\n                street1: params.street1,\n                zipCode: params.zipCode,\n            },\n            language: i18n.language,\n        });\n\n        if (apiError) {\n            yield put(signUpError(apiError));\n            return;\n        }\n\n        /*\n        const [authApiError, user]: ReturnApiT<typeof authApi.signInWithEmailAndPassword> =\n            yield authApi.signInWithEmailAndPassword(params.email, params.password);\n\n        yield authApi.sendVerificationEmail(user);\n        yield authApi.doSignOut();\n        */\n        yield put(signUpSuccess());\n    };\n}\n\nfunction* emailVerificationSaga(action: EmailVerificationActionT): WrapGeneratorT<void> {\n    const { code } = action;\n\n    yield put(emailVerificationBegin());\n\n    const [error]: ReturnApiT<typeof authApi.verificationEmail> = yield authApi.verificationEmail(code);\n    if (error) {\n        yield put(emailVerificationError(error));\n    } else {\n        yield put(emailVerificationSuccess());\n    }\n}\n\nfunction* authSaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery(SIGN_IN_REQUEST, getSignInSaga(companyType));\n    yield takeEvery(CONTINUE_SIGN_UP_REQUEST, getContinueSignInSaga(companyType));\n    yield takeEvery(RESET_PASSWORD_REQUEST, resetPasswordSaga);\n    yield takeEvery(UPDATE_PASSWORD_REQUEST, updatePasswordSaga);\n    yield takeEvery(SIGN_OUT_REQUEST, signOutSaga);\n    yield takeEvery(SIGN_UP_REQUEST, getSignUpSaga(companyType));\n    yield takeEvery(EMAIL_VERIFICATION_REQUEST, emailVerificationSaga);\n    yield call(getAuthWatch(companyType));\n}\n\nexport default authSaga;\n","// extracted by mini-css-extract-plugin\nexport default {\"zone-title\":\"ZoneText__zone-title___dNNjd\",\"zone-title--theme-green\":\"ZoneText__zone-title--theme-green___sU2Pg\",\"zone-title--theme-orange\":\"ZoneText__zone-title--theme-orange___LhIB4\",\"zone-title--theme-dark-green\":\"ZoneText__zone-title--theme-dark-green___rhoW8\",\"zone-title--position-left\":\"ZoneText__zone-title--position-left___GHzKc\",\"zone-title--position-center\":\"ZoneText__zone-title--position-center___OqU11\",\"zone-title--position-right\":\"ZoneText__zone-title--position-right___FKoLt\",\"fadeIn\":\"ZoneText__fadeIn___b9NVY\",\"blinking\":\"ZoneText__blinking___O5q81\"};","import React from 'react';\nimport styles from './SubmitButtonContent.scss';\nimport classNames from 'classnames/bind';\nimport { Trans } from 'react-i18next';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { CurrencyEnum, DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport Money from 'common/components/Money/Money';\nimport { ApiReserveT } from 'common/store/order-creation/models';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    hasReservePreview: boolean;\n    isSubmitting: boolean;\n    isLoadingReservePreview: boolean;\n    selectedLane: ApiReserveT['contractLanes'][number] | null;\n};\n\nconst SubmitButtonContent: React.FC<PropsT> = (props) => {\n    const { hasReservePreview, isLoadingReservePreview, isSubmitting, selectedLane } = props;\n\n    const [isFirstReservePreview, setIsFirstReservePreview] = React.useState<boolean>(true);\n    React.useEffect(() => {\n        if (hasReservePreview) {\n            setIsFirstReservePreview(false);\n        }\n    }, [hasReservePreview]);\n\n    const loaderNode = <ControlLoaderIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />;\n\n    let textNode: React.ReactNode = null;\n    let iconNode: React.ReactNode = null;\n\n    if (isLoadingReservePreview) {\n        iconNode = loaderNode;\n        textNode = (\n            <Trans\n                i18nKey={\n                    isFirstReservePreview\n                        ? 'common:new-order-form.submit.wait-reserve-preview'\n                        : 'common:new-order-form.submit.wait-new-reserve-preview'\n                }\n            />\n        );\n    } else if (selectedLane) {\n        iconNode = isSubmitting ? loaderNode : null;\n        textNode = (\n            <Trans\n                i18nKey=\"common:new-order-form.submit.ready-with-lane\"\n                components={{\n                    amount: <Money amount={selectedLane.totalPrice} currency={CurrencyEnum.EUR} />,\n                }}\n            />\n        );\n    } else {\n        iconNode = isSubmitting ? loaderNode : null;\n        textNode = <Trans i18nKey=\"common:new-order-form.submit.ready\" />;\n    }\n\n    return (\n        <div className={cx('content-wrap')}>\n            {!!iconNode && <div className={cx('loader')}>{iconNode}</div>}\n            {textNode}\n        </div>\n    );\n};\n\nexport default SubmitButtonContent;\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './CommonDocumentParamsDetailsForm.scss';\n\nimport { useFormik } from 'formik';\nimport { useTranslation } from 'react-i18next';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport values from 'lodash/values';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport DatePicker, {\n    DatePickerOverlayPositionEnum,\n    datePicketRangePresets,\n} from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport prepareApproveData from './prepare-approve-data';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { selectUpdateCompanyDocumentsRequest } from 'common/store/documents/selectors';\nimport { approveDocument, updateDocument } from 'common/store/documents/actions';\nimport { logWarning } from 'common/utils/logger';\nimport { DocumentDetailsChangesT, DocumentVersionT } from 'common/store/documents/models';\nimport { DictDocumentT } from 'common/store/documents-dict/models';\nimport HiddenSubmitButtonForKeyboardEnter from 'common/components/HiddenEnterSubmitButton/HiddenSubmitButtonForKeyboardEnter';\nimport ApproveDocumentsConfirmation, {\n    BaseConfirmApproveDocumentModalDataT,\n} from 'common/layouts/BaseDocumentsLayout/dialogs/ApproveDocumentsConfirmation/ApproveDocumentsConfirmation';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport { createUseWatchAnyFieldValueChanges } from 'common/utils/hooks/useWatchFormFieldChanges';\nimport { useWatchFormAnyErrors } from 'common/utils/hooks/useWatchFormFormHasErrors';\nimport { documentsWithoutExpirySet } from 'common/constants';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\n\nconst cx = classNames.bind(styles);\n\nconst ALL_FIELDS = values(FieldsEnum);\nconst useWatchAnyFieldValueChanges = createUseWatchAnyFieldValueChanges(ALL_FIELDS);\n\ntype PropsT = {\n    isReview: boolean;\n    dictDocument: DictDocumentT | null;\n    actualVersion: DocumentVersionT | null;\n    setNeedCloseConfirmation: (needCloseConfirmation: boolean) => void;\n    partnerId: PartnerIdT | null;\n    partnerType: PartnerTypeEnum | null;\n};\n\ntype ConfirmApproveDocumentModalDataT = BaseConfirmApproveDocumentModalDataT<{\n    data: DocumentDetailsChangesT;\n    partnerType: PartnerTypeEnum;\n    dictDocumentId: DictDocumentFakeIdT;\n}>;\n\nconst CommonDocumentParamsDetailsForm: React.FC<PropsT> = React.memo((props) => {\n    const { isReview, actualVersion, dictDocument, setNeedCloseConfirmation, partnerId, partnerType } = props;\n\n    const isShowExpirationDate =\n        !!actualVersion?.documentType && !documentsWithoutExpirySet.has(actualVersion?.documentType);\n\n    const dispatch = useDispatch();\n\n    const confirmApproveDocumentModalDialog = useModalDialog<ConfirmApproveDocumentModalDataT>();\n\n    const updateRequest = useSelector(selectUpdateCompanyDocumentsRequest(partnerId));\n\n    const isLoading = updateRequest.loading;\n\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values, { isShowExpirationDate });\n    }, [t, isShowExpirationDate]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues(actualVersion, { isShowExpirationDate });\n        const errors = validateForm(t, values, { isShowExpirationDate });\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [actualVersion, isShowExpirationDate]);\n\n    const handleConfirmApproveDocument = (data: ConfirmApproveDocumentModalDataT) => {\n        if (!actualVersion?.id) {\n            logWarning('failed handleConfirmApproveDocument, empty actualVersion?.id');\n            return;\n        }\n\n        if (!partnerId || !partnerType) {\n            logWarning('Empty partnerId or partnerType in handleConfirmApproveDocument');\n            return;\n        }\n        dispatch(approveDocument(actualVersion.id, data.data.validTill, partnerId, partnerType));\n    };\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            if (!actualVersion?.id) {\n                logWarning('failed to save document details, empty documentId');\n                return;\n            }\n\n            const approveData = prepareApproveData(values, { isShowExpirationDate });\n            if (!approveData) {\n                logWarning('failed to save document details, empty approveData');\n                return;\n            }\n\n            if (!dictDocument) {\n                logWarning('failed to save document details, empty dictDocument');\n                return;\n            }\n\n            if (isReview) {\n                if (!partnerType) {\n                    logWarning('Empty partnerType in CommonDocumentParamsDetailsForm onSubmit');\n                    return;\n                }\n                confirmApproveDocumentModalDialog.setData({\n                    partnerType,\n                    dictDocumentId: dictDocument.id,\n                    data: approveData,\n                });\n            } else {\n                if (!approveData.validTill) {\n                    logWarning('failed to save details, empty approveData.validTill');\n                    return;\n                }\n                if (!partnerId) {\n                    logWarning('Empty partnerId in CommonDocumentParamsDetailsForm onSubmit');\n                    return;\n                }\n\n                dispatch(updateDocument(actualVersion.id, partnerId, approveData));\n            }\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormCallbacks) {\n            remoteFormActionsContext.setRemoteFormCallbacks({\n                submit: formik.submitForm,\n                reset: formik.resetForm,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [formik.submitForm, formik.resetForm]);\n\n    const hasFormAnyErrors = useWatchFormAnyErrors(formik.errors);\n    const hasAnyFieldValueChanges = useWatchAnyFieldValueChanges(formik.values, initialValues);\n\n    React.useEffect(() => {\n        return () => {\n            setNeedCloseConfirmation(false);\n        };\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    React.useEffect(() => {\n        if (hasAnyFieldValueChanges) {\n            setNeedCloseConfirmation(hasAnyFieldValueChanges);\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasAnyFieldValueChanges]);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormState) {\n            remoteFormActionsContext.setRemoteFormState({\n                hasChanges: hasAnyFieldValueChanges,\n                hasErrors: hasFormAnyErrors,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [hasFormAnyErrors, hasAnyFieldValueChanges]);\n\n    React.useEffect(() => {\n        if (remoteFormActionsContext.setRemoteFormRequest) {\n            remoteFormActionsContext.setRemoteFormRequest({\n                isLoading,\n            });\n        }\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [isLoading]);\n\n    return (\n        <>\n            <form onSubmit={formik.handleSubmit}>\n                {isShowExpirationDate && (\n                    <FormikField\n                        className={cx('field', 'field--date')}\n                        name={FieldsEnum.expiration}\n                        error={formik.errors[FieldsEnum.expiration]}\n                        meta={formik.getFieldMeta(FieldsEnum.expiration)}\n                        label={t('common:document.details-form.expiration.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                {...datePicketRangePresets.documentValidTill}\n                                hasYearMonthForm\n                                value={formik.values[FieldsEnum.expiration]}\n                                placeholder={t('common:document.details-form.expiration.placeholder')}\n                                onChange={props.onChange}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                )}\n                <HiddenSubmitButtonForKeyboardEnter />\n            </form>\n            <ApproveDocumentsConfirmation\n                name={dictDocument?.name}\n                data={confirmApproveDocumentModalDialog.data}\n                onCancel={confirmApproveDocumentModalDialog.onCancel}\n                onClose={confirmApproveDocumentModalDialog.onClose}\n                onConfirm={handleConfirmApproveDocument}\n                isLoading={isLoading}\n            />\n        </>\n    );\n});\n\nexport default CommonDocumentParamsDetailsForm;\n","// extracted by mini-css-extract-plugin\nexport default {\"tab\":\"TabLabel__tab___gaRLe\",\"tab--size-normal\":\"TabLabel__tab--size-normal___UZU9_\",\"tab--size-small\":\"TabLabel__tab--size-small___ybeQW\",\"tab--isCompact\":\"TabLabel__tab--isCompact___cBCBl\",\"tab--theme-dark\":\"TabLabel__tab--theme-dark___H_hxO\",\"tab--theme-light\":\"TabLabel__tab--theme-light___LSAOx\",\"tab--isActive\":\"TabLabel__tab--isActive___I6rJl\",\"inner\":\"TabLabel__inner___HOs0j\",\"inner__badge\":\"TabLabel__inner__badge___Staqu\",\"inner__content\":\"TabLabel__inner__content___MqT58\",\"fadeIn\":\"TabLabel__fadeIn___imX0M\",\"blinking\":\"TabLabel__blinking___Ow5gj\"};","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './ListMessage.scss';\n\nconst cx = classNames.bind(styles);\n\nexport type ListMessagePropsT = {\n    className?: string;\n    icon?: React.ReactNode;\n    title?: React.ReactNode;\n    description?: React.ReactNode;\n};\n\nconst ListMessage: React.FC<ListMessagePropsT> = React.memo((props) => {\n    const { className, title, description, icon } = props;\n\n    return (\n        <div className={cs(cx('inner'), className)}>\n            {icon && <div className={cx('icon')}>{icon}</div>}\n            {title && <div className={cx('title')}>{title}</div>}\n            {description && <div className={cx('description')}>{description}</div>}\n        </div>\n    );\n});\n\nexport default ListMessage;\n","import React from 'react';\nimport { SyncShipperContractLaneCreationFormMapStateContextValueT } from '../hooks/useSyncMapState';\n\nconst SyncShipperContractLaneCreationFormMapStateContext =\n    React.createContext<SyncShipperContractLaneCreationFormMapStateContextValueT>({\n        hasPickUpLocationError: false,\n        setHasPickUpLocationError: () => {\n            // nothing\n        },\n        hasDropOffLocationError: false,\n        setHasDropOffLocationError: () => {\n            // nothing\n        },\n    });\n\nexport { SyncShipperContractLaneCreationFormMapStateContext };\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { selectOrderCreationMs } from 'common/store/settings/selectors';\nimport { useSelector } from 'react-redux';\nimport { getMinutes } from 'common/utils/time';\n\ntype PropsT = {};\n\nconst ExpirationContextAlertContent: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n\n    // orderCreationMs is used, all ttl contexts are counted on the backend from it\n    const orderCreationMs = useSelector(selectOrderCreationMs);\n\n    let formattedMinutes;\n    if (orderCreationMs) {\n        const minutes = getMinutes(orderCreationMs);\n\n        formattedMinutes = minutes\n            ? `${minutes} ${t('common:minutes', {\n                  postProcess: 'interval',\n                  count: minutes,\n              })}`\n            : null;\n    }\n\n    return (\n        <span>\n            {t('assignment.expiration.context', {\n                formattedContextLifetime: formattedMinutes,\n            })}\n        </span>\n    );\n});\n\nexport default ExpirationContextAlertContent;\n","// extracted by mini-css-extract-plugin\nexport default {\"route\":\"BrokerOrderDetails__route___sYbn6\",\"excluded-countries\":\"BrokerOrderDetails__excluded-countries___XXJxo\",\"alerts\":\"BrokerOrderDetails__alerts___yvOeT\",\"table--creation-details\":\"BrokerOrderDetails__table--creation-details___wqIOJ\",\"table--move-details\":\"BrokerOrderDetails__table--move-details___YiT24\",\"table--carrier-cost\":\"BrokerOrderDetails__table--carrier-cost___ChfOZ\",\"tabs\":\"BrokerOrderDetails__tabs___K9_8a\",\"entry-card\":\"BrokerOrderDetails__entry-card___tfC4m\",\"papers-card\":\"BrokerOrderDetails__papers-card___mTUHL\",\"separator\":\"BrokerOrderDetails__separator___Jbg3_\",\"pill\":\"BrokerOrderDetails__pill___MhWKA\",\"tooltip__inner\":\"BrokerOrderDetails__tooltip__inner___mR4NM\",\"info-table-row--origin\":\"BrokerOrderDetails__info-table-row--origin___AX6aq\",\"info-table-row--destination\":\"BrokerOrderDetails__info-table-row--destination___kSnm9\",\"info-table-row--carrier\":\"BrokerOrderDetails__info-table-row--carrier___Vg1Zu\",\"info-table-row--price-offer\":\"BrokerOrderDetails__info-table-row--price-offer___N1Lqz\",\"info-table-row--self-cost\":\"BrokerOrderDetails__info-table-row--self-cost___QpyNR\",\"info-table-row--additinal-services\":\"BrokerOrderDetails__info-table-row--additinal-services___GvrlA\",\"info-table-row--shipper\":\"BrokerOrderDetails__info-table-row--shipper___xxgce\",\"team-driver\":\"BrokerOrderDetails__team-driver___2WwMz\",\"fadeIn\":\"BrokerOrderDetails__fadeIn___Ni3He\",\"blinking\":\"BrokerOrderDetails__blinking___nP3P0\"};","import * as React from 'react';\nimport FilterPills, { FilterPillsConfigT } from 'common/components/FilterPills/FilterPills';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from '../query-models';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { formatDateRangeFilterValue, pillIconRendererMap } from 'common/components/FilterPills/pill-renderers';\nimport CountriesFilterPill from 'common/components/filter-pills/CountriesFilterPill/CountriesFilterPill';\nimport PriceComponentFilterPill from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/filter-pills/PriceComponentFilterPill/PriceComponentFilterPill';\nimport PartnerFilterPill from 'common/components/filter-pills/PartnerFilterPill/PartnerFilterPill';\nimport { FilterPillThemeEnum } from 'common/components/FilterPills/FilterPill/FilterPill';\nimport PriceRuleTypeLabel from 'broker-admin/components/PriceRuleTypeLabel/PriceRuleTypeLabel';\nimport { PRICE_RULE_STATE_I18N_MAP } from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/RuleStateControl/RuleStateControl';\nimport { PriceSettingsRuleStateEnum } from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/constants';\nimport TrailerDictIdFilterPill from 'common/components/filter-pills/TrailerDictIdFilterPill/TrailerDictIdFilterPill';\nimport { PRICE_RULE_OPERATION_I18N_MAP } from 'broker-admin/components/filter-pills/PriceRuleOperationFilterPill/PriceRuleOperationFilterPill';\nimport { ApiPriceComponentTypeT, ApiPriceSettingsRuleOperationT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { PRICE_RULE_COMPONENT_TYPE_I18N_MAP } from 'broker-admin/components/dropdowns/PriceComponentTypeMultipleDropdown/PriceComponentTypeMultipleDropdown';\n\ntype PropsT = {\n    isCompact?: boolean;\n    className?: string;\n    queryFilters: QueryFiltersT;\n    setQueryFilters: (queryFilters: QueryFiltersT) => void;\n};\n\nconst SelectedFilters: React.FC<PropsT> = React.memo((props) => {\n    const { isCompact, queryFilters, setQueryFilters } = props;\n\n    const { t } = useTranslation();\n\n    const filterPillsConfig = React.useMemo(\n        (): FilterPillsConfigT<QueryFiltersT> => [\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) =>\n                    t('price-settings.rules.filters.labels.name', {\n                        value: queryFilters[QueryFiltersKeysEnum.rulesName],\n                    }),\n                clearKeys: [QueryFiltersKeysEnum.rulesName],\n            },\n            {\n                isMultiple: true,\n                render: (queryFilters, index) => {\n                    const ruleType = queryFilters[QueryFiltersKeysEnum.rulesTypes]?.[index];\n                    if (!ruleType) {\n                        return null;\n                    }\n\n                    return <PriceRuleTypeLabel ruleType={ruleType} />;\n                },\n                theme: FilterPillThemeEnum.blazeOrange,\n                clearKeys: [QueryFiltersKeysEnum.rulesTypes],\n            },\n            {\n                render: (queryFilters) => {\n                    const rulesState = queryFilters[QueryFiltersKeysEnum.rulesState];\n                    if (!rulesState) {\n                        return null;\n                    }\n\n                    const i18nKey = PRICE_RULE_STATE_I18N_MAP[rulesState as PriceSettingsRuleStateEnum];\n                    if (!i18nKey) {\n                        return <span>{rulesState}</span>;\n                    }\n\n                    return <Trans i18nKey={i18nKey} />;\n                },\n                theme: FilterPillThemeEnum.blazeOrange,\n                clearKeys: [QueryFiltersKeysEnum.rulesState],\n            },\n            {\n                isMultiple: true,\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: (queryFilters, index) => {\n                    const trailerTypeId = queryFilters[QueryFiltersKeysEnum.rulesTrailerTypeIds]?.[index];\n\n                    return (\n                        <Trans\n                            i18nKey=\"price-settings.rules.filters.labels.trailer-type\"\n                            components={{\n                                value: <TrailerDictIdFilterPill trailerDictId={trailerTypeId} />,\n                            }}\n                        />\n                    );\n                },\n                clearKeys: [QueryFiltersKeysEnum.rulesTrailerTypeIds],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: (queryFilters) => {\n                    const countryCodes = queryFilters[QueryFiltersKeysEnum.rulesFromCountryCodes];\n\n                    return (\n                        <Trans\n                            i18nKey=\"price-settings.rules.filters.labels.from-countries\"\n                            components={{\n                                value: <CountriesFilterPill countryCodes={countryCodes} />,\n                            }}\n                        />\n                    );\n                },\n                clearKeys: [QueryFiltersKeysEnum.rulesFromCountryCodes],\n            },\n            {\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: (queryFilters) => {\n                    const countryCodes = queryFilters[QueryFiltersKeysEnum.rulesToCountryCodes];\n\n                    return (\n                        <Trans\n                            i18nKey=\"price-settings.rules.filters.labels.to-countries\"\n                            components={{\n                                value: <CountriesFilterPill countryCodes={countryCodes} />,\n                            }}\n                        />\n                    );\n                },\n                clearKeys: [QueryFiltersKeysEnum.rulesToCountryCodes],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const validFromFrom = queryFilters[QueryFiltersKeysEnum.validFromFrom];\n                    const validFromTo = queryFilters[QueryFiltersKeysEnum.validFromTo];\n\n                    return t('price-settings.rules.filters.labels.valid-from', {\n                        value: formatDateRangeFilterValue(validFromFrom, validFromTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.validFromFrom, QueryFiltersKeysEnum.validFromTo],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const validTillFrom = queryFilters[QueryFiltersKeysEnum.validTillFrom];\n                    const validTillTo = queryFilters[QueryFiltersKeysEnum.validTillTo];\n\n                    return t('price-settings.rules.filters.labels.valid-till', {\n                        value: formatDateRangeFilterValue(validTillFrom, validTillTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.validTillFrom, QueryFiltersKeysEnum.validTillTo],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const createdDateFrom = queryFilters[QueryFiltersKeysEnum.createdDateFrom];\n                    const createdDateTo = queryFilters[QueryFiltersKeysEnum.createdDateTo];\n\n                    return t('price-settings.rules.filters.labels.created-dates', {\n                        value: formatDateRangeFilterValue(createdDateFrom, createdDateTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.createdDateFrom, QueryFiltersKeysEnum.createdDateTo],\n            },\n            {\n                isMultiple: true,\n                theme: FilterPillThemeEnum.charcoal,\n                renderIcon: (queryFilters, index, isCompact) => {\n                    return pillIconRendererMap.avatar(\n                        queryFilters[QueryFiltersKeysEnum.createdByUserName]?.[index],\n                        isCompact,\n                    );\n                },\n                render: (queryFilters, index) => {\n                    return t('price-settings.rules.filters.labels.created-by', {\n                        value: queryFilters[QueryFiltersKeysEnum.createdByUserName]?.[index],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.createdByUserId, QueryFiltersKeysEnum.createdByUserName],\n            },\n            {\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters) => {\n                    const lastModifyDateFrom = queryFilters[QueryFiltersKeysEnum.lastModifyDateFrom];\n                    const lastModifyDateTo = queryFilters[QueryFiltersKeysEnum.lastModifyDateTo];\n\n                    return t('price-settings.rules.filters.labels.last-modify-dates', {\n                        value: formatDateRangeFilterValue(lastModifyDateFrom, lastModifyDateTo),\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.lastModifyDateFrom, QueryFiltersKeysEnum.lastModifyDateTo],\n            },\n            {\n                isMultiple: true,\n                theme: FilterPillThemeEnum.charcoal,\n                renderIcon: (queryFilters, index, isCompact) => {\n                    return pillIconRendererMap.avatar(\n                        queryFilters[QueryFiltersKeysEnum.lastModifyByUserName]?.[index],\n                        isCompact,\n                    );\n                },\n                render: (queryFilters, index) => {\n                    return t('price-settings.rules.filters.labels.last-modify-by', {\n                        value: queryFilters[QueryFiltersKeysEnum.lastModifyByUserName]?.[index],\n                    });\n                },\n                clearKeys: [QueryFiltersKeysEnum.lastModifyByUserId, QueryFiltersKeysEnum.lastModifyByUserName],\n            },\n            {\n                theme: FilterPillThemeEnum.brandAccent,\n                render: (queryFilters) =>\n                    t('price-settings.rules.filters.labels.search', {\n                        value: queryFilters[QueryFiltersKeysEnum.rulesSearchText],\n                    }),\n                clearKeys: [QueryFiltersKeysEnum.rulesSearchText],\n            },\n            {\n                isMultiple: true,\n                render: (queryFilters, index) => {\n                    const priceOperation = queryFilters[QueryFiltersKeysEnum.rulesImpactPriceOperation]?.[index];\n                    if (!priceOperation) {\n                        return null;\n                    }\n\n                    return (\n                        <Trans\n                            i18nKey={PRICE_RULE_OPERATION_I18N_MAP[priceOperation as ApiPriceSettingsRuleOperationT]}\n                        />\n                    );\n                },\n                theme: FilterPillThemeEnum.blazeOrange,\n                clearKeys: [QueryFiltersKeysEnum.rulesImpactPriceOperation],\n            },\n            {\n                isMultiple: true,\n                render: (queryFilters, index) => {\n                    const priceComponent = queryFilters[QueryFiltersKeysEnum.rulesImpactPriceComponent]?.[index];\n                    if (!priceComponent) {\n                        return null;\n                    }\n\n                    return (\n                        <Trans i18nKey={PRICE_RULE_COMPONENT_TYPE_I18N_MAP[priceComponent as ApiPriceComponentTypeT]} />\n                    );\n                },\n                theme: FilterPillThemeEnum.blazeOrange,\n                clearKeys: [QueryFiltersKeysEnum.rulesImpactPriceComponent],\n            },\n            {\n                isMultiple: true,\n                theme: FilterPillThemeEnum.blazeOrange,\n                render: (queryFilters, index) => {\n                    const priceComponent = queryFilters[QueryFiltersKeysEnum.rulesImpactPriceComponent]?.[index];\n                    if (!priceComponent) {\n                        return null;\n                    }\n\n                    return (\n                        <Trans\n                            i18nKey=\"price-settings.rules.filters.labels.impact-price-components\"\n                            components={{\n                                value: <PriceComponentFilterPill priceComponent={priceComponent} />,\n                            }}\n                        />\n                    );\n                },\n                clearKeys: [QueryFiltersKeysEnum.rulesImpactPriceComponent],\n            },\n            {\n                isMultiple: true,\n                theme: FilterPillThemeEnum.charcoal,\n                render: (queryFilters, index) => {\n                    const rulesPartnerId = queryFilters[QueryFiltersKeysEnum.rulesPartnerIds]?.[index];\n\n                    return (\n                        <Trans\n                            i18nKey=\"price-settings.rules.filters.labels.shipper\"\n                            components={{\n                                value: <PartnerFilterPill partnerId={rulesPartnerId} />,\n                            }}\n                        />\n                    );\n                },\n                clearKeys: [QueryFiltersKeysEnum.rulesPartnerIds],\n            },\n        ],\n        [t],\n    );\n\n    return (\n        <FilterPills<QueryFiltersT>\n            isCompact={isCompact}\n            queryFilters={queryFilters}\n            setQueryFilters={setQueryFilters}\n            config={filterPillsConfig}\n        />\n    );\n});\n\nexport default SelectedFilters;\n","import * as React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport PillLabel, { colorCodingPillLabelTheme } from 'common/components/PillLabel/PillLabel';\n\ntype PropsT = {\n    className?: string;\n};\n\nconst RestrictedExternalBusinessPartnerPill: React.FC<PropsT> = React.memo((props) => {\n    const { t } = useTranslation();\n\n    return (\n        <PillLabel\n            className={props.className}\n            theme={colorCodingPillLabelTheme.attention}\n            testSelector=\"restricted-external-business-partner\"\n            isSymmetrical\n            isNoWrap\n        >\n            {t('common-components.external-business-partner-suggest.restricted')}\n        </PillLabel>\n    );\n});\n\nexport default RestrictedExternalBusinessPartnerPill;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './CancelSpotRequestFooter.scss';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\nimport TimeLeftForStart from 'common/layouts/sidebar-footers/TimeLeftForStart/TimeLeftForStart';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { cancelSpotRequestByTour } from 'broker-admin/store/spot/actions';\nimport { selectSpotUpdateRequestStatus } from 'broker-admin/store/spot/selectors';\nimport { logWarning } from 'common/utils/logger';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport CancelSpotRequestConfirmation, {\n    CancelSpotRequestConfirmationDataT,\n} from 'broker-admin/components/status-machine/dialogs/CancelSpotRequestConfirmation/CancelSpotRequestConfirmation';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport { ApiBrokerCommonTourDetailsT } from 'common/utils/api/models';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    tour: ApiBrokerCommonTourDetailsT | null;\n    isDisableAnyActions: boolean;\n};\n\nconst CancelSpotRequestFooter: React.FC<PropsT> = React.memo((props) => {\n    const { tour, isDisableAnyActions } = props;\n\n    const requestStatus = useSelector(selectSpotUpdateRequestStatus);\n    const dispatch = useDispatch();\n\n    const cancelSpotRequestConfirmation = useModalDialog<CancelSpotRequestConfirmationDataT>();\n    const handleCancelSpotRequest = (tourId: TourIdT) => {\n        cancelSpotRequestConfirmation.setData({\n            tourId,\n        });\n    };\n\n    const handleConfirmCancelSpotRequest = ({ tourId }: CancelSpotRequestConfirmationDataT) => {\n        dispatch(cancelSpotRequestByTour(tourId));\n    };\n\n    useCloseModalDialogAfterRequest(requestStatus, [cancelSpotRequestConfirmation]);\n\n    const { t } = useTranslation();\n\n    const handleCancelSpot = () => {\n        if (!tour?.id) {\n            logWarning('failed cancel spot request, empty tour?.id');\n            return;\n        }\n\n        handleCancelSpotRequest(tour.id);\n    };\n\n    const firstWaypoint = tour?.waypoints?.[0] || null;\n    const deadline = firstWaypoint?.correctedDateTimeFrom || firstWaypoint?.originalDateTimeFrom || null;\n\n    if (!tour) {\n        return null;\n    }\n\n    return (\n        <>\n            <TimeLeftForStart\n                deadline={deadline}\n                alreadyStartedLabel={t('assignment.tour-already-started')}\n                deadlineLabel={t('assignment.to-assign')}\n                renderActions={(isDisabled) => (\n                    <Button\n                        theme={ButtonThemeEnum.secondary}\n                        className={cx('action')}\n                        onClick={handleCancelSpot}\n                        isDisabled={isDisabled || isDisableAnyActions}\n                        isLoading={requestStatus.loading}\n                    >\n                        {t('broker-order-details.cancel-spot.actions.cancel')}\n                    </Button>\n                )}\n            />\n            <CancelSpotRequestConfirmation\n                data={cancelSpotRequestConfirmation.data}\n                onConfirmation={handleConfirmCancelSpotRequest}\n                onCancel={cancelSpotRequestConfirmation.onCancel}\n                onClose={cancelSpotRequestConfirmation.onClose}\n            />\n        </>\n    );\n});\n\nexport default CancelSpotRequestFooter;\n","import { InvoicesStateT } from './types';\nimport { StateT } from '../models';\n\nexport const selectInvoicesPages = (state: StateT): InvoicesStateT['pages'] => state.invoices.pages;\n\nexport const selectInvoicesQuery = (state: StateT): InvoicesStateT['query'] => state.invoices.query;\n\nexport const selectInvoicesTotal = (state: StateT): InvoicesStateT['total'] => state.invoices.total;\n\nexport const selectInvoicesByIds = (state: StateT): InvoicesStateT['byId'] => state.invoices.byId;\n\nexport const selectInvoicesPagingState = (state: StateT): InvoicesStateT['pagingState'] => state.invoices.pagingState;\n","// extracted by mini-css-extract-plugin\nexport default {\"action\":\"RemoteFormActions__action___Jml4Z\",\"fadeIn\":\"RemoteFormActions__fadeIn___xaYv6\",\"blinking\":\"RemoteFormActions__blinking___Sx_uc\"};","import { ApiDictCarrierAdditionalServiceT, ApiDictCarrierAdditionalServiceTypeT } from 'common/utils/api/models';\n\nexport const sumAdditionalServicesPrice = (\n    selectedServiceEnums: ApiDictCarrierAdditionalServiceTypeT[],\n    additionalServiceMap: Record<ApiDictCarrierAdditionalServiceT['service'], ApiDictCarrierAdditionalServiceT> | null,\n): number => {\n    if (!additionalServiceMap) {\n        return 0;\n    }\n\n    return selectedServiceEnums.reduce((summary, serviceEnum) => {\n        const service = additionalServiceMap?.[serviceEnum] || null;\n        if (!service) {\n            return summary;\n        }\n\n        return summary + (service?.itemCost || 0);\n    }, 0);\n};\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    fetchStateMachineSteps,\n    fetchStateMachineStepsBegin,\n    fetchStateMachineStepsError,\n    fetchStateMachineStepsSuccess,\n    toursWaypointsArrived,\n    toursWaypointsLeft,\n    toursWaypointsUndoArrived,\n    toursWaypointsUndoLeft,\n    updateEntityStatusBegin,\n    updateEntityStatusError,\n    updateEntityStatusSuccess,\n} from './slice';\nimport {\n    FetchStateMachineStepsActionT,\n    ToursWaypointsArrivedActionT,\n    ToursWaypointsLeftActionT,\n    ToursWaypointsUndoArrivedActionT,\n    ToursWaypointsUndoLeftActionT,\n} from './types';\nimport { CompanyTypeEnum } from 'common/constants';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { getStateMachineEntityHash } from './utils';\nimport { selectConsistentStateMachineItemState } from './selectors';\nimport commonTranziitApi from 'common/utils/api/tranziit/common-tranziit-api';\nimport { consistentStateMachineRefreshChannel } from './channels';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getFetchStateMachineStepsSaga(companyType: CompanyTypeEnum) {\n    return function* (action: FetchStateMachineStepsActionT): WrapGeneratorT<void> {\n        const { descriptor, options } = action.payload;\n\n        const { fetchRequest }: ReReturnT<typeof selectConsistentStateMachineItemState> = yield select(\n            selectConsistentStateMachineItemState(descriptor),\n        );\n        if (!checkNeedRequest(fetchRequest, options)) {\n            return;\n        }\n\n        const hash = getStateMachineEntityHash(descriptor);\n\n        yield put(fetchStateMachineStepsBegin({ hash }));\n\n        const [error, data]: ReturnApiT<typeof commonTranziitApi.fetchStateMachineToursAvailableSteps> =\n            yield commonTranziitApi.fetchStateMachineToursAvailableSteps(descriptor.tourId);\n\n        if (error) {\n            yield put(fetchStateMachineStepsError({ hash, error }));\n        } else {\n            yield put(fetchStateMachineStepsSuccess({ hash, data }));\n        }\n    };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getToursWaypointsLeftSaga(companyType: CompanyTypeEnum) {\n    return function* (action: ToursWaypointsLeftActionT): WrapGeneratorT<void> {\n        const { descriptor, tourId, waypointId } = action.payload;\n\n        const { updateRequest }: ReReturnT<typeof selectConsistentStateMachineItemState> = yield select(\n            selectConsistentStateMachineItemState(descriptor),\n        );\n        if (updateRequest.loading) {\n            return;\n        }\n\n        const hash = getStateMachineEntityHash(descriptor);\n\n        yield put(updateEntityStatusBegin({ hash }));\n\n        const result: ReturnApiT<typeof commonTranziitApi.stateMachineToursWaypointsLeft> =\n            yield commonTranziitApi.stateMachineToursWaypointsLeft(tourId, waypointId);\n\n        const [error] = result;\n\n        if (error) {\n            yield put(updateEntityStatusError({ hash, error }));\n        } else {\n            yield put(updateEntityStatusSuccess({ hash }));\n        }\n\n        consistentStateMachineRefreshChannel.emit({});\n    };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getToursWaypointsArrivedSaga(companyType: CompanyTypeEnum) {\n    return function* (action: ToursWaypointsArrivedActionT): WrapGeneratorT<void> {\n        const { descriptor, tourId, waypointId } = action.payload;\n\n        const { updateRequest }: ReReturnT<typeof selectConsistentStateMachineItemState> = yield select(\n            selectConsistentStateMachineItemState(descriptor),\n        );\n        if (updateRequest.loading) {\n            return;\n        }\n\n        const hash = getStateMachineEntityHash(descriptor);\n\n        yield put(updateEntityStatusBegin({ hash }));\n\n        const result: ReturnApiT<typeof commonTranziitApi.stateMachineToursWaypointsArrived> =\n            yield commonTranziitApi.stateMachineToursWaypointsArrived(tourId, waypointId);\n\n        const [error] = result;\n\n        if (error) {\n            yield put(updateEntityStatusError({ hash, error }));\n        } else {\n            yield put(updateEntityStatusSuccess({ hash }));\n        }\n\n        consistentStateMachineRefreshChannel.emit({});\n    };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getToursWaypointsUndoLeftSaga(companyType: CompanyTypeEnum) {\n    return function* (action: ToursWaypointsUndoLeftActionT): WrapGeneratorT<void> {\n        const { descriptor, tourId, waypointId } = action.payload;\n\n        const { updateRequest }: ReReturnT<typeof selectConsistentStateMachineItemState> = yield select(\n            selectConsistentStateMachineItemState(descriptor),\n        );\n        if (updateRequest.loading) {\n            return;\n        }\n\n        const hash = getStateMachineEntityHash(descriptor);\n\n        yield put(updateEntityStatusBegin({ hash }));\n\n        const result: ReturnApiT<typeof commonTranziitApi.stateMachineToursWaypointsUndoLeft> =\n            yield commonTranziitApi.stateMachineToursWaypointsUndoLeft(tourId, waypointId);\n\n        const [error] = result;\n\n        if (error) {\n            yield put(updateEntityStatusError({ hash, error }));\n        } else {\n            yield put(updateEntityStatusSuccess({ hash }));\n        }\n\n        consistentStateMachineRefreshChannel.emit({});\n    };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction getToursWaypointsUndoArrivedSaga(companyType: CompanyTypeEnum) {\n    return function* (action: ToursWaypointsUndoArrivedActionT): WrapGeneratorT<void> {\n        const { descriptor, tourId, waypointId } = action.payload;\n\n        const { updateRequest }: ReReturnT<typeof selectConsistentStateMachineItemState> = yield select(\n            selectConsistentStateMachineItemState(descriptor),\n        );\n        if (updateRequest.loading) {\n            return;\n        }\n\n        const hash = getStateMachineEntityHash(descriptor);\n\n        yield put(updateEntityStatusBegin({ hash }));\n\n        const result: ReturnApiT<typeof commonTranziitApi.stateMachineToursWaypointsUndoArrived> =\n            yield commonTranziitApi.stateMachineToursWaypointsUndoArrived(tourId, waypointId);\n\n        const [error] = result;\n\n        if (error) {\n            yield put(updateEntityStatusError({ hash, error }));\n        } else {\n            yield put(updateEntityStatusSuccess({ hash }));\n        }\n\n        consistentStateMachineRefreshChannel.emit({});\n    };\n}\n\nfunction* consistentStateMachineSaga(companyType: CompanyTypeEnum): WrapGeneratorT<void> {\n    yield takeEvery(fetchStateMachineSteps.type, getFetchStateMachineStepsSaga(companyType));\n    yield takeEvery(toursWaypointsLeft.type, getToursWaypointsLeftSaga(companyType));\n    yield takeEvery(toursWaypointsArrived.type, getToursWaypointsArrivedSaga(companyType));\n    yield takeEvery(toursWaypointsUndoLeft.type, getToursWaypointsUndoLeftSaga(companyType));\n    yield takeEvery(toursWaypointsUndoArrived.type, getToursWaypointsUndoArrivedSaga(companyType));\n}\n\nexport { consistentStateMachineSaga };\n","import { PriceOfferT } from '../models';\n\nexport const byPriceAsc = (priceA: PriceOfferT, priceB: PriceOfferT): number => {\n    return (priceA.price || 0) - (priceB.price || 0);\n};\n\nconst sortOffers = (priceOffers: Array<PriceOfferT>): Array<PriceOfferT> => {\n    return priceOffers.sort(byPriceAsc);\n};\n\nexport default sortOffers;\n","import * as React from 'react';\nimport { formatDate } from 'common/utils/time';\n\ntype PropsT = {\n    startDate: Date | number | string | null | undefined;\n    endDate: Date | number | string | null | undefined;\n    format?: string;\n};\n\nconst DateIntervalFormatter: React.FC<PropsT> = React.memo((props) => {\n    const { startDate, endDate, format } = props;\n\n    if (!startDate && !endDate) {\n        return null;\n    }\n\n    const interval = [startDate, endDate].map((date) => formatDate(format || 'DD MMM YYYY', date)).join(' - ');\n\n    return <span>{interval}</span>;\n});\n\nexport default DateIntervalFormatter;\n","import * as React from 'react';\nimport isNil from 'lodash/isNil';\nimport { useTranslation } from 'react-i18next';\nimport { CurrencyEnum, CurrencySettingsT, UnitTypeEnum } from 'common/constants';\nimport { formatMoney } from 'common/components/Money/Money';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\nimport styles from './UnitTypeCount.scss';\n\nconst cx = classNames.bind(styles);\n\ntype BasePropsT = {\n    count: number | null | undefined;\n    className?: string;\n};\n\ntype PropsT =\n    | (BasePropsT & {\n          type: UnitTypeEnum | null | undefined;\n      })\n    | (BasePropsT & {\n          types: Array<UnitTypeEnum>;\n      });\n\ntype CurrencyUnitTypesT = UnitTypeEnum.euroAbbreviation | UnitTypeEnum.euro4SignificantDigitsAbbreviation;\nconst CURRENCY_TYPE_MAP: Record<CurrencyUnitTypesT, CurrencyEnum> = {\n    [UnitTypeEnum.euroAbbreviation]: CurrencyEnum.EUR,\n    [UnitTypeEnum.euro4SignificantDigitsAbbreviation]: CurrencyEnum.EUR,\n};\n\nconst CUSTOM_CURRENCY_SETTINGS_MAP: Record<CurrencyUnitTypesT, Partial<CurrencySettingsT>> = {\n    [UnitTypeEnum.euroAbbreviation]: {},\n    [UnitTypeEnum.euro4SignificantDigitsAbbreviation]: {\n        minimumSignificantDigits: 4,\n    },\n};\n\nconst checkIsCurrencyUnitType = (type: UnitTypeEnum): type is CurrencyUnitTypesT => {\n    return !!CURRENCY_TYPE_MAP[type as CurrencyUnitTypesT];\n};\n\nconst checkIsSimpleUnitType = (type: UnitTypeEnum): type is SimpleUnitTypesT => {\n    return !!SIMPLE_UNIT_MAP[type as SimpleUnitTypesT];\n};\n\ntype SimpleUnitTypesT = UnitTypeEnum.percentsAbbreviation;\nconst SIMPLE_UNIT_MAP: Record<SimpleUnitTypesT, string> = {\n    [UnitTypeEnum.percentsAbbreviation]: '%',\n};\n\ntype OtherUnitTypesT = Exclude<UnitTypeEnum, CurrencyUnitTypesT | SimpleUnitTypesT>;\nconst UNIT_TYPE_T_MAP: Record<OtherUnitTypesT, string> = {\n    [UnitTypeEnum.eur1Pallets]: 'common:unit-count.eur-1-pallets',\n    [UnitTypeEnum.eur2Pallets]: 'common:unit-count.eur-2-pallets',\n    [UnitTypeEnum.eur6Pallets]: 'common:unit-count.eur-6-pallets',\n    [UnitTypeEnum.other]: 'common:unit-count.other',\n    [UnitTypeEnum.kilogramsAbbreviation]: 'common:unit-count.kilograms-abbreviation',\n    [UnitTypeEnum.metersAbbreviation]: 'common:unit-count.meters-abbreviation',\n    [UnitTypeEnum.kilometersAbbreviation]: 'common:unit-count.kilometers-abbreviation',\n    [UnitTypeEnum.litersAbbreviation]: 'common:unit-count.liters-abbreviation',\n    [UnitTypeEnum.oneHundredKilometersAbbreviation]: 'common:unit-count.100-kilometers-abbreviation',\n    [UnitTypeEnum.days]: 'common:unit-count.days',\n    [UnitTypeEnum.hoursAbbreviation]: 'common:unit-count.hours-abbreviation',\n    [UnitTypeEnum.minutesAbbreviation]: 'common:unit-count.minutes-abbreviation',\n    [UnitTypeEnum.milliSecondsAbbreviation]: 'common:unit-count.milli-seconds-abbreviation',\n    [UnitTypeEnum.secondsAbbreviation]: 'common:unit-count.seconds-abbreviation',\n    [UnitTypeEnum.shipments]: 'common:unit-count.shipments',\n    [UnitTypeEnum.kilometersPerHourAbbreviation]: 'common:unit-count.kilometers-per-hour-abbreviation',\n    [UnitTypeEnum.hours]: 'common:unit-count.hours',\n};\n\nconst UnitTypeCount: React.FC<PropsT> = React.memo((props) => {\n    const { count, className } = props;\n\n    const { t } = useTranslation();\n\n    if (isNil(count)) {\n        return null;\n    }\n\n    const fullClassName = cs(cx('count'), className);\n\n    if ('types' in props) {\n        const { types: subTypes } = props;\n\n        const result = subTypes.reduce((result, subType) => {\n            const base = result + (result.length ? '/' : '');\n            if (checkIsCurrencyUnitType(subType)) {\n                return (\n                    base +\n                    formatMoney({\n                        currency: CURRENCY_TYPE_MAP[subType],\n                        amount: count,\n                        isRound: false,\n                        partialCurrencySettings: CUSTOM_CURRENCY_SETTINGS_MAP[subType],\n                    })\n                );\n            }\n\n            if (checkIsSimpleUnitType(subType)) {\n                return base + SIMPLE_UNIT_MAP[subType];\n            }\n\n            return base + t(UNIT_TYPE_T_MAP[subType], { postProcess: 'interval', count });\n        }, '');\n\n        return <span className={fullClassName}>{result}</span>;\n    }\n\n    const { type } = props;\n    if (isNil(type)) {\n        return null;\n    }\n\n    if (checkIsCurrencyUnitType(type)) {\n        const formattedType = formatMoney({\n            currency: CURRENCY_TYPE_MAP[type],\n            amount: count,\n            isRound: false,\n        });\n\n        return <span className={fullClassName}>{formattedType}</span>;\n    }\n\n    if (checkIsSimpleUnitType(type)) {\n        return (\n            <span className={fullClassName}>\n                {count}\n                {SIMPLE_UNIT_MAP[type]}\n            </span>\n        );\n    }\n\n    return (\n        <span className={fullClassName}>\n            {count} {t(UNIT_TYPE_T_MAP[type], { postProcess: 'interval', count })}\n        </span>\n    );\n});\n\nexport default UnitTypeCount;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"BrokerOrderAssignmentPage__wrap___RMj_k\",\"tabs-wrap\":\"BrokerOrderAssignmentPage__tabs-wrap___fqOFh\",\"tab\":\"BrokerOrderAssignmentPage__tab___V1ZvR\",\"fadeIn\":\"BrokerOrderAssignmentPage__fadeIn___lixNW\",\"blinking\":\"BrokerOrderAssignmentPage__blinking___G45OK\"};","import groupBy from 'lodash/groupBy';\nimport mapValues from 'lodash/mapValues';\nimport { PriceOfferT } from 'common/store/order-creation/models';\nimport getDatesHash from './get-dates-hash';\nimport sortOffers from 'common/store/order-creation/utils/sort-offers';\n\nconst groupOffersByDatesHash = (priceOffers: Array<PriceOfferT>): Record<string, Array<PriceOfferIdT>> => {\n    const groupOffers = groupBy(priceOffers, (offer) => getDatesHash(offer.pickUpDate, offer.dropOffDate));\n\n    const sortedGroupOffers = mapValues(groupOffers, (offers) => {\n        return sortOffers(offers).map((offer) => offer.id);\n    });\n\n    return sortedGroupOffers;\n};\n\nexport default groupOffersByDatesHash;\n","// extracted by mini-css-extract-plugin\nexport default {\"content\":\"ListPageLayout__content___JvBSp\",\"fadeIn\":\"ListPageLayout__fadeIn___IM_Ey\",\"blinking\":\"ListPageLayout__blinking___vmhFq\"};","import { FieldsEnum, FormValuesT } from './constants';\nimport { SystemSettingsT } from 'broker-admin/store/price-settings/system-settings/models';\n\nconst getInitialValues = (systemSettings: SystemSettingsT | null | undefined): FormValuesT => {\n    return {\n        [FieldsEnum.timeSlotToBoardFerry]: systemSettings?.TIME_SLOT_TO_BOARD_FERRY || '',\n        [FieldsEnum.timeSlotDisembarkFerry]: systemSettings?.TIME_SLOT_DISEMBARK_FERRY || '',\n    };\n};\n\nexport default getInitialValues;\n","import {\n    useCheckOpenedSidebar,\n    createOpenSidebarHook,\n    useOpenedSidebar,\n    createCloseSidebarHook,\n    createToggleSidebarHook,\n} from 'common/layouts/SideBars/hooks';\nimport { BrokerSidebarDataT } from './models';\nimport { SidebarQueryKeysEnum } from 'common/layouts/SideBars/models';\n\nexport const useOpenLeftSidebar = createOpenSidebarHook<BrokerSidebarDataT>(SidebarQueryKeysEnum.leftSidebar);\n\nexport const useOpenRightSidebar = createOpenSidebarHook<BrokerSidebarDataT>(SidebarQueryKeysEnum.rightSidebar);\n\nexport const useCloseLeftSidebar = createCloseSidebarHook<BrokerSidebarDataT>(SidebarQueryKeysEnum.leftSidebar);\n\nexport const useCloseRightSidebar = createCloseSidebarHook<BrokerSidebarDataT>(SidebarQueryKeysEnum.rightSidebar);\n\nexport const useToggleLeftSidebar = createToggleSidebarHook<BrokerSidebarDataT>(SidebarQueryKeysEnum.leftSidebar);\n\nexport const useToggleRightSidebar = createToggleSidebarHook<BrokerSidebarDataT>(SidebarQueryKeysEnum.rightSidebar);\n\nexport { useOpenedSidebar, useCheckOpenedSidebar };\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { SystemSettingsChangesT } from 'broker-admin/store/price-settings/system-settings/models';\nimport { MS_IN_HOUR } from 'common/utils/time';\nimport { simpleNumberFormatter } from 'common/utils/form-formatters';\nimport { convertMinToSec } from 'common/utils/form-value-converters';\n\nconst prepareApiSystemSettings = (formValues: FormValuesT): SystemSettingsChangesT => {\n    const brokerWorkingHours = formValues[FieldsEnum.brokerWorkingHours];\n\n    return {\n        URGENT_ORDER_PROCESSING_DELAY: formValues[FieldsEnum.urgentOrderProcessingDelay],\n        REGULAR_ORDER_PROCESSING_DELAY: formValues[FieldsEnum.regularOrderProcessingDelay],\n        MIN_WINDOW_SIZE: convertMinToSec(formValues[FieldsEnum.minWindowSize]),\n        MAX_WINDOW_SIZE: convertMinToSec(formValues[FieldsEnum.maxWindowSize]),\n        BROKER_DAY_START_HOURS: simpleNumberFormatter(brokerWorkingHours[0] / MS_IN_HOUR),\n        BROKER_DAY_END_HOURS: simpleNumberFormatter(brokerWorkingHours[1] / MS_IN_HOUR),\n        ORDER_CREATION_SECONDS: formValues[FieldsEnum.orderCreationSeconds],\n        QUANTUM_MINUTES: formValues[FieldsEnum.quantumMinutes],\n        MAP_PRECISION_DELTA: formValues[FieldsEnum.mapPrecisionDelta],\n        HVO_EMISSION_PERCENT: formValues[FieldsEnum.hvoEmissionPercent],\n    };\n};\n\nexport default prepareApiSystemSettings;\n","// extracted by mini-css-extract-plugin\nexport default {\"asset-tooltip\":\"AssetDropOffLocationPin__asset-tooltip___fWySE\",\"fadeIn\":\"AssetDropOffLocationPin__fadeIn___OPEQ3\",\"blinking\":\"AssetDropOffLocationPin__blinking___DdIXz\"};","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './PartnerExternalPlatformDetailsForm.scss';\nimport { useFormik } from 'formik';\nimport { useTranslation } from 'react-i18next';\nimport { useDispatch, useSelector } from 'react-redux';\nimport isEqual from 'lodash/isEqual';\nimport { PartnerDetailsT } from 'broker-admin/store/partner/details/models';\nimport { AddressTypeEnum, PartnerTypeEnum } from 'common/utils/api/models';\nimport {\n    selectLinkPartnerRequestStatus,\n    selectUpdatePartnerDetailsRequest,\n} from 'broker-admin/store/partner/details/selectors';\nimport { unlinkWithExternalPlatformPartner, updatePartnerDetails } from 'broker-admin/store/partner/details/actions';\nimport Widget from 'common/components/Widget/Widget';\nimport ContentMargins from 'common/layouts/LeftMenuLayout/ContentMargins/ContentMargins';\nimport FieldGroup, { FieldGroupEmptyItem } from 'common/components/FieldGroup/FieldGroup';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport BrokerTeamsSuggest from 'common/components/dropdowns/BrokerTeamsSuggest/BrokerTeamsSuggest';\nimport PartnerMainContactSuggest from 'common/components/suggests/PartnerMainContactSuggest/PartnerMainContactSuggest';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport BasicWidgetHeaderActions from '../BasicWidgetHeaderActions/BasicWidgetHeaderActions';\nimport PartnerAddressWidget from '../PartnerAddressWidget/PartnerAddressWidget';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport { checkIsAllowedLock, getBlockLockingReason } from 'broker-admin/store/partner/details/utils/lock';\nimport { LockPartnerConfirmationDataT } from '../dialogs/LockPartnerConfirmation/models';\nimport { UnlockPartnerConfirmationDataT } from '../dialogs/UnlockPartnerConfirmation/models';\nimport { checkNeedShowCreditLimit } from 'broker-admin/store/partner/details/utils/check-need-show-credit-limit';\nimport ExternalBusinessPartnerSuggest, {\n    ExternalBusinessPartnerOptionT,\n} from 'broker-admin/components/suggests/ExternalBusinessPartnerSuggest/ExternalBusinessPartnerSuggest';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { ApiAllowedCompanyTypeT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport UnlinkProfileConfirmation from '../dialogs/UnlinkProfileConfirmation/UnlinkProfileConfirmation';\nimport { UnlinkProfileConfirmationDataT } from '../dialogs/UnlinkProfileConfirmation/models';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport ExternallyManagedPill from 'common/components/pills/ExternallyManagedPill/ExternallyManagedPill';\nimport ExternalRestrictionsPill from '../ExternalRestrictionsPill/ExternalRestrictionsPill';\nimport { checkHasExternalRestrictions } from '../utils/check-has-external-restrictions';\nimport PartnerDetailsHeaderPills from '../PartnerDetailsHeaderPills/PartnerDetailsHeaderPills';\nimport RFQStats from '../RFQStats/RFQStats';\nimport CreditLimit from '../CreditLimit/CreditLimit';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport getInitialValues from './get-initial-values';\nimport validateForm from './validate-form';\nimport { checkNeedShowBillingInfo } from 'broker-admin/store/partner/details/utils/check-need-show-billing-info';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    partnerDetails: PartnerDetailsT | null;\n    onLockPartner: (data: LockPartnerConfirmationDataT | null) => void;\n    onUnlockPartner: (data: UnlockPartnerConfirmationDataT | null) => void;\n};\n\nconst PartnerExternalPlatformDetailsForm: React.FC<PropsT> = React.memo((props) => {\n    const { partnerDetails, onLockPartner, onUnlockPartner } = props;\n\n    const { partnerType } = usePartnerContext();\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n    const { setRemoteFormCallbacks, setRemoteFormRequest, setRemoteFormState } = remoteFormActionsContext;\n    const updateRequest = useSelector(selectUpdatePartnerDetailsRequest);\n    const linkRequestStatus = useSelector(selectLinkPartnerRequestStatus);\n    const unlinkProfileConfirmation = useModalDialog<UnlinkProfileConfirmationDataT>();\n\n    const initialValues = React.useMemo(() => getInitialValues(partnerDetails), [partnerDetails]);\n    const initialExternalBusinessPartnerOption = React.useMemo<ExternalBusinessPartnerOptionT | null>(() => {\n        if (!partnerDetails?.externalBusinessPartnerId) {\n            return null;\n        }\n\n        return {\n            id: partnerDetails.externalBusinessPartnerId,\n            name: partnerDetails.name,\n        };\n    }, [partnerDetails?.externalBusinessPartnerId, partnerDetails?.name]);\n    const isInitialized = Boolean(partnerDetails);\n    const shouldShowTeams = partnerType === PartnerTypeEnum.shipper || partnerType === PartnerTypeEnum.carrier;\n    const shouldShowBillingInfo = checkNeedShowBillingInfo(partnerType);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        initialValues,\n        validate: validateForm,\n        onSubmit: (values, formikHelpers) => {\n            if (!partnerDetails?.id || !partnerType) {\n                return;\n            }\n\n            dispatch(\n                updatePartnerDetails({\n                    companyId: partnerDetails.id,\n                    partnerType,\n                    externalBusinessPartnerId: values[FieldsEnum.externalBusinessPartnerId],\n                    mainContactChanges: {\n                        mainContactId: values[FieldsEnum.mainContactId],\n                        mainContactFullName: values[FieldsEnum.mainContactFullName],\n                    },\n                    teams: values[FieldsEnum.teamIds],\n                }),\n            );\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const handleSelectExternalBusinessPartner = React.useCallback(\n        (value: PartnerIdT | null | undefined) => {\n            formik.setFieldValue(FieldsEnum.externalBusinessPartnerId, value || null);\n        },\n        [formik],\n    );\n\n    const handleUnlinkProfile = React.useCallback(\n        (data: UnlinkProfileConfirmationDataT) => {\n            dispatch(unlinkWithExternalPlatformPartner(data.partnerId));\n        },\n        [dispatch],\n    );\n\n    useCloseModalDialogAfterRequest(linkRequestStatus, [unlinkProfileConfirmation]);\n\n    React.useEffect(() => {\n        setRemoteFormCallbacks?.({\n            submit: formik.submitForm,\n            reset: formik.resetForm,\n            touchAllFields: () => undefined,\n        });\n    }, [formik.resetForm, formik.submitForm, setRemoteFormCallbacks]);\n\n    React.useEffect(() => {\n        setRemoteFormState?.({\n            hasChanges: !isEqual(formik.values, initialValues),\n            hasErrors: false,\n        });\n    }, [formik.values, initialValues, setRemoteFormState]);\n\n    React.useEffect(() => {\n        setRemoteFormRequest?.({ isLoading: updateRequest.loading });\n    }, [setRemoteFormRequest, updateRequest.loading]);\n\n    const getTeamsWarning = () => {\n        if (!formik.values[FieldsEnum.teamIds].length) {\n            return ' ';\n        }\n\n        if (partnerDetails?.noAssignedDispatchers && isEqual(initialValues.teamIds, formik.values.teamIds)) {\n            return t('partner.details-tab.warnings.no-dispatcher');\n        }\n\n        return null;\n    };\n\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <UnlinkProfileConfirmation\n                data={unlinkProfileConfirmation.data}\n                requestStatus={linkRequestStatus}\n                onClose={unlinkProfileConfirmation.onClose}\n                onCancel={unlinkProfileConfirmation.onCancel}\n                onConfirm={handleUnlinkProfile}\n            />\n            <ContentMargins className={cx('wrap')}>\n                <Widget\n                    className={cx('widget')}\n                    title={t('partner.details-tab.segments.basic')}\n                    afterTitleNode={\n                        <PartnerDetailsHeaderPills>\n                            {partnerDetails?.lastSyncedAt ? (\n                                <ExternallyManagedPill lastSyncedAt={partnerDetails.lastSyncedAt} />\n                            ) : null}\n                            {checkHasExternalRestrictions(partnerDetails?.operationUnavailableReasons) ? (\n                                <ExternalRestrictionsPill />\n                            ) : null}\n                        </PartnerDetailsHeaderPills>\n                    }\n                    rightNode={\n                        <>\n                            <BasicWidgetHeaderActions\n                                isShowUnlock={checkIsAllowedLock(partnerType)}\n                                blockUnlockingReason={getBlockLockingReason(partnerType, partnerDetails)}\n                                isShowLock={checkIsAllowedLock(partnerType)}\n                                blockLockingReason={getBlockLockingReason(partnerType, partnerDetails)}\n                                onLock={onLockPartner}\n                                onUnLock={onUnlockPartner}\n                                onUnlink={unlinkProfileConfirmation.setData}\n                                partnerDetails={partnerDetails}\n                            />\n                        </>\n                    }\n                >\n                    <div className={cx('widget__inner')}>\n                        <FieldGroup className={cx('field-group')}>\n                            <FormikField\n                                className={cx('field--name')}\n                                name={FieldsEnum.externalBusinessPartnerId}\n                                meta={formik.getFieldMeta(FieldsEnum.externalBusinessPartnerId)}\n                                label={t('partner.details-tab.fields.name.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(fieldProps) => (\n                                    <ExternalBusinessPartnerSuggest\n                                        companyType={(partnerType as ApiAllowedCompanyTypeT) || undefined}\n                                        initialOption={initialExternalBusinessPartnerOption}\n                                        value={formik.values[FieldsEnum.externalBusinessPartnerId]}\n                                        onSelect={handleSelectExternalBusinessPartner}\n                                        overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                        hasClearControl\n                                        hasError={fieldProps.hasError}\n                                        hasWarning={fieldProps.hasWarning}\n                                        hasChanges={fieldProps.hasChanges}\n                                        onBlur={fieldProps.onBlur}\n                                        onFocus={fieldProps.onFocus}\n                                        isDisabled={!isInitialized}\n                                    />\n                                )}\n                            </FormikField>\n                            {shouldShowTeams ? (\n                                <FormikField\n                                    className={cx('field--teams')}\n                                    name={FieldsEnum.teamIds}\n                                    meta={formik.getFieldMeta(FieldsEnum.teamIds)}\n                                    label={t('partner.details-tab.fields.teams.label')}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                    isForceShowWarning={isInitialized}\n                                    warning={getTeamsWarning()}\n                                    tooltipNode={\n                                        <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                            {t('partner.details-tab.fields.teams.tooltip')}\n                                        </TooltipContent>\n                                    }\n                                >\n                                    {(fieldProps) => (\n                                        <BrokerTeamsSuggest\n                                            initialOptions={partnerDetails?.teams}\n                                            values={formik.values[FieldsEnum.teamIds]}\n                                            onSelect={fieldProps.onChange}\n                                            hasWarning={fieldProps.hasWarning}\n                                            hasError={fieldProps.hasError}\n                                            onBlur={fieldProps.onBlur}\n                                            onFocus={fieldProps.onFocus}\n                                            hasChanges={fieldProps.hasChanges}\n                                            allowedQueryMinLength={0}\n                                            placeholder={t('partner.details-tab.fields.teams.placeholder')}\n                                            isDisabled={!isInitialized}\n                                        />\n                                    )}\n                                </FormikField>\n                            ) : (\n                                <FieldGroupEmptyItem className={cx('field--placeholder')} />\n                            )}\n                            <FormikField\n                                className={cx('field--main-contact')}\n                                name={FieldsEnum.mainContactId}\n                                meta={formik.getFieldMeta(FieldsEnum.mainContactId)}\n                                label={t('partner.details-tab.fields.main-contact.label')}\n                                setFieldValue={formik.setFieldValue}\n                                setFieldTouched={formik.setFieldTouched}\n                            >\n                                {(fieldProps) => (\n                                    <PartnerMainContactSuggest\n                                        companyId={partnerDetails?.id || ''}\n                                        initialValue={formik.values[FieldsEnum.mainContactId]}\n                                        initialLabel={formik.values[FieldsEnum.mainContactFullName]}\n                                        value={formik.values[FieldsEnum.mainContactId]}\n                                        onSelect={(mainContactId, mainContactFullName) => {\n                                            formik.setFieldValue(FieldsEnum.mainContactId, mainContactId);\n                                            formik.setFieldValue(FieldsEnum.mainContactFullName, mainContactFullName);\n                                        }}\n                                        placeholder={t('common:not-selected')}\n                                        hasError={fieldProps.hasError}\n                                        hasWarning={fieldProps.hasWarning}\n                                        hasChanges={fieldProps.hasChanges}\n                                        onBlur={fieldProps.onBlur}\n                                        onFocus={fieldProps.onFocus}\n                                        hasClearControl\n                                        isDisabled={!isInitialized}\n                                    />\n                                )}\n                            </FormikField>\n                        </FieldGroup>\n                    </div>\n                </Widget>\n                {partnerType === PartnerTypeEnum.shipper && (\n                    <div className={cx('stats-widget-group')}>\n                        {checkNeedShowCreditLimit(partnerDetails) && (\n                            <Widget\n                                className={cx('widget', 'stats-widget-group__widget')}\n                                title={t('partner.details-tab.segments.credit-limit')}\n                                titleTooltipNode={\n                                    <TooltipContent theme={TooltipContentThemeEnum.black} width={200}>\n                                        {t('partner.details-tab.credit-limit-tooltip')}\n                                    </TooltipContent>\n                                }\n                                afterTitleNode={<CreditLimit creditLimit={partnerDetails.creditLimit} />}\n                            />\n                        )}\n                        <Widget\n                            className={cx('widget', 'stats-widget-group__widget')}\n                            title={t('partner.details-tab.segments.rfq-stats')}\n                            titleTooltipNode={\n                                <TooltipContent theme={TooltipContentThemeEnum.black} width={200}>\n                                    {t('partner.details-tab.rfq-stats-tooltip')}\n                                </TooltipContent>\n                            }\n                            afterTitleNode={<RFQStats />}\n                        />\n                    </div>\n                )}\n                <div className={cx('widget-group')}>\n                    <PartnerAddressWidget\n                        className={cx('widget-group__widget')}\n                        title={t('partner.details-tab.segments.legal-address')}\n                        address={partnerDetails?.legalAddress}\n                        addressType={AddressTypeEnum.legal}\n                        companyId={partnerDetails?.id}\n                        isVerified={!!partnerDetails?.legalAddressVerified}\n                    />\n                    <PartnerAddressWidget\n                        className={cx('widget-group__widget')}\n                        title={t('partner.details-tab.segments.postal-address')}\n                        address={partnerDetails?.postalAddress}\n                        addressType={AddressTypeEnum.postal}\n                        companyId={partnerDetails?.id}\n                        isVerified={!!partnerDetails?.postalAddressVerified}\n                    />\n                    {shouldShowBillingInfo && (\n                        <PartnerAddressWidget\n                            className={cx('widget-group__widget')}\n                            title={t('partner.details-tab.segments.billing-address')}\n                            address={partnerDetails?.billingAddress}\n                            addressType={AddressTypeEnum.billing}\n                            billingEmail={partnerDetails?.billingEmail || ''}\n                            companyId={partnerDetails?.id}\n                            isVerified={!!partnerDetails?.billingAddressVerified}\n                        />\n                    )}\n                </div>\n            </ContentMargins>\n        </form>\n    );\n});\n\nexport default PartnerExternalPlatformDetailsForm;\n","import { RemoteFile } from 'design-system/components/FilePickerInput/models';\n\nexport const MIN_VALID_FROM_VALID_TILL_DAYS = 7;\n\nexport enum FieldsEnum {\n    name = 'name',\n    number = 'number',\n\n    activateDate = 'activate-date',\n    validTillDate = 'valid-till-date',\n\n    file = 'file',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.name]: string;\n    [FieldsEnum.number]: string;\n\n    [FieldsEnum.activateDate]: Date | null;\n    [FieldsEnum.validTillDate]: Date | null;\n\n    [FieldsEnum.file]: File | RemoteFile<{}> | null;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import React from 'react';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport Modal from 'common/components/Modal/Modal';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport InvitePartnerForm from 'broker-admin/layouts/PartnersPage/InvitePartnerForm/InvitePartnerForm';\nimport { ApiInvitePartnerRequestT } from 'common/utils/api/models';\n\nexport type InvitePartnerModalDataT = {};\n\ntype PropsT = {\n    data: InvitePartnerModalDataT | null;\n    onClose: () => void;\n    onInvitePartner: (data: ApiInvitePartnerRequestT) => void;\n    requestStatus: RequestStatusT;\n};\n\nconst InvitePartnerDialog: React.FC<PropsT> = React.memo((props) => {\n    const { data, onClose, requestStatus, onInvitePartner } = props;\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <InvitePartnerForm onInvitePartner={onInvitePartner} addPartnerRequestStatus={requestStatus} />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default InvitePartnerDialog;\n","import type { SharableStateT } from 'common/store/models';\nimport type { AssetItemStateT, HashT } from './models';\nimport { initialAssetTeleportItemState } from './models';\n\nconst selectAssetTeleportItem = (state: SharableStateT, assetId: HashT | null | undefined): AssetItemStateT =>\n    state.assets[assetId as string] || initialAssetTeleportItemState;\n\nexport const selectValidateTeleportStatus = (assetId: HashT | null | undefined) => (state: SharableStateT) =>\n    selectAssetTeleportItem(state, assetId).validateTeleportStatus;\n\nexport const selectValidateTeleportData = (assetId: HashT | null | undefined) => (state: SharableStateT) =>\n    selectAssetTeleportItem(state, assetId).validateTeleport;\n\nexport const selectExecuteTeleportStatus = (assetId: HashT | null | undefined) => (state: SharableStateT) =>\n    selectAssetTeleportItem(state, assetId).executeTeleportStatus;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ShipmentDetailsCard.scss';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport Card from 'design-system/components/Card/Card';\nimport { useTranslation } from 'react-i18next';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport { formatTimeInterval } from 'common/utils/time';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport NumberIcon from 'common/icons/NumberIcon';\nimport ShipmentStatusPill from 'common/components/status-pill/ShipmentStatusPill/ShipmentStatusPill';\nimport CargoUnitIcon from 'common/icons/CargoUnitIcon';\nimport UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\nimport { getLoadUnitType } from 'common/utils/units';\nimport WeightIcon from 'common/icons/WeightIcon';\nimport SnowflakeIcon from 'common/icons/SnowflakeIcon';\nimport TemperatureModeFormatter from 'design-system/components/InfoTable/formatters/TemperatureModeFormatter/TemperatureModeFormatter';\nimport CommentIcon from 'common/icons/CommentIcon';\nimport LocationLabel from 'common/components/LocationLabel/LocationLabel';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport ChangeShipmentStatusFooter from 'broker-admin/components/status-machine/footers/ChangeShipmentStatusFooter/ChangeShipmentStatusFooter';\nimport { hideLoaderStatusSet } from 'broker-admin/components/status-machine/footers/ChangeShipmentStatusFooter/constants';\nimport {\n    ApiBrokerOrderWaypointT,\n    ApiShipmentAttachedPaperTypeT,\n    ApiShipmentDetailsT,\n    ApiTourShipmentEventT,\n    PartnerTypeEnum,\n} from 'common/utils/api/models';\nimport AttentionTextFormatter from 'design-system/components/InfoTable/formatters/AttentionTextFormatter/AttentionTextFormatter';\nimport TimeWindowIcon from 'common/icons/TimeWindowIcon';\nimport { checkBrokerAppointmentStatus } from 'common/utils/broker-appointment';\nimport ShipmentWarningPill from 'common/components/status-pill/ShipmentWarningPill/ShipmentWarningPill';\nimport { useSelector } from 'react-redux';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport { BrokerOrderDetailsT } from 'broker-admin/store/broker-order-details/models';\nimport { UpdateShipmentRequestT } from 'broker-admin/store/broker-order-edit/types';\nimport { getShipmentAnchor } from './utils';\nimport DetailsOrPapersTabs from 'common/components/entity-details/DetailsOrPapersTabs/DetailsOrPapersTabs';\nimport { ShipmentPapersTabContent } from 'common/components/entity-details/ShipmentPapersTabContent/ShipmentPapersTabContent';\nimport { ShipmentPaperAttachPapersDropdownControl } from 'common/components/papers/ShipmentPaperAttachPapersDropdownControl/ShipmentPaperAttachPapersDropdownControl';\nimport { selectShipmentChangesById } from 'common/store/papers-edit/selectors';\nimport { useRenderPapersTabCount } from 'common/components/papers/hooks/use-render-papers-tab-count';\nimport HighlightedEntityContext from 'common/components/status-machine/contexts/HighlightedEntityContext';\nimport { useAttachPaperForPaperTabRenderTrigger } from 'common/components/papers/ShipmentPaperAttachPapersDropdownControl/hooks';\nimport EditableStringValueFormatter from '../../../../../../design-system/components/InfoTable/formatters/EditableStringValueFormatter/EditableStringValueFormatter';\nimport PlaceholderFormatter from 'design-system/components/InfoTable/formatters/PlaceholderFormatter/PlaceholderFormatter';\nimport ShipmentEditUnavailableReason from 'common/components/reason-labels/ShipmentEditUnavailableReason/ShipmentEditUnavailableReason';\nimport { logWarning } from 'common/utils/logger';\nimport ContactBadgeIcon from 'common/icons/ContactBadgeIcon';\nimport TransparentTriggerWithTooltip from 'design-system/components/ExpandTrigger/TransparentTriggerWithTooltip';\n\nexport type PropsT = {\n    shipmentNumber: number;\n    waypointById: Record<WaypointIdT, ApiBrokerOrderWaypointT>;\n    shipment: ApiShipmentDetailsT | null | undefined;\n    brokerOrderDetails: BrokerOrderDetailsT | null;\n    keyboardShortcut?: string;\n    className?: string;\n    shouldConfirmForCancelLastShipment: boolean;\n    onAttachShipmentPaper: (\n        shipmentId: ShipmentIdT,\n        paperType: ApiShipmentAttachedPaperTypeT,\n        comment?: string,\n    ) => void;\n    getShipmentPaperThumbnailUrl: (shipmentId: ShipmentIdT | null, paperId: PaperIdT | null) => string | null;\n    onOpenGalleryShipmentPaper: (shipmentId: ShipmentIdT, paperId: PaperIdT) => void;\n    onDownloadShipmentPaper: (shipmentId: ShipmentIdT, paperId: PaperIdT) => void;\n    onDeleteShipmentPaper: (shipmentId: ShipmentIdT, paperId: PaperIdT) => void;\n    onOpenUserDetails: (params: {\n        partnerType?: PartnerTypeEnum;\n        partnerId?: PartnerIdT;\n        userId: UserIdT | null;\n    }) => void;\n    tourShipmentActions: ApiTourShipmentEventT[] | null;\n    onUpdateShipment: (shipmentId: ShipmentIdT, data: UpdateShipmentRequestT) => void;\n    onStartEditStopContact: (waypoint: ApiBrokerOrderWaypointT) => void;\n};\n\nconst cx = classNames.bind(styles);\n\nconst ShipmentDetailsCard: React.FC<PropsT> = React.memo((props) => {\n    const {\n        shipmentNumber,\n        waypointById,\n        shipment,\n        brokerOrderDetails,\n        className,\n        keyboardShortcut,\n        shouldConfirmForCancelLastShipment,\n        onOpenUserDetails,\n        onAttachShipmentPaper,\n        getShipmentPaperThumbnailUrl,\n        onOpenGalleryShipmentPaper,\n        onDownloadShipmentPaper,\n        onDeleteShipmentPaper,\n        tourShipmentActions,\n        onUpdateShipment,\n        onStartEditStopContact,\n    } = props;\n\n    const isReeferTrailer = !!brokerOrderDetails?.trailerInfo?.reefer;\n\n    const { t } = useTranslation();\n    const { highlightedEntityId } = React.useContext(HighlightedEntityContext);\n\n    const permissions = useSelector(selectPermissions);\n\n    const shipmentId = shipment?.id || null;\n\n    const description = shipment?.description || null;\n    const poNumber = shipment?.purchaseOrderNumber || null;\n\n    const idDetails: Array<InfoTableRowT> = [\n        {\n            icon: null,\n            name: t('broker-order-details.shipment-details.columns.tour-number'),\n            value: shipment?.number,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n        },\n    ];\n\n    const poDetails: Array<InfoTableRowT> = [\n        {\n            icon: null,\n            name: t('common:order-details.columns.po-number'),\n            value: (\n                <EditableStringValueFormatter\n                    key={`${shipment?.id}po-number`}\n                    value={poNumber}\n                    disableReasonTooltipNode={\n                        shipment?.shipmentEditUnavailableReason && (\n                            <ShipmentEditUnavailableReason reason={shipment?.shipmentEditUnavailableReason} />\n                        )\n                    }\n                    onUpdate={(value) => {\n                        if (!shipmentId) {\n                            logWarning('Failed to update description, empty shipmentId');\n                            return;\n                        }\n\n                        onUpdateShipment(shipmentId, { poNumber: value || '', description: description || '' });\n                    }}\n                >\n                    {(value) =>\n                        value || (\n                            <PlaceholderFormatter>\n                                {t('common:info-table.placeholders.not-specified')}\n                            </PlaceholderFormatter>\n                        )\n                    }\n                </EditableStringValueFormatter>\n            ),\n            valueMods: { isBold: true, withoutPadding: true },\n            testSelector: 'po-number',\n        },\n    ];\n\n    const brokerWindowAppointmentWarning = (\n        <Tooltip\n            position={TooltipPositionEnum.topLeft}\n            theme={TooltipThemeEnum.black}\n            tooltipNode={\n                <TooltipContent theme={TooltipContentThemeEnum.black} width={150}>\n                    {t('broker-orders.details.broke-window-appointment-warning')}\n                </TooltipContent>\n            }\n        >\n            {(isShow, childrenClassName) => (\n                <TimeWindowIcon\n                    className={childrenClassName}\n                    fillColor={StyleGuideColorsEnum.transparent}\n                    strokeColor={StyleGuideColorsEnum.orange}\n                />\n            )}\n        </Tooltip>\n    );\n\n    const pickupWaypoint = waypointById?.[shipment?.pickupPointId as RoutePointIdT] || null;\n\n    const pickupBrokerAppointmentStatus = checkBrokerAppointmentStatus({\n        shouldBrokerWindowAppointment: pickupWaypoint?.appointmentByBroker,\n        originalDateTimeFrom: pickupWaypoint?.originalDateTimeFrom,\n        originalDateTimeTo: pickupWaypoint?.originalDateTimeTo,\n        correctedDateTimeFrom: pickupWaypoint?.correctedDateTimeFrom,\n        correctedDateTimeTo: pickupWaypoint?.correctedDateTimeTo,\n    });\n\n    const originPointDetails: Array<InfoTableRowT> = [\n        {\n            icon: <NumberIcon number={(pickupWaypoint?.index || 0) + 1} fillColor={StyleGuideColorsEnum.charcoal} />,\n            name: t('broker-order-details.point-details.by-type.pickup'),\n            value: <LocationLabel format=\"s1_s2_zip_city_country\" location={pickupWaypoint?.address} />,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n            rightNode: pickupWaypoint ? (\n                <TransparentTriggerWithTooltip\n                    tooltipContent={t('broker-order-details.tooltips.edit-contacts')}\n                    onClick={() => onStartEditStopContact(pickupWaypoint)}\n                    transparentTriggerProps={{\n                        spaces: 'xs',\n                        leftIcon: (\n                            <ContactBadgeIcon\n                                fillColor={StyleGuideColorsEnum.light}\n                                strokeColor={StyleGuideColorsEnum.slate}\n                            />\n                        ),\n                    }}\n                />\n            ) : null,\n            rightNodeMods: { withoutPadding: true },\n            rows: [\n                ...(pickupBrokerAppointmentStatus?.shouldShowCorrectedDateTime\n                    ? [\n                          {\n                              icon: null,\n                              name: t('broker-order-details.point-details.columns.original-time-slot'),\n                              value: formatTimeInterval(\n                                  pickupWaypoint?.originalDateTimeFrom,\n                                  pickupWaypoint?.originalDateTimeTo,\n                              ),\n                              valueMods: {\n                                  emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                  isBold: true,\n                              },\n                              hasBottomBorder: true,\n                          },\n                          {\n                              icon: pickupBrokerAppointmentStatus?.shouldBrokerWindowAppointment\n                                  ? brokerWindowAppointmentWarning\n                                  : null,\n                              name: (\n                                  <AttentionTextFormatter\n                                      isActive={pickupBrokerAppointmentStatus?.shouldBrokerWindowAppointment}\n                                  >\n                                      {t('broker-order-details.point-details.columns.corrected-time-slot')}\n                                  </AttentionTextFormatter>\n                              ),\n                              value: (\n                                  <AttentionTextFormatter\n                                      isActive={pickupBrokerAppointmentStatus?.shouldBrokerWindowAppointment}\n                                  >\n                                      {formatTimeInterval(\n                                          pickupWaypoint?.correctedDateTimeFrom,\n                                          pickupWaypoint?.correctedDateTimeTo,\n                                      )}\n                                  </AttentionTextFormatter>\n                              ),\n                              valueMods: {\n                                  emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                  isBold: true,\n                              },\n                              hasBottomBorder: true,\n                          },\n                      ]\n                    : [\n                          {\n                              icon: pickupBrokerAppointmentStatus?.shouldBrokerWindowAppointment\n                                  ? brokerWindowAppointmentWarning\n                                  : null,\n                              name: (\n                                  <AttentionTextFormatter\n                                      isActive={pickupBrokerAppointmentStatus?.shouldBrokerWindowAppointment}\n                                  >\n                                      {t('broker-order-details.point-details.columns.time-slot')}\n                                  </AttentionTextFormatter>\n                              ),\n                              value: (\n                                  <AttentionTextFormatter\n                                      isActive={pickupBrokerAppointmentStatus?.shouldBrokerWindowAppointment}\n                                  >\n                                      {formatTimeInterval(\n                                          pickupWaypoint?.correctedDateTimeFrom || pickupWaypoint?.originalDateTimeFrom,\n                                          pickupWaypoint?.correctedDateTimeTo || pickupWaypoint?.originalDateTimeTo,\n                                      )}\n                                  </AttentionTextFormatter>\n                              ),\n                              valueMods: {\n                                  emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                  isBold: true,\n                              },\n                              hasBottomBorder: true,\n                          },\n                      ]),\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.company-name'),\n                    value: pickupWaypoint?.contact?.companyName,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'contact-company-name',\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.contact-name'),\n                    value: pickupWaypoint?.contact?.fullName,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.contact-phone'),\n                    value: pickupWaypoint?.contact?.phone,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.contact-email'),\n                    value: pickupWaypoint?.contact?.email,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.reference-number'),\n                    value: shipment?.pickupReferenceNumber,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.comments'),\n                    value: pickupWaypoint?.contact?.comment,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                },\n            ],\n        },\n    ];\n\n    const dropOffWaypoint = waypointById?.[shipment?.dropOffPointId as RoutePointIdT] || null;\n\n    const dropOffBrokerAppointmentStatus = checkBrokerAppointmentStatus({\n        shouldBrokerWindowAppointment: dropOffWaypoint?.appointmentByBroker,\n        originalDateTimeFrom: dropOffWaypoint?.originalDateTimeFrom,\n        originalDateTimeTo: dropOffWaypoint?.originalDateTimeTo,\n        correctedDateTimeFrom: dropOffWaypoint?.correctedDateTimeFrom,\n        correctedDateTimeTo: dropOffWaypoint?.correctedDateTimeTo,\n    });\n\n    const destinationPointDetails: Array<InfoTableRowT> = [\n        {\n            icon: <NumberIcon number={(dropOffWaypoint?.index || 0) + 1} fillColor={StyleGuideColorsEnum.charcoal} />,\n            name: t('broker-order-details.point-details.by-type.delivery'),\n            value: <LocationLabel format=\"s1_s2_zip_city_country\" location={dropOffWaypoint?.address} />,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n            rightNode: dropOffWaypoint ? (\n                <TransparentTriggerWithTooltip\n                    tooltipContent={t('broker-order-details.tooltips.edit-contacts')}\n                    onClick={() => onStartEditStopContact(dropOffWaypoint)}\n                    transparentTriggerProps={{\n                        spaces: 'xs',\n                        leftIcon: (\n                            <ContactBadgeIcon\n                                fillColor={StyleGuideColorsEnum.light}\n                                strokeColor={StyleGuideColorsEnum.slate}\n                            />\n                        ),\n                    }}\n                />\n            ) : null,\n            rightNodeMods: { withoutPadding: true },\n            rows: [\n                ...(dropOffBrokerAppointmentStatus.shouldShowCorrectedDateTime\n                    ? [\n                          {\n                              icon: null,\n                              name: t('broker-order-details.point-details.columns.original-time-slot'),\n                              value: formatTimeInterval(\n                                  dropOffWaypoint?.originalDateTimeFrom,\n                                  dropOffWaypoint?.originalDateTimeTo,\n                              ),\n                              valueMods: {\n                                  emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                  isBold: true,\n                              },\n                              hasBottomBorder: true,\n                          },\n                          {\n                              icon: dropOffBrokerAppointmentStatus?.shouldBrokerWindowAppointment\n                                  ? brokerWindowAppointmentWarning\n                                  : null,\n                              name: (\n                                  <AttentionTextFormatter\n                                      isActive={dropOffBrokerAppointmentStatus?.shouldBrokerWindowAppointment}\n                                  >\n                                      {t('broker-order-details.point-details.columns.corrected-time-slot')}\n                                  </AttentionTextFormatter>\n                              ),\n                              value: (\n                                  <AttentionTextFormatter\n                                      isActive={dropOffBrokerAppointmentStatus?.shouldBrokerWindowAppointment}\n                                  >\n                                      {formatTimeInterval(\n                                          dropOffWaypoint?.correctedDateTimeFrom,\n                                          dropOffWaypoint?.correctedDateTimeTo,\n                                      )}\n                                  </AttentionTextFormatter>\n                              ),\n                              valueMods: {\n                                  emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                  isBold: true,\n                              },\n                              hasBottomBorder: true,\n                          },\n                      ]\n                    : [\n                          {\n                              icon: dropOffBrokerAppointmentStatus?.shouldBrokerWindowAppointment\n                                  ? brokerWindowAppointmentWarning\n                                  : null,\n                              name: (\n                                  <AttentionTextFormatter\n                                      isActive={dropOffBrokerAppointmentStatus?.shouldBrokerWindowAppointment}\n                                  >\n                                      {t('broker-order-details.point-details.columns.time-slot')}\n                                  </AttentionTextFormatter>\n                              ),\n                              value: (\n                                  <AttentionTextFormatter\n                                      isActive={dropOffBrokerAppointmentStatus?.shouldBrokerWindowAppointment}\n                                  >\n                                      {formatTimeInterval(\n                                          dropOffWaypoint?.correctedDateTimeFrom ||\n                                              dropOffWaypoint?.originalDateTimeFrom,\n                                          dropOffWaypoint?.correctedDateTimeTo || dropOffWaypoint?.originalDateTimeTo,\n                                      )}\n                                  </AttentionTextFormatter>\n                              ),\n                              valueMods: {\n                                  emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                                  isBold: true,\n                              },\n                              hasBottomBorder: true,\n                          },\n                      ]),\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.company-name'),\n                    value: dropOffWaypoint?.contact?.companyName,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    testSelector: 'contact-company-name',\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.contact-name'),\n                    value: dropOffWaypoint?.contact?.fullName,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.contact-phone'),\n                    value: dropOffWaypoint?.contact?.phone,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.contact-email'),\n                    value: dropOffWaypoint?.contact?.email,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.reference-number'),\n                    value: shipment?.dropOffReferenceNumber,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                    hasBottomBorder: true,\n                },\n                {\n                    icon: null,\n                    name: t('broker-order-details.point-details.columns.comments'),\n                    value: dropOffWaypoint?.contact?.comment,\n                    valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                },\n            ],\n        },\n    ];\n\n    const shipmentDetails: Array<InfoTableRowT | null> = [\n        {\n            icon: (\n                <CargoUnitIcon\n                    size={DEFAULT_ICON_SIZE}\n                    fillColor={StyleGuideColorsEnum.light}\n                    strokeColor={StyleGuideColorsEnum.gray}\n                />\n            ),\n            name: t('common:order-details.columns.load-units'),\n            value: <UnitTypeCount type={getLoadUnitType(shipment?.unitsType)} count={shipment?.maxNumberOfUnits} />,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n        },\n        {\n            icon: <WeightIcon fillColor={StyleGuideColorsEnum.gray} />,\n            name: t('common:order-details.columns.cargo-weight'),\n            value: <UnitTypeCount count={shipment?.weight} type={UnitTypeEnum.kilogramsAbbreviation} />,\n            valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n        },\n        isReeferTrailer\n            ? {\n                  icon: <SnowflakeIcon fillColor={StyleGuideColorsEnum.gray} />,\n                  name: t('common:order-details.columns.temperature'),\n                  value: (\n                      <TemperatureModeFormatter\n                          lowestTemperature={shipment?.lowestTemperature}\n                          highestTemperature={shipment?.highestTemperature}\n                      />\n                  ),\n                  valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n              }\n            : null,\n        {\n            icon: <CommentIcon fillColor={StyleGuideColorsEnum.light} strokeColor={StyleGuideColorsEnum.gray} />,\n            name: t('common:order-details.columns.description'),\n            value: (\n                <EditableStringValueFormatter\n                    key={`${shipment?.id}-description`}\n                    value={description}\n                    disableReasonTooltipNode={\n                        shipment?.shipmentEditUnavailableReason && (\n                            <ShipmentEditUnavailableReason reason={shipment?.shipmentEditUnavailableReason} />\n                        )\n                    }\n                    onUpdate={(value) => {\n                        if (!shipmentId) {\n                            logWarning('Failed to update description, empty shipmentId');\n                            return;\n                        }\n\n                        onUpdateShipment(shipmentId, { description: value || '', poNumber: poNumber || '' });\n                    }}\n                >\n                    {(value) =>\n                        value || (\n                            <PlaceholderFormatter>\n                                {t('common:info-table.placeholders.not-specified')}\n                            </PlaceholderFormatter>\n                        )\n                    }\n                </EditableStringValueFormatter>\n            ),\n            valueMods: { isBold: true, withoutPadding: true },\n        },\n    ];\n\n    const shipmentChanges = useSelector(selectShipmentChangesById(shipmentId));\n\n    const papersBadge = useRenderPapersTabCount({\n        optimisticPapers: shipmentChanges?.optimisticPapers,\n        entityPapers: shipment?.attachedPapers,\n    });\n\n    const takeShotsOfPapersEvent = React.useMemo(() => {\n        return (\n            tourShipmentActions?.find((action) => {\n                return action?.actions?.some((shipmentAction) => {\n                    return shipmentAction?.type === 'TAKE_SHOTS_OF_PAPERS';\n                });\n            }) || null\n        );\n    }, [tourShipmentActions]);\n\n    const { attachPaperRenderTrigger } = useAttachPaperForPaperTabRenderTrigger({\n        triggerText: t('common:papers-card.attach-new'),\n        hasPlusIcon: true,\n    });\n\n    return (\n        <>\n            <Card\n                keyboardShortcut={keyboardShortcut}\n                titleNode={t('broker-order-details.shipment-details.title', {\n                    number: shipmentNumber,\n                })}\n                rightNode={\n                    <>\n                        <ShipmentWarningPill isSymmetrical warning={shipment?.warning} />\n                        <ShipmentStatusPill isSymmetrical status={shipment?.status} />\n                    </>\n                }\n                className={className}\n                hasHeaderBottomBorder\n                footerNode={\n                    permissions?.canChangeShipmentStatusOnBrokerOrder || permissions?.canCancelShipmentOnBrokerOrder ? (\n                        <ChangeShipmentStatusFooter\n                            isChangeStatusAllowed={permissions.canChangeShipmentStatusOnBrokerOrder}\n                            isCancelAllowed={permissions.canCancelShipmentOnBrokerOrder}\n                            isShowLoading={!!shipment && !hideLoaderStatusSet.has(shipment?.status)}\n                            shipmentId={shipment?.id || null}\n                            takeShotsOfPapersTourShipmentEvent={takeShotsOfPapersEvent}\n                            shipment={shipment}\n                            onAttachShipmentPaper={onAttachShipmentPaper}\n                            shouldConfirmForCancelLastShipment={shouldConfirmForCancelLastShipment}\n                        />\n                    ) : null\n                }\n                anchor={getShipmentAnchor(shipment?.id || null)}\n                isHighlighted={highlightedEntityId === shipment?.id}\n            >\n                <div>\n                    <DetailsOrPapersTabs\n                        papersBadge={papersBadge}\n                        papersTabRightNode={\n                            <ShipmentPaperAttachPapersDropdownControl\n                                shipmentId={shipmentId}\n                                onAttachShipmentPaper={onAttachShipmentPaper}\n                                renderTrigger={attachPaperRenderTrigger}\n                            />\n                        }\n                    >\n                        <div className={cx('content')}>\n                            <InfoTable shouldRenderIcons rows={idDetails} className={cx('table', 'table--id')} />\n                            <InfoTable shouldRenderIcons rows={poDetails} className={cx('table', 'table--po')} />\n                            <InfoTable\n                                shouldRenderIcons\n                                rows={originPointDetails}\n                                className={cx('table', 'table--point')}\n                            />\n                            <InfoTable\n                                shouldRenderIcons\n                                rows={destinationPointDetails}\n                                className={cx('table', 'table--point')}\n                            />\n                            <InfoTable\n                                shouldRenderIcons\n                                rows={shipmentDetails}\n                                className={cx('table', 'table--shipment')}\n                            />\n                        </div>\n                        <ShipmentPapersTabContent\n                            attachedPapers={shipment?.attachedPapers || null}\n                            shipmentId={shipmentId}\n                            onOpenUserDetails={onOpenUserDetails}\n                            getShipmentPaperThumbnailUrl={getShipmentPaperThumbnailUrl}\n                            onOpenGalleryShipmentPaper={onOpenGalleryShipmentPaper}\n                            onDownloadShipmentPaper={onDownloadShipmentPaper}\n                            onDeleteShipmentPaper={onDeleteShipmentPaper}\n                            onAttachShipmentPaper={onAttachShipmentPaper}\n                        />\n                    </DetailsOrPapersTabs>\n                </div>\n            </Card>\n        </>\n    );\n});\n\nexport default ShipmentDetailsCard;\n","import { ApiEditOrderContextT, ApiTourUpdateStopDataT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { ContextRoutePointAliasT } from '../models';\n\nexport const findContextStopByAlias = (\n    context: ApiEditOrderContextT | null,\n    routePointAlias: ContextRoutePointAliasT,\n): ApiTourUpdateStopDataT | null => {\n    const allStops =\n        context?.tours?.flatMap((tour) => {\n            return tour?.stops || [];\n        }) || [];\n\n    return (\n        allStops.find((stop) => {\n            return stop.alias === routePointAlias;\n        }) || null\n    );\n};\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './RejectContractConfirmation.scss';\nimport { useTranslation } from 'react-i18next';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport Modal from 'common/components/Modal/Modal';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport BigTrashIcon from 'common/icons/BigTrashIcon';\nimport Textarea from 'common/components/Textarea/Textarea';\nimport { useFormik } from 'formik';\nimport { logWarning } from 'common/utils/logger';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { prepareData } from './prepare-reject-data';\nimport { useEffect } from 'react';\n\nexport type ConfirmRejectContractModalDataT = {\n    contractId: CarrierContractIdT;\n    contractName: string;\n};\n\ntype PropsT = {\n    data: ConfirmRejectContractModalDataT | null;\n    onConfirm: (data: ConfirmRejectContractModalDataT, reason: string) => void;\n    requestStatus: RequestStatusT;\n    onClose: () => void;\n    onCancel: () => void;\n};\n\nconst cx = classNames.bind(styles);\n\nconst TEST_SELECTOR = 'reject-contract-confirmation';\n\nconst RejectContractConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, onConfirm, requestStatus, onClose } = props;\n    const { t } = useTranslation();\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = getInitialValues();\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const preparedData = prepareData(values);\n\n            if (!data) {\n                logWarning('failed to reject contract, empty data');\n                return;\n            }\n\n            onConfirm(data, preparedData.reason);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    useEffect(() => {\n        formik.resetForm();\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [data]);\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <form onSubmit={formik.handleSubmit}>\n                    <ModalDialog\n                        width={DEFAULT_MODAL_DIALOG_WIDTH}\n                        testSelector={TEST_SELECTOR}\n                        actions={[\n                            {\n                                children: t('common:error-modal.actions.cancel'),\n                                theme: ButtonThemeEnum.secondary,\n                                testSelector: `${TEST_SELECTOR}_cancel`,\n                                isDisabled: requestStatus.loading,\n                                onClick: onClose,\n                            },\n                            {\n                                children: t('common:error-modal.actions.reject'),\n                                theme: ButtonThemeEnum.danger,\n                                testSelector: `${TEST_SELECTOR}_ok`,\n                                isLoading: requestStatus.loading,\n                                isDisabled: requestStatus.loading,\n                                type: 'submit',\n                            },\n                        ]}\n                        icon={<BigTrashIcon />}\n                        title={t('common:carrier-contracts.reject-confirmation.title')}\n                        message={t('common:carrier-contracts.reject-confirmation.description')}\n                        body={\n                            <>\n                                <FormikField\n                                    name={FieldsEnum.reason}\n                                    error={formik.errors[FieldsEnum.reason]}\n                                    meta={formik.getFieldMeta(FieldsEnum.reason)}\n                                    label={t('common:carrier-contracts.reject-confirmation.fields.reason.label')}\n                                    setFieldValue={formik.setFieldValue}\n                                    setFieldTouched={formik.setFieldTouched}\n                                >\n                                    {(props) => (\n                                        <Textarea\n                                            className={cx('textarea')}\n                                            name={FieldsEnum.reason}\n                                            value={formik.values[FieldsEnum.reason]}\n                                            placeholder={t(\n                                                'common:carrier-contracts.reject-confirmation.fields.reason.placeholder',\n                                            )}\n                                            onChange={props.onChange}\n                                            hasWarning={props.hasWarning}\n                                            hasError={props.hasError}\n                                        />\n                                    )}\n                                </FormikField>\n                            </>\n                        }\n                    />\n                </form>\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default RejectContractConfirmation;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"YearMonthForm__wrap___fIJRz\",\"select\":\"YearMonthForm__select____UWVs\",\"select--month\":\"YearMonthForm__select--month___ullAF\",\"fadeIn\":\"YearMonthForm__fadeIn___P5gHD\",\"blinking\":\"YearMonthForm__blinking___DXK1a\"};","import * as React from 'react';\n\nimport { Trans, useTranslation } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\nimport NotificationVerticalRow from 'common/components/notification-cards/shared/NotificationVerticalRow/NotificationVerticalRow';\nimport NotificationVerticalRowsLayout from 'common/components/notification-cards/shared/NotificationVerticalRowsLayout/NotificationVerticalRowsLayout';\n\ntype PropsT = {\n    transportationOrderNumber: React.ReactNode;\n    truckPlateNumber?: string;\n    truckModel?: string;\n    truckDetails?: React.ReactNode;\n    trailerPlateNumber?: string;\n    trailerType?: string;\n    trailerDetails?: React.ReactNode;\n};\n\nconst formatAssetDetails = (plateNumber?: string, type?: string) => [plateNumber, type].filter(Boolean).join(' / ');\n\nconst TransportationOrderAssetsAssignedCard: React.FC<PropsT> = React.memo((props) => {\n    const {\n        transportationOrderNumber,\n        truckPlateNumber,\n        truckModel,\n        truckDetails: customTruckDetails,\n        trailerPlateNumber,\n        trailerType,\n        trailerDetails: customTrailerDetails,\n    } = props;\n    const { t } = useTranslation();\n\n    const truckDetails = customTruckDetails || formatAssetDetails(truckPlateNumber, truckModel);\n    const trailerDetails = customTrailerDetails || formatAssetDetails(trailerPlateNumber, trailerType);\n\n    const rows = [\n        <NotificationVerticalRow key=\"summary\">\n            <Trans\n                i18nKey=\"common:notifications.transportation-order-assets-assigned\"\n                components={{\n                    transportationOrderNumber: (\n                        <NotificationEntityLabel isBold isUnderline text={transportationOrderNumber} />\n                    ),\n                }}\n            />\n        </NotificationVerticalRow>,\n    ];\n\n    if (truckDetails) {\n        rows.push(\n            <NotificationVerticalRow key=\"truck\">\n                <Trans\n                    i18nKey=\"common:notifications.transportation-order-assets-assigned-truck\"\n                    components={{\n                        truckLabel: <NotificationEntityLabel isBold text={t('common:notifications.assets.truck')} />,\n                        assetDetails: <NotificationEntityLabel text={truckDetails} />,\n                    }}\n                />\n            </NotificationVerticalRow>,\n        );\n    }\n\n    if (trailerDetails) {\n        rows.push(\n            <NotificationVerticalRow key=\"trailer\">\n                <Trans\n                    i18nKey=\"common:notifications.transportation-order-assets-assigned-trailer\"\n                    components={{\n                        trailerLabel: (\n                            <NotificationEntityLabel isBold text={t('common:notifications.assets.trailer')} />\n                        ),\n                        assetDetails: <NotificationEntityLabel text={trailerDetails} />,\n                    }}\n                />\n            </NotificationVerticalRow>,\n        );\n    }\n\n    return (\n        <NotificationCardInnerLayout>\n            <NotificationVerticalRowsLayout>{rows}</NotificationVerticalRowsLayout>\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default TransportationOrderAssetsAssignedCard;\n","import { RequestStatusT } from 'common/utils/request-status';\n\nimport {\n    FetchTrucksPageQueryT,\n    ApiTruckDetailsT,\n    CompanyTrucksStatsT,\n    ApiTruckT,\n    ActivateTrucksRequestT,\n} from './models';\nimport {\n    ApiChangeContractVehiclesRequestT,\n    ApiChangeRateVehiclesRequestT,\n    ApiTruckAddRequestT,\n    ApiTruckUpdateRequestT,\n} from 'common/utils/api/models';\nimport { PageResponseT, PaginationStateT } from 'common/utils/pagination/models';\n\nexport const FETCH_TRUCKS_PAGE_REQUEST = 'common/trucks/FETCH_TRUCKS_PAGE_REQUEST';\nexport const FETCH_TRUCKS_PAGE_REQUEST_BEGIN = 'common/trucks/FETCH_TRUCKS_PAGE_REQUEST_BEGIN';\nexport const FETCH_TRUCKS_PAGE_REQUEST_ERROR = 'common/trucks/FETCH_TRUCKS_PAGE_REQUEST_ERROR';\nexport const FETCH_TRUCKS_PAGE_REQUEST_SUCCESS = 'common/trucks/FETCH_TRUCKS_PAGE_REQUEST_SUCCESS';\n\nexport const RESET_TRUCKS = 'common/trucks/RESET_TRUCKS';\n\nexport const ADD_TRUCK_REQUEST = 'common/trucks/ADD_TRUCK_REQUEST';\nexport const ADD_TRUCK_REQUEST_BEGIN = 'common/trucks/ADD_TRUCK_REQUEST_BEGIN';\nexport const ADD_TRUCK_REQUEST_ERROR = 'common/trucks/ADD_TRUCK_REQUEST_ERROR';\nexport const ADD_TRUCK_REQUEST_SUCCESS = 'common/trucks/ADD_TRUCK_REQUEST_SUCCESS';\n\nexport const DELETE_TRUCKS_REQUEST = 'common/trucks/DELETE_TRUCKS_REQUEST';\nexport const DELETE_TRUCKS_REQUEST_BEGIN = 'common/trucks/DELETE_TRUCKS_REQUEST_BEGIN';\nexport const DELETE_TRUCKS_REQUEST_ERROR = 'common/trucks/DELETE_TRUCKS_REQUEST_ERROR';\nexport const DELETE_TRUCKS_REQUEST_SUCCESS = 'common/trucks/DELETE_TRUCKS_REQUEST_SUCCESS';\n\nexport const ACTIVATION_TRUCKS_REQUEST = 'common/trucks/ACTIVATION_TRUCKS_REQUEST';\nexport const ARCHIVE_TRUCKS_REQUEST = 'common/trucks/ARCHIVE_TRUCKS_REQUEST';\nexport const ASSIGN_TO_CONTRACT_TRUCKS_REQUEST = 'common/trucks/ASSIGN_TO_CONTRACT_TRUCKS_REQUEST';\nexport const CHANGE_RATE_TRUCKS_REQUEST = 'common/trucks/CHANGE_RATE_TRUCKS_REQUEST';\n\nexport const UPDATE_TRUCK_REQUEST = 'common/trucks/UPDATE_TRUCK_REQUEST';\nexport const UPDATE_TRUCKS_REQUEST_BEGIN = 'common/trucks/UPDATE_TRUCKS_REQUEST_BEGIN';\nexport const UPDATE_TRUCKS_REQUEST_ERROR = 'common/trucks/UPDATE_TRUCKS_REQUEST_ERROR';\nexport const UPDATE_TRUCKS_REQUEST_SUCCESS = 'common/trucks/UPDATE_TRUCKS_REQUEST_SUCCESS';\n\nexport const FETCH_TRUCK_DETAILS_REQUEST = 'common/trucks/FETCH_TRUCK_DETAILS_REQUEST';\nexport const FETCH_TRUCK_DETAILS_REQUEST_BEGIN = 'common/trucks/FETCH_TRUCK_DETAILS_REQUEST_BEGIN';\nexport const FETCH_TRUCK_DETAILS_REQUEST_ERROR = 'common/trucks/FETCH_TRUCK_DETAILS_REQUEST_ERROR';\nexport const FETCH_TRUCK_DETAILS_REQUEST_SUCCESS = 'common/trucks/FETCH_TRUCK_DETAILS_REQUEST_SUCCESS';\n\nexport const FETCH_TRUCKS_STATS_REQUEST = 'common/trucks/FETCH_TRUCKS_STATS_REQUEST';\nexport const FETCH_TRUCKS_STATS_REQUEST_BEGIN = 'common/trucks/FETCH_TRUCKS_STATS_REQUEST_BEGIN';\nexport const FETCH_TRUCKS_STATS_REQUEST_ERROR = 'common/trucks/FETCH_TRUCKS_STATS_REQUEST_ERROR';\nexport const FETCH_TRUCKS_STATS_REQUEST_SUCCESS = 'common/trucks/FETCH_TRUCKS_STATS_REQUEST_SUCCESS';\n\nexport const IMPORT_XLS_TRUCKS_REQUEST = 'common/trucks/IMPORT_XLS_TRUCKS_REQUEST';\nexport const IMPORT_XLS_TRUCKS_REQUEST_BEGIN = 'common/trucks/IMPORT_XLS_TRUCKS_REQUEST_BEGIN';\nexport const IMPORT_XLS_TRUCKS_REQUEST_ERROR = 'common/trucks/IMPORT_XLS_TRUCKS_REQUEST_ERROR';\nexport const IMPORT_XLS_TRUCKS_REQUEST_SUCCESS = 'common/trucks/IMPORT_XLS_TRUCKS_REQUEST_SUCCESS';\n\nexport const EXPORT_XLS_TRUCKS_REQUEST = 'common/trucks/EXPORT_XLS_TRUCKS_REQUEST';\nexport const EXPORT_XLS_TRUCKS_REQUEST_BEGIN = 'common/trucks/EXPORT_XLS_TRUCKS_REQUEST_BEGIN';\nexport const EXPORT_XLS_TRUCKS_REQUEST_ERROR = 'common/trucks/EXPORT_XLS_TRUCKS_REQUEST_ERROR';\nexport const EXPORT_XLS_TRUCKS_REQUEST_SUCCESS = 'common/trucks/EXPORT_XLS_TRUCKS_REQUEST_SUCCESS';\n\nexport type CompanyTrucksStateT = PaginationStateT<ApiTruckT, FetchTrucksPageQueryT> & {\n    addRequest: RequestStatusT;\n    deleteRequest: RequestStatusT;\n    updateRequest: RequestStatusT;\n    detailsById: Record<TruckIdT, ApiTruckDetailsT | null>;\n    fetchDetailsRequest: RequestStatusT;\n    stats: CompanyTrucksStatsT | null;\n    fetchStatsRequest: RequestStatusT;\n    importXLSRequest: RequestStatusT;\n    exportXLSRequest: RequestStatusT;\n};\n\nexport type TrucksStateT = Record<CompanyIdT, CompanyTrucksStateT | null>;\n\nexport type FetchTrucksPageActionT = {\n    type: typeof FETCH_TRUCKS_PAGE_REQUEST;\n    pageNumber: PageNumberT;\n    query: FetchTrucksPageQueryT;\n    options?: FetchOptionsT;\n    companyId: CompanyIdT;\n};\n\nexport type FetchTrucksPageBeginActionT = {\n    type: typeof FETCH_TRUCKS_PAGE_REQUEST_BEGIN;\n    query: FetchTrucksPageQueryT;\n    pageNumber: PageNumberT;\n    companyId: CompanyIdT;\n};\n\nexport type FetchTrucksPageSuccessActionT = {\n    type: typeof FETCH_TRUCKS_PAGE_REQUEST_SUCCESS;\n    query: FetchTrucksPageQueryT;\n    pageNumber: PageNumberT;\n    pageResponse: PageResponseT<ApiTruckT> | null;\n    companyId: CompanyIdT;\n};\n\nexport type FetchTrucksPageErrorActionT = {\n    type: typeof FETCH_TRUCKS_PAGE_REQUEST_ERROR;\n    query: FetchTrucksPageQueryT;\n    pageNumber: PageNumberT;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type ResetTrucksActionT = {\n    type: typeof RESET_TRUCKS;\n    companyId: CompanyIdT;\n    mutationListOptions: MutationListOptionsT;\n};\n\nexport type AddTruckRequestActionT = {\n    type: typeof ADD_TRUCK_REQUEST;\n    data: ApiTruckAddRequestT;\n    companyId: CompanyIdT;\n};\n\nexport type AddTruckRequestBeginActionT = {\n    type: typeof ADD_TRUCK_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type AddTruckRequestErrorActionT = {\n    type: typeof ADD_TRUCK_REQUEST_ERROR;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type AddTruckRequestSuccessActionT = {\n    type: typeof ADD_TRUCK_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n};\n\nexport type DeleteTrucksRequestActionT = {\n    type: typeof DELETE_TRUCKS_REQUEST;\n    truckIds: TruckIdT[];\n    companyId: CompanyIdT;\n};\n\nexport type DeleteTrucksRequestBeginActionT = {\n    type: typeof DELETE_TRUCKS_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type DeleteTrucksRequestErrorActionT = {\n    type: typeof DELETE_TRUCKS_REQUEST_ERROR;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type DeleteTrucksRequestSuccessActionT = {\n    type: typeof DELETE_TRUCKS_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n};\n\nexport type ActivationTrucksRequestActionT = {\n    type: typeof ACTIVATION_TRUCKS_REQUEST;\n    companyId: CompanyIdT;\n    activateTrucksRequest: ActivateTrucksRequestT;\n};\n\nexport type ArchiveTrucksRequestActionT = {\n    type: typeof ARCHIVE_TRUCKS_REQUEST;\n    truckIds: TruckIdT[];\n    companyId: CompanyIdT;\n    reason: string;\n};\n\nexport type AssignToContractRequestActionT = {\n    type: typeof ASSIGN_TO_CONTRACT_TRUCKS_REQUEST;\n    companyId: CompanyIdT;\n    contractName: string | null;\n    changeContractRequest: ApiChangeContractVehiclesRequestT;\n};\n\nexport type ChangeRateTrucksRequestActionT = {\n    type: typeof CHANGE_RATE_TRUCKS_REQUEST;\n    companyId: CompanyIdT;\n    changeRateVehiclesRequest: ApiChangeRateVehiclesRequestT;\n};\n\nexport type UpdateTruckActionT = {\n    type: typeof UPDATE_TRUCK_REQUEST;\n    companyId: CompanyIdT;\n    truckId: TruckIdT;\n    updateTruck: ApiTruckUpdateRequestT;\n};\n\nexport type UpdateTrucksRequestBeginActionT = {\n    type: typeof UPDATE_TRUCKS_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type UpdateTrucksRequestErrorActionT = {\n    type: typeof UPDATE_TRUCKS_REQUEST_ERROR;\n    error: Error;\n    companyId: CompanyIdT;\n};\n\nexport type UpdateTrucksRequestSuccessActionT = {\n    type: typeof UPDATE_TRUCKS_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n};\n\nexport type FetchTruckDetailsActionT = {\n    type: typeof FETCH_TRUCK_DETAILS_REQUEST;\n    companyId: CompanyIdT;\n    truckId: TruckIdT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchTruckDetailsBeginActionT = {\n    type: typeof FETCH_TRUCK_DETAILS_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type FetchTruckDetailsErrorActionT = {\n    type: typeof FETCH_TRUCK_DETAILS_REQUEST_ERROR;\n    companyId: CompanyIdT;\n    error: Error;\n};\n\nexport type FetchTruckDetailsSuccessActionT = {\n    type: typeof FETCH_TRUCK_DETAILS_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n    truckId: TruckIdT;\n    details: ApiTruckDetailsT | null;\n};\n\nexport type FetchTrucksStatsActionT = {\n    type: typeof FETCH_TRUCKS_STATS_REQUEST;\n    companyId: CompanyIdT;\n    options?: FetchOptionsT;\n};\n\nexport type FetchTrucksStatsBeginActionT = {\n    type: typeof FETCH_TRUCKS_STATS_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type FetchTrucksStatsErrorActionT = {\n    type: typeof FETCH_TRUCKS_STATS_REQUEST_ERROR;\n    companyId: CompanyIdT;\n    error: Error;\n};\n\nexport type FetchTrucksStatsSuccessActionT = {\n    type: typeof FETCH_TRUCKS_STATS_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n    stats: CompanyTrucksStatsT | null;\n};\n\nexport type ImportXLSTrucksActionT = {\n    type: typeof IMPORT_XLS_TRUCKS_REQUEST;\n    companyId: CompanyIdT;\n    file: File;\n};\n\nexport type ImportXLSTrucksBeginActionT = {\n    type: typeof IMPORT_XLS_TRUCKS_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type ImportXLSTrucksErrorActionT = {\n    type: typeof IMPORT_XLS_TRUCKS_REQUEST_ERROR;\n    companyId: CompanyIdT;\n    error: Error;\n};\n\nexport type ImportXLSTrucksSuccessActionT = {\n    type: typeof IMPORT_XLS_TRUCKS_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n};\n\nexport type ExportXLSTrucksActionT = {\n    type: typeof EXPORT_XLS_TRUCKS_REQUEST;\n    companyId: CompanyIdT;\n    query: FetchTrucksPageQueryT;\n};\n\nexport type ExportXLSTrucksBeginActionT = {\n    type: typeof EXPORT_XLS_TRUCKS_REQUEST_BEGIN;\n    companyId: CompanyIdT;\n};\n\nexport type ExportXLSTrucksErrorActionT = {\n    type: typeof EXPORT_XLS_TRUCKS_REQUEST_ERROR;\n    companyId: CompanyIdT;\n    error: Error;\n};\n\nexport type ExportXLSTrucksSuccessActionT = {\n    type: typeof EXPORT_XLS_TRUCKS_REQUEST_SUCCESS;\n    companyId: CompanyIdT;\n};\n\nexport type TrucksActionT =\n    | FetchTrucksPageActionT\n    | FetchTrucksPageBeginActionT\n    | FetchTrucksPageSuccessActionT\n    | FetchTrucksPageErrorActionT\n    | ResetTrucksActionT\n    | AddTruckRequestActionT\n    | AddTruckRequestBeginActionT\n    | AddTruckRequestErrorActionT\n    | AddTruckRequestSuccessActionT\n    | DeleteTrucksRequestActionT\n    | DeleteTrucksRequestBeginActionT\n    | DeleteTrucksRequestErrorActionT\n    | DeleteTrucksRequestSuccessActionT\n    | ActivationTrucksRequestActionT\n    | ArchiveTrucksRequestActionT\n    | AssignToContractRequestActionT\n    | ChangeRateTrucksRequestActionT\n    | UpdateTruckActionT\n    | UpdateTrucksRequestBeginActionT\n    | UpdateTrucksRequestErrorActionT\n    | UpdateTrucksRequestSuccessActionT\n    | FetchTrucksStatsActionT\n    | FetchTrucksStatsBeginActionT\n    | FetchTrucksStatsErrorActionT\n    | FetchTrucksStatsSuccessActionT\n    | FetchTruckDetailsActionT\n    | FetchTruckDetailsBeginActionT\n    | FetchTruckDetailsErrorActionT\n    | FetchTruckDetailsSuccessActionT\n    | ImportXLSTrucksActionT\n    | ImportXLSTrucksBeginActionT\n    | ImportXLSTrucksErrorActionT\n    | ImportXLSTrucksSuccessActionT\n    | ExportXLSTrucksActionT\n    | ExportXLSTrucksBeginActionT\n    | ExportXLSTrucksErrorActionT\n    | ExportXLSTrucksSuccessActionT;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './RouteDetailsCard.scss';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport Card from 'design-system/components/Card/Card';\nimport { useTranslation } from 'react-i18next';\nimport InfoTable, { InfoTableRowT } from 'design-system/components/InfoTable/InfoTable';\nimport { checkIsInDateRange, formatDate, formatTimeInterval } from 'common/utils/time';\nimport NumberIcon from 'common/icons/NumberIcon';\nimport LocationLabel from 'common/components/LocationLabel/LocationLabel';\nimport { TransportOrderDetailsT } from 'common/store/transport-order-details/models';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport TruckPickUpIcon from 'common/icons/TruckPickUpIcon';\nimport TrailerPickUpIcon from 'common/icons/TrailerPickUpIcon';\nimport LinkDropOffIcon from 'common/icons/LinkDropOffIcon';\nimport TruckDropOffIcon from 'common/icons/TruckDropOffIcon';\nimport TrailerDropOffIcon from 'common/icons/TrailerDropOffIcon';\nimport WarningTextFormatter from 'design-system/components/InfoTable/formatters/WarningTextFormatter/WarningTextFormatter';\nimport isNumber from 'lodash/isNumber';\nimport { StopTypeEnum } from 'common/utils/api/models';\nimport DriverWrongCheckPointPill from 'common/components/pills/DriverWrongCheckPointPill/DriverWrongCheckPointPill';\nimport LinkPickUpIcon from 'common/icons/LinkPickUpIcon';\nimport BoatIcon from 'common/icons/BoatIcon';\n\nexport type PropsT = {\n    transportOrderDetails: TransportOrderDetailsT | null | undefined;\n    className?: string;\n};\n\nconst cx = classNames.bind(styles);\n\nconst RouteDetailsCard: React.FC<PropsT> = React.memo((props) => {\n    const { transportOrderDetails, className } = props;\n\n    const { t } = useTranslation();\n\n    const getDriverArrivedLeftRows = (\n        waypoint: TransportOrderDetailsT['waypoints'][number],\n        { isLast }: { isLast: boolean },\n    ): Array<InfoTableRowT> => {\n        return [\n            {\n                icon: null,\n                name: t('common:transport-order-details.route-details.columns.driver-arrived-at'),\n                value: waypoint?.driverArrivedTimeStamp ? (\n                    <WarningTextFormatter\n                        isActive={checkIsInDateRange(\n                            waypoint.dateTimeFrom,\n                            waypoint.dateTimeTo,\n                            waypoint?.driverArrivedTimeStamp,\n                        )}\n                    >\n                        {formatDate('DD MMM YYYY, HH:mm', waypoint?.driverArrivedTimeStamp)}\n                    </WarningTextFormatter>\n                ) : null,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.driver-not-arrived'), isBold: true },\n                rightNode: waypoint?.driverArrivedFalse ? <DriverWrongCheckPointPill /> : null,\n                hasBottomBorder: true,\n            },\n            {\n                icon: null,\n                name: t('common:transport-order-details.route-details.columns.driver-left-at'),\n                value: waypoint?.driverLeftTimeStamp ? (\n                    <WarningTextFormatter\n                        isActive={checkIsInDateRange(\n                            waypoint.dateTimeFrom,\n                            waypoint.dateTimeTo,\n                            waypoint?.driverLeftTimeStamp,\n                        )}\n                    >\n                        {formatDate('DD MMM YYYY, HH:mm', waypoint?.driverLeftTimeStamp)}\n                    </WarningTextFormatter>\n                ) : null,\n                valueMods: {\n                    emptyPlaceholder: waypoint?.driverArrivedTimeStamp\n                        ? t('common:info-table.placeholders.driver-not-leave')\n                        : t('common:info-table.placeholders.driver-not-arrived'),\n                    isBold: true,\n                },\n                rightNode: waypoint?.driverLeftFalse ? <DriverWrongCheckPointPill /> : null,\n                hasBottomBorder: !isLast,\n            },\n        ];\n    };\n\n    const getTimeSlotRows = (waypoint: TransportOrderDetailsT['waypoints'][number]): Array<InfoTableRowT> => {\n        return [\n            {\n                icon: null,\n                name: t('common:transport-order-details.route-details.columns.time-slot'),\n                value: formatTimeInterval(waypoint.dateTimeFrom, waypoint.dateTimeTo),\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                hasBottomBorder: true,\n            },\n        ];\n    };\n\n    const renderPickupTruckWaypoint = (waypoint: TransportOrderDetailsT['waypoints'][number]) => {\n        const rows: Array<InfoTableRowT> = [\n            {\n                icon: (\n                    <TruckPickUpIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.gray}\n                        fillColor={StyleGuideColorsEnum.light}\n                    />\n                ),\n                name: t('common:transport-order-details.route-details.columns.pickup-truck'),\n                value: <LocationLabel format=\"pickup_asset_s1_s2_zip_city_country\" location={waypoint?.address} />,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                rows: [...getTimeSlotRows(waypoint), ...getDriverArrivedLeftRows(waypoint, { isLast: true })],\n            },\n        ];\n\n        return <InfoTable key={waypoint.id} shouldRenderIcons rows={rows} className={cx('table')} />;\n    };\n\n    const renderPickupTrailerWaypoint = (waypoint: TransportOrderDetailsT['waypoints'][number]) => {\n        const rows: Array<InfoTableRowT> = [\n            {\n                icon: (\n                    <TrailerPickUpIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.gray}\n                        fillColor={StyleGuideColorsEnum.light}\n                    />\n                ),\n                name: t('common:transport-order-details.route-details.columns.pickup-trailer'),\n                value: <LocationLabel format=\"pickup_asset_s1_s2_zip_city_country\" location={waypoint?.address} />,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                rows: [...getTimeSlotRows(waypoint), ...getDriverArrivedLeftRows(waypoint, { isLast: true })],\n            },\n        ];\n\n        return <InfoTable key={waypoint.id} shouldRenderIcons rows={rows} className={cx('table')} />;\n    };\n\n    const renderPickupTrainWaypoint = (waypoint: TransportOrderDetailsT['waypoints'][number]) => {\n        const rows: Array<InfoTableRowT> = [\n            {\n                icon: <LinkPickUpIcon strokeColor={StyleGuideColorsEnum.gray} />,\n                name: t('common:transport-order-details.route-details.columns.pickup-train'),\n                value: <LocationLabel format=\"pickup_asset_s1_s2_zip_city_country\" location={waypoint?.address} />,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                rows: [...getTimeSlotRows(waypoint), ...getDriverArrivedLeftRows(waypoint, { isLast: true })],\n            },\n        ];\n\n        return <InfoTable key={waypoint.id} shouldRenderIcons rows={rows} className={cx('table')} />;\n    };\n\n    const renderDropoffTrainWaypoint = (waypoint: TransportOrderDetailsT['waypoints'][number]) => {\n        const rows: Array<InfoTableRowT> = [\n            {\n                icon: <LinkDropOffIcon strokeColor={StyleGuideColorsEnum.gray} />,\n                name: t('common:transport-order-details.route-details.columns.drop-train'),\n                value: <LocationLabel format=\"dropoff_asset_s1_s2_zip_city_country\" location={waypoint?.address} />,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                rows: [...getTimeSlotRows(waypoint), ...getDriverArrivedLeftRows(waypoint, { isLast: true })],\n            },\n        ];\n\n        return <InfoTable key={waypoint.id} shouldRenderIcons rows={rows} className={cx('table')} />;\n    };\n\n    const renderDropoffTruckWaypoint = (waypoint: TransportOrderDetailsT['waypoints'][number]) => {\n        const rows: Array<InfoTableRowT> = [\n            {\n                icon: (\n                    <TruckDropOffIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.gray}\n                        fillColor={StyleGuideColorsEnum.light}\n                    />\n                ),\n                name: t('common:transport-order-details.route-details.columns.drop-truck'),\n                value: <LocationLabel format=\"dropoff_asset_s1_s2_zip_city_country\" location={waypoint?.address} />,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                rows: [...getTimeSlotRows(waypoint), ...getDriverArrivedLeftRows(waypoint, { isLast: true })],\n            },\n        ];\n\n        return <InfoTable key={waypoint.id} shouldRenderIcons rows={rows} className={cx('table')} />;\n    };\n\n    const renderDropoffTrailerWaypoint = (waypoint: TransportOrderDetailsT['waypoints'][number]) => {\n        const rows: Array<InfoTableRowT> = [\n            {\n                icon: (\n                    <TrailerDropOffIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.gray}\n                        fillColor={StyleGuideColorsEnum.light}\n                    />\n                ),\n                name: t('common:transport-order-details.route-details.columns.drop-trailer'),\n                value: <LocationLabel format=\"dropoff_asset_s1_s2_zip_city_country\" location={waypoint?.address} />,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                rows: [...getTimeSlotRows(waypoint), ...getDriverArrivedLeftRows(waypoint, { isLast: true })],\n            },\n        ];\n\n        return <InfoTable key={waypoint.id} shouldRenderIcons rows={rows} className={cx('table')} />;\n    };\n\n    const renderDriveThroughWaypoint = (waypoint: TransportOrderDetailsT['waypoints'][number]) => {\n        const waypointNumber = (waypoint?.index || 0) + 1;\n        const rows: Array<InfoTableRowT> = [\n            {\n                icon: <NumberIcon number={waypointNumber} fillColor={StyleGuideColorsEnum.gray} />,\n                name: t('common:transport-order-details.route-details.columns.waypoint-number', {\n                    number: waypointNumber,\n                }),\n                value: <LocationLabel format=\"s1_s2_zip_city_country\" location={waypoint?.address} />,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                rows: [...getTimeSlotRows(waypoint), ...getDriverArrivedLeftRows(waypoint, { isLast: true })],\n            },\n        ];\n\n        return <InfoTable key={waypoint.id} shouldRenderIcons rows={rows} className={cx('table')} />;\n    };\n\n    const renderDropAndHookWaypoint = (waypoint: TransportOrderDetailsT['waypoints'][number]) => {\n        const waypointNumber = (waypoint?.index || 0) + 1;\n\n        const rows: Array<InfoTableRowT> = [\n            {\n                icon: <NumberIcon number={waypointNumber} fillColor={StyleGuideColorsEnum.gray} />,\n                name: t('common:transport-order-details.route-details.columns.waypoint-number', {\n                    number: waypointNumber,\n                }),\n                value: <LocationLabel format=\"s1_s2_zip_city_country\" location={waypoint?.address} />,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                rows: [...getTimeSlotRows(waypoint), ...getDriverArrivedLeftRows(waypoint, { isLast: true })],\n            },\n        ];\n\n        return <InfoTable key={waypoint.id} shouldRenderIcons rows={rows} className={cx('table')} />;\n    };\n\n    const renderFerryOnboardWaypoint = (waypoint: TransportOrderDetailsT['waypoints'][number]) => {\n        const rows: Array<InfoTableRowT> = [\n            {\n                icon: (\n                    <BoatIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.gray}\n                        fillColor={StyleGuideColorsEnum.light}\n                    />\n                ),\n                name: t('common:transport-order-details.route-details.columns.ferry-onboard'),\n                value: <LocationLabel format=\"s1_s2_zip_city_country\" location={waypoint?.address} />,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                rows: [...getTimeSlotRows(waypoint), ...getDriverArrivedLeftRows(waypoint, { isLast: true })],\n            },\n        ];\n\n        return <InfoTable key={waypoint.id} shouldRenderIcons rows={rows} className={cx('table')} />;\n    };\n\n    const renderFerryDisembarkWaypoint = (waypoint: TransportOrderDetailsT['waypoints'][number]) => {\n        const rows: Array<InfoTableRowT> = [\n            {\n                icon: (\n                    <BoatIcon\n                        size={DEFAULT_ICON_SIZE}\n                        strokeColor={StyleGuideColorsEnum.gray}\n                        fillColor={StyleGuideColorsEnum.light}\n                    />\n                ),\n                name: t('common:transport-order-details.route-details.columns.ferry-disembark'),\n                value: <LocationLabel format=\"s1_s2_zip_city_country\" location={waypoint?.address} />,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                rows: [...getTimeSlotRows(waypoint), ...getDriverArrivedLeftRows(waypoint, { isLast: true })],\n            },\n        ];\n\n        return <InfoTable key={waypoint.id} shouldRenderIcons rows={rows} className={cx('table')} />;\n    };\n\n    const renderPickupDeliveryWaypoint = (waypoint: TransportOrderDetailsT['waypoints'][number]) => {\n        const waypointNumber = (waypoint.index || 0) + 1;\n\n        const rows: Array<InfoTableRowT> = [\n            {\n                icon: <NumberIcon number={waypointNumber} fillColor={StyleGuideColorsEnum.charcoal} />,\n                name: t('common:transport-order-details.route-details.columns.waypoint-number', {\n                    number: waypointNumber,\n                }),\n                value: <LocationLabel format=\"s1_s2_zip_city_country\" location={waypoint?.address} />,\n                valueMods: { emptyPlaceholder: t('common:info-table.placeholders.not-specified'), isBold: true },\n                rows: [\n                    ...getTimeSlotRows(waypoint),\n                    ...getDriverArrivedLeftRows(waypoint, { isLast: false }),\n                    {\n                        icon: null,\n                        name: t('common:transport-order-details.route-details.columns.company-name'),\n                        value: waypoint?.contact?.companyName,\n                        valueMods: {\n                            emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                            isBold: true,\n                        },\n                        testSelector: 'contact-company-name',\n                        hasBottomBorder: true,\n                    },\n                    {\n                        icon: null,\n                        name: t('common:transport-order-details.route-details.columns.contact-name'),\n                        value: waypoint?.contact?.fullName,\n                        valueMods: {\n                            emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                            isBold: true,\n                        },\n                        hasBottomBorder: true,\n                    },\n                    {\n                        icon: null,\n                        name: t('common:transport-order-details.route-details.columns.contact-phone'),\n                        value: waypoint?.contact?.phone,\n                        valueMods: {\n                            emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                            isBold: true,\n                        },\n                        hasBottomBorder: true,\n                    },\n                    {\n                        icon: null,\n                        name: t('common:transport-order-details.route-details.columns.contact-email'),\n                        value: waypoint?.contact?.email,\n                        valueMods: {\n                            emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                            isBold: true,\n                        },\n                        hasBottomBorder: true,\n                    },\n                    {\n                        icon: null,\n                        name: t('common:transport-order-details.route-details.columns.comments'),\n                        value: waypoint?.contact?.comment,\n                        valueMods: {\n                            emptyPlaceholder: t('common:info-table.placeholders.not-specified'),\n                            isBold: true,\n                        },\n                    },\n                ],\n            },\n        ];\n\n        return <InfoTable key={waypoint.id} shouldRenderIcons rows={rows} className={cx('table')} />;\n    };\n\n    const waypointCount = transportOrderDetails?.waypoints?.length;\n    return (\n        <>\n            <Card\n                titleNode={t('common:transport-order-details.route-details.title')}\n                rightNode={\n                    isNumber(waypointCount) ? (\n                        <PillLabel theme={PillLabelThemeEnum.slate} isSymmetrical>\n                            {t('common:transport-order-details.route-details.waypoint-counts', {\n                                number: waypointCount,\n                            })}\n                        </PillLabel>\n                    ) : null\n                }\n                className={className}\n                hasHeaderBottomBorder\n            >\n                <div className={cx('content')}>\n                    {transportOrderDetails?.waypoints?.map((waypoint) => {\n                        switch (waypoint.type) {\n                            case StopTypeEnum.pickupTrailer: {\n                                return renderPickupTrailerWaypoint(waypoint);\n                            }\n                            case StopTypeEnum.pickupTruck: {\n                                return renderPickupTruckWaypoint(waypoint);\n                            }\n                            case StopTypeEnum.pickupRoadTrain: {\n                                return renderPickupTrainWaypoint(waypoint);\n                            }\n                            case StopTypeEnum.pickupDeliveryShipment: {\n                                return renderPickupDeliveryWaypoint(waypoint);\n                            }\n                            case StopTypeEnum.driveThrough: {\n                                return renderDriveThroughWaypoint(waypoint);\n                            }\n                            case StopTypeEnum.dropAndHook: {\n                                return renderDropAndHookWaypoint(waypoint);\n                            }\n                            case StopTypeEnum.ferryOnboard: {\n                                return renderFerryOnboardWaypoint(waypoint);\n                            }\n                            case StopTypeEnum.ferryDisembark: {\n                                return renderFerryDisembarkWaypoint(waypoint);\n                            }\n                            case StopTypeEnum.dropTrailer: {\n                                return renderDropoffTrailerWaypoint(waypoint);\n                            }\n                            case StopTypeEnum.dropTruck: {\n                                return renderDropoffTruckWaypoint(waypoint);\n                            }\n                            case StopTypeEnum.dropRoadTrain: {\n                                return renderDropoffTrainWaypoint(waypoint);\n                            }\n                            default: {\n                                return null;\n                            }\n                        }\n                    })}\n                </div>\n            </Card>\n        </>\n    );\n});\n\nexport default RouteDetailsCard;\n","import * as React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport moment, { Moment } from 'moment';\n\nimport { selectCurrentUser } from 'common/store/user/selectors';\nimport { signOut } from 'common/store/auth/actions';\nimport { selectSignOutRequestStatus } from 'common/store/auth/selectors';\n\nimport classNames from 'classnames/bind';\nimport styles from './AccountPreview.scss';\nimport { useTranslation } from 'react-i18next';\nimport SignOutIcon from './icons/SignOutIcon';\nimport { MS_IN_MIN } from 'common/utils/time';\nimport Avatar, { AvatarSizeEnum } from 'common/components/Avatar/Avatar';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {};\n\nconst AccountPreview: React.FC<PropsT> = () => {\n    const { t } = useTranslation();\n    const dispatch = useDispatch();\n    const user = useSelector(selectCurrentUser);\n    const signOutRequest = useSelector(selectSignOutRequestStatus);\n\n    const handleSignOut = () => {\n        dispatch(signOut());\n    };\n\n    const [date, setDate] = React.useState<Moment>(moment());\n    setInterval(() => {\n        setDate(moment());\n    }, MS_IN_MIN);\n\n    const timezoneLabel = moment().format('Z');\n\n    return (\n        <div className={cx('inner')}>\n            <Avatar className={cx('avatar')} hash={user?.email || ''} size={AvatarSizeEnum.extraLarge} />\n            <div className={cx('full-name')} data-test-selector=\"user-full-name\">\n                {user?.fullName}\n            </div>\n            <div className={cx('email')} data-test-selector=\"user-email\">\n                {user?.email}\n            </div>\n            <div className={cx('time')} data-test-selector=\"user-local-time\">\n                {t('common:account-page.time')}: {date.format('hh:mm A')} {timezoneLabel ? `(${timezoneLabel})` : ''}\n            </div>\n            <Button\n                className={cx('sign-out')}\n                theme={ButtonThemeEnum.secondary}\n                isLoading={signOutRequest.loading}\n                onClick={handleSignOut}\n                testSelector=\"sign-out\"\n                leftIcon={<SignOutIcon />}\n            >\n                {t('common:account-page.sign-out-button')}\n            </Button>\n        </div>\n    );\n};\n\nexport default AccountPreview;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './ReviewFooterContent.scss';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useTranslation } from 'react-i18next';\nimport RemoteFormActionsContext from 'common/contexts/remote-form-actions';\nimport { useSelector } from 'react-redux';\nimport { selectUpdateCarrierContractRequest } from 'common/store/carrier-contracts/selectors';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    onReject: () => void;\n    partnerId: PartnerIdT | null;\n};\n\nconst ReviewFooterContent: React.FC<PropsT> = React.memo((props) => {\n    const { onReject, partnerId } = props;\n\n    const remoteFormActionsContext = React.useContext(RemoteFormActionsContext);\n\n    const updateContractRequest = useSelector(selectUpdateCarrierContractRequest(partnerId));\n\n    const { t } = useTranslation();\n\n    const isLoading = updateContractRequest.loading;\n\n    return (\n        <div className={cx('content')}>\n            <div className={cx('actions')}>\n                <Button\n                    theme={ButtonThemeEnum.danger}\n                    className={cx('action', 'action--reject')}\n                    onClick={onReject}\n                    isDisabled={isLoading}\n                >\n                    {t('common:carrier-contracts.actions.reject')}\n                </Button>\n                <Button\n                    theme={ButtonThemeEnum.primary}\n                    className={cx('action', 'action--approve')}\n                    onClick={remoteFormActionsContext?.remoteFormCallbacks?.submit}\n                    isLoading={isLoading}\n                    isDisabled={isLoading}\n                >\n                    {t('common:carrier-contracts.actions.approve')}\n                </Button>\n            </div>\n        </div>\n    );\n});\n\nexport default ReviewFooterContent;\n","// extracted by mini-css-extract-plugin\nexport default {\"option\":\"PriceComponentTypeMultipleDropdown__option___dvZ6G\",\"overlay\":\"PriceComponentTypeMultipleDropdown__overlay___COSO_\",\"fadeIn\":\"PriceComponentTypeMultipleDropdown__fadeIn___W7Zip\",\"blinking\":\"PriceComponentTypeMultipleDropdown__blinking___F6Yq_\"};","import { PartnerTypeEnum, ApiPartnerTypeT } from 'common/utils/api/models';\n\nexport type PartnerTypeParamT = 'shipper' | 'carrier' | 'broker';\n\nexport const formatPartnerTypeParam = (apiPartnerType: ApiPartnerTypeT): PartnerTypeParamT => {\n    const map: Record<ApiPartnerTypeT, PartnerTypeParamT> = {\n        [PartnerTypeEnum.shipper]: 'shipper',\n        [PartnerTypeEnum.carrier]: 'carrier',\n        [PartnerTypeEnum.broker]: 'broker',\n    };\n    return map[apiPartnerType];\n};\n\nexport const parsePartnerTypeParam = (partnerTypeParams: string): PartnerTypeEnum => {\n    const map: Record<PartnerTypeParamT, PartnerTypeEnum> = {\n        shipper: PartnerTypeEnum.shipper,\n        carrier: PartnerTypeEnum.carrier,\n        broker: PartnerTypeEnum.broker,\n    };\n\n    const result = map[partnerTypeParams as PartnerTypeParamT];\n    if (!result) {\n        throw new Error('wrong partnerTypeParams! not enum');\n    }\n\n    return result;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"ExcludedCountry__wrap___x6Hyr\",\"inner\":\"ExcludedCountry__inner____bcmJ\",\"flag\":\"ExcludedCountry__flag____ykNm\",\"close\":\"ExcludedCountry__close___D3YfH\",\"fadeIn\":\"ExcludedCountry__fadeIn___8cGpv\",\"blinking\":\"ExcludedCountry__blinking___V32K5\"};","import * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport GoogleMapReact, { ClickEventValue } from 'google-map-react';\nimport { BOOTSTRAP_URL_KEYS, DEFAULT_CENTER, DEFAULT_ZOOM, MAP_OPTIONS } from 'common/store/constants';\nimport useGoogleMapsApiLoader from 'common/utils/hooks/maps/useGoogleMapsApiLoader';\nimport { useGoogleMapContext } from 'common/utils/hooks/maps/useGoogleMapContext';\nimport isNumber from 'lodash/isNumber';\nimport { useGoogleMapGeocoding } from 'common/utils/hooks/maps/useGoogleMapGeocoding';\nimport { isNonNil } from 'common/utils';\nimport { useRouteGeometry } from 'common/utils/hooks/useRouteGeometry';\nimport {\n    MapRoutePointT,\n    OnSetMapBoundingBoxCallbackT,\n    SyncRouteEditFormMapStateContext,\n} from '../contexts/sync-map-state';\nimport { EditOrderContextT, RoutePointTypeEnum } from '../../../../store/order-edit-context/models';\nimport MapLoader from 'common/components/maps/MapLoader/MapLoader';\nimport MapRoute, { MapRouteThemeEnum } from 'common/components/maps/MapRoute/MapRoute';\nimport { useSelector } from 'react-redux';\nimport { selectRoutingGeometryStates } from 'common/store/routing-geometry/selectors';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport NumberPinIcon from 'common/icons/NumberPinIcon';\nimport classNames from 'classnames/bind';\n\nimport styles from './RouteEditMap.scss';\nimport {\n    selectIsApplyingContextChanges,\n    selectOrderEditCreateContextRequest,\n} from '../../../../store/order-edit-context/selectors';\nimport keyBy from 'lodash/keyBy';\nimport FerryLocationPin from 'common/components/maps/pins/FerryLocationPin/FerryLocationPin';\nimport { MapPinThemeEnum } from 'common/components/maps/MapPin/MapPin';\n\nconst KEY_SPREADER = '/';\nconst KEY_PREFIX = 'route-point';\n\nconst formatKey = (routePointId: string): string => {\n    return [KEY_PREFIX, routePointId].join(KEY_SPREADER);\n};\n\nconst parseKey = (key: string): string => {\n    const [, routePointId] = key.split(KEY_SPREADER);\n    return routePointId;\n};\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    context: EditOrderContextT | null;\n};\n\nconst RouteEditMap: React.FC<PropsT> = React.memo((props) => {\n    const { context } = props;\n\n    const { googleMaps } = useGoogleMapContext();\n    const { onGoogleApiLoaded } = useGoogleMapsApiLoader({});\n    const { tryGeocodeByPoint } = useGoogleMapGeocoding();\n\n    const createContextRequest = useSelector(selectOrderEditCreateContextRequest);\n    const isApplyingContextChanges = useSelector(selectIsApplyingContextChanges);\n\n    const isLoading = isApplyingContextChanges || createContextRequest?.loading;\n\n    const syncMapStateContext = useContext(SyncRouteEditFormMapStateContext);\n    const { mapRoutePoints } = syncMapStateContext;\n\n    const mapRoutePointsById = React.useMemo(() => {\n        return keyBy(mapRoutePoints, 'id');\n    }, [mapRoutePoints]);\n\n    const draggablePinRef = React.useRef<string | null>(null);\n    const [activeLocation, setActiveLocation] = React.useState<LocationT | null>(null);\n    const [draggable, setDraggable] = React.useState(true);\n\n    const handleDragMove = (childKey: string, childProps: any, mouse: GeoPointT) => {\n        const routePointId = parseKey(childKey);\n        const mapRoutePoint = mapRoutePointsById[routePointId] || null;\n        if (!mapRoutePoint?.isDraggable) {\n            return;\n        }\n\n        setDraggable(false);\n\n        draggablePinRef.current = childKey;\n\n        setActiveLocation({\n            point: {\n                lat: mouse.lat,\n                lng: mouse.lng,\n            },\n            address: null,\n            addressComponents: null,\n            utcOffsetMinutes: null,\n        });\n    };\n\n    React.useEffect(() => {\n        setActiveLocation(null);\n        draggablePinRef.current = null;\n    }, [mapRoutePoints]);\n\n    const handleDragEnd = async (childKey: string, childProps: any, mouse: GeoPointT) => {\n        if (draggablePinRef.current !== childKey) {\n            return;\n        }\n\n        setDraggable(true);\n\n        const location = await tryGeocodeByPoint(mouse);\n\n        const routePointId = parseKey(childKey);\n\n        syncMapStateContext.onDragEndDnDCallback?.callback?.(routePointId, location);\n    };\n\n    const handleMapClick = async (event: ClickEventValue) => {\n        const location = await tryGeocodeByPoint(event);\n        syncMapStateContext.onMapClickCallback?.callback?.(location);\n    };\n\n    const prevBoundingBoxHashRef = React.useRef<string>('');\n    const onSetMapBoundingBoxCallback: OnSetMapBoundingBoxCallbackT = React.useCallback(\n        (boundPoints) => {\n            if (!boundPoints) {\n                return;\n            }\n\n            const boundingBoxHashRef = JSON.stringify(boundPoints);\n            if (prevBoundingBoxHashRef.current === boundingBoxHashRef) {\n                return;\n            }\n\n            prevBoundingBoxHashRef.current = boundingBoxHashRef;\n\n            if (!googleMaps.map || !googleMaps.maps) {\n                return;\n            }\n            const { map, maps } = googleMaps;\n\n            const bounds = new maps.LatLngBounds();\n\n            boundPoints.forEach((boundPoint) => {\n                const [latitude, longitude] = boundPoint;\n                if (isNumber(latitude) && isNumber(longitude)) {\n                    const latLng = new maps.LatLng(latitude, longitude);\n                    bounds.extend(latLng);\n                }\n            });\n\n            map.fitBounds(bounds);\n        },\n        [googleMaps, prevBoundingBoxHashRef],\n    );\n\n    React.useEffect(() => {\n        syncMapStateContext.setOnSetMapBoundingBox({\n            callback: onSetMapBoundingBoxCallback,\n        });\n\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [onSetMapBoundingBoxCallback, syncMapStateContext.setOnSetMapBoundingBox]);\n\n    const oldPolylineIds = useMemo(() => {\n        return context?.oldTourData?.map((tour) => tour.polylineId).filter(isNonNil) || [];\n    }, [context]);\n\n    const oldPayloadGeometryStates = useSelector(selectRoutingGeometryStates(oldPolylineIds));\n\n    useRouteGeometry(oldPolylineIds);\n\n    const newPolylineIds = useMemo(() => {\n        return context?.tours?.map((tour) => tour.polylineId).filter(isNonNil) || [];\n    }, [context]);\n\n    const newPayloadGeometryStates = useSelector(selectRoutingGeometryStates(newPolylineIds));\n\n    useRouteGeometry(newPolylineIds);\n\n    const renderRoutePointPin = (mapRoutePoint: MapRoutePointT): React.ReactNode => {\n        const key = formatKey(mapRoutePoint.id);\n\n        let latLngProps = {};\n        if (draggablePinRef.current === key) {\n            if (!activeLocation?.point) {\n                return null;\n            }\n\n            latLngProps = {\n                lat: activeLocation.point.lat,\n                lng: activeLocation.point.lng,\n            };\n        } else {\n            if (!mapRoutePoint?.location?.point) {\n                return null;\n            }\n\n            latLngProps = {\n                lat: mapRoutePoint.location.point?.lat,\n                lng: mapRoutePoint.location.point?.lng,\n            };\n        }\n\n        if (\n            mapRoutePoint.type === RoutePointTypeEnum.ferryDisembark ||\n            mapRoutePoint.type === RoutePointTypeEnum.ferryOnboard\n        ) {\n            let theme = MapPinThemeEnum.charcoal;\n            if (mapRoutePoint.isNew) {\n                theme = MapPinThemeEnum.blazeOrange;\n            }\n            if (mapRoutePoint.hasError) {\n                theme = MapPinThemeEnum.tomatoRed;\n            }\n\n            return (\n                <FerryLocationPin\n                    key={key}\n                    className={cx('route-point-pin', 'route-point-pin--ferry')}\n                    {...latLngProps}\n                    theme={theme}\n                />\n            );\n        }\n\n        let fillColor = StyleGuideColorsEnum.charcoal;\n        if (mapRoutePoint.type === RoutePointTypeEnum.driveThrough) {\n            fillColor = StyleGuideColorsEnum.gray;\n        }\n\n        if (mapRoutePoint.isNew) {\n            fillColor = StyleGuideColorsEnum.blazeOrange;\n        }\n        if (mapRoutePoint.hasError) {\n            fillColor = StyleGuideColorsEnum.tomatoRed;\n        }\n\n        return (\n            <NumberPinIcon\n                number={mapRoutePoint.number}\n                key={key}\n                className={cx('route-point-pin', 'route-point-pin--number')}\n                fillColor={fillColor}\n                {...latLngProps}\n            />\n        );\n    };\n\n    const fixReRenderRouteKey = `${mapRoutePoints?.length || 0}`;\n\n    return (\n        <>\n            {isLoading && <MapLoader />}\n            <GoogleMapReact\n                key=\"broker-order-route-edit\"\n                onGoogleApiLoaded={onGoogleApiLoaded}\n                yesIWantToUseGoogleMapApiInternals\n                draggable={draggable}\n                center={undefined}\n                zoom={undefined}\n                defaultCenter={DEFAULT_CENTER}\n                defaultZoom={DEFAULT_ZOOM}\n                bootstrapURLKeys={BOOTSTRAP_URL_KEYS}\n                onClick={handleMapClick}\n                options={MAP_OPTIONS}\n                onChildMouseDown={handleDragMove}\n                onChildMouseUp={handleDragEnd}\n                onChildMouseMove={handleDragMove}\n            >\n                {mapRoutePoints.map((mapRoutePoint) => {\n                    return renderRoutePointPin(mapRoutePoint);\n                })}\n            </GoogleMapReact>\n            {!isLoading && (\n                <>\n                    {newPayloadGeometryStates.map((newPayloadGeometryState, index) => {\n                        return (\n                            <MapRoute\n                                key={`new-route-${index}-${fixReRenderRouteKey}`}\n                                map={googleMaps?.map}\n                                maps={googleMaps?.maps}\n                                geometryLibrary={googleMaps?.libraries?.geometry}\n                                polylines={newPayloadGeometryState.data}\n                                theme={MapRouteThemeEnum.editOrderNew}\n                                zIndex={0}\n                            />\n                        );\n                    })}\n                </>\n            )}\n            {oldPayloadGeometryStates.map((oldPayloadGeometryState, index) => {\n                return (\n                    <MapRoute\n                        key={`old-route-${index}-${fixReRenderRouteKey}`}\n                        map={googleMaps?.map}\n                        maps={googleMaps?.maps}\n                        geometryLibrary={googleMaps?.libraries?.geometry}\n                        polylines={oldPayloadGeometryState.data}\n                        theme={MapRouteThemeEnum.editOrderOld}\n                        zIndex={1}\n                    />\n                );\n            })}\n        </>\n    );\n});\n\nexport default RouteEditMap;\n","import { fetchStateMachineSteps } from 'common/store/state-machine/slice';\nimport * as React from 'react';\nimport { useEffect } from 'react';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { stateMachineRefreshChannel } from 'common/store/state-machine/channels';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { StateMachineEntityDescriptorT } from 'common/store/state-machine/models';\nimport { selectStateMachineItemState } from 'common/store/state-machine/selectors';\nimport useDocumentVisibilityChange from 'common/utils/hooks/useDocumentVisibilityChange';\n\nexport const useStateMachine = <T extends string>(\n    descriptor: StateMachineEntityDescriptorT | null,\n    { isAllowFetch }: { isAllowFetch: boolean },\n) => {\n    const dispatch = useDispatch();\n\n    useEffect(() => {\n        if (!descriptor || !isAllowFetch) {\n            return;\n        }\n\n        dispatch(\n            fetchStateMachineSteps({\n                descriptor,\n            }),\n        );\n    }, [dispatch, descriptor, isAllowFetch]);\n\n    const refreshPageHandler = React.useCallback(() => {\n        if (!descriptor || !isAllowFetch) {\n            return;\n        }\n\n        dispatch(\n            fetchStateMachineSteps({\n                descriptor,\n                options: {\n                    isForceUpdate: true,\n                },\n            }),\n        );\n    }, [dispatch, descriptor, isAllowFetch]);\n    useChannelSubscribe(stateMachineRefreshChannel, refreshPageHandler);\n\n    const documentVisibilityChangeHandler = React.useCallback(() => {\n        if (!descriptor || !isAllowFetch) {\n            return;\n        }\n\n        dispatch(\n            fetchStateMachineSteps({\n                descriptor,\n            }),\n        );\n    }, [dispatch, descriptor, isAllowFetch]);\n    useDocumentVisibilityChange(documentVisibilityChangeHandler);\n\n    return useSelector(selectStateMachineItemState<T>(descriptor));\n};\n","import { StateT } from 'broker-admin/store/models';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\n\nexport const selectBrokerOrderEditUpdateRequestStatus =\n    (brokerOrderId: BrokerOrderIdT | null | undefined) =>\n    (state: StateT): RequestStatusT =>\n        state.brokerOrderEdit.updateById[brokerOrderId as BrokerOrderIdT] || requestStatus.initial;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './LastAssetTrackPointPin.scss';\nimport TrailerIcon from 'common/icons/TrailerIcon';\nimport TruckIcon from 'common/icons/TruckIcon';\nimport { AssetTypeEnum, DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport MapTooltip from 'common/components/maps/MapTooltip/MapTooltip';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { formatTime } from 'common/utils/time';\nimport { useTranslation } from 'react-i18next';\nimport { MapPinThemeEnum } from 'common/components/maps/MapPin/MapPin';\nimport IconWithNumber from 'common/components/IconWithNumber/IconWithNumber';\nimport isNumber from 'lodash/isNumber';\n\ntype PropsT = {\n    iconType: AssetTypeEnum;\n    timestamp: number | null;\n    lat?: number;\n    lng?: number;\n    number?: number | null;\n    className?: string;\n};\n\nconst cx = classNames.bind(styles);\n\nconst iconTypeMap: Record<\n    AssetTypeEnum,\n    React.FC<{\n        fillColor: StyleGuideColorsEnum;\n        strokeColor: StyleGuideColorsEnum;\n        size: number;\n    }>\n> = {\n    [AssetTypeEnum.trailer]: TrailerIcon,\n    [AssetTypeEnum.truck]: TruckIcon,\n};\n\nconst LastAssetTrackPointPin: React.FC<PropsT> = React.memo((props) => {\n    const { lat, lng, timestamp, iconType, number, className } = props;\n\n    const { t } = useTranslation();\n\n    const IconComponent = iconTypeMap[iconType];\n\n    const shouldShowNumber = isNumber(number);\n\n    return (\n        <MapTooltip\n            lat={lat}\n            lng={lng}\n            contentClassName={className}\n            mapLayers={{ regular: 1, hovered: 1 }}\n            theme={MapPinThemeEnum.brandDark}\n        >\n            {() => (\n                <Tooltip\n                    tooltipNode={\n                        timestamp ? (\n                            <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                                <span className={cx('last-track-point-updated')}>\n                                    {t('common:last-track-point-updated', {\n                                        time: timestamp ? formatTime(timestamp) : null,\n                                    })}\n                                </span>\n                            </TooltipContent>\n                        ) : null\n                    }\n                    delay={0}\n                    position={TooltipPositionEnum.topCenter}\n                    theme={TooltipThemeEnum.black}\n                    className={cx('inner', { 'inner--has-paddings': !shouldShowNumber })}\n                >\n                    {() => (\n                        <IconWithNumber number={number}>\n                            <IconComponent\n                                fillColor={StyleGuideColorsEnum.brandDark}\n                                strokeColor={StyleGuideColorsEnum.white}\n                                size={DEFAULT_ICON_SIZE}\n                            />\n                        </IconWithNumber>\n                    )}\n                </Tooltip>\n            )}\n        </MapTooltip>\n    );\n});\n\nexport default LastAssetTrackPointPin;\n","// extracted by mini-css-extract-plugin\nexport default {\"status\":\"StatusCell__status___vUrt4\",\"fadeIn\":\"StatusCell__fadeIn___LhO9O\",\"blinking\":\"StatusCell__blinking___OqNG_\"};","import { ViewEventChannel } from 'common/utils/view-event-channel';\nimport { PapersEditRefreshChannelEventT } from './models';\n\nexport const papersEditRefreshChannel = new ViewEventChannel<PapersEditRefreshChannelEventT>();\n","// extracted by mini-css-extract-plugin\nexport default {\"fadeIn\":\"EvidenceOfTaxDetailsForm__fadeIn___CGzX2\",\"blinking\":\"EvidenceOfTaxDetailsForm__blinking___BHFQj\"};","import { TFunction } from 'i18next';\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkNotEmpty } from 'common/utils/form-validators';\nimport values from 'lodash/values';\n\nconst REQUIRED_FIELDS = values<FieldsEnum>(FieldsEnum);\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","import { put, select, takeEvery } from 'redux-saga/effects';\nimport { fetchSpotRequestsBegin, fetchSpotRequestsStatsError, fetchSpotRequestsStatsSuccess } from './actions';\nimport { FETCH_SPOT_REQUESTS_STATS_REQUEST, FetchSpotRequestsStatsActionT } from './types';\nimport checkNeedRequest from 'common/utils/check-need-request';\nimport { selectSpotRequestsStatsRequest } from './selectors';\nimport { FetchSpotRequestsPageActionT } from 'broker-admin/store/spot-requests/types';\nimport spotBrokerTranziitApi from 'broker-admin/utils/api/spot-broker-tranziit/api';\n\nfunction* fetchSpotRequestsStatsSaga(\n    actions: FetchSpotRequestsStatsActionT | FetchSpotRequestsPageActionT,\n): WrapGeneratorT<void> {\n    const { options } = actions;\n\n    const requestStatus: ReturnType<typeof selectSpotRequestsStatsRequest> = yield select(\n        selectSpotRequestsStatsRequest,\n    );\n\n    const isNeedRequest = checkNeedRequest(requestStatus, options);\n    if (!isNeedRequest) {\n        return;\n    }\n\n    yield put(fetchSpotRequestsBegin());\n\n    const [error, response]: ReturnApiT<typeof spotBrokerTranziitApi.fetchSpotRequestsStats> =\n        yield spotBrokerTranziitApi.fetchSpotRequestsStats();\n    if (error) {\n        yield put(fetchSpotRequestsStatsError(error));\n        return;\n    }\n\n    yield put(fetchSpotRequestsStatsSuccess(response));\n}\n\nfunction* spotRequestsStatsSaga(): WrapGeneratorT<void> {\n    yield takeEvery(FETCH_SPOT_REQUESTS_STATS_REQUEST, fetchSpotRequestsStatsSaga);\n}\n\nexport default spotRequestsStatsSaga;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    strokeColor: StyleGuideColorsEnum;\n    className?: string;\n};\n\nconst CalendarAltIcon: React.FC<PropsT> = (props) => {\n    const { size, strokeColor, className } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} className={className} viewBox=\"0 0 20 20\">\n            <path\n                fill={strokeColor}\n                fillRule=\"evenodd\"\n                d=\"M6.889 3v1.5h6.222V3h1.556v1.5h.777C16.3 4.5 17 5.175 17 6v9.5c0 .825-.7 1.5-1.556 1.5H4.556C3.692 17 3 16.325 3 15.5L3.008 6c0-.825.684-1.5 1.548-1.5h.777V3H6.89zM15 8H5v7h10V8zm-5 2v3H7v-3h3z\"\n            />\n        </svg>\n    );\n};\n\nCalendarAltIcon.displayName = 'CalendarAltIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default CalendarAltIcon;\n","import * as React from 'react';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport { useTranslation } from 'react-i18next';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport RouteIcon from 'common/icons/RouteIcon';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport { isNonNil } from 'common/utils';\n\nexport type RouteSwitchValueT = RouteTypeEnum | null;\n\nexport enum RouteTypeEnum {\n    shipperRoute = 'shipper-route',\n    estimateCarrierRoute = 'estimate-carrier-route',\n    carrierRoute = 'carrier-route',\n}\n\ntype RouteSwitchDropdownOptionT = {\n    label: React.ReactNode;\n    value: RouteSwitchValueT;\n};\n\ntype PropsT = {\n    className?: string;\n    value: RouteSwitchValueT;\n    onChange: (value: RouteSwitchValueT) => void;\n\n    isDisabledEstimateCarrierRoute: boolean;\n    isDisabledShipperRoute: boolean;\n    isDisabledCarrierRoute: boolean;\n};\n\nconst RouteSwitchDropdown: React.FC<PropsT> = React.memo((props) => {\n    const {\n        className,\n        value,\n        onChange,\n        isDisabledEstimateCarrierRoute,\n        isDisabledCarrierRoute,\n        isDisabledShipperRoute,\n    } = props;\n\n    const { t } = useTranslation();\n\n    const routeTypeOptions: Array<RouteSwitchDropdownOptionT> = React.useMemo(\n        () =>\n            [\n                isDisabledShipperRoute\n                    ? null\n                    : {\n                          label: (\n                              <DropdownControlOptionLabel\n                                  withoutPaddings\n                                  label={t('common-components.route-type-switcher.shipper-route')}\n                              />\n                          ),\n                          value: RouteTypeEnum.shipperRoute,\n                      },\n                isDisabledEstimateCarrierRoute\n                    ? null\n                    : {\n                          label: (\n                              <DropdownControlOptionLabel\n                                  withoutPaddings\n                                  label={t('common-components.route-type-switcher.estimate-carrier-route')}\n                              />\n                          ),\n                          value: RouteTypeEnum.estimateCarrierRoute,\n                      },\n                isDisabledCarrierRoute\n                    ? null\n                    : {\n                          label: (\n                              <DropdownControlOptionLabel\n                                  withoutPaddings\n                                  label={t('common-components.route-type-switcher.carrier-route')}\n                              />\n                          ),\n                          value: RouteTypeEnum.carrierRoute,\n                      },\n            ].filter(isNonNil),\n        [t, isDisabledEstimateCarrierRoute, isDisabledCarrierRoute, isDisabledShipperRoute],\n    );\n\n    return (\n        <DropdownInput<RouteSwitchDropdownOptionT, RouteSwitchValueT>\n            className={className}\n            selectedValue={value}\n            options={routeTypeOptions}\n            onSelect={onChange}\n            renderOption={(option) => {\n                if (!option) {\n                    return null;\n                }\n\n                return <DropdownControlOptionLabel withoutPaddings label={option.label} />;\n            }}\n            renderTriggerContent={(option) => {\n                if (!option) {\n                    return null;\n                }\n\n                return (\n                    <DropdownControlOptionLabel\n                        withoutPaddings\n                        icon={<RouteIcon fillColor={StyleGuideColorsEnum.slate} />}\n                        label={option.label}\n                    />\n                );\n            }}\n            getOptionValue={(option) => option?.value}\n            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n        />\n    );\n});\n\nexport default RouteSwitchDropdown;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    // eslint-disable-next-line react/no-unused-prop-types\n    lat?: number;\n    // eslint-disable-next-line react/no-unused-prop-types\n    lng?: number;\n    className?: string;\n    isWrong: boolean;\n};\n\nconst ServicePinIcon: React.FC<PropsT> = (props) => {\n    const { className, isWrong } = props;\n\n    return (\n        <svg className={className} xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"45\" viewBox=\"0 0 40 45\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path\n                    fill={isWrong ? StyleGuideColorsEnum.tomatoRed : StyleGuideColorsEnum.charcoal}\n                    d=\"M25 0c8.284 0 15 6.716 15 15v10c0 8.284-6.716 15-15 15l-5 5-5-5C6.716 40 0 33.284 0 25V15C0 6.716 6.716 0 15 0h10z\"\n                />\n                <path d=\"M10 10h20v20H10z\" />\n                <path d=\"M20 12.286A7.72 7.72 0 0012.286 20 7.72 7.72 0 0020 27.714 7.72 7.72 0 0027.714 20 7.72 7.72 0 0020 12.286zM22.597 24.5l-2.906-2.906c-1.08.335-2.301.103-3.15-.758a3.113 3.113 0 01-.552-3.652l2.095 2.096 1.325-1.324-2.096-2.096a3.113 3.113 0 014.268 4.076l2.79 2.79-1.774 1.774z\" />\n                <path\n                    fill={isWrong ? StyleGuideColorsEnum.white : StyleGuideColorsEnum.orange}\n                    d=\"M20 11c4.963 0 9 4.037 9 9s-4.037 9-9 9-9-4.037-9-9 4.037-9 9-9zm0 1.286A7.72 7.72 0 0012.286 20 7.72 7.72 0 0020 27.714 7.72 7.72 0 0027.714 20 7.72 7.72 0 0020 12.286zm-2.687 3.574a3.113 3.113 0 013.651.553c.952.951 1.145 2.366.617 3.523l2.79 2.79-1.774 1.774-2.906-2.906c-1.08.335-2.301.09-3.15-.758a3.113 3.113 0 01-.552-3.652l2.095 2.096 1.325-1.324z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nServicePinIcon.displayName = 'ServicePinIcon';\n\nconst storyProps: PropsT = {\n    isWrong: false,\n};\n\nexport { storyProps };\nexport default ServicePinIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"image\":\"ImageGalleryModal__image___f3iBU\",\"inner\":\"ImageGalleryModal__inner___yszF9\",\"action\":\"ImageGalleryModal__action___gam_N\",\"fadeIn\":\"ImageGalleryModal__fadeIn___Yr8_3\",\"blinking\":\"ImageGalleryModal__blinking___WHYTc\"};","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst BellIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={fillColor}\n                    fillOpacity=\"0.3\"\n                    d=\"M10 5.875c-1.867 0-3 1.515-3 3.375v4.5h6v-4.5c0-1.86-1.133-3.375-3-3.375z\"\n                />\n                <path\n                    fill={strokeColor}\n                    d=\"M10 17.5c.825 0 1.5-.675 1.5-1.5h-3c0 .825.675 1.5 1.5 1.5zm4.5-4.5V9.25c0-2.303-1.223-4.23-3.375-4.74V4c0-.623-.502-1.125-1.125-1.125S8.875 3.377 8.875 4v.51C6.73 5.02 5.5 6.94 5.5 9.25V13L4 14.5v.75h12v-.75L14.5 13zm-1.5.75H7v-4.5c0-1.86 1.133-3.375 3-3.375s3 1.515 3 3.375v4.5z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nBellIcon.displayName = 'BellIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default BellIcon;\n","import RouteIcon from 'common/icons/RouteIcon';\nimport { ApiFuelOptionTypeT, DEFAULT_ICON_SIZE, StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport TeamDriveIcon from 'common/icons/TeamDriveIcon';\nimport OptionsIcon from 'common/icons/OptionsIcon';\nimport TollIcon from 'common/icons/TollIcon';\nimport FuelIcon from 'common/icons/FuelIcon';\nimport TimeWindowIcon from 'common/icons/TimeWindowIcon';\nimport UrgentIcon from 'common/icons/UrgentIcon';\nimport EcoIcon from 'common/icons/EcoIcon';\nimport FeeIcon from 'common/icons/FeeIcon';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport isNumber from 'lodash/isNumber';\nimport { convertSecToHours } from 'common/utils/time';\nimport {\n    ALL_TOLL_TYPES,\n    ApiBrokerAdditionalServiceT,\n    ApiCarrierAdditionalServiceT,\n    APIFuelByCountryT,\n    ApiRuleTargetT,\n    ApiTollByRoadTypeT,\n    CountryCodeT,\n    TollTypeEnum,\n} from 'common/utils/api/models';\nimport { PriceDetailT } from 'design-system/components/PriceDetails/PriceDetails';\nimport map from 'lodash/map';\nimport keys from 'lodash/keys';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport AsyncCountryFormatter from 'design-system/components/InfoTable/formatters/AsyncCountryFormatter/AsyncCountryFormatter';\nimport { TOLL_MAP_T, TOLL_TOOLTIP_MAP_T } from 'common/components/TollLabel/TollLabel';\nimport { isNonNil } from 'common/utils';\nimport EmissionUnitValue from 'common/components/EmissionUnitValue/EmissionUnitValue';\nimport UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\nimport { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport FuelOptionTypeLabel from 'common/components/FuelOptionTypeLabel/FuelOptionTypeLabel';\nimport { PILL_THEME_BY_FUEL_OPTION_TYPE } from 'common/components/status-pill/FuelOptionTypePill/FuelOptionTypePill';\nimport { checkIsBrokerAdditionalService, checkIsCarrierAdditionalService } from 'common/utils/additional-services';\nimport { AppliedRuleT } from 'common/store/order-creation/models';\nimport PriceRuleImpactPill from 'common/components/pills/PriceRuleImpactPill/PriceRuleImpactPill';\n\nexport const useCommonPriceDetails = () => {\n    const { t } = useTranslation();\n\n    return useMemo(() => {\n        const getAppliedRulesFooterNode = (\n            filteredTargets: Array<AppliedRuleT['target']>,\n            appliedRules: Array<AppliedRuleT> | null | undefined,\n            mods?: { isNotActual?: boolean },\n        ) => {\n            const result = appliedRules\n                ?.filter((rule) => {\n                    return rule?.valueType && filteredTargets.includes(rule.target);\n                })\n                .map((rule, index) => {\n                    return <PriceRuleImpactPill key={index} rule={rule} isNotActual={mods?.isNotActual} />;\n                });\n\n            if (!result?.length) {\n                return null;\n            }\n\n            return result;\n        };\n\n        return {\n            getAppliedRulesFooterNode,\n            lineHaul: {\n                iconNode: <RouteIcon fillColor={StyleGuideColorsEnum.gray} />,\n                title: t('common:price-details.line-haul.title'),\n                tooltipNode: (\n                    <TooltipContent theme={TooltipContentThemeEnum.black} width={150}>\n                        {t('common:price-details.line-haul.tooltip')}\n                    </TooltipContent>\n                ),\n            },\n            otherCosts: {\n                iconNode: null,\n                title: t('common:price-details.other-costs.title'),\n            },\n            getTeamDrive: ({ travelHours }: { travelHours?: number | null | undefined }) => {\n                return {\n                    iconNode: (\n                        <TeamDriveIcon\n                            size={DEFAULT_ICON_SIZE}\n                            fillColor={StyleGuideColorsEnum.light}\n                            strokeColor={StyleGuideColorsEnum.gray}\n                        />\n                    ),\n                    tooltipNode: (\n                        <TooltipContent theme={TooltipContentThemeEnum.black} width={150}>\n                            {t('common:price-details.team-drive.tooltip')}\n                        </TooltipContent>\n                    ),\n                    title: t('common:price-details.team-drive.title'),\n                    pillLabelNode: isNumber(travelHours) ? (\n                        <Trans\n                            i18nKey=\"common:price-details.team-drive.travel-time\"\n                            components={{\n                                duration: <UnitTypeCount type={UnitTypeEnum.hoursAbbreviation} count={travelHours} />,\n                            }}\n                        />\n                    ) : null,\n                    pillLabelTheme: PillLabelThemeEnum.charcoal,\n                };\n            },\n            getRoadTaxesRow: (co2: number | null | undefined) => {\n                return {\n                    iconNode: (\n                        <TollIcon\n                            size={DEFAULT_ICON_SIZE}\n                            fillColor={StyleGuideColorsEnum.light}\n                            strokeColor={StyleGuideColorsEnum.gray}\n                        />\n                    ),\n                    title: t('common:price-details.road-taxes.title'),\n                    pillLabelNode: isNumber(co2) ? (\n                        <Trans\n                            i18nKey=\"common:price-details.road-taxes.co2\"\n                            components={{\n                                value: <EmissionUnitValue co2={co2} />,\n                            }}\n                        />\n                    ) : null,\n                };\n            },\n            getRoadTaxesList: (\n                tollByRoadType: ApiTollByRoadTypeT | undefined,\n                appliedRules?: Array<AppliedRuleT> | null | undefined,\n            ) => {\n                if (!tollByRoadType) {\n                    return [];\n                }\n\n                const appliedRuleTargetMap: Record<TollTypeEnum, ApiRuleTargetT | null> = {\n                    [TollTypeEnum.general]: 'ROAD_TAXES_GENERAL',\n                    [TollTypeEnum.city]: 'ROAD_TAXES_CITY',\n                    [TollTypeEnum.bridge]: 'ROAD_TAXES_BRIDGE',\n                    [TollTypeEnum.tunnel]: 'ROAD_TAXES_TUNNEL',\n                    [TollTypeEnum.ferry]: 'ROAD_TAXES_FERRY',\n                    [TollTypeEnum.mountainPass]: 'ROAD_TAXES_MOUNTAIN_PASS',\n                    [TollTypeEnum.marketCorrection]: null,\n                    [TollTypeEnum.intermodal]: null,\n                    [TollTypeEnum.unspecified]: null,\n                };\n\n                const tollList = tollByRoadType\n                    ? ALL_TOLL_TYPES.map((tollType): PriceDetailT | null => {\n                          const toll = tollByRoadType?.[tollType];\n                          if (!toll) {\n                              return null;\n                          }\n\n                          const { cost, byCountry } = toll;\n                          if (!cost && cost !== 0) {\n                              return null;\n                          }\n\n                          const list = map(keys(byCountry), (countryCode): PriceDetailT => {\n                              const countryCost = byCountry?.[countryCode];\n\n                              return {\n                                  iconNode: <FlagIcon countryCode={countryCode} />,\n                                  title:\n                                      !countryCode || countryCode === 'null' ? (\n                                          t('common:tolls.unspecified')\n                                      ) : (\n                                          <AsyncCountryFormatter countryCode={countryCode as CountryCodeT} />\n                                      ),\n                                  price: countryCost,\n                              };\n                          });\n\n                          const tollTooltip = TOLL_TOOLTIP_MAP_T[tollType];\n\n                          const appliedRuleTarget = appliedRuleTargetMap[tollType];\n\n                          return {\n                              iconNode: null,\n                              title: t(TOLL_MAP_T[tollType]),\n                              tooltipNode: tollTooltip ? (\n                                  <TooltipContent theme={TooltipContentThemeEnum.black} width={150} isCenter>\n                                      {t(tollTooltip)}\n                                  </TooltipContent>\n                              ) : null,\n                              footerNode: appliedRuleTarget\n                                  ? getAppliedRulesFooterNode([appliedRuleTarget], appliedRules)\n                                  : null,\n                              price: cost,\n                              list,\n                          };\n                      }).filter(isNonNil)\n                    : [];\n\n                return tollList;\n            },\n            getLineHaulList: ({\n                deadheadLineHaulCost,\n                payloadLineHaulCost,\n            }: {\n                deadheadLineHaulCost?: number;\n                payloadLineHaulCost?: number;\n            }) => {\n                const result = [\n                    isNumber(deadheadLineHaulCost)\n                        ? {\n                              iconNode: null,\n                              title: t('common:price-details.line-haul-deadhead.title'),\n                              price: deadheadLineHaulCost,\n                          }\n                        : null,\n                    isNumber(payloadLineHaulCost)\n                        ? {\n                              iconNode: null,\n                              title: t('common:price-details.line-haul-payload.title'),\n                              price: payloadLineHaulCost,\n                          }\n                        : null,\n                ].filter(isNonNil);\n\n                if (!result?.length) {\n                    return undefined;\n                }\n\n                return result;\n            },\n            getFuelCostRow: (fuelOption: ApiFuelOptionTypeT | null | undefined) => {\n                return {\n                    iconNode: (\n                        <FuelIcon strokeColor={StyleGuideColorsEnum.gray} fillColor={StyleGuideColorsEnum.light} />\n                    ),\n                    title: t('common:price-details.fuel-price.title'),\n                    ...(fuelOption\n                        ? {\n                              pillLabelNode: <FuelOptionTypeLabel fuelOption={fuelOption} />,\n                              pillLabelTheme: PILL_THEME_BY_FUEL_OPTION_TYPE[fuelOption],\n                          }\n                        : {}),\n                };\n            },\n            getFuelCostsByCountryList: (fuelByCountry: APIFuelByCountryT | undefined) => {\n                return (\n                    fuelByCountry?.map(({ country, cost }) => {\n                        // @ts-expect-error This comparison appears to be unintentional because the types 'Countries' and '\"null\"' have no overlap.\n                        const isUnspecified = country === 'null';\n\n                        return {\n                            iconNode: <FlagIcon countryCode={country} />,\n                            title:\n                                !country || isUnspecified ? (\n                                    t('common:tolls.unspecified')\n                                ) : (\n                                    <AsyncCountryFormatter countryCode={country} />\n                                ),\n                            price: cost,\n                        };\n                    }) || []\n                );\n            },\n            getAdditionalServicesRow: (\n                additionalServiceItems:\n                    | Array<ApiBrokerAdditionalServiceT | ApiCarrierAdditionalServiceT>\n                    | null\n                    | undefined,\n            ) => {\n                const summaryPrice = additionalServiceItems?.reduce<number>((acc, additionalService) => {\n                    if (!additionalService) {\n                        return acc;\n                    }\n\n                    return acc + additionalService.cost;\n                }, 0);\n\n                return {\n                    iconNode: (\n                        <OptionsIcon fillColor={StyleGuideColorsEnum.light} strokeColor={StyleGuideColorsEnum.gray} />\n                    ),\n                    title: t('common:price-details.additional-services.title'),\n                    price: summaryPrice,\n                };\n            },\n            getCarrierAdditionalServicesRow: (\n                additionalServiceItems:\n                    | Array<ApiBrokerAdditionalServiceT | ApiCarrierAdditionalServiceT>\n                    | null\n                    | undefined,\n            ) => {\n                const summaryPrice = additionalServiceItems?.reduce<number>((acc, additionalService) => {\n                    if (!additionalService || !checkIsCarrierAdditionalService(additionalService)) {\n                        return acc;\n                    }\n\n                    return acc + additionalService.cost;\n                }, 0);\n\n                return {\n                    iconNode: (\n                        <OptionsIcon fillColor={StyleGuideColorsEnum.light} strokeColor={StyleGuideColorsEnum.gray} />\n                    ),\n                    title: t('common:price-details.carrier-additional-services.title'),\n                    price: summaryPrice,\n                };\n            },\n            getBrokerAdditionalServicesRow: (\n                additionalServiceItems:\n                    | Array<ApiBrokerAdditionalServiceT | ApiCarrierAdditionalServiceT>\n                    | null\n                    | undefined,\n            ) => {\n                const summaryPrice = additionalServiceItems?.reduce<number>((acc, additionalService) => {\n                    if (!additionalService || !checkIsBrokerAdditionalService(additionalService)) {\n                        return acc;\n                    }\n\n                    return acc + additionalService.cost;\n                }, 0);\n\n                return {\n                    iconNode: (\n                        <OptionsIcon fillColor={StyleGuideColorsEnum.light} strokeColor={StyleGuideColorsEnum.gray} />\n                    ),\n                    title: t('common:price-details.broker-additional-services.title'),\n                    price: summaryPrice,\n                };\n            },\n            getLayoverCostRow: (\n                layoverSeconds: number | null | undefined,\n                layoverPaidHours: number | null | undefined,\n            ) => {\n                const layoverHours = isNumber(layoverSeconds) ? convertSecToHours(layoverSeconds) : null;\n\n                const paidHoursNode = isNumber(layoverPaidHours) ? (\n                    <Trans\n                        i18nKey=\"common:price-details.layover.paid-hours\"\n                        components={{\n                            paidHours: <UnitTypeCount count={layoverPaidHours} type={UnitTypeEnum.hours} />,\n                        }}\n                    />\n                ) : null;\n\n                const hoursNode = isNumber(layoverHours) ? (\n                    <UnitTypeCount count={layoverHours} type={UnitTypeEnum.hours} />\n                ) : null;\n\n                return {\n                    iconNode: (\n                        <TimeWindowIcon\n                            fillColor={StyleGuideColorsEnum.light}\n                            strokeColor={StyleGuideColorsEnum.gray}\n                        />\n                    ),\n                    tooltipNode: (\n                        <TooltipContent theme={TooltipContentThemeEnum.black} width={150}>\n                            {t('common:price-details.layover.tooltip')}\n                        </TooltipContent>\n                    ),\n                    title: t('common:price-details.layover.title'),\n                    pillLabelNode: (\n                        <span>\n                            {hoursNode || ''}\n                            {paidHoursNode && <span> ({paidHoursNode})</span>}\n                        </span>\n                    ),\n                };\n            },\n\n            urgentOverprice: {\n                iconNode: <UrgentIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.squash} />,\n                title: t('common:price-details.express-surcharge.title'),\n                tooltipNode: (\n                    <TooltipContent theme={TooltipContentThemeEnum.black} width={150}>\n                        {t('common:price-details.express-surcharge.tooltip')}\n                    </TooltipContent>\n                ),\n            },\n\n            greenSurcharge: {\n                iconNode: <EcoIcon size={DEFAULT_ICON_SIZE} />,\n                title: t('common:price-details.green-surcharge.title'),\n                tooltipNode: (\n                    <TooltipContent theme={TooltipContentThemeEnum.black} width={150}>\n                        {t('common:price-details.green-surcharge.tooltip')}\n                    </TooltipContent>\n                ),\n            },\n\n            serviceFee: {\n                iconNode: <FeeIcon strokeColor={StyleGuideColorsEnum.slate} />,\n                title: t('common:price-details.service-fee.title'),\n                tooltipNode: (\n                    <TooltipContent theme={TooltipContentThemeEnum.black} width={150}>\n                        {t('common:price-details.service-fee.tooltip')}\n                    </TooltipContent>\n                ),\n            },\n\n            tranziitServiceFee: {\n                iconNode: <FeeIcon strokeColor={StyleGuideColorsEnum.slate} />,\n                title: t('common:price-details.tranziit-service-fee.title'),\n            },\n        } as const;\n    }, [t]);\n};\n","import React, { useCallback, useEffect, useMemo } from 'react';\nimport {\n    UseAsyncOptionsParamsT,\n    useAsyncOptionsRequest,\n    UseAsyncOptionsResultT,\n} from 'design-system/components/dropdowns/SuggestInput/hooks/use-async-options-request';\nimport { prepareSearchQuery } from 'common/utils/search';\nimport { isNonNil } from 'common/utils';\n\ntype BaseOptionT = {};\n\nexport type AdditionalOptionFilterT<T extends BaseOptionT> = (option: T) => boolean;\n\nexport type UseAsyncFilterOptionsParamsT<T extends BaseOptionT> = UseAsyncOptionsParamsT<T> & {\n    getOptionText: (option: T) => string;\n    additionalOptionFilter?: AdditionalOptionFilterT<T>;\n};\n\nexport type UseAsyncFilterOptionsResultT<T extends BaseOptionT> = UseAsyncOptionsResultT<T> & {\n    query: string;\n    onRefresh: () => void;\n};\n\nexport const ALWAYS_PASS_SPECIAL_VALUE = '*';\n\n/**\n *  @deprecated use useOnceRequestFilter\n * */\nexport const useAsyncFilterOptions = <T extends BaseOptionT>({\n    initialOptions,\n    requestFactory,\n    getOptionText,\n    additionalOptionFilter,\n    settings,\n}: UseAsyncFilterOptionsParamsT<T>): UseAsyncFilterOptionsResultT<T> => {\n    const [query, setQuery] = React.useState<string>('');\n\n    const asyncOptionsRequest = useAsyncOptionsRequest<T>({\n        initialOptions,\n        requestFactory,\n        settings: {\n            allowedQueryMinLength: 0,\n            ...settings,\n        },\n    });\n\n    const { options, onChangeQuery, ...restAsyncOptionsRequest } = asyncOptionsRequest;\n\n    const handleRefresh = useCallback(() => {\n        onChangeQuery('');\n    }, [onChangeQuery]);\n\n    const handleChangeQuery = useCallback(\n        (query?: string | null | undefined) => {\n            setQuery(query || '');\n        },\n        [setQuery],\n    );\n\n    useEffect(() => {\n        onChangeQuery('');\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, []);\n\n    const defaultOptionFilter = useMemo(() => {\n        const preparedQuery = prepareSearchQuery(query);\n        if (!preparedQuery) {\n            return () => true;\n        }\n\n        return (option: T) => {\n            const text = getOptionText(option);\n            const preparedText = prepareSearchQuery(text);\n\n            if (preparedText === ALWAYS_PASS_SPECIAL_VALUE) {\n                return true;\n            }\n\n            return preparedText.includes(preparedQuery);\n        };\n    }, [query, getOptionText]);\n\n    const optionFilters: Array<typeof defaultOptionFilter> = useMemo(() => {\n        return [defaultOptionFilter, additionalOptionFilter].filter(isNonNil);\n    }, [defaultOptionFilter, additionalOptionFilter]);\n\n    const filteredOptions = useMemo(() => {\n        return options.filter((option) => {\n            return optionFilters.every((optionFilter) => optionFilter(option));\n        });\n    }, [options, optionFilters]);\n\n    return {\n        ...restAsyncOptionsRequest,\n        options: filteredOptions,\n        query,\n        onChangeQuery: handleChangeQuery,\n        onRefresh: handleRefresh,\n    };\n};\n","import { ApiEditOrderContextT, ApiTourUpdateStopDataT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { ContextRoutePointAliasT } from '../models';\nimport keyBy from 'lodash/keyBy';\nimport findLast from 'lodash/findLast';\n\nexport const findFirstBeforeStop = (\n    context: ApiEditOrderContextT | null,\n    beforeContextRoutePointAliases: ContextRoutePointAliasT[],\n): ApiTourUpdateStopDataT | null => {\n    const allStops =\n        context?.tours?.flatMap((tour) => {\n            return tour?.stops || [];\n        }) || [];\n\n    const stopByAlias = keyBy(allStops, 'alias');\n\n    const targetAlias = findLast(beforeContextRoutePointAliases, (alias) => {\n        return Boolean(stopByAlias[alias]);\n    });\n\n    if (!targetAlias) {\n        return null;\n    }\n\n    return stopByAlias[targetAlias] || null;\n};\n","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\n\ntype PropsT = {\n    transportationOrderNumber: React.ReactNode;\n};\n\nconst TransportationOrderDriverUnassignedCard: React.FC<PropsT> = React.memo((props) => {\n    const { transportationOrderNumber } = props;\n\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey=\"common:notifications.transportation-order-driver-unassigned\"\n                components={{\n                    transportationOrderNumber: (\n                        <NotificationEntityLabel isBold isUnderline text={transportationOrderNumber} />\n                    ),\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default TransportationOrderDriverUnassignedCard;\n","import * as React from 'react';\n\nimport styles from './LineLoader.scss';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nexport type PropsT = {\n    className?: string;\n    isShow: boolean;\n    style?: React.CSSProperties;\n};\n\nconst cx = classNames.bind(styles);\n\nconst LineLoader: React.FC<PropsT> = React.memo((props) => {\n    const { isShow, className, style } = props;\n\n    return (\n        <div\n            className={cs(\n                cx('line-loader', {\n                    'line-loader--is-show': isShow,\n                }),\n                className,\n            )}\n            data-test-selector=\"line-loader\"\n            style={style}\n        />\n    );\n});\n\nexport default LineLoader;\n","import { AssetTypeEnum } from 'common/constants';\nimport requestStatus, { RequestStatusT } from 'common/utils/request-status';\nimport React from 'react';\nimport useDebouncedEffect from 'common/utils/hooks/useDebouncedEffect';\nimport { checkIsDefaultCompanyId } from 'common/utils';\nimport carrierTranziitApi from 'carrier/utils/api/carrier-tranziit/api';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { checkIsSameQuery } from 'common/utils/pagination/utils';\nimport { TrailerStatusEnum, TruckStatusEnum } from 'common/utils/api/models';\n\ntype PlateNumberUniqCheckRequestT = {\n    plateNumber: string | null;\n    companyId: CompanyIdT;\n    assetType: AssetTypeEnum;\n};\n\ntype PlateNumberUniqCheckT = {\n    requestStatus: RequestStatusT;\n    duplicateId: TrailerIdT | null;\n};\n\nconst usePlateNumberUniqCheck = (request: PlateNumberUniqCheckRequestT): PlateNumberUniqCheckT => {\n    const [duplicateId, setDuplicateId] = React.useState<TrailerIdT | null>(null);\n    const [status, setStatus] = React.useState<RequestStatusT>(requestStatus.initial);\n    const queryRef = React.useRef<PlateNumberUniqCheckRequestT | null>(null);\n\n    useDebouncedEffect(\n        () => {\n            const { plateNumber, companyId, assetType } = request;\n\n            if (!plateNumber) {\n                setDuplicateId(null);\n                setStatus(requestStatus.ok);\n                return;\n            }\n\n            queryRef.current = request;\n\n            setStatus(requestStatus.loading);\n\n            let promise: Promise<PlateNumberUniqCheckT['duplicateId']> | null = null;\n\n            if (assetType === AssetTypeEnum.trailer) {\n                if (checkIsDefaultCompanyId(companyId)) {\n                    promise = carrierTranziitApi\n                        .fetchTrailersPage({\n                            plateNumber,\n                            page: 0,\n                        })\n                        .then(([error, data]): PlateNumberUniqCheckT['duplicateId'] => {\n                            if (error) {\n                                throw error;\n                            }\n\n                            const duplcate = (data?.content || []).find(\n                                (trailer) =>\n                                    trailer.plateNumber === plateNumber &&\n                                    trailer.status !== TrailerStatusEnum.archived,\n                            );\n                            return duplcate?.id || null;\n                        });\n                } else {\n                    promise = brokerTranziitApi\n                        .fetchTrailersPage(\n                            {\n                                plateNumber,\n                                page: 0,\n                            },\n                            companyId,\n                        )\n                        .then(([error, data]): PlateNumberUniqCheckT['duplicateId'] => {\n                            if (error) {\n                                throw error;\n                            }\n\n                            const duplcate = (data?.content || []).find(\n                                (trailer) =>\n                                    trailer.plateNumber === plateNumber &&\n                                    trailer.status !== TrailerStatusEnum.archived,\n                            );\n                            return duplcate?.id || null;\n                        });\n                }\n            }\n            if (assetType === AssetTypeEnum.truck) {\n                if (checkIsDefaultCompanyId(companyId)) {\n                    promise = carrierTranziitApi\n                        .fetchTrucksPage({\n                            plateNumber,\n                            page: 0,\n                        })\n                        .then(([error, data]): PlateNumberUniqCheckT['duplicateId'] => {\n                            if (error) {\n                                throw error;\n                            }\n\n                            const duplcate = (data?.content || []).find(\n                                (truck) =>\n                                    truck.plateNumber === plateNumber && truck.status !== TruckStatusEnum.archived,\n                            );\n                            return duplcate?.id || null;\n                        });\n                } else {\n                    promise = brokerTranziitApi\n                        .fetchTrucksPage(\n                            {\n                                plateNumber,\n                                page: 0,\n                            },\n                            companyId,\n                        )\n                        .then(([error, data]): PlateNumberUniqCheckT['duplicateId'] => {\n                            if (error) {\n                                throw error;\n                            }\n\n                            const duplcate = (data?.content || []).find(\n                                (truck) =>\n                                    truck.plateNumber === plateNumber && truck.status !== TruckStatusEnum.archived,\n                            );\n                            return duplcate?.id || null;\n                        });\n                }\n            }\n\n            if (!promise) {\n                throw new Error('empty promise!');\n            }\n\n            promise\n                .then((duplicateId) => {\n                    const isSameQuery = checkIsSameQuery(queryRef.current, request);\n                    if (!isSameQuery) {\n                        return;\n                    }\n\n                    setDuplicateId(duplicateId);\n                    setStatus(requestStatus.ok);\n                })\n                .catch((error) => {\n                    const isSameQuery = checkIsSameQuery(queryRef.current, request);\n                    if (!isSameQuery) {\n                        return;\n                    }\n\n                    setDuplicateId(null);\n                    setStatus(requestStatus.setError(error));\n                });\n        },\n        300,\n        [request.companyId, request.plateNumber],\n    );\n\n    return {\n        requestStatus: status,\n        duplicateId,\n    };\n};\n\nexport { usePlateNumberUniqCheck };\n","import React from 'react';\nimport { useGoogleMapContext } from 'common/utils/hooks/maps/useGoogleMapContext';\nimport { getGeoCodingLocation } from 'common/utils/google-places';\nimport { GoogleMapsPlacesApi } from 'common/utils/google-maps-api/google-maps-places-api';\nimport { GoogleMapsGeocoderApi } from 'common/utils/google-maps-api/google-maps-geocoder-api';\n\nexport const useGoogleMapGeocoding = () => {\n    const { googleMaps } = useGoogleMapContext();\n    const { map, maps } = googleMaps;\n\n    const geocoderApi = React.useMemo(() => {\n        return new GoogleMapsGeocoderApi(maps);\n    }, [maps]);\n\n    const placesApi = React.useMemo(() => {\n        return new GoogleMapsPlacesApi(map, maps);\n    }, [map, maps]);\n\n    const tryGeocodeByPoint = React.useCallback(\n        async (point: GeoPointT): Promise<LocationT> => {\n            const emptyGeocodingResult: LocationT = {\n                point: {\n                    lat: point.lat,\n                    lng: point.lng,\n                },\n                address: `${point.lat}, ${point.lng}`,\n                addressComponents: null,\n                utcOffsetMinutes: null,\n            };\n\n            const geocodeResult = await geocoderApi.geocode(point);\n            if (!geocodeResult?.place_id) {\n                return emptyGeocodingResult;\n            }\n\n            const result = await placesApi.getPlaceDetails(geocodeResult?.place_id);\n            if (!result) {\n                return emptyGeocodingResult;\n            }\n\n            const location = getGeoCodingLocation(result);\n            if (!location) {\n                return emptyGeocodingResult;\n            }\n\n            return location;\n        },\n        [geocoderApi, placesApi],\n    );\n\n    return React.useMemo(() => {\n        return { tryGeocodeByPoint };\n    }, [tryGeocodeByPoint]);\n};\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport { Trans } from 'react-i18next';\nimport { ApiDocumentTypeT } from 'common/utils/api/models';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport AsyncDictDocumentNameLabel from 'common/components/AsyncDictDocumentNameLabel/AsyncDictDocumentNameLabel';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\nimport styles from './ExpireSoonDocumentCard.scss';\n\nconst cx = classNames.bind(styles);\n\nexport type PropsT = {\n    documentType: ApiDocumentTypeT;\n};\n\nconst ExpireSoonDocumentCard: React.FC<PropsT> = React.memo((props) => {\n    const { documentType } = props;\n\n    const { partnerType } = usePartnerContext();\n\n    return (\n        <NotificationCardInnerLayout className={cx('inner')}>\n            <Trans\n                i18nKey=\"common:notifications.document-expire-soon\"\n                components={{\n                    documentName: (\n                        <NotificationEntityLabel\n                            isBold\n                            text={<AsyncDictDocumentNameLabel partnerType={partnerType} documentType={documentType} />}\n                        />\n                    ),\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default ExpireSoonDocumentCard;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { selectOrderCreationMs } from 'common/store/settings/selectors';\nimport { useSelector } from 'react-redux';\nimport { getMinutes } from 'common/utils/time';\n\ntype PropsT = {};\n\nconst ExpirationContextAlertContent: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n\n    // orderCreationMs is used, all ttl contexts are counted on the backend from it\n    const orderCreationMs = useSelector(selectOrderCreationMs);\n\n    let formattedMinutes;\n    if (orderCreationMs) {\n        const minutes = getMinutes(orderCreationMs);\n\n        formattedMinutes = minutes\n            ? `${minutes} ${t('common:minutes', {\n                  postProcess: 'interval',\n                  count: minutes,\n              })}`\n            : null;\n    }\n\n    return (\n        <span>\n            {t('broker-order-route-edit.expiration.context', {\n                formattedContextLifetime: formattedMinutes,\n            })}\n        </span>\n    );\n});\n\nexport default ExpirationContextAlertContent;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n    size: number;\n};\n\nconst DeactivateUserIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, size } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M2 1h18v18H2z\" />\n                <g fill={fillColor}>\n                    <path\n                        fill=\"none\"\n                        d=\"M9.2 8.65c.747 0 1.35-.603 1.35-1.35 0-.747-.603-1.35-1.35-1.35-.747 0-1.35.603-1.35 1.35 0 .747.603 1.35 1.35 1.35zm3.852 4.644A7.64 7.64 0 009.2 12.25a7.64 7.64 0 00-3.852 1.044c-.126.072-.198.225-.198.378v.369h8.1v-.369a.456.456 0 00-.198-.378z\"\n                    />\n                    <path d=\"M9.2 10.9a8.86 8.86 0 014.527 1.233c.549.315.873.918.873 1.548V15.4H3.8v-1.719c0-.63.324-1.233.873-1.548A8.86 8.86 0 019.2 10.9zm0 1.35c-1.35 0-2.682.36-3.852 1.053a.444.444 0 00-.198.378v.369h8.1v-.378c0-.153-.072-.306-.198-.378A7.64 7.64 0 009.2 12.25zm0-7.65c1.494 0 2.7 1.206 2.7 2.7 0 1.494-1.206 2.7-2.7 2.7a2.696 2.696 0 01-2.7-2.7c0-1.494 1.206-2.7 2.7-2.7zm9 3.375v1.35h-4.5v-1.35h4.5zm-9-2.025c-.747 0-1.35.603-1.35 1.35 0 .747.603 1.35 1.35 1.35.747 0 1.35-.603 1.35-1.35 0-.747-.603-1.35-1.35-1.35z\" />\n                </g>\n            </g>\n        </svg>\n    );\n};\n\nDeactivateUserIcon.displayName = 'DeactivateUserIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.orange,\n    size: 20,\n};\n\nexport { storyProps };\nexport default DeactivateUserIcon;\n","import createNumberMask from 'text-mask-addons/dist/createNumberMask';\n\nexport const getMoneyMask = (): MaskT => {\n    return createNumberMask({\n        prefix: '',\n        suffix: '',\n        includeThousandsSeparator: true,\n        thousandsSeparatorSymbol: ' ',\n        allowDecimal: true,\n    });\n};\n\nexport const getMoneyMaskAllowNegative = (): MaskT => {\n    return createNumberMask({\n        prefix: '',\n        suffix: '',\n        includeThousandsSeparator: true,\n        thousandsSeparatorSymbol: ' ',\n        allowDecimal: true,\n        allowNegative: true,\n    });\n};\n\nexport const getPercentDiffMask = (): MaskT => {\n    return [/[+-]/, /[0-9.]/, /[0-9.]/, /[0-9.]/, /[0-9.]/, /[0-9.]/, /[0-9.]/, /[0-9.]/, /[0-9.]/, /[0-9.]/, /[0-9.]/];\n};\n\nexport const getMoneyDiffMask = (): MaskT => {\n    return [/[+-]/, /[0-9.]/, /[0-9.]/, /[0-9.]/, /[0-9.]/, /[0-9.]/, /[0-9.]/, /[0-9.]/, /[0-9.]/, /[0-9.]/, /[0-9.]/];\n};\n\nexport const getDistanceMask = (): MaskT => {\n    return createNumberMask({\n        prefix: '',\n        suffix: '',\n        includeThousandsSeparator: true,\n        thousandsSeparatorSymbol: ' ',\n    });\n};\n\nexport const getWeightMask = (): MaskT => {\n    return createNumberMask({\n        prefix: '',\n        suffix: '',\n        includeThousandsSeparator: true,\n        thousandsSeparatorSymbol: ' ',\n        allowDecimal: true,\n        decimalLimit: 3,\n    });\n};\n\nexport const getDateMask = (): MaskT => {\n    return [/\\d/, /\\d/, '.', /\\d/, /\\d/, '.', /\\d/, /\\d/, /\\d/, /\\d/];\n};\n\nexport const getDateRangeMask = (): MaskT => {\n    return [\n        /\\d/,\n        /\\d/,\n        '.',\n        /\\d/,\n        /\\d/,\n        '.',\n        /\\d/,\n        /\\d/,\n        /\\d/,\n        /\\d/,\n        ' ',\n        '-',\n        ' ',\n        /\\d/,\n        /\\d/,\n        '.',\n        /\\d/,\n        /\\d/,\n        '.',\n        /\\d/,\n        /\\d/,\n        /\\d/,\n        /\\d/,\n    ];\n};\n","import { AuthErrorTypeEnum } from 'common/utils/api/auth/errors/auth-api-error';\n\nexport enum FieldsEnum {\n    email = 'email',\n    password = 'password',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.email]: string;\n    [FieldsEnum.password]: string;\n};\n\nexport type AsyncFormErrorsT = Partial<{\n    [FieldsEnum.email]: AuthErrorTypeEnum.userNotFound | AuthErrorTypeEnum.userDisabled | AuthErrorTypeEnum.wrongRole;\n    [FieldsEnum.password]: AuthErrorTypeEnum.wrongPassword;\n}>;\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","import {\n    AssignActionT,\n    AssignBeginActionT,\n    AssignErrorActionT,\n    ASSIGNMENT_REQUEST,\n    ASSIGNMENT_REQUEST_BEGIN,\n    ASSIGNMENT_REQUEST_ERROR,\n    ASSIGNMENT_REQUEST_SUCCESS,\n    AssignSuccessActionT,\n    RE_ASSIGNMENT_REQUEST,\n    RE_ASSIGNMENT_REQUEST_BEGIN,\n    RE_ASSIGNMENT_REQUEST_ERROR,\n    RE_ASSIGNMENT_REQUEST_SUCCESS,\n    ReAssignActionT,\n    ReAssignBeginActionT,\n    ReAssignErrorActionT,\n    ReAssignSuccessActionT,\n    RESET,\n    ResetActionT,\n} from './types';\n\nexport const assign = (transportationOrderId: TransportOrderIdT, driverIds: DriverIdT[]): AssignActionT => ({\n    type: ASSIGNMENT_REQUEST,\n    driverIds,\n    transportationOrderId,\n});\n\nexport const assignBegin = (): AssignBeginActionT => ({\n    type: ASSIGNMENT_REQUEST_BEGIN,\n});\n\nexport const assignSuccess = (): AssignSuccessActionT => ({\n    type: ASSIGNMENT_REQUEST_SUCCESS,\n});\n\nexport const assignError = (error: Error): AssignErrorActionT => ({\n    type: ASSIGNMENT_REQUEST_ERROR,\n    error,\n});\n\nexport const reAssign = (\n    transportationOrderId: TransportOrderIdT | undefined,\n    driverIds: DriverIdT[],\n): ReAssignActionT => ({\n    type: RE_ASSIGNMENT_REQUEST,\n    driverIds,\n    transportationOrderId,\n});\n\nexport const reAssignBegin = (): ReAssignBeginActionT => ({\n    type: RE_ASSIGNMENT_REQUEST_BEGIN,\n});\n\nexport const reAssignSuccess = (): ReAssignSuccessActionT => ({\n    type: RE_ASSIGNMENT_REQUEST_SUCCESS,\n});\n\nexport const reAssignError = (error: Error): ReAssignErrorActionT => ({\n    type: RE_ASSIGNMENT_REQUEST_ERROR,\n    error,\n});\n\nexport const resetDriverAssignment = (): ResetActionT => ({\n    type: RESET,\n});\n","import React, { MouseEvent } from 'react';\nimport { Link as RRDLink, LinkProps } from 'react-router-dom';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './Link.scss';\n\nconst cx = classNames.bind(styles);\n\ntype LinkToObjT = LinkProps<HistoryStateT>['to'];\n\nexport type LinkToT = string | LinkToObjT;\n\nexport type LinkPropsT = {\n    className?: string;\n    testSelector?: string;\n    theme: LinkThemeEnum;\n    size?: LinkSizeEnum;\n    isExternal?: boolean;\n    isUppercase?: boolean;\n    to?: LinkToT;\n    target?: string;\n    onClick?: (event: MouseEvent<HTMLDivElement>) => void;\n};\n\nexport enum LinkThemeEnum {\n    charcoal = 'charcoal',\n    boldCharcoal = 'bold-charcoal',\n    boldAzul = 'bold-azul',\n    boldBrandDark = 'bold-brand-dark',\n    boldWhite = 'bold-white',\n    boldTomatoRed = 'bold-tomato-red',\n    boldBrandAccent = 'bold-brand-accent',\n    boldOrange = 'bold-orange',\n}\n\nexport enum LinkSizeEnum {\n    large = 'large',\n    medium = 'medium',\n    small = 'small',\n    preExtraSmall = 'pre-extra-small',\n    extraSmall = 'extra-small',\n}\n\nconst Link: React.FC<LinkPropsT> = React.memo((props) => {\n    const { testSelector, theme, className, isUppercase, isExternal, to, children, onClick, size, ...rest } = props;\n\n    const linkProps = {\n        ...rest,\n        className: cs(\n            className,\n            cx('link', {\n                [`link--theme-${theme}`]: !!theme,\n                [`link--size-${size}`]: !!size,\n                'link--uppercase': !!isUppercase,\n            }),\n        ),\n        'data-test-selector': `${testSelector}_link`,\n    };\n\n    if (!to && onClick) {\n        return (\n            <span {...linkProps} onClick={onClick}>\n                {children}\n            </span>\n        );\n    }\n\n    if (isExternal) {\n        return (\n            <a {...linkProps} href={to as string}>\n                {children}\n            </a>\n        );\n    }\n\n    return (\n        <RRDLink {...linkProps} to={to as LinkToT}>\n            {children}\n        </RRDLink>\n    );\n});\n\nexport default Link;\n","import { MS_IN_SEC } from 'common/utils/time';\n\nexport const VEHICLE_SCHEDULE_TTL = 30 * MS_IN_SEC;\n","// extracted by mini-css-extract-plugin\nexport default {\"alert\":\"Members__alert___Lxxiy\",\"fadeIn\":\"Members__fadeIn___b0ECn\",\"blinking\":\"Members__blinking___C8fe0\"};","import React from 'react';\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport MaskedInput from 'react-text-mask';\n\nimport styles from './Input.scss';\nimport CloseIcon from 'common/icons/CloseIcon';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport useTestSelector from 'common/utils/hooks/useTestSelector';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport ClickInterceptorLabel from 'common/components/ClickInterceptorLabel/ClickInterceptorLabel';\n\nconst cx = classNames.bind(styles);\n\ntype ValueT = string;\n\nexport type InputFormatterT = (value: ValueT) => string;\n\nexport type IconMetaT = {\n    isLoading: boolean;\n    isDisabled: boolean;\n    isFocused: boolean;\n    hasError: boolean;\n    hasWarning: boolean;\n    hasSuccess: boolean;\n    isHighlighted: boolean;\n    hasValue: boolean;\n};\n\nexport type PropsT = {\n    className?: string;\n    name: string;\n    value: ValueT;\n    rightNode?: React.ReactNode;\n    type?: string;\n    renderLeftIcon?: (meta: IconMetaT) => React.ReactNode;\n    renderRightIcon?: (meta: IconMetaT) => React.ReactNode;\n    isLoading?: boolean;\n    placeholder?: string;\n    onChange: (value: ValueT) => void;\n    onBlur?: () => void;\n    onFocus?: () => void;\n    onKeyUp?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\n    onKeyDown?: (event: React.KeyboardEvent<HTMLInputElement>) => void;\n    hasError?: boolean;\n    hasWarning?: boolean;\n    hasSuccess?: boolean;\n    autoFocus?: boolean;\n    isDisabled?: boolean;\n    isFocused?: boolean;\n    formatter?: InputFormatterT;\n    mask?: MaskT;\n    guide?: boolean;\n    isHighlighted?: boolean;\n    isTransparent?: boolean;\n    hasChanges?: boolean;\n    autoComplete?: string;\n    hasClearControl?: boolean;\n    testSelectorPrefix?: string;\n    spaces?: 'xs' | 's';\n};\n\nconst Input: React.FC<PropsT> = React.memo((props) => {\n    const {\n        value,\n        name,\n        rightNode,\n        type,\n        placeholder,\n        onChange,\n        onBlur,\n        onFocus,\n        onKeyUp,\n        onKeyDown,\n        renderLeftIcon,\n        renderRightIcon,\n        hasError,\n        hasWarning,\n        hasSuccess,\n        autoFocus,\n        isLoading,\n        isDisabled,\n        isFocused: isForceFocused,\n        formatter,\n        mask,\n        className,\n        guide = true,\n        hasChanges,\n        autoComplete,\n        isHighlighted,\n        isTransparent,\n        hasClearControl,\n        testSelectorPrefix,\n        spaces,\n    } = props;\n\n    const [isFocused, setFocused] = React.useState<boolean>(false);\n    const [isHovered, setHovered] = React.useState<boolean>(false);\n\n    const handleChange = (event: React.FormEvent<HTMLInputElement>): void => {\n        const sourceValue = event.currentTarget.value || '';\n        const formattedValue = formatter ? formatter(sourceValue) : sourceValue;\n        onChange(formattedValue);\n    };\n\n    const handleReset = () => {\n        onChange('');\n    };\n\n    const handleBlur = (): void => {\n        setFocused(false);\n\n        if (onBlur) {\n            onBlur();\n        }\n    };\n\n    const handleFocus = (): void => {\n        setFocused(true);\n\n        if (onFocus) {\n            onFocus();\n        }\n    };\n\n    const handleMouseMove = (): void => {\n        if (!isHovered) {\n            setHovered(true);\n        }\n    };\n\n    const handleMouseLeave = (): void => {\n        setHovered(false);\n    };\n\n    const isEmpty = !value;\n\n    const testSelector = useTestSelector(testSelectorPrefix || name, 'input');\n    const resetControlTestSelector = useTestSelector(testSelector, 'reset');\n\n    const inputProps: React.InputHTMLAttributes<HTMLInputElement> = {\n        autoFocus: !!autoFocus,\n        onChange: handleChange,\n        onBlur: handleBlur,\n        onFocus: handleFocus,\n        onKeyUp,\n        onKeyDown,\n        name,\n        value: value || '',\n        type,\n        className: cx('inner-input', {\n            'inner-input--isEmpty': isEmpty,\n            'inner-input--isDisabled': isDisabled,\n        }),\n        placeholder,\n        disabled: isDisabled,\n        autoComplete: autoComplete || 'off',\n        // @ts-ignore\n        'data-test-selector': testSelector,\n    };\n\n    const showClearControl = !!value && !isLoading && hasClearControl;\n\n    return (\n        <div\n            onMouseMove={handleMouseMove}\n            onMouseLeave={handleMouseLeave}\n            className={cs(\n                cx('input', {\n                    'input--hasWarning': hasWarning,\n                    'input--hasSuccess': hasSuccess,\n                    'input--hasChanges': hasChanges,\n                    'input--isHighlighted': isHighlighted,\n                    'input--hasError': hasError,\n                    'input--hasLeftIcon': !!renderLeftIcon,\n                    'input--hasRightNode': !!renderRightIcon || !!rightNode || showClearControl || isLoading,\n                    'input--isDisabled': isDisabled,\n                    'input--isHovered': isHovered,\n                    'input--isTransparent': isTransparent,\n                    'input--isFocused': isFocused || isForceFocused,\n                    [`input--spaces-${spaces}`]: true,\n                }),\n                className,\n            )}\n        >\n            {renderLeftIcon && (\n                <div className={cx('icon', 'icon--isLeft')}>\n                    {renderLeftIcon({\n                        isLoading: !!isLoading,\n                        isDisabled: !!isDisabled,\n                        isFocused,\n                        hasError: !!hasError,\n                        hasWarning: !!hasWarning,\n                        hasSuccess: !!hasSuccess,\n                        isHighlighted: !!isHighlighted,\n                        hasValue: !isEmpty,\n                    })}\n                </div>\n            )}\n            {mask ? <MaskedInput guide={guide} mask={mask} {...inputProps} /> : <input {...inputProps} />}\n            {rightNode && (\n                <div\n                    className={cx('right-node', {\n                        'right-node--isEmpty': isEmpty,\n                        'right-node--hasRightNode': rightNode,\n                    })}\n                >\n                    {rightNode}\n                </div>\n            )}\n            {showClearControl && (\n                <ClickInterceptorLabel className={cx('control', 'control--isClickable')}>\n                    <TransparentTrigger\n                        spaces=\"xxs\"\n                        onClick={handleReset}\n                        testSelector={resetControlTestSelector}\n                        leftIcon={<CloseIcon fillColor=\"currentColor\" />}\n                        reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                    />\n                </ClickInterceptorLabel>\n            )}\n            {isLoading && (\n                <div className={cx('control')}>\n                    <ControlLoaderIcon fillColor={StyleGuideColorsEnum.brandAccent} size={DEFAULT_ICON_SIZE} />\n                </div>\n            )}\n            {renderRightIcon && (\n                <div className={cx('icon', 'icon--isRight')}>\n                    {renderRightIcon({\n                        isLoading: !!isLoading,\n                        isDisabled: !!isDisabled,\n                        isFocused,\n                        hasError: !!hasError,\n                        hasWarning: !!hasWarning,\n                        hasSuccess: !!hasSuccess,\n                        isHighlighted: !!isHighlighted,\n                        hasValue: !isEmpty,\n                    })}\n                </div>\n            )}\n        </div>\n    );\n});\n\nexport default Input;\n","// extracted by mini-css-extract-plugin\nexport default {\"field--name\":\"ShipperContractDetails__field--name___pn7GK\",\"field--number\":\"ShipperContractDetails__field--number___ixFoo\",\"field--activate-date\":\"ShipperContractDetails__field--activate-date___LHk2Q\",\"field--valid-till\":\"ShipperContractDetails__field--valid-till___wezz4\",\"field--orders-left\":\"ShipperContractDetails__field--orders-left___j89hF\",\"field--file\":\"ShipperContractDetails__field--file___oTCGF\",\"fadeIn\":\"ShipperContractDetails__fadeIn___rIS8l\",\"blinking\":\"ShipperContractDetails__blinking___DoCKM\"};","// extracted by mini-css-extract-plugin\nexport default {\"table\":\"RouteDetailsCard__table___ttUjt\",\"fadeIn\":\"RouteDetailsCard__fadeIn___ClHDa\",\"blinking\":\"RouteDetailsCard__blinking___m99PS\"};","import * as React from 'react';\nimport ColoredStatusLabel from 'common/components/ColoredStatusLabel/ColoredStatusLabel';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n};\n\nconst FormUnsavedValuesColoredStatus: React.FC<PropsT> = React.memo((props) => {\n    const { t } = useTranslation();\n\n    return <ColoredStatusLabel label={t('common:status.not-saved')} color={StyleGuideColorsEnum.orange} {...props} />;\n});\n\nexport default FormUnsavedValuesColoredStatus;\n","import { TFunction } from 'i18next';\nimport { FormErrorsT, FormValuesT } from './constants';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {};\n\n    return errors;\n};\n\nexport default validate;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"ControlsCell__wrap___IfmJO\",\"fadeIn\":\"ControlsCell__fadeIn___VhK8W\",\"blinking\":\"ControlsCell__blinking___sMS7H\"};","import { QueryFiltersKeysEnum, QueryFiltersT } from '../query-models';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport { getDateFromDate, getEndDayFromDateZero, getStartDayFromDateZero } from 'common/utils/time';\nimport { simpleStringFormatter } from 'common/utils/form-formatters';\nimport { OrderTypeEnum } from './OrderTypeDropdown/OrderTypeDropdown';\nimport { TransportOrderTypeEnum } from './TransportOrderTypeDropdown/TransportOrderTypeDropdown';\n\nconst getQueryFilters = (values: FormValuesT): QueryFiltersT => {\n    const queryFilters: QueryFiltersT = {\n        [QueryFiltersKeysEnum.originAddress]: simpleStringFormatter(values[FieldsEnum.originAddress]) || undefined,\n        [QueryFiltersKeysEnum.dropoffAddress]: simpleStringFormatter(values[FieldsEnum.dropOffAddress]) || undefined,\n\n        [QueryFiltersKeysEnum.dispatcherId]: values[FieldsEnum.dispatcherId] || undefined,\n        [QueryFiltersKeysEnum.dispatcherName]: values[FieldsEnum.dispatcherName] || undefined,\n\n        [QueryFiltersKeysEnum.keyAccountManagerId]: values[FieldsEnum.keyAccountManagerId] || undefined,\n        [QueryFiltersKeysEnum.keyAccountManagerName]: values[FieldsEnum.keyAccountManagerName] || undefined,\n\n        [QueryFiltersKeysEnum.shipperId]: values[FieldsEnum.shipperId] || undefined,\n        [QueryFiltersKeysEnum.shipperName]: values[FieldsEnum.shipperName] || undefined,\n\n        [QueryFiltersKeysEnum.carrierId]: values[FieldsEnum.carrierId] || undefined,\n        [QueryFiltersKeysEnum.carrierName]: values[FieldsEnum.carrierName] || undefined,\n\n        [QueryFiltersKeysEnum.dictTrailerId]: values[FieldsEnum.dictTrailerId] || undefined,\n\n        [QueryFiltersKeysEnum.spotOrder]: values[FieldsEnum.ordersType] === OrderTypeEnum.spot || undefined,\n        [QueryFiltersKeysEnum.contractedOrder]: values[FieldsEnum.ordersType] === OrderTypeEnum.contracted || undefined,\n        [QueryFiltersKeysEnum.spotTransportOrder]:\n            values[FieldsEnum.transportOrdersType] === TransportOrderTypeEnum.spot || undefined,\n        [QueryFiltersKeysEnum.contractedTransportOrder]:\n            values[FieldsEnum.transportOrdersType] === TransportOrderTypeEnum.contracted || undefined,\n\n        [QueryFiltersKeysEnum.hasUnpaidOrders]: values[FieldsEnum.hasUnpaidOrders] || undefined,\n\n        [QueryFiltersKeysEnum.pickupDateFrom]: undefined,\n        [QueryFiltersKeysEnum.pickupDateTo]: undefined,\n\n        [QueryFiltersKeysEnum.dropOffDateFrom]: undefined,\n        [QueryFiltersKeysEnum.dropOffDateTo]: undefined,\n\n        [QueryFiltersKeysEnum.createdDateFrom]: undefined,\n        [QueryFiltersKeysEnum.createdDateTo]: undefined,\n    };\n\n    const pickupDates = values[FieldsEnum.pickupDates];\n    if (pickupDates?.from) {\n        const date = getDateFromDate(pickupDates.from);\n        queryFilters[QueryFiltersKeysEnum.pickupDateFrom] = getStartDayFromDateZero(date);\n    }\n\n    if (pickupDates?.to) {\n        const date = getDateFromDate(pickupDates.to);\n        queryFilters[QueryFiltersKeysEnum.pickupDateTo] = getEndDayFromDateZero(date);\n    }\n\n    const dropoffDates = values[FieldsEnum.dropoffDates];\n    if (dropoffDates?.from) {\n        const date = getDateFromDate(dropoffDates.from);\n        queryFilters[QueryFiltersKeysEnum.dropOffDateFrom] = getStartDayFromDateZero(date);\n    }\n\n    if (dropoffDates?.to) {\n        const date = getDateFromDate(dropoffDates.to);\n        queryFilters[QueryFiltersKeysEnum.dropOffDateTo] = getEndDayFromDateZero(date);\n    }\n\n    const createDates = values[FieldsEnum.createDates];\n    if (createDates?.from) {\n        const date = getDateFromDate(createDates.from);\n        queryFilters[QueryFiltersKeysEnum.createdDateFrom] = getStartDayFromDateZero(date);\n    }\n\n    if (createDates?.to) {\n        const date = getDateFromDate(createDates.to);\n        queryFilters[QueryFiltersKeysEnum.createdDateTo] = getEndDayFromDateZero(date);\n    }\n\n    return queryFilters;\n};\n\nexport default getQueryFilters;\n","// extracted by mini-css-extract-plugin\nexport default {\"group\":\"RulePreview__group___aWaco\",\"group-head\":\"RulePreview__group-head___Ffnxp\",\"group-title\":\"RulePreview__group-title___MdoBa\",\"group-summary\":\"RulePreview__group-summary___u2Vh0\",\"rules\":\"RulePreview__rules___SS2jL\",\"rule-category-pills\":\"RulePreview__rule-category-pills___yShPO\",\"rule-category-title\":\"RulePreview__rule-category-title___NBxVS\",\"rule-category-title--ignored\":\"RulePreview__rule-category-title--ignored___Ozzl4\",\"rule-category-title--ignored-not-actual\":\"RulePreview__rule-category-title--ignored-not-actual___DT5tN\",\"rule-category-title--new\":\"RulePreview__rule-category-title--new___DZQFJ\",\"rule-pill\":\"RulePreview__rule-pill___mudm3\",\"type-pill\":\"RulePreview__type-pill___FGfJb\",\"fadeIn\":\"RulePreview__fadeIn___pMgyf\",\"blinking\":\"RulePreview__blinking___sEc3p\"};","// extracted by mini-css-extract-plugin\nexport default {\"textarea\":\"Textarea__textarea___e8OSo\",\"textarea--isTransparent\":\"Textarea__textarea--isTransparent___RBXsZ\",\"textarea--isHovered\":\"Textarea__textarea--isHovered___ZL6SB\",\"textarea--isFocused\":\"Textarea__textarea--isFocused___oqtKe\",\"textarea--isEmpty\":\"Textarea__textarea--isEmpty___oiL5T\",\"textarea--hasSuccess\":\"Textarea__textarea--hasSuccess___qIFMk\",\"textarea--hasWarning\":\"Textarea__textarea--hasWarning___kBECa\",\"textarea--hasChanges\":\"Textarea__textarea--hasChanges___Cqwzl\",\"textarea--isHighlighted\":\"Textarea__textarea--isHighlighted___mjUR5\",\"textarea--hasError\":\"Textarea__textarea--hasError___z7VAg\",\"textarea--isDisabled\":\"Textarea__textarea--isDisabled____C18u\",\"inner-textarea\":\"Textarea__inner-textarea___ZmAW2\",\"inner-textarea--isEmpty\":\"Textarea__inner-textarea--isEmpty___motr8\",\"inner-textarea--isDisabled\":\"Textarea__inner-textarea--isDisabled___Vjext\",\"fadeIn\":\"Textarea__fadeIn___CrfcE\",\"blinking\":\"Textarea__blinking___lCKBj\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\n\nimport styles from './DriversAssignmentFooterContent.scss';\nimport DriversAssignmentForm from '../../DriversAssignmentForm/DriversAssignmentForm';\nimport { TransportOrderDetailsT } from 'common/store/transport-order-details/models';\nimport { RequestStatusT } from 'common/utils/request-status';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    transportOrderId: TransportOrderIdT;\n    transportOrderDetails: TransportOrderDetailsT | null | undefined;\n    onCancel: () => void;\n    isAvailableToUnassignDriver: boolean;\n    unnassignDriversRequestStatus: RequestStatusT;\n    onUnnasignDrivers: () => void;\n};\n\nconst DriversAssignmentFooterContent: React.FC<PropsT> = React.memo((props) => {\n    const {\n        onCancel,\n        transportOrderId,\n        transportOrderDetails,\n        className,\n        isAvailableToUnassignDriver,\n        unnassignDriversRequestStatus,\n        onUnnasignDrivers,\n    } = props;\n\n    if (!transportOrderDetails) {\n        return null;\n    }\n\n    return (\n        <div className={cs(cx('content'), className)}>\n            <DriversAssignmentForm\n                transportOrderId={transportOrderId}\n                transportOrderDetails={transportOrderDetails}\n                onCancel={onCancel}\n                isAllowUnassignDriver={isAvailableToUnassignDriver}\n                unnassignDriversRequestStatus={unnassignDriversRequestStatus}\n                onUnnasignDrivers={onUnnasignDrivers}\n            />\n        </div>\n    );\n});\n\nexport default DriversAssignmentFooterContent;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst ContactIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={fillColor}\n                    d=\"M10.877 4L14.5 7.622V16h-9V4h5.377M10 11.5c.825 0 1.5-.675 1.5-1.5s-.675-1.5-1.5-1.5-1.5.675-1.5 1.5.675 1.5 1.5 1.5zm3 2.572c0-.607-.36-1.147-.915-1.387a5.213 5.213 0 00-4.17 0c-.555.24-.915.78-.915 1.387v.428h6v-.428z\"\n                />\n                <path\n                    fill={strokeColor}\n                    d=\"M10.877 4L14.5 7.622V16h-9V4h5.377m.623-1.5h-6C4.675 2.5 4 3.175 4 4v12c0 .825.675 1.5 1.5 1.5h9c.825 0 1.5-.675 1.5-1.5V7l-4.5-4.5zm-1.5 9c.825 0 1.5-.675 1.5-1.5s-.675-1.5-1.5-1.5-1.5.675-1.5 1.5.675 1.5 1.5 1.5zm3 2.572c0-.607-.36-1.147-.915-1.387a5.213 5.213 0 00-4.17 0c-.555.24-.915.78-.915 1.387v.428h6v-.428z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nContactIcon.displayName = 'ContactIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default ContactIcon;\n","// extracted by mini-css-extract-plugin\nexport default {\"table--id\":\"ShipmentDetailsCard__table--id___efHNC\",\"table--po\":\"ShipmentDetailsCard__table--po___Tiqht\",\"table--point\":\"ShipmentDetailsCard__table--point___WB881\",\"table--shipment\":\"ShipmentDetailsCard__table--shipment___hpvHC\",\"table\":\"ShipmentDetailsCard__table___vX2Dj\",\"fadeIn\":\"ShipmentDetailsCard__fadeIn___qdXZC\",\"blinking\":\"ShipmentDetailsCard__blinking___lmAzH\"};","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n    className?: string;\n};\n\nconst CalendarIcon: React.FC<PropsT> = (props) => {\n    const { size, fillColor, strokeColor, className } = props;\n\n    return (\n        <svg\n            xmlns=\"http://www.w3.org/2000/svg\"\n            xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n            width={size}\n            height={size}\n            className={className}\n            viewBox=\"0 0 20 20\"\n        >\n            <defs>\n                <path\n                    id=\"4oz2u0ytpa\"\n                    d=\"M6.667 1.667v1.666h6.666V1.667H15v1.666h.833c.917 0 1.667.75 1.667 1.667v11.667c0 .916-.75 1.666-1.667 1.666H4.167c-.925 0-1.667-.75-1.667-1.666L2.508 5a1.66 1.66 0 011.659-1.667H5V1.667h1.667zM15.833 7.5H4.167v9.167h11.666V7.5zM7.5 9.167v1.666H5.833V9.167H7.5zm3.333 0v1.666H9.167V9.167h1.666zm3.334 0v1.666H12.5V9.167h1.667zM15.833 5H4.167v1.667h11.666V5z\"\n                />\n                <path id=\"axmp3dnelb\" d=\"M4.167 6.667h11.666V5H4.167z\" />\n            </defs>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <use fill={strokeColor} xlinkHref=\"#4oz2u0ytpa\" />\n                <use fill={fillColor} xlinkHref=\"#axmp3dnelb\" />\n            </g>\n        </svg>\n    );\n};\n\nCalendarIcon.displayName = 'CalendarIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default CalendarIcon;\n\nexport const CalendarIconProps = {\n    getControlProps: ({\n        isDisabled,\n        isFocused,\n        hasError,\n        hasWarning,\n        hasSuccess,\n        hasValue,\n    }: {\n        isDisabled?: boolean;\n        isFocused?: boolean;\n        hasError?: boolean;\n        hasWarning?: boolean;\n        hasSuccess?: boolean;\n        hasValue?: boolean;\n    }): PropsT => {\n        if (hasError) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.white,\n                strokeColor: StyleGuideColorsEnum.tomatoRed,\n            };\n        }\n\n        if (hasWarning) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.white,\n                strokeColor: StyleGuideColorsEnum.orange,\n            };\n        }\n\n        if (hasSuccess) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.white,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n\n        if (isDisabled) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.white,\n                strokeColor: StyleGuideColorsEnum.slate,\n            };\n        }\n\n        return {\n            size: DEFAULT_ICON_SIZE,\n            fillColor: hasValue || isFocused ? StyleGuideColorsEnum.brandAccent : StyleGuideColorsEnum.white,\n            strokeColor: hasValue || isFocused ? StyleGuideColorsEnum.brandDark : StyleGuideColorsEnum.light,\n        };\n    },\n};\n","import { ApiCompanyContactDetailsT, PartnerTypeEnum } from 'common/utils/api/models';\n\nexport const contactDetailsCompanyTypeMap: Record<\n    NonNullable<ApiCompanyContactDetailsT['companyType']>,\n    PartnerTypeEnum\n> = {\n    SHIPPER: PartnerTypeEnum.shipper,\n    BROKER: PartnerTypeEnum.broker,\n    CARRIER: PartnerTypeEnum.carrier,\n};\n","const concatTestSelectors = (testSelectors: Array<string | null | undefined>): string => {\n    let result = '';\n\n    testSelectors.forEach((testSelector) => {\n        if (testSelector) {\n            result += `${result ? '_' : ''}${testSelector}`;\n        }\n    });\n\n    return result;\n};\n\nexport { concatTestSelectors };\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst AccountIcon: React.FC<PropsT> = (props) => {\n    const { size, fillColor, strokeColor } = props;\n    return (\n        <svg width={size} height={size} viewBox=\"0 0 20 20\" xmlns=\"http://www.w3.org/2000/svg\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    d=\"M10 8.575a1.575 1.575 0 1 0 0-3.15 1.575 1.575 0 0 0 0 3.15zm0 3.6c-2.228 0-4.575 1.095-4.575 1.575v.825h9.15v-.825c0-.48-2.348-1.575-4.575-1.575z\"\n                    fillOpacity=\".3\"\n                    fill={fillColor}\n                />\n                <path\n                    d=\"M10 10.75c-2.003 0-6 1.005-6 3V16h12v-2.25c0-1.995-3.998-3-6-3zm4.575 3.825h-9.15v-.825c0-.48 2.348-1.575 4.575-1.575 2.227 0 4.575 1.095 4.575 1.575v.825zM10 10a3 3 0 1 0 0-6 3 3 0 1 0 0 6zm0-4.575a1.575 1.575 0 1 1 0 3.15 1.575 1.575 0 0 1 0-3.15z\"\n                    fill={strokeColor}\n                />\n            </g>\n        </svg>\n    );\n};\n\nAccountIcon.displayName = 'AccountIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    fillColor: StyleGuideColorsEnum.brandAccent,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport const AccountIconProps = {\n    getControlProps: ({\n        isDisabled,\n        isFocused,\n        hasError,\n        hasWarning,\n        hasSuccess,\n        hasValue,\n    }: {\n        isDisabled?: boolean;\n        isFocused?: boolean;\n        hasError?: boolean;\n        hasWarning?: boolean;\n        hasSuccess?: boolean;\n        hasValue?: boolean;\n    }): PropsT => {\n        if (hasError) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.light,\n                strokeColor: StyleGuideColorsEnum.tomatoRed,\n            };\n        }\n\n        if (hasWarning) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.light,\n                strokeColor: StyleGuideColorsEnum.orange,\n            };\n        }\n\n        if (hasSuccess) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.brandAccent,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n\n        if (isDisabled) {\n            return {\n                size: DEFAULT_ICON_SIZE,\n                fillColor: StyleGuideColorsEnum.light,\n                strokeColor: StyleGuideColorsEnum.slate,\n            };\n        }\n\n        return {\n            size: DEFAULT_ICON_SIZE,\n            fillColor: hasValue || isFocused ? StyleGuideColorsEnum.brandAccent5 : StyleGuideColorsEnum.light,\n            strokeColor: hasValue || isFocused ? StyleGuideColorsEnum.brandDark : StyleGuideColorsEnum.gray,\n        };\n    },\n};\n\nexport { storyProps };\nexport default AccountIcon;\n","import { BrokerOrderDetailsT } from 'broker-admin/store/broker-order-details/models';\n\nexport const getOrderId = (brokerOrderDetails: BrokerOrderDetailsT | null): OrderIdT | null => {\n    return brokerOrderDetails?.id || null;\n};\n","import { FieldsEnum, FormValuesT } from './constants';\nimport { simpleStringFormatter } from 'common/utils/form-formatters';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from 'common/layouts/TrucksPageLayout/query-models';\nimport { getStartDayFromDateZero, getEndDayFromDateZero, getDateFromDate } from 'common/utils/time';\n\nconst getQueryFilters = (values: FormValuesT): QueryFiltersT => {\n    const queryFilters: QueryFiltersT = {\n        [QueryFiltersKeysEnum.model]: values[FieldsEnum.model].length ? values[FieldsEnum.model] : undefined,\n        [QueryFiltersKeysEnum.contractId]: values[FieldsEnum.contractId].length\n            ? values[FieldsEnum.contractId]\n            : undefined,\n        [QueryFiltersKeysEnum.contractName]: values[FieldsEnum.contractName].length\n            ? values[FieldsEnum.contractName]\n            : undefined,\n        [QueryFiltersKeysEnum.status]: values[FieldsEnum.status].length ? values[FieldsEnum.status] : undefined,\n        [QueryFiltersKeysEnum.emissionClass]: values[FieldsEnum.emissionClass].length\n            ? values[FieldsEnum.emissionClass]\n            : undefined,\n        [QueryFiltersKeysEnum.country]: values[FieldsEnum.country].length ? values[FieldsEnum.country] : undefined,\n        [QueryFiltersKeysEnum.createdByUserId]: values[FieldsEnum.createdByUserId].length\n            ? values[FieldsEnum.createdByUserId]\n            : undefined,\n        [QueryFiltersKeysEnum.createdByUserName]: values[FieldsEnum.createdByUserName].length\n            ? values[FieldsEnum.createdByUserName]\n            : undefined,\n        [QueryFiltersKeysEnum.lastModifyByUserId]: values[FieldsEnum.lastModifyByUserId].length\n            ? values[FieldsEnum.lastModifyByUserId]\n            : undefined,\n        [QueryFiltersKeysEnum.lastModifyByUserName]: values[FieldsEnum.lastModifyByUserName].length\n            ? values[FieldsEnum.lastModifyByUserName]\n            : undefined,\n        [QueryFiltersKeysEnum.plateNumber]: simpleStringFormatter(values[FieldsEnum.plateNumber]) || undefined,\n    };\n\n    const createDates = values[FieldsEnum.createDates];\n    if (createDates?.from) {\n        queryFilters[QueryFiltersKeysEnum.createdDateFrom] = getStartDayFromDateZero(getDateFromDate(createDates.from));\n    }\n    if (createDates?.to) {\n        queryFilters[QueryFiltersKeysEnum.createdDateTo] = getEndDayFromDateZero(getDateFromDate(createDates.to));\n    }\n\n    const lastModifyDates = values[FieldsEnum.lastModifyDates];\n    if (lastModifyDates?.from) {\n        queryFilters[QueryFiltersKeysEnum.lastModifyDateFrom] = getStartDayFromDateZero(\n            getDateFromDate(lastModifyDates.from),\n        );\n    }\n    if (lastModifyDates?.to) {\n        queryFilters[QueryFiltersKeysEnum.lastModifyDateTo] = getEndDayFromDateZero(\n            getDateFromDate(lastModifyDates.to),\n        );\n    }\n\n    const lastTelematicUpdateDates = values[FieldsEnum.lastTelematicUpdateDates];\n    if (lastTelematicUpdateDates?.from) {\n        queryFilters[QueryFiltersKeysEnum.lastTelematicUpdateDateFrom] = getStartDayFromDateZero(\n            getDateFromDate(lastTelematicUpdateDates.from),\n        );\n    }\n    if (lastTelematicUpdateDates?.to) {\n        queryFilters[QueryFiltersKeysEnum.lastTelematicUpdateDateTo] = getEndDayFromDateZero(\n            getDateFromDate(lastTelematicUpdateDates.to),\n        );\n    }\n\n    return queryFilters;\n};\n\nexport default getQueryFilters;\n","import * as React from 'react';\nimport isNumber from 'lodash/isNumber';\n\ntype PropsT = {\n    lowestTemperature?: number | null | undefined;\n    highestTemperature?: number | null | undefined;\n};\n\nconst TemperatureModeFormatter: React.FC<PropsT> = React.memo((props) => {\n    const { lowestTemperature, highestTemperature } = props;\n\n    const label =\n        isNumber(lowestTemperature) && isNumber(highestTemperature)\n            ? `${lowestTemperature}...${highestTemperature} °C`\n            : null;\n\n    return <span>{label}</span>;\n});\n\nexport default TemperatureModeFormatter;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './RadiusDropdown.scss';\n\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport { StyleGuideColorsEnum, UnitTypeEnum } from 'common/constants';\nimport DropdownControlOptionLabel from 'design-system/components/dropdowns/option/DropdownControlOptionLabel/DropdownControlOptionLabel';\nimport GeoAreaIcon from 'common/icons/GeoAreaIcon';\nimport DropdownInput from 'design-system/components/dropdowns/DropdownInput/DropdownInput';\nimport UnitTypeCount from 'common/components/units/UnitTypeCount/UnitTypeCount';\nimport { useSelector } from 'react-redux';\nimport { selectAssignmentRadiuses } from 'broker-admin/store/settings/selectors';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype RadiusT = number | null;\n\nexport type RadiusOptionT = {\n    label: React.ReactNode;\n    value: RadiusT;\n};\n\ntype PropsT = {\n    className?: string;\n    radius: RadiusT;\n    setRadius: (radius: RadiusT) => void;\n};\n\nconst RadiusDropdown: React.FC<PropsT> = React.memo((props) => {\n    const { className, radius, setRadius } = props;\n\n    const assignmentRadiuses = useSelector(selectAssignmentRadiuses);\n\n    const radiusOptions: Array<RadiusOptionT> = React.useMemo(\n        () =>\n            assignmentRadiuses.map((radius) => ({\n                label: <UnitTypeCount count={radius} type={UnitTypeEnum.kilometersAbbreviation} />,\n                value: radius,\n            })),\n        [assignmentRadiuses],\n    );\n\n    return (\n        <DropdownInput<RadiusOptionT, RadiusOptionT['value']>\n            className={className}\n            selectedValue={radius}\n            options={radiusOptions}\n            onSelect={setRadius}\n            renderOption={(option) => {\n                if (!option) {\n                    return null;\n                }\n\n                return <DropdownControlOptionLabel withoutPaddings label={option.label} />;\n            }}\n            renderTriggerContent={(option) => {\n                if (!option) {\n                    return null;\n                }\n\n                return (\n                    <DropdownControlOptionLabel\n                        withoutPaddings\n                        icon={<GeoAreaIcon fillColor={StyleGuideColorsEnum.brandDark} />}\n                        label={option.label}\n                    />\n                );\n            }}\n            getOptionValue={(option) => option?.value}\n            overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n        />\n    );\n});\n\nexport default RadiusDropdown;\n","import { ApiPriceComponentTypeT, ApiPriceSettingsRuleOperationT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { CountryCodeT } from 'common/store/countries-dict/models';\nimport { ApiPriceRuleTypeRequestT } from 'common/utils/api/models';\n\nexport enum FieldsEnum {\n    name = 'name',\n    types = 'types',\n\n    trailerTypeIds = 'trailer-type-ids',\n\n    partnerIds = 'partner-ids',\n\n    fromCountryCodes = 'from-country-codes',\n\n    toCountryCodes = 'to-country-codes',\n\n    priceComponent = 'price-component',\n    priceOperation = 'price-operation',\n\n    createDates = 'create-dates',\n    createdByUserId = 'create-dated-by-user-id',\n    createdByUserName = 'create-dated-by-user-name',\n\n    lastModifyDates = 'last-modify-dates',\n    lastModifyByUserId = 'last-modify-by-user-id',\n    lastModifyByUserName = 'last-modify-by-user-name',\n\n    validFrom = 'valid-from',\n    validTill = 'valid-till',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.name]: string;\n    [FieldsEnum.types]: Array<ApiPriceRuleTypeRequestT>;\n\n    [FieldsEnum.trailerTypeIds]: Array<TrailerDictIdT>;\n\n    [FieldsEnum.partnerIds]: Array<ShipperIdT>;\n\n    [FieldsEnum.fromCountryCodes]: Array<CountryCodeT>;\n\n    [FieldsEnum.toCountryCodes]: Array<CountryCodeT>;\n\n    [FieldsEnum.priceComponent]: Array<ApiPriceComponentTypeT>;\n    [FieldsEnum.priceOperation]: Array<ApiPriceSettingsRuleOperationT>;\n\n    [FieldsEnum.createDates]: DateRangeT | null;\n    [FieldsEnum.createdByUserId]: Array<UserIdT>;\n    [FieldsEnum.createdByUserName]: Array<string>;\n\n    [FieldsEnum.lastModifyDates]: DateRangeT | null;\n    [FieldsEnum.lastModifyByUserId]: Array<UserIdT>;\n    [FieldsEnum.lastModifyByUserName]: Array<string>;\n\n    [FieldsEnum.validFrom]: DateRangeT | null;\n    [FieldsEnum.validTill]: DateRangeT | null;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, string>>;\n","// extracted by mini-css-extract-plugin\nexport default {\"route-point-pin\":\"RouteEditMap__route-point-pin___QFjQt\",\"route-point-pin--number\":\"RouteEditMap__route-point-pin--number___VvfAQ\",\"route-point-pin--ferry\":\"RouteEditMap__route-point-pin--ferry___SXpLQ\",\"exclude-countries\":\"RouteEditMap__exclude-countries___LAoDo\",\"fadeIn\":\"RouteEditMap__fadeIn___LkY4W\",\"blinking\":\"RouteEditMap__blinking___Un2rE\"};","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './FiltersSidebarContent.scss';\nimport { useTranslation } from 'react-i18next';\nimport { useFormik } from 'formik';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport getQueryFilters from './get-query-filters';\nimport getInitialValues from './get-initial-values';\nimport { QueryFiltersKeysEnum, QueryFiltersT } from '../query-models';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport FooterSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/FooterSideBarLayout/FooterSideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport { isDeepEqual } from 'common/utils/deep-equal';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport DictTrailerDropdown from 'common/components/dropdowns/DictTrailerDropdown/DictTrailerDropdown';\nimport Input from 'common/components/Input/Input';\nimport DatePicker, { DatePickerOverlayPositionEnum } from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { fetchTrailersDict } from 'common/store/trailers-dict/actions';\nimport CarrierDropdown from 'broker-admin/components/dropdowns/CarrierDropdown/CarrierDropdown';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport ShipperSuggest from 'broker-admin/components/dropdowns/ShipperSuggest/ShipperSuggest';\nimport DispatcherDropdown from 'broker-admin/components/dropdowns/DispatcherDropdown/DispatcherDropdown';\nimport KeyAccountManagerDropdown from 'broker-admin/components/dropdowns/KeyAccountManagerDropdown/KeyAccountManagerDropdown';\nimport { TooltipPositionEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport PinIcon, { PinIconProps } from 'common/icons/PinIcon';\nimport SelectedFilters from '../SelectedFilters/SelectedFilters';\nimport { mergeQueryFilters } from 'common/utils/query';\nimport Switcher from 'common/components/Switcher/Switcher';\nimport OrderTypeDropdown, { OrderTypeEnum } from './OrderTypeDropdown/OrderTypeDropdown';\nimport TransportOrderTypeDropdown, {\n    TransportOrderTypeEnum,\n} from './TransportOrderTypeDropdown/TransportOrderTypeDropdown';\nimport { selectPermissions } from 'common/store/auth/selectors';\nimport pick from 'lodash/pick';\nimport FeaturesContext from 'common/contexts/features';\nimport { ClientFeatureEnum } from 'common/utils/features/client-features-config';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    onClose: () => void;\n    queryFilters: QueryFiltersT;\n    setQueryFilters: (queryFilters: QueryFiltersT) => void;\n};\n\nconst FiltersSidebarContent: React.FC<PropsT> = (props) => {\n    const { onClose, setQueryFilters, queryFilters } = props;\n    const { t } = useTranslation();\n\n    const permissions = useSelector(selectPermissions);\n\n    const featuresContext = React.useContext(FeaturesContext);\n    const isShowStatusFiltersAfterPaid = !!featuresContext?.checkActiveClientFeature?.(\n        ClientFeatureEnum.showStatusFiltersAfterPaid,\n    );\n\n    const dispatch = useDispatch();\n\n    React.useEffect(() => {\n        dispatch(fetchTrailersDict());\n    }, [dispatch]);\n\n    const [initialQueryFilters, setInitialQueryFilters] = React.useState<QueryFiltersT>(queryFilters);\n\n    React.useEffect(() => {\n        setInitialQueryFilters(queryFilters);\n    }, [queryFilters]);\n\n    const initialValues = React.useMemo(() => getInitialValues(queryFilters), [queryFilters]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialValues,\n        onSubmit: (values, formikHelpers): void => {\n            const newQueryFilters = getQueryFilters(values);\n            let mergedQueryFilters = mergeQueryFilters(initialQueryFilters, newQueryFilters);\n\n            if (values[FieldsEnum.ordersType] !== OrderTypeEnum.all) {\n                mergedQueryFilters = {\n                    ...mergedQueryFilters,\n                    ...pick(newQueryFilters, [QueryFiltersKeysEnum.spotOrder, QueryFiltersKeysEnum.contractedOrder]),\n                };\n            }\n\n            if (values[FieldsEnum.transportOrdersType] !== TransportOrderTypeEnum.all) {\n                mergedQueryFilters = {\n                    ...mergedQueryFilters,\n                    ...pick(newQueryFilters, [\n                        QueryFiltersKeysEnum.spotTransportOrder,\n                        QueryFiltersKeysEnum.contractedTransportOrder,\n                    ]),\n                };\n            }\n\n            setQueryFilters(mergedQueryFilters);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const isSameValues = React.useMemo(() => {\n        return isDeepEqual(initialValues, formik.values) && isDeepEqual(initialQueryFilters, queryFilters);\n    }, [initialValues, formik.values, initialQueryFilters, queryFilters]);\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('form')}>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent title={t('broker-orders.list.filters.title')} onClose={onClose} />\n            </HeaderSideBarLayout>\n            <SideBarLayout>\n                <FormikField\n                    className={cx('field', 'field--address')}\n                    name={FieldsEnum.originAddress}\n                    error={formik.errors[FieldsEnum.originAddress]}\n                    meta={formik.getFieldMeta(FieldsEnum.originAddress)}\n                    label={t('broker-orders.list.filters.fields.origin-address')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                    tooltipPosition={TooltipPositionEnum.topLeft}\n                    tooltipNode={\n                        <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                            {t('broker-orders.list.filters.tooltip.address')}\n                        </TooltipContent>\n                    }\n                >\n                    {(props) => (\n                        <Input\n                            renderLeftIcon={(iconMeta) => <PinIcon {...PinIconProps.getControlProps(iconMeta)} />}\n                            name={FieldsEnum.originAddress}\n                            value={formik.values[FieldsEnum.originAddress] || ''}\n                            placeholder={t('broker-orders.list.filters.placeholders.origin-address')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            hasClearControl\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    className={cx('field', 'field--address')}\n                    name={FieldsEnum.dropOffAddress}\n                    error={formik.errors[FieldsEnum.dropOffAddress]}\n                    meta={formik.getFieldMeta(FieldsEnum.dropOffAddress)}\n                    label={t('broker-orders.list.filters.fields.destination-address')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                    tooltipPosition={TooltipPositionEnum.topLeft}\n                    tooltipNode={\n                        <TooltipContent theme={TooltipContentThemeEnum.black} isNoWrap>\n                            {t('broker-orders.list.filters.tooltip.address')}\n                        </TooltipContent>\n                    }\n                >\n                    {(props) => (\n                        <Input\n                            renderLeftIcon={(iconMeta) => <PinIcon {...PinIconProps.getControlProps(iconMeta)} />}\n                            name={FieldsEnum.dropOffAddress}\n                            value={formik.values[FieldsEnum.dropOffAddress] || ''}\n                            placeholder={t('broker-orders.list.filters.placeholders.destination-address')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                            hasClearControl\n                        />\n                    )}\n                </FormikField>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.pickupDates}\n                        error={formik.errors[FieldsEnum.pickupDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.pickupDates)}\n                        label={t('broker-orders.list.filters.fields.pickup-dates')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.pickupDates]}\n                                placeholder={t('broker-orders.list.filters.placeholders.pickup-dates')}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.dropoffDates}\n                        error={formik.errors[FieldsEnum.dropoffDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.dropoffDates)}\n                        label={t('broker-orders.list.filters.fields.drop-off-dates')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.dropoffDates]}\n                                placeholder={t('broker-orders.list.filters.placeholders.drop-off-dates')}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomRight}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--dates')}\n                        name={FieldsEnum.createDates}\n                        error={formik.errors[FieldsEnum.createDates]}\n                        meta={formik.getFieldMeta(FieldsEnum.createDates)}\n                        label={t('broker-orders.list.filters.fields.created-dates')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                isRange\n                                value={formik.values[FieldsEnum.createDates]}\n                                placeholder={t('broker-orders.list.filters.placeholders.created-dates')}\n                                onChange={props.onChange}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                                hasClearControl\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--trailer-type')}\n                        name={FieldsEnum.dictTrailerId}\n                        error={formik.errors[FieldsEnum.dictTrailerId]}\n                        meta={formik.getFieldMeta(FieldsEnum.dictTrailerId)}\n                        label={t('broker-orders.list.filters.fields.trailer-type')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DictTrailerDropdown\n                                placeholder={t('broker-orders.list.filters.placeholders.trailer-type')}\n                                value={formik.values[FieldsEnum.dictTrailerId]}\n                                onChange={props.onChange}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasClearControl\n                                overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--shipper')}\n                        name={FieldsEnum.shipperId}\n                        error={formik.errors[FieldsEnum.shipperId]}\n                        meta={formik.getFieldMeta(FieldsEnum.shipperId)}\n                        label={t('broker-orders.list.filters.fields.shipper')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <ShipperSuggest\n                                value={formik.values[FieldsEnum.shipperId]}\n                                initialValue={initialValues[FieldsEnum.shipperId]}\n                                initialLabel={initialValues[FieldsEnum.shipperName] || ''}\n                                hasClearControl\n                                onSelect={(shipperId, shipperName) => {\n                                    formik.setFieldValue(FieldsEnum.shipperId, shipperId);\n                                    formik.setFieldValue(FieldsEnum.shipperName, shipperName);\n                                }}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                placeholder={t('broker-orders.list.filters.placeholders.shipper')}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--carrier')}\n                        name={FieldsEnum.carrierId}\n                        error={formik.errors[FieldsEnum.carrierId]}\n                        meta={formik.getFieldMeta(FieldsEnum.carrierId)}\n                        label={t('broker-orders.list.filters.fields.carrier')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <CarrierDropdown\n                                value={formik.values[FieldsEnum.carrierId]}\n                                initialValue={initialValues[FieldsEnum.carrierId]}\n                                initialLabel={initialValues[FieldsEnum.carrierName] || ''}\n                                hasClearControl\n                                onSelect={(carrierId, carrierName) => {\n                                    formik.setFieldValue(FieldsEnum.carrierId, carrierId);\n                                    formik.setFieldValue(FieldsEnum.carrierName, carrierName);\n                                }}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                                placeholder={t('broker-orders.list.filters.placeholders.carrier')}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                <FieldGroup>\n                    <FormikField<FormValuesT[FieldsEnum.ordersType]>\n                        className={cx('field', 'field--order-type')}\n                        label={t('broker-orders.list.filters.fields.order-type')}\n                        name={FieldsEnum.ordersType}\n                        error={formik.errors[FieldsEnum.ordersType]}\n                        meta={formik.getFieldMeta(FieldsEnum.ordersType)}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <OrderTypeDropdown value={formik.values[FieldsEnum.ordersType]} onSelect={props.onChange} />\n                        )}\n                    </FormikField>\n                    <FormikField<FormValuesT[FieldsEnum.transportOrdersType]>\n                        className={cx('field', 'field--transport-order-type')}\n                        label={t('broker-orders.list.filters.fields.transport-order-type')}\n                        name={FieldsEnum.transportOrdersType}\n                        error={formik.errors[FieldsEnum.transportOrdersType]}\n                        meta={formik.getFieldMeta(FieldsEnum.transportOrdersType)}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <TransportOrderTypeDropdown\n                                value={formik.values[FieldsEnum.transportOrdersType]}\n                                onSelect={props.onChange}\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                {permissions?.canFilterBrokerOrdersByAccountManagerOrDispatcher && (\n                    <FieldGroup>\n                        <FormikField\n                            className={cx('field', 'field--dispatcher')}\n                            label={t('broker-orders.list.filters.fields.dispatcher')}\n                            name={FieldsEnum.dispatcherId}\n                            error={formik.errors[FieldsEnum.dispatcherId]}\n                            meta={formik.getFieldMeta(FieldsEnum.dispatcherId)}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <DispatcherDropdown\n                                    selectedValue={formik.values[FieldsEnum.dispatcherId]}\n                                    initialLabel={initialValues[FieldsEnum.dispatcherName]}\n                                    placeholder={t('broker-orders.list.filters.placeholders.dispatcher')}\n                                    onSelect={(memberId, memberName) => {\n                                        formik.setFieldValue(FieldsEnum.dispatcherId, memberId);\n                                        formik.setFieldValue(FieldsEnum.dispatcherName, memberName);\n                                    }}\n                                    hasWarning={props.hasWarning}\n                                    hasError={props.hasError}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    onReset={() => {\n                                        formik.setFieldValue(FieldsEnum.dispatcherId, null);\n                                        formik.setFieldValue(FieldsEnum.dispatcherName, null);\n                                    }}\n                                />\n                            )}\n                        </FormikField>\n                        <FormikField\n                            className={cx('field', 'field--key-account-manager')}\n                            label={t('broker-orders.list.filters.fields.key-account-manager')}\n                            name={FieldsEnum.keyAccountManagerId}\n                            error={formik.errors[FieldsEnum.keyAccountManagerId]}\n                            meta={formik.getFieldMeta(FieldsEnum.keyAccountManagerId)}\n                            setFieldValue={formik.setFieldValue}\n                            setFieldTouched={formik.setFieldTouched}\n                        >\n                            {(props) => (\n                                <KeyAccountManagerDropdown\n                                    selectedValue={formik.values[FieldsEnum.keyAccountManagerId]}\n                                    initialLabel={initialValues[FieldsEnum.keyAccountManagerName]}\n                                    placeholder={t('broker-orders.list.filters.placeholders.key-account-manager')}\n                                    onSelect={(memberId, memberName) => {\n                                        formik.setFieldValue(FieldsEnum.keyAccountManagerId, memberId);\n                                        formik.setFieldValue(FieldsEnum.keyAccountManagerName, memberName);\n                                    }}\n                                    hasWarning={props.hasWarning}\n                                    hasError={props.hasError}\n                                    onBlur={props.onBlur}\n                                    onFocus={props.onFocus}\n                                    onReset={() => {\n                                        formik.setFieldValue(FieldsEnum.keyAccountManagerId, null);\n                                        formik.setFieldValue(FieldsEnum.keyAccountManagerName, null);\n                                    }}\n                                />\n                            )}\n                        </FormikField>\n                    </FieldGroup>\n                )}\n                {isShowStatusFiltersAfterPaid && (\n                    <FormikField<FormValuesT[FieldsEnum.hasUnpaidOrders]>\n                        className={cx('field', 'field--has-unpaid-shipment')}\n                        name={FieldsEnum.hasUnpaidOrders}\n                        error={formik.errors[FieldsEnum.hasUnpaidOrders]}\n                        meta={formik.getFieldMeta(FieldsEnum.hasUnpaidOrders)}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                        withoutLabel\n                    >\n                        {(props) => (\n                            <Switcher\n                                checked={!!formik.values[FieldsEnum.hasUnpaidOrders]}\n                                onToggle={(value) => {\n                                    props.onChange(value);\n                                }}\n                                label={t('broker-orders.list.filters.fields.has-unpaid-shipper-orders')}\n                            />\n                        )}\n                    </FormikField>\n                )}\n            </SideBarLayout>\n            <FooterSideBarLayout hasPaddings>\n                <div className={cx('selected-filters')}>\n                    <SelectedFilters queryFilters={initialQueryFilters} setQueryFilters={setInitialQueryFilters} />\n                </div>\n                <Button\n                    theme={ButtonThemeEnum.primary}\n                    isDisabled={isSameValues}\n                    isFullWidth\n                    isCenterContent\n                    type=\"submit\"\n                >\n                    {t('broker-orders.list.filters.submit')}\n                </Button>\n            </FooterSideBarLayout>\n        </form>\n    );\n};\n\nexport default FiltersSidebarContent;\n","import requestStatus from 'common/utils/request-status';\nimport keyBy from 'lodash/keyBy';\nimport {\n    FETCH_MANAGERS_REQUEST_BEGIN,\n    FETCH_MANAGERS_REQUEST_ERROR,\n    FETCH_MANAGERS_REQUEST_SUCCESS,\n    ManagersActionT,\n    ManagersStateT,\n} from './types';\nimport { DESTROY_SESSION, DestroySessionActionT } from 'common/store/auth/types';\nimport { isNonNil } from 'common/utils';\n\nconst initialState: ManagersStateT = {\n    request: requestStatus.initial,\n    byId: {},\n    allIds: [],\n};\n\nexport default (state = initialState, action: ManagersActionT | DestroySessionActionT): ManagersStateT => {\n    switch (action.type) {\n        case FETCH_MANAGERS_REQUEST_BEGIN: {\n            return {\n                ...state,\n                request: requestStatus.loading,\n            };\n        }\n        case FETCH_MANAGERS_REQUEST_SUCCESS: {\n            const { managers } = action;\n\n            const allIds: Array<string> = managers.map((manager) => manager.id).filter(isNonNil);\n            const byId = keyBy(managers, 'id');\n\n            return {\n                ...state,\n                byId,\n                allIds,\n                request: requestStatus.ok,\n            };\n        }\n        case FETCH_MANAGERS_REQUEST_ERROR: {\n            const { error } = action;\n\n            return {\n                ...state,\n                request: requestStatus.setError(error),\n            };\n        }\n        case DESTROY_SESSION: {\n            return initialState;\n        }\n        default:\n            return state;\n    }\n};\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport isNumber from 'lodash/isNumber';\nimport isNil from 'lodash/isNil';\n\nimport styles from './EditableCostCell.scss';\nimport Money from 'common/components/Money/Money';\nimport { CURRENCY_SYMBOLS, CurrencyEnum } from 'common/constants';\nimport Input from 'common/components/Input/Input';\nimport { getMoneyMask } from 'common/utils/input-masks';\nimport { parseSimpleNumber } from 'common/utils/input-parsers';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    isHoveredRow: boolean;\n    cost: number | null | undefined;\n    onUpdate: (cost: number) => void;\n};\n\nconst cx = classNames.bind(styles);\n\nconst moneyMask = getMoneyMask();\n\nconst ENTER_KEY = 'Enter';\n\nconst costToString = (cost: number | null | undefined) => {\n    return isNumber(cost) ? String(cost) : '';\n};\n\nconst EditableCostCell: React.FC<PropsT> = React.memo((props) => {\n    const { isHoveredRow, cost: rawCost, onUpdate } = props;\n\n    const { t } = useTranslation();\n\n    const [isHoveredCell, setHoveredCell] = React.useState<boolean>(false);\n\n    const [optimisticCost, setOptimisticCost] = React.useState<number | null>(null);\n    React.useEffect(() => {\n        setOptimisticCost(null);\n    }, [rawCost]);\n\n    const cost = isNumber(optimisticCost) ? optimisticCost : rawCost;\n\n    const [inputValue, setInputValue] = React.useState<string>(costToString(cost));\n\n    React.useEffect(() => {\n        if (!isHoveredRow) {\n            setHoveredCell(false);\n        }\n    }, [isHoveredRow]);\n\n    const handleMouseMove = () => {\n        setInputValue(costToString(cost));\n        setHoveredCell(true);\n    };\n\n    const handleMouseLeave = () => {\n        setHoveredCell(false);\n    };\n\n    const handleKeyUp = (event: React.KeyboardEvent<HTMLInputElement>) => {\n        const parsedInputValue = parseSimpleNumber(inputValue) || 0;\n        const isValid = isNumber(parsedInputValue) && !Number.isNaN(parsedInputValue);\n        const isSameValue = parsedInputValue === cost;\n        if (event.key === ENTER_KEY && isValid && !isSameValue) {\n            onUpdate(parsedInputValue);\n            setOptimisticCost(parsedInputValue);\n        }\n    };\n\n    const isShowInput = isHoveredCell && isHoveredRow;\n\n    return (\n        <div className={cx('cost')} onMouseLeave={handleMouseLeave}>\n            {isShowInput && (\n                <Input\n                    name=\"cost\"\n                    value={inputValue}\n                    mask={moneyMask}\n                    rightNode={CURRENCY_SYMBOLS.EUR}\n                    onChange={setInputValue}\n                    onKeyUp={handleKeyUp}\n                />\n            )}\n            {!isShowInput && (\n                <div onMouseMove={handleMouseMove}>\n                    {!isNil(cost) && <Money amount={cost} className={cx('price')} currency={CurrencyEnum.EUR} />}\n                    {isNil(cost) && <div className={cx('empty')}>{t('common:null-cost')}</div>}\n                </div>\n            )}\n        </div>\n    );\n});\n\nexport default EditableCostCell;\n","import { RequestStatusT } from 'common/utils/request-status';\nimport useOnlyChangesEffect from 'common/utils/hooks/useOnlyChangesEffect';\n\ntype CallbackT = () => void;\n\nconst useAfterSuccessRequest = (\n    requestStatus: RequestStatusT | null | undefined,\n    callback: CallbackT | null | undefined,\n) => {\n    useOnlyChangesEffect(() => {\n        if (requestStatus?.ok && callback) {\n            callback();\n        }\n    }, [requestStatus]);\n};\n\nexport default useAfterSuccessRequest;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './SendingToSpotForm.scss';\nimport { useTranslation } from 'react-i18next';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useSelector } from 'react-redux';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport validateForm from './validate-form';\nimport { useFormik } from 'formik';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport TimeWindowPicker from 'common/components/forms/TimeWindowPicker/TimeWindowPicker';\nimport { getRelativeStartDayTimeWindow, MS_IN_HOUR } from 'common/utils/time';\nimport { logWarning } from 'common/utils/logger';\nimport { ALL_DAY_RANGE } from 'common/constants';\nimport Input from 'common/components/Input/Input';\nimport LinkDatePicker, {\n    DatePickerOverlayPositionEnum,\n} from 'design-system/components/date-pickers/LinkDatePicker/LinkDatePicker';\nimport { getDateStringToTimeWindow, mergeWithRelativeTimeWindow } from './utils';\nimport moment from 'moment';\nimport TimeWindowPillLabel from './TimeWindowPillLabel/TimeWindowPillLabel';\nimport isEqual from 'lodash/isEqual';\nimport { selectSpotUpdateRequestStatus } from 'broker-admin/store/spot/selectors';\nimport { useWatchFormAnyErrors } from 'common/utils/hooks/useWatchFormFormHasErrors';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    allowedRangeValidTill: TimeWindowT | null;\n    onCancel: () => void;\n    onSubmit: (deadline: string, comment: string) => void;\n};\n\nconst INITIAL_VALUES: FormValuesT = {\n    [FieldsEnum.deadlineTimeWindow]: [Date.now(), Date.now() + 2 * MS_IN_HOUR],\n    [FieldsEnum.comment]: '',\n};\n\nconst SendingToSpotForm: React.FC<PropsT> = (props) => {\n    const { onCancel, onSubmit, allowedRangeValidTill } = props;\n\n    const { t } = useTranslation();\n\n    const spotRequest = useSelector(selectSpotUpdateRequestStatus);\n\n    const [minDateCalendarDate, maxDateCalendarDate] = React.useMemo(() => {\n        if (!allowedRangeValidTill) {\n            return [null, null];\n        }\n\n        const format = (timestamp: number) => moment(timestamp).format('YYYY-MM-DD');\n\n        return [format(allowedRangeValidTill[0]), format(allowedRangeValidTill[1])];\n    }, [allowedRangeValidTill]);\n\n    const validate = React.useMemo(() => {\n        return (values: FormValuesT) => validateForm(t, values);\n    }, [t]);\n\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values: FormValuesT = {\n            ...INITIAL_VALUES,\n            [FieldsEnum.deadlineTimeWindow]: allowedRangeValidTill,\n            [FieldsEnum.comment]: '',\n        };\n\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [allowedRangeValidTill]);\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const deadline = values[FieldsEnum.deadlineTimeWindow]?.[1];\n            if (!deadline) {\n                logWarning('empty deadline');\n                return;\n            }\n\n            const deadlineStr = moment(deadline).format();\n            const comment = values[FieldsEnum.comment] || '';\n\n            onSubmit(deadlineStr, comment);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    const hasFormAnyErros = useWatchFormAnyErrors(formik.errors);\n\n    const deadlineTimeWindow = formik.values[FieldsEnum.deadlineTimeWindow];\n\n    const { selectedDate, selectedRelativeTimeWindow } = React.useMemo(() => {\n        const selectedDate = getDateStringToTimeWindow(deadlineTimeWindow);\n        const selectedRelativeTimeWindow = getRelativeStartDayTimeWindow(deadlineTimeWindow, selectedDate);\n\n        return {\n            selectedDate,\n            selectedRelativeTimeWindow,\n        };\n    }, [deadlineTimeWindow]);\n\n    const handleChangeDate = (value: Date | null) => {\n        const startTimestamp = formik.values[FieldsEnum.deadlineTimeWindow]?.[0] || null;\n\n        const endTimestamp = value ? moment(value).endOf('day').valueOf() - 1 : null;\n        const limitedEndTimestamp =\n            endTimestamp && allowedRangeValidTill ? Math.min(endTimestamp, allowedRangeValidTill?.[1]) : endTimestamp;\n\n        formik.setTouched({\n            [FieldsEnum.deadlineTimeWindow]: true,\n        });\n\n        formik.setFieldValue(FieldsEnum.deadlineTimeWindow, [startTimestamp, limitedEndTimestamp]);\n    };\n\n    const selectedCalendarDate = React.useMemo(() => {\n        return selectedDate ? new Date(selectedDate) : null;\n    }, [selectedDate]);\n\n    const availableRelativeValues = React.useMemo((): TimeWindowT | null => {\n        return getRelativeStartDayTimeWindow(allowedRangeValidTill, selectedDate);\n    }, [allowedRangeValidTill, selectedDate]);\n\n    const handleChangeTimeWindow = (name: FieldsEnum.deadlineTimeWindow, relativeTimeWindow: TimeWindowT): void => {\n        const prevTimeWindow = formik.values[name];\n        if (!prevTimeWindow) {\n            return;\n        }\n\n        const timeWindow = mergeWithRelativeTimeWindow(prevTimeWindow, relativeTimeWindow);\n\n        const isSameValue = isEqual(prevTimeWindow, timeWindow);\n        if (isSameValue) {\n            return;\n        }\n\n        formik.setFieldValue(name, timeWindow);\n    };\n\n    return (\n        <form onSubmit={formik.handleSubmit}>\n            <div className={cx('form')}>\n                <FormikField\n                    name={FieldsEnum.deadlineTimeWindow}\n                    error={formik.errors[FieldsEnum.deadlineTimeWindow]}\n                    meta={formik.getFieldMeta(FieldsEnum.deadlineTimeWindow)}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                    withoutLabel\n                    className={cx('field', 'field--time-picker')}\n                >\n                    {() => (\n                        <TimeWindowPicker\n                            range={ALL_DAY_RANGE}\n                            availableValues={availableRelativeValues || ALL_DAY_RANGE}\n                            ranges={[]}\n                            name={FieldsEnum.deadlineTimeWindow}\n                            hasStartStep\n                            hasEndStep\n                            isDisableLeftRangeControl\n                            values={selectedRelativeTimeWindow}\n                            setFieldValue={handleChangeTimeWindow}\n                            label={t('broker-order-details.send-to-spot.fields.deadline-time-window.label')}\n                            duration={\n                                <TimeWindowPillLabel\n                                    className={cx('time-window-pill-label')}\n                                    timeWindow={formik.values[FieldsEnum.deadlineTimeWindow]}\n                                />\n                            }\n                            link={\n                                <LinkDatePicker\n                                    minDate={minDateCalendarDate}\n                                    maxDate={maxDateCalendarDate}\n                                    value={selectedCalendarDate}\n                                    onChange={handleChangeDate}\n                                    overlayPosition={DatePickerOverlayPositionEnum.bottomRight}\n                                />\n                            }\n                        />\n                    )}\n                </FormikField>\n                <FormikField\n                    className={cx('field')}\n                    name={FieldsEnum.comment}\n                    error={formik.errors[FieldsEnum.comment]}\n                    meta={formik.getFieldMeta(FieldsEnum.comment)}\n                    label={t('broker-order-details.send-to-spot.fields.comment.label')}\n                    setFieldValue={formik.setFieldValue}\n                    setFieldTouched={formik.setFieldTouched}\n                >\n                    {(props) => (\n                        <Input\n                            name={FieldsEnum.comment}\n                            value={formik.values[FieldsEnum.comment]}\n                            placeholder={t('broker-order-details.send-to-spot.fields.comment.placeholder')}\n                            onChange={props.onChange}\n                            onBlur={props.onBlur}\n                            onFocus={props.onFocus}\n                            hasError={props.hasError}\n                            hasWarning={props.hasWarning}\n                        />\n                    )}\n                </FormikField>\n            </div>\n            <div className={cx('actions')}>\n                <Button theme={ButtonThemeEnum.secondary} className={cx('action', 'action--cancel')} onClick={onCancel}>\n                    {t('broker-order-details.send-to-spot.actions.cancel')}\n                </Button>\n                <Button\n                    theme={ButtonThemeEnum.primary}\n                    isDisabled={hasFormAnyErros || spotRequest.loading}\n                    className={cx('action', 'action--send')}\n                    isLoading={spotRequest.loading}\n                    type=\"submit\"\n                >\n                    {t('broker-order-details.send-to-spot.actions.submit')}\n                </Button>\n            </div>\n        </form>\n    );\n};\n\nexport default SendingToSpotForm;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"AsyncSearchScrollableList__inner___X0wag\",\"full-height-wrap\":\"AsyncSearchScrollableList__full-height-wrap___yMZH0\",\"list\":\"AsyncSearchScrollableList__list___xXeE1\",\"overlay\":\"AsyncSearchScrollableList__overlay___yaK4e\",\"loader\":\"AsyncSearchScrollableList__loader___2LiiE\",\"message\":\"AsyncSearchScrollableList__message___VUfCs\",\"separator\":\"AsyncSearchScrollableList__separator___wGSLs\",\"fadeIn\":\"AsyncSearchScrollableList__fadeIn___rhsma\",\"blinking\":\"AsyncSearchScrollableList__blinking___c2Esr\"};","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport NotificationCardInnerLayout from '../shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from '../shared/NotificationEntityLabel/NotificationEntityLabel';\n\nexport type SpotRequestStatusCardPropsT = {\n    type: 'new' | 'won' | 'cancelled' | 'expired';\n    fromLocation: string | null | undefined;\n    toLocation: string | null | undefined;\n    spotRequestNumber: string | null | undefined;\n};\n\nconst labelMap: Record<SpotRequestStatusCardPropsT['type'], string> = {\n    new: 'common:notifications.spot-request-status.new',\n    won: 'common:notifications.spot-request-status.won',\n    cancelled: 'common:notifications.spot-request-status.cancelled',\n    expired: 'common:notifications.spot-request-status.expired',\n};\n\nconst SpotRequestStatusCard: React.FC<SpotRequestStatusCardPropsT> = React.memo((props) => {\n    const { type, fromLocation, toLocation, spotRequestNumber } = props;\n\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey={labelMap[type]}\n                components={{\n                    fromLocation: <NotificationEntityLabel isBold text={fromLocation} />,\n                    toLocation: <NotificationEntityLabel isBold text={toLocation} />,\n                    spotRequestNumber: <NotificationEntityLabel isBold text={spotRequestNumber} />,\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default SpotRequestStatusCard;\n","import React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './Delimeter.scss';\nimport { formatTimeZone } from 'common/utils/time';\nimport { DelimiterThemeEnum } from '../models';\n\nconst cx = classNames.bind(styles);\n\nexport type DelimiterPropsT = {\n    label: React.ReactElement | string | null;\n    topOffsetPx: number;\n    utcOffset: number | null;\n    theme: DelimiterThemeEnum;\n};\n\nconst Delimiter: React.FC<DelimiterPropsT> = (props) => {\n    const { label, topOffsetPx, theme, utcOffset } = props;\n\n    return (\n        <div\n            className={cx('delimiter', {\n                [`delimiter--${theme}`]: true,\n            })}\n            style={{\n                top: `${topOffsetPx}px`,\n            }}\n        >\n            {label && (\n                <div\n                    className={cx('delimiter__text', {\n                        [`delimiter__text--${theme}`]: true,\n                    })}\n                    title={formatTimeZone(utcOffset)}\n                >\n                    {label}\n                </div>\n            )}\n        </div>\n    );\n};\n\nexport { Delimiter };\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './UpdatedPartnerCarrierContractCard.scss';\nimport { Trans } from 'react-i18next';\nimport ContractName from 'broker-admin/components/notification-cards/entities/ContractName/ContractName';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    contractName: string;\n};\n\nconst UpdatedPartnerCarrierContractCard: React.FC<PropsT> = React.memo((props) => {\n    const { contractName } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"notifications.partner-carrier-contract-updated\"\n                components={{\n                    contractName: <ContractName contractName={contractName} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default UpdatedPartnerCarrierContractCard;\n","import * as React from 'react';\nimport { routesEnum, ShipperContractLaneRoutesEnum } from 'broker-admin/constants';\nimport { Redirect, Route, Switch, useParams } from 'react-router-dom';\nimport history, { goBackIfHasRePath } from 'common/utils/history';\nimport { urlFactory } from 'broker-admin/utils/urls';\nimport PartnerContext from 'common/contexts/partner-context';\nimport SideBars from 'broker-admin/layouts/SideBars/SideBars';\nimport ShipperContractLaneCreationPage from './ShipperContractLaneCreationPage/ShipperContractLaneCreationPage';\nimport ShipperContractLaneDetailsPage from './ShipperContractLaneDetailsPage/ShipperContractLaneDetailsPage';\nimport { parsePartnerTypeParam } from 'broker-admin/utils/urls-params';\nimport { ExtractRouterRouteParamsT } from 'common/utils/extract-router-route-params-t';\nimport PartnerPermissionsContextProvider from 'broker-admin/components/PartnerPermissionsContextProvider/PartnerPermissionsContextProvider';\n\ntype PropsT = {};\n\nconst ShipperContractLanePage: React.FC<PropsT> = React.memo(() => {\n    const params = useParams<ExtractRouterRouteParamsT<typeof routesEnum.shipperLaneDetails>>();\n\n    const { partnerId, contractId } = params;\n    const partnerType = parsePartnerTypeParam(params.partnerType);\n\n    const defaultRedirectPath = urlFactory.newPartnerShipperContractLane({\n        partnerId,\n        partnerType,\n        contractId,\n    });\n\n    const onGoBack = () => {\n        goBackIfHasRePath(() => {\n            history.push(\n                urlFactory.partnerShipperContactLanes({\n                    partnerType,\n                    partnerId,\n                    contractId,\n                }),\n            );\n        });\n    };\n\n    const partnerContextValue = React.useMemo(() => {\n        return {\n            partnerType: parsePartnerTypeParam(params.partnerType),\n            partnerId: params.partnerId,\n        };\n    }, [params.partnerId, params.partnerType]);\n\n    return (\n        <PartnerContext.Provider value={partnerContextValue}>\n            <PartnerPermissionsContextProvider partnerId={partnerContextValue.partnerId}>\n                <Switch>\n                    <Route path={ShipperContractLaneRoutesEnum.newLane}>\n                        <ShipperContractLaneCreationPage contractId={contractId} onClose={onGoBack} />\n                    </Route>\n                    <Route path={ShipperContractLaneRoutesEnum.laneDetails}>\n                        <ShipperContractLaneDetailsPage onClose={onGoBack} />\n                    </Route>\n                    <Route>\n                        <Redirect to={defaultRedirectPath} />\n                    </Route>\n                </Switch>\n                <SideBars />\n            </PartnerPermissionsContextProvider>\n        </PartnerContext.Provider>\n    );\n});\n\nexport default ShipperContractLanePage;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './MapControlsLayout.scss';\nimport { UNIT } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\ntype ContainerPropsT = {\n    children?: React.ReactNode;\n    gap?: number;\n};\n\nconst Container: React.FC<ContainerPropsT> = React.memo(({ children, gap }) => {\n    return (\n        <div className={cx('container')} style={{ gap: `${(gap || 0) * UNIT}px` }}>\n            {children}\n        </div>\n    );\n});\n\ntype RowPropsT = {\n    children?: React.ReactNode;\n    isCenter?: boolean;\n    gap?: number;\n};\n\nconst Row: React.FC<RowPropsT> = React.memo((props) => {\n    const { children, isCenter, gap } = props;\n    return (\n        <div className={cx('row', { 'row--center': isCenter })} style={{ gap: `${(gap || 0) * UNIT}px` }}>\n            {children}\n        </div>\n    );\n});\n\nexport const MapControlsLayout = { Container, Row };\n","import { ApiShipmentStatusT, ShipmentStatusEnum } from 'common/utils/api/models';\n\nexport const visitedOriginLoadStatusSet = new Set<ApiShipmentStatusT>([\n    ShipmentStatusEnum.inTransit,\n    ShipmentStatusEnum.unloading,\n    ShipmentStatusEnum.delivered,\n]);\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"OrderEditedCard__inner___F0p7D\",\"fadeIn\":\"OrderEditedCard__fadeIn___MZEQ1\",\"blinking\":\"OrderEditedCard__blinking___ffgaM\"};","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"BidDetails__inner___IStf4\",\"inner--isClickable\":\"BidDetails__inner--isClickable___AFccS\",\"row\":\"BidDetails__row___OQUYf\",\"head\":\"BidDetails__head___oHJlG\",\"head--isOpened\":\"BidDetails__head--isOpened___A46x7\",\"head--isClickable\":\"BidDetails__head--isClickable___JwJGz\",\"main\":\"BidDetails__main___BP0w_\",\"main__money\":\"BidDetails__main__money___M7aVw\",\"main__diff\":\"BidDetails__main__diff___DLviZ\",\"column__main\":\"BidDetails__column__main___iQZOt\",\"column__icon\":\"BidDetails__column__icon___RvNHE\",\"column__status\":\"BidDetails__column__status___jG8cw\",\"body\":\"BidDetails__body___g52JO\",\"match-pill\":\"BidDetails__match-pill___Hquwm\",\"fadeIn\":\"BidDetails__fadeIn___pChyE\",\"blinking\":\"BidDetails__blinking___JXCFu\"};","import * as React from 'react';\nimport { TruckStatusEnum, ApiTruckStatusT } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    status: ApiTruckStatusT | null | undefined;\n};\n\nexport const TRUCK_STATUS_T_MAP: Record<ApiTruckStatusT, string> = {\n    [TruckStatusEnum.free]: 'common:truck-status.FREE',\n    [TruckStatusEnum.inTransit]: 'common:truck-status.IN_TRANSIT',\n    [TruckStatusEnum.unavailable]: 'common:truck-status.UNAVAILABLE',\n    [TruckStatusEnum.archived]: 'common:truck-status.ARCHIVED',\n};\n\nconst TruckStatus: React.FC<PropsT> = React.memo((props) => {\n    const { status } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return null;\n    }\n\n    return t(TRUCK_STATUS_T_MAP[status]);\n});\n\nexport default TruckStatus;\n","import * as React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport Stepper, { StepT } from 'common/components/Stepper/Stepper';\n\ntype PropsT = {\n    className?: string;\n    activeStepIndex: number;\n    setActiveStepIndex: (activeStepIndex: number) => void;\n};\n\nconst Steps: React.FC<PropsT> = React.memo((props) => {\n    const { className, activeStepIndex, setActiveStepIndex } = props;\n\n    const { t } = useTranslation();\n\n    const steps = React.useMemo((): Array<StepT> => {\n        return [\n            {\n                label: t('deadhead-creation.steps.route'),\n            },\n            {\n                label: t('deadhead-creation.steps.contacts'),\n            },\n        ];\n    }, [t]);\n\n    return (\n        <Stepper\n            className={className}\n            activeStepIndex={activeStepIndex}\n            goTo={setActiveStepIndex}\n            steps={steps}\n            testSelector=\"deadhead-creation\"\n            initShowStepIndex={0}\n        />\n    );\n});\n\nexport default Steps;\n","import React from 'react';\n\nimport classNames from 'classnames/bind';\n\nimport styles from './LinkDatePicker.scss';\n\nimport Calendar, {\n    CalendarDateRangeValuePropsT,\n    CalendarDateValuePropsT,\n} from 'design-system/components/Calendar/Calendar';\nimport DatePickerOverlay, { DatePickerOverlayPositionEnum } from '../internals/DatePickerOverlay/DatePickerOverlay';\nimport DateLinkTrigger, {\n    DateLinkTriggerPropsT,\n    DateLinkTriggerRangePropsT,\n} from 'design-system/components/date-pickers/internals/DateLinkTrigger/DateLinkTrigger';\nimport { shiftMidnight } from 'common/utils/time';\n\nconst cx = classNames.bind(styles);\n\ntype BasePropsT = {\n    leftIcon?: React.ReactNode;\n    placeholder?: string;\n    isDisabled?: boolean;\n    minDate?: string | null;\n    maxDate?: string | null;\n    allowedDates?: string[];\n    allowedDatesStartDate?: string | null;\n    disabledDates?: string[];\n    overlayPosition?: DatePickerOverlayPositionEnum;\n    hasYearMonthForm?: boolean;\n};\n\nexport type LinkDatePickerPropsT = (BasePropsT & CalendarDateValuePropsT) | (BasePropsT & CalendarDateRangeValuePropsT);\n\n/* eslint-disable react/destructuring-assignment */\nconst LinkDatePicker: React.FC<LinkDatePickerPropsT> = (props) => {\n    const {\n        placeholder,\n        isDisabled,\n        minDate,\n        maxDate,\n        overlayPosition,\n        hasYearMonthForm,\n        leftIcon,\n        allowedDates,\n        allowedDatesStartDate,\n        disabledDates,\n    } = props;\n\n    const [isOpen, toggleOpen] = React.useState(false);\n    const triggerRef = React.useRef<HTMLDivElement>(null);\n\n    const handleCalendarRangeChange: CalendarDateRangeValuePropsT['onChange'] = (value, selectedDate) => {\n        if (props.isRange) {\n            props.onChange(value, selectedDate);\n        }\n    };\n\n    const handleCalendarDateChange: CalendarDateValuePropsT['onChange'] = (value, selectedDate) => {\n        toggleOpen(false);\n\n        if (!props.isRange) {\n            props.onChange(value, selectedDate);\n        }\n    };\n\n    const handleOpen = () => {\n        if (isDisabled) {\n            return;\n        }\n\n        toggleOpen(true);\n    };\n\n    const handleOuterEvent = () => {\n        toggleOpen(false);\n    };\n\n    let dateLinkTriggerProps: DateLinkTriggerPropsT | DateLinkTriggerRangePropsT;\n    if (props.isRange) {\n        dateLinkTriggerProps = {\n            isRange: true,\n            value: props.value,\n        };\n    } else {\n        dateLinkTriggerProps = {\n            isRange: false,\n            value: props.value,\n        };\n    }\n\n    let calendarValueProps: CalendarDateValuePropsT | CalendarDateRangeValuePropsT;\n    if (props.isRange) {\n        calendarValueProps = {\n            isRange: true,\n            value: props.value,\n            initialValue: props.initialValue,\n            onChange: handleCalendarRangeChange,\n            focusInitialDate: props.value?.from,\n        };\n    } else {\n        calendarValueProps = {\n            isRange: false,\n            value: props.value,\n            initialValue: props.initialValue,\n            onChange: handleCalendarDateChange,\n            focusInitialDate: props.value,\n        };\n    }\n\n    return (\n        <div className={cx('dropdown')}>\n            <div className={cx('input')}>\n                <div ref={triggerRef}>\n                    <DateLinkTrigger\n                        leftIcon={leftIcon}\n                        isDisabled={isDisabled}\n                        className={cx('trigger')}\n                        {...dateLinkTriggerProps}\n                        onClick={() => handleOpen()}\n                        placeholder={placeholder}\n                    />\n                </div>\n                <DatePickerOverlay\n                    isOpen={isOpen}\n                    position={overlayPosition}\n                    referenceElement={triggerRef.current}\n                    onClose={handleOuterEvent}\n                >\n                    <Calendar\n                        minDate={minDate}\n                        maxDate={maxDate ? shiftMidnight(maxDate) : null}\n                        hasYearMonthForm={hasYearMonthForm}\n                        testSelectorPrefix=\"link-date-picker\"\n                        allowedDates={allowedDates}\n                        allowedDatesStartDate={allowedDatesStartDate}\n                        disabledDates={disabledDates}\n                        {...calendarValueProps}\n                    />\n                </DatePickerOverlay>\n            </div>\n        </div>\n    );\n};\n\nexport default LinkDatePicker;\nexport { DatePickerOverlayPositionEnum };\n","import * as React from 'react';\nimport { RuleT } from 'broker-admin/store/price-settings/rules/models';\nimport PriceRuleTargetPill from 'broker-admin/components/pills/PriceRuleTargetPill/PriceRuleTargetPill';\n\ntype PropsT = {\n    rule: RuleT;\n};\n\nconst TargetCell: React.FC<PropsT> = React.memo((props) => {\n    const { rule } = props;\n\n    return <PriceRuleTargetPill ruleTarget={rule.target} ruleOperator={rule.operator} ruleValue={rule.value} />;\n});\n\nexport default TargetCell;\n","import React from 'react';\n\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport BigQuestionIcon from 'common/icons/BigQuestionIcon';\n\nexport type ActivateDriverConfirmationDataT = {\n    companyId: CompanyIdT;\n    driverId: DriverIdT;\n    driverName: string | undefined;\n    driverSurname: string | undefined;\n};\n\ntype PropsT = {\n    data: ActivateDriverConfirmationDataT | null;\n    onCancel: () => void;\n    onClose: () => void;\n    onConfirm: (data: ActivateDriverConfirmationDataT) => void;\n    requestStatus: RequestStatusT;\n};\n\nconst TEST_SELECTOR = 'activate-driver';\n\nconst ActivateDriverConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, onCancel, onClose, requestStatus, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    const fullName = [data.driverName, data.driverSurname].filter(Boolean).join(' ');\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            isDisabled: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            onClick: () => {\n                                onCancel();\n                            },\n                        },\n                        {\n                            children: t('common:error-modal.actions.restore'),\n                            theme: ButtonThemeEnum.primary,\n                            isDisabled: requestStatus.loading,\n                            isLoading: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigQuestionIcon baseColor={StyleGuideColorsEnum.brandAccent} />}\n                    title={t('common:drivers-page.activate-confirmation.title', {\n                        fullName,\n                    })}\n                    message={t('common:drivers-page.activate-confirmation.description', {\n                        fullName,\n                    })}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default ActivateDriverConfirmation;\n","// extracted by mini-css-extract-plugin\nexport default {\"inner\":\"UpdatedPartnerCarrierContractCard__inner___kqixc\",\"fadeIn\":\"UpdatedPartnerCarrierContractCard__fadeIn___oBQF2\",\"blinking\":\"UpdatedPartnerCarrierContractCard__blinking___VdQ5P\"};","// extracted by mini-css-extract-plugin\nexport default {\"widget\":\"AlertsSettingsForm__widget___XBmfk\",\"widget__inner\":\"AlertsSettingsForm__widget__inner___LwvGd\",\"field\":\"AlertsSettingsForm__field___DebVF\",\"fadeIn\":\"AlertsSettingsForm__fadeIn___J_bEg\",\"blinking\":\"AlertsSettingsForm__blinking___Vr28r\"};","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport { useTranslation } from 'react-i18next';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport DeleteIcon from 'common/icons/DeleteIcon';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\n\ntype PropsT = {\n    className?: string;\n    onClick: () => void;\n};\n\nconst DeleteWaypointTrigger: React.FC<PropsT> = React.memo((props) => {\n    const { className, onClick } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <Tooltip\n            position={TooltipPositionEnum.centerLeft}\n            theme={TooltipThemeEnum.black}\n            tooltipNode={\n                <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                    {t('broker-order-route-edit.waypoints-control.delete-point')}\n                </TooltipContent>\n            }\n        >\n            {() => (\n                <TransparentTrigger\n                    className={className}\n                    spaces=\"s\"\n                    onClick={onClick}\n                    leftIcon={<DeleteIcon fillColor={StyleGuideColorsEnum.tomatoRed} />}\n                    reflectionTheme={ReflectionThemeEnum.halfTransparentLight}\n                />\n            )}\n        </Tooltip>\n    );\n});\n\nexport default DeleteWaypointTrigger;\n","import * as React from 'react';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {\n    className?: string;\n    isActive: boolean | null | undefined;\n};\n\nconst PriceRuleStatusLabel: React.FC<PropsT> = React.memo((props) => {\n    const { isActive, className } = props;\n\n    const { t } = useTranslation();\n\n    return (\n        <span className={className}>\n            {t(isActive ? 'price-settings.rules.status.active' : 'price-settings.rules.status.deactivated')}\n        </span>\n    );\n});\n\nexport default PriceRuleStatusLabel;\n","import * as React from 'react';\nimport { useRef } from 'react';\nimport isNumber from 'lodash/isNumber';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\nexport enum MapAreaThemeEnum {\n    assignmentFindArea = 'assignment-find-area',\n    originArea = 'origin-area',\n    destinationArea = 'destination-area',\n}\n\nconst COLOR_MAP: Record<MapAreaThemeEnum, StyleGuideColorsEnum> = {\n    [MapAreaThemeEnum.assignmentFindArea]: StyleGuideColorsEnum.brandAccent,\n    [MapAreaThemeEnum.originArea]: StyleGuideColorsEnum.dodgerBlue,\n    [MapAreaThemeEnum.destinationArea]: StyleGuideColorsEnum.blazeOrange,\n};\n\ntype PropsT = {\n    map: MapT | null | undefined;\n    maps: TODO | null | undefined;\n    theme: MapAreaThemeEnum;\n    centerLat: number | null | undefined;\n    centerLon: number | null | undefined;\n    radiusM: number | null | undefined;\n};\n\nconst MapArea: React.FC<PropsT> = React.memo((props) => {\n    const { map, maps, theme, radiusM, centerLat, centerLon } = props;\n\n    const findAreaRef = useRef<google.maps.Circle | null>(null);\n    React.useEffect(() => {\n        if (findAreaRef.current) {\n            findAreaRef.current.setMap(null);\n        }\n\n        if (!maps || !map || !isNumber(centerLat) || !isNumber(centerLon) || !isNumber(radiusM)) {\n            return;\n        }\n\n        const color = COLOR_MAP[theme];\n\n        findAreaRef.current = new maps.Circle({\n            strokeColor: color,\n            strokeOpacity: 1,\n            strokeWeight: 1,\n            fillColor: color,\n            fillOpacity: 0.05,\n            map,\n            center: {\n                lat: centerLat,\n                lng: centerLon,\n            },\n            radius: radiusM,\n        });\n        if (findAreaRef.current) {\n            findAreaRef.current.setMap(map);\n        }\n    }, [map, maps, centerLat, centerLon, radiusM, theme]);\n\n    React.useEffect(() => {\n        return () => {\n            if (findAreaRef.current) {\n                findAreaRef.current.setMap(null);\n            }\n        };\n    }, []);\n\n    return null;\n});\n\nexport default MapArea;\n","// extracted by mini-css-extract-plugin\nexport default {\"table__header\":\"BaseShipperContractLanesTable__table__header___QfAvV\",\"table__header--id\":\"BaseShipperContractLanesTable__table__header--id___B3qSx\",\"table__header--pickup\":\"BaseShipperContractLanesTable__table__header--pickup___moVcu\",\"table__header--destination\":\"BaseShipperContractLanesTable__table__header--destination___NfYTw\",\"table__header--orders-counter\":\"BaseShipperContractLanesTable__table__header--orders-counter___nHvCl\",\"table__header--total-price\":\"BaseShipperContractLanesTable__table__header--total-price___wSsWe\",\"table__header--valid-till\":\"BaseShipperContractLanesTable__table__header--valid-till___D4qoI\",\"table__header--emission-class\":\"BaseShipperContractLanesTable__table__header--emission-class___Rw8vP\",\"table__header--team-drive\":\"BaseShipperContractLanesTable__table__header--team-drive___A_r3w\",\"table__header--status\":\"BaseShipperContractLanesTable__table__header--status___VeG_E\",\"table__column\":\"BaseShipperContractLanesTable__table__column___25gdJ\",\"table__column--id\":\"BaseShipperContractLanesTable__table__column--id___gMqvj\",\"table__column--pickup\":\"BaseShipperContractLanesTable__table__column--pickup___LbveH\",\"table__column--destination\":\"BaseShipperContractLanesTable__table__column--destination___U1kw7\",\"table__column--orders-counter\":\"BaseShipperContractLanesTable__table__column--orders-counter___o3gcL\",\"table__column--total-price\":\"BaseShipperContractLanesTable__table__column--total-price___AzNmB\",\"table__column--valid-till\":\"BaseShipperContractLanesTable__table__column--valid-till___WPn7U\",\"table__column--emission-class\":\"BaseShipperContractLanesTable__table__column--emission-class___g11V_\",\"table__column--team-drive\":\"BaseShipperContractLanesTable__table__column--team-drive___Jaf8J\",\"table__column--status\":\"BaseShipperContractLanesTable__table__column--status___SDBm0\",\"fadeIn\":\"BaseShipperContractLanesTable__fadeIn___lSeZy\",\"blinking\":\"BaseShipperContractLanesTable__blinking___rPMwm\"};","import { put, select, takeEvery } from 'redux-saga/effects';\nimport {\n    updateBrokerOrderBegin,\n    updateBrokerOrderError,\n    updateBrokerOrderSuccess,\n    updateDockingHours,\n    updateShipment,\n    updateStopContact,\n} from './actions';\nimport { selectBrokerOrderEditUpdateRequestStatus } from './selectors';\nimport { logWarning } from 'common/utils/logger';\nimport brokerTranziitApi from 'broker-admin/utils/api/broker-tranziit/api';\nimport { brokerOrdersRefreshChannel } from 'broker-admin/store/broker-orders/channels';\nimport { stateMachineRefreshChannel } from 'common/store/state-machine/channels';\nimport { brokerOrderDetailsRefreshChannel } from 'broker-admin/store/broker-order-details/channels';\nimport { addAlert } from 'common/store/alerts/actions';\nimport { CommonAlertTypeEnum, CommonAnyAlert } from 'common/components/toasts/AlertToastsManager/models';\n\nfunction* updateShipmentSaga(action: ReturnType<typeof updateShipment>): WrapGeneratorT<void> {\n    const { brokerOrderId, shipmentId, data } = action.payload;\n\n    if (!brokerOrderId) {\n        logWarning('empty brokerOrderId');\n        return;\n    }\n\n    const currentRequestStatus: ReReturnT<typeof selectBrokerOrderEditUpdateRequestStatus> = yield select(\n        selectBrokerOrderEditUpdateRequestStatus(brokerOrderId),\n    );\n    if (currentRequestStatus.loading) {\n        return;\n    }\n\n    yield put(updateBrokerOrderBegin({ brokerOrderId }));\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.editOrderUpdateShipment> =\n        yield brokerTranziitApi.editOrderUpdateShipment(shipmentId, data);\n\n    if (error) {\n        yield put(updateBrokerOrderError({ brokerOrderId, error }));\n    } else {\n        yield put(updateBrokerOrderSuccess({ brokerOrderId }));\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.shipmentUpdated,\n                    data: {},\n                }),\n            ),\n        );\n    }\n\n    brokerOrderDetailsRefreshChannel.emit({\n        brokerOrderId,\n    });\n    brokerOrdersRefreshChannel.emit({});\n}\n\nfunction* updateStopContactSaga(action: ReturnType<typeof updateStopContact>): WrapGeneratorT<void> {\n    const { brokerOrderId, stopId, data } = action.payload;\n\n    if (!brokerOrderId) {\n        logWarning('empty brokerOrderId');\n        return;\n    }\n\n    const currentRequestStatus: ReReturnT<typeof selectBrokerOrderEditUpdateRequestStatus> = yield select(\n        selectBrokerOrderEditUpdateRequestStatus(brokerOrderId),\n    );\n    if (currentRequestStatus.loading) {\n        return;\n    }\n\n    yield put(updateBrokerOrderBegin({ brokerOrderId }));\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.editOrderUpdateStopContact> =\n        yield brokerTranziitApi.editOrderUpdateStopContact(stopId, data);\n\n    if (error) {\n        yield put(updateBrokerOrderError({ brokerOrderId, error }));\n    } else {\n        yield put(updateBrokerOrderSuccess({ brokerOrderId }));\n        yield put(\n            addAlert(\n                new CommonAnyAlert({\n                    type: CommonAlertTypeEnum.shipmentUpdated,\n                    data: {},\n                }),\n            ),\n        );\n    }\n\n    brokerOrderDetailsRefreshChannel.emit({\n        brokerOrderId,\n    });\n    brokerOrdersRefreshChannel.emit({});\n}\n\nfunction* updateDockingHoursSaga(action: ReturnType<typeof updateDockingHours>): WrapGeneratorT<void> {\n    const { brokerOrderId, query } = action.payload;\n\n    if (!brokerOrderId) {\n        logWarning('empty brokerOrderId');\n        return;\n    }\n\n    const currentRequestStatus: ReReturnT<typeof selectBrokerOrderEditUpdateRequestStatus> = yield select(\n        selectBrokerOrderEditUpdateRequestStatus(brokerOrderId),\n    );\n    if (currentRequestStatus.loading) {\n        return;\n    }\n\n    yield put(updateBrokerOrderBegin({ brokerOrderId }));\n\n    const [error]: ReturnApiT<typeof brokerTranziitApi.updateBrokerWindowAppointment> =\n        yield brokerTranziitApi.updateBrokerWindowAppointment(brokerOrderId, query);\n\n    if (error) {\n        yield put(updateBrokerOrderError({ brokerOrderId, error }));\n    } else {\n        yield put(updateBrokerOrderSuccess({ brokerOrderId }));\n    }\n\n    brokerOrderDetailsRefreshChannel.emit({\n        brokerOrderId,\n    });\n    brokerOrdersRefreshChannel.emit({});\n    stateMachineRefreshChannel.emit({});\n}\n\nfunction* brokerOrderEditSaga(): WrapGeneratorT<void> {\n    yield takeEvery(updateShipment.type, updateShipmentSaga);\n    yield takeEvery(updateStopContact.type, updateStopContactSaga);\n    yield takeEvery(updateDockingHours.type, updateDockingHoursSaga);\n}\n\nexport default brokerOrderEditSaga;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport cs from 'classnames';\n\nimport styles from './PapersGroup.scss';\nimport NotificationLabel, {\n    NotificationLabelThemeEnum,\n} from 'common/components/notifications/NotificationLabel/NotificationLabel';\nimport { CompactAttachPaperTrigger } from 'common/components/papers/CompactAttachPaperTrigger/CompactAttachPaperTrigger';\nimport TransparentTriggerWithTooltip from '../../../../design-system/components/ExpandTrigger/TransparentTriggerWithTooltip';\nimport { useTranslation } from 'react-i18next';\nimport ExpandIcon from 'common/icons/ExpandIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    count: number;\n    title: React.ReactNode;\n    onAttachNew?: () => void;\n    isAttachDisabled?: boolean;\n    attachTooltipMessage?: React.ReactNode;\n    children?: React.ReactNode;\n    isInitialOpen?: boolean;\n    className?: string;\n};\n\nconst PapersGroup: React.FC<PropsT> = React.memo((props) => {\n    const { count, title, onAttachNew, isAttachDisabled, attachTooltipMessage, children, isInitialOpen, className } =\n        props;\n\n    const { t } = useTranslation();\n\n    const [isOpen, setIsOpen] = React.useState<boolean>(!!isInitialOpen);\n\n    const handleToggle = React.useCallback(() => {\n        setIsOpen((prev) => !prev);\n    }, []);\n\n    return (\n        <div className={cs(cx('wrap'), className)}>\n            <div className={cx('header')} onClick={handleToggle}>\n                <NotificationLabel className={cx('count')} count={count} theme={NotificationLabelThemeEnum.slate} />\n                <div className={cx('title')}>{title}</div>\n                <div className={cx('controls')}>\n                    {onAttachNew && (\n                        <CompactAttachPaperTrigger\n                            onClick={(event) => {\n                                event.stopPropagation();\n                                if (isAttachDisabled) {\n                                    return;\n                                }\n                                onAttachNew();\n                            }}\n                            isDisabled={isAttachDisabled}\n                            tooltipMessage={attachTooltipMessage}\n                        />\n                    )}\n                    <TransparentTriggerWithTooltip\n                        transparentTriggerProps={{\n                            spaces: 'xs',\n                            leftIcon: <ExpandIcon fillColor={StyleGuideColorsEnum.brandAccent} isInvert={isOpen} />,\n                        }}\n                        tooltipContent={t(isOpen ? 'common:tooltips.collapse' : 'common:tooltips.expand')}\n                        onClick={() => {\n                            // nothing, use common handler\n                        }}\n                    />\n                </div>\n            </div>\n            {isOpen && children && <div className={cx('content')}>{children}</div>}\n        </div>\n    );\n});\n\nexport default PapersGroup;\n","import * as React from 'react';\nimport { useSyncPointsChannels } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/hooks/use-sync-points-channels';\nimport { RoutePointFormValuesT } from 'common/layouts/NewOrderPage/ShipmentDetailsForm/constants';\n\ntype PropsT = {\n    formikArrayHelpers: {\n        insert: (index: number, value: RoutePointFormValuesT) => void;\n        remove: (index: number) => void;\n    };\n};\n\nconst SyncPointsWatcher: React.FC<PropsT> = React.memo((props) => {\n    useSyncPointsChannels(props.formikArrayHelpers);\n\n    return null;\n});\n\nexport default SyncPointsWatcher;\n","import { UserChangesT, UserT } from 'common/store/user/models';\nimport { ApiUserT, ApiUserUpdateT } from 'common/utils/api/models';\n\nexport const convertToApiUserUpdate = (user: UserT): ApiUserUpdateT => {\n    return {\n        language: user.language,\n        name: user.name,\n        phone: user.phone,\n        surname: user.surname,\n    };\n};\n\nconst getAbbreviation = (firstName: string, lastName: string) => {\n    return [firstName, lastName]\n        .filter(Boolean)\n        .map((name) => name.slice(0, 1))\n        .join('')\n        .toUpperCase();\n};\n\nconst getFullName = (firstName: string, lastName: string) => {\n    return [firstName, lastName].filter(Boolean).join(' ');\n};\n\nexport const prepareUser = (apiUser: ApiUserT): UserT => {\n    return {\n        ...apiUser,\n        abbreviation: getAbbreviation(apiUser?.name || '', apiUser?.surname || ''),\n        fullName: getFullName(apiUser?.name || '', apiUser?.surname || ''),\n    };\n};\n\nexport const patchUser = (user: UserT, changes: UserChangesT): UserT => {\n    return {\n        ...user,\n        language: changes.language || user.language,\n        name: changes.firstName,\n        phone: changes.phoneNumber,\n        surname: changes.lastName,\n        abbreviation: getAbbreviation(changes.firstName, changes.lastName),\n        fullName: getFullName(changes.firstName, changes.lastName),\n    };\n};\n","import * as React from 'react';\n\nimport { Trans } from 'react-i18next';\nimport NotificationCardInnerLayout from 'common/components/notification-cards/shared/NotificationCardInnerLayout/NotificationCardInnerLayout';\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\nimport ShipmentColoredStatus from 'common/components/status-colored/ShipmentColoredStatus/ShipmentColoredStatus';\nimport { ApiShipmentStatusT } from 'common/utils/api/models';\n\ntype PropsT = {\n    shipmentNumber: React.ReactNode;\n    status: ApiShipmentStatusT | null | undefined;\n};\n\nconst ShipmentStatusChangedCard: React.FC<PropsT> = React.memo((props) => {\n    const { shipmentNumber, status } = props;\n\n    return (\n        <NotificationCardInnerLayout>\n            <Trans\n                i18nKey=\"common:notifications.shipment-status-changed\"\n                components={{\n                    shipmentNumber: <NotificationEntityLabel isBold isUnderline text={shipmentNumber} />,\n                    status: <ShipmentColoredStatus status={status} isInline />,\n                }}\n            />\n        </NotificationCardInnerLayout>\n    );\n});\n\nexport default ShipmentStatusChangedCard;\n","// extracted by mini-css-extract-plugin\nexport default {\"form\":\"CreatePartnerSidebarContent__form___BiO9z\",\"button--add\":\"CreatePartnerSidebarContent__button--add___WgPMq\",\"section__block\":\"CreatePartnerSidebarContent__section__block___pHOFG\",\"field--name\":\"CreatePartnerSidebarContent__field--name___rc46h\",\"field--type\":\"CreatePartnerSidebarContent__field--type___bkU8I\",\"field--street1\":\"CreatePartnerSidebarContent__field--street1___esNk5\",\"field--zip\":\"CreatePartnerSidebarContent__field--zip___iEDgW\",\"field--city\":\"CreatePartnerSidebarContent__field--city___B5ifQ\",\"fadeIn\":\"CreatePartnerSidebarContent__fadeIn___bw0x1\",\"blinking\":\"CreatePartnerSidebarContent__blinking___tx2V4\"};","// extracted by mini-css-extract-plugin\nexport default {\"title\":\"Notification__title___FTvhM\",\"inner\":\"Notification__inner___sNZuX\",\"message\":\"Notification__message___fUOlX\",\"notification\":\"Notification__notification___BIWt4\",\"content\":\"Notification__content___hffmr\",\"content__left\":\"Notification__content__left___UpCWH\",\"content__right\":\"Notification__content__right___jD9TF\",\"close\":\"Notification__close___FW5Q3\",\"fadeIn\":\"Notification__fadeIn___GDAU2\",\"blinking\":\"Notification__blinking___VzLvY\"};","import { ApiPriceComponentTypeT, ApiPriceSettingsRuleOperationT } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { PriceSettingsRuleStateEnum } from 'broker-admin/layouts/SettingsPage/PriceSettingsRules/constants';\nimport { ApiPriceRuleTypeRequestT, CountryCodeT } from 'common/utils/api/models';\n\nexport enum QueryKeysEnum {\n    rulesPage = 'rules-page',\n    rulesFilters = 'rules-filters',\n    rulesSort = 'rules-sort',\n}\n\nexport enum QueryFiltersKeysEnum {\n    rulesName = 'rules-name',\n    rulesPartnerIds = 'rules-partner-id',\n    rulesFromCountryCodes = 'rules-from-country-codes',\n    rulesTrailerTypeIds = 'rules-trailer-type-ids',\n    rulesToCountryCodes = 'rules-to-country-codes',\n    validFromFrom = 'rules-valid-from-from',\n    validFromTo = 'rules-valid-from-top',\n    validTillFrom = 'rules-valid-till-from',\n    validTillTo = 'rules-valid-till-to',\n    rulesImpactPriceComponent = 'rules-impact-price-component',\n    rulesImpactPriceOperation = 'rules-impact-price-operation',\n\n    createdDateFrom = 'createdDateFrom',\n    createdDateTo = 'createdDateTo',\n    createdByUserId = 'createdByUserId',\n    createdByUserName = 'createdByUserName',\n\n    lastModifyDateFrom = 'lastModifyDateFrom',\n    lastModifyDateTo = 'lastModifyDateTo',\n    lastModifyByUserId = 'lastModifyByUserId',\n    lastModifyByUserName = 'lastModifyByUserName',\n\n    rulesSearchText = 'rules-search-text',\n    rulesState = 'rules-state',\n    rulesTypes = 'rules-types',\n}\n\nexport type QueryFiltersT = Partial<{\n    [QueryFiltersKeysEnum.rulesName]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.rulesPartnerIds]: QueryParam.ArrayT<string>;\n    [QueryFiltersKeysEnum.rulesFromCountryCodes]: Array<CountryCodeT>;\n    [QueryFiltersKeysEnum.rulesTrailerTypeIds]: Array<TrailerDictIdT>;\n    [QueryFiltersKeysEnum.rulesToCountryCodes]: Array<CountryCodeT>;\n    [QueryFiltersKeysEnum.validFromFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.validFromTo]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdDateFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdDateTo]: QueryParam.StringT;\n\n    [QueryFiltersKeysEnum.validTillFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.validTillTo]: QueryParam.StringT;\n\n    [QueryFiltersKeysEnum.rulesImpactPriceComponent]: QueryParam.ArrayT<ApiPriceComponentTypeT>;\n    [QueryFiltersKeysEnum.rulesImpactPriceOperation]: QueryParam.ArrayT<ApiPriceSettingsRuleOperationT>;\n\n    [QueryFiltersKeysEnum.createdDateFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdDateTo]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.createdByUserId]: QueryParam.ArrayT<string>;\n    [QueryFiltersKeysEnum.createdByUserName]: QueryParam.ArrayT<string>;\n\n    [QueryFiltersKeysEnum.lastModifyDateFrom]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.lastModifyDateTo]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.lastModifyByUserId]: QueryParam.ArrayT<string>;\n    [QueryFiltersKeysEnum.lastModifyByUserName]: QueryParam.ArrayT<string>;\n\n    [QueryFiltersKeysEnum.rulesSearchText]: QueryParam.StringT;\n    [QueryFiltersKeysEnum.rulesState]: PriceSettingsRuleStateEnum;\n    [QueryFiltersKeysEnum.rulesTypes]: Array<ApiPriceRuleTypeRequestT>;\n}>;\n","import { BrokerTourStatsStateT } from './slice';\nimport { StateT } from '../models';\n\nexport const selectBrokerTourStatsRequest = (state: StateT): BrokerTourStatsStateT['fetchRequest'] =>\n    state.brokerTourStats.fetchRequest;\n\nexport const selectBrokerTourStats = (state: StateT): BrokerTourStatsStateT['stats'] => state.brokerTourStats.stats;\n","import * as React from 'react';\nimport { Trans } from 'react-i18next';\n\nimport NotificationEntityLabel from 'common/components/notification-cards/shared/NotificationEntityLabel/NotificationEntityLabel';\n\ntype PropsT = {\n    sequenceNumber: number;\n    address?: string;\n    className?: string;\n};\n\nconst StopLabel: React.FC<PropsT> = React.memo((props) => {\n    const { sequenceNumber, address, className } = props;\n\n    if (address) {\n        return (\n            <Trans\n                i18nKey=\"common:notifications.stop-label-with-address\"\n                components={{\n                    sequenceNumber: <NotificationEntityLabel isBold text={sequenceNumber} className={className} />,\n                    address: <NotificationEntityLabel isBold text={address} className={className} />,\n                }}\n            />\n        );\n    }\n\n    return (\n        <Trans\n            i18nKey=\"common:notifications.stop-label\"\n            components={{\n                sequenceNumber: <NotificationEntityLabel isBold text={sequenceNumber} className={className} />,\n            }}\n        />\n    );\n});\n\nexport default StopLabel;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    size: number;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst RadarIcon: React.FC<PropsT> = (props) => {\n    const { strokeColor, size, ...rest } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width={size} height={size} viewBox=\"0 0 20 20\" {...rest}>\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={strokeColor}\n                    d=\"M15.805 14.748A7.488 7.488 0 0017.5 10c0-4.14-3.36-7.5-7.5-7.5-4.14 0-7.5 3.36-7.5 7.5 0 4.14 3.36 7.5 7.5 7.5a7.488 7.488 0 005.332-2.227c.023-.023.038-.046.053-.06.15-.15.293-.308.42-.465zM10 16c-3.308 0-6-2.693-6-6 0-3.308 2.692-6 6-6 3.307 0 6 2.692 6 6a5.943 5.943 0 01-1.268 3.675l-1.072-1.073a4.49 4.49 0 00.825-2.595c0-2.482-2.018-4.5-4.5-4.5a4.504 4.504 0 00-4.5 4.5c0 2.483 2.018 4.5 4.5 4.5.975 0 1.883-.314 2.617-.847l1.066 1.065A5.867 5.867 0 0110 16zm1.44-5.617a1.485 1.485 0 00-.367-1.425l-.016-.016a1.492 1.492 0 00-2.085-.03c-.007.008-.022.015-.037.03a1.503 1.503 0 000 2.123l.015.015c.39.383.938.502 1.433.367l1.132 1.133c-.45.27-.968.435-1.53.435a3 3 0 110-6 3 3 0 013 3 2.93 2.93 0 01-.42 1.5l-1.125-1.133z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nRadarIcon.displayName = 'RadarIcon';\n\nconst storyProps: PropsT = {\n    size: DEFAULT_ICON_SIZE,\n    strokeColor: StyleGuideColorsEnum.brandDark,\n};\n\nexport { storyProps };\nexport default RadarIcon;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './TruckDetailsPage.scss';\nimport { useTranslation } from 'react-i18next';\nimport DetailsLayout from 'common/layouts/DetailsLayout/DetailsLayout';\nimport AssetDetailsMap from 'common/components/AssetDetailsMap/AssetDetailsMap';\nimport { AssetTypeEnum, QueryKeysEnum } from 'common/constants';\nimport useQuery from 'common/utils/hooks/useQuery';\nimport { cancelUnavailableVehicleRequest, fetchVehicleSchedule } from 'common/store/vehicle-schedules/actions';\nimport { useDispatch, useSelector } from 'react-redux';\nimport {\n    selectCancelUnavailableVehicleRequestStatus,\n    selectFetchScheduleRequest,\n    selectVehicleSchedule,\n} from 'common/store/vehicle-schedules/selectors';\nimport { useParams } from 'react-router-dom';\nimport { formatQuery } from 'common/utils/query';\nimport PageTitle from 'common/components/PageTitle/PageTitle';\nimport { selectTrucksDetailsByIds } from 'common/store/trucks/selectors';\nimport isNumber from 'lodash/isNumber';\nimport AssetScheduleSidebar from 'common/components/AssetScheduleSidebar/AssetScheduleSidebar';\nimport usePartnerContext from 'common/utils/hooks/usePartnerContext';\nimport CommonEditableTruckDetailsLayout from 'common/layouts/CommonEditableTruckDetailsLayout/CommonEditableTruckDetailsLayout';\nimport { CommonSidebarsTypeEnum } from 'common/layouts/SideBars/models';\nimport { useOpenLeftSidebar } from 'common/layouts/SideBars/hooks';\nimport { useStateSafeHistory } from 'common/utils/hooks/useStateSafeHistory';\nimport { useAssetServiceLocationContextValue } from 'common/components/AssetSidebarContent/hooks/useAssetServiceLocationContextValue';\nimport AssetServiceLocationContext from 'common/components/AssetSidebarContent/contexts/asset-service-location-context';\nimport GoogleMapContextProvider from 'common/components/maps/GoogleMapContextProvider/GoogleMapContextProvider';\nimport { PartnerTypeEnum } from 'common/utils/api/models';\nimport { useSyncMapState } from '../../components/AssetSidebarContent/SetUnavailableForm/hooks/useSyncMapState';\nimport { SyncSetUnavailableFormMapStateContext } from 'common/components/AssetSidebarContent/SetUnavailableForm/contexts/sync-map-state';\nimport { logWarning } from 'common/utils/logger';\nimport CancelServiceMaintanceConfirmationModal, {\n    CancelServiceMaintanceConfirmationDataT,\n} from 'common/layouts/dialogs/CancelServiceMaintanceConfirmationModal/CancelServiceMaintanceConfirmationModal';\nimport useModalDialog from 'common/utils/hooks/useModalDialog';\nimport useCloseModalDialogAfterRequest from 'common/utils/hooks/useCloseModalDialogAfterRequest';\nimport { VehicleScheduleEventT } from 'common/store/vehicle-schedules/models';\nimport { InferChannelEventT } from 'common/utils/view-event-channel';\nimport { vehicleSchedulesRefreshChannel } from 'common/store/vehicle-schedules/channels';\nimport { getVehicleScheduleAroundDateISO } from 'common/store/vehicle-schedules/utils/around-date';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    onCloseMap: () => void;\n    onClose: () => void;\n    onOpenTransportOrderDetails?: (event: VehicleScheduleEventT) => void;\n};\n\ntype QueryT = {\n    [QueryKeysEnum.truckOrderId]?: string;\n};\n\nconst TruckDetailsPage: React.FC<PropsT> = React.memo((props) => {\n    const { onCloseMap, onClose, onOpenTransportOrderDetails } = props;\n\n    const assetServiceLocationContextValue = useAssetServiceLocationContextValue();\n\n    const openLeftSidebar = useOpenLeftSidebar();\n\n    const { partnerId } = usePartnerContext();\n\n    const { t } = useTranslation();\n\n    const params = useParams<{ truckId: string; partnerId: string }>();\n    const { truckId } = params;\n\n    const cancelServiceMaintanceConfirmation = useModalDialog<CancelServiceMaintanceConfirmationDataT>();\n    const cancelRequestStatus = useSelector(selectCancelUnavailableVehicleRequestStatus);\n    useCloseModalDialogAfterRequest(cancelRequestStatus, [cancelServiceMaintanceConfirmation]);\n\n    const detailsById = useSelector(selectTrucksDetailsByIds(partnerId));\n    const truckDetails = detailsById[truckId as string];\n\n    const dispatch = useDispatch();\n\n    const query = useQuery<QueryT>();\n\n    const { stateSafeHistory } = useStateSafeHistory();\n\n    const handleOrderClick = (orderId: string) => {\n        stateSafeHistory.replace({\n            search: formatQuery({\n                ...query,\n                [QueryKeysEnum.truckOrderId]: orderId,\n            }),\n        });\n    };\n\n    const scheduleAroundDate = React.useMemo(() => getVehicleScheduleAroundDateISO(), []);\n\n    const fetchScheduleRequestStatus = useSelector(selectFetchScheduleRequest(truckId, scheduleAroundDate));\n    const schedule = useSelector(selectVehicleSchedule(truckId, scheduleAroundDate));\n\n    React.useEffect(() => {\n        dispatch(fetchVehicleSchedule({ vehicleId: truckId, aroundDate: scheduleAroundDate }));\n    }, [truckId, dispatch, scheduleAroundDate]);\n\n    const refreshVehicleSchedulesHandler = React.useCallback(\n        (event: InferChannelEventT<typeof vehicleSchedulesRefreshChannel>) => {\n            const { vehicleId } = event;\n\n            if (vehicleId === truckId) {\n                dispatch(\n                    fetchVehicleSchedule(\n                        { vehicleId: truckId, aroundDate: scheduleAroundDate },\n                        { isForceUpdate: true },\n                    ),\n                );\n            }\n        },\n        [dispatch, truckId, scheduleAroundDate],\n    );\n    useChannelSubscribe(vehicleSchedulesRefreshChannel, refreshVehicleSchedulesHandler);\n\n    const currentPosition = React.useMemo((): GeoPointT | null => {\n        if (!truckDetails) {\n            return null;\n        }\n\n        const { latitude, longitude } = truckDetails;\n        if (!isNumber(latitude) || !isNumber(longitude)) {\n            return null;\n        }\n\n        return {\n            lat: latitude,\n            lng: longitude,\n        };\n    }, [truckDetails]);\n\n    const handleCloseMap = () => {\n        onCloseMap();\n    };\n\n    const handleOpenTruckDetails = (truckId: TruckIdT) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleOpenTruckDetails');\n            return;\n        }\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.truckDetails,\n            partnerId,\n            truckId,\n        });\n    };\n\n    const handleOpenContactDetails = (contractId: CarrierContractIdT) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleOpenContactDetails');\n            return;\n        }\n\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.carrierContract,\n            contractId,\n            initIsEditing: false,\n            partnerId,\n        });\n    };\n\n    const handleOpenUserDetails = (userId: UserIdT, isBrokerUser?: boolean) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleOpenUserDetails');\n            return;\n        }\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.contact,\n            partnerId,\n            partnerType: isBrokerUser ? PartnerTypeEnum.broker : PartnerTypeEnum.carrier,\n            userId,\n        });\n    };\n\n    const handleOpenTrailerDetails = (trailerId: TrailerIdT) => {\n        if (!partnerId) {\n            logWarning('Empty partnerId in handleOpenTrailerDetails');\n            return;\n        }\n        openLeftSidebar({\n            type: CommonSidebarsTypeEnum.trailerDetails,\n            partnerId,\n            trailerId,\n        });\n    };\n\n    const handleConfirmCancelServiceMaintaince = (data: CancelServiceMaintanceConfirmationDataT) => {\n        if (!partnerId) {\n            return;\n        }\n\n        dispatch(cancelUnavailableVehicleRequest(data.query, partnerId));\n    };\n\n    const syncSetUnavailableFormMapStateContextValue = useSyncMapState();\n\n    return (\n        <GoogleMapContextProvider>\n            <SyncSetUnavailableFormMapStateContext.Provider value={syncSetUnavailableFormMapStateContextValue}>\n                <AssetServiceLocationContext.Provider value={assetServiceLocationContextValue}>\n                    <PageTitle\n                        title={t('page-titles.truck-details', {\n                            plateNumber: truckDetails?.plateNumber,\n                        })}\n                    />\n                    <DetailsLayout\n                        className={cx('wrap')}\n                        sideBarTitle={t('common:order-details.main-tabs.details')}\n                        sideBarNode={\n                            <CommonEditableTruckDetailsLayout\n                                partnerId={partnerId}\n                                truckId={truckId}\n                                onClose={onClose}\n                                isShowMap\n                                onToggleShowMap={handleCloseMap}\n                                onOpenTrailerDetails={handleOpenTrailerDetails}\n                                onOpenTruckDetails={handleOpenTruckDetails}\n                                onOpenContactDetails={handleOpenContactDetails}\n                                onOpenUserDetails={handleOpenUserDetails}\n                            />\n                        }\n                        mapTitle={t('common:truck-page.tabs.map')}\n                        mapNode={\n                            <AssetDetailsMap\n                                type={AssetTypeEnum.truck}\n                                currentPosition={currentPosition}\n                                telematicUpdatedDate={truckDetails?.telematicUpdatedDate}\n                                isLoading={fetchScheduleRequestStatus.loading || !truckDetails}\n                            />\n                        }\n                        historyTitle={t('common:truck-page.tabs.activity')}\n                        historyNode={null}\n                        timelineTitle={t('common:timeline')}\n                        timelineNode={(close) => (\n                            <AssetScheduleSidebar\n                                type=\"truck\"\n                                isLoading={fetchScheduleRequestStatus.loading}\n                                onClose={close}\n                                onEventClick={handleOrderClick}\n                                selectedOrderId={query[QueryKeysEnum.truckOrderId]}\n                                schedule={schedule}\n                                onCancelServiceMaintance={(event) => {\n                                    if (!partnerId) {\n                                        return;\n                                    }\n\n                                    cancelServiceMaintanceConfirmation.setData({\n                                        companyId: partnerId,\n                                        assets: [\n                                            {\n                                                plateNumber: truckDetails?.plateNumber || '',\n                                            },\n                                        ],\n                                        query: {\n                                            truckId: truckDetails?.id,\n                                            id: event.id,\n                                        },\n                                    });\n                                }}\n                                onOpenTransportOrderDetails={onOpenTransportOrderDetails}\n                            />\n                        )}\n                    />\n                    <CancelServiceMaintanceConfirmationModal\n                        assetType=\"truck\"\n                        data={cancelServiceMaintanceConfirmation.data}\n                        onCancel={cancelServiceMaintanceConfirmation.onCancel}\n                        onClose={cancelServiceMaintanceConfirmation.onClose}\n                        onConfirm={handleConfirmCancelServiceMaintaince}\n                        requestStatus={cancelRequestStatus}\n                    />\n                </AssetServiceLocationContext.Provider>\n            </SyncSetUnavailableFormMapStateContext.Provider>\n        </GoogleMapContextProvider>\n    );\n});\n\nexport default TruckDetailsPage;\n","import {\n    ADD_CONTACT_REQUEST,\n    ADD_MEMBER_REQUEST_BEGIN,\n    ADD_MEMBER_REQUEST_ERROR,\n    ADD_MEMBER_REQUEST_SUCCESS,\n    AddContactActionT,\n    AddMemberBeginActionT,\n    AddMemberErrorActionT,\n    AddMemberSuccessActionT,\n    CANCEL_INVITE,\n    CancelUserActionT,\n    CHANGE_USER_ROLE,\n    ChangeUserRoleActionT,\n    DELETE_CONTACT,\n    DELETE_MEMBER_REQUEST_BEGIN,\n    DELETE_MEMBER_REQUEST_ERROR,\n    DELETE_MEMBER_REQUEST_SUCCESS,\n    DELETE_USER,\n    DeleteContactActionT,\n    DeleteMemberBeginActionT,\n    DeleteMemberErrorActionT,\n    DeleteMemberSuccessActionT,\n    DeleteUserActionT,\n    FETCH_CONTACT_DETAILS_BY_USER_ID,\n    FETCH_CONTACT_DETAILS_REQUEST,\n    FETCH_CONTACT_DETAILS_REQUEST_BEGIN,\n    FETCH_CONTACT_DETAILS_REQUEST_ERROR,\n    FETCH_CONTACT_DETAILS_REQUEST_SUCCESS,\n    FETCH_CONTACTS_REQUEST,\n    FETCH_CONTACTS_REQUEST_BEGIN,\n    FETCH_CONTACTS_REQUEST_ERROR,\n    FETCH_CONTACTS_REQUEST_SUCCESS,\n    FetchContactDetailsActionT,\n    FetchContactDetailsBeginActionT,\n    FetchContactDetailsByUserIdActionT,\n    FetchContactDetailsErrorActionT,\n    FetchContactDetailsSuccessActionT,\n    FetchContactsActionT,\n    FetchContactsBeginActionT,\n    FetchContactsErrorActionT,\n    FetchContactsSuccessActionT,\n    INVITE_USER_REQUEST,\n    InviteUserActionT,\n    RESTORE_USER,\n    RestoreUserActionT,\n    UPDATE_CONTACT,\n    UPDATE_MEMBER_REQUEST_BEGIN,\n    UPDATE_MEMBER_REQUEST_ERROR,\n    UPDATE_MEMBER_REQUEST_SUCCESS,\n    UpdateContactActionT,\n    UpdateMemberBeginActionT,\n    UpdateMemberErrorActionT,\n    UpdateMemberSuccessActionT,\n} from './types';\nimport { CompanyContactDetailsT, CompanyContactT, InviteUserRequestT } from './models';\n\nimport { ApiCompanyContactRequestT, ApiNewUserRoleT } from 'common/utils/api/models';\n\nexport const fetchContacts = (companyId: CompanyIdT, options?: FetchOptionsT): FetchContactsActionT => {\n    return {\n        type: FETCH_CONTACTS_REQUEST,\n        companyId,\n        options,\n    };\n};\n\nexport const fetchContactsBegin = (companyId: CompanyIdT): FetchContactsBeginActionT => ({\n    type: FETCH_CONTACTS_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const fetchContactsSuccess = (\n    companyContacts: CompanyContactT[],\n    companyId: CompanyIdT,\n): FetchContactsSuccessActionT => ({\n    type: FETCH_CONTACTS_REQUEST_SUCCESS,\n    companyContacts,\n    companyId,\n});\n\nexport const fetchContactsError = (error: Error, companyId: CompanyIdT): FetchContactsErrorActionT => ({\n    type: FETCH_CONTACTS_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const addContact = (newContact: ApiCompanyContactRequestT, companyId: CompanyIdT): AddContactActionT => ({\n    type: ADD_CONTACT_REQUEST,\n    newContact,\n    companyId,\n});\n\nexport const inviteUser = (newUser: InviteUserRequestT, companyId: CompanyIdT): InviteUserActionT => ({\n    type: INVITE_USER_REQUEST,\n    newUser,\n    companyId,\n});\n\nexport const addMemberBegin = (companyId: CompanyIdT): AddMemberBeginActionT => ({\n    type: ADD_MEMBER_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const addMemberSuccess = (companyId: CompanyIdT): AddMemberSuccessActionT => ({\n    type: ADD_MEMBER_REQUEST_SUCCESS,\n    companyId,\n});\n\nexport const addMemberError = (error: Error, companyId: CompanyIdT): AddMemberErrorActionT => ({\n    type: ADD_MEMBER_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const deleteContact = (contactId: ContactIdT, companyId: CompanyIdT): DeleteContactActionT => ({\n    type: DELETE_CONTACT,\n    contactId,\n    companyId,\n});\n\nexport const deleteUser = (userId: UserIdT, companyId: CompanyIdT): DeleteUserActionT => ({\n    type: DELETE_USER,\n    userId,\n    companyId,\n});\n\nexport const cancelInvite = (userId: UserIdT, companyId: CompanyIdT): CancelUserActionT => ({\n    type: CANCEL_INVITE,\n    userId,\n    companyId,\n});\n\nexport const restoreUser = (userId: UserIdT, companyId: CompanyIdT): RestoreUserActionT => ({\n    type: RESTORE_USER,\n    userId,\n    companyId,\n});\n\nexport const deleteMemberBegin = (companyId: CompanyIdT): DeleteMemberBeginActionT => ({\n    type: DELETE_MEMBER_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const deleteMemberSuccess = (companyId: CompanyIdT): DeleteMemberSuccessActionT => ({\n    type: DELETE_MEMBER_REQUEST_SUCCESS,\n    companyId,\n});\n\nexport const deleteMemberError = (error: Error, companyId: CompanyIdT): DeleteMemberErrorActionT => ({\n    type: DELETE_MEMBER_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const changeUserRole = (\n    roles: ApiNewUserRoleT[],\n    userId: UserIdT,\n    companyId: CompanyIdT,\n): ChangeUserRoleActionT => ({\n    type: CHANGE_USER_ROLE,\n    userId,\n    roles,\n    companyId,\n});\n\nexport const updateContact = (\n    contactId: ContactIdT,\n    contactChanges: ApiCompanyContactRequestT,\n    companyId: CompanyIdT,\n): UpdateContactActionT => ({\n    type: UPDATE_CONTACT,\n    contactId,\n    contactChanges,\n    companyId,\n});\n\nexport const updateMemberBegin = (companyId: CompanyIdT): UpdateMemberBeginActionT => ({\n    type: UPDATE_MEMBER_REQUEST_BEGIN,\n    companyId,\n});\n\nexport const updateMemberSuccess = (companyId: CompanyIdT): UpdateMemberSuccessActionT => ({\n    type: UPDATE_MEMBER_REQUEST_SUCCESS,\n    companyId,\n});\n\nexport const updateMemberError = (error: Error, companyId: CompanyIdT): UpdateMemberErrorActionT => ({\n    type: UPDATE_MEMBER_REQUEST_ERROR,\n    error,\n    companyId,\n});\n\nexport const fetchContactDetails = (contactId: ContactIdT): FetchContactDetailsActionT => ({\n    type: FETCH_CONTACT_DETAILS_REQUEST,\n    contactId,\n});\n\nexport const fetchContactDetailsByUserId = (userId: UserIdT): FetchContactDetailsByUserIdActionT => ({\n    type: FETCH_CONTACT_DETAILS_BY_USER_ID,\n    userId,\n});\n\nexport const fetchContactDetailsBegin = (): FetchContactDetailsBeginActionT => ({\n    type: FETCH_CONTACT_DETAILS_REQUEST_BEGIN,\n});\n\nexport const fetchContactDetailsSuccess = (\n    contactId: ContactIdT,\n    details: CompanyContactDetailsT | null,\n): FetchContactDetailsSuccessActionT => ({\n    type: FETCH_CONTACT_DETAILS_REQUEST_SUCCESS,\n    contactId,\n    details,\n});\n\nexport const fetchContactDetailsError = (error: Error): FetchContactDetailsErrorActionT => ({\n    type: FETCH_CONTACT_DETAILS_REQUEST_ERROR,\n    error,\n});\n","import React from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport ControlLoaderIcon from 'common/icons/ControlLoaderIcon';\nimport { fetchCountriesDict } from 'common/store/countries-dict/actions';\nimport { selectCountriesByCode, selectCountriesDictRequest } from 'common/store/countries-dict/selectors';\nimport { CountryCodeT } from 'common/utils/api/models';\n\ntype PropsT = {\n    countryCodes: Array<CountryCodeT> | null | undefined;\n};\n\nconst CountriesFilterPill: React.FC<PropsT> = React.memo((props) => {\n    const { countryCodes } = props;\n\n    const dispatch = useDispatch();\n\n    const countryByCode = useSelector(selectCountriesByCode);\n    const requestStatus = useSelector(selectCountriesDictRequest);\n\n    React.useEffect(() => {\n        dispatch(fetchCountriesDict());\n    }, [dispatch]);\n\n    if (!countryCodes || !countryCodes.length) {\n        return null;\n    }\n\n    if (requestStatus.loading) {\n        return <ControlLoaderIcon fillColor={StyleGuideColorsEnum.white} size={DEFAULT_ICON_SIZE} />;\n    }\n\n    const label = countryCodes\n        .map((countryCode) => {\n            const country = countryByCode[countryCode];\n            if (!country) {\n                return countryCode;\n            }\n\n            return country.userLangDisplayName;\n        })\n        .join(', ');\n\n    return <span>{label}</span>;\n});\n\nexport default CountriesFilterPill;\n","import { TFunction } from 'i18next';\nimport { FieldsEnum, FormErrorsT, FormValuesT } from './constants';\nimport { checkNotEmpty } from 'common/utils/form-validators';\n\nconst REQUIRED_FIELDS = [FieldsEnum.partnerType, FieldsEnum.partnerId];\n\nconst validate = (t: TFunction, values: FormValuesT): FormErrorsT => {\n    const errors: FormErrorsT = {\n        ...checkNotEmpty(t, REQUIRED_FIELDS, values),\n    };\n\n    return errors;\n};\n\nexport default validate;\n","// extracted by mini-css-extract-plugin\nexport default {\"wrap\":\"ChangeRatesForm__wrap___vR8S6\",\"field--value\":\"ChangeRatesForm__field--value___oqZ6m\",\"field--type\":\"ChangeRatesForm__field--type___o4zmN\",\"fadeIn\":\"ChangeRatesForm__fadeIn___Vu_Ny\",\"blinking\":\"ChangeRatesForm__blinking___VAGk0\"};","import {\n    FETCH_MANAGERS_REQUEST,\n    FETCH_MANAGERS_REQUEST_BEGIN,\n    FETCH_MANAGERS_REQUEST_ERROR,\n    FETCH_MANAGERS_REQUEST_SUCCESS,\n    FetchManagersActionT,\n    FetchManagersBeginActionT,\n    FetchManagersErrorActionT,\n    FetchManagersSuccessActionT,\n} from './types';\n\nimport { ManagerT } from './models';\n\nexport const fetchManagers = (): FetchManagersActionT => ({\n    type: FETCH_MANAGERS_REQUEST,\n});\n\nexport const fetchManagersBegin = (): FetchManagersBeginActionT => ({\n    type: FETCH_MANAGERS_REQUEST_BEGIN,\n});\n\nexport const fetchManagersSuccess = (managers: ManagerT[]): FetchManagersSuccessActionT => ({\n    type: FETCH_MANAGERS_REQUEST_SUCCESS,\n    managers,\n});\n\nexport const fetchManagersError = (error: Error): FetchManagersErrorActionT => ({\n    type: FETCH_MANAGERS_REQUEST_ERROR,\n    error,\n});\n","import * as React from 'react';\nimport PillLabel, { PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport { useTranslation } from 'react-i18next';\n\ntype PropsT = {};\n\nconst DriverWrongCheckPointPill: React.FC<PropsT> = React.memo(() => {\n    const { t } = useTranslation();\n\n    return (\n        <Tooltip\n            position={TooltipPositionEnum.centerLeft}\n            theme={TooltipThemeEnum.black}\n            tooltipNode={\n                <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                    {t('common:driver-wrong-checkpoint-pill.tooltip')}\n                </TooltipContent>\n            }\n        >\n            {(isShow, childrenClassName) => (\n                <PillLabel\n                    className={childrenClassName}\n                    theme={PillLabelThemeEnum.charcoal}\n                    testSelector=\"driver-wrong-checkpoint\"\n                >\n                    {t('common:driver-wrong-checkpoint-pill.label')}\n                </PillLabel>\n            )}\n        </Tooltip>\n    );\n});\n\nexport default DriverWrongCheckPointPill;\n","import * as React from 'react';\nimport {\n    ApiAttachPapersUnavailableReasonT,\n    ApiShipmentPaperT,\n    ApiShipmentAttachedPaperTypeT,\n    PartnerTypeEnum,\n    ApiReadShipmentAttachedPapersUnavailableReasonT,\n} from 'common/utils/api/models';\nimport PapersGrid from 'common/components/papers/PapersGrid/PapersGrid';\nimport PaperLayout from 'common/components/papers/PaperLayout/PaperLayout';\nimport PapersGroup from 'common/components/papers/PapersGroup/PapersGroup';\nimport ShipmentPaperTypeLabel from 'common/components/papers/labels/ShipmentPaperTypeLabel/ShipmentPaperTypeLabel';\nimport AttachPapersUnavailableReasonLabel from 'common/components/papers/labels/AttachPapersUnavailableReasonLabel/AttachPapersUnavailableReasonLabel';\nimport { logWarning } from 'common/utils/logger';\nimport { selectPapersEditByPaperIdState, selectShipmentChangesById } from 'common/store/papers-edit/selectors';\nimport { shipmentAttachedPaperTypeOrder } from 'common/store/papers-edit/constants';\nimport { ShipmentOptimisticAttachPaperT } from 'common/store/papers-edit/models';\nimport { useSelector } from 'react-redux';\nimport { PapersEmptyPlaceholder } from 'common/components/papers/message-placeholders/PapersEmptyPlaceholder/PapersEmptyPlaceholder';\nimport { getVisibleOptimisticPapers } from 'common/components/papers/utils/getVisibleOptimisticPapers';\nimport { getTotalWithOptimisticPapersCount } from 'common/components/papers/utils/getTotalWithOptimisticPapersCount';\nimport { checkIsPDFFile } from 'common/utils/file-name';\nimport { PapersMessagePlaceholder } from 'common/components/papers/message-placeholders/PapersMessagePlaceholder/PapersMessagePlaceholder';\nimport ReadShipmentAttachedPapersUnavailableReasonLabel from 'common/components/papers/labels/ReadAttachedPapersUnavailableReasonLabel/ReadShipmentAttachedPapersUnavailableReasonLabel';\n\ntype PropsT = {\n    attachedPapers: Array<ApiShipmentPaperT> | null;\n    shipmentId: ShipmentIdT | null;\n    onOpenUserDetails?: (params: {\n        userId: UserIdT | null;\n        partnerType?: PartnerTypeEnum;\n        partnerId?: PartnerIdT;\n    }) => void;\n    onOpenDriverDetails?: (params: { driverId: DriverIdT; partnerId: PartnerIdT }) => void;\n    getShipmentPaperThumbnailUrl: (shipmentId: ShipmentIdT | null, paperId: PaperIdT | null) => string | null;\n    onOpenGalleryShipmentPaper: (shipmentId: ShipmentIdT, paperId: PaperIdT) => void;\n    onDownloadShipmentPaper: (shipmentId: ShipmentIdT, paperId: PaperIdT) => void;\n    onDeleteShipmentPaper?: (shipmentId: ShipmentIdT, paperId: PaperIdT) => void;\n    onAttachShipmentPaper?: (shipmentId: ShipmentIdT, paperType: ApiShipmentAttachedPaperTypeT) => void;\n    attachPapersUnavailableReason?: ApiAttachPapersUnavailableReasonT | null;\n    readAttachedPapersUnavailableReason?: ApiReadShipmentAttachedPapersUnavailableReasonT | null;\n    isHideUserInfo?: boolean;\n};\n\ntype PaperGroupT = {\n    paperType: ApiShipmentAttachedPaperTypeT | null;\n    attachedPapers: Array<ApiShipmentPaperT>;\n    optimisticPapers: Array<ShipmentOptimisticAttachPaperT>;\n};\n\nconst ShipmentPapersTabContent: React.FC<PropsT> = React.memo((props) => {\n    const {\n        attachedPapers,\n        shipmentId,\n        getShipmentPaperThumbnailUrl,\n        onOpenGalleryShipmentPaper,\n        onDownloadShipmentPaper,\n        onDeleteShipmentPaper,\n        onOpenUserDetails,\n        onOpenDriverDetails,\n        onAttachShipmentPaper,\n        attachPapersUnavailableReason,\n        readAttachedPapersUnavailableReason,\n        isHideUserInfo,\n    } = props;\n\n    const handleOpenGallery = React.useCallback(\n        (event: React.MouseEvent<HTMLElement>, paperId: PaperIdT | null) => {\n            if (!shipmentId || !paperId) {\n                logWarning('failed open gallery paper, empty shipmentId or paperId');\n                return;\n            }\n            onOpenGalleryShipmentPaper(shipmentId, paperId);\n        },\n        [shipmentId, onOpenGalleryShipmentPaper],\n    );\n\n    const handleDownload = React.useCallback(\n        (event: React.MouseEvent<HTMLElement>, paperId: PaperIdT | null) => {\n            if (!shipmentId || !paperId) {\n                logWarning('failed download paper, empty shipmentId or paperId');\n                return;\n            }\n            onDownloadShipmentPaper(shipmentId, paperId);\n        },\n        [shipmentId, onDownloadShipmentPaper],\n    );\n\n    const handleDelete = React.useCallback(\n        (event: React.MouseEvent<HTMLElement>, paperId: PaperIdT | null) => {\n            if (!shipmentId || !paperId) {\n                logWarning('failed delete paper, empty shipmentId or paperId');\n                return;\n            }\n            onDeleteShipmentPaper?.(shipmentId, paperId);\n        },\n        [shipmentId, onDeleteShipmentPaper],\n    );\n\n    const shipmentChanges = useSelector(selectShipmentChangesById(shipmentId));\n    const papersEditStateById = useSelector(selectPapersEditByPaperIdState);\n\n    const papersGroups = React.useMemo<Array<PaperGroupT>>(() => {\n        const attachedPapersByType = new Map<ApiShipmentAttachedPaperTypeT | null, Array<ApiShipmentPaperT>>();\n        const optimisticPapersByType = new Map<\n            ApiShipmentAttachedPaperTypeT | null,\n            Array<ShipmentOptimisticAttachPaperT>\n        >();\n\n        // Group attachedPapers by paperType\n        if (attachedPapers) {\n            attachedPapers.forEach((paper) => {\n                const paperType = paper.paperType || null;\n                if (!attachedPapersByType.has(paperType)) {\n                    attachedPapersByType.set(paperType, []);\n                }\n                attachedPapersByType.get(paperType)?.push(paper);\n            });\n        }\n\n        // Group optimisticPapers by paperType\n        if (shipmentChanges?.optimisticPapers) {\n            shipmentChanges.optimisticPapers.forEach((optimisticPaper) => {\n                const paperType = optimisticPaper.paperType || null;\n                if (!optimisticPapersByType.has(paperType)) {\n                    optimisticPapersByType.set(paperType, []);\n                }\n                optimisticPapersByType.get(paperType)?.push(optimisticPaper);\n            });\n        }\n\n        // Combine all possible groups\n        const allPaperTypes = new Set<ApiShipmentAttachedPaperTypeT | null>();\n        attachedPapersByType.forEach((_, type) => allPaperTypes.add(type));\n        optimisticPapersByType.forEach((_, type) => allPaperTypes.add(type));\n\n        const groups: Array<PaperGroupT> = Array.from(allPaperTypes).map((paperType) => ({\n            paperType,\n            attachedPapers: attachedPapersByType.get(paperType) || [],\n            optimisticPapers: optimisticPapersByType.get(paperType) || [],\n        }));\n\n        // Sort groups by shipmentAttachedPaperTypeOrder\n        groups.sort((a, b) => {\n            const aIndex = a.paperType ? shipmentAttachedPaperTypeOrder.indexOf(a.paperType) : -1;\n            const bIndex = b.paperType ? shipmentAttachedPaperTypeOrder.indexOf(b.paperType) : -1;\n\n            // If type is not found in sort order, place at the end\n            if (aIndex === -1 && bIndex === -1) {\n                return 0;\n            }\n            if (aIndex === -1) {\n                return 1;\n            }\n            if (bIndex === -1) {\n                return -1;\n            }\n\n            return aIndex - bIndex;\n        });\n\n        return groups;\n    }, [attachedPapers, shipmentChanges?.optimisticPapers]);\n\n    if (readAttachedPapersUnavailableReason) {\n        return (\n            <PapersMessagePlaceholder>\n                <ReadShipmentAttachedPapersUnavailableReasonLabel reason={readAttachedPapersUnavailableReason} />\n            </PapersMessagePlaceholder>\n        );\n    }\n\n    if (!attachedPapers?.length && !shipmentChanges?.optimisticPapers?.length) {\n        return <PapersEmptyPlaceholder />;\n    }\n\n    return (\n        <>\n            {papersGroups?.map((group) => {\n                const visibleOptimisticPapers = getVisibleOptimisticPapers({\n                    optimisticPapers: group.optimisticPapers,\n                    entityPapers: group.attachedPapers,\n                });\n                const totalCount = getTotalWithOptimisticPapersCount({\n                    optimisticPapers: group.optimisticPapers,\n                    entityPapers: group.attachedPapers,\n                });\n                if (totalCount === 0) {\n                    return null;\n                }\n\n                const handleAttachNew = () => {\n                    if (!shipmentId || !group.paperType) {\n                        logWarning('failed to attach paper, empty shipmentId or paperType');\n                        return;\n                    }\n                    onAttachShipmentPaper?.(shipmentId, group.paperType);\n                };\n\n                return (\n                    <PapersGroup\n                        key={group.paperType}\n                        count={totalCount}\n                        title={<ShipmentPaperTypeLabel type={group.paperType || undefined} />}\n                        onAttachNew={onAttachShipmentPaper && handleAttachNew}\n                        isAttachDisabled={Boolean(attachPapersUnavailableReason)}\n                        attachTooltipMessage={\n                            attachPapersUnavailableReason ? (\n                                <AttachPapersUnavailableReasonLabel reason={attachPapersUnavailableReason} />\n                            ) : undefined\n                        }\n                        isInitialOpen\n                    >\n                        <PapersGrid>\n                            {group.attachedPapers.map((paper) => {\n                                const thumbnailUrl = getShipmentPaperThumbnailUrl(shipmentId, paper.id || null);\n                                const alt = paper.comment ? `${paper.comment} ${paper.createDate || ''}` : null;\n                                if (!paper.id) {\n                                    return null;\n                                }\n\n                                const paperEditState = papersEditStateById[paper.id];\n\n                                const isPdfPaper = checkIsPDFFile(paper.fileName);\n\n                                return (\n                                    <PaperLayout\n                                        key={paper.id}\n                                        paperId={paper.id}\n                                        imageSrc={thumbnailUrl}\n                                        imageAlt={alt}\n                                        date={paper.createDate || null}\n                                        userName={paper.createdByName || null}\n                                        userId={paper.createdById || null}\n                                        createdByRole={paper.createdByRole || null}\n                                        originalFileName={paper.fileName || null}\n                                        onClick={isPdfPaper ? handleDownload : handleOpenGallery}\n                                        onOpenUserDetails={onOpenUserDetails}\n                                        onOpenDriverDetails={onOpenDriverDetails}\n                                        onDownload={handleDownload}\n                                        onDelete={onDeleteShipmentPaper && handleDelete}\n                                        deleteUnavailableReason={paper?.deleteUnavailableReason || null}\n                                        isDeleting={paperEditState?.deleteRequest?.loading}\n                                        isHideUserInfo={isHideUserInfo}\n                                    />\n                                );\n                            })}\n                            {visibleOptimisticPapers.map((optimisticPaper) => {\n                                return (\n                                    <PaperLayout\n                                        key={optimisticPaper.fakeId}\n                                        paperId={optimisticPaper.fakeId}\n                                        isUploading\n                                        isHideUserInfo={isHideUserInfo}\n                                    />\n                                );\n                            })}\n                        </PapersGrid>\n                    </PapersGroup>\n                );\n            })}\n        </>\n    );\n});\n\nexport { ShipmentPapersTabContent };\n","import * as React from 'react';\n\nimport classNames from 'classnames/bind';\nimport styles from './DividerTrigger.scss';\nimport cs from 'classnames';\nimport PlusIcon from 'common/icons/PlusIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\nexport type DividerTriggerPropsT = {\n    className?: string;\n    isActive?: boolean;\n    onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n};\n\nconst DividerTrigger: React.FC<DividerTriggerPropsT> = React.memo((props) => {\n    const { className, isActive, onClick } = props;\n\n    return (\n        <div\n            className={cs(\n                cx('divider', {\n                    'divider--isClickable': true,\n                    'divider--isToggled': isActive,\n                }),\n                className,\n            )}\n            data-test-selector=\"divider\"\n            onClick={onClick}\n        >\n            <div className={cx('divider__line')} />\n            <div className={cx('divider__icon')}>\n                <PlusIcon size={DEFAULT_ICON_SIZE} strokeColor={StyleGuideColorsEnum.currentColor} />\n            </div>\n        </div>\n    );\n});\n\nexport { DividerTrigger };\n","import React, { useMemo } from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './StatisticsChart.scss';\n\nimport useDimensions from 'common/utils/hooks/useDimensions';\nimport { DataItemT } from './models';\n\nimport Chart from './Chart/Chart';\nimport moment from 'moment';\nimport { GraphSettingsT } from 'broker-admin/layouts/StatisticsPage/models';\nimport { StatisticGranularityEnum } from 'broker-admin/utils/api/broker-tranziit/models';\nimport { DoneStatisticT, RejectStatisticT } from 'broker-admin/store/statistics/models';\nimport { formatMoney } from 'common/components/Money/Money';\nimport { CurrencyEnum } from 'common/constants';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    settings: GraphSettingsT;\n    granularity: StatisticGranularityEnum;\n    doneStatistics: DoneStatisticT | null;\n    rejectStatistics: RejectStatisticT | null;\n};\n\nconst MARGIN = {\n    top: 40,\n    bottom: 40,\n    left: 60,\n    right: 40,\n};\n\nconst FORMAT_BY_GRANULARITY: Record<StatisticGranularityEnum, string> = {\n    [StatisticGranularityEnum.day]: 'DD MMM',\n    [StatisticGranularityEnum.week]: 'DD MMM',\n    [StatisticGranularityEnum.month]: 'MMM',\n};\n\nconst StatisticsChart: React.FC<PropsT> = React.memo((props) => {\n    const { settings, granularity, doneStatistics, rejectStatistics } = props;\n\n    const { dimensions, ref } = useDimensions({ liveMeasure: true });\n\n    const data = useMemo((): DataItemT[] => {\n        const series = doneStatistics?.series || [];\n\n        return series.map((_, index) => {\n            const doneStat = doneStatistics?.series?.[index] || null;\n            const rejectStat = rejectStatistics?.series?.[index] || null;\n\n            const base = {\n                rejectedShipperRate: rejectStat?.avgShipperRate || 0,\n                acceptedShipperRate: doneStat?.avgShipperRate || 0,\n                estimatedCarrierRate: doneStat?.avgCarrierRateEstimate || 0,\n                realCarrierRate: doneStat?.avgCarrierRate || 0,\n            };\n\n            return {\n                ...base,\n                timestamp: moment(doneStat?.dateKey).valueOf(),\n                tooltipData: {\n                    ...base,\n                    margin: doneStat?.avgMarginRate || 0,\n                    deadhead: doneStat?.avgDeadheadPercent || 0,\n                    avgDistance: Math.round(doneStat?.avgDistanceKm || 0),\n                },\n            };\n        });\n    }, [doneStatistics, rejectStatistics]);\n\n    return (\n        <div className={cx('container')} ref={ref}>\n            {dimensions && (\n                <div className={cx('chart')}>\n                    <Chart\n                        margin={MARGIN}\n                        width={dimensions.width}\n                        height={dimensions.height}\n                        settings={settings}\n                        data={data}\n                        xTickFormatter={(date) => moment(date).format(FORMAT_BY_GRANULARITY[granularity])}\n                        yTickFormatter={(value) =>\n                            formatMoney({\n                                amount: value,\n                                currency: CurrencyEnum.EUR,\n                            })\n                        }\n                    />\n                </div>\n            )}\n        </div>\n    );\n});\n\nexport default StatisticsChart;\n","import * as React from 'react';\n\nimport cs from 'classnames';\nimport classNames from 'classnames/bind';\n\nimport styles from './RouteLocationsOverview.scss';\nimport { ApiLocationT, ApiOrderWaypointT, CountryCodeT } from 'common/utils/api/models';\nimport { formatTimeInterval } from 'common/utils/time';\nimport FlagIcon from 'common/icons/FlagIcon/FlagIcon';\nimport RightArrowIcon from 'common/icons/RightArrowIcon';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport AsyncDictCountryNameLabel from 'common/components/AsyncDictCountryNameLabel/AsyncDictCountryNameLabel';\n\ntype PropsT = {\n    origin?: ApiOrderWaypointT['address'];\n    pickupDockingHoursFrom?: ApiOrderWaypointT['originalDateTimeFrom'];\n    pickupDockingHoursTo?: ApiOrderWaypointT['originalDateTimeTo'];\n    destination?: ApiOrderWaypointT['address'];\n    dropOffDockingHoursFrom?: ApiOrderWaypointT['originalDateTimeFrom'];\n    dropOffDockingHoursTo?: ApiOrderWaypointT['originalDateTimeTo'];\n    className?: string;\n};\n\nconst cx = classNames.bind(styles);\n\ntype TimeIntervalT = {\n    from: string;\n    to: string;\n};\n\nconst FULL_DATE_FORMAT = 'D MMM YYYY';\n\nconst RouteLocationsOverview: React.FC<PropsT> = React.memo((props) => {\n    const {\n        origin,\n        pickupDockingHoursFrom,\n        pickupDockingHoursTo,\n        destination,\n        dropOffDockingHoursFrom,\n        dropOffDockingHoursTo,\n        className,\n    } = props;\n\n    const renderLocationNode = (\n        locationNode: React.ReactNode,\n        countryCode: CountryCodeT | undefined,\n        countryNode: React.ReactNode,\n        timeWindowNode: React.ReactNode,\n    ): React.ReactNode => {\n        return (\n            <div className={cx('location')}>\n                <div className={cx('location__locality')} data-test-selector={`${testSelector}_location`}>\n                    {locationNode}\n                </div>\n                <div className={cx('location__country')} data-test-selector={`${testSelector}_country`}>\n                    <FlagIcon className={cx('location__flag')} countryCode={countryCode} />\n                    {countryNode}\n                </div>\n                <div className={cx('location__time-window')} data-test-selector={`${testSelector}_time-window`}>\n                    {timeWindowNode}\n                </div>\n            </div>\n        );\n    };\n\n    const renderCountry = (location: ApiLocationT | undefined): React.ReactNode => {\n        if (!location) {\n            return null;\n        }\n\n        return <AsyncDictCountryNameLabel countryCode={location.country} />;\n    };\n\n    const renderLocation = (\n        location: ApiLocationT | undefined,\n        timeInterval: TimeIntervalT,\n        // eslint-disable-next-line @typescript-eslint/no-unused-vars\n        testSelector: string,\n    ): React.ReactNode => {\n        if (!location) {\n            return renderLocationNode(\n                <div className={cx('skeleton')} style={{ width: '30%' }} />,\n                undefined,\n                <div className={cx('skeleton')} style={{ width: '30%' }} />,\n                <div className={cx('skeleton')} style={{ width: '60%' }} />,\n            );\n        }\n\n        const title = [location.zipCode, location.city].filter((value) => !!value).join(', ');\n\n        return renderLocationNode(\n            title,\n            location.country,\n            renderCountry(location),\n            formatTimeInterval(timeInterval.from, timeInterval.to, FULL_DATE_FORMAT),\n        );\n    };\n\n    const testSelector = 'order-route';\n\n    return (\n        <div className={cs(cx('route'), className)}>\n            <div className={cx('route__location')}>\n                {renderLocation(\n                    origin,\n                    {\n                        from: pickupDockingHoursFrom || '',\n                        to: pickupDockingHoursTo || '',\n                    },\n                    `${testSelector}_origin`,\n                )}\n            </div>\n            <div className={cx('route__direction')}>\n                <RightArrowIcon fillColor={StyleGuideColorsEnum.light} />\n            </div>\n            <div className={cx('route__location')}>\n                {renderLocation(\n                    destination,\n                    {\n                        from: dropOffDockingHoursFrom || '',\n                        to: dropOffDockingHoursTo || '',\n                    },\n                    `${testSelector}_destination`,\n                )}\n            </div>\n        </div>\n    );\n});\n\nexport default RouteLocationsOverview;\n","import { ViewEventChannel } from 'common/utils/view-event-channel';\n\nexport const documentsRefreshChannel = new ViewEventChannel<{}>();\n\nexport const partnerDocumentsRefreshChannel = new ViewEventChannel<{}>();\n","// extracted by mini-css-extract-plugin\nexport default {\"table__header\":\"BaseShipperContractsTable__table__header____bVXb\",\"table__header--id\":\"BaseShipperContractsTable__table__header--id___sGkua\",\"table__header--name\":\"BaseShipperContractsTable__table__header--name___g544C\",\"table__header--orders-counter\":\"BaseShipperContractsTable__table__header--orders-counter___Aa_7J\",\"table__header--uploaded\":\"BaseShipperContractsTable__table__header--uploaded___TW2v3\",\"table__header--expire-date\":\"BaseShipperContractsTable__table__header--expire-date___Kuxry\",\"table__header--status\":\"BaseShipperContractsTable__table__header--status____QKq0\",\"table__column\":\"BaseShipperContractsTable__table__column___g4jfk\",\"table__column--id\":\"BaseShipperContractsTable__table__column--id___uZa22\",\"table__column--name\":\"BaseShipperContractsTable__table__column--name___SNdq9\",\"table__column--uploaded\":\"BaseShipperContractsTable__table__column--uploaded___eOBQP\",\"table__column--orders-counter\":\"BaseShipperContractsTable__table__column--orders-counter___x9Bgi\",\"table__column--expire-date\":\"BaseShipperContractsTable__table__column--expire-date___nb9xO\",\"table__column--status\":\"BaseShipperContractsTable__table__column--status___QqC8H\",\"fadeIn\":\"BaseShipperContractsTable__fadeIn___JoZl6\",\"blinking\":\"BaseShipperContractsTable__blinking___FcAVY\"};","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\nimport isNumber from 'lodash/isNumber';\n\nconst routePolylineOptions = {\n    strokeOpacity: 1.0,\n    strokeWeight: 4,\n};\n\nconst routeShadowPolylineOptions = {\n    strokeColor: StyleGuideColorsEnum.white,\n    strokeOpacity: 1.0,\n    strokeWeight: 6,\n};\n\nexport enum MapRouteThemeEnum {\n    assignmentRoute = 'assignment-route',\n    assignmentAccent = 'assignment-accent',\n    assignmentAttention = 'assignment-attention',\n    assignmentWarning = 'assignment-warning',\n    assignmentPositive = 'assignment-positive',\n    assignmentSelected = 'assignment-selected',\n    trackFuture = 'track-future',\n    trackPast = 'track-past',\n    trackCurrent = 'track-current',\n    orderCreation = 'order-creation',\n    laneCreation = 'lane-creation',\n    editOrderOld = 'edit-order-old',\n    editOrderNew = 'edit-order-new',\n    tourDeadhead = 'tour-deadhead',\n}\n\nconst COLOR_MAP: Record<MapRouteThemeEnum, StyleGuideColorsEnum> = {\n    [MapRouteThemeEnum.assignmentRoute]: StyleGuideColorsEnum.gray,\n    [MapRouteThemeEnum.assignmentAccent]: StyleGuideColorsEnum.charcoal,\n    [MapRouteThemeEnum.assignmentAttention]: StyleGuideColorsEnum.orange,\n    [MapRouteThemeEnum.assignmentWarning]: StyleGuideColorsEnum.tomatoRed,\n    [MapRouteThemeEnum.assignmentPositive]: StyleGuideColorsEnum.brandAccent,\n    [MapRouteThemeEnum.assignmentSelected]: StyleGuideColorsEnum.charcoal,\n    [MapRouteThemeEnum.trackCurrent]: StyleGuideColorsEnum.brandAccent,\n    [MapRouteThemeEnum.trackPast]: StyleGuideColorsEnum.brandAccent,\n    [MapRouteThemeEnum.trackFuture]: StyleGuideColorsEnum.gray,\n    [MapRouteThemeEnum.orderCreation]: StyleGuideColorsEnum.brandDark,\n    [MapRouteThemeEnum.laneCreation]: StyleGuideColorsEnum.charcoal,\n    [MapRouteThemeEnum.editOrderOld]: StyleGuideColorsEnum.gray,\n    [MapRouteThemeEnum.editOrderNew]: StyleGuideColorsEnum.orange,\n    [MapRouteThemeEnum.tourDeadhead]: StyleGuideColorsEnum.gray,\n};\n\nconst HOVER_COLOR_MAP: Record<MapRouteThemeEnum, StyleGuideColorsEnum> = {\n    ...COLOR_MAP,\n};\n\ntype PropsT = {\n    map: MapT | null | undefined;\n    maps: MapsT | null | undefined;\n    theme: MapRouteThemeEnum;\n\n    geometryLibrary?: GeometryLibraryT | null | undefined;\n\n    polylines?: Array<GooglePolylineT> | null | undefined;\n    route?: Array<GeoPointT> | null | undefined;\n\n    zIndex?: number;\n};\n\nconst MapRoute: React.FC<PropsT> = React.memo((props) => {\n    const { map, maps, theme, polylines, route, geometryLibrary, zIndex } = props;\n\n    const routePolylinesRef = React.useRef<Array<google.maps.Polyline>>([]);\n\n    const [isHover, setHover] = React.useState<boolean>(false);\n\n    const strokeColor = isHover ? HOVER_COLOR_MAP[theme] : COLOR_MAP[theme];\n\n    React.useEffect(() => {\n        if (!maps || !map) {\n            return;\n        }\n\n        // reset\n        routePolylinesRef.current.forEach((routePolyline) => {\n            routePolyline?.setMap(null);\n        });\n\n        routePolylinesRef.current = [];\n\n        const zIndexOptions = isNumber(zIndex)\n            ? {\n                  zIndex,\n              }\n            : {};\n\n        // draw route\n        const routePath: Array<GeoPointT> | Array<LatLngT> | null = route || null;\n        if (routePath) {\n            const routeShadowPolyline = new maps.Polyline({\n                path: routePath,\n                geodesic: true,\n                ...zIndexOptions,\n                ...routeShadowPolylineOptions,\n            });\n            routeShadowPolyline.setMap(map);\n\n            routePolylinesRef.current.push(routeShadowPolyline);\n\n            // fix google maps bug, old polyline delete all polylines\n            const routePolyline = new maps.Polyline({\n                path: routePath,\n                geodesic: true,\n                ...zIndexOptions,\n                strokeColor,\n                ...routePolylineOptions,\n            });\n            routePolyline.setMap(map);\n            routePolyline?.addListener('mouseover', () => {\n                setHover(true);\n            });\n            routePolyline?.addListener('mouseout', () => {\n                setHover(false);\n            });\n\n            routePolylinesRef.current.push(routePolyline);\n        }\n\n        // draw polylines\n        polylines?.forEach((polyline) => {\n            const decodedPath = geometryLibrary?.encoding?.decodePath(polyline) || [];\n\n            const routeShadowPolyline = new maps.Polyline({\n                path: decodedPath,\n                geodesic: true,\n                ...zIndexOptions,\n                ...routeShadowPolylineOptions,\n            });\n            routeShadowPolyline.setMap(map);\n\n            routePolylinesRef.current.push(routeShadowPolyline);\n\n            // fix google maps bug, old polyline delete all polylines\n            const routePolyline = new maps.Polyline({\n                path: decodedPath,\n                geodesic: true,\n                ...zIndexOptions,\n                strokeColor,\n                ...routePolylineOptions,\n            });\n            routePolyline.setMap(map);\n            routePolyline?.addListener('mouseover', () => {\n                setHover(true);\n            });\n            routePolyline?.addListener('mouseout', () => {\n                setHover(false);\n            });\n\n            routePolylinesRef.current.push(routePolyline);\n        });\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [map, maps, route, polylines, strokeColor, geometryLibrary]);\n\n    React.useEffect(() => {\n        return () => {\n            routePolylinesRef.current.forEach((routePolyline) => {\n                routePolyline?.setMap(null);\n            });\n\n            routePolylinesRef.current = [];\n        };\n    }, []);\n\n    return null;\n});\n\nexport default MapRoute;\n","export enum FieldsEnum {\n    companyName = 'companyName',\n    fullName = 'fullName',\n    email = 'email',\n    phoneNumber = 'phoneNumber',\n    comments = 'comments',\n}\n\nexport type FormValuesT = {\n    [FieldsEnum.companyName]: string;\n    [FieldsEnum.fullName]: string;\n    [FieldsEnum.email]: string;\n    [FieldsEnum.phoneNumber]: string;\n    [FieldsEnum.comments]: string;\n};\n\nexport type FormErrorsT = Partial<Record<FieldsEnum, FormErrorMessageT>>;\n","import * as React from 'react';\nimport classNames from 'classnames/bind';\nimport styles from './ShipmentStatusPill.scss';\nimport PillLabel, { colorCodingPillLabelTheme, PillLabelThemeEnum } from 'common/components/PillLabel/PillLabel';\nimport { ShipmentStatusEnum, ApiShipmentStatusT } from 'common/utils/api/models';\nimport { useTranslation } from 'react-i18next';\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    className?: string;\n    status?: ApiShipmentStatusT;\n    isSymmetrical?: boolean;\n};\n\nconst PILL_THEME_BY_STATUS: Record<ApiShipmentStatusT, PillLabelThemeEnum> = {\n    [ShipmentStatusEnum.awaitingLoading]: colorCodingPillLabelTheme.normal,\n    [ShipmentStatusEnum.loading]: colorCodingPillLabelTheme.normal,\n    [ShipmentStatusEnum.inTransit]: colorCodingPillLabelTheme.normal,\n    [ShipmentStatusEnum.unloading]: colorCodingPillLabelTheme.normal,\n    [ShipmentStatusEnum.delivered]: colorCodingPillLabelTheme.success,\n    [ShipmentStatusEnum.canceled]: colorCodingPillLabelTheme.normal,\n};\n\nexport const LOAD_STATUS_T_MAP: Record<ApiShipmentStatusT, string> = {\n    [ShipmentStatusEnum.awaitingLoading]: 'common:load-status.AWAITING_LOADING',\n    [ShipmentStatusEnum.loading]: 'common:load-status.LOADING',\n    [ShipmentStatusEnum.inTransit]: 'common:load-status.IN_TRANSIT',\n    [ShipmentStatusEnum.unloading]: 'common:load-status.UNLOADING',\n    [ShipmentStatusEnum.delivered]: 'common:load-status.DELIVERED',\n    [ShipmentStatusEnum.canceled]: 'common:load-status.CANCELED',\n};\n\nconst ShipmentStatusPill: React.FC<PropsT> = React.memo((props) => {\n    const { status, isSymmetrical } = props;\n\n    const { t } = useTranslation();\n\n    if (!status) {\n        return null;\n    }\n\n    return (\n        <PillLabel isNoWrap theme={PILL_THEME_BY_STATUS[status]} isSymmetrical={isSymmetrical}>\n            {t(LOAD_STATUS_T_MAP[status])}\n        </PillLabel>\n    );\n});\n\nexport default ShipmentStatusPill;\n","import React from 'react';\nimport MapIcon from 'common/icons/MapIcon';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\n\nexport type MapTriggerPropsT = {\n    isActiveMapTrigger?: boolean;\n    toggleMap: () => void;\n};\n\nconst MapTrigger: React.FC<MapTriggerPropsT> = (props) => {\n    const { toggleMap, isActiveMapTrigger } = props;\n\n    return (\n        <TransparentTrigger\n            onClick={toggleMap}\n            isToggled={isActiveMapTrigger}\n            leftIcon={\n                <MapIcon\n                    size={DEFAULT_ICON_SIZE}\n                    fillColor={StyleGuideColorsEnum.gray}\n                    strokeColor={StyleGuideColorsEnum.slate}\n                />\n            }\n            reflectionTheme={ReflectionThemeEnum.light}\n        />\n    );\n};\n\nexport default MapTrigger;\n","import React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './PriceSettingsRulePreviewLayout.scss';\nimport { useTranslation } from 'react-i18next';\nimport SideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/SideBarLayout';\nimport HeaderSideBarLayout from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarLayout/HeaderSideBarLayout';\nimport Button, { ButtonThemeEnum } from 'common/components/Button/Button';\nimport { useFormik } from 'formik';\nimport { FieldsEnum, FormValuesT } from './constants';\nimport { DropdownOverlayPositionEnum } from 'design-system/components/dropdowns/constants';\nimport validateForm from './validate-form';\nimport getInitialValues from './get-initial-values';\nimport prepareApiRulePreview from './prepare-api-rule-preview';\nimport FormikField from 'common/components/forms/FormikField/FormikField';\nimport FieldGroup from 'common/components/FieldGroup/FieldGroup';\nimport { useDispatch, useSelector } from 'react-redux';\nimport DatePicker, { DatePickerOverlayPositionEnum } from 'design-system/components/date-pickers/DatePicker/DatePicker';\nimport { selectPreviewRule, selectPreviewRuleRequest } from 'broker-admin/store/price-settings/rules/selectors';\nimport HeaderSideBarContent from 'common/layouts/LeftMenuLayout/SideBarLayout/HeaderSideBarContent/HeaderSideBarContent';\nimport ScrollToFirstError from 'common/components/ScrollToFirstError/ScrollToFirstError';\nimport { logWarning } from 'common/utils/logger';\nimport PriceRuleTypeDropdown from 'broker-admin/components/dropdowns/PriceRuleTypeDropdown/PriceRuleTypeDropdown';\nimport PartnerSuggest from 'broker-admin/components/dropdowns/PartnerSuggest/PartnerSuggest';\nimport DictTrailerDropdown from 'common/components/dropdowns/DictTrailerDropdown/DictTrailerDropdown';\nimport CountryDropdown from 'common/components/dropdowns/CountryDropdown/CountryDropdown';\nimport { deactivateRules, previewRule, previewRuleReset } from 'broker-admin/store/price-settings/rules/actions';\nimport { PreviewCurrentRuleT } from 'broker-admin/store/price-settings/rules/models';\nimport BigSearchIcon from 'common/icons/BigSearchIcon';\nimport PreviewMessage from 'broker-admin/layouts/PriceSettingsRulePreviewLayout/PreviewMessage/PreviewMessage';\nimport ControlLoaderLabel from 'common/components/ControlLoaderLabel/ControlLoaderLabel';\nimport RulePreview from 'broker-admin/layouts/PriceSettingsRulePreviewLayout/RulePreview/RulePreview';\nimport BigWarningIcon from 'common/icons/BigWarningIcon';\nimport { useChannelSubscribe } from 'common/utils/hooks/useChannelSubscribe';\nimport { ruleDeactivateChannel } from 'broker-admin/store/price-settings/rules/channels';\nimport { PartnerTypeEnum, PriceRuleTypeEnum } from 'common/utils/api/models';\nimport ReadOnlyField from 'common/components/ReadOnlyField/ReadOnlyField';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    ruleId: RuleIdT | null;\n    previewCurrentRule: PreviewCurrentRuleT | null;\n};\n\nconst PriceSettingsRulePreviewLayout: React.FC<PropsT> = (props) => {\n    const { ruleId, previewCurrentRule } = props;\n\n    const dispatch = useDispatch();\n\n    const { t } = useTranslation();\n\n    const validate = React.useCallback((values: FormValuesT) => validateForm(t, values), [t]);\n\n    const previewRequest = useSelector(selectPreviewRuleRequest);\n    const preview = useSelector(selectPreviewRule);\n\n    const [prevInitialValues, setPrevInitialValues] = React.useState<FormValuesT | null>(null);\n    const [initialValues, initialErrors] = React.useMemo(() => {\n        const values = prevInitialValues || getInitialValues();\n        const errors = validateForm(t, values);\n\n        return [values, errors];\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [prevInitialValues]);\n\n    const isShowLoader = previewRequest.loading;\n\n    const formik = useFormik<FormValuesT>({\n        enableReinitialize: true,\n        validateOnBlur: false,\n        initialErrors,\n        initialValues,\n        validate,\n        onSubmit: (values, formikHelpers): void => {\n            const data = prepareApiRulePreview(ruleId, previewCurrentRule, values);\n            if (!data) {\n                logWarning('empty rulePreview, not valid values');\n                return;\n            }\n\n            dispatch(previewRule(data));\n            setPrevInitialValues(values);\n\n            formikHelpers.setTouched({});\n        },\n    });\n\n    React.useEffect(() => {\n        return () => {\n            dispatch(previewRuleReset());\n        };\n    }, [dispatch]);\n\n    const handleDeactivateRule = React.useCallback(\n        (ruleId: RuleIdT) => {\n            dispatch(deactivateRules([ruleId]));\n        },\n        [dispatch],\n    );\n\n    const refreshPageHandler = React.useCallback(() => {\n        if (!prevInitialValues) {\n            return;\n        }\n\n        const data = prepareApiRulePreview(ruleId, previewCurrentRule, prevInitialValues);\n        if (data) {\n            dispatch(previewRule(data));\n        }\n    }, [previewCurrentRule, prevInitialValues, ruleId, dispatch]);\n    useChannelSubscribe(ruleDeactivateChannel, refreshPageHandler);\n\n    const ruleType = formik.values[FieldsEnum.ruleType];\n\n    const shouldShowChanges = !!prevInitialValues;\n\n    return (\n        <form onSubmit={formik.handleSubmit} className={cx('form')}>\n            <HeaderSideBarLayout>\n                <HeaderSideBarContent\n                    title={t('price-settings.rules.preview.title')}\n                    testSelector=\"rule-preview\"\n                    className={cx('header')}\n                />\n            </HeaderSideBarLayout>\n            <SideBarLayout testSelector=\"rule-preview\" className={cx('inner')}>\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--date')}\n                        name={FieldsEnum.date}\n                        error={formik.errors[FieldsEnum.date]}\n                        meta={formik.getFieldMeta(FieldsEnum.date)}\n                        label={t('price-settings.rules.preview.fields.date.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DatePicker\n                                value={formik.values[FieldsEnum.date]}\n                                initialValue={initialValues[FieldsEnum.date]}\n                                onChange={props.onChange}\n                                overlayPosition={DatePickerOverlayPositionEnum.bottomLeft}\n                                hasError={props.hasError}\n                                hasWarning={props.hasWarning}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                testSelectorPrefix=\"date\"\n                                hasChanges={shouldShowChanges && props.hasChanges}\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--type')}\n                        name={FieldsEnum.ruleType}\n                        error={formik.errors[FieldsEnum.ruleType]}\n                        meta={formik.getFieldMeta(FieldsEnum.ruleType)}\n                        label={t('price-settings.rules.preview.fields.type.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <PriceRuleTypeDropdown\n                                value={formik.values[FieldsEnum.ruleType]}\n                                onChange={props.onChange}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasChanges={shouldShowChanges && props.hasChanges}\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        name={FieldsEnum.dictTrailerId}\n                        className={cx('field', 'field--trailer')}\n                        error={formik.errors[FieldsEnum.dictTrailerId]}\n                        meta={formik.getFieldMeta(FieldsEnum.dictTrailerId)}\n                        label={t('price-settings.rules.preview.fields.trailer-type.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <DictTrailerDropdown\n                                isShortLabel\n                                value={formik.values[FieldsEnum.dictTrailerId]}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomRight}\n                                onChange={props.onChange}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasChanges={shouldShowChanges && props.hasChanges}\n                            />\n                        )}\n                    </FormikField>\n                </FieldGroup>\n                {ruleType === PriceRuleTypeEnum.shipper && (\n                    <FormikField\n                        className={cx('field', 'field--partner')}\n                        name={FieldsEnum.shipperId}\n                        error={formik.errors[FieldsEnum.shipperId]}\n                        meta={formik.getFieldMeta(FieldsEnum.shipperId)}\n                        label={t('price-settings.rules.preview.fields.shipper.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <PartnerSuggest\n                                partnerType={PartnerTypeEnum.shipper}\n                                value={formik.values[FieldsEnum.shipperId]}\n                                onSelect={props.onChange}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                placeholder={t('price-settings.rules.preview.fields.shipper.placeholder')}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasChanges={shouldShowChanges && props.hasChanges}\n                            />\n                        )}\n                    </FormikField>\n                )}\n                {ruleType === PriceRuleTypeEnum.carrier && (\n                    <FormikField\n                        className={cx('field', 'field--partner')}\n                        name={FieldsEnum.carrierId}\n                        error={formik.errors[FieldsEnum.carrierId]}\n                        meta={formik.getFieldMeta(FieldsEnum.carrierId)}\n                        label={t('price-settings.rules.preview.fields.carrier.label')}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <PartnerSuggest\n                                partnerType={PartnerTypeEnum.carrier}\n                                value={formik.values[FieldsEnum.carrierId]}\n                                onSelect={props.onChange}\n                                hasWarning={props.hasWarning}\n                                hasError={props.hasError}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                placeholder={t('price-settings.rules.preview.fields.carrier.placeholder')}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasChanges={shouldShowChanges && props.hasChanges}\n                            />\n                        )}\n                    </FormikField>\n                )}\n                {(!ruleType || ruleType === PriceRuleTypeEnum.basic) && (\n                    <ReadOnlyField\n                        withInputLayout\n                        label={t('price-settings.rules.preview.fields.partner.label')}\n                        placeholder={t('price-settings.rules.preview.fields.partner.placeholder')}\n                        value={null}\n                    />\n                )}\n                <FieldGroup>\n                    <FormikField\n                        className={cx('field', 'field--country')}\n                        name={FieldsEnum.countryFrom}\n                        error={formik.errors[FieldsEnum.countryFrom]}\n                        label={t('price-settings.rules.preview.fields.from-country.label')}\n                        meta={formik.getFieldMeta(FieldsEnum.countryFrom)}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <CountryDropdown\n                                hasError={props.hasError}\n                                value={formik.values[FieldsEnum.countryFrom]}\n                                onChange={(countryCode) => {\n                                    props.onChange(countryCode);\n                                }}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasChanges={shouldShowChanges && props.hasChanges}\n                            />\n                        )}\n                    </FormikField>\n                    <FormikField\n                        className={cx('field', 'field--country')}\n                        name={FieldsEnum.countryTo}\n                        error={formik.errors[FieldsEnum.countryTo]}\n                        label={t('price-settings.rules.preview.fields.to-country.label')}\n                        meta={formik.getFieldMeta(FieldsEnum.countryTo)}\n                        setFieldValue={formik.setFieldValue}\n                        setFieldTouched={formik.setFieldTouched}\n                    >\n                        {(props) => (\n                            <CountryDropdown\n                                hasError={props.hasError}\n                                value={formik.values[FieldsEnum.countryTo]}\n                                onChange={(countryCode) => {\n                                    props.onChange(countryCode);\n                                }}\n                                overlayPosition={DropdownOverlayPositionEnum.bottomLeft}\n                                onBlur={props.onBlur}\n                                onFocus={props.onFocus}\n                                hasChanges={shouldShowChanges && props.hasChanges}\n                            />\n                        )}\n                    </FormikField>\n                    <div className={cx('field', 'field--action')}>\n                        <Button\n                            className={cx('button', 'button--preview')}\n                            type=\"submit\"\n                            theme={ButtonThemeEnum.secondaryPositive}\n                            testSelector=\"find\"\n                        >\n                            {t('price-settings.rules.preview.submit')}\n                        </Button>\n                    </div>\n                </FieldGroup>\n                <div className={cx('preview')}>\n                    {!preview && !previewRequest.error && (\n                        <PreviewMessage\n                            icon={<BigSearchIcon />}\n                            title={t('price-settings.rules.preview.placeholders.empty-request', {\n                                action: t('price-settings.rules.preview.submit'),\n                            })}\n                        />\n                    )}\n                    {previewRequest.error && (\n                        <PreviewMessage\n                            icon={<BigWarningIcon />}\n                            title={t('common:common-errors.something-went-wrong.title')}\n                            description={t('common:common-errors.something-went-wrong.description')}\n                        />\n                    )}\n                    {!!preview && (\n                        <RulePreview preview={preview} currentRuleId={ruleId} onDeactivateRule={handleDeactivateRule} />\n                    )}\n                    {isShowLoader && (\n                        <div className={cx('loader')}>\n                            <ControlLoaderLabel isInvert>{t('price-settings.rules.preview.loader')}</ControlLoaderLabel>\n                        </div>\n                    )}\n                </div>\n            </SideBarLayout>\n            <ScrollToFirstError submitCount={formik.submitCount} errors={formik.errors} />\n        </form>\n    );\n};\n\nexport default PriceSettingsRulePreviewLayout;\n","import * as React from 'react';\nimport BrokerTourTypePill from 'broker-admin/components/status-pill/BrokerTourTypePill/BrokerTourTypePill';\nimport { BrokerTourShortT } from 'broker-admin/store/broker-tours/models';\n\ntype PropsT = {\n    brokerTourShort?: BrokerTourShortT | null;\n};\n\nconst TypeCell: React.FC<PropsT> = React.memo(({ brokerTourShort }) => {\n    return <BrokerTourTypePill type={brokerTourShort?.type} isSymmetrical />;\n});\n\nexport default TypeCell;\n","import { ApiCountryT } from 'common/utils/api/models';\n\ntype ComparatorT = (a: string, b: string) => number;\n\nexport const byAlphabetASC: ComparatorT = (a, b) => {\n    if (a < b) {\n        return -1;\n    }\n    if (a > b) {\n        return 1;\n    }\n    return 0;\n};\n\nexport const getCountryCompByName = (comp: ComparatorT) => (countryA: ApiCountryT, countryB: ApiCountryT) => {\n    return comp(countryA.userLangDisplayName, countryB.userLangDisplayName);\n};\n","import * as React from 'react';\nimport { ApiEmissionClassT } from 'common/constants';\nimport EmissionClassLabel from 'common/components/EmissionClassLabel/EmissionClassLabel';\n\ntype PropsT = {\n    emissionClass: ApiEmissionClassT | null | undefined;\n};\n\nconst EmissionClassFormatter: React.FC<PropsT> = React.memo((props) => {\n    const { emissionClass } = props;\n\n    return <EmissionClassLabel emissionClass={emissionClass} />;\n});\n\nexport default EmissionClassFormatter;\n","import * as React from 'react';\nimport { DEFAULT_ICON_SIZE, StyleGuideColorsEnum } from 'common/constants';\nimport Tooltip, { TooltipPositionEnum, TooltipThemeEnum } from 'design-system/components/Tooltip/Tooltip';\nimport TransparentTrigger, { ReflectionThemeEnum } from 'common/components/TransparentTrigger/TransparentTrigger';\nimport TooltipContent, {\n    TooltipContentThemeEnum,\n} from 'design-system/components/Tooltip/TooltipContent/TooltipContent';\nimport noop from 'lodash/noop';\nimport UrgentIcon from 'common/icons/UrgentIcon';\nimport TeamDriveIcon from 'common/icons/TeamDriveIcon';\nimport HourglassHalfIcon from 'common/icons/HourglassHalfIcon';\nimport EcoIcon from 'common/icons/EcoIcon';\n\nexport enum OfferAttributeIconTypeEnum {\n    urgent = 'urgent',\n    teamDrive = 'team-drive',\n    layover = 'layover',\n    eco = 'eco',\n}\n\ntype PropsT = {\n    iconType: OfferAttributeIconTypeEnum;\n    tooltipLabel?: React.ReactNode;\n    className?: string;\n};\n\nconst OfferAttribute: React.FC<PropsT> = React.memo((props) => {\n    const { iconType, tooltipLabel } = props;\n\n    const iconMap: Record<OfferAttributeIconTypeEnum, React.ReactNode> = {\n        [OfferAttributeIconTypeEnum.urgent]: (\n            <UrgentIcon size={DEFAULT_ICON_SIZE} fillColor={StyleGuideColorsEnum.orange} />\n        ),\n        [OfferAttributeIconTypeEnum.teamDrive]: (\n            <TeamDriveIcon\n                fillColor={StyleGuideColorsEnum.charcoal}\n                strokeColor={StyleGuideColorsEnum.charcoal}\n                size={DEFAULT_ICON_SIZE}\n            />\n        ),\n        [OfferAttributeIconTypeEnum.layover]: (\n            <HourglassHalfIcon\n                fillColor={StyleGuideColorsEnum.orange}\n                strokeColor={StyleGuideColorsEnum.charcoal}\n                size={DEFAULT_ICON_SIZE}\n            />\n        ),\n        [OfferAttributeIconTypeEnum.eco]: <EcoIcon size={DEFAULT_ICON_SIZE} />,\n    };\n\n    return (\n        <Tooltip\n            position={TooltipPositionEnum.topCenter}\n            theme={TooltipThemeEnum.black}\n            tooltipNode={\n                tooltipLabel ? (\n                    <TooltipContent isNoWrap theme={TooltipContentThemeEnum.black}>\n                        {tooltipLabel}\n                    </TooltipContent>\n                ) : null\n            }\n        >\n            {() => (\n                <TransparentTrigger\n                    spaces=\"xs\"\n                    isDisabled={!tooltipLabel}\n                    onClick={noop}\n                    leftIcon={iconMap[iconType]}\n                    reflectionTheme={ReflectionThemeEnum.light}\n                />\n            )}\n        </Tooltip>\n    );\n});\n\nexport default OfferAttribute;\n","import type { PayloadAction } from '@reduxjs/toolkit';\nimport { createSlice } from '@reduxjs/toolkit';\nimport { PageResponseT, PaginationStateT } from 'common/utils/pagination/models';\nimport {\n    pageBeginReducer,\n    pageErrorReducer,\n    pageSuccessReducer,\n    resetPagesCacheReducer,\n} from 'common/utils/pagination/reducers';\nimport { FetchShipperContractLanesPageQueryT, ShipperContractLaneT } from './models';\n\nexport type PartnerShipperContractLanesStateT = PaginationStateT<\n    ShipperContractLaneT,\n    FetchShipperContractLanesPageQueryT\n>;\n\nexport const initialPartnerShipperContractLanesState: PartnerShipperContractLanesStateT = {\n    pages: [],\n    query: null,\n    total: null,\n    byId: {},\n};\n\nexport type ShipperContractLanesStateT = Record<\n    PartnerIdT,\n    Record<ShipperContractIdT, PartnerShipperContractLanesStateT>\n>;\n\nconst initialState: ShipperContractLanesStateT = {};\n\nexport const shipperContractLanesSlice = createSlice({\n    name: 'shipperContractLanes',\n    initialState,\n    reducers: {\n        fetchShipperContractLanesPage: (\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            state,\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            action: PayloadAction<{\n                pageNumber: PageNumberT;\n                query: FetchShipperContractLanesPageQueryT;\n                partnerId: PartnerIdT;\n                contractId: ShipperContractIdT;\n                options?: FetchOptionsT;\n            }>,\n        ) => {\n            // nothing\n        },\n        fetchShipperContractLanesPageBegin: (\n            state,\n            action: PayloadAction<{\n                query: FetchShipperContractLanesPageQueryT;\n                pageNumber: PageNumberT;\n                partnerId: PartnerIdT;\n                contractId: ShipperContractIdT;\n            }>,\n        ) => {\n            const { partnerId, contractId, pageNumber, query } = action.payload;\n            const partnerState = state[partnerId]?.[contractId] || initialPartnerShipperContractLanesState;\n\n            if (!state[partnerId]) {\n                state[partnerId] = {};\n            }\n\n            state[partnerId][contractId] = {\n                ...partnerState,\n                ...pageBeginReducer(partnerState, pageNumber, query),\n            };\n        },\n        fetchShipperContractLanesPageSuccess: (\n            state,\n            action: PayloadAction<{\n                query: FetchShipperContractLanesPageQueryT;\n                pageNumber: PageNumberT;\n                response: PageResponseT<ShipperContractLaneT> | null;\n                partnerId: PartnerIdT;\n                contractId: ShipperContractIdT;\n            }>,\n        ) => {\n            const { partnerId, contractId, pageNumber, query, response } = action.payload;\n            const partnerState = state[partnerId]?.[contractId] || initialPartnerShipperContractLanesState;\n\n            if (!state[partnerId]) {\n                state[partnerId] = {};\n            }\n\n            state[partnerId][contractId] = {\n                ...partnerState,\n                ...pageSuccessReducer(partnerState, pageNumber, query, response),\n            };\n        },\n        fetchShipperContractLanesPageError: (\n            state,\n            action: PayloadAction<{\n                query: FetchShipperContractLanesPageQueryT;\n                pageNumber: PageNumberT;\n                error: Error;\n                partnerId: PartnerIdT;\n                contractId: ShipperContractIdT;\n            }>,\n        ) => {\n            const { partnerId, contractId, pageNumber, query, error } = action.payload;\n            const partnerState = state[partnerId]?.[contractId] || initialPartnerShipperContractLanesState;\n\n            if (!state[partnerId]) {\n                state[partnerId] = {};\n            }\n\n            state[partnerId][contractId] = {\n                ...partnerState,\n                ...pageErrorReducer(partnerState, pageNumber, query, error),\n            };\n        },\n        resetShipperContractLanes: (\n            state,\n            action: PayloadAction<{\n                partnerId: PartnerIdT;\n                contractId: ShipperContractIdT;\n                mutationListOptions: MutationListOptionsT;\n            }>,\n        ) => {\n            const { partnerId, contractId, mutationListOptions } = action.payload;\n            const partnerState = state[partnerId]?.[contractId] || initialPartnerShipperContractLanesState;\n\n            if (!state[partnerId]) {\n                state[partnerId] = {};\n            }\n\n            state[partnerId][contractId] = {\n                ...partnerState,\n                ...resetPagesCacheReducer(initialPartnerShipperContractLanesState, partnerState, mutationListOptions),\n            };\n        },\n    },\n});\n\nexport const {\n    fetchShipperContractLanesPage,\n    fetchShipperContractLanesPageBegin,\n    fetchShipperContractLanesPageSuccess,\n    fetchShipperContractLanesPageError,\n    resetShipperContractLanes,\n} = shipperContractLanesSlice.actions;\n\nexport default shipperContractLanesSlice.reducer;\n","// extracted by mini-css-extract-plugin\nexport default {\"table__header\":\"SpotRequestsTable__table__header____J2K1\",\"table__header--origin\":\"SpotRequestsTable__table__header--origin___gGcvo\",\"table__header--costs\":\"SpotRequestsTable__table__header--costs___PtMnv\",\"table__header--status\":\"SpotRequestsTable__table__header--status___dORAP\",\"table__column\":\"SpotRequestsTable__table__column___yCcuM\",\"table__column--origin\":\"SpotRequestsTable__table__column--origin___c1XnS\",\"table__column--status\":\"SpotRequestsTable__table__column--status___Pl36J\",\"table__column--placed\":\"SpotRequestsTable__table__column--placed___KhaRL\",\"table__column--asset\":\"SpotRequestsTable__table__column--asset___ANHDX\",\"fadeIn\":\"SpotRequestsTable__fadeIn___rrtcv\",\"blinking\":\"SpotRequestsTable__blinking___IU8R4\"};","// extracted by mini-css-extract-plugin\nexport default {\"route-type-switcher\":\"BrokerTourRouteMap__route-type-switcher___y7yjj\",\"route-point-pin\":\"BrokerTourRouteMap__route-point-pin___KaQYh\",\"fadeIn\":\"BrokerTourRouteMap__fadeIn___RqEcK\",\"blinking\":\"BrokerTourRouteMap__blinking___RZAQ9\"};","import * as React from 'react';\nimport classNames from 'classnames/bind';\n\nimport styles from './RemovedFromTeamCard.scss';\nimport { Trans } from 'react-i18next';\nimport TeamName from 'broker-admin/components/notification-cards/entities/TeamName/TeamName';\n\nconst cx = classNames.bind(styles);\n\ntype PropsT = {\n    teamName: string;\n};\n\nconst RemovedFromTeamCard: React.FC<PropsT> = React.memo((props) => {\n    const { teamName } = props;\n\n    return (\n        <div className={cx('inner')}>\n            <Trans\n                i18nKey=\"notifications.team-removed\"\n                components={{\n                    teamName: <TeamName name={teamName} />,\n                }}\n            />\n        </div>\n    );\n});\n\nexport default RemovedFromTeamCard;\n","import { createSelector } from 'reselect';\nimport { AuthStateT } from './types';\nimport { SharableStateT } from '../models';\nimport { PermissionsT } from './models';\nimport { AuthUserClaimRoleT, PartnerTypeEnum, RolesEnum } from 'common/utils/api/models';\nimport { getPermissions } from 'common/utils/permissions';\nimport { ALL_ROLES_BY_PARTNER_TYPE, AuthProfileTypeEnum } from 'common/store/auth/constants';\nimport { CompanyTypeEnum } from 'common/constants';\nimport { authApi } from 'common/utils/api/auth/factory';\nimport { collectDebugInfo } from 'common/utils/debug-info';\n\nexport const selectSignInRequestStatus = (state: SharableStateT): AuthStateT['signInRequest'] =>\n    state.auth.signInRequest;\n\nexport const selectUser = (state: SharableStateT): AuthStateT['user'] | null => state.auth?.user || null;\n\nexport const selectAllowedCreateAnonymously = (): boolean => authApi.checkAllowedAnonymouslyUserCreation();\n\nexport const selectUserClaims = (state: SharableStateT): AuthStateT['userClaims'] => state.auth?.userClaims;\n\nexport const checkRegisteredUser = (state: SharableStateT): boolean =>\n    state.auth.user !== null && !state.auth.user.isAnonymous;\n\nexport const selectResetPasswordRequestStatus = (state: SharableStateT): AuthStateT['resetPasswordRequest'] =>\n    state.auth.resetPasswordRequest;\n\nexport const selectUpdatePasswordRequestStatus = (state: SharableStateT): AuthStateT['updatePasswordRequest'] =>\n    state.auth.updatePasswordRequest;\n\nexport const selectSignUpRequestStatus = (state: SharableStateT): AuthStateT['signUpRequest'] =>\n    state.auth.signUpRequest;\n\nexport const selectSignOutRequestStatus = (state: SharableStateT): AuthStateT['signOutRequest'] =>\n    state.auth.signOutRequest;\n\nexport const selectEmailVerificationRequestStatus = (state: SharableStateT): AuthStateT['emailVerificationRequest'] =>\n    state.auth.emailVerificationRequest;\n\nexport const selectProfileType = (state: SharableStateT): AuthStateT['profileType'] => state.auth.profileType;\n\nexport type RolesConfigT = Record<keyof PermissionsT, Array<AuthUserClaimRoleT | AuthUserClaimRoleT[]>>;\nexport type ProfileTypeRestrictConfigT = Partial<Record<keyof PermissionsT, AuthProfileTypeEnum[]>>;\n\nexport const selectPermissions = createSelector(\n    selectUserClaims,\n    selectProfileType,\n    (userClaims, profileType): PermissionsT => {\n        const omitRoles = (allRoles: Array<RolesEnum>, restrictedRoles: Array<RolesEnum>) => {\n            return allRoles.filter((role) => {\n                return !restrictedRoles.includes(role);\n            });\n        };\n\n        // rule: [a or b or [c and d]]\n        const config: RolesConfigT = {\n            canViewPriceSettings: [RolesEnum.companyAdmin],\n            canViewFullStatistic: [RolesEnum.companyAdmin],\n\n            canCancelOrder: [RolesEnum.companyAdmin, ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker]],\n            canCreateOrder: [RolesEnum.companyAdmin, RolesEnum.keyAccountManager],\n\n            canViewTrailers: [\n                ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.carrier],\n                ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker],\n            ],\n            canImportTrailers: [RolesEnum.companyAdmin, ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker]],\n            canEditTrailers: [RolesEnum.companyAdmin, ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker]],\n            canActivateTrailers: [RolesEnum.companyAdmin, ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker]],\n            canArchiveTrailers: [RolesEnum.companyAdmin, ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker]],\n            canSetUnavailableTrailers: [RolesEnum.companyAdmin, ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker]],\n\n            canViewTrucks: [\n                ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.carrier],\n                ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker],\n            ],\n            canImportTrucks: [RolesEnum.companyAdmin, ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker]],\n            canEditTrucks: [RolesEnum.companyAdmin, ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker]],\n            canActivateTrucks: [RolesEnum.companyAdmin, ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker]],\n            canArchiveTrucks: [RolesEnum.companyAdmin, ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker]],\n            canSetUnavailableTrucks: [RolesEnum.companyAdmin, ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker]],\n\n            canTeleportAssets: [...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker]],\n\n            canAddPartner: [RolesEnum.companyAdmin],\n            canDeletePartner: [],\n\n            canDownloadDocuments: [\n                ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.shipper],\n                ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.carrier],\n                ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker],\n            ],\n            canUploadDocuments: [RolesEnum.companyAdmin],\n            canVerifyDocuments: [RolesEnum.companyAdmin],\n            canRevokeDocuments: [RolesEnum.companyAdmin],\n            canEditDocuments: [RolesEnum.companyAdmin],\n            canReviewDocuments: [RolesEnum.companyAdmin],\n\n            canDownloadCarrierContracts: [\n                ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.shipper],\n                ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.carrier],\n                ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker],\n            ],\n            canUploadCarrierContracts: [RolesEnum.companyAdmin],\n            canRevokeCarrierContracts: [RolesEnum.companyAdmin],\n            canEditCarrierContracts: [RolesEnum.companyAdmin],\n            canReviewCarrierContracts: [RolesEnum.companyAdmin],\n\n            canUploadShipperContracts: [RolesEnum.companyAdmin],\n            canEditShipperContracts: [RolesEnum.companyAdmin],\n\n            canVerifyPartner: [RolesEnum.companyAdmin],\n\n            canInviteTeamMembers: [RolesEnum.companyAdmin],\n            canEditTeamMembers: [RolesEnum.companyAdmin],\n            canViewTeamMembers: [\n                ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.shipper],\n                ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.carrier],\n                ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker],\n            ],\n            canEditDrivers: [RolesEnum.companyAdmin, RolesEnum.keyAccountManager],\n            canViewDrivers: [\n                ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.carrier],\n                RolesEnum.companyAdmin,\n                RolesEnum.keyAccountManager,\n            ],\n\n            canViewSpot: [\n                ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.carrier],\n                RolesEnum.companyAdmin,\n                RolesEnum.dispatcher,\n            ],\n\n            canViewInvoices: [\n                ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.shipper],\n                ...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker],\n            ],\n\n            canDeclineTransportOrders: [[RolesEnum.companyAdmin, CompanyTypeEnum.carrier]],\n\n            canEditSpotLanes: [...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.carrier]],\n            canUseBrokerAdminSuggest: [RolesEnum.companyAdmin],\n\n            canEditPartnerDetails: [RolesEnum.companyAdmin],\n\n            canAssignmentBrokerOrder: omitRoles(ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker], [\n                RolesEnum.keyAccountManager,\n            ]),\n            canChangeTourStatusOnBrokerOrder: omitRoles(ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker], [\n                RolesEnum.keyAccountManager,\n            ]),\n            canChangeShipmentStatusOnBrokerOrder: omitRoles(ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker], [\n                RolesEnum.keyAccountManager,\n            ]),\n            canCancelShipmentOnBrokerOrder: [...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker]],\n            canChangeTourStatusOnBrokerTour: omitRoles(ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker], [\n                RolesEnum.keyAccountManager,\n            ]),\n            canChangeShipmentStatusOnBrokerTour: omitRoles(ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker], [\n                RolesEnum.keyAccountManager,\n            ]),\n            canCancelShipmentOnBrokerTour: [...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker]],\n\n            canFilterBrokerOrdersByAccountManagerOrDispatcher: [RolesEnum.companyAdmin],\n\n            canViewBrokerTours: [...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker]],\n            canBrokerToursAddDeadhead: omitRoles(ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker], [\n                RolesEnum.keyAccountManager,\n            ]),\n\n            canViewBrokerRFQs: [...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker]],\n\n            canViewBrokerUsers: [...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker]],\n\n            canAddBrokerUsersTeams: [RolesEnum.companyAdmin],\n            canEditBrokerUsersTeams: [RolesEnum.companyAdmin],\n            canDeleteBrokerUsersTeams: [RolesEnum.companyAdmin],\n\n            canEditLineHaulOnOrderCreation: [...ALL_ROLES_BY_PARTNER_TYPE[PartnerTypeEnum.broker]],\n        };\n\n        // mock for local debug\n        // if (userClaims) {\n        //     userClaims.roles = [RolesEnum.user];\n        // }\n\n        const userRolesSet = new Set(userClaims?.roles || []);\n\n        collectDebugInfo({ userClaims });\n\n        const profileTypeRestrictConfig: ProfileTypeRestrictConfigT = {\n            canRevokeDocuments: [AuthProfileTypeEnum.broker],\n            canVerifyDocuments: [AuthProfileTypeEnum.broker],\n            canEditDocuments: [AuthProfileTypeEnum.broker],\n            canReviewDocuments: [AuthProfileTypeEnum.broker],\n\n            canRevokeCarrierContracts: [AuthProfileTypeEnum.broker],\n            canEditCarrierContracts: [AuthProfileTypeEnum.broker],\n            canReviewCarrierContracts: [AuthProfileTypeEnum.broker],\n\n            canUploadShipperContracts: [AuthProfileTypeEnum.broker],\n            canEditShipperContracts: [AuthProfileTypeEnum.broker],\n\n            canEditSpotLanes: [AuthProfileTypeEnum.carrier],\n\n            canUseBrokerAdminSuggest: [AuthProfileTypeEnum.broker],\n\n            canEditPartnerDetails: [AuthProfileTypeEnum.broker],\n\n            canFilterBrokerOrdersByAccountManagerOrDispatcher: [AuthProfileTypeEnum.broker],\n\n            canAssignmentBrokerOrder: [AuthProfileTypeEnum.broker],\n            canChangeTourStatusOnBrokerOrder: [AuthProfileTypeEnum.broker],\n            canChangeShipmentStatusOnBrokerOrder: [AuthProfileTypeEnum.broker],\n            canCancelShipmentOnBrokerOrder: [AuthProfileTypeEnum.broker],\n            canChangeTourStatusOnBrokerTour: [AuthProfileTypeEnum.broker],\n            canChangeShipmentStatusOnBrokerTour: [AuthProfileTypeEnum.broker],\n            canCancelShipmentOnBrokerTour: [AuthProfileTypeEnum.broker],\n\n            canEditLineHaulOnOrderCreation: [AuthProfileTypeEnum.broker],\n\n            canTeleportAssets: [AuthProfileTypeEnum.broker],\n        };\n\n        return getPermissions(userRolesSet, config, profileType, profileTypeRestrictConfig);\n    },\n);\n","import React from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ModalContent from 'common/components/Modal/ModalContent/ModalContent';\nimport ModalDialog, { DEFAULT_MODAL_DIALOG_WIDTH } from 'common/components/Modal/ModalDialog/ModalDialog';\nimport { ButtonThemeEnum } from 'common/components/Button/Button';\nimport Modal from 'common/components/Modal/Modal';\nimport { CancelTrailerTransportOrderConfirmationDataT } from './models';\nimport { RequestStatusT } from 'common/utils/request-status';\nimport BigTrashIcon from 'common/icons/BigTrashIcon';\n\ntype PropsT = {\n    data: CancelTrailerTransportOrderConfirmationDataT | null;\n    requestStatus: RequestStatusT;\n    onClose: () => void;\n    onCancel: () => void;\n    onConfirm: (data: CancelTrailerTransportOrderConfirmationDataT) => void;\n};\n\nconst TEST_SELECTOR = 'cancel-trailer-transport-order-confirmation';\n\nconst CancelTrailerTransportOrderConfirmation: React.FC<PropsT> = React.memo((props) => {\n    const { data, requestStatus, onClose, onCancel, onConfirm } = props;\n\n    const { t } = useTranslation();\n\n    if (!data) {\n        return null;\n    }\n\n    return (\n        <Modal>\n            <ModalContent onClose={onClose}>\n                <ModalDialog\n                    width={DEFAULT_MODAL_DIALOG_WIDTH}\n                    testSelector={TEST_SELECTOR}\n                    actions={[\n                        {\n                            children: t('common:error-modal.actions.cancel'),\n                            theme: ButtonThemeEnum.secondary,\n                            testSelector: `${TEST_SELECTOR}_cancel`,\n                            isDisabled: requestStatus.loading,\n                            onClick: onCancel,\n                        },\n                        {\n                            children: t('common:error-modal.actions.confirm'),\n                            theme: ButtonThemeEnum.danger,\n                            isLoading: requestStatus.loading,\n                            isDisabled: requestStatus.loading,\n                            testSelector: `${TEST_SELECTOR}_ok`,\n                            onClick: () => {\n                                onConfirm(data);\n                            },\n                        },\n                    ]}\n                    icon={<BigTrashIcon />}\n                    title={t('assignment.cancel-trailer-transport-order-confirmation.title')}\n                    message={t('assignment.cancel-trailer-transport-order-confirmation.description')}\n                />\n            </ModalContent>\n        </Modal>\n    );\n});\n\nexport default CancelTrailerTransportOrderConfirmation;\n","import * as React from 'react';\nimport { StyleGuideColorsEnum } from 'common/constants';\n\ntype PropsT = {\n    fillColor: StyleGuideColorsEnum;\n    strokeColor: StyleGuideColorsEnum;\n};\n\nconst WalletIcon: React.FC<PropsT> = (props) => {\n    const { fillColor, strokeColor } = props;\n\n    return (\n        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\">\n            <g fill=\"none\" fillRule=\"evenodd\">\n                <path d=\"M1 1h18v18H1z\" />\n                <path\n                    fill={fillColor}\n                    d=\"M10.75 13.75c-.825 0-1.5-.675-1.5-1.5v-4.5c0-.825.675-1.5 1.5-1.5h4.5v-1.5H4.75v10.5h10.5v-1.5h-4.5z\"\n                />\n                <path\n                    fill={strokeColor}\n                    d=\"M15.25 3.25c.825 0 1.5.675 1.5 1.5v1.71c.442.255.75.735.75 1.29v4.5a1.5 1.5 0 01-.75 1.29v1.71c0 .825-.675 1.5-1.5 1.5H4.75a1.5 1.5 0 01-1.5-1.5V4.75a1.5 1.5 0 011.5-1.5zm0 1.5H4.75v10.5h10.5v-1.5h-4.5c-.825 0-1.5-.675-1.5-1.5v-4.5c0-.825.675-1.5 1.5-1.5h4.5v-1.5zm.75 3h-5.25v4.5H16v-4.5zm-3 1.125a1.125 1.125 0 110 2.25 1.125 1.125 0 010-2.25z\"\n                />\n            </g>\n        </svg>\n    );\n};\n\nWalletIcon.displayName = 'WalletIcon';\n\nconst storyProps: PropsT = {\n    fillColor: StyleGuideColorsEnum.light,\n    strokeColor: StyleGuideColorsEnum.gray,\n};\n\nexport { storyProps };\nexport default WalletIcon;\n\n/**\n *  @deprecated create/use ...Props class\n * */\nexport const getWalletIconProps = (preset: 'default' | 'selected'): PropsT => {\n    switch (preset) {\n        case 'selected': {\n            return {\n                fillColor: StyleGuideColorsEnum.brandAccent,\n                strokeColor: StyleGuideColorsEnum.brandDark,\n            };\n        }\n        default: {\n            return {\n                fillColor: StyleGuideColorsEnum.light,\n                strokeColor: StyleGuideColorsEnum.slate,\n            };\n        }\n    }\n};\n"],"names":["FieldsEnum","cx","bind","HeaderSideBarContent","React","memo","props","title","onGoBack","dropdownOptions","afterTitleNode","afterDropdownNode","beforeDropdownNode","rightNode","onClose","dropdownOverlayClassName","className","testSelector","variant","fullTestSelector","t","useTranslation","Boolean","position","TooltipPositionEnum","centerRight","theme","TooltipThemeEnum","black","tooltipNode","isCenter","TooltipContentThemeEnum","width","onClick","leftIcon","fillColor","StyleGuideColorsEnum","charcoal","reflectionTheme","ReflectionThemeEnum","light","length","overlayClassName","options","renderTrigger","isActive","isPressed","overlayPosition","DropdownOverlayPositionEnum","bottomRight","centerLeft","inactiveBidStatusesSet","Set","BidStatusEnum","rejected","expired","canceled","acceptedBidStatusesSet","accepted","won","lost","filters","BidsQuickFilterEnum","bid","status","has","match","inactive","getBidsFilter","quickFilter","bids","filter","getBidQuickFilterCounts","counts","allQuickFilters","forEach","DropdownMultipleInputCountLabel","count","postProcess","ADD_ALERT","DELETE_ALERT","HiddenSubmitButtonForKeyboardEnter","type","hidden","PartnerContext","createContext","partnerId","partnerType","initialState","requestStatus","initial","state","action","UPDATE_REQUEST_BEGIN","loading","UPDATE_REQUEST_ERROR","error","setError","UPDATE_REQUEST_SUCCESS","ok","DESTROY_SESSION","brokerTourDetailsRefreshChannel","ViewEventChannel","fetchBrokerTourDetails","fetchBrokerTourDetailsBegin","fetchBrokerTourDetailsSuccess","fetchBrokerTourDetailsError","resetBrokerTourDetails","TOOLTIP_ARROW_FILL","white","SERVICE_HEIGHT","UNIT","TimeWindow","start","timeWindow","getHeight","onBlur","onFocus","style","renderTooltip","tooltipTheme","useState","isShowLabel","setShowLabel","isTooltipOpen","setTooltipOpen","wrapRef","useRef","labelRef","createRef","tooltipArrowRef","hasFloatingTooltip","useFloating","open","onOpenChange","placement","middleware","offset","flip","padding","shift","arrow","element","strategy","transform","whileElementsMounted","autoUpdate","refs","floatingStyles","context","hover","useHover","enabled","delay","close","handleClose","safePolygon","buffer","focus","useFocus","dismiss","useDismiss","useInteractions","getReferenceProps","getFloatingProps","useEffect","setFloatingReference","setReference","setRef","useCallback","node","current","undefined","offsetHeight","isTransparent","onMouseEnter","event","onMouseLeave","top","height","end","ref","label","DATA_TIMELINE_ITEM_SELECTOR","id","icon","FloatingPortal","setFloating","stopPropagation","FloatingArrow","fill","data","getFetchRFQsStatsSaga","companyType","select","selectRFQsStatsRequest","put","fetchRFQsStatsBegin","CompanyTypeEnum","broker","fetchRFQsStats","result","response","fetchRFQsStatsError","fetchRFQsStatsSuccess","takeEvery","FETCH_RFQS_STATS_REQUEST","FETCH_ORDERS_PAGE_REQUEST","SubjectLink","number","selectCompanyState","companyId","rfqs","initialCompanyRFQsState","selectRFQsPages","pages","selectRFQsQuery","query","selectRFQsTotal","total","selectRFQsByIds","byId","TEST_SELECTOR","contact","onDeactivateUser","onCancel","updateMemberRequest","actions","useMemo","children","ButtonThemeEnum","secondary","isDisabled","danger","userId","isLoading","TabEnum","selectRFQDetails","rfqDetails","details","initialRFQDetailsState","selectRFQSuggestedPriceOffer","suggestedOffer","selectRFQDetailsRequestStatus","TabsThemesEnum","TabLabelSizeEnum","CommentFormatter","comment","formatAssetDetails","plateNumber","join","TransportationOrderWasPlacedCard","transportationOrderNumber","truckPlateNumber","truckModel","trailerPlateNumber","trailerType","truckDetails","trailerDetails","rows","key","Trans","i18nKey","components","isBold","isUnderline","text","push","truckLabel","assetDetails","trailerLabel","fetchBrokerOrderStatsSaga","selectBrokerOrderStatsRequest","fetchBrokerOrderStatsBegin","fetchBrokerOrdersStatistics","fetchBrokerOrderStatsError","fetchBrokerOrderStatsSuccess","statistics","fetchBrokerOrderStats","fetchBrokerOrdersPage","BigPlusUsers","xmlns","viewBox","fillRule","d","fillOpacity","stroke","strokeLinecap","strokeLinejoin","strokeWidth","strokeOpacity","displayName","storyProps","ButtonTabCountThemeEnum","notificationThemeMap","normal","NotificationLabelThemeEnum","slate","warning","orange","activeTabType","setActiveTabType","tabs","handleKeyPress","isPressedMetaKey","numberKey","parseInt","selectedTabType","Number","isNaN","useKeyboardShortcut","tab","tabIndex","isActiveTab","isToggled","counter","value","isShowPlusSign","isShowWarning","transparent","PillLabelThemeEnum","colorCodingPillLabelTheme","attention","tomatoRed","notImportant","grey","success","brandAccent","positive","PillLabel","isRounded","isSymmetrical","isNoWrap","fetchTransportOrdersPage","pageNumber","fetchTransportOrdersPageBegin","FETCH_ORDERS_PAGE_REQUEST_BEGIN","fetchTransportOrdersPageSuccess","pageResponse","FETCH_ORDERS_PAGE_REQUEST_SUCCESS","fetchTransportOrdersPageError","FETCH_ORDERS_PAGE_REQUEST_ERROR","resetTransportOrders","mutationListOptions","RESET_ORDERS","fetchDrivers","FETCH_DRIVERS_REQUEST","fetchDriversBegin","FETCH_DRIVERS_REQUEST_BEGIN","fetchDriversSuccess","drivers","FETCH_DRIVERS_REQUEST_SUCCESS","fetchDriversError","FETCH_DRIVERS_REQUEST_ERROR","QuickActions","isPartialLoadingOffers","bestOffers","useSelector","selectBestOffers","loaderIconNode","opacity","size","DEFAULT_ICON_SIZE","actionsConfig","offer","bestPrice","brandDark","strokeColor","isRound","amount","price","currency","CurrencyEnum","EUR","urgent","squash","renderIcon","actionConfig","map","index","isExpired","priceOffer","search","formatQuery","QueryKeysEnum","orderCreationPickUpDate","getDateFromISO","pickupDockingHoursFrom","orderCreationDropOffDate","dropOffDockingHoursFrom","orderCreationPriceOfferId","selectOffer","renderTitle","UploadLoader","message","useDistanceRowsFactory","totalDistance","summaryDistanceKm","gray","name","UnitTypeEnum","kilometersAbbreviation","valueMods","emptyPlaceholder","summaryPayloadDistance","summaryPayloadDistanceKm","summaryDeadheadDistance","summaryDeadheadDistanceKm","VALID_TILL_FORMAT","formValues","isShowExpirationDate","rawExpiration","expiration","validTill","format","add","FAKE_NO_LIMIT_VALID_TILL_YEAR","TypeCell","rule","ruleType","excludedSourcesSet","RFQBrokerSourceEnum","contractLane","setQueryFilters","queryFilters","isShowSourceFilter","isShowExtendedSourceFilter","isShowShipperFilter","initialQueryFilters","setInitialQueryFilters","initialValues","formik","useFormik","enableReinitialize","validateOnBlur","onSubmit","values","formikHelpers","newQueryFilters","mergedQueryFilters","mergeQueryFilters","setTouched","isSameValues","isDeepEqual","sourceOptions","RFQShipperSourceEnum","imported","internal","handleSubmit","shipperIds","errors","meta","getFieldMeta","setFieldValue","setFieldTouched","hasClearControl","onSelect","shipperOptions","valueChanges","shipperNames","shipperId","shipperOption","setValues","prevValues","hasWarning","hasError","bottomLeft","placeholder","pickupAddress","renderLeftIcon","iconMeta","PinIconProps","getControlProps","onChange","dropoffAddress","pickupDates","isRange","DatePickerOverlayPositionEnum","dropoffDates","createDates","createdById","createdByName","dictTrailerId","source","selectedValue","renderOption","option","getOptionValue","extendedSource","hasPaddings","primary","isFullWidth","isCenterContent","invoicesSaga","FETCH_INVOICES_PAGE_REQUEST","fetchInvoicesSaga","rawQuery","selectInvoicesQuery","prevQuery","selectInvoicesPages","isSameQuery","checkIsSameQuery","isNeedRequest","resetInvoices","savingPageNumber","fetchInvoicesPageBegin","fetchBrokerInvoicesPage","page","fetchInvoicesPageError","items","preparedResponse","content","item","String","Math","random","totalPages","totalElements","pagingTokens","hasMore","startingAfter","endingBefore","fetchInvoicesPageSuccess","checkShouldEmitChangePage","invoicesPaginationChannel","PointStackClusterPin","lat","lng","onClusterClick","clusterId","clusterProperties","withoutArrow","pointProps","pointProperties","MapPinThemeEnum","waypoint","isVisited","driverLeftTimeStamp","StopTypeEnum","pickupTruck","getTruckPickUpIconProps","pickupTrailer","getTrailerPickUpIconProps","pickupRoadTrain","getLinkPickUpIconProps","ferryDisembark","ferryOnboard","driveThrough","dropAndHook","pickupDeliveryShipment","withPaddings","dropTrailer","getTrailerDropOffIconProps","dropTruck","getTruckDropOffIconProps","dropRoadTrain","getLinkDropOffIconProps","asyncErrors","asyncFormErrors","setAsyncFormErrors","resetAsyncFormErrors","fieldName","prevAsyncFormErrors","newAsyncFormErrors","shipperContractDetails","activateDate","validFrom","toDate","validTillDate","file","RemoteFile","fileName","downloadData","shipperContractId","REQUIRED_FIELDS","truckRateMode","truckRate","tiltRate","boxRate","tiltExpectedMileage","boxExpectedMileage","truckExpectedMileage","MILEAGE_FIELDS","RATE_FIELDS","checkNotEmpty","checkMinValue","checkMaxValue","ASSET_TYPE_TAB_I18N_MAP","AssetTypeTabsEnum","train","truck","trailer","DeadheadCreationReceipt","contextPreview","contextPreviewRequestStatus","contextRequestStatus","isNotActual","TourTypeTabsEnum","deadhead","selectedTourTypeTab","setSelectedTourTypeTab","selectedAssetTypeTab","setSelectedAssetTypeTab","availableAssetTypeTabs","calculatedSumCost","calculatedTruckCost","calculatedTrailerCost","isNextTourAssetsLink","truckNextTransportationOrderInfo","trailerNextTransportationOrderInfo","nextTour","truckNextTourNewCostDetails","trailerNextTourNewCostDetails","prevAssetTypeTab","includes","utilizationRowsFactory","useUtilizationRowsFactory","tabsConfig","config","moneyDiffProps","deadheadSumCost","totalCost","baseValue","coloredDiffProps","cost","titleTooltip","utilizationDetails","isSameCarrier","truckCarrier","trailerCarrier","trainCarrier","carrierCountryCode","country","carrierName","utilizationAfter","truckCarrierUtilizationAfter","utilizationBefore","truckCarrierUtilizationBefore","trailerCarrierUtilizationAfter","trailerCarrierUtilizationBefore","truckUtilizationBefore","model","truckUtilizationAfter","trailerUtilizationBefore","trailerUtilizationAfter","selectedType","onSelectType","shouldRenderIcons","assetTypeTab","isSelected","costs","isHideFuelPrice","target","LinkThemeEnum","boldBrandDark","to","urlFactory","partnerTransportOrderDetails","PartnerTypeEnum","carrier","transportOrderNumber","prevCosts","truckNextTourOldCostDetails","trailerNextTourOldCostDetails","distances","payloadDistance","payload","deadheadDistance","isInvert","carrierContractsRefreshChannel","StatusCell","rfq","FETCH_RFQ_DETAILS_REQUEST","FETCH_RFQ_DETAILS_REQUEST_BEGIN","FETCH_RFQ_DETAILS_REQUEST_ERROR","FETCH_RFQ_DETAILS_REQUEST_SUCCESS","isRegisteredUser","firstName","lastName","phone","checkMinLength","checkMaxLength","checkPhoneNumber","password","acceptTerms","PartnerPermissionsContext","default","waypoints","waypointFormValues","waypointFormErrors","WaypointsFieldEnum","PartnerLogSideBarContent","SubjectLogs","subjectType","subjectId","logs","GroupedLogsLayout","LogoIcon","cy","rx","ry","DownloadIcon","xlinkHref","TrailerPickUpIcon","preset","requiredDocumentStatusColorMap","AuthProfileTypeEnum","shipper","DocumentStatusEnum","waitingForApprove","approved","revoked","archived","optionalDocumentStatusColorMap","DocumentStatusPill","isRequiredDocument","restProps","profileTypeEnum","selectProfileType","getHash","carrierId","date","ChangedStopFieldLabel","stop","code","oldValue","newValue","stopLabel","sequenceNumber","address","field","selectDriverAssignmentTourId","driverAssignment","tourId","selectAssignmentRequestStatus","assigmentStatus","selectReAssignmentRequestStatus","reAssigmentStatus","AdditionalServiceFormatter","DeleteTeamConfirmation","onConfirm","DEFAULT_MODAL_DIALOG_WIDTH","ExpiredPartnerShipperContractCard","contractName","PARTNER_TYPE_T_MAP","PILL_LABEL_MAP","PartnerTypePill","AsyncSearchScrollableList","minHeightPx","inputValue","onChangeInputValue","inputPlaceholder","emptyMessage","notFoundMessage","optionsQuery","initialOptions","getOptionKey","isShowOverlay","listHeaderNode","isInitialized","setIsInitialized","isSearchActive","trim","shownInitialOptions","initialOptionKeySet","restOptions","hasAnyOptions","minHeight","description","getOptionText","surname","initialValue","initialLabel","hasChanges","initialOption","requestFactory","fetchBrokerAdminUsers","asyncFilterOptionsRequest","useAsyncFilterOptions","settings","optionByUserId","isPlaceholder","handleFocus","onRefresh","onChangeQuery","renderRightIcon","onReset","PRICE_RULE_TYPE_I18N_MAP","PriceRuleTypeEnum","basic","custom","PriceRuleTypeLabel","closeErrorModal","CLOSE_ERROR_MODAL","openErrorModal","OPEN_ERROR_MODAL","resetErrorLogs","RESET_LOGS","fetchDocumentsDictSaga","profileType","selectDocumentsDict","currentDocumentsDict","selectDocumentsDictRequest","fetchDocumentsDictBegin","fetchDocumentsDict","documentDictResult","documentsDict","preparedDocumentsDict","fetchDocumentsDictError","fetchDocumentsDictSuccess","semaphoreSaga","DOCUMENTS_DICT_REQUEST","CREATION_REQUIRED_FIELDS","countryCode","vin","cabinColor","ratePerKm","isCreation","contract","checkIsPositiveNumberOrZeroValue","CompletedPartnerDocumentCard","partnerName","documentType","documentName","CostsCell","basePrice","lowestBidsPrice","diff","DEFAULT_VALUES","taxId","vatNumber","iban","bic","evidenceOfTaxDetails","vat","useFormikContext","asyncErrorsContext","useContext","asyncError","extendsProps","resetAsyncError","TransportOrdersTable","orders","goToTransportOrderDetails","columns","renderHeader","headerClassName","render","order","DirectionEnum","origin","destination","totalCarrierCost","isShow","hasWarnings","tooltipText","handleSelectRow","getRowMods","TableRowModsEnum","hasLeftGreenBorder","hasLeftRedBorder","tableName","isUsedPrevRows","onSelectRow","BrokerUsersLayout","dispatch","useDispatch","fetchPartnerDetails","logWarning","partnerDetails","selectPartnerDetailsById","isLockedProfile","locked","ruleTypeI18nMap","ruleTypeTooltipsI18nMap","ruleTypeThemeMap","lightSlateGray","tumbleweed","pewterBlue","tomatoRed70","PriceRuleImpactPill","typeClassName","ruleClassName","valueType","RuleImpactStrategyEnum","percent","tooltipsI18n","topCenter","impactStrategy","datePicketRangePresets","documentValidTill","maxDate","getISOFutureDate","minDate","getISOPastDate","anyFutureDate","birthday","DatePicker","calendarValueProps","inputDateValueProps","hasYearMonthForm","autoComplete","testSelectorPrefix","inputClassName","defaultPlaceholder","isOpen","toggleOpen","triggerRef","handleCalendarRangeChange","selectedDate","handleCalendarDateChange","focusInitialDate","from","onKeyUp","isForcedFocused","hasValue","isFocused","referenceElement","EditOfferTotalPriceLayout","sourcePrice","onChangePrice","moneyMask","getMoneyMask","costToString","setInputValue","handleCancelEditing","handleRestore","handleConfirmEditing","parsedInputValue","parseSimpleNumber","isChangedPrice","handleKeyUp","KeyEnum","enter","escape","mask","CURRENCY_SYMBOLS","autoFocus","formatHMRDate","renderCommonAlertToast","anyAlert","commonUrlFactory","CommonAnyAlert","checkIsCommonAnyAlert","CommonAlertTypeEnum","userRestored","AlertThemeEnum","fullName","networkError","waypointContactUpdated","alertThemeMapByEmotion","AlertEmotionEnum","shipmentUpdated","paperAttached","paperDeleted","profileUpdated","orderPlaced","orderCancelled","inviteCanceled","email","contactAdded","emailInvited","userRolesChanged","roles","role","USER_ROLE_T_MAP","toLocaleLowerCase","rolesCount","userDeactivated","contactDeleted","mainContactChanged","contactEdited","userEdited","trailerAdded","trailerSuccessfullyActivated","trailerSuccessfullyXLSImport","trailerSuccessfullyArchived","trailersSuccessfullyActivated","trailerSuccessfullyEdited","trailerSuccessfullySetUnavailable","isSameDay","checkIsSameDay","fromDate","trailersSuccessfullyArchived","trailersFailedActivate","successfulCount","allCount","AlertSizeEnum","mediumLarge","footer","plateNumbers","trailerFailedActivate","trailersFailedArchived","trailerFailedArchived","trailerFailedArchivedHasFutureAssignment","trailerSuccessfullyUpdatedContract","trailersSuccessfullyUpdatedContract","trailersFailedUpdateContract","trailerFailedUpdateContract","trailerSuccessfullyUpdatedRate","trailersSuccessfullyUpdatedRate","trailersFailedUpdateRate","trailerFailedUpdateRate","truckAdded","truckSuccessfullyActivated","truckSuccessfullyArchived","trucksSuccessfullyActivated","truckSuccessfullyEdited","truckSuccessfullySetUnavailable","trucksSuccessfullyArchived","trucksFailedActivate","truckFailedActivate","trucksFailedArchived","truckFailedArchived","truckFailedArchivedHasFutureAssignment","truckCantBeOnTimeForNextTour","entityType","nextTransportOrderId","nextTransportOrderNumber","TransportOrderStatusEnum","declined","nextTransportOrderUrl","transportOrderDetails","nextToNumber","nextToLink","boldWhite","trailerCantBeOnTimeForNextTour","truckSuccessfullyUpdatedContract","trucksSuccessfullyUpdatedContract","trucksFailedUpdateContract","truckFailedUpdateContract","truckSuccessfullyUpdatedRate","trucksSuccessfullyUpdatedRate","trucksFailedUpdateRate","truckFailedUpdateRate","truckSuccessfullyXLSImport","paperDownloadFailed","errorMessage","driverAssigned","driversCount","driverUnassigned","rfqSuccessfulClosed","spotAssetsAssigned","spotAssetsUnassigned","documentUploaded","documentUpdated","contractUploaded","documentApproved","documentRejected","documentRevoked","carrierSpotLanesUpdateSuccess","carrierSpotLanesDeleteSuccess","shipperContractUploaded","shipperContractUpdated","shipperContractRevoked","shipperContractLaneRevoked","shipperContractLaneUpdated","shipperContractLaneAdded","orderContextNote","note","NOT_FOUND_APPROVED_FERRY_ON_ROUTE","PRICE_FOR_FERRY_NOT_FOUND","getUnknownAlertToast","PositionsCell","hasUser","main","selectStatisticsFetchQuery","fetchQuery","selectDoneStatisticsStatus","doneRequestStatus","selectDoneStatistics","doneData","selectRejectStatisticsStatus","rejectRequestStatus","selectRejectStatistics","rejectData","console","warn","isAvailableRemoteLogger","remoteLogger","captureMessage","traceId","trace","info","contextMessage","errorInfo","captureException","clientConfig","isProduction","subscribers","subscribe","handler","unsubscribe","subscriber","emit","PartnerDocumentsPage","openLeftSidebar","useOpenLeftSidebar","partnerPermissions","permissions","selectPermissions","fetchDocuments","documentVisibilityChangeHandler","isForceUpdate","refreshPageHandler","useChannelSubscribe","stateMachineRefreshChannel","partnerDetailsRefreshChannel","fetchDocumentsDictRequest","selectFetchCompanyDocumentsRequest","useDocumentsRows","requiredDocumentRows","optionalDocumentRows","requiredDocumentStatusesAttentionSet","statuses","canReviewDocuments","optionalDocumentStatusesAttentionSet","carrierContactStatusesAttentionSet","canReviewCarrierContracts","CarrierContractStatusEnum","shipperContactStatusesAttentionSet","badgeRequiredDocumentsCount","row","actualVersion","badgeOptionalDocumentsCount","carrierContracts","selectCarrierContracts","badgeCarrierContractsCount","badgeShipperContractsCount","requiredPartnerDocumentsPath","requiredPartnerDocuments","optionalPartnerDocumentsPath","optionalPartnerDocuments","partnerCarrierContractsPath","partnerCarrierContacts","partnerShipperContractsPath","partnerShipperContacts","pathname","badge","isAllDocumentsVerified","documentsVerified","navigationTabs","onSelectTab","Switch","Route","path","isShowReviewUser","documentStatusesAttentionSet","contactStatusesAttentionSet","onUploadShipperContract","BrokerSidebarsTypeEnum","uploadShipperContract","onOpenShipperContractDetails","url","partnerShipperContactLanes","contractId","Redirect","PILL_THEME_BY_STATUS","BrokerOrderStatusEnum","newOrder","carrierUnassigned","carrierAssigned","inTransit","delivered","unknown","BrokerOrderStatusPill","isArchived","BROKER_ORDER_STATUS_T_MAP","FerryDisembarkPointPicker","routePointIndex","locationFieldName","route","RoutePointFieldsEnum","location","timeWindowFieldName","getFieldFormValue","subLabel","formatTimeInterval","CloseRFQConfirmation","CurrentAssetPositionPin","isTrailer","isTruck","isLink","contentClassName","getTruckIconProps","getTrailerIconProps","getAssetLinkIconProps","getQueryModifyEventAfterReserve","prevPreviewQuery","reserve","queryModifyEvent","isNotAvailableLane","contractLanes","every","laneId","correctedLaneId","selectSpotUpdateRequestStatus","spot","EMPTY_CONTACTS","Members","isDisableInviteUsersForLockedProfile","deleteContactConfirmation","handleConfirmDeleteContact","contactId","deleteContact","cancelInviteConfirmationDialog","restoreUserConfirmationDialog","changeUserRoleModalDialog","changeUserRoleConfirmationDialog","handleShowChangeUserRoleModalDialog","setData","handleChangeUserRole","changes","handleConfirmChangeUserRole","changeUserRole","deactivateUserModalDialog","handleShowDeactivateUserModalDialog","handleDeactivateUser","deleteUser","active","selectedTab","setSelectedTab","searchText","setSearchText","fetchCountriesDict","contacts","selectCompanyContacts","fetchContactsRequestStatus","selectFetchContactsRequest","fetchContacts","membersRefreshChannel","handleRefreshOnError","openedContactSidebar","useOpenedSidebar","CommonSidebarsTypeEnum","selectedContactId","handleConfirmRestoreUser","restoreUser","inviteUserModalDialog","addMemberRequestStatus","selectAddMemberRequest","deleteMemberRequestStatus","selectDeleteMemberRequest","handleConfirmCancelInviteUser","cancelInvite","updateMemberRequestStatus","selectUpdateMemberRequest","groupedContacts","userStatus","UserStatusEnum","archive","activeTabContacts","filteredActiveTabContacts","prepareText","preparedSearchText","allowShowBlockInviteAlert","setAllowShowBlockInviteAlert","isShowInviteUserTrigger","canInviteTeamMembers","withTopPadding","leftToolsNode","onChangeSearchText","rightToolsNode","small","checkNeedRenderEmptyState","onRetry","checkFilters","hasPrimaryQueryFilters","hasSecondaryQueryFilters","iconType","TableMessageIconsEnum","notFound","isShowAction","empty","renderTableMessage","onDeleteUser","onDeleteContact","onChangeUserRole","onRestoreUser","onCancelInvite","onInviteUser","onResendInviteUser","inviteUser","canEditTeamMembers","canInviteUsers","newUser","allSpotSystemSettings","fetchSystemSettingsSaga","selectSystemSettingsFetchRequest","request","fetchSystemSettingsBegin","fetchSystemSettings","fetchSystemSettingsError","spotError","spotData","fetchSystemSettingsSuccess","updateSystemSettingsSaga","selectSystemSettingsUpdateRequest","updateSystemSettingsBegin","settingsChanges","apiSettingsChanges","updateSystemSettings","updateSystemSettingsError","apiSpotSettingsChanges","updateSystemSettingsSuccess","fetchSettings","FETCH_SYSTEM_SETTINGS_REQUEST","UPDATE_SYSTEM_SETTINGS_REQUEST","SideBarParanja","contentRootNode","createPortal","shipmentAttachedPaperTypeOrder","OffersForm","creditLimit","useSelectedShipperCreditLimit","sideBarFooterAlertsContext","params","useParams","ensureCreatedRFQ","rfqId","fetchAdditionalServices","fetchTrailersDict","additionalServicesTopRef","setAdditionalServicesTopRef","createRFQRequestStatus","selectCreateRFQRequest","selectRFQ","priceOffersByHash","selectPriceOffersByHash","dictTrailerInfo","selectTrailersDictById","trailerTypeId","pickUpDate","dropOffDate","rawCustomLineHaul","orderCreationCustomLineHauls","customLineHaulMap","parseQueryCustomLineHaulMap","priceOffers","sortedPriceOffers","emissionClassOrder","EmissionClassEnum","euro6","euro5","fuelOptionOrder","FuelOptionTypeEnum","hvo","diesel","mixed","sort","priceOfferA","priceOfferB","emissionClassARate","emissionClass","emissionClassBRate","fuelOptionTypeARate","fuelOptionType","fuelOptionTypeBRate","priceOffersById","selectPriceOffersById","selectedOfferId","selectedOffer","scrollToSelectedOffer","time","handleSelectPriceOffer","handleChangeCustomLineHaul","priceOfferId","customLineHaul","formatQueryCustomLineHaulMap","firstPriceOffer","acceptPriceOffer","selectedAdditionalServiceEnums","orderCreationAdditionalServices","additionalServiceMap","selectAdditionalServicesMap","summaryAdditionalServicesPrice","sumAdditionalServicesPrice","setSelectedServices","selectedServicesEnums","points","selectIsPartialLoadingOffers","point","offerTotalPrice","getOfferTotalPrice","sourceLineHaul","getPriceOfferLineHaul","compareLineHaul","hasChangedLineHaul","lineHaulDiff","totalAmount","safetyModifyOfferTotalPrice","isCreditLimitExceeded","checkIsCreditLimitExceeded","isAcceptOfferDisabled","showFooterAlert","showAlert","acceptOfferTooltipNode","scrollToAdditionalServicesTop","align","WAIT_RFQ_ID","OMSRoutesEnum","onClickAmount","priceOfferIndex","isSelectable","scrollToAdditionalServices","onChangeCustomLineHaul","topNode","selectedServiceTypes","BaseShipperContractLaneDetailsLayout","isReadOnly","onOpenUserDetails","selectShipperContractLaneDetailsState","originRadiusKm","setOriginRadiusKm","originRadius","originAddress","originPoint","latitude","longitude","radiusKm","destinationRadiusKm","setDestinationRadiusKm","destinationRadius","destinationAddress","destinationPoint","leftColumnTitle","leftColumnNode","shipperContractLaneId","onChangeOriginRadiusKm","onChangeDestinationRadiusKm","rightColumnTitle","rightColumnNode","FETCH_DOCUMENTS_REQUEST","FETCH_DOCUMENTS_REQUEST_BEGIN","FETCH_DOCUMENTS_REQUEST_ERROR","FETCH_DOCUMENTS_REQUEST_SUCCESS","UPLOAD_DOCUMENT_REQUEST","UPLOAD_DOCUMENT_REQUEST_BEGIN","UPLOAD_DOCUMENT_REQUEST_ERROR","UPLOAD_DOCUMENT_REQUEST_SUCCESS","APPROVE_DOCUMENT_REQUEST","APPROVE_EVIDENCE_OF_TAX_DOCUMENT_REQUEST","REJECT_DOCUMENT_REQUEST","REVOKE_DOCUMENT_REQUEST","UPDATE_DOCUMENT_REQUEST","UPDATE_DOCUMENT_REQUEST_BEGIN","UPDATE_DOCUMENT_REQUEST_ERROR","UPDATE_DOCUMENT_REQUEST_SUCCESS","DOWNLOAD_DOCUMENT_REQUEST","DOWNLOAD_DOCUMENT_REQUEST_BEGIN","DOWNLOAD_DOCUMENT_REQUEST_ERROR","DOWNLOAD_DOCUMENT_REQUEST_SUCCESS","FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST","FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_BEGIN","FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_ERROR","FETCH_EVIDENCE_OF_TAX_DETAILS_REQUEST_SUCCESS","UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST","UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_BEGIN","UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_ERROR","UPDATE_EVIDENCE_OF_TAX_DETAILS_REQUEST_SUCCESS","RESET","ExternallyManagedPill","lastSyncedAt","formatDateWithTimeZone","trigger","rightIcon","HumanReadableDateCell","isBigFont","isAllowNever","formatHumanReadableDate","initialRequestStatus","findPartnersByName","then","legalAddress","asyncOptionsRequest","useAsyncOptionsRequest","find","optionValue","withoutPaddings","PlusIcon","rest","useGoogleMapConfig","googleMaps","useGoogleMapContext","setConfig","handleChange","zoom","getZoom","bound","getBounds","northEast","getNorthEast","southWest","getSouthWest","bounds","onDragEnd","onZoomAnimationEnd","AssetsSelectionContext","getLabel","user","KeyAccountManagerDropdown","excludeUserIds","fetchManagers","fetchRequest","selectFetchManagersRequest","allIds","selectManagersAllIds","selectManagersById","setQuery","filteredOptions","preparedQuery","prepareSearchQuery","excludeUserIdsSet","ControlLoaderIconProps","getFetchDataProps","NotificationEntityLabel","LinkedTruckAlert","truckId","onOpenTruckDetails","actionText","onClickAction","Card","iconNode","titleNode","titleClassName","titleTooltipNode","initIsOpen","hasHeaderBottomBorder","footerNode","keyboardShortcut","anchor","isHighlighted","setIsOpen","AlertToastsManager","renderAlertToast","newAlertIds","selectNewAlertsIds","alertsById","selectAlertsById","preventDefault","alertId","alertIndex","alert","alertToastView","ttlMs","customTTLMs","deleteAlert","version","uploadEventDetails","createdDate","rightNodeMods","hasBottomBorder","byBroker","createdByBroker","reviewEventDetails","reviewedDate","reviewedByName","reviewedById","revokeEventDetails","revokedDate","revokedByName","revokedById","editEventDetails","lastEditDate","lastEditByName","lastEditById","lastEditByBroker","ActiveFleetCount","trailersStats","selectTrailersStats","actualTotalCount","consistentStateMachineRefreshChannel","ApproveDocumentsConfirmation","baseColor","document","DestinationIcon","r","blazeOrange","TAB_LABEL_T","handleSelectOption","withSelectedCheck","triggerNode","COUNTRIES_DICT_REQUEST","fetchCountriesDictBegin","COUNTRIES_DICT_REQUEST_BEGIN","fetchCountriesDictSuccess","countriesList","COUNTRIES_DICT_REQUEST_SUCCESS","fetchCountriesDictError","COUNTRIES_DICT_REQUEST_ERROR","Loader","selectSettingsStatus","selectMinWindowSizeMs","MIN_WINDOW_SIZE","MS_IN_HOUR","parsedValue","MS_IN_SEC","selectMaxWindowSizeMs","MAX_WINDOW_SIZE","selectOrderCreationMs","ORDER_CREATION_SECONDS","selectIsExternalBusinessPartnerManagement","BUSINESS_PARTNER_MANAGEMENT","DEFAULT_TIME_WINDOW_QUANTUM","MS_IN_MIN","selectTimeWindowQuantumMs","QUANTUM_MINUTES","SaveFooterContent","remoteFormActionsContext","remoteFormCallbacks","submit","remoteFormRequest","collectDebugInfo","window","debugInfo","RuleGroupEnum","categoryI18nMap","PriceComponentTypeEnum","lineHaul","fuel","roadTaxes","roadTaxesGeneral","roadTaxesCity","roadTaxesBridge","roadTaxesTunnel","roadTaxesFerry","roadTaxesMountainPass","serviceFee","categoryLevel","categoryOrder","ruleGroupOrder","ignored","new","other","ruleGroupI18nMap","newRuleGroupI18nMap","currentRuleId","preview","onDeactivateRule","groupedRules","reduce","acc","finalValue","finalOperator","operator","groups","rules","group","newRule","category","summaryTheme","hasNew","paddingLeft","groupName","groupRules","ruleGroupI18nKey","ruleId","ruleTheme","black30","isAllowClick","ruleValue","ruleOperator","ruleName","ExternalNumberCell","UnlockPartnerConfirmation","useWatchAnyFieldValueChanges","createUseWatchAnyFieldValueChanges","Object","setNeedCloseConfirmation","validate","uploadRequestStatus","selectUpdateShipperContractRequest","initialErrors","simpleStringFormatter","hasAnyFieldValueChanges","minValidTillDate","MIN_VALID_FROM_VALID_TILL_DAYS","maxActivateDate","subtract","tooltipPosition","withoutLabel","accept","isEmpty","selectBrokerTourEditUpdateRequestStatus","brokerTourId","brokerTourEdit","updateById","spotBrokerTranziitApi","authApi","basepath","timeout","fetchSpotRequests","Promise","this","doFetch","method","expectedResponseContentType","fetchSpotRequestsStats","fetchSpotRequestDetails","cancelSpotRequestByTour","cancelSpotRequest","spotId","assignBidToSpotRequest","spotRequestId","body","entries","getInstance","SpotBrokerTranziitApi","instance","suggestLastTimeWindowOfDay","availableReserveTimeWindow","baseDate","targetTimeZone","parseZone","utcOffset","startOf","startLimit","endOf","endLimit","getReserveTimeWindowWidthMs","reserveTimeWindow","valueOf","addToTimeMs","isoTime","ms","convertReserveTimeWindowToRelativeTimeWindow","createReserveTimeWindow","minWindowSizeMs","checkIsISODateMidnight","isoDate","setDateForReserveTimeWindow","dateStringPart","slice","setTimeWindowForReserveTimeWindow","startDay","clone","checkIsSameTimezone","isoDateA","isoDateB","getRoutePointFieldName","pointIndex","routePointField","street1","street2","zipCode","city","selectShipperLaneOrigin","shipperContractLaneCreation","selectShipperLaneDestination","selectPolylines","polylines","selectFetchRouteRequest","fetchRouteRequest","selectCalculateCostRequest","calculateCostRequest","selectAveragePriceOffer","averagePriceOffer","selectCreationRequest","creationRequest","selectMapSettings","mapSettings","iconTypeMap","AssetTypeEnum","LastAssetWithNumberTrackPointPin","timestamp","IconComponent","shouldShowNumber","mapLayers","regular","hovered","formatTime","useSelectedLane","selectedLaneId","selectReserve","lane","QueryFiltersKeysEnum","BrokerToursQuickFilterEnum","BrokerToursSortEnum","SpotRequestDetailsPage","goBackIfHasRePath","SpotRoutesEnum","list","shouldCloseSidebars","toggleMap","spotRequestsListWithDetails","isActiveMapTrigger","EMPTY_COUNTRY_CODES","selectRatesTotal","ratesPages","selectRatesPages","rateById","selectRatesByIds","updateRatesRequest","selectUpdateRatesRequest","selectedRatesSet","setSelectedRatesSet","fromCountryCodes","ratesFromCountryCodesSearch","toCountryCodes","ratesToCountryCodesSearch","handleChangeFilters","handleOmitFilters","omitFromCountryCodes","omitToCountryCodes","ratesPage","ids","fetchRatesPage","countriesFrom","countriesTo","ratesRefreshChannel","goToPage","setPageHandler","ratesPaginationChannel","rates","hasQuery","isShowCSVImportModal","setShowCSVImportModal","initialFromCountryCodes","initialToCountryCodes","pickFile","uploadCSVFile","changeCost","rate","updateRates","filterTagsNode","withCloser","isCompact","FilterPillThemeEnum","countryCodes","onSelectRates","onUpdateRate","UpdateRateStrategyEnum","exactValue","pageCount","DownArrowIcon","xmlnsXlink","useReserveChannelLock","isLocked","setIsLocked","reserveLockChannelHandler","reserveLockChannel","ShipmentWasCanceledCard","shipmentNumber","initialShipperSuggestState","FIND_SHIPPERS_REQUEST_BEGIN","FIND_SHIPPERS_REQUEST_ERROR","FIND_SHIPPERS_REQUEST_SUCCESS","partners","partner","isNonNil","TrailerDetailsPage","onCloseMap","onOpenTransportOrderDetails","assetServiceLocationContextValue","useAssetServiceLocationContextValue","trailerId","cancelServiceMaintanceConfirmation","cancelRequestStatus","selectCancelUnavailableVehicleRequestStatus","selectTrailersDetailsByIds","stateSafeHistory","useStateSafeHistory","handleOrderClick","orderId","replace","trailerOrderId","scheduleAroundDate","getVehicleScheduleAroundDateISO","fetchScheduleRequestStatus","selectFetchScheduleRequest","schedule","selectVehicleSchedule","fetchVehicleSchedule","vehicleId","aroundDate","refreshVehicleSchedulesHandler","vehicleSchedulesRefreshChannel","currentPosition","syncSetUnavailableFormMapStateContextValue","useSyncMapState","SyncSetUnavailableFormMapStateContext","Provider","sideBarTitle","sideBarNode","isShowMap","onToggleShowMap","onOpenTrailerDetails","onOpenContactDetails","carrierContract","initIsEditing","isBrokerUser","mapTitle","mapNode","telematicUpdatedDate","historyTitle","historyNode","timelineTitle","timelineNode","onEventClick","selectedOrderId","onCancelServiceMaintance","assets","assetType","cancelUnavailableVehicleRequest","PlusSignIcon","updateShipment","updateStopContact","updateDockingHours","updateBrokerOrderBegin","updateBrokerOrderSuccess","updateBrokerOrderError","resetBrokerOrderEdit","useSyncFormValues","syncFormValues","setFieldValueCallbackRef","setFieldValueCallback","syncSetFieldValueCallback","callback","UNREAD_GROUPED_NOTIFICATION_COUNTS_TTL","AVAILABLE_RATE_MODES","TruckRateModeEnum","brutto","netto","truckRateModeI18nMap","TruckRateModeDropdown","truckRateOptions","rateMode","TransportationOrderNumber","OrderNumber","CarrierName","TransportationOrderDeclinedCard","orderNumber","cityFrom","cityTo","toNumber","cityName","NotUsedRoutePointValidationAlertContent","validationResult","ArrowDownIcon","ScrollableContent","stickyHeaderNode","scrollContainerRef","onContainerScroll","onScroll","FETCH_VEHICLE_SCHEDULE_REQUEST","fetchVehicleScheduleBegin","hash","FETCH_VEHICLE_SCHEDULE_REQUEST_BEGIN","fetchVehicleScheduleSuccess","FETCH_VEHICLE_SCHEDULE_REQUEST_SUCCESS","fetchVehicleScheduleError","FETCH_VEHICLE_SCHEDULE_REQUEST_ERROR","setUnavailableVehicleRequest","SET_UNAVAILABLE_VEHICLE_REQUEST","setUnavailableVehicleRequestBegin","SET_UNAVAILABLE_VEHICLE_REQUEST_BEGIN","setUnavailableVehicleRequestError","SET_UNAVAILABLE_VEHICLE_REQUEST_ERROR","setUnavailableVehicleRequestSuccess","SET_UNAVAILABLE_VEHICLE_REQUEST_SUCCESS","CANCEL_UNAVAILABLE_VEHICLE_REQUEST","cancelUnavailableVehicleRequestBegin","CANCEL_UNAVAILABLE_VEHICLE_REQUEST_BEGIN","cancelUnavailableVehicleRequestError","CANCEL_UNAVAILABLE_VEHICLE_REQUEST_ERROR","cancelUnavailableVehicleRequestSuccess","CANCEL_UNAVAILABLE_VEHICLE_REQUEST_SUCCESS","SIGN_IN_REQUEST","SIGN_IN_REQUEST_BEGIN","SIGN_IN_REQUEST_SUCCESS","SIGN_IN_REQUEST_ERROR","RESET_PASSWORD_REQUEST","RESET_PASSWORD_REQUEST_BEGIN","RESET_PASSWORD_REQUEST_SUCCESS","RESET_PASSWORD_REQUEST_ERROR","UPDATE_PASSWORD_REQUEST","UPDATE_PASSWORD_REQUEST_BEGIN","UPDATE_PASSWORD_REQUEST_SUCCESS","UPDATE_PASSWORD_REQUEST_ERROR","CONTINUE_SIGN_UP_REQUEST","SIGN_UP_REQUEST","SIGN_UP_REQUEST_BEGIN","SIGN_UP_REQUEST_SUCCESS","SIGN_UP_REQUEST_ERROR","SIGN_OUT_REQUEST","SIGN_OUT_REQUEST_BEGIN","SIGN_OUT_REQUEST_SUCCESS","SIGN_OUT_REQUEST_ERROR","EMAIL_VERIFICATION_REQUEST","EMAIL_VERIFICATION_REQUEST_BEGIN","EMAIL_VERIFICATION_REQUEST_SUCCESS","EMAIL_VERIFICATION_REQUEST_ERROR","SET_USER","RESET_USER","SEND_TO_SPOT_BY_TOUR","CANCEL_SPOT_REQUEST_BY_TOUR","CANCEL_SPOT_REQUEST","canCloseStatusSet","RFQStatusEnum","expireSoon","canCompleteStatusSet","RFQDetailsPageLayout","goToBack","goToUserDetails","onOpenOrderDetails","shouldShowAppliedRules","changesRequest","selectRFQsChangesRequest","rfqSuggestedPriceOffer","polylineIds","polylineId","useRouteGeometry","fetchRFQDetails","rfqsRefreshChannel","closeConfirmationModalDialog","routingGeometryState","selectRoutingGeometryState","canComplete","mapPoints","hasCachedData","isForceShowLoader","SkeletonComponent","suggestedPriceOffer","routeRequest","closeRFQ","ShipperContractDetailsLayout","isAllowEditing","optimisticPapers","entityPapers","paper","attachedPaperIdSet","optimisticPaper","afterAttachId","RouteSidebarSkeleton","fetchTimeZonesSaga","selectTimeZonesRequest","fetchTimeZonesBegin","getTimeZones","fetchTimeZonesError","fetchTimeZonesSuccess","timeZones","fetchTimeZones","fetchUser","FETCH_USER_REQUEST","fetchUserBegin","FETCH_USER_REQUEST_BEGIN","fetchUserSuccess","FETCH_USER_REQUEST_SUCCESS","currentUser","fetchUserError","FETCH_USER_REQUEST_ERROR","patchUser","authUser","PATCH_USER_REQUEST","patchUserBegin","PATCH_USER_REQUEST_BEGIN","patchUserSuccess","currentUserUpdate","PATCH_USER_REQUEST_SUCCESS","patchUserError","PATCH_USER_REQUEST_ERROR","SyncShipmentDetailsFormMapStateContext","isMapInitialized","setIsMapInitialized","editingRoutePointIndex","setEditingRoutePointIndex","syncMapSettings","setSyncMapSettings","editingRoutePointErrorsIndexes","setHasEditingRoutePointErrorIndexes","hasEditingRoutePointError","initialBoundingBox","setInitialBoundingBox","BidsCountCell","numberOfNewBids","numberOfReadBids","numberOfSentBids","renderBid","childrenClassName","TimeZoneDropdown","selectTimeZones","timeZone","cities","initialCompanyTransportOrdersState","companyState","pageBeginReducer","pageSuccessReducer","newPages","splice","companyTransportOrdersState","resetPagesCacheReducer","LEFT_PADDING","RIGHT_PADDING","EVENT_WIDTH","EVENT_PADDING","EVENTS_LEVEL_WIDTH","ShipperContractLaneStatusDropdownControl","ShipperContractLaneStatusEnum","completed","borderColor","statusColorMap","SHIPPER_CONTRACT_LANE_STATUS_T_MAP","SearchIcon","SearchIconProps","hasSuccess","fields","initValues","checkValuesChanges","MIN_HEIGHT_PX","Flag","flag","durationPx","heightPx","max","signIn","returnUrl","signInBegin","signInSuccess","userClaims","signInError","resetPassword","resetPasswordBegin","resetPasswordSuccess","resetPasswordError","updatePassword","oobCode","updatePasswordBegin","updatePasswordSuccess","updatePasswordError","continueSignUp","phoneNumber","signUp","signUpBegin","signUpSuccess","signUpError","setUser","resetUser","signOut","signOutBegin","signOutSuccess","signOutError","emailVerification","emailVerificationBegin","emailVerificationSuccess","emailVerificationError","destroySession","formName","saveValues","persistStorageDateKey","localStorage","setItem","JSON","stringify","logError","getValues","rawValues","getItem","parse","reset","removeItem","totalPrice","checkIsPositiveNumberValue","BaseShipperContractLanesLayout","onOpenShipperContractLaneDetails","onCreateShipperContractLane","isShowFilters","triggerFilters","contractDetails","selectShipperContractDetailsState","lostDayDiff","now","Date","getSignedDayDiff","isShowContractExpirationAlert","isAllowShowAddLaneTrigger","isAllowAddLane","canUploadShipperContracts","selectShipperContractLanesTotal","selectShipperContractLanesPages","selectShipperContractLanesByIds","useQueryParams","shipperContractLanesPage","createPageNumberParam","shipperContractLanesSort","createSortParams","ShipperContractLanesSortEnum","addedDate","direction","SortDirectionEnum","DESC","shipperContractLanesFilters","createJsonParams","changeQuery","selectedSort","prepareFetchPageQuery","fetchShipperContractLanesPage","shipperContractLanesRefreshChannel","shipperContractLanesPaginationChannel","shipperContractLanesTableRows","sortOptions","handleSetQueryFilters","selectedQueryFilters","updateQueryFilters","queryFiltersChanges","prevQueryFilters","SortDropdownOverlayPositionEnum","left","checkQueryFiltersKeys","actionTitle","actionTheme","onActionClick","renderEmptyState","FIND_SHIPPERS_REQUEST_BY_QUERY","FIND_SHIPPERS_REQUEST_BY_ID","LinkedTrailerAlert","commonGetSidebarCloseConfirmation","editContact","cancelAction","confirmAction","renderCommonSidebarContent","driverFilters","driverDetails","editDriverDetails","addDriver","trailerFilters","addTrailer","truckFilters","addTruck","PartnerTransportOrderDetails","partnerTransportOrders","goToTrailerDetails","isForceShowBackAction","goToTruckDetails","goToSpotRequestDetails","spotRequestDetails","handleOpenUserDetails","LockIcon","PILL_THEME_BY_TRAILER_STATUS","TrailerStatusEnum","free","unavailable","TrailerStatusPill","contextSyncPointsModifyChannel","useSyncPointsChannels","formikArrayHelpers","syncPointsModifyChannelHandler","correctedStops","addedStopAliases","deletedStopAliases","routeFormValues","orderStopAliases","clonedRouteFormValues","newAliasesSet","alias","fakePointId","remove","formIndexPointer","stopAlias","findIndex","insert","getInitialRouteFormValues","hasLocalOnlyStops","some","targetIndex","targetAlias","currentIndex","move","movedValue","getOptionsHash","uniqValues","optionKey","initOptionsHash","optionsHash","ROUTING_GEOMETRY_TTL","ExcludeCountries","excludedCountries","onChangeExcludedCountries","setExcludedCountries","triggerLabel","objectA","objectB","InvoiceIcon","getInvoiceIconProps","fetchCompanyContacts","userName","optionByContactId","unavailableReason","mainContactUnavailableReason","reason","isOptionDisabled","isZeroNumber","preparedValue","Array","isArray","isLessMinLength","minLength","isMoreMaxLength","maxLength","stats","brokerOrderStatsSlice","createSlice","reducers","extraReducers","builder","addCase","reducer","initialTeamEditState","updateRequest","deleteRequest","createRequest","createdTeam","brokerTeamEditSlice","createTeam","createTeamBegin","createTeamSuccess","createTeamError","updateTeam","updateTeamBegin","teamId","teamEditState","updateTeamSuccess","updateTeamError","deleteTeam","deleteTeamBegin","deleteTeamSuccess","deleteTeamError","resetBrokerTeamEdit","SkeletonFormatter","quickFilterOptionSeparators","RFQListPageLayout","onOpenRFQDetails","onOpenRFQStatistics","isAllowedShowRFQStatistics","isRFQStatisticsOpen","rfqsPages","rfqById","currentCompany","selectCurrentCompany","isDisabledCreateOrder","hideFilters","rfqsPage","rfqsSort","RFQsSortEnum","creationDate","rfqsFilters","fetchRFQsPage","fetchGroupedNotificationCounts","rfqsPaginationChannel","deadline","selectRFQsStats","quickFilterOptions","showPriority","hidePriority","RFQsQuickFilterEnum","notificationProps","countByState","preExpire","closed","goToCreateOrderForm","revertSeparatorIndexes","selectedId","quickFilterId","moreStatusesLabel","SidebarDataDismissEnum","checkHasOperationUnavailableReasons","operationUnavailableReasons","goToRFQDetails","setReversePreviewDefaultQuery","queryChanges","newQueryChanges","timeWindows","reservePreviewIndex","addressAlias","defaultTimeWindow","timeWindowFrom","timeWindowTo","getPreviewReverseQueryChanges","prevReservePreviewQuery","isAvailableLane","isResetChange","prepareRoutePointChanges","prevRoutePointChanges","isBrokerTimeWindow","fullRouteChange","routePointChanges","routePointChange","prevQueryChangesTimeWindows","addRoutePoint","deleteRoutePoint","reserveId","mergePreviewReverseQuery","correctionPreviewReverseQueryAfterReserve","reservePreviewQuery","correctedReservePreviewQuery","getApiPreviewReverseQuery","pointsById","brokerWindow","OrderCreationReservePointTypeEnum","shipment","RedirectPendingUser","selectIsPendingUser","authRoutesEnum","getAuthReturnUrl","fetchPartnerDetailsSaga","fetchPartnerDetailsBegin","fetchPartnerDetailsError","fetchPartnerDetailsSuccess","normalizePartnerDetails","updatePartnerDetailsSaga","partnerDetailsChanges","externalBusinessPartnerId","mainContactChanges","teams","partnerDetailsById","updatePartnerDetailsBegin","isShowBusinessPartnerUpdatedAlert","currentParentDetails","updatePartnerDetails","error1","updatePartnerDetailsError","hasExternalBusinessPartnerChanges","linkWithExternalPlatformPartner","businessPartnerId","internalCompanyId","externalBusinessPartnerError","hasMainContactChanges","mainContactId","mainContactInfo","setMainContactForPartner","error2","addAlert","currentTeamIds","team","arr2","arr1","assignTeamsForPartner","error3","updatePartnerDetailsSuccess","billingId","BrokerAnyAlert","BrokerAlertTypeEnum","businessPartnerUpdated","partnersRefreshChannel","companyRefreshChannel","verifyPartnerDetailsSaga","isVerify","addressType","verifyPartnerDetailsBegin","verifyPartnerAddress","unVerifyPartnerAddress","verifyPartnerDetailsError","verifyPartnerDetailsSuccess","businessPartnerAddressVerified","businessPartnerAddressUnverified","lockPartnerDetailsSaga","isLock","lockPartnerBegin","lockPartner","unlockPartner","lockPartnerError","lockPartnerSuccess","businessPartnerLocked","businessPartnerUnlocked","linkWithExternalPlatformPartnerSaga","linkExternalPlatformPartnerBegin","linkExternalPlatformPartnerError","linkExternalPlatformPartnerSuccess","businessPartnerLinkedToExternalProfile","unlinkWithExternalPlatformPartnerSaga","unlinkWithExternalPlatformPartner","businessPartnerUnlinkedFromExternalProfile","FETCH_PARTNER_DETAILS_REQUEST","UPDATE_PARTNER_DETAILS_REQUEST","VERIFY_PARTNER_DETAILS_REQUEST","LOCK_PARTNER_REQUEST","LINK_WITH_EXTERNAL_PLATFORM_PARTNER_REQUEST","UNLINK_WITH_EXTERNAL_PLATFORM_PARTNER_REQUEST","ExpandIcon","getValuesDiff","valueA","valueB","getDiffPercent","base","abs","round","onOpenNextSidebar","addTrailerRequestStatus","selectAddTrailerRequestStatus","INITIAL_VALUES","dateRange","dropoffLocation","onSetUnavailable","assetId","countriesSettingsByCode","selectCountrySettingsByCountryCode","fetchCountrySettingsDict","setLocation","disabledDates","dates","eventDates","getDatesBetweenDates","truckDateFrom","truckDateTo","trailerDateFrom","trailerDateTo","prepareQuery","setHasDropAssetPointError","currentLocation","minTodayDate","getDateFromDate","isShowHasUnavailableDatesAlerts","setIsShowHasUnavailableDatesAlerts","hasUnavailableDates","disabledDate","isBetween","showClearControl","activeFillColor","responseData","parsed","TeamsCell","formatMoney","minimumSignificantDigits","CURRENCY_SETTINGS","toFixed","moneyOperations","notStrictPlus","a","b","plus","plusWithFormat","multiply","FilterPill","ActionStatus","actionStatus","Action","actionType","isUppercase","StatusChangedCard","subjectNumber","originCity","destinationCity","isCapitalized","subjectLink","SelectedFilters","filterPillsConfig","clearKeys","isMultiple","userFullName","userFullNames","pillIconRendererMap","avatar","userIds","partnerNames","partnerIds","UnassignAssetsConfirmation","TrailerIconTypesEnum","ICONS_MAP","DictTrailerDropdown","isShortLabel","selectedTrailerType","trailersDict","selectTrailersDict","selectTrailersDictRequest","rawTrailerOptions","trailerOptions","eur1Pallets","eur2Pallets","renderTriggerContent","TrailerIconProps","UPLOAD_CARRIER_CONTRACT_REQUEST","UPLOAD_CARRIER_CONTRACT_REQUEST_BEGIN","UPLOAD_CARRIER_CONTRACT_REQUEST_ERROR","UPLOAD_CARRIER_CONTRACT_REQUEST_SUCCESS","DOWNLOAD_CARRIER_CONTRACT_REQUEST","DOWNLOAD_CARRIER_CONTRACT_REQUEST_BEGIN","DOWNLOAD_CARRIER_CONTRACT_REQUEST_ERROR","DOWNLOAD_CARRIER_CONTRACT_REQUEST_SUCCESS","FETCH_CARRIER_CONTRACTS_REQUEST","FETCH_CARRIER_CONTRACTS_REQUEST_BEGIN","FETCH_CARRIER_CONTRACTS_REQUEST_ERROR","FETCH_CARRIER_CONTRACTS_REQUEST_SUCCESS","APPROVE_CARRIER_CONTRACT_REQUEST","REJECT_CARRIER_CONTRACT_REQUEST","REVOKE_CARRIER_CONTRACT_REQUEST","UPDATE_CARRIER_CONTRACT_REQUEST","UPDATE_CARRIER_CONTRACT_REQUEST_BEGIN","UPDATE_CARRIER_CONTRACT_REQUEST_ERROR","UPDATE_CARRIER_CONTRACT_REQUEST_SUCCESS","USER_STATUS_T_MAP","pending","UserStatus","fetchCurrentUser","fetchUserSaga","addUserInfo","language","changeLanguage","patchUserSaga","currentPassword","newPassword","reauthenticateWithCredential","reAuthError","getAuthUserClaims","authUserClaims","changePassword","changePasswordError","newDisplayName","updateProfile","updateProfileError","patchedUser","patchedApiUserUpdate","convertToApiUserUpdate","userPatchError","brokerOrderId","fakeSessionId","selectOrderEditFakeSessionId","createContextRequest","selectOrderEditCreateContextRequest","deleteContextRequest","selectOrderEditDeleteContextRequest","applyContextRequest","selectOrderEditApplyContextRequest","isApplyingContextChanges","selectIsApplyingContextChanges","isConfirmedSubmit","setIsConfirmedSubmitSubmit","toggleIsConfirmedSubmit","isConfirmed","updateTourModalConfirmation","formikHelpersRef","handleConfirmSubmit","applyOrderEditContextRequest","handleCancelConfirmModal","contextId","hasContext","getInitialValues","changeContextError","selectChangeContextError","applyContextRequestError","checkIsTranziitApiRequestError","subType","TranziitApiRequestErrorSubTypeEnum","brokerOrderEdit_ExpirationContext","oldTourUpdateStopByAlias","allStops","oldTourData","flatMap","tour","stops","tourUpdateStopByAlias","tours","updateShipperPrice","routeValue","syncMapStateContext","SyncRouteEditFormMapStateContext","routePoints","routePointValues","contextRoutePointId","tourUpdateStop","isAllowUpdateAddress","checkIsAllowToUpdateAddress","isNew","isDraggable","setMapRoutePoints","boundPoints","initialRoute","mapRoutePoint","onSetMapBoundingBox","onMapClickCallback","firstEmptyLocationRoutePointIndex","routePoint","checkIsAvailableRoutePoint","typeFieldName","routePointType","fakePointIdFieldName","preparedLocation","prepareLocation","changeContext","contextRoutePointAlias","beforeContextRoutePointAliases","getBeforeContextRoutePointAliases","setOnMapClickCallback","onDragEndDnDCallback","setOnDragEndDnDCallback","refreshOrderEditModifyHandler","formValuesChanges","oldRouteFormValues","newRouteFormValues","routePointFormValues","correctedStop","correctedTimeWindow","correctedFrom","correctedTo","orderEditContextQueryModifyChannel","handleExpire","reCreateOrderEditContextRequest","oldTotalCost","carrierEstimate","newTotalCost","newTotalCarrierEstimate","carrierPriceList","priceDiff","oldShipperPrice","originalShipperPrices","newShipperPrice","shipperPriceList","isChangedAnyTimeWindow","oldTourUpdateStop","getRoutePointTimeWindowHash","originalDateTimeFrom","originalDateTimeTo","isChangedAnyAddress","checkIsChangedAddressByCoords","originalAddress","isChangedWaypoint","isLoadingSubmit","isDisabledSubmit","delayedFocusOnLocationInput","setTimeout","locationName","inputNodeSelector","inputNode","querySelector","DELAY","resolve","handleManualSelectLocation","currentLocations","boundingBox","handleChangeRoutePointAddress","handleChangeRoutePointTimeWindow","handleRemoveRoutePointReserve","FormikContext","nextValue","isFirst","isLast","isAllowUpdateTimeWindows","checkIsAllowToUpdateTimeSlots","isAllowRemove","checkIsAllowToDelete","isBetweenOneFerryPoints","RoutePointTypeEnum","isShowAddPointControl","pickupOrDelivery","isFirstRoutePointIndex","isLastRoutePointIndex","onChangeRoutePointAddress","onChangeRoutePointTimeWindow","onRemove","onManualSelectLocation","routePointId","DividerWithDropdownControl","bottomCenter","fakeId","generatePointFakeId","newRoutePoint","submitCount","hasShadow","CheckboxThemeEnum","green","checked","isCheckbox","withoutLabelAndNotes","Container","Timer","showTime","expireTime","tooltipMessage","onExpire","handleSaga","actionChannel","buffers","expanding","channel","take","ExpireDateCell","updateContractRequest","selectUpdateCarrierContractRequest","updatingContractId","selectUpdatingCarrierContractId","ShipmentFieldsEnum","PointContactsFieldsEnum","CARGO_DETAILS_FORM_NAME","TrailerDropOffIcon","ClientFeatureEnum","LOCAL_STORAGE_KEY","saveClientFeaturesConfig","getRawClientFeaturesConfig","setRawClientFeaturesConfig","rawValue","clearClientFeaturesConfig","defaultConfig","showTraceId","errorDetails","partnerInvoices","partnerDrivers","getClientFeaturesConfig","parsedConfig","SyncAssetScheduleContext","setTruckId","renderWaypointName","renderWaypointStopIcon","detailedWaypointStopTypeSet","SpotRequestDetails","selectedBidId","isDisabledSelectBid","onSelectBid","SpotDetailsTabEnum","selectSpotRequestDetails","stopById","entriesInfoTableRows","brokerOrderDetails","entriesInfoTableRows2","transportationOrderId","spotInfoTableRows","createdBy","formatDate","placedOn","expiresAt","shipmentInfoTableRows","carrierCost","layover","totalSeconds","hoursAbbreviation","convertSecToHours","convertToKm","teamDrive","trailerDictType","trailerInfo","firstShipment","shipments","commentTableRows","isShowStatus","SpotRequestStatusEnum","assigned","firstStop","lastStop","timeSlotFrom","pickupDockingHoursTo","timeSlotTo","dropOffDockingHoursTo","prohibitedCountries","totalPriceLabel","totalPriceTooltip","hasContract","hasShipperContract","teamDriveCost","travelHours","teamDriveHours","lineHaulCost","co2","tollCost","toll","tollByRoadType","byRoadType","tranziitServiceFee","layoverCost","layoverSeconds","layoverPaidHours","paidHours","fuelDetails","additionalServiceItems","additionalServices","appliedRules","shouldAlwaysRenderExpandTrigger","carrierEstimatedCost","companyName","renderStop","isReeferTrailer","reefer","pickUpStop","pickupPointId","dropOffStop","dropOffPointId","estimateSpotRequestPrice","fetchBrokerOrderDetailsSaga","selectBrokerOrderDetailsRequestStatus","fetchBrokerOrderDetailsBegin","getBrokerOrderDetails","fetchBrokerOrderDetailsError","fetchBrokerOrderDetailsSuccess","fetchBrokerOrderDetails","carrierShipmentPapersUrlFactory","getThumbnailUrl","shipmentId","documentId","getContentUrl","PaperPlaceholder","Estimate","distanceM","M_IN_KM","formatThousandNumber","formatDistance","durationSec","SEC_IN_HOUR","SEC_IN_MIN","roundedDuration","formatDuration","travelSeconds","RangeIdSetEnum","surchargeRangeTypeSet","urgentPickUp","teamDriveDropOff","layoverDropOff","DEFAULT_TIME_WINDOW_PICKER_SETTINGS","availableValues","ALL_DAY_RANGE","timeWindowRanges","PickupOrDeliveryRoutePointPicker","isDisabledPreviewReserve","isShowSuggestLoading","hasAddressChanges","contextRoutePointIdFieldName","selectedTimeWindow","isNewRoutePoint","isChangedTimeWindow","timeWindowQuantumMs","maxWindowSizeMs","minRangeTimeWindow","maxRangeTimeWindow","teamDriveMark","borderTheme","RangeSelectorZoneThemeEnum","TeamDriveIconProps","getCreateOrder","urgentPickUpMark","UrgentIconProps","layoverMark","HourglassIconProps","teamDriveDropOffRange","regularDropOffRange","regularDropOff","urgentPickUpRange","originalRange","original","regularPickUpRange","regularPickUp","layoverDropOffRange","renderZoneTextNode","currentRanges","surchargeCurrentRanges","range","tourUpdateStopTimeWindows","urgentTimeWindow","regularTimeWindow","layoverTimeWindow","originalTimeWindow","regularFrom","urgentFrom","layoverStart","latestTo","isFirstTimeWindow","availableValuesStart","availableValuesEnd","marks","isHidden","isShowOutsideAvailableValues","relativeTimeWindow","clearDateTimezone","allowedTimeWindowStart","isDisabledUpdateTimeWindows","fieldLabelClassName","isDayRelative","isChanged","labelRightNode","newTimeWindow","isPickUpDeliveryRoutePointPicker","renderRightNode","originalLocation","withoutErrorMessage","ranges","step","minRangeWidth","maxRangeWidth","PdfFileIcon","BrokerOrderNumber","includeProfileTypes","allowedQueryMinLength","selectedValues","firstOption","IdCell","CarrierWithUtilizationDropdownOption","utilizationPercent","isShowUtilization","isShowUtilizationLoader","initialTransportOrderDetailsState","FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_BEGIN","transportOrderDetailsState","FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_ERROR","FETCH_TRANSPORT_ORDER_DETAILS_REQUEST_SUCCESS","RevokeContractActionEnum","setNewContract","nextContractId","setNewRate","trucksRatePerKm","boxesRatePerKm","tiltsRatePerKm","onDownloadShipperContract","EMPTY_VALUE_PLACEHOLDER","ordersLeft","maxNumberOfOrders","onDownload","colorsMap","disabled","DummyPagination","isDisabledPrevPage","goToNextPage","isDisabledNextPage","goToPrevPage","withoutBorderRadius","CountryCell","selectCountriesDictRequest","countryByCode","selectCountriesByCode","ExpirationContextAlertContent","formattedMinutes","orderCreationMs","minutes","getMinutes","formattedContextLifetime","SimpleDriverFormatter","driver","FETCH_ADDITIONAL_SERVICES_REQUEST","FETCH_ADDITIONAL_SERVICES_REQUEST_BEGIN","FETCH_ADDITIONAL_SERVICES_REQUEST_ERROR","FETCH_ADDITIONAL_SERVICES_REQUEST_SUCCESS","UPDATE_ADDITIONAL_SERVICE_REQUEST","UPDATE_ADDITIONAL_SERVICE_REQUEST_BEGIN","UPDATE_ADDITIONAL_SERVICE_REQUEST_ERROR","UPDATE_ADDITIONAL_SERVICE_REQUEST_SUCCESS","tranziitApiRequestErrorSubTypeEnum","apiRequestError","setPrototypeOf","TranziitApiRequestError","prototype","ApiRequestError","errorSubType","extractApiRequestErrorTraceId","traceID","CarrierCostPriceInfoTable","totalPriceDiff","totalPriceIsInvertedPriceDiff","deadheadLineHaulCost","payloadLineHaulCost","commonPriceDetails","useCommonPriceDetails","additionalServicesList","useAdditionalServicesList","isAllowCarrierServices","isAllowBrokerServices","isInvertedPriceDiff","getAppliedRulesFooterNode","getLineHaulList","getRoadTaxesRow","getRoadTaxesList","getFuelCostRow","fuelType","getFuelCostsByCountryList","byCountry","getTeamDrive","checkShouldShowLayover","getLayoverCostRow","getAdditionalServicesRow","temperatureModeColorsMap","TemperatureModeEnum","deepFrozen","ultraFresh","dry","chilled","ambient","TemperatureRangePicker","minValueRange","presets","temperatureMode","temperatureRanges","TEMPERATURE_MODE_T","minTemperature","maxTemperature","color","labelsConfig","hasStartStep","hasEndStep","shownLabelCount","shownStepCount","valuesRange","renderLabel","min","formatValue","valueStep","minValuesRangeWidth","warningsQueryFiltersKeys","runningOutOfTimeToAssignCarrier","runOutOfTimeToAssignCarrier","runningOutOfTimeToAssignAssets","runOutOfTimeToAssignAssets","runningOutOfTimeToAssignDriver","runOutOfTimeToAssignDriver","tourDelaying","noShow","shipmentMissed","WarningsFilter","stat","onQueryFiltersChange","SpecialOptionEnum","separator","runningOutToAssignCarrier","colorCodingNotificationLabelTheme","runOutToAssignCarrier","delaying","missed","queryFiltersKey","FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST","FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_BEGIN","FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_SUCCESS","FETCH_GROUPED_NOTIFICATION_COUNTS_REQUEST_ERROR","prepareActivateVehiclesRequest","assetIds","asset","RateSourceEnum","useLocation","parseQuery","Divider","WaypointUpdatedCard","fullAddress","updatedFields","fieldCode","initialCompanyDocumentsState","idsByType","uploadRequest","uploadingDictDocumentId","updatingDocumentId","fetchDocumentsRequest","downloadDocumentRequest","fetchEvidenceOfTaxDetailsRequest","updateEvidenceOfTaxDetailsRequest","companyDocumentsState","documentIdsByType","documentsList","dictDocumentId","FETCH_RFQS_PAGE_REQUEST","FETCH_RFQS_PAGE_REQUEST_BEGIN","FETCH_RFQS_PAGE_REQUEST_ERROR","FETCH_RFQS_PAGE_REQUEST_SUCCESS","RESET_RFQS","SideBarHeaderRequestStatus","SAFETY_MS","createIntervalChannel","intervalMs","eventChannel","emitter","intervalId","setInterval","clearInterval","jobSaga","call","intervalChannel","NEW_DEADHEAD_TOUR_EVENT_ID","shouldCreateAnonymously","selectAllowedCreateAnonymously","selectUser","menuLinks","accountLink","logoLink","badges","UploadedByLabel","translationKey","createdByRole","useQueryParam","rulesFilters","getQueryFilters","initialPartnerIds","initialPartnerOptions","usePartnerSuggestOptions","types","initOptions","initRequestStatus","trailerTypeIds","priceComponent","topLeft","priceOperation","topRight","createdByUserId","DEFAULT_BROKER_COMPANY_ID","initialLabels","createdByUserName","lastModifyDates","lastModifyByUserId","lastModifyByUserName","ranOutOfTimeToAssignAssets","ranOutOfTimeToAssignDriver","reserveQueryModifyChannel","SEEN_NOTIFICATIONS_BROADCAST_CHANNEL_NAME","createBroadcastChannelName","selectCountriesState","countriesDict","selectCountriesDict","createSelector","countriesState","allCodes","byCode","selectCountriesAllCodes","selectCountriesAllLangCodes","allLangCodes","selectCountriesByLangCode","byLangCode","selectCountriesCount","colorCodingColoredStatusTheme","ShipperContractLaneColoredStatus","XLSIcon","StatusFooterContent","brokerTourDetails","onStartAssignment","isAvailableAssignment","onStartSendToSpot","onManageShipment","isDisableAnyActions","assignAssetsUnavailableReason","sendToSpotUnavailableReason","isNeedAssignment","hasSpotRequests","canAssignTour","canAssignmentBrokerOrder","canChangeTourStatusOnBrokerTour","isShowLoading","hideLoaderStatusSet","calculatedStatus","updateWay","onChangeContract","onChangeRate","isLoadingContract","setIsLoadingContract","contractOptions","setContractOptions","checkIsDefaultCompanyId","fetchCarrierApprovedContracts","brokerResponse","apiContract","labelFallback","carrierResponse","UpdateWayEnum","newRate","changeRateRequest","prepareChangeRateRequest","unassignContract","assignContract","changeContractRequest","prepareChangeContractRequest","selectedContractOption","contractOption","updateWayOptions","selectedUpdateWay","filteredContractOptions","toLowerCase","unitType","euroAbbreviation","TimeZoneEnum","TimeZoneContext","fetchManagersSaga","fetchManagersBegin","fetchPartnerManagers","managers","fetchManagersError","fetchManagersSuccess","FETCH_MANAGERS_REQUEST","ControlLoaderIcon","attributeName","dur","repeatCount","TRANSPORT_ORDER_STATUS_COLOR_MAP","assetsUnassigned","done","mediumGreen","TransportOrderColoredStatus","visibilitychangeHandler","onVisibilityChange","isVisible","visibilityState","addEventListener","removeEventListener","TransportationOrderAssetsUnassignedCard","InvoicesListPage","selectInvoicesByIds","invoicesFilters","invoicesPage","invoicesSort","BrokerInvoicesSortEnum","createDate","invoicesPagingEndingBefore","StringParam","invoicesPagingStartingAfter","pagingState","selectInvoicesPagingState","fetchInvoicesPage","invoicesRefreshChannel","invoices","invoicesQuickFilterOptions","InvoicesQuickFilterEnum","void","paid","uncollectible","getPartnerLink","SUPERCLUSTER_SETTINGS","radius","maxZoom","MultiPointOrderRouteMap","loadStatus","routes","routeRequests","withRouteTrack","truckTrack","truckNumber","truckTrackRequest","truckRoute","truckRouteRequest","trailerTrack","trailerNumber","trailerTrackRequest","trailerRoute","trailerRouteRequest","onGoogleApiLoaded","allMapPoints","lastTruckTrackPoint","lastTrailerTrackPoint","allGeoJSONs","geoJSONs","geoJson","geometry","coordinates","properties","pointNumber","allGeoJSONsClusterator","clusterator","load","allGeoJSONsClusters","getClusters","handleClusterClick","maps","clusterFeatures","getLeaves","LatLngBounds","feature","LatLng","extend","fitBounds","isLoadingRoutes","isRouteRequestLoading","defaultCenter","DEFAULT_CENTER","defaultZoom","DEFAULT_ZOOM","bootstrapURLKeys","BOOTSTRAP_URL_KEYS","MAP_OPTIONS","yesIWantToUseGoogleMapApiInternals","cluster","cluster_id","pointFeatures","visitedOriginLoadStatusSet","renderSinglePointFeature","routeIndex","geometryLibrary","libraries","MapRouteThemeEnum","trackFuture","trackPast","zIndex","textSearch","validFromFrom","validFromStart","validFromTo","validFromFinish","validTillFrom","validTillStart","validTillTo","validTillFinish","createdDateFrom","createdDateStart","createdDateTo","createdDateFinish","formatPageQuerySort","routePointTypeMap","PICKUP_TRAILER","DeadheadRouteStopTypeEnum","PICKUP_TRUCK","PICKUP_ROAD_TRAIN","PICKUP_DELIVERY_SHIPMENT","DRIVE_THROUGH","DROP_AND_HOOK","DROP_TRAILER","DROP_TRUCK","DROP_ROAD_TRAIN","FERRY_ONBOARD","FERRY_DISEMBARK","validateNotUsedRoutePoint","allRoutePointIdsSet","shipmentFormValues","pickUpPointId","delete","RightSidebarLayout","AveragePriceOfferDetails","carrierAdditionalServicesList","brokerAdditionalServicesList","costOfOperationPrices","relatedRules","getCarrierAdditionalServicesRow","getBrokerAdditionalServicesRow","otherPrices","brokerInfo","appliedRulePrices","appliedRule","editPriceSettingsRuleSidebar","editableRuleId","unit","costOfOperationRate","costOfOperation","ErrorModal","newErrorLogs","selectNewErrorLogs","featuresContext","isShowErrorDetails","checkActiveClientFeature","selectIsShowErrorModal","firstErrorLog","modalDialogProps","errorAction","defaultOkAction","defaultWidthPx","checkIsApiRequestError","ApiRequestErrorTypeEnum","timeoutError","canNotDowngradeLastAdminInTeam","canNotDeleteHimself","successorHasNotActiveStatus","orderCreationExpiredRFQ","orderCreation_ExpiredPriceOffer","orderCreation_AlreadyCompletedRFQ","failedArchiveInTransitDriver","couldNotUnLockCompany","alreadyAssignedDrivers","isManyDrivers","requestConfig","secondDriver","firebaseTooManyResendInviteRequests","checkIsTranziitApiErrorResponse","documents_unsupportedFileType","allowedTypes","supportedFileTypes","attachedPapers_unsupportedFileType","noRouteFound","openZendeskWidget","getModalDialogProps","isNotBlockingError","checkIsNotBlockingError","isShowTraceId","errorLog","errorIndex","TARGET_TICKS_VIEW_COUNT","DEFAULT_VIEW_MS","MS_IN_DAY","MIN_VIEW_MS","MAX_VIEW_MS","ZOOM_STEP_MS","anyActionSaga","checkError","actionError","extractErrorFromAction","checkIsAuthApiError","AuthErrorTypeEnum","networkRequestFailed","notAuthorizedUser","notFoundUser","notFoundCompany","reAuthSaga","HeaderSideBarLoader","headerHeightValue","headerHeight","LockActionOnChangeForm","hasFormChanges","remoteFormState","isLoaded","trailersDictRequest","TRAILERS_DICT_REQUEST_BEGIN","TRAILERS_DICT_REQUEST_SUCCESS","TRAILERS_DICT_REQUEST_ERROR","THEME_BY_STATUS","DEFAULT_THEME","OrdersCountCell","PartnerMembersPage","DeleteWaypointTrigger","spaces","halfTransparentLight","EventCell","getUserLink","openUserDetails","dateFormat","isSmallFont","isHumanReadableDate","isHumanReadableFullDate","dateNode","formatHumanReadableFullDate","linkProps","linkNode","isBrokerProject","users","tabOrders","BrokerUsersTab","activeTab","brokerUsersTeams","brokerUsers","MAP_PIN_KEYS","ShipperContractLaneDetailsMap","destinationLatLngProps","latLngProps","originLatLngProps","MapAreaThemeEnum","destinationArea","centerLat","centerLon","radiusM","originArea","byCountryCode","COUNTRY_SETTINGS_DICT_REQUEST_BEGIN","COUNTRY_SETTINGS_DICT_REQUEST_SUCCESS","COUNTRY_SETTINGS_DICT_REQUEST_ERROR","PartnerTrailersPage","FerryOnboardPointPicker","useCarrierSuggestOptions","initCarrierIds","initRequestFactory","promises","initCarrierId","all","results","resultOptions","useAsyncInitOptionsRequest","STATUS_T_MAP","InvoiceStatusEnum","draft","InvoiceStatus","CompletedPartnerShipperLaneContractCard","TruckPickUpIcon","useOnlyAvailableLane","reserveRequest","selectReserveRequest","FETCH_PARTNER_DETAILS_REQUEST_BEGIN","FETCH_PARTNER_DETAILS_REQUEST_SUCCESS","FETCH_PARTNER_DETAILS_REQUEST_ERROR","UPDATE_PARTNER_DETAILS_REQUEST_BEGIN","UPDATE_PARTNER_DETAILS_REQUEST_SUCCESS","UPDATE_PARTNER_DETAILS_REQUEST_ERROR","verifyPartnerDetails","unVerifyPartnerDetails","VERIFY_PARTNER_DETAILS_REQUEST_BEGIN","VERIFY_PARTNER_DETAILS_REQUEST_SUCCESS","VERIFY_PARTNER_DETAILS_REQUEST_ERROR","LOCK_PARTNER_REQUEST_BEGIN","LOCK_PARTNER_REQUEST_SUCCESS","LOCK_PARTNER_REQUEST_ERROR","LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_BEGIN","LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_SUCCESS","LINK_EXTERNAL_PLATFORM_PARTNER_REQUEST_ERROR","DocIcon","convertLogRecord","apiLogRecord","baseNotification","LogRecordActionEnum","SHIPMENT_STATUS_CHANGED","parsedLogRecord","SHIPMENT_CANCELED","SHIPMENT_NO_SHOW","SHIPMENT_MISSED","SHIPMENT_UPDATED","TOUR_SPOT_PLACED","TOUR_SPOT_EXPIRED","TOUR_SPOT_CANCELLED","WAYPOINT_UPDATED","DOCUMENT_UPLOAD","DOCUMENT_APPROVED","DOCUMENT_REJECTED","DOCUMENT_REVOKED","DOCUMENT_UPDATED","DOCUMENT_EXPIRATION_SOON","DOCUMENT_EXPIRED","TRANSPORTATION_ORDER_PLACED","TRANSPORTATION_ORDER_STATUS_CHANGED","TRANSPORTATION_ORDER_DECLINED","TRANSPORTATION_ORDER_CANCELED","TRANSPORTATION_ORDER_UPDATED","TRANSPORTATION_ORDER_ASSETS_ASSIGNED","TRANSPORTATION_ORDER_ASSETS_UNASSIGNED","TRANSPORTATION_ORDER_DRIVER_ASSIGNED","TRANSPORTATION_ORDER_DRIVER_UNASSIGNED","TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_ASSETS","TRANSPORTATION_ORDER_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_DRIVER","ORDER_ROUTE_UPDATED","TOUR_RUN_OR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER","TOUR_DELAYING","TOUR_STATUS_CHANGED","ORDER_CANCELED","ORDER_STATUS_CHANGED","shipperContractLaneDetailsSaga","fetchShipperContractLaneDetails","getFetchShipperContractLaneDetailsSaga","revokeShipperContractLane","updateShipperContractLaneDetailsBegin","updateShipperContractLaneDetailsError","updateShipperContractLaneDetailsSuccess","shipperContractLaneDetailsRefreshChannel","updateShipperContractLane","detailsChanges","fetchShipperContractLaneDetailsBegin","fetchShipperContractLaneDetailsError","fetchShipperContractLaneDetailsSuccess","SideBarLayout","withoutScrollbar","isWide","containerRef","scrollBarWidth","setValue","footerHeightValue","footerHeight","paddingTopPx","paddingBottomPx","paddingTop","paddingBottom","scrollTop","apiRFQ","secondsToExpire","AsyncTrailerTypeFormatter","trailerDictId","useTrailersDict","trailersDictById","getIconColorsByTheme","AssetDropOffLocationPin","getLinkIconColorsByTheme","isShouldRenderNumber","truckRateKm","tiltRateKm","boxRateKm","boxExpectedKm","tiltExpectedKm","truckExpectedKm","ControlsCell","brokerTeamShort","onDelete","useTeamActions","FETCH_SYSTEM_SETTINGS_REQUEST_BEGIN","FETCH_SYSTEM_SETTINGS_REQUEST_SUCCESS","FETCH_SYSTEM_SETTINGS_REQUEST_ERROR","UPDATE_SYSTEM_SETTINGS_REQUEST_BEGIN","UPDATE_SYSTEM_SETTINGS_REQUEST_SUCCESS","UPDATE_SYSTEM_SETTINGS_REQUEST_ERROR","NotificationVerticalRowsLayout","SPOT_REQUEST_LIMIT","spotRequestLimit","EXPIRES_SOON","expiresSoonAlert","PositionEnum","ZoneText","selectionRangeRef","textRef","center","setPosition","textNodeRect","getBoundingClientRect","containerNodeRect","selectionRangeNodeRect","right","formatter","getTimeRelativeStartDay","getDateTime","hours","getHours","formattedHours","formattedDiff","duration","checkMidnightTime","TransportationOrderWasDeclinedCard","ActionsEnum","useActionOptions","contactDetails","callbacks","edit","changeRole","deactivateUser","getActions","actionsMap","onEditContact","EMAILS_FIELDS","checkEmail","timeZoneContext","setTimeZoneValue","userUTCOffsetMin","getCurrentTimeOffsetMin","currentTimeZone","accountTimezone","utcOffsetMin","timeZoneOptions","waypointOptions","getPickupDeliveryWaypoints","waypointUTCOffset","parseISOTimeZone","correctedDateTimeFrom","selectedOption","pushSidebarsArray","array","createOpenSidebarHook","queryKey","JSONArrayParam","sidebarsData","setSidebarsData","newSidebarsData","createCloseSidebarHook","sidebarIndex","createToggleSidebarHook","useOpenSidebar","useCloseSidebar","openSidebar","closeSidebar","isOpened","useCheckOpenedSidebar","toggle","leftSidebarsData","SidebarQueryKeysEnum","leftSidebar","rightSidebarsData","rightSidebar","useOpenRightSidebar","useCloseLeftSidebar","useCloseRightSidebar","useToggleLeftSidebar","useToggleRightSidebar","fetchSpotRequestsSaga","selectSpotRequestsQuery","selectSpotRequestsPages","resetSpotRequests","fetchSpotRequestsPageBegin","fetchSpotRequestsPageError","fetchSpotRequestsPageSuccess","spotRequestsPaginationChannel","FETCH_SPOT_REQUESTS_PAGE_REQUEST","getSubjectLogsKey","BrokerOrderRouteMap","hasAnyTours","tourAssets","tourIndex","findTourActualTransportOrders","transportationOrders","trailerTransportOrder","truckTransportOrder","trailerTransportOrderId","truckTransportOrderId","isLinked","trackTransportOrderIds","transportOrderIds","tourAsset","fetchTracksByTransportOrders","assetTrackSliceState","selectAssetTrackSliceState","tourAssetTracks","trailerHash","getAssetTrackHashByTransportOrderId","truckHash","hasCarrierRoute","availableRouteTypeSet","RouteTypeEnum","estimateCarrierRoute","shipperRoute","carrierRoute","defaultRouteType","selectedRouteType","setSelectedRouteType","routeType","routePolylineIds","trailerToPickUpPolylineId","truckToTrailerPolylineId","dropTrailerPolylineId","dropTruckPolylineId","geometryStates","selectRoutingGeometryStates","isLoadingPolylines","geometryState","boundMapPoints","isLoadingSomeTrucks","lastTruckTrackPoints","tracks","lastPoint","lastTrailerTrackPoints","shouldShowPinNumbers","tourNumber","MapControlsLayout","gap","Row","SwitchableView","MapTrigger","isDisabledEstimateCarrierRoute","isDisabledShipperRoute","isDisabledCarrierRoute","isUnWrap","ShipperPriceOfferInfoTable","priceDetails","SwitchableViewContext","activeTabIndex","setActiveTabIndex","BigRadioIcon","x","y","combineReducers","rfqStats","ensureItem","initialAssetTeleportItemState","assetsSlice","validateAssetTeleport","validateAssetTeleportBegin","validateTeleportStatus","validateAssetTeleportSuccess","validateTeleport","validateAssetTeleportError","executeAssetTeleport","executeAssetTeleportBegin","executeTeleportStatus","executeAssetTeleportSuccess","executeAssetTeleportError","resetAssetTeleportItem","FilePickerInput","hasUploadNewControl","handleBlur","handlePickFile","resetControlTestSelector","handleDownload","labelNode","limitFileNameLength","LinkSizeEnum","medium","reduceFileNameIfNeed","File","labelClassName","systemSettings","minimalShipmentCost","MINIMAL_COST_FOR_SHIPMENT","driverSalaryPerHour","DRIVER_SALARY_PER_HOUR","minimalCostForTruck","MINIMAL_COST_FOR_TRUCK","minimalCostForTrailer","MINIMAL_COST_FOR_TRAILER","layoverCostPerHour","COST_PER_ONE_HOUR_LAYOVER","layoverCostPerDay","COST_PER_ONE_DAY_LAYOVER","layoverFreeHours","LAYOVER_FREE_HOURS","urgentOverPrice","URGENT_OVERPRICE","overPriceForEveryAdditionalStop","OVERPRICE_FOR_EVERY_ADDITIONAL_STOP","timeSlotAppointmentCost","TIME_SLOT_APPOINTMENT_COST","costPerGreenShipment","COST_PER_GREEN_SHIPMENT","tranziitServiceFeeFixedMode","TRANZIIT_SERVICE_FEE_FIXED_MODE","tranziitServiceFeePercent","TRANZIIT_SERVICE_FEE_PERCENT","tranziitServiceFeeFixed","TRANZIIT_SERVICE_FEE_FIXED","pricingStrategy","PRICING_STRATEGY","truckConsumption","TRUCK_CONSUMPTION","reeferConsumption","REEFER_CONSUMPTION","rateMatrixSpread","RATE_MATRIX_SPREAD","hvoPricePercent","HVO_PRICE_PERCENT","usePeriodicRulesForMonths","YEAR_PERIODIC_AUTO_RULES","BooleanSettingValueEnum","true","usePeriodicRulesForWeekdays","USE_PERIODIC_RULES","GPStatusEnum","Company","fetchCompany","refreshHandler","useUpdateOptionsIdsSet","shouldWatch","initIds","initIdSet","idSet","diffIds","initDiffIds","MapBound","allMapPointsHash","boundPoint","boundingBoxHash","point1","point2","BigLaneIcon","pillNode","formattedTimeInterval","isInline","blockedCancelReasonI18nMap","PICKUP_ALREADY_STARTED","TRANSPORTATION_IS_NOT_IN_AVAILABLE_STATUS","TRANSPORTATION_ORDER_IS_ON_SPOT","BROKER_CANT_CANCEL_DEADHEAD_TO","ChangeTransportOrderStatusControl","transportOrderId","cancelByBrokerUnavailableReason","descriptor","entityId","updateEntityStatus","update","rfqStatisticsRequestStatus","mockStatistics","lanesWithoutFerry","lanesWithFerry","carlo","tender","RFQStatisticsSidebarContent","onUpdateSidebarData","isRelative","validFromDates","validTillDates","createdDates","RestoreIcon","formatTimeSlotValue","split","isAllBrokerUsers","TRUCKS_DICT_REQUEST","TRUCKS_DICT_REQUEST_BEGIN","TRUCKS_DICT_REQUEST_SUCCESS","TRUCKS_DICT_REQUEST_ERROR","POINT_CONTACTS_EMAILS_FIELDS","POINT_CONTACTS_PHONE_FIELDS","contactFormValues","requiredContactsStopTypeSet","contactFormErrors","countryFrom","countryTo","fetchDriversSaga","selectSearchDriverQuery","searchDriver","driversPage","fetchPartnersStatsSaga","selectPartnersStatsRequest","fetchPartnersStatsBegin","fetchPartnersStatistics","createPartnerRequestError","shippersStat","carrierStat","brokerStat","fetchPartnersStatsSuccess","FETCH_PARTNERS_STATS_REQUEST","CarrierDropdown","dateForUtilizationRequest","setCarrierId","carriersRequestStatus","selectAvailableCarriersRequest","carriers","selectAvailableCarriers","carrierIds","fetchCarrierUtilization","carriersUtilizationByHash","selectCarriersUtilizationByHash","carriersUtilizationFetchRequest","selectFetchRequestStatus","carriersOptions","carrierUtilization","utilizationPercents","allCarriersOption","ALL_CARRIERS_ID","unshift","filteredCarriersOptions","EditStopContactFooterContent","selectBrokerOrderEditUpdateRequestStatus","handleSave","stopId","onSave","AUTO_EXCLUDE_NON_EU_COUNTRIES","autoExcludeNonEUCountries","false","TTL_MS","Toast","setShow","closeTimerRef","startTimer","timeoutId","clearTimeout","onMouseMove","closeTimer","lostLimit","carrierTranziitApi","fetchAssetTracksByTransportOrder","apiFetchOrdersRequest","fetchTrailersPage","apiFetchTrailersRequest","deleteTrailer","assignTruckToContract","assignTrailersToContract","changeRateTrucks","changeRateTrailers","activateTrailers","archiveTrailers","fetchTrailerDetails","fetchTrailersActiveFleetCount","updateTrailer","fetchActiveTrucksByIdPlateNumber","apiFetchTrucksRequest","fetchTrucksPage","activateTrucks","updateTruck","archiveTrucks","fetchTruckDetails","fetchTrucksActiveFleetCount","deleteTruck","getAvailableDrivers","driverName","assignDrivers","reAssignDrivers","fetchCarrierContracts","fetchCarrierContractDetails","getTransportOrderDetails","fetchDriverDetails","driverId","updateDriver","newDriverData","activateDriver","archiveDriver","deleteDriver","inviteDriver","fetchVehicleScheduleAroundDate","dateOfInterest","fetchDriversPage","checkTrailerGPSStatus","checkTruckGPSStatus","addVehicleScheduleEvent","cancelVehicleScheduleEvent","findTrucksForTourByPlateNumber","findTrailersForTourByPlateNumber","assignVehiclesToTransportOrder","unAssignVehicles","fetchCarrierContract","uploadCarrierContract","formData","FormData","append","headers","importXLSTrailers","importXLSTrucks","exportXLSTrailers","exportXLSTrucks","attachPaperToShipment","attachPaperToTour","deleteAttachedPaper","paperId","CarrierTranziitApi","ServerFeatureEnum","parseFeaturesConfig","stringifiedConfig","ALLOWED_FEATURES_SET","ALLOWED_FEATURES","DEFAULT_ALLOWED_FEATURES_SET","DISABLED_FEATURES_SET","DISABLED_FEATURES","DEFAULT_DISABLED_FEATURES_SET","checkActiveFeature","isAllowed","StartEditTimeWindowsFooter","onStartEditTimeWindows","firstWaypoint","alreadyStartedLabel","deadlineLabel","renderActions","selectBrokerTeamsPages","brokerTeams","selectBrokerTeamsQuery","selectBrokerTeamsTotal","selectBrokerTeamsByIds","styleTagTransform","setAttributes","domAPI","insertStyleElement","locals","formatSort","BrokerOrdersSortEnum","ASC","pickupDate","hasSpotTransportationOrder","spotTransportOrder","contractedTransportOrder","hasSpotOrder","spotOrder","contractedOrder","dropOffDateFrom","dropOffDateTo","pickupDateFrom","pickupDateTo","dispatcherId","keyAccountManagerId","parsedDictTrailerId","destinationDateFrom","destinationDateTo","originDateFrom","originDateTo","hasUnpaidOrders","dictTrailerIds","BrokerOrdersQuickFilterEnum","statusBar","getQueryFromQuickFilters","sorts","FETCH_DRIVERS_PAGE_REQUEST","fetchDriversPageBegin","FETCH_DRIVERS_PAGE_REQUEST_BEGIN","fetchDriversPageSuccess","FETCH_DRIVERS_PAGE_REQUEST_SUCCESS","fetchDriversPageError","FETCH_DRIVERS_PAGE_REQUEST_ERROR","resetDrivers","RESET_DRIVERS","newDriver","INVITE_DRIVER_REQUEST","inviteDriverBegin","INVITE_DRIVER_REQUEST_BEGIN","inviteDriverSuccess","INVITE_DRIVER_REQUEST_SUCCESS","inviteDriverError","INVITE_DRIVER_REQUEST_ERROR","ADD_DRIVER_REQUEST","addDriverBegin","ADD_DRIVER_REQUEST_BEGIN","addDriverSuccess","ADD_DRIVER_REQUEST_SUCCESS","addDriverError","ADD_DRIVER_REQUEST_ERROR","DELETE_DRIVER_REQUEST","deleteDriverBegin","DELETE_DRIVER_REQUEST_BEGIN","deleteDriverSuccess","DELETE_DRIVER_REQUEST_SUCCESS","deleteDriverError","DELETE_DRIVER_REQUEST_ERROR","driverChanges","UPDATE_DRIVER_REQUEST","ACTIVATE_DRIVER","cancelDriverInvite","driverUserId","CANCEL_DRIVER_INVITE","ARCHIVE_DRIVER","updateDriverBegin","UPDATE_DRIVER_REQUEST_BEGIN","updateDriverSuccess","UPDATE_DRIVER_REQUEST_SUCCESS","updateDriverError","UPDATE_DRIVER_REQUEST_ERROR","fetchOptions","FETCH_DRIVER_DETAILS_REQUEST","fetchDriverDetailsBegin","FETCH_DRIVER_DETAILS_REQUEST_BEGIN","fetchDriverDetailsSuccess","FETCH_DRIVER_DETAILS_REQUEST_SUCCESS","fetchDriverDetailsError","FETCH_DRIVER_DETAILS_REQUEST_ERROR","countryLabel","TrailersSortEnum","PartnerTrucksPage","hasAllOption","selectShippersIds","selectShippersById","selectFindShippersRequest","ALL_SHIPPERS_ID","findShippersById","handleChangeQuery","findShippersByQuery","ShipperIconProps","countriesByCode","compact","keyAccountManagerName","dispatcherName","userLangDisplayName","MEDIA_FIELDS_NAME","SocialMediaEnum","whatsapp","viber","telegram","msTeams","BIRTHDAY_FIELDS","DATE_FIELDS","PHONE_FIELDS","desktopPhone","MEDIA_FIELDS","checkBirthday","checkDate","checkNotEmptyString","CityName","allSpecialOptions","checkIsSpecialOption","checkIsNotEmptyOptions","DropdownControl","isShowTriggerForEmptyOptions","viewOptions","withoutScroll","overlayNode","LeftCardLayout","cardNode","timeSlotToBoardFerry","timeSlotDisembarkFerry","HourglassIcon","createRuleRequestStatus","updateRulesRequestStatus","createError","updateError","manualRateRuleCreation_InvalidZipsFrom","fromCountryZipCodes","manualRateRuleUpdate_InvalidZipsFrom","manualRateRuleCreation_InvalidZipsTo","toCountryZipCodes","manualRateRuleUpdate_InvalidZipsTo","handleDatesChange","dateFrom","getStartDayFromDateZero","dateTo","getEndDayFromDateZero","fieldProps","shipperName","CreateCell","brokerOrderShort","onOpenPartnerDetails","serId","ALL_FIELDS","renderAsyncError","evidenceOfTaxDetails_WrongVat","EvidenceOfTaxDetailsForm","isReview","dictDocument","updateDocumentRequest","selectUpdateCompanyDocumentsRequest","selectUpdateEvidenceOfTaxDetailsRequest","confirmApproveDocumentModalDialog","shouldCloseOnError","fetchEvidenceOfTaxDetails","selectFetchEvidenceOfTaxDetails","approveData","updateEvidenceOfTaxDetails","setRemoteFormCallbacks","submitForm","resetForm","hasAsyncErrors","hasFormAnyErrors","useWatchFormAnyErrors","hasErrors","setRemoteFormState","setRemoteFormRequest","selectFetchEvidenceOfTaxDetailsRequest","approveEvidenceOfTaxDocument","FETCH_SPOT_REQUESTS_STATS_REQUEST","fetchSpotRequestsBegin","FETCH_SPOT_REQUESTS_STATS_REQUEST_BEGIN","fetchSpotRequestsStatsSuccess","FETCH_SPOT_REQUESTS_STATS_REQUEST_SUCCESS","fetchSpotRequestsStatsError","FETCH_SPOT_REQUESTS_STATS_REQUEST_ERROR","getFetchTransportOrderDetailsSaga","selectTransportOrderDetailsRequestStatus","fetchTransportOrderDetailsBegin","fetchTransportOrderDetailsError","fetchTransportOrderDetailsSuccess","FETCH_TRANSPORT_ORDER_DETAILS_REQUEST","TransportationOrderOutOfTimeToAssignAssetsCard","isRunOut","FeaturesContext","ContractName","updateTourShipmentSaga","updateBrokerTourBegin","editOrderUpdateShipment","updateBrokerTourError","updateBrokerTourSuccess","brokerToursRefreshChannel","updateTourStopContactSaga","editOrderUpdateStopContact","BrokerStopChangesSourceEnum","updateTourShipment","updateTourStopContact","newNotificationsChannel","emailAlreadyExist","fetchSpotRequestsPage","FETCH_SPOT_REQUESTS_PAGE_REQUEST_BEGIN","FETCH_SPOT_REQUESTS_PAGE_REQUEST_SUCCESS","FETCH_SPOT_REQUESTS_PAGE_REQUEST_ERROR","RESET_SPOT_REQUESTS","partnerSuggestSlice","partnerSuggestRequest","partnerSuggestRequestBegin","partnerSuggestRequestSuccess","partnerSuggestRequestError","WaypointNumberPinContent","LOGO_SIZE_PX","NotificationCardBody","emotion","readAlready","initiatorType","initiatorName","markReadNode","CompanyLogoSizeEnum","AvatarSizeEnum","OrderTypeEnum","i18nTMap","contracted","sortedAllLangCodes","codeA","codeB","langA","langB","byAlphabetASC","langCode","countryLanguage","convertTourToScheduleEvent","carrierTransportOrder","startTime","finishTime","eventType","VehicleScheduleEventTypeEnum","CURRENT_ASSIGNMENT_EVENT_ID","hasAccessToDispatch","getTimeWindows","events","currentEventId","scheduleTimeWindowFactory","scheduleEvent","parseDateStringWithoutTimezone","commonScheduleEvent","entityNumber","serviceMaintenance","isPastEvent","deadheadTO","accentTO","inProgressTO","getFlags","scheduleFlagsFactory","teleport","AssignmentAssetSchedules","selfCostPrediction","selectSelfCostPrediction","selectedScheduleEventId","selectSelectedScheduleEventId","userSelection","selectUserSelection","scheduleAssetById","selectScheduleAssetById","selectedTrailerId","trailerSchedule","selectedTruckId","truckSchedule","useScheduleTimeWindowFactory","useScheduleFlagsFactory","truckScheduleEvents","trailerScheduleEvents","truckStartTime","dropTruckDateTime","scheduleTruckEvent","trailerStartTime","dropTrailerDateTime","scheduleTrailerEvent","levels","flags","setShowSelectedAssetSchedule","onTimeWindowBlur","setSelectedScheduleEventId","onTimeWindowFocus","scheduleEventId","selectedTimeWindowId","BROKER_TOUR_TYPE_T_MAP","ApiBrokerTourEnum","FETCH_RFQS_STATS_REQUEST_BEGIN","FETCH_RFQS_STATS_REQUEST_ERROR","FETCH_RFQS_STATS_REQUEST_SUCCESS","defaultChangesDetactor","customChangesDetector","changesDetector","checkHasAnyErrors","errorsMap","DragIcon","PartnerFilterPill","selectPartnerSuggestById","DetailsIcon","carrierNames","formatDateRangeFilterValue","dateCreatedFrom","dateCreatedTo","tourType","tourTypes","transportOrderDeclined","createPartnerRequest","FETCH_PARTNERS_PAGE_REQUEST_BEGIN","FETCH_PARTNERS_PAGE_REQUEST_SUCCESS","FETCH_PARTNERS_PAGE_REQUEST_ERROR","pageErrorReducer","RESET_PARTNERS","CREATE_PARTNER_REQUEST_BEGIN","CREATE_PARTNER_REQUEST_ERROR","CREATE_PARTNER_REQUEST_SUCCESS","CancelLastShipmentConfirmation","EmissionIcon","EmissionIconProps","NotificationCardInnerLayout","BROKER_PILL_THEME_BY_STATUS","SpotBidStatusEnum","CARRIER_PILL_THEME_BY_STATUS","SpotBidStatusPill","themeMap","DEFAULT_CARRIER_COMPANY_ID","SPOT_BID_STATUS_T_MAP","I18N_MAP","AssetTypeTabs","selectedAssetType","onSelectAssetType","next","TourDelayingCard","pickUpLocation","pickUpLocationRadius","dropOffLocation","dropOffLocationRadius","layoverLimit","ordersLimit","MAX_RADIUS_KM","checkRoundValue","checkDateIsBeforeDay","checkDateIsAfterDay","getDayDiff","checkIsAvailableCountryForShip","rateModeI18nMap","TruckOptionLabel","assetUtilizationPercent","isAssetUtilizationLoading","carrierUtilizationPercent","isCarrierUtilizationLoading","isInvalid","fetchTracksByOrder","FETCH_TRACK_BY_ORDER","FETCH_TRACK_BY_TRANSPORT_ORDERS","fetchTrackBegin","FETCH_TRACK_REQUEST_BEGIN","fetchTrackSuccess","FETCH_TRACK_REQUEST_SUCCESS","fetchTrackError","FETCH_TRACK_REQUEST_ERROR","partnersPage","partnersFilters","memberId","memberName","statistic","SpotRequestStatStatusEnum","newBids","shouldSelectBidSet","BaseSpotRequestDetailsSidebarContent","selectBidId","fetchDetailsRequestStatus","updateRequestStatus","spotUpdateRequestStatus","handleSelectBid","wonBidId","wonBid","isShouldSelectBid","headerDropdownOptions","BaseDocumentsTable","onUploadDocument","onDownloadDocument","onEditDocumentInfo","onRevokeDocument","headerMods","TableColumnModsEnum","required","DocumentRequiredEnum","must","hasLeftOrangeBorder","getRowTheme","TableRowThemeEnum","createVisibilityChangeChannel","visibilityChangeSaga","visibilityChangeChannel","deadlineTimeWindow","checkTemperatureRangesCompatible","cargoTemperatureRange","FooterSideBarLayout","isAbsolute","hasTopBorder","measureContainer","newHeight","clientHeight","requestAnimationFrame","marginRight","useEqualPreviousValue","savedValue","setSavedValue","POSITION_TO_PLACEMENT","triggerClassName","toggleActive","outsidePressEvent","onMouseUp","onMouseDown","invertDirection","getMapClusterTheme","canInTime","hasSelectedTrailer","hasSelectedTruck","hasSelectedLink","MapClusterThemeEnum","AssetClusterPin","trucksCount","trailersCount","linksCount","getAssignmentIconPreset","useCountriesByCode","RFQsTable","onOpenUser","externalNumber","targetPrice","selectFetchDispatchersRequest","dispatchers","selectDispatchersAllIds","selectDispatchersById","prepareSignUpParams","userFormData","companyFormData","ContractActionsEnum","useContractsActionOptions","onDownloadContract","onEditContractDetails","onRevokeContract","canDownloadCarrierContracts","canEditCarrierContracts","canRevokeCarrierContracts","optionsConfigMap","download","revoke","hasAnyVersion","optionConfig","apiLocation","scheduleAddress","truckOrigin","truckDestination","trailerOrigin","trailerDestination","fetchDocumentsBegin","fetchDocumentsSuccess","fetchDocumentsError","uploadDocument","uploadDocumentBegin","uploadDocumentSuccess","uploadDocumentError","downloadDocument","downloadDocumentBegin","downloadDocumentSuccess","downloadDocumentError","approveDocument","rejectDocument","revokeDocument","updateEvidenceOfTaxDetailsBegin","updateEvidenceOfTaxDetailsSuccess","updateEvidenceOfTaxDetailsError","updateDocument","detailChanges","updateDocumentBegin","updateDocumentSuccess","updateDocumentError","fetchEvidenceOfTaxDetailsBegin","fetchEvidenceOfTaxDetailsSuccess","fetchEvidenceOfTaxDetailsError","resetDocument","CUSTOMER_SERVICE","RolesEnum","serviceUser","companyAdmin","keyAccountManager","dispatcher","USER_POSITIONS_T_MAP","ContactPositionsEnum","management","sales","owner","it","Steps","minValue","stepsCount","_","isShowStep","DATE_FORMAT","trailerDictModel","originFullAddress","destinationFullAddress","maximumLayover","externalLaneId","FieldGroupEmptyItem","checkIsCarrierAdditionalService","serviceType","ApiAdditionalServiceTypeEnum","checkIsBrokerAdditionalService","findAdditionalServiceByType","additionalService","meters","YearMonthForm","monthsLabels","minMonthIndexDayYear","checkIsSameYear","month","maxMonthIndexDayYear","years","maxYear","getYear","minYear","form","year","getMonth","monthLabel","getFullYear","isWarning","isFailed","failedMessage","timeDescription","medias","login","mobilePhone","hasAuthentication","formal","deskPhone","parsePhoneNumber","residence","homeAddress","partnerContext","isEditing","setIsEditing","remoteFormActions","selectUploadCompanyDocumentsRequest","documentsDictById","selectDocumentsDictById","selectDocumentsDictByType","selectCompanyDocumentIdsByType","documentsById","selectCompanyDocumentsById","documentInfo","getDocumentInfo","confirmUploadDocumentModalDialog","confirmRevokeDocumentModalDialog","confirmRejectDocumentModalDialog","handleDownloadDocument","handleUploadDocument","onConfirmUploadDocument","useDocumentsActionOptions","actualDocumentVersion","canEditDocuments","shouldReview","handleRetryFetchDocuments","onDownloadFile","isUploading","oldVersions","actualVersionFormNode","canUploadDocuments","onReject","TransportOrderDetailsCard","mainDriver","teamDrivers","moveDetails","onOpenAssetDetails","dictTruckInfo","carrierDetails","selectVehicleState","initialVehicleState","getVehicleScheduleHash","vehicleSchedules","byHash","fetchRequestStatus","selectSetUnavailableVehicleRequestStatus","setUnavailableRequest","cancelUnavailableRequest","DEFAULT_MODS","hasLeftGreyBorder","selectedRowsSet","columnsExtraData","headerNode","mouseDownPositionRef","hoveredRow","onHoverRow","filteredColumns","isShowTable","isShowTableLoader","isShowLineLoader","isShowOverlayLoader","column","columnIndex","colSpan","rowIndex","isHovered","rowMods","rowTheme","clientX","AssetSchedulePin","PHONE_NUMBER_PREFIX","media","FETCH_RATES_PAGE_REQUEST","fetchRatesPageBegin","FETCH_RATES_PAGE_REQUEST_BEGIN","fetchRatesPageSuccess","FETCH_RATES_PAGE_REQUEST_SUCCESS","fetchRatesPageError","FETCH_RATES_PAGE_REQUEST_ERROR","UPDATE_RATES_REQUEST","updateRatesBegin","UPDATE_RATES_REQUEST_BEGIN","updateRatesSuccess","UPDATE_RATES_REQUEST_SUCCESS","updateRatesError","UPDATE_RATES_REQUEST_ERROR","resetRates","RESET_RATES","UPLOAD_CSV_FILE_REQUEST","uploadCSVFileBegin","UPLOAD_CSV_FILE_REQUEST_BEGIN","uploadCSVFileSuccess","UPLOAD_CSV_FILE_REQUEST_SUCCESS","uploadCSVFailError","UPLOAD_CSV_FILE_REQUEST_FAIL","LinkDropOffIcon","args","dimensions","setDimensions","setNode","useLayoutEffect","rect","bottom","getDimensionObject","liveMeasure","NumberIcon","fontFamily","fontSize","fontWeight","NumberIconProps","getAssignmentControlProps","services","serviceA","serviceB","service","localeCompare","groupA","groupB","categoryCompare","aTrailerType","bTrailerType","checkIsAvailableDropAssetPoints","pointToDropTruck","pointToDropTrailer","selectCountrySettingsDictRequest","countriesSettingsRequest","isAvailablePointToDropTrailer","checkIsAvailableCountryForDropAsset","utcOffsetMinutes","isAvailablePointToDropTruck","initUserSelectionSaga","predictSelfCost","isIgnoreCertificates","isIgnoreEmissionStandard","changeUserSelectionSaga","prevUserSelection","fetchAvailableVehicles","selfCostReserve","isExpiredReserve","selectTruckAssignmentInfoById","truckAssignmentInfoById","truckAssignmentInfo","refreshTruck","selectTrailerAssignmentInfoById","trailerAssignmentInfoById","trailerAssignmentInfo","refreshTrailer","fetchAssetSchedule","fetchAssignDetailsSaga","fetchAssignDetailsBegin","fetchTourAssignDetails","fetchAssignDetailsError","fetchAssignDetailsSuccess","changeUserSelection","fetchAvailableVehiclesSaga","selectAvailableVehiclesQuery","fetchAvailableVehiclesBegin","selectedAssets","searchAssetsForAssigment","ignoreEmissionStandard","ignoreCertificates","vehicles","fetchAvailableVehiclesError","fetchAvailableVehiclesSuccess","fetchAvailableCarriersSaga","fetchAvailableCarriersBegin","fetchAvailableCarriers","fetchAvailableCarriersError","fetchAvailableCarriersSuccess","refreshTruckSaga","findTruck","findTruckSaga","selectTruckSuggestQuery","findTruckBegin","findTrucksByPlateNumber","apiTrucksSuggestItems","findTruckError","limitedTrucksSuggestItems","findTruckSuccess","refreshTrailerSaga","findTrailer","findTrailerSaga","selectTrailerSuggestQuery","findTrailerBegin","findTrailersByPlateNumber","apiTrailersSuggestItems","findTrailerError","limitedTrailersSuggestItems","findTrailerSuccess","predictSelfCostSaga","selectSelfCostPredictionQuery","predictSelfCostBegin","isAvailablePointToDrop","predictSelfCostSuccess","calculateTourCostsForAssets","withPolyLines","addressComponents","predictSelfCostError","preparedResult","assignSaga","assignmentContextId","assignBegin","assignOrder","assignError","assignSuccess","assetsAssignedToTour","brokerOrdersRefreshChannel","fetchAssetScheduleSaga","selectBrokerOrderDetails","toursById","tourDetails","targetDate","fetchAssetScheduleBegin","scheduleResponse","fetchAssetScheduleError","currentScheduleEvent","getCurrentScheduleEvent","currentScheduleEventId","setAssetSchedule","schedulePolylines","rfqRoutePolylineIds","payloadPolylineId","rfqRoutePolylineId","fetchRouteGeometryPlainResponse","fetchRouteGeometryGoogle","Error","polyline","setEventLoadRoute","fetchAssetScheduleSuccess","resetSaga","initAssignmentSaga","CHANGE_USER_SELECTION","INIT_USER_SELECTION","FETCH_ASSIGN_DETAILS_REQUEST","FETCH_AVAILABLE_VEHICLES_REQUEST","FETCH_AVAILABLE_CARRIERS_REQUEST","FIND_TRUCK_REQUEST","REFRESH_TRUCK_REQUEST","FIND_TRAILER_REQUEST","REFRESH_TRAILER_REQUEST","PREDICT_SELF_COST_REQUEST","ASSIGNMENT_REQUEST","FETCH_ASSET_SCHEDULE","INIT","copyToClipboard","FETCH_PARTNERS_STATS_REQUEST_BEGIN","FETCH_PARTNERS_STATS_REQUEST_SUCCESS","FETCH_PARTNERS_STATS_REQUEST_ERROR","OrderEditedCard","pageSort","fetchContactsSaga","fetchContactsBegin","companyContacts","fetchContactsError","fetchContactsSuccess","inviteUserSaga","addMemberBegin","addUserToCurrentCompany","addUserToPartner","addMemberError","addMemberSuccess","addContactSaga","newContact","addContactToCurrentCompany","addContactToPartner","getContactById","selectContactById","getContactByUserId","selectContactIdByUserId","contactIdByUserId","contactById","deleteContactSaga","deleteMemberBegin","deleteMemberError","deleteMemberSuccess","deleteUserSaga","cancelUserInviteSaga","updateMemberBegin","cancelUserInvite","updateMemberError","updateMemberSuccess","restoreUserSaga","changeUserRoleSaga","assignUserRole","fetchContactDetails","updateContactSaga","contactChanges","updateContact","getFetchContactDetailsSaga","fetchContactDetailsBegin","fetchContactDetailsError","preparedDetails","prepareCompanyContactDetails","fetchContactDetailsSuccess","getFetchContactDetailsByUserIdSaga","fetchContactDetailsByUserId","FETCH_CONTACTS_REQUEST","INVITE_USER_REQUEST","ADD_CONTACT_REQUEST","DELETE_CONTACT","DELETE_USER","CANCEL_INVITE","RESTORE_USER","CHANGE_USER_ROLE","UPDATE_CONTACT","FETCH_CONTACT_DETAILS_REQUEST","FETCH_CONTACT_DETAILS_BY_USER_ID","TransportOrderRouteMap","dropTrailerGeometryState","dropTruckGeometryState","payloadGeometryState","trailerToPickUpGeometryState","truckToTrailerGeometryState","isLoadingGeometry","firstTourTrailerId","firstTourTruckId","assetsTracksHash","getAssetsTrackHashByTransportOrderId","assetsTracksRequest","selectAssetTrackRequest","selectAssetTrackPoints","commonProps","setCountryCode","parsedPhoneNumber","NotificationCardHead","subjectTypeLabel","originCountryCode","destinationCountryCode","profileName","profileCountryCode","partnerSuggestSaga","CreateUpdateCell","updatedDate","EcoIcon","getDefaultState","InfoIcon","PapersMessagePlaceholder","CompletedPartnerShipperContractCard","DEFAULT_INITIAL_VALUES","ShipperContractLaneCreationConfirmForm","prevTotalPrice","setPrevTotalPrice","isShowLoader","initTotalPrice","simpleNumberFormatter","initialTouched","SideBarLoader","PriceRuleStatusPill","pillTheme","FUEL_OPTION_TYPE_I18N_MAP","FuelOptionTypeLabel","fuelOption","partnerTypeMap","SHIPPER","CARRIER","BROKER","positionMap","ContactCell","contactEmail","contactName","contactPhone","contactPosition","contactSurname","contactFullName","boldBrandAccent","isExternal","legalAddressCountryCode","legalAddressZipCode","legalAddressCity","legalAddressStreet1","legalAddressStreet2","postalAddress","postalAddressCountryCode","postalAddressZipCode","postalAddressCity","postalAddressStreet1","postalAddressStreet2","billingAddress","billingAddressCountryCode","billingAddressZipCode","billingAddressCity","billingAddressStreet1","billingAddressStreet2","billingEmail","LOAD_STATUS_T_MAP","ShipmentStatusEnum","awaitingLoading","unloading","LoadStatus","lastTelematicUpdateDates","SnowflakeIcon","ASSIGNMENT_WARNING","SpotRequestDetailsTabs","bidCount","timeLeft","getTimeLeft","parsedDiff","parseDiff","formatDiff","renderDiffStatus","renderSidebarContent","getSidebarCloseConfirmation","paranjaShowLevel","setLeftSidebarsData","setRightSidebarsData","commonLeftSidebarProps","SideBarPositionEnum","commonRightSidebarProps","isShowParanja","commonSidebarProps","pipeProps","leftSidebarData","rightSidebarData","SidebarSizeEnum","l","BrokerRFQsListPage","historyPush","useHistoryPush","showRFQStatistics","rfqStatistics","m","toggleRFQStatistics","brokerRFQDetails","trailerMode","firstPart","secondPart","availableTrailerTypes","TrailerTypeEnum","PartnerPermissionsContextProvider","deprecatedPagingToken","invoiceNumber","CheckIcon","InviteUserModal","initialEmail","allowSelectTeam","hasNoneOption","excludedContractIds","brokerError","brokerResult","carrierError","carrierResult","additionalOptionFilter","handleSelect","fetchTrailersDictSaga","fetchTrailersDictBegin","getTrailersDict","fetchTrailersDictError","fetchTrailersDictSuccess","TRAILERS_DICT_REQUEST","renderTruckDropOffIcon","initDropPoint","truckDropOffLocation","trailerDropOffLocation","renderTrailerDropOffIcon","selectErrorLogs","log","isShowErrorModal","selectUploadCSVFileRequest","errorDescription","TransportationOrderWasCanceledCard","rawVatNumber","StartIcon","ShipmentDetailsCard","pickUpWaypoint","dropOffWaypoint","shouldConfirmForCancelLastShipment","onAttachShipmentPaper","getShipmentPaperThumbnailUrl","onOpenGalleryShipmentPaper","onDownloadShipmentPaper","onDeleteShipmentPaper","onOpenDriverDetails","tourShipmentActions","readAttachedPapersUnavailableReason","highlightedEntityId","shipmentChanges","selectShipmentChangesById","idDetails","poDetails","purchaseOrderNumber","originPointDetails","dateTimeFrom","dateTimeTo","destinationPointDetails","shipmentDetails","getLoadUnitType","unitsType","maxNumberOfUnits","weight","kilogramsAbbreviation","lowestTemperature","highestTemperature","papersBadge","useRenderPapersTabCount","attachedPapers","takeShotsOfPapersEvent","shipmentAction","attachPaperRenderTrigger","useAttachPaperForPaperTabRenderTrigger","triggerText","hasPlusIcon","attachPapersUnavailableReason","getShipmentAnchor","takeShotsOfPapersTourShipmentEvent","papersTabRightNode","ShipmentPaperAttachPapersDropdownControl","ShipmentPapersTabContent","filterNewNotifications","notifications","prevLastUnReadNotification","prevUnReadNotificationsRequest","minTimestamp","isAfterMinTimestamp","notification","BaseSecurityAuthApi","selectBrokerTeamEditCreateRequestStatus","brokerTeamEdit","selectBrokerTeamEditCreatedTeam","selectBrokerTeamEditById","selectBrokerTeamEditUpdateRequestStatus","selectBrokerTeamEditDeleteRequestStatus","AggregateEnum","DEFAULT_DATA_SOURCE","StatisticSourceEnum","import","selectSystemSettings","priceSettings","UnlinkProfileConfirmation","brokerTourStatsSlice","fetchBrokerTourStats","fetchBrokerTourStatsBegin","fetchBrokerTourStatsSuccess","fetchBrokerTourStatsError","spotRequestTypeMap","SpotRequestRoute","ECLIPSE","limit","checkIsPDFFile","test","AsyncDictCountryNameLabel","LoaderTitle","downloadTenderXLSFile","downloadTenderXLSFileBegin","downloadTenderXLSFileSuccess","downloadTenderXLSFileError","importTenderXLSFile","importTenderXLSFileBegin","importTenderXLSFileSuccess","importTenderXLSFileError","fetchTenderStatus","fetchTenderStatusBegin","fetchTenderStatusSuccess","fetchTenderStatusError","deleteTender","deleteTenderBegin","deleteTenderSuccess","deleteTenderError","fetchDriverDetailsRequestStatus","selectFetchDriverDetailsRequest","selectDriverDetailsById","updateDriversRequestStatus","selectUpdateDriverRequest","archiveDriverConfirmation","activateDriverConfirmation","cancelDriverInviteConfirmation","useDriverActionOptions","onArchiveDriver","onActivateDriver","allowShowChanges","isHideMobilePhoneField","needCloseConfirmation","DelayingWarningAlert","ApproveContractConfirmation","LOAD_STATUS_COLOR_MAP","ShipmentColoredStatus","ADDRESS_TYPE_I18N_MAP","LEGAL","POSTAL","BILLING","BusinessPartnerAddressVerificationCard","verified","prepareFetchQuery","selectedGranularity","shippedId","granularity","dataSource","destinationCountry","toCountryCode","destinationZipCode","toZipCode","originCountry","fromCountryCode","originZipCode","fromZipCode","shippedIds","tooltipContent","transparentTriggerProps","CancelServiceMaintanceTooltipContent","transparentLightAlpha","DriverAssignOptionLabel","checkRangeNotIncludeDisabledDates","checkIsAvailableCountryForServiceMaintananceAsset","FieldArray","EMAIL_FIELDS","expiredActionCode","invalidActionCode","userNotFound","userDisabled","weakPassword","failUpdatePassword","failReauthenticateWithCredential","OrderWasPlacedCard","selectPartnersPages","selectPartnersQuery","selectPartnersTotal","selectPartnersByIds","selectPartnerCreationRequest","RevokeDocumentsConfirmation","useDictDocumentById","TRAILER_EXCLUDE_STATUSES","EXCLUDED_STATUSES_SET","trailersPage","trailersFilters","dictTrailerTypeId","excludeStatuses","labels","excludedStatusesSet","isShowAllBrokerUsersOption","UserLinkFormatter","RFQ_STATUS_T_MAP","RFQStatus","TODAY","RFQStats","selectRFQStatsRequest","partnerRFQStats","selectCompanyDocumentsGroup","queryFrom","queryTo","parsedFrom","parsedTo","isValid","isAfter","defaultDateTo","setDates","resetRFQStats","fetchRFQStats","DocumentMessage","getAlertLevelOrFallback","fallback","alertLevel","notificationEmotionMapByAlertLevel","renderLog","initiatorId","renderLogText","ORDER_PLACED","updatedStops","isRunningOut","tourCityFrom","tourCityTo","assetModel","assetPlateNumber","teamDriverName","spotNumber","UNKNOWN_ACTION","renderNotificationText","NotificationActionEnum","SubjectTypeEnum","ORDER_EDITED","transportationOrder","TRANSPORTATION_ORDER_MILEAGE_AND_PAYMENT_CHANGED","cityA","cityB","TOUR_RUNNING_OUT_OF_TIME_TO_ASSIGN_CARRIER","TOUR_RUN_OUT_OF_TIME_TO_ASSIGN_CARRIER","SPOT_PLACED","fromLocation","toLocation","spotRequestNumber","SPOT_EXPIRED","SPOT_BID_ACCEPTED","SPOT_BID_PLACED","SPOT_BID_EXPIRED","DOCUMENT_COMPLETED","SHIPPER_CONTRACT_UPDATED","SHIPPER_CONTRACT_REVOKED","SHIPPER_CONTRACT_EXPIRED","SHIPPER_CONTRACT_COMPLETED","SHIPPER_CONTRACT_EXPIRATION_SOON","SHIPPER_CONTRACT_LANE_UPDATED","tztLaneId","SHIPPER_CONTRACT_LANE_REVOKED","SHIPPER_CONTRACT_LANE_EXPIRED","SHIPPER_CONTRACT_LANE_COMPLETED","SHIPPER_CONTRACT_LANE_EXPIRATION_SOON","CARRIER_CONTRACT_UPDATED","CARRIER_CONTRACT_REVOKED","CARRIER_CONTRACT_EXPIRED","CARRIER_CONTRACT_EXPIRATION_SOON","CARRIER_CONTRACT_COMPLETED","TEAM_REMOVED","teamName","TEAM_USER_ADDED","TEAM_USER_REMOVED","BUSINESS_PARTNER_ADDRESS_VERIFICATION","BROKER_BUSINESS_PARTNER_UPDATED","requiredToCheckProfile","renderNotification","common","bodyCommon","header","NotificationEmotionEnum","negative","EMOTION_LOAD_STATUS_MAP","neutral","EMOTION_ORDER_STATUS_MAP","EMOTION_TOUR_STATUS_MAP","orderCityFrom","orderCountryFrom","orderCityTo","orderCountryTo","emotionStatus","EMOTION_TRANSPORTATION_STATUS_MAP","companyCountryCode","getNotificationLink","partnerDocumentDetails","partnerShipperContactDetails","SHIPPER_CONTRACT_LANE_UPLOAD","partnerShipperContractLane","brokerUsersTeam","partnerCarrierContactDetails","checkIsBrokerAnyAlert","tourSentToSpot","spotRequestCancelled","transportOrderAssigned","deadheadTourPlaced","transportOrderCancelled","orderRouteUpdated","businessPartnerInvited","AnyAlert","getAddedStopAliases","prevContext","contextAfterModify","prevStopAliases","selectUpdateTruckRequestStatus","addRequestStatus","selectAddTruckRequestStatus","detailsById","selectTrucksDetailsByIds","isNewTruck","detailsFormValues","truckRequest","prepareCreateApiTruck","addTruckRequest","prepareUpdateApiTruck","TRAILER_TYPE_T_MAP","tilt","box","trailersTypes","selectAllTrailersTypes","roundedCO2","EventAuthorCell","brokerOrderAssigment","availableVehicles","selectAvailableVehiclesRequest","selectFetchAssignDetailsRequest","fetchAssignDetailsStatus","selectAvailableVehicles","selectVehicleLinks","links","availableCarriers","selectAvailableCarriersById","truckSuggest","selectTruckSuggestRequestStatus","selectTruckSuggestIds","truckById","trailerSuggest","selectTrailerSuggestRequestStatus","selectTrailerSuggestIds","trailerById","selectSelfCostPredictionRequestStatus","selectCurrentPositionById","currentPositionAssetById","selectShowSelectedAssetSchedules","isShowSelectedAssetSchedules","PriceSettingsRuleCreationPage","settingsRules","createRuleRequest","selectCreateRuleRequest","SettingsRoutesEnum","previewCurrentRule","setPreviewCurrentRule","onChangePreviewCurrentRule","checkIsTruckCantBeOnTimeForNextTourError","checkIsTrailerCantBeOnTimeForNextTourError","carrierTourPapersUrlFactory","fetchTrucksDictSaga","selectTrucksDictRequest","selectTrucksDict","fetchTrucksDictBegin","getTrucksDict","apiTrucksDict","fetchTrucksDictError","trucksDict","sortTrucksDict","fetchTrucksDictSuccess","checkIsCarrierTransportOrderDetails","checkIsBrokerTransportOrderDetails","FETCH_SETTINGS","fetchSettingsBegin","FETCH_SETTINGS_BEGIN","fetchSettingsSuccess","FETCH_SETTINGS_SUCCESS","fetchSettingsError","FETCH_SETTINGS_ERROR","addDriverRequestStatus","selectAddDriverRequest","hasDropAssetPointError","initialCarrierOptions","carrierOptions","originDates","destinationDates","creationDates","currentUserRequest","patchUserRequest","prepareUser","BrokerRFQsPage","BrokerRFQRoutesEnum","LeftMenuLayout","canCreateOrder","PlusMenuIcon","matchPathname","DatabaseMenuIcon","routesEnum","brokerOrders","canViewBrokerTours","brokerTours","canViewBrokerRFQs","brokerRFQs","canViewInvoices","BusinessPartnerMenuIcon","checkActiveServerFeature","canViewSpot","spotRequests","canViewBrokerUsers","TeamsMenuIcon","BrokerUsersRoutesEnum","canViewPriceSettings","rateMatrix","canViewFullStatistic","account","home","isAllowHelpButton","NotificationToastsManager","newNotifications","setNewNotifications","prevNotifications","handleMarkAsOld","handleMarkAsRead","markAsRead","notificationIndex","notificationView","renderCommonNotification","renderUnknownNotification","notificationText","getUnknownNotificationText","link","MapFooterEstimate","travelTimeSec","hasMetrics","formatDurationSec","BrokerUsersTeamsSortEnum","companyIds","sorting","fetchBrokerOrdersSaga","selectBrokerOrdersQuery","selectBrokerOrdersPages","resetBrokerOrders","fetchBrokerOrdersPageBegin","fetchBrokerOrdersPageError","fetchBrokerOrdersPageSuccess","brokerOrdersPaginationChannel","OrderStatusEnum","placed","inProgress","TourStatusEnum","finished","EMOTION_ORDER_DRAFT_STATUS_MAP","PartnersCountCell","partnersCount","numberOfCompanies","getAvailableRolesByPartnerType","ALL_ROLES_BY_PARTNER_TYPE","adminRolesSet","UserRolesDropdown","availableRoles","isSelectedAnyAdminRole","initialValueSet","valueSet","getCheckboxProps","checkboxProps","otherRolesOptions","adminRolesOptions","hasAdminRole","isNoWrapTrigger","selectedOptions","BaseAuthService","stringifyQuery","indices","addQueryPrefix","sortByShowPriorityAsc","optionA","optionB","optionWidthById","setOptionWidthById","containerWidth","setContainerWidth","containerNode","setContainerNode","offsetWidth","firstChild","widthById","child","getAttribute","newOptionWidthById","moreRef","moreWidth","setMoreWidth","sortedOptionsByHidePriority","isMeasuring","optionsWidthLimit","Infinity","optionsForShow","optionsForHide","optionsWidth","summaryWidth","getFullWidth","pop","sortedOptionsForShow","rawDropdownOptions","optionIndex","triggerNotificationProps","notificationGroups","reduceNotificationGroup","summary","red","reduceTriggerNotificationProps","dropdownOptionsWithSeparators","separatorIndex","originalOptions","noPaddings","rowClassName","CloseActionEnum","closeSideBarConfirmation","handleConfirm","goBack","handleGoBack","handleCloseRef","handleKeyDown","handleOutsideClick","navigationNode","contains","alertToastsManagerNode","modalNode","sidebarTriggerNode","isInsideFloatingUiPortal","commonSidebarContentProps","onOutsideClick","hasAlready","ruleTypeIndex","PhoneNumberInput","allCountries","validateOverloadingTrailer","statsByPointId","eur6Pallets","shipmentValues","cargoUnitType","cargoUnitsCount","cargoWeight","summaryStats","pointAIndex","pointBIndex","legalAddressFields","useWatchLegalAddressChanges","postalAddressFields","useWatchPostalAddressChanges","billingAddressFields","useWatchBillingAddressChanges","PartnerDetailsForm","onVerifyPartner","onUnverifyPartner","onLockPartner","onUnlockPartner","isExternalBusinessPartnerManagement","selectUpdatePartnerDetailsRequest","linkRequestStatus","selectLinkPartnerRequestStatus","linkProfileConfirmation","shouldShowBillingInfo","checkNeedShowBillingInfo","shouldShowTeams","shouldShowNoExternalProfileLinkLabel","initialExternalBusinessPartnerOption","FAKE_EXTERNAL_BUSINESS_PARTNER_ID","mainContactFullName","teamIds","handleSelectExternalBusinessPartner","externalBusinessPartner","handleLinkProfile","touchAllFields","touched","keys","hasLegalAddressChanges","legalAddressCountry","legalFullAddress","hasPostalAddressChanges","postalFullAddress","hasBillingAddressChanges","billingFullAddress","hasLegalAddress","checkIsFilledPartnerAddress","isNeedApproveLegalAddress","legalAddressVerified","hasPostalAddress","isNeedApprovePostalAddress","postalAddressVerified","hasBillingAddress","isNeedApproveBillingAddress","billingAddressVerified","checkHasExternalRestrictions","isShowUnlock","checkIsAllowedLock","isShowLock","onLock","onUnLock","isForceShowWarning","noAssignedDispatchers","getTeamsWarning","checkNeedShowCreditLimit","isAllowShowVerifyAction","canVerifyPartner","AddressTypeEnum","legal","needApproved","onVerify","onUnVerify","postal","onCopy","billing","ChangePasswordPage","selectUpdatePasswordRequestStatus","asyncPasswordError","passwordAsyncError","createSignInUrlAfterChangePassword","NavigationWrap","uiContext","selectCurrentUser","company","menu","isShowCompanyLogo","userEmail","setRootNode","CancelBrokerOrderConfirmation","RulesSortEnum","updateDate","rulesState","rulesPartnerIds","rulesTrailerTypeIds","rulesName","rulesTypes","rulesFromCountryCodes","rulesToCountryCodes","rulesImpactPriceComponent","rulesImpactPriceOperation","addedBy","modifiedBy","updatedFrom","lastModifyDateFrom","updatedTo","lastModifyDateTo","rulesSearchText","PriceSettingsRuleStateEnum","activated","deactivated","FOCUS_TIME","ScrollToFirstAsyncError","prevSubmitCountRef","prevAsyncErrorsRef","hadAsyncErrors","asyncErrorsAppeared","formNode","closest","fieldErrorNodes","querySelectorAll","firstErrorFieldNode","ReadOnlyField","withInputLayout","ReadOnlyFieldValue","THEME_MAP","ShipperContractLaneStatusPill","street","CreateCompanyForm","getZipCodePlaceholder","boldCharcoal","LockPartnerConfirmation","includeServiceFee","includeTeamDrive","useApplyRules","ShipperContractLaneCreationForm","contractDetailsState","fetchShipperContractDetails","protectedContractDetails","contractValidFrom","prepareApiCalculateCostRequestQuery","createQueryDraft","prepareApiCreateRequestQueryDraft","SyncShipperContractLaneCreationFormMapStateContext","setHasDropOffLocationError","setHasPickUpLocationError","handleRadiusSetValue","limitedValue","setDestinationLocationRadius","setOriginLocationRadius","handleGeoSuggestSetValue","createGeoPoint","setDestinationLocation","setOriginLocation","setMapSettings","DEFAULT_POINT_ZOOM","destinationLocation","originLocation","getMaxISODate","maxValidTillDate","getMinISODate","isDisabledValidTillDate","minValidFromDate","maxValidFromDate","isDisabledValidFromDate","FIND_CARRIERS_REQUEST","FIND_CARRIERS_REQUEST_BEGIN","FIND_CARRIERS_REQUEST_ERROR","FIND_CARRIERS_REQUEST_SUCCESS","trucksDictRequest","trucksById","initialAssetTrackState","Zone","hasLeftBorder","hasRightBorder","valuesSet","findSelectedOption","treeNode","subValues","getAllSubValues","subValue","subTreeNode","handleReset","hasValues","isShowClearControl","optionSubValues","optionSubValuesSet","newValues","trees","ChartTooltip","deadheadValue","tooltipData","marginValue","margin","notNumberMessage","available","rejectedShipperRate","acceptedShipperRate","estimatedCarrierRate","realCarrierRate","percentsAbbreviation","avgDistance","ExcludedCountries","isDefault","fax","faxNumber","website","webpageLink","RevokeContractActionDropdown","keepOldRate","setOnSetMapBoundingBox","mapRoutePoints","onChangeExcludedCountriesCallback","setOnChangeExcludedCountriesCallback","assetTrack","getInitialState","signInRequest","resetPasswordRequest","updatePasswordRequest","signUpRequest","signOutRequest","emailVerificationRequest","SelectedOfferHeader","isSticky","isWhite","contentNode","handleToggle","PILL_THEME_BY_TOUR_TYPE","BrokerTourTypePill","onUpdateShipperContract","hasFormAnyErros","COUNTRY_SETTINGS_DICT_REQUEST","PILL_THEME_BY_DRIVER_STATUS","EmissionClassPill","checkNotZero","formCommonValidators","checkFullRange","checkStrictMinValue","maxValue","checkStrictMaxValue","AsyncSpotRequestDetailsLinkFormatter","onOpenSpotRequestDetails","getAssignmentVehicleLinks","vehicle","byTruckId","byTrailerId","getTrailerById","prevTrailerById","assetsToHook","getTruckById","prevTruckById","orderEditContext","createContextRequestStatus","deleteContextRequestStatus","applyContextRequestStatus","selectOrderEditContext","selectOrderEditBrokerOrderDetails","useSyncShipmentDetailsFormMapState","syncMapSettingsCallbackRef","CaseIcon","CaseIconProps","brandAccent5","HelpIcon","findTourById","CarrierContractStatusPill","getMaskByType","getDistanceMask","I18N_LABELS_MAP","VerifyPartnerAdressConfirmation","i18nLabelsMap","COLOR_SCHEMAS","darkGreen","HOVERED_COLOR_SCHEMAS","Trigger","isLeft","isRight","isInteractive","divRef","setHovered","colorSchemas","backgroundColor","TrailerDictIdFilterPill","dictTrailerById","dictTrailer","sourceQueryFilters","primaryQueryKeys","secondaryQueryKeys","clearedQueryFilters","hasAnyFilters","primaryQueryFilters","secondaryQueryFilters","DriversSortEnum","prepareData","fetchAdditionalServicesSaga","selectAdditionalServicesDictStatus","fetchAdditionalServicesBegin","fetchAdditionalServicesError","normalizedData","normalizeAdditionalServicesResponse","fetchAdditionalServicesSuccess","additionalServiceGroups","DispatcherDropdown","fetchDispatchers","FIND_TRAILER_REQUEST_BEGIN","trailersSuggestItems","FIND_TRAILER_REQUEST_SUCCESS","FIND_TRAILER_REQUEST_ERROR","FIND_TRUCK_REQUEST_BEGIN","trucksSuggestItems","FIND_TRUCK_REQUEST_SUCCESS","FIND_TRUCK_REQUEST_ERROR","assign","ASSIGN","unassign","UNASSIGN","ASSIGNMENT_REQUEST_BEGIN","ASSIGNMENT_REQUEST_SUCCESS","ASSIGNMENT_REQUEST_ERROR","brokerToursSlice","fetchBrokerToursPage","fetchBrokerToursPageBegin","fetchBrokerToursPageSuccess","fetchBrokerToursPageError","resetBrokerTours","nextLocation","ctrlKey","metaKey","createExternalRelativePath","assignAssetsUnavailableReasonI18nMap","KAM_CANT_ASSIGN_ASSETS","TOUR_ON_SPOT","UNAVAILABLE_STATUS","RUN_OUT_OF_TIME_TO_ASSIGN_CARRIER","TO_IS_NOT_ON_SPOT","TO_BELONGS_TO_ANOTHER_CARRIER","TO_IS_RUN_OUT_OF_TIME_TO_ASSIGN_ASSETS","assignDriverUnavailableReasonI18nMap","TO_HAS_TRAILER_TYPE","TO_IS_RUN_OUT_OF_TIME_TO_ASSIGN_DRIVER","deadlineGuideI18nMap","START_TOUR","ARRIVED_AT_WAYPOINT","LEAVE_WAYPOINT","FINISH_TOUR","TRAILER_HOOKED","TRAILER_DROPPED","onUnassignedAssets","unassignAssetsUnavailableTooltipContent","onStartAssignAssets","isAvailableToUnassignDriver","onUnassignedDrivers","onStartAssignDrivers","unassignDriverTooltipContent","assignAssetsTooltipContent","assignDriverUnavailableReason","assignDriverTooltipContent","isAllowAssignAssets","isAllowAssignDrivers","currentWaypointId","availableSteps","waypointId","currentWaypoint","currentFirstDoAction","useTimeMark","timeMark","runningOutOfTimeToAssignAsset","isShowAssignDrivers","isAllowToUnassignDriver","isShowAssignAssets","overlayTooltipPosition","toAction","checkIsApiBrokerShipperContractDetails","parseErrors","accessDeniedToApi","accessDeniedToEntity","httpStatusCode","phoneAlreadyExist","expiredContextPreviewReserve","assignmentSelfCostPrediction","orderCreation_FailedCompleteRFQ_CapacityExcess","faultCode","orderCreation_FailedCompleteRFQ_Overweight","orderCreation_FailedPreviewRoute_ProhibitedCountry","orderCreation_FailedPreviewRoute_RouteNotFound","orderCreation_FailedPreviewRoute_RouteWaypointNotLinkable","orderCreation_ShipperNotAllowedToHaveNewOrders","orderCreation_ShipperNotAvailable","brokerDeadheadCreation_ExpirationContext","deadheadCreation_InvalidVehicle","tenderJobNotFound","tenderJobNotInProcessingState","TruckTriggerLabel","onOpenDetails","resetTooltipNode","IGNORE_ACTION_TYPES_SET","CHECK_GPS_STATUS_REQUEST_ERROR","IGNORE_API_ERRORS_TYPES_SET","wrongPassword","wrongRole","IGNORE_API_ERRORS_SUB_TYPES_SET","checkIsIgnoreErrorModal","shouldIgnoreErrorModal","checkIgnoreError","checkIsUnauthorizedError","clearEmptyValues","canUseBrokerAdminSuggest","selectGPSCheckQuery","gpsTrackingStatus","selectGPSCheckStatus","selectGPSCheckData","selectGPSIsChecking","selectGPSStatus","hasGps","unable","addressA","addressB","allowToUpdateAddress","allowToDelete","allowToUpdateTimeSlots","routeValues","OriginIcon","dodgerBlue","effect","deps","didMount","ReasonLabel","ArchiveReasonAlert","rfqDetailsState","AddressChangesIndicator","formattedAddress","formatLocation","selectDocumentsState","documents","selectUploadingDictDocumentId","selectUpdatingDocumentId","MapStackClusterPin","BASE_HEIGHT_PX","verticalIndex","hasBorder","newUserSelection","isPrevSelectedLink","trailersSuggestItem","trucksSuggestItem","FETCH_STATISTICS_REQUEST","FETCH_STATISTICS_REQUEST_BEGIN","FETCH_DONE_STATISTICS_REQUEST_BEGIN","FETCH_DONE_STATISTICS_REQUEST_ERROR","FETCH_DONE_STATISTICS_REQUEST_SUCCESS","FETCH_REJECT_STATISTICS_REQUEST_BEGIN","FETCH_REJECT_STATISTICS_REQUEST_ERROR","FETCH_REJECT_STATISTICS_REQUEST_SUCCESS","selectTrailersDictList","selectTrailerDictTypeIds","trailersDictList","formattedDate","currentRule","initialPartnerTypeDocumentsState","byType","DOCUMENTS_DICT_REQUEST_BEGIN","currentPartnerTypeState","DOCUMENTS_DICT_REQUEST_SUCCESS","DOCUMENTS_DICT_REQUEST_ERROR","ShipperContractLaneCreationMap","isDisabledDraggable","isAllowShowLoaders","syncFormMapStateContext","tryGeocodeByPoint","useGoogleMapGeocoding","isShowEstimate","draggablePinRef","activeLocation","setActiveLocation","draggable","setDraggable","handleDragMove","childKey","childProps","mouse","dispatchChangeOriginLocation","dispatchChangeDestinationLocation","onChildMouseDown","onChildMouseUp","onChildMouseMove","isWrong","hasDropOffLocationError","hasPickUpLocationError","laneCreation","TransportOrderStatusPill","isSpot","MileageInfoTable","getDistancePartRows","distancePart","distance","isInitOpenRows","SyncShipmentDetailsFormValuesContext","createSyncFormValuesContext","TrailersTable","trailers","allowedCheckboxes","selectedTrailersSet","onSelectTrailers","addedByBroker","isShowFlag","linked","dedicated","archivedBy","archivedByBroker","archivedDate","AssetLink","linkedAsset","PickupPointPicker","currentRange","PartnersIcon","PartnersIconProps","TYPE_I18N_MAP","SUB_VALUES_MAP","LEVEL_PADDING","nestLevel","isNotHighlightSelectedOption","AssetServiceLocationContext","FETCH_SPOT_REQUEST_DETAILS_REQUEST","fetchSpotRequestDetailsBegin","FETCH_SPOT_REQUEST_DETAILS_REQUEST_BEGIN","fetchSpotRequestDetailsSuccess","FETCH_SPOT_REQUEST_DETAILS_REQUEST_SUCCESS","fetchSpotRequestDetailsError","FETCH_SPOT_REQUEST_DETAILS_REQUEST_ERROR","bidId","ASSIGN_BID_TO_SPOT_REQUEST","updateSpotRequestRequestBegin","UPDATE_SPOT_REQUEST_REQUEST_BEGIN","updateSpotRequestRequestSuccess","UPDATE_SPOT_REQUEST_REQUEST_SUCCESS","updateSpotRequestRequestError","UPDATE_SPOT_REQUEST_REQUEST_ERROR","convertRoutePointType","fetchCountrySettingsDictSaga","fetchCountrySettingsDictBegin","getCountrySettingsDict","fetchCountrySettingsDictError","fetchCountrySettingsDictSuccess","DocumentActionsEnum","canDownloadDocuments","canRevokeDocuments","upload","documentsWithoutExpirySet","CompanySignUpForm","parseRequestError","DEFAULT_ICON_PRESET","ProfileMenuIcon","CollapsedOfferDetails","totalOfferPrice","isOpenDetails","isChangedTotalPrice","isAllowEditTotalPrice","onStartEditTotalPrice","teamDriveTooltipLabel","urgentShipmentTooltipLabel","layoverHours","layoverTooltipLabel","handleTriggerClick","distanceKm","HTMLElement","dataset","clickDetect","isGreenTruck","OfferAttributeIconTypeEnum","eco","tooltipLabel","isUrgentShipment","hasLayover","isTeamDrive","fetchShipperInfoSaga","selectShipperInfoById","shipperInfoById","selectShipperInfoRequestStatus","currentRequestStatus","fetchShipperInfoBegin","fetchOrderReservesShippers","fetchShipperInfoError","shipperInfo","fetchShipperInfoSuccess","redirectToStartNewOrderSaga","generatePath","delayedSyncFetchTaskOffers","unSubscribeTaskOffersSaga","cancel","SUBSCRIPTION_INTERVAL","delayedSyncFetchTaskOffersSaga","expectedOffersCount","attempt","isComplete","getPriceOffers","responsePriceOffers","apiPriceOffersError","apiPriceOffers","fetchOffersError","fetchOffers","getCreateRFQSaga","isBroker","actualOrderRequest","clearOffersTasks","createRFQBegin","createMultipointOrderQuotation","apiCreateRFQResponse","apiCreateRFQError","apiCreateRFQResult","createRFQError","defaultAdditionalServices","getDefaultAdditionalServices","selectedDropOffDate","selectedPickupDate","orderCreationPickUpDatesRange","orderCreationDropOffDatesRange","dropOffDates","orderCreationShipperId","baseQuery","newOrderOffers","setExpectedOffersCount","fork","apiRFQDetailsResponse","apiRFQDetailsError","apiRFQDetailsData","preparedRFQ","createRFQSuccess","fetchRoute","getCreatePriceOfferWithLaneSaga","createPriceOfferWithLaneRequestBegin","apiCreateLaneOrderPriceOfferError","apiCreateLaneOrderPriceOfferResult","createPriceOfferWithLaneRequestError","apiLanePriceOffers","apiLanePriceOffersError","apiLanePriceOffersResult","apiLanePriceOffer","offerId","newOrderDetailsWithLane","lanePriceOffer","createPriceOfferWithLaneRequestSuccess","handlePreviewReserveErrorSaga","changeReserveQuery","fetchTaskOfferSaga","selectOffersTasks","offersTasks","getEnsureCreatedRFQSaga","currentRFQ","currentRoute","selectPriceOffers","currentPriceOffers","apiRFQError","apiRFQData","orderCreationComplete","pickupDatesRange","dropOffDateRange","firstRFQPoint","lastRFQPoint","getCreatedOrderSaga","createOrderRequest","isCreateNextOrder","createOrderBegin","completeRFQ","responseCreateOrder","createOrderError","createOrderSuccess","ordersRefreshChannel","resetOrderCreation","SHIPMENT_DETAIL_FORM_NAME","orderCreation","orderDetails","rePath","CommonRoutesEnum","selectOfferSaga","newOrderDetails","createReserveSaga","createReserveQuery","countrySettingsByCountryCode","apiCreateReserveQuery","getApiReverseQuery","isValidAddresses","addresses","editablePointTypeSet","ship","resetCreateReserveWithQuery","createReserveBegin","logDebug","restApiCreateReserveQuery","createMultipointOrderReservation","responseCreateReserve","createReserveError","preparedReserve","createReserveSuccess","correctedPoints","notes","previewReserveSaga","apiReservePreviewQuery","previewReserveBegin","previewReserve","responsePreviewReserve","apiPreview","previewReserveError","previewReserveSuccess","createFakeIdFromPoint","correctedTimeWindowsByPointId","correctedBrokerWindowByPointId","correctedBrokerWindow","changeReserveQuerySaga","selectReserveQuery","prevReserveQuery","prevReserveRequest","reverseQueryChanges","getReverseQueryChanges","currentReserveQuery","mergeReverseQueryChanges","isSameReserveRequest","isInitReserveRequest","setCreateReserveQuery","reserveQueryModifyEvent","reserveQueryCorrection","getReserveQueryCorrection","correctReserveQuery","selectReservePreviewQuery","previewReverseQueryChanges","currentReservePreviewQuery","queryModifyEventAfterReserve","selectReservePreview","reservePreview","selectReservePreviewRequest","reservePreviewRequest","isInitReservePreview","setPreviewReserveQuery","previewReserveQueryModify","previewResults","previewReserveQueryCorrection","getPreviewReserveQueryCorrection","correctPreviewReserveQuery","summaryEvent","addEvent","flush","prevSummaryEvent","emitQueryModifyIfNeed","watchSyncChangeReserveQuerySaga","fixed","CHANGE_RESERVE_QUERY","queryModifyEventsQueue","QueryModifyEventsQueue","setAllowCreateRFQ","watchPriceOffersExpirationSaga","REFRESH_INTERVAL","selectPriceOffersList","expriredOfferIds","checkIsPastDate","expirationMs","markOffersExpired","CREATE_RFQ_REQUEST","CREATE_PRICE_OFFER_WITH_LANE_REQUEST","ENSURE_CREATED_RFQ","CREATE_ORDER_REQUEST","FETCH_ROUTE","apiRouteError","apiRoute","fetchRouteError","fetchRouteSuccess","FETCH_SHIPPER_INFO","SELECT_OFFER","FETCH_TASK_OFFER","PREVIEW_RESERVE_ERROR","takeLeading","CREATE_RFQ_REQUEST_ERROR","CREATE_PRICE_OFFER_WITH_LANE_REQUEST_ERROR","ControlLoaderLabel","selectSpotRequestsStatsRequest","spotRequestsStats","selectSpotRequestsStats","BrokerOrderDetails","onStartEditStopContact","onUpdateShipment","useAttachTourPapers","brokerTourPapersUrlFactory","onAttachTourPaper","onDeleteTourPaper","onConfirmDeleteTourPaper","deleteTourPaperRequestStatus","onDownloadTourPaper","onOpenGalleryTourPaper","getTourPaperThumbnailUrl","deleteTourPaperConfirmationDialog","tourPaperGalleryModal","useAttachShipmentPapers","brokerShipmentPapersUrlFactory","onConfirmDeleteShipmentPaper","deleteShipmentPaperRequestStatus","deleteShipmentPaperConfirmationDialog","shipmentPaperGalleryModal","useTabs","setHighlightedShipmentId","managedShipmentId","setManagedShipmentId","tourShipmentActionsByShipmentId","resultById","tourShipmentAction","targetNode","allWaypoints","waypointById","carrierTransportOrders","distanceByCountryRows","useDistanceByCountryRows","distanceRowsFactory","mileageDetails","shipperOrderDetailsRowsFactory","useShipperOrderDetailsRowsFactory","carrierTotalCostDiff","useMoneyDiff","fullCarrierCost","creationDetails","isPaid","shipperContract","shipperContractLane","transportOrderCount","tourCount","shipmentCount","transportOrders","useBrokerOrderPayloadWaypoints","originWaypoint","destinationWaypoint","allShipments","requiredTemperatureMin","requiredTemperatureMax","hasNotShowShipments","ShipmentWarningEnum","hasMissedShipments","isLastNotFinallyShipment","finallyStatusSet","reeferTemperatureMin","trailerTemperature","reeferTemperatureMax","hasTemperatureViolation","checkTemperatureViolation","correctedDateTimeTo","AlertGroup","runOutOfTimeToAssignAsset","eta","formatISOTime","currentMin","currentMax","requiredMin","requiredMax","truckCoordinatesUpdatedAt","formatISOTimeWithoutTimezone","transportationOrderIndex","shipmentIndex","TabTypeEnum","DEFAULT_TAB_TYPE","pricing","TAB_MAP_T","newOrderParameters","alerts","assignment","ferry","routing","SystemSettings","queryTabType","systemSettingsTab","getWalletIconProps","getCargoUnitIconProps","getTimeWindowIconProps","getGeoAreaIconProps","commonFormProps","onUpdate","systemSettingsChanges","tabType","handleTabClick","DeletePaperConfirmation","isEnabled","intervalIdRef","fetchCarrierContractDetailsSaga","selectCarrierContractStateById","carrierContractState","fetchCarrierContractDetailsBegin","fetchCarrierContractDetailsError","fetchCarrierContractDetailsSuccess","FETCH_CARRIER_CONTRACT_DETAILS_REQUEST","routingGeometrySaga","fetchRoutesPlainGeometry","fetchRoutePlainGeometry","fetchRouteGeometryBegin","fetchRouteGeometryError","fetchRouteGeometrySuccess","ChangeRateOrContractWarning","rightInputText","initialInputValue","hasOptionsSeparator","formatOption","setSelectedOption","selectedOptionIndex","indexOf","nextSelectedOption","optionInputValue","inputRightTextNode","PlaceholderFormatter","findCompanyUsersByName","findPartnerUsersByName","minMs","maxMs","stepMs","utcOffsetMs","ticksMs","shiftedMin","floor","RestoreUserConfirmation","initialCompanyDriversState","inviteRequest","addRequest","fetchDetailsRequest","getPermissions","userRolesSet","profileTypeRestrictConfig","necessaryRoles","profileTypeRestriction","ALL_AUTH_PROFILE_TYPES","brokerTourEditSlice","resetBrokerTourEdit","dropOffAddress","ordersType","transportOrdersType","TransportOrderTypeEnum","countrySettingsDict","tourActionI18nMap","tourWaypointEventRestrictionI18nMap","NOT_FULLY_ASSIGN","NOT_RESOLVE_SHIPMENT","TRAILER_STILL_USE_PREVIOUS_TOUR","ChangeTourStatusFooter","useConsistentStateMachine","isAllowFetch","currentFirstDoRestriction","restriction","currentNeedManageShipmentEvent","previousWaypointId","previous","previousWaypoint","previousFirstDoAction","previousFirstDoRestriction","toursWaypointsUndoArrived","toursWaypointsUndoLeft","handleDoManagementShipmentEvent","handleDoCurrentFirstDoAction","toursWaypointsArrived","toursWaypointsLeft","isShowActionButton","secondaryPositive","confirmApproveContractModalDialog","contractChanges","updateCarrierContract","fetchContractDetailsRequest","approveCarrierContract","DeclineOrderConfirmation","initialRoutingGeometryState","routingGeometrySlice","resetRouteGeometry","onActiveRule","onDeactiveRule","onDeleteRule","activateOption","deactivateOption","deleteOption","safeArithmeticOperations","minus","clientWidth","FORMAL_T_MAP","ApiContactFormalEnum","mr","mrs","dr","mag","prof","AVAILABLE_FORMALS","UserFormalDropdown","FETCH_COMPANY_REQUEST","FETCH_COMPANY_REQUEST_BEGIN","FETCH_COMPANY_REQUEST_ERROR","FETCH_COMPANY_REQUEST_SUCCESS","UPDATE_COMPANY_REQUEST","UPDATE_COMPANY_REQUEST_BEGIN","UPDATE_COMPANY_REQUEST_ERROR","UPDATE_COMPANY_REQUEST_SUCCESS","needAppointmentWaypoints","payloadWaypoint","appointmentByBroker","timeIntervals","timeIntervalFrom","targetDateFrom","targetDateTo","isSame","timeInterval","waypointsErrors","waypointErrors","waypointsFormValues","needAppointmentWaypoint","waypointNumber","BigQuestionIcon","normalizeTeamDetails","teamDetails","companies","companyA","companyB","userA","userB","FilledCircleIcon","ReplacedLocationsAlertContent","getDocumentRows","dictDocuments","requiredDictDocuments","optionalDictDocuments","optional","createRFQRequest","shipperInfoRequestStatus","selectCreatePriceOfferWithLaneRequest","createPriceOfferWithLaneRequest","selectLanePriceOffer","selectCreateOrderRequest","reserveQuery","previewReserveQuery","selectIsAllowCreateRFQ","isAllowCreateRFQ","previewReserveRequest","bestPriceOffer","isBestPrice","byPriceAsc","bestUrgentOffer","LONG_DEADHEAD_PERCENT","viewMs","targetTicks","minTicks","maxTicks","bestStepMs","stepCandidates","bestDelta","hasInRange","numTicks","delta","RightArrowIcon","TimeWindowPicker","isAllowOnlyDragRange","isLockedLeftRangeControl","isLockedRightRangeControl","maxValuesRangeWidth","relativeTime","GoogleAddressComponentsTypeEnum","prepareAddressComponents","componentsMap","component","short_name","political","long_name","streetNumber","postalCode","locality","postalTown","administrativeAreaLevel1","administrativeAreaLevel2","administrativeAreaLevel3","administrativeAreaLevel4","administrativeAreaLevel5","formatAddressComponents","getGeoCodingLocation","utc_offset_minutes","address_components","formatted_address","lastSelectedOption","setLastSelectedOption","getDriverLabel","hasInitialOption","DriverIconProps","optionClassName","repeatDays","selectedRepeatType","repeatType","selectedRepeatMode","repeatStrategy","RepeatStrategyTypeEnum","none","RepeatTypeEnum","weekdays","days","day","WEEK_DAYS_ORDER","weekly","daysCount","i","formattedValidTill","isDiffImpactStrategy","diffImpactStrategySet","parsedImpactValue","impactDiffValue","impactValue","impactPriceComponent","zipsFrom","ZIP_CODES_SEPARATOR","zipsTo","repeatMode","initialShipperContractDetailsItemState","selectDownloadShipperContractRequest","downloadRequest","WaypointNumberPin","TOUR_STATUS_T_MAP","TourStatus","MapLoader","onClearAssets","onAssignAssets","assignmentRequestStatus","hasInitialAssets","truckSuggestRequestStatus","truckSuggestIds","truckInfoById","trucksOptions","trailerSuggestRequestStatus","trailerSuggestIds","trailerInfoById","trailersOptions","handleClearAssets","renderTruckTrigger","isDisableShowOnMap","renderTrailerTrigger","formValueChanges","linkedTrailerId","TruckIconProps","linkedTruckId","secondaryDanger","TransportationOrderWasUpdatedCard","stopFieldRows","stopIndex","fieldIndex","ScrollToFirstError","isShowSelectedAll","setShowSelectedAll","versionIds","actualVersionId","versionId","SearchControl","setFocused","setText","apiReserve","apiPoints","restApiReserve","apiPoint","defaultFrom","defaultTo","restApiPoint","ReviewFooterContent","createInitWaypointTruckDropPoint","lastDropWaypoint","waypointAddress","FETCH_DISPATCHERS_REQUEST","FETCH_DISPATCHERS_REQUEST_BEGIN","FETCH_DISPATCHERS_REQUEST_ERROR","FETCH_DISPATCHERS_REQUEST_SUCCESS","SHIPMENT_REQUIRED_FIELDS","SHIPMENT_NOT_ZERO_FIELDS","POINT_CONTACTS_REQUIRED_FIELDS","shipmentFormErrors","parsedCargoWeight","parsedUnitsCount","spotRequestsFilter","partnerFilter","createPartner","createExternalPartner","priceSettingsRuleFilter","statisticsFilter","shipperContractLaneDetails","editBrokerTeamDetails","PartnerDetailsLayout","blockUnlockingReason","getBlockLockingReason","blockLockingReason","isVerified","RevokedPartnerShipperLaneContractCard","FIELD_LABEL_T_MAP","apiSystemSettings","WidgetChangesDetector","onToggle","RevokedPartnerCarrierContractCard","BrokerToursTable","goToBrokerTourDetails","brokerTourShort","selectRatesQuery","uploadCSVRequest","downloadImage","imageUrl","getAuthHeaders","fetch","contentDisposition","get","filename","filenameMatch","blob","URL","createObjectURL","createElement","href","appendChild","click","removeChild","revokeObjectURL","TimeWindowIcon","defaultAvailablePriceComponents","availablePriceComponentByType","getAvailablePriceComponent","defaultAvailableStrategies","commonAvailableStrategiesByPriceComponentType","availableStrategies","getAvailableStrategies","selectedPriceComponent","CURRENCY_TYPE_MAP","euro4SignificantDigitsAbbreviation","SIMPLE_UNIT_MAP","UNIT_TYPE_T_MAP","oneHundredKilometersAbbreviation","metersAbbreviation","litersAbbreviation","minutesAbbreviation","milliSecondsAbbreviation","secondsAbbreviation","kilometersPerHourAbbreviation","UnitType","formattedSubTypes","UserSettingsIcon","initialPartnerShipperContractsState","shipperContractsSlice","fetchShipperContractsPage","fetchShipperContractsPageBegin","partnerState","fetchShipperContractsPageSuccess","fetchShipperContractsPageError","resetShipperContracts","DateCell","Checkbox","indeterminated","isBoxHidden","isHover","setHover","handleMouseMove","handleMouseLeave","ExpireSoonPartnerCarrierContractCard","OrderStatusPill","ORDER_STATUS_T_MAP","SendingToSpotFooterContent","spotRequestLimitMs","selectSpotRequestLimitMs","startValidTillTimeWindow","roundTimestamp","allowedRangeValidTill","pickupDockingHoursFromTimestamp","sendToSpotByTour","useSyncReserveChannels","reserveQueryModifyChannelHandler","correctedPointsByFakeId","prevRouteFormValue","newRouteFormValue","eventCorrectedPoint","replacedCoordinate","prevLocation","prevTimeWindow","convertedStart","convertISODateToTimezone","convertedEnd","reserveSyncPointsModifyChannel","TransportOrderListPageLayout","orderQuickFilterOptions","orderQuickFilterOptionSeparators","selectTransportOrdersTotal","ordersPages","selectTransportOrdersPages","orderById","selectTransportOrdersByIds","transportOrdersFilters","transportOrdersPage","transportOrdersSort","TransportOrderSortEnum","receiveDate","transportOrdersRefreshChannel","fetchTrucksDict","transportOrdersPaginationChannel","isSelectedDedicated","isSelectedSpot","Widget","SyncPointsWatcher","TruckIconTypesEnum","TruckModelDropdown","trucksDictList","getTruckDictTypeLabel","BrokerOrderTable","goToBrokerOrderDetails","goToPartnerDetails","shipperPrice","selectAdditionalServices","selectUpdateAdditionalServiceRequest","selectFetchAdditionalServicesRequest","ALL_EMISSION_STANDARDS","EmissionClassMultipleDropdown","EMISSION_CLASS_I18N_MAP","ContractNameCell","PartnersTable","canDeletePartner","handleDelete","isAllVerified","checkAllVerified","RouteMap","RateSourceOption","isContract","isCurrentContract","WarningTextFormatter","LinearScaleIcon","deleteUnavailableReasonI18nMap","NO_ACCESS","LAST_DELIVERY_NOTE","LAST_SIGNED_DELIVERY_NOTE","TO_IS_CANCELED","TO_IS_DONE","SHIPMENT_IS_CANCELED","SHIPMENT_IS_DONE","PaperLayout","imageSrc","imageAlt","originalFileName","isDeleting","deleteUnavailableReason","isHideUserInfo","isDisabledDelete","handleClick","isShowUserInfo","src","alt","currentColor","preExtraSmall","RevokeShipperLaneConfirmationModal","laneNumber","onChangeRoutePointReserve","hasSelectedAnyTeamDrive","onResetRoutePointLocation","currentPointTimeWindow","syncShipmentDetailsFormMapStateContext","fakeIdFieldName","isBrokerTimeWindowFieldName","selectedIsBrokerTimeWindow","brokerAppointmentDropOffRange","brokerAppointmentPickUpRange","brokerAppointmentTimeWindow","brokerTimeWindowRanges","brokerAvailableValuesStart","brokerAvailableValuesEnd","brokerAvailableValues","hasViolation","violated","selectedLane","isDisabledTimeSlots","hasTriangle","isPickupOrDeliveryRoutePointPicker","isRedTriangle","triangleClassName","SwitcherThemeEnum","NameCell","FormAsyncErrorsContext","FETCH_ASSIGN_DETAILS_REQUEST_BEGIN","FETCH_ASSIGN_DETAILS_REQUEST_ERROR","FETCH_ASSIGN_DETAILS_REQUEST_SUCCESS","FETCH_AVAILABLE_VEHICLES_REQUEST_BEGIN","FETCH_AVAILABLE_VEHICLES_REQUEST_ERROR","FETCH_AVAILABLE_VEHICLES_REQUEST_SUCCESS","FETCH_AVAILABLE_CARRIERS_REQUEST_BEGIN","FETCH_AVAILABLE_CARRIERS_REQUEST_ERROR","FETCH_AVAILABLE_CARRIERS_REQUEST_SUCCESS","SET_INIT_ASSETS_INFO","PREDICT_SELF_COST_REQUEST_BEGIN","PREDICT_SELF_COST_REQUEST_ERROR","PREDICT_SELF_COST_REQUEST_SUCCESS","FETCH_ASSET_SCHEDULE_BEGIN","FETCH_ASSET_SCHEDULE_ERROR","FETCH_ASSET_SCHEDULE_SUCCESS","SET_ASSET_SCHEDULE","SET_EVENT_LOAD_ROUTE","SET_SHOW_SELECTED_ASSET_SCHEDULES","SET_SELECTED_SCHEDULE_EVENT_ID","initialDeadheadCreationState","contextQuery","contextResponse","contextRequest","previewQuery","previewResponse","previewRequest","deadheadCreationSlice","changeDeadheadContext","setContextQuery","initContextRequestBegin","initContextRequestSuccess","initContextRequestError","resetContext","resetPreviewContext","resetPreviewContextQuery","setPreviewQuery","previewContextRequestBegin","previewContextRequestSuccess","previewContextRequestError","applyContextRequestBegin","applyContextRequestSuccess","setIsApplyingContextChanges","resetDeadheadCreation","LoaderOverlay","brokerOrderWaypoints","firstPayloadWaypoint","lastPayloadWaypoint","payloadWaypointStopTypeSet","payloadWaypoints","fetchStatistics","fetchStatisticsBegin","fetchDoneStatisticsBegin","fetchDoneStatisticsSuccess","fetchDoneStatisticsError","fetchRejectStatisticsBegin","fetchRejectStatisticsSuccess","fetchRejectStatisticsError","PriceDetailsHeader","controlsColor","getControlColor","inputProps","currentTarget","isHideValueControl","stringNextValue","AttentionTextFormatter","UNIT_TYPE_MAP","STEP_MAP","FIELD_DESCRIPTION_T_MAP","renderNumberField","EditTourStopContactFooterContent","BrokerTourDeadheadCreationPage","applyRequestStatus","selectDeadheadApplyRequest","sideBarFooterAlertsContextValue","handleExpireContext","mapStateContextValue","useSyncMapStateContextValue","assetScheduleContextValue","useSyncAssetScheduleContextValue","doNotIncludeCostsInTransportOrder","BooleanParam","deadheadPreviewResponse","selectDeadheadPreviewResponse","activeStepIndex","setActiveStepIndex","initialFormValuesRef","newDeadheadTimeWindows","initialFormValues","setDoNotIncludeCostsInTransportOrder","onExpireContext","routeDetailsFormValues","prepareContacts","additionalTimeWindows","isShowExcludeCountriesControl","pickUpDetails","pickupReferenceNumber","dropOffDetails","dropOffReferenceNumber","loadDetails","useEditRouteWatcher","prevFirstEmptyLocationRoutePointIndex","routePointValue","newRouteValue","isShouldResetTimeWindow","prepareValues","blockedI18nMap","HAS_LOADING_UNLOADING_SHIPMENT","ALL_SHIPMENTS_NOT_DELIVERED","DRIVER_NOT_ARRIVED_AT_STOP","ATTACH_DOCUMENT","LOADING","UNLOADING","shipmentActionI18nMap","AWAITING_LOADING","IN_TRANSIT","DELIVERED","CANCELED","ChangeShipmentStatusSidebarFooter","cancelLastShipmentConfirmation","availableStatuses","useStateMachine","firstForwardAvailableStatus","forward","forwardDescription","backwardDescription","firstBackwardAvailableStatus","backward","isShowCancelAction","canBeCanceled","useAttachPaperForStateMachineRenderTrigger","requiredDocuments","renderCurrentShipmentAction","eventDateTime","timeStamp","SelfCreateCompanyPage","isShowLockedMessage","setIsShowLockedMessage","countriesDictRequest","selectCreateCompanyRequest","selectCreatedCompanyIsLocked","parseAuthReturnUrl","AuthMessageIconsEnum","registrationCompanyRequestDraft","createCompanyRequest","BrokerOrderStatus","MapTooltip","onHover","FETCH_INVOICES_PAGE_REQUEST_BEGIN","FETCH_INVOICES_PAGE_REQUEST_ERROR","FETCH_INVOICES_PAGE_REQUEST_SUCCESS","RESET_INVOICES","handleClickOutside","wrapperNode","wrapperRef","shouldHandleOutsidePress","componentDidMount","componentWillUnmount","PureComponent","OutsideClickHandler","CommentIcon","trailersRefreshChannel","trailerDetailsRefreshChannel","trailersPaginationChannel","getDerivedStateFromError","componentDidCatch","generateTraceId","logErrorWithTraceId","setState","componentStack","Component","ErrorBoundary","PriceRuleTargetPill","ruleTarget","NotificationsBarContent","fetchNotificationsPage","fetchUnreadNotifications","resetNotificationPages","selectNotificationsPages","markAsReadRequest","selectMarkAsReadRequest","notificationsById","selectNotificationsById","currentPageNumber","selectCurrentPageNumber","currentPage","selectNotificationsTotal","hasNextPage","fetchNextPage","useIsScrollable","isScrollable","pageNotificationIds","pageIndex","allNotificationsIds","elementCount","notificationData","renderUnknownNotificationText","groupedNotifications","byDate","SideBarMessageEnum","dataLength","loader","scrollableTarget","onMarkAsRead","renderWaypointLocationAddressFormat","TabTourDetails","spotDetails","brokerWindowAppointmentWarning","getWaypointDetailRows","driverRows","driverArrivedTimeStamp","checkIsInDateRange","driverArrivedFalse","driverLeftFalse","brokerAppointmentStatus","checkBrokerAppointmentStatus","shouldBrokerWindowAppointment","withoutPadding","shouldShowCorrectedDateTime","UpdateUserIcon","defaultTimeoutMs","CopyTextButton","textForClipboard","timeoutMs","copyTimeoutIdRef","isCopied","setIsCopied","CLOSE_RFQ","changeRFQBegin","CHANGE_RFQ_REQUEST_BEGIN","changeRFQSuccess","CHANGE_RFQ_REQUEST_SUCCESS","changeRFQError","CHANGE_RFQ_REQUEST_ERROR","prepareApiActualOrderRequest","routePointFormValue","prepareApiReserveRoutePointChanges","apiRoutePointChanges","prepareApiReserveChangesAddRoutePoint","beforeFakeId","beforeAddressAlias","prepareApiReserveChangesDeleteRoutePoint","prepareApiReserveChangesChangeRoutePoint","prepareApiReserveChanges","apiChanges","handleOpen","optionByValue","Map","set","selectedValuesSet","newSelectedValuesSet","TRANSPORT_ORDER_STATUS_T_MAP","TransportOrderStatus","PickUpCell","pickUpDateFrom","pickUpDateTo","zipCodeFrom","countryCodeFrom","allowShowCountryCode","ExpirationRFQAlertContent","selectBrokerOrdersTotal","selectBrokerOrdersByIds","BidMessage","CreditLimit","updateAdditionalService","updateAdditionalServiceBegin","updateAdditionalServiceSuccess","updateAdditionalServiceError","fetchBrokerToursSaga","selectBrokerToursQuery","selectBrokerToursPages","getBrokerToursFilter","brokerToursPaginationChannel","cancelUnavailableReasonI18nMap","ORDER_NOT_IN_PLACED_STATUS","DISPATCHER_CANT_CANCEL_ORDER","ORDER_IS_NOT_ASSOCIATED_WITH_KAM","editBlockReasonI18nMap","KAM_IS_NOT_ALLOWED_TO_EDIT_ORDER","AT_LEAST_ONE_TOUR_NOT_IN_STATUS_CARRIER_UNASSIGNED","AT_LEAST_ONE_TOUR_HAS_ACTIVE_TRANSPORTATION_ORDER","AT_LEAST_ONE_TOUR_IS_ON_SPOT","ORDER_IS_LOCKED_FOR_EDITING_BY_ANOTHER_USER","NEED_TO_FINISH_BROKER_APPOINTMENT_FIRST","DISPATCHER_IS_NOT_ASSOCIATED_TO_SHIPPER","BrokerOrderDetailsPageContent","brokerOrderDetailsRequestStatus","updateSpotRefreshChannel","papersEditRefreshChannel","refreshBrokerOrderDetailsPageHandler","brokerOrderDetailsRefreshChannel","editingStopContact","setEditingStopContact","handleStartEditWaypointContact","handleCloseEditStopContact","sendingToSpotTourId","isActiveSendingToSpot","editingTimeWindowTourId","isActiveTimeWindowEdit","handleCloseSendingToSpot","closeEditTimeWindows","handleUpdateShipment","editTimeWindowsRequestStatus","spotRequestStatus","activeIndexTab","setActiveIndexTab","Tab","LogsSwitchableViewLayout","cancelingBrokerOrderConfirmation","handleCancelBrokerOrder","successAlert","cancelUnavailableReason","isAvailableCanceled","editBlockReason","isDisabledRouteEditing","allowToEdit","brokerOrderRouteEdit","brokerOrderDetailsAssignments","BrokerOrderDetailsPage","HighlightedEntityContextProvider","onTimeWindowClick","innerRef","allTimeWindows","level","defaultStart","finish","scrollToTimeWindow","timeWindowId","handleTimeWindowClick","setViewMs","handleTimeWindowBlur","handleTimeWindowFocus","hasIcons","handlePlusZoom","prevViewMs","handleMinusZoom","delimeterMultipleMs","chooseDelimeterMultipleMs","momentObj","isDateOnly","levelIndex","viewHeight","timeWindowLevels","nowLabel","orderType","minPrice","maxPrice","receiveDatesFrom","receiveDatesTo","EmissionClassCell","selectPartnerPermissions","ExtraPointIcon","TelematicUpdateDateCell","WarningIndicatorCell","BROKER_REQUIRED_FIELDS","convertCountryCode","dictCountryCode","toUpperCase","excludedCountriesSet","routeFormValue","addRoutePointError","routePointLocation","routePointLocationError","verifyLocation","excludeLocationErrorMessage","firstsOperationUnavailableReason","orderCreationUnavailableReasons","getOperationUnavailableReasonTranslation","companiesQueryFilters","disableCompaniesDataSourceSet","AssetLabelFormatter","progressSteps","percentStep","progress","progressStep","SideBarMessage","actionsProps","TraceIdLabel","actionProps","createdByShipperId","createdByShipperName","INITIAL_TOUCHED","AVAILABLE_PERMISSIONS_ROLES_SET","addUsers","teamsIds","selectedRoles","warnings","hasUserCanAddUser","hasAvailableAddUsersRole","sameEmailContact","renderEmailError","apiDocument","HumanReadableFullDateCell","orderList","getRePath","RFQRoutesEnum","rfqList","profileBasic","ProfileRoutesEnum","profileDocuments","optionalDocuments","ProfileDocumentsRoutesEnum","shipperContracts","documentDetails","encode","brokerTeamsSlice","fetchBrokerTeamsPage","fetchBrokerTeamsPageBegin","fetchBrokerTeamsPageSuccess","fetchBrokerTeamsPageError","resetBrokerTeams","InvoicesTable","invoice","dueDate","CompactAttachPaperTrigger","ContinueRFQ","dropoffDate","CancelDriverInviteModal","driverPhoneNumber","carriersUtilization","selectCarrierUtilization","NotImplementedError","CommonUrlFactoryContext","BrokerOrderListPage","brokerOrdersPages","brokerOrderById","brokerOrderStat","selectBrokerOrderStats","unReadNotificationsGroupedCounts","selectGroupedNotificationCounts","brokerOrdersFilters","brokerOrdersPage","brokerOrdersSort","brokerOrderQuickFilterOptions","newOrders","carrierUnassign","DISPATCH_STATUS_CHANGED","AdditionalServices","selectedServiceTypeSet","selectAdditionalServicesGroupsByTrailerType","additionalServicesRequestStatus","removeServices","selectedServiceType","serviceEnum","addServices","additionalServiceGroup","onAddServices","onRemoveServices","lastCallTime","lastIsHidden","race","visibility","interval","InvitedToTeamCard","getAddedStopFakeIds","previewContext","previewContextAfterModify","prevStopsIds","initialCarrierContractState","contracts","fetchContractsRequest","uploadContractRequest","downloadContractRequest","partnerContracts","PadIcon","commonTranziitApi","getCountries","doFetchWithRetry","createUser","throwNotImplementedError","userChanges","fetchCurrentCompany","patchCompany","companyChanges","fetchTransportOrdersStatistics","fetchOrdersStatistics","fetchCarriersUtilization","period","forgotPassword","fetchUnReadNotifications","fetchUnreadGroupedNotificationCounts","isAll","sendTestNotification","fetchDocument","fetchImage","fetchStateMachineEntityStatus","updateStateMachineEntityStatus","fetchStateMachineToursAvailableSteps","stateMachineToursWaypointsArrived","stateMachineToursWaypointsLeft","stateMachineToursWaypointsUndoArrived","stateMachineToursWaypointsUndoLeft","createCompany","completeUserRegistration","getSubjectLogs","userContactId","CommonTranziitApi","TrailerCell","trailerModel","trailerCarrierId","CompanyLogo","UnassignDriversConfirmation","EntityCriticalWarningAlert","UnLockIcon","LinkProfileConfirmation","downloadTenderXLSFileSaga","selectTendersLastStatus","lastStatus","importTenderXLSFileSaga","fetchTenderStatusSaga","selectTendersFetchStatusRequestStatus","getTenderStatus","deleteTenderSaga","requestError","CustomZoneTextWrap","TruckIcon","prepareZipCodes","zipCodes","prepareCodes","codes","prepareValidDate","validDate","clearedDate","DEFAULT_IMPACT_VALUE","DEFAULT_IMPACT_DIFF_VALUE","editableRuleDetails","allTrailerDictTypeIds","isNewRule","loadedTrailerDict","ruleTrailerTypeIds","valueSign","dayNumber","startDate","endDate","DividerTrigger","parseDateString","convertToCoordinate","GoogleMapsPlacesApi","getPlaceDetails","placeId","places","PlacesService","getDetails","placesResult","isValidResult","UnVerifyPartnerAdressConfirmation","brokerTeamsRefreshChannel","brokerTeamsPaginationChannel","onPick","fileInput","onchange","files","initialBrokerTourDetailsState","brokerTourDetailsSlice","brokerTourDetailsState","shipperContractDetailsSlice","fetchShipperContractDetailsBegin","detailsItem","fetchShipperContractDetailsSuccess","fetchShipperContractDetailsError","revokeShipperContract","updateShipperContract","updateShipperContractDetailsBegin","updateShipperContractDetailsSuccess","updateShipperContractDetailsError","downloadShipperContract","downloadShipperContractDetailsBegin","downloadShipperContractDetailsSuccess","downloadShipperContractDetailsError","PartnerSelectList","initialSelectedPartners","selectedPartners","onChangePartners","highlightedPartnerIdsSet","isViewOnly","selectedPartnerIdsSet","shownOptions","onAddOption","onDeleteOption","checkIsApiBrokerShipperContract","useInitBrokerUsersSuggestOptions","userById","onUpdateInitOptions","getOptionTestSelector","isShowSelectAllTrigger","isShowDeselectAllTrigger","isSelectAll","allValues","deadheadCreationQueryModifyChannel","SpotAssetsAssignmentFooterContent","spotInfo","prepareRevokeInfo","revokeInfo","newContractId","UiContext","EMPTY_OPTIONS","LaneDropdownInput","getOptionLabel","optionsById","selectedOptionLabel","BadgeTypeEnum","BREAKING_POINT_WIDTH","devicePixelRatio","TOOLTIP_DELAY","Link","MenuAvatar","isExpanded","hasAccountLinkMatch","matchPath","exact","strict","avatarNode","large","MenuCompanyLogo","profileLink","hasCompanyLinkMatch","companyLogoNode","Navigation","setExpanded","shouldExpand","isActiveCompactMenu","helpIcon","helpContent","handleHelp","helpNode","isSmall","menuLink","excludeMatchPathname","badgeText","getCurrentYear","SpotRequestsSortEnum","TransportationOrderOutOfTimeToAssignDriverCard","PRICE_RULE_OPERATION_I18N_MAP","PriceSettingsRuleOperationEnum","surcharge","discount","CustomerCell","customerId","customerName","initialStateMachineItemState","availableSubjectStatuses","stateMachineSlice","fetchStateMachineSteps","fetchStateMachineStepsBegin","itemState","fetchStateMachineStepsSuccess","fetchStateMachineStepsError","updateEntityStatusBegin","updateEntityStatusSuccess","updateEntityStatusError","dependencies","setIsScrollable","scrollHeight","handleWindowResize","dialogs","dialog","hasZipCodeValidation","example","getZipCodeExample","RenderLogContextProvider","FETCH_MANAGERS_REQUEST_BEGIN","FETCH_MANAGERS_REQUEST_ERROR","FETCH_MANAGERS_REQUEST_SUCCESS","mods","selectedTimeWindows","formHoursFrom","formHoursTo","StickyFooter","getPages","prevPages","prevPaginationState","entities","entity","newById","hasDetailChanges","prevIds","hasIdsChanges","followingPageSuccessReducer","initialPaginationState","initialPages","memberDetails","ConfirmEmailPage","selectEmailVerificationRequestStatus","continueLocation","continueUrl","createSignInUrl","transportOrderRefreshChannel","unassignSaga","LogCardFooter","getFetchSettingsSaga","apiSettings","apiSetting","findCarriersByName","CarrierIconProps","HourglassHalfIcon","HourglassHalfIconProps","checkGPSStatusSaga","isSameRequest","checkRequestBegin","checkPartnerTrailerGPSStatus","checkPartnerTruckGPSStatus","checkRequestError","checkRequestSuccess","CHECK_GPS_STATUS_REQUEST","getTruckIds","selectedTrucksSet","TrucksPageLayout","importXLSRequestStatus","selectTrucksImportXLSRequest","exportXLSRequestStatus","selectTrucksExportXLSRequest","trucksPage","trucksSort","TrucksSortEnum","trucksFilters","trucksTab","withDefault","createEnumParam","setSelectedTrucksSet","selectTrucksTotal","trucksPages","selectTrucksPages","selectTrucksByIds","isOpenedFilters","openFilters","showAddSidebar","fetchTrucksStats","trucksRefreshChannel","trucks","trucksPaginationChannel","archiveDate","archiveAssetConfirmation","activateAssetConfirmation","changeRateOrContractConfirmation","trucksStats","selectTrucksStats","tableActionOptions","setUnavailableStatus","isPartner","tabsNode","handleSelectTab","importXLSAssetsModalDialog","useImportXLSAssetsModalDialog","isAllowExport","isAllowImport","canImportTrucks","onExportFilteredAssets","onExportAssets","onImportAssets","onStartImportXLS","canEditTrucks","onSelectTrucks","archiveTrucksRequest","activateTrucksRequest","activationTrucksRequest","onImportXLS","assignToContractRequest","changeRateTrucksRequest","changeRateVehiclesRequest","orderEditContextSaga","initOrderEdit","createOrderEditContextRequest","finishOrderEdit","deleteOrderEditContextRequest","resetOrderEdit","refreshOrderEditContextRequest","getCorrectedStops","waitFinishAllActionIfNeedOrderContextSaga","createOrderEditContextRequestBegin","fetchBrokerOrderError","fetchBrokerOrderResult","createOrderEditContextRequestError","getOrderId","editOrderCreateOrGetContext","createOrderEditContextRequestSuccess","orderEditBrokerOrderDetails","deleteOrderEditContextRequestBegin","editOrderDeleteContext","deleteOrderEditContextRequestError","deleteOrderEditContextRequestSuccess","resetBrokerOrderDetails","applyOrderEditContextRequestBegin","editOrderApplyContext","applyOrderEditContextRequestError","applyOrderEditContextRequestSuccess","watchSyncChangeContextQuerySaga","waitCreatingFinishIfNeedOrderContextSaga","waitApplyingFinishIfNeedOrderContextSaga","waitDeletingFinishIfNeedOrderContextSaga","sourceOrderEditContext","isShouldAddPoint","findContextStopByAlias","pointLocation","convertToPointLocation","pointType","checkIsAvailableCountryForShipByCode","beforeContextStop","findFirstBeforeStop","beforeContextStopIndex","editOrderContextAddStop","errorAfterAddStop","contextAfterAddStop","getDeletedStopAliases","getOrderStopAliases","targetContextStop","editOrderContextUpdateStop","editOrderContextDeleteStop","changeContextSuccess","FETCH_RULE_DETAILS_REQUEST","FETCH_RULE_DETAILS_REQUEST_BEGIN","FETCH_RULE_DETAILS_REQUEST_ERROR","FETCH_RULE_DETAILS_REQUEST_SUCCESS","FETCH_RULES_PAGE_REQUEST","FETCH_RULES_PAGE_REQUEST_BEGIN","FETCH_RULES_PAGE_REQUEST_ERROR","FETCH_RULES_PAGE_REQUEST_SUCCESS","RESET_RULE_PAGES","ACTIVATE_RULES_REQUEST","DEACTIVATE_RULES_REQUEST","UPDATE_RULE_REQUEST","UPDATE_RULE_REQUEST_BEGIN","UPDATE_RULE_REQUEST_ERROR","UPDATE_RULE_REQUEST_SUCCESS","UPDATE_RULE_REQUEST_RESET","CREATE_RULE_REQUEST","CREATE_RULE_REQUEST_BEGIN","CREATE_RULE_REQUEST_ERROR","CREATE_RULE_REQUEST_SUCCESS","CREATE_RULE_REQUEST_RESET","DELETE_RULES_REQUEST","DELETE_RULES_REQUEST_BEGIN","DELETE_RULES_REQUEST_ERROR","DELETE_RULES_REQUEST_SUCCESS","PREVIEW_RULE_REQUEST","PREVIEW_RULE_REQUEST_BEGIN","PREVIEW_RULE_REQUEST_ERROR","PREVIEW_RULE_REQUEST_SUCCESS","PREVIEW_RULE_REQUEST_RESET","UpdateTourConfirmationModal","RE_ASSIGNMENT_REQUEST_BEGIN","RE_ASSIGNMENT_REQUEST_SUCCESS","RE_ASSIGNMENT_REQUEST_ERROR","FETCH_RFQ_STATS_REQUEST","fetchRFQStatsBegin","FETCH_RFQ_STATS_REQUEST_BEGIN","fetchRFQStatsSuccess","FETCH_RFQ_STATS_REQUEST_SUCCESS","fetchRFQStatsError","FETCH_RFQ_STATS_REQUEST_ERROR","findShippersBegin","findShippersSuccess","findShippersError","isShowFocusError","isAlwaysShowError","isShowFormikError","childrenProps","KEY_PREFIX","parseKey","RouteEditMap","selectDeadheadContextRequest","mapRoutePointsById","prevBoundingBoxHashRef","onSetMapBoundingBoxCallback","boundingBoxHashRef","latLng","trailerToPickupPolylineId","payloadGeometryStates","fixReRenderRouteKey","renderRoutePointPin","tourDeadhead","ContentMargins","prepareCommonFetchPageQuery","pickupFrom","pickupTo","dropOffFrom","dropOffTo","createdFrom","createdTo","prepareBrokerFetchPageQuery","prepareShipperFetchPageQuery","driversFilters","StatisticGranularityEnum","UploadDocumentConfirmation","LocationCell","fetchCarrierContractsSaga","selectFetchCarrierContractsRequest","fetchCarrierContractsBegin","fetchCarrierContractsError","fetchCarrierContractsSuccess","updateCarrierContractSaga","fetchDetailsError","updateCarrierContractError","patchedPartnerContract","updateCarrierContractBegin","carrierContractDetailsRefreshChannel","updateCarrierContractSuccess","revokeCarrierContractSaga","revokeCarrierContract","rejectCarrierContractSaga","rejectCarrierContract","approveCarrierContractSaga","uploadCarrierContractSaga","uploadCarrierContractBegin","uploadCarrierContractError","uploadCarrierContractSuccess","downloadCarrierContractSaga","downloadCarrierContractBegin","rawResponse","downloadCarrierContractError","contentDispositionHeader","HEADERS","CONTENT_DISPOSITION","parseContentDispositionFilename","fileTypeHeader","CONTENT_TYPE","downloadCarrierContractSuccess","OrderCreationStepEnum","PlateNumberCell","lastAddedMediaField","setLastAddedMediaField","handleSelectLanguage","uppercaseFirstCharacterFormatter","mediaValue","onCreateField","socialMedia","AUTO_COMPLETE_OFF_FIX","stateMachineSaga","selectStateMachineItemState","getStateMachineEntityHash","nextToId","onKeyPress","tagName","isContentEditable","altKey","initialSpotRequestDetailsState","selectedTrailerTypeId","contactRoles","FEATURES_LIMIT","MAP_PIN_KEY","AVAILABLE_STOP_SET","AssignmentMap","SyncAssignmentFormMapStateContext","hoveredAssets","setHoveredAssets","hoveredTrailerId","hoveredTruckId","isSkipFocusRef","assetsSelectionContext","selectedPointToDropTrailer","selectedPointToDropTruck","isBlockedSelectTrailer","isBlockedSelectTruck","firstPickupDeliveryWaypointDate","findFirstPickupDeliveryWaypointDate","handleSelectAssets","handleHoverAssets","carriersById","vehicleLinks","isSelectedLink","availableVehiclesRequestStatus","selfCostPredictionRequestStatus","fetchAssignDetailsRequest","deadheadRoutingGeometryState","truckToTrailerRoutingGeometryState","dropTrailerRoutingGeometryState","dropTruckRoutingGeometryState","selectedTrailer","selectedTruck","defaultBoundPoints","isShowActualPlace","currentLatitude","currentLongitude","expectedLatitude","expectedLongitude","defaultBoundPointsHash","sourceNotInTimeVehiclesGeoJSONs","createVehiclesGeoJson","showSelectedNotCanBeInTime","showNotCanBeInTime","isShowUnavailableAssets","showCanBeInTime","blockSelectTruck","blockSelectTrailer","sourceInTimeVehiclesGeoJSONs","PROXIMITY","getPositionHash","lot","coordinate","positionsHashSet","selectedTruckCurrentPosition","selectedTrailerCurrentPosition","notInTimeVehiclesGeoJSONs","sourceGeoJSON","geoJSON","inTimeVehiclesGeoJSONs","notInTimeClusterator","notInTimeClusters","inTimeClusterator","inTimeClusters","handleImTimeClusterClick","handleNotImTimeClusterClick","isShowCalcCostPredictionLoader","isShowFindVehiclesLoader","isShowFetchTrailerScheduleLoader","isShowFetchTruckScheduleLoader","isShowFetchAssetScheduleLoader","isShowFetchAssignDetailsLoader","renderMapCluster","onSelectAssets","onHoverAssets","clusterFeature","isSelectedTruck","isSelectedTrailer","anyAssignmentInfo","truckCarrierUtilization","truckCarrierUtilizationPercent","trailerCarrierUtilization","trailerCarrierUtilizationPercent","arrivalDate","expectedArrivalDate","isLoadingTruckCarrierUtilization","isLoadingTruckUtilization","truckUtilization","utilization","truckRatePerKm","truckInvalidReason","invalidReason","isLoadingTrailerUtilization","trailerUtilization","trailerRatePerKm","trailerRateMode","trailerInvalidReason","isLoadingTrailerCarrierUtilization","renderScheduleEvents","scheduleEvents","isShowAssetSchedule","scheduleEventIndex","draggablePin","setDraggablePin","initPayloadDropPoint","createInitPayloadDropPoint","shouldShowDropTrailerPoint","viewToDropTrailerPoint","viewToDropLinkPoint","shouldShowDropTruckPoint","viewToDropTruckPoint","isSelectedSameDropOffPoints","pointToDrop","hasDropTrailerPointError","hasDropTruckPointError","currentAssetPositions","currentLinkPosition","currentTruckPosition","currentTrailerPosition","renderCurrentPosition","assignmentFindArea","assignmentAttention","assignmentSelected","assignmentRoute","routeById","selectCarrierContractState","selectUploadCarrierContractRequest","selectDownloadCarrierContractRequest","selectCarrierMainContract","selectCarrierContractById","PILL_THEME_BY_TRUCK_STATUS","TruckStatusEnum","TruckStatusPill","createCompanySaga","getCreateCompanySaga","createCompanyRequestBegin","createCompanyRequestError","forceRefreshToken","forceRefreshTokenError","createCompanyRequestSuccess","ActionsCell","firstPickupDeliveryWaypoint","AddressWidgetHeaderActions","onOpenGoogleMaps","createMapLink","isShowUnVerifyAction","hasAddress","LogCardHead","api","setApi","setLibraries","handleSet","libraryNames","libraryName","importLibrary","library","CarrierIcon","papersCount","getTotalWithOptimisticPapersCount","SettingsIcon","fieldValue","parsedTrailerType","typeId","lastModifiedByUsers","ALL_BROKER_USERS_VALUE","lastModifiedByBroker","addedByUsers","countriesOfRegistration","telematicUpdatedDateFrom","lastTelematicUpdateDateFrom","telematicUpdatedDateTo","lastTelematicUpdateDateTo","contractIds","updatedDateFrom","updatedDateTo","MIN_MAP_PRECISION_DELTA_METERS","MAX_MAP_PRECISION_DELTA_METERS","urgentOrderProcessingDelay","regularOrderProcessingDelay","minWindowSize","maxWindowSize","orderCreationSeconds","mapPrecisionDelta","hvoEmissionPercent","runOutOfTimeToAssignAssetsLimitMin","RUN_OUT_OF_TIME_TO_ASSIGN_ASSETS_LIMIT","runOutOfTimeToAssignAssetsLimitHours","MIN_IN_HOUR","renderRightInputIcon","optionsAccumulatorMapRef","optionsByValue","accumulatedOption","allOptions","optionValueSet","restSelectedOptions","DocumentTypeCell","isError","isIgnoreError","logWarningWithTraceId","setTimeLeft","defaultRenderLeftIcon","findShippersByName","minSize","lats","lngs","lat0","lng0","lat1","lng1","dlat","dlng","latAdj","lngAdj","sidebarData","timezone","parsedName","EntityWarningAlert","TransportationOrderMileagAndPaymentChangedCard","onEditShipperContractLane","selectUpdateShipperContractLaneRequest","ParanjaSideBarLayout","ShipperContractDetailsEnum","PartnersRoutesEnum","PartnersDocumentsRoutesEnum","ShipperContractLaneRoutesEnum","BrokerOrdersRoutesEnum","BrokerToursRoutesEnum","SettingsRuleRoutesEnum","AssetRoutesEnum","deprecateSignUp","confirmEmail","selfCreateCompany","accessDenied","shipperLaneDetails","DriverLinkFormatter","fetchShipperInfo","FETCH_SHIPPER_INFO_BEGIN","FETCH_SHIPPER_INFO_SUCCESS","FETCH_SHIPPER_INFO_ERROR","SET_ALLOW_CREATE_RFQ","createRFQ","CREATE_PRICE_OFFER_WITH_LANE_REQUEST_BEGIN","CREATE_PRICE_OFFER_WITH_LANE_REQUEST_SUCCESS","CREATE_RFQ_REQUEST_BEGIN","CREATE_RFQ_REQUEST_SUCCESS","FETCH_ROUTE_SUCCESS","FETCH_ROUTE_ERROR","createOrder","CREATE_ORDER_REQUEST_BEGIN","CREATE_ORDER_REQUEST_SUCCESS","CREATE_ORDER_REQUEST_ERROR","FETCH_OFFERS_ERROR","SET_EXPECTED_OFFERS_COUNT","FETCH_OFFERS","MARK_OFFERS_EXPIRED","fetchTaskOffer","tasksCount","fetchTaskOfferError","FETCH_TASK_OFFER_ERROR","CLEAR_OFFERS_TASKS","SET_CREATE_RESERVE_QUERY","CREATE_RESERVE_BEGIN","CREATE_RESERVE_SUCCESS","CREATE_RESERVE_ERROR","RESET_CREATE_RESERVE_WITH_QUERY","PREVIEW_RESERVE_BEGIN","SET_PREVIEW_RESERVE_QUERY","CORRECT_PREVIEW_RESERVE_QUERY","CORRECT_RESERVE_QUERY","PREVIEW_RESERVE_SUCCESS","resetReserveAndPreviewReserve","RESET_RESERVE_AND_RESERVE_PREVIEW","ShipmentWasUpdatedCard","activateVehiclesRequest","rateSourceOptions","currentRatesOptionLabel","selectedSource","rateSourceSet","DeleteUserIcon","canceledUnavailableReasonI18n","ONLY_BROKER_CAN_CANCEL_TOUR","PAYLOAD_TOUR_CANT_BE_CANCELED","NOT_IN_ASSIGNED_STATUS","HAS_TO_IN_TRANSIT_IN_PROGRESS_OR_DONE","ALREADY_CANCELED","BrokerTourDetailsPageContent","selectBrokerTourDetails","brokerTourDetailsRequestStatus","selectBrokerTourDetailsRequestStatus","editingStopContactSource","setEditingStopContactSource","handleStartEditStopContact","refreshBrokerTourDetailsPageHandler","editStopContactRequestStatus","setIsActiveSendingToSpot","scrollToShipment","handleManagedShipmentRendered","handleStartAssignment","fromBrokerTour","handleStartSendToSpot","cancelingBrokerTourConfirmation","handleCancelBrokerTour","canBeCanceledUnavailableReason","isDisabledTourCancel","onManagedShipmentRendered","isPayloadTour","renderFooterNode","BrokerTourDetailsPage","LayoverIcon","getLayoverIconProps","FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_BEGIN","FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_ERROR","FETCH_CARRIER_CONTRACT_DETAILS_REQUEST_SUCCESS","MapZoom","setZoom","treeNodes","allSubValues","currentValue","addAllSubValuesForTreeNode","CheckboxTree","isGroup","preparedValues","addAllSubValues","treeIndex","isChecked","isIndeterminated","BidsSortEnum","fetchPartnersSaga","resetPartners","fetchPartnersPageBegin","fetchPartnersPage","fetchPartnersPageError","fetchPartnersPageSuccess","partnersPaginationChannel","invitePartnerSaga","createPartnerRequestBegin","invitePartner","createPartnerRequestSuccess","createPartnerSaga","createFromExternalPlatformPartnerSaga","createFromExternalPlatformPartner","FETCH_PARTNERS_PAGE_REQUEST","INVITE_PARTNER_REQUEST","CREATE_PARTNER_REQUEST","CREATE_FROM_EXTERNAL_PLATFORM_PARTNER_REQUEST","FETCH_UTILIZATION_REQUEST","fetchCarrierUtilizationBegin","FETCH_UTILIZATION_REQUEST_BEGIN","fetchCarrierUtilizationError","FETCH_UTILIZATION_REQUEST_ERROR","fetchCarrierUtilizationSuccess","utilizations","FETCH_UTILIZATION_REQUEST_SUCCESS","resetCarrierUtilization","ListPageHeaderTabsLayout","isSmallTimeFont","getFetchRFQDetailsSaga","fetchRFQDetailsBegin","detailsResponse","rfqDetailsError","rfqDetailsData","fetchRFQDetailsError","getRFQSuggestedOffer","suggestedOfferResponse","suggestedOfferError","suggestedOfferData","fetchRFQDetailsSuccess","DEFAULT_REQUEST_TTL","DEFAULT_ERROR_TTL","checkIsExpiredRequest","ttl","checkIsExpiredError","requestOkTTL","requestErrorTTL","isUnauthorizedError","errorTTL","okTTL","defaultValue","GoogleMapContext","UNIT_BY_IMPACT_STRATEGY","EXACT","signedUnitTypesSet","RuleImpact","sign","absValue","isShowSign","PricingTypeEnum","FileIcon","collectFakeIdByHashFromInitContextQuery","getContextRouteStopAddressHash","SpotBidStatus","AVAILABLE_UNIT_TYPES","ShipmentPicker","closeOverloadingValidationAlertCallback","closeNotUsedPointValidationAlertCallback","closeTemperatureRangesValidationAlertCallback","isReefer","cargoUnitsCountFieldName","cargoUnitTypeFieldName","cargoWeightFieldName","cargoTemperatureRangeFieldName","cargoDescriptionFieldName","cargoDescription","pickUpReferenceNumberFieldName","pickUpReferenceNumber","dropOffReferenceNumberFieldName","poNumberFieldName","poNumber","weightMask","getWeightMask","unitOptions","pickUpPointIdFieldName","dropOffPointIdFieldName","selectedPickUpId","selectedDropOffId","routePointsById","selectedPickUpRoutePoint","selectedDropOffRoutePoint","pickUpPointOptions","selectedDropOffIndex","dropOffPointOptions","selectedPickUpIndex","CargoUnitIconProps","WeightIconProps","ErrorDetails","checkIsFetchError","limitedPercent","EMPTY_QUERY","initialCompanyTrucksState","selectTrucksQuery","selectDeleteTrucksRequestStatus","selectFetchTruckDetailsRequestStatus","selectFetchTrucksStatsRequestStatus","fetchStatsRequest","exportXLSRequest","importXLSRequest","brokerOrderAssignment","formatPartnerTypeParam","partnerTrucks","partnerTrailers","settingsRuleDetails","ruleDetails","settingsRuleCreation","partnerDocuments","partnerCarrierContracts","partnerShipperContracts","lanes","newPartnerShipperContractLane","newLane","laneDetails","brokerTourDeadheadCreation","brokerRFQList","AssignCarrierConfirmation","onConfirmation","leadingItems","trailingItems","BROKER_ADDITIONAL_SERVICES_TYPE","URGENT_PICKUP","urgentOverprice","itemCost","quantity","LOW_EMISSIONS","greenSurcharge","TIME_SLOTS_APPOINTMENT_BY_BROKER","EXTRA_POINTS","preparedLeadingItems","preparedTrailingItems","teamA","teamB","FooterSideBarAlertsLayout","onCloseAlert","checkIsApiCarrierTrailerDetails","DropPointPicker","toWithDropTruckTime","allowedDatesStartDate","fromDates","allowedDates","selectedRange","parsedRangeFrom","parsedRangeTo","selectedTimestamp","timezoneDate","routeStopType","iconProps","UpdatedPartnerShipperContractCard","brokerOrderStats","ModelCell","manufacturer","KeycloakInitRedirectModeEnum","INIT_REDIRECT_MODE_QUERY_KEY","TOKEN_KEY","REFRESH_TOKEN_KEY","initRedirectMode","authStateChangedCallback","isRedirectingToSignIn","checkAllowedAnonymouslyUserCreation","waitInitialization","getAuthToken","keycloak","token","isTokenExpired","updateToken","redirectToSignIn","Authorization","doSignOut","logout","redirectUri","AuthApiError","signInWithEmailAndPassword","tokenParsed","getAccountUrls","changeCreds","iss","clientId","verificationEmail","onReady","authenticated","userInfo","emitStateChange","isAnonymous","onAuthError","errorData","onAuthRefreshError","createLoginUrl","onAuthSuccess","refreshToken","loadUserProfile","onAuthStateChanged","createAnonymouslyUser","checkIsContinueSignInRedirect","createSelfExternalUrl","refreshed","createAccountUrl","createSignUpUrl","createRegisterUrl","createForgotPasswordUrl","createChangePasswordUrl","init","onLoad","checkLoginIframe","register","KeycloakAuthService","tryParseKeycloakConfig","STRINGIFIED_KEYCLOAK_CONFIG","tryParseInitRedirectMode","searchParams","modifiedDate","modifiedByName","modifiedById","modifiedByBroker","creationDetailRows","modifyDetailRows","groupedNotificationCounts","selectGroupedNotificationCountsRequest","statsFilters","selectedDataSource","isDisableSelectCompanies","UrgentIcon","TimeWindowZoneText","rangeIndex","disableReasonTooltipNode","shipmentEditUnavailableReason","pickupWaypoint","pickupBrokerAppointmentStatus","dropOffBrokerAppointmentStatus","canChangeShipmentStatusOnBrokerTour","canCancelShipmentOnBrokerTour","isChangeStatusAllowed","isCancelAllowed","selectUpdateTrailersRequestStatus","isNewTrailer","prepareApiCreateTrailer","addTrailerRequest","prepareApiModifyTrailer","additionalServicesDict","byTrailerType","ANY_TRAILER_TYPE","mapByTrailerType","restTrailer","futurePoint","currentPoint","restTruck","transportationOrderHasNoDriverAlertTime","assignDriverLimitAlert","assignAssetLimitAlert","transportationOrderHasNoAssetsAlertTime","allowedGAPToBeDelayed","deleteNotificationsOlderDays","docExpiresSoonAlert","radiusAroundWaypointM","timeLimitToCancelOrderHours","timeLimitToCancelTransportationOrderHours","initialShipperContractLaneDetailsItemState","MapCenter","centerLatLng","setCenter","getCurrentRelativePath","CalendarIconProps","ErrorIndicatorLabel","fieldNamesPrefix","shipperContractsRefreshChannel","shipperContractsPaginationChannel","getDateStringToTimeWindow","endTimeWindow","isMidnight","mergeWithRelativeTimeWindow","absoluteTimeWindow","setHasDropTrailerPointError","setHasDropTruckPointError","MAIN_CONTACT_UNAVAILABLE_REASON_MAP_T","NO_ANY_PHONE_NUMBER","MainContactUnavailableReasonLabel","selectTrailersByIds","isActiveEditing","setActiveEditing","trailerDetailsById","setUnavailableModalConfirmation","onActivate","onArchive","onEdit","archiveTrailersRequest","activateVehicleRequest","activationTrailersRequest","TrailerType","availableTypes","optionByType","PriceRuleOperationFilterPill","operation","LocationsCell","countries","TourSpotExpiredCard","innerWidth","innerHeight","windowSize","setWindowSize","handleResize","MapCluster","PILL_THEME_BY_INVOICE_STATUS","InvoiceStatusPill","transportationOrderDeclined","allLabelKey","fetchTransportOrdersSaga","selectTransportOrdersQuery","DateFormatter","addressStr","syncShipmentDetailsFormValuesContext","excludedCountriesFormValue","PinIcon","TourSpotCancelledCard","EMPTY_RANGE","formatDateValue","formatDateRangeValue","isFocusedInput","setFocusedInput","dateRangeMask","getDateRangeMask","dateMask","getDateMask","initInputValue","checkIsEmptyDateValue","isBefore","startDateString","endDateString","fromDateRange","isValidStartDate","checkIsInMinMax","toDateRange","isValidEndDate","guide","useSyncRouteStopsChannels","STEP_PATH_NAMES","cargoDetails","STEP_T_MAP","hasSelectedContact","stepsSequence","match1","match2","match3","match3Lane","steps","pathnameTemplate","isContinue","goTo","stepIndex","isDisabledBack","initShowStepIndex","getUtilizationLabel","afterValue","beforeValue","getAssetUtilizationColor","getFleetUtilizationColor","isWithoutVerticalPaddings","selectFindShippersQuery","shipperSuggest","PreviewMessage","AssetPickUpLocationPin","FilterIcon","UpdatedPartnerShipperLaneContractCard","AssetDetailsMap","contextLocations","setContextLocation","viewServiceLocationPoint","AsyncDictDocumentNameLabel","documentsDictRequest","documentsDictByType","prepareCountryCode","preparedCountryCode","DEFAULT_PLACEHOLDER","formatConfig","descriptionPlaceholder","Description","TestData","Valid","ShipperContractLanesLayout","modalContentProps","fullListPriceOffers","bestOffer","markBestPriceOffers","priceOffersByHashDates","newUniqOffersCount","changesById","BoatIcon","BigQuestionReversedIcon","PRICE_RULE_COMPONENT_TYPE_I18N_MAP","operationUnavailableReasonTranslationKeyMap","PROFILE_IS_LOCKED","LEGAL_ADDRESS_IS_NOT_VERIFIED","BILLING_ADDRESS_IS_NOT_VERIFIED","NOT_ALL_REQUIRED_DOCUMENTS_APPROVED","PROFILE_IS_NOT_LINKED_WITH_EXTERNAL_COMPANY","PROFILE_IS_NOT_APPROVED_BY_BROKER","operationUnavailableReason","externalRestrictionMessage","selectSubjectLogsRequestStatus","selectSubjectLogs","fetchSubjectLogs","subjectLogsChannel","profile","ChangeTourStatusControls","tourInfo","PriceRuleTypeDropdown","initPartnerIds","initPartnerId","CostCell","selectedTruckModel","logo","ServicesTable","onUpdateService","isHoveredRow","renderPointIcon","renderPointName","RFQDetails","trailerDict","trailerTypeDetails","isShowValueLoader","getPriceDetails","defaultCarrierAdditionalServicesList","defaultBrokerAdditionalServicesList","isInternalRFQ","isTenderRFQ","receiptAppliedRules","defaultPriceDetailsList","withinCreditLimit","pillLabelNode","pillLabelTheme","pillLabelTooltipNode","targetPriceDetailsList","completedCarrierAdditionalServicesList","completedPrice","completedBrokerAdditionalServicesList","completedPriceDetailsList","orderStatus","expirationDetails","completedDetails","completedDate","completedByName","completedById","firstPoint","pointDetails","newIds","TruckDropOffIcon","ColoredStatusLabel","isRightIcon","SettingsPage","tenderCalculator","checkGPSStatusRequest","CHECK_GPS_STATUS_REQUEST_BEGIN","CHECK_GPS_STATUS_REQUEST_SUCCESS","ListPageHeaderLayout","leftToolsClassName","rightToolsClassName","fetchError","FetchError","checkIsForbiddenError","checkIsBadRequestError","badRequest","checkIsNetworkError","ExpiredPartnerCarrierContractCard","getPercentDiffMask","getMoneyDiffMask","UNIT_BY_TYPE","dropdownValue","setDropdownValue","ShipperIcon","ContactBadgeIcon","MultiPointOrderDraftDetails","renderRow","leftColumnClassName","leftColumn","rightColumnClassName","rightColumn","getPlaceholderRow","iconFillColor","StartSelectBidFooterContent","bidById","assignCarrierConfirmation","selectedBid","validateDeadheadInitContextQuery","modifyDeadheadInitContextQuery","newQuery","resetRoute","contextRouteStopFakeId","initRoute","beforeIndex","foundIndex","beforeContextRouteStopFakeIds","validateDeadheadPreviewQuery","arrivalDateTime","modifyDeadheadPreviewQuery","firstRangeArrivalDateTime","fetchCarriersUtilizationSaga","needIds","isOnlyApproved","approvedBrokerContractsResponse","approvedBrokerContractsError","approvedBrokerContractsResult","brokerContractsResponse","brokerContractsError","brokerContractsResult","approvedCarrierContractsResponse","approvedCarrierContractsError","approvedCarrierContractsResult","carrierContractsResponse","carrierContractsError","carrierContractsResult","nameFallback","calculateCostRequestQuery","creationRequestQuery","shipperContractLaneCreationSlice","resetShipperLaneCreation","calculateCostRequestSuccess","calculateCostRequestSetRoute","calculateCostRequestFetchRouteError","calculateCostRequestError","calculateCostRequestBegin","createLaneRequest","createLaneRequestBegin","createLaneRequestSuccess","createLaneRequestError","prevRows","setPrevRows","UploadFileIcon","GeoAreaIcon","PapersEmptyPlaceholder","CopyIcon","ShipperContractStatusEnum","ShipperContractLaneOrderCounterPill","getErrorLabel","valueDate","isSameOrAfter","isSameOrBefore","isDisableValue","emailValidator","isValidDate","checkIsEmptyPhoneNumber","checkIsPossiblePhoneNumber","tabConfig","fetchGroupedNotificationCountsBegin","fetchGroupedNotificationCountsSuccess","fetchGroupedNotificationCountsError","fetchTrailersSaga","selectTrailersQuery","selectTrailersPages","resetTrailers","fetchTrailersPageBegin","fetchTrailersPageError","fetchTrailersPageSuccess","refreshTrailerDetailsIfNeedSaga","addTrailerSaga","addTrailerRequestBegin","addPartnerTrailer","addTrailerRequestError","addTrailerRequestSuccess","deleteTrailersSaga","trailerIds","deleteTrailersRequestBegin","deleteTrailersRequestError","deleteTrailersRequestSuccess","activateTrailersSaga","activateTrailersRequest","updateTrailersRequestBegin","updateTrailersRequestError","updateTrailersRequestSuccess","invalidAssetsMap","invalidAssets","failedTrailerIds","failedCount","invalidAssetsPlateNumbers","assignToContractSaga","changeRateTrailersSaga","archiveTrailersSaga","failedTrailerId","fetchTrailersStatsSaga","selectFetchTrailersStatsRequestStatus","fetchStatsRequestStatus","fetchTrailersStatsRequestBegin","resultError","fetchTrailersStatsRequestError","fetchTrailersStatsRequestSuccess","fetchTrailerDetailsSaga","fetchTrailerDetailsRequestBegin","fetchTrailerDetailsRequestError","fetchTrailerDetailsRequestSuccess","updateTrailerSaga","importXLSTrailersSaga","importXLSTrailersRequestBegin","importPartnerXLSTrailers","importXLSTrailersRequestError","importXLSTrailersRequestSuccess","exportXLSTrailersSaga","exportXLSTrailersRequestBegin","exportPartnerXLSTrailers","exportXLSTrailersRequestError","exportXLSTrailersRequestSuccess","FETCH_TRAILERS_PAGE_REQUEST","ADD_TRAILER_REQUEST","DELETE_TRAILERS_REQUEST","ACTIVATION_TRAILERS_REQUEST","ARCHIVE_TRAILERS_REQUEST","ASSIGN_TO_CONTRACT_TRAILERS_REQUEST","CHANGE_RATE_TRAILERS_REQUEST","FETCH_TRAILER_DETAILS_REQUEST","UPDATE_TRAILERS_REQUEST","FETCH_TRAILERS_STATS_REQUEST","IMPORT_XLS_TRAILERS_REQUEST","EXPORT_XLS_TRAILERS_REQUEST","i18nMap","A_WARNING_SIGN_WASTE","ADR_HAZMAT","ATP_CERTIFICATE_FRC_CATEGORY","CATEGORY_III_CERTIFICATE","CUSTOMS_SEAL_PROOF_TIR","DROP_TRAILER_REQUIRED","DUAL_TEMPERATURE","FLOWER_TROLLEY_WIDE","MEAT_HOOKS","PALLET_EXCHANGE_CATEGORY_A","PALLET_EXCHANGE_CATEGORY_B_AND_C","PARTITION_WALL","TAIL_LIFT","COIL_TRANSPORTS","JOLODA_LOADING_SYSTEM","LIGHT_VERSION","WALKING_FLOOR","XL_CODE_CERTIFIED","ANTI_SLIP_MATS","CARGO_EDGE_PROTECTORS","CARGO_LOAD_LOCKS","CARGO_RATCHET_STRAPS","CARGO_SHORING_BEAMS","GDP_PHARMACEUTICAL","IFS_FOOD","ISO_14001","ISO_9001","SQAS_CHEMICAL","WASTE_MANAGEMENT_A_SIGN","AdditionalServiceLabel","LaneDropdownInputOptionLabel","actionIndex","TemperatureRange","parseTemperatureMode","HeaderSideBarLayout","associatedBrokerUsers","notVerified","withUpdates","EMISSION_CLASS_ORDER","EURO_5","EURO_6","aItem","bItem","manufacturerCompare","MAX_SAFE_INTEGER","labelMap","Accent","SpotBidStatusCard","priceComponents","DnDIconWrap","isShowIcon","setIsShowIcon","iconRef","iconNodeRect","isShouldShow","checkShouldShowIcon","RenderLogContext","OverlayPositionEnum","clearPhoneNumber","isOpenCountryList","setOpenCountryList","clearedPhoneNumber","parsedCountryCode","getCountryCode","apply","rects","elements","floating","reference","onClickCountryCode","onChangePhoneNumber","selectedCountryCode","countryPhoneNumberStart","getCountryPhoneNumberStart","saveRequestStatus","ColoredDiff","isInverted","customNotNumberColor","customPositiveColor","customNegativeColor","isPositive","isNegative","invitePartnerRequest","TopBarContent","afterTitle","leftNode","ValidPeriodCell","selectFetchContactDetailsRequest","contactDetailsById","selectContactDetailsById","isNewContact","isAllowEditEmail","apiContact","addContact","handleSelectPosition","renderRadioButton","hasChangeHighlight","isMakeDefaultContactCheckboxDisabled","isShowNotSaveStatus","newList","serviceItem","targetChange","changesItem","DictTrailerMultipleDropdown","FuelIcon","BidDetails","isOpenedDetails","setIsOpenedDetails","toggleOpenedDetailsClick","isClickable","bidDetails","bidDate","lifeTime","diffPercentage","bidPrice","countyCode","ClientFeatureControl","setClientFeature","labelI18nMap","i18nLanguageSwitcher","showNotificationToastTrigger","assignmentExcludeCountries","showNotificationId","showStatusFiltersAfterPaid","cancelServiceMaintenanceAssetScheduleSidebar","clientFeature","clearClientFeatures","storage","DEFAULT_TRAILER_DICT_ID","DEFAULT_BOX_TRAILER_ID","DEFAULT_TILT_TRAILER_ID","getDefaultRoutePointInitialValues","DEFAULT_TRAILER_TYPE","restorableRoutePointTypeSet","DEFAULT_TRAILERS_DICT","ShipmentDetailsForm","orderCreationPercentContext","stepsContext","createRFQStatus","createPriceOfferWithLaneStatus","storageValues","defaultRoutePointInitialValues","allRoutePointFields","initialShipper","initShipperOptions","apiActualOrderRequest","routeLength","setPercent","hasSelectedLane","setHasSelectedContract","isLockedByReserve","availableTrailersTypes","handleChangeDictTrailerId","handleChangeLaneId","handleChangeTrailerTypeValue","deduplicationKey","isAllowShowReplacedLocationsAlert","setAllowShowReplacedLocationsAlert","isSubmitting","isLoadingReservePreview","handleChangeRoutePointReserve","isShowLaneSelectControl","asyncFormErrorsContext","previewTimeWindow","handleDeleteServicePoints","indexesToRemove","valuesPointIndex","indexA","indexB","shipperDetails","hasReservePreview","isAlwaysShow","OrderStatusChangedCard","CancelInviteConfirmation","convertPointToLocation","CargoUnitIcon","draggableRouteStopTypeSet","selectDeadheadContext","selectDeadheadPreviewRequest","validateForm","handleChangeExcludedCountriesCallback","EXCLUDE_COUNTRIES_COLD_TIME","refreshDeadheadCreationModifyHandler","getInitialRoutePointFormValues","contextSyncRouteStopsModifyChannel","addedStopFakeIds","deletedStopFakeIds","orderStopFakeIds","parsedArrivalDate","handleOpenTrailerDetails","stopByFakeId","prevContextPreview","setPrevContextPreview","syncAssetScheduleContext","possibleContextPreview","routeStop","contextRoutePointHash","beforeFakePointIds","trucksDictById","selectTrucksDictById","fetchContractsRequests","contractNode","contractRightNode","linkedTrailerPlateNumber","isDedicated","archivingReason","checkIsApiCarrierTruckDetails","lastModifiedDate","lastModifiedBy","DriveThroughRoutePointPicker","isDriveThroughRoutePointPicker","tourPapersUrlFactory","deletingPaperId","setDeletingPaperId","deleteRequestStatus","selectDeleteRequestStatus","deletePaperConfirmationDialog","paperGalleryModal","paperType","contentUrl","catch","MONEY_FIELD_CODES","UNIT_TYPE_BY_FIELD_CODE","DEADHEAD_MILEAGE_TRUCK","DEADHEAD_MILEAGE_TRAILER","LAYOVER_HOURS","ESTIMATED_TRAVEL_TIME_HOURS","FieldValue","formattedValue","numericValue","safeParseNumber","selectBrokerTeamDetails","brokerTeamDetails","initialBrokerTeamDetailsState","selectBrokerTeamDetailsRequestStatus","SearchForm","selectedAssignmentOptions","setAssignmentOptions","handleChangeAssignmentOptions","assignmentRadiuses","selectAssignmentRadiuses","defaultAssignmentRadius","selectedRadius","setRadius","selectedCarrierId","additionalTagsNode","AttachPapersDropdownControlTrigger","hasExpandIcon","buttonProps","fetchBrokerTourDetailsSaga","getBrokerTourDetails","actual","history","setActiveTab","tooltipContentNode","canDownload","versionIndex","TableCellLink","clickInterceptorProps","useClickInterceptorProps","wrapClassName","circle__orange","circle__green","setCurrentRequestStatus","setInitOptions","timeWindowsById","queryTimeWindowsById","queryTimeWindow","OriginCell","originFrom","originTo","hideAdditionalServiceType","AdditionalServicesGroup","setIsExpanded","selectedServiceCount","CreatedCell","BaseShipperContractLanesTable","formatDateInterval","DATE_INTERVAL_SPECIAL_SYMBOLS","FUTURE","TourSpotPlacedCard","TrailerStatusMultipleDropdown","TRAILER_STATUS_T_MAP","shipperContractLanesSaga","selectShipperContractLanesQuery","resetShipperContractLanes","fetchShipperContractLanesPageBegin","fetchShipperContractLanes","fetchPartnerShipperContractLanes","fetchShipperContractLanesPageError","fetchShipperContractLanesPageSuccess","MinusSignIcon","RFQ_SOURCE_T_MAP","CARLO","TENDER","INTERNAL","CONTRACT_LANE","RFQSourcePill","requiredDocument","SHIPMENT_PAPER_TYPE_MAP_T","WarningIcon","apiUnit","getApiLoadUnitType","updateBegin","updateSuccess","destinationTime","originTime","placedTime","expirationTime","SpotRequestsQuickFilterEnum","hasUnreadBids","visibleSaga","BaseCarrierContractsTable","AssetCell","spotRequest","trailerTypeModel","GoogleMapsLoaderWithoutMaps","UNKNOWN_LABEL_COLOR","getPillLabelByRole","UserRolePill","roleKey","ArchiveDriverConfirmation","driverSurname","papersEditSaga","getAttachPaperToShipmentSaga","getAttachPaperToTourSaga","getDeleteAttachedPaperSaga","attachPaperToShipmentBegin","parseResponseData","attachPaperToShipmentError","attachPaperToShipmentSuccess","attachPaperToTourBegin","attachPaperToTourError","attachPaperToTourSuccess","deleteAttachedPaperBegin","deleteAttachedPaperError","deleteAttachedPaperSuccess","selectRulesPages","selectRulesQuery","selectRulesTotal","selectRulesByIds","selectUpdateRulesRequest","selectDeleteRulesRequest","selectFetchRuleDetailsRequest","selectPreviewRuleRequest","selectPreviewRule","selectRuleDetails","findCarriers","findCarriersBegin","findCarriersSuccess","findCarriersError","MapPin","READ_SHIPMENT_ATTACHED_PAPERS_UNAVAILABLE_REASON_MAP_T","TYPE_IS_TRAILER","TO_CANCELLED","ReadShipmentAttachedPapersUnavailableReasonLabel","PILL_THEME_BY_FUEL_OPTION_TYPE","FuelOptionTypePill","fetchDoneStatisticsSaga","getDoneStatistics","fetchRejectStatisticsSaga","getRejectStatistics","fetchStatisticsSaga","ContinueSignUpPage","failEmailVerification","formValue","RulesTable","selectedRulesSet","onSelectRules","onClickRow","withEstimateCarrierTypeSet","BrokerTourRouteMap","ForgotPassword","selectResetPasswordRequestStatus","emailAsyncError","boldAzul","assignBidToSpotRequestSaga","spotRequestsRefreshChannel","spotRequestsStatsRefreshChannel","fetchSpotRequestDetailsSaga","LogCardLayout","isAllowShowId","setAlerts","editableRouteStopTypeSet","TabsEnum","HorizontalColumnsLayout","isNarrow","setTab","createInitWaypointTrailerDropPoint","ApprovedDocumentCard","TypeEnum","selectedOptionValue","getFetchTrackByOrderSaga","orderHash","getAssetsTrackHashByOrderId","fetchAssetTracksByOrder","apiAssetsCoordinates","apiAssetCoordinates","getAssetTrackHashByOrderId","receivedDate","getFetchTrackByTransportOrdersSaga","transportOrderHash","GPSTrackingStatusAlert","isChecking","gpsStatus","infoIconNode","AuthApiTypeEnum","syncLanguage","auth","languageCode","resolver","getIdTokenResult","claims","signInAnonymously","parsedCommonError","parseCommonErrors","failAnonymouslySignIn","failSignIn","failSignOut","sendVerificationEmail","ACTION_CODE_SETTINGS","userIsNotAuthorized","sendEmailVerification","failSendEmailVerification","sendPasswordResetEmail","failSendPasswordResetEmail","confirmPasswordReset","credential","EmailAuthProvider","linkWithCredential","usercred","applyActionCode","userCredential","failChangePassword","photoURL","failUpdateProfile","successChangePassword","initializeApp","FIREBASE_TENANT_ID","tenantId","errorMapper","authErrorType","getIdToken","FirebaseAuthService","tryParseFirebaseConfig","STRINGIFIED_FIREBASE_CONFIG","StepsContext","InvoiceBinaryStatusPill","SpotRequestsPage","addTruckRequestStatus","TransportationOrderTypeEnum","TransportOrderTypeFormatter","transportOrderType","PapersGrid","resetPapersEdit","PositionOption","ROUTE_DETAILS_FORM_NAME","HeaderSideBarPortal","contentRootRef","PriceRuleTypeMultipleDropdown","TableError","placeholderProps","checkIsNotFoundError","selectFetchPartnerDetailsRequest","selectLockPartnerDetailsRequest","lockRequest","selectVerifyPartnerDetailsRequest","verifyRequest","enableAssetEditing","hasAccessToDocuments","canActivateTrucks","canArchiveTrucks","canSetUnavailableTrucks","canImportTrailers","canEditTrailers","canActivateTrailers","canArchiveTrailers","canSetUnavailableTrailers","canVerifyDocuments","canTeleportAssets","brokerTeam","canDeleteBrokerUsersTeams","canEditDrivers","isShowEditAction","isShowCancelInviteAction","isShowRestoreAction","isShowArchiveAction","sourceMapT","selectFindCarriersQuery","carrierSuggest","selectFindCarriersRequest","selectCarriersIds","selectCarriersById","sendToSpotUnavailableReasonI18nMap","KAM_CANT_SEND_TO_SPOT","TOUR_ALREADY_ON_SPOT","TOUR_HAS_DROP_AND_HOOK_STOP","TOUR_HAS_ACTIVE_TRANSPORTATION_ORDER","ORIGIN_IS_BEFORE_NOW","DEADLINE_TIME_EXCEEDED","DEADLINE_BEFORE_NOW","StartAssignmentFooter","sendToSpotTooltipContent","driverIds","upperPrice","lowerPrice","receivedDateFrom","receivedDateTo","TransportOrderQuickFilterEnum","noAssets","noDriver","PILL_THEME_BY_WARNING","WARNING_T_MAP","ShipmentWarningPill","checkIsRepeatStrategy","checkIsPriceComponent","PRICE_COMPONENT_T_MAP","REPEAT_STRATEGY_T_MAP","monthly","yearly","selectedDriverId","isPending","checkIsDriverPendingStatus","isHalfOpacity","DetailsLayoutQueryKeysEnum","DetailsLayout","timeline","NumberParam","isShowTimeline","PhoneNumberDropdownTrigger","isSelectedCountry","shipperContractsSaga","selectShipperContractsQuery","selectShipperContractsPages","fetchPartnerShipperContracts","PriceMatrix","selectedPickUpDate","activeDropOffDate","setActiveDropOffDate","activePickUpDate","setActivePickUpDate","offersByDatesHash","pickUpDates","pickUpDatesHead","momentDate","pickUpDatesHeadRow","dropOffDatesHead","isLoadingOffers","isEmptyDates","dropOffDateIndex","pickUpDateIndex","datesHash","offers","sortedOffers","groupedOffer","cheapestSortedOffers","firstCheapestOffer","cheapestOffer","isActiveCell","isSelectedCell","isShowTooltip","isFirstColumnDate","isLastColumnDate","isAllOffersExpired","firstNotExpiredCheapestOffer","selectDates","PhoneNumberDropdownOption","findShippersByQuerySaga","findShippersByIdSaga","contextStopAliases","formatDecimal","sourceDecimalString","thousandSeparator","reverse","partialCurrencySettings","roundedAmount","decimal","fraction","formattedDecimal","isFirstSymbol","symbol","decimalSeparator","Money","formattedMoney","isLastRow","EditableStringValueFormatter","isShowInput","optimisticValue","setOptimisticValue","isDisabledEdit","prevState","Textarea","isForceFocused","textareaProps","sourceValue","ShipperContractLaneStatus","UserSignUpForm","onInvitePartner","addPartnerRequestStatus","trailerTypeLabel","contractRatePerKm","linkedTruckPlateNumber","AVAILABLE_ORDER_TYPE","typeOptions","receiveDates","onRightClick","parts","draggablePointTypeSet","RouteEditingMap","syncMapSettingsCallback","hasRedBorder","reserveRouteGeometryState","isMapLoading","locationType","formatKey","ShipperContractLaneEditForm","prepareApRequest","ShipperContractDetailsPage","parsePartnerTypeParam","selectShipperContractsByIds","lineHeight","defaultRedirectPath","partnerContextValue","clusterIconWithNumberStyle","AssetOptionLabel","FullNameCell","selectTransportOrderDetails","DELIVERY_NOTE","SIGNED_DELIVERY_NOTE","PALLET_CERTIFICATE","TEMPERATURE_RECORD","CUSTOMS_DECLARATION","T1_T2_DOCUMENT","CLAIM_DAMAGE","EAD","CERTIFICATE_OF_ORIGIN","COMMERCIAL_INVOICE","OTHER","ShipmentPaperTypeLabel","SideBarFooterAlertsContext","CancelBrokerTourConfirmation","sorters","bidA","bidB","bidDateA","bidDateB","getBidsSort","CountryMultipleDropdown","filteredCodes","clearedQuery","firstCountryCode","fetchGroupedNotificationCountsSaga","byAction","EMPTY_SELECTED_ADDITIONAL_SERVICES","EMPTY_ADDITIONAL_SERVICE_ITEMS","EMPTY_PRICE_DETAILS","OfferDetails","toggleOpenDetails","offerAdditionalServiceItems","additionalServicesItems","selectedAdditionalServices","allAdditionalServiceItems","additionalServicesTrailingItems","laneCostOfOperationPrices","laneOtherPrices","sourceTotalOfferPrice","handleChangePrice","minAllowedCustomLineHaul","editableLineHaulPriceDetails","useEditablePriceDetails","i18nKeys","startEditingTooltip","restorePriceTooltip","isAllowEditPrice","canEditLineHaulOnOrderCreation","ALL_TOLL_TYPES","tollType","tollTooltip","TOLL_TOOLTIP_MAP_T","appliedRuleTarget","TollTypeEnum","general","bridge","tunnel","mountainPass","marketCorrection","intermodal","unspecified","TOLL_MAP_T","fuelByCountry","brokerPrices","fuelPricePerLiterByCountry","totalRate","minLineHaul","fuelPricePerLiter","maxLayoverPerHour","maxLayoverPerDay","isActiveEditingTotalPrice","setIsActiveEditingTotalPrice","handleStartEditTotalPrice","handleChangeTotalPrice","dateTime","StopIcon","selectBrokerToursTotal","selectBrokerToursByIds","modalDialog","selectShipperContractsTotal","OrdersPage","channelName","SimpleTrailerTypeFormatter","indexes","createAuthAPI","keycloakConfig","queryA","queryB","convertPageEntities","converter","WeightIcon","GoogleMapsAutocompleteApi","getQueryPredictions","mapBounds","sessionToken","DEFAULT_MAP_LANGUAGE","input","AutocompleteService","AutocompleteSessionToken","NotificationLayout","isShowNotificationToastTrigger","rawDocument","startBrokerWorkingHoursH","BROKER_DAY_START_HOURS","endBrokerWorkingHoursH","BROKER_DAY_END_HOURS","URGENT_ORDER_PROCESSING_DELAY","REGULAR_ORDER_PROCESSING_DELAY","convertSecToMin","brokerWorkingHours","quantumMinutes","MAP_PRECISION_DELTA","HVO_EMISSION_PERCENT","AssetLinkFormatter","CountryDropdown","PRICE_RULE_STATE_I18N_MAP","AccountPage","selectPatchUserRequestStatus","firebaseUser","dirty","currentPasswordAsyncError","currentPasswordError","isShowNewPasswordError","accountUrls","setAccountUrls","lang","isFullSize","extraSmall","checkIsProduction","alertTranslationKeyMap","PartnerOperationUnavailableReasonsAlert","reasons","fetchRFQStatsSaga","fetchPartnerRFQCount","TransportOrderDetails","goToDriverDetails","useTransportOrderPayloadWaypoints","priceDetailList","transportOrderRows","classNames","opened","mileageDetailsRows","assignmentDetailsRows","handleAttachTourPaper","pickupPoint","dropOffPoint","readShipmentAttachedPapersUnavailableReason","SquareInfoIcon","TollLabel","ExternalRestrictionsPill","TeamDrivePill","fetchDispatchersBegin","fetchDispatchersSuccess","fetchDispatchersError","IconTriggerThemeEnum","mainDriverId","teamDriverId","reAssignSaga","reAssignBegin","reAssignError","reAssignSuccess","RE_ASSIGNMENT_REQUEST","messageProps","parseStringFormatter","updateApiTruck","dictTruckId","countryOfRegistration","WaypointNumberIcon","isDropAndHookRoutePointPicker","initialActiveTabType","UserMainPill","InlineLoader","verticalPadding","dateIntervalSpecialSymbolsSet","toString","formatTemperature","ImageGalleryModal","FieldNotes","noteNodes","emptyNoteNode","EMISSION_CLASS_MAP","DEPRECATED_EMISSION_CLASS_I18N_MAP","EmissionClassLabel","InfoTableRow","shouldRenderIcon","nestIndex","defaultValueMods","effectiveValueMods","filteredSubRows","isCollapsable","setOpen","isEmptyValue","rowFullTestSelector","isFullNameWidth","nestOffset","rowStyle","nameMods","InfoTableRows","filteredRows","InfoTable","tableFullTestSelector","firstRadiusOfAssignmentFilter","secondRadiusOfAssignmentFilter","thirdRadiusOfAssignmentFilter","timeToHookTrailer","timeToDropTrailer","timeToPickupTruck","timeToDropTruck","geoMatrixCoefficient","averageTruckSpeed","FIRST_RADIUS_OF_ASSIGNMENT_FILTER","SECOND_RADIUS_OF_ASSIGNMENT_FILTER","THIRD_RADIUS_OF_ASSIGNMENT_FILTER","TIME_TO_HOOK_TRAILER","TIME_TO_DROP_TRAILER","TIME_TO_PICKUP_TRUCK","TIME_TO_DROP_TRUCK","GEO_MATRIX_COEFFICIENT","AVERAGE_TRUCK_SPEED","TeamComponentTabEnum","BigTrashIcon","fetchCompanyBegin","fetchCompanySuccess","fetchCompanyError","updateCompany","updateCompanyBegin","updateCompanySuccess","updateCompanyError","BrokerOrderRouteEditPage","handleRetry","actualTour","fetchRFQsPageBegin","fetchRFQsPageSuccess","fetchRFQsPageError","resetRFQs","ThumbUpIcon","AssetScheduleSidebar","additionalFlags","isCancelServiceMaintenanceSidebarEnabled","convertNotification","apiNotification","parsedNotification","relatedIds","baseTourStatusNotification","RFQ_ALERT","SPOT_CANCELLED","SPOT_ASSIGNED","SPOT_BID_MISSED","SHIPPER_CONTRACT_UPLOADED","ERROR_WHEN_CREATE_INVOICE","ASSET_ADDED","ASSET_UPDATED","setOptions","selectSearchDriverIds","selectSearchDriverById","selectSearchDriverRequest","selectedDriver","setFromCountryCodes","setToCountryCodes","defaultNotification","FormTitle","isFinalStep","basePercent","summaryPercent","roundedPercent","encodeURIComponent","queryData","decodeURIComponent","UnlinkIcon","initialBrokerOrderDetailsState","brokerOrderDetailsSlice","brokerOrderDetailsState","TourPaperAttachPapersDropdownControl","onAttachNew","handleAttachNew","PartnerPage","isActionsSidebarOpen","setActionsSidebarOpen","warningBadgeNode","hasDetailsProblem","hasDocumentsProblem","canViewTeamMembers","partnerMembers","canViewTrailers","canViewTrucks","canViewDrivers","isShowPartnerNameLoader","selectTrucksDictList","PartnerAddressWidget","getTeamsFilter","entityTypeToLabel","TRANSPORT_ORDER","EntityLinkTooltipContent","mapsApiKey","mapTypeControl","mapTypeId","mapTypeControlOptions","mapTypeIds","controlSize","fullscreenControl","zoomControlOptions","styles","elementType","stylers","featureType","UserDropdown","rawMembers","members","memberByUserId","member","T_MAP","errorType","RevokeContractConfirmation","selectedAction","getContractName","PartnerDriversPage","SetUnavailableFooterContent","OrderStatus","NumberPinIcon","textAnchor","FETCH_TRAILERS_PAGE_REQUEST_BEGIN","FETCH_TRAILERS_PAGE_REQUEST_ERROR","FETCH_TRAILERS_PAGE_REQUEST_SUCCESS","RESET_TRAILERS","ADD_TRAILER_REQUEST_BEGIN","ADD_TRAILER_REQUEST_ERROR","ADD_TRAILER_REQUEST_SUCCESS","DELETE_TRAILERS_REQUEST_BEGIN","DELETE_TRAILERS_REQUEST_ERROR","DELETE_TRAILERS_REQUEST_SUCCESS","UPDATE_TRAILERS_REQUEST_BEGIN","UPDATE_TRAILERS_REQUEST_ERROR","UPDATE_TRAILERS_REQUEST_SUCCESS","FETCH_TRAILER_DETAILS_REQUEST_BEGIN","FETCH_TRAILER_DETAILS_REQUEST_ERROR","FETCH_TRAILER_DETAILS_REQUEST_SUCCESS","FETCH_TRAILERS_STATS_REQUEST_BEGIN","FETCH_TRAILERS_STATS_REQUEST_ERROR","FETCH_TRAILERS_STATS_REQUEST_SUCCESS","IMPORT_XLS_TRAILERS_REQUEST_BEGIN","IMPORT_XLS_TRAILERS_REQUEST_ERROR","IMPORT_XLS_TRAILERS_REQUEST_SUCCESS","EXPORT_XLS_TRAILERS_REQUEST_BEGIN","EXPORT_XLS_TRAILERS_REQUEST_ERROR","EXPORT_XLS_TRAILERS_REQUEST_SUCCESS","groupedLogs","groupedByDateLogs","logView","logText","stringifyLogSafely","TeamName","truckInvalidReasonI18nMap","COMPANY_CANT_OPERATE","ASSET_IS_NOT_CONTRACTED","ASSET_CONTRACT_INACTIVE","shipmentPapersUrlFactory","pendingStatusSet","UserSelectList","initialSelectedUsers","selectedUsers","onChangeUsers","highlightedUserIdsSet","hideUserStatusSet","isShowPendingUsers","setIsShowPendingUsers","handleToggleShowPendingUsers","selectedUserIdsSet","hasPendingUsers","hasPendingStatus","ExpiredDocumentCard","CancelTruckTransportOrderConfirmation","ExpireSoonPartnerShipperLaneContractCard","tabElements","Children","toArray","isValidElement","activeContent","selectCompanyMembersState","byCompanyId","initialCompanyMembersState","companyMembers","contactIds","constantById","fetchContactsRequest","addMemberRequest","deleteMemberRequest","fetchContactDetailsRequest","AvatarCell","SHIPMENT_EDIT_UNAVAILABLE_REASON_T_MAP","ShipmentEditUnavailableReasonEnum","noAccess","ShipmentEditUnavailableReason","CarrierCell","truckCarrierId","truckCarrierName","trailerCarrierName","hasTruck","hasTrailer","assetPlate","assetCarrierId","assetUrl","hasCarrier","hasAsset","PriceMatrixWithMap","isImportedOrder","isImported","availableTabs","hasManyTabs","dark","initialSubjectLogsState","subjectLogsSlice","fetchSubjectLogsBegin","fetchSubjectLogsSuccess","fetchSubjectLogsError","subjectLogsReducer","SpotRequestsTable","placedByName","placedBy","placedDate","estimatePrice","lowestPrice","WarningsCell","noAssignedTeams","FETCH_TRUCKS_PAGE_REQUEST","fetchTrucksPageBegin","FETCH_TRUCKS_PAGE_REQUEST_BEGIN","fetchTrucksPageSuccess","FETCH_TRUCKS_PAGE_REQUEST_SUCCESS","fetchTrucksPageError","FETCH_TRUCKS_PAGE_REQUEST_ERROR","resetTrucks","RESET_TRUCKS","ADD_TRUCK_REQUEST","addTruckRequestBegin","ADD_TRUCK_REQUEST_BEGIN","addTruckRequestError","ADD_TRUCK_REQUEST_ERROR","addTruckRequestSuccess","ADD_TRUCK_REQUEST_SUCCESS","deleteTrucksRequest","truckIds","DELETE_TRUCKS_REQUEST","deleteTrucksRequestBegin","DELETE_TRUCKS_REQUEST_BEGIN","deleteTrucksRequestError","DELETE_TRUCKS_REQUEST_ERROR","deleteTrucksRequestSuccess","DELETE_TRUCKS_REQUEST_SUCCESS","ACTIVATION_TRUCKS_REQUEST","UPDATE_TRUCK_REQUEST","ARCHIVE_TRUCKS_REQUEST","ASSIGN_TO_CONTRACT_TRUCKS_REQUEST","CHANGE_RATE_TRUCKS_REQUEST","updateTrucksRequestBegin","UPDATE_TRUCKS_REQUEST_BEGIN","updateTrucksRequestError","UPDATE_TRUCKS_REQUEST_ERROR","updateTrucksRequestSuccess","UPDATE_TRUCKS_REQUEST_SUCCESS","FETCH_TRUCK_DETAILS_REQUEST","fetchTruckDetailsRequestBegin","FETCH_TRUCK_DETAILS_REQUEST_BEGIN","fetchTruckDetailsRequestError","FETCH_TRUCK_DETAILS_REQUEST_ERROR","fetchTruckDetailsRequestSuccess","FETCH_TRUCK_DETAILS_REQUEST_SUCCESS","FETCH_TRUCKS_STATS_REQUEST","fetchTrucksStatsRequestBegin","FETCH_TRUCKS_STATS_REQUEST_BEGIN","fetchTrucksStatsRequestError","FETCH_TRUCKS_STATS_REQUEST_ERROR","fetchTrucksStatsRequestSuccess","FETCH_TRUCKS_STATS_REQUEST_SUCCESS","IMPORT_XLS_TRUCKS_REQUEST","importXLSTrucksRequestBegin","IMPORT_XLS_TRUCKS_REQUEST_BEGIN","importXLSTrucksRequestError","IMPORT_XLS_TRUCKS_REQUEST_ERROR","importXLSTrucksRequestSuccess","IMPORT_XLS_TRUCKS_REQUEST_SUCCESS","EXPORT_XLS_TRUCKS_REQUEST","exportXLSTrucksRequestBegin","EXPORT_XLS_TRUCKS_REQUEST_BEGIN","exportXLSTrucksRequestError","EXPORT_XLS_TRUCKS_REQUEST_ERROR","exportXLSTrucksRequestSuccess","EXPORT_XLS_TRUCKS_REQUEST_SUCCESS","ChangedFieldLabel","hasOldValue","hasNewValue","unavailableTeleportReasonI18nMap","ASSET_IS_BUSY","NO_GPS_DATA","GPS_DATA_IS_OUTDATED","NOT_ACTIVE","isShowUnavailableForm","setIsShowUnavailableForm","isExecutingTeleport","selectExecuteTeleportStatus","isValidatingTeleport","selectValidateTeleportStatus","validateTeleportData","selectValidateTeleportData","handleExecuteAssetTeleport","truckDetailsRefreshChannel","actionOptions","unavailableTeleportTooltipContent","isTeleportShowLoading","isTeleportDisabled","concatNodes","nodes","filteredNodes","renderCountry","checkShouldRenderLocationPlaceholder","restAddress","LocationLabel","locationNode","CurrentTemperatureAlert","isHideClearAll","clearFilters","pillProps","configItem","clearIndex","getTheme","allKeys","pillIndex","clearKey","selectCompanyDriversState","selectDriversPages","selectDriversById","selectDriversQuery","selectDriversTotal","selectInviteDriverRequest","selectDeleteDriverRequest","OPTIONS","native","DATA_SOURCE_LABELS_T","DataSourceDropdown","DeleteIcon","prevPartnerDetails","lastSuggestionsQueryRef","lastQuery","subtype","AddOtherMessengerDropdown","createCompanySlice","setCompanyIsLocked","SUBJECT_TYPE_T_MAP","businessPartner","NotificationSubjectType","tDocumentSubject","applyDeadheadContextSaga","watchDeadheadQueueSaga","waitFinishIfNeedDeadheadApply","requestBody","applyDeadheadContext","initDeadheadContextSaga","deadheadInitContextQuery","initDeadheadContext","rawError","rawData","preparedDate","previewDeadheadContextSaga","chooseDeadheadArrivalDateTime","pickupStopFakeId","fakeIdByHash","changeDeadheadQueueWorker","selectDeadheadInitContextQuery","prevDeadheadInitContextQuery","previewContextBeforeModify","isSameDeadheadInitContextQuery","isEmptyContext","isExpiredContext","isSameContext","selectDeadheadPreviewQuery","prevDeadheadPreviewQuery","deadheadPreviewQuery","isSameDeadheadPreviewQuery","shouldPreviewDeadheadContext","getDeletedStopFakeIds","getOrderStopFakeIds","searchExternalBusinessPartners","optionPlaceholder","externallyRestricted","fetchBrokerTourStatsSaga","selectBrokerTourStatsRequest","getBrokerToursStatistic","MAPS_API_KEY","region","CompletedPartnerCarrierContractCard","MapFooter","fetchCountriesDictSaga","sortedCountriesDict","getCountryCompByName","orderEditContextSlice","SHIPPER_CONTRACT_STATUS_T_MAP","ShipperContractStatus","BrokerToursPage","initialPartnerState","SignInPage","selectSignInRequestStatus","showNotification","successSignUp","selectCurrentCompanyRequestStatus","currentCompanyRequest","selectUpdateCompanyRequestStatus","updateCompanyRequest","TourPapersTabContent","handleOpenGallery","tourChanges","selectTourChangesById","papersEditStateById","selectPapersEditByPaperIdState","visibleOptimisticPapers","getVisibleOptimisticPapers","thumbnailUrl","paperEditState","isPdfPaper","downloadRequestStatus","importRequestStatus","fetchStatusRequestStatus","tendersSlice","SplitIcon","selectDeadheadCreation","deadheadCreation","AdditionalServiceGroupLabel","groupTitle","OriginPinIcon","filterUnits","in","stdDeviation","ClientPage","sourceUrl","TeleportIcon","TeamDrive2Icon","DriverStatusPill","EmissionClassDropdown","WrenchIcon","isPrevStep","FIELD_I18N_MAP","DESCRIPTION","PURCHASE_ORDER","ADDRESS","TIME_SLOT","CARRIER_COST_TOTAL","ESTIMATED_CARRIER_COST_TOTAL","SHIPPER_PRICE_TOTAL","COMPANY_NAME","FULL_NAME","PHONE_NUMBER","EMAIL","COMMENTS","FieldName","serviceFeeTypeOptions","ServiceFeeTypeEnum","priceTypeOptions","mlBased","combined","tranziitServiceFeeType","isDisabledPeriodicRulesForMonths","getFetchVehicleScheduleSaga","fetchScheduleRequest","VEHICLE_SCHEDULE_TTL","setUnavailableVehiclesSaga","detailsByIds","cancelUnavailableVehiclesSaga","EditTimeWindowsFooterContent","createTeamSaga","updateTeamSaga","brokerTeamDetailsRefreshChannel","deleteTeamSaga","FlagThemeEnum","checkValuesIsAllowed","getSuggestAllowedValues","startValue","contractById","isCheckingGPSTracking","isAllowContract","contractValue","truckPlateNumberUniqCheck","usePlateNumberUniqCheck","plateNumberAsyncError","duplicateTruckId","duplicateId","isSubmitLoading","selectedContractId","isAllowShowChanges","isAvailableChangeRate","isRateContract","isContractChanged","isRateOrContractChanged","isAvailableRateOrContractWarning","rateOrContractWarning","isAvailableChangeContract","contractTooltipNode","uppercaseFormatter","shipperTranziitApi","fetchOrdersPage","fetchShipperInvoicesPage","fetchShipperContract","getOrderDetails","ShipperTranziitApi","TimeWindowThemeEnum","iconStrokeColor","ExcludedCountry","useBrokerTourPayloadWaypoints","brokerTourWaypoints","dispatchWaypoint","lastTabFocusTimestamp","otherTabSeenNotificationIds","rememberTabFocusTimestamp","toISOString","seenNotificationsBroadcastChannel","BroadcastChannel","sendTestNotificationSaga","createMarkAsReadNotificationsSaga","markAsReadBegin","markAsReadError","markAsReadSuccess","createFetchUnReadNotificationsSaga","createFetchNotificationsPageSaga","selectNotificationsQuery","fetchNotificationsPageBegin","fetchNotificationsError","newResponse","fetchNotificationsPageSuccess","checkIsReadySaga","selectUserSignedUp","selectLastUnReadNotification","selectUnReadNotificationsRequest","fetchUnreadNotificationsBegin","errorApiUnReadNotifications","apiUnReadNotifications","fetchUnreadNotificationsError","unreadNotifications","apiUnReadNotification","fetchUnreadNotificationsSuccess","notSeenNewNotifications","notSeenNewNotificationIds","postMessage","notificationIds","onmessage","messageEvent","notificationId","SEND_TEST_NOTIFICATION","MARK_AS_READ_REQUEST","FETCH_NOTIFICATIONS_PAGE_REQUEST","FETCH_UNREAD_NOTIFICATIONS_REQUEST","UNREAD_NOTIFICATIONS_REFRESH_INTERVAL_MS","EuroSymbolIcon","BrokerOrdersPage","BigSearchIcon","FieldLabel","PartnersPage","partnersPages","partnersById","showFilters","creationRequestStatus","partnerCreationSidebarType","invitePartnerModalDialog","partnersSort","PartnersSortEnum","partnerCreationOptions","canAddPartner","resetQueryFilters","CARRIER_CONTRACT_STATUS_T_MAP","CarrierContractStatus","availableTrailersToHooks","availableTrailersToHooksSet","availableTrucksToHooks","availableTrucksToHooksSet","outOfAreaSelectedTrailerId","outOfAreaSelectedTruckId","prepareVehicleGeoJson","viewTruckId","viewTrailerId","canInTimeTruck","isShowTruck","canInTimeTrailer","isShowTrailer","vehicleDetails","getVehicleGeoJson","vehiclesGeoJsons","vehiclesGeoJson","outOfAreaVehicles","outOfAreaSelectedLinkedTruckId","outOfAreaVehiclesGeoJsons","ColoredPriceRuleStatusLabel","DropAndHookRoutePointPicker","contextRoutePointIdName","RejectDocumentConfirmation","preparedData","SpotRequestStatusPill","SPOT_REQUEST_STATUS_T_MAP","AdditionalManagementControl","hasAssignedDrivers","useShipperSuggestOptions","initShipperIds","initShipperId","serviceGroups","updateAdditionalServiceRequestStatus","fetchAdditionalServiceRequestStatus","serviceGroup","ContinueSignUpForm","checkRegisteredUser","SideBarLayoutContextWrap","sideBarFooter","sideBarHeader","BaseCarrierContractsLayout","confirmRevokeContractModalDialog","updateCarrierContractRequest","isWaitAction","carrierContractId","downloadCarrierContract","canUploadCarrierContracts","RULE_TYPE_PILL_THEME_MAP","PriceRuleTypePill","noDriverAlert","parsedAssignDriverLimitAlert","parsedNoDriverAlert","parsedAssignAssetLimitAlertMin","noAssetAlert","parsedNoAssetAlert","urgentOrderProcessingDelayHours","urgentOrderProcessingDelayMin","settingName","dependencyList","firstUpdate","I18N_IMPACT_STRATEGY_KEY","I18N_REPEAT_TYPE_MAP","trailerDictTypeIds","fetchRuleDetailsRequest","updateRulesRequest","resetUpdateRuleRequest","resetCreateRuleRequest","fetchRuleDetails","refreshDetailsHandler","ruleIds","ruleDetailsRefreshChannel","ruleDraft","updateRules","createRule","allCountryCodes","renderCountryOption","isThin","getToOptionTestSelector","getFromOptionTestSelector","getCountryOptionValue","selectedImpactPriceComponent","strategyImpactOptions","repeatTypeOptions","repeatStrategyOptions","dayOptions","handleSelectImpactStrategy","handleSelectRepeatType","batchChanges","availablePriceComponents","selectedStrategy","headerTitle","initialShipperIds","initialShippersOptions","initialCarrierIds","selectedImpactStrategy","isSelectedDiffImpactStrategy","isShowCreateButton","isShowUpdateButtons","activateRules","deactivateRules","deleteRules","selectedDays","Utilization","AssetPin","formattedArrivalDate","isShowAssetLinkMenu","setIsShowAssetLinkMenu","linkAssetItems","isDisabledTruck","truckTooltipContent","reasonI18nMap","isDisabledTrailer","trailerTooltipContent","isDisabledTrain","truckIconPreset","trailerIconPreset","linkIconPreset","mapPinTheme","getMapPinTheme","isSelectedTruckAndTrailers","isNotSameCarriers","isSameCarriers","renderCarrierWithUtilization","isLoadingCarrierUtilization","formatTimeZone","addedStopFakeIdsSet","deletedStopFakeIdsSet","newAllFakeIds","newAllFakeIdsSet","stopFakeId","targetFakeId","apiReservePreview","canDelegateFrom","canDelegateTo","requiredFields","newAddresses","reserveShipperId","firstRoutePoint","defaultPickUpTimeWindowStart","routeStart","setISODateMidday","hasAllAddresses","UploadDocumentCard","fetchRulesSaga","resetRulePages","fetchRulesPageBegin","fetchRulesPage","fetchRulesPageError","fetchRulesPageSuccess","rulesPaginationChannel","updateRuleSaga","updateRuleBegin","updateRule","updateRuleError","updateRuleSuccess","rulesRefreshChannel","deactivateRulesSaga","deactivateRule","ruleDeactivateChannel","activateRulesSaga","activateRule","deleteRulesSaga","deleteRulesBegin","deleteRule","deleteRulesError","deleteRulesSuccess","previewRuleSaga","previewRuleBegin","rulePreview","previewRuleError","previewRuleSuccess","createRuleSaga","createRuleBegin","createRuleError","createRuleSuccess","fetchRuleDetailsSaga","fetchRuleDetailsBegin","fetchRuleDetailsError","fetchRuleDetailsSuccess","ShipperContractStatusPill","ORDER_STATUS_COLOR_MAP","OrderColoredStatus","PartnerDetailsPage","verifyPartnerConfirmation","unverifyPartnerConfirmation","lockPartnerConfirmation","unlockPartnerConfirmation","handleVerifyPartner","handleUnverifyPartner","handleLockPartner","handleUnlockPartner","lockRequestStatus","verifyRequestStatus","detailsContent","isShowLoaderOverlay","isExternallyManagedPartner","editUnavailableReason","EditUnavailableReasonEnum","externallyManaged","canEditPartnerDetails","onCloseRef","selectTendersState","tenders","selectTendersDownloadRequestStatus","selectTendersImportRequestStatus","selectTendersDeleteRequestStatus","PendingUserCell","baseRequestConfig","checkIsValidConfig","waitValidConfig","setBasePath","getHeaders","authHeaders","subTypes","parseError","checkIsRetryableError","getRetryDelayMs","baseDelayMs","factor","maxDelayMs","delayMs","retryCount","retryDelayMs","BaseTranziitApi","NotificationToastContent","rawEmotion","AlertProgressBar","primaryFilters","secondaryFilters","LongDeadheadConfirmation","ChangeUserRoleModal","addDiffPatternDef","svgRef","d3","attr","Chart","xTickFormatter","yTickFormatter","hoverState","setHoverState","xMinValue","xMaxValue","xValues","xScale","scaleLinear","domain","yMinValue","yMaxValue","yScale","selectAll","addDefs","svg","axisBottom","tickFormat","tickValues","g","axisLeft","drawAxis","onHoverState","show","area","y0","y1","diffId","handleMouseOver","eventIndex","getBBox","handleMouseOut","acceptedLine","line","curve","curveLinear","datum","on","rejectedLine","estimatedLine","realLine","drawLineChart","StopWarningIcon","rfqsStats","FeeIcon","ContactFilledIndicator","isFilled","locationToDropTrailer","locationToDropTruck","AssignmentOptionEnum","AssignmentOptionsDropdown","selectedOptionValues","showActualPlace","showAssetSchedule","showUnavailableAssets","optionsSet","checkboxTheme","selectedFilters","AddAccountDuotineIcon","DeactivateUserModal","FormComponent","UsersCountCell","usersCount","numberOfUsers","shipmentDetailsFormStorage","cargoDetailsFormStorage","NewOrderPage","stepsContextValue","useStepsContextValue","orderCreationPercentContextValue","useOrderCreationPercentContextValue","syncShipmentDetailsFormValuesContextValue","syncShipmentDetailsFormMapStateContextValue","ShipperContractLaneId","headerValue","quotedMatch","unquotedMatch","ordersPaginationChannel","STRINGIFY_QUERY_KEYS","ordersFilters","parseStringifiedQuery","queryValue","formatStringifiedQuery","skipNulls","parseQueryValueWithSeparator","parseDateFromQuery","queryDate","parseRelativeTimeFromQuery","filteredNewQueryFilters","obj","objArray","encodeArray","strArray","encodeJson","decode","arrayStr","decodedArray","decodeArray","objStr","decodeJson","equals","initValue","Serialize","encodeNumber","decodeNumber","initData","encodeDelimitedArray","decodedData","decodeDelimitedArray","rfqsChanges","FETCH_CONTACTS_REQUEST_BEGIN","FETCH_CONTACTS_REQUEST_SUCCESS","FETCH_CONTACTS_REQUEST_ERROR","ADD_MEMBER_REQUEST_BEGIN","ADD_MEMBER_REQUEST_SUCCESS","ADD_MEMBER_REQUEST_ERROR","DELETE_MEMBER_REQUEST_BEGIN","DELETE_MEMBER_REQUEST_SUCCESS","DELETE_MEMBER_REQUEST_ERROR","UPDATE_MEMBER_REQUEST_BEGIN","UPDATE_MEMBER_REQUEST_SUCCESS","UPDATE_MEMBER_REQUEST_ERROR","FETCH_CONTACT_DETAILS_REQUEST_BEGIN","FETCH_CONTACT_DETAILS_REQUEST_ERROR","FETCH_CONTACT_DETAILS_REQUEST_SUCCESS","initialShipmentChangesState","initialTourChangesState","initialPapersEditByPaperIdState","papersEdit","shipmentChangesById","tourChangesById","selectOptimisticPapersByShipmentId","selectOptimisticPapersByTourId","selectPapersEditByPaperId","selectUploadRequestStatus","AssetDetailsPage","driversRefreshChannel","driversPaginationChannel","driverDetailsRefreshChannel","SignUpPage","titleSignUpUser","titleSignUpCompany","INVERSE_MAP","QuickTimeWindowLink","inverseRangeId","hasInverseRange","checkHasInverseRange","LinkButtonThemeEnum","LinkButtonHeightEnum","narrow","OverlaysManager","initialCompanyTrailersState","additionalServicesDictSlice","allServices","getDeadheadTrucks","assetUtilization","summTotalCostIfNeed","truckCostDetailsTotalCost","trailerCostDetailsTotalCost","TourTypeTabs","onSelectTourTypeTab","estimateCost","actualCost","nextCost","actualNextCost","costDiff","actualNextPercentDiff","isShowNextTour","percentDiffPill","percentDiff","TRANSPORTATION_ORDER_HAS_NO_DRIVER_ALERT_TIME","RUN_OUT_OF_TIME_TO_ASSIGN_DRIVER_LIMIT","ALLOWED_GAP_TO_BE_DELAYED","DELETE_NOTIFICATIONS_OLDER_DAYS","DOC_EXPIRES_SOON_ALERT","TRANSPORTATION_ORDER_HAS_NO_ASSETS_ALERT_TIME","RADIUS_AROUND_WAYPOINT_METERS","TIME_LIMIT_TO_CANCEL_ORDER_HOURS","TIME_LIMIT_TO_CANCEL_TRANSPORTATION_ORDER_HOURS","OperationUnavailableReasonsAlert","controls","DoneIcon","blockLockingReasonI18nMap","BlockLockingReasonEnum","NOT_VERIFIED_LEGAL_ADDRESS","NOT_VERIFIED_BILLING_ADDRESS","BasicWidgetHeaderActions","onUnlink","dropdownControl","UpdatedDocumentCard","ErrorTraceId","countriesAllCodes","removeCountry","newExcludedCountries","excludedCountryCode","filteredCountriesCodes","AddUserIcon","papersEditSlice","shipmentChangesState","paperState","updatedOptimisticPapers","tourChangesState","SideBarLayoutContext","FlagCell","OverloadingTrailerValidationAlertContent","messageNode","pointA","pointB","SpotRequestStatus","comments","selectUnReadNotificationsCount","selectUnReadNotificationsState","selectRelatedIdsSet","updatedOrderIdsSet","lastNotification","selectTrailersTotal","selectDeleteTrailersRequestStatus","selectFetchTrailerDetailsRequestStatus","selectTrailersExportXLSRequest","selectTrailersImportXLSRequest","BrokerToursListPage","brokerToursPages","brokerTourById","brokerTourStat","selectBrokerTourStats","brokerToursFilters","brokerToursPage","brokerToursSort","brokerTourQuickFilterOptions","assetUnassigned","FINISHED","originDate","destinationDate","canBrokerToursAddDeadhead","brokerOrderEditSlice","normalizedResponse","updateAdditionalServiceSaga","EMISSION_STANDART_MAP","skipCommission","skipRules","pdfLink","BigCheckIcon","truckDetailsById","UpArrowIcon","handleAttach","initUserSelection","setInitAssetsInfo","fetchAssignDetails","initBrokerOrderAssignment","resetBrokerOrderAssignment","GPS_EXPIRATION_MS","LastGPSPositionAlert","gpsData","lastUpdateDate","momentTime","formattedMonth","formattedTime","renderTime","PartnerDetailsHeaderPills","DeleteContactConfirmation","LockStatusOnChangeForm","shipperContractLaneDetailsSlice","PriceComponentFilterPill","BaseShipperContractsTable","tztContractId","stateMachine","ExpiredPartnerShipperLaneContractCard","Invoice2Icon","onRevoke","NOT_NUMBER_REG_EXP","rawPhoneNumber","asYouType","AsYouType","formattedPhoneNumber","startsWith","phoneCode","getPhoneCode","isPossiblePhoneNumber","BrokerTeamsLayout","currentCompanyId","brokerTeamsPages","brokerTeamById","brokerUsersTeamsFilters","brokerUsersTeamsPage","brokerUsersTeamsSort","initBrokerPartnersSuggestValues","brokerPartnersSuggestValues","useInitBrokerPartnersSuggestOptions","initBrokerPartnersSuggestOptions","initBrokerPartnersSuggestRequestStatus","onUpdateInitBrokerPartnersSuggestOptions","initBrokerUsersSuggestValues","brokerUsersSuggestValues","initBrokerUsersSuggestOptions","initBrokerUsersSuggestRequestStatus","onUpdateInitBrokerUsersSuggestOptions","deleteTeamConfirmation","deleteTeamRequestStatus","canAddBrokerUsersTeams","goToBrokerTeamDetails","inviteDriverSaga","invitePartnerDriver","addDriverSaga","deleteDriverSaga","deletePartnerDriver","updateDriverSaga","updatePartnerDriver","fetchDriverDetailsSaga","fetchPartnerDriverDetails","activateDriverSaga","activatePartnerDriver","cancelDriverInviteSaga","archiveDriverSaga","archivePartnerDriver","FLOATING_INPUT_POSITIONS","overlayWidth","inputRef","selectedOptionRef","findedSelectedOption","searchInputNode","isFloatingInput","isDisabledOption","onCloseOverlay","emptyImpactDiffValuesSet","NAME","LEGAL_FORM","MAIN_CONTACT","LEGAL_ADDRESS","POSTAL_ADDRESS","BILLING_ADDRESS","ADDRESS_FIELDS","BusinessPartnerProfileUpdatedCard","hasAddressFields","isSelfUpdate","fieldLabels","formattedFields","lastField","otherFields","AsyncCountryFormatter","brokerTeamDetailsSlice","fetchBrokerTeamDetails","fetchBrokerTeamDetailsBegin","brokerTeamDetailsState","fetchBrokerTeamDetailsSuccess","fetchBrokerTeamDetailsError","resetBrokerTeamDetails","emptyIndexes","PartnerTransportOrders","DevLocalizationLanguageSwitcher","i18n","setLang","isShowCIMCode","PriceSettingsEditRuleDetailsPage","RatesTable","costKm","updated","updatedByName","updatedById","TollIcon","fetchPartnersStats","RFQ_BROKER_SOURCE_T_MAP","ALL_SOURCES","PriceSettingsRules","setSelectedRulesSet","rulesPages","rulesById","deleteRulesRequest","rulesPage","rulesSort","showAddRuleForm","TrailerIcon","ForgotPasswordPage","NotFoundPage","AccessDeniedPage","hot","module","contextValue","notificationBarContextValue","commonUrlFactoryContextValue","featureContextValue","useFeaturesContextValue","store","Router","QueryParamProvider","adapter","ReactRouter5Adapter","TableSkeleton","PriceDetail","customPriceDiffNegativeColor","notActualPrice","rawLeftNode","rawRightNode","customActionNode","initialOpen","shouldRenderExpandTrigger","isDisabledHover","isShowRow","moneyNode","marginLeft","PriceDetails","hasVerticalPaddings","itemIndex","initialConsistentStateMachineItemState","consistentStateMachineSlice","___CSS_LOADER_EXPORT___","timeZonesSlice","OrderWasCanceledCard","AGGREGATE_LABEL_T","AGGREGATE_COLOR","availablePresetMap","StatisticsPage","statsGranularity","statsFrom","statsTo","doneStatistics","rejectStatistics","aggregateAmounts","avgDoneShipperRate","aggregate","avgShipperRate","avgRejectShipperRate","avgCarrierRateEstimate","avgMarginRate","avgCarrierRate","prepareValue","selecedDataSource","graphSettings","setGraphSettings","aggregates","week","setGranularity","queryStatisticsFrom","queryStatisticsTo","parsedStatisticsFrom","parsedStatisticsTo","doneStatisticsStatus","rejectStatisticsStatus","isEmptyData","series","isAvailable","hasAmount","deleteTrailersRequest","changeRateTrailersRequest","fetchTrailersStats","userOptions","SpotRequestDetailsSidebarContent","Logo","PointContactsPicker","contactIndex","companyNameFieldName","fullNameFieldName","emailFieldName","phoneNumberFieldName","commentFieldName","hostname","ListPageLayout","ErrorPlaceholder","selectRequiredDocumentIds","ExpireSoonPartnerShipperContractCard","oneAssetTitle","manyAssetsTitle","oneAssetMessage","manyAssetsMessage","ActivateAssetDialogModal","tSet","FETCH_NOTIFICATIONS_PAGE_REQUEST_BEGIN","FETCH_NOTIFICATIONS_PAGE_REQUEST_SUCCESS","FETCH_NOTIFICATIONS_PAGE_REQUEST_ERROR","MARK_AS_READ_REQUEST_BEGIN","MARK_AS_READ_REQUEST_SUCCESS","MARK_AS_READ_REQUEST_ERROR","FETCH_UNREAD_NOTIFICATIONS_REQUEST_BEGIN","FETCH_UNREAD_NOTIFICATIONS_REQUEST_SUCCESS","FETCH_UNREAD_NOTIFICATIONS_REQUEST_ERROR","RESET_NOTIFICATION_PAGES","TrucksTable","shipperContractLaneCreationSaga","calculateCostSaga","createLaneSaga","createShipperContractLaneRFQQuery","createShipperContractLaneRFQ","fetchShipperContractLaneRFQOffersAverage","data2","data3","error4","data4","createShipperContractLane","RedirectSignedUser","toReturnUrl","DEFAULT_POINT_CONTACTS_VALUES","DEFAULT_SHIPMENT_VALUES","CargoDetailsForm","isCreateNextOrderRef","reserveExpireTime","multiPointOrderDraftDetailPoints","isFinallyFetchInitializedData","isSameContactsSizes","prevPointIds","routePointIds","hasEveryPointIds","pointId","pickupDeliveryPoints","autoSelectPickUpPointId","autoSelectDropOffPointId","shipmentValue","shipmentFields","pointContactsValue","pointContactsFields","closeOverloadingAlert","setCloseOverloadingAlert","closeNotUsedPointAlert","setCloseNotUsedPointAlert","closeTemperatureRangesCompatibleAlert","setCloseTemperatureRangesCompatibleAlert","notUsedRoutePointValidationResult","overloadingTrailerValidationResult","temperatureRangesCompatibleValidationResult","shipmentsFormValues","contactsFormValues","existedSelectedAdditionalServiceEnums","numberOfUnits","dropOffReference","pickupReference","carrierAdditionalServices","shipmentsLength","createOrderRequestStatus","pointContactsFormValues","pointContactFormValues","selectConsistentStateMachineItemState","consistentStateMachine","imageNode","componentDidUpdate","prevProps","imageObjectURL","finally","display","ImageLoader","AssignTriggerLabel","EntitySidebarSkeleton","TuneIcon","RateModeStatusPill","light30","brandAccent30","ChartIcon","UpdatedPartnerContractCard","NotificationSidebarContext","contactEditableWaypointTypeSet","TourDetailsCard","idDetailRows","isNeedAppointmentTimeWindow","canChangeTourStatusOnBrokerOrder","getCardFooterNode","TrailerStatus","RFQStatusPill","RevokeShipperContractConfirmation","shipperContractName","SpecialValueEnum","isAllOptionsSelected","allOption","summaryCount","isSelectedAll","newAllValues","summarySelectedNotificationProps","allDriverStatuses","sortBy","HighlightedEntityContext","setHighlightedEntityId","UploadFooterContent","concatTestSelectors","testSelectors","UnavailableTrailerIcon","POLLING_INTERVAL_MS","TenderCalculator","fetchLastStatusRequestStatus","isJobNotFoundError","isSuccessCompleteTender","isFailedCompleteTender","inProgressTender","shouldPollTenderStatus","setShouldPollTenderStatus","handlePollTenderStatus","isAvailableResetPickedXLSFileRef","pickedXLSFile","setPickedXLSFile","actionNode","statusNode","handlePickXLSFile","handleClearPickedXLSFile","handleDownloadTenderXLSFile","handleStartCalculation","handleStopCalculation","calculated","doneRowsCount","totalRowsCount","ProgressBar","controlsNode","STATUSES_RANK","byStatusDesc","documentA","documentB","aRank","fetchDocumentsSaga","documentsByType","preparedDocuments","uploadDocumentSaga","documentsRefreshChannel","partnerDocumentsRefreshChannel","dictDocumentName","downloadDocumentSaga","approveEvidenceOfTaxDocumentSaga","approvePartnerEvidenceOfTax","approveDocumentSaga","approvePartnerDocument","rejectDocumentSaga","rejectPartnerDocument","revokeDocumentSaga","revokePartnerDocument","updateDocumentSaga","updatePartnerDocument","updateEvidenceOfTaxDetailsSaga","updateEvidenceOfTax","fetchEvidenceOfTaxDetailsSaga","reasonFieldTitle","reasonFieldPlaceholder","ArchiveAssetConfirmationModal","Switcher","User","MapIcon","ChangeShipmentStatusFooter","baseOptions","quantumAvailableValues","BROKER_WORKING_HOURS_RANGE","BROKER_WORKING_HOURS_RANGES","quantumOptions","minValidValue","maxValidValue","DocumentTypeEnum","evidenceOfTaxVat","stopsIdsAfterModify","RejectedDocumentCard","Pagination","getInputText","isShowPagination","tryChangePageByInputValue","parsedPage","parsedCount","isValidPage","isSamePage","isSameCount","RevokedDocumentCard","fetchBrokerTeamsSaga","selectedPartner","setSelectedPartner","handleSelectPartnerType","handleSelectPartner","partnerTypeOptions","BaseDocumentsLayout","checkIsEmptyValue","googleMapContext","onGoogleApiLoadedRef","handleGoogleApiLoaded","DatabaseIcon","BrokerTourDetails","summaryDistance","payloadDistanceByCountryRows","deadheadDistanceByCountryRows","shipperOrderDetails","etaToNextWaypoint","estimateCarrierCost","setScrollTop","maxWait","RuleOperatorEnum","ShipperOrdersQuickFilterEnum","ApiOrdersSourceEnum","OrderSourceEnum","OrderSortEnum","ShipperContractsSortEnum","OrderWaypointTypeEnum","NotificationAlertLevelEnum","closeCallback","OrderRouteWasUpdatedCard","defaultPartnerId","confirmRejectContractModalDialog","handleDownloadContract","handleRetryFetchContractDetails","BigEmptyIcon","ISO_DATE_FORMAT","Calendar","limitMinDate","parseISOString","limitMaxDate","container","wrapper","interactionDisabled","navBar","navButtonPrev","navButtonNext","navButtonInteractionDisabled","months","caption","weekdaysRow","weekday","weekNumber","todayButton","today","selected","outside","disabledObjDates","checkIsDisabledDateByAllowed","allowedDatesStartMomentDate","allowedDate","disabledDays","limits","after","before","containerProps","weekdaysShort","arr","modifiers","getFocusDate","limitDate","parsedMinDate","parsedMaxDate","setMonth","focusDate","handleYearMonthChange","firstDayOfWeek","numberOfMonths","showOutsideDays","fromMonth","toMonth","onDayClick","checkIsDisabledDate","disabledObjDate","DateUtils","addDayToRange","captionElement","FormStepEnum","SignUpForm","setStep","setUserFormData","selectSignUpRequestStatus","getMoneyMaskAllowNegative","setIsActiveEditing","handleActiveEditing","handleKeyDownRightNode","commonPriceDetailsCX","onKeyDown","shipperContractLanes","initialPartnerShipperContractLanesState","PriceRuleTargetLabel","targetI18nKey","targetPostfixI18nKey","GoogleMapContextProvider","googleMapsContextValue","ArrowForwardIcon","isPositiveDiff","diffPercentPillTheme","renderPercentDiffPill","TransportationOrderStatusChangedCard","DocumentParamsDetailsForm","RangeSelectorLabelsConfigT","RangeSelectorMarkT","RangeSelectorRangeT","checkCursorOnTrigger","clientY","POSITIONS_RANGE","POSITIONS_RANGE_WIDTH","checkIsSamePositions","positionA","positionB","isNumberLimit","RangeSelector","isAllowDragSelectedZone","prevPositionXRef","valuesRangeWidth","positionStepWidth","getPosition","availablePositions","rangesPositions","marksPositions","mark","draggingLeftPositionRef","draggingRightPositionRef","isDraggingRef","leftTriggerRef","isDraggingLeftRef","initialLeftPosition","leftPositionRef","rightTriggerRef","isDraggingRightRef","initialRightPosition","rightPositionRef","setCurrentRanges","leftPosition","newCurrentRanges","rangePosition","rangePositionIndex","updateLeftPosition","newLeftPosition","updateRightPosition","newRightPosition","minRangePositions","maxRangePositions","containerSize","setContainerSize","positionX","rightPosition","rangeWidth","isAllowedNewLeftPosition","isAllowedNewRightPosition","handleMouseDown","isLeftTriggerClick","isRightTriggerClick","isRangeClick","minAvailablePosition","maxAvailablePosition","onSelectRef","handleMouseUp","currentLeftStep","currentRightStep","firstCurrentRange","currentRangeTheme","handleTriggerMouseLeave","handleTriggerMouseEnter","leftDisableRange","isEmptyLeftDisableRange","rightDisableRange","isEmptyRightDisableRange","filledPositions","leftRanges","rightRanges","isAllowedSelectedValues","isDragging","positions","markIndex","modalRoot","getElementById","Modal","AcceptDeclinedOrderConfirmation","MissedDeliveryForShipmentCard","apiPriceOffer","RouteDetailsForm","timerPlaceholderNode","NORMAL","POSITIVE","ATTENTION","WARNING","FerryLocationPin","iconColors","ShipperContractRoutesEnum","ShipperContractsRoutesEnum","DEFAULT_SORT","QUICK_FILTER_ORDER","quickFilterLabels","quickFilterPillTheme","availableSelectBidStatusSet","Bids","setSort","selectedQuickFilter","setQuickFilter","bidCounts","filteredBids","sortedBids","isDisabledBid","TimelineAutoSizer","getStartDayFromDate","getEndDayFromDate","EmailCell","isDisableLeftRangeControl","isDisableRightRangeControl","forceStep","carrierContractDetails","FilledWrenchIcon","oldNotificationsById","newNotificationsById","SidedBarHeaderLayoutContext","ChangeRateOrContractAssetDialogModal","FooterSideBarAlert","findCarriersSaga","selectSpotRequestsTotal","selectSpotRequestsByIds","typeMap","Blob","saveAs","AsyncSpotRequestDetailsStatusFormatter","partnersStats","selectPartnersStats","DateTimeCell","timeFormat","dateText","timeText","prepareSuggestions","place_id","EUROPE_BOUNDS","getSuggestionLabel","suggestion","isMouseOverlayFocusRef","suggestions","setSuggestions","setFocus","newText","autocomplete","geocoderApi","GoogleMapsGeocoderApi","placesApi","eventText","resultQuery","rawSuggestions","suggestionLabel","geocode","geocodeResult","geocodeAddressComponents","handleOptionClick","showCountiesLimit","allowRestCountriesPopover","dictCountriesCount","firstCountry","limitedCountries","restLimitedCounties","AttachIcon","selfCostInvalidReasonI18nMap","CARRIER_DOESNT_HAVE_REQUIRED_CERTIFICATES","INCAPABLE_EMISSION_STANDARD","INCAPABLE_TRAILER_TYPE","TRAILER_CANT_BE_ON_TIME_FOR_NEXT_TOUR","TRAILER_IS_NOT_CONTRACTED","TRUCK_CANT_BE_ON_TIME_FOR_NEXT_TOUR","TRUCK_IS_NOT_CONTRACTED","TRUCK_IS_NOT_IN_FREE_STATUS","TRAILER_CANT_BE_ON_TIME_FOR_TOUR","TRAILER_IS_NOT_IN_FREE_STATUS","TRUCK_CANT_BE_ON_TIME_FOR_TOUR","AT_LEAST_MUST_BE_ONE_ASSET","TRAILER_ALREADY_ASSIGNED","TRUCK_ALREADY_ASSIGNED","TRAILER_CONTRACTED_INACTIVE","TRUCK_CONTRACTED_INACTIVE","DROP_POINT_IS_IN_NOT_AVAILABLE_TO_SHIP_COUNTRY","TRAILER_START_TIME_BEFORE_NOW","TRUCK_START_TIME_BEFORE_NOW","isPrioritySelfCostPredictionStatus","shouldValidateTruck","shouldValidateTrailer","errorCode","DelimiterThemeEnum","HISTORY_DATE_FORMAT","BaseShipperContractDetailsLayout","revokeShipperContractConfirmation","handleDownloadShipperContract","createDetails","modifyDetails","revokeDetails","expireDetails","EntityEtaAlert","declineUnavailableReasonI18nMap","TIME_LIMIT_TO_DECLINE_HAS_PASSED","CARRIER_CANT_DECLINE_DEADHEAD_TO","cancelByBrokerUnavailableReasonI18nMap","unassignDriverUnavailableReasonI18nMap","NO_ASSIGNED_DRIVERS","carrierUnassignAssetsUnavailableReasonI18nMap","TransportOrderDetailsPageLayoutContent","driversAssignment","spotAssetsAssignment","acceptDeclinedOrderConfirmation","declineOrderConfirmation","unassignDriversConfirmation","unassignAssetsConfirmation","transportOrderDetailsRequestStatus","fetchTransportOrderDetails","refreshTransportPageHandler","isActiveDriversAssignment","closeDriversAssignments","assignmentDriverRequestStatus","isActiveSpotAssetsAssignment","closeSpotAssetsAssignments","spotAssetsAssignmentRequestStatus","unassignDriverUnavailableReason","unassignAssetsUnavailableReason","declineUnavailableReason","declineTooltipContent","isAvailableDecline","canDeclineTransportOrders","reAssignRequest","handleUnnassignAssets","isSetStateLoading","archivedByCarrier","unnassignDriversRequestStatus","onUnnasignDrivers","declineSuccessAlert","reAssign","TransportOrderDetailsPageLayout","BrokerTeamsTable","trailerPlateNumberUniqCheck","duplicateTrailerId","linkedTruckAlertNode","duplicatedTrailerAlertNode","TRUCK_EXCLUDE_STATUSES","userNames","SideBar","closeRFQSaga","AssignOptionLabel","onSelectLink","spotRequestDetailsState","HollowCircleIcon","Element","FLOATING_UI_PORTAL_SELECTOR","NotificationCardFooter","ViolationTemperatureAlert","rootNode","ATTACH_PAPERS_UNAVAILABLE_REASON_MAP_T","AttachPapersUnavailableReasonLabel","OptionsIcon","routingGeometry","AssigmentTypeEnum","NotificationVerticalRow","formatMinMaxDate","getMonthDate","monthOffset","focusDateFrom","focusDateTo","partnersStatsRequest","allUpdateCount","notVerifiedCount","shippersUpdateCount","carriersUpdateCount","renderNotificationIcon","notificationsCount","ContentLimiter","MoreIcon","ReceivedCell","ManagementControl","isSpotOrder","disableChangeAssetsTooltipNode","disableChangeDriverTooltipNode","managementOptions","NotificationLabel","LinkPickUpIcon","Notification","isClosed","setClosed","CancelServiceMaintanceConfirmationModal","emissionClasses","truckModels","vehicleState","TransportationOrderDriverAssignedCard","driverLabel","teamDriverLabel","getDiff","CUSTOM_PRICE_DIFF_NEGATIVE_COLOR","ReceiptPriceDetails","otherCosts","brokerTranziitApi","addPartnerTruck","updatePartnerTruck","truckUpdate","fetchPartnerTruckDetails","apiFetchPartnersRequest","evidenceOfTaxDocumentUpdate","updateBrokerWindowAppointment","fetchPartnerDispatchers","apiUpdateRateRequest","uploadRatesCSVFile","newRole","bodyData","sentTransportOrderToSpot","importPartnerXLSTrucks","exportPartnerXLSTrucks","getTeamDetails","teleportLinkedAsset","BrokerTranziitApi","RemoteFormActionsContext","distanceByCountry","isUnspecified","fetchBrokerTeamDetailsSaga","BaseShipperContractsLayout","shipperContractsPage","shipperContractsSort","shipperContractsFilters","shipperContractsTableRows","ContentRootContext","DriverIcon","getDriverIconProps","AlertContainer","isAllowShow","shipperContractDetailsSaga","getFetchShipperContractDetailsSaga","getDownloadShipperContractDetailsSaga","LeftArrowIcon","UserPositionPill","positionKey","PhoneCell","getOffsetPx","setNow","isShowNowDelimiter","getHeightPx","getOffsetPxCallback","fullTimeLineWidthPx","ticksParams","ticks","getTicksTimestamps","halfTicks","getHalfTicksTimestamps","srcollContainerRef","skipScrollIntoViewRef","topTimestampRef","topOffsetPx","scrollTo","handleScroll","topTimestamp","Delimiter","halfStep","levelLeftOffsetPx","minWidth","gLocation","geocoder","Geocoder","firstGeocodeResultWithPostalAddress","firstGeocodeResultWithCountryCode","firstGeocodeResult","DestinationPinIcon","rootReducer","brokerTourStats","driverSearch","spotAssetsAssigment","brokerOrderEdit","partnerSuggest","subjectLogs","sagaMiddleware","configureStore","getDefaultMiddleware","concat","run","countrySettingsDictSaga","consistentStateMachineSaga","deadheadCreationSaga","subjectLogsSaga","convertLocationToPoint","checkIsSameLocation","locationA","locationB","setSelectedAssetType","firstWaypointDateTimeFrom","carriersUtilizationFetchRequestStatus","initWaypointTruckDropPoint","initWaypointTrailerDropPoint","initTruckDropPoint","initTrailerDropPoint","initTruckTransportOrder","initTrailerTransportOrder","initTruck","initTrailer","hasBrokerOrderDetails","cancelTruckTransportOrderConfirmation","cancelTruckTransportOrderDescriptor","updateTruckTransportOrderStatusRequest","cancelTrailerTransportOrderConfirmation","cancelTrailerTransportOrderDescriptor","updateTrailerTransportOrderStatusRequest","longDeadheadConfirmation","totalDeadheadDistance","isDisabledTruckSuggest","isDisabledTrailerSuggest","isSelectedSameLocations","userSelectionChanges","carrierUtilizationHash","linkedAssetId","handleSelectLinkByTruck","renderTruckOption","valid","handleSelectLinkByTrailer","renderTrailerOption","handleSelectTruck","renderTruckTriggerIcon","AssetLinkIconProps","handleSelectTrailer","renderTrailerTriggerIcon","handleSelectPointToDropTruck","handleSelectPointToDropTrailer","isSameCompany","truckWarning","linkedTruck","boldOrange","trailerWarning","linkedTrailer","PricesCell","DetailsOrPapersTabs","childrenArray","detailsTabContent","papersTabContent","papers","FORMAT_DATE","SetUnavailableAssetConfirmationModal","formattedInterval","SmallDownArrow","tRoleMap","tAuthProfileTypeMap","ANY_COMPANY_TYPE_SET","selectUserClaims","firstUserClaimCompanyType","firstUserClaimAuthProfileType","currentProfileType","selectSignOutRequestStatus","roleLabel","currentRole","redirectLink","authProfileType","currentHost","host","getRedirectLink","BrokerRFQDetailsPage","DriverInviteModal","selectCurrentUserRequestStatus","resendInviteUser","TableMessage","COMPONENT_TABS_ORDER","COMPONENT_TAB_LABEL_T","HIDE_USER_STATUS_SET","canEditBrokerUsersTeams","teamDetailsRequestStatus","setIsSubmitting","isBlockBackgroundUpdate","handleCancel","handleRetryFetchTeamDetails","initialTeamComponentTab","userSelectedTab","setUserSelectedTab","isFinallyFormInitialized","usersHighlightedUserIdsSet","partnersHighlightedUserIdsSet","lastModifiedDetails","itemsCountNode","TruckModelFilterPill","ZoneMark","trimmed","isFinite","TruckModelMultipleDropdown","DoubleCheckIcon","TourStatusChangedCard","TargetIcon","queryPageNumber","TourOutOfTimeToAssignCarrierCard","Avatar","summ","char","charCodeAt","CONFIRMATION_MESSAGE_T","CONFIRMATION_ADMIN_MESSAGE_T","ChangeUserRoleConfirmation","newRolesCount","hasAdminRoleInChanges","displayedRoles","countryLanguages","uniqAllLangCodes","RouteIcon","TourPapersCard","SideBars","RemoteFormActions","saveLabel","cancelLabel","closeLabel","AssetsXLSDropdownControl","MapTooltipMenu","TodoListIcon","LinkFormatter","fetchRatesSaga","updateRatesSaga","uploadCsvFileSaga","ShipperContractLaneCreationPage","createRequestQueryDraft","setCreateRequestQueryDraft","calculateQuery","setCalculateQuery","calculatingCostRequest","syncShipperContractLaneCreationFormMapStateContextValue","DestinationCell","destinationFrom","destinationTo","revokeShipperLaneConfirmation","clientFeatures","setClientFeatures","getClientFeatureValue","newClientFeature","EditIcon","CreditLimitExceedAlertContent","newAliases","previewRule","previewRuleReset","fetchCompanySaga","updateCompanySaga","PaperIcon","getFetchRFQsSaga","CARRIER_NOT_IN_LIST","CANT_BE_ON_TIME_FOR_NEXT_TOUR","NO_AVAILABLE_HOOKS","DIFFERENT_CARRIERS","ASSET_CONTRACTED_INACTIVE","PLATE_NUMBER_DO_NOT_MATCH","ASSET_BUSY_ON_TOUR_DATES","TeamDriveIcon","DropOffCell","zipCodeTo","countryCodeTo","newSelectedRowsSet","tryParseJson","logAdditionalData","AbortController","abort","signal","isRawData","rawResponseText","rawResponseContentType","responseContentType","parseResponseContentType","CarrierNoShowForShipmentCard","refreshBrokerOrderDetails","refreshSpotRequestDetails","cancelSpotByTour","tourIds","responseError","cancelSpotById","cancelSpotSaga","cancelSpotByTourSaga","sendToSpotByTourSaga","CancelSpotRequestConfirmation","contextPartnerId","contactCompanyType","contactDetailsCompanyTypeMap","contactCompanyId","headerActionOptions","countryByLangCode","mediasNodes","mediaChunks","chunk","chunkIndex","getTrailerIds","SORT_LABELS_T","TrailersPageLayout","trailersSort","trailersTab","setSelectedTrailersSet","trailersPages","updateTrailersRequestStatus","isDisabledTableActions","prefix","closeIconFillColorMap","AlertInner","isAlignItemsCenter","closeIconFillColor","transparentDarkAlpha","Alert","OrderCreationPercentContext","transportOrder","spotCarrierTransportOrder","trainTransportOrder","RECEIVED_NOTIFICATIONS","BrokerUsersPage","FewCountriesIcon","BrokerOrderAssignmentPage","isFromBrokerTour","timeZoneContextValue","setTimeZoneContextValue","assetsSelectionContextValue","setAssetsSelectionContextValue","refreshBrokerOrderHandler","toError","validateAssetTeleportSaga","executeAssetTeleportSaga","TIME_SLOT_TO_BOARD_FERRY","TIME_SLOT_DISEMBARK_FERRY","fetchDispatchersSaga","NotificationsBarTrigger","unReadNotificationsCount","hasUnReadNotifications","RFQIcon","ButtonGroup","brokerOrdersSlice","ShipperContractLaneDetailsPage","laneName","canEditShipperContracts","TABS_ORDER","DriversPageLayout","driversSort","driversTab","driversPages","driverById","driverInviteModal","inviteRequestStatus","editDriverDetailsSidebarData","driverDetailsSidebarData","driverCreationOptions","openSpotRequestsFilter","TOUR_STATUS_COLOR_MAP","TourColoredStatus","customHistory","goToPossiblyExternalUrl","relativePath","restUrl","handleEditDriverDetails","isWellKnownSocialMedia","isAllowUnassignDriver","teamDriver","resetDriverAssignment","hasInitialDrivers","DOCUMENT_STATUS_T_MAP","DocumentStatus","initialUserSelectionValues","initialAssetSchedule","newResult","assetSchedule","PriceSettingsRulesPage","CONFIRMATION_T_MAP","ImportXLSAssetsDialogModal","TimeLeftForStart","shouldDisableAfterDeadline","actionsNode","AssetLinkIcon","SpotRequestListPage","spotRequestsPages","spotRequestsById","spotRequestsFilters","spotRequestsPage","spotRequestsSort","refreshPageStatsHandler","spotRequestsQuickFilterOptions","convertMsToHours","msValue","convertHoursToMs","hoursValue","secValue","sec","convertMinToSec","TrailerTypeCell","DEFAULT_RADIUSES","settingsRadiuses","createFetchSubjectLogsSaga","rawLog","TemperatureRangesCompatibleValidationAlertContent","TourStatusPill","fetchTrucksSaga","refreshTruckDetailsIfNeedSaga","addTruckSaga","deleteTrucksSaga","activateTrucksSaga","failedTruckIds","archiveTrucksSaga","failedTruckId","assignTruckToContractSaga","changeRateTrucksSaga","fetchTruckDetailsSaga","fetchTrucksStatsSaga","updateTruckSaga","importXLSTrucksSaga","exportXLSTrucksSaga","TruckStatusMultipleDropdown","TRUCK_STATUS_T_MAP","companyTypes","continueSignInErrorSaga","checkPasswordSaga","protectedSignInSaga","signInResult","userClaimsError","userClaimsResult","getContinueSignInSaga","checkPasswordError","verificationError","signInApiError","currentUserError","forceRefreshCurrentUserSaga","getSignInSaga","authUserStateChangeChannel","anonymouslyUser","externalRoutesSet","continueReturnUrl","signInUrl","getAuthWatch","userChannel","isNotValidRole","signOutSaga","rawClientFeaturesConfig","clear","sessionStorage","apiError","resetPasswordSaga","protocol","updatePasswordSaga","getSignUpSaga","emailVerificationSaga","isFirstReservePreview","setIsFirstReservePreview","loaderNode","textNode","CommonDocumentParamsDetailsForm","ListMessage","rulesPartnerId","RestrictedExternalBusinessPartnerPill","CancelSpotRequestFooter","cancelSpotRequestConfirmation","handleCancelSpot","selectInvoicesTotal","selectedServiceEnums","priceA","priceB","DateIntervalFormatter","CUSTOM_CURRENCY_SETTINGS_MAP","checkIsCurrencyUnitType","checkIsSimpleUnitType","UnitTypeCount","fullClassName","formattedType","groupOffers","PartnerExternalPlatformDetailsForm","unlinkProfileConfirmation","handleUnlinkProfile","InvitePartnerDialog","selectAssetTeleportItem","canChangeShipmentStatusOnBrokerOrder","canCancelShipmentOnBrokerOrder","routePointAlias","RejectContractConfirmation","TransportationOrderAssetsAssignedCard","customTruckDetails","customTrailerDetails","RouteDetailsCard","getDriverArrivedLeftRows","getTimeSlotRows","waypointCount","renderPickupTrailerWaypoint","renderPickupTruckWaypoint","renderPickupTrainWaypoint","renderPickupDeliveryWaypoint","renderDriveThroughWaypoint","renderDropAndHookWaypoint","renderFerryOnboardWaypoint","renderFerryDisembarkWaypoint","renderDropoffTrailerWaypoint","renderDropoffTruckWaypoint","renderDropoffTrainWaypoint","setDate","timezoneLabel","extraLarge","apiPartnerType","partnerTypeParams","oldPolylineIds","oldPayloadGeometryStates","newPolylineIds","newPayloadGeometryStates","newPayloadGeometryState","editOrderNew","oldPayloadGeometryState","editOrderOld","LastAssetTrackPointPin","fetchSpotRequestsStatsSaga","CalendarAltIcon","RouteSwitchDropdown","routeTypeOptions","ServicePinIcon","BellIcon","filteredTargets","appliedRuleTargetMap","countryCost","summaryPrice","paidHoursNode","hoursNode","ALWAYS_PASS_SPECIAL_VALUE","restAsyncOptionsRequest","handleRefresh","defaultOptionFilter","preparedText","optionFilters","optionFilter","stopByAlias","TransportationOrderDriverUnassignedCard","LineLoader","setDuplicateId","setStatus","queryRef","promise","duplcate","emptyGeocodingResult","ExpireSoonDocumentCard","DeactivateUserIcon","suffix","includeThousandsSeparator","thousandsSeparatorSymbol","allowDecimal","allowNegative","decimalLimit","Input","FormUnsavedValuesColoredStatus","DriversAssignmentFooterContent","ContactIcon","CalendarIcon","AccountIcon","AccountIconProps","TemperatureModeFormatter","RadiusDropdown","radiusOptions","isShowStatusFiltersAfterPaid","canFilterBrokerOrdersByAccountManagerOrDispatcher","manager","EditableCostCell","rawCost","isHoveredCell","setHoveredCell","optimisticCost","setOptimisticCost","isSameValue","minDateCalendarDate","maxDateCalendarDate","deadlineStr","selectedRelativeTimeWindow","getRelativeStartDayTimeWindow","handleChangeDate","startTimestamp","endTimestamp","limitedEndTimestamp","selectedCalendarDate","availableRelativeValues","handleChangeTimeWindow","cancelled","SpotRequestStatusCard","UpdatedPartnerCarrierContractCard","ShipperContractLanePage","TruckStatus","dateLinkTriggerProps","shiftMidnight","TargetCell","ActivateDriverConfirmation","PriceRuleStatusLabel","COLOR_MAP","MapArea","findAreaRef","setMap","Circle","strokeWeight","updateShipmentSaga","updateStopContactSaga","updateDockingHoursSaga","PapersGroup","isAttachDisabled","attachTooltipMessage","isInitialOpen","prev","getAbbreviation","getFullName","apiUser","abbreviation","ShipmentStatusChangedCard","StopLabel","RadarIcon","TruckDetailsPage","truckOrderId","CountriesFilterPill","DriverWrongCheckPointPill","papersGroups","attachedPapersByType","optimisticPapersByType","allPaperTypes","aIndex","bIndex","totalCount","MARGIN","FORMAT_BY_GRANULARITY","StatisticsChart","doneStat","rejectStat","dateKey","avgDeadheadPercent","avgDistanceKm","RouteLocationsOverview","renderLocationNode","countryNode","timeWindowNode","renderLocation","routePolylineOptions","routeShadowPolylineOptions","assignmentAccent","assignmentWarning","assignmentPositive","trackCurrent","HOVER_COLOR_MAP","MapRoute","routePolylinesRef","routePolyline","zIndexOptions","routePath","routeShadowPolyline","Polyline","geodesic","addListener","decodedPath","encoding","decodePath","ShipmentStatusPill","prevInitialValues","setPrevInitialValues","handleDeactivateRule","shouldShowChanges","comp","countryA","countryB","EmissionClassFormatter","OfferAttribute","iconMap","shipperContractLanesSlice","RemovedFromTeamCard","omitRoles","allRoles","restrictedRoles","canCancelOrder","canEditSpotLanes","CancelTrailerTransportOrderConfirmation","WalletIcon"],"sourceRoot":""}